@flowselections/layout-maker 1.69.1 → 1.69.5

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 (37) hide show
  1. package/dist-lib/components/BedrijfsgegevensMelding.d.ts +3 -0
  2. package/dist-lib/components/BedrijfsgegevensMelding.d.ts.map +1 -0
  3. package/dist-lib/components/BedrijfsgegevensMelding.js +26 -0
  4. package/dist-lib/components/GeladenEtiketTab.d.ts +8 -0
  5. package/dist-lib/components/GeladenEtiketTab.d.ts.map +1 -0
  6. package/dist-lib/components/GeladenEtiketTab.js +34 -0
  7. package/dist-lib/components/LayoutsPage.d.ts.map +1 -1
  8. package/dist-lib/components/LayoutsPage.js +2 -1
  9. package/dist-lib/components/PrintenPage.d.ts +2 -1
  10. package/dist-lib/components/PrintenPage.d.ts.map +1 -1
  11. package/dist-lib/components/PrintenPage.js +5 -2
  12. package/dist-lib/components/WerkplekkenTab.js +1 -1
  13. package/dist-lib/index.d.ts +1 -0
  14. package/dist-lib/index.d.ts.map +1 -1
  15. package/dist-lib/index.js +1 -0
  16. package/dist-lib/integrations/supabase/types.d.ts +334 -18
  17. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  18. package/dist-lib/lib/eigenDocumenten.d.ts +52 -0
  19. package/dist-lib/lib/eigenDocumenten.d.ts.map +1 -0
  20. package/dist-lib/lib/eigenDocumenten.js +182 -0
  21. package/dist-lib/lib/printQueue.server.d.ts +6 -0
  22. package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
  23. package/dist-lib/lib/printQueue.server.js +90 -2
  24. package/dist-lib/lib/standaardLayouts.server.d.ts +5 -4
  25. package/dist-lib/lib/standaardLayouts.server.d.ts.map +1 -1
  26. package/dist-lib/lib/standaardLayouts.server.js +8 -38
  27. package/dist-lib/lib/standaardenBron.d.ts.map +1 -1
  28. package/dist-lib/lib/standaardenBron.js +42 -0
  29. package/dist-lib/lib/stickerFormaat.d.ts +1 -1
  30. package/dist-lib/lib/stickerFormaat.d.ts.map +1 -1
  31. package/dist-lib/lib/versie.generated.d.ts +1 -1
  32. package/dist-lib/lib/versie.generated.js +1 -1
  33. package/dist-lib/lib/werkplekken.d.ts +1 -0
  34. package/dist-lib/lib/werkplekken.d.ts.map +1 -1
  35. package/dist-lib/lib/werkplekken.js +1 -1
  36. package/package.json +1 -1
  37. package/sql/print-schema.sql +56 -6
@@ -3009,7 +3009,9 @@ VALUES
3009
3009
  ('fs.pakbon', 2, 'pakbon', 'Pakbon', 'Standaarddocument voor eigen orders, met kolom Sticker. Volledig aanpasbaar — aanpassen kan per klant.', 'A4', 210, 297, '{"pakbon":{"secties":[{"id":"logo-std","type":"logo","titel":"Logo","zichtbaar":true,"opties":{"uitlijning":"left","hoogte":18},"condities":[]},{"id":"bedrijfsgegevens-std","type":"bedrijfsgegevens","titel":"Bedrijfsgegevens","zichtbaar":true,"opties":{"toonNaam":true,"toonAdres":true,"toonContact":true,"toonKvk":false},"condities":[]},{"id":"klantgegevens-std","type":"klantgegevens","titel":"Klantgegevens","zichtbaar":true,"opties":{"toonKlantnummer":true,"toonContact":true,"toonReferentie":true},"condities":[]},{"id":"afleveradres-std","type":"afleveradres","titel":"Afleveradres","zichtbaar":true,"opties":{"toonLand":true},"condities":[]},{"id":"orderinformatie-std","type":"orderinformatie","titel":"Orderinformatie","zichtbaar":true,"opties":{"toonOrdernummer":true,"toonDatum":true,"toonLeverdatum":true,"toonReferentie":true},"condities":[]},{"id":"pickmethode-std","type":"pickmethode","titel":"Pickmethode","zichtbaar":true,"opties":{"methode":"kar","kop":"Te verzamelen fusten — karindeling zelf bepalen","velden":["artikelnummer","artikelnaam","potmaat","kleur","locatie","fustsoort","planten_per_fust","fust_aantal","aantal"],"toonFusthoogte":true,"toonTotaal":true,"toonBarcode":true,"barcodeHoogte":15},"condities":[]},{"id":"karren-std","type":"karren","titel":"Karren","zichtbaar":true,"opties":{"modus":"pagina","bundel_identiek":true,"velden":["karnummer","lagen","producten"],"scheiding":"kop","koptekst":"KAR {kar}","kleur":"#e8eef7"},"condities":[]},{"id":"lagen-std","type":"lagen","titel":"Lagen","zichtbaar":true,"opties":{"modus":"apart","velden":["laagnummer","belading","producten"],"koptekst":"Laag {laag}"},"condities":[]},{"id":"producten-std","type":"producten","titel":"Producten op een laag","zichtbaar":true,"opties":{"weergave":"tabel","velden":["artikelnummer","artikelnaam","potmaat","aantal","sticker"],"toonSamenstelling":true,"onderdeelVelden":["artikelnaam","kleur","potmaat","aantal"],"groeperen":false,"kop_eenmalig":true,"sortering":"eigen"},"condities":[]},{"id":"fusten-std","type":"fusten","titel":"Fusten","zichtbaar":true,"opties":{"modus":"totaal","velden":["fusttype","aantal"]},"condities":[]},{"id":"totalen-std","type":"totalen","titel":"Totalen","zichtbaar":true,"opties":{"velden":["producten","karren","lagen"],"uitlijning":"right","elke_pagina":false,"toon_paginanummer":false},"condities":[]},{"id":"handtekening-std","type":"handtekening","titel":"Handtekening","zichtbaar":true,"opties":{"label":"Voor ontvangst getekend","toonNaam":true,"toonDatum":true,"toonBarcode":true},"condities":[]}]}}'::jsonb),
3010
3010
  ('fs.afleverbrief_bvo', 1, 'afleverbrief', 'Afleverbrief (BVO)', 'Verzendbrief voor eigen (niet-Floriday) orders. Volledig aanpasbaar.', 'A4', 210, 297, '{}'::jsonb),
3011
3011
  ('fs.productiebon', 1, 'productiebon', 'Productiebon', 'Standaard productiebon met de vaste blokindeling. Volledig aanpasbaar.', 'A4', 210, 297, '{}'::jsonb),
3012
- ('fs.eigen_sticker', 1, 'sticker', 'Eigen sticker', 'Sticker voor eigen orders: drukt de stickerafbeelding van de klant (payload.sticker_afbeelding) op ware grootte af. Volledig aanpasbaar.', 'LABEL_100x62', 100, 62, '{"eigen_sticker":{"afbeelding":"payload.sticker_afbeelding","passend":"ware_grootte"}}'::jsonb)
3012
+ ('fs.eigen_sticker', 1, 'sticker', 'Eigen sticker', 'Sticker voor eigen orders: drukt de stickerafbeelding van de klant (payload.sticker_afbeelding) op ware grootte af. Volledig aanpasbaar.', 'LABEL_100x62', 100, 62, '{"eigen_sticker":{"afbeelding":"payload.sticker_afbeelding","passend":"ware_grootte"}}'::jsonb),
3013
+ ('fs.eigen_traysticker', 2, 'traysticker', 'Eigen traysticker', 'Eén sticker per fust voor eigen orders: logo/bedrijfsnaam, klant, order, leverdatum, afleverlocatie, fust x van y, product met aantal planten per fust (en onderdelen) en barcode. Elk veld aan/uit te zetten.', 'LABEL_100x62', 100, 62, '{"eigen_traysticker":{"velden":{"logo":true,"bedrijfsnaam":true,"klantnaam":true,"ordernummer":true,"leverdatum":true,"afleverlocatie":true,"tray":true,"producten":true,"barcode":true}}}'::jsonb),
3014
+ ('fs.controlelijst', 1, 'controlelijst', 'Controlelijst karren', 'Controlelijst van de karren (Afhandeling). Kop met datum en aantal karren, tabel per kar en een voet om af te tekenen. Kolommen aan/uit te zetten.', 'A4', 210, 297, '{"controlelijst":{"kop":"Controlelijst karren","kolommen":["karnummer","klaarzetten_tekst","klantnaam","ordernummers","status_tekst"],"voet":["Gecontroleerd door","Datum en tijd","Handtekening"]}}'::jsonb)
3013
3015
  ON CONFLICT (sleutel) DO UPDATE SET
3014
3016
  versie = EXCLUDED.versie, documenttype = EXCLUDED.documenttype, naam = EXCLUDED.naam,
3015
3017
  omschrijving = EXCLUDED.omschrijving, papierformaat = EXCLUDED.papierformaat,
@@ -3222,18 +3224,23 @@ DECLARE
3222
3224
  v_l public.document_layouts%ROWTYPE;
3223
3225
  v_naam text;
3224
3226
  BEGIN
3225
- IF v_soort NOT IN ('pakbon','productiebon','verzenddocument','afleverbrief','veilingbrief','sticker','traysticker','eigen_sticker') THEN
3227
+ IF v_soort NOT IN ('pakbon','productiebon','verzenddocument','afleverbrief','veilingbrief','sticker','traysticker','eigen_sticker','controlelijst') THEN
3226
3228
  RETURN jsonb_build_object('ok', false, 'layout_id', NULL, 'bron', NULL, 'documenttype', nullif(v_soort,''),
3227
3229
  'breedte_mm', NULL, 'hoogte_mm', NULL, 'reden', 'Onbekende documentsoort: ' || coalesce(nullif(v_soort,''), '(leeg)') || '.');
3228
3230
  END IF;
3229
- SELECT true, coalesce(o.order_source = 'floriday', false) INTO v_bestaat, v_floriday
3230
- FROM public.orders o WHERE o.id = p_order_id;
3231
+ -- 1.69.2: de controlelijst hoort niet bij één order; p_order_id mag leeg zijn.
3232
+ IF v_soort = 'controlelijst' THEN
3233
+ v_bestaat := true; v_floriday := false;
3234
+ ELSE
3235
+ SELECT true, coalesce(o.order_source = 'floriday', false) INTO v_bestaat, v_floriday
3236
+ FROM public.orders o WHERE o.id = p_order_id;
3237
+ END IF;
3231
3238
  IF v_bestaat IS NULL THEN
3232
3239
  RETURN jsonb_build_object('ok', false, 'layout_id', NULL, 'bron', NULL, 'documenttype', v_soort,
3233
3240
  'breedte_mm', NULL, 'hoogte_mm', NULL, 'reden', 'Order niet gevonden.');
3234
3241
  END IF;
3235
3242
 
3236
- IF v_soort IN ('pakbon','productiebon') THEN
3243
+ IF v_soort IN ('pakbon','productiebon','controlelijst') THEN
3237
3244
  v_type := v_soort; v_bron := 'eigen';
3238
3245
  ELSIF v_soort = 'verzenddocument' THEN
3239
3246
  IF v_floriday THEN
@@ -3287,7 +3294,7 @@ BEGIN
3287
3294
 
3288
3295
  IF v_l.id IS NULL THEN
3289
3296
  v_naam := CASE v_type WHEN 'afleverbrief' THEN 'afleverbrief' WHEN 'veilingbrief' THEN 'veilingbrief'
3290
- WHEN 'productiebon' THEN 'productiebon' WHEN 'pakbon' THEN 'pakbon' WHEN 'traysticker' THEN 'traysticker' ELSE 'sticker' END;
3297
+ WHEN 'productiebon' THEN 'productiebon' WHEN 'pakbon' THEN 'pakbon' WHEN 'traysticker' THEN 'traysticker' WHEN 'controlelijst' THEN 'controlelijst' ELSE 'sticker' END;
3291
3298
  RETURN jsonb_build_object('ok', false, 'layout_id', NULL, 'bron', v_bron, 'documenttype', v_type,
3292
3299
  'breedte_mm', NULL, 'hoogte_mm', NULL,
3293
3300
  'reden', CASE
@@ -3304,3 +3311,46 @@ END;
3304
3311
  $function$;
3305
3312
  REVOKE ALL ON FUNCTION public.layout_voor_document(uuid, text) FROM PUBLIC, anon;
3306
3313
  GRANT EXECUTE ON FUNCTION public.layout_voor_document(uuid, text) TO authenticated, service_role;
3314
+
3315
+ -- 1.69.4: geladen etiketten voor de Engine — alle labelprinters met een ingesteld etiket
3316
+ CREATE OR REPLACE FUNCTION public.geladen_etiketten(_werkplek_id uuid DEFAULT NULL::uuid, _print_plek_id uuid DEFAULT NULL::uuid)
3317
+ RETURNS jsonb
3318
+ LANGUAGE sql
3319
+ STABLE
3320
+ SET search_path TO 'public'
3321
+ AS $function$
3322
+ SELECT coalesce(jsonb_agg(jsonb_build_object(
3323
+ 'werkplek_id', w.id, 'werkplek_naam', w.naam, 'print_plek_id', w.print_plek_id,
3324
+ 'printer_id', p.id, 'printer_naam', coalesce(p.weergavenaam, p.naam),
3325
+ 'naam', coalesce(p.weergavenaam, p.naam),
3326
+ 'geladen_etiket', p.geladen_etiket,
3327
+ 'breedte_mm', nullif(p.geladen_etiket->>'breedte_mm','')::numeric,
3328
+ 'hoogte_mm', nullif(p.geladen_etiket->>'hoogte_mm','')::numeric,
3329
+ 'routes', (SELECT coalesce(jsonb_agg(jsonb_build_object('route_id', r.id, 'computer', r.computer_naam,
3330
+ 'geladen_etiket', coalesce(r.geladen_etiket, p.geladen_etiket),
3331
+ 'breedte_mm', nullif(coalesce(r.geladen_etiket, p.geladen_etiket)->>'breedte_mm','')::numeric,
3332
+ 'hoogte_mm', nullif(coalesce(r.geladen_etiket, p.geladen_etiket)->>'hoogte_mm','')::numeric)), '[]'::jsonb)
3333
+ FROM printer_routes r WHERE r.printer_id = p.id)
3334
+ )), '[]'::jsonb)
3335
+ FROM printers p
3336
+ LEFT JOIN print_werkplekken w ON w.actief AND w.label_printer_id = p.id
3337
+ WHERE public.print_is_labelprinter(p.id)
3338
+ AND nullif(p.geladen_etiket->>'breedte_mm','') IS NOT NULL
3339
+ AND nullif(p.geladen_etiket->>'hoogte_mm','') IS NOT NULL
3340
+ AND (_werkplek_id IS NULL OR w.id = _werkplek_id)
3341
+ AND (_print_plek_id IS NULL OR w.print_plek_id = _print_plek_id)
3342
+ $function$;
3343
+ revoke all on function public.geladen_etiketten(uuid,uuid) from public;
3344
+ grant execute on function public.geladen_etiketten(uuid,uuid) to authenticated;
3345
+ grant execute on function public.geladen_etiketten(uuid,uuid) to service_role;
3346
+
3347
+ -- 1.69.4: pad (binnen de Shell) naar de instelling "Geladen etiket"; alleen als de sleutel ontbreekt
3348
+ do $$ begin
3349
+ if to_regclass('public.app_settings') is null then
3350
+ raise notice 'layout-maker: app_settings ontbreekt (Shell); layouts_printer_settings_path niet gezet';
3351
+ else
3352
+ insert into public.app_settings (key, value)
3353
+ select 'layouts_printer_settings_path', '/layouts-printers/printplekken?tab=etiketten'
3354
+ where not exists (select 1 from public.app_settings where key = 'layouts_printer_settings_path');
3355
+ end if;
3356
+ end $$;