@flowselections/floriday-afhandeling-module 1.0.66 → 1.0.71

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.
Files changed (118) hide show
  1. package/dist-lib/components/afhandeling/AutoProcessStatus.js +3 -3
  2. package/dist-lib/components/afhandeling/AutoSendStatus.js +1 -1
  3. package/dist-lib/components/afhandeling/CapacityWarning.d.ts +1 -1
  4. package/dist-lib/components/afhandeling/CapacityWarning.js +1 -1
  5. package/dist-lib/components/afhandeling/ControleLijstPrint.d.ts +2 -2
  6. package/dist-lib/components/afhandeling/ControleLijstPrint.js +2 -2
  7. package/dist-lib/components/afhandeling/ControlePage.js +5 -5
  8. package/dist-lib/components/afhandeling/DagDetailDialog.d.ts +1 -1
  9. package/dist-lib/components/afhandeling/DagDetailDialog.d.ts.map +1 -1
  10. package/dist-lib/components/afhandeling/DagDetailDialog.js +63 -22
  11. package/dist-lib/components/afhandeling/LeveringenPage.js +5 -5
  12. package/dist-lib/components/afhandeling/NieuweVervoerderPage.js +1 -1
  13. package/dist-lib/components/afhandeling/NuVersturenButton.js +1 -1
  14. package/dist-lib/components/afhandeling/PickAgendaView.d.ts +1 -1
  15. package/dist-lib/components/afhandeling/PickAgendaView.js +5 -5
  16. package/dist-lib/components/afhandeling/PickingPage.js +1 -1
  17. package/dist-lib/components/afhandeling/PlanningAgendaPage.d.ts +1 -1
  18. package/dist-lib/components/afhandeling/PlanningAgendaPage.js +2 -2
  19. package/dist-lib/components/afhandeling/ServiceAreaSelect.js +1 -1
  20. package/dist-lib/components/afhandeling/SignupMailMoments.js +5 -3
  21. package/dist-lib/components/afhandeling/VervoerderBewerkenPage.js +1 -1
  22. package/dist-lib/components/afhandeling/VervoerderForm.js +6 -6
  23. package/dist-lib/components/afhandeling/VervoerdersPage.js +7 -7
  24. package/dist-lib/components/afhandeling/VerzetOrderDialog.js +6 -6
  25. package/dist-lib/components/afhandeling/WeekAgendaView.d.ts +2 -2
  26. package/dist-lib/components/afhandeling/WeekAgendaView.js +9 -9
  27. package/dist-lib/components/afhandeling/WerkplekWaarschuwing.js +1 -1
  28. package/dist-lib/components/pickstation/PakbonTemplate.d.ts +2 -2
  29. package/dist-lib/components/pickstation/PakbonTemplate.js +1 -1
  30. package/dist-lib/components/pickstation/printDocuments.d.ts +1 -1
  31. package/dist-lib/components/pickstation/printDocuments.js +1 -1
  32. package/dist-lib/components/settings/AfhandelingSettingsCard.js +4 -4
  33. package/dist-lib/components/settings/VervoerdersSettingsCard.js +2 -2
  34. package/dist-lib/hooks/useCapacityCheck.d.ts +1 -1
  35. package/dist-lib/hooks/useCapacityCheck.js +1 -1
  36. package/dist-lib/hooks/useCartIndex.js +2 -2
  37. package/dist-lib/hooks/useConsistencyCheck.js +1 -1
  38. package/dist-lib/hooks/useEngineBufferEvents.js +1 -1
  39. package/dist-lib/hooks/useEngineTasks.d.ts +1 -1
  40. package/dist-lib/hooks/useEngineTasks.js +2 -2
  41. package/dist-lib/hooks/useKnownOrders.js +4 -4
  42. package/dist-lib/hooks/useOrderBuffers.js +1 -1
  43. package/dist-lib/hooks/useOrderMeldingen.js +1 -1
  44. package/dist-lib/hooks/useOrderPickDates.js +3 -3
  45. package/dist-lib/hooks/useOrderPlanning.d.ts +3 -3
  46. package/dist-lib/hooks/useOrderPlanning.js +13 -13
  47. package/dist-lib/hooks/usePickAgenda.js +4 -4
  48. package/dist-lib/hooks/usePickMode.d.ts +2 -2
  49. package/dist-lib/hooks/usePickMode.js +1 -1
  50. package/dist-lib/index.d.ts +16 -16
  51. package/dist-lib/index.js +16 -16
  52. package/dist-lib/integrations/supabase/auth-middleware.d.ts +1 -1
  53. package/dist-lib/integrations/supabase/client.server.d.ts +1 -1
  54. package/dist-lib/integrations/supabase/moduleClient.d.ts +1 -1
  55. package/dist-lib/integrations/supabase/types.d.ts +586 -0
  56. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  57. package/dist-lib/lib/afhandelingSettings.functions.d.ts +2 -2
  58. package/dist-lib/lib/afhandelingSettings.functions.js +1 -1
  59. package/dist-lib/lib/agendaRange.js +1 -1
  60. package/dist-lib/lib/authGateway.server.js +2 -2
  61. package/dist-lib/lib/carrierMatch.server.js +1 -1
  62. package/dist-lib/lib/carrierPlanning.d.ts +1 -1
  63. package/dist-lib/lib/carrierPlanning.js +3 -3
  64. package/dist-lib/lib/carrierSignup.functions.d.ts +11 -4
  65. package/dist-lib/lib/carrierSignup.functions.d.ts.map +1 -1
  66. package/dist-lib/lib/carrierSignup.functions.js +2 -2
  67. package/dist-lib/lib/carriers.functions.d.ts +7 -7
  68. package/dist-lib/lib/carriers.functions.js +3 -3
  69. package/dist-lib/lib/cartAssignments.functions.d.ts +8 -8
  70. package/dist-lib/lib/cartAssignments.functions.js +1 -1
  71. package/dist-lib/lib/cartControl.functions.d.ts +11 -11
  72. package/dist-lib/lib/cartControl.functions.js +2 -2
  73. package/dist-lib/lib/cartMoveImpact.d.ts +1 -1
  74. package/dist-lib/lib/cartMoveImpact.js +1 -1
  75. package/dist-lib/lib/cartRescheduling.js +1 -1
  76. package/dist-lib/lib/deliveryNote.functions.d.ts +1 -1
  77. package/dist-lib/lib/deliveryNote.functions.js +2 -2
  78. package/dist-lib/lib/deliveryNotePrint.js +3 -3
  79. package/dist-lib/lib/engineLayouts.functions.d.ts +1 -1
  80. package/dist-lib/lib/engineLayouts.functions.js +1 -1
  81. package/dist-lib/lib/floriday.functions.d.ts +2 -2
  82. package/dist-lib/lib/floriday.functions.js +2 -2
  83. package/dist-lib/lib/floridayAutoProcess.js +2 -2
  84. package/dist-lib/lib/floridayFulfilled.d.ts +9 -0
  85. package/dist-lib/lib/floridayFulfilled.d.ts.map +1 -0
  86. package/dist-lib/lib/floridayFulfilled.js +28 -0
  87. package/dist-lib/lib/floridayFulfilled.test.d.ts +2 -0
  88. package/dist-lib/lib/floridayFulfilled.test.d.ts.map +1 -0
  89. package/dist-lib/lib/floridayFulfilled.test.js +28 -0
  90. package/dist-lib/lib/floridayFulfillmentSend.server.js +3 -3
  91. package/dist-lib/lib/floridayLoading.functions.d.ts +2 -2
  92. package/dist-lib/lib/floridayLoading.functions.d.ts.map +1 -1
  93. package/dist-lib/lib/floridayLoading.functions.js +24 -3
  94. package/dist-lib/lib/gatewayBase.server.js +1 -1
  95. package/dist-lib/lib/invalidatePlanning.js +1 -1
  96. package/dist-lib/lib/logisticsEngine/engine.js +1 -1
  97. package/dist-lib/lib/logisticsEngine/reschedule.js +2 -2
  98. package/dist-lib/lib/logisticsEngine/staffPlanning.js +1 -1
  99. package/dist-lib/lib/orderFulfilment.functions.d.ts +1 -1
  100. package/dist-lib/lib/orderFulfilment.functions.js +1 -1
  101. package/dist-lib/lib/pickDates.functions.d.ts +1 -1
  102. package/dist-lib/lib/pickDates.functions.js +2 -2
  103. package/dist-lib/lib/pickMode.js +1 -1
  104. package/dist-lib/lib/pickWorkdays.js +1 -1
  105. package/dist-lib/lib/pickstationOrders.server.d.ts +2 -2
  106. package/dist-lib/lib/pickstationOrders.server.js +4 -4
  107. package/dist-lib/lib/realtimeBus.js +1 -1
  108. package/dist-lib/lib/serverRoutes/autoSend.handler.d.ts.map +1 -1
  109. package/dist-lib/lib/serverRoutes/autoSend.handler.js +12 -4
  110. package/dist-lib/lib/serverRoutes/index.d.ts +5 -5
  111. package/dist-lib/lib/serverRoutes/index.js +5 -5
  112. package/dist-lib/lib/serverRoutes/pickstationOrders.handler.js +1 -1
  113. package/dist-lib/lib/serverRoutes/pickstationPrint.handler.js +1 -1
  114. package/dist-lib/lib/serverRoutes/pickstationStatus.handler.js +1 -1
  115. package/dist-lib/lib/signupMailText.d.ts.map +1 -1
  116. package/dist-lib/lib/signupMailText.js +4 -0
  117. package/dist-lib/moduleDefinition.js +3 -3
  118. package/package.json +5 -4
@@ -2,9 +2,9 @@
2
2
  // - fulfillment-order/status { salesOrderIds } → fulfillmentRequestId + deliveryOrderId per order
3
3
  // - fulfillment-order/send { deliveryOrderId, ... } → belading (enige route voor belading)
4
4
  // Adres en geheim komen uit de omgeving; ontbreken ze, dan volgt een fout (fail closed).
5
- import { resolveGatewayBaseServer } from "./gatewayBase.server";
6
- import { getFloridayGatewaySecret } from "./centralSecrets.server";
7
- import { signBody } from "./authGateway.server";
5
+ import { resolveGatewayBaseServer } from "./gatewayBase.server.js";
6
+ import { getFloridayGatewaySecret } from "./centralSecrets.server.js";
7
+ import { signBody } from "./authGateway.server.js";
8
8
  async function signedPost(path, payload) {
9
9
  const secret = await getFloridayGatewaySecret(); // throws als het ontbreekt
10
10
  const base = await resolveGatewayBaseServer(); // throws als het ontbreekt
@@ -77,7 +77,7 @@ export declare const LOAD_CARRIER_REF_MAX = 14;
77
77
  export declare const ACCEPTED: Set<string>;
78
78
  /** Stelt de belading samen en toont de controles. Verstuurt niets. */
79
79
  export declare const prepareFloridayLoading: import("@tanstack/start-client-core").RequiredFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
80
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
80
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
81
81
  userId: string;
82
82
  claims: import("@supabase/auth-js").JwtPayload;
83
83
  }, undefined, undefined, undefined>], (d: {
@@ -92,7 +92,7 @@ export declare const prepareFloridayLoading: import("@tanstack/start-client-core
92
92
  * floriday_loading_attempts. Herhalen gebruikt altijd dezelfde fulfillmentOrderId.
93
93
  */
94
94
  export declare const sendFloridayLoading: import("@tanstack/start-client-core").RequiredFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
95
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
95
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
96
96
  userId: string;
97
97
  claims: import("@supabase/auth-js").JwtPayload;
98
98
  }, undefined, undefined, undefined>], (d: {
@@ -1 +1 @@
1
- {"version":3,"file":"floridayLoading.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floridayLoading.functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"floridayLoading.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floridayLoading.functions.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@
4
4
  // `floriday_loading_identifiers`; de Floriday-koppeling geeft ze ongewijzigd door.
5
5
  // Sets: Floriday knipt een set op in losse verkooporders → één regel per onderdeel.
6
6
  import { createServerFn } from "@tanstack/react-start";
7
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
7
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
8
+ import { isFloridayExternallyFulfilled } from "./floridayFulfilled.js";
8
9
  const arr = (v) => (Array.isArray(v) ? v : []);
9
10
  const num = (v) => v == null || v === "" || !Number.isFinite(Number(v)) ? null : Number(v);
10
11
  /** Floriday 2026v1 AddLoadCarrierConfiguration.loadCarrierReference: maximaal 14 tekens. */
@@ -139,6 +140,26 @@ async function buildLoading(supabase, orderRef) {
139
140
  queue.push(s.id);
140
141
  }
141
142
  }
143
+ // Afgehandeld in Floriday (Verkoop): die orders/bestellingen nooit versturen; match op salesOrderId.
144
+ {
145
+ const { data: cfRows, error: cfErr } = coverage.size
146
+ ? await supabase.from("orders").select("id, custom_fields").in("id", [...coverage.keys()])
147
+ : { data: [], error: null };
148
+ if (cfErr)
149
+ throw new Error(cfErr.message);
150
+ const lists = (cfRows ?? []).map((r) => r.custom_fields?.floriday_external_fulfilled_sales_order_ids);
151
+ const done = [];
152
+ for (const r of cfRows ?? []) {
153
+ const cf = r.custom_fields ?? {};
154
+ if (cf.floriday_fulfilled === true || cf.floriday_fulfilled === "true" || isFloridayExternallyFulfilled(cf, lists)) {
155
+ done.push(coverage.get(r.id)?.ref ?? r.id);
156
+ coverage.delete(r.id);
157
+ }
158
+ }
159
+ if (done.length && coverage.size === 0) {
160
+ blockers.push(`Afgehandeld in Floriday — er wordt niets verstuurd (${done.join(", ")}).`);
161
+ }
162
+ }
142
163
  // Gecontroleerd = elke kar van de order is bij de controlebalie afgemeld (scan of "Controle uitvoeren").
143
164
  const orderIds = [...coverage.keys()].sort();
144
165
  // Zelfde regel als Floriday-authenticatie: per Engine-kar (ook gedeeld) een rij in
@@ -163,7 +184,7 @@ async function buildLoading(supabase, orderRef) {
163
184
  let status = new Map();
164
185
  let statusFailed = false;
165
186
  try {
166
- const { fetchFulfillmentStatus } = await import("./floridayFulfillmentSend.server");
187
+ const { fetchFulfillmentStatus } = await import("./floridayFulfillmentSend.server.js");
167
188
  status = await fetchFulfillmentStatus(soIds, baseFo ? [baseFo] : []);
168
189
  }
169
190
  catch (e) {
@@ -392,7 +413,7 @@ export async function prepareLoadingServer(supabase, orderRef) {
392
413
  * gebruiken allebei deze functie met dezelfde vaste kenmerken.
393
414
  */
394
415
  export async function runLoadingSend(supabase, p, actor) {
395
- const { sendFulfillmentOrder, floridayFoutTekst } = await import("./floridayFulfillmentSend.server");
416
+ const { sendFulfillmentOrder, floridayFoutTekst } = await import("./floridayFulfillmentSend.server.js");
396
417
  const log = async (s, row) => {
397
418
  const rs = row.request_summary ?? {};
398
419
  const { error } = await supabase.from("floriday_loading_attempts").insert({
@@ -1,7 +1,7 @@
1
1
  // Server-only resolver voor de gateway-base-URL.
2
2
  // Volgorde: PUBLIC_BASE_URL (shell levert dit) → central /api/shell-host.
3
3
  // Nooit stille fallback: throw als niets werkt.
4
- import { getShellHost } from "./centralSecrets.server";
4
+ import { getShellHost } from "./centralSecrets.server.js";
5
5
  function strip(url) {
6
6
  const trimmed = url.trim().replace(/\/$/, "");
7
7
  if (!/^https?:\/\//i.test(trimmed)) {
@@ -1,4 +1,4 @@
1
- import { resetAllCartOverrides } from "./cartAssignments.functions";
1
+ import { resetAllCartOverrides } from "./cartAssignments.functions.js";
2
2
  /**
3
3
  * Invalideer alle queries die invloed hebben op de logistieke planning:
4
4
  * orders, instellingen, vervoerders. Hierdoor herberekent useOrderPlanning
@@ -4,7 +4,7 @@
4
4
  * Deze module beslist zelf niets meer over buffering, belading, picken of
5
5
  * transport. Alle besluiten komen van de Rule Engine (stap 3 "Order picken").
6
6
  */
7
- import { supabase } from "../../integrations/supabase/moduleClient";
7
+ import { supabase } from "../../integrations/supabase/moduleClient.js";
8
8
  export const OWNER_MODULE = "afhandeling";
9
9
  export const SOURCE_MODULE = "afhandeling";
10
10
  /** Vraag het indelingsbesluit op. Nooit zelf indelen zonder dit besluit. */
@@ -2,8 +2,8 @@
2
2
  * Order verzetten — uitsluitend via de twee RPC's van de Logistics Engine.
3
3
  * Deze module rekent zelf niets uit en doet nooit een eigen UPDATE.
4
4
  */
5
- import { supabase } from "../../integrations/supabase/moduleClient";
6
- import { amsterdamDay, formatAmsterdam } from "../timezone";
5
+ import { supabase } from "../../integrations/supabase/moduleClient.js";
6
+ import { amsterdamDay, formatAmsterdam } from "../timezone.js";
7
7
  export async function previewReschedule(input) {
8
8
  const { data, error } = await supabase.rpc("logistics_reschedule_preview", {
9
9
  p_order_ref: input.orderRef,
@@ -1,5 +1,5 @@
1
1
  import { supabase } from "../../integrations/supabase/moduleClient.js";
2
- import { SOURCE_MODULE } from "./engine";
2
+ import { SOURCE_MODULE } from "./engine.js";
3
3
  export function toDateKey(d) {
4
4
  const m = String(d.getMonth() + 1).padStart(2, "0");
5
5
  const day = String(d.getDate()).padStart(2, "0");
@@ -12,7 +12,7 @@ export interface MarkOrderShippedResult {
12
12
  * schrijft alleen dezelfde waarde weg en raakt verder niets aan.
13
13
  */
14
14
  export declare const markOrderShipped: import("@tanstack/start-client-core").RequiredFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
15
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
15
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
16
16
  userId: string;
17
17
  claims: import("@supabase/auth-js").JwtPayload;
18
18
  }, undefined, undefined, undefined>], (input: MarkOrderShippedInput) => {
@@ -1,5 +1,5 @@
1
1
  import { createServerFn } from "@tanstack/react-start";
2
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
2
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
3
3
  /** Status die de Verkoop Module gebruikt voor een afgehandelde order. */
4
4
  const SHIPPED_STATUS = "Verzonden";
5
5
  /**
@@ -20,7 +20,7 @@ export interface ListOrderPickDatesInput {
20
20
  to?: string;
21
21
  }
22
22
  export declare const listOrderPickDates: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
23
- supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
23
+ supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
24
24
  userId: string;
25
25
  claims: import("@supabase/auth-js").JwtPayload;
26
26
  }, undefined, undefined, undefined>], (input: ListOrderPickDatesInput | undefined) => ListOrderPickDatesInput, Promise<{
@@ -1,6 +1,6 @@
1
1
  import { createServerFn } from "@tanstack/react-start";
2
- import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
3
- import { normalizeOrderNumber } from "./orderRefs";
2
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
3
+ import { normalizeOrderNumber } from "./orderRefs.js";
4
4
  function dayInAmsterdam(iso) {
5
5
  if (!iso)
6
6
  return null;
@@ -1,4 +1,4 @@
1
- import { supabase } from "../integrations/supabase/moduleClient";
1
+ import { supabase } from "../integrations/supabase/moduleClient.js";
2
2
  /** Nog nooit met succes opgehaald: werkwijze onbekend. */
3
3
  const UNKNOWN = { pickMode: null, showCartControl: false, status: "unknown" };
4
4
  const PICK_MODE_TIMEOUT_MS = 8000;
@@ -1,4 +1,4 @@
1
- import { setPickWorkdayCalendar } from "./planning";
1
+ import { setPickWorkdayCalendar } from "./planning.js";
2
2
  function iso(d) {
3
3
  const y = d.getFullYear();
4
4
  const m = String(d.getMonth() + 1).padStart(2, "0");
@@ -1,6 +1,6 @@
1
1
  import { createClient } from "@supabase/supabase-js";
2
- import type { PickstationOrder } from "./pickstationTypes";
3
- export type { PickstationLine, PickstationOrder } from "./pickstationTypes";
2
+ import type { PickstationOrder } from "./pickstationTypes.js";
3
+ export type { PickstationLine, PickstationOrder } from "./pickstationTypes.js";
4
4
  export declare function loadTodaysPickstationOrders(client?: ReturnType<typeof createClient>): Promise<PickstationOrder[]>;
5
5
  export declare function fetchFloridayAuctionLetterPdf(_orderId: string): Promise<{
6
6
  base64: string;
@@ -2,9 +2,9 @@
2
2
  // Uses the publishable-key Supabase client + SECURITY DEFINER RPCs so the
3
3
  // public Pickstation works without a service-role key.
4
4
  import { createClient } from "@supabase/supabase-js";
5
- import { calculateOrderPlanning, distributePickDates, } from "./planning";
6
- import { normalizePickupMoments, normalizePlanningCarriers, sanitizeWeekdays, selectCarrierForTarget, } from "./carrierPlanning";
7
- import { loadPickWorkdays } from "./pickWorkdays";
5
+ import { calculateOrderPlanning, distributePickDates, } from "./planning.js";
6
+ import { normalizePickupMoments, normalizePlanningCarriers, sanitizeWeekdays, selectCarrierForTarget, } from "./carrierPlanning.js";
7
+ import { loadPickWorkdays } from "./pickWorkdays.js";
8
8
  const LOG_SCOPE = "[pickstation]";
9
9
  function debug(action, details) {
10
10
  console.info(`${LOG_SCOPE} ${action}`, {
@@ -478,7 +478,7 @@ export async function fetchFloridayAuctionLetterPdf(_orderId) {
478
478
  }
479
479
  /** Haalt een Floriday-afleverbrief PDF op via de Authenticatie-module gateway. */
480
480
  export async function fetchFloridayDeliveryNotePdf(salesOrderId) {
481
- const { fetchDeliveryNotePdf } = await import("./authGateway.server");
481
+ const { fetchDeliveryNotePdf } = await import("./authGateway.server.js");
482
482
  return fetchDeliveryNotePdf(salesOrderId);
483
483
  }
484
484
  export async function setCartStatus(orderSource, orderId, cartIndex, status, client) {
@@ -1,4 +1,4 @@
1
- import { supabase } from "../integrations/supabase/moduleClient";
1
+ import { supabase } from "../integrations/supabase/moduleClient.js";
2
2
  const entries = new Map();
3
3
  function ensureEntry(table) {
4
4
  const existing = entries.get(table);
@@ -1 +1 @@
1
- {"version":3,"file":"autoSend.handler.d.ts","sourceRoot":"","sources":["../../../src/lib/serverRoutes/autoSend.handler.ts"],"names":[],"mappings":"AA2BA,sFAAsF;AACtF,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgDzF"}
1
+ {"version":3,"file":"autoSend.handler.d.ts","sourceRoot":"","sources":["../../../src/lib/serverRoutes/autoSend.handler.ts"],"names":[],"mappings":"AA4BA,sFAAsF;AACtF,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgDzF"}
@@ -3,6 +3,7 @@
3
3
  // HMAC-SHA256 over "<timestamp>.<rawBody>"), sleutel = Floriday-gatewaygeheim.
4
4
  // Fail closed: geen geheim = niets doen. Versturen loopt via runLoadingSend.
5
5
  import { z } from "zod";
6
+ import { isFloridayExternallyFulfilled } from "../floridayFulfilled.js";
6
7
  const MAX_SKEW_MS = 5 * 60000;
7
8
  const bodySchema = z.object({ orderId: z.string().uuid() }).strict();
8
9
  const json = (status, body) => Response.json(body, { status });
@@ -35,7 +36,7 @@ export async function handleAutoSend(request, admin) {
35
36
  return json(401, { ok: false, code: "timestamp_out_of_range", error: "x-timestamp valt buiten de marge van 5 minuten." });
36
37
  let secret;
37
38
  try {
38
- const { getFloridayGatewaySecret } = await import("../centralSecrets.server");
39
+ const { getFloridayGatewaySecret } = await import("../centralSecrets.server.js");
39
40
  secret = await getFloridayGatewaySecret();
40
41
  }
41
42
  catch {
@@ -62,7 +63,7 @@ export async function handleAutoSend(request, admin) {
62
63
  let sbClient = admin ?? null;
63
64
  if (!sbClient) {
64
65
  try {
65
- sbClient = (await import("../../integrations/supabase/client.server")).supabaseAdmin;
66
+ sbClient = (await import("../../integrations/supabase/client.server.js")).supabaseAdmin;
66
67
  }
67
68
  catch {
68
69
  sbClient = null;
@@ -89,10 +90,17 @@ async function processOrder(orderId, sb) {
89
90
  : typeof cf.salesOrderId === "string" ? cf.salesOrderId : null;
90
91
  if (!salesOrderId)
91
92
  return json(422, { ok: false, code: "not_floriday", error: "Order heeft geen Floriday-id." });
92
- const { ACCEPTED, prepareLoadingServer, runLoadingSend } = await import("../floridayLoading.functions");
93
+ const { ACCEPTED, prepareLoadingServer, runLoadingSend } = await import("../floridayLoading.functions.js");
93
94
  const ref = order.order_number ?? order.id;
94
95
  const already = async () => {
95
- if (cf.floriday_fulfilled === true)
96
+ if (cf.floriday_fulfilled === true || cf.floriday_fulfilled === "true")
97
+ return true;
98
+ if (isFloridayExternallyFulfilled(cf))
99
+ return true;
100
+ // Gebundelde orders: Floriday-id kan in de lijst van een andere order staan.
101
+ const { data: lists } = await sb.from("orders").select("id")
102
+ .is("deleted_at", null).contains("custom_fields", { floriday_external_fulfilled_sales_order_ids: [salesOrderId] }).limit(1);
103
+ if (Array.isArray(lists) && lists.length > 0)
96
104
  return true;
97
105
  const { data } = await sb.from("floriday_loading_attempts").select("code")
98
106
  .eq("step", "send").contains("order_refs", [ref]).in("code", [...ACCEPTED]).limit(1);
@@ -1,6 +1,6 @@
1
- export { handlePickstationOrders } from "./pickstationOrders.handler";
2
- export { handlePickstationPrint } from "./pickstationPrint.handler";
3
- export { handlePickstationStatus } from "./pickstationStatus.handler";
4
- export { handleDispatchCarrierSignups } from "./dispatchCarrierSignups.handler";
5
- export { handleAutoSend } from "./autoSend.handler";
1
+ export { handlePickstationOrders } from "./pickstationOrders.handler.js";
2
+ export { handlePickstationPrint } from "./pickstationPrint.handler.js";
3
+ export { handlePickstationStatus } from "./pickstationStatus.handler.js";
4
+ export { handleDispatchCarrierSignups } from "./dispatchCarrierSignups.handler.js";
5
+ export { handleAutoSend } from "./autoSend.handler.js";
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1,8 +1,8 @@
1
1
  // Barrel voor shell-hostbare server-route handlers.
2
2
  // Wordt via de subpath-export "@flowselections/floriday-afhandeling-module/server-routes"
3
3
  // door het dashboard geladen; NIET re-exporteren vanuit src/index.ts (client-bundle-vrij).
4
- export { handlePickstationOrders } from "./pickstationOrders.handler";
5
- export { handlePickstationPrint } from "./pickstationPrint.handler";
6
- export { handlePickstationStatus } from "./pickstationStatus.handler";
7
- export { handleDispatchCarrierSignups } from "./dispatchCarrierSignups.handler";
8
- export { handleAutoSend } from "./autoSend.handler";
4
+ export { handlePickstationOrders } from "./pickstationOrders.handler.js";
5
+ export { handlePickstationPrint } from "./pickstationPrint.handler.js";
6
+ export { handlePickstationStatus } from "./pickstationStatus.handler.js";
7
+ export { handleDispatchCarrierSignups } from "./dispatchCarrierSignups.handler.js";
8
+ export { handleAutoSend } from "./autoSend.handler.js";
@@ -20,7 +20,7 @@ export async function handlePickstationOrders(request, supabase) {
20
20
  userAgent: request.headers.get("user-agent"),
21
21
  });
22
22
  try {
23
- const { loadTodaysPickstationOrders } = await import("../pickstationOrders.server");
23
+ const { loadTodaysPickstationOrders } = await import("../pickstationOrders.server.js");
24
24
  const orders = await loadTodaysPickstationOrders(supabase);
25
25
  console.info("[pickstation-api] GET orders ok", {
26
26
  requestId,
@@ -38,7 +38,7 @@ export async function handlePickstationPrint(request, supabase) {
38
38
  const wantsAuction = docs.includes("auction-letter");
39
39
  const wantsDeliveryNote = docs.includes("delivery-note");
40
40
  const isConfirmation = body.confirmed === true;
41
- const { fetchFloridayAuctionLetterPdf, fetchFloridayDeliveryNotePdf, logPrint } = await import("../pickstationOrders.server");
41
+ const { fetchFloridayAuctionLetterPdf, fetchFloridayDeliveryNotePdf, logPrint } = await import("../pickstationOrders.server.js");
42
42
  const sourceOrderId = typeof body.sourceOrderId === "string" && body.sourceOrderId
43
43
  ? body.sourceOrderId
44
44
  : body.orderId;
@@ -16,7 +16,7 @@ export async function handlePickstationStatus(request, supabase) {
16
16
  return Response.json({ error: "Ongeldige invoer" }, { status: 400 });
17
17
  }
18
18
  try {
19
- const { setCartStatus } = await import("../pickstationOrders.server");
19
+ const { setCartStatus } = await import("../pickstationOrders.server.js");
20
20
  await setCartStatus(body.orderSource, body.orderId, body.cartIndex, body.status, supabase);
21
21
  return Response.json({ ok: true, requestId }, { headers: { "Cache-Control": "no-store", "X-Robots-Tag": "noindex, nofollow" } });
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"signupMailText.d.ts","sourceRoot":"","sources":["../../src/lib/signupMailText.ts"],"names":[],"mappings":"AACA,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAyBjF;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGjF;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGpF"}
1
+ {"version":3,"file":"signupMailText.d.ts","sourceRoot":"","sources":["../../src/lib/signupMailText.ts"],"names":[],"mappings":"AACA,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CA6BjF;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGjF;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGpF"}
@@ -19,6 +19,10 @@ export function signupReasonText(reason) {
19
19
  return "Dit ophaalmoment heeft geen orders meer.";
20
20
  case "after_pickup":
21
21
  return "De ophaaltijd is al voorbij.";
22
+ case "waiting_for_carts":
23
+ return "Een order heeft nog geen karindeling; de aanmeldmail wacht even.";
24
+ case "floriday_fulfilled":
25
+ return "Alle orders van dit ophaalmoment zijn afgehandeld in Floriday; er wordt niets aangemeld.";
22
26
  case "already_sent":
23
27
  return "Deze stand is al verstuurd.";
24
28
  default:
@@ -1,7 +1,7 @@
1
1
  import { CalendarCheck, CalendarRange, ClipboardCheck, PackageCheck } from "lucide-react";
2
- import { AfhandelingSettingsCard } from "./components/settings/AfhandelingSettingsCard";
3
- import { VervoerdersSettingsCard } from "./components/settings/VervoerdersSettingsCard";
4
- import { getPickMode } from "./lib/pickMode";
2
+ import { AfhandelingSettingsCard } from "./components/settings/AfhandelingSettingsCard.js";
3
+ import { VervoerdersSettingsCard } from "./components/settings/VervoerdersSettingsCard.js";
4
+ import { getPickMode } from "./lib/pickMode.js";
5
5
  const baseChildren = [
6
6
  { label: "Pick Agenda", href: "/afhandeling/picking", icon: CalendarCheck },
7
7
  { label: "Planning en leveringen", href: "/afhandeling/leveringen", icon: CalendarRange },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/floriday-afhandeling-module",
3
- "version": "1.0.66",
3
+ "version": "1.0.71",
4
4
  "private": false,
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -26,7 +26,7 @@
26
26
  "scripts": {
27
27
  "dev": "vite dev",
28
28
  "build": "vite build",
29
- "build:lib": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && node -e \"require('fs').writeFileSync('dist-lib/styles.css', '@source \\\"./\\\";\\n')\"",
29
+ "build:lib": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths && node -e \"require('fs').writeFileSync('dist-lib/styles.css', '@source \\\"./\\\";\\n')\"",
30
30
  "build:lib:watch": "tsc -p tsconfig.build.json --watch",
31
31
  "build:dev": "vite build --mode development",
32
32
  "preview": "vite preview",
@@ -62,16 +62,17 @@
62
62
  "eslint-plugin-react-hooks": "^5.2.0",
63
63
  "eslint-plugin-react-refresh": "^0.4.20",
64
64
  "globals": "^15.15.0",
65
+ "nitro": "3.0.260603-beta",
65
66
  "react": "^19.2.0",
66
67
  "react-dom": "^19.2.0",
67
68
  "tailwindcss": "^4.2.1",
69
+ "tsc-alias": "^1.8.0",
68
70
  "tw-animate-css": "^1.3.4",
69
71
  "typescript": "^5.8.3",
70
- "tsc-alias": "^1.8.0",
71
72
  "typescript-eslint": "^8.56.1",
72
73
  "vite": "^7.3.1",
73
74
  "vite-tsconfig-paths": "^6.0.2",
74
- "nitro": "3.0.260603-beta"
75
+ "vitest": "^5.0.5"
75
76
  },
76
77
  "flowselections": {
77
78
  "moduleId": "Afhandeling",