@flowselections/floriday-verkoop-module 1.0.79 → 1.0.83
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/verkoop/FloridayStageLine.d.ts +5 -1
- package/dist-lib/components/verkoop/FloridayStageLine.d.ts.map +1 -1
- package/dist-lib/components/verkoop/FloridayStageLine.js +14 -6
- package/dist-lib/components/verkoop/SalesOrderDetailPage.d.ts.map +1 -1
- package/dist-lib/components/verkoop/SalesOrderDetailPage.js +1 -1
- package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts.map +1 -1
- package/dist-lib/components/verkoop/SalesOrderDetailView.js +7 -3
- package/dist-lib/components/verkoop/SalesOrdersTable.d.ts.map +1 -1
- package/dist-lib/components/verkoop/SalesOrdersTable.js +2 -2
- package/dist-lib/components/verkoop/VerkoopOrdersPage.d.ts.map +1 -1
- package/dist-lib/components/verkoop/VerkoopOrdersPage.js +6 -0
- package/dist-lib/integrations/supabase/types.d.ts +495 -2
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.js +1 -0
- package/dist-lib/lib/customer-name.d.ts +8 -0
- package/dist-lib/lib/customer-name.d.ts.map +1 -0
- package/dist-lib/lib/customer-name.js +9 -0
- package/dist-lib/lib/floriday-change-diff.check.d.ts +2 -0
- package/dist-lib/lib/floriday-change-diff.check.d.ts.map +1 -0
- package/dist-lib/lib/floriday-change-diff.check.js +27 -0
- package/dist-lib/lib/floriday-change-diff.d.ts +7 -0
- package/dist-lib/lib/floriday-change-diff.d.ts.map +1 -0
- package/dist-lib/lib/floriday-change-diff.js +51 -0
- package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-mirror.functions.js +17 -3
- package/dist-lib/lib/floriday-status.d.ts +8 -0
- package/dist-lib/lib/floriday-status.d.ts.map +1 -1
- package/dist-lib/lib/floriday-status.js +20 -1
- package/dist-lib/lib/review-dismissals.server.d.ts +3 -0
- package/dist-lib/lib/review-dismissals.server.d.ts.map +1 -0
- package/dist-lib/lib/review-dismissals.server.js +26 -0
- package/dist-lib/lib/salesorders-list.functions.d.ts +1 -1
- package/dist-lib/lib/salesorders-list.functions.js +1 -1
- package/dist-lib/lib/salesorders-list.server.d.ts +1 -1
- package/dist-lib/lib/salesorders-list.server.d.ts.map +1 -1
- package/dist-lib/lib/salesorders-list.server.js +50 -3
- package/dist-lib/lib/salesorders-mapping.d.ts +6 -0
- package/dist-lib/lib/salesorders-mapping.d.ts.map +1 -1
- package/dist-lib/lib/salesorders-mapping.js +1 -0
- package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
- package/dist-lib/lib/salesorders.functions.js +6 -0
- package/dist-lib/lib/useSalesOrdersQuery.d.ts +1 -1
- package/dist-lib/lib/useSalesOrdersQuery.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customer-name.d.ts","sourceRoot":"","sources":["../../src/lib/customer-name.ts"],"names":[],"mappings":"AAIA,wBAAgB,mBAAmB,CAAC,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAAG;IAChH,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAKA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Klantnaam voor weergave: handelsnaam (commercial_name) als die gevuld is,
|
|
2
|
+
// anders bedrijfsnaam (company_name). Koppelen gebeurt nooit op naam.
|
|
3
|
+
const s = (v) => (typeof v === "string" && v.trim() ? v.trim() : null);
|
|
4
|
+
export function customerDisplayName(c) {
|
|
5
|
+
const commercial = s(c?.commercial_name);
|
|
6
|
+
const company = s(c?.company_name);
|
|
7
|
+
const name = commercial ?? company ?? "Onbekende klant";
|
|
8
|
+
return { name, legalName: commercial && company && company !== commercial ? company : null };
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floriday-change-diff.check.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-change-diff.check.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Controle zonder testomgeving: `bun src/lib/floriday-change-diff.check.ts`.
|
|
2
|
+
import { diffBuyerChanges } from "./floriday-change-diff";
|
|
3
|
+
import { notReportedState } from "./floriday-status";
|
|
4
|
+
let failed = 0;
|
|
5
|
+
const eq = (name, got, want) => {
|
|
6
|
+
const ok = JSON.stringify(got) === JSON.stringify(want);
|
|
7
|
+
if (!ok)
|
|
8
|
+
failed++;
|
|
9
|
+
console.log(`${ok ? "OK " : "FOUT"} ${name}${ok ? "" : ` — kreeg ${JSON.stringify(got)}`}`);
|
|
10
|
+
};
|
|
11
|
+
const id = "231ec1d1-46cd-4d63-8785-90a9b0891be5";
|
|
12
|
+
const stored = [{ sales_order_id: id, trade_item_id: "t1", pieces: 8, packing: { load_carrier: "A" } }];
|
|
13
|
+
eq("geen verschil (eerste ronde na scan)", diffBuyerChanges(stored, [{ sales_order_id: id, trade_item_id: "t1", pieces: 8 }], "2026-10-15", "2026-10-15"), []);
|
|
14
|
+
eq("alleen belading anders", diffBuyerChanges(stored, [{ sales_order_id: id, trade_item_id: "t1", pieces: 8, packing: { load_carrier: "B" } }], null, null), []);
|
|
15
|
+
eq("aantal gewijzigd", diffBuyerChanges(stored, [{ sales_order_id: id, trade_item_id: "t1", pieces: 10 }], null, null).length, 1);
|
|
16
|
+
eq("artikel gewijzigd", diffBuyerChanges(stored, [{ sales_order_id: id, trade_item_id: "t2", pieces: 8 }], null, null).length, 1);
|
|
17
|
+
eq("leverdatum gewijzigd", diffBuyerChanges(stored, [{ sales_order_id: id, trade_item_id: "t1", pieces: 8 }], "2026-10-15", "2026-10-16T00:00:00Z").length, 1);
|
|
18
|
+
eq("geen opgeslagen regels → geen alarm", diffBuyerChanges([], [{ sales_order_id: id, pieces: 1 }], null, null), []);
|
|
19
|
+
eq("verzonden + open → waarschuwing", notReportedState("shipped", "open", false), "waarschuwing");
|
|
20
|
+
eq("verzonden + fulfilled → niets", notReportedState("shipped", "fulfilled", true), null);
|
|
21
|
+
eq("verzonden + onbekend + niet afgemeld → terugval", notReportedState("shipped", "onbekend", false), "waarschuwing_onbekend");
|
|
22
|
+
eq("te picken + open → niets", notReportedState("topick", "open", false), null);
|
|
23
|
+
if (failed) {
|
|
24
|
+
console.log(`${failed} controle(s) mislukt`);
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
console.log("Alle controles geslaagd");
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface ChangeLine {
|
|
2
|
+
sales_order_id: string;
|
|
3
|
+
trade_item_id?: string | null;
|
|
4
|
+
pieces?: number | null;
|
|
5
|
+
}
|
|
6
|
+
export declare function diffBuyerChanges(storedLines: unknown, incomingLines: ChangeLine[], storedDate: unknown, incomingDate: unknown): string[];
|
|
7
|
+
//# sourceMappingURL=floriday-change-diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floriday-change-diff.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-change-diff.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAOD,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,OAAO,EACpB,aAAa,EAAE,UAAU,EAAE,EAC3B,UAAU,EAAE,OAAO,EACnB,YAAY,EAAE,OAAO,GACpB,MAAM,EAAE,CAoCV"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// Pure vergelijking: heeft de koper na afronding echt iets gewijzigd?
|
|
2
|
+
// Alleen artikel (trade-item-id), aantal stuks, leverdatum en bestellingen
|
|
3
|
+
// die erbij komen of verdwijnen tellen. ERP-status (scan), belading/verpakking
|
|
4
|
+
// en de Floriday-status (echo van onze eigen afmelding) tellen nooit mee.
|
|
5
|
+
// Match altijd op Floriday-bestel-id, nooit op naam.
|
|
6
|
+
const day = (v) => {
|
|
7
|
+
if (typeof v !== "string" || !v.trim())
|
|
8
|
+
return null;
|
|
9
|
+
return v.trim().slice(0, 10);
|
|
10
|
+
};
|
|
11
|
+
export function diffBuyerChanges(storedLines, incomingLines, storedDate, incomingDate) {
|
|
12
|
+
const changes = [];
|
|
13
|
+
const stored = new Map();
|
|
14
|
+
for (const l of Array.isArray(storedLines) ? storedLines : []) {
|
|
15
|
+
const id = l && typeof l === "object" ? String(l.sales_order_id ?? "") : "";
|
|
16
|
+
if (id)
|
|
17
|
+
stored.set(id, l);
|
|
18
|
+
}
|
|
19
|
+
// Zonder opgeslagen regels kunnen we niet vergelijken: niet alarmeren.
|
|
20
|
+
if (stored.size === 0)
|
|
21
|
+
return changes;
|
|
22
|
+
const incoming = new Map();
|
|
23
|
+
for (const l of incomingLines)
|
|
24
|
+
if (l?.sales_order_id)
|
|
25
|
+
incoming.set(String(l.sales_order_id), l);
|
|
26
|
+
for (const [id, inc] of incoming) {
|
|
27
|
+
const old = stored.get(id);
|
|
28
|
+
const short = id.slice(0, 8);
|
|
29
|
+
if (!old) {
|
|
30
|
+
changes.push(`bestelling ${short} toegevoegd`);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if ((old.trade_item_id ?? null) !== (inc.trade_item_id ?? null)) {
|
|
34
|
+
changes.push(`artikel gewijzigd (bestelling ${short})`);
|
|
35
|
+
}
|
|
36
|
+
const op = Number(old.pieces ?? NaN);
|
|
37
|
+
const np = Number(inc.pieces ?? NaN);
|
|
38
|
+
if (Number.isFinite(op) && Number.isFinite(np) && op !== np) {
|
|
39
|
+
changes.push(`aantal ${op} → ${np} (bestelling ${short})`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
for (const id of stored.keys()) {
|
|
43
|
+
if (!incoming.has(id))
|
|
44
|
+
changes.push(`bestelling ${id.slice(0, 8)} verdwenen`);
|
|
45
|
+
}
|
|
46
|
+
const od = day(storedDate);
|
|
47
|
+
const nd = day(incomingDate);
|
|
48
|
+
if (od && nd && od !== nd)
|
|
49
|
+
changes.push(`leverdatum ${od} → ${nd}`);
|
|
50
|
+
return changes;
|
|
51
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floriday-mirror.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-mirror.functions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"floriday-mirror.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-mirror.functions.ts"],"names":[],"mappings":"AA+IA,UAAU,YAAY;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAg3CD,wBAAsB,4BAA4B,CAAC,KAAK,SAAgB,yBAEvE;AAED,eAAO,MAAM,oBAAoB;;;;8CAEP,OAAO;;yBAG0C,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { diffBuyerChanges } from "./floriday-change-diff";
|
|
1
2
|
// Spiegelt Floriday-verkooporders (FO's) uit `floriday_salesorders_cache`
|
|
2
3
|
// naar de lokale `orders`-tabel, zodat ze via `resolveBufferForOrderInternal`
|
|
3
4
|
// in dezelfde buffer terechtkomen als lokale orders en gedeelde karren
|
|
@@ -830,12 +831,21 @@ async function mirrorUnlocked(limit) {
|
|
|
830
831
|
frozenCandidates.set(String(c.id), c);
|
|
831
832
|
}
|
|
832
833
|
if (frozenCandidates.size > 0) {
|
|
834
|
+
// Alleen echte koperwijzigingen (artikel, aantal, leverdatum,
|
|
835
|
+
// bestelling erbij/weg). Status, belading en Floriday-echo niet.
|
|
833
836
|
const signature = JSON.stringify({
|
|
834
|
-
|
|
835
|
-
|
|
837
|
+
lines: floridayLines.map((l) => ({
|
|
838
|
+
id: l.sales_order_id,
|
|
839
|
+
t: l.trade_item_id,
|
|
840
|
+
p: l.pieces,
|
|
841
|
+
})),
|
|
842
|
+
d: groupLvl.deliveryDate ?? null,
|
|
836
843
|
});
|
|
837
844
|
for (const fo of frozenCandidates.values()) {
|
|
838
845
|
const cf = (fo.custom_fields ?? {});
|
|
846
|
+
const changes = diffBuyerChanges(cf.floriday_lines, floridayLines, fo.delivery_date, groupLvl.deliveryDate);
|
|
847
|
+
if (changes.length === 0)
|
|
848
|
+
continue; // niets door de koper gewijzigd
|
|
839
849
|
if (cf.floriday_change_signature === signature)
|
|
840
850
|
continue; // al gemeld
|
|
841
851
|
const { error: revErr } = await supabaseAdmin.from("orders")
|
|
@@ -846,7 +856,8 @@ async function mirrorUnlocked(limit) {
|
|
|
846
856
|
floriday_change_detected_at: new Date().toISOString(),
|
|
847
857
|
floriday_change_signature: signature,
|
|
848
858
|
needs_manual_review: true,
|
|
849
|
-
|
|
859
|
+
floriday_change_summary: changes,
|
|
860
|
+
manual_review_reason: `Wijziging door de koper na afronding: ${changes.join("; ")} — handmatige beoordeling nodig`,
|
|
850
861
|
},
|
|
851
862
|
updated_at: new Date().toISOString(),
|
|
852
863
|
})
|
|
@@ -856,6 +867,9 @@ async function mirrorUnlocked(limit) {
|
|
|
856
867
|
}
|
|
857
868
|
}
|
|
858
869
|
skipped += group.length;
|
|
870
|
+
// Afgeronde order: deze ronde overslaan; alleen melden bij echte wijziging.
|
|
871
|
+
if (![...frozenCandidates.values()].some((fo) => diffBuyerChanges((fo.custom_fields ?? {}).floriday_lines, floridayLines, fo.delivery_date, groupLvl.deliveryDate).length > 0))
|
|
872
|
+
continue;
|
|
859
873
|
errors.push(`${primary.foId}: wijziging na afronding — order gemarkeerd voor handmatige beoordeling`);
|
|
860
874
|
continue;
|
|
861
875
|
}
|
|
@@ -37,4 +37,12 @@ export declare function combineStages(stages: FloridayStage[]): FloridayStage;
|
|
|
37
37
|
export declare function floridayStageLabel(stage: FloridayStatusSummary["stage"]): string;
|
|
38
38
|
/** Wijkt de Floriday-stand af van de ERP-stand? Alleen voor weergave. */
|
|
39
39
|
export declare function deviatesFromFloriday(stage: FloridayStatusSummary["stage"], erp: OrderStage | undefined): boolean;
|
|
40
|
+
/** Eigen kenmerk: verzonden in het ERP en nog niet afgemeld bij Floriday. */
|
|
41
|
+
export declare function isNotReportedLocally(erp: OrderStage | undefined, floridayFulfilled: boolean): boolean;
|
|
42
|
+
export type NotReportedState = "waarschuwing" | "waarschuwing_onbekend" | "al_afgehandeld" | null;
|
|
43
|
+
/**
|
|
44
|
+
* Welke melding hoort bij een verzonden order? Floriday-stand gaat voor;
|
|
45
|
+
* bij onbekende stand valt het terug op ons eigen kenmerk. Alleen weergave.
|
|
46
|
+
*/
|
|
47
|
+
export declare function notReportedState(erp: OrderStage | undefined, floriday: FloridayStatusSummary["stage"] | null | undefined, floridayFulfilled: boolean): NotReportedState;
|
|
40
48
|
//# sourceMappingURL=floriday-status.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floriday-status.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-status.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,qBAAqB,GACrB,WAAW,GACX,WAAW,GACX,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE;QAAE,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,mBAAmB,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAC9H,iBAAiB,EAAE;QAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IAClF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,aAAa,GAAG,UAAU,CAAC;IAClC,iEAAiE;IACjE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAMD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,mBAAmB,GAAG,IAAI,CA6B7E;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,CAWpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,MAAM,CAUhF;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAQhH"}
|
|
1
|
+
{"version":3,"file":"floriday-status.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-status.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,qBAAqB,GACrB,WAAW,GACX,WAAW,GACX,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE;QAAE,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,mBAAmB,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAC9H,iBAAiB,EAAE;QAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IAClF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,aAAa,GAAG,UAAU,CAAC;IAClC,iEAAiE;IACjE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAMD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,mBAAmB,GAAG,IAAI,CA6B7E;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,CAWpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,MAAM,CAUhF;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAQhH;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,EAAE,iBAAiB,EAAE,OAAO,GAAG,OAAO,CAErG;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,uBAAuB,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAElG;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,UAAU,GAAG,SAAS,EAC3B,QAAQ,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EAC3D,iBAAiB,EAAE,OAAO,GACzB,gBAAgB,CAMlB"}
|
|
@@ -75,6 +75,25 @@ export function deviatesFromFloriday(stage, erp) {
|
|
|
75
75
|
if (stage === "fulfilled")
|
|
76
76
|
return !erpShipped && !erpCancelled;
|
|
77
77
|
if (stage === "open")
|
|
78
|
-
return erpCancelled;
|
|
78
|
+
return erpCancelled; // verzonden+open: aparte melding
|
|
79
79
|
return false;
|
|
80
80
|
}
|
|
81
|
+
/** Eigen kenmerk: verzonden in het ERP en nog niet afgemeld bij Floriday. */
|
|
82
|
+
export function isNotReportedLocally(erp, floridayFulfilled) {
|
|
83
|
+
return erp === "shipped" && !floridayFulfilled;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Welke melding hoort bij een verzonden order? Floriday-stand gaat voor;
|
|
87
|
+
* bij onbekende stand valt het terug op ons eigen kenmerk. Alleen weergave.
|
|
88
|
+
*/
|
|
89
|
+
export function notReportedState(erp, floriday, floridayFulfilled) {
|
|
90
|
+
if (erp !== "shipped")
|
|
91
|
+
return null;
|
|
92
|
+
if (floriday === "open" || floriday === "partially_fulfilled")
|
|
93
|
+
return "waarschuwing";
|
|
94
|
+
if (floriday === "fulfilled")
|
|
95
|
+
return floridayFulfilled ? null : "al_afgehandeld";
|
|
96
|
+
if (floriday === "cancelled" || floriday === "expired")
|
|
97
|
+
return null;
|
|
98
|
+
return floridayFulfilled ? null : "waarschuwing_onbekend";
|
|
99
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare function loadReviewDismissals(supabase: any, orderIds: string[]): Promise<Map<string, Set<string>>>;
|
|
2
|
+
export declare function isReviewDismissed(map: Map<string, Set<string>>, orderId: string, reason: string): boolean;
|
|
3
|
+
//# sourceMappingURL=review-dismissals.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-dismissals.server.d.ts","sourceRoot":"","sources":["../../src/lib/review-dismissals.server.ts"],"names":[],"mappings":"AAKA,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAgBnC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Weggehaalde beoordelingsmeldingen (order_review_dismissals). Alleen lezen.
|
|
2
|
+
// Een melding is alleen weg als de reden exact overeenkomt; een nieuwe, echte
|
|
3
|
+
// wijziging met een andere reden verschijnt dus gewoon weer.
|
|
4
|
+
// Fout bij lezen: melding blijft zichtbaar (fail closed).
|
|
5
|
+
export async function loadReviewDismissals(supabase, orderIds) {
|
|
6
|
+
const out = new Map();
|
|
7
|
+
const ids = Array.from(new Set(orderIds.filter(Boolean)));
|
|
8
|
+
for (let i = 0; i < ids.length; i += 300) {
|
|
9
|
+
const { data, error } = await supabase
|
|
10
|
+
.from("order_review_dismissals")
|
|
11
|
+
.select("order_id, review_reason")
|
|
12
|
+
.in("order_id", ids.slice(i, i + 300));
|
|
13
|
+
if (error || !Array.isArray(data))
|
|
14
|
+
continue;
|
|
15
|
+
for (const r of data) {
|
|
16
|
+
const k = String(r.order_id);
|
|
17
|
+
if (!out.has(k))
|
|
18
|
+
out.set(k, new Set());
|
|
19
|
+
out.get(k).add(String(r.review_reason ?? ""));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return out;
|
|
23
|
+
}
|
|
24
|
+
export function isReviewDismissed(map, orderId, reason) {
|
|
25
|
+
return map.get(orderId)?.has(reason) ?? false;
|
|
26
|
+
}
|
|
@@ -4,7 +4,7 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
|
|
|
4
4
|
claims: import("@supabase/auth-js").User;
|
|
5
5
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
6
6
|
dateField: "ordered" | "delivery";
|
|
7
|
-
tab: "incoming" | "topick" | "picked" | "shipped" | "cancelled" | "backlog" | "all";
|
|
7
|
+
tab: "incoming" | "topick" | "picked" | "shipped" | "cancelled" | "backlog" | "all" | "not_reported";
|
|
8
8
|
page: number;
|
|
9
9
|
pageSize: number;
|
|
10
10
|
since?: string | undefined;
|
|
@@ -11,7 +11,7 @@ const listInput = z.object({
|
|
|
11
11
|
search: z.string().optional(),
|
|
12
12
|
status: z.string().optional(),
|
|
13
13
|
tab: z
|
|
14
|
-
.enum(["all", "incoming", "topick", "backlog", "picked", "shipped", "cancelled"])
|
|
14
|
+
.enum(["all", "incoming", "topick", "backlog", "picked", "shipped", "cancelled", "not_reported"])
|
|
15
15
|
.default("all"),
|
|
16
16
|
page: z.number().int().min(1).default(1),
|
|
17
17
|
pageSize: z.number().int().min(1).max(200).default(20),
|
|
@@ -2,7 +2,7 @@ import type { SupabaseClient } from "@supabase/supabase-js";
|
|
|
2
2
|
import { type SalesOrderDTO, type SalesOrdersTotals } from "./salesorders-mapping";
|
|
3
3
|
import { type OrderStage } from "./order-status";
|
|
4
4
|
/** "backlog" is géén status: het is een aparte weergave van "Te picken". */
|
|
5
|
-
export type StatusTab = "all" | OrderStage | "backlog";
|
|
5
|
+
export type StatusTab = "all" | OrderStage | "backlog" | "not_reported";
|
|
6
6
|
export interface ListParams {
|
|
7
7
|
since?: string;
|
|
8
8
|
until?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salesorders-list.server.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders-list.server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"salesorders-list.server.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders-list.server.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEvB,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKjF,4EAA4E;AAC5E,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,SAAS,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACxC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AA8ID,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,UAAU,EAClB,kBAAkB,GAAE,cAAyB,GAC5C,OAAO,CAAC,UAAU,CAAC,CA0lCrB"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { loadReviewDismissals, isReviewDismissed } from "./review-dismissals.server";
|
|
2
|
+
import { customerDisplayName } from "./customer-name";
|
|
3
|
+
import { isNotReportedLocally } from "./floriday-status";
|
|
1
4
|
import { unlinkedFloridayProducts } from "./floriday-unlinked-products";
|
|
2
5
|
import { resolveProductName } from "./product-name";
|
|
3
6
|
import { centralOrderNumber, computeTotals, mapJsonbToSalesOrderDTO, packingConfigFromFloridayPacking, } from "./salesorders-mapping";
|
|
@@ -358,15 +361,18 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
|
|
|
358
361
|
const lookup = new Map();
|
|
359
362
|
const localCustomerLookup = new Map();
|
|
360
363
|
for (const c of customerRows) {
|
|
364
|
+
const disp = customerDisplayName(c);
|
|
361
365
|
localCustomerLookup.set(String(c.id), {
|
|
362
|
-
name:
|
|
366
|
+
name: disp.name,
|
|
367
|
+
legalName: disp.legalName,
|
|
363
368
|
city: c.city ?? "",
|
|
364
369
|
});
|
|
365
370
|
const orgId = c.floriday_organization_id;
|
|
366
371
|
if (!orgId)
|
|
367
372
|
continue;
|
|
368
373
|
lookup.set(String(orgId), {
|
|
369
|
-
name:
|
|
374
|
+
name: disp.name,
|
|
375
|
+
legalName: disp.legalName,
|
|
370
376
|
postalCode: c.postal_code ?? "",
|
|
371
377
|
city: c.city ?? "",
|
|
372
378
|
logoUrl: c.logo_url ?? null,
|
|
@@ -513,6 +519,7 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
|
|
|
513
519
|
isReservation: localRow ? !!localRow.is_reservation : false,
|
|
514
520
|
});
|
|
515
521
|
dto.floridayFulfilled = Boolean((localRow?.custom_fields ?? {})?.floriday_fulfilled);
|
|
522
|
+
dto.notReportedToFloriday = isNotReportedLocally(dto.stage, dto.floridayFulfilled);
|
|
516
523
|
const reviewCf = (localRow?.custom_fields ?? {});
|
|
517
524
|
dto.needsManualReview = reviewCf?.needs_manual_review
|
|
518
525
|
? {
|
|
@@ -696,7 +703,9 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
|
|
|
696
703
|
isLocal: true,
|
|
697
704
|
isReservation: !!r.is_reservation,
|
|
698
705
|
customer: {
|
|
699
|
-
|
|
706
|
+
// Gekoppelde klant (op id) gaat vóór de opgeslagen naam op de order.
|
|
707
|
+
name: localCustomer?.name ?? r.customer_name ?? "Onbekende klant",
|
|
708
|
+
legalName: localCustomer?.legalName ?? null,
|
|
700
709
|
postalCode: "",
|
|
701
710
|
city: localCustomer?.city ?? "",
|
|
702
711
|
logoUrl: null,
|
|
@@ -716,6 +725,14 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
|
|
|
716
725
|
...(r.delivery_date ? [] : ["geen leverdatum"]),
|
|
717
726
|
],
|
|
718
727
|
packingSource: localPackingSource,
|
|
728
|
+
floridayFulfilled: Boolean(cf.floriday_fulfilled),
|
|
729
|
+
notReportedToFloriday: (sourceRaw === "floriday" || !!r.floriday_sales_order_id) &&
|
|
730
|
+
isNotReportedLocally(resolveOrderStage({
|
|
731
|
+
status: r.status,
|
|
732
|
+
shipped: shipmentStateByOrder.get(String(r.id))?.shipped,
|
|
733
|
+
controlledAt: shipmentStateByOrder.get(String(r.id))?.picked ? "picked" : null,
|
|
734
|
+
isReservation: !!r.is_reservation,
|
|
735
|
+
}), Boolean(cf.floriday_fulfilled)),
|
|
719
736
|
priceLines: lineItems.map((it) => ({
|
|
720
737
|
pieces: toNumber(it?.quantity) || 0,
|
|
721
738
|
unitPrice: toNumber(it?.unit_price) || 0,
|
|
@@ -821,6 +838,27 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
|
|
|
821
838
|
o.pickupLabel = shortPickup(selected.pickupDate, selected.pickupTime ?? selected.signupTime);
|
|
822
839
|
}
|
|
823
840
|
}
|
|
841
|
+
// 12a) Weggehaalde beoordelingsmeldingen (vals alarm) — los vastgelegd,
|
|
842
|
+
// zodat de order zelf niet gewijzigd hoeft te worden.
|
|
843
|
+
{
|
|
844
|
+
const reviewPairs = [];
|
|
845
|
+
for (const o of all) {
|
|
846
|
+
if (!o.needsManualReview)
|
|
847
|
+
continue;
|
|
848
|
+
const oid = o.id.startsWith("local:")
|
|
849
|
+
? o.id.slice("local:".length)
|
|
850
|
+
: (() => { const row = localRowByFoId.get(o.id); return row ? String(row.id) : null; })();
|
|
851
|
+
if (oid)
|
|
852
|
+
reviewPairs.push({ oid, o });
|
|
853
|
+
}
|
|
854
|
+
if (reviewPairs.length > 0) {
|
|
855
|
+
const dismissed = await loadReviewDismissals(supabase, reviewPairs.map((p) => p.oid));
|
|
856
|
+
for (const p of reviewPairs) {
|
|
857
|
+
if (isReviewDismissed(dismissed, p.oid, p.o.needsManualReview.reason))
|
|
858
|
+
p.o.needsManualReview = null;
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
}
|
|
824
862
|
const sizeByBuffer = new Map();
|
|
825
863
|
for (const o of all) {
|
|
826
864
|
if (o.bufferId)
|
|
@@ -868,6 +906,8 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
|
|
|
868
906
|
reservationCount: members.filter((m) => m.isReservation).length,
|
|
869
907
|
floridayFulfilled: members.some((m) => m.floridayFulfilled),
|
|
870
908
|
floridayFulfilledCount: members.filter((m) => m.floridayFulfilled).length,
|
|
909
|
+
notReportedToFloriday: members.some((m) => m.notReportedToFloriday),
|
|
910
|
+
notReportedCount: members.filter((m) => m.notReportedToFloriday).length,
|
|
871
911
|
stage: mergeStages(members.map((m) => m.stage ?? "incoming")),
|
|
872
912
|
...(() => {
|
|
873
913
|
// De herkomst van de laatste statuswijziging binnen de buffer.
|
|
@@ -978,11 +1018,15 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
|
|
|
978
1018
|
};
|
|
979
1019
|
// Achterstand is een weergave-categorie binnen "Te picken", geen eigen status.
|
|
980
1020
|
const isBacklogGroup = (members) => stageOf(members) === "topick" && members.some((m) => m.backlog);
|
|
1021
|
+
// Verzonden in het ERP, nog niet afgemeld bij Floriday (eigen kenmerk).
|
|
1022
|
+
const isNotReportedGroup = (members) => members.some((m) => m.notReportedToFloriday);
|
|
981
1023
|
const matchesTab = (members) => {
|
|
982
1024
|
if (params.tab === "all")
|
|
983
1025
|
return true;
|
|
984
1026
|
if (params.tab === "backlog")
|
|
985
1027
|
return isBacklogGroup(members);
|
|
1028
|
+
if (params.tab === "not_reported")
|
|
1029
|
+
return isNotReportedGroup(members);
|
|
986
1030
|
if (stageOf(members) !== params.tab)
|
|
987
1031
|
return false;
|
|
988
1032
|
// Achterstandorders horen onder hun eigen tab, niet bij het gewone "Te picken".
|
|
@@ -1000,8 +1044,11 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
|
|
|
1000
1044
|
picked: 0,
|
|
1001
1045
|
shipped: 0,
|
|
1002
1046
|
cancelled: 0,
|
|
1047
|
+
not_reported: 0,
|
|
1003
1048
|
};
|
|
1004
1049
|
for (const g of withoutTab) {
|
|
1050
|
+
if (isNotReportedGroup(g))
|
|
1051
|
+
statusCounts.not_reported++;
|
|
1005
1052
|
if (isBacklogGroup(g)) {
|
|
1006
1053
|
statusCounts.backlog++;
|
|
1007
1054
|
continue; // telt niet mee bij het gewone "Te picken"
|
|
@@ -48,6 +48,9 @@ export interface SalesOrderDTO {
|
|
|
48
48
|
* Nooit sturend voor status, tabs, filters, facturatie of voorraadverbruik.
|
|
49
49
|
*/
|
|
50
50
|
floridayFulfilled?: boolean;
|
|
51
|
+
/** Verzonden in het ERP, nog niet afgemeld bij Floriday (alleen weergave). */
|
|
52
|
+
notReportedToFloriday?: boolean;
|
|
53
|
+
notReportedCount?: number;
|
|
51
54
|
/** Aantal orders binnen een buffer dat is doorgegeven aan Floriday. */
|
|
52
55
|
floridayFulfilledCount?: number;
|
|
53
56
|
/**
|
|
@@ -105,6 +108,8 @@ export interface SalesOrderDTO {
|
|
|
105
108
|
incomplete?: string[];
|
|
106
109
|
customer: {
|
|
107
110
|
name: string;
|
|
111
|
+
/** Bedrijfsnaam (company_name) als die afwijkt van de getoonde handelsnaam. */
|
|
112
|
+
legalName?: string | null;
|
|
108
113
|
postalCode: string;
|
|
109
114
|
city: string;
|
|
110
115
|
logoUrl: string | null;
|
|
@@ -125,6 +130,7 @@ export interface SalesOrderDTO {
|
|
|
125
130
|
}
|
|
126
131
|
export interface CustomerLookupEntry {
|
|
127
132
|
name: string;
|
|
133
|
+
legalName?: string | null;
|
|
128
134
|
postalCode: string;
|
|
129
135
|
city: string;
|
|
130
136
|
logoUrl: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salesorders-mapping.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders-mapping.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"salesorders-mapping.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders-mapping.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAElE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,0FAA0F;IAC1F,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,kEAAkE;IAClE,YAAY,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;IAClC,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,iBAAiB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACjE,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uEAAuE;IACvE,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IAElE,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,iBAAiB,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEpE;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,mBAAmB,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC1E,0EAA0E;IAC1E,UAAU,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,oEAAoE;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAGtB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,+EAA+E;QAC/E,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IACF,MAAM,EAAE;QACN,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B,CAAC;IAEF,GAAG,EAAE;QACH,KAAK,EAAE,GAAG,CAAC;QACX,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;QACrB,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AACD,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AACD,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAWhE;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC;AAmD9E;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAmBpE;AAKD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED,wFAAwF;AACxF,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;AAK7D,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,GACT;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAa7C;AAED,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,GAAG,EACN,cAAc,CAAC,EAAE,cAAc,EAC/B,eAAe,CAAC,EAAE,eAAe,EACjC,wBAAwB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7C,aAAa,CAkGf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAUxE;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACnE;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAWnF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAIlF;AAYD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,EAAE,EACvB,CAAC,EAAE,iBAAiB,GACnB,aAAa,EAAE,CAuDjB;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAyCtF"}
|
|
@@ -155,6 +155,7 @@ export function mapJsonbToSalesOrderDTO(o, customerLookup, tradeItemLookup, crat
|
|
|
155
155
|
totalPieces: numberOfPieces,
|
|
156
156
|
customer: {
|
|
157
157
|
name: found?.name ?? "Onbekende klant",
|
|
158
|
+
legalName: found?.legalName ?? null,
|
|
158
159
|
postalCode: found?.postalCode ?? "",
|
|
159
160
|
city: found?.city ?? "",
|
|
160
161
|
logoUrl: found?.logoUrl ?? null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salesorders.functions.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders.functions.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAqD/B,wBAAsB,0BAA0B,iBAM/C;AAGD,eAAO,MAAM,kBAAkB;;;;;QA3BzB,OAAO;cACD,OAAO;cACP,MAAM;GA2B+B,CAAC;AA6BlD,eAAO,MAAM,gBAAgB;;;;6CAEJ,OAAO;;;;;;;;;;;;;GAmC5B,CAAC;AAGL,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDnC,CAAC;AASL,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;0CAEV,OAAO;;
|
|
1
|
+
{"version":3,"file":"salesorders.functions.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders.functions.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAqD/B,wBAAsB,0BAA0B,iBAM/C;AAGD,eAAO,MAAM,kBAAkB;;;;;QA3BzB,OAAO;cACD,OAAO;cACP,MAAM;GA2B+B,CAAC;AA6BlD,eAAO,MAAM,gBAAgB;;;;6CAEJ,OAAO;;;;;;;;;;;;;GAmC5B,CAAC;AAGL,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDnC,CAAC;AASL,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;0CAEV,OAAO;;mCA2ZzB,CAAC;AAQL,eAAO,MAAM,uBAAuB;;;;0CAEd,OAAO;;;;;GAQzB,CAAC;AAOL,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAIF,eAAO,MAAM,qBAAqB;;;;6EA4E9B,CAAC"}
|
|
@@ -340,6 +340,12 @@ export const getSalesOrderDetail = createServerFn({ method: "POST" })
|
|
|
340
340
|
at: reviewCf.floriday_change_detected_at ?? null,
|
|
341
341
|
}
|
|
342
342
|
: null;
|
|
343
|
+
if (dto.needsManualReview && ownRow?.id) {
|
|
344
|
+
const { loadReviewDismissals, isReviewDismissed } = await import("./review-dismissals.server");
|
|
345
|
+
const dismissed = await loadReviewDismissals(supabase, [String(ownRow.id)]);
|
|
346
|
+
if (isReviewDismissed(dismissed, String(ownRow.id), dto.needsManualReview.reason))
|
|
347
|
+
dto.needsManualReview = null;
|
|
348
|
+
}
|
|
343
349
|
// Karren en indelingsstatus uit de Engine (logistics_order_plan_coverage).
|
|
344
350
|
// Fail closed: bij een fout "Indeling onbekend" en geen aantal.
|
|
345
351
|
if (ownRow?.id) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type SalesOrderDTO, type SalesOrderFilters, type SalesOrdersTotals } from "./salesorders-mapping";
|
|
2
2
|
import type { OrderStage } from "./order-status";
|
|
3
|
-
export type StatusTab = "all" | OrderStage | "backlog";
|
|
3
|
+
export type StatusTab = "all" | OrderStage | "backlog" | "not_reported";
|
|
4
4
|
export interface SalesOrdersPage {
|
|
5
5
|
orders: SalesOrderDTO[];
|
|
6
6
|
totalCount: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSalesOrdersQuery.d.ts","sourceRoot":"","sources":["../../src/lib/useSalesOrdersQuery.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useSalesOrdersQuery.d.ts","sourceRoot":"","sources":["../../src/lib/useSalesOrdersQuery.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACxC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;CACnC,CAwCA;AAED,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,uBAAuB,0EAgElC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flowselections/floriday-verkoop-module",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.83",
|
|
4
4
|
"private": false,
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -56,9 +56,9 @@
|
|
|
56
56
|
"@rsbuild/core": "^1.0.0",
|
|
57
57
|
"@tailwindcss/vite": "^4.2.1",
|
|
58
58
|
"@tanstack/react-query": "^5.83.0",
|
|
59
|
-
"@tanstack/react-router": "
|
|
60
|
-
"@tanstack/react-start": "
|
|
61
|
-
"@tanstack/router-plugin": "
|
|
59
|
+
"@tanstack/react-router": "1.169.1",
|
|
60
|
+
"@tanstack/react-start": "1.167.63",
|
|
61
|
+
"@tanstack/router-plugin": "1.167.33",
|
|
62
62
|
"@types/node": "^22.16.5",
|
|
63
63
|
"@types/react": "^19.2.0",
|
|
64
64
|
"@types/react-dom": "^19.2.0",
|