spree_cm_commissioner 2.15.2 → 2.15.3
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 +3 -0
- data/Gemfile.lock +2 -2
- data/app/controllers/spree/admin/inventory_holds_controller.rb +32 -6
- data/app/errors/spree_cm_commissioner/integrations/rate_limited_error.rb +28 -0
- data/app/jobs/spree_cm_commissioner/integrations/book_me_bus_v1/sync_route_job.rb +70 -0
- data/app/models/spree_cm_commissioner/block.rb +16 -0
- data/app/models/spree_cm_commissioner/integration_mapping.rb +8 -0
- data/app/models/spree_cm_commissioner/integrations/book_me_bus_v1.rb +5 -0
- data/app/models/spree_cm_commissioner/reserved_block.rb +19 -3
- data/app/queries/spree_cm_commissioner/inventory_hold_insights_query.rb +151 -0
- data/app/queries/spree_cm_commissioner/inventory_hold_overview_query.rb +79 -0
- data/app/services/spree_cm_commissioner/integrations/base/sync_result.rb +7 -0
- data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/external_client/client.rb +24 -7
- data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/external_client/connection.rb +19 -13
- data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_item_availability.rb +12 -6
- data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_locations.rb +10 -3
- data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_routes.rb +11 -2
- data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_seat_layout.rb +8 -59
- data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_trips.rb +55 -35
- data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/trip.rb +0 -4
- data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/route_freshness.rb +48 -0
- data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/seat_layout_freshness.rb +46 -0
- data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/sync_manager.rb +5 -6
- data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/sync_strategies/full_sync_strategy.rb +32 -15
- data/app/services/spree_cm_commissioner/integrations/book_me_bus_v1/sync_strategies/incremental_sync_strategy.rb +43 -40
- data/app/services/spree_cm_commissioner/integrations/call_limiter.rb +89 -0
- data/app/services/spree_cm_commissioner/integrations/polling_scheduler.rb +13 -7
- data/app/services/spree_cm_commissioner/integrations/sync_backoff.rb +61 -0
- data/app/services/spree_cm_commissioner/seats/apply_locks.rb +13 -7
- data/app/services/spree_cm_commissioner/seats/block_history.rb +168 -0
- data/app/services/spree_cm_commissioner/seats/lock_state.rb +3 -1
- data/app/services/spree_cm_commissioner/seats/swap_seats.rb +265 -0
- data/app/services/spree_cm_commissioner/seats/unlock_blocks.rb +11 -12
- data/app/views/spree/admin/inventory_holds/_insights.html.erb +99 -0
- data/app/views/spree/admin/inventory_holds/_insights_drawer.html.erb +83 -0
- data/app/views/spree/admin/inventory_holds/_order_status.html.erb +9 -0
- data/app/views/spree/admin/inventory_holds/_overview.html.erb +109 -0
- data/app/views/spree/admin/inventory_holds/_section.html.erb +5 -0
- data/app/views/spree/admin/inventory_holds/_stat.html.erb +4 -0
- data/app/views/spree/admin/inventory_holds/index.html.erb +12 -1
- data/config/routes.rb +4 -0
- data/lib/spree_cm_commissioner/version.rb +1 -1
- metadata +18 -2
|
@@ -12,6 +12,11 @@
|
|
|
12
12
|
Inventory Holds
|
|
13
13
|
<% end %>
|
|
14
14
|
|
|
15
|
+
<% content_for :page_actions do %>
|
|
16
|
+
<button type="button" class="btn btn-outline-primary js-hold-insights" data-title="Overall insights"
|
|
17
|
+
data-url="<%= overview_admin_inventory_holds_path(q: params.fetch(:q, {}).to_unsafe_h) %>">Overall insights</button>
|
|
18
|
+
<% end %>
|
|
19
|
+
|
|
15
20
|
<%= render 'search' if @holds.any? || params[:q].present? %>
|
|
16
21
|
|
|
17
22
|
<% current_status = params.dig(:q, :status_eq).presence %>
|
|
@@ -36,9 +41,10 @@
|
|
|
36
41
|
<tr>
|
|
37
42
|
<th><%= sort_link @search, :id, 'ID' %></th>
|
|
38
43
|
<th>Order</th>
|
|
44
|
+
<th>Order Status</th>
|
|
39
45
|
<th>Customer</th>
|
|
40
46
|
<th>Vendor(s)</th>
|
|
41
|
-
<th>Status</th>
|
|
47
|
+
<th>Hold Status</th>
|
|
42
48
|
<th>Qty On Hold</th>
|
|
43
49
|
<th>Release Reason</th>
|
|
44
50
|
<th><%= sort_link @search, :expires_at, 'Expires At' %></th>
|
|
@@ -63,6 +69,7 @@
|
|
|
63
69
|
<span class="text-muted">—</span>
|
|
64
70
|
<% end %>
|
|
65
71
|
</td>
|
|
72
|
+
<td class="no-wrap"><%= render 'order_status', state: hold.order&.state, payment_state: hold.order&.payment_state %></td>
|
|
66
73
|
<td class="no-wrap">
|
|
67
74
|
<% if hold.order&.user %>
|
|
68
75
|
<%= link_to hold.order.user.email, admin_user_path(hold.order.user) %>
|
|
@@ -93,6 +100,8 @@
|
|
|
93
100
|
<td class="no-wrap"><%= order_time(hold.created_at) %></td>
|
|
94
101
|
<td class="actions">
|
|
95
102
|
<span class="d-flex justify-content-end">
|
|
103
|
+
<button type="button" class="btn btn-sm btn-outline-primary mr-1 js-hold-insights"
|
|
104
|
+
data-title="Hold #<%= hold.id %>" data-url="<%= insights_admin_inventory_hold_path(hold) %>">Insights</button>
|
|
96
105
|
<% unless hold.finalized? %>
|
|
97
106
|
<%= link_to 'Release',
|
|
98
107
|
release_admin_inventory_hold_path(hold, back_params: params.permit(:page, :per_page, q: {}).to_h),
|
|
@@ -125,3 +134,5 @@
|
|
|
125
134
|
<% end %>
|
|
126
135
|
|
|
127
136
|
<%= render 'spree/admin/shared/index_table_options', collection: @holds, simple: true if @holds.any? %>
|
|
137
|
+
|
|
138
|
+
<%= render 'insights_drawer' %>
|
data/config/routes.rb
CHANGED
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: 2.15.
|
|
4
|
+
version: 2.15.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- You
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-11-
|
|
11
|
+
date: 2026-11-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: spree
|
|
@@ -1171,6 +1171,7 @@ files:
|
|
|
1171
1171
|
- app/errors/spree_cm_commissioner/connection_error.rb
|
|
1172
1172
|
- app/errors/spree_cm_commissioner/exceeding_range_error.rb
|
|
1173
1173
|
- app/errors/spree_cm_commissioner/integrations/external_client_error.rb
|
|
1174
|
+
- app/errors/spree_cm_commissioner/integrations/rate_limited_error.rb
|
|
1174
1175
|
- app/errors/spree_cm_commissioner/integrations/sync_error.rb
|
|
1175
1176
|
- app/errors/spree_cm_commissioner/payment_creation_error.rb
|
|
1176
1177
|
- app/errors/spree_cm_commissioner/payment_source_missing_error.rb
|
|
@@ -1389,6 +1390,7 @@ files:
|
|
|
1389
1390
|
- app/jobs/spree_cm_commissioner/idempotency_keys/prune_job.rb
|
|
1390
1391
|
- app/jobs/spree_cm_commissioner/import_order_job.rb
|
|
1391
1392
|
- app/jobs/spree_cm_commissioner/integrations/base_job.rb
|
|
1393
|
+
- app/jobs/spree_cm_commissioner/integrations/book_me_bus_v1/sync_route_job.rb
|
|
1392
1394
|
- app/jobs/spree_cm_commissioner/integrations/cleanup_sync_sessions_job.rb
|
|
1393
1395
|
- app/jobs/spree_cm_commissioner/integrations/polling_job.rb
|
|
1394
1396
|
- app/jobs/spree_cm_commissioner/integrations/polling_scheduler_job.rb
|
|
@@ -2077,6 +2079,8 @@ files:
|
|
|
2077
2079
|
- app/queries/spree_cm_commissioner/event_chart_queries.rb
|
|
2078
2080
|
- app/queries/spree_cm_commissioner/event_ticket_aggregator_query.rb
|
|
2079
2081
|
- app/queries/spree_cm_commissioner/guest_searcher_query.rb
|
|
2082
|
+
- app/queries/spree_cm_commissioner/inventory_hold_insights_query.rb
|
|
2083
|
+
- app/queries/spree_cm_commissioner/inventory_hold_overview_query.rb
|
|
2080
2084
|
- app/queries/spree_cm_commissioner/line_item_searcher_query.rb
|
|
2081
2085
|
- app/queries/spree_cm_commissioner/multi_leg_trips_query.rb
|
|
2082
2086
|
- app/queries/spree_cm_commissioner/organizer_profile_event_query.rb
|
|
@@ -2439,9 +2443,12 @@ files:
|
|
|
2439
2443
|
- app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/trip.rb
|
|
2440
2444
|
- app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/trip_location.rb
|
|
2441
2445
|
- app/services/spree_cm_commissioner/integrations/book_me_bus_v1/resources/wallet_payment.rb
|
|
2446
|
+
- app/services/spree_cm_commissioner/integrations/book_me_bus_v1/route_freshness.rb
|
|
2447
|
+
- app/services/spree_cm_commissioner/integrations/book_me_bus_v1/seat_layout_freshness.rb
|
|
2442
2448
|
- app/services/spree_cm_commissioner/integrations/book_me_bus_v1/sync_manager.rb
|
|
2443
2449
|
- app/services/spree_cm_commissioner/integrations/book_me_bus_v1/sync_strategies/full_sync_strategy.rb
|
|
2444
2450
|
- app/services/spree_cm_commissioner/integrations/book_me_bus_v1/sync_strategies/incremental_sync_strategy.rb
|
|
2451
|
+
- app/services/spree_cm_commissioner/integrations/call_limiter.rb
|
|
2445
2452
|
- app/services/spree_cm_commissioner/integrations/cleanup_sync_sessions.rb
|
|
2446
2453
|
- app/services/spree_cm_commissioner/integrations/larryta/external_client/client.rb
|
|
2447
2454
|
- app/services/spree_cm_commissioner/integrations/larryta/external_client/connection.rb
|
|
@@ -2507,6 +2514,7 @@ files:
|
|
|
2507
2514
|
- app/services/spree_cm_commissioner/integrations/switch_cm/xml/push_response.rb
|
|
2508
2515
|
- app/services/spree_cm_commissioner/integrations/switch_cm/xml/reservation_serializer.rb
|
|
2509
2516
|
- app/services/spree_cm_commissioner/integrations/switch_cm/xml/response_builder.rb
|
|
2517
|
+
- app/services/spree_cm_commissioner/integrations/sync_backoff.rb
|
|
2510
2518
|
- app/services/spree_cm_commissioner/integrations/vireak_buntham/external_client/client.rb
|
|
2511
2519
|
- app/services/spree_cm_commissioner/integrations/vireak_buntham/external_client/connection.rb
|
|
2512
2520
|
- app/services/spree_cm_commissioner/integrations/vireak_buntham/inventory/external_inventory_item_status.rb
|
|
@@ -2679,11 +2687,13 @@ files:
|
|
|
2679
2687
|
- app/services/spree_cm_commissioner/seats/apply_locks.rb
|
|
2680
2688
|
- app/services/spree_cm_commissioner/seats/auto_assign.rb
|
|
2681
2689
|
- app/services/spree_cm_commissioner/seats/block_date_iteration.rb
|
|
2690
|
+
- app/services/spree_cm_commissioner/seats/block_history.rb
|
|
2682
2691
|
- app/services/spree_cm_commissioner/seats/bulk_release_on_hold_blocks.rb
|
|
2683
2692
|
- app/services/spree_cm_commissioner/seats/lock_blocks.rb
|
|
2684
2693
|
- app/services/spree_cm_commissioner/seats/lock_state.rb
|
|
2685
2694
|
- app/services/spree_cm_commissioner/seats/pick_seats.rb
|
|
2686
2695
|
- app/services/spree_cm_commissioner/seats/release_expired_blocks.rb
|
|
2696
|
+
- app/services/spree_cm_commissioner/seats/swap_seats.rb
|
|
2687
2697
|
- app/services/spree_cm_commissioner/seats/unlock_blocks.rb
|
|
2688
2698
|
- app/services/spree_cm_commissioner/seeds/roles_decorator.rb
|
|
2689
2699
|
- app/services/spree_cm_commissioner/seeds/user_usernames.rb
|
|
@@ -2901,7 +2911,13 @@ files:
|
|
|
2901
2911
|
- app/views/spree/admin/integrations/edit.html.erb
|
|
2902
2912
|
- app/views/spree/admin/integrations/index.html.erb
|
|
2903
2913
|
- app/views/spree/admin/integrations/new.html.erb
|
|
2914
|
+
- app/views/spree/admin/inventory_holds/_insights.html.erb
|
|
2915
|
+
- app/views/spree/admin/inventory_holds/_insights_drawer.html.erb
|
|
2916
|
+
- app/views/spree/admin/inventory_holds/_order_status.html.erb
|
|
2917
|
+
- app/views/spree/admin/inventory_holds/_overview.html.erb
|
|
2904
2918
|
- app/views/spree/admin/inventory_holds/_search.html.erb
|
|
2919
|
+
- app/views/spree/admin/inventory_holds/_section.html.erb
|
|
2920
|
+
- app/views/spree/admin/inventory_holds/_stat.html.erb
|
|
2905
2921
|
- app/views/spree/admin/inventory_holds/index.html.erb
|
|
2906
2922
|
- app/views/spree/admin/inventory_items/_details.html.erb
|
|
2907
2923
|
- app/views/spree/admin/inventory_lock_movements/index.html.erb
|