@flowselections/floriday-voorraad 1.0.133 → 1.0.137

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 (31) hide show
  1. package/dist-lib/components/voorraad/ArtikelWizard.d.ts.map +1 -1
  2. package/dist-lib/components/voorraad/ArtikelWizard.js +42 -18
  3. package/dist-lib/components/voorraad/FloridayInfoCard.d.ts.map +1 -1
  4. package/dist-lib/components/voorraad/FloridayInfoCard.js +19 -0
  5. package/dist-lib/integrations/supabase/types.d.ts +283 -0
  6. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  7. package/dist-lib/lib/__tests__/release-134.test.d.ts +2 -0
  8. package/dist-lib/lib/__tests__/release-134.test.d.ts.map +1 -0
  9. package/dist-lib/lib/__tests__/release-134.test.js +50 -0
  10. package/dist-lib/lib/__tests__/release-136.test.d.ts +2 -0
  11. package/dist-lib/lib/__tests__/release-136.test.d.ts.map +1 -0
  12. package/dist-lib/lib/__tests__/release-136.test.js +36 -0
  13. package/dist-lib/lib/floriday-warehouse.functions.d.ts.map +1 -1
  14. package/dist-lib/lib/floriday-warehouse.functions.js +4 -2
  15. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  16. package/dist-lib/lib/floriday-writes.functions.js +11 -10
  17. package/dist-lib/lib/idempotency-key.d.ts +11 -0
  18. package/dist-lib/lib/idempotency-key.d.ts.map +1 -0
  19. package/dist-lib/lib/idempotency-key.js +41 -0
  20. package/dist-lib/lib/publish-errors.d.ts +1 -1
  21. package/dist-lib/lib/publish-errors.d.ts.map +1 -1
  22. package/dist-lib/lib/publish-errors.js +10 -0
  23. package/dist-lib/lib/publish-pipeline.js +1 -1
  24. package/dist-lib/lib/publish-status.d.ts +13 -1
  25. package/dist-lib/lib/publish-status.d.ts.map +1 -1
  26. package/dist-lib/lib/publish-status.js +22 -1
  27. package/dist-lib/lib/publish-verify.d.ts +25 -0
  28. package/dist-lib/lib/publish-verify.d.ts.map +1 -0
  29. package/dist-lib/lib/publish-verify.js +44 -0
  30. package/package.json +2 -2
  31. package/sql/floriday-voorraad-schema.sql +108 -27
@@ -1 +1 @@
1
- {"version":3,"file":"ArtikelWizard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelWizard.tsx"],"names":[],"mappings":"AA2DA,OAAO,EAUL,KAAK,UAAU,EAMhB,MAAM,4BAA4B,CAAC;AA2DpC,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMpF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,UAAU,CA0BrF;AAiED,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EAAE,cAAc,EACvB,WAAW,EACX,SAAS,EACT,WAAW,EACX,OAAO,GACR,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,aAAa,CAAC;CACpB,+BAo2EL"}
1
+ {"version":3,"file":"ArtikelWizard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelWizard.tsx"],"names":[],"mappings":"AA2DA,OAAO,EAUL,KAAK,UAAU,EAMhB,MAAM,4BAA4B,CAAC;AA4DpC,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMpF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,UAAU,CA0BrF;AAiED,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EAAE,cAAc,EACvB,WAAW,EACX,SAAS,EACT,WAAW,EACX,OAAO,GACR,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,aAAa,CAAC;CACpB,+BA+3EL"}
@@ -21,7 +21,8 @@ import { useFloridayVbnRequired } from "../../hooks/useFloridayVbnRequired.js";
21
21
  import { saveFloridayVbnRequired } from "../../lib/floriday-vbn-required.functions.js";
22
22
  import { useQuery, useQueryClient } from "@tanstack/react-query";
23
23
  import { fetchFloridayWriteMode } from "../../lib/floriday-write-mode.js";
24
- import { editTargetText } from "../../lib/publish-status.js";
24
+ import { editTargetText, formSalePrice, syncAfterPublish } from "../../lib/publish-status.js";
25
+ import { compareAfterUpdate, verifyDifferenceMessage } from "../../lib/publish-verify.js";
25
26
  import { articleCodeProblem } from "../../lib/article-code.js";
26
27
  import { useCodeList, useTradeItemFormSchema } from "../../hooks/useFloriday.js";
27
28
  import { useFloridayPriceGroups } from "../../hooks/useFloridayPriceGroups.js";
@@ -563,9 +564,7 @@ export function ArtikelWizard({ draftId: initialDraftId, tradeItemId, productId,
563
564
  ? barcode
564
565
  : (payload.gtin ?? ""),
565
566
  // M26: de verkoopprijs van het artikel is leidend (zelfde veld als "Prijs opslaan").
566
- salePricePerPiece: Number(product.sale_price) > 0
567
- ? Number(product.sale_price)
568
- : Number(customFields.sale_price ?? customFields.salePrice ?? payload.salePricePerPiece) || 0,
567
+ salePricePerPiece: formSalePrice(product.sale_price, customFields.sale_price ?? customFields.salePrice ?? payload.salePricePerPiece),
569
568
  // Voorkeur: werkelijke voorraad uit trade_item_stock.
570
569
  // Fallback: opgeslagen payload-waarde. `products.quantity` wordt
571
570
  // bewust NIET meer gelezen — die staat structureel op 0.
@@ -823,9 +822,8 @@ export function ArtikelWizard({ draftId: initialDraftId, tradeItemId, productId,
823
822
  if (r.price_group_id) {
824
823
  groupPrices[r.price_group_id] = Number(r.price_per_piece);
825
824
  }
826
- else if (!(d.salePricePerPiece > 0)) {
827
- next.salePricePerPiece = Number(r.price_per_piece);
828
- }
825
+ // 1.0.136: de basisprijs komt NOOIT uit trade_item_prices; die volgt
826
+ // products.sale_price en wordt nooit teruggeschreven naar het artikel.
829
827
  }
830
828
  next.priceGroupPrices = groupPrices;
831
829
  return next;
@@ -1209,7 +1207,9 @@ export function ArtikelWizard({ draftId: initialDraftId, tradeItemId, productId,
1209
1207
  // Zijn de productregels (schema) nog niet binnen? Dan publiceren we niet,
1210
1208
  // maar bewaren we de wijziging ALTIJD lokaal en markeren we hem als
1211
1209
  // "nog niet doorgegeven aan Floriday".
1212
- if (wantsPublish && !schemaQuery.isSuccess) {
1210
+ // 1.0.136: alleen bij AANMAKEN. Een update van een bestaand Floriday-artikel
1211
+ // heeft de productregels niet nodig en mag daar nooit op vastlopen.
1212
+ if (wantsPublish && !schemaQuery.isSuccess && !isEditingPublished) {
1213
1213
  setSubmitting(true);
1214
1214
  try {
1215
1215
  const localId = await upsertLocalTradeItem({
@@ -1584,6 +1584,7 @@ export function ArtikelWizard({ draftId: initialDraftId, tradeItemId, productId,
1584
1584
  }, stepOpts);
1585
1585
  }
1586
1586
  // 6) Controle achteraf --------------------------------------------------
1587
+ let verifyMismatch = null;
1587
1588
  if (resolvedTradeItemId) {
1588
1589
  const verify = await runPublishStep(jobId, "verify", async () => {
1589
1590
  const res = (await gatewayReadFn({
@@ -1628,13 +1629,32 @@ export function ArtikelWizard({ draftId: initialDraftId, tradeItemId, productId,
1628
1629
  if (!confirmedPacking) {
1629
1630
  warnings.push("Floriday heeft nog geen belading voor dit artikel");
1630
1631
  }
1631
- const remoteName = item?.tradeItemName ?? item?.name;
1632
- if (remoteName && data.name && remoteName !== data.name) {
1633
- warnings.push("De artikelnaam wijkt af");
1632
+ // Naam, VBN of hoofdverpakking die afwijkt van wat het ERP stuurde
1633
+ // = de wijziging is niet aangekomen: stap (en job) mislukt.
1634
+ let expectedPacking = null;
1635
+ try {
1636
+ const pb = buildPrimaryPackingBase(data);
1637
+ expectedPacking = {
1638
+ piecesPerPackage: pb.piecesPerPackage,
1639
+ packagesPerLayer: pb.packagesPerLayer,
1640
+ layersPerLoadCarrier: pb.layersPerLoadCarrier,
1641
+ vbnPackageCode: pb.customPackageId ? null : pb.vbnPackageCode,
1642
+ loadCarrier: pb.loadCarrier,
1643
+ };
1644
+ }
1645
+ catch {
1646
+ expectedPacking = null;
1647
+ }
1648
+ const diffs = compareAfterUpdate({ name: data.name, vbnCode: data.vbnCode, packing: confirmedPacking ? expectedPacking : null }, item);
1649
+ if (diffs.length > 0) {
1650
+ throw new Error(`VERIFY_MISMATCH:${verifyDifferenceMessage(diffs)}`);
1634
1651
  }
1635
1652
  return { warnings };
1636
1653
  }, stepOpts);
1637
- if (!verify.ok) {
1654
+ if (!verify.ok && verify.error?.code === "VERIFY_MISMATCH") {
1655
+ verifyMismatch = verify.error.message;
1656
+ }
1657
+ else if (!verify.ok) {
1638
1658
  toast.warning("Gepubliceerd; de controle achteraf lukte niet", {
1639
1659
  description: `${verify.error?.message ?? "Onbekende reden"} — het artikel staat wel in Floriday.`,
1640
1660
  });
@@ -1642,14 +1662,19 @@ export function ArtikelWizard({ draftId: initialDraftId, tradeItemId, productId,
1642
1662
  }
1643
1663
  const status = jobId ? await finishPublishJob(jobId, {
1644
1664
  tradeItemId: resolvedTradeItemId,
1645
- }) : "succeeded";
1665
+ }) : verifyMismatch ? "failed" : "succeeded";
1646
1666
  if (jobId)
1647
1667
  await reloadPublishJob(jobId);
1648
- if (status === "succeeded") {
1668
+ if (status === "failed" && verifyMismatch) {
1669
+ if (draftId) {
1670
+ await markLocalSyncStatus(draftId, syncAfterPublish(status, verifyMismatch)).catch(() => { });
1671
+ }
1672
+ toast.error("Wijziging niet aangekomen in Floriday", { description: verifyMismatch });
1673
+ }
1674
+ else if (status === "succeeded") {
1649
1675
  if (draftId) {
1650
1676
  await markLocalSyncStatus(draftId, {
1651
- dirty: false,
1652
- last_error: null,
1677
+ ...syncAfterPublish(status, null),
1653
1678
  last_synced_at: new Date().toISOString(),
1654
1679
  }).catch(() => { });
1655
1680
  }
@@ -1660,8 +1685,7 @@ export function ArtikelWizard({ draftId: initialDraftId, tradeItemId, productId,
1660
1685
  else if (status === "succeeded_with_warnings") {
1661
1686
  if (draftId) {
1662
1687
  await markLocalSyncStatus(draftId, {
1663
- dirty: false,
1664
- last_error: null,
1688
+ ...syncAfterPublish(status, null),
1665
1689
  last_synced_at: new Date().toISOString(),
1666
1690
  }).catch(() => { });
1667
1691
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FloridayInfoCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridayInfoCard.tsx"],"names":[],"mappings":"AAYA,UAAU,KAAK;IACb,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,8EAA8E;IAC9E,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AA6DD,wBAAgB,gBAAgB,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,KAAK,sCAoRrE"}
1
+ {"version":3,"file":"FloridayInfoCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridayInfoCard.tsx"],"names":[],"mappings":"AAaA,UAAU,KAAK;IACb,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,8EAA8E;IAC9E,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AA6DD,wBAAgB,gBAAgB,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,KAAK,sCAoSrE"}
@@ -5,6 +5,7 @@ import { AlertTriangle, ChevronDown, ChevronRight, ExternalLink } from "lucide-r
5
5
  import { supabase } from "../../integrations/supabase/client.js";
6
6
  import { floridayInfoFromCache, } from "../../lib/floriday-info.js";
7
7
  import { useLoadCarriers } from "../../hooks/useLoadCarriers.js";
8
+ import { gatewayReadFn } from "../../lib/floriday-gateway.functions.js";
8
9
  const floridayLogo = "/flowselections-assets/Voorraad/floriday-logo.png";
9
10
  function formatDate(iso) {
10
11
  if (!iso)
@@ -47,6 +48,24 @@ export function FloridayInfoCard({ floridayTradeItemId, local }) {
47
48
  setNotFound(false);
48
49
  (async () => {
49
50
  try {
51
+ // 1.0.136: eerst live uit Floriday (via floriday-get), zodat een net
52
+ // verstuurde wijziging direct zichtbaar is; de kopie is alleen terugval.
53
+ try {
54
+ const live = (await gatewayReadFn({
55
+ data: { path: `/suppliers-api-2026v1/trade-items/${floridayTradeItemId}` },
56
+ }));
57
+ if (cancelled)
58
+ return;
59
+ if (live?.data && typeof live.data === "object") {
60
+ setInfo(floridayInfoFromCache({ ...live.data, id: floridayTradeItemId }));
61
+ setNotFound(false);
62
+ setActivePhoto(0);
63
+ return;
64
+ }
65
+ }
66
+ catch {
67
+ /* terugval op de kopie */
68
+ }
50
69
  const { data, error } = await supabase
51
70
  .from("floriday_trade_items_cache")
52
71
  .select("data,floriday_id")
@@ -11025,6 +11025,7 @@ export type Database = {
11025
11025
  invoice_date: string;
11026
11026
  invoice_number: string | null;
11027
11027
  note: string | null;
11028
+ paid_at: string | null;
11028
11029
  payment_term_days: number;
11029
11030
  reference: string | null;
11030
11031
  sent_at: string | null;
@@ -11058,6 +11059,7 @@ export type Database = {
11058
11059
  invoice_date?: string;
11059
11060
  invoice_number?: string | null;
11060
11061
  note?: string | null;
11062
+ paid_at?: string | null;
11061
11063
  payment_term_days?: number;
11062
11064
  reference?: string | null;
11063
11065
  sent_at?: string | null;
@@ -11091,6 +11093,7 @@ export type Database = {
11091
11093
  invoice_date?: string;
11092
11094
  invoice_number?: string | null;
11093
11095
  note?: string | null;
11096
+ paid_at?: string | null;
11094
11097
  payment_term_days?: number;
11095
11098
  reference?: string | null;
11096
11099
  sent_at?: string | null;
@@ -11157,6 +11160,30 @@ export type Database = {
11157
11160
  }
11158
11161
  ];
11159
11162
  };
11163
+ itk_cost_settings: {
11164
+ Row: {
11165
+ created_at: string;
11166
+ labour_cost_cents_per_hour: number | null;
11167
+ singleton: boolean;
11168
+ travel_cost_cents_per_hour: number | null;
11169
+ updated_at: string;
11170
+ };
11171
+ Insert: {
11172
+ created_at?: string;
11173
+ labour_cost_cents_per_hour?: number | null;
11174
+ singleton?: boolean;
11175
+ travel_cost_cents_per_hour?: number | null;
11176
+ updated_at?: string;
11177
+ };
11178
+ Update: {
11179
+ created_at?: string;
11180
+ labour_cost_cents_per_hour?: number | null;
11181
+ singleton?: boolean;
11182
+ travel_cost_cents_per_hour?: number | null;
11183
+ updated_at?: string;
11184
+ };
11185
+ Relationships: [];
11186
+ };
11160
11187
  itk_customer_dynamic_values: {
11161
11188
  Row: {
11162
11189
  created_at: string;
@@ -17538,6 +17565,7 @@ export type Database = {
17538
17565
  };
17539
17566
  monteur_contracten: {
17540
17567
  Row: {
17568
+ bruto_uurloon: number | null;
17541
17569
  contract_type: string;
17542
17570
  created_at: string;
17543
17571
  days_per_week: number;
@@ -17549,6 +17577,7 @@ export type Database = {
17549
17577
  vacation_days_per_year: number;
17550
17578
  };
17551
17579
  Insert: {
17580
+ bruto_uurloon?: number | null;
17552
17581
  contract_type?: string;
17553
17582
  created_at?: string;
17554
17583
  days_per_week?: number;
@@ -17560,6 +17589,7 @@ export type Database = {
17560
17589
  vacation_days_per_year?: number;
17561
17590
  };
17562
17591
  Update: {
17592
+ bruto_uurloon?: number | null;
17563
17593
  contract_type?: string;
17564
17594
  created_at?: string;
17565
17595
  days_per_week?: number;
@@ -29984,6 +30014,27 @@ export type Database = {
29984
30014
  }
29985
30015
  ];
29986
30016
  };
30017
+ werkbon_package_settings: {
30018
+ Row: {
30019
+ avg_mechanic_rate_cents: number;
30020
+ created_at: string;
30021
+ id: number;
30022
+ updated_at: string;
30023
+ };
30024
+ Insert: {
30025
+ avg_mechanic_rate_cents?: number;
30026
+ created_at?: string;
30027
+ id?: number;
30028
+ updated_at?: string;
30029
+ };
30030
+ Update: {
30031
+ avg_mechanic_rate_cents?: number;
30032
+ created_at?: string;
30033
+ id?: number;
30034
+ updated_at?: string;
30035
+ };
30036
+ Relationships: [];
30037
+ };
29987
30038
  werkbon_packages: {
29988
30039
  Row: {
29989
30040
  active: boolean;
@@ -30484,6 +30535,7 @@ export type Database = {
30484
30535
  signature_accepted_at: string | null;
30485
30536
  signature_by_user_id: string | null;
30486
30537
  signature_image_path: string | null;
30538
+ signature_missing_reason: string | null;
30487
30539
  signature_name: string | null;
30488
30540
  source_email_meta: Json | null;
30489
30541
  source_mailbox_message_id: string | null;
@@ -30533,6 +30585,7 @@ export type Database = {
30533
30585
  signature_accepted_at?: string | null;
30534
30586
  signature_by_user_id?: string | null;
30535
30587
  signature_image_path?: string | null;
30588
+ signature_missing_reason?: string | null;
30536
30589
  signature_name?: string | null;
30537
30590
  source_email_meta?: Json | null;
30538
30591
  source_mailbox_message_id?: string | null;
@@ -30582,6 +30635,7 @@ export type Database = {
30582
30635
  signature_accepted_at?: string | null;
30583
30636
  signature_by_user_id?: string | null;
30584
30637
  signature_image_path?: string | null;
30638
+ signature_missing_reason?: string | null;
30585
30639
  signature_name?: string | null;
30586
30640
  source_email_meta?: Json | null;
30587
30641
  source_mailbox_message_id?: string | null;
@@ -32278,6 +32332,12 @@ export type Database = {
32278
32332
  };
32279
32333
  Returns: Json;
32280
32334
  };
32335
+ afh_signup_sender: {
32336
+ Args: {
32337
+ p_purpose: string;
32338
+ };
32339
+ Returns: Json;
32340
+ };
32281
32341
  afh_subtract_workdays: {
32282
32342
  Args: {
32283
32343
  _date: string;
@@ -33458,6 +33518,7 @@ export type Database = {
33458
33518
  invoice_date: string;
33459
33519
  invoice_number: string;
33460
33520
  kind: string;
33521
+ original_invoice_id: string;
33461
33522
  payment_status: string;
33462
33523
  source: string;
33463
33524
  status: string;
@@ -34826,9 +34887,29 @@ export type Database = {
34826
34887
  afgerond: number;
34827
34888
  bezig: number;
34828
34889
  customer_id: string;
34890
+ gem_betaaltermijn_dagen: number;
34829
34891
  klussen: number;
34892
+ materiaal_kosten_cents: number;
34830
34893
  omzet_cents: number;
34831
34894
  open: number;
34895
+ reis_minuten: number;
34896
+ te_laat: number;
34897
+ te_laat_open: number;
34898
+ werk_minuten: number;
34899
+ }[];
34900
+ };
34901
+ itk_month_trend: {
34902
+ Args: {
34903
+ _today: string;
34904
+ };
34905
+ Returns: {
34906
+ materiaal_kosten_cents: number;
34907
+ omzet_cents: number;
34908
+ periode: string;
34909
+ reis_minuten: number;
34910
+ tot: string;
34911
+ van: string;
34912
+ werk_minuten: number;
34832
34913
  }[];
34833
34914
  };
34834
34915
  itk_offerte_naar_werkbon: {
@@ -35290,6 +35371,18 @@ export type Database = {
35290
35371
  };
35291
35372
  Returns: boolean;
35292
35373
  };
35374
+ logistics_allocation_stale: {
35375
+ Args: {
35376
+ p_order_item_id: string;
35377
+ };
35378
+ Returns: boolean;
35379
+ };
35380
+ logistics_allocation_stale_reden: {
35381
+ Args: {
35382
+ p_order_item_id: string;
35383
+ };
35384
+ Returns: string;
35385
+ };
35293
35386
  logistics_allowed_load_carriers: {
35294
35387
  Args: {
35295
35388
  p_strategy_id?: string;
@@ -35332,6 +35425,19 @@ export type Database = {
35332
35425
  };
35333
35426
  Returns: boolean;
35334
35427
  };
35428
+ logistics_archive_stale_buffer_carts: {
35429
+ Args: {
35430
+ p_uitvoeren?: boolean;
35431
+ };
35432
+ Returns: Json;
35433
+ };
35434
+ logistics_archive_stale_buffer_carts_core: {
35435
+ Args: {
35436
+ p_buffer: string;
35437
+ p_uitvoeren: boolean;
35438
+ };
35439
+ Returns: Json;
35440
+ };
35335
35441
  logistics_archived_orders: {
35336
35442
  Args: never;
35337
35443
  Returns: {
@@ -35528,6 +35634,12 @@ export type Database = {
35528
35634
  };
35529
35635
  Returns: Json;
35530
35636
  };
35637
+ logistics_buffer_carts: {
35638
+ Args: {
35639
+ p_buffer_id: string;
35640
+ };
35641
+ Returns: Json;
35642
+ };
35531
35643
  logistics_buffer_closed_for_join: {
35532
35644
  Args: {
35533
35645
  p_buffer: string;
@@ -35639,6 +35751,16 @@ export type Database = {
35639
35751
  };
35640
35752
  Returns: number;
35641
35753
  };
35754
+ logistics_canon_ref: {
35755
+ Args: {
35756
+ p_ref: string;
35757
+ };
35758
+ Returns: {
35759
+ pid: string;
35760
+ reden: string;
35761
+ tkey: string;
35762
+ }[];
35763
+ };
35642
35764
  logistics_capacity_day_check: {
35643
35765
  Args: {
35644
35766
  p_from?: string;
@@ -35646,6 +35768,26 @@ export type Database = {
35646
35768
  };
35647
35769
  Returns: Json;
35648
35770
  };
35771
+ logistics_capacity_day_load: {
35772
+ Args: {
35773
+ p_from: string;
35774
+ p_settings: Json;
35775
+ p_to: string;
35776
+ p_user: string;
35777
+ };
35778
+ Returns: {
35779
+ carts: number;
35780
+ d: string;
35781
+ required: number;
35782
+ zonder_kar: number;
35783
+ }[];
35784
+ };
35785
+ logistics_capacity_day_orders: {
35786
+ Args: {
35787
+ p_date: string;
35788
+ };
35789
+ Returns: Json;
35790
+ };
35649
35791
  logistics_capacity_plan_day: {
35650
35792
  Args: {
35651
35793
  p_date: string;
@@ -35823,6 +35965,12 @@ export type Database = {
35823
35965
  Args: never;
35824
35966
  Returns: Json;
35825
35967
  };
35968
+ logistics_cart_eerdere_buffer: {
35969
+ Args: {
35970
+ p_cart_id: string;
35971
+ };
35972
+ Returns: Json;
35973
+ };
35826
35974
  logistics_cart_extra_fields: {
35827
35975
  Args: {
35828
35976
  p_cart_id: string;
@@ -36102,6 +36250,18 @@ export type Database = {
36102
36250
  };
36103
36251
  Returns: Json;
36104
36252
  };
36253
+ logistics_cart_verouderd_redenen: {
36254
+ Args: {
36255
+ p_cart_id: string;
36256
+ };
36257
+ Returns: Json;
36258
+ };
36259
+ logistics_cart_vervoer_gemengd: {
36260
+ Args: {
36261
+ p_cart_id: string;
36262
+ };
36263
+ Returns: Json;
36264
+ };
36105
36265
  logistics_cart_vulgraad_core: {
36106
36266
  Args: {
36107
36267
  p_cart_id: string;
@@ -37094,6 +37254,38 @@ export type Database = {
37094
37254
  uitleg: string;
37095
37255
  }[];
37096
37256
  };
37257
+ logistics_install_check_217: {
37258
+ Args: never;
37259
+ Returns: {
37260
+ ok: boolean;
37261
+ punt: string;
37262
+ uitleg: string;
37263
+ }[];
37264
+ };
37265
+ logistics_install_check_218: {
37266
+ Args: never;
37267
+ Returns: {
37268
+ ok: boolean;
37269
+ punt: string;
37270
+ uitleg: string;
37271
+ }[];
37272
+ };
37273
+ logistics_install_check_220: {
37274
+ Args: never;
37275
+ Returns: {
37276
+ ok: boolean;
37277
+ punt: string;
37278
+ uitleg: string;
37279
+ }[];
37280
+ };
37281
+ logistics_install_check_221: {
37282
+ Args: never;
37283
+ Returns: {
37284
+ ok: boolean;
37285
+ punt: string;
37286
+ uitleg: string;
37287
+ }[];
37288
+ };
37097
37289
  logistics_is_beheer: {
37098
37290
  Args: never;
37099
37291
  Returns: boolean;
@@ -37472,6 +37664,13 @@ export type Database = {
37472
37664
  };
37473
37665
  Returns: string[];
37474
37666
  };
37667
+ logistics_order_dag: {
37668
+ Args: {
37669
+ p_delivery_date: string;
37670
+ p_planned_start: string;
37671
+ };
37672
+ Returns: string;
37673
+ };
37475
37674
  logistics_order_date: {
37476
37675
  Args: {
37477
37676
  p: string;
@@ -37713,6 +37912,12 @@ export type Database = {
37713
37912
  status: string;
37714
37913
  }[];
37715
37914
  };
37915
+ logistics_order_own_transport: {
37916
+ Args: {
37917
+ p_custom_fields: Json;
37918
+ };
37919
+ Returns: boolean;
37920
+ };
37716
37921
  logistics_order_pick_day: {
37717
37922
  Args: {
37718
37923
  p_order_ref: string;
@@ -37821,6 +38026,12 @@ export type Database = {
37821
38026
  order_id: string;
37822
38027
  }[];
37823
38028
  };
38029
+ logistics_order_transport_group: {
38030
+ Args: {
38031
+ p_order: Json;
38032
+ };
38033
+ Returns: string;
38034
+ };
37824
38035
  logistics_order_unit_carts: {
37825
38036
  Args: {
37826
38037
  p_order_ids: string[];
@@ -37878,6 +38089,13 @@ export type Database = {
37878
38089
  };
37879
38090
  Returns: Json;
37880
38091
  };
38092
+ logistics_own_transport_carrier: {
38093
+ Args: {
38094
+ p_order: Json;
38095
+ p_skip_manual: boolean;
38096
+ };
38097
+ Returns: Json;
38098
+ };
37881
38099
  logistics_own_transport_departure: {
37882
38100
  Args: {
37883
38101
  p_delivery_date: string;
@@ -38038,6 +38256,12 @@ export type Database = {
38038
38256
  };
38039
38257
  Returns: number;
38040
38258
  };
38259
+ logistics_pick_queue_fix_cancelled_status: {
38260
+ Args: {
38261
+ p_uitvoeren?: boolean;
38262
+ };
38263
+ Returns: Json;
38264
+ };
38041
38265
  logistics_pick_start_estimate: {
38042
38266
  Args: {
38043
38267
  p_order: Json;
@@ -38702,6 +38926,19 @@ export type Database = {
38702
38926
  };
38703
38927
  Returns: Json;
38704
38928
  };
38929
+ logistics_reservation_repair_stale: {
38930
+ Args: {
38931
+ p_uitvoeren?: boolean;
38932
+ };
38933
+ Returns: Json;
38934
+ };
38935
+ logistics_reservation_repair_stale_core: {
38936
+ Args: {
38937
+ p_order_item_ids: string[];
38938
+ p_uitvoeren: boolean;
38939
+ };
38940
+ Returns: Json;
38941
+ };
38705
38942
  logistics_reserved_fast_skip: {
38706
38943
  Args: {
38707
38944
  p_key: string;
@@ -39142,6 +39379,23 @@ export type Database = {
39142
39379
  };
39143
39380
  Returns: undefined;
39144
39381
  };
39382
+ logistics_stale_buffer_carts: {
39383
+ Args: {
39384
+ p_buffer?: string;
39385
+ };
39386
+ Returns: {
39387
+ actieve_order: boolean;
39388
+ afgerond: boolean;
39389
+ besluit: string;
39390
+ cart_id: string;
39391
+ geprint: boolean;
39392
+ gescand: boolean;
39393
+ karnummer: number;
39394
+ nieuwe_buffer: string;
39395
+ orders: string;
39396
+ oude_buffer: string;
39397
+ }[];
39398
+ };
39145
39399
  logistics_startlijst: {
39146
39400
  Args: never;
39147
39401
  Returns: Json;
@@ -44865,6 +45119,12 @@ export type Database = {
44865
45119
  };
44866
45120
  Returns: Json;
44867
45121
  };
45122
+ voorraad_correctie_1136: {
45123
+ Args: {
45124
+ p_uitvoeren?: boolean;
45125
+ };
45126
+ Returns: Json;
45127
+ };
44868
45128
  voorraad_correctie_status: {
44869
45129
  Args: {
44870
45130
  p_correctie?: string;
@@ -44963,6 +45223,12 @@ export type Database = {
44963
45223
  };
44964
45224
  Returns: boolean;
44965
45225
  };
45226
+ voorraad_orderregel_sleutel: {
45227
+ Args: {
45228
+ p_ref: string;
45229
+ };
45230
+ Returns: string;
45231
+ };
44966
45232
  voorraad_packing_from_floriday: {
44967
45233
  Args: {
44968
45234
  p_product_id: string;
@@ -45032,6 +45298,15 @@ export type Database = {
45032
45298
  };
45033
45299
  Returns: number;
45034
45300
  };
45301
+ werkbon_arbeidskosten_schatting: {
45302
+ Args: {
45303
+ _werkbon_id: string;
45304
+ };
45305
+ Returns: {
45306
+ estimated_labor_cents: number;
45307
+ labor_minutes: number;
45308
+ }[];
45309
+ };
45035
45310
  werkbon_format_project_number: {
45036
45311
  Args: {
45037
45312
  _parent_project_number?: string;
@@ -45167,6 +45442,14 @@ export type Database = {
45167
45442
  };
45168
45443
  Returns: string;
45169
45444
  };
45445
+ wo_planner_contacten: {
45446
+ Args: never;
45447
+ Returns: {
45448
+ naam: string;
45449
+ telefoon: string;
45450
+ user_id: string;
45451
+ }[];
45452
+ };
45170
45453
  wo_process_offerte_request: {
45171
45454
  Args: {
45172
45455
  _queue_id: string;