spree_backend 2.3.13 → 2.4.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (163) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree/backend/address_states.js +1 -3
  3. data/app/assets/javascripts/spree/backend/adjustments.js.coffee +1 -2
  4. data/app/assets/javascripts/spree/backend/admin.js.erb +11 -1
  5. data/app/assets/javascripts/spree/backend/checkouts/edit.js +1 -20
  6. data/app/assets/javascripts/spree/backend/line_items.js.coffee +2 -5
  7. data/app/assets/javascripts/spree/backend/line_items_on_order_edit.js.erb +50 -0
  8. data/app/assets/javascripts/spree/backend/option_type_autocomplete.js.erb +2 -4
  9. data/app/assets/javascripts/spree/backend/orders/edit_form.js +2 -3
  10. data/app/assets/javascripts/spree/backend/payments/edit.js.coffee +5 -5
  11. data/app/assets/javascripts/spree/backend/product_picker.js +2 -4
  12. data/app/assets/javascripts/spree/backend/returns/expedited_exchanges_warning.coffee +4 -0
  13. data/app/assets/javascripts/spree/backend/returns/return_item_selection.js +35 -0
  14. data/app/assets/javascripts/spree/backend/shipments.js.erb +39 -52
  15. data/app/assets/javascripts/spree/backend/stock_movement.js.coffee +1 -2
  16. data/app/assets/javascripts/spree/backend/stock_transfer.js.coffee +1 -2
  17. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js.erb +8 -6
  18. data/app/assets/javascripts/spree/backend/taxonomy.js.coffee +5 -24
  19. data/app/assets/javascripts/spree/backend/taxons.js.coffee +2 -4
  20. data/app/assets/javascripts/spree/backend/user_picker.js +2 -3
  21. data/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee.erb +2 -2
  22. data/app/assets/stylesheets/spree/backend/components/_navigation.scss +0 -5
  23. data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +5 -2
  24. data/app/assets/stylesheets/spree/backend/sections/_adjustments_table.scss +8 -0
  25. data/app/assets/stylesheets/spree/backend/sections/_products.scss +4 -0
  26. data/app/assets/stylesheets/spree/backend/sections/_return_authorizations.scss +24 -0
  27. data/app/assets/stylesheets/spree/backend/sections/_taxons.scss +1 -7
  28. data/app/assets/stylesheets/spree/backend/shared/_tables.scss +8 -0
  29. data/app/assets/stylesheets/spree/backend/spree_admin.scss +2 -0
  30. data/app/assets/stylesheets/spree/backend.css +1 -1
  31. data/app/controllers/spree/admin/adjustments_controller.rb +1 -7
  32. data/app/controllers/spree/admin/base_controller.rb +8 -2
  33. data/app/controllers/spree/admin/customer_returns_controller.rb +67 -0
  34. data/app/controllers/spree/admin/general_settings_controller.rb +1 -1
  35. data/app/controllers/spree/admin/images_controller.rb +1 -1
  36. data/app/controllers/spree/admin/log_entries_controller.rb +2 -2
  37. data/app/controllers/spree/admin/option_types_controller.rb +1 -1
  38. data/app/controllers/spree/admin/orders/customer_details_controller.rb +2 -2
  39. data/app/controllers/spree/admin/orders_controller.rb +21 -10
  40. data/app/controllers/spree/admin/payment_methods_controller.rb +3 -3
  41. data/app/controllers/spree/admin/payments_controller.rb +6 -12
  42. data/app/controllers/spree/admin/product_properties_controller.rb +2 -2
  43. data/app/controllers/spree/admin/products_controller.rb +1 -1
  44. data/app/controllers/spree/admin/promotion_actions_controller.rb +2 -2
  45. data/app/controllers/spree/admin/promotion_categories_controller.rb +6 -0
  46. data/app/controllers/spree/admin/promotion_rules_controller.rb +2 -2
  47. data/app/controllers/spree/admin/promotions_controller.rb +2 -1
  48. data/app/controllers/spree/admin/refund_reasons_controller.rb +6 -0
  49. data/app/controllers/spree/admin/refunds_controller.rb +31 -0
  50. data/app/controllers/spree/admin/reimbursement_types_controller.rb +6 -0
  51. data/app/controllers/spree/admin/reimbursements_controller.rb +44 -0
  52. data/app/controllers/spree/admin/resource_controller.rb +2 -2
  53. data/app/controllers/spree/admin/return_authorization_reasons_controller.rb +6 -0
  54. data/app/controllers/spree/admin/return_authorizations_controller.rb +35 -5
  55. data/app/controllers/spree/admin/return_items_controller.rb +9 -0
  56. data/app/controllers/spree/admin/search_controller.rb +1 -1
  57. data/app/controllers/spree/admin/shipping_methods_controller.rb +3 -3
  58. data/app/controllers/spree/admin/states_controller.rb +1 -1
  59. data/app/controllers/spree/admin/stock_items_controller.rb +1 -1
  60. data/app/controllers/spree/admin/stock_locations_controller.rb +1 -1
  61. data/app/controllers/spree/admin/stock_transfers_controller.rb +2 -2
  62. data/app/controllers/spree/admin/tax_rates_controller.rb +1 -1
  63. data/app/controllers/spree/admin/users_controller.rb +4 -4
  64. data/app/controllers/spree/admin/variants_controller.rb +2 -2
  65. data/app/controllers/spree/admin/zones_controller.rb +1 -1
  66. data/app/helpers/spree/admin/customer_returns_helper.rb +9 -0
  67. data/app/helpers/spree/admin/navigation_helper.rb +1 -1
  68. data/app/helpers/spree/admin/reimbursement_type_helper.rb +9 -0
  69. data/app/helpers/spree/admin/reimbursements_helper.rb +14 -0
  70. data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +7 -3
  71. data/app/views/spree/admin/customer_returns/_reimbursements_table.html.erb +36 -0
  72. data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +50 -0
  73. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +43 -0
  74. data/app/views/spree/admin/customer_returns/edit.html.erb +65 -0
  75. data/app/views/spree/admin/customer_returns/index.html.erb +60 -0
  76. data/app/views/spree/admin/customer_returns/new.html.erb +60 -0
  77. data/app/views/spree/admin/general_settings/edit.html.erb +6 -0
  78. data/app/views/spree/admin/images/_form.html.erb +6 -6
  79. data/app/views/spree/admin/log_entries/_credit_card.html.erb +4 -0
  80. data/app/views/spree/admin/log_entries/index.html.erb +2 -5
  81. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +5 -7
  82. data/app/views/spree/admin/option_types/edit.html.erb +9 -2
  83. data/app/views/spree/admin/orders/_add_line_item.html.erb +18 -0
  84. data/app/views/spree/admin/orders/_form.html.erb +7 -7
  85. data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +40 -0
  86. data/app/views/spree/admin/orders/_shipment.html.erb +1 -1
  87. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +5 -4
  88. data/app/views/spree/admin/orders/cart.html.erb +39 -0
  89. data/app/views/spree/admin/orders/customer_details/_form.html.erb +1 -1
  90. data/app/views/spree/admin/orders/edit.html.erb +2 -2
  91. data/app/views/spree/admin/orders/index.html.erb +8 -14
  92. data/app/views/spree/admin/payment_methods/_form.html.erb +7 -7
  93. data/app/views/spree/admin/payments/_list.html.erb +11 -3
  94. data/app/views/spree/admin/payments/index.html.erb +13 -1
  95. data/app/views/spree/admin/product_properties/_product_property_fields.html.erb +4 -6
  96. data/app/views/spree/admin/products/_form.html.erb +20 -6
  97. data/app/views/spree/admin/products/new.html.erb +3 -3
  98. data/app/views/spree/admin/products/stock.html.erb +1 -1
  99. data/app/views/spree/admin/promotion_categories/_form.html.erb +10 -0
  100. data/app/views/spree/admin/promotion_categories/edit.html.erb +17 -0
  101. data/app/views/spree/admin/promotion_categories/index.html.erb +34 -0
  102. data/app/views/spree/admin/promotion_categories/new.html.erb +16 -0
  103. data/app/views/spree/admin/promotion_rules/create.js.erb +2 -0
  104. data/app/views/spree/admin/promotions/_actions.html.erb +1 -1
  105. data/app/views/spree/admin/promotions/_form.html.erb +5 -0
  106. data/app/views/spree/admin/promotions/actions/_create_line_items.html.erb +7 -7
  107. data/app/views/spree/admin/promotions/index.html.erb +16 -6
  108. data/app/views/spree/admin/promotions/rules/_item_total.html.erb +4 -2
  109. data/app/views/spree/admin/promotions/rules/_one_use_per_user.html.erb +0 -0
  110. data/app/views/spree/admin/promotions/rules/_taxon.html.erb +9 -0
  111. data/app/views/spree/admin/prototypes/_form.html.erb +2 -2
  112. data/app/views/spree/admin/refund_reasons/edit.html.erb +4 -0
  113. data/app/views/spree/admin/refund_reasons/index.html.erb +5 -0
  114. data/app/views/spree/admin/refund_reasons/new.html.erb +4 -0
  115. data/app/views/spree/admin/refunds/edit.html.erb +31 -0
  116. data/app/views/spree/admin/refunds/new.html.erb +43 -0
  117. data/app/views/spree/admin/reimbursement_types/index.html.erb +33 -0
  118. data/app/views/spree/admin/reimbursements/edit.html.erb +108 -0
  119. data/app/views/spree/admin/reimbursements/index.html.erb +34 -0
  120. data/app/views/spree/admin/reimbursements/show.html.erb +94 -0
  121. data/app/views/spree/admin/return_authorization_reasons/edit.html.erb +4 -0
  122. data/app/views/spree/admin/return_authorization_reasons/index.html.erb +5 -0
  123. data/app/views/spree/admin/return_authorization_reasons/new.html.erb +4 -0
  124. data/app/views/spree/admin/return_authorizations/_form.html.erb +62 -50
  125. data/app/views/spree/admin/return_authorizations/edit.html.erb +6 -8
  126. data/app/views/spree/admin/return_authorizations/index.html.erb +3 -4
  127. data/app/views/spree/admin/return_authorizations/new.html.erb +1 -1
  128. data/app/views/spree/admin/shared/_configuration_menu.html.erb +5 -2
  129. data/app/views/spree/admin/shared/_destroy.js.erb +1 -1
  130. data/app/views/spree/admin/shared/_head.html.erb +1 -2
  131. data/app/views/spree/admin/shared/_order_submenu.html.erb +17 -3
  132. data/app/views/spree/admin/shared/_order_summary.html.erb +7 -0
  133. data/app/views/spree/admin/shared/_product_tabs.html.erb +1 -0
  134. data/app/views/spree/admin/shared/_refunds.html.erb +32 -0
  135. data/app/views/spree/admin/shared/_report_order_criteria.html.erb +12 -12
  136. data/app/views/spree/admin/shared/_tabs.html.erb +2 -2
  137. data/app/views/spree/admin/shared/named_types/_edit.html.erb +17 -0
  138. data/app/views/spree/admin/shared/named_types/_form.html.erb +16 -0
  139. data/app/views/spree/admin/shared/named_types/_index.html.erb +52 -0
  140. data/app/views/spree/admin/shared/named_types/_new.html.erb +16 -0
  141. data/app/views/spree/admin/shipping_categories/_form.html.erb +1 -1
  142. data/app/views/spree/admin/shipping_methods/_form.html.erb +8 -0
  143. data/app/views/spree/admin/stock_locations/_form.html.erb +77 -59
  144. data/app/views/spree/admin/stock_transfers/new.html.erb +2 -2
  145. data/app/views/spree/admin/tax_categories/_form.html.erb +9 -2
  146. data/app/views/spree/admin/tax_categories/index.html.erb +4 -1
  147. data/app/views/spree/admin/taxons/index.html.erb +4 -0
  148. data/app/views/spree/admin/trackers/_form.html.erb +4 -4
  149. data/app/views/spree/admin/users/_form.html.erb +1 -1
  150. data/app/views/spree/admin/users/index.html.erb +1 -1
  151. data/app/views/spree/admin/variants/_autocomplete_line_items_stock.js.erb +49 -0
  152. data/app/views/spree/admin/variants/_autocomplete_stock.js.erb +0 -1
  153. data/app/views/spree/admin/variants/_split.js.erb +1 -1
  154. data/app/views/spree/admin/zones/_form.html.erb +1 -1
  155. data/config/initializers/assets.rb +1 -1
  156. data/config/routes.rb +22 -1
  157. metadata +62 -32
  158. data/app/controllers/spree/admin/inventory_units_controller.rb +0 -6
  159. data/app/controllers/spree/admin/line_items_controller.rb +0 -49
  160. data/app/controllers/spree/admin/overview_controller.rb +0 -11
  161. data/app/views/spree/admin/inventory_units/adjust.html.erb +0 -31
  162. data/app/views/spree/test_mailer/test_email.text.erb +0 -4
  163. data/config/locales/en.yml +0 -6
@@ -84,11 +84,6 @@ nav.menu {
84
84
  position: relative;
85
85
  text-align: center;
86
86
 
87
- @media(max-width: 1009px) {
88
- top: -3px;
89
- margin-bottom: -5px;
90
- }
91
-
92
87
  i {
93
88
  display: inline;
94
89
  }
@@ -21,8 +21,11 @@
21
21
  }
22
22
 
23
23
  .select2-search-choice-close {
24
- background-image: none !important;
24
+ @extend .fa;
25
+ @extend .fa-times;
26
+ margin-top: 2px;
25
27
  font-size: 100% !important;
28
+ background-image: none !important;
26
29
  }
27
30
  }
28
31
 
@@ -173,7 +176,7 @@
173
176
  background-image: none !important;
174
177
  font-size: 85% !important;
175
178
  @extend .fa;
176
- @extend .fa-void;
179
+ @extend .fa-times;
177
180
  margin-left: 2px;
178
181
  color: $color-1;
179
182
  &:before {
@@ -0,0 +1,8 @@
1
+ [data-hook="adjustment_buttons"] {
2
+ tr {
3
+ div {
4
+ width: 50%;
5
+ float: left;
6
+ }
7
+ }
8
+ }
@@ -14,6 +14,10 @@
14
14
  input, select, textarea, .select2-container {
15
15
  width: 100%;
16
16
  }
17
+ input[type="checkbox"] {
18
+ width: auto;
19
+ vertical-align: bottom;
20
+ }
17
21
  }
18
22
 
19
23
  [data-hook="admin_product_form_multiple_variants"] {
@@ -0,0 +1,24 @@
1
+ @import "spree/backend/globals/variables";
2
+
3
+ .return-items-table {
4
+ .refund-amount-input {
5
+ width: 80px;
6
+ }
7
+ .fa-thumbs-up {
8
+ margin-bottom: 10px;
9
+ }
10
+ .select2-container {
11
+ text-align: left;
12
+ max-width: 150px;
13
+ }
14
+ }
15
+ .expedited-exchanges-warning {
16
+ display: none;
17
+ color: black;
18
+ padding: 15px;
19
+ margin: 10px 0;
20
+ font-weight: bold;
21
+ background-color: $color-6;
22
+ border-radius: 4px;
23
+ opacity: 0.6;
24
+ }
@@ -12,10 +12,4 @@
12
12
  }
13
13
 
14
14
  margin: 10px;
15
- }
16
-
17
- #taxon_products {
18
- > li {
19
- height: 170px;
20
- }
21
- }
15
+ }
@@ -92,6 +92,14 @@ table {
92
92
  background-color: $color-notice;
93
93
  color: $color-1;
94
94
  }
95
+ .fa-thumbs-up:hover {
96
+ background-color: $color-success;
97
+ color: $color-1;
98
+ }
99
+ .fa-thumbs-down:hover {
100
+ background-color: $color-error;
101
+ color: $color-1;
102
+ }
95
103
  }
96
104
 
97
105
  input[type="number"],
@@ -26,6 +26,7 @@
26
26
  @import 'spree/backend/plugins/token-input';
27
27
  @import 'spree/backend/plugins/jstree';
28
28
 
29
+ @import 'spree/backend/sections/adjustments_table';
29
30
  @import 'spree/backend/sections/alerts';
30
31
  @import 'spree/backend/sections/orders';
31
32
  @import 'spree/backend/sections/overview';
@@ -33,6 +34,7 @@
33
34
  @import 'spree/backend/sections/promotions';
34
35
  @import 'spree/backend/sections/edit_checkouts';
35
36
  @import 'spree/backend/sections/bulk_transfer';
37
+ @import 'spree/backend/sections/return_authorizations';
36
38
  @import 'spree/backend/sections/tax_zones';
37
39
  @import 'spree/backend/sections/log_entries';
38
40
  @import 'spree/backend/sections/taxons';
@@ -2,7 +2,7 @@
2
2
  * This is a manifest file that'll automatically include all the stylesheets available in this directory
3
3
  * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4
4
  * the top of the compiled file, but it's generally better to create a new file per style scope.
5
-
5
+
6
6
  *= require jquery.alerts/jquery.alerts
7
7
  *= require jquery.alerts/jquery.alerts.spree
8
8
  *= require responsive-tables
@@ -8,7 +8,7 @@ module Spree
8
8
  destroy.after :update_totals
9
9
  update.after :update_totals
10
10
 
11
- skip_before_filter :load_resource, only: [:toggle_state, :edit, :update, :destroy]
11
+ skip_before_action :load_resource, only: [:toggle_state, :edit, :update, :destroy]
12
12
 
13
13
  before_action :find_adjustment, only: [:destroy, :edit, :update]
14
14
 
@@ -27,12 +27,6 @@ module Spree
27
27
  @order.reload.update!
28
28
  end
29
29
 
30
- # Override method used to create a new instance to correctly
31
- # associate adjustment with order
32
- def build_resource
33
- parent.adjustments.build(order: parent)
34
- end
35
-
36
30
  end
37
31
  end
38
32
  end
@@ -7,8 +7,8 @@ module Spree
7
7
  helper 'spree/admin/tables'
8
8
  layout '/spree/layouts/admin'
9
9
 
10
- before_filter :check_alerts
11
- before_filter :authorize_admin
10
+ before_action :check_alerts
11
+ before_action :authorize_admin
12
12
 
13
13
  protected
14
14
 
@@ -87,6 +87,12 @@ module Spree
87
87
  Spree::Backend::Config[:locale]
88
88
  end
89
89
 
90
+ def can_not_transition_without_customer_info
91
+ unless @order.billing_address.present?
92
+ flash[:notice] = Spree.t(:fill_in_customer_info)
93
+ redirect_to edit_admin_order_customer_url(@order)
94
+ end
95
+ end
90
96
  end
91
97
  end
92
98
  end
@@ -0,0 +1,67 @@
1
+ module Spree
2
+ module Admin
3
+ class CustomerReturnsController < ResourceController
4
+ belongs_to 'spree/order', find_by: :number
5
+
6
+ before_action :parent # ensure order gets loaded to support our pseudo parent-child relationship
7
+ before_action :load_form_data, only: [:new, :edit]
8
+
9
+ create.before :build_return_items_from_params
10
+ create.fails :load_form_data
11
+
12
+ def edit
13
+ @pending_return_items = @customer_return.return_items.select(&:pending?)
14
+ @accepted_return_items = @customer_return.return_items.select(&:accepted?)
15
+ @rejected_return_items = @customer_return.return_items.select(&:rejected?)
16
+ @manual_intervention_return_items = @customer_return.return_items.select(&:manual_intervention_required?)
17
+ @pending_reimbursements = @customer_return.reimbursements.select(&:pending?)
18
+
19
+ super
20
+ end
21
+
22
+ private
23
+
24
+ def location_after_save
25
+ url_for([:edit, :admin, @order, @customer_return])
26
+ end
27
+
28
+ def build_resource
29
+ Spree::CustomerReturn.new
30
+ end
31
+
32
+ def find_resource
33
+ Spree::CustomerReturn.accessible_by(current_ability, :read).find(params[:id])
34
+ end
35
+
36
+ def collection
37
+ parent # trigger loading the order
38
+ @collection ||= Spree::ReturnItem
39
+ .accessible_by(current_ability, :read)
40
+ .where(inventory_unit_id: @order.inventory_units.pluck(:id))
41
+ .map(&:customer_return).uniq.compact
42
+ @customer_returns = @collection
43
+ end
44
+
45
+ def load_form_data
46
+ return_items = @order.inventory_units.map(&:current_or_new_return_item).reject(&:customer_return_id)
47
+ @rma_return_items, @new_return_items = return_items.partition(&:return_authorization_id)
48
+ end
49
+
50
+ def permitted_resource_params
51
+ @permitted_resource_params ||= params.require('customer_return').permit(permitted_customer_return_attributes)
52
+ end
53
+
54
+ def build_return_items_from_params
55
+ return_items_params = permitted_resource_params.delete(:return_items_attributes).values
56
+
57
+ @customer_return.return_items = return_items_params.map do |item_params|
58
+ next unless item_params.delete('returned') == '1'
59
+ return_item = item_params[:id] ? Spree::ReturnItem.find(item_params[:id]) : Spree::ReturnItem.new
60
+ return_item.attributes = item_params
61
+ return_item
62
+ end.compact
63
+ end
64
+
65
+ end
66
+ end
67
+ end
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  module Admin
3
3
  class GeneralSettingsController < Spree::Admin::BaseController
4
- before_filter :set_store
4
+ before_action :set_store
5
5
 
6
6
  def edit
7
7
  @preferences_security = [:allow_ssl_in_production,
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  module Admin
3
3
  class ImagesController < ResourceController
4
- before_filter :load_data
4
+ before_action :load_data
5
5
 
6
6
  create.before :set_viewable
7
7
  update.before :set_viewable
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  module Admin
3
3
  class LogEntriesController < Spree::Admin::BaseController
4
- before_filter :find_order_and_payment
4
+ before_action :find_order_and_payment
5
5
 
6
6
  def index
7
7
  @log_entries = @payment.log_entries
@@ -16,4 +16,4 @@ module Spree
16
16
  end
17
17
  end
18
18
  end
19
- end
19
+ end
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  module Admin
3
3
  class OptionTypesController < ResourceController
4
- before_filter :setup_new_option_value, :only => [:edit]
4
+ before_action :setup_new_option_value, only: :edit
5
5
 
6
6
  def update_values_positions
7
7
  params[:positions].each do |id, index|
@@ -2,7 +2,7 @@ module Spree
2
2
  module Admin
3
3
  module Orders
4
4
  class CustomerDetailsController < Spree::Admin::BaseController
5
- before_filter :load_order
5
+ before_action :load_order
6
6
 
7
7
  def show
8
8
  edit
@@ -27,7 +27,7 @@ module Spree
27
27
 
28
28
  @order.refresh_shipment_rates
29
29
  flash[:success] = Spree.t('customer_details_updated')
30
- redirect_to admin_order_customer_path(@order)
30
+ redirect_to edit_admin_order_url(@order)
31
31
  else
32
32
  render :action => :edit
33
33
  end
@@ -1,8 +1,8 @@
1
1
  module Spree
2
2
  module Admin
3
3
  class OrdersController < Spree::Admin::BaseController
4
- before_filter :initialize_order_events
5
- before_filter :load_order, :only => [:edit, :update, :cancel, :resume, :approve, :resend, :open_adjustments, :close_adjustments]
4
+ before_action :initialize_order_events
5
+ before_action :load_order, only: [:edit, :update, :cancel, :resume, :approve, :resend, :open_adjustments, :close_adjustments, :cart]
6
6
 
7
7
  respond_to :html
8
8
 
@@ -20,11 +20,11 @@ module Spree
20
20
 
21
21
  params[:q].delete(:inventory_units_shipment_id_null) if params[:q][:inventory_units_shipment_id_null] == "0"
22
22
 
23
- if params[:q][:created_at_gt].present?
23
+ if !params[:q][:created_at_gt].blank?
24
24
  params[:q][:created_at_gt] = Time.zone.parse(params[:q][:created_at_gt]).beginning_of_day rescue ""
25
25
  end
26
26
 
27
- if params[:q][:created_at_lt].present?
27
+ if !params[:q][:created_at_lt].blank?
28
28
  params[:q][:created_at_lt] = Time.zone.parse(params[:q][:created_at_lt]).end_of_day rescue ""
29
29
  end
30
30
 
@@ -49,15 +49,26 @@ module Spree
49
49
 
50
50
  def new
51
51
  @order = Order.create(order_params)
52
- redirect_to edit_admin_order_url(@order)
52
+ redirect_to cart_admin_order_url(@order)
53
53
  end
54
54
 
55
55
  def edit
56
+ can_not_transition_without_customer_info
57
+
56
58
  unless @order.completed?
57
59
  @order.refresh_shipment_rates
58
60
  end
59
61
  end
60
62
 
63
+ def cart
64
+ unless @order.completed?
65
+ @order.refresh_shipment_rates
66
+ end
67
+ if @order.shipped_shipments.count > 0
68
+ redirect_to edit_admin_order_url(@order)
69
+ end
70
+ end
71
+
61
72
  def update
62
73
  if @order.update_attributes(params[:order]) && @order.line_items.present?
63
74
  @order.update!
@@ -73,7 +84,7 @@ module Spree
73
84
  end
74
85
 
75
86
  def cancel
76
- @order.cancel!
87
+ @order.canceled_by(try_spree_current_user)
77
88
  flash[:success] = Spree.t(:order_canceled)
78
89
  redirect_to :back
79
90
  end
@@ -98,16 +109,16 @@ module Spree
98
109
  end
99
110
 
100
111
  def open_adjustments
101
- adjustments = @order.all_adjustments.where(state: 'closed')
102
- adjustments.update_all(state: 'open')
112
+ adjustments = @order.adjustments.where(:state => 'closed')
113
+ adjustments.update_all(:state => 'open')
103
114
  flash[:success] = Spree.t(:all_adjustments_opened)
104
115
 
105
116
  respond_with(@order) { |format| format.html { redirect_to :back } }
106
117
  end
107
118
 
108
119
  def close_adjustments
109
- adjustments = @order.all_adjustments.where(state: 'open')
110
- adjustments.update_all(state: 'closed')
120
+ adjustments = @order.adjustments.where(:state => 'open')
121
+ adjustments.update_all(:state => 'closed')
111
122
  flash[:success] = Spree.t(:all_adjustments_closed)
112
123
 
113
124
  respond_with(@order) { |format| format.html { redirect_to :back } }
@@ -1,9 +1,9 @@
1
1
  module Spree
2
2
  module Admin
3
3
  class PaymentMethodsController < ResourceController
4
- skip_before_filter :load_resource, :only => [:create]
5
- before_filter :load_data
6
- before_filter :validate_payment_method_provider, :only => :create
4
+ skip_before_action :load_resource, only: :create
5
+ before_action :load_data
6
+ before_action :validate_payment_method_provider, only: :create
7
7
 
8
8
  respond_to :html
9
9
 
@@ -3,15 +3,16 @@ module Spree
3
3
  class PaymentsController < Spree::Admin::BaseController
4
4
  include Spree::Backend::Callbacks
5
5
 
6
- before_filter :load_order, :only => [:create, :new, :index, :fire]
7
- before_filter :load_payment, :except => [:create, :new, :index]
8
- before_filter :load_data
9
- before_filter :can_transition_to_payment
6
+ before_action :load_order, only: [:create, :new, :index, :fire]
7
+ before_action :load_payment, except: [:create, :new, :index]
8
+ before_action :load_data
9
+ before_action :can_not_transition_without_customer_info
10
10
 
11
11
  respond_to :html
12
12
 
13
13
  def index
14
- @payments = @order.payments
14
+ @payments = @order.payments.includes(:refunds => :reason)
15
+ @refunds = @payments.flat_map(&:refunds)
15
16
  redirect_to new_admin_order_payment_url(@order) if @payments.empty?
16
17
  end
17
18
 
@@ -84,13 +85,6 @@ module Spree
84
85
  end
85
86
  end
86
87
 
87
- def can_transition_to_payment
88
- unless @order.billing_address.present?
89
- flash[:notice] = Spree.t(:fill_in_customer_info)
90
- redirect_to edit_admin_order_customer_url(@order)
91
- end
92
- end
93
-
94
88
  def load_order
95
89
  @order = Order.find_by_number!(params[:order_id])
96
90
  authorize! action, @order
@@ -2,8 +2,8 @@ module Spree
2
2
  module Admin
3
3
  class ProductPropertiesController < ResourceController
4
4
  belongs_to 'spree/product', :find_by => :slug
5
- before_filter :find_properties
6
- before_filter :setup_property, :only => [:index]
5
+ before_action :find_properties
6
+ before_action :setup_property, only: :index
7
7
 
8
8
  private
9
9
  def find_properties
@@ -3,7 +3,7 @@ module Spree
3
3
  class ProductsController < ResourceController
4
4
  helper 'spree/products'
5
5
 
6
- before_filter :load_data, :except => :index
6
+ before_action :load_data, except: :index
7
7
  create.before :create_before
8
8
  update.before :update_before
9
9
  helper_method :clone_object_url
@@ -1,6 +1,6 @@
1
1
  class Spree::Admin::PromotionActionsController < Spree::Admin::BaseController
2
- before_filter :load_promotion, :only => [:create, :destroy]
3
- before_filter :validate_promotion_action_type, :only => :create
2
+ before_action :load_promotion, only: [:create, :destroy]
3
+ before_action :validate_promotion_action_type, only: :create
4
4
 
5
5
  def create
6
6
  @calculators = Spree::Promotion::Actions::CreateAdjustment.calculators
@@ -0,0 +1,6 @@
1
+ module Spree
2
+ module Admin
3
+ class PromotionCategoriesController < ResourceController
4
+ end
5
+ end
6
+ end
@@ -1,8 +1,8 @@
1
1
  class Spree::Admin::PromotionRulesController < Spree::Admin::BaseController
2
2
  helper 'spree/promotion_rules'
3
3
 
4
- before_filter :load_promotion, :only => [:create, :destroy]
5
- before_filter :validate_promotion_rule_type, :only => :create
4
+ before_action :load_promotion, only: [:create, :destroy]
5
+ before_action :validate_promotion_rule_type, only: :create
6
6
 
7
7
  def create
8
8
  # Remove type key from this hash so that we don't attempt
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  module Admin
3
3
  class PromotionsController < ResourceController
4
- before_filter :load_data
4
+ before_action :load_data
5
5
 
6
6
  helper 'spree/promotion_rules'
7
7
 
@@ -12,6 +12,7 @@ module Spree
12
12
 
13
13
  def load_data
14
14
  @calculators = Rails.application.config.spree.calculators.promotion_actions_create_adjustments
15
+ @promotion_categories = Spree::PromotionCategory.order(:name)
15
16
  end
16
17
 
17
18
  def collection
@@ -0,0 +1,6 @@
1
+ module Spree
2
+ module Admin
3
+ class RefundReasonsController < ResourceController
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,31 @@
1
+ module Spree
2
+ module Admin
3
+ class RefundsController < ResourceController
4
+ belongs_to 'spree/payment'
5
+ before_action :load_order
6
+
7
+ helper_method :refund_reasons
8
+
9
+ private
10
+
11
+ def location_after_save
12
+ admin_order_payments_path(@payment.order)
13
+ end
14
+
15
+ def load_order
16
+ # the spree/admin/shared/order_tabs partial expects the @order instance variable to be set
17
+ @order = @payment.order if @payment
18
+ end
19
+
20
+ def refund_reasons
21
+ @refund_reasons ||= RefundReason.active.all
22
+ end
23
+
24
+ def build_resource
25
+ super.tap do |refund|
26
+ refund.amount = refund.payment.credit_allowed
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,6 @@
1
+ module Spree
2
+ module Admin
3
+ class ReimbursementTypesController < ResourceController
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,44 @@
1
+ module Spree
2
+ module Admin
3
+ class ReimbursementsController < ResourceController
4
+ belongs_to 'spree/order', find_by: :number
5
+
6
+ before_action :load_simulated_refunds, only: :edit
7
+
8
+ def perform
9
+ @reimbursement.perform!
10
+ redirect_to location_after_save
11
+ end
12
+
13
+ private
14
+
15
+ def build_resource
16
+ if params[:build_from_customer_return_id].present?
17
+ customer_return = CustomerReturn.find(params[:build_from_customer_return_id])
18
+
19
+ Reimbursement.build_from_customer_return(customer_return)
20
+ else
21
+ super
22
+ end
23
+ end
24
+
25
+ def location_after_save
26
+ if @reimbursement.reimbursed?
27
+ admin_order_reimbursement_path(parent, @reimbursement)
28
+ else
29
+ edit_admin_order_reimbursement_path(parent, @reimbursement)
30
+ end
31
+ end
32
+
33
+ def load_simulated_refunds
34
+ @reimbursement_objects = @reimbursement.simulate
35
+ end
36
+
37
+ # TODO: Remove this when https://github.com/spree/spree/pull/5158 gets merged in
38
+ def permitted_resource_params
39
+ params[object_name].present? ? super : ActionController::Parameters.new
40
+ end
41
+
42
+ end
43
+ end
44
+ end
@@ -2,7 +2,7 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
2
2
  include Spree::Backend::Callbacks
3
3
 
4
4
  helper_method :new_object_url, :edit_object_url, :object_url, :collection_url
5
- before_filter :load_resource, :except => [:update_positions]
5
+ before_action :load_resource, except: :update_positions
6
6
  rescue_from ActiveRecord::RecordNotFound, :with => :resource_not_found
7
7
 
8
8
  respond_to :html
@@ -239,7 +239,7 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
239
239
  #
240
240
  # Other controllers can, should, override it to set custom logic
241
241
  def permitted_resource_params
242
- params.require(object_name).permit!
242
+ params[object_name].present? ? params.require(object_name).permit! : ActionController::Parameters.new
243
243
  end
244
244
 
245
245
  def collection_actions
@@ -0,0 +1,6 @@
1
+ module Spree
2
+ module Admin
3
+ class ReturnAuthorizationReasonsController < ResourceController
4
+ end
5
+ end
6
+ end