@flowselections/layout-maker 1.62.3 → 1.63.2
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/BevestigDialog.d.ts +9 -0
- package/dist-lib/components/BevestigDialog.d.ts.map +1 -0
- package/dist-lib/components/BevestigDialog.js +24 -0
- package/dist-lib/components/LogosPage.d.ts.map +1 -1
- package/dist-lib/components/LogosPage.js +27 -5
- package/dist-lib/components/PrintenInstellenWizard.js +1 -1
- package/dist-lib/components/PrinterSetupWizard.d.ts.map +1 -1
- package/dist-lib/components/PrinterSetupWizard.js +3 -1
- package/dist-lib/components/PrintplekDetailPage.d.ts.map +1 -1
- package/dist-lib/components/PrintplekDetailPage.js +42 -4
- package/dist-lib/components/TestprintDialog.d.ts.map +1 -1
- package/dist-lib/components/TestprintDialog.js +15 -1
- package/dist-lib/components/WerkplekConfiguratiePage.js +2 -2
- package/dist-lib/components/WerkplekkenTab.d.ts.map +1 -1
- package/dist-lib/components/WerkplekkenTab.js +13 -6
- package/dist-lib/integrations/supabase/types.d.ts +125 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/afbeeldingMaat.d.ts +10 -0
- package/dist-lib/lib/afbeeldingMaat.d.ts.map +1 -0
- package/dist-lib/lib/afbeeldingMaat.js +39 -0
- package/dist-lib/lib/etiketControle.d.ts +9 -1
- package/dist-lib/lib/etiketControle.d.ts.map +1 -1
- package/dist-lib/lib/etiketControle.js +21 -4
- package/dist-lib/lib/htmlNaarPdf.server.d.ts +4 -0
- package/dist-lib/lib/htmlNaarPdf.server.d.ts.map +1 -1
- package/dist-lib/lib/htmlNaarPdf.server.js +5 -1
- package/dist-lib/lib/htmlPdf.server.d.ts +6 -0
- package/dist-lib/lib/htmlPdf.server.d.ts.map +1 -1
- package/dist-lib/lib/htmlPdf.server.js +46 -10
- package/dist-lib/lib/logoLibrary.d.ts +25 -0
- package/dist-lib/lib/logoLibrary.d.ts.map +1 -1
- package/dist-lib/lib/logoLibrary.js +73 -1
- package/dist-lib/lib/opmaakLimiet.d.ts +8 -0
- package/dist-lib/lib/opmaakLimiet.d.ts.map +1 -0
- package/dist-lib/lib/opmaakLimiet.js +25 -0
- package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/printQueue.server.js +81 -20
- package/dist-lib/lib/printService.functions.js +2 -2
- package/dist-lib/lib/printplekken.d.ts +17 -1
- package/dist-lib/lib/printplekken.d.ts.map +1 -1
- package/dist-lib/lib/printplekken.js +42 -3
- package/dist-lib/lib/profielHtml.js +1 -1
- package/dist-lib/lib/shellPoort.d.ts +1 -1
- package/dist-lib/lib/shellPoort.js +1 -1
- package/dist-lib/lib/stickerFormaat.d.ts +21 -0
- package/dist-lib/lib/stickerFormaat.d.ts.map +1 -0
- package/dist-lib/lib/stickerFormaat.js +39 -0
- package/dist-lib/lib/testprint.js +1 -1
- package/package.json +1 -1
|
@@ -12,7 +12,9 @@ import { renderProductiebonDocument } from "./productiebonHtml.js";
|
|
|
12
12
|
import { heeftOrderInhoud, laadOrderVanuitDatabase, laadPakbonData } from "./orderData.server.js";
|
|
13
13
|
import { profielHeeftInhoud, renderProfielDocument } from "./profielHtml.js";
|
|
14
14
|
import { bouwDocumentHtml, voorbeeldContext } from "./layoutPreview.js";
|
|
15
|
-
import { htmlNaarPdfServer, PdfRenderFout } from "./htmlNaarPdf.server.js";
|
|
15
|
+
import { AfbeeldingInhoudFout, htmlNaarPdfServer, PdfRenderFout } from "./htmlNaarPdf.server.js";
|
|
16
|
+
import { bepaalStickerMaat, floridayStickerMaat, STICKER_MAAT_ONBEKEND, stickerFormaatCode } from "./stickerFormaat.js";
|
|
17
|
+
import { OPMAAK_LIMIET_MS, OpmaakTeLangFout, metTijdslimiet } from "./opmaakLimiet.js";
|
|
16
18
|
import { stuurPdfNaarPrinter, opdrachtStatusDetail, vervaltijdVoor } from "./printService.server.js";
|
|
17
19
|
import { kiesPapier } from "./papierFormaten.js";
|
|
18
20
|
import { waaromDezePrinter } from "./waaromPrinter.js";
|
|
@@ -40,6 +42,35 @@ export async function controleerClient(db) {
|
|
|
40
42
|
return `Achtergrondprinten is niet ingesteld: de server kan niet bij de database (${e instanceof Error ? e.message : "onbekende fout"}).`;
|
|
41
43
|
}
|
|
42
44
|
}
|
|
45
|
+
/** Fase met tijd en details in het logboek, zodat een vastloper nooit stil is. */
|
|
46
|
+
async function faseLog(db, jobId, fase, detail) {
|
|
47
|
+
try {
|
|
48
|
+
await log(db, String(jobId), "fase", JSON.stringify({ fase, op: new Date().toISOString(), ...detail }));
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
/* loggen mag het printen nooit blokkeren */
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** Printer uit de formaatregels (documentsoort + formaat), beide richtingen. */
|
|
55
|
+
async function printerVoorStickerFormaat(db, documenttype, maat) {
|
|
56
|
+
const code = stickerFormaatCode(maat.breedte_mm, maat.hoogte_mm);
|
|
57
|
+
const { data } = await db
|
|
58
|
+
.from("document_formaat_printers")
|
|
59
|
+
.select("printer_id, formaat_code")
|
|
60
|
+
.eq("documenttype", documenttype)
|
|
61
|
+
.not("printer_id", "is", null);
|
|
62
|
+
const rijen = Array.isArray(data) ? data : [];
|
|
63
|
+
// Formaatcodes zijn bv. "STICKER_100x150"; vergelijk alleen de maat, in beide richtingen.
|
|
64
|
+
const passend = rijen.find((r) => {
|
|
65
|
+
const m = /(\d+)\s*x\s*(\d+)\s*$/i.exec(String(r.formaat_code ?? ""));
|
|
66
|
+
return !!m && stickerFormaatCode(Number(m[1]), Number(m[2])) === code;
|
|
67
|
+
});
|
|
68
|
+
const id = passend?.printer_id;
|
|
69
|
+
if (!id)
|
|
70
|
+
return null;
|
|
71
|
+
const { data: p } = await db.from("printers").select("*").eq("id", id).eq("actief", true).maybeSingle();
|
|
72
|
+
return p ?? null;
|
|
73
|
+
}
|
|
43
74
|
async function log(db, jobId, gebeurtenis, detail) {
|
|
44
75
|
await db.from("print_job_logs").insert({
|
|
45
76
|
job_id: jobId,
|
|
@@ -1351,7 +1382,24 @@ async function verwerkJob(db, job) {
|
|
|
1351
1382
|
const keuze = klaar ? { layout: null, ontwerpWint: false } : await zoekLayout(db, job);
|
|
1352
1383
|
klok.markeer("layout_resolved");
|
|
1353
1384
|
const layout = keuze.layout;
|
|
1385
|
+
// Klantsticker/traysticker: maat vaststellen (Floriday-formaat, anders de
|
|
1386
|
+
// PDF). Onbekend = niet printen. De maat kiest ook de printer via de
|
|
1387
|
+
// formaatregels, zodat een sticker op een etiket komt dat groot genoeg is.
|
|
1388
|
+
let stickerMaat = null;
|
|
1389
|
+
if (klaar && ETIKET_PDF_SOORTEN.has(String(job.documenttype ?? ""))) {
|
|
1390
|
+
stickerMaat = bepaalStickerMaat(floridayStickerMaat(job.payload), pdfPaginaMm(klaar));
|
|
1391
|
+
if (!stickerMaat)
|
|
1392
|
+
throw new GeenDocumentFout(STICKER_MAAT_ONBEKEND);
|
|
1393
|
+
await faseLog(db, job.id, "sticker_maat", { bron: stickerMaat.bron, breedte_mm: stickerMaat.breedte_mm, hoogte_mm: stickerMaat.hoogte_mm });
|
|
1394
|
+
}
|
|
1354
1395
|
const printerKeuze = await zoekPrinter(db, job, layout);
|
|
1396
|
+
if (stickerMaat) {
|
|
1397
|
+
const viaFormaat = await printerVoorStickerFormaat(db, String(job.documenttype), stickerMaat);
|
|
1398
|
+
if (viaFormaat) {
|
|
1399
|
+
printerKeuze.printer = viaFormaat;
|
|
1400
|
+
await log(db, job.id, "formaat", `Printer gekozen via de formaatregel ${stickerFormaatCode(stickerMaat.breedte_mm, stickerMaat.hoogte_mm)}.`);
|
|
1401
|
+
}
|
|
1402
|
+
}
|
|
1355
1403
|
klok.markeer("printer_resolved");
|
|
1356
1404
|
const printer = printerKeuze.printer;
|
|
1357
1405
|
if (!printer || !printer.extern_printer_id) {
|
|
@@ -1388,23 +1436,33 @@ async function verwerkJob(db, job) {
|
|
|
1388
1436
|
const uitkomst = { bron: floriday ? "floriday_1op1" : "extern_pdf" };
|
|
1389
1437
|
let pdfBase64 = klaar;
|
|
1390
1438
|
if (!pdfBase64) {
|
|
1391
|
-
const
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1439
|
+
const opmaakStart = Date.now();
|
|
1440
|
+
await faseLog(db, job.id, "opmaken_gestart", { layout_id: layout?.id ?? null });
|
|
1441
|
+
pdfBase64 = await metTijdslimiet(OPMAAK_LIMIET_MS, async () => {
|
|
1442
|
+
const html = await bouwHtml(db, job, keuze, uitkomst);
|
|
1443
|
+
await faseLog(db, job.id, "html_klaar", { ms: Date.now() - opmaakStart, tekens: html.length });
|
|
1444
|
+
if (!heeftZichtbareInhoud(html)) {
|
|
1445
|
+
throw new GeenDocumentFout("Het document was leeg: er zijn geen gegevens gevonden om af te drukken. " +
|
|
1446
|
+
"Controleer of de layout blokken bevat en of de order gegevens heeft.");
|
|
1447
|
+
}
|
|
1448
|
+
// Een voorbeeldafdruk koppelt bewust geen layout (het meegestuurde
|
|
1449
|
+
// ontwerp is leidend), maar geeft wél het papierformaat van de bewerkte
|
|
1450
|
+
// layout mee. Zonder dit zou het voorbeeld altijd op A4 uitkomen.
|
|
1451
|
+
const vf = (job.payload ?? {})["voorbeeld_formaat"];
|
|
1452
|
+
const liggend = String(layout?.orientatie ?? vf?.["orientatie"] ?? "portrait") === "landscape";
|
|
1453
|
+
const pdf = await htmlNaarPdfServer({
|
|
1454
|
+
html,
|
|
1455
|
+
breedteMm: Number(layout?.breedte_mm ?? vf?.["breedte_mm"] ?? 210),
|
|
1456
|
+
hoogteMm: Number(layout?.hoogte_mm ?? vf?.["hoogte_mm"] ?? 297),
|
|
1457
|
+
margeMm: Number(layout?.marge_boven ?? vf?.["marge_boven"] ?? 10),
|
|
1458
|
+
landschap: liggend,
|
|
1459
|
+
bijOvergeslagen: (src, reden) => {
|
|
1460
|
+
void faseLog(db, job.id, "afbeelding_weggelaten", { bron: src.split("?")[0]?.slice(0, 200), reden });
|
|
1461
|
+
},
|
|
1462
|
+
});
|
|
1463
|
+
return pdf;
|
|
1407
1464
|
});
|
|
1465
|
+
await faseLog(db, job.id, "pdf_klaar", { ms: Date.now() - opmaakStart, bytes: Math.round((pdfBase64.length * 3) / 4) });
|
|
1408
1466
|
}
|
|
1409
1467
|
klok.markeer("rendered");
|
|
1410
1468
|
if (await isJobGeannuleerd(db, String(job.id))) {
|
|
@@ -1417,8 +1475,8 @@ async function verwerkJob(db, job) {
|
|
|
1417
1475
|
const hoogteMm = Number(layout?.hoogte_mm ?? vfPapier?.["hoogte_mm"] ?? standaardMaat(printer).hoogte);
|
|
1418
1476
|
let papier = kiesPapier(formaten, breedteMm, hoogteMm);
|
|
1419
1477
|
if (label) {
|
|
1420
|
-
const maat = (klaar ? pdfPaginaMm(pdfBase64) : null) ?? { breedte_mm: breedteMm, hoogte_mm: hoogteMm };
|
|
1421
|
-
const uit = etiketPast({ ...maat, soortLabel: documentTypeLabelVoor(String(job.documenttype ?? "Document")) }, label.etiket, label.naam);
|
|
1478
|
+
const maat = stickerMaat ?? (klaar ? pdfPaginaMm(pdfBase64) : null) ?? { breedte_mm: breedteMm, hoogte_mm: hoogteMm };
|
|
1479
|
+
const uit = etiketPast({ ...maat, soortLabel: documentTypeLabelVoor(String(job.documenttype ?? "Document")) }, label.etiket, label.naam, !!stickerMaat);
|
|
1422
1480
|
if (!uit.ok) {
|
|
1423
1481
|
await geweigerd(db, job, uit.code, uit.bericht);
|
|
1424
1482
|
return "mislukt";
|
|
@@ -1502,7 +1560,10 @@ async function verwerkJob(db, job) {
|
|
|
1502
1560
|
return await wachtOpLayout(db, job, e.message);
|
|
1503
1561
|
}
|
|
1504
1562
|
// Ontbreekt er een document of layout? Dan heeft opnieuw proberen geen zin.
|
|
1505
|
-
|
|
1563
|
+
if (e instanceof OpmaakTeLangFout || e instanceof AfbeeldingInhoudFout) {
|
|
1564
|
+
await faseLog(db, job.id, "fout", { fase: e instanceof OpmaakTeLangFout ? "opmaken" : "afbeelding", fout: e.message });
|
|
1565
|
+
}
|
|
1566
|
+
const blijvend = e instanceof GeenDocumentFout || e instanceof OpmaakTeLangFout || e instanceof AfbeeldingInhoudFout;
|
|
1506
1567
|
const tijdelijk = !blijvend && (e instanceof PdfRenderFout || e?.name === "PrintToegangFout");
|
|
1507
1568
|
await mislukt(db, job, e instanceof Error ? e.message : "Afdrukken mislukt", tijdelijk);
|
|
1508
1569
|
return "mislukt";
|
|
@@ -200,7 +200,7 @@ export const opnieuwPrinten = createServerFn({ method: "POST" })
|
|
|
200
200
|
_print_plek_id: payload["print_plek_id"] ?? null,
|
|
201
201
|
_werkplek: payload["werkplek"] ?? null,
|
|
202
202
|
_kopieen: Number(job["kopieen"] ?? 1),
|
|
203
|
-
_payload: { ...payload, opnieuw_van: job["id"] },
|
|
203
|
+
_payload: { ...payload, opnieuw_van: job["id"], herprint_alleen_dit_document: true },
|
|
204
204
|
});
|
|
205
205
|
if (e) {
|
|
206
206
|
const { leesbareFout } = await import("./foutTekst.js");
|
|
@@ -224,7 +224,7 @@ export const opnieuwPrinten = createServerFn({ method: "POST" })
|
|
|
224
224
|
render_html: job["render_html"] ?? null,
|
|
225
225
|
is_herprint: true,
|
|
226
226
|
bron_job_id: job["id"],
|
|
227
|
-
payload: { ...payload, is_herprint: true, bron_job_id: job["id"] },
|
|
227
|
+
payload: { ...payload, is_herprint: true, herprint_alleen_dit_document: true, bron_job_id: job["id"] },
|
|
228
228
|
})
|
|
229
229
|
.select("id")
|
|
230
230
|
.single();
|
|
@@ -136,7 +136,7 @@ export declare function printerGebruik(printerId: string): Promise<PrinterGebrui
|
|
|
136
136
|
/** Zet alle verwijzingen in één keer over naar `nieuw` (of `null` = geen printer). */
|
|
137
137
|
export declare function vervangPrinterOveral(oud: string, nieuw: string | null): Promise<Record<string, number>>;
|
|
138
138
|
/** De printplek waar een computer/werkplek bij hoort, of `null`. */
|
|
139
|
-
export declare function printplekVoorComputer(computerNaam: string): Promise<string | null>;
|
|
139
|
+
export declare function printplekVoorComputer(computerNaam: string, printnodeComputerId?: number | string | null): Promise<string | null>;
|
|
140
140
|
/** Naam van een printplek, voor nette foutmeldingen. */
|
|
141
141
|
export declare function printplekNaam(printPlekId: string): Promise<string | null>;
|
|
142
142
|
/**
|
|
@@ -154,4 +154,20 @@ export declare function useKoppelingVoorBron(bron: string, bronId: string, label
|
|
|
154
154
|
ontkoppel: () => Promise<void>;
|
|
155
155
|
herlaad: () => Promise<void>;
|
|
156
156
|
};
|
|
157
|
+
export interface PrinterVerwijzingen {
|
|
158
|
+
printplek_regels: number;
|
|
159
|
+
werkplek_regels: {
|
|
160
|
+
werkplek: string;
|
|
161
|
+
documenttype: string;
|
|
162
|
+
}[];
|
|
163
|
+
werkplekken: {
|
|
164
|
+
naam: string;
|
|
165
|
+
rol: string;
|
|
166
|
+
}[];
|
|
167
|
+
}
|
|
168
|
+
/** Wat verwijst nog naar deze printer (printplekregels, uitzonderingen, werkplekken)? */
|
|
169
|
+
export declare function printerVerwijzingen(printPlekId: string, printerId: string): Promise<PrinterVerwijzingen>;
|
|
170
|
+
/** Aantal lege regels dat deze printer terug kan krijgen (herkend op PrintNode-nummer). */
|
|
171
|
+
export declare function printerHerstelVoorstel(printPlekId: string, printerId: string): Promise<number>;
|
|
172
|
+
export declare function printerHerstelUitvoeren(printPlekId: string, printerId: string): Promise<number>;
|
|
157
173
|
//# sourceMappingURL=printplekken.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printplekken.d.ts","sourceRoot":"","sources":["../../src/lib/printplekken.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"printplekken.d.ts","sourceRoot":"","sources":["../../src/lib/printplekken.ts"],"names":[],"mappings":"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"}
|
|
@@ -310,7 +310,19 @@ export async function vervangPrinterOveral(oud, nieuw) {
|
|
|
310
310
|
return (data ?? {});
|
|
311
311
|
}
|
|
312
312
|
/** De printplek waar een computer/werkplek bij hoort, of `null`. */
|
|
313
|
-
export async function printplekVoorComputer(computerNaam) {
|
|
313
|
+
export async function printplekVoorComputer(computerNaam, printnodeComputerId) {
|
|
314
|
+
// Eerst op PrintNode-computernummer (vast), pas daarna op naam voor rijen zonder nummer.
|
|
315
|
+
const nr = printnodeComputerId != null && String(printnodeComputerId).trim() !== "" ? Number(printnodeComputerId) : NaN;
|
|
316
|
+
if (Number.isFinite(nr)) {
|
|
317
|
+
const { data } = await supabase
|
|
318
|
+
.from("print_plek_computers")
|
|
319
|
+
.select("print_plek_id")
|
|
320
|
+
.eq("printnode_computer_id", nr)
|
|
321
|
+
.limit(1);
|
|
322
|
+
const rij = Array.isArray(data) ? data[0] : undefined;
|
|
323
|
+
if (rij?.print_plek_id)
|
|
324
|
+
return rij.print_plek_id;
|
|
325
|
+
}
|
|
314
326
|
const naam = (computerNaam ?? "").trim();
|
|
315
327
|
if (!naam)
|
|
316
328
|
return null;
|
|
@@ -318,8 +330,10 @@ export async function printplekVoorComputer(computerNaam) {
|
|
|
318
330
|
.from("print_plek_computers")
|
|
319
331
|
.select("print_plek_id")
|
|
320
332
|
.eq("computer_naam", naam)
|
|
321
|
-
.
|
|
322
|
-
|
|
333
|
+
.is("printnode_computer_id", null)
|
|
334
|
+
.limit(1);
|
|
335
|
+
const rij = Array.isArray(data) ? data[0] : undefined;
|
|
336
|
+
return rij?.print_plek_id ?? null;
|
|
323
337
|
}
|
|
324
338
|
/** Naam van een printplek, voor nette foutmeldingen. */
|
|
325
339
|
export async function printplekNaam(printPlekId) {
|
|
@@ -376,3 +390,28 @@ export function useKoppelingVoorBron(bron, bronId, label) {
|
|
|
376
390
|
herlaad: lees,
|
|
377
391
|
};
|
|
378
392
|
}
|
|
393
|
+
/** Wat verwijst nog naar deze printer (printplekregels, uitzonderingen, werkplekken)? */
|
|
394
|
+
export async function printerVerwijzingen(printPlekId, printerId) {
|
|
395
|
+
const { data, error } = await supabase.rpc("printer_verwijder_verwijzingen", { _plek: printPlekId, _printer: printerId });
|
|
396
|
+
if (error)
|
|
397
|
+
throw error;
|
|
398
|
+
const d = (data ?? {});
|
|
399
|
+
return {
|
|
400
|
+
printplek_regels: Number(d.printplek_regels ?? 0),
|
|
401
|
+
werkplek_regels: Array.isArray(d.werkplek_regels) ? d.werkplek_regels : [],
|
|
402
|
+
werkplekken: Array.isArray(d.werkplekken) ? d.werkplekken : [],
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
/** Aantal lege regels dat deze printer terug kan krijgen (herkend op PrintNode-nummer). */
|
|
406
|
+
export async function printerHerstelVoorstel(printPlekId, printerId) {
|
|
407
|
+
const { data, error } = await supabase.rpc("printer_herstel_voorstel", { _plek: printPlekId, _printer: printerId });
|
|
408
|
+
if (error)
|
|
409
|
+
throw error;
|
|
410
|
+
return Number(data ?? 0);
|
|
411
|
+
}
|
|
412
|
+
export async function printerHerstelUitvoeren(printPlekId, printerId) {
|
|
413
|
+
const { data, error } = await supabase.rpc("printer_herstel_uitvoeren", { _plek: printPlekId, _printer: printerId });
|
|
414
|
+
if (error)
|
|
415
|
+
throw error;
|
|
416
|
+
return Number(data ?? 0);
|
|
417
|
+
}
|
|
@@ -171,7 +171,7 @@ function groepHtml(groep, config, velden, data, opties) {
|
|
|
171
171
|
velden["product.afbeelding"] ??
|
|
172
172
|
String(zoekRegels(data).find((r) => r["afbeelding"])?.["afbeelding"] ?? "");
|
|
173
173
|
delen.push(url
|
|
174
|
-
? `<img src="${esc(url)}" style="height:35mm" />`
|
|
174
|
+
? `<img src="${esc(url)}" data-inhoud="1" style="height:35mm" />`
|
|
175
175
|
: `<div class="lijnveld hoog"></div>`);
|
|
176
176
|
}
|
|
177
177
|
else if (inst.key === "handtekening") {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Moduleversie van deze code. Gelijk houden aan package.json (test bewaakt dit). */
|
|
2
|
-
export declare const MODULE_VERSIE = "1.
|
|
2
|
+
export declare const MODULE_VERSIE = "1.63.1";
|
|
3
3
|
export declare function normaliseerAdres(u: unknown): string | null;
|
|
4
4
|
/** -1 als a < b, 0 als gelijk, 1 als a > b (alleen cijfers, punt-gescheiden). */
|
|
5
5
|
export declare function vergelijkVersie(a: string, b: string): number;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// database. Niets vast in code; ontbreekt het adres, dan wordt er niet geprint.
|
|
5
5
|
// ============================================================================
|
|
6
6
|
/** Moduleversie van deze code. Gelijk houden aan package.json (test bewaakt dit). */
|
|
7
|
-
export const MODULE_VERSIE = "1.
|
|
7
|
+
export const MODULE_VERSIE = "1.63.1";
|
|
8
8
|
export function normaliseerAdres(u) {
|
|
9
9
|
const s = String(u ?? "").trim().replace(/\/+$/, "").toLowerCase();
|
|
10
10
|
return s || null;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type StickerMaat = {
|
|
2
|
+
breedte_mm: number;
|
|
3
|
+
hoogte_mm: number;
|
|
4
|
+
bron: "floriday" | "pdf";
|
|
5
|
+
};
|
|
6
|
+
/** Leest widthInMm/heightInMm uit de payload (ook genest onder sticker/customerSticker). */
|
|
7
|
+
export declare function floridayStickerMaat(payload: unknown): {
|
|
8
|
+
breedte_mm: number;
|
|
9
|
+
hoogte_mm: number;
|
|
10
|
+
} | null;
|
|
11
|
+
export declare function bepaalStickerMaat(floriday: {
|
|
12
|
+
breedte_mm: number;
|
|
13
|
+
hoogte_mm: number;
|
|
14
|
+
} | null, pdf: {
|
|
15
|
+
breedte_mm: number;
|
|
16
|
+
hoogte_mm: number;
|
|
17
|
+
} | null): StickerMaat | null;
|
|
18
|
+
export declare const STICKER_MAAT_ONBEKEND = "De maat van deze klantsticker is onbekend; er is niets geprint.";
|
|
19
|
+
/** Formaatcode voor de formaatregels: "48x48" (kleinste maat eerst, hele mm). */
|
|
20
|
+
export declare function stickerFormaatCode(b: number, h: number): string;
|
|
21
|
+
//# sourceMappingURL=stickerFormaat.d.ts.map
|
|
@@ -0,0 +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,CAYtG;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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// src/lib/stickerFormaat.ts — maat van een klantsticker en of die past.
|
|
3
|
+
// Volgorde: formaat uit Floriday (widthInMm/heightInMm) → maat uit de PDF →
|
|
4
|
+
// onbekend = niet printen. Een sticker wordt nooit geschaald.
|
|
5
|
+
// ============================================================================
|
|
6
|
+
const getal = (v) => {
|
|
7
|
+
const n = Number(v);
|
|
8
|
+
return Number.isFinite(n) && n > 0 ? n : null;
|
|
9
|
+
};
|
|
10
|
+
/** Leest widthInMm/heightInMm uit de payload (ook genest onder sticker/customerSticker). */
|
|
11
|
+
export function floridayStickerMaat(payload) {
|
|
12
|
+
if (!payload || typeof payload !== "object")
|
|
13
|
+
return null;
|
|
14
|
+
const p = payload;
|
|
15
|
+
const kandidaten = [p, p["sticker"], p["customerSticker"], p["customer_sticker"], p["data"]];
|
|
16
|
+
for (const k of kandidaten) {
|
|
17
|
+
if (!k || typeof k !== "object")
|
|
18
|
+
continue;
|
|
19
|
+
const r = k;
|
|
20
|
+
const b = getal(r["widthInMm"] ?? r["sticker_width_mm"]);
|
|
21
|
+
const h = getal(r["heightInMm"] ?? r["sticker_height_mm"]);
|
|
22
|
+
if (b && h)
|
|
23
|
+
return { breedte_mm: b, hoogte_mm: h };
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
export function bepaalStickerMaat(floriday, pdf) {
|
|
28
|
+
if (floriday)
|
|
29
|
+
return { ...floriday, bron: "floriday" };
|
|
30
|
+
if (pdf && pdf.breedte_mm > 0 && pdf.hoogte_mm > 0)
|
|
31
|
+
return { ...pdf, bron: "pdf" };
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
export const STICKER_MAAT_ONBEKEND = "De maat van deze klantsticker is onbekend; er is niets geprint.";
|
|
35
|
+
/** Formaatcode voor de formaatregels: "48x48" (kleinste maat eerst, hele mm). */
|
|
36
|
+
export function stickerFormaatCode(b, h) {
|
|
37
|
+
const [x, y] = [Math.round(b), Math.round(h)].sort((p, q) => p - q);
|
|
38
|
+
return `${x}x${y}`;
|
|
39
|
+
}
|
|
@@ -131,7 +131,7 @@ export async function verstuurTestprint(documenttype, ctx) {
|
|
|
131
131
|
printerId,
|
|
132
132
|
...(printplekId ? { printplekId } : {}),
|
|
133
133
|
...(werkplek ? { werkplek } : {}),
|
|
134
|
-
payload: { test_id: testId, is_testprint: true },
|
|
134
|
+
payload: { test_id: testId, is_testprint: true, is_test: true },
|
|
135
135
|
});
|
|
136
136
|
return { jobId, printerId };
|
|
137
137
|
}
|