From 4e36053ba6e28d32b37678dd0b8b24c55da070d8 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 19 Jan 2021 10:06:13 +0100 Subject: [PATCH] Rimosso definitivamente DialogInputQuantity. Fix su scansione barcodes posizioni. --- app/build.gradle | 4 +- .../rest/consumers/PosizioniRESTConsumer.java | 2 +- .../ProdRecuperoMaterialeViewModel.java | 86 +- .../RettificaGiacenzeViewModel.java | 219 +++-- .../viewmodel/VersamentoMerceViewModel.java | 10 + .../dialogs/DialogAskLivelloPosizione.java | 3 + .../input_quantity/DialogInputQuantity.java | 755 ------------------ .../dialogs/input_quantity/QuantityDTO.java | 42 - .../DialogScanOrCreateLU.java | 2 +- .../layout/dialog_input_quantity_articolo.xml | 425 ---------- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 12 files changed, 191 insertions(+), 1361 deletions(-) delete mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java delete mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/QuantityDTO.java delete mode 100644 app/src/main/res/layout/dialog_input_quantity_articolo.xml diff --git a/app/build.gradle b/app/build.gradle index 3c966238..0885a218 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -91,7 +91,7 @@ dependencies { //Firebase // Import the Firebase BoM - implementation platform('com.google.firebase:firebase-bom:26.0.0') + implementation platform('com.google.firebase:firebase-bom:26.3.0') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-core' implementation 'com.google.firebase:firebase-crash' @@ -102,7 +102,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'com.google.android.material:material:1.3.0-alpha04' + implementation 'com.google.android.material:material:1.3.0-rc01' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.1.0' diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PosizioniRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PosizioniRESTConsumer.java index 9309145a..5d650b95 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PosizioniRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PosizioniRESTConsumer.java @@ -44,7 +44,7 @@ public class PosizioniRESTConsumer extends _BaseRESTConsumer{ public static void getBancaliInPosizione(MtbDepoPosizione mtbDepoPosizione, RunnableArgs> onComplete, RunnableArgs onFailed) { - String sql = "SELECT * FROM mtb_colt WHERE cod_mdep = " + UtilityDB.valueToString(mtbDepoPosizione.getCodMdep()) + " AND posizione = " + UtilityDB.valueToString(mtbDepoPosizione.getPosizione()); + String sql = "SELECT * FROM mtb_colt WHERE segno > 0 AND cod_mdep = " + UtilityDB.valueToString(mtbDepoPosizione.getCodMdep()) + " AND posizione = " + UtilityDB.valueToString(mtbDepoPosizione.getPosizione()); Type typeOfObjectsList = new TypeToken>() {}.getType(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java index adf77b5d..bcd4d044 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java @@ -1,12 +1,11 @@ package it.integry.integrywmsnative.gest.prod_recupero_materiale.viewmodel; -import android.app.Activity; import android.app.Dialog; -import android.content.Context; import android.text.SpannableString; import androidx.databinding.ObservableArrayList; import androidx.databinding.ObservableField; +import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.LinearLayoutManager; import com.annimon.stream.Stream; @@ -18,6 +17,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; +import it.integry.barcode_base_android_library.model.BarcodeScanDTO; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; @@ -31,6 +31,7 @@ import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsume import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.settings.SettingsManager; 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.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityProgress; @@ -39,15 +40,16 @@ import it.integry.integrywmsnative.databinding.FragmentProdRecuperoMaterialeBind import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.HistoryULsListAdapter; import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.ProdRecuperoMaterialeHelper; import it.integry.integrywmsnative.gest.prod_recupero_materiale.dto.HistoryVersamentoProdULDTO; +import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; import it.integry.integrywmsnative.view.dialogs.DialogCommon; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; -import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; +import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2; +import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU; -import it.integry.barcode_base_android_library.model.BarcodeScanDTO; public class ProdRecuperoMaterialeViewModel { - private Context mContext; + private FragmentActivity mContext; private FragmentProdRecuperoMaterialeBinding mBinding; private ProdRecuperoMaterialeHelper mHelper; @@ -61,7 +63,7 @@ public class ProdRecuperoMaterialeViewModel { private int barcodeScannerIstanceID = -1; - public void init(Activity context, FragmentProdRecuperoMaterialeBinding binding, ProdRecuperoMaterialeHelper helper, Runnable onRecuperoCompleted) { + public void init(FragmentActivity context, FragmentProdRecuperoMaterialeBinding binding, ProdRecuperoMaterialeHelper helper, Runnable onRecuperoCompleted) { mContext = context; mBinding = binding; mHelper = helper; @@ -152,32 +154,72 @@ public class ProdRecuperoMaterialeViewModel { } +// private void dispatchItem(HistoryVersamentoProdULDTO item, MtbColt sourceMtbColt, Dialog dialogProgress) { +// BigDecimal qtaDaEvadere = BigDecimal.ZERO; +// +// qtaDaEvadere = qtaDaEvadere.add(item.getQtaCol()); +// +// +// DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO() +// .setBatchLot(item.getPartitaMag()) +// .setQtaDaEvadere(null) +// .setQtaOrd(null) +// .setMtbAart(item.getMtbAart()) +// .setCanPartitaMagBeChanged(false) +// .setNumCnf(1) +// .setQtaCnf(item.getQtaCnf()) +// .setQtaTot(item.getQtaCnf()) +// .setMaxQta(qtaDaEvadere) +// .setQtaDisponibile(qtaDaEvadere); +// +// DialogInputQuantity.makeBase(mContext, dto, false, quantity -> { +// onItemDispatched(item, quantity.qtaTot.getBigDecimal(), sourceMtbColt, dialogProgress); +// }, () -> { +// if (dialogProgress != null) dialogProgress.dismiss(); +// }).show(); +// } + + private void dispatchItem(HistoryVersamentoProdULDTO item, MtbColt sourceMtbColt, Dialog dialogProgress) { BigDecimal qtaDaEvadere = BigDecimal.ZERO; + BigDecimal numCnfDaEvadere = BigDecimal.ZERO; qtaDaEvadere = qtaDaEvadere.add(item.getQtaCol()); + if(!UtilityBigDecimal.equalsTo(qtaDaEvadere, BigDecimal.ZERO)) { + numCnfDaEvadere = UtilityBigDecimal.divide(qtaDaEvadere, item.getQtaCnf()); + } - DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO() - .setBatchLot(item.getPartitaMag()) - .setQtaDaEvadere(null) - .setQtaOrd(null) + DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO() .setMtbAart(item.getMtbAart()) - .setCanPartitaMagBeChanged(false) - .setNumCnf(1) - .setQtaCnf(item.getQtaCnf()) - .setQtaTot(item.getQtaCnf()) - .setMaxQta(qtaDaEvadere) - .setQtaDisponibile(qtaDaEvadere); + .setInitialNumCnf(BigDecimal.ONE) + .setInitialQtaCnf(item.getQtaCnf()) + .setInitialQtaTot(item.getQtaCnf()) - DialogInputQuantity.makeBase(mContext, dto, false, quantity -> { - onItemDispatched(item, quantity.qtaTot.getBigDecimal(), sourceMtbColt, dialogProgress); - }, () -> { - if (dialogProgress != null) dialogProgress.dismiss(); - }).show(); + .setTotalQtaAvailable(qtaDaEvadere) + .setTotalNumCnfAvailable(numCnfDaEvadere) + .setQtaCnfAvailable(item.getQtaCnf()) + .setPartitaMag(item.getPartitaMag()) +// .setDataScad(item.getDa) + .setCanOverflowOrderQuantity(false) + .setCanLUBeClosed(false); + + DialogInputQuantityV2 + .newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> { + PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() + .setNumCnf(resultDTO.getNumCnf()) + .setQtaCnf(resultDTO.getQtaCnf()) + .setQtaTot(resultDTO.getQtaTot()) + .setPartitaMag(resultDTO.getPartitaMag()) + .setDataScad(resultDTO.getDataScad()); + + onItemDispatched(item, resultDTO.getQtaTot(), sourceMtbColt, dialogProgress); + }, () -> { + if (dialogProgress != null) dialogProgress.dismiss(); + }) + .show(mContext.getSupportFragmentManager(), "tag"); } - private void onItemDispatched(HistoryVersamentoProdULDTO item, BigDecimal quantity, MtbColt sourceMtbColt, Dialog progress) { if (progress == null) { 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 9d67afd5..ef2f7c3d 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 @@ -1,7 +1,5 @@ package it.integry.integrywmsnative.gest.rettifica_giacenze; -import androidx.databinding.ObservableArrayList; - import com.annimon.stream.Stream; import java.math.BigDecimal; @@ -27,12 +25,12 @@ import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbCols; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbDepoPosizione; +import it.integry.integrywmsnative.core.model.dto.PickDataDTO; import it.integry.integrywmsnative.core.report.ReportManager; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; -import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; import it.integry.integrywmsnative.core.utility.UtilityDate; @@ -40,7 +38,6 @@ import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeRESTConsumer; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO; import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException; -import it.integry.integrywmsnative.core.model.dto.PickDataDTO; import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO; @@ -329,7 +326,7 @@ public class RettificaGiacenzeViewModel { mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); - if (!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) { +// if (!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) { mtbColr .setQtaCol(BigDecimal.ZERO) .setNumCnf(BigDecimal.ZERO) @@ -359,39 +356,39 @@ public class RettificaGiacenzeViewModel { if (shouldCloseLU) closeLU(true, null); }, this::sendError); - } else { - mtbColr - .setQtaCol(qtaTot) - .setQtaCnf(qtaCnf) - .setNumCnf(numCnf); - - MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone(); - cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP); - - cloneMtbColt.setMtbColr(new ObservableArrayList<>()); - - cloneMtbColt.getMtbColr().add(mtbColr); - - mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> { - mtbColr - .setDataCollo(value.getDataColloS()) - .setNumCollo(value.getNumCollo()) - .setGestione(value.getGestione()) - .setSerCollo(value.getSerCollo()) - .setRiga(value.getMtbColr().get(0).getRiga()) - .setUntMis(pickingObjectDTO.getMtbAart().getUntMis()) - .setMtbAart(pickingObjectDTO.getMtbAart()); - - mCurrentMtbColt.getMtbColr().add(mtbColr); - - this.mAnyEditDone = true; - - this.sendOnRowSaved(); - this.sendOnLoadingEnded(); - - if (shouldCloseLU) closeLU(true, null); - }, this::sendError); - } +// } else { +// mtbColr +// .setQtaCol(qtaTot) +// .setQtaCnf(qtaCnf) +// .setNumCnf(numCnf); +// +// MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone(); +// cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP); +// +// cloneMtbColt.setMtbColr(new ObservableArrayList<>()); +// +// cloneMtbColt.getMtbColr().add(mtbColr); +// +// mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> { +// mtbColr +// .setDataCollo(value.getDataColloS()) +// .setNumCollo(value.getNumCollo()) +// .setGestione(value.getGestione()) +// .setSerCollo(value.getSerCollo()) +// .setRiga(value.getMtbColr().get(0).getRiga()) +// .setUntMis(pickingObjectDTO.getMtbAart().getUntMis()) +// .setMtbAart(pickingObjectDTO.getMtbAart()); +// +// mCurrentMtbColt.getMtbColr().add(mtbColr); +// +// this.mAnyEditDone = true; +// +// this.sendOnRowSaved(); +// this.sendOnLoadingEnded(); +// +// if (shouldCloseLU) closeLU(true, null); +// }, this::sendError); +// } } @@ -556,7 +553,7 @@ public class RettificaGiacenzeViewModel { private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) { this.sendOnLoadingStarted(); - if(!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) { +// if(!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) { this.mColliMagazzinoRESTConsumer.creaRettificaCollo( mtbColrToUpdate, @@ -579,46 +576,46 @@ public class RettificaGiacenzeViewModel { this::sendError ); - } else { - - MtbColt mtbColt = new MtbColt() - .setNumCollo(mtbColrToUpdate.getNumCollo()) - .setDataCollo(mtbColrToUpdate.getDataColloS()) - .setSerCollo(mtbColrToUpdate.getSerCollo()) - .setGestione(mtbColrToUpdate.getGestione()) - .setMtbColr(new ObservableArrayList<>()); - mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP); - - final MtbColr mtbColr = (MtbColr) mtbColrToUpdate.clone(); - mtbColr - .setNumCnf(numCnf.subtract(mtbColr.getNumCnf())) - .setQtaCnf(qtaCnf) - .setQtaCol(qtaTot.subtract(mtbColr.getQtaCol())) - .setPartitaMag(partitaMag) - .setDataScadPartita(dataScad) - .setUtente(SettingsManager.i().getUser().getFullname()) - .setCausale(MtbColr.Causale.RETTIFICA) - .setDatetimeRow(UtilityDate.getDateInstance()) - .setOperation(CommonModelConsts.OPERATION.INSERT); - - mtbColt.getMtbColr().add(mtbColr); - - this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> { - - mtbColr.setNumCnf(numCnf) - .setQtaCnf(qtaCnf) - .setQtaCol(qtaTot); - - this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate); - this.mCurrentMtbColt.getMtbColr().add(mtbColr); - - this.mAnyEditDone = true; - - this.sendOnRowSaved(); - this.sendOnLoadingEnded(); - - }, this::sendError); - } +// } else { +// +// MtbColt mtbColt = new MtbColt() +// .setNumCollo(mtbColrToUpdate.getNumCollo()) +// .setDataCollo(mtbColrToUpdate.getDataColloS()) +// .setSerCollo(mtbColrToUpdate.getSerCollo()) +// .setGestione(mtbColrToUpdate.getGestione()) +// .setMtbColr(new ObservableArrayList<>()); +// mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP); +// +// final MtbColr mtbColr = (MtbColr) mtbColrToUpdate.clone(); +// mtbColr +// .setNumCnf(numCnf.subtract(mtbColr.getNumCnf())) +// .setQtaCnf(qtaCnf) +// .setQtaCol(qtaTot.subtract(mtbColr.getQtaCol())) +// .setPartitaMag(partitaMag) +// .setDataScadPartita(dataScad) +// .setUtente(SettingsManager.i().getUser().getFullname()) +// .setCausale(MtbColr.Causale.RETTIFICA) +// .setDatetimeRow(UtilityDate.getDateInstance()) +// .setOperation(CommonModelConsts.OPERATION.INSERT); +// +// mtbColt.getMtbColr().add(mtbColr); +// +// this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> { +// +// mtbColr.setNumCnf(numCnf) +// .setQtaCnf(qtaCnf) +// .setQtaCol(qtaTot); +// +// this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate); +// this.mCurrentMtbColt.getMtbColr().add(mtbColr); +// +// this.mAnyEditDone = true; +// +// this.sendOnRowSaved(); +// this.sendOnLoadingEnded(); +// +// }, this::sendError); +// } } public void deleteRow(MtbColr mtbColrToDelete) { @@ -626,7 +623,7 @@ public class RettificaGiacenzeViewModel { if (shouldDelete) { this.sendOnLoadingStarted(); - if(!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) { +// if(!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) { this.mColliMagazzinoRESTConsumer.creaRettificaCollo( mtbColrToDelete, BigDecimal.ZERO, @@ -638,37 +635,37 @@ public class RettificaGiacenzeViewModel { }, this::sendError ); - } else { - MtbColt mtbColt = new MtbColt() - .setNumCollo(mtbColrToDelete.getNumCollo()) - .setDataCollo(mtbColrToDelete.getDataColloS()) - .setSerCollo(mtbColrToDelete.getSerCollo()) - .setGestione(mtbColrToDelete.getGestione()) - .setMtbColr(new ObservableArrayList<>()); - mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP); - - MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone(); - mtbColr - .setNumCnf(mtbColr.getNumCnf().multiply(new BigDecimal(-1))) - .setQtaCnf(mtbColr.getQtaCnf()) - .setQtaCol(mtbColr.getQtaCol().multiply(new BigDecimal(-1))) - .setPartitaMag(mtbColr.getPartitaMag()) - .setDataScadPartita(mtbColr.getDataScadPartitaD()) - .setUtente(SettingsManager.i().getUser().getFullname()) - .setCausale(MtbColr.Causale.RETTIFICA) - .setDatetimeRow(UtilityDate.getDateInstance()) - .setOperation(CommonModelConsts.OPERATION.INSERT); - - mtbColt.getMtbColr().add(mtbColr); - - this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> { - this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete); - - this.sendOnRowSaved(); - this.sendOnLoadingEnded(); - - }, this::sendError); - } +// } else { +// MtbColt mtbColt = new MtbColt() +// .setNumCollo(mtbColrToDelete.getNumCollo()) +// .setDataCollo(mtbColrToDelete.getDataColloS()) +// .setSerCollo(mtbColrToDelete.getSerCollo()) +// .setGestione(mtbColrToDelete.getGestione()) +// .setMtbColr(new ObservableArrayList<>()); +// mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP); +// +// MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone(); +// mtbColr +// .setNumCnf(mtbColr.getNumCnf().multiply(new BigDecimal(-1))) +// .setQtaCnf(mtbColr.getQtaCnf()) +// .setQtaCol(mtbColr.getQtaCol().multiply(new BigDecimal(-1))) +// .setPartitaMag(mtbColr.getPartitaMag()) +// .setDataScadPartita(mtbColr.getDataScadPartitaD()) +// .setUtente(SettingsManager.i().getUser().getFullname()) +// .setCausale(MtbColr.Causale.RETTIFICA) +// .setDatetimeRow(UtilityDate.getDateInstance()) +// .setOperation(CommonModelConsts.OPERATION.INSERT); +// +// mtbColt.getMtbColr().add(mtbColr); +// +// this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> { +// this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete); +// +// this.sendOnRowSaved(); +// this.sendOnLoadingEnded(); +// +// }, this::sendError); +// } } }); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java index c327d6e1..a455b69d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java @@ -137,6 +137,10 @@ public class VersamentoMerceViewModel { UtilityExceptions.defaultException(mContext, ex, progressDialog); BarcodeManager.enable(); }); + } else { + progressDialog.dismiss(); + BarcodeManager.enable(); + showTooMuchULFound(); } }, ex -> { @@ -148,6 +152,12 @@ public class VersamentoMerceViewModel { } } + private void showTooMuchULFound() { + DialogSimpleMessageHelper.makeWarningDialog(mContext, + new SpannableString(mContext.getResources().getText(R.string.too_much_lu_found_message_in_mono_lu)), + null, null).show(); + } + private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) { BarcodeRESTConsumer.decodeEan128Static(barcodeScanDTO, ean128Model -> { diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java index a9e9b0d9..b2aae41d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java @@ -16,6 +16,7 @@ import com.google.android.material.textfield.TextInputLayout; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.MtbDepoPosizione; +import it.integry.integrywmsnative.core.utility.UtilityDialog; import it.integry.integrywmsnative.core.utility.UtilityFocus; import it.integry.integrywmsnative.core.utility.UtilityPosizione; @@ -55,6 +56,8 @@ public class DialogAskLivelloPosizione { mDialog.setCancelable(false); mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + UtilityDialog.setTo90PercentWidth(mContext, mDialog); + mDialog.setOnDismissListener(dialog -> { if(!completedFLow) onComplete.run(null); }); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java deleted file mode 100644 index 88560468..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java +++ /dev/null @@ -1,755 +0,0 @@ -package it.integry.integrywmsnative.view.dialogs.input_quantity; - -import android.app.DatePickerDialog; -import android.app.Dialog; -import android.content.Context; -import android.content.res.ColorStateList; - -import androidx.databinding.DataBindingUtil; -import androidx.databinding.Observable; - -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.os.Handler; -import com.google.android.material.textfield.TextInputLayout; -import androidx.core.content.ContextCompat; -import androidx.appcompat.widget.AppCompatTextView; -import android.text.Html; -import android.text.SpannableString; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.inputmethod.InputMethodManager; -import android.widget.EditText; - -import org.jetbrains.annotations.NotNull; - -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; - -import it.integry.integrywmsnative.R; -import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; -import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel; -import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; -import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; -import it.integry.integrywmsnative.core.expansion.RunnableArgs; -import it.integry.integrywmsnative.core.expansion.RunnableArgss; -import it.integry.integrywmsnative.core.model.MtbAart; -import it.integry.integrywmsnative.core.utility.UtilityBarcode; -import it.integry.integrywmsnative.core.utility.UtilityDate; -import it.integry.integrywmsnative.core.utility.UtilityExceptions; -import it.integry.integrywmsnative.core.utility.UtilityLogger; -import it.integry.integrywmsnative.core.utility.UtilityNumber; -import it.integry.integrywmsnative.core.utility.UtilityProgress; -import it.integry.integrywmsnative.core.utility.UtilityString; -import it.integry.integrywmsnative.databinding.DialogInputQuantityArticoloBinding; -import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; -import it.integry.barcode_base_android_library.model.BarcodeScanDTO; - -public class DialogInputQuantity { - - public static class DTO { - private MtbAart mtbAart; - private String batchLot; - private BigDecimal qtaDaEvadere; - private BigDecimal qtaDisponibile; - private BigDecimal qtaEvasa; - private BigDecimal qtaOrd; - private BigDecimal qtaTot; - private BigDecimal qtaCnf; - private Integer numCnf; - private BigDecimal maxQta; - private String codArtFor; - private Date dataScad; - private boolean canPartitaMagBeChanged; - private Boolean canDataScadBeChanged; - private Boolean shouldAskDataScad; - - public MtbAart getMtbAart() { - return mtbAart; - } - - public DTO setMtbAart(MtbAart mtbAart) { - this.mtbAart = mtbAart; - return this; - } - - public String getBatchLot() { - return batchLot; - } - - public DTO setBatchLot(String batchLot) { - this.batchLot = batchLot; - return this; - } - - public BigDecimal getQtaDaEvadere() { - return qtaDaEvadere; - } - - public DTO setQtaDaEvadere(BigDecimal qtaDaEvadere) { - this.qtaDaEvadere = qtaDaEvadere; - return this; - } - - public BigDecimal getQtaDisponibile() { - return qtaDisponibile; - } - - public DTO setQtaDisponibile(BigDecimal qtaDisponibile) { - this.qtaDisponibile = qtaDisponibile; - return this; - } - - public BigDecimal getQtaOrd() { - return qtaOrd; - } - - public DTO setQtaOrd(BigDecimal qtaOrd) { - this.qtaOrd = qtaOrd; - return this; - } - - public BigDecimal getQtaTot() { - return qtaTot; - } - - public DTO setQtaTot(BigDecimal qtaTot) { - this.qtaTot = qtaTot; - return this; - } - - public BigDecimal getQtaCnf() { - return qtaCnf; - } - - public DTO setQtaCnf(BigDecimal qtaCnf) { - this.qtaCnf = qtaCnf; - return this; - } - - public Integer getNumCnf() { - return numCnf; - } - - public DTO setNumCnf(Integer numCnf) { - this.numCnf = numCnf; - return this; - } - - public BigDecimal getQtaEvasa() { - return qtaEvasa; - } - - public DTO setQtaEvasa(BigDecimal qtaEvasa) { - this.qtaEvasa = qtaEvasa; - return this; - } - - public BigDecimal getMaxQta() { - return maxQta; - } - - public DTO setMaxQta(BigDecimal maxQta) { - this.maxQta = maxQta; - return this; - } - - public String getCodArtFor() { - return codArtFor; - } - - public DTO setCodArtFor(String codArtFor) { - this.codArtFor = codArtFor; - return this; - } - - public Date getDataScad() { - return dataScad; - } - - public DTO setDataScad(Date dataScad) { - this.dataScad = dataScad; - return this; - } - - public boolean getCanPartitaMagBeChanged() { - return canPartitaMagBeChanged; - } - - public DTO setCanPartitaMagBeChanged(boolean canPartitaMagBeChanged) { - this.canPartitaMagBeChanged = canPartitaMagBeChanged; - return this; - } - - public Boolean isCanDataScadBeChanged() { - return canDataScadBeChanged; - } - - public DTO setCanDataScadBeChanged(boolean canDataScadBeChanged) { - this.canDataScadBeChanged = canDataScadBeChanged; - return this; - } - - public Boolean getShouldAskDataScad() { - return shouldAskDataScad; - } - - public DTO setShouldAskDataScad(Boolean shouldAskDataScad) { - this.shouldAskDataScad = shouldAskDataScad; - return this; - } - } - - private ColorStateList originalColorStateList = null; - - private String scadenzaString = "Scadenza"; - - private Dialog currentDialog; - private Context currentContext; - - private DialogInputQuantityArticoloBinding currentBinding; - - private MtbAart currentMtbAart; - private QuantityDTO currentQuantityDto; - private DTO currentDTO; - - public static Dialog makeBase(final Context context, final DTO dto, boolean canOverflowQuantity, final RunnableArgs dialogCallback, final Runnable onAbort) { - return new DialogInputQuantity(context, dto, canOverflowQuantity, false, (quantityDto, closeUL) -> { - dialogCallback.run(quantityDto); - }, onAbort).currentDialog; - } - - public static Dialog makeBase(final Context context, final DTO dto, boolean canOverflowQuantity, final RunnableArgss dialogCallback, final Runnable onAbort) { - return new DialogInputQuantity(context, dto, canOverflowQuantity, true, dialogCallback, onAbort).currentDialog; - } - - public DialogInputQuantity(@NotNull Context context, @NotNull final DTO dto, boolean canOverflowQuantity, boolean showCloseUL, final RunnableArgss dialogCallback, final Runnable onAbort) { - currentContext = context; - currentMtbAart = dto.getMtbAart(); - currentDTO = dto; - - LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); - currentBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_input_quantity_articolo, null, false); - - final TextInputLayout txlInputBatchLot = currentBinding.inputPartitaMag; - - final TextInputLayout txlInputNumDiCnf = currentBinding.inputNumCnf; - final TextInputLayout txlInputQtaPerCnf = currentBinding.inputQtaCnf; - final TextInputLayout txlInputQtaTot = currentBinding.inputQtaTot; - - txlInputNumDiCnf.getEditText().setSelectAllOnFocus(true); - txlInputQtaPerCnf.getEditText().setSelectAllOnFocus(true); - txlInputQtaTot.getEditText().setSelectAllOnFocus(true); - - - originalColorStateList = txlInputNumDiCnf.getEditText().getTextColors(); - - currentQuantityDto = new QuantityDTO(); - currentQuantityDto.canOverflowQuantity = canOverflowQuantity; - - setupQuantities(dto, currentQuantityDto); - - setupQuantityListener(currentQuantityDto, txlInputNumDiCnf, txlInputQtaPerCnf, txlInputQtaTot); - - currentBinding.setViewmodel(dto); - currentBinding.setQuantityViewModel(currentQuantityDto); - - - currentDialog = new Dialog(context); - currentDialog.setContentView(currentBinding.getRoot()); - - currentDialog.setCanceledOnTouchOutside(false); - currentDialog.setCancelable(false); - currentDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - - currentDialog.setCanceledOnTouchOutside(false); - - currentDialog.setOnShowListener(dialogInterface -> { - - final Handler handler = new Handler(); - handler.postDelayed(() -> { - EditText editTextToFocus; - if(currentQuantityDto.canPartitaMagBeChanged.get()) { - editTextToFocus = txlInputBatchLot.getEditText(); - } else { - editTextToFocus = txlInputNumDiCnf.getEditText(); - } - - - editTextToFocus.requestFocus(); - - InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); - imm.showSoftInput(editTextToFocus, InputMethodManager.SHOW_IMPLICIT); - - }, 100); - - }); - - currentBinding.saveBtn.setOnClickListener(view -> { - onConfirm(context, currentQuantityDto, dialogCallback, false); - currentDialog.dismiss(); - }); - currentBinding.abortBtn.setOnClickListener(view -> { - if(onAbort != null) onAbort.run(); - currentDialog.dismiss(); - }); - - currentBinding.closeLuBtn.setVisibility(showCloseUL ? View.VISIBLE : View.INVISIBLE); - currentBinding.closeLuBtn.setOnClickListener(view -> { - onConfirm(context, currentQuantityDto, dialogCallback, true); - currentDialog.dismiss(); - }); - - initDatePicker(context, currentQuantityDto, currentBinding.getRoot().findViewById(R.id.input_data_scad)); - - setupBarcode(context); - } - - private void setupQuantities(@NotNull DTO dto, QuantityDTO quantityDTO){ - if(dto.getQtaTot() != null) quantityDTO.qtaTot.set(dto.getQtaTot().floatValue()); - if(dto.getMaxQta() != null) quantityDTO.maxQta.set(dto.getMaxQta().floatValue()); - - float qtaDisponibile = dto.getQtaDisponibile() != null ? dto.getQtaDisponibile().floatValue() : 0f; - if (qtaDisponibile < 0) { - currentBinding.layoutQtaDisponibile.setVisibility(View.GONE); - qtaDisponibile = 0; - } - if(qtaDisponibile > 0) quantityDTO.qtaDisponibile.set(qtaDisponibile); - - float qtaDaEvadere = dto.qtaDaEvadere != null ? dto.qtaDaEvadere.floatValue() : 0f; - if (qtaDaEvadere < 0) { - currentBinding.layoutQtaDaEvadere.setVisibility(View.GONE); - qtaDaEvadere = 0; - } - - if(qtaDaEvadere > 0) quantityDTO.qtaDaEvadere.set(qtaDaEvadere); - quantityDTO.qtaEvasa.set(dto.qtaEvasa != null ? dto.qtaEvasa.floatValue() : null); - - quantityDTO.batchLot.set(dto.batchLot); - if(quantityDTO.qtaCnf.get(false) == null) { - if(dto.getQtaCnf() != null) { - - quantityDTO.qtaCnf.set(dto.getQtaCnf().floatValue()); - - } else if(dto.numCnf != null && dto.qtaTot != null && - dto.numCnf > 0 && dto.qtaTot.compareTo(BigDecimal.ZERO) > 0) { - - quantityDTO.qtaCnfNotificationEnabled = false; - quantityDTO.qtaCnf.set(dto.qtaTot.divide(new BigDecimal(dto.numCnf), RoundingMode.HALF_EVEN).floatValue()); - quantityDTO.qtaCnfNotificationEnabled = true; - - } else { - - quantityDTO.qtaCnf.set(dto.mtbAart.getQtaCnf().floatValue()); - - if(dto.getMtbAart().isFlagQtaCnfFissaBoolean()) { - quantityDTO.blockedQtaPerCnf.set(true); - } - } - } - - if(quantityDTO.qtaTot.get(false) == null) { - quantityDTO.qtaTot.set(qtaDaEvadere); - } - - if(dto.getNumCnf() != null) { - quantityDTO.numCnf.set(new BigDecimal(dto.getNumCnf()).floatValue()); - } - - if(quantityDTO.numCnf.get(false) == null) { - float numCnf = (float) Math.ceil(UtilityNumber.truncateToDecimal(quantityDTO.qtaTot.get() / quantityDTO.qtaCnf.get(),3)); - if(numCnf < 1) numCnf = 1; - quantityDTO.numCnf.set(numCnf); - } - - quantityDTO.canPartitaMagBeChanged.set(dto.getCanPartitaMagBeChanged()); - - if(dto.isCanDataScadBeChanged() != null){ - quantityDTO.canDataScadBeChanged.set(dto.isCanDataScadBeChanged()); - } - - quantityDTO.shouldAskDataScad.set(dto.mtbAart.isFlagTracciabilitaBoolean() && dto.mtbAart.getGgScadPartita() != null && dto.mtbAart.getGgScadPartita() > 0); - - if(dto.getShouldAskDataScad() != null) { - quantityDTO.shouldAskDataScad.set(dto.getShouldAskDataScad()); - } - - if(dto.getDataScad() != null) { - quantityDTO.expireDate = dto.getDataScad(); - } - - if(quantityDTO.expireDate == null && dto.mtbAart.getGgScadPartita() != null && dto.mtbAart.getGgScadPartita() > 0) { - Calendar c = UtilityDate.getCalendarInstance(); - c.add(Calendar.DATE, dto.mtbAart.getGgScadPartita()); // number of days to add - - quantityDTO.expireDate = c.getTime(); - } - - refreshQtaDescriptionText(); - - } - - - private void setupBarcode(Context context) { - - int barcodeIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() - .setOnScanSuccessfull(onScanSuccessfull) - .setOnScanFailed(ex -> UtilityExceptions.defaultException(context, ex, false))); - - currentDialog.setOnDismissListener(dialog -> { - BarcodeManager.removeCallback(barcodeIstanceID); - }); - - BarcodeManager.enable(); - - } - - - private final RunnableArgs onScanSuccessfull = data -> { - BarcodeManager.disable(); - - if(UtilityBarcode.isEanPeso(data)){ - - try { - Ean13PesoModel ean13PesoModel = Ean13PesoModel.fromBarcode(data.getStringValue()); - - if(ean13PesoModel.getPrecode().contains(currentMtbAart.getBarCode())) { - - currentQuantityDto.numCnf.set(1f); - currentQuantityDto.qtaCnf.set(ean13PesoModel.getPeso()); - currentQuantityDto.qtaTot.set(ean13PesoModel.getPeso()); - - BarcodeManager.enable(); - } else { - BarcodeManager.enable(); - } - - } catch (Exception e) { - UtilityLogger.errorMe(e); - BarcodeManager.enable(); - } - - } else if(UtilityBarcode.isEtichetta128(data)){ - final Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(currentContext); - - BarcodeRESTConsumer.decodeEan128Static(data, ean128Model -> { - progressDialog.dismiss(); - BarcodeManager.enable(); - - if(ean128Model != null){ - if(!UtilityString.isNullOrEmpty(ean128Model.BatchLot)) { - currentQuantityDto.batchLot.set(ean128Model.BatchLot); - } - - try { - if(!UtilityString.isNullOrEmpty(ean128Model.BestBefore)){ - currentQuantityDto.expireDate = UtilityDate.recognizeDate(ean128Model.BestBefore); - } else if(!UtilityString.isNullOrEmpty(ean128Model.Expiry)) { - currentQuantityDto.expireDate = UtilityDate.recognizeDate(ean128Model.Expiry); - } - - if(currentQuantityDto.expireDate != null) { - currentQuantityDto.expireDateString.set(UtilityDate.formatDate(currentQuantityDto.expireDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); - } - - } catch (Exception e) { - UtilityLogger.errorMe(e); - } - - - if(ean128Model.Count != null && ean128Model.Count > 0) { - currentQuantityDto.numCnf.set((float) ean128Model.Count); - } - - if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0) { - currentQuantityDto.qtaTot.set(ean128Model.NetWeightKg); - } - - if(currentQuantityDto.qtaTot.get() > 0 && currentQuantityDto.numCnf.get() > 0) { - currentQuantityDto.qtaCnf.set(currentQuantityDto.qtaTot.get() / currentQuantityDto.numCnf.get()); - } - - } - - - }, ex -> { - UtilityExceptions.defaultException(currentContext, ex, progressDialog); - - BarcodeManager.enable(); - }); - - } else { - BarcodeManager.enable(); - } - - }; - - private void setupQuantityListener(final QuantityDTO quantityDTO, final TextInputLayout txlInputNumDiCnf, final TextInputLayout txlInputQtaPerCnf, final TextInputLayout txlInputQtaTot) { - - quantityDTO.numCnf.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { - @Override - public void onPropertyChanged(Observable sender, int propertyId) { - - if(quantityDTO.numCnfNotificationEnabled) { - - quantityDTO.blockedNumDiCnf.set(!(quantityDTO.numCnf.get(true) == 0 || quantityDTO.numCnf.get().toString().equals(""))); - - toggleTextInputLayoutError(txlInputNumDiCnf, quantityDTO.blockedNumDiCnf.get()); - - if (!quantityDTO.blockedQtaTot.get()) { - - quantityDTO.qtaTotNotificationEnabled = false; - quantityDTO.qtaTot.set((float) Math.round(quantityDTO.qtaCnf.get(true) * quantityDTO.numCnf.get(true) * 1000) / 1000); - quantityDTO.qtaTotNotificationEnabled = true; - - - } else if (!quantityDTO.blockedQtaPerCnf.get()) { - - quantityDTO.qtaCnfNotificationEnabled = false; - if(quantityDTO.numCnf.get(true) != 0) { - quantityDTO.qtaCnf.set((float) Math.round(quantityDTO.qtaTot.get(true) / quantityDTO.numCnf.get(true) * 1000) / 1000); - } else { - quantityDTO.qtaCnf.set((float) Math.round(quantityDTO.qtaTot.get(true) / 1 * 1000) / 1000); - } - quantityDTO.qtaCnfNotificationEnabled = true; - - } else { - Log.e("DialogInputQuantity", "Tutti i campi sono bloccati, non è possibile modificare il numero di confezioni"); - } - - } - -// refreshQtaDescriptionText(); - } - }); - - quantityDTO.qtaCnf.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { - @Override - public void onPropertyChanged(Observable sender, int propertyId) { - - if(quantityDTO.qtaCnfNotificationEnabled) { - - quantityDTO.blockedQtaPerCnf.set(!(quantityDTO.qtaCnf.get(true) == 0 || quantityDTO.qtaCnf.get().toString().equals(""))); - - toggleTextInputLayoutError(txlInputQtaPerCnf, quantityDTO.blockedQtaPerCnf.get()); - - if (!quantityDTO.blockedQtaTot.get()) { - - quantityDTO.qtaTotNotificationEnabled = false; - float qtaTot = (float) Math.round(quantityDTO.qtaCnf.get(true) * quantityDTO.numCnf.get(true) * 1000) / 1000; - if(qtaTot > quantityDTO.maxQta.get() && !quantityDTO.canOverflowQuantity) qtaTot = quantityDTO.maxQta.get(); - quantityDTO.qtaTot.set(qtaTot); - quantityDTO.qtaTotNotificationEnabled = true; - - } else if (!quantityDTO.blockedNumDiCnf.get()) { - - quantityDTO.numCnfNotificationEnabled = false; - if(quantityDTO.qtaCnf.get(true) != 0){ - quantityDTO.numCnf.set((float) Math.ceil(quantityDTO.qtaTot.get(true) / quantityDTO.qtaCnf.get(true))); - } else { - quantityDTO.numCnf.set((float) Math.ceil(quantityDTO.qtaTot.get(true))); - } - - quantityDTO.numCnfNotificationEnabled = true; - - } else { - Log.e("DialogInputQuantity", "Tutti i campi sono bloccati, non è possibile modificare la quantità per confezione"); - } - } - -// refreshQtaDescriptionText(); - } - }); - - quantityDTO.qtaTot.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { - @Override - public void onPropertyChanged(Observable sender, int propertyId) { - - if (quantityDTO.qtaTotNotificationEnabled) { - - quantityDTO.blockedQtaTot.set(!(quantityDTO.qtaTot.get(true) == 0 || quantityDTO.qtaTot.get().toString().equals(""))); - - toggleTextInputLayoutError(txlInputQtaTot, quantityDTO.blockedQtaTot.get()); - - if(!quantityDTO.blockedQtaPerCnf.get()){ - - quantityDTO.qtaCnfNotificationEnabled = false; - quantityDTO.qtaCnf.set((float) Math.round(quantityDTO.qtaTot.get(true) / quantityDTO.numCnf.get(true) *1000)/1000); - quantityDTO.qtaCnfNotificationEnabled = true; - - } else if(!quantityDTO.blockedNumDiCnf.get()) { - - quantityDTO.numCnfNotificationEnabled = false; - quantityDTO.numCnf.set((float) Math.ceil(quantityDTO.qtaTot.get(true) / quantityDTO.qtaCnf.get(true))); - quantityDTO.numCnfNotificationEnabled = true; - - } else { - Log.e("DialogInputQuantity", "Tutti i campi sono bloccati, non è possibile modificare la quantità totale"); - } - - } - -// refreshQtaDescriptionText(); - } - }); - - } - - - private void toggleTextInputLayoutError(TextInputLayout textInputLayout, boolean isError) { - if(isError){ - textInputLayout.setErrorEnabled(true); - textInputLayout.setError(" "); - textInputLayout.getEditText().setTextColor(ContextCompat.getColor(currentContext, R.color.red_600)); - textInputLayout.setHintTextAppearance(R.style.ErrorFloatingLabel); - textInputLayout.setErrorIconDrawable(null); - - if (textInputLayout.getChildCount() == 2) { - textInputLayout.getChildAt(1).setVisibility(View.GONE); - } - } else { - textInputLayout.setErrorEnabled(false); - textInputLayout.setError(null); - textInputLayout.getEditText().setTextColor(originalColorStateList); - textInputLayout.setHintTextAppearance(R.style.NormalFloatingLabel); - } - } - - private void initDatePicker(Context context, QuantityDTO quantityDTO, AppCompatTextView textInputLayout) { - quantityDTO.expireDateString.set(scadenzaString); - - if(quantityDTO.expireDate != null) { - quantityDTO.expireDateString.set(UtilityDate.formatDate(quantityDTO.expireDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); - } - - - Runnable onTextClicked = () -> { - // Get Current Date - Calendar c = UtilityDate.getCalendarInstance(); - - if(quantityDTO.expireDate != null) { - c.setTime(quantityDTO.expireDate); - } - - int mYear = c.get(Calendar.YEAR); - int mMonth = c.get(Calendar.MONTH); - int mDay = c.get(Calendar.DAY_OF_MONTH); - - DatePickerDialog datePickerDialog = new DatePickerDialog(context, - (view, year, month, day) -> { - - quantityDTO.expireDate = new GregorianCalendar(year, month, day).getTime(); - quantityDTO.expireDateString.set(UtilityDate.formatDate(quantityDTO.expireDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); - - }, mYear, mMonth, mDay); - datePickerDialog.show(); - }; - - textInputLayout.setOnClickListener(v -> onTextClicked.run()); - - - } - - - private void refreshQtaDescriptionText() { - - int numConf = (int) (currentQuantityDto.qtaDaEvadere.get() / currentQuantityDto.qtaCnf.get()); - float qtaTot = currentQuantityDto.qtaDaEvadere.get(); - - float mod = qtaTot % numConf; - - String text = ""; - - if(numConf > 0) { - text += "" + numConf + " " + currentContext.getResources().getQuantityString(R.plurals.item_package, numConf).toUpperCase() + ""; - } - if(numConf > 0 && mod > 0) { - text += " e "; - } - if(mod > 0) { - - text += "" + UtilityNumber.decimalToString(mod) + " "; - if(mod == 1) { - text += currentContext.getResources().getQuantityString(R.plurals.pieces, (int) mod).toUpperCase(); - } else { - text += currentContext.getString(R.string.piece).toUpperCase(); - } - - text += ""; - } - - currentBinding.qtaDescriptionText.setText(Html.fromHtml(text)); - - } - - - - private void onConfirm(Context context, QuantityDTO quantityDTO, RunnableArgss dialogCallback, boolean closeUL){ - if(currentDTO.mtbAart.isFlagTracciabilitaBoolean() && (quantityDTO.batchLot == null || quantityDTO.batchLot.get().trim().length() == 0)){ - - showBatchLotErrorPrompt(context); - - } else if(quantityDTO.shouldAskDataScad.get() && (quantityDTO.batchLot == null || quantityDTO.batchLot.get().trim().length() == 0)){ - - showBatchLotErrorPrompt(context); - - } else if(quantityDTO.shouldAskDataScad.get() && quantityDTO.expireDate == null){ - - showExpireDateErrorPrompt(context); - - } else if(!quantityDTO.canOverflowQuantity && quantityDTO.qtaTot.get() > quantityDTO.maxQta.get()) { - - showQuantityOverflowErrorPrompt(context); - - } else if(quantityDTO.qtaCnf.get() <= 0 || quantityDTO.numCnf.get() <= 0 || quantityDTO.qtaTot.get() <= 0) { - - showQuantityErrorDialog(context); - - } else { - - if(quantityDTO.batchLot != null && !quantityDTO.batchLot.isEmpty()) { - quantityDTO.batchLot.set(quantityDTO.batchLot.get().toUpperCase()); - } - - dialogCallback.run(quantityDTO, closeUL); - currentDialog.dismiss(); - - } - } - - - private void showQuantityErrorDialog(Context mContext){ - - String errorMessage = mContext.getText(R.string.wrong_quantity_input_message).toString(); - - DialogSimpleMessageHelper.makeErrorDialog(mContext, new SpannableString(Html.fromHtml(errorMessage)), null, null).show(); - } - - - private void showQuantityOverflowErrorPrompt(Context mContext){ - - String errorMessage = mContext.getText(R.string.available_quantity_overflow_error_message).toString(); - - DialogSimpleMessageHelper.makeErrorDialog(mContext, new SpannableString(Html.fromHtml(errorMessage)), null, null).show(); - } - - - private void showExpireDateErrorPrompt(Context mContext){ - - String errorMessage = mContext.getText(R.string.expire_date_error_message).toString(); - - DialogSimpleMessageHelper.makeErrorDialog(mContext, new SpannableString(Html.fromHtml(errorMessage)), null, null).show(); - } - - - private void showBatchLotErrorPrompt(Context mContext){ - - String errorMessage = mContext.getText(R.string.batch_lot_error_message).toString(); - DialogSimpleMessageHelper.makeErrorDialog(mContext, new SpannableString(Html.fromHtml(errorMessage)), null, null).show(); - } - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/QuantityDTO.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/QuantityDTO.java deleted file mode 100644 index 39f92533..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/QuantityDTO.java +++ /dev/null @@ -1,42 +0,0 @@ -package it.integry.integrywmsnative.view.dialogs.input_quantity; - -import java.util.Date; - -import it.integry.integrywmsnative.core.di.BindableBoolean; -import it.integry.integrywmsnative.core.di.BindableFloat; -import it.integry.integrywmsnative.core.di.BindableString; - -public class QuantityDTO { - - public BindableString batchLot = new BindableString(); - public BindableString expireDateString = new BindableString(); - - public Date expireDate = null; - - public BindableFloat numCnf = new BindableFloat(); - public BindableFloat qtaCnf = new BindableFloat(); - public BindableFloat qtaTot = new BindableFloat(); - - public BindableFloat qtaEvasa = new BindableFloat(); - public BindableFloat qtaDaEvadere = new BindableFloat(); - public BindableFloat qtaDisponibile = new BindableFloat(); - - - - public BindableBoolean blockedNumDiCnf = new BindableBoolean(); - public BindableBoolean blockedQtaTot = new BindableBoolean(); - public BindableBoolean blockedQtaPerCnf = new BindableBoolean(); - - public boolean numCnfNotificationEnabled = true; - public boolean qtaCnfNotificationEnabled = true; - public boolean qtaTotNotificationEnabled = true; - public boolean canOverflowQuantity = false; - public BindableFloat maxQta = new BindableFloat(); - - - public BindableBoolean canPartitaMagBeChanged = new BindableBoolean(true); - public BindableBoolean canDataScadBeChanged = new BindableBoolean(true); - public BindableBoolean shouldAskDataScad = new BindableBoolean(); - - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java index 192f2bf2..2d2f7c67 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java @@ -288,7 +288,7 @@ public class DialogScanOrCreateLU { private void showTooMuchULFound() { DialogSimpleMessageHelper.makeWarningDialog(mContext, - new SpannableString(mContext.getResources().getText(R.string.too_much_lu_found_message)), + new SpannableString(mContext.getResources().getText(R.string.too_much_lu_found_message_in_mono_lu)), null, null).show(); } diff --git a/app/src/main/res/layout/dialog_input_quantity_articolo.xml b/app/src/main/res/layout/dialog_input_quantity_articolo.xml deleted file mode 100644 index 6fa87917..00000000 --- a/app/src/main/res/layout/dialog_input_quantity_articolo.xml +++ /dev/null @@ -1,425 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ 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 0b74f2bb..746dbb84 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -217,7 +217,7 @@ Sono ammesse solo UL di Acquisto o Lavorazione qui Acquisto o Vendita non sono ammesse qui]]> Vendita non sono ammesse qui]]> - E\' stata trovata più di una UL + E\' stata trovata più di una UL in una posizione MONO-UL Scansiona il codice a barre di una Posizione Scansiona il codice a barre di una Linea di Produzione diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 20f583ed..5138b4a2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -220,7 +220,7 @@ Only Purchase or Production\'s LU are accepted here The LU of type Purchase or Sale is not accepted here The LU of type Sale is not accepted here - Multiple LU found + Multiple LU found in MONO-LU position Do you want print the label? Please scan a Position barcode Please scan a Production Line barcode