@flowselections/floriday-voorraad 1.0.143 → 1.0.145

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.
Files changed (27) hide show
  1. package/dist-lib/components/voorraad/ArtikelWizard.js +1 -1
  2. package/dist-lib/components/voorraad/FustAdministratie.d.ts +12 -0
  3. package/dist-lib/components/voorraad/FustAdministratie.d.ts.map +1 -0
  4. package/dist-lib/components/voorraad/FustAdministratie.js +69 -0
  5. package/dist-lib/components/voorraad/FustenPage.d.ts.map +1 -1
  6. package/dist-lib/components/voorraad/FustenPage.js +9 -14
  7. package/dist-lib/components/voorraad/KoppelingStatusPanel.d.ts +6 -0
  8. package/dist-lib/components/voorraad/KoppelingStatusPanel.d.ts.map +1 -0
  9. package/dist-lib/components/voorraad/KoppelingStatusPanel.js +47 -0
  10. package/dist-lib/components/voorraad/NieuwArtikelPage.js +2 -2
  11. package/dist-lib/components/voorraad/TelmomentButton.d.ts +8 -0
  12. package/dist-lib/components/voorraad/TelmomentButton.d.ts.map +1 -0
  13. package/dist-lib/components/voorraad/TelmomentButton.js +65 -0
  14. package/dist-lib/components/voorraad/ValidationPage.d.ts.map +1 -1
  15. package/dist-lib/components/voorraad/ValidationPage.js +2 -1
  16. package/dist-lib/components/voorraad/VoorraadPage.d.ts.map +1 -1
  17. package/dist-lib/components/voorraad/VoorraadPage.js +2 -1
  18. package/dist-lib/integrations/supabase/types.d.ts +525 -0
  19. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  20. package/dist-lib/lib/fust-administratie.d.ts +29 -0
  21. package/dist-lib/lib/fust-administratie.d.ts.map +1 -0
  22. package/dist-lib/lib/fust-administratie.js +63 -0
  23. package/dist-lib/lib/fusten.d.ts +4 -0
  24. package/dist-lib/lib/fusten.d.ts.map +1 -1
  25. package/package.json +1 -1
  26. package/sql/AGENTS.md +3 -0
  27. package/sql/floriday-voorraad-schema.sql +910 -58
@@ -0,0 +1,29 @@
1
+ /** Fustcodes waarvan het saldo standaard niet wordt bijgehouden (wegwerp/eenmalig). */
2
+ export declare const STANDAARD_NIET_BIJHOUDEN: readonly [999, 800];
3
+ export interface FustAdminVelden {
4
+ name: string;
5
+ vbn_code: number | null;
6
+ stock: number;
7
+ saldo_bijhouden?: boolean | null;
8
+ eigen_naam?: string | null;
9
+ }
10
+ /** De naam die overal getoond wordt: eigen naam van de kweker, anders de Floricode-/Floriday-naam. */
11
+ export declare function fustNaam(f: Pick<FustAdminVelden, "name" | "eigen_naam">): string;
12
+ export declare function saldoBijhouden(f: Pick<FustAdminVelden, "vbn_code" | "saldo_bijhouden">): boolean;
13
+ /** Alleen bijgehouden fusten met een negatief saldo tellen als tekort. */
14
+ export declare function fustTekorten<T extends FustAdminVelden>(items: T[]): T[];
15
+ export interface FustStartmoment {
16
+ fust_type_id: string | null;
17
+ moment: string;
18
+ beginstand: number;
19
+ automatisch: boolean;
20
+ }
21
+ export declare function fetchFustStartmomenten(): Promise<FustStartmoment[]>;
22
+ /** fustTypeId null = startmoment voor alle fusten. */
23
+ export declare function saveFustStartmoment(fustTypeId: string | null, moment: Date, beginstand: number, notitie?: string): Promise<any>;
24
+ export declare function saveFustInstellingen(fustTypeId: string, saldoBijhouden: boolean | null, eigenNaam: string | null): Promise<void>;
25
+ /** Telmoment: welke orderregels vallen buiten de telling. */
26
+ export type TelmomentCategorie = "voor_teldag" | "vertrokken" | "teldag_open";
27
+ export declare const TELMOMENT_LABEL: Record<TelmomentCategorie, string>;
28
+ export declare function telmomentCategorie(leverdatum: string, teldag: string, vertrokkenVoorTelmoment: boolean): TelmomentCategorie | null;
29
+ //# sourceMappingURL=fust-administratie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fust-administratie.d.ts","sourceRoot":"","sources":["../../src/lib/fust-administratie.ts"],"names":[],"mappings":"AAMA,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,qBAAsB,CAAC;AAE5D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,sGAAsG;AACtG,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,YAAY,CAAC,GAAG,MAAM,CAGhF;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,iBAAiB,CAAC,GAAG,OAAO,CAGhG;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEvE;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAMzE;AAED,sDAAsD;AACtD,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,gBAUtH;AAED,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,iBAOtH;AAED,6DAA6D;AAC7D,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;AAE9E,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAI9D,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAIlI"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Fustenadministratie (1.0.144): startmoment, saldo bijhouden en eigen fustnaam.
3
+ * Zelfde regels als de database (`voorraad_fust_bijhouden`): niet ingesteld = 999 en 800 uit, de rest aan.
4
+ */
5
+ import { supabase } from "../integrations/supabase/client.js";
6
+ /** Fustcodes waarvan het saldo standaard niet wordt bijgehouden (wegwerp/eenmalig). */
7
+ export const STANDAARD_NIET_BIJHOUDEN = [999, 800];
8
+ /** De naam die overal getoond wordt: eigen naam van de kweker, anders de Floricode-/Floriday-naam. */
9
+ export function fustNaam(f) {
10
+ const eigen = f.eigen_naam?.trim();
11
+ return eigen ? eigen : f.name.trim();
12
+ }
13
+ export function saldoBijhouden(f) {
14
+ if (f.saldo_bijhouden === true || f.saldo_bijhouden === false)
15
+ return f.saldo_bijhouden;
16
+ return !(f.vbn_code != null && STANDAARD_NIET_BIJHOUDEN.includes(f.vbn_code));
17
+ }
18
+ /** Alleen bijgehouden fusten met een negatief saldo tellen als tekort. */
19
+ export function fustTekorten(items) {
20
+ return items.filter((f) => saldoBijhouden(f) && f.stock < 0).sort((a, b) => a.stock - b.stock);
21
+ }
22
+ export async function fetchFustStartmomenten() {
23
+ const { data, error } = await supabase
24
+ .from("fust_startmoment")
25
+ .select("fust_type_id, moment, beginstand, automatisch");
26
+ if (error)
27
+ throw new Error(error.message);
28
+ return (data ?? []);
29
+ }
30
+ /** fustTypeId null = startmoment voor alle fusten. */
31
+ export async function saveFustStartmoment(fustTypeId, moment, beginstand, notitie) {
32
+ const { data, error } = await supabase.rpc("voorraad_fust_startmoment_opslaan", {
33
+ p_fust_type_id: fustTypeId,
34
+ p_moment: moment.toISOString(),
35
+ p_beginstand: Math.trunc(beginstand),
36
+ p_beginstanden: null,
37
+ p_notitie: notitie ?? null,
38
+ });
39
+ if (error)
40
+ throw new Error(error.message);
41
+ return data;
42
+ }
43
+ export async function saveFustInstellingen(fustTypeId, saldoBijhouden, eigenNaam) {
44
+ const { error } = await supabase.rpc("voorraad_fust_instellingen_opslaan", {
45
+ p_fust_type_id: fustTypeId,
46
+ p_saldo_bijhouden: saldoBijhouden,
47
+ p_eigen_naam: eigenNaam && eigenNaam.trim() ? eigenNaam.trim() : null,
48
+ });
49
+ if (error)
50
+ throw new Error(error.message);
51
+ }
52
+ export const TELMOMENT_LABEL = {
53
+ voor_teldag: "Leverdatum vóór de teldag — telt niet mee",
54
+ vertrokken: "Vertrokken vóór het telmoment — telt niet mee",
55
+ teldag_open: "Teldag, nog niet vertrokken — vink aan als het al weg is",
56
+ };
57
+ export function telmomentCategorie(leverdatum, teldag, vertrokkenVoorTelmoment) {
58
+ if (leverdatum > teldag)
59
+ return null;
60
+ if (leverdatum < teldag)
61
+ return "voor_teldag";
62
+ return vertrokkenVoorTelmoment ? "vertrokken" : "teldag_open";
63
+ }
@@ -16,6 +16,10 @@ export interface FustType {
16
16
  height_mm: number | null;
17
17
  notes: string | null;
18
18
  updated_at: string;
19
+ /** null = standaard (999/800 uit, rest aan). */
20
+ saldo_bijhouden?: boolean | null;
21
+ /** Eigen naam van de kweker; wordt overal getoond in plaats van `name`. */
22
+ eigen_naam?: string | null;
19
23
  }
20
24
  export interface FustMutation {
21
25
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"fusten.d.ts","sourceRoot":"","sources":["../../src/lib/fusten.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fusten.d.ts","sourceRoot":"","sources":["../../src/lib/fusten.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,eAAe,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,CAAC,EAAE;IACtC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,MAAM,GAAG,IAAI,CAIhB;AAMD,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,MAAM,GAAG,IAAI,CAO9E;AA8DD,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAenF;AAQD,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAEtF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,iBAAiB,CAOhE;AAED,+DAA+D;AAC/D,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAW7F;AAED,4HAA4H;AAC5H,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC,GAAG;IAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACjH,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI,EAC9C,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,IAAI,GACrD;IAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAmB9G;AAWD,sEAAsE;AACtE,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAwCxF;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAUvF;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAgGD;AAED,iFAAiF;AACjF,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GAAG,OAAO,CAAC,IAAI,CAAC,CAchB;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,CACb,IAAI,CACF,QAAQ,EACR,MAAM,GAAG,eAAe,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,CAC5E,CACF,GACA,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,KAAK,SAAK,GACT,OAAO,CAAC,YAAY,EAAE,CAAC,CASzB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ChB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/floriday-voorraad",
3
- "version": "1.0.143",
3
+ "version": "1.0.145",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "main": "./dist-lib/index.js",
package/sql/AGENTS.md CHANGED
@@ -9,3 +9,6 @@
9
9
  - `sql/floriday-voorraad-schema.sql` must name the newest `supabase/migrations` file in its "Laatste migratie" header and contain the required objects; `scripts/check-schema-version.mjs` (prepublishOnly + test) blocks publishing otherwise; the header version is informational and never higher than package.json, because 1.0.139 shipped a stale schema and the dashboard bumps versions without schema changes.
10
10
  - Default data only via `voorraad_ensure_defaults()` (system data upserted by code keeping `naam_aangepast`, retired codes set inactive; customer settings only inserted when missing, with column defaults equal to reader fallbacks); bump `voorraad_defaults_versie()` on every list change, because new shells get the schema without data and the fast exit compares that version.
11
11
  - Load carrier → Engine code only via the Engine's `logistics_ladingdrager_resolve`; no own mapping list or fallback, because two lists drift.
12
+ - Floriday trade items become own articles only via `voorraad_floriday_artikelen_aanmaken` (match GTIN → article code → name; ambiguity goes to `voorraad_koppel_twijfel`, never guessed; reuses the existing stock row keyed by the Floriday id); the cache trigger only enqueues and wakes a self-unscheduling drain, with an hourly safety net from `voorraad_ensure_defaults`, because inline creation slowed Floriday-auth syncs.
13
+ - Floriday order lines resolve their article only from source metadata (`voorraad_orderregel_trade_item`, sales order id → trade item), overriding name matches; existing empty lines only via `voorraad_correctie_1144` (unambiguous, not shipped/cancelled/processed, batched), because name matches linked the wrong article.
14
+ - Fust balance counts only bookings from the start moment (`fust_startmoment`, global or per fust) plus the opening count; earlier bookings stay visible but outside the balance, and an automatic start moment is set only when none exists and `fust_stock_mutations` is empty, because existing shells must choose their own start.