Added company info revisioning in the models (refs: #ba1a26)
* Extended CompanyInfo with an "original" association with the previous revision (in case revisions can be removed in the future). * Created a belongs_to relation of Invoice with CompanyInfo and an has_many reverse relation.
This commit is contained in:
parent
14b7a8fd4a
commit
016cb0b21d
31
stoptime.rb
31
stoptime.rb
|
@ -311,6 +311,7 @@ module StopTime::Models
|
||||||
#
|
#
|
||||||
# === Attributes by association
|
# === Attributes by association
|
||||||
#
|
#
|
||||||
|
# [company_info] associated company info (CompanyInfo)
|
||||||
# [customer] associated customer (Customer)
|
# [customer] associated customer (Customer)
|
||||||
# [tasks] billed tasks by the invoice (Array of Task)
|
# [tasks] billed tasks by the invoice (Array of Task)
|
||||||
# [time_entries] billed time entries (Array of TimeEntry)
|
# [time_entries] billed time entries (Array of TimeEntry)
|
||||||
|
@ -318,6 +319,7 @@ module StopTime::Models
|
||||||
has_many :tasks
|
has_many :tasks
|
||||||
has_many :time_entries, :through => :tasks
|
has_many :time_entries, :through => :tasks
|
||||||
belongs_to :customer
|
belongs_to :customer
|
||||||
|
belongs_to :company_info
|
||||||
|
|
||||||
# Returns a time and cost summary of the contained tasks (Hash of
|
# Returns a time and cost summary of the contained tasks (Hash of
|
||||||
# Task to Array).
|
# Task to Array).
|
||||||
|
@ -371,7 +373,19 @@ module StopTime::Models
|
||||||
# [accountiban] international bank account number (String)
|
# [accountiban] international bank account number (String)
|
||||||
# [created_at] time of creation (Time)
|
# [created_at] time of creation (Time)
|
||||||
# [updated_at] time of last update (Time)
|
# [updated_at] time of last update (Time)
|
||||||
|
#
|
||||||
|
# === Attributes by association
|
||||||
|
#
|
||||||
|
# [invoices] associated invoices (Array of Invoice)
|
||||||
|
# [original] original (previous) revision (CompanyInfo)
|
||||||
class CompanyInfo < Base
|
class CompanyInfo < Base
|
||||||
|
belongs_to :original, :class_name => "CompanyInfo"
|
||||||
|
has_many :invoices
|
||||||
|
|
||||||
|
# Returns the revision number (Fixnum).
|
||||||
|
def revision
|
||||||
|
id
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class StopTimeTables < V 1.0 # :nodoc:
|
class StopTimeTables < V 1.0 # :nodoc:
|
||||||
|
@ -559,6 +573,23 @@ module StopTime::Models
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class CompanyInfoRevisioning < V 1.93 # :nodoc:
|
||||||
|
def self.up
|
||||||
|
add_column(CompanyInfo.table_name, :original_id, :integer)
|
||||||
|
add_column(Invoice.table_name, :company_info_id, :integer)
|
||||||
|
ci = CompanyInfo.last
|
||||||
|
Invoice.all.each do |i|
|
||||||
|
i.company_info = ci
|
||||||
|
i.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.down
|
||||||
|
remove_column(CompanyInfo.table_name, :original_id)
|
||||||
|
remove_column(Invoice.table_name, :company_info_id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end # StopTime::Models
|
end # StopTime::Models
|
||||||
|
|
||||||
# = The Stop… Camping Time! controllers
|
# = The Stop… Camping Time! controllers
|
||||||
|
|
Loading…
Reference in New Issue