@flowselections/logistiek-engine 1.0.187 → 1.0.191
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/db/schema/logistiek-engine.sql +1897 -76
- package/dist-lib/components/BeladingIndelingCard.d.ts.map +1 -1
- package/dist-lib/components/BeladingIndelingCard.js +4 -2
- package/dist-lib/components/GeblokkeerdeOrdersCard.d.ts.map +1 -1
- package/dist-lib/components/GeblokkeerdeOrdersCard.js +43 -4
- package/dist-lib/components/LadingdragersPage.d.ts.map +1 -1
- package/dist-lib/components/LadingdragersPage.js +4 -1
- package/dist-lib/components/OrdersZonderKarCard.d.ts +2 -0
- package/dist-lib/components/OrdersZonderKarCard.d.ts.map +1 -0
- package/dist-lib/components/OrdersZonderKarCard.js +36 -0
- package/dist-lib/components/RegiePage.d.ts.map +1 -1
- package/dist-lib/components/RegiePage.js +2 -1
- package/dist-lib/components/RuleEnginePage.js +8 -3
- package/dist-lib/hooks/useFloricodeLadingdragers.d.ts +2 -0
- package/dist-lib/hooks/useFloricodeLadingdragers.d.ts.map +1 -0
- package/dist-lib/hooks/useFloricodeLadingdragers.js +25 -0
- package/dist-lib/hooks/useGeblokkeerdeOrders.d.ts +1 -0
- package/dist-lib/hooks/useGeblokkeerdeOrders.d.ts.map +1 -1
- package/dist-lib/hooks/useGeblokkeerdeOrders.js +38 -1
- package/dist-lib/hooks/useRecalcJob.d.ts +1 -0
- package/dist-lib/hooks/useRecalcJob.d.ts.map +1 -1
- package/dist-lib/hooks/useRecalcJob.js +11 -1
- package/dist-lib/integrations/supabase/types.d.ts +2460 -76
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/beladingRegels.d.ts +18 -0
- package/dist-lib/lib/beladingRegels.d.ts.map +1 -1
- package/dist-lib/lib/beladingRegels.js +28 -0
- package/dist-lib/lib/handlers/logistics-tick.server.d.ts.map +1 -1
- package/dist-lib/lib/handlers/logistics-tick.server.js +14 -0
- package/dist-lib/lib/loadCarrierPlanner.d.ts +3 -0
- package/dist-lib/lib/loadCarrierPlanner.d.ts.map +1 -1
- package/dist-lib/lib/loadCarrierPlanner.js +18 -13
- package/dist-lib/lib/loadCarrierPlanning.server.d.ts +16 -0
- package/dist-lib/lib/loadCarrierPlanning.server.d.ts.map +1 -1
- package/dist-lib/lib/loadCarrierPlanning.server.js +394 -24
- package/dist-lib/lib/loadCarrierTypes.d.ts +7 -0
- package/dist-lib/lib/loadCarrierTypes.d.ts.map +1 -1
- package/dist-lib/lib/loadCarrierTypes.js +17 -0
- package/dist-lib/lib/logisticsRecalcJob.server.d.ts +1 -0
- package/dist-lib/lib/logisticsRecalcJob.server.d.ts.map +1 -1
- package/dist-lib/lib/logisticsRecalcJob.server.js +3 -1
- package/dist-lib/lib/logisticsRecalculate.functions.js +2 -2
- package/dist-lib/lib/moduleVersion.d.ts +1 -1
- package/dist-lib/lib/moduleVersion.js +1 -1
- package/dist-lib/lib/planQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/planQueue.server.js +6 -1
- package/dist-lib/lib/ruleEngineSchema.d.ts.map +1 -1
- package/dist-lib/lib/ruleEngineSchema.js +9 -0
- package/dist-lib/lib/scheduleTasks.server.d.ts +18 -0
- package/dist-lib/lib/scheduleTasks.server.d.ts.map +1 -0
- package/dist-lib/lib/scheduleTasks.server.js +65 -0
- package/package.json +1 -1
|
@@ -49,6 +49,24 @@ export interface PlausibiliteitInvoer {
|
|
|
49
49
|
}
|
|
50
50
|
/** Redenen waarom een belading onwaarschijnlijk is; leeg = in orde. */
|
|
51
51
|
export declare function plausibiliteit(inv: PlausibiliteitInvoer): string[];
|
|
52
|
+
/** 1.0.190: meer fusten op één kar is fysiek onmogelijk. */
|
|
53
|
+
export declare const MAX_FUST_PER_KAR = 200;
|
|
54
|
+
export interface BeladingBeoordeling {
|
|
55
|
+
/** Onmogelijke waarden: deze regel wacht op bevestiging. */
|
|
56
|
+
blokkeren: string[];
|
|
57
|
+
/** Ongebruikelijk, maar wel indelen (bijv. meer lagen dan de ladingdrager). */
|
|
58
|
+
waarschuwen: string[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 1.0.190: alleen onmogelijke beladingen blokkeren. `metBron` = de waarden komen
|
|
62
|
+
* uit een Floriday-verpakking (gezaghebbend). Handmatige bevestiging wordt door de
|
|
63
|
+
* aanroeper apart gefilterd.
|
|
64
|
+
*/
|
|
65
|
+
export declare function beladingBeoordeling(inv: PlausibiliteitInvoer & {
|
|
66
|
+
metBron: boolean;
|
|
67
|
+
}): BeladingBeoordeling;
|
|
68
|
+
/** 1.0.190: kar met meer dan MAX_FUST_PER_KAR fusten (na indeling) = onmogelijk. */
|
|
69
|
+
export declare function fustPerKarOnmogelijk(fusten: number): string | null;
|
|
52
70
|
export declare function karrenOnwaarschijnlijk(karren: number): string | null;
|
|
53
71
|
/** Sleutel van een bevestiging: één per order en verpakking. */
|
|
54
72
|
export declare function verpakkingSleutel(productId: string | null, b: BeladingVelden): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beladingRegels.d.ts","sourceRoot":"","sources":["../../src/lib/beladingRegels.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"beladingRegels.d.ts","sourceRoot":"","sources":["../../src/lib/beladingRegels.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,6 +98,34 @@ export function plausibiliteit(inv) {
|
|
|
98
98
|
}
|
|
99
99
|
return r;
|
|
100
100
|
}
|
|
101
|
+
/** 1.0.190: meer fusten op één kar is fysiek onmogelijk. */
|
|
102
|
+
export const MAX_FUST_PER_KAR = 200;
|
|
103
|
+
/**
|
|
104
|
+
* 1.0.190: alleen onmogelijke beladingen blokkeren. `metBron` = de waarden komen
|
|
105
|
+
* uit een Floriday-verpakking (gezaghebbend). Handmatige bevestiging wordt door de
|
|
106
|
+
* aanroeper apart gefilterd.
|
|
107
|
+
*/
|
|
108
|
+
export function beladingBeoordeling(inv) {
|
|
109
|
+
const b = inv.belading;
|
|
110
|
+
const blokkeren = [];
|
|
111
|
+
const waarschuwen = [];
|
|
112
|
+
const leeg = ["plants_per_crate", "crates_per_layer", "layers_per_cart"].filter((k) => !(Number.isFinite(Number(b[k])) && Number(b[k]) > 0));
|
|
113
|
+
if (leeg.length > 0)
|
|
114
|
+
blokkeren.push(`belading leeg of 0 (${leeg.join(", ")})`);
|
|
115
|
+
if (!inv.metBron && b.plants_per_crate === 1)
|
|
116
|
+
blokkeren.push("1 plant per fust zonder bron");
|
|
117
|
+
if (!inv.metBron && b.crates_per_layer === 1)
|
|
118
|
+
blokkeren.push("1 fust per laag zonder bron");
|
|
119
|
+
const max = positief(inv.maxLagenLadingdrager);
|
|
120
|
+
if (max != null && b.layers_per_cart > max) {
|
|
121
|
+
waarschuwen.push(`${b.layers_per_cart} lagen, terwijl de ladingdrager er volgens de pagina Ladingdragers maximaal ${max} heeft`);
|
|
122
|
+
}
|
|
123
|
+
return { blokkeren, waarschuwen };
|
|
124
|
+
}
|
|
125
|
+
/** 1.0.190: kar met meer dan MAX_FUST_PER_KAR fusten (na indeling) = onmogelijk. */
|
|
126
|
+
export function fustPerKarOnmogelijk(fusten) {
|
|
127
|
+
return fusten > MAX_FUST_PER_KAR ? `${fusten} fusten op één kar (meer dan ${MAX_FUST_PER_KAR})` : null;
|
|
128
|
+
}
|
|
101
129
|
export function karrenOnwaarschijnlijk(karren) {
|
|
102
130
|
return karren > MAX_KARREN_PER_ORDER
|
|
103
131
|
? `De order krijgt ${karren} karren (meer dan ${MAX_KARREN_PER_ORDER})`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logistics-tick.server.d.ts","sourceRoot":"","sources":["../../../src/lib/handlers/logistics-tick.server.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE;;;;EAE7D;AAQD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,EACxB,IAAI,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"logistics-tick.server.d.ts","sourceRoot":"","sources":["../../../src/lib/handlers/logistics-tick.server.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE;;;;EAE7D;AAQD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,EACxB,IAAI,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,OAAO,CAAC,QAAQ,CAAC,CAgGnB;AAED,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,eAAe,CAAC"}
|
|
@@ -53,6 +53,20 @@ export async function handleLogisticsTick(request, supabase, opts) {
|
|
|
53
53
|
catch {
|
|
54
54
|
// Niet aanvullen = fail closed (verzendbrieven wachten); ronde loopt door.
|
|
55
55
|
}
|
|
56
|
+
// 1.0.190: werkwijze-instelling "Opnieuw indelen bij wijziging" aanvullen waar die ontbreekt.
|
|
57
|
+
try {
|
|
58
|
+
await supabase.rpc("logistics_ensure_rebuffer_setting");
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// Ontbreekt de functie nog (schemasync), dan geldt de standaard (aan).
|
|
62
|
+
}
|
|
63
|
+
// 1.0.190: open orders zonder kar opnieuw inplannen (max. 3 pogingen, daarna melding).
|
|
64
|
+
try {
|
|
65
|
+
await supabase.rpc("logistics_bewaak_zonder_kar");
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Ontbreekt de functie nog (schemasync), dan alleen geen bewaking.
|
|
69
|
+
}
|
|
56
70
|
// Rondeslot: nooit twee tick-rondes tegelijk (minuut-cron én wek-aanroep
|
|
57
71
|
// komen hier allebei binnen). Hergebruikt het bestaande planslot met
|
|
58
72
|
// vervaltijd. Fail-closed: bij twijfel wordt de ronde overgeslagen; de
|
|
@@ -56,7 +56,10 @@ export interface PlannedLoadUnitItem {
|
|
|
56
56
|
plants_per_crate: number;
|
|
57
57
|
crates_per_layer: number;
|
|
58
58
|
layers_per_cart: number;
|
|
59
|
+
/** 1.0.190: vulling van één laag (0–1). */
|
|
59
60
|
layer_fraction: number;
|
|
61
|
+
/** 1.0.190: aantal lagen = fusten ÷ fusten per laag (mag groter zijn dan 1). */
|
|
62
|
+
lagen?: number | null;
|
|
60
63
|
layer_share_pct: number;
|
|
61
64
|
/** Alleen bij indelen op afmetingen: op welke laag deze fusten staan. */
|
|
62
65
|
layer_index?: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadCarrierPlanner.d.ts","sourceRoot":"","sources":["../../src/lib/loadCarrierPlanner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"loadCarrierPlanner.d.ts","sourceRoot":"","sources":["../../src/lib/loadCarrierPlanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -195,7 +195,9 @@ function summarizeCart(cart, rests, cartNumber, r) {
|
|
|
195
195
|
plants_per_crate: input.plants_per_crate,
|
|
196
196
|
crates_per_layer: rests[batchIdx].cratesPerLayer,
|
|
197
197
|
layers_per_cart: Math.max(1, Math.round(100 / rests[batchIdx].layerHeightPct)),
|
|
198
|
-
|
|
198
|
+
// 1.0.190: layer_fraction = vulling per laag (0–1); lagen = fusten ÷ fusten per laag.
|
|
199
|
+
layer_fraction: Math.min(1, Math.round((agg.crates / Math.max(1, rests[batchIdx].cratesPerLayer)) * 1000) / 1000),
|
|
200
|
+
lagen: Math.round((agg.crates / Math.max(1, rests[batchIdx].cratesPerLayer)) * 1000) / 1000,
|
|
199
201
|
layer_share_pct: agg.heightPct,
|
|
200
202
|
});
|
|
201
203
|
}
|
|
@@ -247,7 +249,8 @@ function fullCart(input, crates, cratesPerLayer, layers, cartNumber, r) {
|
|
|
247
249
|
plants_per_crate: input.plants_per_crate,
|
|
248
250
|
crates_per_layer: cratesPerLayer,
|
|
249
251
|
layers_per_cart: layers,
|
|
250
|
-
layer_fraction: 1,
|
|
252
|
+
layer_fraction: Math.min(1, Math.round((crates / Math.max(1, cratesPerLayer)) * 1000) / 1000),
|
|
253
|
+
lagen: Math.round((crates / Math.max(1, cratesPerLayer)) * 1000) / 1000,
|
|
251
254
|
layer_share_pct: 100,
|
|
252
255
|
},
|
|
253
256
|
],
|
|
@@ -324,16 +327,10 @@ export function planLoadUnits(inputs, options) {
|
|
|
324
327
|
carts.push(fullCart(it, cratesPerCart, cpl, layers, ++cartNumber, r));
|
|
325
328
|
}
|
|
326
329
|
// Partij die zelfstandig genoeg volle lagen vult krijgt een eigen drager.
|
|
330
|
+
// 1.0.190: die drager blijft open voor restfusten (hele fusten, eigen laag
|
|
331
|
+
// of bijmengen volgens de laagregels), zodat er geen extra kar ontstaat.
|
|
327
332
|
const own = r.opts.ownCarrierFromLayers;
|
|
328
|
-
|
|
329
|
-
const usedLayers = Math.ceil(remainderCrates / cpl);
|
|
330
|
-
const unit = fullCart(it, remainderCrates, cpl, usedLayers, ++cartNumber, r);
|
|
331
|
-
unit.is_complete = false;
|
|
332
|
-
unit.occupancy_pct = Math.round((usedLayers / layers) * 10000) / 100;
|
|
333
|
-
unit.items[0].layer_share_pct = unit.occupancy_pct;
|
|
334
|
-
carts.push(unit);
|
|
335
|
-
remainderCrates = 0;
|
|
336
|
-
}
|
|
333
|
+
const ownCarrier = Boolean(own && own > 0 && remainderCrates >= cpl * (own ?? 0));
|
|
337
334
|
if (remainderCrates > 0) {
|
|
338
335
|
rests.push({
|
|
339
336
|
input: it,
|
|
@@ -341,11 +338,14 @@ export function planLoadUnits(inputs, options) {
|
|
|
341
338
|
layerHeightPct: 100 / layers,
|
|
342
339
|
cratesPerLayer: cpl,
|
|
343
340
|
beladingKey: `${it.plants_per_crate}x${cpl}x${layers}`,
|
|
341
|
+
ownCarrier,
|
|
344
342
|
});
|
|
345
343
|
}
|
|
346
344
|
}
|
|
347
|
-
// --- Sorteren van de restpartijen: first-fit decreasing
|
|
345
|
+
// --- Sorteren van de restpartijen: eigen dragers eerst, dan first-fit decreasing
|
|
348
346
|
rests.sort((a, b) => {
|
|
347
|
+
if (Boolean(a.ownCarrier) !== Boolean(b.ownCarrier))
|
|
348
|
+
return a.ownCarrier ? -1 : 1;
|
|
349
349
|
if (a.beladingKey !== b.beladingKey)
|
|
350
350
|
return a.beladingKey.localeCompare(b.beladingKey);
|
|
351
351
|
return b.cratesRemaining - a.cratesRemaining;
|
|
@@ -355,9 +355,12 @@ export function planLoadUnits(inputs, options) {
|
|
|
355
355
|
for (let bi = 0; bi < rests.length; bi++) {
|
|
356
356
|
const batch = rests[bi];
|
|
357
357
|
let guard = 0;
|
|
358
|
+
let eigenDrager = null;
|
|
358
359
|
while (batch.cratesRemaining > 0 && guard++ < 1000) {
|
|
359
360
|
let placed = 0;
|
|
360
|
-
|
|
361
|
+
// Eigen drager: op een nieuwe drager beginnen en daar blijven (niet bij een ander inschuiven).
|
|
362
|
+
const kandidaten = batch.ownCarrier ? (eigenDrager ? [eigenDrager] : []) : openCarts;
|
|
363
|
+
for (const cart of kandidaten) {
|
|
361
364
|
placed = tryPlaceBatch(cart, batch, bi, r);
|
|
362
365
|
if (placed > 0) {
|
|
363
366
|
batch.cratesRemaining -= placed;
|
|
@@ -380,6 +383,8 @@ export function planLoadUnits(inputs, options) {
|
|
|
380
383
|
placed = batch.cratesRemaining;
|
|
381
384
|
}
|
|
382
385
|
openCarts.push(cart);
|
|
386
|
+
if (batch.ownCarrier && !eigenDrager)
|
|
387
|
+
eigenDrager = cart;
|
|
383
388
|
batch.cratesRemaining -= placed;
|
|
384
389
|
}
|
|
385
390
|
}
|
|
@@ -55,6 +55,11 @@ export interface ExpandOptions {
|
|
|
55
55
|
}>;
|
|
56
56
|
/** 1.0.179: fusttype per product voor de plausibiliteitscontrole. */
|
|
57
57
|
fustPerProduct?: Map<string, string | null>;
|
|
58
|
+
/**
|
|
59
|
+
* 1.0.190: regels zonder artikel blokkeren alleen hun eigen order. Is deze map
|
|
60
|
+
* meegegeven, dan wordt er niet gegooid maar per order een reden vastgelegd.
|
|
61
|
+
*/
|
|
62
|
+
orderBlokkades?: Map<string, string>;
|
|
58
63
|
/** Wordt gevuld met de gebruikte bron per orderregel-sleutel. */
|
|
59
64
|
sources?: Map<string, BeladingSource>;
|
|
60
65
|
/** Wordt gevuld met de onderdelen van een set per orderregel (aantallen voor de hele regel). */
|
|
@@ -106,9 +111,20 @@ export declare function scaleComponents(entry: {
|
|
|
106
111
|
* Een groep wordt nooit via de naam herkend.
|
|
107
112
|
*/
|
|
108
113
|
export declare function expandOrderItemsForPlanner(sb: SupabaseClient, rows: Array<Record<string, any>>, options?: ExpandOptions): Promise<PlannerInputItem[]>;
|
|
114
|
+
export interface BeladingWaarschuwing {
|
|
115
|
+
order_id: string | null;
|
|
116
|
+
sleutel: string;
|
|
117
|
+
tekst: string;
|
|
118
|
+
}
|
|
109
119
|
/** Invariant: elk fust van elke ingedeelde regel staat op precies één kar en de planten kloppen. */
|
|
110
120
|
export declare function invariantFouten(inputs: PlannerInputItem[], carts: PlannedLoadUnit[]): string[];
|
|
111
121
|
export declare function loadCarrierProfiles(sb: SupabaseClient): Promise<LoadCarrierTypeRow[]>;
|
|
122
|
+
/**
|
|
123
|
+
* 1.0.190 (E): Floriday-ladingdrager (packaging.loadCarrier) naar ladingdragertype.
|
|
124
|
+
* Vaste referentiedata, geen omgevingswaarde. Onbekende waarde = geen keuze.
|
|
125
|
+
*/
|
|
126
|
+
export declare const FLORIDAY_LADINGDRAGER: Record<string, string>;
|
|
127
|
+
export declare function ladingdragerUitVerpakking(waarde: unknown, actieveCodes: Set<string>): string | null;
|
|
112
128
|
export interface BeladingRules {
|
|
113
129
|
maxOrders: number | null;
|
|
114
130
|
maxCustomers: number | null;
|
|
@@ -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;AAG9B,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAA+C,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGrG,OAAO,
|
|
1
|
+
{"version":3,"file":"loadCarrierPlanning.server.d.ts","sourceRoot":"","sources":["../../src/lib/loadCarrierPlanning.server.ts"],"names":[],"mappings":"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"}
|