@flowselections/floriday-voorraad 1.0.133 → 1.0.135

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.
@@ -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,+BAi4EL"}
@@ -22,6 +22,7 @@ import { saveFloridayVbnRequired } from "../../lib/floriday-vbn-required.functio
22
22
  import { useQuery, useQueryClient } from "@tanstack/react-query";
23
23
  import { fetchFloridayWriteMode } from "../../lib/floriday-write-mode.js";
24
24
  import { editTargetText } 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";
@@ -1584,6 +1585,7 @@ export function ArtikelWizard({ draftId: initialDraftId, tradeItemId, productId,
1584
1585
  }, stepOpts);
1585
1586
  }
1586
1587
  // 6) Controle achteraf --------------------------------------------------
1588
+ let verifyMismatch = null;
1587
1589
  if (resolvedTradeItemId) {
1588
1590
  const verify = await runPublishStep(jobId, "verify", async () => {
1589
1591
  const res = (await gatewayReadFn({
@@ -1628,13 +1630,32 @@ export function ArtikelWizard({ draftId: initialDraftId, tradeItemId, productId,
1628
1630
  if (!confirmedPacking) {
1629
1631
  warnings.push("Floriday heeft nog geen belading voor dit artikel");
1630
1632
  }
1631
- const remoteName = item?.tradeItemName ?? item?.name;
1632
- if (remoteName && data.name && remoteName !== data.name) {
1633
- warnings.push("De artikelnaam wijkt af");
1633
+ // Naam, VBN of hoofdverpakking die afwijkt van wat het ERP stuurde
1634
+ // = de wijziging is niet aangekomen: stap (en job) mislukt.
1635
+ let expectedPacking = null;
1636
+ try {
1637
+ const pb = buildPrimaryPackingBase(data);
1638
+ expectedPacking = {
1639
+ piecesPerPackage: pb.piecesPerPackage,
1640
+ packagesPerLayer: pb.packagesPerLayer,
1641
+ layersPerLoadCarrier: pb.layersPerLoadCarrier,
1642
+ vbnPackageCode: pb.customPackageId ? null : pb.vbnPackageCode,
1643
+ loadCarrier: pb.loadCarrier,
1644
+ };
1645
+ }
1646
+ catch {
1647
+ expectedPacking = null;
1648
+ }
1649
+ const diffs = compareAfterUpdate({ name: data.name, vbnCode: data.vbnCode, packing: confirmedPacking ? expectedPacking : null }, item);
1650
+ if (diffs.length > 0) {
1651
+ throw new Error(`VERIFY_MISMATCH:${verifyDifferenceMessage(diffs)}`);
1634
1652
  }
1635
1653
  return { warnings };
1636
1654
  }, stepOpts);
1637
- if (!verify.ok) {
1655
+ if (!verify.ok && verify.error?.code === "VERIFY_MISMATCH") {
1656
+ verifyMismatch = verify.error.message;
1657
+ }
1658
+ else if (!verify.ok) {
1638
1659
  toast.warning("Gepubliceerd; de controle achteraf lukte niet", {
1639
1660
  description: `${verify.error?.message ?? "Onbekende reden"} — het artikel staat wel in Floriday.`,
1640
1661
  });
@@ -1642,10 +1663,19 @@ export function ArtikelWizard({ draftId: initialDraftId, tradeItemId, productId,
1642
1663
  }
1643
1664
  const status = jobId ? await finishPublishJob(jobId, {
1644
1665
  tradeItemId: resolvedTradeItemId,
1645
- }) : "succeeded";
1666
+ }) : verifyMismatch ? "failed" : "succeeded";
1646
1667
  if (jobId)
1647
1668
  await reloadPublishJob(jobId);
1648
- if (status === "succeeded") {
1669
+ if (status === "failed" && verifyMismatch) {
1670
+ if (draftId) {
1671
+ await markLocalSyncStatus(draftId, {
1672
+ dirty: true,
1673
+ last_error: verifyMismatch,
1674
+ }).catch(() => { });
1675
+ }
1676
+ toast.error("Wijziging niet aangekomen in Floriday", { description: verifyMismatch });
1677
+ }
1678
+ else if (status === "succeeded") {
1649
1679
  if (draftId) {
1650
1680
  await markLocalSyncStatus(draftId, {
1651
1681
  dirty: false,
@@ -44963,6 +44963,12 @@ export type Database = {
44963
44963
  };
44964
44964
  Returns: boolean;
44965
44965
  };
44966
+ voorraad_orderregel_sleutel: {
44967
+ Args: {
44968
+ p_ref: string;
44969
+ };
44970
+ Returns: string;
44971
+ };
44966
44972
  voorraad_packing_from_floriday: {
44967
44973
  Args: {
44968
44974
  p_product_id: string;