spree_cm_commissioner 2.13.3 → 2.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.env.example +0 -1
- data/Gemfile.lock +1 -1
- data/app/assets/config/spree_cm_commissioner_manifest.js +0 -1
- data/app/assets/javascripts/spree_cm_commissioner/backend.js +0 -8
- data/app/assets/stylesheets/spree_cm_commissioner/backend/commissioner_admin.css.scss +0 -1
- data/app/controllers/concerns/spree_cm_commissioner/content_cachable.rb +10 -8
- data/app/controllers/spree/admin/base_controller_decorator.rb +0 -12
- data/app/controllers/spree/admin/oauth_application_api_keys_controller.rb +118 -0
- data/app/controllers/spree/admin/oauth_applications_controller.rb +10 -0
- data/app/controllers/spree/api/v2/storefront/dynamic_field_options_controller.rb +12 -0
- data/app/controllers/spree/api/v2/storefront/trip_search_controller.rb +0 -5
- data/app/controllers/spree/api/v2/tenant/trip_search_controller.rb +0 -5
- data/app/helpers/spree/{billing → admin}/navigation_helper_decorator.rb +2 -9
- data/app/interactors/spree_cm_commissioner/user_acleda_bank_web_app_authenticator.rb +38 -0
- data/app/interactors/spree_cm_commissioner/user_wing_bank_web_app_authenticator.rb +39 -0
- data/app/models/concerns/spree_cm_commissioner/oauth_application/mini_app.rb +72 -0
- data/app/models/spree_cm_commissioner/dynamic_field.rb +12 -1
- data/app/models/spree_cm_commissioner/dynamic_field_option.rb +11 -0
- data/app/models/spree_cm_commissioner/guest.rb +8 -0
- data/app/models/spree_cm_commissioner/mini_app_provider/acleda_bank.rb +28 -0
- data/app/models/spree_cm_commissioner/mini_app_provider/base.rb +219 -0
- data/app/models/spree_cm_commissioner/mini_app_provider/vattanac_bank.rb +6 -0
- data/app/models/spree_cm_commissioner/mini_app_provider/wing_bank.rb +30 -0
- data/app/models/spree_cm_commissioner/oauth_application_decorator.rb +7 -0
- data/app/models/spree_cm_commissioner/product_dynamic_field.rb +9 -0
- data/app/models/spree_cm_commissioner/user_identity_provider.rb +1 -1
- data/app/services/spree_cm_commissioner/mini_app_provider/api_key_history.rb +128 -0
- data/app/services/spree_cm_commissioner/mini_app_provider/ip_rules.rb +26 -0
- data/app/services/spree_cm_commissioner/mini_app_provider/session_gate.rb +79 -0
- data/app/services/spree_cm_commissioner/mini_app_provider/session_throttle.rb +66 -0
- data/app/services/spree_cm_commissioner/payment_method_type_mapper.rb +3 -1
- data/app/services/spree_cm_commissioner/rate_limiter/result.rb +20 -0
- data/app/services/spree_cm_commissioner/rate_limiter.rb +62 -0
- data/app/services/spree_cm_commissioner/seeds/user_usernames.rb +3 -1
- data/app/services/spree_cm_commissioner/ticket_transfers/eligibility_checker.rb +5 -6
- data/app/services/spree_cm_commissioner/ticket_transfers/preview_rule.rb +3 -5
- data/app/services/spree_cm_commissioner/user_authenticator.rb +12 -2
- data/app/services/spree_cm_commissioner/wing_mini_app/config.rb +44 -0
- data/app/services/spree_cm_commissioner/wing_mini_app/find_or_create_user.rb +89 -0
- data/app/services/spree_cm_commissioner/wing_mini_app/profile_verifier.rb +65 -0
- data/app/views/spree/admin/guests/_table.html.erb +4 -0
- data/app/views/spree/admin/oauth_applications/_api_key_minted_modal.html.erb +71 -0
- data/app/views/spree/admin/oauth_applications/_api_key_modal.html.erb +68 -0
- data/app/views/spree/admin/oauth_applications/_api_key_restore_list.html.erb +40 -0
- data/app/views/spree/admin/oauth_applications/_api_key_restore_modal.html.erb +72 -0
- data/app/views/spree/admin/oauth_applications/_api_key_revoke_modal.html.erb +54 -0
- data/app/views/spree/admin/oauth_applications/_form.html.erb +152 -0
- data/app/views/spree/admin/oauth_applications/edit.html.erb +36 -0
- data/app/views/spree/admin/shared/_ticket_transfer_details.html.erb +8 -2
- data/config/locales/en.yml +12 -0
- data/config/routes.rb +15 -113
- data/db/migrate/20260928070109_add_provider_and_api_key_to_spree_oauth_applications.rb +11 -0
- data/lib/spree_cm_commissioner/test_helper/factories/vendor_factory.rb +16 -2
- data/lib/spree_cm_commissioner/version.rb +1 -1
- data/lib/spree_cm_commissioner.rb +8 -1
- metadata +28 -229
- data/app/assets/javascripts/spree_cm_commissioner/address_hide_form.js +0 -17
- data/app/assets/javascripts/spree_cm_commissioner/location_checkbox_manager.js +0 -45
- data/app/assets/javascripts/spree_cm_commissioner/report_hide_filter.js +0 -37
- data/app/assets/javascripts/spree_cm_commissioner/role_form.js +0 -51
- data/app/assets/javascripts/spree_cm_commissioner/selected_field_filter_origin_destination.js +0 -37
- data/app/assets/javascripts/spree_cm_commissioner/trip_stop_selection.js +0 -41
- data/app/assets/javascripts/spree_cm_commissioner/update_popup_confirmation.js +0 -42
- data/app/assets/javascripts/spree_cm_commissioner/vehicle_seat.js +0 -291
- data/app/assets/stylesheets/spree_cm_commissioner/backend/invoice.scss +0 -92
- data/app/assets/stylesheets/spree_cm_commissioner/backend/vehicle_seat.scss +0 -28
- data/app/controllers/concerns/spree/billing/order_parents_concern.rb +0 -31
- data/app/controllers/concerns/spree/billing/payment_creatable.rb +0 -64
- data/app/controllers/concerns/spree/billing/payment_fireable.rb +0 -35
- data/app/controllers/concerns/spree_cm_commissioner/billing/role_authorization.rb +0 -53
- data/app/controllers/spree/billing/addresses_controller.rb +0 -32
- data/app/controllers/spree/billing/adjustments_controller.rb +0 -72
- data/app/controllers/spree/billing/base_controller.rb +0 -82
- data/app/controllers/spree/billing/businesses_controller.rb +0 -135
- data/app/controllers/spree/billing/customers_controller.rb +0 -107
- data/app/controllers/spree/billing/errors_controller.rb +0 -14
- data/app/controllers/spree/billing/invoice_controller.rb +0 -36
- data/app/controllers/spree/billing/option_types_controller.rb +0 -32
- data/app/controllers/spree/billing/orders_controller.rb +0 -90
- data/app/controllers/spree/billing/payment_qrcodes_controller.rb +0 -14
- data/app/controllers/spree/billing/payments_controller.rb +0 -148
- data/app/controllers/spree/billing/places_controller.rb +0 -35
- data/app/controllers/spree/billing/products_controller.rb +0 -56
- data/app/controllers/spree/billing/refunds_controller.rb +0 -9
- data/app/controllers/spree/billing/reports_controller.rb +0 -202
- data/app/controllers/spree/billing/roles_controller.rb +0 -107
- data/app/controllers/spree/billing/store_credits_controller.rb +0 -117
- data/app/controllers/spree/billing/subscriptions_controller.rb +0 -49
- data/app/controllers/spree/billing/users_controller.rb +0 -19
- data/app/controllers/spree/billing/variants_controller.rb +0 -36
- data/app/controllers/spree/billing/vendors_controller.rb +0 -83
- data/app/controllers/spree/transit/amenities_controller.rb +0 -79
- data/app/controllers/spree/transit/amenity_values_controller.rb +0 -16
- data/app/controllers/spree/transit/base_controller.rb +0 -53
- data/app/controllers/spree/transit/branches_controller.rb +0 -35
- data/app/controllers/spree/transit/locations_controller.rb +0 -38
- data/app/controllers/spree/transit/places_controller.rb +0 -151
- data/app/controllers/spree/transit/reservations_controller.rb +0 -15
- data/app/controllers/spree/transit/routes_controller.rb +0 -66
- data/app/controllers/spree/transit/service_calendars_controller.rb +0 -109
- data/app/controllers/spree/transit/stops_controller.rb +0 -32
- data/app/controllers/spree/transit/trip_stops_controller.rb +0 -35
- data/app/controllers/spree/transit/trips_controller.rb +0 -90
- data/app/controllers/spree/transit/vectors/amenity_values_controller.rb +0 -40
- data/app/controllers/spree/transit/vectors/icons_controller.rb +0 -26
- data/app/controllers/spree/transit/vehicle_photos_controller.rb +0 -52
- data/app/controllers/spree/transit/vehicle_seats_controller.rb +0 -29
- data/app/controllers/spree/transit/vehicle_types_controller.rb +0 -81
- data/app/controllers/spree/transit/vehicles_controller.rb +0 -54
- data/app/controllers/spree/transit/vendors_controller.rb +0 -83
- data/app/helpers/spree/billing/sortable_tree_helper.rb +0 -32
- data/app/helpers/spree/transit/navigation_helper_decorator.rb +0 -14
- data/app/helpers/spree/transit/sortable_tree_helper.rb +0 -32
- data/app/helpers/spree_cm_commissioner/billing/monthly_orders_helper.rb +0 -66
- data/app/helpers/spree_cm_commissioner/billing/qrcodes_helper.rb +0 -11
- data/app/helpers/spree_cm_commissioner/transit/service_calendars_helper.rb +0 -17
- data/app/views/spree/billing/addresses/_form.html.erb +0 -38
- data/app/views/spree/billing/addresses/index.html.erb +0 -19
- data/app/views/spree/billing/adjustments/_adjustment.html.erb +0 -34
- data/app/views/spree/billing/adjustments/_adjustments_table.html.erb +0 -32
- data/app/views/spree/billing/adjustments/_form.html.erb +0 -12
- data/app/views/spree/billing/adjustments/edit.html.erb +0 -13
- data/app/views/spree/billing/adjustments/index.html.erb +0 -32
- data/app/views/spree/billing/adjustments/new.html.erb +0 -9
- data/app/views/spree/billing/businesses/_assets_form.html.erb +0 -8
- data/app/views/spree/billing/businesses/_form.html.erb +0 -88
- data/app/views/spree/billing/businesses/edit.html.erb +0 -21
- data/app/views/spree/billing/businesses/index.html.erb +0 -32
- data/app/views/spree/billing/businesses/new.html.erb +0 -16
- data/app/views/spree/billing/customers/_form.html.erb +0 -44
- data/app/views/spree/billing/customers/edit.html.erb +0 -23
- data/app/views/spree/billing/customers/index.html.erb +0 -160
- data/app/views/spree/billing/customers/new.html.erb +0 -15
- data/app/views/spree/billing/errors/forbidden.html.erb +0 -7
- data/app/views/spree/billing/invoice/show.html.erb +0 -21
- data/app/views/spree/billing/option_types/_form.html.erb +0 -29
- data/app/views/spree/billing/option_types/_option_value_fields.html.erb +0 -13
- data/app/views/spree/billing/option_types/edit.html.erb +0 -56
- data/app/views/spree/billing/option_types/index.html.erb +0 -50
- data/app/views/spree/billing/option_types/new.html.erb +0 -13
- data/app/views/spree/billing/orders/_form.html.erb +0 -54
- data/app/views/spree/billing/orders/_line_item.html.erb +0 -57
- data/app/views/spree/billing/orders/_search.html.erb +0 -62
- data/app/views/spree/billing/orders/edit.html.erb +0 -16
- data/app/views/spree/billing/orders/index.html.erb +0 -84
- data/app/views/spree/billing/orders/show.html.erb +0 -1
- data/app/views/spree/billing/payments/_list.html.erb +0 -49
- data/app/views/spree/billing/payments/_state_changes.html.erb +0 -33
- data/app/views/spree/billing/payments/index.html.erb +0 -35
- data/app/views/spree/billing/payments/new.html.erb +0 -24
- data/app/views/spree/billing/payments/show.html.erb +0 -15
- data/app/views/spree/billing/places/_form.html.erb +0 -16
- data/app/views/spree/billing/places/edit.html.erb +0 -12
- data/app/views/spree/billing/places/index.html.erb +0 -72
- data/app/views/spree/billing/places/new.html.erb +0 -15
- data/app/views/spree/billing/products/_add_stock_form.html.erb +0 -40
- data/app/views/spree/billing/products/_filters.html.erb +0 -31
- data/app/views/spree/billing/products/_form.html.erb +0 -123
- data/app/views/spree/billing/products/edit.html.erb +0 -8
- data/app/views/spree/billing/products/index.html.erb +0 -72
- data/app/views/spree/billing/products/new.html.erb +0 -85
- data/app/views/spree/billing/products/stock.html.erb +0 -77
- data/app/views/spree/billing/reports/_date_range_picker.html.erb +0 -78
- data/app/views/spree/billing/reports/_overview.html.erb +0 -48
- data/app/views/spree/billing/reports/active_subscribers.html.erb +0 -97
- data/app/views/spree/billing/reports/balance_due.html.erb +0 -188
- data/app/views/spree/billing/reports/export.html.erb +0 -70
- data/app/views/spree/billing/reports/failed_orders.html.erb +0 -58
- data/app/views/spree/billing/reports/index.html.erb +0 -62
- data/app/views/spree/billing/reports/overdue.html.erb +0 -61
- data/app/views/spree/billing/reports/paid.html.erb +0 -60
- data/app/views/spree/billing/roles/_form.html.erb +0 -52
- data/app/views/spree/billing/roles/edit.html.erb +0 -13
- data/app/views/spree/billing/roles/index.html.erb +0 -44
- data/app/views/spree/billing/roles/new.html.erb +0 -13
- data/app/views/spree/billing/shared/_customer_credit_form.html.erb +0 -33
- data/app/views/spree/billing/shared/_customer_promotion_form.html.erb +0 -29
- data/app/views/spree/billing/shared/_customer_promotion_table.html.erb +0 -39
- data/app/views/spree/billing/shared/_customer_tabs.html.erb +0 -46
- data/app/views/spree/billing/shared/_header.html.erb +0 -21
- data/app/views/spree/billing/shared/_invoice.html.erb +0 -280
- data/app/views/spree/billing/shared/_language_switcher.html.erb +0 -5
- data/app/views/spree/billing/shared/_main_menu.html.erb +0 -73
- data/app/views/spree/billing/shared/_order_tabs.html.erb +0 -41
- data/app/views/spree/billing/shared/_pop_up_confirmation.html.erb +0 -103
- data/app/views/spree/billing/shared/_product_tabs.html.erb +0 -24
- data/app/views/spree/billing/shared/_role_tabs.html.erb +0 -13
- data/app/views/spree/billing/shared/_subscription_tabs.html.erb +0 -20
- data/app/views/spree/billing/shared/_user_tabs.html.erb +0 -13
- data/app/views/spree/billing/shared/_vendor_logo.html.erb +0 -1
- data/app/views/spree/billing/shared/_vendor_switcher.html.erb +0 -57
- data/app/views/spree/billing/shared/sortable_tree/_taxonomy.html.erb +0 -29
- data/app/views/spree/billing/shared/sub_menu/_product.html.erb +0 -8
- data/app/views/spree/billing/shared/sub_menu/_report.html.erb +0 -23
- data/app/views/spree/billing/shared/sub_menu/_setting.html.erb +0 -11
- data/app/views/spree/billing/store_credits/_form.html.erb +0 -11
- data/app/views/spree/billing/store_credits/index.html.erb +0 -44
- data/app/views/spree/billing/store_credits/new.html.erb +0 -17
- data/app/views/spree/billing/subscriptions/_form.html.erb +0 -27
- data/app/views/spree/billing/subscriptions/_subscribed_variants_table.html.erb +0 -24
- data/app/views/spree/billing/subscriptions/edit.html.erb +0 -12
- data/app/views/spree/billing/subscriptions/index.html.erb +0 -86
- data/app/views/spree/billing/subscriptions/new.html.erb +0 -21
- data/app/views/spree/billing/users/_form.html.erb +0 -64
- data/app/views/spree/billing/users/edit.html.erb +0 -25
- data/app/views/spree/billing/users/index.html.erb +0 -116
- data/app/views/spree/billing/users/new.html.erb +0 -17
- data/app/views/spree/billing/variants/_form.html.erb +0 -28
- data/app/views/spree/billing/variants/edit.html.erb +0 -15
- data/app/views/spree/billing/variants/index.html.erb +0 -66
- data/app/views/spree/billing/variants/new.html.erb +0 -15
- data/app/views/spree/billing/vendors/_form.html.erb +0 -75
- data/app/views/spree/billing/vendors/edit.html.erb +0 -9
- data/app/views/spree/layouts/billing.html.erb +0 -74
- data/app/views/spree/layouts/transit.html.erb +0 -74
- data/app/views/spree/transit/amenities/_form.html.erb +0 -50
- data/app/views/spree/transit/amenities/_option_value_fields.html.erb +0 -15
- data/app/views/spree/transit/amenities/edit.html.erb +0 -53
- data/app/views/spree/transit/branches/_filter_form.erb +0 -23
- data/app/views/spree/transit/branches/_form.html.erb +0 -36
- data/app/views/spree/transit/branches/edit.html.erb +0 -15
- data/app/views/spree/transit/branches/index.html.erb +0 -43
- data/app/views/spree/transit/branches/new.html.erb +0 -19
- data/app/views/spree/transit/locations/_filter_form.erb +0 -30
- data/app/views/spree/transit/locations/_form.html.erb +0 -19
- data/app/views/spree/transit/locations/edit.html.erb +0 -15
- data/app/views/spree/transit/locations/index.html.erb +0 -49
- data/app/views/spree/transit/locations/new.html.erb +0 -17
- data/app/views/spree/transit/places/_assets_form.html.erb +0 -8
- data/app/views/spree/transit/places/_form.html.erb +0 -128
- data/app/views/spree/transit/places/edit.html.erb +0 -21
- data/app/views/spree/transit/places/index.html.erb +0 -32
- data/app/views/spree/transit/places/new.html.erb +0 -16
- data/app/views/spree/transit/reservations/index.html.erb +0 -5
- data/app/views/spree/transit/routes/_filter_form.erb +0 -24
- data/app/views/spree/transit/routes/_form.html.erb +0 -74
- data/app/views/spree/transit/routes/edit.html.erb +0 -13
- data/app/views/spree/transit/routes/index.html.erb +0 -79
- data/app/views/spree/transit/routes/new.html.erb +0 -18
- data/app/views/spree/transit/service_calendars/_exception_rules.html.erb +0 -44
- data/app/views/spree/transit/service_calendars/_filters.html.erb +0 -17
- data/app/views/spree/transit/service_calendars/_form.html.erb +0 -107
- data/app/views/spree/transit/service_calendars/index.html.erb +0 -77
- data/app/views/spree/transit/service_calendars/new.html.erb +0 -13
- data/app/views/spree/transit/shared/_amenity_tabs.html.erb +0 -21
- data/app/views/spree/transit/shared/_header.html.erb +0 -20
- data/app/views/spree/transit/shared/_main_menu.html.erb +0 -34
- data/app/views/spree/transit/shared/_route_tabs.html.erb +0 -25
- data/app/views/spree/transit/shared/_vehicle_tabs.html.erb +0 -15
- data/app/views/spree/transit/shared/_vendor_switcher.html.erb +0 -40
- data/app/views/spree/transit/shared/sortable_tree/_taxonomy.html.erb +0 -29
- data/app/views/spree/transit/shared/sub_menu/_setting.html.erb +0 -3
- data/app/views/spree/transit/stops/_filters.html.erb +0 -33
- data/app/views/spree/transit/stops/_form.html.erb +0 -68
- data/app/views/spree/transit/stops/edit.html.erb +0 -16
- data/app/views/spree/transit/stops/index.html.erb +0 -58
- data/app/views/spree/transit/stops/new.html.erb +0 -16
- data/app/views/spree/transit/trip_stops/index.html.erb +0 -38
- data/app/views/spree/transit/trips/_form.html.erb +0 -82
- data/app/views/spree/transit/trips/edit.html.erb +0 -15
- data/app/views/spree/transit/trips/new.html.erb +0 -15
- data/app/views/spree/transit/vectors/amenity_values/index.html.erb +0 -111
- data/app/views/spree/transit/vehicle_photos/_form.html.erb +0 -22
- data/app/views/spree/transit/vehicle_photos/edit.html.erb +0 -9
- data/app/views/spree/transit/vehicle_photos/index.html.erb +0 -61
- data/app/views/spree/transit/vehicle_photos/new.html.erb +0 -9
- data/app/views/spree/transit/vehicle_seats/_form.html.erb +0 -48
- data/app/views/spree/transit/vehicle_seats/_seats.html.erb +0 -63
- data/app/views/spree/transit/vehicle_types/_filter_form.html.erb +0 -29
- data/app/views/spree/transit/vehicle_types/_form.html.erb +0 -65
- data/app/views/spree/transit/vehicle_types/_seat_view.erb +0 -83
- data/app/views/spree/transit/vehicle_types/edit.html.erb +0 -93
- data/app/views/spree/transit/vehicle_types/index.html.erb +0 -94
- data/app/views/spree/transit/vehicle_types/new.html.erb +0 -14
- data/app/views/spree/transit/vehicles/_filter_form.html.erb +0 -23
- data/app/views/spree/transit/vehicles/_form.html.erb +0 -19
- data/app/views/spree/transit/vehicles/edit.html.erb +0 -19
- data/app/views/spree/transit/vehicles/index.html.erb +0 -57
- data/app/views/spree/transit/vehicles/new.html.erb +0 -19
- data/app/views/spree/transit/vendors/_form.html.erb +0 -34
- data/app/views/spree/transit/vendors/_tabs.html.erb +0 -16
- data/app/views/spree/transit/vendors/edit.html.erb +0 -10
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Billing
|
|
3
|
-
class AdjustmentsController < Spree::Billing::BaseController
|
|
4
|
-
include Spree::Billing::OrderParentsConcern
|
|
5
|
-
belongs_to 'spree/order', find_by: :number
|
|
6
|
-
|
|
7
|
-
create.after :update_totals
|
|
8
|
-
destroy.after :update_totals
|
|
9
|
-
update.after :update_totals
|
|
10
|
-
|
|
11
|
-
skip_before_action :load_resource, only: %i[toggle_state edit update destroy]
|
|
12
|
-
before_action :set_payable, only: %i[create update]
|
|
13
|
-
before_action :find_adjustment, only: %i[destroy edit update]
|
|
14
|
-
|
|
15
|
-
after_action :delete_promotion_from_order, only: [:destroy], if: -> { @adjustment.destroyed? && @adjustment.promotion? }
|
|
16
|
-
|
|
17
|
-
def set_payable
|
|
18
|
-
@adjustment.payable = spree_current_user
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def index
|
|
22
|
-
@adjustments = @order.all_adjustments.eligible.order(created_at: :asc)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
private
|
|
26
|
-
|
|
27
|
-
# voids
|
|
28
|
-
def update_payments
|
|
29
|
-
@order.payments.map(&:void_transaction!)
|
|
30
|
-
@order.reload.create_default_payment_if_eligble
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def find_adjustment
|
|
34
|
-
# Need to assign to @object here to keep ResourceController happy
|
|
35
|
-
@adjustment = @object = parent.all_adjustments.find(params[:id])
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def update_totals
|
|
39
|
-
@order.reload.update_with_updater!
|
|
40
|
-
update_payments
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# Override method used to create a new instance to correctly
|
|
44
|
-
# associate adjustment with order
|
|
45
|
-
def build_resource
|
|
46
|
-
parent.adjustments.build(order: parent)
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def delete_promotion_from_order
|
|
50
|
-
return if @adjustment.source.nil?
|
|
51
|
-
|
|
52
|
-
@order.promotions.delete(@adjustment.source.promotion)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def location_after_save
|
|
56
|
-
billing_order_payments_url(@order)
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def model_class
|
|
60
|
-
Spree::Adjustment
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def object_name
|
|
64
|
-
'adjustment'
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def collection_url(options = {})
|
|
68
|
-
billing_order_adjustments_url(options)
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Billing
|
|
3
|
-
class BaseController < Spree::Admin::ResourceController
|
|
4
|
-
include SpreeCmCommissioner::Billing::RoleAuthorization
|
|
5
|
-
|
|
6
|
-
layout 'spree/layouts/billing'
|
|
7
|
-
helper_method :current_vendor, :vendors
|
|
8
|
-
|
|
9
|
-
before_action :required_vendor_user!
|
|
10
|
-
before_action :set_locale
|
|
11
|
-
before_action :current_vendor
|
|
12
|
-
|
|
13
|
-
rescue_from SpreeCmCommissioner::UnauthorizedVendorError, with: :handle_unauthorized_vendor
|
|
14
|
-
|
|
15
|
-
def set_locale
|
|
16
|
-
I18n.locale = params[:locale] || I18n.default_locale
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def default_url_options(options = {})
|
|
20
|
-
{ locale: I18n.locale }.merge(options)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def handle_unauthorized_vendor
|
|
24
|
-
redirect_to billing_forbidden_url
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def required_vendor_user!
|
|
28
|
-
return unless vendors.empty?
|
|
29
|
-
|
|
30
|
-
raise SpreeCmCommissioner::UnauthorizedVendorError
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def vendors
|
|
34
|
-
@vendors ||= spree_current_user.vendors.to_a
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def current_vendor
|
|
38
|
-
@current_vendor ||= vendors.find { |v| v[:slug] == session[:billing_current_vendor_slug] } || vendors.first
|
|
39
|
-
session[:billing_current_vendor_slug] ||= @current_vendor&.slug
|
|
40
|
-
|
|
41
|
-
@current_vendor
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def page
|
|
45
|
-
params[:page] || 1
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def per_page
|
|
49
|
-
params[:per_page] || 25
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
# ajax
|
|
53
|
-
def switch_vendor
|
|
54
|
-
head :unprocessable_entity if request.xhr?
|
|
55
|
-
|
|
56
|
-
exists = vendors.find { |v| v[:slug] == params[:slug] }
|
|
57
|
-
session[:billing_current_vendor_slug] = params[:slug] if exists
|
|
58
|
-
|
|
59
|
-
head exists ? :ok : :not_found
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
# @overrided
|
|
63
|
-
def edit_object_url(object, options = {})
|
|
64
|
-
if parent_data.present?
|
|
65
|
-
spree.send "edit_billing_#{resource.model_name}_#{resource.object_name}_url",
|
|
66
|
-
parent, object, options
|
|
67
|
-
else
|
|
68
|
-
spree.send "edit_billing_#{resource.object_name}_url", object, options
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
# @overrided
|
|
73
|
-
def collection_url(options = {})
|
|
74
|
-
if parent_data.present?
|
|
75
|
-
spree.polymorphic_url([:billing, parent, model_class], options)
|
|
76
|
-
else
|
|
77
|
-
spree.polymorphic_url([:billing, model_class], options)
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Billing
|
|
3
|
-
class BusinessesController < Spree::Billing::BaseController
|
|
4
|
-
before_action :load_businesses_taxonomy
|
|
5
|
-
helper 'spree/billing/sortable_tree'
|
|
6
|
-
|
|
7
|
-
def load_businesses_taxonomy
|
|
8
|
-
@businesses_taxonomy = Spree::Taxonomy.businesses
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
before_action :set_permalink_part, only: [:edit]
|
|
12
|
-
respond_to :html, :js
|
|
13
|
-
|
|
14
|
-
def index; end
|
|
15
|
-
|
|
16
|
-
def new
|
|
17
|
-
@taxon = Spree::Taxon.new
|
|
18
|
-
@taxon.taxonomy = @businesses_taxonomy
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def update # rubocop:disable Metrics/AbcSize
|
|
22
|
-
successful = @taxon.transaction do
|
|
23
|
-
parent_id = params[:taxon][:parent_id]
|
|
24
|
-
set_position
|
|
25
|
-
assign_parent(parent_id)
|
|
26
|
-
|
|
27
|
-
@taxon.save!
|
|
28
|
-
|
|
29
|
-
# regenerate permalink
|
|
30
|
-
regenerate_permalink if parent_id
|
|
31
|
-
|
|
32
|
-
set_permalink_params
|
|
33
|
-
|
|
34
|
-
# check if we need to rename child taxons if parent name or permalink changes
|
|
35
|
-
@update_children = true if params[:taxon][:name] != @taxon.name || params[:taxon][:permalink] != @taxon.permalink
|
|
36
|
-
|
|
37
|
-
@taxon.create_icon(attachment: taxon_params[:icon]) if taxon_params[:icon]
|
|
38
|
-
@taxon.update(taxon_params.except(:icon))
|
|
39
|
-
end
|
|
40
|
-
if successful
|
|
41
|
-
flash[:success] = flash_message_for(@taxon, :successfully_updated)
|
|
42
|
-
|
|
43
|
-
# rename child taxons
|
|
44
|
-
rename_child_taxons if @update_children
|
|
45
|
-
|
|
46
|
-
respond_with(@taxon) do |format|
|
|
47
|
-
format.html { redirect_to spree.edit_billing_business_url(params[:id]) }
|
|
48
|
-
format.json { render json: @taxon.to_json }
|
|
49
|
-
end
|
|
50
|
-
else
|
|
51
|
-
respond_with(@taxon) do |format|
|
|
52
|
-
format.html { render :edit, status: :unprocessable_entity }
|
|
53
|
-
format.json { render json: @taxon.errors.full_messages.to_sentence, status: :unprocessable_entity }
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def location_after_save
|
|
59
|
-
spree.billing_businesses_url
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def set_permalink_part
|
|
63
|
-
@permalink_part = @object.permalink.split('/').last
|
|
64
|
-
@parent_permalink = @object.permalink.split('/')[0...-1].join('/')
|
|
65
|
-
@parent_permalink += '/' if @parent_permalink.present?
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def set_permalink_params
|
|
69
|
-
set_permalink_part
|
|
70
|
-
|
|
71
|
-
return unless params.key? 'permalink_part'
|
|
72
|
-
|
|
73
|
-
params[:taxon][:permalink] = @parent_permalink + params[:permalink_part]
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
def taxon_params
|
|
77
|
-
params.require(:taxon).permit(:stop, :station, :branch, :location, permitted_taxon_attributes)
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
def set_position
|
|
81
|
-
new_position = params[:taxon][:position]
|
|
82
|
-
@taxon.child_index = new_position.to_i if new_position
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def assign_parent(parent_id)
|
|
86
|
-
@taxon.parent = current_store.taxons.find(parent_id) if parent_id
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
def parent_data
|
|
90
|
-
if action_name == 'index'
|
|
91
|
-
nil
|
|
92
|
-
else
|
|
93
|
-
super
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
def rename_child_taxons
|
|
98
|
-
@taxon.descendants.each do |taxon|
|
|
99
|
-
reload_taxon_and_set_permalink(taxon)
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
def regenerate_permalink
|
|
104
|
-
reload_taxon_and_set_permalink(@taxon)
|
|
105
|
-
@update_children = true
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def reload_taxon_and_set_permalink(taxon)
|
|
109
|
-
taxon.reload
|
|
110
|
-
taxon.set_permalink
|
|
111
|
-
taxon.save!
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
def collection_url
|
|
115
|
-
spree.polymorphic_url([:billing, business.to_sym], options)
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
def edit_billing_taxon_path(taxon)
|
|
119
|
-
spree.edit_billing_taxonomy_taxon_path(taxon.taxonomy, taxon.id)
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
def scope
|
|
123
|
-
current_store.taxonomies
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
def model_class
|
|
127
|
-
Spree::Taxon
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
def object_name
|
|
131
|
-
'taxon'
|
|
132
|
-
end
|
|
133
|
-
end
|
|
134
|
-
end
|
|
135
|
-
end
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Billing
|
|
3
|
-
class CustomersController < Spree::Billing::BaseController
|
|
4
|
-
before_action :set_vendor, if: -> { member_action? }
|
|
5
|
-
before_action :load_customer, if: -> { member_action? }
|
|
6
|
-
before_action :load_bussinesses
|
|
7
|
-
|
|
8
|
-
def scope
|
|
9
|
-
if spree_current_user.has_spree_role?('admin')
|
|
10
|
-
current_vendor.customers
|
|
11
|
-
else
|
|
12
|
-
current_vendor.customers.where(place_id: spree_current_user.place_ids)
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def collection
|
|
17
|
-
return [] if current_vendor.blank?
|
|
18
|
-
return @collection if defined?(@collection)
|
|
19
|
-
|
|
20
|
-
@search = scope.ransack(params[:q])
|
|
21
|
-
@collection = @search.result.includes(:subscriptions, :taxons).page(page).per(per_page)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def load_customer
|
|
25
|
-
@customer = @object
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def load_bussinesses
|
|
29
|
-
@businesses = Spree::Taxonomy.businesses.taxons.where('depth > ? ', 1).order('parent_id ASC').uniq
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# POST /billing/customers/:customer_id/re_create_order
|
|
33
|
-
# billing_customer_re_create_order_path
|
|
34
|
-
def re_create_order
|
|
35
|
-
today = Time.zone.today
|
|
36
|
-
customer = model_class.find_by(id: params[:customer_id])
|
|
37
|
-
result = SpreeCmCommissioner::SubscriptionsOrderCreator.call(customer: customer, today: today)
|
|
38
|
-
|
|
39
|
-
if result.failure?
|
|
40
|
-
flash[:error] = I18n.t('spree.billing.customers.re_create_order.fails', error: result.error)
|
|
41
|
-
else
|
|
42
|
-
flash[:success] = I18n.t('spree.billing.customers.re_create_order.success', success: result.success)
|
|
43
|
-
end
|
|
44
|
-
redirect_back(fallback_location: billing_customer_orders_path(customer))
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
# POST /billing/customers/:customer_id/apply_promotion
|
|
48
|
-
# billing_customer_apply_promotion_path
|
|
49
|
-
def apply_promotion
|
|
50
|
-
result = SpreeCmCommissioner::CustomerPromotionCreator.call(
|
|
51
|
-
customer_id: params[:customer_id],
|
|
52
|
-
reason: params[:reason],
|
|
53
|
-
discount_amount: params[:discount_amount],
|
|
54
|
-
store: current_store
|
|
55
|
-
)
|
|
56
|
-
|
|
57
|
-
if result.success?
|
|
58
|
-
flash[:success] = I18n.t('spree.billing.customers.apply_promotion.success')
|
|
59
|
-
else
|
|
60
|
-
flash[:error] = I18n.t('spree.billing.customers.apply_promotion.fails', error: result.message)
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
redirect_back(fallback_location: billing_customer_orders_path(params[:customer_id]))
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
# delete /billing/customers/:customer_id/delete_promotion/:id
|
|
67
|
-
# billing_customer_delete_promotion_url
|
|
68
|
-
def delete_promotion
|
|
69
|
-
customer = model_class.find(params[:customer_id])
|
|
70
|
-
promotion = Spree::Promotion.find_by(code: customer.number)
|
|
71
|
-
if promotion.destroy
|
|
72
|
-
flash[:success] = I18n.t('spree.billing.customers.delete_promotion.success')
|
|
73
|
-
else
|
|
74
|
-
flash[:error] = I18n.t('spree.billing.customers.delete_promotion.fails', error: result.message)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
redirect_back(fallback_location: billing_customer_orders_path(params[:customer_id]))
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
# @overrided
|
|
81
|
-
def model_class
|
|
82
|
-
SpreeCmCommissioner::Customer
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def object_name
|
|
86
|
-
'spree_cm_commissioner_customer'
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
# @overrided
|
|
90
|
-
def collection_url(options = {})
|
|
91
|
-
billing_customers_url(options)
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def location_after_save
|
|
95
|
-
if permitted_resource_params.key?(:bill_address_attributes) && permitted_resource_params.key?(:ship_address_attributes)
|
|
96
|
-
billing_customer_addresses_url(@customer)
|
|
97
|
-
else
|
|
98
|
-
edit_billing_customer_url(@customer)
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def set_vendor
|
|
103
|
-
permitted_resource_params[:vendor] = current_vendor
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Billing
|
|
3
|
-
class ErrorsController < Spree::Admin::BaseController
|
|
4
|
-
layout 'spree/layouts/error_template'
|
|
5
|
-
|
|
6
|
-
before_action :authorize_admin
|
|
7
|
-
|
|
8
|
-
def forbidden
|
|
9
|
-
@error = 'Forbidden Access'
|
|
10
|
-
@message = "You're either not a vendor user or the vendor isn't belonging to you."
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Billing
|
|
3
|
-
class InvoiceController < Spree::Billing::BaseController
|
|
4
|
-
include Spree::Billing::OrderParentsConcern
|
|
5
|
-
helper SpreeCmCommissioner::Billing::QrcodesHelper
|
|
6
|
-
|
|
7
|
-
def show
|
|
8
|
-
@invoice = @order.invoice
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def create
|
|
12
|
-
SpreeCmCommissioner::InvoiceCreator.call(order: @order)
|
|
13
|
-
redirect_back fallback_location: admin_path
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# print_invoice_date_billing_order_invoice_path => /spree/orders/:order_id/invoice/print_invoice_date
|
|
17
|
-
# method to record the date when the invoice was printed
|
|
18
|
-
def print_invoice_date
|
|
19
|
-
@order.invoice.update(invoice_issued_date: Time.zone.now)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# @overrided
|
|
23
|
-
def order
|
|
24
|
-
@order = Spree::Order.find_by!(number: params[:order_id])
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def model_class
|
|
28
|
-
SpreeCmCommissioner::Invoice
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def object_name
|
|
32
|
-
'spree_cm_commissioner_invoice'
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Billing
|
|
3
|
-
class OptionTypesController < Spree::Billing::BaseController
|
|
4
|
-
before_action :setup_new_option_value, only: :edit
|
|
5
|
-
|
|
6
|
-
def update_values_positions
|
|
7
|
-
ApplicationRecord.transaction do
|
|
8
|
-
params[:positions].each do |id, index|
|
|
9
|
-
Spree::OptionValue.where(id: id).update_all(position: index) # rubocop:disable Rails/SkipsModelValidations
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
respond_to do |format|
|
|
14
|
-
format.html { redirect_to spree.admin_product_variants_url(params[:product_id]) }
|
|
15
|
-
format.js { render plain: 'Ok' }
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
protected
|
|
20
|
-
|
|
21
|
-
def location_after_save
|
|
22
|
-
edit_billing_option_type_url(@option_type)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
private
|
|
26
|
-
|
|
27
|
-
def setup_new_option_value
|
|
28
|
-
@option_type.option_values.build if @option_type.option_values.empty?
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Billing
|
|
3
|
-
class OrdersController < Spree::Billing::BaseController
|
|
4
|
-
include Spree::Admin::OrderConcern
|
|
5
|
-
include Spree::Billing::OrderParentsConcern
|
|
6
|
-
|
|
7
|
-
protected
|
|
8
|
-
|
|
9
|
-
def scope
|
|
10
|
-
if spree_current_user.has_spree_role?('admin')
|
|
11
|
-
admin_scope
|
|
12
|
-
else
|
|
13
|
-
non_admin_scope
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# @overrided
|
|
18
|
-
|
|
19
|
-
# override order method with @order
|
|
20
|
-
attr_reader :order
|
|
21
|
-
|
|
22
|
-
def collection
|
|
23
|
-
return @collection if defined?(@collection)
|
|
24
|
-
|
|
25
|
-
load_customer
|
|
26
|
-
load_subscription
|
|
27
|
-
load_bussinesses
|
|
28
|
-
filter_by_month(*default_date_range)
|
|
29
|
-
|
|
30
|
-
@search = scope.ransack(params[:q])
|
|
31
|
-
@collection = @search.result.includes(:subscription, :customer, :invoice).order(created_at: :desc).page(page).per(per_page)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def load_resource_instance
|
|
35
|
-
return scope.new if new_actions.include?(action)
|
|
36
|
-
|
|
37
|
-
scope.find_by!(number: params[:id])
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def load_bussinesses
|
|
41
|
-
@businesses = Spree::Taxonomy.businesses.taxons.where('depth > ? ', 1).order('parent_id ASC').uniq
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def model_class
|
|
45
|
-
Spree::Order
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def object_name
|
|
49
|
-
'order'
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def default_date_range
|
|
53
|
-
default_from_date = 6.months.ago.beginning_of_month
|
|
54
|
-
default_to_date = Time.current.end_of_month
|
|
55
|
-
[default_from_date, default_to_date]
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def filter_by_month(default_from_date, default_to_date)
|
|
59
|
-
params[:q] ||= {}
|
|
60
|
-
if params[:month].present?
|
|
61
|
-
date = Date.parse("#{params[:month]}-01")
|
|
62
|
-
params[:q][:created_at_gteq] = date.beginning_of_month
|
|
63
|
-
params[:q][:created_at_lteq] = date.end_of_month
|
|
64
|
-
else
|
|
65
|
-
params[:q][:created_at_gteq] = default_from_date
|
|
66
|
-
params[:q][:created_at_lteq] = default_to_date
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
private
|
|
71
|
-
|
|
72
|
-
def admin_scope
|
|
73
|
-
@subscription&.orders || @customer&.orders || current_vendor&.subscription_orders
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
def non_admin_scope
|
|
77
|
-
place_ids = spree_current_user.place_ids
|
|
78
|
-
filter_orders_by_place(@subscription&.orders, place_ids) ||
|
|
79
|
-
filter_orders_by_place(@customer&.orders, place_ids) ||
|
|
80
|
-
filter_orders_by_place(current_vendor&.subscription_orders, place_ids)
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
def filter_orders_by_place(orders, place_ids)
|
|
84
|
-
return nil unless orders
|
|
85
|
-
|
|
86
|
-
orders.joins(subscription: :customer).where(cm_customers: { place_id: place_ids })
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Billing
|
|
3
|
-
class PaymentQrcodesController < Spree::Billing::BaseController
|
|
4
|
-
def destroy
|
|
5
|
-
if @current_vendor.payment_qrcode.destroy
|
|
6
|
-
flash[:success] = Spree.t('notice_messages.qrcode_removed')
|
|
7
|
-
else
|
|
8
|
-
flash[:error] = Spree.t('errors.messages.cannot_remove_qrcode')
|
|
9
|
-
end
|
|
10
|
-
redirect_to edit_billing_vendor_url(@current_vendor)
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|