@flowselections/layout-maker 1.57.1 → 1.58.1
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/LayoutVerwijzingenKaart.js +3 -2
- package/dist-lib/components/WerkplekOmzettingStap.d.ts.map +1 -1
- package/dist-lib/components/WerkplekOmzettingStap.js +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +274 -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/documentTypes.d.ts +4 -1
- package/dist-lib/lib/documentTypes.d.ts.map +1 -1
- package/dist-lib/lib/documentTypes.js +4 -0
- package/dist-lib/lib/layoutVerwijzingen.d.ts +20 -1
- package/dist-lib/lib/layoutVerwijzingen.d.ts.map +1 -1
- package/dist-lib/lib/layoutVerwijzingen.js +21 -3
- package/dist-lib/lib/pakbonHtml.d.ts.map +1 -1
- package/dist-lib/lib/pakbonHtml.js +2 -0
- package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/printQueue.server.js +13 -2
- package/dist-lib/lib/printService.server.d.ts +3 -1
- package/dist-lib/lib/printService.server.d.ts.map +1 -1
- package/dist-lib/lib/printService.server.js +3 -1
- package/dist-lib/lib/vervoerder.d.ts +13 -0
- package/dist-lib/lib/vervoerder.d.ts.map +1 -0
- package/dist-lib/lib/vervoerder.js +58 -0
- package/dist-lib/lib/werkplekOmzetting.d.ts +2 -0
- package/dist-lib/lib/werkplekOmzetting.d.ts.map +1 -1
- package/dist-lib/lib/werkplekOmzetting.js +2 -1
- package/dist-lib/lib/werkplekken.js +2 -2
- package/package.json +2 -2
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
export type DocumentType = "pakbon" | "sticker" | "productiebon" | "factuur" | "offerte" | "orderbevestiging" | "etiket" | "verzendlabel" | "productlabel" | "barcode_label" | "magazijnlijst" | "controlelijst" | "transportdocument" | "veilingbon" | "afleverbrief" | "veilingbrief" | "vrij";
|
|
1
|
+
export type DocumentType = "pakbon" | "sticker" | "traysticker" | "productiebon" | "factuur" | "offerte" | "orderbevestiging" | "etiket" | "verzendlabel" | "productlabel" | "barcode_label" | "magazijnlijst" | "controlelijst" | "transportdocument" | "veilingbon" | "afleverbrief" | "veilingbrief" | "vrij";
|
|
2
2
|
export declare const DOCUMENT_TYPES: {
|
|
3
3
|
value: DocumentType;
|
|
4
4
|
label: string;
|
|
5
5
|
}[];
|
|
6
|
+
/** Soorten die van nature een etiket zijn: altijd naar de labelprinter. */
|
|
7
|
+
export declare const ETIKET_SOORTEN: readonly string[];
|
|
8
|
+
export declare const isEtiketSoort: (t: string) => boolean;
|
|
6
9
|
export declare function documentTypeLabel(value: string): string;
|
|
7
10
|
export interface PapierFormaatDef {
|
|
8
11
|
code: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentTypes.d.ts","sourceRoot":"","sources":["../../src/lib/documentTypes.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,SAAS,GACT,cAAc,GACd,SAAS,GACT,SAAS,GACT,kBAAkB,GAClB,QAAQ,GACR,cAAc,GACd,cAAc,GACd,eAAe,GACf,eAAe,GACf,eAAe,GACf,mBAAmB,GACnB,YAAY,GACZ,cAAc,GACd,cAAc,GACd,MAAM,CAAC;AAEX,eAAO,MAAM,cAAc,EAAE;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"documentTypes.d.ts","sourceRoot":"","sources":["../../src/lib/documentTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
export const DOCUMENT_TYPES = [
|
|
5
5
|
{ value: "pakbon", label: "Pakbon" },
|
|
6
6
|
{ value: "sticker", label: "Sticker" },
|
|
7
|
+
{ value: "traysticker", label: "Traysticker" },
|
|
7
8
|
{ value: "productiebon", label: "Productiebon" },
|
|
8
9
|
{ value: "factuur", label: "Factuur" },
|
|
9
10
|
{ value: "offerte", label: "Offerte" },
|
|
@@ -20,6 +21,9 @@ export const DOCUMENT_TYPES = [
|
|
|
20
21
|
{ value: "veilingbrief", label: "Veilingbrief" },
|
|
21
22
|
{ value: "vrij", label: "Vrij document" },
|
|
22
23
|
];
|
|
24
|
+
/** Soorten die van nature een etiket zijn: altijd naar de labelprinter. */
|
|
25
|
+
export const ETIKET_SOORTEN = ["sticker", "traysticker", "etiket", "verzendlabel", "productlabel", "barcode_label"];
|
|
26
|
+
export const isEtiketSoort = (t) => ETIKET_SOORTEN.includes(String(t));
|
|
23
27
|
export function documentTypeLabel(value) {
|
|
24
28
|
return DOCUMENT_TYPES.find((d) => d.value === value)?.label ?? value;
|
|
25
29
|
}
|
|
@@ -26,7 +26,26 @@ export interface VerwijzingPlek {
|
|
|
26
26
|
link: string | null;
|
|
27
27
|
bekend: boolean;
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
/** Minimale vorm van wat de Shell per module kent (uit flowselections.pages). */
|
|
30
|
+
export interface ShellModulePaginas {
|
|
31
|
+
id: string;
|
|
32
|
+
registryKey?: string;
|
|
33
|
+
nav?: {
|
|
34
|
+
href?: string;
|
|
35
|
+
label?: string;
|
|
36
|
+
children?: {
|
|
37
|
+
href?: string;
|
|
38
|
+
label?: string;
|
|
39
|
+
}[];
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Link naar het scherm volgens de pagina's die de module opgeeft (route en
|
|
44
|
+
* titel). Staat het scherm niet in die lijst: de startpagina van de module.
|
|
45
|
+
* Niets verzonnen: zonder module in de Shell blijft het de startpagina-route.
|
|
46
|
+
*/
|
|
47
|
+
export declare function linkUitPaginas(moduleId: string, scherm: string | undefined, modules: ShellModulePaginas[] | null | undefined): string;
|
|
48
|
+
export declare function plekVanVerwijzing(v: Pick<LayoutVerwijzing, "tabel" | "kolom" | "pad">, modules?: ShellModulePaginas[] | null): VerwijzingPlek;
|
|
30
49
|
export interface SoortOverzicht {
|
|
31
50
|
documenttype: string;
|
|
32
51
|
layouts: (LayoutGebruik & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layoutVerwijzingen.d.ts","sourceRoot":"","sources":["../../src/lib/layoutVerwijzingen.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2EAA2E;AAC3E,eAAO,MAAM,cAAc,qEAAsE,CAAC;AAClG,eAAO,MAAM,iBAAiB,GAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,YACX,CAAC;AAyB1D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,
|
|
1
|
+
{"version":3,"file":"layoutVerwijzingen.d.ts","sourceRoot":"","sources":["../../src/lib/layoutVerwijzingen.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2EAA2E;AAC3E,eAAO,MAAM,cAAc,qEAAsE,CAAC;AAClG,eAAO,MAAM,iBAAiB,GAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,YACX,CAAC;AAyB1D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;CACzF;AAID;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CASrI;AAED,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC,EACpD,OAAO,CAAC,EAAE,kBAAkB,EAAE,GAAG,IAAI,GACpC,cAAc,CAUhB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,CAAC,aAAa,GAAG;QAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IACpF,2FAA2F;IAC3F,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,GAAG,cAAc,EAAE,CAoB3F;AAED,wBAAgB,qBAAqB;;;;;EAiBpC;AAED,iFAAiF;AACjF,wBAAsB,eAAe,CAAC,CAAC,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM/F;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAO7C,CAAC"}
|
|
@@ -30,14 +30,31 @@ const SCHERMEN = {
|
|
|
30
30
|
"print_rules:layout_id": "Printen › Printregels",
|
|
31
31
|
"document_bronregels:layout_id": "Documenten › Bronregels",
|
|
32
32
|
};
|
|
33
|
-
|
|
33
|
+
const eersteSegment = (href) => href.replace(/^\/+/, "").split("/")[0]?.replace(/_+$/, "") ?? "";
|
|
34
|
+
/**
|
|
35
|
+
* Link naar het scherm volgens de pagina's die de module opgeeft (route en
|
|
36
|
+
* titel). Staat het scherm niet in die lijst: de startpagina van de module.
|
|
37
|
+
* Niets verzonnen: zonder module in de Shell blijft het de startpagina-route.
|
|
38
|
+
*/
|
|
39
|
+
export function linkUitPaginas(moduleId, scherm, modules) {
|
|
40
|
+
const lijst = Array.isArray(modules) ? modules : [];
|
|
41
|
+
const mod = lijst.find((m) => m.registryKey === moduleId || m.id === moduleId || eersteSegment(String(m.nav?.href ?? "")) === moduleId);
|
|
42
|
+
const start = mod?.nav?.href ? String(mod.nav.href) : `/${moduleId}`;
|
|
43
|
+
if (!mod || !scherm)
|
|
44
|
+
return start;
|
|
45
|
+
const titel = scherm.split("›")[0]?.trim().toLowerCase();
|
|
46
|
+
const kinderen = Array.isArray(mod.nav?.children) ? mod.nav.children : [];
|
|
47
|
+
const hit = kinderen.find((c) => String(c.label ?? "").trim().toLowerCase() === titel && c.href);
|
|
48
|
+
return hit?.href ? String(hit.href) : start;
|
|
49
|
+
}
|
|
50
|
+
export function plekVanVerwijzing(v, modules) {
|
|
34
51
|
const info = MODULES.find((m) => v.tabel.startsWith(m.voorvoegsel))?.info ?? { module: "Andere module", moduleId: null };
|
|
35
52
|
const sleutel = `${v.tabel}:${v.pad.length ? v.pad.join(".") : v.kolom}`;
|
|
36
53
|
const scherm = SCHERMEN[sleutel];
|
|
37
54
|
return {
|
|
38
55
|
module: info.module,
|
|
39
56
|
scherm: scherm ?? `${v.tabel} › ${[v.kolom, ...v.pad].join(".")}`,
|
|
40
|
-
link: info.moduleId ?
|
|
57
|
+
link: info.moduleId ? linkUitPaginas(info.moduleId, scherm, modules) : null,
|
|
41
58
|
bekend: Boolean(scherm),
|
|
42
59
|
};
|
|
43
60
|
}
|
|
@@ -94,7 +111,8 @@ export async function zetVerwijzingOm(v, nieuwLayoutId) {
|
|
|
94
111
|
}
|
|
95
112
|
export const BRON_LABEL = {
|
|
96
113
|
eigen_layout: "eigen layout",
|
|
97
|
-
extern_pdf: "
|
|
114
|
+
extern_pdf: "aangeleverd document",
|
|
115
|
+
floriday_1op1: "Floriday-document (1-op-1)",
|
|
98
116
|
render_html: "aangeleverde opmaak",
|
|
99
117
|
klantlayout: "klantlayout",
|
|
100
118
|
onbekend: "onbekend",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pakbonHtml.d.ts","sourceRoot":"","sources":["../../src/lib/pakbonHtml.ts"],"names":[],"mappings":"AAUA,OAAO,EAyBL,KAAK,SAAS,EAEd,KAAK,YAAY,EAGlB,MAAM,iBAAiB,CAAC;AAMzB,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QACL,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAWD,wBAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAKtC;AAyBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAqF3D;AA4ED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAGlD;
|
|
1
|
+
{"version":3,"file":"pakbonHtml.d.ts","sourceRoot":"","sources":["../../src/lib/pakbonHtml.ts"],"names":[],"mappings":"AAUA,OAAO,EAyBL,KAAK,SAAS,EAEd,KAAK,YAAY,EAGlB,MAAM,iBAAiB,CAAC;AAMzB,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QACL,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAWD,wBAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAKtC;AAyBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAqF3D;AA4ED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAGlD;AAwoBD,oEAAoE;AACpE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,MAAM,CAyDR;AAgBD,gEAAgE;AAChE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,MAAM,CAkFR;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,IAAI,WAAW,CAElD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,IAAI,CAsCN;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAUf"}
|
|
@@ -591,6 +591,8 @@ function sectieHtmlRuw(s, order, zoek, opties) {
|
|
|
591
591
|
return (titelHtml(s) +
|
|
592
592
|
`<div class="grid2">${[
|
|
593
593
|
opt(s, "toonTransporteur", true) ? rij("Transporteur", order.transport.transporteur) : "",
|
|
594
|
+
opt(s, "toonOphaalmoment", true) ? rij("Ophaalmoment", order.transport["ophaalmoment"] ?? "") : "",
|
|
595
|
+
opt(s, "toonOphaaladres", true) ? rij("Ophaaladres", order.transport["ophaaladres"] ?? "") : "",
|
|
594
596
|
opt(s, "toonRoute", true) ? rij("Route", order.transport.route) : "",
|
|
595
597
|
opt(s, "toonChauffeur", false) ? rij("Chauffeur", order.transport.chauffeur) : "",
|
|
596
598
|
opt(s, "toonTrack", false) ? rij("Track & trace", order.transport.track) : "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// Pakt wachtende opdrachten op, maakt er een PDF van en stuurt die stil naar
|
|
4
4
|
// de juiste printer. Draait alleen op de server (cron / interne aanroep).
|
|
5
5
|
// ============================================================================
|
|
6
|
+
import { metVervoerder } from "./vervoerder.js";
|
|
6
7
|
import { maakPakbonOrder, renderPakbonDocument, voorbeeldPakbonOrder, } from "./pakbonHtml.js";
|
|
7
8
|
import { bouwPakbonScanInhoud, bewaarPakbonScanInhoud } from "./pakbonScan.js";
|
|
8
9
|
import { bouwPakbonBarcodeVerzoek, geleverdeBarcodeVoorJob, vraagPakbonBarcodeAan, } from "./pakbonBarcodeVerzoek.js";
|
|
@@ -170,10 +171,13 @@ function isEngineOpdracht(job) {
|
|
|
170
171
|
const bron = String(p.bron_module ?? p.owner_module ?? p.source_module ?? "").toLowerCase();
|
|
171
172
|
return bron.includes("logistic") || bron.includes("engine");
|
|
172
173
|
}
|
|
174
|
+
/** Stickers: altijd kant-en-klare PDF op een labelprinter. */
|
|
175
|
+
const ETIKET_PDF_SOORTEN = new Set(["sticker", "traysticker"]);
|
|
173
176
|
/** Testprint: alleen de eigen testvlag telt (geen kar, geen barcode). */
|
|
174
177
|
export function isTestprintJob(job) {
|
|
175
178
|
const p = (job.payload ?? {});
|
|
176
|
-
|
|
179
|
+
// Alleen een echte JSON-boolean true telt; "true", "ja", 1 of false niet.
|
|
180
|
+
return p["is_testprint"] === true;
|
|
177
181
|
}
|
|
178
182
|
/** Verwijdert elke barcode (order en karren), zodat het barcode-element leeg blijft. */
|
|
179
183
|
export function zonderBarcodes(order) {
|
|
@@ -900,6 +904,8 @@ export async function bouwHtml(db, job, keuze, uitkomst) {
|
|
|
900
904
|
});
|
|
901
905
|
if (isTestpakbon)
|
|
902
906
|
order = zonderBarcodes(order);
|
|
907
|
+
// Vervoerder/ophaalmoment alleen uit de printopdracht; ontbrekend = weglaten.
|
|
908
|
+
order = metVervoerder(order, p);
|
|
903
909
|
if (isEngineOpdracht(job) && !isTestpakbon) {
|
|
904
910
|
let barcode = String(engineBarcode ?? "").trim();
|
|
905
911
|
if (!barcode) {
|
|
@@ -1338,6 +1344,10 @@ async function verwerkJob(db, job) {
|
|
|
1338
1344
|
}
|
|
1339
1345
|
// Labelprinter: het geladen etiket is leidend (punt "geladen etiket").
|
|
1340
1346
|
const label = await labelControleVoorbereiden(db, printer);
|
|
1347
|
+
if (!label && ETIKET_PDF_SOORTEN.has(String(job.documenttype ?? ""))) {
|
|
1348
|
+
await mislukt(db, job, `GEEN_GELADEN_ETIKET: ${documentTypeLabelVoor(String(job.documenttype))} gaat alleen naar een labelprinter met een ingesteld geladen etiket; printer ${String(printer.naam ?? printer.id)} heeft er geen.`, true);
|
|
1349
|
+
return "mislukt";
|
|
1350
|
+
}
|
|
1341
1351
|
const isTest = (job.payload ?? {})["is_testprint"] === true;
|
|
1342
1352
|
if (label && isTest && label.etiket) {
|
|
1343
1353
|
// Een testprint gebruikt het formaat dat echt in de printer zit.
|
|
@@ -1436,7 +1446,8 @@ async function verwerkJob(db, job) {
|
|
|
1436
1446
|
printer_id: printer.id,
|
|
1437
1447
|
// layout_id blijft de aangeleverde invoer en wordt bewust niet
|
|
1438
1448
|
// overschreven met de uitkomst.
|
|
1439
|
-
|
|
1449
|
+
// Bij Floriday 1-op-1 wordt de Floriday-layout vastgelegd (alleen nieuwe opdrachten).
|
|
1450
|
+
gebruikte_layout_id: uitkomst.bron === "extern_pdf" ? null : (layout?.id ?? null),
|
|
1440
1451
|
gebruikte_bron: uitkomst.bron,
|
|
1441
1452
|
extern_job_id: externJobId,
|
|
1442
1453
|
printnode_status: "new",
|
|
@@ -42,7 +42,9 @@ export declare function sourceVoorJob(jobId: string | null | undefined): string;
|
|
|
42
42
|
* instellingenscherm. Onbekende soorten: geen expireAfter (PrintNode-standaard).
|
|
43
43
|
*/
|
|
44
44
|
export declare const VERVALTIJD_PER_SOORT: Record<string, number>;
|
|
45
|
-
|
|
45
|
+
/** Elke opdracht krijgt een vervaltijd, zodat hij nooit eindeloos blijft hangen. */
|
|
46
|
+
export declare const STANDAARD_VERVALTIJD_S = 3600;
|
|
47
|
+
export declare function vervaltijdVoor(documenttype: string | null | undefined): number;
|
|
46
48
|
/** PrintNode-aanroep met dezelfde sleutel en child-account-koppen als bij printen. */
|
|
47
49
|
export declare function printnodeVraag<T>(pad: string, init?: RequestInit): Promise<T>;
|
|
48
50
|
/** Alle printers die via de printclients in het netwerk beschikbaar zijn. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printService.server.d.ts","sourceRoot":"","sources":["../../src/lib/printService.server.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IAC1C,oDAAoD;IACpD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAWD,iFAAiF;AACjF,qBAAa,eAAgB,SAAQ,KAAK;;CAEzC;AAED,kFAAkF;AAClF,eAAO,MAAM,aAAa,gCAA2B,CAAC;AACtD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAEtE;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOvD,CAAC;AACF,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"printService.server.d.ts","sourceRoot":"","sources":["../../src/lib/printService.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,8 +40,10 @@ export const VERVALTIJD_PER_SOORT = {
|
|
|
40
40
|
afleverbrief: 3600,
|
|
41
41
|
factuur: 86400,
|
|
42
42
|
};
|
|
43
|
+
/** Elke opdracht krijgt een vervaltijd, zodat hij nooit eindeloos blijft hangen. */
|
|
44
|
+
export const STANDAARD_VERVALTIJD_S = 3600;
|
|
43
45
|
export function vervaltijdVoor(documenttype) {
|
|
44
|
-
return VERVALTIJD_PER_SOORT[String(documenttype ?? "").toLowerCase()] ??
|
|
46
|
+
return VERVALTIJD_PER_SOORT[String(documenttype ?? "").toLowerCase()] ?? STANDAARD_VERVALTIJD_S;
|
|
45
47
|
}
|
|
46
48
|
/** PrintNode-aanroep met dezelfde sleutel en child-account-koppen als bij printen. */
|
|
47
49
|
export function printnodeVraag(pad, init) {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface VervoerderInfo {
|
|
2
|
+
transporteur: string;
|
|
3
|
+
ophaalmoment: string;
|
|
4
|
+
ophaaladres: string;
|
|
5
|
+
}
|
|
6
|
+
/** ISO-tijd (UTC) → leesbaar in Europe/Amsterdam. Ongeldig → leeg. */
|
|
7
|
+
export declare function ophaalmomentTekst(iso: unknown): string;
|
|
8
|
+
export declare function vervoerderUitPayload(payload: unknown): VervoerderInfo;
|
|
9
|
+
/** Zet bekende waarden op order.transport; ontbrekende blijven leeg (regel valt weg). */
|
|
10
|
+
export declare function metVervoerder<T extends {
|
|
11
|
+
transport: Record<string, unknown>;
|
|
12
|
+
}>(order: T, payload: unknown): T;
|
|
13
|
+
//# sourceMappingURL=vervoerder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vervoerder.d.ts","sourceRoot":"","sources":["../../src/lib/vervoerder.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAID,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAUtD;AAeD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,CAWrE;AAED,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,CAW7G"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// src/lib/vervoerder.ts — vervoerder en ophaalmoment uit de printopdracht.
|
|
3
|
+
// Alleen uit payload; nooit aanvullen. Een vervoerdersadres is geen ophaaladres.
|
|
4
|
+
// ============================================================================
|
|
5
|
+
const tekst = (v) => (typeof v === "string" ? v.trim() : "");
|
|
6
|
+
/** ISO-tijd (UTC) → leesbaar in Europe/Amsterdam. Ongeldig → leeg. */
|
|
7
|
+
export function ophaalmomentTekst(iso) {
|
|
8
|
+
const s = tekst(iso);
|
|
9
|
+
if (!s)
|
|
10
|
+
return "";
|
|
11
|
+
const d = new Date(s);
|
|
12
|
+
if (Number.isNaN(d.getTime()))
|
|
13
|
+
return "";
|
|
14
|
+
return new Intl.DateTimeFormat("nl-NL", {
|
|
15
|
+
timeZone: "Europe/Amsterdam",
|
|
16
|
+
weekday: "short", day: "2-digit", month: "2-digit", year: "numeric",
|
|
17
|
+
hour: "2-digit", minute: "2-digit",
|
|
18
|
+
}).format(d);
|
|
19
|
+
}
|
|
20
|
+
function adresTekst(v) {
|
|
21
|
+
if (typeof v === "string")
|
|
22
|
+
return v.trim();
|
|
23
|
+
if (!v || typeof v !== "object")
|
|
24
|
+
return "";
|
|
25
|
+
const a = v;
|
|
26
|
+
const delen = [
|
|
27
|
+
tekst(a["naam"]),
|
|
28
|
+
[tekst(a["straat"] ?? a["adres"]), tekst(a["huisnummer"])].filter(Boolean).join(" "),
|
|
29
|
+
[tekst(a["postcode"]), tekst(a["plaats"])].filter(Boolean).join(" "),
|
|
30
|
+
tekst(a["land"]),
|
|
31
|
+
].filter(Boolean);
|
|
32
|
+
return delen.join(", ");
|
|
33
|
+
}
|
|
34
|
+
export function vervoerderUitPayload(payload) {
|
|
35
|
+
const p = (payload && typeof payload === "object" ? payload : {});
|
|
36
|
+
const v = (p["vervoerder"] && typeof p["vervoerder"] === "object" ? p["vervoerder"] : {});
|
|
37
|
+
const naam = tekst(v["naam"]);
|
|
38
|
+
const code = tekst(v["code"]);
|
|
39
|
+
return {
|
|
40
|
+
transporteur: naam ? (code ? `${naam} (${code})` : naam) : "",
|
|
41
|
+
ophaalmoment: ophaalmomentTekst(p["ophaalmoment"]),
|
|
42
|
+
// Alleen payload.ophaaladres; vervoerder.adres wordt bewust genegeerd.
|
|
43
|
+
ophaaladres: adresTekst(p["ophaaladres"]),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/** Zet bekende waarden op order.transport; ontbrekende blijven leeg (regel valt weg). */
|
|
47
|
+
export function metVervoerder(order, payload) {
|
|
48
|
+
const v = vervoerderUitPayload(payload);
|
|
49
|
+
return {
|
|
50
|
+
...order,
|
|
51
|
+
transport: {
|
|
52
|
+
...order.transport,
|
|
53
|
+
...(v.transporteur ? { transporteur: v.transporteur } : {}),
|
|
54
|
+
ophaalmoment: v.ophaalmoment,
|
|
55
|
+
ophaaladres: v.ophaaladres,
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
@@ -5,6 +5,8 @@ export interface VoorstelSoort {
|
|
|
5
5
|
printer_id: string | null;
|
|
6
6
|
na_printer_id: string | null;
|
|
7
7
|
verschil: boolean;
|
|
8
|
+
/** Etiketsoort waarvan de layout op A4 staat (of die geen layout heeft). */
|
|
9
|
+
geen_etiketlayout?: boolean;
|
|
8
10
|
}
|
|
9
11
|
export interface WerkplekVoorstel {
|
|
10
12
|
naam: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"werkplekOmzetting.d.ts","sourceRoot":"","sources":["../../src/lib/werkplekOmzetting.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"werkplekOmzetting.d.ts","sourceRoot":"","sources":["../../src/lib/werkplekOmzetting.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAQ9D;AAED,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,CAQhE;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAIzE;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQxF"}
|
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
// pas na bevestiging maakt de database alles in één keer aan (alles of niets).
|
|
5
5
|
// ============================================================================
|
|
6
6
|
import { supabase } from "./supabaseClient.js";
|
|
7
|
+
import { isEtiketSoort } from "./documentTypes.js";
|
|
7
8
|
const db = supabase;
|
|
8
9
|
const arr = (v) => (Array.isArray(v) ? v : []);
|
|
9
10
|
export function leesVoorstel(data) {
|
|
10
11
|
return arr(data).map((w) => ({
|
|
11
12
|
...w,
|
|
12
13
|
bestaat: w.bestaat === true,
|
|
13
|
-
soorten: arr(w.soorten),
|
|
14
|
+
soorten: arr(w.soorten).map((s) => isEtiketSoort(s.documenttype) ? { ...s, klasse: "label", geen_etiketlayout: s.geen_etiketlayout ?? s.klasse !== "label" } : s),
|
|
14
15
|
}));
|
|
15
16
|
}
|
|
16
17
|
/** Na de omzetting: label-documenten naar de labelprinter, de rest naar A4. */
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// ============================================================================
|
|
6
6
|
import { useCallback, useEffect, useState } from "react";
|
|
7
7
|
import { supabase } from "./supabaseClient.js";
|
|
8
|
-
import { PAPIERFORMATEN } from "./documentTypes.js";
|
|
8
|
+
import { ETIKET_SOORTEN, PAPIERFORMATEN } from "./documentTypes.js";
|
|
9
9
|
import { leesGeladenEtiket } from "./etiketControle.js";
|
|
10
10
|
const arr = (v) => (Array.isArray(v) ? v : []);
|
|
11
11
|
// Nieuwe tabellen staan nog niet in elke gegenereerde typelijst van een Shell.
|
|
@@ -21,7 +21,7 @@ export function formaatKlasse(code) {
|
|
|
21
21
|
return ["A4", "A5", "A3", "LETTER", "LEGAL", "VRIJ"].includes(c) ? "a4" : "label";
|
|
22
22
|
}
|
|
23
23
|
/** Past de documentsoort bij het papierformaat van de layout? */
|
|
24
|
-
const LABEL_SOORTEN = new Set(
|
|
24
|
+
const LABEL_SOORTEN = new Set(ETIKET_SOORTEN);
|
|
25
25
|
export function soortPastBijFormaat(documenttype, papierformaat) {
|
|
26
26
|
const klasse = formaatKlasse(papierformaat);
|
|
27
27
|
const labelSoort = LABEL_SOORTEN.has(String(documenttype));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flowselections/layout-maker",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.58.1",
|
|
4
4
|
"flowselections": {
|
|
5
5
|
"moduleId": "layout-maker",
|
|
6
6
|
"pages": [
|
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
"@cloudflare/vite-plugin": "^1.25.5",
|
|
140
140
|
"@eslint/js": "^9.32.0",
|
|
141
141
|
"@flowselections/core": "1.0.29",
|
|
142
|
-
"@lovable.dev/vite-tanstack-config": "2.
|
|
142
|
+
"@lovable.dev/vite-tanstack-config": "2.26.5",
|
|
143
143
|
"@rsbuild/core": "^1.0.0",
|
|
144
144
|
"@tailwindcss/vite": "^4.2.1",
|
|
145
145
|
"@tanstack/react-query": "^5.83.0",
|