From 1a964d7a975e1e996102c879afa52541d4a6a115 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 7 Jun 2023 14:19:15 +0200 Subject: [PATCH 01/20] Upgrade AGP 8.0.2 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index ebcfc40b..3043ed2c 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { ext { kotlin_version = '1.8.0' - agp_version = '8.0.1' + agp_version = '8.0.2' } repositories { From 3e68dd2d369fefdc3510e9e5bb3ce37b68c8c820 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 13 Jun 2023 13:00:28 +0200 Subject: [PATCH 02/20] Aggiunto supporto a barcode I2O5 in ZebraBarcodeReader --- .../picking/PickingInventarioViewModel.java | 12 ++++++------ .../zebrascannerlibrary/ZebraBarcodeReader.java | 2 ++ .../zebrascannerlibrary/ZebraBarcodeTypeMapper.java | 6 ++++++ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java index 524ceb33..71ea970a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java @@ -37,13 +37,10 @@ public class PickingInventarioViewModel extends ViewModel { private final InventarioRepository inventarioRepository; private final InventarioRowRepository inventarioRowRepository; - - private boolean canAddUnknownItems; - private boolean flagShouldAskToCreateOrUpdateRowInventario; - public MutableLiveData currentInventario = new MutableLiveData<>(); public LiveData> currentInventarioRows = new MutableLiveData<>(); - + private boolean canAddUnknownItems; + private boolean flagShouldAskToCreateOrUpdateRowInventario; private List availableInventarioArts; private Listener mListener; @@ -96,7 +93,10 @@ public class PickingInventarioViewModel extends ViewModel { var barcodeList = new ArrayList(); barcodeList.add(itemToUpdate.getScanCodBarre()); - var matchedArt = availableInventarioArts.stream().filter(x -> itemToUpdate.getCodMart() != null && x.getCodMart().contains(itemToUpdate.getCodMart())).findFirst().orElse(null); + var matchedArt = availableInventarioArts.stream() + .filter(x -> itemToUpdate.getCodMart() != null && x.getCodMart().contains(itemToUpdate.getCodMart())) + .findFirst() + .orElse(null); MtbAart articolo; diff --git a/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeReader.java b/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeReader.java index 6caa2924..14de85e6 100644 --- a/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeReader.java +++ b/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeReader.java @@ -42,6 +42,8 @@ public class ZebraBarcodeReader implements BarcodeReaderInterface { return true; } else if (model.equalsIgnoreCase("TC20")) { return true; + } else if (model.equalsIgnoreCase("MBA5")) { + return true; } else return false; } diff --git a/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeTypeMapper.java b/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeTypeMapper.java index a59ce5df..6e8b5f78 100644 --- a/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeTypeMapper.java +++ b/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeTypeMapper.java @@ -17,6 +17,12 @@ public class ZebraBarcodeTypeMapper { case "LABEL-TYPE-CODE39": return BarcodeType.CODE39; + + case "LABEL-TYPE-IATA2OF5": + return BarcodeType.IATA_2OF5; + case "LABEL-TYPE-I2OF5": + return BarcodeType.INTERLEAVED_2OF5; + case "LABEL-TYPE-EAN13": return BarcodeType.EAN13; case "LABEL-TYPE-EAN8": From fdeb98b82ae477f8a0fa23c58332ed34333fec8d Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 13 Jun 2023 13:01:31 +0200 Subject: [PATCH 03/20] -> v1.33.12 (383) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 5bc5bdfb..15cbd7ce 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 382 - def appVersionName = '1.33.11' + def appVersionCode = 383 + def appVersionName = '1.33.12' signingConfigs { release { From 9e796537698d881eff446397bc0c18a4f1fd2081 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 14 Jun 2023 16:26:50 +0200 Subject: [PATCH 04/20] Implementata ricerca all'interno del Picking Inventario --- .../integrywmsnative/core/model/MtbAart.java | 258 ++++++++++++++++++ .../edit_form/DocInterniEditFormActivity.java | 2 +- .../picking/PickingInventarioActivity.java | 18 +- .../picking/PickingInventarioModule.java | 7 +- .../picking/PickingInventarioViewModel.java | 137 +++++++--- .../DialogAvailableItemListModel.java | 39 ++- .../DialogAvailableItemsView.java | 65 ++++- .../layout/activity_picking_inventario.xml | 27 -- ...vailable_intventario_items__item_model.xml | 4 +- .../dialog_choose_art_from_lista_art.xml | 15 +- ..._choose_art_from_lista_art__item_model.xml | 5 +- ...atico_ul_done__not_completed_list_item.xml | 2 +- ...t_pv_ordini_acquisto__list_single_item.xml | 2 +- .../layout_filter_agente__list_item.xml | 2 +- .../layout_filter_automezzo__list_item.xml | 2 +- .../layout_filter_cliente__list_item.xml | 2 +- .../layout_filter_cod_art__list_item.xml | 2 +- .../layout_filter_commessa__list_item.xml | 2 +- .../layout_filter_deposito__list_item.xml | 2 +- .../layout/layout_filter_descr__list_item.xml | 2 +- .../layout_filter_gruppo_merc__list_item.xml | 2 +- ...layout_filter_numero_ordine__list_item.xml | 2 +- .../layout/layout_filter_paese__list_item.xml | 2 +- .../layout_filter_posizione__list_item.xml | 2 +- .../layout_filter_term_cons__list_item.xml | 2 +- .../layout_filter_vettore__list_item.xml | 2 +- .../layout_filter_viaggio__list_item.xml | 2 +- .../lista_contenuto_bancale_list_model.xml | 2 +- .../main/res/menu/picking_inventario_menu.xml | 7 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 31 files changed, 523 insertions(+), 97 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java index d9989c47..f575dcf9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java @@ -865,4 +865,262 @@ public class MtbAart extends EntityBase { public MtbUntMis getFirstUntMis() { return getMtbUntMis() != null && !getMtbUntMis().isEmpty() ? getMtbUntMis().get(0) : null; } + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + MtbAart mtbAart = (MtbAart) o; + + if (!getCodMart().equals(mtbAart.getCodMart())) return false; + if (getDescrizione() != null ? !getDescrizione().equals(mtbAart.getDescrizione()) : mtbAart.getDescrizione() != null) + return false; + if (getUntMis() != null ? !getUntMis().equals(mtbAart.getUntMis()) : mtbAart.getUntMis() != null) + return false; + if (getBarCode() != null ? !getBarCode().equals(mtbAart.getBarCode()) : mtbAart.getBarCode() != null) + return false; + if (getPesoKg() != null ? !getPesoKg().equals(mtbAart.getPesoKg()) : mtbAart.getPesoKg() != null) + return false; + if (getQtaCnf() != null ? !getQtaCnf().equals(mtbAart.getQtaCnf()) : mtbAart.getQtaCnf() != null) + return false; + if (getCodAliq() != null ? !getCodAliq().equals(mtbAart.getCodAliq()) : mtbAart.getCodAliq() != null) + return false; + if (getCodScoArt() != null ? !getCodScoArt().equals(mtbAart.getCodScoArt()) : mtbAart.getCodScoArt() != null) + return false; + if (getCodTcolUi() != null ? !getCodTcolUi().equals(mtbAart.getCodTcolUi()) : mtbAart.getCodTcolUi() != null) + return false; + if (getCodTcolUl() != null ? !getCodTcolUl().equals(mtbAart.getCodTcolUl()) : mtbAart.getCodTcolUl() != null) + return false; + if (getArticoloComposto() != null ? !getArticoloComposto().equals(mtbAart.getArticoloComposto()) : mtbAart.getArticoloComposto() != null) + return false; + if (getEsposizioneComp() != null ? !getEsposizioneComp().equals(mtbAart.getEsposizioneComp()) : mtbAart.getEsposizioneComp() != null) + return false; + if (getDescrizioneEstesa() != null ? !getDescrizioneEstesa().equals(mtbAart.getDescrizioneEstesa()) : mtbAart.getDescrizioneEstesa() != null) + return false; + if (getCodUltForn() != null ? !getCodUltForn().equals(mtbAart.getCodUltForn()) : mtbAart.getCodUltForn() != null) + return false; + if (getDataUltCar() != null ? !getDataUltCar().equals(mtbAart.getDataUltCar()) : mtbAart.getDataUltCar() != null) + return false; + if (getValUltCar() != null ? !getValUltCar().equals(mtbAart.getValUltCar()) : mtbAart.getValUltCar() != null) + return false; + if (getCodUltClie() != null ? !getCodUltClie().equals(mtbAart.getCodUltClie()) : mtbAart.getCodUltClie() != null) + return false; + if (getDataUltScar() != null ? !getDataUltScar().equals(mtbAart.getDataUltScar()) : mtbAart.getDataUltScar() != null) + return false; + if (getValUltScar() != null ? !getValUltScar().equals(mtbAart.getValUltScar()) : mtbAart.getValUltScar() != null) + return false; + if (getTipoCodice() != null ? !getTipoCodice().equals(mtbAart.getTipoCodice()) : mtbAart.getTipoCodice() != null) + return false; + if (getNote() != null ? !getNote().equals(mtbAart.getNote()) : mtbAart.getNote() != null) + return false; + if (getPosizione() != null ? !getPosizione().equals(mtbAart.getPosizione()) : mtbAart.getPosizione() != null) + return false; + if (getColliPedana() != null ? !getColliPedana().equals(mtbAart.getColliPedana()) : mtbAart.getColliPedana() != null) + return false; + if (getUntMis2() != null ? !getUntMis2().equals(mtbAart.getUntMis2()) : mtbAart.getUntMis2() != null) + return false; + if (getRapConv2() != null ? !getRapConv2().equals(mtbAart.getRapConv2()) : mtbAart.getRapConv2() != null) + return false; + if (getFlagInclListino() != null ? !getFlagInclListino().equals(mtbAart.getFlagInclListino()) : mtbAart.getFlagInclListino() != null) + return false; + if (getUntMis3() != null ? !getUntMis3().equals(mtbAart.getUntMis3()) : mtbAart.getUntMis3() != null) + return false; + if (getRapConv3() != null ? !getRapConv3().equals(mtbAart.getRapConv3()) : mtbAart.getRapConv3() != null) + return false; + if (getCodMartStat() != null ? !getCodMartStat().equals(mtbAart.getCodMartStat()) : mtbAart.getCodMartStat() != null) + return false; + if (getCodMcon() != null ? !getCodMcon().equals(mtbAart.getCodMcon()) : mtbAart.getCodMcon() != null) + return false; + if (getCodMgrp() != null ? !getCodMgrp().equals(mtbAart.getCodMgrp()) : mtbAart.getCodMgrp() != null) + return false; + if (getCodMsfa() != null ? !getCodMsfa().equals(mtbAart.getCodMsfa()) : mtbAart.getCodMsfa() != null) + return false; + if (getCodMsgr() != null ? !getCodMsgr().equals(mtbAart.getCodMsgr()) : mtbAart.getCodMsgr() != null) + return false; + if (getCodMstp() != null ? !getCodMstp().equals(mtbAart.getCodMstp()) : mtbAart.getCodMstp() != null) + return false; + if (getCodMtip() != null ? !getCodMtip().equals(mtbAart.getCodMtip()) : mtbAart.getCodMtip() != null) + return false; + if (getDescrizioneStat() != null ? !getDescrizioneStat().equals(mtbAart.getDescrizioneStat()) : mtbAart.getDescrizioneStat() != null) + return false; + if (getFlagStato() != null ? !getFlagStato().equals(mtbAart.getFlagStato()) : mtbAart.getFlagStato() != null) + return false; + if (getCambioDiviCar() != null ? !getCambioDiviCar().equals(mtbAart.getCambioDiviCar()) : mtbAart.getCambioDiviCar() != null) + return false; + if (getCambioDiviScar() != null ? !getCambioDiviScar().equals(mtbAart.getCambioDiviScar()) : mtbAart.getCambioDiviScar() != null) + return false; + if (getGgScadPartita() != null ? !getGgScadPartita().equals(mtbAart.getGgScadPartita()) : mtbAart.getGgScadPartita() != null) + return false; + if (getVolumeMc() != null ? !getVolumeMc().equals(mtbAart.getVolumeMc()) : mtbAart.getVolumeMc() != null) + return false; + if (getFlagEsponiPrz() != null ? !getFlagEsponiPrz().equals(mtbAart.getFlagEsponiPrz()) : mtbAart.getFlagEsponiPrz() != null) + return false; + if (getDataUltVar() != null ? !getDataUltVar().equals(mtbAart.getDataUltVar()) : mtbAart.getDataUltVar() != null) + return false; + if (getPercSfrido() != null ? !getPercSfrido().equals(mtbAart.getPercSfrido()) : mtbAart.getPercSfrido() != null) + return false; + if (getCodBarreImb() != null ? !getCodBarreImb().equals(mtbAart.getCodBarreImb()) : mtbAart.getCodBarreImb() != null) + return false; + if (getFlagCalcPrz() != null ? !getFlagCalcPrz().equals(mtbAart.getFlagCalcPrz()) : mtbAart.getFlagCalcPrz() != null) + return false; + if (getEsposizioneCompAcq() != null ? !getEsposizioneCompAcq().equals(mtbAart.getEsposizioneCompAcq()) : mtbAart.getEsposizioneCompAcq() != null) + return false; + if (getFlagCalcPrzAcq() != null ? !getFlagCalcPrzAcq().equals(mtbAart.getFlagCalcPrzAcq()) : mtbAart.getFlagCalcPrzAcq() != null) + return false; + if (getDiacod() != null ? !getDiacod().equals(mtbAart.getDiacod()) : mtbAart.getDiacod() != null) + return false; + if (getPlu() != null ? !getPlu().equals(mtbAart.getPlu()) : mtbAart.getPlu() != null) + return false; + if (getPartIvaProd() != null ? !getPartIvaProd().equals(mtbAart.getPartIvaProd()) : mtbAart.getPartIvaProd() != null) + return false; + if (getRagSocProd() != null ? !getRagSocProd().equals(mtbAart.getRagSocProd()) : mtbAart.getRagSocProd() != null) + return false; + if (getFlagRapConvVariabile() != null ? !getFlagRapConvVariabile().equals(mtbAart.getFlagRapConvVariabile()) : mtbAart.getFlagRapConvVariabile() != null) + return false; + if (getFlagMovArtMag() != null ? !getFlagMovArtMag().equals(mtbAart.getFlagMovArtMag()) : mtbAart.getFlagMovArtMag() != null) + return false; + if (getFlagTracciabilita() != null ? !getFlagTracciabilita().equals(mtbAart.getFlagTracciabilita()) : mtbAart.getFlagTracciabilita() != null) + return false; + if (getTaraKg() != null ? !getTaraKg().equals(mtbAart.getTaraKg()) : mtbAart.getTaraKg() != null) + return false; + if (getColliStrato() != null ? !getColliStrato().equals(mtbAart.getColliStrato()) : mtbAart.getColliStrato() != null) + return false; + if (getFlagQtaCnfFissa() != null ? !getFlagQtaCnfFissa().equals(mtbAart.getFlagQtaCnfFissa()) : mtbAart.getFlagQtaCnfFissa() != null) + return false; + if (getFlagColliPedanaFisso() != null ? !getFlagColliPedanaFisso().equals(mtbAart.getFlagColliPedanaFisso()) : mtbAart.getFlagColliPedanaFisso() != null) + return false; + if (getCodCconCosti() != null ? !getCodCconCosti().equals(mtbAart.getCodCconCosti()) : mtbAart.getCodCconCosti() != null) + return false; + if (getCodCconRicavi() != null ? !getCodCconRicavi().equals(mtbAart.getCodCconRicavi()) : mtbAart.getCodCconRicavi() != null) + return false; + if (getCodDgrpArt() != null ? !getCodDgrpArt().equals(mtbAart.getCodDgrpArt()) : mtbAart.getCodDgrpArt() != null) + return false; + if (getCodDiviCar() != null ? !getCodDiviCar().equals(mtbAart.getCodDiviCar()) : mtbAart.getCodDiviCar() != null) + return false; + if (getCodDiviScar() != null ? !getCodDiviScar().equals(mtbAart.getCodDiviScar()) : mtbAart.getCodDiviScar() != null) + return false; + if (getCodEcrCat() != null ? !getCodEcrCat().equals(mtbAart.getCodEcrCat()) : mtbAart.getCodEcrCat() != null) + return false; + if (getCodEcrMcat() != null ? !getCodEcrMcat().equals(mtbAart.getCodEcrMcat()) : mtbAart.getCodEcrMcat() != null) + return false; + if (getCodEcrRep() != null ? !getCodEcrRep().equals(mtbAart.getCodEcrRep()) : mtbAart.getCodEcrRep() != null) + return false; + if (getCodEcrStipo() != null ? !getCodEcrStipo().equals(mtbAart.getCodEcrStipo()) : mtbAart.getCodEcrStipo() != null) + return false; + if (getCodEcrTipo() != null ? !getCodEcrTipo().equals(mtbAart.getCodEcrTipo()) : mtbAart.getCodEcrTipo() != null) + return false; + if (getCodGrpBolla() != null ? !getCodGrpBolla().equals(mtbAart.getCodGrpBolla()) : mtbAart.getCodGrpBolla() != null) + return false; + if (getIngredienti() != null ? !getIngredienti().equals(mtbAart.getIngredienti()) : mtbAart.getIngredienti() != null) + return false; + if (getIdArtEqui() != null ? !getIdArtEqui().equals(mtbAart.getIdArtEqui()) : mtbAart.getIdArtEqui() != null) + return false; + if (getDescrCassa() != null ? !getDescrCassa().equals(mtbAart.getDescrCassa()) : mtbAart.getDescrCassa() != null) + return false; + if (getCodNcIntracee() != null ? !getCodNcIntracee().equals(mtbAart.getCodNcIntracee()) : mtbAart.getCodNcIntracee() != null) + return false; + if (getMarchio() != null ? !getMarchio().equals(mtbAart.getMarchio()) : mtbAart.getMarchio() != null) + return false; + if (getSezione() != null ? !getSezione().equals(mtbAart.getSezione()) : mtbAart.getSezione() != null) + return false; + if (getUntMisRifPeso() != mtbAart.getUntMisRifPeso()) return false; + if (getQtaEsistente() != null ? !getQtaEsistente().equals(mtbAart.getQtaEsistente()) : mtbAart.getQtaEsistente() != null) + return false; + if (getQtaImpegnata() != null ? !getQtaImpegnata().equals(mtbAart.getQtaImpegnata()) : mtbAart.getQtaImpegnata() != null) + return false; + if (getNumCnfEsistente() != null ? !getNumCnfEsistente().equals(mtbAart.getNumCnfEsistente()) : mtbAart.getNumCnfEsistente() != null) + return false; + if (getNumCnfImpegnata() != null ? !getNumCnfImpegnata().equals(mtbAart.getNumCnfImpegnata()) : mtbAart.getNumCnfImpegnata() != null) + return false; + return getMtbUntMis() != null ? getMtbUntMis().equals(mtbAart.getMtbUntMis()) : mtbAart.getMtbUntMis() == null; + } + + @Override + public int hashCode() { + int result = getCodMart().hashCode(); + result = 31 * result + (getDescrizione() != null ? getDescrizione().hashCode() : 0); + result = 31 * result + (getUntMis() != null ? getUntMis().hashCode() : 0); + result = 31 * result + (getBarCode() != null ? getBarCode().hashCode() : 0); + result = 31 * result + (getPesoKg() != null ? getPesoKg().hashCode() : 0); + result = 31 * result + (getQtaCnf() != null ? getQtaCnf().hashCode() : 0); + result = 31 * result + (getCodAliq() != null ? getCodAliq().hashCode() : 0); + result = 31 * result + (getCodScoArt() != null ? getCodScoArt().hashCode() : 0); + result = 31 * result + (getCodTcolUi() != null ? getCodTcolUi().hashCode() : 0); + result = 31 * result + (getCodTcolUl() != null ? getCodTcolUl().hashCode() : 0); + result = 31 * result + (getArticoloComposto() != null ? getArticoloComposto().hashCode() : 0); + result = 31 * result + (getEsposizioneComp() != null ? getEsposizioneComp().hashCode() : 0); + result = 31 * result + (getDescrizioneEstesa() != null ? getDescrizioneEstesa().hashCode() : 0); + result = 31 * result + (getCodUltForn() != null ? getCodUltForn().hashCode() : 0); + result = 31 * result + (getDataUltCar() != null ? getDataUltCar().hashCode() : 0); + result = 31 * result + (getValUltCar() != null ? getValUltCar().hashCode() : 0); + result = 31 * result + (getCodUltClie() != null ? getCodUltClie().hashCode() : 0); + result = 31 * result + (getDataUltScar() != null ? getDataUltScar().hashCode() : 0); + result = 31 * result + (getValUltScar() != null ? getValUltScar().hashCode() : 0); + result = 31 * result + (getTipoCodice() != null ? getTipoCodice().hashCode() : 0); + result = 31 * result + (getNote() != null ? getNote().hashCode() : 0); + result = 31 * result + (getPosizione() != null ? getPosizione().hashCode() : 0); + result = 31 * result + (getColliPedana() != null ? getColliPedana().hashCode() : 0); + result = 31 * result + (getUntMis2() != null ? getUntMis2().hashCode() : 0); + result = 31 * result + (getRapConv2() != null ? getRapConv2().hashCode() : 0); + result = 31 * result + (getFlagInclListino() != null ? getFlagInclListino().hashCode() : 0); + result = 31 * result + (getUntMis3() != null ? getUntMis3().hashCode() : 0); + result = 31 * result + (getRapConv3() != null ? getRapConv3().hashCode() : 0); + result = 31 * result + (getCodMartStat() != null ? getCodMartStat().hashCode() : 0); + result = 31 * result + (getCodMcon() != null ? getCodMcon().hashCode() : 0); + result = 31 * result + (getCodMgrp() != null ? getCodMgrp().hashCode() : 0); + result = 31 * result + (getCodMsfa() != null ? getCodMsfa().hashCode() : 0); + result = 31 * result + (getCodMsgr() != null ? getCodMsgr().hashCode() : 0); + result = 31 * result + (getCodMstp() != null ? getCodMstp().hashCode() : 0); + result = 31 * result + (getCodMtip() != null ? getCodMtip().hashCode() : 0); + result = 31 * result + (getDescrizioneStat() != null ? getDescrizioneStat().hashCode() : 0); + result = 31 * result + (getFlagStato() != null ? getFlagStato().hashCode() : 0); + result = 31 * result + (getCambioDiviCar() != null ? getCambioDiviCar().hashCode() : 0); + result = 31 * result + (getCambioDiviScar() != null ? getCambioDiviScar().hashCode() : 0); + result = 31 * result + (getGgScadPartita() != null ? getGgScadPartita().hashCode() : 0); + result = 31 * result + (getVolumeMc() != null ? getVolumeMc().hashCode() : 0); + result = 31 * result + (getFlagEsponiPrz() != null ? getFlagEsponiPrz().hashCode() : 0); + result = 31 * result + (getDataUltVar() != null ? getDataUltVar().hashCode() : 0); + result = 31 * result + (getPercSfrido() != null ? getPercSfrido().hashCode() : 0); + result = 31 * result + (getCodBarreImb() != null ? getCodBarreImb().hashCode() : 0); + result = 31 * result + (getFlagCalcPrz() != null ? getFlagCalcPrz().hashCode() : 0); + result = 31 * result + (getEsposizioneCompAcq() != null ? getEsposizioneCompAcq().hashCode() : 0); + result = 31 * result + (getFlagCalcPrzAcq() != null ? getFlagCalcPrzAcq().hashCode() : 0); + result = 31 * result + (getDiacod() != null ? getDiacod().hashCode() : 0); + result = 31 * result + (getPlu() != null ? getPlu().hashCode() : 0); + result = 31 * result + (getPartIvaProd() != null ? getPartIvaProd().hashCode() : 0); + result = 31 * result + (getRagSocProd() != null ? getRagSocProd().hashCode() : 0); + result = 31 * result + (getFlagRapConvVariabile() != null ? getFlagRapConvVariabile().hashCode() : 0); + result = 31 * result + (getFlagMovArtMag() != null ? getFlagMovArtMag().hashCode() : 0); + result = 31 * result + (getFlagTracciabilita() != null ? getFlagTracciabilita().hashCode() : 0); + result = 31 * result + (getTaraKg() != null ? getTaraKg().hashCode() : 0); + result = 31 * result + (getColliStrato() != null ? getColliStrato().hashCode() : 0); + result = 31 * result + (getFlagQtaCnfFissa() != null ? getFlagQtaCnfFissa().hashCode() : 0); + result = 31 * result + (getFlagColliPedanaFisso() != null ? getFlagColliPedanaFisso().hashCode() : 0); + result = 31 * result + (getCodCconCosti() != null ? getCodCconCosti().hashCode() : 0); + result = 31 * result + (getCodCconRicavi() != null ? getCodCconRicavi().hashCode() : 0); + result = 31 * result + (getCodDgrpArt() != null ? getCodDgrpArt().hashCode() : 0); + result = 31 * result + (getCodDiviCar() != null ? getCodDiviCar().hashCode() : 0); + result = 31 * result + (getCodDiviScar() != null ? getCodDiviScar().hashCode() : 0); + result = 31 * result + (getCodEcrCat() != null ? getCodEcrCat().hashCode() : 0); + result = 31 * result + (getCodEcrMcat() != null ? getCodEcrMcat().hashCode() : 0); + result = 31 * result + (getCodEcrRep() != null ? getCodEcrRep().hashCode() : 0); + result = 31 * result + (getCodEcrStipo() != null ? getCodEcrStipo().hashCode() : 0); + result = 31 * result + (getCodEcrTipo() != null ? getCodEcrTipo().hashCode() : 0); + result = 31 * result + (getCodGrpBolla() != null ? getCodGrpBolla().hashCode() : 0); + result = 31 * result + (getIngredienti() != null ? getIngredienti().hashCode() : 0); + result = 31 * result + (getIdArtEqui() != null ? getIdArtEqui().hashCode() : 0); + result = 31 * result + (getDescrCassa() != null ? getDescrCassa().hashCode() : 0); + result = 31 * result + (getCodNcIntracee() != null ? getCodNcIntracee().hashCode() : 0); + result = 31 * result + (getMarchio() != null ? getMarchio().hashCode() : 0); + result = 31 * result + (getSezione() != null ? getSezione().hashCode() : 0); + result = 31 * result + (getUntMisRifPeso() != null ? getUntMisRifPeso().hashCode() : 0); + result = 31 * result + (getQtaEsistente() != null ? getQtaEsistente().hashCode() : 0); + result = 31 * result + (getQtaImpegnata() != null ? getQtaImpegnata().hashCode() : 0); + result = 31 * result + (getNumCnfEsistente() != null ? getNumCnfEsistente().hashCode() : 0); + result = 31 * result + (getNumCnfImpegnata() != null ? getNumCnfImpegnata().hashCode() : 0); + result = 31 * result + (getMtbUntMis() != null ? getMtbUntMis().hashCode() : 0); + return result; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java index 46d2d6be..0b1c0cae 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java @@ -383,7 +383,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter } - new DialogAvailableItemsView(listaMtbAart) + new DialogAvailableItemsView(listaMtbAart, null) .show(getSupportFragmentManager(), "DialogAvailableInventarioItemsView"); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java index 91b5ed74..7f65b7a4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java @@ -44,6 +44,7 @@ import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO; import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.available_items.DialogAvailableItemListModel; import it.integry.integrywmsnative.view.dialogs.available_items.DialogAvailableItemsView; +import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper; 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; @@ -135,6 +136,9 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn if (menuItem.getItemId() == R.id.export) { requestExportConfirm(); return true; + } else if (menuItem.getItemId() == R.id.search_art) { + manualSearch(); + return true; } return false; @@ -204,6 +208,18 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn .show(getSupportFragmentManager(), "tag"); } + public void manualSearch() { + BarcodeManager.disable(); + DialogSimpleInputHelper.makeInputDialog(this, + "Ricerca articolo", + null, + "Cod articolo / Barcode", + barcodeProd -> + this.mViewModel.loadArticoloByCodMartOrBarcode(barcodeProd, BarcodeManager::enable), + BarcodeManager::enable) + .show(); + } + @Override public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, boolean canLUBeClosed, RunnableArgss onComplete) { DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO() @@ -283,7 +299,7 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn } - new DialogAvailableItemsView(listaMtbAart) + new DialogAvailableItemsView(listaMtbAart, mtbAartClicked -> this.mViewModel.loadArticoloByMtbAart(mtbAartClicked, null)) .show(getSupportFragmentManager(), "DialogAvailableInventarioItemsView"); } } \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioModule.java index b7f6cafa..fb14085b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioModule.java @@ -4,13 +4,16 @@ import dagger.Module; import dagger.Provides; import it.integry.integrywmsnative.core.data_store.db.respository_new.InventarioRepository; import it.integry.integrywmsnative.core.data_store.db.respository_new.InventarioRowRepository; +import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; @Module(subcomponents = PickingInventarioComponent.class) public class PickingInventarioModule { @Provides - PickingInventarioViewModel providesPickingInventarioViewModel(InventarioRepository inventarioRepository, InventarioRowRepository inventarioRowRepository) { - return new PickingInventarioViewModel(inventarioRepository, inventarioRowRepository); + PickingInventarioViewModel providesPickingInventarioViewModel(InventarioRepository inventarioRepository, + InventarioRowRepository inventarioRowRepository, + BarcodeRESTConsumer barcodeRESTConsumer) { + return new PickingInventarioViewModel(inventarioRepository, inventarioRowRepository, barcodeRESTConsumer); } } \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java index 71ea970a..fb01f61a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java @@ -17,10 +17,12 @@ import it.integry.integrywmsnative.core.data_store.db.entity.InventarioRowRoomDT import it.integry.integrywmsnative.core.data_store.db.respository_new.InventarioRepository; import it.integry.integrywmsnative.core.data_store.db.respository_new.InventarioRowRepository; import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException; +import it.integry.integrywmsnative.core.exception.NoResultFromCodMartException; import it.integry.integrywmsnative.core.expansion.RunnableArgss; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.dto.PickDataDTO; +import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.rest.model.Ean128Model; import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel; import it.integry.integrywmsnative.core.rest.model.inventario.InventarioArtDTO; @@ -28,6 +30,7 @@ import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityLiveData; +import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException; import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO; @@ -35,6 +38,7 @@ import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO; public class PickingInventarioViewModel extends ViewModel { + private final BarcodeRESTConsumer barcodeRESTConsumer; private final InventarioRepository inventarioRepository; private final InventarioRowRepository inventarioRowRepository; public MutableLiveData currentInventario = new MutableLiveData<>(); @@ -44,9 +48,12 @@ public class PickingInventarioViewModel extends ViewModel { private List availableInventarioArts; private Listener mListener; - public PickingInventarioViewModel(InventarioRepository inventarioRepository, InventarioRowRepository inventarioRowRepository) { + public PickingInventarioViewModel(InventarioRepository inventarioRepository, + InventarioRowRepository inventarioRowRepository, + BarcodeRESTConsumer barcodeRESTConsumer) { this.inventarioRepository = inventarioRepository; this.inventarioRowRepository = inventarioRowRepository; + this.barcodeRESTConsumer = barcodeRESTConsumer; } public void init(InventarioRoomDTO inventarioRoomDTO, List inventarioArts, boolean canAddUnknownItems, boolean flagShouldAskToCreateOrUpdateRowInventario) { @@ -84,50 +91,34 @@ public class PickingInventarioViewModel extends ViewModel { //Cerco tramite etichetta ean peso this.executeEtichettaEanPeso(barcodeScanDTO, onComplete); + } else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) { + //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL) + this.executeEtichettaEan128(barcodeScanDTO, onComplete); + } else { this.loadArticolo(barcodeScanDTO.getStringValue(), null, onComplete); } } - public void updateRow(InventarioRowRoomDTO itemToUpdate) { - var barcodeList = new ArrayList(); - barcodeList.add(itemToUpdate.getScanCodBarre()); - - var matchedArt = availableInventarioArts.stream() - .filter(x -> itemToUpdate.getCodMart() != null && x.getCodMart().contains(itemToUpdate.getCodMart())) + public void loadArticoloByCodMartOrBarcode(String codMart, Runnable onComplete) { + var matchedArt = Stream.of(this.availableInventarioArts) + .filter(x -> x.getCodMart().equalsIgnoreCase(codMart) || + x.getBarcode().contains(codMart)) .findFirst() .orElse(null); - MtbAart articolo; - if (canAddUnknownItems && matchedArt == null) { - matchedArt = new InventarioArtDTO().setBarcode(barcodeList).setFlagQtaCnfFissa(true).setPlu(false).setUntMis(itemToUpdate.getUntMis()).setQtaCnf(itemToUpdate.getQtaConf()); - } - if (matchedArt != null) { - articolo = matchedArt.toMtbAart().setFlagTracciabilita("N"); - dispatchRowEdit(articolo, itemToUpdate); - } else this.sendError(new NoResultFromBarcodeException(itemToUpdate.getScanCodBarre())); - } - - public void deleteRow(InventarioRowRoomDTO itemToDelete) { - this.inventarioRowRepository.delete(itemToDelete, () -> { - }, this::sendError); - } - - - public void exportAll(Runnable onComplete) { - if (this.currentInventarioRows.getValue().isEmpty()) { - this.sendError(new Exception("Impossibile esportare un inventario senza righe")); + if (matchedArt == null) { + this.sendError(new NoResultFromCodMartException(codMart)); return; } - this.sendOnLoadingStarted(); - currentInventario.getValue().setInventarioRowList(this.currentInventarioRows.getValue()); - this.inventarioRepository.export(currentInventario.getValue(), () -> { - this.sendOnLoadingEnded(); - onComplete.run(); - }, this::sendError); + loadArticolo(matchedArt.getBarcode().get(0), null, onComplete); + } + + public void loadArticoloByMtbAart(MtbAart mtbAart, Runnable onComplete) { + loadArticolo(mtbAart.getBarCode(), null, onComplete); } @@ -140,16 +131,49 @@ public class PickingInventarioViewModel extends ViewModel { } } + private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { + barcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> { + + String barcodeProd = null; + String codMart = null; + + if (!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin; + if (!UtilityString.isNullOrEmpty(ean128Model.Content)) + barcodeProd = ean128Model.Content; + + if (!UtilityString.isNullOrEmpty(ean128Model.Internal1)) + codMart = ean128Model.Internal1; + + + if (!UtilityString.isNullOrEmpty(barcodeProd)) { + this.loadArticolo(barcodeProd, ean128Model, onComplete); + + } else if (!UtilityString.isNullOrEmpty(codMart)) { + this.loadArticoloByCodMartOrBarcode(codMart, onComplete); + + } else { + //EAN 128 non completo o comunque mancano i riferimenti al prodotto + onComplete.run(); + } + }, this::sendError); + } + private void loadArticolo(String barcodeProd, Ean128Model ean128Model, Runnable onComplete) { var barcodeList = new ArrayList(); barcodeList.add(barcodeProd); - var matchedArt = availableInventarioArts.stream().filter(x -> x.getBarcode().contains(barcodeProd)).findFirst().orElse(null); + var matchedArt = availableInventarioArts.stream().filter(x -> x.getBarcode().contains(barcodeProd)) + .findFirst() + .orElse(null); if (canAddUnknownItems && matchedArt == null) { - matchedArt = new InventarioArtDTO().setBarcode(barcodeList).setFlagQtaCnfFissa(true).setPlu(false).setUntMis("PZ").setQtaCnf(BigDecimal.ONE); - + matchedArt = new InventarioArtDTO() + .setBarcode(barcodeList) + .setFlagQtaCnfFissa(true) + .setPlu(false) + .setUntMis("PZ") + .setQtaCnf(BigDecimal.ONE); } if (matchedArt != null) { @@ -162,7 +186,7 @@ public class PickingInventarioViewModel extends ViewModel { this.sendOnItemAlreadyFound(matchedArt, alreadyScannedItems); } - onComplete.run(); + if(onComplete != null) onComplete.run(); } else this.sendError(new NoResultFromBarcodeException(barcodeProd)); } @@ -306,6 +330,47 @@ public class PickingInventarioViewModel extends ViewModel { }, this::sendError); } + public void updateRow(InventarioRowRoomDTO itemToUpdate) { + var barcodeList = new ArrayList(); + barcodeList.add(itemToUpdate.getScanCodBarre()); + + var matchedArt = availableInventarioArts.stream() + .filter(x -> itemToUpdate.getCodMart() != null && x.getCodMart().contains(itemToUpdate.getCodMart())) + .findFirst() + .orElse(null); + + MtbAart articolo; + + if (canAddUnknownItems && matchedArt == null) { + matchedArt = new InventarioArtDTO().setBarcode(barcodeList).setFlagQtaCnfFissa(true).setPlu(false).setUntMis(itemToUpdate.getUntMis()).setQtaCnf(itemToUpdate.getQtaConf()); + } + if (matchedArt != null) { + articolo = matchedArt.toMtbAart().setFlagTracciabilita("N"); + dispatchRowEdit(articolo, itemToUpdate); + } else this.sendError(new NoResultFromBarcodeException(itemToUpdate.getScanCodBarre())); + } + + public void deleteRow(InventarioRowRoomDTO itemToDelete) { + this.inventarioRowRepository.delete(itemToDelete, () -> { + }, this::sendError); + } + + + public void exportAll(Runnable onComplete) { + if (this.currentInventarioRows.getValue().isEmpty()) { + this.sendError(new Exception("Impossibile esportare un inventario senza righe")); + return; + } + + this.sendOnLoadingStarted(); + currentInventario.getValue().setInventarioRowList(this.currentInventarioRows.getValue()); + + this.inventarioRepository.export(currentInventario.getValue(), () -> { + this.sendOnLoadingEnded(); + onComplete.run(); + }, this::sendError); + } + private void sendOnLoadingStarted() { if (this.mListener != null) mListener.onLoadingStarted(); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemListModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemListModel.java index f8b6220b..ad07ba81 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemListModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemListModel.java @@ -9,6 +9,9 @@ public class DialogAvailableItemListModel { private boolean aggiunto; + private boolean clickable; + private MtbAart originalModel; + public boolean isAggiunto() { return aggiunto; } @@ -36,9 +39,43 @@ public class DialogAvailableItemListModel { return this; } + public boolean isClickable() { + return clickable; + } + + public DialogAvailableItemListModel setClickable(boolean clickable) { + this.clickable = clickable; + return this; + } + + public MtbAart getOriginalModel() { + return originalModel; + } + + public DialogAvailableItemListModel setOriginalModel(MtbAart originalModel) { + this.originalModel = originalModel; + return this; + } + public static DialogAvailableItemListModel fromMtbAart(MtbAart mtbAart) { return new DialogAvailableItemListModel() .setCodMart(mtbAart.getCodMart()) - .setDescrizioneEstesa(mtbAart.getDescrizioneEstesa()); + .setDescrizioneEstesa(mtbAart.getDescrizioneEstesa()) + .setOriginalModel(mtbAart); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + DialogAvailableItemListModel that = (DialogAvailableItemListModel) o; + + return getOriginalModel().equals(that.getOriginalModel()); + } + + @Override + public int hashCode() { + return getOriginalModel().hashCode(); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemsView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemsView.java index 5777b43a..79a0323f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemsView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemsView.java @@ -6,27 +6,42 @@ import android.view.LayoutInflater; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.widget.SearchView; import androidx.core.content.ContextCompat; +import androidx.databinding.ObservableArrayList; +import androidx.databinding.ObservableList; +import com.annimon.stream.Stream; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.ravikoradiya.liveadapter.LiveAdapter; +import com.ravikoradiya.liveadapter.Type; import java.util.List; import it.integry.integrywmsnative.BR; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.model.MtbAart; +import it.integry.integrywmsnative.databinding.DialogAvailableIntventarioItemsItemModelBinding; import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtBinding; import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration; public class DialogAvailableItemsView extends BaseDialogFragment { private final List mListaArts; + private final ObservableList mFilteredListaArts = new ObservableArrayList<>(); - public DialogAvailableItemsView(List listaArts) { + private final RunnableArgs mOnItemSelected; + + + public DialogAvailableItemsView(List listaArts, RunnableArgs onItemSelected) { super(); this.mListaArts = listaArts; + this.mFilteredListaArts.addAll(mListaArts); + + this.mOnItemSelected = onItemSelected; } @@ -37,7 +52,12 @@ public class DialogAvailableItemsView extends BaseDialogFragment { binding.titleText.setText(R.string.articoli_disponibili); - initRecyclerView(binding, mListaArts); + for (var item : mListaArts) { + if (mOnItemSelected != null) item.setClickable(true); + } + + initSearchView(binding); + initRecyclerView(binding); var alertDialog = new MaterialAlertDialogBuilder(requireContext()) .setView(binding.getRoot()) @@ -49,17 +69,52 @@ public class DialogAvailableItemsView extends BaseDialogFragment { return alertDialog; } - private void initRecyclerView(DialogChooseArtFromListaArtBinding binding, List dataset) { + private void initSearchView(DialogChooseArtFromListaArtBinding binding) { + binding.searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + @Override + public boolean onQueryTextSubmit(String query) { + return false; + } + + @Override + public boolean onQueryTextChange(String newText) { + final List matchItems = Stream.of(mListaArts) + .filter(x -> x.getCodMart().toLowerCase().contains(newText.toLowerCase()) + || x.getDescrizioneEstesa().toLowerCase().contains(newText.toLowerCase())) + .toList(); + + mFilteredListaArts.clear(); + mFilteredListaArts.addAll(matchItems); + + return false; + } + }); + } + + private void initRecyclerView(DialogChooseArtFromListaArtBinding binding) { binding.itemsList.setHasFixedSize(true); SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(requireContext(), SimpleDividerItemDecoration.VERTICAL); itemDecorator.setDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.divider)); binding.itemsList.addItemDecoration(itemDecorator); + var itemType = new Type(R.layout.dialog_available_intventario_items__item_model, BR.item); - new LiveAdapter(dataset, BR.item) - .map(DialogAvailableItemListModel.class, R.layout.dialog_available_intventario_items__item_model) + itemType.areItemSame((x, y) -> x.getOriginalModel().getCodMart().equals(y.getOriginalModel().getCodMart())); + itemType.areContentsTheSame(DialogAvailableItemListModel::equals); + + if (mOnItemSelected != null) { + itemType.onClick(x -> { + mOnItemSelected.run(x.getBinding().getItem().getOriginalModel()); + dismiss(); + return null; + }); + } + + new LiveAdapter(mFilteredListaArts) + .map(DialogAvailableItemListModel.class, itemType) .into(binding.itemsList); + } } diff --git a/app/src/main/res/layout/activity_picking_inventario.xml b/app/src/main/res/layout/activity_picking_inventario.xml index 56a6c486..93a609bc 100644 --- a/app/src/main/res/layout/activity_picking_inventario.xml +++ b/app/src/main/res/layout/activity_picking_inventario.xml @@ -26,33 +26,6 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml b/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml index e865c3d2..b13c5145 100644 --- a/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml +++ b/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml @@ -16,7 +16,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:padding="16dp"> + android:paddingTop="16dp" + android:paddingBottom="16dp"> + + + + + android:background="?attr/selectableItemBackground"> diff --git a/app/src/main/res/layout/fragment_pv_ordini_acquisto__list_single_item.xml b/app/src/main/res/layout/fragment_pv_ordini_acquisto__list_single_item.xml index aab6b20d..6ab618d5 100644 --- a/app/src/main/res/layout/fragment_pv_ordini_acquisto__list_single_item.xml +++ b/app/src/main/res/layout/fragment_pv_ordini_acquisto__list_single_item.xml @@ -12,7 +12,7 @@ diff --git a/app/src/main/res/layout/layout_filter_automezzo__list_item.xml b/app/src/main/res/layout/layout_filter_automezzo__list_item.xml index c87823ea..39902f3b 100644 --- a/app/src/main/res/layout/layout_filter_automezzo__list_item.xml +++ b/app/src/main/res/layout/layout_filter_automezzo__list_item.xml @@ -18,7 +18,7 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:paddingHorizontal="8dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:clickable="@{item.enabled}" android:onClick="@{() -> item.selected.toggle()}"> diff --git a/app/src/main/res/layout/layout_filter_cliente__list_item.xml b/app/src/main/res/layout/layout_filter_cliente__list_item.xml index 473672a8..8e97b6b7 100644 --- a/app/src/main/res/layout/layout_filter_cliente__list_item.xml +++ b/app/src/main/res/layout/layout_filter_cliente__list_item.xml @@ -18,7 +18,7 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:paddingHorizontal="8dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:clickable="@{item.enabled}" android:onClick="@{() -> item.selected.toggle()}"> diff --git a/app/src/main/res/layout/layout_filter_cod_art__list_item.xml b/app/src/main/res/layout/layout_filter_cod_art__list_item.xml index 2439cf15..61a72af8 100644 --- a/app/src/main/res/layout/layout_filter_cod_art__list_item.xml +++ b/app/src/main/res/layout/layout_filter_cod_art__list_item.xml @@ -18,7 +18,7 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:paddingHorizontal="8dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:clickable="@{item.enabled}" android:onClick="@{() -> item.selected.toggle()}"> diff --git a/app/src/main/res/layout/layout_filter_commessa__list_item.xml b/app/src/main/res/layout/layout_filter_commessa__list_item.xml index 5f47b131..a82bc689 100644 --- a/app/src/main/res/layout/layout_filter_commessa__list_item.xml +++ b/app/src/main/res/layout/layout_filter_commessa__list_item.xml @@ -18,7 +18,7 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:paddingHorizontal="8dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:clickable="@{item.enabled}" android:onClick="@{() -> item.selected.toggle()}"> diff --git a/app/src/main/res/layout/layout_filter_deposito__list_item.xml b/app/src/main/res/layout/layout_filter_deposito__list_item.xml index 539499ed..c6594137 100644 --- a/app/src/main/res/layout/layout_filter_deposito__list_item.xml +++ b/app/src/main/res/layout/layout_filter_deposito__list_item.xml @@ -18,7 +18,7 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:paddingHorizontal="8dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:clickable="@{item.enabled}" android:onClick="@{() -> item.selected.toggle()}"> diff --git a/app/src/main/res/layout/layout_filter_descr__list_item.xml b/app/src/main/res/layout/layout_filter_descr__list_item.xml index 00091465..1da7cd47 100644 --- a/app/src/main/res/layout/layout_filter_descr__list_item.xml +++ b/app/src/main/res/layout/layout_filter_descr__list_item.xml @@ -18,7 +18,7 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:paddingHorizontal="8dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:clickable="@{item.enabled}" android:onClick="@{() -> item.selected.toggle()}"> diff --git a/app/src/main/res/layout/layout_filter_gruppo_merc__list_item.xml b/app/src/main/res/layout/layout_filter_gruppo_merc__list_item.xml index 2526b9fa..334f80df 100644 --- a/app/src/main/res/layout/layout_filter_gruppo_merc__list_item.xml +++ b/app/src/main/res/layout/layout_filter_gruppo_merc__list_item.xml @@ -16,7 +16,7 @@ diff --git a/app/src/main/res/layout/layout_filter_posizione__list_item.xml b/app/src/main/res/layout/layout_filter_posizione__list_item.xml index daf96357..8686adff 100644 --- a/app/src/main/res/layout/layout_filter_posizione__list_item.xml +++ b/app/src/main/res/layout/layout_filter_posizione__list_item.xml @@ -18,7 +18,7 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:paddingHorizontal="8dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:clickable="@{item.enabled}" android:onClick="@{() -> item.selected.toggle()}"> diff --git a/app/src/main/res/layout/layout_filter_term_cons__list_item.xml b/app/src/main/res/layout/layout_filter_term_cons__list_item.xml index 47240d5e..876a26d8 100644 --- a/app/src/main/res/layout/layout_filter_term_cons__list_item.xml +++ b/app/src/main/res/layout/layout_filter_term_cons__list_item.xml @@ -18,7 +18,7 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:paddingHorizontal="8dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:clickable="@{item.enabled}" android:onClick="@{() -> item.selected.toggle()}"> diff --git a/app/src/main/res/layout/layout_filter_vettore__list_item.xml b/app/src/main/res/layout/layout_filter_vettore__list_item.xml index 8eadcce7..15fa3d4d 100644 --- a/app/src/main/res/layout/layout_filter_vettore__list_item.xml +++ b/app/src/main/res/layout/layout_filter_vettore__list_item.xml @@ -18,7 +18,7 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:paddingHorizontal="8dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:clickable="@{item.enabled}" android:onClick="@{() -> item.selected.toggle()}"> diff --git a/app/src/main/res/layout/layout_filter_viaggio__list_item.xml b/app/src/main/res/layout/layout_filter_viaggio__list_item.xml index 52d18601..5995be35 100644 --- a/app/src/main/res/layout/layout_filter_viaggio__list_item.xml +++ b/app/src/main/res/layout/layout_filter_viaggio__list_item.xml @@ -18,7 +18,7 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:paddingHorizontal="8dp" - android:background="?android:attr/selectableItemBackground" + android:background="?attr/selectableItemBackground" android:clickable="@{item.enabled}" android:onClick="@{() -> item.selected.toggle()}"> diff --git a/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml b/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml index d275f5d9..d88e851a 100644 --- a/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml +++ b/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml @@ -25,7 +25,7 @@ diff --git a/app/src/main/res/menu/picking_inventario_menu.xml b/app/src/main/res/menu/picking_inventario_menu.xml index 622d7c94..e50c90de 100644 --- a/app/src/main/res/menu/picking_inventario_menu.xml +++ b/app/src/main/res/menu/picking_inventario_menu.xml @@ -9,5 +9,12 @@ android:contentDescription="@string/action_export" app:showAsAction="always" /> + + \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 5312ed32..042e1261 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -460,4 +460,5 @@ Sei sicuro di voler continuare?]]> Griglie disponibili + Cerca \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d5b84c79..f99ef1b5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -469,4 +469,5 @@ Do you wish to continue?]]> Available grids + Search From 64e520091287ba15063223936f8f30023bafeb67 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 14 Jun 2023 16:50:17 +0200 Subject: [PATCH 05/20] Modifiche onLoadingStarted --- .../integry/integrywmsnative/core/expansion/BaseActivity.java | 2 +- .../integrywmsnative/core/expansion/BaseDialogFragment.java | 2 +- .../integry/integrywmsnative/core/expansion/BaseFragment.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java index 994992b2..e37e2ab1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java @@ -49,7 +49,7 @@ public class BaseActivity extends AppCompatActivity { private void openProgress() { BarcodeManager.disable(); - if (!progressOpened && !this.mCurrentProgress.isAdded()) { + if (!progressOpened && !this.mCurrentProgress.isAdded() && !this.mCurrentProgress.isInLayout()) { this.progressOpened = true; runOnUiThread(() -> { this.mCurrentProgress.show(getSupportFragmentManager(), "tag"); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java index 00396013..80f9adfd 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java @@ -70,7 +70,7 @@ public class BaseDialogFragment extends DialogFragment implements DialogInterfac } private void openProgress() { - if (!progressOpened && !this.mCurrentProgress.isAdded()) { + if (!progressOpened && !this.mCurrentProgress.isAdded() && !this.mCurrentProgress.isInLayout()) { this.progressOpened = true; requireActivity().runOnUiThread(() -> { this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag"); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java index aa44347b..5423d71e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java @@ -67,7 +67,7 @@ public abstract class BaseFragment extends Fragment { private void openProgress() { BarcodeManager.disable(); - if (!progressOpened && !this.mCurrentProgress.isAdded()) { + if (!progressOpened && !this.mCurrentProgress.isAdded() && !this.mCurrentProgress.isInLayout()) { this.progressOpened = true; executorService.execute(() -> { this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag"); From d08ec43d29751db3ed68160fd01226f12ec9e7ca Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 14 Jun 2023 16:51:18 +0200 Subject: [PATCH 06/20] -> v1.34.00 (384) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 15cbd7ce..3f1dc86f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 383 - def appVersionName = '1.33.12' + def appVersionCode = 384 + def appVersionName = '1.34.00' signingConfigs { release { From 099d5fa54d35af7ad2ae28008c1ba1efe03e8275 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 15 Jun 2023 16:47:37 +0200 Subject: [PATCH 07/20] Ripristinata visualizzazione del cliente in creazione UL in Spedizione. Sistemato provider del mainHandler --- .../integry/integrywmsnative/MainApplicationModule.java | 3 +-- .../db/respository_new/InventarioRepository.java | 7 +++++-- .../integrywmsnative/core/utility/UtilityExceptions.java | 4 ++-- .../gest/spedizione/SpedizioneViewModel.java | 8 ++++++++ 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java index 51cf6110..7e65efd1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java @@ -2,7 +2,6 @@ package it.integry.integrywmsnative; import android.app.Application; import android.os.Handler; -import android.os.Looper; import androidx.core.os.HandlerCompat; @@ -72,7 +71,7 @@ public class MainApplicationModule { @Provides @Singleton public Handler providesMainThreadHandler() { - return HandlerCompat.createAsync(Looper.getMainLooper()); + return HandlerCompat.createAsync(mApplication.getApplicationContext().getMainLooper()); } @Provides diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java index a29c470e..bc3b8bbe 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java @@ -66,12 +66,15 @@ public class InventarioRepository extends _BaseRepository(); - resolveFetch(remoteData, internalLiveData.getValue(), + List finalRemoteData = remoteData; + + resolveFetch(finalRemoteData, internalLiveData.getValue(), (remoteItem, localItem) -> Objects.equals(remoteItem.getIdInventario(), localItem.getIdInventario()), (remoteItem, localItem) -> { remoteItem.setRemoteSyncDate(localItem.getRemoteSyncDate()); remoteItem.setNew(false); - }, onComplete, onError); + }, () -> handler.post(onComplete), ex -> handler.post(() -> onError.run(ex))); + } catch (Exception e) { onError.run(e); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java index 6c8cca76..9ee6fbbc 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java @@ -31,9 +31,9 @@ public class UtilityExceptions { public static void defaultException(Context context, Exception ex, boolean sendEmail) { if (ex.getMessage() != null) { - Logger.e(ex, Html.fromHtml(ex.getMessage()).toString()); + Logger.e(ex, Html.fromHtml(ex.getMessage()).toString(), ex.getStackTrace()); } else { - Logger.e(ex, "Errore"); + Logger.e(ex, "Errore", ex.getStackTrace()); } String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex); 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 42e390e3..1832702d 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 @@ -95,6 +95,7 @@ public class SpedizioneViewModel { private Listener mListener; + private String mDefaultRagSocOfUL = null; private GestioneEnum mDefaultGestioneOfUL = null; private int mDefaultSegnoCol = -1; private String mDefaultCodMdep = null; @@ -205,6 +206,12 @@ public class SpedizioneViewModel { private void initDefaultVars() { if (this.mTestateOrdini != null && this.mTestateOrdini.size() > 0) { + List foundRagSoc = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getRagSocOrd).distinctBy(x -> x).toList(); + + if (foundRagSoc != null && foundRagSoc.size() == 1) { + mDefaultRagSocOfUL = foundRagSoc.get(0); + } + if (mDefaultGestioneOfUL == null) { //Definizione della gestione collo di default List foundGestioni = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getGestioneEnum).withoutNulls().distinct().toList(); @@ -1230,6 +1237,7 @@ public class SpedizioneViewModel { mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(createdUDS, mTestateOrdini); this.mCurrentMtbColt = createdUDS; + this.mCurrentMtbColt.setRagSocCliente(mDefaultRagSocOfUL); this.mIsNewLU = true; if (onComplete != null) onComplete.run(); From 3c1471ee8d39191ea1d9181739906f182de81b52 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 16 Jun 2023 12:17:22 +0200 Subject: [PATCH 08/20] -> v1.34.01 (385) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3f1dc86f..410d339b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 384 - def appVersionName = '1.34.00' + def appVersionCode = 385 + def appVersionName = '1.34.01' signingConfigs { release { From afc2aef691f3671ab43f837207d15c7d01e46abe Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 29 Jun 2023 18:47:10 +0200 Subject: [PATCH 09/20] Implementato flag per abilitare/disabilitare cache degli inventari --- .../db/respository_new/InventarioRepository.java | 4 +++- .../data_store/db/respository_new/_BaseRepository.java | 7 +++++-- .../core/settings/DBSettingsModel.java | 10 ++++++++++ .../core/settings/SettingsManager.java | 5 +++++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java index bc3b8bbe..cc005c21 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java @@ -21,6 +21,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.mapper.InventarioMapper; import it.integry.integrywmsnative.core.model.MtbInvent; import it.integry.integrywmsnative.core.rest.consumers.InventarioRESTConsumer; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityLiveData; public class InventarioRepository extends _BaseRepository { @@ -73,7 +74,8 @@ public class InventarioRepository extends _BaseRepository { remoteItem.setRemoteSyncDate(localItem.getRemoteSyncDate()); remoteItem.setNew(false); - }, () -> handler.post(onComplete), ex -> handler.post(() -> onError.run(ex))); + }, () -> handler.post(onComplete), ex -> handler.post(() -> onError.run(ex)), + SettingsManager.iDB().isFlagIsInventarioCacheEnabled()); } catch (Exception e) { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java index f5d52879..c320476a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java @@ -35,7 +35,8 @@ public abstract class _BaseRepository< RunnableArgssWithReturn keyComparator, RunnableArgss dataCopy, Runnable onComplete, - RunnableArgs onError) { + RunnableArgs onError, + boolean isCacheEnabled) { List finalRemoteData = dataMapper.mapRestsToRooms(remoteData); if (localData == null) localData = new ArrayList<>(); @@ -53,12 +54,14 @@ public abstract class _BaseRepository< } + + var dataToUpdate = finalRemoteData.stream() .filter(x -> x.getId() != null && finalLocalData.stream().noneMatch(x::equals)) .collect(Collectors.toList()); var dataToDelete = finalLocalData.stream() - .filter(x -> x.isSyncronized() && finalRemoteData.stream().noneMatch(y -> keyComparator.run(y, x))) + .filter(x -> (!isCacheEnabled || x.isSyncronized()) && finalRemoteData.stream().noneMatch(y -> keyComparator.run(y, x))) .collect(Collectors.toList()); var dataToInsert = finalRemoteData.stream() diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java index 5a052dd5..461226c8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java @@ -61,6 +61,7 @@ public class DBSettingsModel { private boolean flagShouldAskToCreateOrUpdateRowInventario = false; private String commessaMagazzino; private boolean flagGeneraDocumentoSpedizione = false; + private boolean flagIsInventarioCacheEnabled = false; public boolean isFlagSpedizioneEnableFakeGiacenza() { return flagSpedizioneEnableFakeGiacenza; @@ -476,4 +477,13 @@ public class DBSettingsModel { this.flagGeneraDocumentoSpedizione = flagGeneraDocumentoSpedizione; return this; } + + public boolean isFlagIsInventarioCacheEnabled() { + return flagIsInventarioCacheEnabled; + } + + public DBSettingsModel setFlagIsInventarioCacheEnabled(boolean flagIsInventarioCacheEnabled) { + this.flagIsInventarioCacheEnabled = flagIsInventarioCacheEnabled; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java index 6d1625ca..31916bd5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java @@ -376,6 +376,10 @@ public class SettingsManager { .setGestName("PICKING") .setSection("INVENTARIO") .setKeySection("FLAG_SHOULD_ASK_TO_CREATE_OR_UPDATE_ROW")); + stbGestSetupList.add(new StbGestSetup() + .setGestName("PICKING") + .setSection("INVENTARIO") + .setKeySection("ENABLE_OFFLINE_CACHE")); stbGestSetupList.add(new StbGestSetup() .setGestName("PICKING") .setSection("SETUP") @@ -424,6 +428,7 @@ public class SettingsManager { dbSettingsModelIstance.setFlagShouldAskToCreateOrUpdateRowInventario(getValueFromList(list, "INVENTARIO", "FLAG_SHOULD_ASK_TO_CREATE_OR_UPDATE_ROW", Boolean.class, Boolean.FALSE)); dbSettingsModelIstance.setCommessaMagazzino(getValueFromList(list, "SETUP", "COMMESSA_MAGAZZINO", String.class, CommonConst.Config.COMMESSA_MAG)); dbSettingsModelIstance.setFlagGeneraDocumentoSpedizione(getValueFromList(list, "SPEDIZIONE", "GENERA_DOC", Boolean.class, Boolean.FALSE)); + dbSettingsModelIstance.setFlagIsInventarioCacheEnabled(getValueFromList(list, "INVENTARIO", "ENABLE_OFFLINE_CACHE", Boolean.class, Boolean.FALSE)); String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class); if (notePerdita != null) From 589a179a1b4b2dd3b2eeb250f936cd104cabc216 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 29 Jun 2023 18:47:46 +0200 Subject: [PATCH 10/20] -> v1.34.02 (386) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 410d339b..c445c335 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 385 - def appVersionName = '1.34.01' + def appVersionCode = 386 + def appVersionName = '1.34.02' signingConfigs { release { From 8ec314044fb21d8c8f58d27cd35bf9e69a635614 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 30 Jun 2023 17:01:53 +0200 Subject: [PATCH 11/20] Cambiata lettura barcode in dettaglio linee --- .../integrywmsnative/core/rest/model/Ean128Model.java | 2 +- .../ProdDettaglioLineaViewModel.java | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/Ean128Model.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/Ean128Model.java index 6ada378c..e7d9e757 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/Ean128Model.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/Ean128Model.java @@ -313,7 +313,7 @@ public class Ean128Model { public String InternalPart; ///Informazioni interne - public String Internal1; + public String Internal1; //USED FOR COD_MART ///Informazioni interne public String Internal2; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaViewModel.java index 77e031d7..e2632733 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaViewModel.java @@ -172,14 +172,20 @@ public class ProdDettaglioLineaViewModel { public void checkBarcodeAndStartOrdine(BarcodeScanDTO dto) { this.sendOnLoadingStarted(); + ProdLineStatusDTO prodLine = lineaProd.getValue(); mBarcodeRESTConsumer.decodeEan128(dto, (ean128) -> { - String codMart = ean128.Content; + String codMart = ean128.Internal1; String partitaMag = ean128.BatchLot; - if (!prodLine.isStarted()) { + if(prodLine == null) { + this.sendError(new Exception("Impossibile leggere lo stato della linea")); + + } else if (!prodLine.isStarted()) { this.sendError(new Exception("Impossibile avviare una produzione su una linea ferma!")); + } else if (UtilityString.isNullOrEmpty(prodLine.getListaOrd())) { this.startProduction(codMart, partitaMag); + } else { this.mListener.confirmOrderClose(() -> { this.startProduction(codMart, partitaMag); From 318a8f645e7d26927811e9af9a5f4189c4498332 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Mon, 3 Jul 2023 17:46:53 +0200 Subject: [PATCH 12/20] -> v1.34.03 (387) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index c445c335..f92c2109 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 386 - def appVersionName = '1.34.02' + def appVersionCode = 387 + def appVersionName = '1.34.03' signingConfigs { release { From e6ecebd49ab8536ec2c7072fe11f86e6a5de0db8 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Mon, 3 Jul 2023 17:59:30 +0200 Subject: [PATCH 13/20] Nuovi servizi in rettigica giacenze --- .../core/model/MtbAartWithFornitore.java | 15 ---- .../consumers/ColliMagazzinoRESTConsumer.java | 4 +- .../RettificaGiacenzeViewModel.java | 2 +- ...ArticoloByBarcodeOrCodMartResponseDTO.java | 60 +++++++++++++ ...oByCodArtFornOrDescrizioneResponseDTO.java | 28 ++++++ .../rest/RettificaGiacenzeRESTConsumer.java | 85 ++++++++++--------- .../RettificaGiacenzeRESTConsumerService.java | 14 +++ 7 files changed, 151 insertions(+), 57 deletions(-) delete mode 100644 app/src/main/java/it/integry/integrywmsnative/core/model/MtbAartWithFornitore.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartResponseDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneResponseDTO.java diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAartWithFornitore.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAartWithFornitore.java deleted file mode 100644 index e6b06b50..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAartWithFornitore.java +++ /dev/null @@ -1,15 +0,0 @@ -package it.integry.integrywmsnative.core.model; - -public class MtbAartWithFornitore extends MtbAart { - - private String codArtFor; - - public String getCodArtFor() { - return codArtFor; - } - - public MtbAartWithFornitore setCodArtFor(String codArtFor) { - this.codArtFor = codArtFor; - return this; - } -} 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 aaf83cdf..de65aede 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 @@ -58,7 +58,9 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer { public void saveCollo(MtbColt mtbColtToSave, RunnableArgs onComplete, RunnableArgs onFailed) { MtbColt mtbColtToSaveClone = (MtbColt) mtbColtToSave.clone(); - mtbColtToSave.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + mtbColtToSaveClone.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + mtbColtToSaveClone.setOnlyPkMaster(false); + mtbColtToSaveClone.setMtbColr(new ObservableArrayList<>()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java index 4f91e780..b084a63a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java @@ -183,7 +183,7 @@ public class RettificaGiacenzeViewModel { mRettificaGiacenzeRESTConsumer.searchArtForn(codAlis, queryText, listaArts -> { this.sendOnLoadingEnded(); - List mtbAarts = Stream.of(listaArts).map(x -> (MtbAart) x).toList(); + List mtbAarts = Stream.of(listaArts).map(x -> (MtbAart) x.getMtbAart()).toList(); dispatchArts(mtbAarts); }, this::sendError); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartResponseDTO.java new file mode 100644 index 00000000..0df89be1 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartResponseDTO.java @@ -0,0 +1,60 @@ +package it.integry.integrywmsnative.gest.rettifica_giacenze.dto; + +import java.math.BigDecimal; + +import it.integry.integrywmsnative.core.model.MtbAart; + +public class SearchArticoloByBarcodeOrCodMartResponseDTO { + + private MtbAart mtbAart; + private BigDecimal qtaEsistente; + private BigDecimal qtaImpegnata; + private BigDecimal numCnfEsistente; + private BigDecimal numCnfImpegnata; + + + public MtbAart getMtbAart() { + return mtbAart; + } + + public SearchArticoloByBarcodeOrCodMartResponseDTO setMtbAart(MtbAart mtbAart) { + this.mtbAart = mtbAart; + return this; + } + + public BigDecimal getQtaEsistente() { + return qtaEsistente; + } + + public SearchArticoloByBarcodeOrCodMartResponseDTO setQtaEsistente(BigDecimal qtaEsistente) { + this.qtaEsistente = qtaEsistente; + return this; + } + + public BigDecimal getQtaImpegnata() { + return qtaImpegnata; + } + + public SearchArticoloByBarcodeOrCodMartResponseDTO setQtaImpegnata(BigDecimal qtaImpegnata) { + this.qtaImpegnata = qtaImpegnata; + return this; + } + + public BigDecimal getNumCnfEsistente() { + return numCnfEsistente; + } + + public SearchArticoloByBarcodeOrCodMartResponseDTO setNumCnfEsistente(BigDecimal numCnfEsistente) { + this.numCnfEsistente = numCnfEsistente; + return this; + } + + public BigDecimal getNumCnfImpegnata() { + return numCnfImpegnata; + } + + public SearchArticoloByBarcodeOrCodMartResponseDTO setNumCnfImpegnata(BigDecimal numCnfImpegnata) { + this.numCnfImpegnata = numCnfImpegnata; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneResponseDTO.java new file mode 100644 index 00000000..aa460d45 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneResponseDTO.java @@ -0,0 +1,28 @@ +package it.integry.integrywmsnative.gest.rettifica_giacenze.dto; + +import it.integry.integrywmsnative.core.model.MtbAart; + +public class SearchArticoloByCodArtFornOrDescrizioneResponseDTO { + + private MtbAart mtbAart; + + private String codArtFor; + + public MtbAart getMtbAart() { + return mtbAart; + } + + public SearchArticoloByCodArtFornOrDescrizioneResponseDTO setMtbAart(MtbAart mtbAart) { + this.mtbAart = mtbAart; + return this; + } + + public String getCodArtFor() { + return codArtFor; + } + + public SearchArticoloByCodArtFornOrDescrizioneResponseDTO setCodArtFor(String codArtFor) { + this.codArtFor = codArtFor; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java index 366b0211..891d04bd 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java @@ -1,25 +1,26 @@ package it.integry.integrywmsnative.gest.rettifica_giacenze.rest; +import com.annimon.stream.Stream; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Collections; +import java.util.List; import javax.inject.Singleton; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.MtbAart; -import it.integry.integrywmsnative.core.model.MtbAartWithFornitore; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer; import it.integry.integrywmsnative.core.rest.model.SaveDocFromPickingRequestDTO; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; -import it.integry.integrywmsnative.core.settings.SettingsManager; -import it.integry.integrywmsnative.core.utility.UtilityDB; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO; +import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartResponseDTO; +import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneResponseDTO; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -45,49 +46,53 @@ public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer { } - public void searchArtForn(String codAlis, String codArtForOrDescr, RunnableArgs> onComplete, RunnableArgs onFailed) { - String sql = "SELECT mtb_aart.*, mtb_lisa.cod_art_for from mtb_lisa, mtb_aart, mtb_part " + - " WHERE mtb_lisa.cod_alis = " + UtilityDB.valueToString(codAlis) + - " AND mtb_lisa.cod_mart = mtb_aart.cod_mart " + - " AND mtb_lisa.cod_mart = mtb_part.cod_mart " + - " AND mtb_part.cod_mdep = '" + SettingsManager.i().getUserSession().getDepo().getCodMdep() + "' " + - " AND (mtb_aart.descrizione_estesa LIKE '%" + codArtForOrDescr + "%' OR cod_art_for LIKE '%" + codArtForOrDescr + "%') " + - " ORDER BY ABS(mtb_part.qta_esistente) DESC, mtb_aart.descrizione_estesa"; + public void searchArtForn(String codAlis, String codArtForOrDescr, RunnableArgs> onComplete, RunnableArgs onError) { + final RettificaGiacenzeRESTConsumerService service = RESTBuilder.getService(RettificaGiacenzeRESTConsumerService.class); + service.searchByCodArtFornOrDescrizione(codAlis, codArtForOrDescr) + .enqueue(new Callback<>() { + @Override + public void onResponse(Call>> call, + Response>> response) { + analyzeAnswer(response, "searchByCodArtFornOrDescrizione", onComplete, onError); + } + + @Override + public void onFailure(Call>> call, Throwable t) { + onError.run(new Exception(t)); + } + }); + - Type typeOfObjectsList = new TypeToken>() { - }.getType(); - mSystemRestConsumer.>processSql(sql, typeOfObjectsList, value -> { - if (onComplete != null) onComplete.run(value); - }, onFailed); } - public void searchArtInt(String codMartOrBarcodeOrDescr, RunnableArgs> onComplete, RunnableArgs onFailed) { - String sql = "SELECT DISTINCT mtb_aart.*," + - " qta_esistente, " + - " qta_imp_cli + qta_imp_lav AS qta_impegnata, " + - " num_esistente AS num_cnf_esistente, " + - " num_imp_cli + num_imp_lav AS num_cnf_impegnata " + - " FROM mtb_aart " + - " LEFT OUTER JOIN mvw_barcode on mtb_aart.cod_mart = mvw_barcode.cod_mart " + - " LEFT OUTER JOIN mtb_part mp on mtb_aart.cod_mart = mp.cod_mart " + - " AND mp.cod_mdep = '" + SettingsManager.i().getUserSession().getDepo().getCodMdep() + "'" + - " WHERE CASE" + - " WHEN LEN(mvw_barcode.cod_barre) > 13 THEN mvw_barcode.cod_barre " + - " ELSE Replicate('0', 13 - len(mvw_barcode.cod_barre))+ mvw_barcode.cod_barre " + - " END LIKE '%' + CASE " + - " WHEN LEN('" + codMartOrBarcodeOrDescr + "') > 13 THEN '" + codMartOrBarcodeOrDescr + "' " + - " ELSE Replicate('0', 13 - len('" + codMartOrBarcodeOrDescr + "')) + '" + codMartOrBarcodeOrDescr + "'" + - " END " + - "OR mtb_aart.cod_mart = '" + codMartOrBarcodeOrDescr + "' " + - "OR mtb_aart.descrizione_estesa LIKE '%" + codMartOrBarcodeOrDescr + "%'"; + public void searchArtInt(String codMartOrBarcodeOrDescr, RunnableArgs> onComplete, RunnableArgs onError) { + final RettificaGiacenzeRESTConsumerService service = RESTBuilder.getService(RettificaGiacenzeRESTConsumerService.class); + service.searchByCodMartOrBarcode(codMartOrBarcodeOrDescr) + .enqueue(new Callback<>() { + @Override + public void onResponse(Call>> call, + Response>> response) { + analyzeAnswer(response, "searchByCodMartOrBarcode", data -> { - Type typeOfObjectsList = new TypeToken>() { - }.getType(); - mSystemRestConsumer.>processSql(sql, typeOfObjectsList, value -> { - if (onComplete != null) onComplete.run(value); - }, onFailed); + var listToReturn = Stream.of(data) + .map(x -> x.getMtbAart() + .setQtaEsistente(x.getQtaEsistente()) + .setQtaImpegnata(x.getQtaImpegnata()) + .setNumCnfEsistente(x.getNumCnfEsistente()) + .setNumCnfImpegnata(x.getNumCnfImpegnata())) + .toList(); + + onComplete.run(listToReturn); + }, onError); + } + + @Override + public void onFailure(Call>> call, Throwable t) { + onError.run(new Exception(t)); + } + }); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java index fd6ae1d7..9e08eea8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java @@ -1,14 +1,28 @@ package it.integry.integrywmsnative.gest.rettifica_giacenze.rest; +import java.util.List; + import it.integry.integrywmsnative.core.rest.model.SaveDocFromPickingRequestDTO; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; +import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartResponseDTO; +import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneResponseDTO; import retrofit2.Call; import retrofit2.http.Body; +import retrofit2.http.GET; import retrofit2.http.POST; +import retrofit2.http.Query; public interface RettificaGiacenzeRESTConsumerService { + @GET("wms/articolo/searchByCodArtFornOrDescrizione") + Call>> searchByCodArtFornOrDescrizione( + @Query("codAlis") String codAlis, + @Query("codArtFornOrDescrizione") String codMartOrBarcode); + + @GET("wms/articolo/searchByCodMartOrBarcode") + Call>> searchByCodMartOrBarcode(@Query("codMartOrBarcode") String codMartOrBarcode); + @POST("saveDocFromPickingPvm") Call> saveDocFromPickingPvm(@Body SaveDocFromPickingRequestDTO saveDocFromPickingRequestDTO); From c31700d9cbb8cf89f8519898d75a1380b04671cd Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 5 Jul 2023 10:54:37 +0200 Subject: [PATCH 14/20] Modificati in POST i servizi di ricerca in Rettifica Giacenze. Implementato nuovo servizio di retrieve articolo by codMart. --- .../rest/consumers/ArticoloRESTConsumer.java | 65 ++++++----- .../ArticoloRESTConsumerService.java | 6 +- .../RetrieveArticoloByCodMartRequestDTO.java | 17 +++ .../AccettazionePickingActivity.java | 106 ++++++++---------- .../RettificaGiacenzeViewModel.java | 8 +- ...hArticoloByBarcodeOrCodMartRequestDTO.java | 15 +++ ...loByCodArtFornOrDescrizioneRequestDTO.java | 27 +++++ .../rest/RettificaGiacenzeRESTConsumer.java | 9 +- .../RettificaGiacenzeRESTConsumerService.java | 14 +-- 9 files changed, 163 insertions(+), 104 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/RetrieveArticoloByCodMartRequestDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartRequestDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneRequestDTO.java diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java index 040b0f2d..26a6e35c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java @@ -1,6 +1,5 @@ package it.integry.integrywmsnative.core.rest.consumers; -import com.annimon.stream.Collectors; import com.annimon.stream.Stream; import com.google.gson.reflect.TypeToken; @@ -19,6 +18,7 @@ import it.integry.integrywmsnative.core.model.MtbUntMis; import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO; import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; +import it.integry.integrywmsnative.core.rest.model.articolo.RetrieveArticoloByCodMartRequestDTO; import it.integry.integrywmsnative.core.utility.UtilityQuery; import retrofit2.Call; import retrofit2.Callback; @@ -59,26 +59,28 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer { public static void getByCodMartsStatic(List codMartToFind, RunnableArgs> onComplete, RunnableArgs onFailed) { - String joinedCods = Stream.of(codMartToFind) + var codMarts = Stream.of(codMartToFind) .withoutNulls() - .distinct() - .collect(Collectors.joining(",")); + .distinct().toList(); ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class); - articoloRESTConsumer.getByCodMart(joinedCods).enqueue(new Callback<>() { - @Override - public void onResponse(Call> call, Response> response) { - analyzeAnswer(response, "getByCodMart", (m) -> { - onComplete.run(response.body().getEntityList()); - }, onFailed); - } + articoloRESTConsumer + .getByCodMart(new RetrieveArticoloByCodMartRequestDTO() + .setCodMarts(codMarts)) + .enqueue(new Callback<>() { + @Override + public void onResponse(Call> call, Response> response) { + analyzeAnswer(response, "getByCodMart", (m) -> { + onComplete.run(response.body().getEntityList()); + }, onFailed); + } - @Override - public void onFailure(Call> call, Throwable t) { - onFailed.run(new Exception(t)); - } - }); + @Override + public void onFailure(Call> call, Throwable t) { + onFailed.run(new Exception(t)); + } + }); } @@ -103,22 +105,25 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer { public void getByCodMart(String codMartToFind, RunnableArgs onComplete, RunnableArgs onFailed) { ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class); - articoloRESTConsumer.getByCodMart(codMartToFind).enqueue(new Callback<>() { - @Override - public void onResponse(Call> call, Response> response) { - analyzeAnswer(response, "getByCodMart", (m) -> { - if (response.body().getEntityList() != null && !response.body().getEntityList().isEmpty()) { - onComplete.run(response.body().getEntityList().get(0)); - } else onComplete.run(null); + articoloRESTConsumer.getByCodMart( + new RetrieveArticoloByCodMartRequestDTO() + .setCodMarts(Collections.singletonList(codMartToFind))) + .enqueue(new Callback<>() { + @Override + public void onResponse(Call> call, Response> response) { + analyzeAnswer(response, "getByCodMart", (m) -> { + if (response.body().getEntityList() != null && !response.body().getEntityList().isEmpty()) { + onComplete.run(response.body().getEntityList().get(0)); + } else onComplete.run(null); - }, onFailed); - } + }, onFailed); + } - @Override - public void onFailure(Call> call, Throwable t) { - onFailed.run(new Exception(t)); - } - }); + @Override + public void onFailure(Call> call, Throwable t) { + onFailed.run(new Exception(t)); + } + }); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java index 687dbdf7..61cca9b4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java @@ -5,7 +5,9 @@ import java.util.List; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; +import it.integry.integrywmsnative.core.rest.model.articolo.RetrieveArticoloByCodMartRequestDTO; import retrofit2.Call; +import retrofit2.http.Body; import retrofit2.http.GET; import retrofit2.http.POST; import retrofit2.http.Query; @@ -16,8 +18,8 @@ public interface ArticoloRESTConsumerService { @POST("SM2getArticoloByBarcode") Call> getByBarcodeProd(@Query("barcode") String barcodeProd); - @GET("SM2getArticoloByCodMart") - Call> getByCodMart(@Query("codMart") String barcodeProd); + @POST("wms/articolo/retrieveByCodMart") + Call> getByCodMart(@Body RetrieveArticoloByCodMartRequestDTO retrieveArticoloByCodMartRequest); @GET("getProductLotStatus") Call>> getStatoPartita(@Query("codMart") String codMart, @Query("partitaMag") String partitaMag); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/RetrieveArticoloByCodMartRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/RetrieveArticoloByCodMartRequestDTO.java new file mode 100644 index 00000000..8a7f93c2 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/RetrieveArticoloByCodMartRequestDTO.java @@ -0,0 +1,17 @@ +package it.integry.integrywmsnative.core.rest.model.articolo; + +import java.util.List; + +public class RetrieveArticoloByCodMartRequestDTO { + + private List codMarts; + + public List getCodMarts() { + return codMarts; + } + + public RetrieveArticoloByCodMartRequestDTO setCodMarts(List codMarts) { + this.codMarts = codMarts; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java index b7509dec..b758172f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java @@ -178,7 +178,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta v -> initBottomSheetDialogFilter(filterChipDTO)); switch (filterChipDTO.getID()) { - case AccettazionePickingBindings.COD_ART_FILTER_ID: + case AccettazionePickingBindings.COD_ART_FILTER_ID -> { mAppliedFilterViewModel.getCurrentCodArtPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() { @Override public void run() { @@ -199,8 +199,8 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta } }); filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentCodArtPredicate().set(null)); - break; - case AccettazionePickingBindings.DESCR_FILTER_ID: + } + case AccettazionePickingBindings.DESCR_FILTER_ID -> { mAppliedFilterViewModel.getCurrentDescrPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() { @Override public void run() { @@ -221,8 +221,8 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta } }); filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentDescrPredicate().set(null)); - break; - case AccettazionePickingBindings.POS_FILTER_ID: + } + case AccettazionePickingBindings.POS_FILTER_ID -> { mAppliedFilterViewModel.getCurrentPosPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() { @Override public void run() { @@ -243,7 +243,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta } }); filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentPosPredicate().set(null)); - break; + } } this.mBindings.filterChipsGroup.addView(filterChipView); @@ -262,43 +262,39 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta .getFilterLayoutView(); switch (filterChipDTO.getID()) { - case AccettazionePickingBindings.COD_ART_FILTER_ID: - ((FilterCodArtLayoutView) filterLayoutView) - .setAll(mAppliedFilterViewModel.getAllCodArts()) - .setAvailable(mAppliedFilterViewModel.getAvailableCodArts()) - .setOnFilterApplied(mAppliedFilterViewModel::setCodArtFilter) - .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())) - .filter(mAppliedFilterViewModel.getCurrentCodArtPredicate().get() == null ? - x -> false : - mAppliedFilterViewModel.getCurrentCodArtPredicate().get()) - .map(x -> x.getSitArtOrdDTO().getCodMart()) - .toList()); - break; - case AccettazionePickingBindings.DESCR_FILTER_ID: - ((FilterDescrLayoutView) filterLayoutView) - .setAll(mAppliedFilterViewModel.getAllDescrs()) - .setAvailable(mAppliedFilterViewModel.getAvailableDescrs()) - .setOnFilterApplied(mAppliedFilterViewModel::setDescrFilter) - .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())) - .filter(mAppliedFilterViewModel.getCurrentDescrPredicate().get() == null ? - x -> false : - mAppliedFilterViewModel.getCurrentDescrPredicate().get()) - .map(x -> x.getSitArtOrdDTO().getDescrizioneEstesaArt()) - .toList()); - break; - case AccettazionePickingBindings.POS_FILTER_ID: - ((FilterPosizioneLayoutView) filterLayoutView) - .setAll(mAppliedFilterViewModel.getAllPos()) - .setAvailable(mAppliedFilterViewModel.getAvailablePos()) - .setOnFilterApplied(mAppliedFilterViewModel::setPosFilter) - .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())) - .filter(mAppliedFilterViewModel.getCurrentPosPredicate().get() == null ? - x -> false : - mAppliedFilterViewModel.getCurrentPosPredicate().get()) - .map(x -> x.getMtbAart().getPosizione()) - .toList()); - break; - + case AccettazionePickingBindings.COD_ART_FILTER_ID -> + ((FilterCodArtLayoutView) filterLayoutView) + .setAll(mAppliedFilterViewModel.getAllCodArts()) + .setAvailable(mAppliedFilterViewModel.getAvailableCodArts()) + .setOnFilterApplied(mAppliedFilterViewModel::setCodArtFilter) + .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())) + .filter(mAppliedFilterViewModel.getCurrentCodArtPredicate().get() == null ? + x -> false : + mAppliedFilterViewModel.getCurrentCodArtPredicate().get()) + .map(x -> x.getSitArtOrdDTO().getCodMart()) + .toList()); + case AccettazionePickingBindings.DESCR_FILTER_ID -> + ((FilterDescrLayoutView) filterLayoutView) + .setAll(mAppliedFilterViewModel.getAllDescrs()) + .setAvailable(mAppliedFilterViewModel.getAvailableDescrs()) + .setOnFilterApplied(mAppliedFilterViewModel::setDescrFilter) + .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())) + .filter(mAppliedFilterViewModel.getCurrentDescrPredicate().get() == null ? + x -> false : + mAppliedFilterViewModel.getCurrentDescrPredicate().get()) + .map(x -> x.getSitArtOrdDTO().getDescrizioneEstesaArt()) + .toList()); + case AccettazionePickingBindings.POS_FILTER_ID -> + ((FilterPosizioneLayoutView) filterLayoutView) + .setAll(mAppliedFilterViewModel.getAllPos()) + .setAvailable(mAppliedFilterViewModel.getAvailablePos()) + .setOnFilterApplied(mAppliedFilterViewModel::setPosFilter) + .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())) + .filter(mAppliedFilterViewModel.getCurrentPosPredicate().get() == null ? + x -> false : + mAppliedFilterViewModel.getCurrentPosPredicate().get()) + .map(x -> x.getMtbAart().getPosizione()) + .toList()); } if (!filterLayoutView.isAdded()) @@ -373,9 +369,6 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta } private void refreshList() { - //this.onLoadingStarted(); - - //new Thread(() -> { runOnUiThread(() -> { List tmpList; @@ -393,7 +386,6 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta this.mAccettazioneMutableData.addAll(list); this.noItemsToPick.set(!isThereAnyItemToPick(tmpList)); - //this.onLoadingEnded(); }); } @@ -402,21 +394,11 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta .filter(x -> !x.isHidden() && UtilityBigDecimal.greaterThan(x.getSitArtOrdDTO().getQtaDaEvadere(), BigDecimal.ZERO)) .toList(); - List sortedList = null; - - switch (mCurrentOrderBy) { - case COD_ART_FOR: - sortedList = convertDataModelToListModel__CodArtForn(tmpList); - break; - case DESCR_ART: - sortedList = convertDataModelToListModel__DescrArt(tmpList); - break; - case RAG_SOC_COM: - sortedList = convertDataModelToListModel__RagSocCom(tmpList); - break; - } - - return sortedList; + return switch (mCurrentOrderBy) { + case COD_ART_FOR -> convertDataModelToListModel__CodArtForn(tmpList); + case DESCR_ART -> convertDataModelToListModel__DescrArt(tmpList); + case RAG_SOC_COM -> convertDataModelToListModel__RagSocCom(tmpList); + }; } private List convertDataModelToListModel__CodArtForn(List dataList) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java index b084a63a..9f6c688b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java @@ -183,7 +183,13 @@ public class RettificaGiacenzeViewModel { mRettificaGiacenzeRESTConsumer.searchArtForn(codAlis, queryText, listaArts -> { this.sendOnLoadingEnded(); - List mtbAarts = Stream.of(listaArts).map(x -> (MtbAart) x.getMtbAart()).toList(); + List mtbAarts = null; + + if (listaArts != null) + mtbAarts = Stream.of(listaArts) + .map(x -> (MtbAart) x.getMtbAart()) + .toList(); + dispatchArts(mtbAarts); }, this::sendError); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartRequestDTO.java new file mode 100644 index 00000000..f823ad5a --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartRequestDTO.java @@ -0,0 +1,15 @@ +package it.integry.integrywmsnative.gest.rettifica_giacenze.dto; + +public class SearchArticoloByBarcodeOrCodMartRequestDTO { + + private String codMartOrBarcode; + + public String getCodMartOrBarcode() { + return codMartOrBarcode; + } + + public SearchArticoloByBarcodeOrCodMartRequestDTO setCodMartOrBarcode(String codMartOrBarcode) { + this.codMartOrBarcode = codMartOrBarcode; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneRequestDTO.java new file mode 100644 index 00000000..f0930080 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneRequestDTO.java @@ -0,0 +1,27 @@ +package it.integry.integrywmsnative.gest.rettifica_giacenze.dto; + +public class SearchArticoloByCodArtFornOrDescrizioneRequestDTO { + + private String codAlis; + + private String codArtFornOrDescrizione; + + + public String getCodAlis() { + return codAlis; + } + + public SearchArticoloByCodArtFornOrDescrizioneRequestDTO setCodAlis(String codAlis) { + this.codAlis = codAlis; + return this; + } + + public String getCodArtFornOrDescrizione() { + return codArtFornOrDescrizione; + } + + public SearchArticoloByCodArtFornOrDescrizioneRequestDTO setCodArtFornOrDescrizione(String codArtFornOrDescrizione) { + this.codArtFornOrDescrizione = codArtFornOrDescrizione; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java index 891d04bd..a08054f6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java @@ -19,7 +19,9 @@ import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer; import it.integry.integrywmsnative.core.rest.model.SaveDocFromPickingRequestDTO; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO; +import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartRequestDTO; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartResponseDTO; +import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneRequestDTO; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneResponseDTO; import retrofit2.Call; import retrofit2.Callback; @@ -48,7 +50,9 @@ public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer { public void searchArtForn(String codAlis, String codArtForOrDescr, RunnableArgs> onComplete, RunnableArgs onError) { final RettificaGiacenzeRESTConsumerService service = RESTBuilder.getService(RettificaGiacenzeRESTConsumerService.class); - service.searchByCodArtFornOrDescrizione(codAlis, codArtForOrDescr) + service.searchByCodArtFornOrDescrizione(new SearchArticoloByCodArtFornOrDescrizioneRequestDTO() + .setCodAlis(codAlis) + .setCodArtFornOrDescrizione(codArtForOrDescr)) .enqueue(new Callback<>() { @Override public void onResponse(Call>> call, @@ -69,7 +73,8 @@ public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer { public void searchArtInt(String codMartOrBarcodeOrDescr, RunnableArgs> onComplete, RunnableArgs onError) { final RettificaGiacenzeRESTConsumerService service = RESTBuilder.getService(RettificaGiacenzeRESTConsumerService.class); - service.searchByCodMartOrBarcode(codMartOrBarcodeOrDescr) + service.searchByCodMartOrBarcode(new SearchArticoloByBarcodeOrCodMartRequestDTO() + .setCodMartOrBarcode(codMartOrBarcodeOrDescr)) .enqueue(new Callback<>() { @Override public void onResponse(Call>> call, diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java index 9e08eea8..499cc387 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java @@ -4,24 +4,24 @@ import java.util.List; import it.integry.integrywmsnative.core.rest.model.SaveDocFromPickingRequestDTO; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; +import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartRequestDTO; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartResponseDTO; +import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneRequestDTO; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneResponseDTO; import retrofit2.Call; import retrofit2.http.Body; -import retrofit2.http.GET; import retrofit2.http.POST; -import retrofit2.http.Query; public interface RettificaGiacenzeRESTConsumerService { - @GET("wms/articolo/searchByCodArtFornOrDescrizione") + @POST("wms/articolo/searchByCodArtFornOrDescrizione") Call>> searchByCodArtFornOrDescrizione( - @Query("codAlis") String codAlis, - @Query("codArtFornOrDescrizione") String codMartOrBarcode); + @Body SearchArticoloByCodArtFornOrDescrizioneRequestDTO searchArticoloByCodArtFornOrDescrizioneRequest); - @GET("wms/articolo/searchByCodMartOrBarcode") - Call>> searchByCodMartOrBarcode(@Query("codMartOrBarcode") String codMartOrBarcode); + @POST("wms/articolo/searchByCodMartOrBarcode") + Call>> searchByCodMartOrBarcode( + @Body SearchArticoloByBarcodeOrCodMartRequestDTO searchArticoloByBarcodeOrCodMartRequest); @POST("saveDocFromPickingPvm") Call> saveDocFromPickingPvm(@Body SaveDocFromPickingRequestDTO saveDocFromPickingRequestDTO); From 1372e831f790fdad5a45658fd5d95c31dae966eb Mon Sep 17 00:00:00 2001 From: ValerioC Date: Wed, 5 Jul 2023 13:29:24 +0200 Subject: [PATCH 15/20] [CARELLI - INVENTARIO] - incrementato timeout salvataggio inventario --- .../core/rest/consumers/InventarioRESTConsumer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumer.java index 796f1d6f..10fb6f71 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumer.java @@ -70,7 +70,7 @@ public class InventarioRESTConsumer extends _BaseRESTConsumer { var request = new InsertInventarioRequestDTO() .setMtbInvent(inventarioToInsert); - var inventarioRESTConsumerService = RESTBuilder.getService(InventarioRESTConsumerService.class, 120); + var inventarioRESTConsumerService = RESTBuilder.getService(InventarioRESTConsumerService.class, 300); inventarioRESTConsumerService .insert(inventarioToInsert.getIdInventario(), request) .enqueue(new Callback<>() { From df63fbe4af682a9167ea2264a4fb73d684bb7b45 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 5 Jul 2023 18:04:13 +0200 Subject: [PATCH 16/20] In rientro merce rimossi tutti gli ordini con stato = PROGRAMMATO --- .../ProdRientroMerceViewModel.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceViewModel.java index 57df812f..cd1ba4f9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceViewModel.java @@ -2,6 +2,8 @@ package it.integry.integrywmsnative.gest.prod_rientro_merce; import androidx.lifecycle.MutableLiveData; +import com.annimon.stream.Stream; + import java.util.List; import javax.inject.Inject; @@ -11,6 +13,7 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.IOrdersLo import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; +import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneStatoEnum; import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException; public class ProdRientroMerceViewModel { @@ -32,7 +35,14 @@ public class ProdRientroMerceViewModel { String codAnag = SettingsManager.iDB().getFilterFornitoreProd(); this.mMesRESTConsumer.getOrdiniLavorazione("I", null, codAnag, ordiniLavorazioneList -> { - this.mOrdiniLavorazioneAperti.postValue(ordiniLavorazioneList); + List filteredList = null; + + if(ordiniLavorazioneList != null) + filteredList = Stream.of(ordiniLavorazioneList) + .filter(x -> x.getStatoEnum() != OrdineLavorazioneStatoEnum.PROGRAMMATO) + .toList(); + + this.mOrdiniLavorazioneAperti.postValue(filteredList); this.sendOnOrdersLoadingEnded(); }, ex -> this.sendError(new OrdersLoadException(ex))); } From 031cbc8d0a1ac02215f2bba8455b5e61020738c6 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 11 Jul 2023 09:28:44 +0200 Subject: [PATCH 17/20] IDE --- .idea/deploymentTargetDropDown.xml | 10 ++++++++++ .idea/migrations.xml | 10 ++++++++++ 2 files changed, 20 insertions(+) create mode 100644 .idea/deploymentTargetDropDown.xml create mode 100644 .idea/migrations.xml diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml new file mode 100644 index 00000000..0c0c3383 --- /dev/null +++ b/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/migrations.xml b/.idea/migrations.xml new file mode 100644 index 00000000..f8051a6f --- /dev/null +++ b/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file From 9c86598f0306007ac489815925ea8dc0638e3565 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 11 Jul 2023 09:29:45 +0200 Subject: [PATCH 18/20] -> v1.34.04 (388) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f92c2109..86dfa2ba 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 387 - def appVersionName = '1.34.03' + def appVersionCode = 388 + def appVersionName = '1.34.04' signingConfigs { release { From ff128a1de26200745390acbae23454bf8e60a9f8 Mon Sep 17 00:00:00 2001 From: ValerioC Date: Wed, 19 Jul 2023 13:13:20 +0200 Subject: [PATCH 19/20] [LICOR] aggiunto controllo su dataconsegna null in filtro per data consegna ordini spedizione --- .../filters/VenditaFiltroOrdiniViewModel.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/VenditaFiltroOrdiniViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/VenditaFiltroOrdiniViewModel.java index 96b16257..25576357 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/VenditaFiltroOrdiniViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/VenditaFiltroOrdiniViewModel.java @@ -107,7 +107,7 @@ public class VenditaFiltroOrdiniViewModel { if (dataConsegna == null) currentDataConsPredicate.set(null); else { - currentDataConsPredicate.set(o -> DateUtils.isSameDay(o.getDataConsD(), dataConsegna)); + currentDataConsPredicate.set(o -> o.getDataConsD() != null && DateUtils.isSameDay(o.getDataConsD(), dataConsegna)); } } @@ -137,8 +137,7 @@ public class VenditaFiltroOrdiniViewModel { if (mtbGrupList == null || mtbGrupList.isEmpty()) { currentGruppoMercPredicate.set(null); this.selectedMtbGrup = new ArrayList<>(); - } - else { + } else { this.selectedMtbGrup = mtbGrupList; var mtbGrups = Stream.of(mtbGrupList).map(MtbGrup::getCodMgrp).toList(); currentGruppoMercPredicate.set(o -> Stream.of(o.getAvailableClassMerc()) @@ -693,6 +692,7 @@ public class VenditaFiltroOrdiniViewModel { .sortBy(JtbComt::getCodJcom) .toList(); } + public List getAvailableCommesse(List commesseFullList) { if (currentIdViaggioPredicate.get() == null && From bc9016cf93ca14c80e3a25b7d49c8da1f393e370 Mon Sep 17 00:00:00 2001 From: ValerioC Date: Wed, 19 Jul 2023 13:14:15 +0200 Subject: [PATCH 20/20] -> v1.34.05 (389) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 86dfa2ba..1075de5e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 388 - def appVersionName = '1.34.04' + def appVersionCode = 389 + def appVersionName = '1.34.05' signingConfigs { release {