From ec44275e41432aacc345b49fa556e10641e559c4 Mon Sep 17 00:00:00 2001 From: ValerioC Date: Fri, 16 Dec 2022 12:50:56 +0100 Subject: [PATCH] aggiunto destinatario in creazione documenti trasferimento corretta gestione modifica articolo in ordini acquisto pv --- .idea/deploymentTargetDropDown.xml | 17 --- .../datasource/ArticoliOrdineDataSource.java | 2 + .../rest/model/OrdineUscitaInevasoDTO.java | 10 ++ .../PVOrdineAcquistoEditActivity.java | 34 ++---- .../PVOrdineAcquistoEditViewModel.java | 107 ++++++++++-------- .../gest/spedizione/SpedizioneViewModel.java | 3 + 6 files changed, 80 insertions(+), 93 deletions(-) delete mode 100644 .idea/deploymentTargetDropDown.xml diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml deleted file mode 100644 index 039e6190..00000000 --- a/.idea/deploymentTargetDropDown.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/ArticoliOrdineDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/ArticoliOrdineDataSource.java index 188e3e9a..524a4614 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/ArticoliOrdineDataSource.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/ArticoliOrdineDataSource.java @@ -15,6 +15,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine; import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository; import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.utility.UtilityDate; public class ArticoliOrdineDataSource extends BaseDataSource implements ArticoliOrdineRepository { @@ -53,6 +54,7 @@ public class ArticoliOrdineDataSource extends BaseDataSource implements Articoli } public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs onError) { + articolo.setDataIns(UtilityDate.getDateInstance()); if (articolo.getArticoloOrdineId() != null && articolo.getArticoloOrdineId() > 0) { execute(() -> mArticoloOrdineDao.update(articolo), onSuccess, onError); } else { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/OrdineUscitaInevasoDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/OrdineUscitaInevasoDTO.java index b0f71268..67ea3a29 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/OrdineUscitaInevasoDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/OrdineUscitaInevasoDTO.java @@ -26,6 +26,7 @@ public class OrdineUscitaInevasoDTO extends OrdineInevasoDTO { private String ragSocCom; private String ragSocOrd; private String destinatario; + private String codVdes; private String citta; private String provincia; private String indirizzo; @@ -424,4 +425,13 @@ public class OrdineUscitaInevasoDTO extends OrdineInevasoDTO { return this; } } + + public String getCodVdes() { + return codVdes; + } + + public OrdineUscitaInevasoDTO setCodVdes(String codVdes) { + this.codVdes = codVdes; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java index be45bc01..434e8db0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java @@ -159,15 +159,9 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi DialogAskActionView.newInstance(articoloOrdine.getDescrizione(), articoloOrdine.getQtaOrd() + " " + articoloOrdine.getUntMis(), - () -> { - this.mViewModel.checkArticolo(articoloOrdine.getCodMart(), - artOrd -> { - this.onItemDispatched(artOrd); - BarcodeManager.enable(); - }, - this::onError); - BarcodeManager.enable(); - }, + () -> this.onItemDispatched(articoloOrdine, () -> { + + }), () -> { this.deleteArticolo(articoloOrdine); BarcodeManager.enable(); @@ -186,23 +180,18 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi } private final RunnableArgs onScanSuccessful = data -> { - mBinding.closeActivityFab.close(false); - this.onLoadingStarted(); - BarcodeManager.disable(); - - this.mViewModel.processBarcodeDTO(data, this::onLoadingEnded); - + this.mViewModel.processBarcode(data.getStringValue()); }; @Override - public void onItemDispatched(ArticoloOrdine articoloOrdine) { + public void onItemDispatched(ArticoloOrdine articoloOrdine, Runnable onSuccess) { DialogEditArticoloView .newInstance(articoloOrdine, articolo -> { runOnUiThread(() -> { if (articolo != null) { Toast.makeText(this, "Articolo aggiunto all'ordine!", Toast.LENGTH_SHORT).show(); } - this.mViewModel.refreshListArticoli(); + this.mViewModel.refreshListArticoli(onSuccess); }); }, null).show(this.getSupportFragmentManager(), "DialogEditArticoloView"); } @@ -233,16 +222,9 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi public void manualSearch() { BarcodeManager.disable(); - DialogSimpleInputHelper.makeInputDialog(this, "Inserisci il codice a barre/codice articolo da cercare", codice -> { + DialogSimpleInputHelper.makeInputDialog(this, "Inserisci il codice a barre/codice articolo da cercare", barcode -> { this.onLoadingStarted(); - this.mViewModel.checkArticolo(codice, - articoloOrdine -> { - this.onItemDispatched(articoloOrdine); - this.onLoadingEnded(); - BarcodeManager.enable(); - }, - this::onError - ); + this.mViewModel.processBarcode(barcode); }, BarcodeManager::enable).show(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java index 1bb85b96..1252a41d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java @@ -12,8 +12,8 @@ import java.util.List; import javax.inject.Inject; -import it.integry.barcode_base_android_library.model.BarcodeScanDTO; import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine; import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository; @@ -69,19 +69,23 @@ public class PVOrdineAcquistoEditViewModel { public void init(Ordine ordine, List articoliGriglia) { this.mCurrentOrdine = ordine; - - this.sendOnLoadingStarted(); - mArticoliGriglia.clear(); mArticoliGriglia.addAll(articoliGriglia); this.refreshListArticoli(); } public void refreshListArticoli() { + refreshListArticoli(null); + } + + public void refreshListArticoli(Runnable onSuccess) { + this.sendOnLoadingStarted(); this.loadArticoli(mCurrentOrdine, articoli -> { - articoli = Stream.of(articoli).map(this::completeDataArticoli).toList(); + articoli = Stream.of(articoli).map(this::completeDataArticoli).sorted((a, b) -> a.getDataIns().after(b.getDataIns()) ? -1 : 1).toList(); this.mArticoli.postValue(articoli); this.sendOnLoadingEnded(); + if (onSuccess != null) + onSuccess.run(); }); } @@ -92,6 +96,12 @@ public class PVOrdineAcquistoEditViewModel { art.setQtaProposta(BigDecimal.valueOf(artGrid.getQtaProposta())); art.setQtaPrevistaVendita(BigDecimal.valueOf(artGrid.getQtaPrevistaVendita())); art.setBgTint(getBgTint(art)); + art.setMediaSett(artGrid.getMediaSett()); + art.setQtaMinOrdinabile(artGrid.getQtaMinOrdinabile()); + art.setMerceDaRic(artGrid.getMerceDaRic()); + art.setNewNoPromo(artGrid.isNewNoPromo()); + art.setFlagQtaMultipla(artGrid.getFlagQtaMultipla()); + art.setSystemNote(artGrid.generateSystemNote()); return art; } @@ -111,15 +121,26 @@ public class PVOrdineAcquistoEditViewModel { return mArticoli; } - public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { - this.checkArticolo( - barcodeScanDTO.getStringValue(), - articoloOrdine -> { - this.sendOnItemDispatched(articoloOrdine); - onComplete.run(); - }, - this::sendError - ); + public void processBarcode(String barcode) { + try { + BarcodeManager.disable(); + this.sendOnLoadingStarted(); + ArticoloDTO articoloDTO = getArticoloFromBarcode(barcode); + if (articoloDTO == null) { + throw new NoResultFromBarcodeException(barcode); + } + this.addArticoloToOrdine( + articoloDTO, + BarcodeManager::enable, + e -> { + this.sendError(e); + BarcodeManager.enable(); + } + ); + } catch (Exception e) { + this.sendError(e); + BarcodeManager.enable(); + } } private void loadArticoli(Ordine ordine, RunnableArgs> onLoad) { @@ -130,42 +151,17 @@ public class PVOrdineAcquistoEditViewModel { } } - public void checkArticolo(String barcode, RunnableArgs onSuccess, RunnableArgs onFail) { + public void addArticoloToOrdine(ArticoloDTO art, Runnable onSuccess, RunnableArgs onFail) { try { - if (mArticoliGriglia == null || mArticoliGriglia.isEmpty()) { - onFail.run(new NoArtsInGridException()); - return; - } - ArticoloDTO art = Stream.of(mArticoliGriglia).filter(articolo -> - articolo.getCodMart().equalsIgnoreCase(barcode) || - articolo.getBarcode().equalsIgnoreCase(barcode) || - articolo.getBarcode().equalsIgnoreCase(StringUtils.leftPad(barcode, 13, "0")) - ).sortBy(x -> x.getSortByBarcodeCondition(barcode)).findFirst().orElse(null); - - if (art == null) { - onFail.run(new NoResultFromBarcodeException(barcode)); - return; - } mArticoliOrdineRepository.findArticoloByScanAndOrdine(mCurrentOrdine, art.codMart, (articolo) -> { - + this.sendOnLoadingEnded(); if (articolo != null) { if (isAutoOrderOnScan()) { articolo.setQtaOrd(articolo.getQtaOrd() + articolo.getQtaCnf()); - mArticoliOrdineRepository.saveArticoloToOrdine(articolo, this::refreshListArticoli, this::sendError); + mArticoliOrdineRepository.saveArticoloToOrdine(articolo, () -> this.refreshListArticoli(onSuccess), onFail); } else { - articolo - .setQtaPrevistaVendita(BigDecimal.valueOf(art.getQtaPrevistaVendita())) - .setQtaProposta(BigDecimal.valueOf(art.getQtaProposta())) - .setGiacenza(BigDecimal.valueOf(art.getGiacenza())) - .setMediaSett(art.getMediaSett()); - - articolo.setQtaMinOrdinabile(art.getQtaMinOrdinabile()); - articolo.setMerceDaRic(art.getMerceDaRic()); - articolo.setNewNoPromo(art.isNewNoPromo()); - articolo.setFlagQtaMultipla(art.getFlagQtaMultipla()); - articolo.setSystemNote(art.generateSystemNote()); - onSuccess.run(articolo); + this.sendOnItemDispatched(articolo, onSuccess); } @@ -173,9 +169,9 @@ public class PVOrdineAcquistoEditViewModel { articolo = art.convertToArticoloOrdine(mCurrentOrdine); if (isAutoOrderOnScan()) { articolo.setQtaOrd(articolo.getQtaCnf()); - mArticoliOrdineRepository.saveArticoloToOrdine(articolo, this::refreshListArticoli, this::sendError); + mArticoliOrdineRepository.saveArticoloToOrdine(articolo, () -> this.refreshListArticoli(onSuccess), onFail); } else { - onSuccess.run(articolo); + this.sendOnItemDispatched(articolo, onSuccess); } } }, onFail); @@ -186,6 +182,19 @@ public class PVOrdineAcquistoEditViewModel { } } + public ArticoloDTO getArticoloFromBarcode(String barcode) throws NoArtsInGridException { + if (mArticoliGriglia == null || mArticoliGriglia.isEmpty()) { + throw new NoArtsInGridException(); + } + + return Stream.of(mArticoliGriglia).filter(articolo -> + articolo.getCodMart().equalsIgnoreCase(barcode) || + articolo.getBarcode().equalsIgnoreCase(barcode) || + articolo.getBarcode().equalsIgnoreCase(StringUtils.leftPad(barcode, 13, "0")) + ).sortBy(x -> x.getSortByBarcodeCondition(barcode)).findFirst().orElse(null); + } + + private boolean isAutoOrderOnScan() { return SettingsManager.iDB().isFlagOrdinaArticoliOnScan(); } @@ -195,8 +204,6 @@ public class PVOrdineAcquistoEditViewModel { } public void orderNewProducts() { - this.sendOnLoadingStarted(); - List newArts = getNewArticoli(); if (!newArts.isEmpty()) { List articoliToSave = new ArrayList<>(); @@ -243,8 +250,8 @@ public class PVOrdineAcquistoEditViewModel { }, this::sendError); } - private void sendOnItemDispatched(ArticoloOrdine articoloOrdine) { - if (this.mListener != null) mListener.onItemDispatched(articoloOrdine); + private void sendOnItemDispatched(ArticoloOrdine articoloOrdine, Runnable onSuccess) { + if (this.mListener != null) mListener.onItemDispatched(articoloOrdine, onSuccess); } private void sendOnLoadingStarted() { @@ -260,7 +267,7 @@ public class PVOrdineAcquistoEditViewModel { } public interface Listener extends ILoadingListener { - void onItemDispatched(ArticoloOrdine articoloOrdine); + void onItemDispatched(ArticoloOrdine articoloOrdine, Runnable onSuccess); int getColorFromResource(int resId); 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 dabedb89..9076fae6 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 @@ -1734,10 +1734,13 @@ public class SpedizioneViewModel { var loadCollidto = new LoadColliDTO(); var codAnag = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getCodAnagOrd).withoutNulls().distinctBy(x -> x).findFirst().get(); + var codVdes = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getCodVdes).withoutNulls().distinctBy(x -> x).findFirst().get(); + loadCollidto.setColli(getCreatedMtbColts()); loadCollidto.setCodDtip(SettingsManager.iDB().getCodDtipOrdTrasfV()); loadCollidto.setCodMdep(mDefaultCodMdep); loadCollidto.setCodAnag(codAnag); + loadCollidto.setCodVdes(codVdes); loadCollidto.setSaveDoc(true); loadCollidto.setGestione("L");