unidom-order 1.0.1 → 1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 55c5078b2fea9eb930fa000af80202be6d9f521a
4
- data.tar.gz: 655d247081fdd06b42c5015b53180615dd01de5d
3
+ metadata.gz: 886e0f2fc020d095320a1625b35811e72134a62c
4
+ data.tar.gz: 1caf01e51ec566eb451937b3c06bff9e42873424
5
5
  SHA512:
6
- metadata.gz: e51b95e4363dfe8aaf0f07b39b2cd2dde1fedbe7582b0168893ff4d632dc700b25dee3d1bdd97ccf0879e7d0b171156e10ae8793c521d6004c28d185c616b8fd
7
- data.tar.gz: 44cd9a09758f125e2013e931fa6d7b95c058d2435c498b0aa29436af80efbf2490cf8eeef0689995fb7fb09ad9747a2f824fa19304efa137f681b385458f17fc
6
+ metadata.gz: ae16527ac881d663e0f6e2ddaf5cb2b2725abcc13e291642496a8d4570be800bb732b84c854f53142263dbbc3a613f6703d383cb70ca34e5263206ac84f50b5d
7
+ data.tar.gz: 2ff4125a24922b3f7547474f7dbd4b492adcaa8a9b84e580563818d2642b1e1d84bec51ad3722f3fcc5c585b3fda3d3ec8f24085dfafecd36b716b4dc0c9fdbf
data/README.md CHANGED
@@ -86,3 +86,17 @@ Unidom::Order::OrderItem.order! product, of: order, unit_price: 1080.00, quantit
86
86
  Unidom::Order::OrderAdjustment.adjust! order, amount: 20, due_to: 'DSCT'
87
87
  # Add the given adjustment into the given order
88
88
  ```
89
+
90
+ ## Include the Concerns
91
+ ```ruby
92
+ include Unidom::Order::AsOrderPlacer
93
+ include Unidom::Order::AsOrderTaker
94
+ ```
95
+
96
+ ### As Order Placer concern
97
+ The As Order Placer concern do the following tasks for the includer automatically:
98
+ 1. Define the has_many :placed_orders macro as: ``has_many :placed_orders, class_name: 'Unidom::Order::Order', as: :placer``
99
+
100
+ ### As Order Taker concern
101
+ The As Order Taker concern do the following tasks for the includer automatically:
102
+ 1. Define the has_many :taken_orders macro as: ``has_many :taken_orders, class_name: 'Unidom::Order::Order', as: :taker``
@@ -0,0 +1,11 @@
1
+ module Unidom::Order::Concerns::AsAdjusted
2
+
3
+ extend ActiveSupport::Concern
4
+
5
+ included do |includer|
6
+
7
+ has_many :adjustments, class_name: 'Unidom::Order::OrderAdjustment', as: :adjusted
8
+
9
+ end
10
+
11
+ end
@@ -0,0 +1,11 @@
1
+ module Unidom::Order::Concerns::AsOrderPlacer
2
+
3
+ extend ActiveSupport::Concern
4
+
5
+ included do |includer|
6
+
7
+ has_many :placed_orders, class_name: 'Unidom::Order::Order', as: :placer
8
+
9
+ end
10
+
11
+ end
@@ -0,0 +1,11 @@
1
+ module Unidom::Order::Concerns::AsOrderTaker
2
+
3
+ extend ActiveSupport::Concern
4
+
5
+ included do |includer|
6
+
7
+ has_many :taken_orders, class_name: 'Unidom::Order::Order', as: :taker
8
+
9
+ end
10
+
11
+ end
@@ -5,6 +5,7 @@ class Unidom::Order::Order < ActiveRecord::Base
5
5
  self.table_name = 'unidom_orders'
6
6
 
7
7
  include Unidom::Common::Concerns::ModelExtension
8
+ include Unidom::Order::Concerns::AsAdjusted
8
9
 
9
10
  validates :number, presence: true, length: { is: self.columns_hash['number'].limit }
10
11
  validates :purchase_amount, presence: true, numericality: { less_than: 1000000000, greater_than: 0 }
@@ -13,8 +14,7 @@ class Unidom::Order::Order < ActiveRecord::Base
13
14
  belongs_to :placer, polymorphic: true
14
15
  belongs_to :taker, polymorphic: true
15
16
 
16
- has_many :items, class_name: 'Unidom::Order::OrderItem'
17
- has_many :adjustments, class_name: 'Unidom::Order::OrderAdjustment', as: :adjusted
17
+ has_many :items, class_name: 'Unidom::Order::OrderItem'
18
18
 
19
19
  scope :placed_by, ->(placer) { where placer: placer }
20
20
  scope :taken_by, ->(taker) { where taker: taker }
@@ -17,6 +17,7 @@ class Unidom::Order::OrderAdjustment < ActiveRecord::Base
17
17
  if adjustment.present?
18
18
  adjustment.amount = amount
19
19
  adjustment.save!
20
+ adjustment
20
21
  else
21
22
  create! adjusted: adjusted, amount: amount, adjustment_factor_code: due_to
22
23
  end
@@ -5,6 +5,7 @@ class Unidom::Order::OrderItem < ActiveRecord::Base
5
5
  self.table_name = 'unidom_order_items'
6
6
 
7
7
  include Unidom::Common::Concerns::ModelExtension
8
+ include Unidom::Order::Concerns::AsAdjusted
8
9
 
9
10
  validates :ordinal, presence: true, numericality: { only_integer: true, greater_than: 0, less_than: 1000000000 }
10
11
  validates :unit_price, presence: true, numericality: { less_than: 1000000000, greater_than: 0 }
@@ -16,8 +17,6 @@ class Unidom::Order::OrderItem < ActiveRecord::Base
16
17
  belongs_to :ordered, polymorphic: true
17
18
  belongs_to :placer, polymorphic: true
18
19
 
19
- has_many :adjustments, class_name: 'Unidom::Order::OrderAdjustment', as: :adjusted
20
-
21
20
  scope :order_is, ->(order) { where order_id: (order.respond_to?(:id) ? order.id : order) }
22
21
  scope :ordered_is, ->(ordered) { where ordered: ordered }
23
22
  scope :placed_by, ->(placer) { where placer: placer }
@@ -9,7 +9,7 @@
9
9
 
10
10
  <%= yield %>
11
11
 
12
- <%= javascript_include_tag 'order/application' %>
12
+ <%= javascript_include_tag 'unidom/order/application' %>
13
13
 
14
14
  </body>
15
15
  </html>
@@ -1,5 +1,5 @@
1
1
  module Unidom
2
2
  module Order
3
- VERSION = '1.0.1'.freeze
3
+ VERSION = '1.1'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unidom-order
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: '1.1'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Topbit Du
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-15 00:00:00.000000000 Z
11
+ date: 2016-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unidom-common
@@ -40,6 +40,9 @@ files:
40
40
  - app/assets/stylesheets/unidom/order/application.css
41
41
  - app/controllers/unidom/order/application_controller.rb
42
42
  - app/helpers/unidom/order/application_helper.rb
43
+ - app/models/unidom/order/concerns/as_adjusted.rb
44
+ - app/models/unidom/order/concerns/as_order_placer.rb
45
+ - app/models/unidom/order/concerns/as_order_taker.rb
43
46
  - app/models/unidom/order/order.rb
44
47
  - app/models/unidom/order/order_adjustment.rb
45
48
  - app/models/unidom/order/order_item.rb