diff --git a/.idea/appInsightsSettings.xml b/.idea/appInsightsSettings.xml
new file mode 100644
index 00000000..6bbe2aee
--- /dev/null
+++ b/.idea/appInsightsSettings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/dto/StatoArticoloDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/StatoArticoloDTO.java
index 31f5c577..10c142a6 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/dto/StatoArticoloDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/StatoArticoloDTO.java
@@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.model.dto;
import java.util.Date;
+import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
+
public class StatoArticoloDTO {
private String codMart;
@@ -17,7 +19,7 @@ public class StatoArticoloDTO {
private Integer ggUtili;
- private Integer statoArt;
+ private StatoPartitaMag statoArt;
public String getCodMart() {
return codMart;
@@ -82,11 +84,11 @@ public class StatoArticoloDTO {
return this;
}
- public Integer getStatoArt() {
+ public StatoPartitaMag getStatoArt() {
return statoArt;
}
- public StatoArticoloDTO setStatoArt(Integer statoArt) {
+ public StatoArticoloDTO setStatoArt(StatoPartitaMag statoArt) {
this.statoArt = statoArt;
return this;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/StatoPartitaMag.java b/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/StatoPartitaMag.java
index 4a6525e1..3d577aee 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/StatoPartitaMag.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/StatoPartitaMag.java
@@ -2,9 +2,10 @@ package it.integry.integrywmsnative.core.model.secondary;
public enum StatoPartitaMag {
- IN_SCADENZA(1),
- SCADUTO(2),
- NON_IN_SCADENZA(3);
+ SCADUTO(1),
+ IN_SCADENZA(2),
+ NON_IN_SCADENZA(3),
+ DISATTIVO(4);
private final int text;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/StatoPartitaMagDeserializer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/StatoPartitaMagDeserializer.java
new file mode 100644
index 00000000..db0fd400
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/StatoPartitaMagDeserializer.java
@@ -0,0 +1,22 @@
+package it.integry.integrywmsnative.core.rest.deserializer;
+
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParseException;
+
+import java.lang.reflect.Type;
+
+import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
+
+public class StatoPartitaMagDeserializer implements JsonDeserializer {
+ @Override
+ public StatoPartitaMag deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
+ if (json.isJsonNull()) {
+ return null;
+ }
+
+ int text = json.getAsInt();
+ return StatoPartitaMag.from(text);
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/serializer/StatoPartitaMagSerializer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/serializer/StatoPartitaMagSerializer.java
new file mode 100644
index 00000000..21e3c210
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/serializer/StatoPartitaMagSerializer.java
@@ -0,0 +1,19 @@
+package it.integry.integrywmsnative.core.rest.serializer;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonPrimitive;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
+
+import java.lang.reflect.Type;
+import java.time.LocalDateTime;
+
+import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
+import it.integry.integrywmsnative.core.utility.UtilityDate;
+
+public class StatoPartitaMagSerializer implements JsonSerializer {
+ @Override
+ public JsonElement serialize(StatoPartitaMag src, Type typeOfSrc, JsonSerializationContext context) {
+ return new JsonPrimitive(src.getText());
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityGson.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityGson.java
index 699260d8..66f5abb1 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityGson.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityGson.java
@@ -7,10 +7,13 @@ import java.lang.reflect.Modifier;
import java.time.LocalDate;
import java.time.LocalDateTime;
+import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateDeserializer;
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateTimeDeserializer;
+import it.integry.integrywmsnative.core.rest.deserializer.StatoPartitaMagDeserializer;
import it.integry.integrywmsnative.core.rest.serializer.LocalDateSerializer;
import it.integry.integrywmsnative.core.rest.serializer.LocalDateTimeSerializer;
+import it.integry.integrywmsnative.core.rest.serializer.StatoPartitaMagSerializer;
public class UtilityGson {
@@ -22,6 +25,8 @@ public class UtilityGson {
.registerTypeAdapter(LocalDate.class, new LocalDateSerializer())
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeDeserializer())
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeSerializer())
+ .registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagDeserializer())
+ .registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagSerializer())
.create();
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java
index 593d0df5..51db01ad 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java
@@ -65,33 +65,31 @@ public class OrdiniUscitaElencoViewModel {
this.sendOnLoadingStarted();
- new Thread(() -> {
- Date loadingStartDate = new Date();
+ Date loadingStartDate = new Date();
- this.mOrdiniRESTConsumer.getOrdiniInevasi(this.mCurrentCodMdep, mCurrentGestioneOrd,
- ordiniLavorazione -> {
- this.mOrderList.postValue(Stream.of(ordiniLavorazione)
- .map(x -> {
- try {
- return OrdiniUscitaElencoDTO.fromParent(x);
- } catch (Exception ex) {
- return null;
- }
- })
- .toList());
+ this.mOrdiniRESTConsumer.getOrdiniInevasi(this.mCurrentCodMdep, mCurrentGestioneOrd,
+ ordiniLavorazione -> {
+ this.mOrderList.postValue(Stream.of(ordiniLavorazione)
+ .map(x -> {
+ try {
+ return OrdiniUscitaElencoDTO.fromParent(x);
+ } catch (Exception ex) {
+ return null;
+ }
+ })
+ .toList());
- long forcedDelaySecs = (new Date().getTime() - loadingStartDate.getTime()) / 1000;
+ long forcedDelaySecs = (new Date().getTime() - loadingStartDate.getTime()) / 1000;
- if (2 - forcedDelaySecs > 0) {
- try {
- Thread.sleep((2 - forcedDelaySecs) * 1000);
- } catch (Exception ignored) {
- }
+ if (2 - forcedDelaySecs > 0) {
+ try {
+ Thread.sleep((2 - forcedDelaySecs) * 1000);
+ } catch (Exception ignored) {
}
+ }
- this.sendOnLoadingEnded();
- }, this::sendError);
- }).start();
+ this.sendOnLoadingEnded();
+ }, this::sendError);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
index c693062e..dd7ab597 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
@@ -773,6 +773,8 @@ public class SpedizioneViewModel {
MtbColt refMtbColt = matchedItem.getRefMtbColt();
if (matchedItem.getMtbColts() != null && matchedItem.getMtbColts().size() == 1) {
refMtbColt = matchedItem.getMtbColts().get(0);
+ } else if(matchedItem.getTempPickData().getSourceMtbColt() != null){
+ refMtbColt = matchedItem.getTempPickData().getSourceMtbColt();
}
MtbColr refMtbColr = refMtbColt != null ? refMtbColt.getMtbColr().get(0) : null;
this.dispatchOrdineRow(matchedItem, refMtbColt, refMtbColr, refMtbColr == null);
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/exception/InactiveBatchLotException.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/exception/InactiveBatchLotException.java
new file mode 100644
index 00000000..d733a742
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/exception/InactiveBatchLotException.java
@@ -0,0 +1,10 @@
+package it.integry.integrywmsnative.view.dialogs.exception;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.utility.UtilityResources;
+
+public class InactiveBatchLotException extends Exception {
+ public InactiveBatchLotException(String lotto) {
+ super(String.format(UtilityResources.getString(R.string.batch_lot_not_enabled), lotto));
+ }
+}
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 442e16bf..3629a989 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
@@ -177,7 +177,8 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
.setIsNoteMandatory(mDialogInputQuantityV2DTO.isNotesMandatory())
.setSuggestPartitaMagRunnable(mDialogInputQuantityV2DTO.getSuggestPartitaMag())
.setDataScad(mDialogInputQuantityV2DTO.getDataScad())
- .setDisableTracciabilitaCheck(mDialogInputQuantityV2DTO.isDisableTracciabilitaCheck());
+ .setDisableTracciabilitaCheck(mDialogInputQuantityV2DTO.isDisableTracciabilitaCheck())
+ .setStatoArt(mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt());
mBindings.setView(this);
mBindings.setViewmodel(this.mViewModel);
@@ -215,24 +216,24 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
}
private void initProductLotStatusNotification() {
- StatoPartitaMag statoPartitaMag = StatoPartitaMag.from(this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt());
- if (statoPartitaMag == null)
+ //StatoPartitaMag statoPartitaMag = StatoPartitaMag.from(this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt());
+ if (this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt() == null)
return;
this.mBindings.inputDataScadLayout.setEndIconMode(TextInputLayout.END_ICON_CUSTOM);
- switch (statoPartitaMag) {
- case SCADUTO:
+ switch (this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt()) {
+ case IN_SCADENZA -> {
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.warn_color)));
- break;
- case IN_SCADENZA:
+ }
+ case SCADUTO -> {
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.error_color)));
- break;
- default:
+ }
+ case NON_IN_SCADENZA -> {
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_check_white_24dp);
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.success_color)));
-
+ }
}
}
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 19827b97..d5087e7f 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
@@ -13,12 +13,14 @@ 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.model.secondary.StatoPartitaMag;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
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.UtilityString;
+import it.integry.integrywmsnative.view.dialogs.exception.InactiveBatchLotException;
import it.integry.integrywmsnative.view.dialogs.exception.InvalidBatchLotException;
import it.integry.integrywmsnative.view.dialogs.exception.InvalidExpireDateException;
import it.integry.integrywmsnative.view.dialogs.exception.InvalidNotesException;
@@ -88,6 +90,8 @@ public class DialogInputQuantityV2ViewModel {
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
+ private StatoPartitaMag statoArt;
+
@Inject
public DialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer) {
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
@@ -336,6 +340,11 @@ public class DialogInputQuantityV2ViewModel {
return this;
}
+ public DialogInputQuantityV2ViewModel setStatoArt(StatoPartitaMag statoArt) {
+ this.statoArt = statoArt;
+ return this;
+ }
+
public DialogInputQuantityV2ViewModel setWarnOnQuantityOverflow(boolean warnOnQuantityOverflow) {
this.warnOnQuantityOverflow = warnOnQuantityOverflow;
return this;
@@ -488,6 +497,12 @@ public class DialogInputQuantityV2ViewModel {
}
}
+ if(this.statoArt == StatoPartitaMag.DISATTIVO){
+ this.mListener.onError(new InactiveBatchLotException(internalPartitaMag));
+ onValidated.run(false);
+ return;
+ }
+
if (this.shouldAskDataScad && UtilityString.isNullOrEmpty(internalPartitaMag)) {
this.mListener.onError(new InvalidBatchLotException());
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index e0c560e7..78b4ac21 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -344,7 +344,7 @@
Consegnato il %s
Personalizzazioni Frudis
- Il lotto %s non è attivo. Continuare?
+ %s non è attivo.]]>
Punto Vendita
SaporiVeri PV
Genera ordini di acquisto
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4b8288d3..5454bb93 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -351,7 +351,7 @@
Delivered on %s
Frudis customizations
- Batch lot %s is inactive. Continue?
+ %s is inactive.]]>
Other
Home
Logout