@flowselections/layout-maker 1.69.1 → 1.69.5

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.
Files changed (37) hide show
  1. package/dist-lib/components/BedrijfsgegevensMelding.d.ts +3 -0
  2. package/dist-lib/components/BedrijfsgegevensMelding.d.ts.map +1 -0
  3. package/dist-lib/components/BedrijfsgegevensMelding.js +26 -0
  4. package/dist-lib/components/GeladenEtiketTab.d.ts +8 -0
  5. package/dist-lib/components/GeladenEtiketTab.d.ts.map +1 -0
  6. package/dist-lib/components/GeladenEtiketTab.js +34 -0
  7. package/dist-lib/components/LayoutsPage.d.ts.map +1 -1
  8. package/dist-lib/components/LayoutsPage.js +2 -1
  9. package/dist-lib/components/PrintenPage.d.ts +2 -1
  10. package/dist-lib/components/PrintenPage.d.ts.map +1 -1
  11. package/dist-lib/components/PrintenPage.js +5 -2
  12. package/dist-lib/components/WerkplekkenTab.js +1 -1
  13. package/dist-lib/index.d.ts +1 -0
  14. package/dist-lib/index.d.ts.map +1 -1
  15. package/dist-lib/index.js +1 -0
  16. package/dist-lib/integrations/supabase/types.d.ts +334 -18
  17. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  18. package/dist-lib/lib/eigenDocumenten.d.ts +52 -0
  19. package/dist-lib/lib/eigenDocumenten.d.ts.map +1 -0
  20. package/dist-lib/lib/eigenDocumenten.js +182 -0
  21. package/dist-lib/lib/printQueue.server.d.ts +6 -0
  22. package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
  23. package/dist-lib/lib/printQueue.server.js +90 -2
  24. package/dist-lib/lib/standaardLayouts.server.d.ts +5 -4
  25. package/dist-lib/lib/standaardLayouts.server.d.ts.map +1 -1
  26. package/dist-lib/lib/standaardLayouts.server.js +8 -38
  27. package/dist-lib/lib/standaardenBron.d.ts.map +1 -1
  28. package/dist-lib/lib/standaardenBron.js +42 -0
  29. package/dist-lib/lib/stickerFormaat.d.ts +1 -1
  30. package/dist-lib/lib/stickerFormaat.d.ts.map +1 -1
  31. package/dist-lib/lib/versie.generated.d.ts +1 -1
  32. package/dist-lib/lib/versie.generated.js +1 -1
  33. package/dist-lib/lib/werkplekken.d.ts +1 -0
  34. package/dist-lib/lib/werkplekken.d.ts.map +1 -1
  35. package/dist-lib/lib/werkplekken.js +1 -1
  36. package/package.json +1 -1
  37. package/sql/print-schema.sql +56 -6
@@ -0,0 +1,52 @@
1
+ export declare const EIGEN_STICKER_MAAT_ONBEKEND = "Maat van deze sticker onbekend \u2013 sla breedte en hoogte op bij de sticker. Er is niets geprint (een sticker wordt nooit geschaald).";
2
+ export type EigenStickerMaat = {
3
+ breedte_mm: number;
4
+ hoogte_mm: number;
5
+ bron: "payload" | "sticker" | "klant" | "pdf";
6
+ };
7
+ /**
8
+ * Werkelijke maat van de geüploade sticker. Volgorde: (1) maat in de opdracht
9
+ * (sticker_formaat_mm / sticker_afbeelding.breedte_mm) → (2) customer_product_stickers
10
+ * (width_mm/height_mm) → (3) customer_sticker_settings per klant → (4) paginamaat
11
+ * van een PDF-bestand. Nooit de layoutmaat; nooit schalen.
12
+ */
13
+ export declare function eigenStickerMaat(payload: unknown, stickerRij: unknown, klantRij?: unknown, pdfMaat?: {
14
+ breedte_mm: number;
15
+ hoogte_mm: number;
16
+ } | null): EigenStickerMaat | null;
17
+ /** Klantsleutel voor customer_sticker_settings: stickerrij, anders opdracht. */
18
+ export declare function eigenStickerKlant(payload: unknown, stickerRij: unknown): string | null;
19
+ /** Logo voor de eigen traysticker: payload.logo_url → bedrijfslogo → geen. */
20
+ export declare function kiesTraystickerLogo(payloadLogo: unknown, bedrijfsLogo: string | null | undefined): string | null;
21
+ /** Id van de klantsticker (customer_product_stickers.id) uit de opdracht. */
22
+ export declare function eigenStickerId(payload: unknown): string | null;
23
+ export declare const TRAYSTICKER_VELDEN: readonly ["logo", "bedrijfsnaam", "klantnaam", "ordernummer", "leverdatum", "afleverlocatie", "tray", "producten", "barcode"];
24
+ export type TrayVeld = (typeof TRAYSTICKER_VELDEN)[number];
25
+ export declare const TRAYSTICKER_GEEN_INDELING = "Aantal fusten onbekend";
26
+ export type TrayRegel = {
27
+ artikelnummer: string;
28
+ naam: string;
29
+ aantal: string;
30
+ };
31
+ export type TrayProduct = TrayRegel & {
32
+ onderdelen: TrayRegel[];
33
+ };
34
+ /** Producten van één fust (Engine: één item, optioneel met onderdelen). */
35
+ export declare function trayProducten(payload: unknown): TrayProduct[] | null;
36
+ export declare function trayBarcodeWaarde(payload: unknown): string;
37
+ export declare function traystickerHtml(payload: unknown, cfg: unknown, maat: {
38
+ breedte_mm: number;
39
+ hoogte_mm: number;
40
+ }, bedrijf: {
41
+ naam?: string;
42
+ logoSrc?: string | null;
43
+ }): string;
44
+ export declare const CONTROLELIJST_KOLOMMEN: {
45
+ veld: string;
46
+ label: string;
47
+ standaard: boolean;
48
+ }[];
49
+ export declare const CONTROLELIJST_STANDAARD_KOLOMMEN: string[];
50
+ export declare function controlelijstKolommen(cfg: unknown): string[];
51
+ export declare function controlelijstHtml(payload: unknown, cfg: unknown): string;
52
+ //# sourceMappingURL=eigenDocumenten.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eigenDocumenten.d.ts","sourceRoot":"","sources":["../../src/lib/eigenDocumenten.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,2BAA2B,4IAC8F,CAAC;AAEvI,MAAM,MAAM,gBAAgB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAA;CAAE,CAAC;AAExH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,OAAO,EACnB,QAAQ,GAAE,OAAc,EACxB,OAAO,GAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAW,GAC/D,gBAAgB,GAAG,IAAI,CAmBzB;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGtF;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIhH;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI9D;AAGD,eAAO,MAAM,kBAAkB,+HAErB,CAAC;AACX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAElE,MAAM,MAAM,SAAS,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAChF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IAAE,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC;AAOlE,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,EAAE,GAAG,IAAI,CAOpE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAK1D;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC/C,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClD,MAAM,CAiCR;AAGD,eAAO,MAAM,sBAAsB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,EAmBvF,CAAC;AAEF,eAAO,MAAM,gCAAgC,UAAuE,CAAC;AAarH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAK5D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAaxE"}
@@ -0,0 +1,182 @@
1
+ // ============================================================================
2
+ // src/lib/eigenDocumenten.ts — opmaak van de eigen standaarden
3
+ // fs.eigen_sticker (maat), fs.eigen_traysticker en fs.controlelijst.
4
+ // Puur: geen database, geen servercode. Lege velden blijven leeg.
5
+ // ============================================================================
6
+ import { code128BarsHtml } from "./code128.js";
7
+ const obj = (v) => (v && typeof v === "object" && !Array.isArray(v) ? v : {});
8
+ const tekst = (v) => (v == null ? "" : String(v).trim());
9
+ const esc = (v) => tekst(v).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
10
+ const getal = (v) => {
11
+ const n = Number(v);
12
+ return Number.isFinite(n) && n > 0 ? n : null;
13
+ };
14
+ // ---------------------------------------------------------------- eigen sticker
15
+ export const EIGEN_STICKER_MAAT_ONBEKEND = "Maat van deze sticker onbekend – sla breedte en hoogte op bij de sticker. Er is niets geprint (een sticker wordt nooit geschaald).";
16
+ /**
17
+ * Werkelijke maat van de geüploade sticker. Volgorde: (1) maat in de opdracht
18
+ * (sticker_formaat_mm / sticker_afbeelding.breedte_mm) → (2) customer_product_stickers
19
+ * (width_mm/height_mm) → (3) customer_sticker_settings per klant → (4) paginamaat
20
+ * van een PDF-bestand. Nooit de layoutmaat; nooit schalen.
21
+ */
22
+ export function eigenStickerMaat(payload, stickerRij, klantRij = null, pdfMaat = null) {
23
+ const p = obj(payload);
24
+ const f = obj(p["sticker_formaat_mm"]);
25
+ const a = obj(p["sticker_afbeelding"]);
26
+ const pb = getal(f["breedte"]) ?? getal(a["breedte_mm"]);
27
+ const ph = getal(f["hoogte"]) ?? getal(a["hoogte_mm"]);
28
+ if (pb && ph)
29
+ return { breedte_mm: pb, hoogte_mm: ph, bron: "payload" };
30
+ const r = obj(stickerRij);
31
+ const sb = getal(r["width_mm"]);
32
+ const sh = getal(r["height_mm"]);
33
+ if (sb && sh)
34
+ return { breedte_mm: sb, hoogte_mm: sh, bron: "sticker" };
35
+ const k = obj(klantRij);
36
+ const kb = getal(k["width_mm"]);
37
+ const kh = getal(k["height_mm"]);
38
+ if (kb && kh)
39
+ return { breedte_mm: kb, hoogte_mm: kh, bron: "klant" };
40
+ const db = getal(pdfMaat?.breedte_mm);
41
+ const dh = getal(pdfMaat?.hoogte_mm);
42
+ if (db && dh)
43
+ return { breedte_mm: db, hoogte_mm: dh, bron: "pdf" };
44
+ return null;
45
+ }
46
+ /** Klantsleutel voor customer_sticker_settings: stickerrij, anders opdracht. */
47
+ export function eigenStickerKlant(payload, stickerRij) {
48
+ const v = tekst(obj(stickerRij)["customer_key"]) || tekst(obj(payload)["customer_key"]);
49
+ return v || null;
50
+ }
51
+ /** Logo voor de eigen traysticker: payload.logo_url → bedrijfslogo → geen. */
52
+ export function kiesTraystickerLogo(payloadLogo, bedrijfsLogo) {
53
+ const geldig = (v) => typeof v === "string" && /^(https?:|data:)/.test(v);
54
+ if (geldig(payloadLogo))
55
+ return payloadLogo;
56
+ return geldig(bedrijfsLogo) ? bedrijfsLogo : null;
57
+ }
58
+ /** Id van de klantsticker (customer_product_stickers.id) uit de opdracht. */
59
+ export function eigenStickerId(payload) {
60
+ const p = obj(payload);
61
+ const v = tekst(p["customer_product_sticker_id"] ?? obj(p["sticker_afbeelding"])["sticker_id"]);
62
+ return v || null;
63
+ }
64
+ // ---------------------------------------------------------------- traysticker
65
+ export const TRAYSTICKER_VELDEN = [
66
+ "logo", "bedrijfsnaam", "klantnaam", "ordernummer", "leverdatum", "afleverlocatie", "tray", "producten", "barcode",
67
+ ];
68
+ export const TRAYSTICKER_GEEN_INDELING = "Aantal fusten onbekend";
69
+ const trayRegel = (x) => {
70
+ const r = obj(x);
71
+ return { artikelnummer: tekst(r["artikelnummer"]), naam: tekst(r["naam"] ?? r["productnaam"]), aantal: tekst(r["aantal"]) };
72
+ };
73
+ /** Producten van één fust (Engine: één item, optioneel met onderdelen). */
74
+ export function trayProducten(payload) {
75
+ const lijst = obj(payload)["tray_producten"];
76
+ if (!Array.isArray(lijst))
77
+ return null;
78
+ return lijst.map((x) => {
79
+ const o = obj(x)["onderdelen"];
80
+ return { ...trayRegel(x), onderdelen: Array.isArray(o) ? o.map(trayRegel) : [] };
81
+ });
82
+ }
83
+ export function trayBarcodeWaarde(payload) {
84
+ const p = obj(payload);
85
+ const o = tekst(p["order_number"] ?? p["ordernummer"]);
86
+ const t = tekst(p["tray_nummer"]);
87
+ return o && t ? `${o}-T${t}` : "";
88
+ }
89
+ export function traystickerHtml(payload, cfg, maat, bedrijf) {
90
+ const p = obj(payload);
91
+ const producten = trayProducten(p);
92
+ if (!producten)
93
+ throw new Error(TRAYSTICKER_GEEN_INDELING);
94
+ const c = obj(obj(cfg)["eigen_traysticker"]);
95
+ const aan = (v) => obj(c["velden"])[v] !== false;
96
+ const regel = (label, waarde) => `<div class="r"><b>${label}</b> ${esc(waarde)}</div>`;
97
+ const delen = [];
98
+ const kop = [];
99
+ if (aan("logo") && bedrijf.logoSrc)
100
+ kop.push(`<img class="logo" src="${bedrijf.logoSrc}" alt="">`);
101
+ if (aan("bedrijfsnaam"))
102
+ kop.push(`<span class="bn">${esc(bedrijf.naam)}</span>`);
103
+ if (kop.length)
104
+ delen.push(`<div class="kop">${kop.join("")}</div>`);
105
+ if (aan("klantnaam"))
106
+ delen.push(regel("Klant", p["klantnaam"] ?? p["customer_name"]));
107
+ if (aan("ordernummer"))
108
+ delen.push(regel("Order", p["order_number"] ?? p["ordernummer"]));
109
+ if (aan("leverdatum"))
110
+ delen.push(regel("Levering", p["leverdatum"] ?? p["delivery_date"]));
111
+ if (aan("afleverlocatie"))
112
+ delen.push(regel("Locatie", p["afleverlocatie"]));
113
+ if (aan("tray")) {
114
+ const n = tekst(p["tray_nummer"]);
115
+ const t = tekst(p["tray_totaal"]);
116
+ delen.push(`<div class="tray">${n || t ? `Fust ${esc(n)} van ${esc(t)}` : ""}</div>`);
117
+ }
118
+ if (aan("producten")) {
119
+ const rij = (x, cls = "") => `<tr${cls ? ` class="${cls}"` : ""}><td>${esc(x.artikelnummer)}</td><td>${esc(x.naam)}</td><td class="n">${esc(x.aantal)}</td></tr>`;
120
+ delen.push(`<table>${producten.map((x) => rij(x) + x.onderdelen.map((o) => rij(o, "od")).join("")).join("")}</table>`);
121
+ }
122
+ if (aan("barcode")) {
123
+ const w = trayBarcodeWaarde(p);
124
+ if (w)
125
+ delen.push(`<div class="bc">${code128BarsHtml(w)}</div><div class="bct">${esc(w)}</div>`);
126
+ }
127
+ return `<!doctype html><html><head><meta charset="utf-8"><style>@page{size:${maat.breedte_mm}mm ${maat.hoogte_mm}mm;margin:0}html,body{margin:0;padding:0}body{width:${maat.breedte_mm}mm;height:${maat.hoogte_mm}mm;box-sizing:border-box;padding:2mm;font:7pt Arial,sans-serif;overflow:hidden}.kop{display:flex;align-items:center;gap:2mm;margin-bottom:1mm}.logo{max-height:7mm;max-width:25mm}.bn{font-weight:bold;font-size:8pt}.r{line-height:1.25}.tray{font-weight:bold;font-size:10pt;margin:1mm 0}table{width:100%;border-collapse:collapse}td{padding:0 1mm 0 0;vertical-align:top}.n{text-align:right;font-weight:bold}.od td{font-size:6pt;padding-left:2mm}.od .n{font-weight:normal}.bc{display:flex;height:8mm;margin-top:1mm}.bct{text-align:center;font-size:6pt}</style></head><body>${delen.join("")}</body></html>`;
128
+ }
129
+ // ---------------------------------------------------------------- controlelijst
130
+ export const CONTROLELIJST_KOLOMMEN = [
131
+ { veld: "karnummer", label: "Kar", standaard: true },
132
+ { veld: "kar_volgnummer", label: "Kar x van y", standaard: false },
133
+ { veld: "klaarzetten_tekst", label: "Klaarzetten", standaard: true },
134
+ { veld: "klantnaam", label: "Klant", standaard: true },
135
+ { veld: "ordernummers", label: "Order(s)", standaard: true },
136
+ { veld: "fusten", label: "Fusten", standaard: false },
137
+ { veld: "land", label: "Land", standaard: false },
138
+ { veld: "klaarzetten_datum", label: "Klaarzetdatum", standaard: false },
139
+ { veld: "klaarzetten_tijd", label: "Klaarzettijd", standaard: false },
140
+ { veld: "ophaal_datum", label: "Ophaaldatum", standaard: false },
141
+ { veld: "ophaal_tijd", label: "Ophaaltijd", standaard: false },
142
+ { veld: "leverdatum", label: "Leverdatum", standaard: false },
143
+ { veld: "pickdag", label: "Pickdag", standaard: false },
144
+ { veld: "oorspronkelijke_pickdag", label: "Oorspr. pickdag", standaard: false },
145
+ { veld: "status", label: "Status (code)", standaard: false },
146
+ { veld: "status_tekst", label: "Status", standaard: true },
147
+ { veld: "geprint", label: "Geprint", standaard: false },
148
+ { veld: "geprint_om", label: "Geprint om", standaard: false },
149
+ ];
150
+ export const CONTROLELIJST_STANDAARD_KOLOMMEN = CONTROLELIJST_KOLOMMEN.filter((k) => k.standaard).map((k) => k.veld);
151
+ function karWaarde(kar, veld) {
152
+ if (veld === "ordernummers")
153
+ return Array.isArray(kar[veld]) ? kar[veld].map(tekst).filter(Boolean).join(", ") : tekst(kar[veld]);
154
+ if (veld === "kar_volgnummer") {
155
+ const a = tekst(kar["kar_volgnummer"]);
156
+ const b = tekst(kar["kar_totaal"]);
157
+ return a || b ? `${a} van ${b}` : "";
158
+ }
159
+ if (veld === "geprint")
160
+ return kar[veld] === true ? "Ja" : kar[veld] === false ? "Nee" : "";
161
+ return tekst(kar[veld]);
162
+ }
163
+ export function controlelijstKolommen(cfg) {
164
+ const k = obj(obj(cfg)["controlelijst"])["kolommen"];
165
+ const bekend = new Set(CONTROLELIJST_KOLOMMEN.map((x) => x.veld));
166
+ const lijst = Array.isArray(k) ? k.map(String).filter((v) => bekend.has(v)) : [];
167
+ return lijst.length ? lijst : CONTROLELIJST_STANDAARD_KOLOMMEN;
168
+ }
169
+ export function controlelijstHtml(payload, cfg) {
170
+ const p = obj(payload);
171
+ const c = obj(obj(cfg)["controlelijst"]);
172
+ const kop = tekst(c["kop"]) || "Controlelijst karren";
173
+ const kolommen = controlelijstKolommen(cfg);
174
+ const labels = new Map(CONTROLELIJST_KOLOMMEN.map((k) => [k.veld, k.label]));
175
+ const karren = Array.isArray(p["karren"]) ? p["karren"].map(obj) : [];
176
+ const voet = Array.isArray(c["voet"]) ? c["voet"].map(tekst) : ["Gecontroleerd door", "Datum en tijd", "Handtekening"];
177
+ return `<!doctype html><html><head><meta charset="utf-8"><style>@page{size:A4;margin:12mm}body{font:10pt Arial,sans-serif;margin:0}h1{font-size:16pt;margin:0 0 2mm}.sub{color:#444;margin-bottom:5mm}table{width:100%;border-collapse:collapse}th,td{border:1px solid #999;padding:1.5mm 2mm;text-align:left;vertical-align:top}th{background:#eee}.voet{display:flex;gap:6mm;margin-top:12mm}.voet div{flex:1;border-top:1px solid #000;padding-top:1mm;font-size:9pt}</style></head><body><h1>${esc(kop)}</h1><div class="sub">${esc(p["documentdatum_tekst"])}${tekst(p["totaal_karren"]) ? ` · ${esc(p["totaal_karren"])} karren` : ""}</div><table><thead><tr>${kolommen
178
+ .map((k) => `<th>${esc(labels.get(k))}</th>`)
179
+ .join("")}</tr></thead><tbody>${karren
180
+ .map((kar) => `<tr>${kolommen.map((k) => `<td>${esc(karWaarde(kar, k))}</td>`).join("")}</tr>`)
181
+ .join("")}</tbody></table><div class="voet">${voet.map((v) => `<div>${esc(v)}</div>`).join("")}</div></body></html>`;
182
+ }
@@ -1,4 +1,5 @@
1
1
  import type { SupabaseClient } from "@supabase/supabase-js";
2
+ import { type EigenStickerMaat } from "./eigenDocumenten.js";
2
3
  type Job = Record<string, any>;
3
4
  /** De databaseclient die de shell aanlevert. De module maakt er zelf nooit een. */
4
5
  export type PrintDb = SupabaseClient<any, any, any>;
@@ -70,6 +71,11 @@ export declare function stickerAfbeeldingUitPayload(payload: unknown): {
70
71
  bucket: string;
71
72
  pad: string;
72
73
  } | null;
74
+ /**
75
+ * Werkelijke maat van een eigen sticker: opdracht → customer_product_stickers →
76
+ * customer_sticker_settings (klant) → paginamaat van een PDF-bestand. Anders null.
77
+ */
78
+ export declare function zoekEigenStickerMaat(db: PrintDb, payload: Job): Promise<EigenStickerMaat | null>;
73
79
  export declare function bouwHtml(db: PrintDb, job: Job, keuze: LayoutKeuze, uitkomst?: BronUitkomst): Promise<string>;
74
80
  /**
75
81
  * Controleert of het document echt iets afdrukt. Zonder deze controle kan een
@@ -1 +1 @@
1
- {"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ import { profielHeeftInhoud, renderProfielDocument } from "./profielHtml.js";
14
14
  import { bouwDocumentHtml, voorbeeldContext } from "./layoutPreview.js";
15
15
  import { AfbeeldingInhoudFout, htmlNaarPdfServer, PdfRenderFout } from "./htmlNaarPdf.server.js";
16
16
  import { bepaalStickerMaat, floridayStickerMaat, STICKER_MAAT_ONBEKEND, stickerFormaatCode, stickerIdUitPayload, stickerInfoUitCache, stickerNietNodig, stickerTypeLabel, STICKER_NIET_NODIG, FASE_NIET_NODIG } from "./stickerFormaat.js";
17
+ import { controlelijstHtml, EIGEN_STICKER_MAAT_ONBEKEND, eigenStickerId, eigenStickerKlant, eigenStickerMaat, kiesTraystickerLogo, TRAYSTICKER_GEEN_INDELING, trayProducten, traystickerHtml } from "./eigenDocumenten.js";
17
18
  import { OPMAAK_LIMIET_MS, OpmaakTeLangFout, metTijdslimiet } from "./opmaakLimiet.js";
18
19
  import { stuurPdfNaarPrinter, opdrachtStatusDetail, vervaltijdVoor } from "./printService.server.js";
19
20
  import { kiesPapier } from "./papierFormaten.js";
@@ -825,6 +826,59 @@ export function stickerAfbeeldingUitPayload(payload) {
825
826
  const pad = typeof a?.["pad"] === "string" ? a["pad"].trim() : "";
826
827
  return bucket && pad ? { bucket, pad } : null;
827
828
  }
829
+ /**
830
+ * Werkelijke maat van een eigen sticker: opdracht → customer_product_stickers →
831
+ * customer_sticker_settings (klant) → paginamaat van een PDF-bestand. Anders null.
832
+ */
833
+ export async function zoekEigenStickerMaat(db, payload) {
834
+ const direct = eigenStickerMaat(payload, null);
835
+ if (direct)
836
+ return direct;
837
+ const id = eigenStickerId(payload);
838
+ const bron = stickerAfbeeldingUitPayload(payload);
839
+ let rij = null;
840
+ if (id) {
841
+ const r = await db.from("customer_product_stickers").select("width_mm, height_mm, customer_key").eq("id", id).maybeSingle();
842
+ rij = r.data;
843
+ }
844
+ else if (bron?.pad) {
845
+ const r = await db.from("customer_product_stickers").select("width_mm, height_mm, customer_key").eq("file_path", bron.pad).limit(1).maybeSingle();
846
+ rij = r.data;
847
+ }
848
+ const viaSticker = eigenStickerMaat(payload, rij);
849
+ if (viaSticker)
850
+ return viaSticker;
851
+ let klantRij = null;
852
+ const klant = eigenStickerKlant(payload, rij);
853
+ if (klant) {
854
+ const r = await db.from("customer_sticker_settings").select("width_mm, height_mm").eq("customer_key", klant).maybeSingle();
855
+ klantRij = r.data;
856
+ }
857
+ const viaKlant = eigenStickerMaat(payload, rij, klantRij);
858
+ if (viaKlant)
859
+ return viaKlant;
860
+ // Laatste stap: alleen een echt PDF-bestand levert een paginamaat.
861
+ let pdfMaat = null;
862
+ if (bron) {
863
+ try {
864
+ const { data } = await db
865
+ .storage.from(bron.bucket).download(bron.pad);
866
+ if (data) {
867
+ const bytes = new Uint8Array(await data.arrayBuffer());
868
+ if (bytes[0] === 0x25 && bytes[1] === 0x50 && bytes[2] === 0x44 && bytes[3] === 0x46) {
869
+ let ruw = "";
870
+ for (let i = 0; i < bytes.length; i += 8192)
871
+ ruw += String.fromCharCode(...bytes.subarray(i, i + 8192));
872
+ pdfMaat = pdfPaginaMm(btoa(ruw));
873
+ }
874
+ }
875
+ }
876
+ catch {
877
+ pdfMaat = null;
878
+ }
879
+ }
880
+ return eigenStickerMaat(payload, rij, klantRij, pdfMaat);
881
+ }
828
882
  async function eigenStickerHtml(db, p, breedteMm, hoogteMm) {
829
883
  const bron = stickerAfbeeldingUitPayload(p);
830
884
  if (!bron) {
@@ -875,12 +929,37 @@ export async function bouwHtml(db, job, keuze, uitkomst) {
875
929
  const hoogteMm = liggend ? b : h;
876
930
  const cfg = (layout.config ?? {});
877
931
  // Eigen sticker (fs.eigen_sticker): tekent de afbeelding uit
878
- // payload.sticker_afbeelding = { bucket, pad } op ware grootte.
932
+ // payload.sticker_afbeelding = { bucket, pad } op haar WERKELIJKE maat
933
+ // (nooit de layoutmaat; een sticker wordt nooit geschaald).
879
934
  if (cfg.eigen_sticker && typeof cfg.eigen_sticker === "object") {
880
- const html = await eigenStickerHtml(db, p, breedteMm, hoogteMm);
935
+ const maat = await zoekEigenStickerMaat(db, p);
936
+ if (!maat)
937
+ throw new GeenDocumentFout(EIGEN_STICKER_MAAT_ONBEKEND);
938
+ const html = await eigenStickerHtml(db, p, maat.breedte_mm, maat.hoogte_mm);
881
939
  noteer("eigen_layout");
882
940
  return html;
883
941
  }
942
+ // Eigen traysticker (fs.eigen_traysticker): één sticker per tray.
943
+ if (cfg.eigen_traysticker && typeof cfg.eigen_traysticker === "object") {
944
+ if (!trayProducten(p))
945
+ throw new WachtOpLayoutFout(TRAYSTICKER_GEEN_INDELING);
946
+ const inst = await bedrijfsInstelling(db).catch(() => null);
947
+ const pb = (p.bedrijf ?? {});
948
+ const naam = String(pb.naam ?? inst?.naam ?? "");
949
+ let bedrijfsLogo = null;
950
+ if (!kiesTraystickerLogo(p.logo_url, null) && inst?.logoId) {
951
+ const logos = await logosVoor(db, { config: { logo: { logoId: inst.logoId } } }).catch(() => []);
952
+ bedrijfsLogo = logos.find((l) => l.id === inst.logoId)?.viewUrl ?? null;
953
+ }
954
+ const logoSrc = kiesTraystickerLogo(p.logo_url, bedrijfsLogo);
955
+ noteer("eigen_layout");
956
+ return traystickerHtml(p, cfg, { breedte_mm: breedteMm, hoogte_mm: hoogteMm }, { naam, logoSrc });
957
+ }
958
+ // Controlelijst (fs.controlelijst): A4, tabel uit payload.karren.
959
+ if (cfg.controlelijst && typeof cfg.controlelijst === "object") {
960
+ noteer("eigen_layout");
961
+ return controlelijstHtml(p, cfg);
962
+ }
884
963
  // Stickers met "kies altijd de layout van de klant": meegestuurde opmaak van
885
964
  // de klant wint. Is er niets meegestuurd, dan bepaalt de terugvalkeuze of we
886
965
  // deze layout gebruiken of de opdracht netjes laten mislukken.
@@ -1496,6 +1575,15 @@ async function verwerkJob(db, job) {
1496
1575
  throw new GeenDocumentFout(STICKER_MAAT_ONBEKEND);
1497
1576
  await faseLog(db, job.id, "sticker_maat", { bron: stickerMaat.bron, breedte_mm: stickerMaat.breedte_mm, hoogte_mm: stickerMaat.hoogte_mm });
1498
1577
  }
1578
+ else if (!klaar && layout?.config?.eigen_sticker) {
1579
+ // Eigen sticker: werkelijke maat van de geüploade sticker; die kiest de
1580
+ // printer en gaat door de etiketcontrole. Onbekend = niet printen.
1581
+ const m = await zoekEigenStickerMaat(db, (job.payload ?? {}));
1582
+ if (!m)
1583
+ throw new GeenDocumentFout(EIGEN_STICKER_MAAT_ONBEKEND);
1584
+ stickerMaat = { breedte_mm: m.breedte_mm, hoogte_mm: m.hoogte_mm, bron: "eigen" };
1585
+ await faseLog(db, job.id, "sticker_maat", { bron: `eigen_${m.bron}`, breedte_mm: m.breedte_mm, hoogte_mm: m.hoogte_mm });
1586
+ }
1499
1587
  const printerKeuze = await zoekPrinter(db, job, layout);
1500
1588
  if (stickerMaat) {
1501
1589
  const viaFormaat = await printerVoorStickerFormaat(db, String(job.documenttype), stickerMaat);
@@ -22,10 +22,11 @@ export declare function zorgVoorStandaardLayoutsMetStatus(db: Db): Promise<{
22
22
  schemaOntbreekt: boolean;
23
23
  }>;
24
24
  /**
25
- * Eenmalig voorinvullen: eerst de eigen organisatie uit Floriday-auth
26
- * (floriday_eigen_organisatie), anders invoice_branding_settings. Nooit als er
27
- * al iets is ingevuld of als er al eens is voorgevuld.
25
+ * 1.69.2: bedrijfsgegevens worden NIET meer automatisch gevuld (niet uit
26
+ * Floriday, niet uit de factuurgegevens): niet elke Shell koppelt Floriday.
27
+ * Bestaande waarden blijven staan. Invullen gebeurt op de instellingenkaart
28
+ * (met de knop "Overnemen uit factuurgegevens"). Raakt de database niet.
28
29
  */
29
- export declare function zorgVoorBedrijfsgegevens(db: Db): Promise<boolean>;
30
+ export declare function zorgVoorBedrijfsgegevens(_db: Db): Promise<boolean>;
30
31
  export {};
31
32
  //# sourceMappingURL=standaardLayouts.server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"standaardLayouts.server.d.ts","sourceRoot":"","sources":["../../src/lib/standaardLayouts.server.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAExC,eAAO,MAAM,wBAAwB,2MACqK,CAAC;AAE3M,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAKrH;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CAmBrG;AAED,kDAAkD;AAClD,wBAAsB,8BAA8B,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5E;AAED,wBAAsB,iCAAiC,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CAYrH;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBvE"}
1
+ {"version":3,"file":"standaardLayouts.server.d.ts","sourceRoot":"","sources":["../../src/lib/standaardLayouts.server.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAExC,eAAO,MAAM,wBAAwB,2MACqK,CAAC;AAE3M,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAKrH;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CAmBrG;AAED,kDAAkD;AAClD,wBAAsB,8BAA8B,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5E;AAED,wBAAsB,iCAAiC,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CAOrH;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAExE"}
@@ -8,9 +8,8 @@
8
8
  // alleen als er geen enkele actieve eigen layout van die soort is;
9
9
  // - precies één actieve layout zonder standaard → standaard (gelogd);
10
10
  // - standaardprinter alleen als het eenduidig is (gelogd).
11
- // Daarna: bedrijfsgegevens eenmalig voorinvullen als ze nog leeg zijn.
11
+ // Bedrijfsgegevens worden sinds 1.69.2 niet meer automatisch voorgevuld.
12
12
  // ============================================================================
13
- import { BEDRIJFSGEGEVENS_SLEUTEL, voorinvulBesluit } from "./bedrijfsgegevens.js";
14
13
  import { STANDAARDEN_BRON } from "./standaardenBron.js";
15
14
  export const SCHEMA_ONTBREEKT_MELDING = "Het schema van Layouts is nog niet gedraaid in deze database. Laat de schema-update van Layouts uitvoeren; tot die tijd worden Pakbon, Afleverbrief (BVO) en Productiebon niet automatisch aangemaakt.";
16
15
  /** Tabel of kolom bestaat niet (Postgres of PostgREST). */
@@ -59,44 +58,15 @@ export async function zorgVoorStandaardLayoutsMetStatus(db) {
59
58
  const { data, error: rpcFout } = await db.rpc("layout_zorg_systeemlayouts");
60
59
  if (rpcFout)
61
60
  throw new Error(`Standaardlayouts controleren mislukt: ${rpcFout.message}`);
62
- let aantal = Number(data ?? 0) || 0;
63
- try {
64
- if (await zorgVoorBedrijfsgegevens(db))
65
- aantal += 1;
66
- }
67
- catch {
68
- /* voorinvullen is een gemak; nooit de aanvulronde laten mislukken */
69
- }
61
+ const aantal = Number(data ?? 0) || 0;
70
62
  return { aantal, schemaOntbreekt: false };
71
63
  }
72
64
  /**
73
- * Eenmalig voorinvullen: eerst de eigen organisatie uit Floriday-auth
74
- * (floriday_eigen_organisatie), anders invoice_branding_settings. Nooit als er
75
- * al iets is ingevuld of als er al eens is voorgevuld.
65
+ * 1.69.2: bedrijfsgegevens worden NIET meer automatisch gevuld (niet uit
66
+ * Floriday, niet uit de factuurgegevens): niet elke Shell koppelt Floriday.
67
+ * Bestaande waarden blijven staan. Invullen gebeurt op de instellingenkaart
68
+ * (met de knop "Overnemen uit factuurgegevens"). Raakt de database niet.
76
69
  */
77
- export async function zorgVoorBedrijfsgegevens(db) {
78
- const { data: rij, error } = await db
79
- .from("app_settings").select("value").eq("key", BEDRIJFSGEGEVENS_SLEUTEL).maybeSingle();
80
- if (error)
81
- return false;
82
- let floriday = null;
83
- let factuur = null;
84
- const f = await db.rpc("floriday_eigen_organisatie");
85
- if (!f.error)
86
- floriday = Array.isArray(f.data) ? f.data[0] : f.data;
87
- const besluitZonderFactuur = voorinvulBesluit(rij?.value ?? null, floriday, null);
88
- if (besluitZonderFactuur === "overslaan")
89
- return false;
90
- if (!besluitZonderFactuur) {
91
- const fr = await db.from("invoice_branding_settings").select("*").limit(1).maybeSingle();
92
- if (!fr.error)
93
- factuur = fr.data;
94
- }
95
- const besluit = besluitZonderFactuur ?? voorinvulBesluit(rij?.value ?? null, null, factuur);
96
- if (!besluit || besluit === "overslaan")
97
- return false;
98
- const { error: fout } = await db
99
- .from("app_settings")
100
- .upsert({ key: BEDRIJFSGEGEVENS_SLEUTEL, value: JSON.stringify(besluit) }, { onConflict: "key" });
101
- return !fout;
70
+ export async function zorgVoorBedrijfsgegevens(_db) {
71
+ return false;
102
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"standaardenBron.d.ts","sourceRoot":"","sources":["../../src/lib/standaardenBron.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAsP3C,CAAC;AAMF,8GAA8G;AAC9G,wBAAgB,cAAc,IAAI,MAAM,CAevC"}
1
+ {"version":3,"file":"standaardenBron.d.ts","sourceRoot":"","sources":["../../src/lib/standaardenBron.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAgS3C,CAAC;AAMF,8GAA8G;AAC9G,wBAAgB,cAAc,IAAI,MAAM,CAevC"}
@@ -250,6 +250,48 @@ export const STANDAARDEN_BRON = [
250
250
  "passend": "ware_grootte"
251
251
  }
252
252
  }
253
+ },
254
+ {
255
+ "sleutel": "fs.eigen_traysticker",
256
+ "versie": 2,
257
+ "documenttype": "traysticker",
258
+ "naam": "Eigen traysticker",
259
+ "omschrijving": "Eén sticker per fust voor eigen orders: logo/bedrijfsnaam, klant, order, leverdatum, afleverlocatie, fust x van y, product met aantal planten per fust (en onderdelen) en barcode. Elk veld aan/uit te zetten.",
260
+ "papierformaat": "LABEL_100x62",
261
+ "breedte_mm": 100,
262
+ "hoogte_mm": 62,
263
+ "config": {
264
+ "eigen_traysticker": {
265
+ "velden": {
266
+ "logo": true,
267
+ "bedrijfsnaam": true,
268
+ "klantnaam": true,
269
+ "ordernummer": true,
270
+ "leverdatum": true,
271
+ "afleverlocatie": true,
272
+ "tray": true,
273
+ "producten": true,
274
+ "barcode": true
275
+ }
276
+ }
277
+ }
278
+ },
279
+ {
280
+ "sleutel": "fs.controlelijst",
281
+ "versie": 1,
282
+ "documenttype": "controlelijst",
283
+ "naam": "Controlelijst karren",
284
+ "omschrijving": "Controlelijst van de karren (Afhandeling). Kop met datum en aantal karren, tabel per kar en een voet om af te tekenen. Kolommen aan/uit te zetten.",
285
+ "papierformaat": "A4",
286
+ "breedte_mm": 210,
287
+ "hoogte_mm": 297,
288
+ "config": {
289
+ "controlelijst": {
290
+ "kop": "Controlelijst karren",
291
+ "kolommen": ["karnummer", "klaarzetten_tekst", "klantnaam", "ordernummers", "status_tekst"],
292
+ "voet": ["Gecontroleerd door", "Datum en tijd", "Handtekening"]
293
+ }
294
+ }
253
295
  }
254
296
  ];
255
297
  function lit(s) {
@@ -1,7 +1,7 @@
1
1
  export type StickerMaat = {
2
2
  breedte_mm: number;
3
3
  hoogte_mm: number;
4
- bron: "floriday" | "pdf";
4
+ bron: "floriday" | "pdf" | "eigen";
5
5
  };
6
6
  /** Leest widthInMm/heightInMm uit de payload (ook genest onder sticker/customerSticker). */
7
7
  export declare function floridayStickerMaat(payload: unknown): {
@@ -1 +1 @@
1
- {"version":3,"file":"stickerFormaat.d.ts","sourceRoot":"","sources":["../../src/lib/stickerFormaat.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,KAAK,CAAA;CAAE,CAAC;AAO9F,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAmBtG;AAED,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAG1E;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGtH;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAC1D,GAAG,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GACpD,WAAW,GAAG,IAAI,CAIpB;AAED,eAAO,MAAM,qBAAqB,oEAAoE,CAAC;AAEvG,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAInE;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CAUzE;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAO1F;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,MAAM,CAIjI;AAED,eAAO,MAAM,kBAAkB,6EAA6E,CAAC;AAC7G,eAAO,MAAM,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"stickerFormaat.d.ts","sourceRoot":"","sources":["../../src/lib/stickerFormaat.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,OAAO,CAAA;CAAE,CAAC;AAOxG,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAmBtG;AAED,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAG1E;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGtH;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAC1D,GAAG,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GACpD,WAAW,GAAG,IAAI,CAIpB;AAED,eAAO,MAAM,qBAAqB,oEAAoE,CAAC;AAEvG,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAInE;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CAUzE;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAO1F;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,MAAM,CAIjI;AAED,eAAO,MAAM,kBAAkB,6EAA6E,CAAC;AAC7G,eAAO,MAAM,eAAe,eAAe,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const PAKKET_VERSIE = "1.69.1";
1
+ export declare const PAKKET_VERSIE = "1.69.5";
2
2
  //# sourceMappingURL=versie.generated.d.ts.map
@@ -1,2 +1,2 @@
1
1
  // Gegenereerd door scripts/schrijf-versie.cjs uit package.json. Niet met de hand wijzigen.
2
- export const PAKKET_VERSIE = "1.69.1";
2
+ export const PAKKET_VERSIE = "1.69.5";
@@ -26,6 +26,7 @@ export interface PrinterRij {
26
26
  extern_printer_id: string | null;
27
27
  ondersteunde_formaten: Record<string, number[]> | null;
28
28
  geladen_etiket: GeladenEtiket | null;
29
+ soort?: string | null;
29
30
  }
30
31
  export declare const isVirtuelePrinter: (naam: string | null | undefined) => boolean;
31
32
  /** De naam die we tonen: eigen naam van de beheerder, anders de technische. */
@@ -1 +1 @@
1
- {"version":3,"file":"werkplekken.d.ts","sourceRoot":"","sources":["../../src/lib/werkplekken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"werkplekken.d.ts","sourceRoot":"","sources":["../../src/lib/werkplekken.ts"],"names":[],"mappings":"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"}
@@ -87,7 +87,7 @@ export function usePrinterLijst() {
87
87
  const load = useCallback(async () => {
88
88
  const { data } = await db
89
89
  .from("printers")
90
- .select("id, naam, weergavenaam, systeemnaam, locatie, online, actief, verborgen, is_virtueel, extern_printer_id, ondersteunde_formaten, geladen_etiket")
90
+ .select("id, naam, weergavenaam, systeemnaam, locatie, online, actief, verborgen, is_virtueel, extern_printer_id, ondersteunde_formaten, geladen_etiket, soort")
91
91
  .order("naam");
92
92
  setPrinters(arr(data).map((p) => ({
93
93
  ...p,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/layout-maker",
3
- "version": "1.69.1",
3
+ "version": "1.69.5",
4
4
  "flowselections": {
5
5
  "moduleId": "layout-maker",
6
6
  "pages": [