spree_cm_commissioner 1.9.2 → 1.10.0.pre.pre
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/.github/workflows/test_and_build_gem.yml +86 -0
- data/.gitignore +2 -1
- data/Gemfile.lock +22 -1
- data/app/controllers/spree/admin/events_controller.rb +47 -0
- data/app/controllers/spree/admin/prototypes_controller_decorator.rb +20 -0
- data/app/controllers/spree/admin/stock_managements_controller.rb +17 -1
- data/app/controllers/spree/api/v2/storefront/accommodations/variants_controller.rb +42 -0
- data/app/controllers/spree/api/v2/storefront/accommodations_controller.rb +14 -31
- data/app/finders/spree_cm_commissioner/accommodations/find.rb +40 -0
- data/app/finders/spree_cm_commissioner/accommodations/find_variant.rb +35 -0
- data/app/interactors/spree_cm_commissioner/create_event.rb +65 -0
- data/app/interactors/spree_cm_commissioner/firebase_email_fetcher.rb +30 -4
- data/app/interactors/spree_cm_commissioner/firebase_email_fetcher_cron_executor.rb +23 -0
- data/app/interactors/spree_cm_commissioner/inventory_item_syncer.rb +25 -0
- data/app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb +71 -0
- data/app/interactors/spree_cm_commissioner/vattanac_bank_initiator.rb +25 -6
- data/app/jobs/spree_cm_commissioner/firebase_email_fetcher_job.rb +9 -0
- data/app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb +7 -0
- data/app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb +9 -0
- data/app/models/concerns/spree_cm_commissioner/order_state_machine.rb +26 -0
- data/app/models/concerns/spree_cm_commissioner/product_type.rb +10 -0
- data/app/models/spree_cm_commissioner/inventory.rb +11 -0
- data/app/models/spree_cm_commissioner/inventory_item.rb +37 -0
- data/app/models/spree_cm_commissioner/invite_user_taxon.rb +1 -0
- data/app/models/spree_cm_commissioner/line_item_decorator.rb +1 -0
- data/app/models/spree_cm_commissioner/order_decorator.rb +15 -0
- data/app/models/spree_cm_commissioner/product_decorator.rb +10 -0
- data/app/models/spree_cm_commissioner/prototype_decorator.rb +9 -0
- data/app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb +40 -0
- data/app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb +114 -0
- data/app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb +42 -0
- data/app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb +27 -0
- data/app/models/spree_cm_commissioner/stock/availability_checker.rb +27 -25
- data/app/models/spree_cm_commissioner/stock/availability_validator_decorator.rb +2 -1
- data/app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb +3 -3
- data/app/models/spree_cm_commissioner/stock/order_availability_checker.rb +44 -0
- data/app/models/spree_cm_commissioner/stock_movement_decorator.rb +34 -0
- data/app/models/spree_cm_commissioner/taxon_decorator.rb +2 -1
- data/app/models/spree_cm_commissioner/user_decorator.rb +5 -1
- data/app/models/spree_cm_commissioner/variant_decorator.rb +24 -17
- data/app/overrides/spree/admin/prototypes/_form/description.html.erb.deface +6 -0
- data/app/overrides/spree/admin/prototypes/_form/icon.html.erb.deface +8 -0
- data/app/overrides/spree/admin/prototypes/_form/product_type.html.erb.deface +2 -2
- data/app/overrides/spree/admin/shared/sub_menu/_product/events_tab.html.erb.deface +3 -0
- data/app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb +3 -0
- data/app/request_schemas/spree_cm_commissioner/application_request_schema.rb +1 -1
- data/app/request_schemas/spree_cm_commissioner/variant_request_schema.rb +19 -0
- data/app/serializers/spree/v2/storefront/accommodation_serializer.rb +2 -0
- data/app/serializers/spree/v2/tenant/payment_method_serializer.rb +12 -0
- data/app/serializers/spree/v2/tenant/user_serializer.rb +1 -1
- data/app/views/spree/admin/events/_search_form.html.erb +61 -0
- data/app/views/spree/admin/events/_tab.html.erb +25 -0
- data/app/views/spree/admin/events/_table.html.erb +27 -0
- data/app/views/spree/admin/events/index.html.erb +15 -0
- data/app/views/spree/admin/stock_managements/_events_popover.html.erb +17 -0
- data/app/views/spree/admin/stock_managements/calendar.html.erb +32 -0
- data/app/views/spree/admin/stock_managements/index.html.erb +31 -5
- data/app/views/spree_cm_commissioner/crew_invite_mailer/_mailer_stylesheets.html.erb +2 -2
- data/app/views/spree_cm_commissioner/crew_invite_mailer/send_crew_invite_email.html.erb +1 -1
- data/config/initializers/user_manager_decorator.rb +26 -0
- data/config/routes.rb +12 -2
- data/db/migrate/20250304293518_create_cm_inventory_items.rb +21 -0
- data/db/migrate/20250425084929_add_description_to_spree_prototypes.rb +5 -0
- data/db/migrate/20250425085938_add_preferences_to_spree_prototypes.rb +5 -0
- data/db/migrate/20250428025645_add_slug_to_spree_prototypes.rb +6 -0
- data/db/migrate/20250429094228_add_lock_version_to_cm_inventory_items.rb +5 -0
- data/docker-compose.yml +1 -1
- data/lib/generators/spree_cm_commissioner/install/install_generator.rb +2 -2
- data/lib/generators/spree_cm_commissioner/install/templates/app/javascript/{spree_cm_commissioner → spree_dashboard/spree_cm_commissioner}/utilities.js +4 -0
- data/lib/spree_cm_commissioner/cached_inventory_item.rb +23 -0
- data/lib/spree_cm_commissioner/calendar_event.rb +11 -1
- data/lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb +9 -0
- data/lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb +28 -6
- data/lib/spree_cm_commissioner/version.rb +1 -1
- data/lib/spree_cm_commissioner.rb +34 -0
- data/lib/tasks/create_default_non_permanent_inventory_items.rake +16 -0
- data/lib/tasks/fetch_email.rake +7 -0
- data/lib/tasks/generate_inventory_items.rake +7 -0
- data/spree_cm_commissioner.gemspec +5 -0
- metadata +88 -7
- data/app/queries/spree_cm_commissioner/variant_availability/non_permanent_stock_query.rb +0 -45
- data/app/queries/spree_cm_commissioner/variant_availability/permanent_stock_query.rb +0 -55
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_cm_commissioner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.0.pre.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- You
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-04-
|
11
|
+
date: 2025-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: spree
|
@@ -464,6 +464,48 @@ dependencies:
|
|
464
464
|
- - "~>"
|
465
465
|
- !ruby/object:Gem::Version
|
466
466
|
version: '3.2'
|
467
|
+
- !ruby/object:Gem::Dependency
|
468
|
+
name: redis
|
469
|
+
requirement: !ruby/object:Gem::Requirement
|
470
|
+
requirements:
|
471
|
+
- - ">="
|
472
|
+
- !ruby/object:Gem::Version
|
473
|
+
version: '0'
|
474
|
+
type: :runtime
|
475
|
+
prerelease: false
|
476
|
+
version_requirements: !ruby/object:Gem::Requirement
|
477
|
+
requirements:
|
478
|
+
- - ">="
|
479
|
+
- !ruby/object:Gem::Version
|
480
|
+
version: '0'
|
481
|
+
- !ruby/object:Gem::Dependency
|
482
|
+
name: redis-rails
|
483
|
+
requirement: !ruby/object:Gem::Requirement
|
484
|
+
requirements:
|
485
|
+
- - ">="
|
486
|
+
- !ruby/object:Gem::Version
|
487
|
+
version: '0'
|
488
|
+
type: :runtime
|
489
|
+
prerelease: false
|
490
|
+
version_requirements: !ruby/object:Gem::Requirement
|
491
|
+
requirements:
|
492
|
+
- - ">="
|
493
|
+
- !ruby/object:Gem::Version
|
494
|
+
version: '0'
|
495
|
+
- !ruby/object:Gem::Dependency
|
496
|
+
name: connection_pool
|
497
|
+
requirement: !ruby/object:Gem::Requirement
|
498
|
+
requirements:
|
499
|
+
- - ">="
|
500
|
+
- !ruby/object:Gem::Version
|
501
|
+
version: '0'
|
502
|
+
type: :runtime
|
503
|
+
prerelease: false
|
504
|
+
version_requirements: !ruby/object:Gem::Requirement
|
505
|
+
requirements:
|
506
|
+
- - ">="
|
507
|
+
- !ruby/object:Gem::Version
|
508
|
+
version: '0'
|
467
509
|
- !ruby/object:Gem::Dependency
|
468
510
|
name: pg
|
469
511
|
requirement: !ruby/object:Gem::Requirement
|
@@ -705,6 +747,7 @@ files:
|
|
705
747
|
- app/controllers/spree/admin/customer_notifications_controller.rb
|
706
748
|
- app/controllers/spree/admin/device_tokens_controller.rb
|
707
749
|
- app/controllers/spree/admin/event_blazer_queries_controller.rb
|
750
|
+
- app/controllers/spree/admin/events_controller.rb
|
708
751
|
- app/controllers/spree/admin/feature_images_controller.rb
|
709
752
|
- app/controllers/spree/admin/google_wallets_controller.rb
|
710
753
|
- app/controllers/spree/admin/guest_card_classes_controller.rb
|
@@ -735,6 +778,7 @@ files:
|
|
735
778
|
- app/controllers/spree/admin/promotion_custom_dates_rules_controller.rb
|
736
779
|
- app/controllers/spree/admin/promotion_events_rules_controller.rb
|
737
780
|
- app/controllers/spree/admin/promotion_weekend_rules_controller.rb
|
781
|
+
- app/controllers/spree/admin/prototypes_controller_decorator.rb
|
738
782
|
- app/controllers/spree/admin/s3_presigned_urls_controller.rb
|
739
783
|
- app/controllers/spree/admin/stock_managements_controller.rb
|
740
784
|
- app/controllers/spree/admin/system_controller.rb
|
@@ -786,6 +830,7 @@ files:
|
|
786
830
|
- app/controllers/spree/api/v2/platform/seat_number_layouts_controller.rb
|
787
831
|
- app/controllers/spree/api/v2/platform/taxons_controller_decorator.rb
|
788
832
|
- app/controllers/spree/api/v2/resource_controller_decorator.rb
|
833
|
+
- app/controllers/spree/api/v2/storefront/accommodations/variants_controller.rb
|
789
834
|
- app/controllers/spree/api/v2/storefront/accommodations_controller.rb
|
790
835
|
- app/controllers/spree/api/v2/storefront/account/orders_controller_decorator.rb
|
791
836
|
- app/controllers/spree/api/v2/storefront/account/preferred_payment_method_controller.rb
|
@@ -956,6 +1001,8 @@ files:
|
|
956
1001
|
- app/exception_notifier/spree_cm_commissioner/telegram_notifier.rb
|
957
1002
|
- app/factory/spree_cm_commissioner/order_telegram_message_factory.rb
|
958
1003
|
- app/factory/spree_cm_commissioner/telegram_message_factory.rb
|
1004
|
+
- app/finders/spree_cm_commissioner/accommodations/find.rb
|
1005
|
+
- app/finders/spree_cm_commissioner/accommodations/find_variant.rb
|
959
1006
|
- app/finders/spree_cm_commissioner/line_items/find_by_variant_decorator.rb
|
960
1007
|
- app/finders/spree_cm_commissioner/orders/find.rb
|
961
1008
|
- app/finders/spree_cm_commissioner/orders/find_by_state.rb
|
@@ -992,6 +1039,7 @@ files:
|
|
992
1039
|
- app/interactors/spree_cm_commissioner/check_in_destroyer.rb
|
993
1040
|
- app/interactors/spree_cm_commissioner/confirm_pin_code_checker.rb
|
994
1041
|
- app/interactors/spree_cm_commissioner/conversion_pre_calculator.rb
|
1042
|
+
- app/interactors/spree_cm_commissioner/create_event.rb
|
995
1043
|
- app/interactors/spree_cm_commissioner/crew_inviter.rb
|
996
1044
|
- app/interactors/spree_cm_commissioner/customer_content_notification_creator.rb
|
997
1045
|
- app/interactors/spree_cm_commissioner/customer_notification_cron_executor.rb
|
@@ -1002,6 +1050,7 @@ files:
|
|
1002
1050
|
- app/interactors/spree_cm_commissioner/event_qr_generator.rb
|
1003
1051
|
- app/interactors/spree_cm_commissioner/existing_account_checker.rb
|
1004
1052
|
- app/interactors/spree_cm_commissioner/firebase_email_fetcher.rb
|
1053
|
+
- app/interactors/spree_cm_commissioner/firebase_email_fetcher_cron_executor.rb
|
1005
1054
|
- app/interactors/spree_cm_commissioner/firebase_id_token_provider.rb
|
1006
1055
|
- app/interactors/spree_cm_commissioner/google_places_fetcher.rb
|
1007
1056
|
- app/interactors/spree_cm_commissioner/guest_id_card_manager.rb
|
@@ -1011,6 +1060,7 @@ files:
|
|
1011
1060
|
- app/interactors/spree_cm_commissioner/imported_csv_downloader.rb
|
1012
1061
|
- app/interactors/spree_cm_commissioner/international_mobile_formatter.rb
|
1013
1062
|
- app/interactors/spree_cm_commissioner/invalidate_cache_request.rb
|
1063
|
+
- app/interactors/spree_cm_commissioner/inventory_item_syncer.rb
|
1014
1064
|
- app/interactors/spree_cm_commissioner/invoice_creator.rb
|
1015
1065
|
- app/interactors/spree_cm_commissioner/media/signed_cookie_generator.rb
|
1016
1066
|
- app/interactors/spree_cm_commissioner/media/signed_path_generator.rb
|
@@ -1040,6 +1090,7 @@ files:
|
|
1040
1090
|
- app/interactors/spree_cm_commissioner/sms.rb
|
1041
1091
|
- app/interactors/spree_cm_commissioner/sqs/media_convert_job_status.rb
|
1042
1092
|
- app/interactors/spree_cm_commissioner/state_updater.rb
|
1093
|
+
- app/interactors/spree_cm_commissioner/stock/permanent_inventory_items_generator.rb
|
1043
1094
|
- app/interactors/spree_cm_commissioner/subscriptions_order_creator.rb
|
1044
1095
|
- app/interactors/spree_cm_commissioner/subscriptions_order_cron_executor.rb
|
1045
1096
|
- app/interactors/spree_cm_commissioner/subscriptions_prepaid_order_creator.rb
|
@@ -1089,8 +1140,10 @@ files:
|
|
1089
1140
|
- app/jobs/spree_cm_commissioner/enqueue_cart/add_item_job.rb
|
1090
1141
|
- app/jobs/spree_cm_commissioner/ensure_event_id_for_guests_job.rb
|
1091
1142
|
- app/jobs/spree_cm_commissioner/export_csv_job.rb
|
1143
|
+
- app/jobs/spree_cm_commissioner/firebase_email_fetcher_job.rb
|
1092
1144
|
- app/jobs/spree_cm_commissioner/import_order_job.rb
|
1093
1145
|
- app/jobs/spree_cm_commissioner/invalidate_cache_request_job.rb
|
1146
|
+
- app/jobs/spree_cm_commissioner/inventory_item_syncer_job.rb
|
1094
1147
|
- app/jobs/spree_cm_commissioner/option_type_variants_public_metadata_updater_job.rb
|
1095
1148
|
- app/jobs/spree_cm_commissioner/option_value_variants_public_metadata_updater_job.rb
|
1096
1149
|
- app/jobs/spree_cm_commissioner/order_complete_telegram_sender_job.rb
|
@@ -1098,6 +1151,7 @@ files:
|
|
1098
1151
|
- app/jobs/spree_cm_commissioner/sms_job.rb
|
1099
1152
|
- app/jobs/spree_cm_commissioner/sms_pin_code_job.rb
|
1100
1153
|
- app/jobs/spree_cm_commissioner/state_job.rb
|
1154
|
+
- app/jobs/spree_cm_commissioner/stock/permanent_inventory_items_generator_job.rb
|
1101
1155
|
- app/jobs/spree_cm_commissioner/subscription_order_executor_job.rb
|
1102
1156
|
- app/jobs/spree_cm_commissioner/telegram_debug_pin_code_sender_job.rb
|
1103
1157
|
- app/jobs/spree_cm_commissioner/telegram_notification_sender_job.rb
|
@@ -1190,6 +1244,8 @@ files:
|
|
1190
1244
|
- app/models/spree_cm_commissioner/image_methods_decorator.rb
|
1191
1245
|
- app/models/spree_cm_commissioner/import.rb
|
1192
1246
|
- app/models/spree_cm_commissioner/imports/import_order.rb
|
1247
|
+
- app/models/spree_cm_commissioner/inventory.rb
|
1248
|
+
- app/models/spree_cm_commissioner/inventory_item.rb
|
1193
1249
|
- app/models/spree_cm_commissioner/invite.rb
|
1194
1250
|
- app/models/spree_cm_commissioner/invite_user_event.rb
|
1195
1251
|
- app/models/spree_cm_commissioner/invite_user_taxon.rb
|
@@ -1239,6 +1295,10 @@ files:
|
|
1239
1295
|
- app/models/spree_cm_commissioner/promotion_decorator.rb
|
1240
1296
|
- app/models/spree_cm_commissioner/property_decorator.rb
|
1241
1297
|
- app/models/spree_cm_commissioner/prototype_decorator.rb
|
1298
|
+
- app/models/spree_cm_commissioner/redis_stock/cached_inventory_items_builder.rb
|
1299
|
+
- app/models/spree_cm_commissioner/redis_stock/inventory_updater.rb
|
1300
|
+
- app/models/spree_cm_commissioner/redis_stock/line_items_cached_inventory_items_builder.rb
|
1301
|
+
- app/models/spree_cm_commissioner/redis_stock/variant_cached_inventory_items_builder.rb
|
1242
1302
|
- app/models/spree_cm_commissioner/role_decorator.rb
|
1243
1303
|
- app/models/spree_cm_commissioner/role_permission.rb
|
1244
1304
|
- app/models/spree_cm_commissioner/s3_presigned_url.rb
|
@@ -1251,8 +1311,10 @@ files:
|
|
1251
1311
|
- app/models/spree_cm_commissioner/stock/availability_validator_decorator.rb
|
1252
1312
|
- app/models/spree_cm_commissioner/stock/inventory_unit_builder_decorator.rb
|
1253
1313
|
- app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb
|
1314
|
+
- app/models/spree_cm_commissioner/stock/order_availability_checker.rb
|
1254
1315
|
- app/models/spree_cm_commissioner/stock_item_decorator.rb
|
1255
1316
|
- app/models/spree_cm_commissioner/stock_location_decorator.rb
|
1317
|
+
- app/models/spree_cm_commissioner/stock_movement_decorator.rb
|
1256
1318
|
- app/models/spree_cm_commissioner/stop.rb
|
1257
1319
|
- app/models/spree_cm_commissioner/store_decorator.rb
|
1258
1320
|
- app/models/spree_cm_commissioner/subscription.rb
|
@@ -1358,6 +1420,8 @@ files:
|
|
1358
1420
|
- app/overrides/spree/admin/products/new/subscribable_checkbox.html.erb.deface
|
1359
1421
|
- app/overrides/spree/admin/promotions/_form/auto_apply_field.html.erb.deface
|
1360
1422
|
- app/overrides/spree/admin/promotions/index/index.html.erb.deface
|
1423
|
+
- app/overrides/spree/admin/prototypes/_form/description.html.erb.deface
|
1424
|
+
- app/overrides/spree/admin/prototypes/_form/icon.html.erb.deface
|
1361
1425
|
- app/overrides/spree/admin/prototypes/_form/option_types.html.erb.deface
|
1362
1426
|
- app/overrides/spree/admin/prototypes/_form/product_type.html.erb.deface
|
1363
1427
|
- app/overrides/spree/admin/prototypes/show/product_type.html.erb.deface
|
@@ -1385,6 +1449,7 @@ files:
|
|
1385
1449
|
- app/overrides/spree/admin/shared/sub_menu/_integrations/telegram_bot.html.erb.deface
|
1386
1450
|
- app/overrides/spree/admin/shared/sub_menu/_orders/import_order.html.erb.deface
|
1387
1451
|
- app/overrides/spree/admin/shared/sub_menu/_organizations/tenants_tab.html.erb.deface
|
1452
|
+
- app/overrides/spree/admin/shared/sub_menu/_product/events_tab.html.erb.deface
|
1388
1453
|
- app/overrides/spree/admin/shipping_methods/_form/vendor.html.erb.deface
|
1389
1454
|
- app/overrides/spree/admin/state_changes/index/add_second_to_timestamp.html.erb.deface
|
1390
1455
|
- app/overrides/spree/admin/stock_locations/_form/lat_long.html.erb.deface
|
@@ -1452,13 +1517,12 @@ files:
|
|
1452
1517
|
- app/queries/spree_cm_commissioner/trip_search_query.rb
|
1453
1518
|
- app/queries/spree_cm_commissioner/trip_seat_layout_query.rb
|
1454
1519
|
- app/queries/spree_cm_commissioner/users_by_event_fetcher_query.rb
|
1455
|
-
- app/queries/spree_cm_commissioner/variant_availability/non_permanent_stock_query.rb
|
1456
|
-
- app/queries/spree_cm_commissioner/variant_availability/permanent_stock_query.rb
|
1457
1520
|
- app/request_schemas/spree_cm_commissioner/accommodation_request_schema.rb
|
1458
1521
|
- app/request_schemas/spree_cm_commissioner/application_request_schema.rb
|
1459
1522
|
- app/request_schemas/spree_cm_commissioner/profile_image_request_schema.rb
|
1460
1523
|
- app/request_schemas/spree_cm_commissioner/user_account_linkage_request_schema.rb
|
1461
1524
|
- app/request_schemas/spree_cm_commissioner/user_profile_request_schema.rb
|
1525
|
+
- app/request_schemas/spree_cm_commissioner/variant_request_schema.rb
|
1462
1526
|
- app/serializables/spree_cm_commissioner/event_ticket_aggregator.rb
|
1463
1527
|
- app/serializables/spree_cm_commissioner/pie_chart_event_aggregator.rb
|
1464
1528
|
- app/serializables/spree_cm_commissioner/queue_item.rb
|
@@ -1663,6 +1727,10 @@ files:
|
|
1663
1727
|
- app/views/spree/admin/device_tokens/edit.html.erb
|
1664
1728
|
- app/views/spree/admin/device_tokens/index.html.erb
|
1665
1729
|
- app/views/spree/admin/device_tokens/new.html.erb
|
1730
|
+
- app/views/spree/admin/events/_search_form.html.erb
|
1731
|
+
- app/views/spree/admin/events/_tab.html.erb
|
1732
|
+
- app/views/spree/admin/events/_table.html.erb
|
1733
|
+
- app/views/spree/admin/events/index.html.erb
|
1666
1734
|
- app/views/spree/admin/feature_images/_form.html.erb
|
1667
1735
|
- app/views/spree/admin/feature_images/edit.html.erb
|
1668
1736
|
- app/views/spree/admin/feature_images/index.html.erb
|
@@ -1779,7 +1847,9 @@ files:
|
|
1779
1847
|
- app/views/spree/admin/shared/_video_on_demand_helper_script.html.erb
|
1780
1848
|
- app/views/spree/admin/shared/sub_menu/_calendar.html.erb
|
1781
1849
|
- app/views/spree/admin/shared/sub_menu/_homepage.html.erb
|
1850
|
+
- app/views/spree/admin/stock_managements/_events_popover.html.erb
|
1782
1851
|
- app/views/spree/admin/stock_managements/_variant_stock_items.html.erb
|
1852
|
+
- app/views/spree/admin/stock_managements/calendar.html.erb
|
1783
1853
|
- app/views/spree/admin/stock_managements/index.html.erb
|
1784
1854
|
- app/views/spree/admin/system/show.html.erb
|
1785
1855
|
- app/views/spree/admin/taxon_childrens/index.html.erb
|
@@ -2069,6 +2139,7 @@ files:
|
|
2069
2139
|
- config/initializers/spree_commissioner.rb
|
2070
2140
|
- config/initializers/spree_permitted_attributes.rb
|
2071
2141
|
- config/initializers/telegram_bot.rb
|
2142
|
+
- config/initializers/user_manager_decorator.rb
|
2072
2143
|
- config/locales/dry_validations.en.yml
|
2073
2144
|
- config/locales/en.yml
|
2074
2145
|
- config/locales/km.yml
|
@@ -2344,6 +2415,7 @@ files:
|
|
2344
2415
|
- db/migrate/20250304101907_create_spree_cm_commissioner_invite.rb
|
2345
2416
|
- db/migrate/20250304101946_create_spree_cm_commissioner_invite_user_taxon.rb
|
2346
2417
|
- db/migrate/20250304155234_add_meta_data_to_spree_vendors.rb
|
2418
|
+
- db/migrate/20250304293518_create_cm_inventory_items.rb
|
2347
2419
|
- db/migrate/20250307013422_add_parent_id_to_cm_place.rb
|
2348
2420
|
- db/migrate/20250307073003_add_tenant_id_to_cm_customer_notifications.rb
|
2349
2421
|
- db/migrate/20250307083809_remove_tenant_id_from_cm_notifications.rb
|
@@ -2359,6 +2431,10 @@ files:
|
|
2359
2431
|
- db/migrate/20250403083001_create_spree_cm_commissioner_taxon_blazer_query.rb
|
2360
2432
|
- db/migrate/20250404050117_add_archived_at_to_spree_orders.rb
|
2361
2433
|
- db/migrate/20250407092556_add_variant_id_to_cm_trips.rb
|
2434
|
+
- db/migrate/20250425084929_add_description_to_spree_prototypes.rb
|
2435
|
+
- db/migrate/20250425085938_add_preferences_to_spree_prototypes.rb
|
2436
|
+
- db/migrate/20250428025645_add_slug_to_spree_prototypes.rb
|
2437
|
+
- db/migrate/20250429094228_add_lock_version_to_cm_inventory_items.rb
|
2362
2438
|
- docker-compose.yml
|
2363
2439
|
- docs/option_types/attr_types.md
|
2364
2440
|
- docs/private_key.pem
|
@@ -2373,11 +2449,12 @@ files:
|
|
2373
2449
|
- docs/webhook/sqs/params_job_submitted.json
|
2374
2450
|
- lib/cm_app_logger.rb
|
2375
2451
|
- lib/generators/spree_cm_commissioner/install/install_generator.rb
|
2376
|
-
- lib/generators/spree_cm_commissioner/install/templates/app/javascript/spree_cm_commissioner/utilities.js
|
2452
|
+
- lib/generators/spree_cm_commissioner/install/templates/app/javascript/spree_dashboard/spree_cm_commissioner/utilities.js
|
2377
2453
|
- lib/generators/spree_cm_commissioner/install/templates/config/data/nationalities.yml
|
2378
2454
|
- lib/generators/spree_cm_commissioner/install/templates/vendor/assets/javascript/spree_cm_commissioner/telegram/all.js
|
2379
2455
|
- lib/generators/spree_cm_commissioner/install/templates/vendor/assets/stylesheets/spree_cm_commissioner/telegram/all.css
|
2380
2456
|
- lib/spree_cm_commissioner.rb
|
2457
|
+
- lib/spree_cm_commissioner/cached_inventory_item.rb
|
2381
2458
|
- lib/spree_cm_commissioner/calendar_event.rb
|
2382
2459
|
- lib/spree_cm_commissioner/engine.rb
|
2383
2460
|
- lib/spree_cm_commissioner/factories.rb
|
@@ -2412,6 +2489,7 @@ files:
|
|
2412
2489
|
- lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb
|
2413
2490
|
- lib/spree_cm_commissioner/test_helper/factories/id_card_factory.rb
|
2414
2491
|
- lib/spree_cm_commissioner/test_helper/factories/image_factory.rb
|
2492
|
+
- lib/spree_cm_commissioner/test_helper/factories/inventory_item_factory.rb
|
2415
2493
|
- lib/spree_cm_commissioner/test_helper/factories/invite_factory.rb
|
2416
2494
|
- lib/spree_cm_commissioner/test_helper/factories/invite_user_event_factory.rb
|
2417
2495
|
- lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb
|
@@ -2466,9 +2544,12 @@ files:
|
|
2466
2544
|
- lib/spree_cm_commissioner/trip_seat_layout_result.rb
|
2467
2545
|
- lib/spree_cm_commissioner/user_session_jwt_token.rb
|
2468
2546
|
- lib/spree_cm_commissioner/version.rb
|
2547
|
+
- lib/tasks/create_default_non_permanent_inventory_items.rake
|
2469
2548
|
- lib/tasks/customer_notification_cron_scheduler.rake
|
2470
2549
|
- lib/tasks/ensure_event_for_guests.rake
|
2471
2550
|
- lib/tasks/ensure_number_for_line_items.rake
|
2551
|
+
- lib/tasks/fetch_email.rake
|
2552
|
+
- lib/tasks/generate_inventory_items.rake
|
2472
2553
|
- lib/tasks/kh_location_option_values.rake
|
2473
2554
|
- lib/tasks/kh_provinces.rake
|
2474
2555
|
- lib/tasks/remove_duplicate_device_tokens.rake
|
@@ -2501,9 +2582,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
2501
2582
|
version: '2.7'
|
2502
2583
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
2503
2584
|
requirements:
|
2504
|
-
- - "
|
2585
|
+
- - ">"
|
2505
2586
|
- !ruby/object:Gem::Version
|
2506
|
-
version:
|
2587
|
+
version: 1.3.1
|
2507
2588
|
requirements:
|
2508
2589
|
- none
|
2509
2590
|
rubygems_version: 3.4.1
|
@@ -1,45 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
module VariantAvailability
|
3
|
-
class NonPermanentStockQuery
|
4
|
-
attr_reader :variant, :except_line_item_id, :error_message
|
5
|
-
|
6
|
-
def initialize(variant:, except_line_item_id: nil)
|
7
|
-
@variant = variant
|
8
|
-
@except_line_item_id = except_line_item_id
|
9
|
-
@error_message = nil
|
10
|
-
end
|
11
|
-
|
12
|
-
def available?(quantity)
|
13
|
-
reserve_variants =
|
14
|
-
Spree::LineItem
|
15
|
-
.complete
|
16
|
-
.select('(SUM(DISTINCT spree_stock_items.count_on_hand) - SUM(spree_line_items.quantity)) AS available_quantity')
|
17
|
-
.joins(variant: :stock_items)
|
18
|
-
.where(variant_id: variant.id)
|
19
|
-
.where.not(id: except_line_item_id)
|
20
|
-
.group(:variant_id)
|
21
|
-
|
22
|
-
# there is a case when variant does not have any purchaces yet, it will return empty & always available true.
|
23
|
-
# in this case, we check with stock items directly.
|
24
|
-
|
25
|
-
available_quantity = if reserve_variants.any?
|
26
|
-
reserve_variants.sum(&:available_quantity)
|
27
|
-
else
|
28
|
-
variant.stock_items.sum(:count_on_hand)
|
29
|
-
end
|
30
|
-
if available_quantity >= quantity
|
31
|
-
true
|
32
|
-
elsif available_quantity == 1
|
33
|
-
@error_message = I18n.t('variant_availability.item_available_instock')
|
34
|
-
false
|
35
|
-
elsif available_quantity <= 0
|
36
|
-
@error_message = I18n.t('variant_availability.items_out_of_stock')
|
37
|
-
false
|
38
|
-
else
|
39
|
-
@error_message = I18n.t('variant_availability.items_available_instock', available_quantity: available_quantity)
|
40
|
-
false
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
module VariantAvailability
|
3
|
-
class PermanentStockQuery
|
4
|
-
attr_reader :variant, :from_date, :to_date, :except_line_item_id
|
5
|
-
|
6
|
-
def initialize(variant:, from_date:, to_date:, except_line_item_id: nil)
|
7
|
-
@variant = variant
|
8
|
-
@from_date = from_date
|
9
|
-
@to_date = to_date
|
10
|
-
@except_line_item_id = except_line_item_id
|
11
|
-
end
|
12
|
-
|
13
|
-
def available?(quantity)
|
14
|
-
(from_date..from_date).all? do |booking_date|
|
15
|
-
booked_date_quantity[booking_date].nil? ||
|
16
|
-
(booked_date_quantity[booking_date] - quantity) >= 0
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def booked_date_quantity
|
21
|
-
dates_sql = ApplicationRecord.sanitize_sql_array(
|
22
|
-
[
|
23
|
-
'SELECT date FROM generate_series(?::date, ?::date, ?) AS date',
|
24
|
-
from_date,
|
25
|
-
to_date,
|
26
|
-
date_interval
|
27
|
-
]
|
28
|
-
)
|
29
|
-
|
30
|
-
@booked_variants ||=
|
31
|
-
Spree::LineItem
|
32
|
-
.complete
|
33
|
-
.select(
|
34
|
-
'(SUM(DISTINCT spree_stock_items.count_on_hand) - SUM(spree_line_items.quantity)) AS available_quantity',
|
35
|
-
'dates.date AS reservation_date'
|
36
|
-
)
|
37
|
-
.joins(variant: :stock_items)
|
38
|
-
.where(variant_id: variant.id)
|
39
|
-
.where.not(id: except_line_item_id)
|
40
|
-
.joins("INNER JOIN (#{dates_sql}) dates ON dates.date >= spree_line_items.from_date AND dates.date < spree_line_items.to_date")
|
41
|
-
.group(:variant_id, :reservation_date)
|
42
|
-
.order(:reservation_date)
|
43
|
-
.each_with_object({}) do |record, hash|
|
44
|
-
hash[record.reservation_date.to_date] = record.available_quantity
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
# override this for product that have
|
49
|
-
# different date time interval than 1 day.
|
50
|
-
def date_interval
|
51
|
-
'1 day'
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|