diff options
author | Nicolò€ Rebughini <nicolo.rebughini@gmail.com> | 2020-09-17 17:38:58 +0200 |
---|---|---|
committer | Nicolò€ Rebughini <nicolo.rebughini@gmail.com> | 2020-09-17 17:38:58 +0200 |
commit | 6614671689cc337422478fef87cf4703d241c539 (patch) | |
tree | ec1e2d2fd99c4029941ae2c4b3e26f398424a48f | |
parent | 77b8567fa0fd1b8e93a21c71cc0fb9ec0638e1d6 (diff) |
Add order association to subscriptions
4 files changed, 21 insertions, 1 deletions
diff --git a/app/decorators/models/solidus_subscriptions/spree/order/subscription_association.rb b/app/decorators/models/solidus_subscriptions/spree/order/subscription_association.rb new file mode 100644 index 0000000..9dc386a --- /dev/null +++ b/app/decorators/models/solidus_subscriptions/spree/order/subscription_association.rb @@ -0,0 +1,13 @@ +module SolidusSubscriptions + module Spree + module Order + module SubscriptionAssociation + def self.prepended(base) + base.belongs_to :subscription, class_name: '::SolidusSubscriptions::Subscription', optional: true + end + end + end + end +end + +Spree::Order.prepend(SolidusSubscriptions::Spree::Order::SubscriptionAssociation) diff --git a/app/models/solidus_subscriptions/subscription.rb b/app/models/solidus_subscriptions/subscription.rb index 9839773..2f23a6e 100644 --- a/app/models/solidus_subscriptions/subscription.rb +++ b/app/models/solidus_subscriptions/subscription.rb @@ -11,6 +11,7 @@ module SolidusSubscriptions has_many :line_items, class_name: 'SolidusSubscriptions::LineItem', inverse_of: :subscription has_many :installments, class_name: 'SolidusSubscriptions::Installment' has_many :events, class_name: 'SolidusSubscriptions::SubscriptionEvent' + has_many :orders, class_name: '::Spree::Order', inverse_of: :subscription belongs_to :store, class_name: '::Spree::Store' belongs_to :shipping_address, class_name: '::Spree::Address', optional: true belongs_to :billing_address, class_name: '::Spree::Address', optional: true diff --git a/app/services/solidus_subscriptions/checkout.rb b/app/services/solidus_subscriptions/checkout.rb index 3457435..dbc3174 100644 --- a/app/services/solidus_subscriptions/checkout.rb +++ b/app/services/solidus_subscriptions/checkout.rb @@ -58,7 +58,8 @@ module SolidusSubscriptions user: user, email: user.email, store: subscription.store || ::Spree::Store.default, - subscription_order: true + subscription_order: true, + subscription: subscription ) end diff --git a/db/migrate/20200917072152_add_subscription_reference_to_orders.rb b/db/migrate/20200917072152_add_subscription_reference_to_orders.rb new file mode 100644 index 0000000..dae918a --- /dev/null +++ b/db/migrate/20200917072152_add_subscription_reference_to_orders.rb @@ -0,0 +1,5 @@ +class AddSubscriptionReferenceToOrders < ActiveRecord::Migration[5.2] + def change + add_reference :spree_orders, :subscription, null: true, foreign_key: { to_table: :solidus_subscriptions_subscriptions } + end +end |