@flowselections/logistiek-engine 1.0.94 → 1.0.99
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/MisluktVerzendbrievenCard.d.ts +2 -0
- package/dist-lib/components/MisluktVerzendbrievenCard.d.ts.map +1 -0
- package/dist-lib/components/MisluktVerzendbrievenCard.js +50 -0
- package/dist-lib/components/RegiePage.d.ts.map +1 -1
- package/dist-lib/components/RegiePage.js +2 -1
- package/dist-lib/components/RuleEnginePage.d.ts.map +1 -1
- package/dist-lib/components/RuleEnginePage.js +3 -1
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +59 -0
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +59 -0
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/moduleClient.d.ts +59 -0
- package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +59 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/cartCoverage.functions.d.ts +59 -0
- package/dist-lib/lib/cartCoverage.functions.d.ts.map +1 -1
- package/dist-lib/lib/controlScan.server.d.ts +2 -0
- package/dist-lib/lib/controlScan.server.d.ts.map +1 -1
- package/dist-lib/lib/controlScan.server.js +59 -53
- package/dist-lib/lib/expandGroups.test.d.ts +2 -0
- package/dist-lib/lib/expandGroups.test.d.ts.map +1 -0
- package/dist-lib/lib/expandGroups.test.js +80 -0
- package/dist-lib/lib/floridayDocuments.functions.d.ts +177 -0
- package/dist-lib/lib/floridayDocuments.functions.d.ts.map +1 -1
- package/dist-lib/lib/floridayPush.functions.d.ts +59 -0
- package/dist-lib/lib/floridayPush.functions.d.ts.map +1 -1
- package/dist-lib/lib/layoutPrint.server.d.ts +27 -0
- package/dist-lib/lib/layoutPrint.server.d.ts.map +1 -0
- package/dist-lib/lib/layoutPrint.server.js +48 -0
- package/dist-lib/lib/layoutPrint.test.d.ts +2 -0
- package/dist-lib/lib/layoutPrint.test.d.ts.map +1 -0
- package/dist-lib/lib/layoutPrint.test.js +47 -0
- package/dist-lib/lib/loadCarrierPlanning.functions.d.ts +295 -0
- package/dist-lib/lib/loadCarrierPlanning.functions.d.ts.map +1 -1
- package/dist-lib/lib/loadCarrierPlanning.server.d.ts.map +1 -1
- package/dist-lib/lib/loadCarrierPlanning.server.js +72 -8
- package/dist-lib/lib/logisticsRecalcJob.functions.d.ts +118 -0
- package/dist-lib/lib/logisticsRecalcJob.functions.d.ts.map +1 -1
- package/dist-lib/lib/logisticsRecalculate.functions.d.ts +59 -0
- package/dist-lib/lib/logisticsRecalculate.functions.d.ts.map +1 -1
- package/dist-lib/lib/modulePrompts.d.ts.map +1 -1
- package/dist-lib/lib/modulePrompts.js +54 -0
- package/dist-lib/lib/moduleVersion.d.ts +2 -0
- package/dist-lib/lib/moduleVersion.d.ts.map +1 -0
- package/dist-lib/lib/moduleVersion.js +2 -0
- package/dist-lib/lib/plannerDiff.functions.d.ts +59 -0
- package/dist-lib/lib/plannerDiff.functions.d.ts.map +1 -1
- package/dist-lib/lib/shippingNoteQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/shippingNoteQueue.server.js +40 -49
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadCarrierPlanning.server.d.ts","sourceRoot":"","sources":["../../src/lib/loadCarrierPlanning.server.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,eAAe,EAEpB,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"loadCarrierPlanning.server.d.ts","sourceRoot":"","sources":["../../src/lib/loadCarrierPlanning.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
// naar order_carts / order_cart_items.
|
|
7
7
|
// ============================================================================
|
|
8
8
|
import { planLoadUnits, LOAD_CARRIER_PLANNER_VERSION, } from "./loadCarrierPlanner";
|
|
9
|
+
import { traceBatch } from "./trace.server";
|
|
10
|
+
import { MODULE_VERSION } from "./moduleVersion";
|
|
9
11
|
import { fallbackCarrierProfile } from "./loadCarrierTypes";
|
|
10
12
|
import { planByDimensions, DIMENSION_PLANNER_VERSION } from "./dimensionPlanner";
|
|
11
13
|
import { buildDimensionItems, carrierDimensions } from "./dimensionData.server";
|
|
@@ -146,6 +148,8 @@ export async function expandOrderItemsForPlanner(sb, rows, options = {}) {
|
|
|
146
148
|
let groupSet = new Set();
|
|
147
149
|
// Groepsregels dragen niet altijd een product_id. Zonder koppeling wordt de
|
|
148
150
|
// groep op naam opgezocht, zodat de leden en hun afmetingen alsnog meetellen.
|
|
151
|
+
// Een regel die aan een echt artikel gekoppeld is, blijft altijd dat artikel,
|
|
152
|
+
// ook als er toevallig een productgroep met dezelfde naam bestaat.
|
|
149
153
|
const groupByName = new Map();
|
|
150
154
|
{
|
|
151
155
|
const { data: allGroups } = await sb.from("product_groups").select("id, name");
|
|
@@ -154,9 +158,12 @@ export async function expandOrderItemsForPlanner(sb, rows, options = {}) {
|
|
|
154
158
|
groupByName.set(String(g.name).trim().toLowerCase(), String(g.id));
|
|
155
159
|
}
|
|
156
160
|
}
|
|
161
|
+
let realProductIds = new Set();
|
|
157
162
|
if (groupIds.length > 0) {
|
|
158
163
|
const { data: groups } = await sb.from("product_groups").select("id").in("id", groupIds);
|
|
159
164
|
groupSet = new Set((groups ?? []).map((g) => g.id));
|
|
165
|
+
const { data: realProds } = await sb.from("products").select("id").in("id", groupIds);
|
|
166
|
+
realProductIds = new Set((Array.isArray(realProds) ? realProds : []).map((p) => String(p.id)));
|
|
160
167
|
}
|
|
161
168
|
for (const row of rows) {
|
|
162
169
|
const orderKey = row.order_id ? String(row.order_id) : null;
|
|
@@ -169,14 +176,18 @@ export async function expandOrderItemsForPlanner(sb, rows, options = {}) {
|
|
|
169
176
|
: null;
|
|
170
177
|
const { belading: base, source } = resolveBelading(row, packing, linePacking);
|
|
171
178
|
const plants = Math.max(0, Number(row.quantity ?? 0));
|
|
179
|
+
const explicitGroupPrefix = /^\[Groep\]/i.test(String(row.product_name ?? ""));
|
|
172
180
|
const groupNameKey = String(row.product_name ?? "")
|
|
173
181
|
.replace(/^\[Groep\]\s*/i, "")
|
|
174
182
|
.trim()
|
|
175
183
|
.toLowerCase();
|
|
184
|
+
const linkedToRealProduct = typeof row.product_id === "string" && realProductIds.has(row.product_id) && !groupSet.has(row.product_id);
|
|
176
185
|
const groupId = row.product_id && groupSet.has(row.product_id)
|
|
177
186
|
? String(row.product_id)
|
|
178
|
-
:
|
|
179
|
-
|
|
187
|
+
: !linkedToRealProduct || explicitGroupPrefix
|
|
188
|
+
? groupByName.get(groupNameKey) ?? null
|
|
189
|
+
: null;
|
|
190
|
+
const isGroup = groupId != null || (explicitGroupPrefix && !linkedToRealProduct);
|
|
180
191
|
if (!isGroup) {
|
|
181
192
|
options.sources?.set(String(row.id), source);
|
|
182
193
|
out.push({
|
|
@@ -219,7 +230,9 @@ export async function expandOrderItemsForPlanner(sb, rows, options = {}) {
|
|
|
219
230
|
const { data: prods } = await sb
|
|
220
231
|
.from("products")
|
|
221
232
|
.select("id, product, plants_per_crate, crates_per_layer, layers_per_cart, weight, floriday_trade_item_id")
|
|
222
|
-
.or(tradeIds
|
|
233
|
+
.or(tradeIds
|
|
234
|
+
.flatMap((t) => UUID_RE.test(t) ? [`floriday_trade_item_id.eq.${t}`, `id.eq.${t}`] : [`floriday_trade_item_id.eq.${t}`])
|
|
235
|
+
.join(","));
|
|
223
236
|
const prodByTrade = new Map();
|
|
224
237
|
for (const p of prods ?? []) {
|
|
225
238
|
if (p.floriday_trade_item_id)
|
|
@@ -228,6 +241,9 @@ export async function expandOrderItemsForPlanner(sb, rows, options = {}) {
|
|
|
228
241
|
}
|
|
229
242
|
const resolved = memberList.map((m) => {
|
|
230
243
|
const p = prodByTrade.get(String(m.trade_item_id));
|
|
244
|
+
// Onbekend groepslid: niet gokken en geen kale id als artikelnaam.
|
|
245
|
+
if (!p)
|
|
246
|
+
return { m, p, belading: { ...base }, source: "geen" };
|
|
231
247
|
// Een handmatig vastgezette regel blijft leidend voor de hele groep.
|
|
232
248
|
if (source === "handmatig") {
|
|
233
249
|
return { m, p, belading: { ...base }, source };
|
|
@@ -283,7 +299,7 @@ export async function expandOrderItemsForPlanner(sb, rows, options = {}) {
|
|
|
283
299
|
order_id: row.order_id ?? null,
|
|
284
300
|
customer_id: row.customer_id ?? null,
|
|
285
301
|
product_id: r.p?.id ?? null,
|
|
286
|
-
product_name: `${row.product_name ?? "Groep"} — ${r.p?.product ??
|
|
302
|
+
product_name: `${row.product_name ?? "Groep"} — ${r.p?.product ?? "onbekend groepslid"}`,
|
|
287
303
|
plants: shares[idx],
|
|
288
304
|
...r.belading,
|
|
289
305
|
packing_authoritative: isAuthoritative(r.source),
|
|
@@ -551,8 +567,12 @@ export function dimensionCartsToPlannedUnits(carts) {
|
|
|
551
567
|
// ---------------------------------------------------------------------------
|
|
552
568
|
// Herplannen van een buffer
|
|
553
569
|
// ---------------------------------------------------------------------------
|
|
554
|
-
/**
|
|
555
|
-
|
|
570
|
+
/**
|
|
571
|
+
* Maximaal aantal ladingdragers dat één orderbuffer mag opleveren. De grootste
|
|
572
|
+
* echte buffers kwamen op 725–867 karren; 1.000 houdt een vangnet tegen
|
|
573
|
+
* opgeblazen aantallen zonder echte grote orders te blokkeren.
|
|
574
|
+
*/
|
|
575
|
+
const MAX_CARTS_PER_BUFFER = 1000;
|
|
556
576
|
/** Statussen waarbij een order niet meer ingedeeld hoeft te worden. */
|
|
557
577
|
const TERMINALE_STATUSSEN = new Set([
|
|
558
578
|
"verzonden",
|
|
@@ -1013,6 +1033,24 @@ async function replanBufferUnlocked(sb, bufferId, options = {}) {
|
|
|
1013
1033
|
for (const s of sources.values())
|
|
1014
1034
|
beladingSources[s] = (beladingSources[s] ?? 0) + 1;
|
|
1015
1035
|
console.log(`[logistiek-engine] buffer ${bufferId}: beladingbronnen ${JSON.stringify(beladingSources)}`);
|
|
1036
|
+
// Sporenregel: welke codeversie en welke groepsregel deze ronde gebruikte.
|
|
1037
|
+
try {
|
|
1038
|
+
const orderIdsInRonde = [...new Set(itemToOrder.values())];
|
|
1039
|
+
await traceBatch(sb, orderIdsInRonde.map((oid) => ({
|
|
1040
|
+
orderRef: oid,
|
|
1041
|
+
phase: "indeling",
|
|
1042
|
+
step: "Planner-logica vastgelegd",
|
|
1043
|
+
status: "geslaagd",
|
|
1044
|
+
actor: "planner",
|
|
1045
|
+
decision: `Moduleversie ${MODULE_VERSION}`,
|
|
1046
|
+
reason: "Een bestelregel die aan een echt artikel gekoppeld is, blijft dat artikel, ook als er een productgroep met dezelfde naam bestaat. Onbekende groepsleden blokkeren.",
|
|
1047
|
+
rule: "gekoppeld_artikel_voor_groepsnaam",
|
|
1048
|
+
values: { moduleVersion: MODULE_VERSION, bufferId, beladingSources },
|
|
1049
|
+
})));
|
|
1050
|
+
}
|
|
1051
|
+
catch {
|
|
1052
|
+
// logboek is nooit sturend
|
|
1053
|
+
}
|
|
1016
1054
|
// Bestaande beladingen tellen en wissen.
|
|
1017
1055
|
const { data: existingCarts } = await sb
|
|
1018
1056
|
.from("order_carts")
|
|
@@ -1217,9 +1255,11 @@ async function replanBufferUnlocked(sb, bufferId, options = {}) {
|
|
|
1217
1255
|
// omzeild kan worden.
|
|
1218
1256
|
const totalCartsAfterPlan = plannedCarts.length + frozenCartCount;
|
|
1219
1257
|
if (totalCartsAfterPlan > MAX_CARTS_PER_BUFFER) {
|
|
1220
|
-
const reason = `
|
|
1258
|
+
const reason = `Orderbuffer met order(s) ${orderRefs.join(", ")} komt uit op ${totalCartsAfterPlan} ladingdragers ` +
|
|
1221
1259
|
`(${frozenCartCount} al vastgelegd + ${plannedCarts.length} nieuw), meer dan de grens van ` +
|
|
1222
|
-
`${MAX_CARTS_PER_BUFFER}.
|
|
1260
|
+
`${MAX_CARTS_PER_BUFFER}. Alleen deze buffer is niet ingedeeld. Wat te doen: controleer de ` +
|
|
1261
|
+
`aantallen in de order (dubbele regels?) en de belading per ladingdrager van de producten; ` +
|
|
1262
|
+
`daarna opnieuw berekenen.`;
|
|
1223
1263
|
console.error(`[logistiek-engine] buffer ${bufferId} geblokkeerd: ${reason}`);
|
|
1224
1264
|
if (!options.dryRun) {
|
|
1225
1265
|
const { error: blockError } = await sb.rpc("logistics_plan_block", {
|
|
@@ -1264,6 +1304,30 @@ async function replanBufferUnlocked(sb, bufferId, options = {}) {
|
|
|
1264
1304
|
carts: plannedCarts,
|
|
1265
1305
|
};
|
|
1266
1306
|
}
|
|
1307
|
+
// Tussen lezen en schrijven kan de buffer zijn afgesloten (bijv. door het
|
|
1308
|
+
// losmaken van late orders). Dan niets meer schrijven.
|
|
1309
|
+
{
|
|
1310
|
+
const { data: bufRow, error: bufError } = await sb
|
|
1311
|
+
.from("order_buffers")
|
|
1312
|
+
.select("closed_at")
|
|
1313
|
+
.eq("id", bufferId)
|
|
1314
|
+
.maybeSingle();
|
|
1315
|
+
if (bufError || bufRow?.closed_at) {
|
|
1316
|
+
const reason = bufError
|
|
1317
|
+
? `Status van de buffer kon niet worden gelezen: ${bufError.message}`
|
|
1318
|
+
: "De buffer is inmiddels afgesloten; er is niets weggeschreven.";
|
|
1319
|
+
return {
|
|
1320
|
+
ok: true,
|
|
1321
|
+
bufferId,
|
|
1322
|
+
orderIds,
|
|
1323
|
+
cartsCreated: 0,
|
|
1324
|
+
replacedManualCount,
|
|
1325
|
+
usedFloridayPacking,
|
|
1326
|
+
warnings: [...warnings, reason],
|
|
1327
|
+
skipped: "locked",
|
|
1328
|
+
};
|
|
1329
|
+
}
|
|
1330
|
+
}
|
|
1267
1331
|
const persistentIdentities = assignPersistentCartIdentities(plannedCarts, itemToOrder, {
|
|
1268
1332
|
shared: isBufferOrder || isSupplement,
|
|
1269
1333
|
startNumber: cartNumberStart,
|
|
@@ -16106,18 +16106,24 @@ export declare const startRecalcJob: import("@tanstack/start-client-core").Optio
|
|
|
16106
16106
|
Row: {
|
|
16107
16107
|
id: boolean;
|
|
16108
16108
|
last_cleanup_at: string | null;
|
|
16109
|
+
last_error: string | null;
|
|
16110
|
+
last_error_at: string | null;
|
|
16109
16111
|
last_sync_at: string | null;
|
|
16110
16112
|
updated_at: string;
|
|
16111
16113
|
};
|
|
16112
16114
|
Insert: {
|
|
16113
16115
|
id?: boolean;
|
|
16114
16116
|
last_cleanup_at?: string | null;
|
|
16117
|
+
last_error?: string | null;
|
|
16118
|
+
last_error_at?: string | null;
|
|
16115
16119
|
last_sync_at?: string | null;
|
|
16116
16120
|
updated_at?: string;
|
|
16117
16121
|
};
|
|
16118
16122
|
Update: {
|
|
16119
16123
|
id?: boolean;
|
|
16120
16124
|
last_cleanup_at?: string | null;
|
|
16125
|
+
last_error?: string | null;
|
|
16126
|
+
last_error_at?: string | null;
|
|
16121
16127
|
last_sync_at?: string | null;
|
|
16122
16128
|
updated_at?: string;
|
|
16123
16129
|
};
|
|
@@ -26391,6 +26397,27 @@ export declare const startRecalcJob: import("@tanstack/start-client-core").Optio
|
|
|
26391
26397
|
};
|
|
26392
26398
|
Returns: boolean;
|
|
26393
26399
|
};
|
|
26400
|
+
layout_print_document: {
|
|
26401
|
+
Args: {
|
|
26402
|
+
_documentnaam: string;
|
|
26403
|
+
_documenttype: string;
|
|
26404
|
+
_herkomst?: string;
|
|
26405
|
+
_idempotentie_sleutel?: string;
|
|
26406
|
+
_is_herprint?: boolean;
|
|
26407
|
+
_kopieen?: number;
|
|
26408
|
+
_layout_id?: string;
|
|
26409
|
+
_payload?: import("../integrations/supabase/types").Json;
|
|
26410
|
+
_pdf_base64?: string;
|
|
26411
|
+
_pdf_url?: string;
|
|
26412
|
+
_print_plek_id?: string;
|
|
26413
|
+
_werkplek?: string;
|
|
26414
|
+
};
|
|
26415
|
+
Returns: {
|
|
26416
|
+
bestaand: boolean;
|
|
26417
|
+
job_id: string;
|
|
26418
|
+
printer_id: string;
|
|
26419
|
+
}[];
|
|
26420
|
+
};
|
|
26394
26421
|
list_medewerkers: {
|
|
26395
26422
|
Args: never;
|
|
26396
26423
|
Returns: {
|
|
@@ -27093,6 +27120,13 @@ export declare const startRecalcJob: import("@tanstack/start-client-core").Optio
|
|
|
27093
27120
|
};
|
|
27094
27121
|
Returns: import("../integrations/supabase/types").Json;
|
|
27095
27122
|
};
|
|
27123
|
+
logistics_control_scan_print_own: {
|
|
27124
|
+
Args: {
|
|
27125
|
+
p_is_herprint?: boolean;
|
|
27126
|
+
p_scan_id: string;
|
|
27127
|
+
};
|
|
27128
|
+
Returns: import("../integrations/supabase/types").Json;
|
|
27129
|
+
};
|
|
27096
27130
|
logistics_control_scan_retry: {
|
|
27097
27131
|
Args: {
|
|
27098
27132
|
_id: string;
|
|
@@ -27997,6 +28031,21 @@ export declare const startRecalcJob: import("@tanstack/start-client-core").Optio
|
|
|
27997
28031
|
};
|
|
27998
28032
|
Returns: import("../integrations/supabase/types").Json;
|
|
27999
28033
|
};
|
|
28034
|
+
logistics_print_via_layout: {
|
|
28035
|
+
Args: {
|
|
28036
|
+
_documentnaam: string;
|
|
28037
|
+
_documenttype: string;
|
|
28038
|
+
_herkomst: string;
|
|
28039
|
+
_idempotentie_sleutel: string;
|
|
28040
|
+
_is_herprint: boolean;
|
|
28041
|
+
_layout_id: string;
|
|
28042
|
+
_payload: import("../integrations/supabase/types").Json;
|
|
28043
|
+
_pdf_base64: string;
|
|
28044
|
+
_pdf_url: string;
|
|
28045
|
+
_print_plek_id: string;
|
|
28046
|
+
};
|
|
28047
|
+
Returns: import("../integrations/supabase/types").Json;
|
|
28048
|
+
};
|
|
28000
28049
|
logistics_prune_buffer_member_queue: {
|
|
28001
28050
|
Args: never;
|
|
28002
28051
|
Returns: number;
|
|
@@ -28352,6 +28401,12 @@ export declare const startRecalcJob: import("@tanstack/start-client-core").Optio
|
|
|
28352
28401
|
};
|
|
28353
28402
|
Returns: undefined;
|
|
28354
28403
|
};
|
|
28404
|
+
logistics_slip_note_retry: {
|
|
28405
|
+
Args: {
|
|
28406
|
+
_id: string;
|
|
28407
|
+
};
|
|
28408
|
+
Returns: import("../integrations/supabase/types").Json;
|
|
28409
|
+
};
|
|
28355
28410
|
logistics_sticker_follows_slip: {
|
|
28356
28411
|
Args: never;
|
|
28357
28412
|
Returns: boolean;
|
|
@@ -29096,6 +29151,10 @@ export declare const startRecalcJob: import("@tanstack/start-client-core").Optio
|
|
|
29096
29151
|
};
|
|
29097
29152
|
Returns: string;
|
|
29098
29153
|
};
|
|
29154
|
+
pick_is_reference_admin: {
|
|
29155
|
+
Args: never;
|
|
29156
|
+
Returns: boolean;
|
|
29157
|
+
};
|
|
29099
29158
|
pick_mark_printed: {
|
|
29100
29159
|
Args: {
|
|
29101
29160
|
_queue_item_id: string;
|
|
@@ -47270,18 +47329,24 @@ export declare const tickRecalcJob: import("@tanstack/start-client-core").Option
|
|
|
47270
47329
|
Row: {
|
|
47271
47330
|
id: boolean;
|
|
47272
47331
|
last_cleanup_at: string | null;
|
|
47332
|
+
last_error: string | null;
|
|
47333
|
+
last_error_at: string | null;
|
|
47273
47334
|
last_sync_at: string | null;
|
|
47274
47335
|
updated_at: string;
|
|
47275
47336
|
};
|
|
47276
47337
|
Insert: {
|
|
47277
47338
|
id?: boolean;
|
|
47278
47339
|
last_cleanup_at?: string | null;
|
|
47340
|
+
last_error?: string | null;
|
|
47341
|
+
last_error_at?: string | null;
|
|
47279
47342
|
last_sync_at?: string | null;
|
|
47280
47343
|
updated_at?: string;
|
|
47281
47344
|
};
|
|
47282
47345
|
Update: {
|
|
47283
47346
|
id?: boolean;
|
|
47284
47347
|
last_cleanup_at?: string | null;
|
|
47348
|
+
last_error?: string | null;
|
|
47349
|
+
last_error_at?: string | null;
|
|
47285
47350
|
last_sync_at?: string | null;
|
|
47286
47351
|
updated_at?: string;
|
|
47287
47352
|
};
|
|
@@ -57555,6 +57620,27 @@ export declare const tickRecalcJob: import("@tanstack/start-client-core").Option
|
|
|
57555
57620
|
};
|
|
57556
57621
|
Returns: boolean;
|
|
57557
57622
|
};
|
|
57623
|
+
layout_print_document: {
|
|
57624
|
+
Args: {
|
|
57625
|
+
_documentnaam: string;
|
|
57626
|
+
_documenttype: string;
|
|
57627
|
+
_herkomst?: string;
|
|
57628
|
+
_idempotentie_sleutel?: string;
|
|
57629
|
+
_is_herprint?: boolean;
|
|
57630
|
+
_kopieen?: number;
|
|
57631
|
+
_layout_id?: string;
|
|
57632
|
+
_payload?: import("../integrations/supabase/types").Json;
|
|
57633
|
+
_pdf_base64?: string;
|
|
57634
|
+
_pdf_url?: string;
|
|
57635
|
+
_print_plek_id?: string;
|
|
57636
|
+
_werkplek?: string;
|
|
57637
|
+
};
|
|
57638
|
+
Returns: {
|
|
57639
|
+
bestaand: boolean;
|
|
57640
|
+
job_id: string;
|
|
57641
|
+
printer_id: string;
|
|
57642
|
+
}[];
|
|
57643
|
+
};
|
|
57558
57644
|
list_medewerkers: {
|
|
57559
57645
|
Args: never;
|
|
57560
57646
|
Returns: {
|
|
@@ -58257,6 +58343,13 @@ export declare const tickRecalcJob: import("@tanstack/start-client-core").Option
|
|
|
58257
58343
|
};
|
|
58258
58344
|
Returns: import("../integrations/supabase/types").Json;
|
|
58259
58345
|
};
|
|
58346
|
+
logistics_control_scan_print_own: {
|
|
58347
|
+
Args: {
|
|
58348
|
+
p_is_herprint?: boolean;
|
|
58349
|
+
p_scan_id: string;
|
|
58350
|
+
};
|
|
58351
|
+
Returns: import("../integrations/supabase/types").Json;
|
|
58352
|
+
};
|
|
58260
58353
|
logistics_control_scan_retry: {
|
|
58261
58354
|
Args: {
|
|
58262
58355
|
_id: string;
|
|
@@ -59161,6 +59254,21 @@ export declare const tickRecalcJob: import("@tanstack/start-client-core").Option
|
|
|
59161
59254
|
};
|
|
59162
59255
|
Returns: import("../integrations/supabase/types").Json;
|
|
59163
59256
|
};
|
|
59257
|
+
logistics_print_via_layout: {
|
|
59258
|
+
Args: {
|
|
59259
|
+
_documentnaam: string;
|
|
59260
|
+
_documenttype: string;
|
|
59261
|
+
_herkomst: string;
|
|
59262
|
+
_idempotentie_sleutel: string;
|
|
59263
|
+
_is_herprint: boolean;
|
|
59264
|
+
_layout_id: string;
|
|
59265
|
+
_payload: import("../integrations/supabase/types").Json;
|
|
59266
|
+
_pdf_base64: string;
|
|
59267
|
+
_pdf_url: string;
|
|
59268
|
+
_print_plek_id: string;
|
|
59269
|
+
};
|
|
59270
|
+
Returns: import("../integrations/supabase/types").Json;
|
|
59271
|
+
};
|
|
59164
59272
|
logistics_prune_buffer_member_queue: {
|
|
59165
59273
|
Args: never;
|
|
59166
59274
|
Returns: number;
|
|
@@ -59516,6 +59624,12 @@ export declare const tickRecalcJob: import("@tanstack/start-client-core").Option
|
|
|
59516
59624
|
};
|
|
59517
59625
|
Returns: undefined;
|
|
59518
59626
|
};
|
|
59627
|
+
logistics_slip_note_retry: {
|
|
59628
|
+
Args: {
|
|
59629
|
+
_id: string;
|
|
59630
|
+
};
|
|
59631
|
+
Returns: import("../integrations/supabase/types").Json;
|
|
59632
|
+
};
|
|
59519
59633
|
logistics_sticker_follows_slip: {
|
|
59520
59634
|
Args: never;
|
|
59521
59635
|
Returns: boolean;
|
|
@@ -60260,6 +60374,10 @@ export declare const tickRecalcJob: import("@tanstack/start-client-core").Option
|
|
|
60260
60374
|
};
|
|
60261
60375
|
Returns: string;
|
|
60262
60376
|
};
|
|
60377
|
+
pick_is_reference_admin: {
|
|
60378
|
+
Args: never;
|
|
60379
|
+
Returns: boolean;
|
|
60380
|
+
};
|
|
60263
60381
|
pick_mark_printed: {
|
|
60264
60382
|
Args: {
|
|
60265
60383
|
_queue_item_id: string;
|