From ce902cd2be714e46b659709e4827f624d68232e6 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 3 Apr 2025 09:30:21 +0200 Subject: [PATCH] Refactoring servizio di Picking libero e Versamento Merce --- .../integrywmsnative/core/model/MtbColr.java | 79 ++++++++++++++++++ .../integrywmsnative/core/model/MtbColt.java | 6 ++ .../consumers/ColliMagazzinoRESTConsumer.java | 41 ---------- .../AccettazioneBollaPickingViewModel.java | 26 +++--- .../PickingLiberoViewModel.java | 81 ++++++++----------- .../gest/spedizione/SpedizioneViewModel.java | 2 +- .../VersamentoMerceModule.java | 6 +- .../VersamentoMerceViewModel.java | 20 ++++- 8 files changed, 156 insertions(+), 105 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java index dec4ae35..1e462535 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java @@ -52,6 +52,13 @@ public class MtbColr extends EntityBase { private BigDecimal pesoNettoKg; private BigDecimal pesoLordoKg; + private String barcodeUlIn; + private String barcodeUlOut; + private String codMdepIn; + private String codMdepOut; + private String posizioneIn; + private String posizioneOut; + private MtbAart mtbAart; private MtbPartitaMag mtbPartitaMag; @@ -109,6 +116,12 @@ public class MtbColr extends EntityBase { this.idRigaDoc = other.idRigaDoc; this.pesoNettoKg = other.pesoNettoKg; this.pesoLordoKg = other.pesoLordoKg; + this.barcodeUlIn = other.barcodeUlIn; + this.barcodeUlOut = other.barcodeUlOut; + this.posizioneIn = other.posizioneIn; + this.posizioneOut = other.posizioneOut; + this.codMdepIn = other.codMdepIn; + this.codMdepOut = other.codMdepOut; // Deep copy degli oggetti complessi this.mtbAart = other.mtbAart != null ? new MtbAart(other.mtbAart) : null; @@ -566,4 +579,70 @@ public class MtbColr extends EntityBase { this.refMtbColr = refMtbColr; return this; } + + public String getDataCollo() { + return dataCollo; + } + + public String getDataColloRif() { + return dataColloRif; + } + + public String getDatetimeRow() { + return datetimeRow; + } + + public String getBarcodeUlIn() { + return barcodeUlIn; + } + + public MtbColr setBarcodeUlIn(String barcodeUlIn) { + this.barcodeUlIn = barcodeUlIn; + return this; + } + + public String getBarcodeUlOut() { + return barcodeUlOut; + } + + public MtbColr setBarcodeUlOut(String barcodeUlOut) { + this.barcodeUlOut = barcodeUlOut; + return this; + } + + public String getCodMdepIn() { + return codMdepIn; + } + + public MtbColr setCodMdepIn(String codMdepIn) { + this.codMdepIn = codMdepIn; + return this; + } + + public String getCodMdepOut() { + return codMdepOut; + } + + public MtbColr setCodMdepOut(String codMdepOut) { + this.codMdepOut = codMdepOut; + return this; + } + + public String getPosizioneIn() { + return posizioneIn; + } + + public MtbColr setPosizioneIn(String posizioneIn) { + this.posizioneIn = posizioneIn; + return this; + } + + public String getPosizioneOut() { + return posizioneOut; + } + + public MtbColr setPosizioneOut(String posizioneOut) { + this.posizioneOut = posizioneOut; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java index e4f5617c..dfad9b2d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java @@ -642,9 +642,15 @@ public class MtbColt extends EntityBase { @Override public EntityBase clone() { + return clone(true); + } + + public MtbColt clone(boolean withMtbColr) { MtbColt mtbColt = (MtbColt) super.clone(); mtbColt.setMtbColr(new ObservableArrayList<>()); + if(!withMtbColr) return mtbColt; + this.getMtbColr().stream() .map(MtbColr::new) //Genera un clone .forEach(mtbColr -> { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java index 4058d43a..384f49f4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java @@ -7,14 +7,11 @@ import com.annimon.stream.Optional; import com.annimon.stream.Stream; import com.google.gson.reflect.TypeToken; -import org.jetbrains.annotations.NotNull; - import java.lang.reflect.Type; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Objects; import java.util.concurrent.ExecutorService; @@ -374,44 +371,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer { }); } - public void getMultipleByTestate(List testate, boolean onlyResiduo, RunnableArgs> onComplete, RunnableArgs onFailed) { - ArrayList resultMtbColt = new ArrayList<>(); - cyclicGetMultipleByTestate(testate.iterator(), onlyResiduo, resultMtbColt, () -> { - onComplete.run(resultMtbColt); - }, onFailed); - } - - private void cyclicGetMultipleByTestate(@NotNull Iterator sourceMtbColts, boolean onlyResiduo, ArrayList resultMtbColt, Runnable onComplete, RunnableArgs onAbort) { - if (sourceMtbColts.hasNext()) { - getByTestata(sourceMtbColts.next(), onlyResiduo, false, mtbColt -> { - resultMtbColt.add(mtbColt); - cyclicGetMultipleByTestate(sourceMtbColts, onlyResiduo, resultMtbColt, onComplete, onAbort); - }, onAbort); - } else { - onComplete.run(); - } - } - - public MtbColt getByChiaveColloSynchronized(GestioneEnum gestione, int numCollo, String dataCollo, String serCollo, boolean onlyResiduo, boolean throwExcIfNull) throws Exception { - MtbColt mtbColtToRetrieve = new MtbColt() - .setGestione(gestione) - .setNumCollo(numCollo) - .setDataCollo(dataCollo) - .setSerCollo(serCollo); - - return getByTestataSynchronized(mtbColtToRetrieve, onlyResiduo, throwExcIfNull); - } - - public void getByChiaveCollo(GestioneEnum gestione, int numCollo, String dataCollo, String serCollo, boolean onlyResiduo, boolean throwExcIfNull, RunnableArgs onComplete, RunnableArgs onFailed) { - MtbColt mtbColtToRetrieve = new MtbColt() - .setGestione(gestione) - .setNumCollo(numCollo) - .setDataCollo(dataCollo) - .setSerCollo(serCollo); - - getByTestata(mtbColtToRetrieve, onlyResiduo, throwExcIfNull, onComplete, onFailed); - } - public MtbColt getByTestataSynchronized(MtbColt testata, boolean onlyResiduo, boolean throwExcIfNull) throws Exception { testata.setMtbColr(new ObservableArrayList<>()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java index 53cf8132..bbfd9f64 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java @@ -318,9 +318,10 @@ public class AccettazioneBollaPickingViewModel { private void searchArtFromAnag(MtbAart mtbAart, PickDataDTO pickData, Runnable onComplete) { final List pickingList = mPickingList.getValue(); - List matchPickingObject = Stream.of(pickingList) - .filter(x -> UtilityString.equalsIgnoreCase(mtbAart.getCodMart(), x.getSitBollaAccettazione().getCodMart())) - .toList(); + List matchPickingObject = pickingList == null ? new ArrayList<>() : + pickingList.stream() + .filter(x -> UtilityString.equalsIgnoreCase(mtbAart.getCodMart(), x.getSitBollaAccettazione().getCodMart())) + .collect(Collectors.toList()); for (PickingObjectDTO pickingObjectDTO : matchPickingObject) { pickingObjectDTO.setTempPickData(pickData); @@ -333,10 +334,11 @@ public class AccettazioneBollaPickingViewModel { private void loadMatchedRows(List matchedRows, MtbAart mtbAart, PickDataDTO pickDataDTO) { if (matchedRows == null || matchedRows.isEmpty()) { this.mArticoloRESTConsumer.findIfIsKit(mtbAart, mtbAartFind -> { - if (mtbAartFind == null){ + if (mtbAartFind == null) { manageNoArtFound(mtbAart, pickDataDTO); } else { - searchArtFromAnag(mtbAartFind, pickDataDTO, () -> {}); + searchArtFromAnag(mtbAartFind, pickDataDTO, () -> { + }); } }, this::sendError); } else if (matchedRows.size() == 1) { @@ -442,7 +444,7 @@ public class AccettazioneBollaPickingViewModel { dispatchBollaRow(pickingObjectDTO); } - public void dispatchBollaRow(final PickingObjectDTO pickingObjectDTO){ + public void dispatchBollaRow(final PickingObjectDTO pickingObjectDTO) { dispatchBollaRow(pickingObjectDTO, false); } @@ -554,7 +556,7 @@ public class AccettazioneBollaPickingViewModel { UtilityBigDecimal.greaterThan(initialNumCnf, pickingObjectDTO.getMtbAart().getColliPedana())) { initialNumCnf = pickingObjectDTO.getMtbAart().getColliPedana(); initialQtaTot = initialNumCnf.multiply(initialQtaCnf); - } else if(UtilityBigDecimal.greaterThan(initialNumCnf, BigDecimal.ONE) && pickingObjectDTO.getMtbAart().isFlagQtaCnfFissaBoolean()) { + } else if (UtilityBigDecimal.greaterThan(initialNumCnf, BigDecimal.ONE) && pickingObjectDTO.getMtbAart().isFlagQtaCnfFissaBoolean()) { initialNumCnf = BigDecimal.ONE; initialQtaTot = initialNumCnf.multiply(initialQtaCnf); } @@ -577,7 +579,7 @@ public class AccettazioneBollaPickingViewModel { } } - if (!longClick){ + if (!longClick) { this.sendOnItemDispatched( pickingObjectDTO, pickingObjectDTO.getMtbAart(), @@ -694,7 +696,7 @@ public class AccettazioneBollaPickingViewModel { mtbColrToEdit.getDataScadPartita(), true, pickedQuantityDTO -> { - if(pickedQuantityDTO == null) + if (pickedQuantityDTO == null) return; this.saveEditedRow(mtbColrToEdit, @@ -809,7 +811,7 @@ public class AccettazioneBollaPickingViewModel { int listCount = pickingList != null ? pickingList.size() : 0; int anomalie = listCount > 0 ? listCount - mtbColr.size() : 0; - if (anomalie == 0){ + if (anomalie == 0) { closeUdc(closeUDCRequestDTO); } else { onConfirmAnomalie(anomalie, canBeClose -> { @@ -824,7 +826,7 @@ public class AccettazioneBollaPickingViewModel { }, this::sendError); } - private void closeUdc(CloseUDCRequestDTO closeUDCRequestDTO){ + private void closeUdc(CloseUDCRequestDTO closeUDCRequestDTO) { mColliCaricoRESTConsumer.closeUDC(closeUDCRequestDTO, closeUDCResponse -> { Runnable onVersamentoCompleted = () -> { @@ -1060,7 +1062,7 @@ public class AccettazioneBollaPickingViewModel { return this; } - private void onConfirmAnomalie(int anomalie, RunnableArgs onConfirm){ + private void onConfirmAnomalie(int anomalie, RunnableArgs onConfirm) { if (this.mListener != null) mListener.onConfirmAnomalie(anomalie, onConfirm); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java index 277f26b9..132509b1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java @@ -56,7 +56,9 @@ import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.Magazzin import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; @@ -619,42 +621,25 @@ public class PickingLiberoViewModel { public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) throws Exception { - final MtbColr mtbColr = new MtbColr() - .setCodMart(pickingObjectDTO.getMtbAart().getCodMart()) - .setPartitaMag(partitaMag) - .setDataScadPartita(dataScad) - .setQtaCol(qtaTot) - .setQtaCnf(qtaCnf) - .setNumCnf(numCnf) - .setDescrizione(pickingObjectDTO.getMtbAart().getDescrizioneEstesa()) - .setDatetimeRow(UtilityDate.getDateInstance()) - .setCodJcom(this.mDefaultCommessa.getCodJcom()); - - mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); - - MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone(); - cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE); - - cloneMtbColt.setMtbColr(new ObservableArrayList<>()); - cloneMtbColt.getMtbColr().add((MtbColr) mtbColr.clone()); - if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) { this.sendOnLoadingEnded(); return; } - var value = mColliMagazzinoRESTConsumer.saveColloSynchronized(cloneMtbColt); + var insertUdsRowRequest = new InsertUDSRowRequestDTO() + .setCodMart(pickingObjectDTO.getMtbAart().getCodMart()) + .setPartitaMag(partitaMag) + .setDataScad(dataScad) + .setQtaTot(qtaTot) + .setQtaCnf(qtaCnf) + .setNumCnf(numCnf) + .setCodJcom(this.mDefaultCommessa.getCodJcom()) + .setTargetMtbColt(mCurrentMtbColt.clone(false)); - mtbColr - .setDataCollo(value.getDataColloS()) - .setNumCollo(value.getNumCollo()) - .setGestione(value.getGestione()) - .setSerCollo(value.getSerCollo()) - .setRiga(value.getMtbColr().get(value.getMtbColr().size() - 1).getRiga()) - .setUntMis(pickingObjectDTO.getMtbAart().getUntMis()) - .setMtbAart(pickingObjectDTO.getMtbAart()); + MtbColr savedMtbColr = mColliScaricoRESTConsumer.insertUDSRowSynchronized(insertUdsRowRequest); + savedMtbColr.setMtbAart(pickingObjectDTO.getMtbAart()); - mCurrentMtbColt.getMtbColr().add(mtbColr); + mCurrentMtbColt.getMtbColr().add(savedMtbColr); this.sendOnRowSaved(); @@ -670,11 +655,8 @@ public class PickingLiberoViewModel { !UtilityString.isNullOrEmpty(mtbColr.getDataColloRifS()) && mtbColr.getNumColloRif() != null) { - MtbColt mtbColt = mColliMagazzinoRESTConsumer.getByChiaveColloSynchronized( - mtbColr.getGestioneRifEnum(), - mtbColr.getNumColloRif(), - mtbColr.getDataColloRifS(), - mtbColr.getSerColloRif(), + MtbColt mtbColt = mColliMagazzinoRESTConsumer.getBySsccSynchronized( + mtbColr.getBarcodeUlIn(), true, false); @@ -807,21 +789,26 @@ public class PickingLiberoViewModel { if (shouldDelete) { this.sendOnLoadingStarted(); - MtbColt mtbColt = new MtbColt() - .setNumCollo(mtbColrToDelete.getNumCollo()) - .setDataCollo(mtbColrToDelete.getDataColloS()) - .setSerCollo(mtbColrToDelete.getSerCollo()) - .setGestione(mtbColrToDelete.getGestione()) - .setMtbColr(new ObservableArrayList<>()); + var deleteUdsRowRequest = new DeleteUDSRowRequestDTO() + .setMtbColrToDelete(mtbColrToDelete); - mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP); + mColliScaricoRESTConsumer.deleteUDSRowSynchronized(deleteUdsRowRequest); - MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone(); - - mtbColr.setOperation(CommonModelConsts.OPERATION.DELETE); - mtbColt.getMtbColr().add(mtbColr); - - var value = this.mColliMagazzinoRESTConsumer.saveColloSynchronized(mtbColt); +// MtbColt mtbColt = new MtbColt() +// .setNumCollo(mtbColrToDelete.getNumCollo()) +// .setDataCollo(mtbColrToDelete.getDataColloS()) +// .setSerCollo(mtbColrToDelete.getSerCollo()) +// .setGestione(mtbColrToDelete.getGestione()) +// .setMtbColr(new ObservableArrayList<>()); +// +// mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP); +// +// MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone(); +// +// mtbColr.setOperation(CommonModelConsts.OPERATION.DELETE); +// mtbColt.getMtbColr().add(mtbColr); +// +// var value = this.mColliMagazzinoRESTConsumer.saveColloSynchronized(mtbColt); handler.post(() -> { this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java index 74838ef2..4fa6cf34 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java @@ -1442,7 +1442,7 @@ public class SpedizioneViewModel { private MtbColt loadRifULFromMtbColr(MtbColr mtbColr) throws Exception { //Se ho dei riferimenti ad una UL devo leggere la QTA ancora disponibile sulla Ul if (mtbColr != null && !UtilityString.isNullOrEmpty(mtbColr.getGestioneRif()) && !UtilityString.isNullOrEmpty(mtbColr.getSerColloRif()) && !UtilityString.isNullOrEmpty(mtbColr.getDataColloRifS()) && mtbColr.getNumColloRif() != null) { - return mColliMagazzinoRESTConsumer.getByChiaveColloSynchronized(mtbColr.getGestioneRifEnum(), mtbColr.getNumColloRif(), mtbColr.getDataColloRifS(), mtbColr.getSerColloRif(), true, false); + return mColliMagazzinoRESTConsumer.getBySsccSynchronized(mtbColr.getBarcodeUlOut(), true, false); } return null; } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceModule.java index 2829ca84..4bdba623 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceModule.java @@ -3,6 +3,7 @@ package it.integry.integrywmsnative.gest.versamento_merce; import dagger.Module; import dagger.Provides; import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer; @@ -11,11 +12,12 @@ import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer; public class VersamentoMerceModule { @Provides - VersamentoMerceViewModel providesVersamentoMerceViewModel(ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, + VersamentoMerceViewModel providesVersamentoMerceViewModel(ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer, + ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer, MagazzinoAutomaticoRESTConsumer magazzinoAutomaticoRESTConsumer) { - return new VersamentoMerceViewModel(colliMagazzinoRESTConsumer, barcodeRESTConsumer, posizioniRESTConsumer, magazzinoAutomaticoRESTConsumer); + return new VersamentoMerceViewModel(colliLavorazioneRESTConsumer, colliMagazzinoRESTConsumer, barcodeRESTConsumer, posizioniRESTConsumer, magazzinoAutomaticoRESTConsumer); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceViewModel.java index 62d37e55..55507223 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceViewModel.java @@ -14,6 +14,7 @@ import java.util.List; import javax.inject.Inject; import it.integry.barcode_base_android_library.model.BarcodeScanDTO; +import it.integry.integrywmsnative.core.CommonConst; import it.integry.integrywmsnative.core.exception.InvalidCodMdepException; import it.integry.integrywmsnative.core.exception.InvalidLUGestioneException; import it.integry.integrywmsnative.core.exception.NoArtsInLUException; @@ -28,10 +29,12 @@ import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbDepoPosizione; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer; import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPutItemsRequestDTO; +import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCRequestDTO; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityDate; @@ -45,13 +48,15 @@ public class VersamentoMerceViewModel { private Listener mListener; + private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer; private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer; private final BarcodeRESTConsumer mBarcodeRESTConsumer; private final PosizioniRESTConsumer mPosizioniRESTConsumer; private final MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer; @Inject - public VersamentoMerceViewModel(ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer, MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer) { + public VersamentoMerceViewModel(ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer, MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer) { + this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer; this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer; this.mBarcodeRESTConsumer = barcodeRESTConsumer; this.mPosizioniRESTConsumer = posizioniRESTConsumer; @@ -188,7 +193,18 @@ public class VersamentoMerceViewModel { this.sendError(new InvalidLUGestioneException(GestioneEnum.VENDITA)); } else { if (mtbColt == null) { - this.mColliMagazzinoRESTConsumer.createColloFromEtichettaAnonima(sscc, GestioneEnum.LAVORAZIONE, mtbColtAnonimo -> { + int numCollo = -1; + try { + numCollo = UtilityBarcode.getNumColloFromULAnonima(sscc); + } catch (Exception e) { + throw new RuntimeException(e); + } + var createUDCRequestDTO = new CreateUDCRequestDTO() + .setNumCollo(numCollo) + .setSerCollo(CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE) + .setBarcodeUl(sscc); + + this.mColliLavorazioneRESTConsumer.createUDC(createUDCRequestDTO, mtbColtAnonimo -> { pickMerceULtoUL(mtbColtAnonimo, onComplete); }, this::sendError);