@flowselections/logistiek-engine 1.0.112 → 1.0.113
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/MisluktVerzendbrievenCard.d.ts.map +1 -1
- package/dist-lib/components/MisluktVerzendbrievenCard.js +3 -3
- package/dist-lib/hooks/useShippingNoteStatus.d.ts +3 -1
- package/dist-lib/hooks/useShippingNoteStatus.d.ts.map +1 -1
- package/dist-lib/hooks/useShippingNoteStatus.js +6 -3
- package/dist-lib/integrations/supabase/types.d.ts +28 -1
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/handlers/logistics-shipping-note-now.server.d.ts.map +1 -1
- package/dist-lib/lib/handlers/logistics-shipping-note-now.server.js +15 -4
- package/dist-lib/lib/handlers/logistics-tick.server.js +8 -0
- package/dist-lib/lib/moduleVersion.d.ts +1 -1
- package/dist-lib/lib/moduleVersion.js +1 -1
- package/dist-lib/lib/shippingNoteQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/shippingNoteQueue.server.js +51 -5
- package/dist-lib/lib/shippingNoteStates.d.ts +26 -0
- package/dist-lib/lib/shippingNoteStates.d.ts.map +1 -0
- package/dist-lib/lib/shippingNoteStates.js +38 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MisluktVerzendbrievenCard.d.ts","sourceRoot":"","sources":["../../src/components/MisluktVerzendbrievenCard.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MisluktVerzendbrievenCard.d.ts","sourceRoot":"","sources":["../../src/components/MisluktVerzendbrievenCard.tsx"],"names":[],"mappings":"AAoBA,wBAAgB,yBAAyB,gCAwExC"}
|
|
@@ -15,7 +15,7 @@ export function MisluktVerzendbrievenCard() {
|
|
|
15
15
|
const laad = useCallback(async () => {
|
|
16
16
|
const { data, error } = await supabase
|
|
17
17
|
.from("logistics_slip_shipping_note")
|
|
18
|
-
.select("id, order_number, error, error_code, updated_at")
|
|
18
|
+
.select("id, order_number, error, error_code, updated_at, voor_herstel")
|
|
19
19
|
.eq("status", "mislukt")
|
|
20
20
|
.order("updated_at", { ascending: false })
|
|
21
21
|
.limit(25);
|
|
@@ -35,7 +35,7 @@ export function MisluktVerzendbrievenCard() {
|
|
|
35
35
|
const { data, error } = await supabase.rpc("logistics_slip_note_retry", { _id: id });
|
|
36
36
|
const res = (data ?? {});
|
|
37
37
|
if (error || !res.ok) {
|
|
38
|
-
toast.error(error?.message ?? res.error ?? "Opnieuw
|
|
38
|
+
toast.error(error?.message ?? res.error ?? "Opnieuw starten is niet gelukt.");
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
41
41
|
toast.success("De verzendbrief wordt opnieuw aangevraagd.");
|
|
@@ -46,5 +46,5 @@ export function MisluktVerzendbrievenCard() {
|
|
|
46
46
|
setBezig(null);
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
return (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Mislukte verzendbrieven" }), _jsx(CardDescription, { children: "Floriday-verzendbrieven bij een pakbon die niet geprint konden worden.
|
|
49
|
+
return (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Mislukte verzendbrieven" }), _jsx(CardDescription, { children: "Floriday-verzendbrieven bij een pakbon die niet geprint konden worden. Opnieuw starten kan alleen bij een open order met een goedgekeurde controlescan; de kar hoeft niet opnieuw gescand te worden." })] }), _jsxs(CardContent, { className: "space-y-2", children: [fout && _jsx("p", { className: "text-sm text-destructive", children: fout }), !fout && regels.length === 0 && (_jsx("p", { className: "text-sm text-muted-foreground", children: "Geen mislukte verzendbrieven." })), regels.map((r) => (_jsxs("div", { className: "flex items-start justify-between gap-3 border-b border-border py-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsxs("p", { className: "text-sm font-medium", children: [r.order_number ?? "Onbekende order", r.voor_herstel && _jsx("span", { className: "ml-2 text-xs text-muted-foreground", children: "oud, v\u00F3\u00F3r herstel" })] }), _jsx("p", { className: "text-xs text-muted-foreground break-words", children: r.error ?? r.error_code ?? "Onbekende fout" })] }), _jsxs(Button, { size: "sm", variant: "outline", disabled: bezig === r.id, onClick: () => void opnieuw(r.id), children: [_jsx(RefreshCw, { className: "mr-1 h-3 w-3" }), "Opnieuw starten"] })] }, r.id)))] })] }));
|
|
50
50
|
}
|
|
@@ -8,6 +8,8 @@ export interface ShippingNoteStatus {
|
|
|
8
8
|
shippingNoteJobId: string | null;
|
|
9
9
|
cartId: string | null;
|
|
10
10
|
orderNumber: string | null;
|
|
11
|
+
/** Wacht op goedgekeurde controlescan/vrijgave; geen fout na de pollimiet. */
|
|
12
|
+
wachtOpVrijgave?: boolean;
|
|
11
13
|
}
|
|
12
14
|
/** Zet een nog wachtende status om naar een expliciete fout na de pollimiet. */
|
|
13
15
|
export declare function timedOutStatus(current: ShippingNoteStatus, maxPollMs: number): ShippingNoteStatus;
|
|
@@ -18,7 +20,7 @@ export declare function timedOutStatus(current: ShippingNoteStatus, maxPollMs: n
|
|
|
18
20
|
* aanvraag of printopdracht. Ontbreekt de sleutel, dan gebeurt er niets extra
|
|
19
21
|
* en blijft de gewone achtergrondverwerking de status bijwerken.
|
|
20
22
|
*/
|
|
21
|
-
export declare function kickShippingNoteQueue(): Promise<void>;
|
|
23
|
+
export declare function kickShippingNoteQueue(slipJobId?: string | null): Promise<void>;
|
|
22
24
|
export declare function useShippingNoteStatus(slipJobId: string | null, cartId: string | null, options?: {
|
|
23
25
|
pollMs?: number;
|
|
24
26
|
maxPollMs?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useShippingNoteStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useShippingNoteStatus.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,sBAAsB,GAC9B,kBAAkB,GAClB,mBAAmB,GACnB,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"useShippingNoteStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useShippingNoteStatus.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,sBAAsB,GAC9B,kBAAkB,GAClB,mBAAmB,GACnB,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,8EAA8E;IAC9E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAID,gFAAgF;AAChF,wBAAgB,cAAc,CAC5B,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,GAChB,kBAAkB,CAQpB;AA8BD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAe1F;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO;;;;EAyD1E"}
|
|
@@ -7,6 +7,8 @@ import { supabase } from "@flowselections/core";
|
|
|
7
7
|
const WAITING = new Set(["klaar_voor_print", "wacht_op_floriday"]);
|
|
8
8
|
/** Zet een nog wachtende status om naar een expliciete fout na de pollimiet. */
|
|
9
9
|
export function timedOutStatus(current, maxPollMs) {
|
|
10
|
+
if (current.wachtOpVrijgave)
|
|
11
|
+
return current;
|
|
10
12
|
const minuten = Math.round(maxPollMs / 60000);
|
|
11
13
|
return {
|
|
12
14
|
...current,
|
|
@@ -34,6 +36,7 @@ function safeStatus(value) {
|
|
|
34
36
|
shippingNoteJobId: typeof row["shippingNoteJobId"] === "string" ? row["shippingNoteJobId"] : null,
|
|
35
37
|
cartId: typeof row["cartId"] === "string" ? row["cartId"] : null,
|
|
36
38
|
orderNumber: typeof row["orderNumber"] === "string" ? row["orderNumber"] : null,
|
|
39
|
+
wachtOpVrijgave: row["wachtOpVrijgave"] === true,
|
|
37
40
|
};
|
|
38
41
|
}
|
|
39
42
|
/**
|
|
@@ -43,7 +46,7 @@ function safeStatus(value) {
|
|
|
43
46
|
* aanvraag of printopdracht. Ontbreekt de sleutel, dan gebeurt er niets extra
|
|
44
47
|
* en blijft de gewone achtergrondverwerking de status bijwerken.
|
|
45
48
|
*/
|
|
46
|
-
export async function kickShippingNoteQueue() {
|
|
49
|
+
export async function kickShippingNoteQueue(slipJobId = null) {
|
|
47
50
|
const apikey = import.meta.env["VITE_SUPABASE_PUBLISHABLE_KEY"] ??
|
|
48
51
|
import.meta.env["VITE_SUPABASE_ANON_KEY"] ??
|
|
49
52
|
"";
|
|
@@ -53,7 +56,7 @@ export async function kickShippingNoteQueue() {
|
|
|
53
56
|
await fetch("/api/public/hooks/logistics-shipping-note-now", {
|
|
54
57
|
method: "POST",
|
|
55
58
|
headers: { apikey, "Content-Type": "application/json" },
|
|
56
|
-
body:
|
|
59
|
+
body: JSON.stringify(slipJobId ? { slipJobId } : {}),
|
|
57
60
|
});
|
|
58
61
|
}
|
|
59
62
|
catch {
|
|
@@ -100,7 +103,7 @@ export function useShippingNoteStatus(slipJobId, cartId, options = {}) {
|
|
|
100
103
|
return;
|
|
101
104
|
void (async () => {
|
|
102
105
|
if (fetchNow)
|
|
103
|
-
await kickShippingNoteQueue();
|
|
106
|
+
await kickShippingNoteQueue(slipJobId);
|
|
104
107
|
await reload();
|
|
105
108
|
})();
|
|
106
109
|
}, [cartId, fetchNow, reload, slipJobId]);
|
|
@@ -12845,6 +12845,7 @@ export type Database = {
|
|
|
12845
12845
|
slip_job_id: string;
|
|
12846
12846
|
status: string;
|
|
12847
12847
|
updated_at: string;
|
|
12848
|
+
voor_herstel: boolean;
|
|
12848
12849
|
};
|
|
12849
12850
|
Insert: {
|
|
12850
12851
|
attempts?: number;
|
|
@@ -12865,6 +12866,7 @@ export type Database = {
|
|
|
12865
12866
|
slip_job_id: string;
|
|
12866
12867
|
status?: string;
|
|
12867
12868
|
updated_at?: string;
|
|
12869
|
+
voor_herstel?: boolean;
|
|
12868
12870
|
};
|
|
12869
12871
|
Update: {
|
|
12870
12872
|
attempts?: number;
|
|
@@ -12885,6 +12887,7 @@ export type Database = {
|
|
|
12885
12887
|
slip_job_id?: string;
|
|
12886
12888
|
status?: string;
|
|
12887
12889
|
updated_at?: string;
|
|
12890
|
+
voor_herstel?: boolean;
|
|
12888
12891
|
};
|
|
12889
12892
|
Relationships: [];
|
|
12890
12893
|
};
|
|
@@ -19088,7 +19091,7 @@ export type Database = {
|
|
|
19088
19091
|
id?: string;
|
|
19089
19092
|
product_group_id: string;
|
|
19090
19093
|
quantity?: number;
|
|
19091
|
-
sort_order
|
|
19094
|
+
sort_order: number;
|
|
19092
19095
|
trade_item_id: string;
|
|
19093
19096
|
};
|
|
19094
19097
|
Update: {
|
|
@@ -30801,6 +30804,16 @@ export type Database = {
|
|
|
30801
30804
|
};
|
|
30802
30805
|
Returns: string;
|
|
30803
30806
|
};
|
|
30807
|
+
logistics_shipping_note_max_attempts: {
|
|
30808
|
+
Args: never;
|
|
30809
|
+
Returns: number;
|
|
30810
|
+
};
|
|
30811
|
+
logistics_shipping_note_release: {
|
|
30812
|
+
Args: {
|
|
30813
|
+
_order_number?: string;
|
|
30814
|
+
};
|
|
30815
|
+
Returns: number;
|
|
30816
|
+
};
|
|
30804
30817
|
logistics_shipping_note_status: {
|
|
30805
30818
|
Args: {
|
|
30806
30819
|
p_cart_id?: string;
|
|
@@ -30808,6 +30821,12 @@ export type Database = {
|
|
|
30808
30821
|
};
|
|
30809
30822
|
Returns: Json;
|
|
30810
30823
|
};
|
|
30824
|
+
logistics_shipping_note_wake: {
|
|
30825
|
+
Args: {
|
|
30826
|
+
_slip_job_id: string;
|
|
30827
|
+
};
|
|
30828
|
+
Returns: number;
|
|
30829
|
+
};
|
|
30811
30830
|
logistics_shipping_notes_wake_all: {
|
|
30812
30831
|
Args: never;
|
|
30813
30832
|
Returns: Json;
|
|
@@ -30842,6 +30861,7 @@ export type Database = {
|
|
|
30842
30861
|
slip_job_id: string;
|
|
30843
30862
|
status: string;
|
|
30844
30863
|
updated_at: string;
|
|
30864
|
+
voor_herstel: boolean;
|
|
30845
30865
|
}[];
|
|
30846
30866
|
SetofOptions: {
|
|
30847
30867
|
from: "*";
|
|
@@ -30862,6 +30882,13 @@ export type Database = {
|
|
|
30862
30882
|
};
|
|
30863
30883
|
Returns: undefined;
|
|
30864
30884
|
};
|
|
30885
|
+
logistics_slip_note_hold: {
|
|
30886
|
+
Args: {
|
|
30887
|
+
_id: string;
|
|
30888
|
+
_reason: string;
|
|
30889
|
+
};
|
|
30890
|
+
Returns: undefined;
|
|
30891
|
+
};
|
|
30865
30892
|
logistics_slip_note_keep_waiting: {
|
|
30866
30893
|
Args: {
|
|
30867
30894
|
_class?: string;
|