@flowselections/pick-schermen-kwekers 1.0.34 → 1.0.36
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/README.md +0 -1
- package/dist-lib/components/pick/PickScherm.d.ts.map +1 -1
- package/dist-lib/components/pick/PickScherm.js +6 -1
- package/dist-lib/components/pick/QueueTable.d.ts.map +1 -1
- package/dist-lib/components/pick/QueueTable.js +14 -1
- package/dist-lib/integrations/supabase/types.d.ts +44 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/__tests__/pickSentElsewhere.test.d.ts +2 -0
- package/dist-lib/lib/__tests__/pickSentElsewhere.test.d.ts.map +1 -0
- package/dist-lib/lib/__tests__/pickSentElsewhere.test.js +30 -0
- package/dist-lib/lib/pickApi.d.ts +12 -0
- package/dist-lib/lib/pickApi.d.ts.map +1 -1
- package/dist-lib/lib/pickApi.js +16 -0
- package/dist-lib/lib/pickCartResults.d.ts +6 -1
- package/dist-lib/lib/pickCartResults.d.ts.map +1 -1
- package/dist-lib/lib/pickCartResults.js +24 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,6 @@ This project was built with [Lovable](https://lovable.dev).
|
|
|
6
6
|
|
|
7
7
|
## Build with Lovable
|
|
8
8
|
|
|
9
|
-
Continue developing this project in the [Lovable editor](https://lovable.dev/projects/f7462658-1d60-42f1-8e22-dbefe36f44ef).
|
|
10
9
|
|
|
11
10
|
- **Ship faster**: describe what you want to build and Lovable handles the code.
|
|
12
11
|
- **Stay in sync**: every change made in Lovable is committed straight to this repository.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PickScherm.d.ts","sourceRoot":"","sources":["../../../src/components/pick/PickScherm.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAWL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAsD7B,UAAU,KAAK;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAwBD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,+
|
|
1
|
+
{"version":3,"file":"PickScherm.d.ts","sourceRoot":"","sources":["../../../src/components/pick/PickScherm.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAWL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAsD7B,UAAU,KAAK;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAwBD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,+BAi9DpD"}
|
|
@@ -1204,7 +1204,12 @@ export function PickScherm({ station, onBack }) {
|
|
|
1204
1204
|
setCartPlan(null);
|
|
1205
1205
|
setActiveCartId(null);
|
|
1206
1206
|
refresh();
|
|
1207
|
-
}, children: "Wachtrij verversen" })] })), lastCartResults.
|
|
1207
|
+
}, children: "Wachtrij verversen" })] })), lastCartResults.some((r) => r.sentElsewhere) && lastPrinted && (_jsx("div", { className: "rounded-md border border-primary/40 bg-primary/5 p-3 text-sm", "aria-label": "Pakbon al verstuurd", children: _jsx("ul", { className: "space-y-2", children: lastCartResults.filter((r) => r.sentElsewhere).map((r) => (_jsxs("li", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsx("span", { className: "text-foreground", children: cartResultLine(r) }), _jsx(Button, { size: "sm", variant: "outline", disabled: busyId !== null, onClick: () => {
|
|
1208
|
+
const plannedCart = (Array.isArray(cartPlan?.carts) ? cartPlan.carts : []).find((c) => c.cartId === r.cartId);
|
|
1209
|
+
const cart = plannedCart ?? { cartId: r.cartId, cartLabel: r.cartLabel ?? r.cartId };
|
|
1210
|
+
setLastCartResults((prev) => prev.filter((x) => x.cartId !== r.cartId));
|
|
1211
|
+
void reprintCart(lastPrinted, cart);
|
|
1212
|
+
}, children: "Opnieuw printen" })] }, r.cartId))) }) })), lastCartResults.length > 1 && (_jsxs("div", { className: "rounded-md border p-3 text-sm", "aria-label": "Resultaat per kar", children: [_jsx("p", { className: "mb-1 font-semibold text-foreground", children: "Resultaat per kar" }), _jsx("ul", { className: "space-y-0.5 text-muted-foreground", children: lastCartResults.map((r) => (_jsx("li", { className: r.outcome === "created" ? "text-foreground" : r.outcome === "error" ? "text-destructive" : "", children: cartResultLine(r) }, r.cartId))) })] })), _jsx(ShippingNoteScan, { stationId: station.id }), !pending && emptyNotice && (_jsx("p", { className: "text-sm text-muted-foreground", children: emptyNotice })), pending && (_jsxs(Card, { className: "border-2 border-primary", children: [_jsxs(CardContent, { className: "flex flex-col gap-4 p-4 sm:flex-row sm:flex-wrap sm:items-center sm:justify-between sm:p-5", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "text-sm font-medium text-muted-foreground", children: t("confirmPrintTitle") }), _jsx("p", { className: "truncate text-xl font-bold text-foreground sm:text-2xl", children: pending.document_number ?? t("document") }), _jsx("p", { className: "truncate text-sm text-muted-foreground", children: [pending.order_number, pending.customer_name].filter(Boolean).join(" · ") })] }), _jsxs("div", { className: "flex flex-col gap-2 sm:flex-row", children: [_jsx(Button, { variant: "outline", size: "lg", className: "h-12 w-full sm:w-auto", onClick: cancelPending, disabled: (busyId !== null || actionBusy), children: t("cancel") }), _jsxs(Button, { size: "lg", className: "h-14 w-full px-8 text-lg sm:w-auto", onClick: confirmPending, disabled: (busyId !== null || actionBusy) || fetchingData, variant: readiness.ready ? "default" : "secondary", children: [busyId === "confirm" || fetchingData ? (_jsx(Loader2, { className: "mr-2 h-5 w-5 animate-spin" })) : readiness.ready ? (_jsx(Printer, { className: "mr-2 h-5 w-5" })) : (_jsx(RefreshCw, { className: "mr-2 h-5 w-5" })), readiness.ready ? t("print") : "Pakbon ophalen"] })] })] }), !readiness.ready && (_jsx(CardContent, { className: "border-t p-4 sm:p-5", children: _jsxs("div", { className: "flex items-start gap-2 rounded-md border bg-muted/30 p-3 text-sm text-muted-foreground", children: [_jsx(AlertTriangle, { className: "mt-0.5 h-4 w-4 shrink-0" }), _jsx("span", { children: fetchingData
|
|
1208
1213
|
? "De pakbon wordt bij de bron opgevraagd. Zodra alles compleet is, verschijnt de printknop weer."
|
|
1209
1214
|
: planReason
|
|
1210
1215
|
? `${planReason} Klik op "Pakbon ophalen" om hem bij de bron op te vragen.`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueTable.d.ts","sourceRoot":"","sources":["../../../src/components/pick/QueueTable.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIvF,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"QueueTable.d.ts","sourceRoot":"","sources":["../../../src/components/pick/QueueTable.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIvF,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAe5E,UAAU,KAAK;IACb,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAChH,4DAA4D;IAC5D,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,CAAC,EAAE,cAAc,CAAC;CACpB;AAqBD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,MAAM,EACN,aAAa,EACb,UAAU,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACV,eAAe,EACf,aAAa,EACb,SAAS,EAGT,QAAQ,EACR,CAAC,EAAE,UAAU,GACd,EAAE,KAAK,+BA6cP"}
|
|
@@ -4,6 +4,19 @@ import { AlertTriangle, Check, Eye, Loader2, Lock, Printer, RefreshCw, RotateCcw
|
|
|
4
4
|
import { bufferOrdersOf, cartColumnInfo, comparePickQueue, dedupeByUnit, displayCartCount, displayPageCount, sinceLabel, unitTitleOf } from "../../lib/pickTypes";
|
|
5
5
|
import { duplicateNameTag } from "../../lib/pickRowState";
|
|
6
6
|
import { getPickTranslator } from "../../lib/pickI18n";
|
|
7
|
+
import { parseSentElsewhere } from "../../lib/pickApi";
|
|
8
|
+
import { sentElsewhereMessage } from "../../lib/pickCartResults";
|
|
9
|
+
/** Meldingen voor karren waarvan de pakbon al elders is verstuurd (match op kar-id). */
|
|
10
|
+
function sentElsewhereLines(item) {
|
|
11
|
+
const p = item.payload && typeof item.payload === "object" ? item.payload : {};
|
|
12
|
+
const map = p["sentElsewhere"];
|
|
13
|
+
if (!map || typeof map !== "object" || Array.isArray(map))
|
|
14
|
+
return [];
|
|
15
|
+
return Object.values(map).flatMap((v) => {
|
|
16
|
+
const e = parseSentElsewhere(v);
|
|
17
|
+
return e ? [sentElsewhereMessage(e)] : [];
|
|
18
|
+
});
|
|
19
|
+
}
|
|
7
20
|
/**
|
|
8
21
|
* Uit hoeveel pakbonnen een order bestaat, is pas bekend nadat er geprint is.
|
|
9
22
|
* Vóór het printen blijft de kolom leeg in plaats van een aantal te beloven
|
|
@@ -57,7 +70,7 @@ export function QueueTable({ items, lockedIds, statuses, documentTypes, busyId,
|
|
|
57
70
|
event.preventDefault();
|
|
58
71
|
onSelectPrinted?.(item);
|
|
59
72
|
}
|
|
60
|
-
}, children: [_jsxs(TableCell, { className: "font-medium", children: [_jsxs("div", { className: "flex items-center gap-2", children: [unitTitleOf(item), dupTag && _jsxs("span", { className: "text-xs font-normal text-muted-foreground", children: ["(", dupTag, ")"] }), replaced && (_jsx("span", { className: "rounded bg-destructive/10 px-1.5 py-0.5 text-xs font-semibold text-destructive", title: readiness?.reason ?? undefined, children: "Vervangen" })), replaced && readiness?.reason && (_jsx("span", { className: "text-xs font-normal text-destructive", children: readiness.reason })), waiting && (_jsx("span", { className: "rounded bg-muted px-1.5 py-0.5 text-xs font-semibold text-muted-foreground", children: "Wacht op printer" })), warnings.length > 0 && (_jsx(AlertTriangle, { className: "h-4 w-4 text-destructive", "aria-label": t("warning") }))] }), _jsx("div", { className: "text-xs text-muted-foreground", children: doc?.name ?? "-" })] }), _jsx(TableCell, { children: bufferOrdersOf(item).length > 0 ? "" : item.order_number }), _jsx(TableCell, { children: item.customer_name }), _jsx(TableCell, { className: "text-right", children: item.line_count }), _jsx(TableCell, { className: "text-right", children: (() => {
|
|
73
|
+
}, children: [_jsxs(TableCell, { className: "font-medium", children: [_jsxs("div", { className: "flex items-center gap-2", children: [unitTitleOf(item), dupTag && _jsxs("span", { className: "text-xs font-normal text-muted-foreground", children: ["(", dupTag, ")"] }), replaced && (_jsx("span", { className: "rounded bg-destructive/10 px-1.5 py-0.5 text-xs font-semibold text-destructive", title: readiness?.reason ?? undefined, children: "Vervangen" })), replaced && readiness?.reason && (_jsx("span", { className: "text-xs font-normal text-destructive", children: readiness.reason })), waiting && (_jsx("span", { className: "rounded bg-muted px-1.5 py-0.5 text-xs font-semibold text-muted-foreground", children: "Wacht op printer" })), sentElsewhereLines(item).map((line) => (_jsx("span", { className: "text-xs font-normal text-muted-foreground", children: line }, line))), warnings.length > 0 && (_jsx(AlertTriangle, { className: "h-4 w-4 text-destructive", "aria-label": t("warning") }))] }), _jsx("div", { className: "text-xs text-muted-foreground", children: doc?.name ?? "-" })] }), _jsx(TableCell, { children: bufferOrdersOf(item).length > 0 ? "" : item.order_number }), _jsx(TableCell, { children: item.customer_name }), _jsx(TableCell, { className: "text-right", children: item.line_count }), _jsx(TableCell, { className: "text-right", children: (() => {
|
|
61
74
|
const info = cartColumnInfo(item);
|
|
62
75
|
return (_jsxs("div", { className: "flex flex-col items-end", children: [_jsx("span", { children: info.carts }), info.cartLabel && (_jsx("span", { className: "text-xs text-muted-foreground", children: info.cartLabel })), info.reason && (_jsx("span", { className: "text-xs text-muted-foreground", children: info.reason }))] }));
|
|
63
76
|
})() }), _jsx(TableCell, { className: "text-right", children: printedSlipCount(item) ?? "—" }), _jsx(TableCell, { className: "text-right", children: displayPageCount(item.line_count) }), _jsxs(TableCell, { children: [_jsx(Badge, { variant: printed ? "secondary" : "default", children: printed ? t("statusPrinted") : t("statusToPrint") }), printed && (_jsx("div", { className: "mt-1 text-xs text-muted-foreground", children: new Date(item.printed_at).toLocaleTimeString([], {
|
|
@@ -26394,6 +26394,7 @@ export type Database = {
|
|
|
26394
26394
|
created_by: string;
|
|
26395
26395
|
customer_id: string | null;
|
|
26396
26396
|
id: string;
|
|
26397
|
+
offerte_id: string | null;
|
|
26397
26398
|
payload: Json;
|
|
26398
26399
|
reden: string | null;
|
|
26399
26400
|
status: string;
|
|
@@ -26409,6 +26410,7 @@ export type Database = {
|
|
|
26409
26410
|
created_by?: string;
|
|
26410
26411
|
customer_id?: string | null;
|
|
26411
26412
|
id?: string;
|
|
26413
|
+
offerte_id?: string | null;
|
|
26412
26414
|
payload?: Json;
|
|
26413
26415
|
reden?: string | null;
|
|
26414
26416
|
status?: string;
|
|
@@ -26424,6 +26426,7 @@ export type Database = {
|
|
|
26424
26426
|
created_by?: string;
|
|
26425
26427
|
customer_id?: string | null;
|
|
26426
26428
|
id?: string;
|
|
26429
|
+
offerte_id?: string | null;
|
|
26427
26430
|
payload?: Json;
|
|
26428
26431
|
reden?: string | null;
|
|
26429
26432
|
status?: string;
|
|
@@ -29598,6 +29601,12 @@ export type Database = {
|
|
|
29598
29601
|
};
|
|
29599
29602
|
Returns: Json;
|
|
29600
29603
|
};
|
|
29604
|
+
invoice_resync_concept_from_work_order: {
|
|
29605
|
+
Args: {
|
|
29606
|
+
_werkbon_id: string;
|
|
29607
|
+
};
|
|
29608
|
+
Returns: undefined;
|
|
29609
|
+
};
|
|
29601
29610
|
invoice_save_branding_settings: {
|
|
29602
29611
|
Args: {
|
|
29603
29612
|
_payload: Json;
|
|
@@ -29804,6 +29813,12 @@ export type Database = {
|
|
|
29804
29813
|
};
|
|
29805
29814
|
Returns: string;
|
|
29806
29815
|
};
|
|
29816
|
+
logistics_afhandeling_fulfillment_order: {
|
|
29817
|
+
Args: {
|
|
29818
|
+
_order_id: string;
|
|
29819
|
+
};
|
|
29820
|
+
Returns: Json;
|
|
29821
|
+
};
|
|
29807
29822
|
logistics_allocation_check_changes: {
|
|
29808
29823
|
Args: {
|
|
29809
29824
|
p_order_item_ids?: string[];
|
|
@@ -31928,6 +31943,14 @@ export type Database = {
|
|
|
31928
31943
|
};
|
|
31929
31944
|
Returns: Json;
|
|
31930
31945
|
};
|
|
31946
|
+
logistics_shipping_note_wait_reasons: {
|
|
31947
|
+
Args: never;
|
|
31948
|
+
Returns: {
|
|
31949
|
+
order_number: string;
|
|
31950
|
+
reden: string;
|
|
31951
|
+
wacht_sinds: string;
|
|
31952
|
+
}[];
|
|
31953
|
+
};
|
|
31931
31954
|
logistics_shipping_note_wake: {
|
|
31932
31955
|
Args: {
|
|
31933
31956
|
_slip_job_id: string;
|
|
@@ -32003,6 +32026,13 @@ export type Database = {
|
|
|
32003
32026
|
};
|
|
32004
32027
|
Returns: undefined;
|
|
32005
32028
|
};
|
|
32029
|
+
logistics_slip_note_hold_kenmerk: {
|
|
32030
|
+
Args: {
|
|
32031
|
+
_id: string;
|
|
32032
|
+
_reason: string;
|
|
32033
|
+
};
|
|
32034
|
+
Returns: undefined;
|
|
32035
|
+
};
|
|
32006
32036
|
logistics_slip_note_keep_waiting: {
|
|
32007
32037
|
Args: {
|
|
32008
32038
|
_class?: string;
|
|
@@ -32773,6 +32803,13 @@ export type Database = {
|
|
|
32773
32803
|
};
|
|
32774
32804
|
Returns: string;
|
|
32775
32805
|
};
|
|
32806
|
+
pick_find_sent_elsewhere: {
|
|
32807
|
+
Args: {
|
|
32808
|
+
_cart_id: string;
|
|
32809
|
+
_queue_item_id: string;
|
|
32810
|
+
};
|
|
32811
|
+
Returns: Json;
|
|
32812
|
+
};
|
|
32776
32813
|
pick_is_reference_admin: {
|
|
32777
32814
|
Args: never;
|
|
32778
32815
|
Returns: boolean;
|
|
@@ -35362,6 +35399,13 @@ export type Database = {
|
|
|
35362
35399
|
};
|
|
35363
35400
|
Returns: Json;
|
|
35364
35401
|
};
|
|
35402
|
+
wo_send_proposal_to_quote: {
|
|
35403
|
+
Args: {
|
|
35404
|
+
_id: string;
|
|
35405
|
+
_overrides?: Json;
|
|
35406
|
+
};
|
|
35407
|
+
Returns: Json;
|
|
35408
|
+
};
|
|
35365
35409
|
wo_send_to_quote: {
|
|
35366
35410
|
Args: {
|
|
35367
35411
|
_werkbon_id: string;
|