@flowselections/floriday-voorraad 1.0.101 → 1.0.105
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/voorraad/FloridayConnectionNotice.d.ts +12 -0
- package/dist-lib/components/voorraad/FloridayConnectionNotice.d.ts.map +1 -0
- package/dist-lib/components/voorraad/FloridayConnectionNotice.js +16 -0
- package/dist-lib/components/voorraad/NieuwArtikelPage.d.ts.map +1 -1
- package/dist-lib/components/voorraad/NieuwArtikelPage.js +22 -10
- package/dist-lib/components/voorraad/StockBulkButtons.d.ts.map +1 -1
- package/dist-lib/components/voorraad/StockBulkButtons.js +2 -1
- package/dist-lib/components/voorraad/VoorraadPage.d.ts.map +1 -1
- package/dist-lib/components/voorraad/VoorraadPage.js +5 -3
- package/dist-lib/components/voorraad/VoorraadStockCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/VoorraadStockCard.js +5 -2
- package/dist-lib/components/voorraad/VoorraadTable.d.ts.map +1 -1
- package/dist-lib/components/voorraad/VoorraadTable.js +5 -1
- package/dist-lib/hooks/useFloridayConnection.d.ts +7 -1
- package/dist-lib/hooks/useFloridayConnection.d.ts.map +1 -1
- package/dist-lib/hooks/useFloridayConnection.js +51 -18
- package/dist-lib/hooks/useTradeItemStock.d.ts +1 -1
- package/dist-lib/hooks/useTradeItemStock.d.ts.map +1 -1
- package/dist-lib/hooks/useTradeItemStock.js +18 -7
- package/dist-lib/hooks/useVoorraadData.d.ts.map +1 -1
- package/dist-lib/hooks/useVoorraadData.js +12 -21
- package/dist-lib/integrations/supabase/types.d.ts +892 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/__tests__/stock-scope.test.d.ts +2 -0
- package/dist-lib/lib/__tests__/stock-scope.test.d.ts.map +1 -0
- package/dist-lib/lib/__tests__/stock-scope.test.js +44 -0
- package/dist-lib/lib/floriday-client.d.ts +2 -0
- package/dist-lib/lib/floriday-client.d.ts.map +1 -1
- package/dist-lib/lib/stock-scope.d.ts +25 -0
- package/dist-lib/lib/stock-scope.d.ts.map +1 -0
- package/dist-lib/lib/stock-scope.js +37 -0
- package/package.json +1 -1
- package/sql/floriday-voorraad-schema.sql +5 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stock-scope.test.d.ts","sourceRoot":"","sources":["../../../src/lib/__tests__/stock-scope.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { buildScopedStockMap, connectionStatusOf, noConnectionText } from "../stock-scope.js";
|
|
3
|
+
const row = (connection_id, key, physical_stock) => ({
|
|
4
|
+
connection_id,
|
|
5
|
+
trade_item_key: key,
|
|
6
|
+
physical_stock,
|
|
7
|
+
});
|
|
8
|
+
describe("connectionStatusOf", () => {
|
|
9
|
+
it("lege RPC-uitkomst = geen koppeling", () => {
|
|
10
|
+
expect(connectionStatusOf({ loading: false, error: null, connectionId: null })).toBe("geen_koppeling");
|
|
11
|
+
});
|
|
12
|
+
it("RPC-fout = fout", () => {
|
|
13
|
+
expect(connectionStatusOf({ loading: false, error: "kapot", connectionId: null })).toBe("fout");
|
|
14
|
+
});
|
|
15
|
+
it("rij met id = actief", () => {
|
|
16
|
+
expect(connectionStatusOf({ loading: false, error: null, connectionId: "c1" })).toBe("actief");
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
describe("noConnectionText", () => {
|
|
20
|
+
it("noemt de omgeving alleen als die bekend is", () => {
|
|
21
|
+
expect(noConnectionText("live")).toContain("omgeving live");
|
|
22
|
+
expect(noConnectionText(null)).toContain("de gekozen omgeving");
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
describe("buildScopedStockMap", () => {
|
|
26
|
+
it("geen koppeling: eigen rij telt mee", () => {
|
|
27
|
+
const m = buildScopedStockMap([row(null, "product:a", 12)], null);
|
|
28
|
+
expect(m.get("product:a")?.physical_stock).toBe(12);
|
|
29
|
+
});
|
|
30
|
+
it("geen koppeling: rijen met een koppeling tellen niet", () => {
|
|
31
|
+
const m = buildScopedStockMap([row("c1", "product:a", 5), row("c2", "product:b", 7)], null);
|
|
32
|
+
expect(m.size).toBe(0);
|
|
33
|
+
});
|
|
34
|
+
it("koppeling + eigen rij: één regel, geen dubbele telling", () => {
|
|
35
|
+
const m = buildScopedStockMap([row(null, "product:a", 3), row("c1", "product:a", 9), row("c1", "product:b", 4), row(null, "product:c", 2)], "c1");
|
|
36
|
+
expect(m.size).toBe(3);
|
|
37
|
+
expect(m.get("product:a")?.physical_stock).toBe(9);
|
|
38
|
+
expect(m.get("product:c")?.physical_stock).toBe(2);
|
|
39
|
+
});
|
|
40
|
+
it("koppeling: rijen van een andere koppeling tellen niet", () => {
|
|
41
|
+
const m = buildScopedStockMap([row("c2", "product:a", 50)], "c1");
|
|
42
|
+
expect(m.size).toBe(0);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
@@ -34,6 +34,8 @@ export interface TradeItem {
|
|
|
34
34
|
availableQuantity: number;
|
|
35
35
|
incomingQuantity: number;
|
|
36
36
|
economicQuantity: number;
|
|
37
|
+
/** Er is (binnen de getoonde koppeling of eigen voorraad) geen voorraadrij. */
|
|
38
|
+
stockMissing?: boolean;
|
|
37
39
|
raw: unknown;
|
|
38
40
|
/** Of dit product actief op Floriday staat. Volledig los van of het product bruikbaar is binnen ERP. */
|
|
39
41
|
floridayActive?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floriday-client.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"floriday-client.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Welke voorraadrijen tellen mee, en wat is de stand van de Floriday-koppeling.
|
|
3
|
+
* Pure functies (geen Supabase), zodat ze zonder database getest kunnen worden.
|
|
4
|
+
*/
|
|
5
|
+
export type ConnectionStatus = "laden" | "actief" | "geen_koppeling" | "fout";
|
|
6
|
+
export declare function connectionStatusOf(input: {
|
|
7
|
+
loading: boolean;
|
|
8
|
+
error: string | null;
|
|
9
|
+
connectionId: string | null;
|
|
10
|
+
}): ConnectionStatus;
|
|
11
|
+
/** Uitleg bij elke plek waar voorraad opslaan zonder koppeling uit staat. */
|
|
12
|
+
export declare const STOCK_WRITE_NEEDS_CONNECTION = "Voorraad opslaan kan pas met een Floriday-koppeling; dit komt in een volgende versie.";
|
|
13
|
+
export declare function noConnectionText(environment: string | null): string;
|
|
14
|
+
export interface ScopedStockRow {
|
|
15
|
+
connection_id: string | null;
|
|
16
|
+
trade_item_key: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Zonder koppeling: alleen eigen rijen (connection_id leeg).
|
|
20
|
+
* Met koppeling: rijen van de actieve koppeling plus eigen rijen; bestaat
|
|
21
|
+
* dezelfde sleutel in beide, dan telt alleen de rij van de koppeling
|
|
22
|
+
* (nooit optellen, anders dubbel). Rijen van andere koppelingen tellen niet.
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildScopedStockMap<T extends ScopedStockRow>(rows: T[], activeConnectionId: string | null): Map<string, T>;
|
|
25
|
+
//# sourceMappingURL=stock-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stock-scope.d.ts","sourceRoot":"","sources":["../../src/lib/stock-scope.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,gBAAgB,GAAG,MAAM,CAAC;AAE9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,GAAG,gBAAgB,CAInB;AAED,6EAA6E;AAC7E,eAAO,MAAM,4BAA4B,0FACgD,CAAC;AAE1F,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAKnE;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,cAAc,EAC1D,IAAI,EAAE,CAAC,EAAE,EACT,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAChC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAShB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Welke voorraadrijen tellen mee, en wat is de stand van de Floriday-koppeling.
|
|
3
|
+
* Pure functies (geen Supabase), zodat ze zonder database getest kunnen worden.
|
|
4
|
+
*/
|
|
5
|
+
export function connectionStatusOf(input) {
|
|
6
|
+
if (input.loading)
|
|
7
|
+
return "laden";
|
|
8
|
+
if (input.error)
|
|
9
|
+
return "fout";
|
|
10
|
+
return input.connectionId ? "actief" : "geen_koppeling";
|
|
11
|
+
}
|
|
12
|
+
/** Uitleg bij elke plek waar voorraad opslaan zonder koppeling uit staat. */
|
|
13
|
+
export const STOCK_WRITE_NEEDS_CONNECTION = "Voorraad opslaan kan pas met een Floriday-koppeling; dit komt in een volgende versie.";
|
|
14
|
+
export function noConnectionText(environment) {
|
|
15
|
+
const env = environment === "live" ? "live" : environment === "staging" ? "test" : null;
|
|
16
|
+
return env
|
|
17
|
+
? `Geen actieve Floriday-koppeling voor omgeving ${env} – alleen eigen artikelen mogelijk.`
|
|
18
|
+
: "Geen actieve Floriday-koppeling voor de gekozen omgeving – alleen eigen artikelen mogelijk.";
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Zonder koppeling: alleen eigen rijen (connection_id leeg).
|
|
22
|
+
* Met koppeling: rijen van de actieve koppeling plus eigen rijen; bestaat
|
|
23
|
+
* dezelfde sleutel in beide, dan telt alleen de rij van de koppeling
|
|
24
|
+
* (nooit optellen, anders dubbel). Rijen van andere koppelingen tellen niet.
|
|
25
|
+
*/
|
|
26
|
+
export function buildScopedStockMap(rows, activeConnectionId) {
|
|
27
|
+
const map = new Map();
|
|
28
|
+
for (const r of rows) {
|
|
29
|
+
if (r.connection_id !== null && r.connection_id !== activeConnectionId)
|
|
30
|
+
continue;
|
|
31
|
+
const existing = map.get(r.trade_item_key);
|
|
32
|
+
if (existing && existing.connection_id !== null && r.connection_id === null)
|
|
33
|
+
continue;
|
|
34
|
+
map.set(r.trade_item_key, r);
|
|
35
|
+
}
|
|
36
|
+
return map;
|
|
37
|
+
}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
-- @flowselections/floriday-voorraad 1.0.
|
|
1
|
+
-- @flowselections/floriday-voorraad 1.0.104 – volledig schema (idempotent, geen gegevens).
|
|
2
2
|
-- Gegenereerd uit de database met scripts/generate-voorraad-schema.py. Niet met de hand wijzigen.
|
|
3
3
|
-- Volgorde 20. Ontbrekende tabellen van andere modules worden overgeslagen met een NOTICE; draai opnieuw na die module.
|
|
4
4
|
-- De statuscontrole van floriday_continuous_stock_queue is van Voorraad en wordt hier opnieuw gemaakt.
|
|
@@ -1329,7 +1329,7 @@ CREATE OR REPLACE FUNCTION public.claim_floriday_stock_queue(p_limit integer DEF
|
|
|
1329
1329
|
SET search_path TO 'public'
|
|
1330
1330
|
AS $function$
|
|
1331
1331
|
BEGIN
|
|
1332
|
-
PERFORM public.voorraad_vereis('
|
|
1332
|
+
PERFORM public.voorraad_vereis('server', 'claim_floriday_stock_queue');
|
|
1333
1333
|
RETURN QUERY
|
|
1334
1334
|
WITH candidates AS (
|
|
1335
1335
|
SELECT q.id
|
|
@@ -1492,7 +1492,7 @@ DECLARE
|
|
|
1492
1492
|
v_since timestamptz;
|
|
1493
1493
|
v_min integer;
|
|
1494
1494
|
BEGIN
|
|
1495
|
-
PERFORM public.voorraad_vereis('
|
|
1495
|
+
PERFORM public.voorraad_vereis('server', 'complete_floriday_stock_queue');
|
|
1496
1496
|
SELECT * INTO v_row FROM public.floriday_continuous_stock_queue WHERE id = p_id;
|
|
1497
1497
|
IF v_row.id IS NULL THEN RETURN; END IF;
|
|
1498
1498
|
v_attempts := COALESCE(v_row.attempts, 0) + 1;
|
|
@@ -1595,7 +1595,7 @@ CREATE OR REPLACE FUNCTION public.complete_floriday_stock_queue_outcome(p_id uui
|
|
|
1595
1595
|
AS $function$
|
|
1596
1596
|
DECLARE v_row public.floriday_continuous_stock_queue%ROWTYPE; v_reason text; v_outcome text := p_outcome; v_err text := p_error;
|
|
1597
1597
|
BEGIN
|
|
1598
|
-
PERFORM public.voorraad_vereis('
|
|
1598
|
+
PERFORM public.voorraad_vereis('server', 'complete_floriday_stock_queue_outcome');
|
|
1599
1599
|
SELECT * INTO v_row FROM public.floriday_continuous_stock_queue WHERE id = p_id;
|
|
1600
1600
|
IF v_row.id IS NULL THEN RETURN; END IF;
|
|
1601
1601
|
|
|
@@ -8155,6 +8155,7 @@ BEGIN
|
|
|
8155
8155
|
'functies_zonder_controle_plpgsql', (SELECT count(*) FROM jsonb_array_elements(v_func) e WHERE e->>'soort' = 'plpgsql' AND NOT COALESCE((e->>'interne_controle')::boolean, false)),
|
|
8156
8156
|
'triggers_ontbrekend', (SELECT count(*) FROM jsonb_array_elements(v_trig) e WHERE NOT (e->>'aanwezig')::boolean),
|
|
8157
8157
|
'policies_ontbrekend', (SELECT count(*) FROM jsonb_array_elements(v_pol) e WHERE NOT (e->>'aanwezig')::boolean),
|
|
8158
|
+
'nog_zonder_controle_volgende_ronde', (SELECT COALESCE(jsonb_agg(e->>'functie' ORDER BY e->>'functie'), '[]'::jsonb) FROM jsonb_array_elements(v_func) e WHERE e->>'soort' = 'sql' AND NOT COALESCE((e->>'interne_controle')::boolean, false) AND NOT (e->>'functie' = ANY(v_open))),
|
|
8158
8159
|
'bewust_open', 'geen pickscherm/scanner-functies zonder inlog in Voorraad'),
|
|
8159
8160
|
'correctie_1098', public.voorraad_correctie_status('1098'),
|
|
8160
8161
|
'functies', v_func, 'triggers', v_trig, 'policies', v_pol);
|