@flowselections/layout-maker 1.22.3 → 1.23.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/AfdrukKnop.d.ts +19 -19
- package/dist-lib/components/AfdrukKnop.d.ts.map +1 -1
- package/dist-lib/components/NetwerkPrintersDialog.d.ts +7 -7
- package/dist-lib/components/NetwerkPrintersDialog.d.ts.map +1 -1
- package/dist-lib/components/PrinterSetupWizard.d.ts.map +1 -1
- package/dist-lib/components/PrinterSetupWizard.js +77 -30
- package/dist-lib/index.d.ts +2 -5
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +1 -3
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +9 -0
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +9 -0
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +9 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/aiLayout.functions.d.ts +9 -0
- package/dist-lib/lib/aiLayout.functions.d.ts.map +1 -1
- package/dist-lib/lib/browserPrint.d.ts +0 -23
- package/dist-lib/lib/browserPrint.d.ts.map +1 -1
- package/dist-lib/lib/browserPrint.js +3 -48
- package/dist-lib/lib/papierFormaten.d.ts +30 -0
- package/dist-lib/lib/papierFormaten.d.ts.map +1 -0
- package/dist-lib/lib/papierFormaten.js +106 -0
- package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/printQueue.server.js +44 -2
- package/dist-lib/lib/printService.functions.d.ts +36 -0
- package/dist-lib/lib/printService.functions.d.ts.map +1 -1
- package/dist-lib/lib/printService.server.d.ts +20 -0
- package/dist-lib/lib/printService.server.d.ts.map +1 -1
- package/dist-lib/lib/printService.server.js +24 -0
- package/dist-lib/lib/testpagina.d.ts.map +1 -1
- package/dist-lib/lib/testpagina.js +27 -22
- package/dist-lib/lib/useDocumentData.d.ts +1 -6
- package/dist-lib/lib/useDocumentData.d.ts.map +1 -1
- package/package.json +139 -139
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
// ============================================================================
|
|
2
|
-
// src/lib/browserPrint.ts —
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
// De browser mag zelf geen printer kiezen; wel zetten we papierformaat en
|
|
6
|
-
// oriëntatie vooraf goed, zodat de gebruiker in het printvenster niets meer
|
|
7
|
-
// hoeft aan te passen behalve — indien nodig — de printernaam.
|
|
2
|
+
// src/lib/browserPrint.ts — hulpfuncties rond papierformaat en de bedoelde
|
|
3
|
+
// printer. Afdrukken zelf gebeurt altijd via PrintNode (zie printApi); het
|
|
4
|
+
// browser-printvenster wordt niet meer gebruikt.
|
|
8
5
|
// ============================================================================
|
|
9
6
|
import { supabase } from "./supabaseClient.js";
|
|
10
7
|
import { documentProfiel } from "./documentProfiles.js";
|
|
@@ -64,45 +61,3 @@ export async function bedoeldePrinter(documenttype, formaatCode) {
|
|
|
64
61
|
.maybeSingle();
|
|
65
62
|
return data ?? null;
|
|
66
63
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Opent het printvenster met het juiste papierformaat en de juiste stand.
|
|
69
|
-
* Geeft terug welke printer volgens de instellingen gekozen moet worden.
|
|
70
|
-
*
|
|
71
|
-
* @deprecated Verouderd — alle afdrukken lopen via PrintNode. Gebruik
|
|
72
|
-
* `printHtml()` of `printPdf()` uit `printApi`. Deze functie blijft nog één
|
|
73
|
-
* versie beschikbaar zodat bestaande shells niet breken.
|
|
74
|
-
*/
|
|
75
|
-
export async function drukAf(opdracht) {
|
|
76
|
-
const printer = await bedoeldePrinter(opdracht.documenttype, opdracht.formaatCode);
|
|
77
|
-
const formaat = opdracht.formaatCode
|
|
78
|
-
? formaatDef(opdracht.documenttype, opdracht.formaatCode)
|
|
79
|
-
: null;
|
|
80
|
-
if (typeof window === "undefined")
|
|
81
|
-
return { printer };
|
|
82
|
-
const frame = document.createElement("iframe");
|
|
83
|
-
frame.setAttribute("aria-hidden", "true");
|
|
84
|
-
frame.style.position = "fixed";
|
|
85
|
-
frame.style.right = "0";
|
|
86
|
-
frame.style.bottom = "0";
|
|
87
|
-
frame.style.width = "0";
|
|
88
|
-
frame.style.height = "0";
|
|
89
|
-
frame.style.border = "0";
|
|
90
|
-
document.body.appendChild(frame);
|
|
91
|
-
const doc = frame.contentDocument;
|
|
92
|
-
if (!doc) {
|
|
93
|
-
frame.remove();
|
|
94
|
-
return { printer };
|
|
95
|
-
}
|
|
96
|
-
doc.open();
|
|
97
|
-
doc.write(`<!doctype html><html><head><meta charset="utf-8" />
|
|
98
|
-
<title>${opdracht.documentnaam ?? "Document"}</title>
|
|
99
|
-
<style>${paginaCss(formaat, opdracht.orientatie, opdracht.margeMm ?? 0)}
|
|
100
|
-
body { font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
|
|
101
|
-
${opdracht.css ?? ""}</style></head><body>${opdracht.html}</body></html>`);
|
|
102
|
-
doc.close();
|
|
103
|
-
await new Promise((r) => setTimeout(r, 250));
|
|
104
|
-
frame.contentWindow?.focus();
|
|
105
|
-
frame.contentWindow?.print();
|
|
106
|
-
setTimeout(() => frame.remove(), 60000);
|
|
107
|
-
return { printer };
|
|
108
|
-
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Papierformaten van een printer: naam -> [breedte, hoogte] in 0,01 mm. */
|
|
2
|
+
export type PrinterFormaten = Record<string, [number, number] | number[]>;
|
|
3
|
+
export interface FormaatKeuze {
|
|
4
|
+
/** Naam zoals de printer die kent, of null als er geen match is. */
|
|
5
|
+
paper: string | null;
|
|
6
|
+
/** Draaihoek: 0 voor staand, 90 voor liggend. */
|
|
7
|
+
rotate: 0 | 90;
|
|
8
|
+
/** Leesbare uitleg (voor de wachtrij en de testprint). */
|
|
9
|
+
uitleg: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Zoekt de papiernaam die het dichtst bij de gevraagde maat ligt.
|
|
13
|
+
* Marge: 2 mm per zijde. Draaiing telt mee (liggend papier mag ook).
|
|
14
|
+
*/
|
|
15
|
+
export declare function kiesPapier(formaten: PrinterFormaten | null | undefined, breedteMm: number, hoogteMm: number, margeMm?: number): FormaatKeuze;
|
|
16
|
+
export interface PrinterFormaatOptie {
|
|
17
|
+
/** Naam zoals de printer die kent. */
|
|
18
|
+
naam: string;
|
|
19
|
+
breedte: number;
|
|
20
|
+
hoogte: number;
|
|
21
|
+
/** Formaatcode van de module (A4, LABEL_100x62, …) of een vrije code. */
|
|
22
|
+
code: string;
|
|
23
|
+
/** Leesbare omschrijving voor in de lijst. */
|
|
24
|
+
label: string;
|
|
25
|
+
}
|
|
26
|
+
/** Formaatcode van de module die het dichtst bij deze maat ligt. */
|
|
27
|
+
export declare function formaatCodeVoorMaat(breedteMm: number, hoogteMm: number, margeMm?: number): string;
|
|
28
|
+
/** De formaten van een printer als nette, gesorteerde keuzelijst. */
|
|
29
|
+
export declare function printerFormaatOpties(formaten: PrinterFormaten | null | undefined): PrinterFormaatOptie[];
|
|
30
|
+
//# sourceMappingURL=papierFormaten.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"papierFormaten.d.ts","sourceRoot":"","sources":["../../src/lib/papierFormaten.ts"],"names":[],"mappings":"AAWA,4EAA4E;AAC5E,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAE1E,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iDAAiD;IACjD,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IACf,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAUD;;;GAGG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EAC5C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAI,GACV,YAAY,CAyCd;AAQD,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,MAAM,CAe5F;AAED,qEAAqE;AACrE,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,GAC3C,mBAAmB,EAAE,CAuBvB"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// src/lib/papierFormaten.ts — het juiste papierformaat van de printer kiezen.
|
|
3
|
+
//
|
|
4
|
+
// De printdienst levert per printer een lijst met papierformaten die die
|
|
5
|
+
// printer aankan, met naam en afmeting in honderdsten van een millimeter
|
|
6
|
+
// (A4 = [2100, 2970]). Hier zoeken we de naam die past bij de maat van onze
|
|
7
|
+
// layout, zodat de opdracht op het juiste papier uitkomt.
|
|
8
|
+
// ============================================================================
|
|
9
|
+
import { PAPIERFORMATEN } from "./documentTypes.js";
|
|
10
|
+
const arrGetal = (v) => Array.isArray(v) ? v.map((n) => Number(n)).filter((n) => Number.isFinite(n)) : [];
|
|
11
|
+
/** Zet een waarde uit de printerlijst om naar millimeters. */
|
|
12
|
+
function naarMm(waarde) {
|
|
13
|
+
return waarde / 100;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Zoekt de papiernaam die het dichtst bij de gevraagde maat ligt.
|
|
17
|
+
* Marge: 2 mm per zijde. Draaiing telt mee (liggend papier mag ook).
|
|
18
|
+
*/
|
|
19
|
+
export function kiesPapier(formaten, breedteMm, hoogteMm, margeMm = 2) {
|
|
20
|
+
const liggend = breedteMm > hoogteMm;
|
|
21
|
+
const rotate = liggend ? 90 : 0;
|
|
22
|
+
if (!formaten || typeof formaten !== "object" || Array.isArray(formaten)) {
|
|
23
|
+
return {
|
|
24
|
+
paper: null,
|
|
25
|
+
rotate,
|
|
26
|
+
uitleg: "Papierformaten van deze printer zijn niet bekend; de printer gebruikt zijn eigen standaardpapier.",
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
// Bij liggend werk vragen we het staande papier op; de draaiing regelt de rest.
|
|
30
|
+
const doelKort = Math.min(breedteMm, hoogteMm);
|
|
31
|
+
const doelLang = Math.max(breedteMm, hoogteMm);
|
|
32
|
+
let beste = null;
|
|
33
|
+
for (const [naam, maat] of Object.entries(formaten)) {
|
|
34
|
+
const m = arrGetal(maat);
|
|
35
|
+
if (m.length < 2)
|
|
36
|
+
continue;
|
|
37
|
+
const kort = Math.min(naarMm(m[0]), naarMm(m[1]));
|
|
38
|
+
const lang = Math.max(naarMm(m[0]), naarMm(m[1]));
|
|
39
|
+
const afwijking = Math.abs(kort - doelKort) + Math.abs(lang - doelLang);
|
|
40
|
+
if (afwijking <= margeMm * 2 && (!beste || afwijking < beste.afwijking)) {
|
|
41
|
+
beste = { naam, afwijking };
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const maat = `${Math.round(breedteMm)} × ${Math.round(hoogteMm)} mm`;
|
|
45
|
+
if (!beste) {
|
|
46
|
+
return {
|
|
47
|
+
paper: null,
|
|
48
|
+
rotate,
|
|
49
|
+
uitleg: `Deze printer kent geen papierformaat van ${maat}. Er wordt op het standaardpapier van de printer gedrukt; controleer of dat klopt.`,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
paper: beste.naam,
|
|
54
|
+
rotate,
|
|
55
|
+
uitleg: `Papier "${beste.naam}" (${maat})${liggend ? ", liggend" : ""}.`,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/** Formaatcode van de module die het dichtst bij deze maat ligt. */
|
|
59
|
+
export function formaatCodeVoorMaat(breedteMm, hoogteMm, margeMm = 2) {
|
|
60
|
+
const kort = Math.min(breedteMm, hoogteMm);
|
|
61
|
+
const lang = Math.max(breedteMm, hoogteMm);
|
|
62
|
+
let beste = null;
|
|
63
|
+
for (const p of PAPIERFORMATEN) {
|
|
64
|
+
if (p.code === "VRIJ")
|
|
65
|
+
continue;
|
|
66
|
+
const pKort = Math.min(p.breedte, p.hoogte);
|
|
67
|
+
const pLang = Math.max(p.breedte, p.hoogte);
|
|
68
|
+
const afwijking = Math.abs(pKort - kort) + Math.abs(pLang - lang);
|
|
69
|
+
if (afwijking <= margeMm * 2 && (!beste || afwijking < beste.afwijking)) {
|
|
70
|
+
beste = { code: p.code, afwijking };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (beste)
|
|
74
|
+
return beste.code;
|
|
75
|
+
return `MAAT_${Math.round(breedteMm)}x${Math.round(hoogteMm)}`;
|
|
76
|
+
}
|
|
77
|
+
/** De formaten van een printer als nette, gesorteerde keuzelijst. */
|
|
78
|
+
export function printerFormaatOpties(formaten) {
|
|
79
|
+
if (!formaten || typeof formaten !== "object" || Array.isArray(formaten))
|
|
80
|
+
return [];
|
|
81
|
+
const opties = [];
|
|
82
|
+
for (const [naam, maat] of Object.entries(formaten)) {
|
|
83
|
+
const m = arrGetal(maat);
|
|
84
|
+
if (m.length < 2)
|
|
85
|
+
continue;
|
|
86
|
+
const breedte = Math.round(naarMm(Math.min(m[0], m[1])));
|
|
87
|
+
const hoogte = Math.round(naarMm(Math.max(m[0], m[1])));
|
|
88
|
+
if (!breedte || !hoogte)
|
|
89
|
+
continue;
|
|
90
|
+
const code = formaatCodeVoorMaat(breedte, hoogte);
|
|
91
|
+
const bekend = PAPIERFORMATEN.find((p) => p.code === code);
|
|
92
|
+
opties.push({
|
|
93
|
+
naam,
|
|
94
|
+
breedte,
|
|
95
|
+
hoogte,
|
|
96
|
+
code,
|
|
97
|
+
label: bekend ? `${bekend.label.split(" (")[0]} (${breedte} × ${hoogte} mm)` : `${naam} (${breedte} × ${hoogte} mm)`,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
// Dubbele maten (dezelfde code) maar één keer tonen.
|
|
101
|
+
const uniek = new Map();
|
|
102
|
+
for (const o of opties)
|
|
103
|
+
if (!uniek.has(o.code))
|
|
104
|
+
uniek.set(o.code, o);
|
|
105
|
+
return [...uniek.values()].sort((a, b) => a.breedte * a.hoogte - b.breedte * b.hoogte);
|
|
106
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAiB5D,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/B,mFAAmF;AACnF,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW1E;AAeD,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAqF9D;;;GAGG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+BnF;AAgPD;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAoHzF;AAGD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAY1D;AAwLD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wEAAwE;AACxE,wBAAsB,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmBtF"}
|
|
@@ -10,6 +10,8 @@ import { profielHeeftInhoud, renderProfielDocument } from "./profielHtml.js";
|
|
|
10
10
|
import { bouwDocumentHtml } from "./layoutPreview.js";
|
|
11
11
|
import { htmlNaarPdfServer, PdfRenderFout } from "./htmlNaarPdf.server.js";
|
|
12
12
|
import { stuurPdfNaarPrinter, opdrachtStatus } from "./printService.server.js";
|
|
13
|
+
import { kiesPapier } from "./papierFormaten.js";
|
|
14
|
+
import { PAPIERFORMATEN } from "./documentTypes.js";
|
|
13
15
|
const MAX_POGINGEN = 3;
|
|
14
16
|
const arr = (v) => (Array.isArray(v) ? v : []);
|
|
15
17
|
/**
|
|
@@ -233,6 +235,41 @@ async function printplekNaamVoorJob(db, job) {
|
|
|
233
235
|
const { data } = await db.from("print_plekken").select("naam").eq("id", plekId).maybeSingle();
|
|
234
236
|
return String(data?.naam ?? "") || werkplek || null;
|
|
235
237
|
}
|
|
238
|
+
/** Afmeting die we aanhouden als de opdracht geen eigen layout heeft. */
|
|
239
|
+
function standaardMaat(printer) {
|
|
240
|
+
const code = String(printer?.papierformaat ?? "A4");
|
|
241
|
+
const def = PAPIERFORMATEN.find((p) => p.code === code);
|
|
242
|
+
return { breedte: def?.breedte ?? 210, hoogte: def?.hoogte ?? 297 };
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Haalt de papierformaten van de printer op zodra we die nog niet kennen of
|
|
246
|
+
* ze ouder zijn dan een dag, en bewaart ze bij de printer.
|
|
247
|
+
*/
|
|
248
|
+
async function zorgVoorFormaten(db, printer) {
|
|
249
|
+
const bestaand = printer?.ondersteunde_formaten ?? null;
|
|
250
|
+
const bijgewerkt = printer?.formaten_bijgewerkt_op
|
|
251
|
+
? Date.parse(String(printer.formaten_bijgewerkt_op))
|
|
252
|
+
: 0;
|
|
253
|
+
const vers = bijgewerkt > Date.now() - 24 * 60 * 60 * 1000;
|
|
254
|
+
if (bestaand && vers)
|
|
255
|
+
return bestaand;
|
|
256
|
+
try {
|
|
257
|
+
const { haalPrinterFormaten } = await import("./printService.server.js");
|
|
258
|
+
const info = await haalPrinterFormaten(String(printer.extern_printer_id));
|
|
259
|
+
await db
|
|
260
|
+
.from("printers")
|
|
261
|
+
.update({
|
|
262
|
+
ondersteunde_formaten: info.formaten,
|
|
263
|
+
ondersteunde_laden: info.laden,
|
|
264
|
+
formaten_bijgewerkt_op: new Date().toISOString(),
|
|
265
|
+
})
|
|
266
|
+
.eq("id", printer.id);
|
|
267
|
+
return info.formaten;
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
return bestaand ?? null;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
236
273
|
/** Bepaalt op welke printer de opdracht moet uitkomen. */
|
|
237
274
|
async function zoekPrinter(db, job, layout) {
|
|
238
275
|
const pak = async (id) => {
|
|
@@ -240,7 +277,7 @@ async function zoekPrinter(db, job, layout) {
|
|
|
240
277
|
return null;
|
|
241
278
|
const { data } = await db
|
|
242
279
|
.from("printers")
|
|
243
|
-
.select("id, naam, extern_printer_id, actief")
|
|
280
|
+
.select("id, naam, extern_printer_id, actief, papierformaat, ondersteunde_formaten, ondersteunde_laden, formaten_bijgewerkt_op")
|
|
244
281
|
.eq("id", id)
|
|
245
282
|
.maybeSingle();
|
|
246
283
|
return data && data.actief !== false ? data : null;
|
|
@@ -563,11 +600,16 @@ async function verwerkJob(db, job) {
|
|
|
563
600
|
landschap: liggend,
|
|
564
601
|
});
|
|
565
602
|
}
|
|
603
|
+
const formaten = await zorgVoorFormaten(db, printer);
|
|
604
|
+
const breedteMm = Number(layout?.breedte_mm ?? standaardMaat(printer).breedte);
|
|
605
|
+
const hoogteMm = Number(layout?.hoogte_mm ?? standaardMaat(printer).hoogte);
|
|
606
|
+
const papier = kiesPapier(formaten, breedteMm, hoogteMm);
|
|
566
607
|
const externJobId = await stuurPdfNaarPrinter({
|
|
567
608
|
externPrinterId: String(printer.extern_printer_id),
|
|
568
609
|
documentnaam: String(job.documentnaam ?? "Document"),
|
|
569
610
|
pdfBase64,
|
|
570
611
|
kopieen: Number(job.kopieen ?? 1),
|
|
612
|
+
opties: { paper: papier.paper, rotate: papier.rotate, fitToPage: false },
|
|
571
613
|
});
|
|
572
614
|
await db
|
|
573
615
|
.from("print_jobs")
|
|
@@ -580,7 +622,7 @@ async function verwerkJob(db, job) {
|
|
|
580
622
|
updated_at: new Date().toISOString(),
|
|
581
623
|
})
|
|
582
624
|
.eq("id", job.id);
|
|
583
|
-
await log(db, job.id, "verstuurd", `Naar printer ${printer.naam ?? ""}`);
|
|
625
|
+
await log(db, job.id, "verstuurd", `Naar printer ${printer.naam ?? ""}. ${papier.uitleg}`);
|
|
584
626
|
return "verstuurd";
|
|
585
627
|
}
|
|
586
628
|
catch (e) {
|
|
@@ -14016,6 +14016,7 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
|
|
|
14016
14016
|
created_at: string;
|
|
14017
14017
|
driver: string;
|
|
14018
14018
|
extern_printer_id: string | null;
|
|
14019
|
+
formaten_bijgewerkt_op: string | null;
|
|
14019
14020
|
id: string;
|
|
14020
14021
|
ip_adres: string | null;
|
|
14021
14022
|
laatst_gezien: string | null;
|
|
@@ -14023,6 +14024,8 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
|
|
|
14023
14024
|
merk: string;
|
|
14024
14025
|
naam: string;
|
|
14025
14026
|
omschrijving: string;
|
|
14027
|
+
ondersteunde_formaten: import("../integrations/supabase/types.js").Json | null;
|
|
14028
|
+
ondersteunde_laden: import("../integrations/supabase/types.js").Json | null;
|
|
14026
14029
|
online: boolean;
|
|
14027
14030
|
papierformaat: string;
|
|
14028
14031
|
poort: number | null;
|
|
@@ -14038,6 +14041,7 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
|
|
|
14038
14041
|
created_at?: string;
|
|
14039
14042
|
driver?: string;
|
|
14040
14043
|
extern_printer_id?: string | null;
|
|
14044
|
+
formaten_bijgewerkt_op?: string | null;
|
|
14041
14045
|
id?: string;
|
|
14042
14046
|
ip_adres?: string | null;
|
|
14043
14047
|
laatst_gezien?: string | null;
|
|
@@ -14045,6 +14049,8 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
|
|
|
14045
14049
|
merk?: string;
|
|
14046
14050
|
naam: string;
|
|
14047
14051
|
omschrijving?: string;
|
|
14052
|
+
ondersteunde_formaten?: import("../integrations/supabase/types.js").Json | null;
|
|
14053
|
+
ondersteunde_laden?: import("../integrations/supabase/types.js").Json | null;
|
|
14048
14054
|
online?: boolean;
|
|
14049
14055
|
papierformaat?: string;
|
|
14050
14056
|
poort?: number | null;
|
|
@@ -14060,6 +14066,7 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
|
|
|
14060
14066
|
created_at?: string;
|
|
14061
14067
|
driver?: string;
|
|
14062
14068
|
extern_printer_id?: string | null;
|
|
14069
|
+
formaten_bijgewerkt_op?: string | null;
|
|
14063
14070
|
id?: string;
|
|
14064
14071
|
ip_adres?: string | null;
|
|
14065
14072
|
laatst_gezien?: string | null;
|
|
@@ -14067,6 +14074,8 @@ export declare const netwerkPrinters: import("@tanstack/start-client-core").Opti
|
|
|
14067
14074
|
merk?: string;
|
|
14068
14075
|
naam?: string;
|
|
14069
14076
|
omschrijving?: string;
|
|
14077
|
+
ondersteunde_formaten?: import("../integrations/supabase/types.js").Json | null;
|
|
14078
|
+
ondersteunde_laden?: import("../integrations/supabase/types.js").Json | null;
|
|
14070
14079
|
online?: boolean;
|
|
14071
14080
|
papierformaat?: string;
|
|
14072
14081
|
poort?: number | null;
|
|
@@ -37224,6 +37233,7 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
|
|
|
37224
37233
|
created_at: string;
|
|
37225
37234
|
driver: string;
|
|
37226
37235
|
extern_printer_id: string | null;
|
|
37236
|
+
formaten_bijgewerkt_op: string | null;
|
|
37227
37237
|
id: string;
|
|
37228
37238
|
ip_adres: string | null;
|
|
37229
37239
|
laatst_gezien: string | null;
|
|
@@ -37231,6 +37241,8 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
|
|
|
37231
37241
|
merk: string;
|
|
37232
37242
|
naam: string;
|
|
37233
37243
|
omschrijving: string;
|
|
37244
|
+
ondersteunde_formaten: import("../integrations/supabase/types.js").Json | null;
|
|
37245
|
+
ondersteunde_laden: import("../integrations/supabase/types.js").Json | null;
|
|
37234
37246
|
online: boolean;
|
|
37235
37247
|
papierformaat: string;
|
|
37236
37248
|
poort: number | null;
|
|
@@ -37246,6 +37258,7 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
|
|
|
37246
37258
|
created_at?: string;
|
|
37247
37259
|
driver?: string;
|
|
37248
37260
|
extern_printer_id?: string | null;
|
|
37261
|
+
formaten_bijgewerkt_op?: string | null;
|
|
37249
37262
|
id?: string;
|
|
37250
37263
|
ip_adres?: string | null;
|
|
37251
37264
|
laatst_gezien?: string | null;
|
|
@@ -37253,6 +37266,8 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
|
|
|
37253
37266
|
merk?: string;
|
|
37254
37267
|
naam: string;
|
|
37255
37268
|
omschrijving?: string;
|
|
37269
|
+
ondersteunde_formaten?: import("../integrations/supabase/types.js").Json | null;
|
|
37270
|
+
ondersteunde_laden?: import("../integrations/supabase/types.js").Json | null;
|
|
37256
37271
|
online?: boolean;
|
|
37257
37272
|
papierformaat?: string;
|
|
37258
37273
|
poort?: number | null;
|
|
@@ -37268,6 +37283,7 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
|
|
|
37268
37283
|
created_at?: string;
|
|
37269
37284
|
driver?: string;
|
|
37270
37285
|
extern_printer_id?: string | null;
|
|
37286
|
+
formaten_bijgewerkt_op?: string | null;
|
|
37271
37287
|
id?: string;
|
|
37272
37288
|
ip_adres?: string | null;
|
|
37273
37289
|
laatst_gezien?: string | null;
|
|
@@ -37275,6 +37291,8 @@ export declare const verstuurPrintOpdracht: import("@tanstack/start-client-core"
|
|
|
37275
37291
|
merk?: string;
|
|
37276
37292
|
naam?: string;
|
|
37277
37293
|
omschrijving?: string;
|
|
37294
|
+
ondersteunde_formaten?: import("../integrations/supabase/types.js").Json | null;
|
|
37295
|
+
ondersteunde_laden?: import("../integrations/supabase/types.js").Json | null;
|
|
37278
37296
|
online?: boolean;
|
|
37279
37297
|
papierformaat?: string;
|
|
37280
37298
|
poort?: number | null;
|
|
@@ -60442,6 +60460,7 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
|
|
|
60442
60460
|
created_at: string;
|
|
60443
60461
|
driver: string;
|
|
60444
60462
|
extern_printer_id: string | null;
|
|
60463
|
+
formaten_bijgewerkt_op: string | null;
|
|
60445
60464
|
id: string;
|
|
60446
60465
|
ip_adres: string | null;
|
|
60447
60466
|
laatst_gezien: string | null;
|
|
@@ -60449,6 +60468,8 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
|
|
|
60449
60468
|
merk: string;
|
|
60450
60469
|
naam: string;
|
|
60451
60470
|
omschrijving: string;
|
|
60471
|
+
ondersteunde_formaten: import("../integrations/supabase/types.js").Json | null;
|
|
60472
|
+
ondersteunde_laden: import("../integrations/supabase/types.js").Json | null;
|
|
60452
60473
|
online: boolean;
|
|
60453
60474
|
papierformaat: string;
|
|
60454
60475
|
poort: number | null;
|
|
@@ -60464,6 +60485,7 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
|
|
|
60464
60485
|
created_at?: string;
|
|
60465
60486
|
driver?: string;
|
|
60466
60487
|
extern_printer_id?: string | null;
|
|
60488
|
+
formaten_bijgewerkt_op?: string | null;
|
|
60467
60489
|
id?: string;
|
|
60468
60490
|
ip_adres?: string | null;
|
|
60469
60491
|
laatst_gezien?: string | null;
|
|
@@ -60471,6 +60493,8 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
|
|
|
60471
60493
|
merk?: string;
|
|
60472
60494
|
naam: string;
|
|
60473
60495
|
omschrijving?: string;
|
|
60496
|
+
ondersteunde_formaten?: import("../integrations/supabase/types.js").Json | null;
|
|
60497
|
+
ondersteunde_laden?: import("../integrations/supabase/types.js").Json | null;
|
|
60474
60498
|
online?: boolean;
|
|
60475
60499
|
papierformaat?: string;
|
|
60476
60500
|
poort?: number | null;
|
|
@@ -60486,6 +60510,7 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
|
|
|
60486
60510
|
created_at?: string;
|
|
60487
60511
|
driver?: string;
|
|
60488
60512
|
extern_printer_id?: string | null;
|
|
60513
|
+
formaten_bijgewerkt_op?: string | null;
|
|
60489
60514
|
id?: string;
|
|
60490
60515
|
ip_adres?: string | null;
|
|
60491
60516
|
laatst_gezien?: string | null;
|
|
@@ -60493,6 +60518,8 @@ export declare const printStatus: import("@tanstack/start-client-core").Required
|
|
|
60493
60518
|
merk?: string;
|
|
60494
60519
|
naam?: string;
|
|
60495
60520
|
omschrijving?: string;
|
|
60521
|
+
ondersteunde_formaten?: import("../integrations/supabase/types.js").Json | null;
|
|
60522
|
+
ondersteunde_laden?: import("../integrations/supabase/types.js").Json | null;
|
|
60496
60523
|
online?: boolean;
|
|
60497
60524
|
papierformaat?: string;
|
|
60498
60525
|
poort?: number | null;
|
|
@@ -83654,6 +83681,7 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
|
|
|
83654
83681
|
created_at: string;
|
|
83655
83682
|
driver: string;
|
|
83656
83683
|
extern_printer_id: string | null;
|
|
83684
|
+
formaten_bijgewerkt_op: string | null;
|
|
83657
83685
|
id: string;
|
|
83658
83686
|
ip_adres: string | null;
|
|
83659
83687
|
laatst_gezien: string | null;
|
|
@@ -83661,6 +83689,8 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
|
|
|
83661
83689
|
merk: string;
|
|
83662
83690
|
naam: string;
|
|
83663
83691
|
omschrijving: string;
|
|
83692
|
+
ondersteunde_formaten: import("../integrations/supabase/types.js").Json | null;
|
|
83693
|
+
ondersteunde_laden: import("../integrations/supabase/types.js").Json | null;
|
|
83664
83694
|
online: boolean;
|
|
83665
83695
|
papierformaat: string;
|
|
83666
83696
|
poort: number | null;
|
|
@@ -83676,6 +83706,7 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
|
|
|
83676
83706
|
created_at?: string;
|
|
83677
83707
|
driver?: string;
|
|
83678
83708
|
extern_printer_id?: string | null;
|
|
83709
|
+
formaten_bijgewerkt_op?: string | null;
|
|
83679
83710
|
id?: string;
|
|
83680
83711
|
ip_adres?: string | null;
|
|
83681
83712
|
laatst_gezien?: string | null;
|
|
@@ -83683,6 +83714,8 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
|
|
|
83683
83714
|
merk?: string;
|
|
83684
83715
|
naam: string;
|
|
83685
83716
|
omschrijving?: string;
|
|
83717
|
+
ondersteunde_formaten?: import("../integrations/supabase/types.js").Json | null;
|
|
83718
|
+
ondersteunde_laden?: import("../integrations/supabase/types.js").Json | null;
|
|
83686
83719
|
online?: boolean;
|
|
83687
83720
|
papierformaat?: string;
|
|
83688
83721
|
poort?: number | null;
|
|
@@ -83698,6 +83731,7 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
|
|
|
83698
83731
|
created_at?: string;
|
|
83699
83732
|
driver?: string;
|
|
83700
83733
|
extern_printer_id?: string | null;
|
|
83734
|
+
formaten_bijgewerkt_op?: string | null;
|
|
83701
83735
|
id?: string;
|
|
83702
83736
|
ip_adres?: string | null;
|
|
83703
83737
|
laatst_gezien?: string | null;
|
|
@@ -83705,6 +83739,8 @@ export declare const netwerkComputers: import("@tanstack/start-client-core").Opt
|
|
|
83705
83739
|
merk?: string;
|
|
83706
83740
|
naam?: string;
|
|
83707
83741
|
omschrijving?: string;
|
|
83742
|
+
ondersteunde_formaten?: import("../integrations/supabase/types.js").Json | null;
|
|
83743
|
+
ondersteunde_laden?: import("../integrations/supabase/types.js").Json | null;
|
|
83708
83744
|
online?: boolean;
|
|
83709
83745
|
papierformaat?: string;
|
|
83710
83746
|
poort?: number | null;
|