@flowselections/logistiek-engine 1.0.33 → 1.0.53

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 (166) hide show
  1. package/README.md +24 -24
  2. package/dist-lib/components/FloridayPoortCard.d.ts.map +1 -1
  3. package/dist-lib/components/FloridayPoortCard.js +2 -1
  4. package/dist-lib/components/FlowCanvas.d.ts +28 -0
  5. package/dist-lib/components/FlowCanvas.d.ts.map +1 -0
  6. package/dist-lib/components/FlowCanvas.js +429 -0
  7. package/dist-lib/components/FlowOrders.d.ts +8 -0
  8. package/dist-lib/components/FlowOrders.d.ts.map +1 -0
  9. package/dist-lib/components/FlowOrders.js +125 -0
  10. package/dist-lib/components/FlowPage.d.ts +2 -0
  11. package/dist-lib/components/FlowPage.d.ts.map +1 -0
  12. package/dist-lib/components/FlowPage.js +141 -0
  13. package/dist-lib/components/InklapbaarVenster.d.ts +9 -0
  14. package/dist-lib/components/InklapbaarVenster.d.ts.map +1 -0
  15. package/dist-lib/components/InklapbaarVenster.js +10 -0
  16. package/dist-lib/components/LogistiekEnginePage.d.ts.map +1 -1
  17. package/dist-lib/components/LogistiekEnginePage.js +9 -3
  18. package/dist-lib/components/LogistiekEngineQueuePage.d.ts +2 -0
  19. package/dist-lib/components/LogistiekEngineQueuePage.d.ts.map +1 -0
  20. package/dist-lib/components/LogistiekEngineQueuePage.js +11 -0
  21. package/dist-lib/components/NodeTracePanel.d.ts +11 -0
  22. package/dist-lib/components/NodeTracePanel.d.ts.map +1 -0
  23. package/dist-lib/components/NodeTracePanel.js +40 -0
  24. package/dist-lib/components/OrderJourneyBar.d.ts +9 -0
  25. package/dist-lib/components/OrderJourneyBar.d.ts.map +1 -0
  26. package/dist-lib/components/OrderJourneyBar.js +26 -0
  27. package/dist-lib/components/OrderLogboek.d.ts +10 -0
  28. package/dist-lib/components/OrderLogboek.d.ts.map +1 -0
  29. package/dist-lib/components/OrderLogboek.js +92 -0
  30. package/dist-lib/components/OrderStopBanner.d.ts +5 -0
  31. package/dist-lib/components/OrderStopBanner.d.ts.map +1 -0
  32. package/dist-lib/components/OrderStopBanner.js +22 -0
  33. package/dist-lib/components/OrderTraceDetails.d.ts +22 -0
  34. package/dist-lib/components/OrderTraceDetails.d.ts.map +1 -0
  35. package/dist-lib/components/OrderTraceDetails.js +87 -0
  36. package/dist-lib/components/RegiePage.d.ts.map +1 -1
  37. package/dist-lib/components/RegiePage.js +11 -69
  38. package/dist-lib/components/WerktijdenCard.d.ts +2 -0
  39. package/dist-lib/components/WerktijdenCard.d.ts.map +1 -0
  40. package/dist-lib/components/WerktijdenCard.js +37 -0
  41. package/dist-lib/components/WerkwijzeHerindelingCard.d.ts.map +1 -1
  42. package/dist-lib/components/WerkwijzeHerindelingCard.js +100 -6
  43. package/dist-lib/hooks/useFloridayGate.d.ts +10 -0
  44. package/dist-lib/hooks/useFloridayGate.d.ts.map +1 -1
  45. package/dist-lib/hooks/useFloridayGate.js +4 -0
  46. package/dist-lib/hooks/useLogisticsTrace.d.ts +78 -0
  47. package/dist-lib/hooks/useLogisticsTrace.d.ts.map +1 -0
  48. package/dist-lib/hooks/useLogisticsTrace.js +152 -0
  49. package/dist-lib/hooks/useOrderNodeTrace.d.ts +11 -0
  50. package/dist-lib/hooks/useOrderNodeTrace.d.ts.map +1 -0
  51. package/dist-lib/hooks/useOrderNodeTrace.js +26 -0
  52. package/dist-lib/hooks/useOrderTrace.d.ts +74 -0
  53. package/dist-lib/hooks/useOrderTrace.d.ts.map +1 -0
  54. package/dist-lib/hooks/useOrderTrace.js +134 -0
  55. package/dist-lib/hooks/useOrderVersies.d.ts +47 -0
  56. package/dist-lib/hooks/useOrderVersies.d.ts.map +1 -0
  57. package/dist-lib/hooks/useOrderVersies.js +180 -0
  58. package/dist-lib/hooks/useRuleEngine.d.ts +1 -0
  59. package/dist-lib/hooks/useRuleEngine.d.ts.map +1 -1
  60. package/dist-lib/hooks/useRuleEngine.js +1 -0
  61. package/dist-lib/hooks/useShippingNoteStatus.d.ts +29 -0
  62. package/dist-lib/hooks/useShippingNoteStatus.d.ts.map +1 -0
  63. package/dist-lib/hooks/useShippingNoteStatus.js +107 -0
  64. package/dist-lib/hooks/useWerktijden.d.ts +33 -0
  65. package/dist-lib/hooks/useWerktijden.d.ts.map +1 -0
  66. package/dist-lib/hooks/useWerktijden.js +88 -0
  67. package/dist-lib/hooks/useWerkwijzeStatus.d.ts +12 -1
  68. package/dist-lib/hooks/useWerkwijzeStatus.d.ts.map +1 -1
  69. package/dist-lib/hooks/useWerkwijzeStatus.js +60 -4
  70. package/dist-lib/index.d.ts +13 -0
  71. package/dist-lib/index.d.ts.map +1 -1
  72. package/dist-lib/index.js +13 -0
  73. package/dist-lib/integrations/supabase/auth-middleware.d.ts +1600 -54
  74. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  75. package/dist-lib/integrations/supabase/client.server.d.ts +1600 -54
  76. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  77. package/dist-lib/integrations/supabase/client.server.js +1 -1
  78. package/dist-lib/integrations/supabase/moduleClient.d.ts +1600 -54
  79. package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
  80. package/dist-lib/integrations/supabase/types.d.ts +1618 -50
  81. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  82. package/dist-lib/lib/cartPlanRequests.server.d.ts +1 -1
  83. package/dist-lib/lib/cartPlanRequests.server.d.ts.map +1 -1
  84. package/dist-lib/lib/cartPlanRequests.server.js +49 -8
  85. package/dist-lib/lib/floridayDocuments.functions.d.ts +4644 -6
  86. package/dist-lib/lib/floridayDocuments.functions.d.ts.map +1 -1
  87. package/dist-lib/lib/floridayDocuments.functions.js +1 -1
  88. package/dist-lib/lib/floridayDocuments.server.d.ts +14 -0
  89. package/dist-lib/lib/floridayDocuments.server.d.ts.map +1 -1
  90. package/dist-lib/lib/floridayDocuments.server.js +58 -0
  91. package/dist-lib/lib/floridayGuard.server.d.ts +2 -2
  92. package/dist-lib/lib/floridayGuard.server.d.ts.map +1 -1
  93. package/dist-lib/lib/floridayGuard.server.js +34 -5
  94. package/dist-lib/lib/floridayPush.functions.d.ts +1600 -54
  95. package/dist-lib/lib/floridayPush.functions.d.ts.map +1 -1
  96. package/dist-lib/lib/floridayPush.functions.js +1 -1
  97. package/dist-lib/lib/flowGraph.d.ts +43 -0
  98. package/dist-lib/lib/flowGraph.d.ts.map +1 -0
  99. package/dist-lib/lib/flowGraph.js +153 -0
  100. package/dist-lib/lib/flowNodes.d.ts +23 -0
  101. package/dist-lib/lib/flowNodes.d.ts.map +1 -0
  102. package/dist-lib/lib/flowNodes.js +58 -0
  103. package/dist-lib/lib/flowRoute.d.ts +107 -0
  104. package/dist-lib/lib/flowRoute.d.ts.map +1 -0
  105. package/dist-lib/lib/flowRoute.js +280 -0
  106. package/dist-lib/lib/flowTree.d.ts +64 -0
  107. package/dist-lib/lib/flowTree.d.ts.map +1 -0
  108. package/dist-lib/lib/flowTree.js +519 -0
  109. package/dist-lib/lib/handlers/index.d.ts +1 -0
  110. package/dist-lib/lib/handlers/index.d.ts.map +1 -1
  111. package/dist-lib/lib/handlers/index.js +1 -0
  112. package/dist-lib/lib/handlers/logistics-shipping-note-now.server.d.ts +3 -0
  113. package/dist-lib/lib/handlers/logistics-shipping-note-now.server.d.ts.map +1 -0
  114. package/dist-lib/lib/handlers/logistics-shipping-note-now.server.js +100 -0
  115. package/dist-lib/lib/handlers/logistics-tick.server.d.ts.map +1 -1
  116. package/dist-lib/lib/handlers/logistics-tick.server.js +97 -2
  117. package/dist-lib/lib/loadCarrierPlanner.d.ts +2 -0
  118. package/dist-lib/lib/loadCarrierPlanner.d.ts.map +1 -1
  119. package/dist-lib/lib/loadCarrierPlanner.js +18 -0
  120. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts +7740 -10
  121. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts.map +1 -1
  122. package/dist-lib/lib/loadCarrierPlanning.functions.js +1 -1
  123. package/dist-lib/lib/loadCarrierPlanning.server.d.ts +9 -0
  124. package/dist-lib/lib/loadCarrierPlanning.server.d.ts.map +1 -1
  125. package/dist-lib/lib/loadCarrierPlanning.server.js +44 -17
  126. package/dist-lib/lib/logisticsPlanner.d.ts.map +1 -1
  127. package/dist-lib/lib/logisticsPlanner.js +14 -2
  128. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts +3096 -4
  129. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts.map +1 -1
  130. package/dist-lib/lib/logisticsRecalcJob.functions.js +1 -1
  131. package/dist-lib/lib/logisticsRecalculate.functions.d.ts +1600 -54
  132. package/dist-lib/lib/logisticsRecalculate.functions.d.ts.map +1 -1
  133. package/dist-lib/lib/logisticsRecalculate.functions.js +1 -1
  134. package/dist-lib/lib/modulePrompts.d.ts +1 -0
  135. package/dist-lib/lib/modulePrompts.d.ts.map +1 -1
  136. package/dist-lib/lib/modulePrompts.js +3482 -2610
  137. package/dist-lib/lib/nodeTrace.d.ts +61 -0
  138. package/dist-lib/lib/nodeTrace.d.ts.map +1 -0
  139. package/dist-lib/lib/nodeTrace.js +191 -0
  140. package/dist-lib/lib/pickQueueCleanup.server.d.ts +14 -0
  141. package/dist-lib/lib/pickQueueCleanup.server.d.ts.map +1 -0
  142. package/dist-lib/lib/pickQueueCleanup.server.js +80 -0
  143. package/dist-lib/lib/planQueue.server.d.ts.map +1 -1
  144. package/dist-lib/lib/planQueue.server.js +140 -0
  145. package/dist-lib/lib/ruleEngineImpact.d.ts.map +1 -1
  146. package/dist-lib/lib/ruleEngineImpact.js +11 -4
  147. package/dist-lib/lib/ruleEngineSchema.d.ts.map +1 -1
  148. package/dist-lib/lib/ruleEngineSchema.js +57 -6
  149. package/dist-lib/lib/ruleEngineWizard.d.ts.map +1 -1
  150. package/dist-lib/lib/ruleEngineWizard.js +3 -1
  151. package/dist-lib/lib/shippingNoteQueue.server.d.ts +18 -0
  152. package/dist-lib/lib/shippingNoteQueue.server.d.ts.map +1 -0
  153. package/dist-lib/lib/shippingNoteQueue.server.js +304 -0
  154. package/dist-lib/lib/trace.server.d.ts +75 -0
  155. package/dist-lib/lib/trace.server.d.ts.map +1 -0
  156. package/dist-lib/lib/trace.server.js +75 -0
  157. package/dist-lib/lib/vakUitleg.d.ts +19 -0
  158. package/dist-lib/lib/vakUitleg.d.ts.map +1 -0
  159. package/dist-lib/lib/vakUitleg.js +132 -0
  160. package/package.json +26 -2
  161. package/dist-lib/components/rule-engine/FloridayConnectionBanner.d.ts +0 -2
  162. package/dist-lib/components/rule-engine/FloridayConnectionBanner.d.ts.map +0 -1
  163. package/dist-lib/components/rule-engine/FloridayConnectionBanner.js +0 -41
  164. package/dist-lib/integrations/supabase/client.d.ts +0 -20293
  165. package/dist-lib/integrations/supabase/client.d.ts.map +0 -1
  166. package/dist-lib/integrations/supabase/client.js +0 -13
@@ -5,7 +5,7 @@
5
5
  // ============================================================================
6
6
  import { createServerFn } from "@tanstack/react-start";
7
7
  import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
8
- import { readableServerErrors } from "../lib/readableServerErrors";
8
+ import { readableServerErrors } from "./readableServerErrors";
9
9
  /** Actieve Floriday-koppeling voor de banner in het instellingenscherm. */
10
10
  export const getFloridayConnection = createServerFn({ method: "GET" })
11
11
  .middleware([readableServerErrors, requireSupabaseAuth])
@@ -50,6 +50,20 @@ export interface FulfillmentSendResult {
50
50
  * mag. Fail closed — is de poort niet leesbaar, dan versturen we niet.
51
51
  */
52
52
  export declare function sendFlorydayFulfillmentOrder(supabase: SupabaseClient, body: unknown, caller?: string, orderRef?: string | null): Promise<FulfillmentSendResult>;
53
+ /**
54
+ * Officiele verzendbrief laten aanmaken in Floriday.
55
+ *
56
+ * Dit is geen afhandeling van de order: er wordt alleen een fulfillment-order
57
+ * (afleverbrief) aangemaakt zodat Floriday een officieel document heeft. De
58
+ * poort kent hiervoor een eigen schakelaar; staat die uit, dan gaat er niets
59
+ * weg en blijft de aanvraag wachten.
60
+ */
61
+ export declare function createFlorydayDeliveryNote(supabase: SupabaseClient, orderRef: string, caller?: string): Promise<{
62
+ ok: boolean;
63
+ fulfillmentOrderId: string | null;
64
+ error: string | null;
65
+ skipped: boolean;
66
+ }>;
53
67
  export type DocumentKind = "delivery-note" | "logistic-label" | "auction-letter" | "customer-sticker";
54
68
  export interface PrintClaim {
55
69
  fresh: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"floridayDocuments.server.d.ts","sourceRoot":"","sources":["../../src/lib/floridayDocuments.server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"floridayDocuments.server.d.ts","sourceRoot":"","sources":["../../src/lib/floridayDocuments.server.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAKL,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,uDAAuD,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,IAAI,CAAC;IACT,WAAW,EAAE,mBAAmB,CAAC;IACjC,UAAU,EAAE;QACV,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,EAAE,OAAO,CAAC;KACpB,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,wBAAwB,GAAG,uBAAuB,CAAC,CAqB7D;AAED,sEAAsE;AACtE,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,GACnC,OAAO,CAAC,SAAS,CAAC,CAOpB;AAED,yDAAyD;AACzD,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE;IAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAC/D,OAAO,CAAC,mBAAmB,CAAC,CAW9B;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,EAAE,EAAE,OAAO,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,wEAAwE;IACxE,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,OAAO,EACb,MAAM,SAAqB,EAC3B,QAAQ,GAAE,MAAM,GAAG,IAAW,GAC7B,OAAO,CAAC,qBAAqB,CAAC,CAgChC;AAGD;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,SAAqB,GAC1B,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAsDrG;AAMD,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AAEtG,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oEAAoE;AACpE,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,GACA,OAAO,CAAC,UAAU,CAAC,CAiCrB;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,cAAc,EACxB,EAAE,EAAE,MAAM,GAAG,IAAI,EACjB,EAAE,EAAE,OAAO,EACX,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,iBAWtB"}
@@ -98,6 +98,64 @@ export async function sendFlorydayFulfillmentOrder(supabase, body, caller = "log
98
98
  });
99
99
  return result;
100
100
  }
101
+ /**
102
+ * Officiele verzendbrief laten aanmaken in Floriday.
103
+ *
104
+ * Dit is geen afhandeling van de order: er wordt alleen een fulfillment-order
105
+ * (afleverbrief) aangemaakt zodat Floriday een officieel document heeft. De
106
+ * poort kent hiervoor een eigen schakelaar; staat die uit, dan gaat er niets
107
+ * weg en blijft de aanvraag wachten.
108
+ */
109
+ export async function createFlorydayDeliveryNote(supabase, orderRef, caller = "logistiek-engine") {
110
+ const { floridayStatusGuard, logFloridaySend } = await import("./floridayGuard.server.js");
111
+ const decision = await floridayStatusGuard(supabase, {
112
+ orderRef,
113
+ action: "delivery_note_create",
114
+ requireApproval: false,
115
+ module: caller,
116
+ });
117
+ if (!decision.allowed) {
118
+ return {
119
+ ok: false,
120
+ fulfillmentOrderId: null,
121
+ skipped: true,
122
+ error: decision.reason ?? "Een verzendbrief aanmaken in Floriday is niet toegestaan.",
123
+ };
124
+ }
125
+ const { buildFloridayPayload } = await import("./floridayPush.server.js");
126
+ const built = await buildFloridayPayload(supabase, orderRef);
127
+ if (!built.ok) {
128
+ return { ok: false, fulfillmentOrderId: null, skipped: false, error: built.error };
129
+ }
130
+ try {
131
+ const result = (await runFulfillmentOrderSend(supabase, built.payload, caller));
132
+ const payload = result?.payload ?? null;
133
+ const ok = (payload?.ok ?? result?.ok) === true;
134
+ const error = payload?.error ?? result?.error ?? null;
135
+ await logFloridaySend(supabase, {
136
+ orderRef,
137
+ action: "delivery_note_create",
138
+ ok,
139
+ httpStatus: typeof result?.status === "number" ? result.status : null,
140
+ detail: error ?? null,
141
+ module: caller,
142
+ });
143
+ return {
144
+ ok,
145
+ fulfillmentOrderId: payload?.fulfillmentOrderId ?? null,
146
+ skipped: false,
147
+ error: ok ? null : (error ?? "Floriday gaf geen bevestiging op de verzendbrief."),
148
+ };
149
+ }
150
+ catch (e) {
151
+ return {
152
+ ok: false,
153
+ fulfillmentOrderId: null,
154
+ skipped: false,
155
+ error: String(e?.message ?? e),
156
+ };
157
+ }
158
+ }
101
159
  /** Claim een printregel. fresh=false betekent: er is al geprint. */
102
160
  export async function claimDocumentPrint(supabase, args) {
103
161
  const { data: existing } = await supabase
@@ -1,11 +1,11 @@
1
1
  import type { SupabaseClient } from "@supabase/supabase-js";
2
- export type FloridayGuardAction = "fulfillment_order_send" | "queue_push" | "status_update" | "load_carrier_update";
2
+ export type FloridayGuardAction = "fulfillment_order_send" | "queue_push" | "status_update" | "load_carrier_update" | "stock_publish" | "trade_item_update" | "delivery_note_create";
3
3
  export interface FloridayGuardDecision {
4
4
  allowed: boolean;
5
5
  /** Leesbare reden waarom er niet verstuurd mag worden. */
6
6
  reason: string | null;
7
7
  /** Machineleesbaar, om op te kunnen filteren. */
8
- code: "toegestaan" | "schakelaar_uit" | "schakelaar_onleesbaar" | "poort_ontbreekt" | "niet_goedgekeurd";
8
+ code: "toegestaan" | "schakelaar_uit" | "schakelaar_onleesbaar" | "poort_ontbreekt" | "onbekende_actie" | "niet_goedgekeurd";
9
9
  }
10
10
  /** Verstuurde poging vastleggen, zodat achteraf aantoonbaar is wat wij deden. */
11
11
  export declare function logFloridaySend(sb: SupabaseClient, args: {
@@ -1 +1 @@
1
- {"version":3,"file":"floridayGuard.server.d.ts","sourceRoot":"","sources":["../../src/lib/floridayGuard.server.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAC3B,wBAAwB,GACxB,YAAY,GACZ,eAAe,GACf,qBAAqB,CAAC;AAE1B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iDAAiD;IACjD,IAAI,EACA,YAAY,GACZ,gBAAgB,GAChB,uBAAuB,GACvB,iBAAiB,GACjB,kBAAkB,CAAC;CACxB;AA+BD,iFAAiF;AACjF,wBAAsB,eAAe,CACnC,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE;IACJ,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,qBAAqB,CAAC,CAqDhC"}
1
+ {"version":3,"file":"floridayGuard.server.d.ts","sourceRoot":"","sources":["../../src/lib/floridayGuard.server.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAC3B,wBAAwB,GACxB,YAAY,GACZ,eAAe,GACf,qBAAqB,GACrB,eAAe,GACf,mBAAmB,GACnB,sBAAsB,CAAC;AAqB3B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iDAAiD;IACjD,IAAI,EACA,YAAY,GACZ,gBAAgB,GAChB,uBAAuB,GACvB,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,CAAC;CACxB;AAgCD,iFAAiF;AACjF,wBAAsB,eAAe,CACnC,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE;IACJ,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,qBAAqB,CAAC,CAkEhC"}
@@ -16,6 +16,23 @@
16
16
  // Geen omgevingswaarden in dit bestand: de shell-aanduiding komt uit de
17
17
  // omgeving en blijft leeg als die er niet is.
18
18
  // ============================================================================
19
+ /** Elke actie die deze module kent. Staat een actie hier niet in, dan gaat er niets weg. */
20
+ const BEKENDE_ACTIES = [
21
+ "fulfillment_order_send",
22
+ "queue_push",
23
+ "status_update",
24
+ "load_carrier_update",
25
+ "stock_publish",
26
+ "trade_item_update",
27
+ "delivery_note_create",
28
+ ];
29
+ /** Acties die om een goedgekeurde karrencontrole vragen. */
30
+ const ORDERGEBONDEN = [
31
+ "fulfillment_order_send",
32
+ "queue_push",
33
+ "status_update",
34
+ "load_carrier_update",
35
+ ];
19
36
  /** Naam van de shell waarin deze module draait; leeg als die ontbreekt. */
20
37
  function shellName() {
21
38
  const env = globalThis.process
@@ -64,27 +81,39 @@ export async function logFloridaySend(sb, args) {
64
81
  export async function floridayStatusGuard(sb, args) {
65
82
  const module = args.module ?? "logistiek-engine";
66
83
  const orderRef = args.orderRef ?? null;
67
- // 1. Staat de schakelaar aan? Alles behalve een expliciete true is "nee".
84
+ // 0. Onbekende actie? Dan weten we niet welke schakelaar geldt: niet versturen.
85
+ if (!BEKENDE_ACTIES.includes(args.action)) {
86
+ const reason = `Onbekende actie "${args.action}" richting Floriday; er wordt niets verstuurd.`;
87
+ await logRefusal(sb, orderRef, reason, args.action, module);
88
+ return { allowed: false, reason, code: "onbekende_actie" };
89
+ }
90
+ // 1. Staat de bijbehorende schakelaar aan? Alles behalve true is "nee".
68
91
  let enabled = null;
69
92
  try {
70
- const { data, error } = await sb.rpc("logistics_floriday_status_updates_enabled");
93
+ const { data, error } = await sb.rpc("logistics_floriday_write_allowed", {
94
+ _action: args.action,
95
+ });
71
96
  enabled = error ? null : data === true;
72
97
  }
73
98
  catch {
74
99
  enabled = null;
75
100
  }
76
101
  if (enabled === null) {
77
- const reason = "De poort op statuswijzigingen kan niet gelezen worden in deze omgeving; er wordt niets naar Floriday gestuurd.";
102
+ const reason = "De poort op schrijfacties kan niet gelezen worden in deze omgeving; er wordt niets naar Floriday gestuurd.";
78
103
  await logRefusal(sb, orderRef, reason, args.action, module);
79
104
  return { allowed: false, reason, code: "poort_ontbreekt" };
80
105
  }
81
106
  if (!enabled) {
82
- const reason = "Statussen wijzigen in Floriday staat uit in de actieve werkwijze.";
107
+ const reason = args.action === "delivery_note_create"
108
+ ? "Een verzendbrief laten aanmaken in Floriday staat uit in de actieve werkwijze."
109
+ : ORDERGEBONDEN.includes(args.action)
110
+ ? "Statussen wijzigen in Floriday staat uit in de actieve werkwijze."
111
+ : "Voorraad doorgeven aan Floriday staat uit in de actieve werkwijze.";
83
112
  await logRefusal(sb, orderRef, reason, args.action, module);
84
113
  return { allowed: false, reason, code: "schakelaar_uit" };
85
114
  }
86
115
  // 2. Ordergebonden acties vragen om een goedgekeurde karrencontrole.
87
- if (args.requireApproval !== false && orderRef) {
116
+ if (args.requireApproval !== false && orderRef && ORDERGEBONDEN.includes(args.action)) {
88
117
  let approved = null;
89
118
  try {
90
119
  const { data, error } = await sb.rpc("logistics_floriday_order_approved", {