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