Fix warning partita scaduta e blocco per partita inattiva
This commit is contained in:
parent
143a6c9e9c
commit
6541f17555
6
.idea/appInsightsSettings.xml
generated
Normal file
6
.idea/appInsightsSettings.xml
generated
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AppInsightsSettings">
|
||||||
|
<option name="selectedTabId" value="Android Vitals" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.model.dto;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
|
||||||
|
|
||||||
public class StatoArticoloDTO {
|
public class StatoArticoloDTO {
|
||||||
private String codMart;
|
private String codMart;
|
||||||
|
|
||||||
@ -17,7 +19,7 @@ public class StatoArticoloDTO {
|
|||||||
|
|
||||||
private Integer ggUtili;
|
private Integer ggUtili;
|
||||||
|
|
||||||
private Integer statoArt;
|
private StatoPartitaMag statoArt;
|
||||||
|
|
||||||
public String getCodMart() {
|
public String getCodMart() {
|
||||||
return codMart;
|
return codMart;
|
||||||
@ -82,11 +84,11 @@ public class StatoArticoloDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getStatoArt() {
|
public StatoPartitaMag getStatoArt() {
|
||||||
return statoArt;
|
return statoArt;
|
||||||
}
|
}
|
||||||
|
|
||||||
public StatoArticoloDTO setStatoArt(Integer statoArt) {
|
public StatoArticoloDTO setStatoArt(StatoPartitaMag statoArt) {
|
||||||
this.statoArt = statoArt;
|
this.statoArt = statoArt;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,9 +2,10 @@ package it.integry.integrywmsnative.core.model.secondary;
|
|||||||
|
|
||||||
public enum StatoPartitaMag {
|
public enum StatoPartitaMag {
|
||||||
|
|
||||||
IN_SCADENZA(1),
|
SCADUTO(1),
|
||||||
SCADUTO(2),
|
IN_SCADENZA(2),
|
||||||
NON_IN_SCADENZA(3);
|
NON_IN_SCADENZA(3),
|
||||||
|
DISATTIVO(4);
|
||||||
|
|
||||||
private final int text;
|
private final int text;
|
||||||
|
|
||||||
|
|||||||
@ -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<StatoPartitaMag> {
|
||||||
|
@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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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<StatoPartitaMag> {
|
||||||
|
@Override
|
||||||
|
public JsonElement serialize(StatoPartitaMag src, Type typeOfSrc, JsonSerializationContext context) {
|
||||||
|
return new JsonPrimitive(src.getText());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -7,10 +7,13 @@ import java.lang.reflect.Modifier;
|
|||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
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.LocalDateDeserializer;
|
||||||
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateTimeDeserializer;
|
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.LocalDateSerializer;
|
||||||
import it.integry.integrywmsnative.core.rest.serializer.LocalDateTimeSerializer;
|
import it.integry.integrywmsnative.core.rest.serializer.LocalDateTimeSerializer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.serializer.StatoPartitaMagSerializer;
|
||||||
|
|
||||||
public class UtilityGson {
|
public class UtilityGson {
|
||||||
|
|
||||||
@ -22,6 +25,8 @@ public class UtilityGson {
|
|||||||
.registerTypeAdapter(LocalDate.class, new LocalDateSerializer())
|
.registerTypeAdapter(LocalDate.class, new LocalDateSerializer())
|
||||||
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeDeserializer())
|
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeDeserializer())
|
||||||
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeSerializer())
|
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeSerializer())
|
||||||
|
.registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagDeserializer())
|
||||||
|
.registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagSerializer())
|
||||||
.create();
|
.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -65,33 +65,31 @@ public class OrdiniUscitaElencoViewModel {
|
|||||||
|
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
new Thread(() -> {
|
Date loadingStartDate = new Date();
|
||||||
Date loadingStartDate = new Date();
|
|
||||||
|
|
||||||
this.mOrdiniRESTConsumer.getOrdiniInevasi(this.mCurrentCodMdep, mCurrentGestioneOrd,
|
this.mOrdiniRESTConsumer.getOrdiniInevasi(this.mCurrentCodMdep, mCurrentGestioneOrd,
|
||||||
ordiniLavorazione -> {
|
ordiniLavorazione -> {
|
||||||
this.mOrderList.postValue(Stream.of(ordiniLavorazione)
|
this.mOrderList.postValue(Stream.of(ordiniLavorazione)
|
||||||
.map(x -> {
|
.map(x -> {
|
||||||
try {
|
try {
|
||||||
return OrdiniUscitaElencoDTO.fromParent(x);
|
return OrdiniUscitaElencoDTO.fromParent(x);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.toList());
|
.toList());
|
||||||
|
|
||||||
long forcedDelaySecs = (new Date().getTime() - loadingStartDate.getTime()) / 1000;
|
long forcedDelaySecs = (new Date().getTime() - loadingStartDate.getTime()) / 1000;
|
||||||
|
|
||||||
if (2 - forcedDelaySecs > 0) {
|
if (2 - forcedDelaySecs > 0) {
|
||||||
try {
|
try {
|
||||||
Thread.sleep((2 - forcedDelaySecs) * 1000);
|
Thread.sleep((2 - forcedDelaySecs) * 1000);
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
}).start();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -773,6 +773,8 @@ public class SpedizioneViewModel {
|
|||||||
MtbColt refMtbColt = matchedItem.getRefMtbColt();
|
MtbColt refMtbColt = matchedItem.getRefMtbColt();
|
||||||
if (matchedItem.getMtbColts() != null && matchedItem.getMtbColts().size() == 1) {
|
if (matchedItem.getMtbColts() != null && matchedItem.getMtbColts().size() == 1) {
|
||||||
refMtbColt = matchedItem.getMtbColts().get(0);
|
refMtbColt = matchedItem.getMtbColts().get(0);
|
||||||
|
} else if(matchedItem.getTempPickData().getSourceMtbColt() != null){
|
||||||
|
refMtbColt = matchedItem.getTempPickData().getSourceMtbColt();
|
||||||
}
|
}
|
||||||
MtbColr refMtbColr = refMtbColt != null ? refMtbColt.getMtbColr().get(0) : null;
|
MtbColr refMtbColr = refMtbColt != null ? refMtbColt.getMtbColr().get(0) : null;
|
||||||
this.dispatchOrdineRow(matchedItem, refMtbColt, refMtbColr, refMtbColr == null);
|
this.dispatchOrdineRow(matchedItem, refMtbColt, refMtbColr, refMtbColr == null);
|
||||||
|
|||||||
@ -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));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -177,7 +177,8 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
|||||||
.setIsNoteMandatory(mDialogInputQuantityV2DTO.isNotesMandatory())
|
.setIsNoteMandatory(mDialogInputQuantityV2DTO.isNotesMandatory())
|
||||||
.setSuggestPartitaMagRunnable(mDialogInputQuantityV2DTO.getSuggestPartitaMag())
|
.setSuggestPartitaMagRunnable(mDialogInputQuantityV2DTO.getSuggestPartitaMag())
|
||||||
.setDataScad(mDialogInputQuantityV2DTO.getDataScad())
|
.setDataScad(mDialogInputQuantityV2DTO.getDataScad())
|
||||||
.setDisableTracciabilitaCheck(mDialogInputQuantityV2DTO.isDisableTracciabilitaCheck());
|
.setDisableTracciabilitaCheck(mDialogInputQuantityV2DTO.isDisableTracciabilitaCheck())
|
||||||
|
.setStatoArt(mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt());
|
||||||
|
|
||||||
mBindings.setView(this);
|
mBindings.setView(this);
|
||||||
mBindings.setViewmodel(this.mViewModel);
|
mBindings.setViewmodel(this.mViewModel);
|
||||||
@ -215,24 +216,24 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initProductLotStatusNotification() {
|
private void initProductLotStatusNotification() {
|
||||||
StatoPartitaMag statoPartitaMag = StatoPartitaMag.from(this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt());
|
//StatoPartitaMag statoPartitaMag = StatoPartitaMag.from(this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt());
|
||||||
if (statoPartitaMag == null)
|
if (this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt() == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this.mBindings.inputDataScadLayout.setEndIconMode(TextInputLayout.END_ICON_CUSTOM);
|
this.mBindings.inputDataScadLayout.setEndIconMode(TextInputLayout.END_ICON_CUSTOM);
|
||||||
switch (statoPartitaMag) {
|
switch (this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt()) {
|
||||||
case SCADUTO:
|
case IN_SCADENZA -> {
|
||||||
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
|
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)));
|
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.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
|
||||||
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.error_color)));
|
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.setEndIconDrawable(R.drawable.ic_check_white_24dp);
|
||||||
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.success_color)));
|
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.success_color)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -13,12 +13,14 @@ import it.integry.integrywmsnative.core.di.BindableString;
|
|||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgsWithReturn;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgsWithReturn;
|
||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
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.consumers.BarcodeRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
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.InvalidBatchLotException;
|
||||||
import it.integry.integrywmsnative.view.dialogs.exception.InvalidExpireDateException;
|
import it.integry.integrywmsnative.view.dialogs.exception.InvalidExpireDateException;
|
||||||
import it.integry.integrywmsnative.view.dialogs.exception.InvalidNotesException;
|
import it.integry.integrywmsnative.view.dialogs.exception.InvalidNotesException;
|
||||||
@ -88,6 +90,8 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
|
|
||||||
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
||||||
|
|
||||||
|
private StatoPartitaMag statoArt;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public DialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer) {
|
public DialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer) {
|
||||||
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
@ -336,6 +340,11 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DialogInputQuantityV2ViewModel setStatoArt(StatoPartitaMag statoArt) {
|
||||||
|
this.statoArt = statoArt;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public DialogInputQuantityV2ViewModel setWarnOnQuantityOverflow(boolean warnOnQuantityOverflow) {
|
public DialogInputQuantityV2ViewModel setWarnOnQuantityOverflow(boolean warnOnQuantityOverflow) {
|
||||||
this.warnOnQuantityOverflow = warnOnQuantityOverflow;
|
this.warnOnQuantityOverflow = warnOnQuantityOverflow;
|
||||||
return this;
|
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)) {
|
if (this.shouldAskDataScad && UtilityString.isNullOrEmpty(internalPartitaMag)) {
|
||||||
|
|
||||||
this.mListener.onError(new InvalidBatchLotException());
|
this.mListener.onError(new InvalidBatchLotException());
|
||||||
|
|||||||
@ -344,7 +344,7 @@
|
|||||||
<string name="delivered_on">Consegnato il %s</string>
|
<string name="delivered_on">Consegnato il %s</string>
|
||||||
<string name="title_dynamic_frudis">Personalizzazioni Frudis</string>
|
<string name="title_dynamic_frudis">Personalizzazioni Frudis</string>
|
||||||
|
|
||||||
<string name="batch_lot_not_enabled">Il lotto <b>%s</b> non è attivo. Continuare?</string>
|
<string name="batch_lot_not_enabled"><![CDATA[Il lotto: <b>%s</b> non è attivo.]]></string>
|
||||||
<string name="punto_vendita">Punto Vendita</string>
|
<string name="punto_vendita">Punto Vendita</string>
|
||||||
<string name="title_dynamic_saporiveri_pv">SaporiVeri PV</string>
|
<string name="title_dynamic_saporiveri_pv">SaporiVeri PV</string>
|
||||||
<string name="generate_orders">Genera ordini di acquisto</string>
|
<string name="generate_orders">Genera ordini di acquisto</string>
|
||||||
|
|||||||
@ -351,7 +351,7 @@
|
|||||||
<string name="delivered_on">Delivered on %s</string>
|
<string name="delivered_on">Delivered on %s</string>
|
||||||
<string name="title_dynamic_frudis">Frudis customizations</string>
|
<string name="title_dynamic_frudis">Frudis customizations</string>
|
||||||
|
|
||||||
<string name="batch_lot_not_enabled">Batch lot <b>%s</b> is inactive. Continue?</string>
|
<string name="batch_lot_not_enabled"><![CDATA[Batch lot: <b>%s</b> is inactive.]]></string>
|
||||||
<string name="other">Other</string>
|
<string name="other">Other</string>
|
||||||
<string name="home">Home</string>
|
<string name="home">Home</string>
|
||||||
<string name="logout">Logout</string>
|
<string name="logout">Logout</string>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user