app/models/piggybak/address.rb in piggybak-0.4.12 vs app/models/piggybak/address.rb in piggybak-0.4.13
- old
+ new
@@ -1,19 +1,22 @@
module Piggybak
class Address < ActiveRecord::Base
belongs_to :state
belongs_to :country
+ has_one :order_shipping, :foreign_key => "shipping_address_id", :class_name => "Piggybak::Order"
+ has_one :order_billing, :foreign_key => "billing_address_id", :class_name => "Piggybak::Order"
validates_presence_of :firstname
validates_presence_of :lastname
validates_presence_of :address1
validates_presence_of :city
validates_presence_of :state_id
validates_presence_of :country_id
validates_presence_of :zip
after_initialize :set_default_country
+ after_save :document_address_changes
def set_default_country
self.country ||= Country.find_by_abbr(Piggybak.config.default_country)
end
@@ -29,8 +32,18 @@
end
alias :display :admin_label
def state_display
self.state ? self.state.name : self.state_id
+ end
+
+ def document_address_changes
+ # TODO: Fix this. It isn't working.
+ if self.order_billing.present? && self.changed?
+ self.order_billing.recorded_changes << self.formatted_changes
+ end
+ if self.order_shipping.present? && self.changed?
+ self.order_shipping.recorded_changes << self.formatted_changes
+ end
end
end
end