@flowselections/pick-schermen-kwekers 1.0.29 → 1.0.31

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.
@@ -1 +1 @@
1
- {"version":3,"file":"PickScherm.d.ts","sourceRoot":"","sources":["../../../src/components/pick/PickScherm.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAUL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AA0C7B,UAAU,KAAK;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAeD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,+BAk1DpD"}
1
+ {"version":3,"file":"PickScherm.d.ts","sourceRoot":"","sources":["../../../src/components/pick/PickScherm.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAWL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AA2C7B,UAAU,KAAK;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAwBD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,+BA80DpD"}
@@ -10,9 +10,9 @@ import { ShippingNoteScan } from "./ShippingNoteScan";
10
10
  import { getSessionId, pickApi } from "../../lib/pickApi";
11
11
  import { sendLogisticsEvent } from "../../lib/logisticsApi";
12
12
  import { completeLogisticsTaskForItem } from "../../lib/pickPrint";
13
- import { isPdfOnlyFailure, pickReadiness, printedCartIdsOf, pdfSaveWarning, unitRefOf, unitTitleOf, } from "../../lib/pickTypes";
13
+ import { isPdfOnlyFailure, pickReadiness, printedCartIdsOf, pdfSaveWarning, unitRefOf, statusRefOf, unitTitleOf, } from "../../lib/pickTypes";
14
14
  import { rowFingerprint, rowsToVerify } from "../../lib/pickVerify";
15
- import { CART_MISSING_MESSAGE, cartResultLine, cartsForRow, isCartMissingError, reprintCartsIndividually, resettableJobs, runExclusive, resultsFromBatch, resultsFromBatchError, summarizeCartResults, trackableJobs, } from "../../lib/pickCartResults";
15
+ import { alreadyPrintedResults, CART_MISSING_MESSAGE, cartResultLine, cartsForRow, isCartMissingError, reprintCartsIndividually, resettableJobs, runExclusive, resultsFromBatch, resultsFromBatchError, summarizeCartResults, trackableJobs, } from "../../lib/pickCartResults";
16
16
  import { getPickTranslator } from "../../lib/pickI18n";
17
17
  import { friendlyPickError, getPickUiTexts } from "../../lib/pickUiText";
18
18
  import { getPrintJobTexts, printJobStatusLabel } from "../../lib/pickPrintJobText";
@@ -26,6 +26,15 @@ const LANG_STORAGE_KEY = "pick.language";
26
26
  /** Melding als de planning voor deze order geen karren heeft vastgelegd. */
27
27
  /** Papier is geprint, maar de PDF-kopie op de werkplek is niet opgeslagen. */
28
28
  const PDF_SAVE_NOTICE = "De pakbon is geprint, maar de PDF is niet op de werkplek opgeslagen. Geef de PDF-map in Layout maker opnieuw vrij.";
29
+ /** Geeft een claim vrij zonder de actie te laten mislukken; de heartbeat ruimt anders op. */
30
+ async function releaseQuietly(itemId) {
31
+ try {
32
+ await pickApi.releaseLock(itemId);
33
+ }
34
+ catch {
35
+ /* heartbeat ruimt de lock alsnog op */
36
+ }
37
+ }
29
38
  /** Melding als de regel nog niet compleet is aangeleverd door de bron. */
30
39
  const NOT_READY_NOTICE = "Deze pakbon is nog niet printklaar. Klik op \"Pakbon ophalen\" om de ontbrekende gegevens bij de bron op te vragen.";
31
40
  /**
@@ -232,7 +241,7 @@ export function PickScherm({ station, onBack }) {
232
241
  */
233
242
  const loadCartPlan = useCallback(async (item) => {
234
243
  const plan = await pickApi.queueCartPlan(item.id);
235
- const ref = unitRefOf(item);
244
+ const ref = statusRefOf(item, plan);
236
245
  let status = null;
237
246
  try {
238
247
  status = ref ? await pickApi.cartPlanStatus(ref) : null;
@@ -281,7 +290,7 @@ export function PickScherm({ station, onBack }) {
281
290
  running = true;
282
291
  const next = {};
283
292
  try {
284
- const results = await pickApi.verifyRows(todo.map((item) => ({ id: item.id, ref: unitRefOf(item) || null })));
293
+ const results = await pickApi.verifyRows(todo.map((item) => ({ id: item.id, ref: statusRefOf(item) })));
285
294
  const byId = new Map(results.map((r) => [r.id, r]));
286
295
  const now = Date.now();
287
296
  for (const item of todo) {
@@ -358,8 +367,9 @@ export function PickScherm({ station, onBack }) {
358
367
  await new Promise((resolve) => setTimeout(resolve, 3000));
359
368
  const plan = await pickApi.queueCartPlan(item.id);
360
369
  let status = null;
370
+ const statusRef = statusRefOf(item, plan);
361
371
  try {
362
- status = ref ? await pickApi.cartPlanStatus(ref) : null;
372
+ status = statusRef ? await pickApi.cartPlanStatus(statusRef) : null;
363
373
  }
364
374
  catch {
365
375
  status = null;
@@ -621,6 +631,7 @@ export function PickScherm({ station, onBack }) {
621
631
  setPending(target);
622
632
  if (!plan || !state.ready) {
623
633
  toast.warning(state.reason ?? NOT_READY_NOTICE);
634
+ await releaseQuietly(target.id);
624
635
  await requestData(target);
625
636
  return;
626
637
  }
@@ -809,6 +820,9 @@ export function PickScherm({ station, onBack }) {
809
820
  if (!plan || !readiness.ready) {
810
821
  // Niet printklaar: nooit printen, altijd eerst de gegevens opvragen.
811
822
  toast.warning(readiness.reason ?? NOT_READY_NOTICE);
823
+ // Geweigerd: claim vrijgeven, zodat de rij niet op "Wordt geprint" blijft.
824
+ await releaseQuietly(item.id);
825
+ refresh();
812
826
  await requestData(item);
813
827
  return;
814
828
  }
@@ -824,18 +838,10 @@ export function PickScherm({ station, onBack }) {
824
838
  const already = printedCartIdsOf(item);
825
839
  const todo = rowCarts.filter((cart) => !already.includes(cart.cartId));
826
840
  if (todo.length === 0) {
827
- // Alles al geprint: bewuste herdruk, per kar apart.
828
- setBusyId("confirm");
829
- try {
830
- const results = await reprintCartsIndividually(rowCarts, (cartId) => pickApi.reprintCart(item.id, sessionId, cartId));
831
- setLastPrinted(item);
832
- startBatchTracking(item, results);
833
- showCartResults(results);
834
- refresh();
835
- }
836
- finally {
837
- setBusyId(null);
838
- }
841
+ // Alles al geprint: geen opdracht. Herprinten alleen via de knop Herprint.
842
+ showCartResults(alreadyPrintedResults(rowCarts));
843
+ await releaseQuietly(item.id);
844
+ refresh();
839
845
  return;
840
846
  }
841
847
  setBusyId("confirm");