From 7403ac0a2deb283261408285ab34cd7e599e8d11 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 4 Sep 2019 17:53:24 +0200 Subject: [PATCH 1/5] Implementato controllo su stato partite di magazzino in fase di picking Spedizione --- .../integrywmsnative/core/model/MtbColr.java | 12 + .../core/model/MtbPartitaMag.java | 240 ++++++++++++++++++ .../gest/vendita/dto/PickingObjectDTO.java | 44 ++-- .../VenditaOrdineInevasoViewModel.java | 36 ++- app/src/main/res/values-it/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 6 files changed, 302 insertions(+), 34 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/model/MtbPartitaMag.java diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java index 705ef07c..6c95fdae 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java @@ -49,6 +49,8 @@ public class MtbColr extends EntityBase implements Parcelable { private MtbAart mtbAart; + private MtbPartitaMag rifPartitaMag; + public MtbColr() { type = "mtb_colr"; } @@ -564,4 +566,14 @@ public class MtbColr extends EntityBase implements Parcelable { this.mtbAart = mtbAart; return this; } + + + public MtbPartitaMag getRifPartitaMag() { + return rifPartitaMag; + } + + public MtbColr setRifPartitaMag(MtbPartitaMag rifPartitaMag) { + this.rifPartitaMag = rifPartitaMag; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbPartitaMag.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbPartitaMag.java new file mode 100644 index 00000000..d54a04a2 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbPartitaMag.java @@ -0,0 +1,240 @@ +package it.integry.integrywmsnative.core.model; + +import java.math.BigDecimal; +import java.util.Date; + +import it.integry.integrywmsnative.core.utility.UtilityDate; + +public class MtbPartitaMag { + private String codMart; + + private String partitaMag; + private String descrizione; + private String dataIns; + private String dataScad; + private Integer scelta; + private BigDecimal costoUntUmMag; + private BigDecimal valUntUmMag; + private BigDecimal taraCnfKg; + private BigDecimal qtaCnf; + private String flagImballoArendere; + private String flagStato; + private String codDiviCont; + private BigDecimal cambioDiviCont; + private String barcode; + private String note; + private BigDecimal rapConv2; + private BigDecimal rapConv3; + private String posizione; + private String dataAggPrz; + private String partitaMagSec; + private BigDecimal qtaAttesa; + + + public String getCodMart() { + return codMart; + } + + public MtbPartitaMag setCodMart(String codMart) { + this.codMart = codMart; + return this; + } + + public String getPartitaMag() { + return partitaMag; + } + + public MtbPartitaMag setPartitaMag(String partitaMag) { + this.partitaMag = partitaMag; + return this; + } + + public String getDescrizione() { + return descrizione; + } + + public MtbPartitaMag setDescrizione(String descrizione) { + this.descrizione = descrizione; + return this; + } + + public String getDataIns() { + return dataIns; + } + + public MtbPartitaMag setDataIns(String dataIns) { + this.dataIns = dataIns; + return this; + } + + public String getDataScadS() { + return dataScad; + } + + public Date getDataScadD() { + return UtilityDate.recognizeDateWithExceptionHandler(getDataScadS()); + } + + public MtbPartitaMag setDataScad(String dataScad) { + this.dataScad = dataScad; + return this; + } + + public MtbPartitaMag setDataScad(Date dataScad) { + this.dataScad = UtilityDate.formatDate(dataScad, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH); + return this; + } + + public Integer getScelta() { + return scelta; + } + + public MtbPartitaMag setScelta(Integer scelta) { + this.scelta = scelta; + return this; + } + + public BigDecimal getCostoUntUmMag() { + return costoUntUmMag; + } + + public MtbPartitaMag setCostoUntUmMag(BigDecimal costoUntUmMag) { + this.costoUntUmMag = costoUntUmMag; + return this; + } + + public BigDecimal getValUntUmMag() { + return valUntUmMag; + } + + public MtbPartitaMag setValUntUmMag(BigDecimal valUntUmMag) { + this.valUntUmMag = valUntUmMag; + return this; + } + + public BigDecimal getTaraCnfKg() { + return taraCnfKg; + } + + public MtbPartitaMag setTaraCnfKg(BigDecimal taraCnfKg) { + this.taraCnfKg = taraCnfKg; + return this; + } + + public BigDecimal getQtaCnf() { + return qtaCnf; + } + + public MtbPartitaMag setQtaCnf(BigDecimal qtaCnf) { + this.qtaCnf = qtaCnf; + return this; + } + + public String getFlagImballoArendere() { + return flagImballoArendere; + } + + public MtbPartitaMag setFlagImballoArendere(String flagImballoArendere) { + this.flagImballoArendere = flagImballoArendere; + return this; + } + + public String getFlagStato() { + return flagStato; + } + + public MtbPartitaMag setFlagStato(String flagStato) { + this.flagStato = flagStato; + return this; + } + + public String getCodDiviCont() { + return codDiviCont; + } + + public MtbPartitaMag setCodDiviCont(String codDiviCont) { + this.codDiviCont = codDiviCont; + return this; + } + + public BigDecimal getCambioDiviCont() { + return cambioDiviCont; + } + + public MtbPartitaMag setCambioDiviCont(BigDecimal cambioDiviCont) { + this.cambioDiviCont = cambioDiviCont; + return this; + } + + public String getBarcode() { + return barcode; + } + + public MtbPartitaMag setBarcode(String barcode) { + this.barcode = barcode; + return this; + } + + public String getNote() { + return note; + } + + public MtbPartitaMag setNote(String note) { + this.note = note; + return this; + } + + public BigDecimal getRapConv2() { + return rapConv2; + } + + public MtbPartitaMag setRapConv2(BigDecimal rapConv2) { + this.rapConv2 = rapConv2; + return this; + } + + public BigDecimal getRapConv3() { + return rapConv3; + } + + public MtbPartitaMag setRapConv3(BigDecimal rapConv3) { + this.rapConv3 = rapConv3; + return this; + } + + public String getPosizione() { + return posizione; + } + + public MtbPartitaMag setPosizione(String posizione) { + this.posizione = posizione; + return this; + } + + public String getDataAggPrz() { + return dataAggPrz; + } + + public MtbPartitaMag setDataAggPrz(String dataAggPrz) { + this.dataAggPrz = dataAggPrz; + return this; + } + + public String getPartitaMagSec() { + return partitaMagSec; + } + + public MtbPartitaMag setPartitaMagSec(String partitaMagSec) { + this.partitaMagSec = partitaMagSec; + return this; + } + + public BigDecimal getQtaAttesa() { + return qtaAttesa; + } + + public MtbPartitaMag setQtaAttesa(BigDecimal qtaAttesa) { + this.qtaAttesa = qtaAttesa; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java index f10199f1..ecca57a8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java @@ -7,6 +7,7 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; +import it.integry.integrywmsnative.core.model.MtbPartitaMag; import it.integry.integrywmsnative.core.rest.model.Ean128Model; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbColr; @@ -483,22 +484,11 @@ public class PickingObjectDTO implements Parcelable { } public static class PickData { - private String batchLot; private BigDecimal qtaTot; private BigDecimal qtaCnf; private BigDecimal numCnf; - private Date dataScad; private MtbColt sourceMtbColt; - - - public String getBatchLot() { - return batchLot; - } - - public PickData setBatchLot(String batchLot) { - this.batchLot = batchLot; - return this; - } + private MtbPartitaMag mtbPartitaMag; public BigDecimal getQtaTot() { return qtaTot; @@ -527,15 +517,6 @@ public class PickingObjectDTO implements Parcelable { return this; } - public Date getDataScad() { - return dataScad; - } - - public PickData setDataScad(Date dataScad) { - this.dataScad = dataScad; - return this; - } - public MtbColt getSourceMtbColt() { return sourceMtbColt; } @@ -545,21 +526,32 @@ public class PickingObjectDTO implements Parcelable { return this; } + public MtbPartitaMag getMtbPartitaMag() { + return mtbPartitaMag; + } + + public PickData setMtbPartitaMag(MtbPartitaMag mtbPartitaMag) { + this.mtbPartitaMag = mtbPartitaMag; + return this; + } + public static PickData fromEan128(Ean128Model ean128Model) { PickingObjectDTO.PickData pickData = null; if(ean128Model != null){ pickData = new PickingObjectDTO.PickData(); + + MtbPartitaMag mtbPartitaMag = new MtbPartitaMag(); if(!UtilityString.isNullOrEmpty(ean128Model.BatchLot)) { - pickData.setBatchLot(ean128Model.BatchLot); + mtbPartitaMag.setPartitaMag(ean128Model.BatchLot); } try { if(!UtilityString.isNullOrEmpty(ean128Model.BestBefore)){ - pickData.setDataScad(UtilityDate.recognizeDate(ean128Model.BestBefore)); + mtbPartitaMag.setDataScad(UtilityDate.recognizeDate(ean128Model.BestBefore)); } else if(!UtilityString.isNullOrEmpty(ean128Model.Expiry)) { - pickData.setDataScad(UtilityDate.recognizeDate(ean128Model.Expiry)); + mtbPartitaMag.setDataScad(UtilityDate.recognizeDate(ean128Model.Expiry)); } } catch (Exception e) { @@ -567,6 +559,10 @@ public class PickingObjectDTO implements Parcelable { } + if(mtbPartitaMag.getPartitaMag() != null && mtbPartitaMag.getDataScadD() != null) { + pickData.setMtbPartitaMag(mtbPartitaMag); + } + if(ean128Model.Count != null && ean128Model.Count > 0) { //if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) { pickData.setNumCnf(new BigDecimal(ean128Model.Count)); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java index e907dd02..6764563d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java @@ -689,8 +689,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO MtbColr matchRow = matchWithPartitaMag.get(k); PickingObjectDTO.PickData pickData = new PickingObjectDTO.PickData() - .setBatchLot(matchRow.getPartitaMag()) - .setDataScad(matchRow.getDataScadPartitaD()) + .setMtbPartitaMag(matchRow.getRifPartitaMag()) .setNumCnf(matchRow.getNumCnf()) .setQtaCnf(matchRow.getQtaCnf()) .setQtaTot(matchRow.getQtaCol()) @@ -713,8 +712,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO MtbColr matchRow = matchWithColloRow.get(k); PickingObjectDTO.PickData pickData = new PickingObjectDTO.PickData() - .setBatchLot(matchRow.getPartitaMag()) - .setDataScad(matchRow.getDataScadPartitaD()) + .setMtbPartitaMag(matchRow.getRifPartitaMag()) .setNumCnf(matchRow.getNumCnf()) .setQtaCnf(matchRow.getQtaCnf()) .setQtaTot(matchRow.getQtaCol()) @@ -753,7 +751,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO if(SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV()) { List matchWithPartitaMag = Stream.of(matchPickingObject) .filter(x -> x.getCodMart().equalsIgnoreCase(mtbAart.getCodMart()) && - (pickData != null && Objects.equals(x.getPartitaMag(), pickData.getBatchLot()))).toList(); + (pickData != null && Objects.equals(x.getPartitaMag(), pickData.getMtbPartitaMag().getPartitaMag()))).toList(); matchPickingObject = matchWithPartitaMag; @@ -1122,18 +1120,22 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO .setCanPartitaMagBeChanged(item.isDeactivated()) .setMaxQta(qtaDisponibile); + boolean batchLotEnabled = true; + if(item.getTempPickData() != null) { PickingObjectDTO.PickData tmpPickData = item.getTempPickData(); - if(!UtilityString.isNullOrEmpty(tmpPickData.getBatchLot())) { - dto.setBatchLot(tmpPickData.getBatchLot()); + if(!UtilityString.isNullOrEmpty(tmpPickData.getMtbPartitaMag().getPartitaMag())) { + dto.setBatchLot(tmpPickData.getMtbPartitaMag().getPartitaMag()); } - if(tmpPickData.getDataScad() != null){ - dto.setDataScad(tmpPickData.getDataScad()); + if(tmpPickData.getMtbPartitaMag().getDataScadD() != null){ + dto.setDataScad(tmpPickData.getMtbPartitaMag().getDataScadD()); dto.setShouldAskDataScad(true); } + batchLotEnabled = tmpPickData.getMtbPartitaMag().getFlagStato().equalsIgnoreCase("A"); + boolean useQtaDaEvadere; if(tmpPickData.getQtaTot() != null) { @@ -1165,7 +1167,14 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO } boolean canOverflowQuantity = SettingsManager.iDB().isFlagCanAddExtraQuantitySpedizione(); - DialogInputQuantity.makeBase(mActivity, dto, canOverflowQuantity, (quantityDTO, closeUL) -> onOrdineRowDispatched(item, quantityDTO, closeUL), null).show(); + + if(!batchLotEnabled) { + this.showBatchLotDisabledWarning(dto.getBatchLot(), () -> { + DialogInputQuantity.makeBase(mActivity, dto, canOverflowQuantity, (quantityDTO, closeUL) -> onOrdineRowDispatched(item, quantityDTO, closeUL), null).show(); + }, null); + } else { + DialogInputQuantity.makeBase(mActivity, dto, canOverflowQuantity, (quantityDTO, closeUL) -> onOrdineRowDispatched(item, quantityDTO, closeUL), null).show(); + } } } @@ -1356,4 +1365,11 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO }); } + + private void showBatchLotDisabledWarning(String batchLot, Runnable onAccepted, Runnable onRejected) { + + DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(String.format(mActivity.getText(R.string.batch_lot_not_enabled).toString(), batchLot)), null, onAccepted, onRejected).show(); + + } + } diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index e7e6732c..da5e5ddf 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -248,4 +248,6 @@ Spedito il %s Consegnato il %s + + Il lotto %s non รจ attivo. Continuare? \ 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 bae7232c..6fde5351 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -254,4 +254,6 @@ Shipped %s Delivered on %s + Batch lot %s is inactive. Continue? + From 565b4654624b13ef1630fee938e3a2e51e37e6b4 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 12 Sep 2019 11:47:23 +0200 Subject: [PATCH 2/5] [FEAT] Rimosso collo L in fase di accettazione [BUG] Sistemato dialog di pick merce in fase di versamento --- .idea/caches/build_file_checksums.ser | Bin 964 -> 964 bytes .idea/runConfigurations/app.xml | 2 +- .../integrywmsnative/core/model/MtbColr.java | 26 ++ .../integrywmsnative/core/model/MtbColt.java | 2 +- .../consumers/ColliMagazzinoRESTConsumer.java | 10 + ...oneOrdineAccettazioneInevasoViewModel.java | 226 ++++-------------- .../picking_resi/PickingResiActivity.java | 13 +- .../viewmodel/RettificaGiacenzeViewModel.java | 16 +- .../UltimeConsegneFornitoreRESTConsumer.java | 4 +- .../viewmodel/VersamentoMerceViewModel.java | 11 +- .../DialogChooseArtsFromListaArts.java | 36 ++- ...hoose_arts_from_lista_arts__item_model.xml | 2 +- ...log_choose_arts_from_lista_arts_layout.xml | 107 +++++---- 13 files changed, 189 insertions(+), 266 deletions(-) diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 3149b37b9ae67e3cc8f02a3b094d3d70bb8c6dc2..a1812ae62b4c868fe823f2d7467d0f44b0d96590 100644 GIT binary patch delta 16 YcmX@YeuRC(bk|7>=8K|=V&kk06Gr_Y5)KL diff --git a/.idea/runConfigurations/app.xml b/.idea/runConfigurations/app.xml index 2845a8ea..52f57fad 100644 --- a/.idea/runConfigurations/app.xml +++ b/.idea/runConfigurations/app.xml @@ -6,7 +6,7 @@