diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 00000000..5d15bdef
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/app.xml b/.idea/runConfigurations/app.xml
index 80d18a58..61e0e773 100644
--- a/.idea/runConfigurations/app.xml
+++ b/.idea/runConfigurations/app.xml
@@ -1,6 +1,6 @@
-
+
@@ -9,7 +9,6 @@
-
@@ -25,6 +24,8 @@
+
+
@@ -32,14 +33,21 @@
+
+
-
+
+
+
+
+
+
diff --git a/app/build.gradle b/app/build.gradle
index 71e36f73..ebc2c5a8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android {
- def appVersionCode = 398
- def appVersionName = '1.36.05'
+ def appVersionCode = 399
+ def appVersionName = '1.36.06'
signingConfigs {
release {
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 6d52bd65..99eb2694 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
@@ -69,6 +69,7 @@ public class DBSettingsModel {
private boolean flagCanAddUnknownBarcodesAccettazioneBolla = false;
private boolean flagEnableFastPickAccettazioneBolla = false;
private boolean flagDisableMandatoryTracciabilitaAccettazioneBolla = false;
+ private boolean flagOverflowQuantityWarning = false;
public boolean isFlagSpedizioneEnableFakeGiacenza() {
return flagSpedizioneEnableFakeGiacenza;
@@ -556,4 +557,13 @@ public class DBSettingsModel {
this.flagDisableMandatoryTracciabilitaAccettazioneBolla = flagDisableMandatoryTracciabilitaAccettazioneBolla;
return this;
}
+
+ public boolean isFlagOverflowQuantityWarning() {
+ return flagOverflowQuantityWarning;
+ }
+
+ public DBSettingsModel setFlagOverflowQuantityWarning(boolean flagOverflowQuantityWarning) {
+ this.flagOverflowQuantityWarning = flagOverflowQuantityWarning;
+ 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 503a85d1..e9902c40 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
@@ -470,6 +470,12 @@ public class SettingsManager {
.setKeySection("FLAG_DISABLE_MANDATORY_TRACCIABILITA")
.setSetter(dbSettingsModelIstance::setFlagDisableMandatoryTracciabilitaAccettazioneBolla)
.setDefaultValue(false));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
+ .setGestName("PICKING")
+ .setSection("SPEDIZIONE")
+ .setKeySection("FLAG_OVERFLOW_QUANTITY_WARNING")
+ .setSetter(dbSettingsModelIstance::setFlagOverflowQuantityWarning)
+ .setDefaultValue(false));
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java
index e9bd6875..31fb8720 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java
@@ -333,13 +333,13 @@ public class AccettazioneBollaPickingViewModel {
pickingObjectDTO.setTempPickData(pickData);
}
- this.loadMatchedRows(matchPickingObject, mtbAart);
+ this.loadMatchedRows(matchPickingObject, mtbAart, pickData);
onComplete.run();
}
- private void loadMatchedRows(List matchedRows, MtbAart mtbAart) {
+ private void loadMatchedRows(List matchedRows, MtbAart mtbAart, PickDataDTO pickDataDTO) {
if (matchedRows == null || matchedRows.size() == 0) {
- manageNoArtFound(mtbAart);
+ manageNoArtFound(mtbAart, pickDataDTO);
} else if (matchedRows.size() == 1) {
this.manageDispatchBollaRow(matchedRows.get(0));
} else {
@@ -375,11 +375,12 @@ public class AccettazioneBollaPickingViewModel {
}
- private void manageNoArtFound(MtbAart mtbAart) {
+ private void manageNoArtFound(MtbAart mtbAart, PickDataDTO pickDataDTO) {
if (SettingsManager.iDB().isFlagCanAddUnknownItemsAccettazioneBolla()) {
this.manageDispatchBollaRow(new PickingObjectDTO()
- .setMtbAart(mtbAart));
+ .setMtbAart(mtbAart)
+ .setTempPickData(pickDataDTO));
} else
this.sendError(new NoArtsFoundException());
}
@@ -418,12 +419,21 @@ public class AccettazioneBollaPickingViewModel {
}
public void manageDispatchBollaRow(final PickingObjectDTO pickingObjectDTO) {
+ String partitaMag = null;
+ if(pickingObjectDTO.getTempPickData() != null){
+ if(pickingObjectDTO.getTempPickData().getManualPickDTO() != null){
+ if(pickingObjectDTO.getTempPickData().getManualPickDTO().getMtbPartitaMag() != null){
+ partitaMag = pickingObjectDTO.getTempPickData().getManualPickDTO().getMtbPartitaMag().getPartitaMag();
+ }
+ }
+ }
+
if (SettingsManager.iDB().isFlagEnableFastPickAccettazioneBolla()) {
this.saveNewRow(pickingObjectDTO,
BigDecimal.ONE,
pickingObjectDTO.getMtbAart().getQtaCnf(),
pickingObjectDTO.getMtbAart().getQtaCnf(),
- null,
+ partitaMag,
null,
false);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/SitArtOrdDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/SitArtOrdDTO.java
index 34a0fe6a..c748f6bc 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/SitArtOrdDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/SitArtOrdDTO.java
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto;
import java.math.BigDecimal;
import java.time.LocalDate;
+import java.util.Date;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
@@ -33,6 +34,17 @@ public class SitArtOrdDTO {
private String descrizioneCommessa;
private String termCons;
private String descrizioneEstesaArt;
+ private String descrizioneEstesaOrd;
+ private Date dataCons;
+
+ public String getDescrizioneEstesaOrd() {
+ return descrizioneEstesaOrd;
+ }
+
+ public SitArtOrdDTO setDescrizioneEstesaOrd(String descrizioneEstesaOrd) {
+ this.descrizioneEstesaOrd = descrizioneEstesaOrd;
+ return this;
+ }
public String getCodJcom() {
return codJcom;
@@ -280,4 +292,13 @@ public class SitArtOrdDTO {
this.descrizioneEstesaArt = descrizioneEstesaArt;
return this;
}
+
+ public Date getDataCons() {
+ return dataCons;
+ }
+
+ public SitArtOrdDTO setDataCons(Date dataCons) {
+ this.dataCons = dataCons;
+ return this;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java
index 2e20aca7..8f5d570c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java
@@ -47,6 +47,7 @@ import it.integry.integrywmsnative.core.report.ReportManager;
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
import it.integry.integrywmsnative.core.settings.SettingsManager;
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.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
@@ -415,6 +416,8 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
+ accettazioneOrdiniPickingListModel.setSubDescrizione1("Consegna: " + UtilityDate.formatDate(x.getSitArtOrdDTO().getDataCons(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH));
+
accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
if (x.getMtbAart() != null)
accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
@@ -585,8 +588,9 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
}
+ accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneEstesaOrd());
+
if (x.getMtbAart() != null) {
- accettazioneOrdiniPickingListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa());
accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
}
@@ -788,7 +792,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
}
@Override
- public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, LocalDate dataScad, boolean canPartitaMagBeChanged, boolean canOverflowQuantity, RunnableArgss onComplete) {
+ public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, LocalDate dataScad, boolean canPartitaMagBeChanged, boolean canOverflowQuantity, String customArtDescription, RunnableArgss onComplete) {
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
.setMtbAart(mtbAart)
.setInitialNumCnf(initialNumCnf)
@@ -807,7 +811,8 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
.setDataScad(dataScad)
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
.setCanLUBeClosed(true)
- .setCanOverflowOrderQuantity(canOverflowQuantity);
+ .setCanOverflowOrderQuantity(canOverflowQuantity)
+ .setCustomArtDescription(customArtDescription);
if (!mDialogInputQuantityV2View.isVisible())
mDialogInputQuantityV2View
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java
index 700974e2..85095aec 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java
@@ -539,6 +539,7 @@ public class AccettazioneOrdiniPickingViewModel {
partitaMag,
dataScad,
true,
+ pickingObjectDTO.getSitArtOrdDTO().getDescrizioneEstesaOrd(),
(pickedQuantityDTO, shouldCloseLU) -> {
this.saveNewRow(pickingObjectDTO,
pickedQuantityDTO.getNumCnf(),
@@ -625,6 +626,7 @@ public class AccettazioneOrdiniPickingViewModel {
mtbColrToEdit.getPartitaMag(),
mtbColrToEdit.getDataScadPartita(),
true,
+ null,
(pickedQuantityDTO, shouldCloseLU) -> {
this.saveEditedRow(mtbColrToEdit,
@@ -883,6 +885,7 @@ public class AccettazioneOrdiniPickingViewModel {
String partitaMag,
LocalDate dataScad,
boolean canPartitaMagBeChanged,
+ String customArtDescription,
RunnableArgss onComplete) {
if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO,
mtbAart,
@@ -902,6 +905,7 @@ public class AccettazioneOrdiniPickingViewModel {
dataScad,
canPartitaMagBeChanged,
true,
+ customArtDescription,
onComplete);
}
@@ -958,6 +962,7 @@ public class AccettazioneOrdiniPickingViewModel {
LocalDate dataScad,
boolean canPartitaMagBeChanged,
boolean canOverflowQuantity,
+ String customArtDescription,
RunnableArgss onComplete);
void onFilterCodMartApplied(String codMartToFilter);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListAdapter.java
index 14eb404f..be2a0554 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListAdapter.java
@@ -21,6 +21,7 @@ import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.AccettazioneOrdineInevasoMainListGroupHeaderBinding;
@@ -119,7 +120,10 @@ public class AccettazioneOrdiniPickingListAdapter extends SectionedRecyclerViewA
holder.mBinding.descrizione.setText(pickingObjectDTO.getDescrizione());
holder.mBinding.descrizione.setTextColor(pickingObjectDTO.isDescrizionePresente() ? Color.BLACK : Color.GRAY);
+ holder.mBinding.descrizione.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getDescrizione()) ? View.GONE : View.VISIBLE);
+ holder.mBinding.descrizioneSub1.setText(pickingObjectDTO.getSubDescrizione1());
+ holder.mBinding.descrizioneSub1.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getSubDescrizione1()) ? View.GONE : View.VISIBLE);
holder.mBinding.badge1.setText(pickingObjectDTO.getBadge1());
holder.mBinding.badge2.setText(pickingObjectDTO.getBadge2());
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListModel.java
index 0d1aacc7..1209eef2 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListModel.java
@@ -3,6 +3,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordini_picking.ui;
import org.jetbrains.annotations.NotNull;
import java.math.BigDecimal;
+import java.util.Date;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.PickingObjectDTO;
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
index 646d3761..3c26250f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
@@ -849,6 +849,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
.setPartitaMag(partitaMag)
.setDataScad(dataScad)
.setCanOverflowOrderQuantity(canOverflowOrderQuantity)
+ .setWarnOnQuantityOverflow(SettingsManager.iDB().isFlagOverflowQuantityWarning())
.setCanLUBeClosed(true)
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
.setStatoPartitaMag(pickingObjectDTO != null ? pickingObjectDTO.getStatoArticoloDTO() : null)
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java
index 1c515e8c..bc2df22e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java
@@ -44,6 +44,7 @@ public class DialogInputQuantityV2DTO {
private boolean saveOnImeDone = false;
private boolean notifyProductLotStatus = false;
private boolean disableTracciabilitaCheck = false;
+ private boolean warnOnQuantityOverflow = false;
private StatoArticoloDTO statoPartitaMag;
@@ -54,6 +55,8 @@ public class DialogInputQuantityV2DTO {
private boolean canOverflowOrderQuantity;
+ private String customArtDescription;
+
public MtbAart getMtbAart() {
return mtbAart;
}
@@ -359,4 +362,22 @@ public class DialogInputQuantityV2DTO {
this.disableTracciabilitaCheck = disableTracciabilitaCheck;
return this;
}
+
+ public String getCustomArtDescription() {
+ return customArtDescription;
+ }
+
+ public DialogInputQuantityV2DTO setCustomArtDescription(String customArtDescription) {
+ this.customArtDescription = customArtDescription;
+ return this;
+ }
+
+ public boolean isWarnOnQuantityOverflow() {
+ return warnOnQuantityOverflow;
+ }
+
+ public DialogInputQuantityV2DTO setWarnOnQuantityOverflow(boolean warnOnQuantityOverflow) {
+ this.warnOnQuantityOverflow = warnOnQuantityOverflow;
+ return this;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java
index ba5dc825..442e16bf 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java
@@ -48,6 +48,7 @@ import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityFocus;
import it.integry.integrywmsnative.core.utility.UtilityObservable;
+import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
@@ -151,6 +152,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
this.mViewModel
.setMtbAart(mDialogInputQuantityV2DTO.getMtbAart())
+ .setArtDescription(UtilityString.isNull(mDialogInputQuantityV2DTO.getCustomArtDescription(), mDialogInputQuantityV2DTO.getMtbAart().getDescrizioneEstesa()))
.setInitialNumCnf(mDialogInputQuantityV2DTO.getInitialNumCnf())
.setInitialQtaCnf(mDialogInputQuantityV2DTO.getInitialQtaCnf())
.setInitialQtaTot(mDialogInputQuantityV2DTO.getInitialQtaTot())
@@ -168,6 +170,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
.setTotalQtaAvailable(mDialogInputQuantityV2DTO.getTotalQtaAvailable())
.setCanInputZeroQuantity(mDialogInputQuantityV2DTO.isCanInputZeroQuantity())
.setCanOverflowOrderQuantity(mDialogInputQuantityV2DTO.isCanOverflowOrderQuantity())
+ .setWarnOnQuantityOverflow(mDialogInputQuantityV2DTO.isWarnOnQuantityOverflow())
.setQtaCnfAvailable(mDialogInputQuantityV2DTO.getQtaCnfAvailable())
.setPartitaMag(mDialogInputQuantityV2DTO.getPartitaMag())
.setNote(mDialogInputQuantityV2DTO.getNote())
@@ -254,19 +257,23 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
};
public void save() {
- if (this.mViewModel.validate()) {
- this.mAbort = false;
- dismiss();
- this.mOnComplete.run(this.mViewModel.getResult(), false);
- }
+ this.mViewModel.validate(validated -> {
+ if (validated) {
+ this.mAbort = false;
+ dismiss();
+ this.mOnComplete.run(this.mViewModel.getResult(), false);
+ }
+ });
}
public void saveAndCloseLU() {
- if (this.mViewModel.validate()) {
- this.mAbort = false;
- dismiss();
- this.mOnComplete.run(this.mViewModel.getResult(), true);
- }
+ this.mViewModel.validate(validated -> {
+ if (validated) {
+ this.mAbort = false;
+ dismiss();
+ this.mOnComplete.run(this.mViewModel.getResult(), true);
+ }
+ });
}
// @Override
@@ -530,4 +537,13 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
.makeErrorDialog(new SpannableString(Html.fromHtml(ex.getMessage())), null, null)
.show(requireActivity().getSupportFragmentManager(), "tag");
}
+
+ @Override
+ public void onWarning(String text, RunnableArgs result) {
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(Html.fromHtml(text)),
+ null,
+ () -> result.run(true),
+ () -> result.run(false)
+ ).show(requireActivity().getSupportFragmentManager(), "tag");
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java
index cd3a5154..19827b97 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java
@@ -3,11 +3,14 @@ package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
import androidx.databinding.ObservableField;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.time.LocalDate;
import javax.inject.Inject;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
+import it.integry.integrywmsnative.core.di.BindableString;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgsWithReturn;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
@@ -32,6 +35,7 @@ public class DialogInputQuantityV2ViewModel {
private final int UPDATE_QTA_TOT = 2;
public ObservableField mtbAart = new ObservableField<>();
+ public BindableString artDescription = new BindableString();
public ObservableField blockedNumCnf = new ObservableField<>();
public ObservableField blockedQtaCnf = new ObservableField<>();
@@ -78,6 +82,7 @@ public class DialogInputQuantityV2ViewModel {
private int onNumCnfInputChanged;
private int onQtaTotInputChanged;
private boolean disableTracciabilitaCheck;
+ private boolean warnOnQuantityOverflow;
private Listener mListener;
@@ -236,6 +241,11 @@ public class DialogInputQuantityV2ViewModel {
return this;
}
+ public DialogInputQuantityV2ViewModel setArtDescription(String artDescription) {
+ this.artDescription.set(artDescription);
+ return this;
+ }
+
public DialogInputQuantityV2ViewModel setInitialNumCnf(BigDecimal initialNumCnf) {
this.initialNumCnf = initialNumCnf;
return this;
@@ -326,6 +336,11 @@ public class DialogInputQuantityV2ViewModel {
return this;
}
+ public DialogInputQuantityV2ViewModel setWarnOnQuantityOverflow(boolean warnOnQuantityOverflow) {
+ this.warnOnQuantityOverflow = warnOnQuantityOverflow;
+ return this;
+ }
+
public DialogInputQuantityV2ViewModel setCanPartitaMagBeChanged(boolean canPartitaMagBeChanged) {
this.canPartitaMagBeChanged = canPartitaMagBeChanged;
return this;
@@ -450,11 +465,12 @@ public class DialogInputQuantityV2ViewModel {
this.blockedQtaTot.set(false);
}
- public boolean validate() {
+ public void validate(RunnableArgs onValidated) {
if (this.internalQtaCnf == null || UtilityBigDecimal.equalsTo(this.internalQtaCnf, BigDecimal.ZERO)) {
this.mListener.onError(new InvalidQtaCnfQuantityException());
- return false;
+ onValidated.run(false);
+ return;
}
if (!disableTracciabilitaCheck && mtbAart.get().isFlagTracciabilitaBoolean() && UtilityString.isNullOrEmpty(internalPartitaMag)) {
@@ -462,51 +478,59 @@ public class DialogInputQuantityV2ViewModel {
internalPartitaMag = suggestPartitaMagRunnable.run(this);
if (internalPartitaMag == null) {
this.mListener.onError(new InvalidBatchLotException());
- return false;
+ onValidated.run(false);
+ return;
}
} else {
this.mListener.onError(new InvalidBatchLotException());
- return false;
+ onValidated.run(false);
+ return;
}
}
if (this.shouldAskDataScad && UtilityString.isNullOrEmpty(internalPartitaMag)) {
this.mListener.onError(new InvalidBatchLotException());
- return false;
+ onValidated.run(false);
+ return;
}
if (this.shouldAskDataScad && this.internalDataScad == null) {
this.mListener.onError(new InvalidExpireDateException());
- return false;
+ onValidated.run(false);
+ return;
}
if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) &&
this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
this.mListener.onError(new OverflowQtaTotOrderedQuantityException());
- return false;
+ onValidated.run(false);
+ return;
}
if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfOrd) &&
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
this.mListener.onError(new OverflowNumCnfOrderedQuantityException());
- return false;
+ onValidated.run(false);
+ return;
}
if (UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaAvailable)) {
this.mListener.onError(new OverflowQtaTotAvailableQuantityException());
- return false;
+ onValidated.run(false);
+ return;
}
if (UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfAvailable) &&
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
this.mListener.onError(new OverflowNumCnfAvailableQuantityException());
- return false;
+ onValidated.run(false);
+ return;
}
if (!this.canInputZeroQuantity && (this.internalNumCnf == null || this.internalQtaCnf == null || this.internalQtaTot == null ||
@@ -515,17 +539,36 @@ public class DialogInputQuantityV2ViewModel {
UtilityBigDecimal.equalsOrLowerThan(this.internalQtaTot, BigDecimal.ZERO))) {
this.mListener.onError(new InvalidQuantityException());
- return false;
+ onValidated.run(false);
+ return;
}
if (this.isNoteMandatory() && (this.internalNote == null || this.internalNote.length() <= 0)) {
this.mListener.onError(new InvalidNotesException());
- return false;
+ onValidated.run(false);
+ return;
}
if (!UtilityString.isNullOrEmpty(this.internalPartitaMag))
this.internalPartitaMag = this.internalPartitaMag.toUpperCase();
- return true;
+
+ //Gli ultimi due controlli sono in coda a causa della callBack di onWarning, non eseguirebbe i controlli messi dopo
+
+ if (this.warnOnQuantityOverflow && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) &&
+ this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
+
+ this.mListener.onWarning("Hai inserito una quantità superiore rispetto a quella presente nell'ordine.
Continuare?", onValidated);
+ return;
+ }
+
+ if (this.warnOnQuantityOverflow && UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfOrd) &&
+ !this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
+
+ this.mListener.onWarning("Hai inserito una quantità superiore rispetto a quella presente nell'ordine.
Continuare?", onValidated);
+ return;
+ }
+
+ onValidated.run(true);
}
public DialogInputQuantityV2ResultDTO getResult() {
@@ -536,7 +579,6 @@ public class DialogInputQuantityV2ViewModel {
.setQtaCnf(this.internalQtaCnf)
.setNote(this.internalNote)
.setQtaTot(this.internalQtaTot);
-
}
public void setListener(Listener listener) {
@@ -570,5 +612,6 @@ public class DialogInputQuantityV2ViewModel {
void onDataChanged();
void onError(Exception ex);
+ void onWarning(String text, RunnableArgs result);
}
}
diff --git a/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml
index 8da22590..efca9ac0 100644
--- a/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml
+++ b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml
@@ -147,6 +147,18 @@
android:textSize="16sp"
tools:text="DESCRIZIONE" />
+