@flowselections/layout-maker 1.13.1 → 1.19.0
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 +5 -0
- package/dist-lib/components/AfdrukKnop.d.ts.map +1 -1
- package/dist-lib/components/AfdrukKnop.js +5 -0
- package/dist-lib/components/DocumentRouteringPage.d.ts +3 -1
- package/dist-lib/components/DocumentRouteringPage.d.ts.map +1 -1
- package/dist-lib/components/DocumentRouteringPage.js +66 -64
- package/dist-lib/components/DocumentenPage.d.ts +4 -0
- package/dist-lib/components/DocumentenPage.d.ts.map +1 -0
- package/dist-lib/components/DocumentenPage.js +16 -0
- package/dist-lib/components/LayoutsPage.d.ts +3 -1
- package/dist-lib/components/LayoutsPage.d.ts.map +1 -1
- package/dist-lib/components/LayoutsPage.js +3 -2
- package/dist-lib/components/LayoutsPrintersTabPage.d.ts +2 -0
- package/dist-lib/components/LayoutsPrintersTabPage.d.ts.map +1 -0
- package/dist-lib/components/LayoutsPrintersTabPage.js +32 -0
- package/dist-lib/components/LogosPage.d.ts +3 -1
- package/dist-lib/components/LogosPage.d.ts.map +1 -1
- package/dist-lib/components/LogosPage.js +3 -2
- package/dist-lib/components/ModuleTabs.d.ts +19 -0
- package/dist-lib/components/ModuleTabs.d.ts.map +1 -0
- package/dist-lib/components/ModuleTabs.js +17 -0
- package/dist-lib/components/PakbonBuilderPage.d.ts.map +1 -1
- package/dist-lib/components/PakbonBuilderPage.js +30 -4
- package/dist-lib/components/PrintQueuePage.d.ts.map +1 -1
- package/dist-lib/components/PrintQueuePage.js +15 -2
- package/dist-lib/components/PrintenPage.d.ts +4 -0
- package/dist-lib/components/PrintenPage.d.ts.map +1 -0
- package/dist-lib/components/PrintenPage.js +21 -0
- package/dist-lib/components/PrinterSetupWizard.js +3 -3
- package/dist-lib/components/PrintersPage.d.ts +3 -1
- package/dist-lib/components/PrintersPage.d.ts.map +1 -1
- package/dist-lib/components/PrintersPage.js +20 -38
- package/dist-lib/components/PrintersRedirectPage.d.ts +2 -0
- package/dist-lib/components/PrintersRedirectPage.d.ts.map +1 -0
- package/dist-lib/components/PrintersRedirectPage.js +14 -0
- package/dist-lib/components/PrintplekDetailPage.d.ts +2 -0
- package/dist-lib/components/PrintplekDetailPage.d.ts.map +1 -0
- package/dist-lib/components/PrintplekDetailPage.js +81 -0
- package/dist-lib/components/PrintplekWizard.d.ts +8 -0
- package/dist-lib/components/PrintplekWizard.d.ts.map +1 -0
- package/dist-lib/components/PrintplekWizard.js +194 -0
- package/dist-lib/components/PrintplekkenPage.d.ts +4 -0
- package/dist-lib/components/PrintplekkenPage.d.ts.map +1 -0
- package/dist-lib/components/PrintplekkenPage.js +110 -0
- package/dist-lib/index.d.ts +15 -1
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +16 -7
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +363 -0
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +363 -0
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +370 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/aiLayout.functions.d.ts +363 -0
- package/dist-lib/lib/aiLayout.functions.d.ts.map +1 -1
- package/dist-lib/lib/browserPrint.d.ts +4 -0
- package/dist-lib/lib/browserPrint.d.ts.map +1 -1
- package/dist-lib/lib/browserPrint.js +4 -0
- package/dist-lib/lib/documentTypes.d.ts +7 -0
- package/dist-lib/lib/documentTypes.d.ts.map +1 -1
- package/dist-lib/lib/documentTypes.js +8 -0
- package/dist-lib/lib/pakbonHtml.d.ts +5 -2
- package/dist-lib/lib/pakbonHtml.d.ts.map +1 -1
- package/dist-lib/lib/pakbonHtml.js +5 -2
- package/dist-lib/lib/printApi.d.ts +23 -7
- package/dist-lib/lib/printApi.d.ts.map +1 -1
- package/dist-lib/lib/printApi.js +51 -15
- package/dist-lib/lib/printQueue.d.ts +28 -0
- package/dist-lib/lib/printQueue.d.ts.map +1 -0
- package/dist-lib/lib/printQueue.js +70 -0
- package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/printQueue.server.js +141 -18
- package/dist-lib/lib/printService.functions.d.ts +1452 -0
- package/dist-lib/lib/printService.functions.d.ts.map +1 -1
- package/dist-lib/lib/printplekWizard.d.ts +57 -0
- package/dist-lib/lib/printplekWizard.d.ts.map +1 -0
- package/dist-lib/lib/printplekWizard.js +87 -0
- package/dist-lib/lib/printplekken.d.ts +75 -0
- package/dist-lib/lib/printplekken.d.ts.map +1 -0
- package/dist-lib/lib/printplekken.js +198 -0
- package/dist-lib/lib/testpagina.d.ts.map +1 -1
- package/dist-lib/lib/testpagina.js +5 -5
- package/dist-lib/lib/useDocumentData.d.ts +6 -0
- package/dist-lib/lib/useDocumentData.d.ts.map +1 -1
- package/dist-lib/lib/useDocumentData.js +64 -9
- package/package.json +14 -14
|
@@ -158,6 +158,13 @@ export declare const STANDAARD_LAYOUTS: readonly [{
|
|
|
158
158
|
readonly breedte_mm: 210;
|
|
159
159
|
readonly hoogte_mm: 297;
|
|
160
160
|
readonly omschrijving: "Verzendbrief voor eigen (niet-Floriday) orders. Volledig aanpasbaar.";
|
|
161
|
+
}, {
|
|
162
|
+
readonly naam: "Productiebon";
|
|
163
|
+
readonly documenttype: "productiebon";
|
|
164
|
+
readonly papierformaat: "A4";
|
|
165
|
+
readonly breedte_mm: 210;
|
|
166
|
+
readonly hoogte_mm: 297;
|
|
167
|
+
readonly omschrijving: "Standaard productiebon met de vaste blokindeling. Volledig aanpasbaar.";
|
|
161
168
|
}];
|
|
162
169
|
export interface LayoutVariabele {
|
|
163
170
|
id?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentTypes.d.ts","sourceRoot":"","sources":["../../src/lib/documentTypes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"documentTypes.d.ts","sourceRoot":"","sources":["../../src/lib/documentTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,6 +89,14 @@ export const STANDAARD_LAYOUTS = [
|
|
|
89
89
|
hoogte_mm: 297,
|
|
90
90
|
omschrijving: "Verzendbrief voor eigen (niet-Floriday) orders. Volledig aanpasbaar.",
|
|
91
91
|
},
|
|
92
|
+
{
|
|
93
|
+
naam: "Productiebon",
|
|
94
|
+
documenttype: "productiebon",
|
|
95
|
+
papierformaat: "A4",
|
|
96
|
+
breedte_mm: 210,
|
|
97
|
+
hoogte_mm: 297,
|
|
98
|
+
omschrijving: "Standaard productiebon met de vaste blokindeling. Volledig aanpasbaar.",
|
|
99
|
+
},
|
|
92
100
|
];
|
|
93
101
|
export const ELEMENT_STANDAARD = {
|
|
94
102
|
tekst: { label: "Tekst", breedte: 60, hoogte: 8, content: "Nieuwe tekst" },
|
|
@@ -35,11 +35,14 @@ export declare function renderPakbonDocument(config: PakbonConfig | unknown, ord
|
|
|
35
35
|
/** Handig voor testen: het document met de voorbeeldgegevens. */
|
|
36
36
|
export declare function voorbeeldPakbonOrder(): PakbonOrder;
|
|
37
37
|
/**
|
|
38
|
-
* Opent het printvenster met de pakbon.
|
|
39
|
-
*
|
|
38
|
+
* Opent het printvenster met de pakbon.
|
|
39
|
+
*
|
|
40
|
+
* @deprecated Verouderd — gebruik `renderPakbonDocument()` samen met
|
|
41
|
+
* `printHtml()` uit `printApi`, zodat de afdruk via PrintNode loopt.
|
|
40
42
|
*/
|
|
41
43
|
export declare function printPakbon(config: PakbonConfig | unknown, order: PakbonOrder, opties?: PakbonRenderOpties): void;
|
|
42
44
|
/**
|
|
45
|
+
* @deprecated Verouderd — gebruik `renderPakbonDocument()` + `printHtml()`.
|
|
43
46
|
* Zelfde als `printPakbon`, maar haalt de logo's zelf uit de centrale Logo
|
|
44
47
|
* Bibliotheek en bedt ze in. Andere modules hoeven zo niets over logo's te
|
|
45
48
|
* weten: het documentlogo verschijnt automatisch op de afdruk.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pakbonHtml.d.ts","sourceRoot":"","sources":["../../src/lib/pakbonHtml.ts"],"names":[],"mappings":"AAUA,OAAO,EAmBL,KAAK,SAAS,EAEd,KAAK,YAAY,EAGlB,MAAM,iBAAiB,CAAC;AAGzB,8EAA8E;AAC9E,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC;AAEpC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAWD,wBAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAKtC;AAQD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CA+D3D;AA4oBD,oEAAoE;AACpE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,MAAM,CA8BR;AAgBD,gEAAgE;AAChE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,MAAM,CA2DR;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,IAAI,WAAW,CAElD;AAED
|
|
1
|
+
{"version":3,"file":"pakbonHtml.d.ts","sourceRoot":"","sources":["../../src/lib/pakbonHtml.ts"],"names":[],"mappings":"AAUA,OAAO,EAmBL,KAAK,SAAS,EAEd,KAAK,YAAY,EAGlB,MAAM,iBAAiB,CAAC;AAGzB,8EAA8E;AAC9E,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC;AAEpC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAWD,wBAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAKtC;AAQD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CA+D3D;AA4oBD,oEAAoE;AACpE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,MAAM,CA8BR;AAgBD,gEAAgE;AAChE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,MAAM,CA2DR;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,IAAI,WAAW,CAElD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,IAAI,CAsCN;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAUf"}
|
|
@@ -697,8 +697,10 @@ export function voorbeeldPakbonOrder() {
|
|
|
697
697
|
return DEMO_ORDER;
|
|
698
698
|
}
|
|
699
699
|
/**
|
|
700
|
-
* Opent het printvenster met de pakbon.
|
|
701
|
-
*
|
|
700
|
+
* Opent het printvenster met de pakbon.
|
|
701
|
+
*
|
|
702
|
+
* @deprecated Verouderd — gebruik `renderPakbonDocument()` samen met
|
|
703
|
+
* `printHtml()` uit `printApi`, zodat de afdruk via PrintNode loopt.
|
|
702
704
|
*/
|
|
703
705
|
export function printPakbon(config, order, opties = {}) {
|
|
704
706
|
if (typeof window === "undefined")
|
|
@@ -736,6 +738,7 @@ export function printPakbon(config, order, opties = {}) {
|
|
|
736
738
|
window.setTimeout(() => void wachtOpAfbeeldingen(), 200);
|
|
737
739
|
}
|
|
738
740
|
/**
|
|
741
|
+
* @deprecated Verouderd — gebruik `renderPakbonDocument()` + `printHtml()`.
|
|
739
742
|
* Zelfde als `printPakbon`, maar haalt de logo's zelf uit de centrale Logo
|
|
740
743
|
* Bibliotheek en bedt ze in. Andere modules hoeven zo niets over logo's te
|
|
741
744
|
* weten: het documentlogo verschijnt automatisch op de afdruk.
|
|
@@ -8,6 +8,11 @@ export interface PrintDocumentInput {
|
|
|
8
8
|
printerId?: string;
|
|
9
9
|
/** Optioneel: naam van de werkplek/computer waar dit vandaan komt. */
|
|
10
10
|
werkplek?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Optioneel: de printplek (fysieke plek, bijv. een pickstation) waar dit
|
|
13
|
+
* document uit moet komen. Wint van `werkplek` bij de printerkeuze.
|
|
14
|
+
*/
|
|
15
|
+
printplekId?: string;
|
|
11
16
|
/** Naam zoals die in de wachtrij verschijnt. */
|
|
12
17
|
documentnaam: string;
|
|
13
18
|
kopieen?: number;
|
|
@@ -31,18 +36,23 @@ export declare class DubbeleAanvraagFout extends Error {
|
|
|
31
36
|
name: string;
|
|
32
37
|
constructor();
|
|
33
38
|
}
|
|
39
|
+
/** Fout wanneer nergens een printer voor dit document is ingesteld. */
|
|
40
|
+
export declare class GeenPrinterFout extends Error {
|
|
41
|
+
name: string;
|
|
42
|
+
constructor(melding: string);
|
|
43
|
+
}
|
|
34
44
|
/**
|
|
35
45
|
* Zet een document in de printwachtrij. Bedoeld voor gebruik vanuit andere
|
|
36
46
|
* modules binnen dezelfde shell en database.
|
|
37
47
|
*/
|
|
38
48
|
export declare function printDocument(input: PrintDocumentInput): Promise<PrintDocumentResult>;
|
|
39
49
|
/**
|
|
40
|
-
* De printer die aan een documentsoort hangt: eerst de
|
|
41
|
-
* werkplek, dan de standaard (of nieuwste actieve)
|
|
42
|
-
* zijn printerkoppeling, anders de koppeling op
|
|
43
|
-
* er niets gekoppeld is.
|
|
50
|
+
* De printer die aan een documentsoort hangt: eerst de regel van de printplek,
|
|
51
|
+
* dan de uitzondering voor de werkplek, dan de standaard (of nieuwste actieve)
|
|
52
|
+
* layout voor die soort met zijn printerkoppeling, anders de koppeling op
|
|
53
|
+
* papierformaat. Geeft `null` als er niets gekoppeld is.
|
|
44
54
|
*/
|
|
45
|
-
export declare function printerVoorDocumenttype(documenttype: DocumentType | string, papierformaat?: string, werkplek?: string): Promise<string | null>;
|
|
55
|
+
export declare function printerVoorDocumenttype(documenttype: DocumentType | string, papierformaat?: string, werkplek?: string, printplekId?: string): Promise<string | null>;
|
|
46
56
|
export interface PrintPdfInput {
|
|
47
57
|
/** Documentsoort, alleen voor overzicht en printerkeuze. */
|
|
48
58
|
documenttype: DocumentType | string;
|
|
@@ -57,6 +67,8 @@ export interface PrintPdfInput {
|
|
|
57
67
|
printerId?: string;
|
|
58
68
|
/** Optioneel: werkplek/computernaam; bepaalt mee welke printer wordt gekozen. */
|
|
59
69
|
werkplek?: string;
|
|
70
|
+
/** Optioneel: printplek (bijv. een pickstation); wint van `werkplek`. */
|
|
71
|
+
printplekId?: string;
|
|
60
72
|
kopieen?: number;
|
|
61
73
|
papierformaat?: string;
|
|
62
74
|
/** Optioneel: waar de order vandaan komt ("floriday" of "eigen"). */
|
|
@@ -77,8 +89,12 @@ export interface PrintHtmlInput {
|
|
|
77
89
|
documentnaam: string;
|
|
78
90
|
/** De opmaak die exact zo afgedrukt moet worden. */
|
|
79
91
|
html: string;
|
|
80
|
-
/**
|
|
81
|
-
printerId
|
|
92
|
+
/** Printer; mag weggelaten worden als er een printplek of werkplek is. */
|
|
93
|
+
printerId?: string;
|
|
94
|
+
/** Optioneel: printplek (bijv. een pickstation); bepaalt de printer. */
|
|
95
|
+
printplekId?: string;
|
|
96
|
+
/** Optioneel: werkplek/computernaam; bepaalt de printer. */
|
|
97
|
+
werkplek?: string;
|
|
82
98
|
kopieen?: number;
|
|
83
99
|
/** Optioneel: waar de order vandaan komt ("floriday" of "eigen"). */
|
|
84
100
|
herkomst?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printApi.d.ts","sourceRoot":"","sources":["../../src/lib/printApi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"printApi.d.ts","sourceRoot":"","sources":["../../src/lib/printApi.ts"],"names":[],"mappings":"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"}
|
package/dist-lib/lib/printApi.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// van deze module niet te kennen.
|
|
6
6
|
import { supabase } from "./supabaseClient.js";
|
|
7
7
|
import { printerVoorWerkplekDocument } from "./documentRoutering.js";
|
|
8
|
+
import { printerVoorPrintplek, printplekNaam, printplekVoorComputer } from "./printplekken.js";
|
|
8
9
|
import { bronVoorDocument } from "./documentBron.js";
|
|
9
10
|
const arr = (v) => (Array.isArray(v) ? v : []);
|
|
10
11
|
/** Zoekt de te gebruiken layout: expliciet, anders standaard, anders de nieuwste. */
|
|
@@ -28,10 +29,18 @@ async function bepaalLayout(documenttype, layoutId) {
|
|
|
28
29
|
return arr(data)[0] ?? null;
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
31
|
-
* Kiest een printer
|
|
32
|
-
*
|
|
32
|
+
* Kiest een printer, in vaste volgorde:
|
|
33
|
+
* 1. regel van de printplek, 2. uitzondering voor de werkplek,
|
|
34
|
+
* 3. koppeling op layout, 4. koppeling op documentsoort + formaat.
|
|
33
35
|
*/
|
|
34
|
-
async function bepaalPrinter(documenttype, layoutId, papierformaat, werkplek) {
|
|
36
|
+
async function bepaalPrinter(documenttype, layoutId, papierformaat, werkplek, printplekId) {
|
|
37
|
+
// Geen printplek meegegeven? Dan kijken we of de werkplek er bij een hoort.
|
|
38
|
+
const plek = printplekId ?? (werkplek ? await printplekVoorComputer(werkplek) : null);
|
|
39
|
+
if (plek) {
|
|
40
|
+
const viaPlek = await printerVoorPrintplek(plek, documenttype);
|
|
41
|
+
if (viaPlek)
|
|
42
|
+
return viaPlek;
|
|
43
|
+
}
|
|
35
44
|
if (werkplek) {
|
|
36
45
|
const viaWerkplek = await printerVoorWerkplekDocument(documenttype, werkplek);
|
|
37
46
|
if (viaWerkplek)
|
|
@@ -106,6 +115,25 @@ export class DubbeleAanvraagFout extends Error {
|
|
|
106
115
|
this.name = "DubbeleAanvraagFout";
|
|
107
116
|
}
|
|
108
117
|
}
|
|
118
|
+
/** Fout wanneer nergens een printer voor dit document is ingesteld. */
|
|
119
|
+
export class GeenPrinterFout extends Error {
|
|
120
|
+
constructor(melding) {
|
|
121
|
+
super(melding);
|
|
122
|
+
this.name = "GeenPrinterFout";
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/** Nette, actiegerichte melding als er geen printer gevonden is. */
|
|
126
|
+
async function geenPrinterMelding(documenttype, printplekId, werkplek) {
|
|
127
|
+
const plek = printplekId ?? (werkplek ? await printplekVoorComputer(werkplek) : null);
|
|
128
|
+
const naam = plek ? await printplekNaam(plek) : null;
|
|
129
|
+
if (naam) {
|
|
130
|
+
return `Geen printer voor ${documenttype} op ${naam} — stel dit in bij Printplekken.`;
|
|
131
|
+
}
|
|
132
|
+
if (werkplek) {
|
|
133
|
+
return `Geen printer voor ${documenttype} op werkplek ${werkplek} — koppel deze werkplek aan een printplek en kies daar een printer.`;
|
|
134
|
+
}
|
|
135
|
+
return `Geen printer voor ${documenttype} — stel dit in bij Layouts en printers → Routering.`;
|
|
136
|
+
}
|
|
109
137
|
/**
|
|
110
138
|
* Zet een document in de printwachtrij. Bedoeld voor gebruik vanuit andere
|
|
111
139
|
* modules binnen dezelfde shell en database.
|
|
@@ -117,7 +145,7 @@ export async function printDocument(input) {
|
|
|
117
145
|
if (!layout)
|
|
118
146
|
throw new Error(`Geen layout gevonden voor documenttype "${input.documenttype}"`);
|
|
119
147
|
const printerId = input.printerId ??
|
|
120
|
-
(await bepaalPrinter(input.documenttype, layout.id, layout.papierformaat ?? null, input.werkplek ?? null));
|
|
148
|
+
(await bepaalPrinter(input.documenttype, layout.id, layout.papierformaat ?? null, input.werkplek ?? null, input.printplekId ?? null));
|
|
121
149
|
waarschuwZonderKenmerk(input.documentnaam, input.payload);
|
|
122
150
|
const jobId = await zetInWachtrij({
|
|
123
151
|
layout_id: layout.id,
|
|
@@ -128,6 +156,7 @@ export async function printDocument(input) {
|
|
|
128
156
|
payload: {
|
|
129
157
|
...(input.payload ?? {}),
|
|
130
158
|
...(input.werkplek ? { werkplek: input.werkplek } : {}),
|
|
159
|
+
...(input.printplekId ? { print_plek_id: input.printplekId } : {}),
|
|
131
160
|
...(input.herkomst ? { herkomst: input.herkomst } : {}),
|
|
132
161
|
},
|
|
133
162
|
...(input.herkomst ? { herkomst: input.herkomst } : {}),
|
|
@@ -138,14 +167,14 @@ export async function printDocument(input) {
|
|
|
138
167
|
return { jobId, layoutId: layout.id, printerId };
|
|
139
168
|
}
|
|
140
169
|
/**
|
|
141
|
-
* De printer die aan een documentsoort hangt: eerst de
|
|
142
|
-
* werkplek, dan de standaard (of nieuwste actieve)
|
|
143
|
-
* zijn printerkoppeling, anders de koppeling op
|
|
144
|
-
* er niets gekoppeld is.
|
|
170
|
+
* De printer die aan een documentsoort hangt: eerst de regel van de printplek,
|
|
171
|
+
* dan de uitzondering voor de werkplek, dan de standaard (of nieuwste actieve)
|
|
172
|
+
* layout voor die soort met zijn printerkoppeling, anders de koppeling op
|
|
173
|
+
* papierformaat. Geeft `null` als er niets gekoppeld is.
|
|
145
174
|
*/
|
|
146
|
-
export async function printerVoorDocumenttype(documenttype, papierformaat, werkplek) {
|
|
175
|
+
export async function printerVoorDocumenttype(documenttype, papierformaat, werkplek, printplekId) {
|
|
147
176
|
const layout = await bepaalLayout(documenttype);
|
|
148
|
-
return bepaalPrinter(documenttype, layout?.id ?? null, papierformaat ?? layout?.papierformaat ?? null, werkplek ?? null);
|
|
177
|
+
return bepaalPrinter(documenttype, layout?.id ?? null, papierformaat ?? layout?.papierformaat ?? null, werkplek ?? null, printplekId ?? null);
|
|
149
178
|
}
|
|
150
179
|
/**
|
|
151
180
|
* Print een kant-en-klare PDF (klantsticker, Floriday-document, factuur van een
|
|
@@ -166,6 +195,7 @@ export async function printPdf(input) {
|
|
|
166
195
|
layoutId: regel.layout_id ?? undefined,
|
|
167
196
|
printerId: input.printerId,
|
|
168
197
|
werkplek: input.werkplek,
|
|
198
|
+
printplekId: input.printplekId,
|
|
169
199
|
kopieen: input.kopieen,
|
|
170
200
|
herkomst: input.herkomst,
|
|
171
201
|
payload: input.payload,
|
|
@@ -174,9 +204,9 @@ export async function printPdf(input) {
|
|
|
174
204
|
return { jobId: res.jobId };
|
|
175
205
|
}
|
|
176
206
|
const printerId = input.printerId ??
|
|
177
|
-
(await printerVoorDocumenttype(input.documenttype, input.papierformaat, input.werkplek));
|
|
207
|
+
(await printerVoorDocumenttype(input.documenttype, input.papierformaat, input.werkplek, input.printplekId));
|
|
178
208
|
if (!printerId) {
|
|
179
|
-
throw new
|
|
209
|
+
throw new GeenPrinterFout(await geenPrinterMelding(String(input.documenttype), input.printplekId ?? null, input.werkplek ?? null));
|
|
180
210
|
}
|
|
181
211
|
waarschuwZonderKenmerk(input.documentnaam, input.payload);
|
|
182
212
|
const jobId = await zetInWachtrij({
|
|
@@ -188,6 +218,7 @@ export async function printPdf(input) {
|
|
|
188
218
|
payload: {
|
|
189
219
|
...(input.payload ?? {}),
|
|
190
220
|
...(input.werkplek ? { werkplek: input.werkplek } : {}),
|
|
221
|
+
...(input.printplekId ? { print_plek_id: input.printplekId } : {}),
|
|
191
222
|
...(input.herkomst ? { herkomst: input.herkomst } : {}),
|
|
192
223
|
},
|
|
193
224
|
...(input.herkomst ? { herkomst: input.herkomst } : {}),
|
|
@@ -206,17 +237,22 @@ export async function printPdf(input) {
|
|
|
206
237
|
export async function printHtml(input) {
|
|
207
238
|
if (!input.html || input.html.trim().length < 40)
|
|
208
239
|
throw new Error("Er is geen opmaak meegegeven.");
|
|
209
|
-
|
|
210
|
-
|
|
240
|
+
const printerId = input.printerId ??
|
|
241
|
+
(await printerVoorDocumenttype(input.documenttype, undefined, input.werkplek, input.printplekId));
|
|
242
|
+
if (!printerId) {
|
|
243
|
+
throw new GeenPrinterFout(await geenPrinterMelding(String(input.documenttype), input.printplekId ?? null, input.werkplek ?? null));
|
|
244
|
+
}
|
|
211
245
|
waarschuwZonderKenmerk(input.documentnaam, input.payload);
|
|
212
246
|
const jobId = await zetInWachtrij({
|
|
213
247
|
layout_id: null,
|
|
214
|
-
printer_id:
|
|
248
|
+
printer_id: printerId,
|
|
215
249
|
documenttype: input.documenttype,
|
|
216
250
|
documentnaam: input.documentnaam,
|
|
217
251
|
kopieen: input.kopieen ?? 1,
|
|
218
252
|
payload: {
|
|
219
253
|
...(input.payload ?? {}),
|
|
254
|
+
...(input.werkplek ? { werkplek: input.werkplek } : {}),
|
|
255
|
+
...(input.printplekId ? { print_plek_id: input.printplekId } : {}),
|
|
220
256
|
...(input.herkomst ? { herkomst: input.herkomst } : {}),
|
|
221
257
|
},
|
|
222
258
|
...(input.herkomst ? { herkomst: input.herkomst } : {}),
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Het printplek-id van de opdracht, inclusief de aliassen van andere modules. */
|
|
2
|
+
export declare function jobPrintPlekId(job: {
|
|
3
|
+
print_plek_id?: unknown;
|
|
4
|
+
payload?: unknown;
|
|
5
|
+
}): string;
|
|
6
|
+
/** Het pickstation dat de opdracht meestuurde, als dat bekend is. */
|
|
7
|
+
export declare function jobPickstation(job: {
|
|
8
|
+
payload?: unknown;
|
|
9
|
+
}): string;
|
|
10
|
+
/** De computer/werkplek die de opdracht aanmaakte. */
|
|
11
|
+
export declare function jobWerkplek(job: {
|
|
12
|
+
payload?: unknown;
|
|
13
|
+
}): string;
|
|
14
|
+
export interface PlekNamen {
|
|
15
|
+
/** printplek-id → naam */
|
|
16
|
+
plekken: Map<string, string>;
|
|
17
|
+
/** bron_id (pickstation/computer) → printplek-id */
|
|
18
|
+
koppelingen: Map<string, string>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Leesbare herkomst van een opdracht: naam van de printplek, anders het
|
|
22
|
+
* pickstation of de werkplek, anders leeg.
|
|
23
|
+
*/
|
|
24
|
+
export declare function jobPlekLabel(job: {
|
|
25
|
+
print_plek_id?: unknown;
|
|
26
|
+
payload?: unknown;
|
|
27
|
+
}, namen: PlekNamen): string;
|
|
28
|
+
//# sourceMappingURL=printQueue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"printQueue.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.ts"],"names":[],"mappings":"AAkBA,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAU1F;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAQjE;AAED,sDAAsD;AACtD,wBAAgB,WAAW,CAAC,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAM9D;AAED,MAAM,WAAW,SAAS;IACxB,0BAA0B;IAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,oDAAoD;IACpD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAkB1G"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// src/lib/printQueue.ts — client-safe hulpjes om een printopdracht te duiden
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Deze helpers lezen dezelfde velden als `leesPrintPlekId` in
|
|
5
|
+
// printQueue.server.ts, zodat de wachtrij in beeld hetzelfde toont als wat de
|
|
6
|
+
// verwerking gebruikt. Geen server-imports: dit bestand mag in de browser.
|
|
7
|
+
const tekst = (v) => (typeof v === "string" || typeof v === "number" ? String(v).trim() : "");
|
|
8
|
+
function lagen(job) {
|
|
9
|
+
const p = (job.payload ?? {});
|
|
10
|
+
if (typeof p !== "object" || p === null)
|
|
11
|
+
return [{}];
|
|
12
|
+
const d = (p["data"] ?? {});
|
|
13
|
+
return [p, typeof d === "object" && d !== null ? d : {}];
|
|
14
|
+
}
|
|
15
|
+
/** Het printplek-id van de opdracht, inclusief de aliassen van andere modules. */
|
|
16
|
+
export function jobPrintPlekId(job) {
|
|
17
|
+
const direct = tekst(job["print_plek_id"]);
|
|
18
|
+
if (direct)
|
|
19
|
+
return direct;
|
|
20
|
+
for (const laag of lagen(job)) {
|
|
21
|
+
for (const k of ["print_plek_id", "printPlekId", "print_place_id", "printPlaceId"]) {
|
|
22
|
+
const v = tekst(laag[k]);
|
|
23
|
+
if (v)
|
|
24
|
+
return v;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return "";
|
|
28
|
+
}
|
|
29
|
+
/** Het pickstation dat de opdracht meestuurde, als dat bekend is. */
|
|
30
|
+
export function jobPickstation(job) {
|
|
31
|
+
for (const laag of lagen(job)) {
|
|
32
|
+
for (const k of ["pickstation", "pick_station"]) {
|
|
33
|
+
const v = tekst(laag[k]);
|
|
34
|
+
if (v)
|
|
35
|
+
return v;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return "";
|
|
39
|
+
}
|
|
40
|
+
/** De computer/werkplek die de opdracht aanmaakte. */
|
|
41
|
+
export function jobWerkplek(job) {
|
|
42
|
+
for (const laag of lagen(job)) {
|
|
43
|
+
const v = tekst(laag["werkplek"]);
|
|
44
|
+
if (v)
|
|
45
|
+
return v;
|
|
46
|
+
}
|
|
47
|
+
return "";
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Leesbare herkomst van een opdracht: naam van de printplek, anders het
|
|
51
|
+
* pickstation of de werkplek, anders leeg.
|
|
52
|
+
*/
|
|
53
|
+
export function jobPlekLabel(job, namen) {
|
|
54
|
+
const id = jobPrintPlekId(job);
|
|
55
|
+
if (id)
|
|
56
|
+
return namen.plekken.get(id) ?? "Onbekende printplek";
|
|
57
|
+
const station = jobPickstation(job);
|
|
58
|
+
if (station) {
|
|
59
|
+
const viaKoppeling = namen.koppelingen.get(station.toLowerCase());
|
|
60
|
+
const naam = viaKoppeling ? namen.plekken.get(viaKoppeling) : undefined;
|
|
61
|
+
return naam ?? station;
|
|
62
|
+
}
|
|
63
|
+
const werkplek = jobWerkplek(job);
|
|
64
|
+
if (werkplek) {
|
|
65
|
+
const viaKoppeling = namen.koppelingen.get(werkplek.toLowerCase());
|
|
66
|
+
const naam = viaKoppeling ? namen.plekken.get(viaKoppeling) : undefined;
|
|
67
|
+
return naam ?? werkplek;
|
|
68
|
+
}
|
|
69
|
+
return "";
|
|
70
|
+
}
|
|
@@ -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;AAc5D,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;
|
|
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;AAc5D,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;AA2MD;;;;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;AAiLD,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"}
|
|
@@ -74,7 +74,12 @@ async function zoekLayout(db, job) {
|
|
|
74
74
|
.order("is_standaard", { ascending: false })
|
|
75
75
|
.order("updated_at", { ascending: false })
|
|
76
76
|
.limit(1);
|
|
77
|
-
|
|
77
|
+
const gevonden = (arr(data)[0] ?? null);
|
|
78
|
+
if (!gevonden && !job.render_html) {
|
|
79
|
+
throw new GeenDocumentFout(`Geen layout gevonden voor documenttype '${String(job.documenttype)}'. ` +
|
|
80
|
+
"Maak een layout aan en zet die op actief.");
|
|
81
|
+
}
|
|
82
|
+
return { layout: gevonden, expliciet: false };
|
|
78
83
|
}
|
|
79
84
|
/**
|
|
80
85
|
* De bronregel voor deze documentsoort en de herkomst van de order. Geeft
|
|
@@ -151,6 +156,83 @@ export async function kantEnKlarePdf(_db, job) {
|
|
|
151
156
|
}
|
|
152
157
|
return btoa(ruw);
|
|
153
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Het printplek-id van de opdracht. De Logistiek Engine stuurt dit mee als
|
|
161
|
+
* `print_plek_id` (bovenin de payload en in `payload.data`); andere modules
|
|
162
|
+
* gebruiken soms een Engelse of pickstation-variant. Alles telt mee.
|
|
163
|
+
*/
|
|
164
|
+
function leesPrintPlekId(job) {
|
|
165
|
+
const p = (job.payload ?? {});
|
|
166
|
+
const d = (p.data ?? {});
|
|
167
|
+
const kandidaten = [
|
|
168
|
+
job.print_plek_id,
|
|
169
|
+
p.print_plek_id,
|
|
170
|
+
p.printPlekId,
|
|
171
|
+
p.print_place_id,
|
|
172
|
+
p.printPlaceId,
|
|
173
|
+
d.print_plek_id,
|
|
174
|
+
d.printPlekId,
|
|
175
|
+
d.print_place_id,
|
|
176
|
+
d.printPlaceId,
|
|
177
|
+
];
|
|
178
|
+
for (const k of kandidaten) {
|
|
179
|
+
const v = String(k ?? "").trim();
|
|
180
|
+
if (v)
|
|
181
|
+
return v;
|
|
182
|
+
}
|
|
183
|
+
return "";
|
|
184
|
+
}
|
|
185
|
+
/** Het pickstation dat de opdracht meestuurt, als er geen printplek-id is. */
|
|
186
|
+
function leesPickstation(job) {
|
|
187
|
+
const p = (job.payload ?? {});
|
|
188
|
+
const d = (p.data ?? {});
|
|
189
|
+
for (const k of [p.pickstation, p.pick_station, d.pickstation, d.pick_station]) {
|
|
190
|
+
const v = String(k ?? "").trim();
|
|
191
|
+
if (v)
|
|
192
|
+
return v;
|
|
193
|
+
}
|
|
194
|
+
return "";
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Zoekt de printplek van de opdracht: meegegeven id, anders via het
|
|
198
|
+
* pickstation (`print_plek_koppelingen`), anders via de computernaam.
|
|
199
|
+
*/
|
|
200
|
+
async function zoekPrintPlekId(db, job) {
|
|
201
|
+
const direct = leesPrintPlekId(job);
|
|
202
|
+
if (direct)
|
|
203
|
+
return direct;
|
|
204
|
+
const pickstation = leesPickstation(job);
|
|
205
|
+
if (pickstation) {
|
|
206
|
+
const { data } = await db
|
|
207
|
+
.from("print_plek_koppelingen")
|
|
208
|
+
.select("print_plek_id")
|
|
209
|
+
.in("bron", ["pickstation", "pick_station"])
|
|
210
|
+
.eq("bron_id", pickstation)
|
|
211
|
+
.maybeSingle();
|
|
212
|
+
const id = String(data?.print_plek_id ?? "").trim();
|
|
213
|
+
if (id)
|
|
214
|
+
return id;
|
|
215
|
+
}
|
|
216
|
+
const werkplek = String(job.payload?.werkplek ?? "").trim();
|
|
217
|
+
if (werkplek) {
|
|
218
|
+
const { data } = await db
|
|
219
|
+
.from("print_plek_computers")
|
|
220
|
+
.select("print_plek_id")
|
|
221
|
+
.eq("computer_naam", werkplek)
|
|
222
|
+
.maybeSingle();
|
|
223
|
+
return String(data?.print_plek_id ?? "").trim();
|
|
224
|
+
}
|
|
225
|
+
return "";
|
|
226
|
+
}
|
|
227
|
+
/** Naam van de printplek waar deze opdracht bij hoort, voor nette meldingen. */
|
|
228
|
+
async function printplekNaamVoorJob(db, job) {
|
|
229
|
+
const werkplek = String(job.payload?.werkplek ?? "").trim();
|
|
230
|
+
const plekId = await zoekPrintPlekId(db, job);
|
|
231
|
+
if (!plekId)
|
|
232
|
+
return werkplek || null;
|
|
233
|
+
const { data } = await db.from("print_plekken").select("naam").eq("id", plekId).maybeSingle();
|
|
234
|
+
return String(data?.naam ?? "") || werkplek || null;
|
|
235
|
+
}
|
|
154
236
|
/** Bepaalt op welke printer de opdracht moet uitkomen. */
|
|
155
237
|
async function zoekPrinter(db, job, layout) {
|
|
156
238
|
const pak = async (id) => {
|
|
@@ -163,21 +245,43 @@ async function zoekPrinter(db, job, layout) {
|
|
|
163
245
|
.maybeSingle();
|
|
164
246
|
return data && data.actief !== false ? data : null;
|
|
165
247
|
};
|
|
248
|
+
const type = String(job.documenttype ?? "document");
|
|
249
|
+
// 1. Printer die expliciet op de opdracht staat (bijv. handmatig herprinten).
|
|
166
250
|
let printer = await pak(job.printer_id);
|
|
167
251
|
if (printer)
|
|
168
|
-
return printer;
|
|
169
|
-
// Uitzondering voor de werkplek waar de opdracht vandaan komt.
|
|
252
|
+
return { printer, reden: "" };
|
|
170
253
|
const werkplek = String(job.payload?.werkplek ?? "").trim();
|
|
254
|
+
const pickstation = leesPickstation(job);
|
|
255
|
+
// 2. Regel van de printplek waar de opdracht vandaan komt.
|
|
256
|
+
const plekId = await zoekPrintPlekId(db, job);
|
|
257
|
+
if (plekId) {
|
|
258
|
+
const { data: pp } = await db
|
|
259
|
+
.from("document_printplek_printers")
|
|
260
|
+
.select("printer_id")
|
|
261
|
+
.eq("print_plek_id", plekId)
|
|
262
|
+
.eq("documenttype", type)
|
|
263
|
+
.maybeSingle();
|
|
264
|
+
printer = await pak(pp?.printer_id);
|
|
265
|
+
if (printer)
|
|
266
|
+
return { printer, reden: "" };
|
|
267
|
+
}
|
|
268
|
+
else if (pickstation) {
|
|
269
|
+
return {
|
|
270
|
+
printer: null,
|
|
271
|
+
reden: `Pickstation '${pickstation}' heeft geen printplek. Koppel dit station aan een printplek.`,
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
// 3. Uitzondering voor de werkplek waar de opdracht vandaan komt.
|
|
171
275
|
if (werkplek) {
|
|
172
276
|
const { data: wp } = await db
|
|
173
277
|
.from("document_werkplek_printers")
|
|
174
278
|
.select("printer_id")
|
|
175
|
-
.eq("documenttype",
|
|
279
|
+
.eq("documenttype", type)
|
|
176
280
|
.eq("werkplek", werkplek)
|
|
177
281
|
.maybeSingle();
|
|
178
282
|
printer = await pak(wp?.printer_id);
|
|
179
283
|
if (printer)
|
|
180
|
-
return printer;
|
|
284
|
+
return { printer, reden: "" };
|
|
181
285
|
}
|
|
182
286
|
if (layout?.id) {
|
|
183
287
|
const { data } = await db
|
|
@@ -188,26 +292,43 @@ async function zoekPrinter(db, job, layout) {
|
|
|
188
292
|
.limit(1);
|
|
189
293
|
printer = await pak(arr(data)[0]?.printer_id);
|
|
190
294
|
if (printer)
|
|
191
|
-
return printer;
|
|
295
|
+
return { printer, reden: "" };
|
|
192
296
|
}
|
|
297
|
+
// 4. Bedrijfsbrede standaardregel: eerst op documenttype + papierformaat,
|
|
298
|
+
// daarna op documenttype alleen. Geen "pak de enige printer"-noodgreep
|
|
299
|
+
// meer: dan zou er stil op de verkeerde printer geprint kunnen worden.
|
|
193
300
|
const formaat = layout?.papierformaat ?? "A4";
|
|
194
301
|
const { data: fm } = await db
|
|
195
302
|
.from("document_formaat_printers")
|
|
196
303
|
.select("printer_id")
|
|
197
|
-
.eq("documenttype",
|
|
304
|
+
.eq("documenttype", type)
|
|
198
305
|
.eq("formaat_code", formaat)
|
|
199
306
|
.maybeSingle();
|
|
200
307
|
printer = await pak(fm?.printer_id);
|
|
201
308
|
if (printer)
|
|
202
|
-
return printer;
|
|
203
|
-
const { data:
|
|
204
|
-
.from("
|
|
205
|
-
.select("
|
|
206
|
-
.eq("
|
|
207
|
-
.not("
|
|
208
|
-
.limit(
|
|
209
|
-
const
|
|
210
|
-
|
|
309
|
+
return { printer, reden: "" };
|
|
310
|
+
const { data: alle } = await db
|
|
311
|
+
.from("document_formaat_printers")
|
|
312
|
+
.select("printer_id")
|
|
313
|
+
.eq("documenttype", type)
|
|
314
|
+
.not("printer_id", "is", null)
|
|
315
|
+
.limit(5);
|
|
316
|
+
for (const regel of arr(alle)) {
|
|
317
|
+
printer = await pak(regel.printer_id);
|
|
318
|
+
if (printer)
|
|
319
|
+
return { printer, reden: "" };
|
|
320
|
+
}
|
|
321
|
+
if (plekId) {
|
|
322
|
+
const naam = (await printplekNaamVoorJob(db, job)) ?? "onbekend";
|
|
323
|
+
return {
|
|
324
|
+
printer: null,
|
|
325
|
+
reden: `Printplek '${naam}' heeft geen printer voor documenttype '${type}', en er is geen bedrijfsbrede standaardprinter ingesteld.`,
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
return {
|
|
329
|
+
printer: null,
|
|
330
|
+
reden: `Documenttype '${type}' heeft geen standaardprinter. Stel dit in bij Printen > Standaardregels.`,
|
|
331
|
+
};
|
|
211
332
|
}
|
|
212
333
|
/** Haalt de logo's op die in de layout gebruikt worden, met tijdelijke URL. */
|
|
213
334
|
async function logosVoor(db, layout) {
|
|
@@ -419,9 +540,11 @@ async function verwerkJob(db, job) {
|
|
|
419
540
|
}
|
|
420
541
|
const keuze = klaar ? { layout: null, expliciet: false } : await zoekLayout(db, job);
|
|
421
542
|
const layout = keuze.layout;
|
|
422
|
-
const
|
|
543
|
+
const printerKeuze = await zoekPrinter(db, job, layout);
|
|
544
|
+
const printer = printerKeuze.printer;
|
|
423
545
|
if (!printer?.extern_printer_id) {
|
|
424
|
-
await mislukt(db, job,
|
|
546
|
+
await mislukt(db, job, printerKeuze.reden ||
|
|
547
|
+
`Printer '${printer?.naam ?? "onbekend"}' is niet aan PrintNode gekoppeld.`, true);
|
|
425
548
|
return "mislukt";
|
|
426
549
|
}
|
|
427
550
|
let pdfBase64 = klaar;
|