@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.
- package/dist-lib/components/voorraad/ArtikelWizard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ArtikelWizard.js +36 -6
- package/dist-lib/integrations/supabase/types.d.ts +6 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/__tests__/release-134.test.d.ts +2 -0
- package/dist-lib/lib/__tests__/release-134.test.d.ts.map +1 -0
- package/dist-lib/lib/__tests__/release-134.test.js +50 -0
- package/dist-lib/lib/floriday-warehouse.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-warehouse.functions.js +4 -2
- package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-writes.functions.js +11 -10
- package/dist-lib/lib/idempotency-key.d.ts +11 -0
- package/dist-lib/lib/idempotency-key.d.ts.map +1 -0
- package/dist-lib/lib/idempotency-key.js +41 -0
- package/dist-lib/lib/publish-errors.d.ts +1 -1
- package/dist-lib/lib/publish-errors.d.ts.map +1 -1
- package/dist-lib/lib/publish-errors.js +10 -0
- package/dist-lib/lib/publish-pipeline.js +1 -1
- package/dist-lib/lib/publish-status.d.ts +3 -1
- package/dist-lib/lib/publish-status.d.ts.map +1 -1
- package/dist-lib/lib/publish-status.js +4 -1
- package/dist-lib/lib/publish-verify.d.ts +25 -0
- package/dist-lib/lib/publish-verify.d.ts.map +1 -0
- package/dist-lib/lib/publish-verify.js +44 -0
- package/package.json +1 -1
- package/sql/floriday-voorraad-schema.sql +46 -18
|
@@ -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;
|
|
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
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
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 === "
|
|
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;
|