From 8e2d110792310e3b5856b6597d81ac808aa8ca20 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Wed, 10 Dec 2025 13:33:44 +0100 Subject: [PATCH] Rimosso da VerificaGiacenze il carcamento di tutta la gacenza dopo aver scansionato il deposito --- .../MainApplicationModule.java | 4 +- .../consumers/GiacenzaPvRESTConsumer.java | 13 +- .../GiacenzaPvRESTConsumerService.java | 3 +- .../VerificaGiacenzeFragment.java | 19 +- .../VerificaGiacenzeModule.java | 4 +- .../VerificaGiacenzeViewModel.java | 193 +++++++----------- 6 files changed, 92 insertions(+), 144 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java index 09696ced..78d6cbf3 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java @@ -276,8 +276,8 @@ public class MainApplicationModule { @Provides @Singleton - GiacenzaPvRESTConsumer provideGiacenzaPvRESTConsumer(RESTBuilder restBuilder, ExecutorService executorService) { - return new GiacenzaPvRESTConsumer(restBuilder, executorService); + GiacenzaPvRESTConsumer provideGiacenzaPvRESTConsumer(RESTBuilder restBuilder) { + return new GiacenzaPvRESTConsumer(restBuilder); } @Provides diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaPvRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaPvRESTConsumer.java index 02a6b03a..a3435250 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaPvRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaPvRESTConsumer.java @@ -13,23 +13,17 @@ import it.integry.integrywmsnative.core.rest.model.pv.UpdateRowVerificaRequestDT public class GiacenzaPvRESTConsumer extends _BaseRESTConsumer { - private final RESTBuilder restBuilder; - private final ExecutorService executorService; - public GiacenzaPvRESTConsumer(RESTBuilder restBuilder, ExecutorService executorService) { + public GiacenzaPvRESTConsumer(RESTBuilder restBuilder) { this.restBuilder = restBuilder; - this.executorService = executorService; } - - public List retrieveGiacenzeSynchronized(String codMdep) throws Exception { + public List retrieveGiacenzeSynchronized(String codMdep, String codMart) throws Exception { GiacenzaPvRESTConsumerService giacenzaPvRESTConsumerService = restBuilder.getService(GiacenzaPvRESTConsumerService.class, 120); - var response = giacenzaPvRESTConsumerService.retrieve(codMdep) - .execute(); + var response = giacenzaPvRESTConsumerService.retrieve(codMdep, codMart).execute(); var giacenzeList = analyzeAnswer(response, "retrieve-giacenze-pv"); - return giacenzeList != null ? giacenzeList : new ArrayList<>(); } @@ -64,5 +58,4 @@ public class GiacenzaPvRESTConsumer extends _BaseRESTConsumer { analyzeAnswer(response, "close-verifica-pv"); } - } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaPvRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaPvRESTConsumerService.java index 0d039c12..ff21c7e0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaPvRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaPvRESTConsumerService.java @@ -17,8 +17,7 @@ import retrofit2.http.Query; public interface GiacenzaPvRESTConsumerService { @GET("wms/pv/verifica_giacenze/retrieve") - Call>> retrieve(@Query("codMdep") String codMdep); - + Call>> retrieve(@Query("codMdep") String codMdep, @Query("codMart") String codMart); @POST("wms/pv/verifica_giacenze/save_new_row") Call> saveNewRowVerifica(@Body SaveNewRowVerificaRequestDTO saveNewRowVerificaRequest); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeFragment.java index 927b8db1..60045ae8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeFragment.java @@ -13,6 +13,7 @@ import com.ravikoradiya.liveadapter.Type; import java.math.BigDecimal; import java.time.LocalDate; +import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicReference; @@ -38,6 +39,7 @@ import it.integry.integrywmsnative.view.bottom_sheet__item_edit.BottomSheetItemD import it.integry.integrywmsnative.view.bottom_sheet__item_edit.BottomSheetItemEditView; import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.ask_deposito.DialogAskDepositoView; +import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsView; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View; import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNoView; @@ -91,7 +93,6 @@ public class VerificaGiacenzeFragment extends BaseFragment implements ITitledFra } private void init() { - executorService.execute(() -> { boolean recoveredSession = false; @@ -129,7 +130,6 @@ public class VerificaGiacenzeFragment extends BaseFragment implements ITitledFra try { this.onLoadingStarted(); - mViewModel.loadDeposito(codMdep); if (!recoveredSession) mViewModel.createNew(codMdep); @@ -162,7 +162,6 @@ public class VerificaGiacenzeFragment extends BaseFragment implements ITitledFra CountDownLatch countDownLatch = new CountDownLatch(1); AtomicReference codMdepAtomic = new AtomicReference<>(); - DialogAskDepositoView.newInstance(codMdep -> { codMdepAtomic.set(codMdep); countDownLatch.countDown(); @@ -173,7 +172,6 @@ public class VerificaGiacenzeFragment extends BaseFragment implements ITitledFra return codMdepAtomic.get(); } - private void initRecyclerView() { var itemType = new Type(R.layout.lista_verifica_giacenze_picked_item_list_model, BR.item); @@ -213,13 +211,12 @@ public class VerificaGiacenzeFragment extends BaseFragment implements ITitledFra this.mViewModel.processBarcodeDTO(data); } catch (Exception e) { this.onError(e); + } finally { + handler.post(this::onLoadingEnded); } }); - - this.onLoadingEnded(); }; - private void openItemAction(VerificaGiacenzeRowEntity item) { var anagrafica = mViewModel.searchAnagraficaByCodMart(item.getCodMart()); @@ -261,7 +258,6 @@ public class VerificaGiacenzeFragment extends BaseFragment implements ITitledFra }); } - public PickedQuantityDTO onItemDispatched(MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, @@ -338,7 +334,6 @@ public class VerificaGiacenzeFragment extends BaseFragment implements ITitledFra }); } - @Override public void onDestroy() { super.onDestroy(); @@ -350,4 +345,10 @@ public class VerificaGiacenzeFragment extends BaseFragment implements ITitledFra public void onCreateActionBar(AppCompatTextView titleText, Context context) { titleText.setText(R.string.verifica_giacenze_menu); } + + @Override + public void onChooseArtRequest(List artsList, RunnableArgs onComplete) { + DialogChooseArtFromListaArtsView.newInstance(true, artsList, onComplete) + .show(requireActivity().getSupportFragmentManager(), "dialog-choose-art"); + } } \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeModule.java index 169f646a..c575d701 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeModule.java @@ -16,8 +16,8 @@ import it.integry.integrywmsnative.core.rest.consumers.GiacenzaPvRESTConsumer; public class VerificaGiacenzeModule { @Provides - VerificaGiacenzeViewModel providesVerificaGiacenzeViewModel(ExecutorService executorService, Handler handler, VerificaGiacenzeRowMapper verificaGiacenzeRowMapper, VerificaGiacenzeRepository verificaGiacenzeRepository, VerificaGiacenzeRowRepository verificaGiacenzeRowRepository, GiacenzaPvRESTConsumer giacenzaPvRESTConsumer, ArticoloRESTConsumer articoloRESTConsumer) { - return new VerificaGiacenzeViewModel(executorService, handler, verificaGiacenzeRowMapper, giacenzaPvRESTConsumer, verificaGiacenzeRepository, verificaGiacenzeRowRepository, articoloRESTConsumer); + VerificaGiacenzeViewModel providesVerificaGiacenzeViewModel(Handler handler, VerificaGiacenzeRowMapper verificaGiacenzeRowMapper, VerificaGiacenzeRepository verificaGiacenzeRepository, VerificaGiacenzeRowRepository verificaGiacenzeRowRepository, GiacenzaPvRESTConsumer giacenzaPvRESTConsumer, ArticoloRESTConsumer articoloRESTConsumer) { + return new VerificaGiacenzeViewModel(handler, verificaGiacenzeRowMapper, giacenzaPvRESTConsumer, verificaGiacenzeRepository, verificaGiacenzeRowRepository, articoloRESTConsumer); } } \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeViewModel.java index 33f11e77..eb9a08c6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeViewModel.java @@ -11,8 +11,8 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Objects; -import java.util.concurrent.ExecutorService; -import java.util.stream.Collectors; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.atomic.AtomicReference; import javax.inject.Inject; @@ -22,8 +22,8 @@ import it.integry.integrywmsnative.core.data_store.db.entity.VerificaGiacenzeRow import it.integry.integrywmsnative.core.data_store.db.respository_new.VerificaGiacenzeRepository; import it.integry.integrywmsnative.core.data_store.db.respository_new.VerificaGiacenzeRowRepository; import it.integry.integrywmsnative.core.exception.NoArtsFoundException; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; -import it.integry.integrywmsnative.core.mapper.VerificaGiacenzeMapper; import it.integry.integrywmsnative.core.mapper.VerificaGiacenzeRowMapper; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; @@ -31,7 +31,6 @@ import it.integry.integrywmsnative.core.rest.consumers.GiacenzaPvRESTConsumer; import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel; import it.integry.integrywmsnative.core.rest.model.pv.CloseVerificaRequestDTO; import it.integry.integrywmsnative.core.rest.model.pv.DeleteRowVerificaRequestDTO; -import it.integry.integrywmsnative.core.rest.model.pv.GiacenzaPvDTO; import it.integry.integrywmsnative.core.rest.model.pv.SaveNewRowVerificaRequestDTO; import it.integry.integrywmsnative.core.rest.model.pv.UpdateRowVerificaRequestDTO; import it.integry.integrywmsnative.core.utility.UtilityBarcode; @@ -39,8 +38,6 @@ import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; public class VerificaGiacenzeViewModel { - - private final ExecutorService executorService; private final Handler handler; private final VerificaGiacenzeRowMapper verificaGiacenzeRowMapper; private final GiacenzaPvRESTConsumer giacenzaPvRESTConsumer; @@ -50,21 +47,17 @@ public class VerificaGiacenzeViewModel { private Listener listener; - private MutableLiveData currentVerifica = new MutableLiveData<>(); + private final MutableLiveData currentVerifica = new MutableLiveData<>(); private final MutableLiveData> currentVerificaRows = new MutableLiveData<>(new ArrayList<>()); - - private List currentLoadedGiacenza = null; - private List currentLoadedAnagrafiche = null; + private List currentLoadedAnagrafiche = new ArrayList<>(); @Inject - public VerificaGiacenzeViewModel(ExecutorService executorService, - Handler handler, + public VerificaGiacenzeViewModel(Handler handler, VerificaGiacenzeRowMapper verificaGiacenzeRowMapper, GiacenzaPvRESTConsumer giacenzaPvRESTConsumer, VerificaGiacenzeRepository verificaGiacenzeRepository, VerificaGiacenzeRowRepository verificaGiacenzeRowRepository, ArticoloRESTConsumer articoloRESTConsumer) { - this.executorService = executorService; this.handler = handler; this.verificaGiacenzeRowMapper = verificaGiacenzeRowMapper; this.giacenzaPvRESTConsumer = giacenzaPvRESTConsumer; @@ -87,8 +80,7 @@ public class VerificaGiacenzeViewModel { currentVerifica.postValue(null); currentVerificaRows.postValue(new ArrayList<>()); - currentLoadedGiacenza = null; - currentLoadedAnagrafiche = null; + currentLoadedAnagrafiche = new ArrayList<>(); } public LiveData getCurrentVerifica() { @@ -99,60 +91,6 @@ public class VerificaGiacenzeViewModel { return currentVerificaRows; } - public void loadDeposito(String codMdep) throws Exception { - currentLoadedGiacenza = this.giacenzaPvRESTConsumer.retrieveGiacenzeSynchronized(codMdep); - - if (currentLoadedGiacenza == null) { - throw new Exception("Errore nel recupero delle giacenze"); - } - - var codMartsToRetrieve = currentLoadedGiacenza.parallelStream() - .map(GiacenzaPvDTO::getCodMart) - .collect(Collectors.toUnmodifiableList()); - - currentLoadedAnagrafiche = this.articoloRESTConsumer.getByCodMartsSynchronized(codMartsToRetrieve); - - if (currentLoadedAnagrafiche == null) { - throw new Exception("Errore nel recupero delle anagrafiche"); - } - - currentLoadedAnagrafiche.forEach(x -> x.setFlagTracciabilita("N")); - } - - public void randomizeElements(int elementsCount) { - - for (int i = 0; i < elementsCount; i++) { - var randomIndex = (int) (Math.random() * currentLoadedAnagrafiche.size()); - var randomAnagrafica = currentLoadedAnagrafiche.get(randomIndex); - - var foundGiacenza = currentLoadedGiacenza.parallelStream() - .filter(x -> x.getCodMart().equalsIgnoreCase(randomAnagrafica.getCodMart())) - .findFirst() - .orElse(null); - var qtaGiacenza = foundGiacenza != null ? foundGiacenza.getQtaInv() : BigDecimal.ZERO; - - var rowToInsert = new VerificaGiacenzeRowEntity(); - rowToInsert.setParentId(currentVerifica.getValue().getId()); - rowToInsert.setCodMart(randomAnagrafica.getCodMart()); - rowToInsert.setDescrizione(randomAnagrafica.getDescrizione()); - rowToInsert.setScanCodBarre(randomAnagrafica.getBarCode()); - rowToInsert.setNumConf(BigDecimal.valueOf((int) (Math.random() * 100))); - rowToInsert.setQtaConf(randomAnagrafica.getQtaCnf()); - rowToInsert.setQta(UtilityBigDecimal.multiply(rowToInsert.getNumConf(), randomAnagrafica.getQtaCnf())); - rowToInsert.setQtaInGiacenza(qtaGiacenza); - - - insertRow(rowToInsert); - - try { - Thread.sleep(50); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } - - } - public void createNew(String codMdep) { var verificaGiacenzeEntity = new VerificaGiacenzeEntity(); verificaGiacenzeEntity.setCodMdep(codMdep); @@ -172,7 +110,7 @@ public class VerificaGiacenzeViewModel { } public void close() throws Exception { - if (currentVerificaRows.getValue().isEmpty()) { + if (currentVerificaRows.getValue() == null || currentVerificaRows.getValue().isEmpty()) { delete(); return; } @@ -187,32 +125,52 @@ public class VerificaGiacenzeViewModel { } public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO) throws Exception { - if (UtilityBarcode.isEanPeso(barcodeScanDTO)) { var ean13 = Ean13PesoModel.fromBarcode(barcodeScanDTO.getStringValue()); this.loadArticolo(ean13.getPrecode()); - } else { this.loadArticolo(barcodeScanDTO.getStringValue()); } } + private void loadArticolo(String barcodeProd) throws Exception { + var mtbAartList = this.articoloRESTConsumer.searchByBarcodeSynchronized(barcodeProd); - private void loadArticolo(String barcodeProd) throws NoArtsFoundException, CloneNotSupportedException { - var foundMtbAart = searchAnagraficaByBarcode(barcodeProd); + if (mtbAartList != null && !mtbAartList.isEmpty()) { + MtbAart loadedArticolo; - if (foundMtbAart == null) - throw new NoArtsFoundException(); + if (mtbAartList.size() == 1) loadedArticolo = mtbAartList.get(0); + else loadedArticolo = this.sendChooseArtRequest(mtbAartList); - loadArticolo(foundMtbAart); + if (loadedArticolo == null) return; + loadedArticolo.setFlagTracciabilita("N"); + + this.updateCurrentAnagrafiche(loadedArticolo); + this.loadArticolo(loadedArticolo); + } else throw new NoArtsFoundException(); } - public void loadArticolo(MtbAart mtbAart) throws NoArtsFoundException, CloneNotSupportedException { - var foundGiacenza = currentLoadedGiacenza.parallelStream() - .filter(x -> x.getCodMart().equalsIgnoreCase(mtbAart.getCodMart())) + private void updateCurrentAnagrafiche(MtbAart loadedArticolo) { + MtbAart mtbAart = currentLoadedAnagrafiche.stream() + .filter(x -> x.getCodMart().equalsIgnoreCase(loadedArticolo.getCodMart())) .findFirst() .orElse(null); + if (mtbAart != null) currentLoadedAnagrafiche.remove(mtbAart); + + currentLoadedAnagrafiche.add(loadedArticolo); + } + + public void loadArticolo(MtbAart mtbAart) throws Exception { + var foundGiacenzaList = giacenzaPvRESTConsumer.retrieveGiacenzeSynchronized( + Objects.requireNonNull(currentVerifica.getValue()).getCodMdep(), + mtbAart.getCodMart() + ); + + if (foundGiacenzaList == null || foundGiacenzaList.isEmpty() || foundGiacenzaList.stream().count() > 1) + throw new Exception("Errore nel recupero delle giacenze"); + var foundGiacenza = foundGiacenzaList.get(0); + var numCnfGiacenza = foundGiacenza != null ? UtilityBigDecimal.divide(foundGiacenza.getQtaInv(), mtbAart.getQtaCnf()) : BigDecimal.ZERO; var qtaCnfGiacenza = mtbAart.getQtaCnf(); var qtaGiacenza = foundGiacenza != null ? foundGiacenza.getQtaInv() : BigDecimal.ZERO; @@ -226,7 +184,7 @@ public class VerificaGiacenzeViewModel { boolean isNewRow = false; - var rowToSave = currentVerificaRows.getValue().parallelStream() + var rowToSave = Objects.requireNonNull(currentVerificaRows.getValue()).parallelStream() .filter(x -> x.getCodMart().equalsIgnoreCase(mtbAart.getCodMart())) .findFirst() .orElse(null); @@ -235,7 +193,7 @@ public class VerificaGiacenzeViewModel { isNewRow = true; rowToSave = new VerificaGiacenzeRowEntity(); - rowToSave.setParentId(currentVerifica.getValue().getId()); + rowToSave.setParentId(Objects.requireNonNull(currentVerifica.getValue()).getId()); rowToSave.setCodMart(mtbAart.getCodMart()); rowToSave.setPartitaMag(null); rowToSave.setDescrizione(mtbAart.getDescrizione()); @@ -246,21 +204,18 @@ public class VerificaGiacenzeViewModel { initialQtaTot = rowToSave.getQta(); } - var pickedQuantity = this.sendOnItemDispatched(mtbAart, + var pickedQuantity = this.sendOnItemDispatched( + mtbAart, initialNumCnf, qtaCnfGiacenza, initialQtaTot, numCnfGiacenza, qtaGiacenza, incomingNumCnf, - incomingQta, - null, - null + incomingQta ); - if (pickedQuantity == null) - return; - + if (pickedQuantity == null) return; rowToSave.setNumConf(pickedQuantity.getNumCnf()); rowToSave.setQtaConf(pickedQuantity.getQtaCnf()); @@ -272,7 +227,6 @@ public class VerificaGiacenzeViewModel { } else { updateRow(rowToSave); } - } public MtbAart searchAnagraficaByCodMart(String codMart) { @@ -282,24 +236,6 @@ public class VerificaGiacenzeViewModel { .orElse(null); } - public MtbAart searchAnagraficaByBarcode(String barcode) { - MtbAart mtbAart = currentLoadedAnagrafiche.parallelStream() - .filter(x -> barcode.equals(x.getBarCode())) - .findFirst() - .orElse(null); - - if (mtbAart == null) { - mtbAart = currentLoadedAnagrafiche.parallelStream() - .filter(x -> x.getMtbAartBarCode() != null && - x.getMtbAartBarCode().stream() - .anyMatch(y -> barcode.equals(y.getCodBarre()))) - .findFirst() - .orElse(null); - } - - return mtbAart; - } - public void insertRow(VerificaGiacenzeRowEntity rowEntity) { this.sendOnLoadingStarted(); @@ -316,7 +252,7 @@ public class VerificaGiacenzeViewModel { verificaGiacenzeRowRepository.insert(rowEntity, insertedData -> { handler.post(() -> { - currentVerificaRows.getValue().add(insertedData); + Objects.requireNonNull(currentVerificaRows.getValue()).add(insertedData); notifyRowChanged(); }); }, this::sendError); @@ -339,7 +275,7 @@ public class VerificaGiacenzeViewModel { var indexInList = -1; List value = currentVerificaRows.getValue(); - for (int i = 0; i < value.size(); i++) { + for (int i = 0; i < Objects.requireNonNull(value).size(); i++) { VerificaGiacenzeRowEntity entity = value.get(i); if (Objects.equals(entity.getId(), rowEntity.getId())) { @@ -374,7 +310,7 @@ public class VerificaGiacenzeViewModel { verificaGiacenzeRowRepository.delete(rowEntity, () -> { handler.post(() -> { - currentVerificaRows.getValue().remove(rowEntity); + Objects.requireNonNull(currentVerificaRows.getValue()).remove(rowEntity); notifyRowChanged(); }); @@ -386,6 +322,25 @@ public class VerificaGiacenzeViewModel { this.sendOnLoadingEnded(); } + private MtbAart sendChooseArtRequest(List mtbAarts) { + final CountDownLatch latch = new CountDownLatch(1); + AtomicReference result = new AtomicReference<>(); + + listener.onChooseArtRequest(mtbAarts, data -> { + result.set(data); + latch.countDown(); + }); + + try { + latch.await(); + return result.get(); + } catch (InterruptedException e) { + this.sendError(e); + } + + return null; + } + private PickedQuantityDTO sendOnItemDispatched(MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, @@ -393,15 +348,13 @@ public class VerificaGiacenzeViewModel { BigDecimal inWarehouseNumCnf, BigDecimal inWarehouseQtaTot, BigDecimal incomingNumCnf, - BigDecimal incomingQtaTot, - String partitaMag, - LocalDate dataScad) { + BigDecimal incomingQtaTot) { if (listener != null) - return this.listener.onItemDispatched(mtbAart, - initialNumCnf, initialQtaCnf, initialQtaTot, - inWarehouseNumCnf, inWarehouseQtaTot, - incomingNumCnf, incomingQtaTot, - partitaMag, dataScad); + return this.listener.onItemDispatched( + mtbAart, initialNumCnf, initialQtaCnf, + initialQtaTot, inWarehouseNumCnf, inWarehouseQtaTot, + incomingNumCnf, incomingQtaTot, null, null + ); return null; } @@ -435,5 +388,7 @@ public class VerificaGiacenzeViewModel { LocalDate dataScad); void onError(Exception ex); + + void onChooseArtRequest(List artsList, RunnableArgs onComplete); } } \ No newline at end of file