Vario
This commit is contained in:
parent
c2ab0c9ec1
commit
e5a4113968
@ -91,7 +91,7 @@ dependencies {
|
||||
implementation 'com.google.firebase:firebase-core:17.2.3'
|
||||
implementation 'com.google.firebase:firebase-crash:16.2.1'
|
||||
implementation 'com.google.firebase:firebase-perf:19.0.5'
|
||||
implementation 'com.google.firebase:firebase-crashlytics:17.0.0-beta01'
|
||||
implementation 'com.google.firebase:firebase-crashlytics:17.0.0-beta02'
|
||||
implementation 'androidx.appcompat:appcompat:1.1.0'
|
||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||
implementation 'com.google.android.material:material:1.1.0'
|
||||
@ -145,6 +145,7 @@ dependencies {
|
||||
implementation project(':barcode_base_android_library')
|
||||
implementation project(':honeywellscannerlibrary')
|
||||
implementation project(':keyobardemulatorscannerlibrary')
|
||||
implementation 'com.kroegerama:barcode-kaiteki:1.1.1'
|
||||
androidTestImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
|
||||
androidTestImplementation 'org.testng:testng:7.1.0'
|
||||
}
|
||||
|
||||
@ -38,6 +38,7 @@ import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
|
||||
public class Converters {
|
||||
|
||||
@ -105,14 +106,18 @@ public class Converters {
|
||||
TextWatcherAdapter watcher = new TextWatcherAdapter() {
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
observableBigDecimal.set(new BigDecimal(s.toString()));
|
||||
BigDecimal value = null;
|
||||
if(!UtilityString.isNullOrEmpty(s.toString())) value = new BigDecimal(s.toString());
|
||||
observableBigDecimal.set(value);
|
||||
}
|
||||
};
|
||||
view.setTag(R.id.bound_observable, new Pair<>(observableBigDecimal, watcher));
|
||||
view.addTextChangedListener(watcher);
|
||||
}
|
||||
BigDecimal newValue = observableBigDecimal.get();
|
||||
if(view.getText().toString().trim().length() > 0 && !UtilityBigDecimal.equalsTo(new BigDecimal(view.getText().toString()), newValue)) {
|
||||
BigDecimal viewValue = view.getText().toString().trim().length() > 0 ? new BigDecimal(view.getText().toString()) : BigDecimal.ZERO;
|
||||
|
||||
if(!UtilityBigDecimal.equalsTo(viewValue, newValue)) {
|
||||
view.setText(UtilityNumber.decimalToString(newValue));
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ import android.os.Parcelable;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
|
||||
@ -12,7 +13,7 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
* Created by GiuseppeS on 06/03/2018.
|
||||
*/
|
||||
|
||||
public class MtbAart implements Parcelable{
|
||||
public class MtbAart extends EntityBase{
|
||||
|
||||
private String codMart;
|
||||
private String descrizione;
|
||||
@ -91,102 +92,22 @@ public class MtbAart implements Parcelable{
|
||||
private String marchio;
|
||||
private Integer sezione;
|
||||
|
||||
private List<MtbUntMis> mtbUntMis;
|
||||
|
||||
public MtbAart(){}
|
||||
|
||||
public MtbAart() {
|
||||
this.type = "mtb_aart";
|
||||
}
|
||||
|
||||
public boolean isFlagTracciabilita() {
|
||||
return flagTracciabilita != null && flagTracciabilita.equalsIgnoreCase("S");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
protected MtbAart(Parcel in) {
|
||||
codMart = in.readString();
|
||||
descrizione = in.readString();
|
||||
untMis = in.readString();
|
||||
barCode = in.readString();
|
||||
pesoKg = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
qtaCnf = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
codAliq = in.readString();
|
||||
codScoArt = in.readString();
|
||||
codTcolUi = in.readString();
|
||||
codTcolUl = in.readString();
|
||||
articoloComposto = in.readString();
|
||||
esposizioneComp = in.readString();
|
||||
descrizioneEstesa = in.readString();
|
||||
codUltForn = in.readString();
|
||||
dataUltCar = in.readString();
|
||||
valUltCar = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
codUltClie = in.readString();
|
||||
dataUltScar = in.readString();
|
||||
valUltScar = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
tipoCodice = in.readString();
|
||||
note = in.readString();
|
||||
posizione = in.readString();
|
||||
colliPedana = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
untMis2 = in.readString();
|
||||
rapConv2 = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
flagInclListino = in.readString();
|
||||
untMis3 = in.readString();
|
||||
rapConv3 = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
codMartStat = in.readString();
|
||||
codMcon = in.readString();
|
||||
codMgrp = in.readString();
|
||||
codMsfa = in.readString();
|
||||
codMsgr = in.readString();
|
||||
codMstp = in.readString();
|
||||
codMtip = in.readString();
|
||||
descrizioneStat = in.readString();
|
||||
flagStato = in.readString();
|
||||
cambioDiviCar = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
cambioDiviScar = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
ggScadPartita = in.readByte() == 0x00 ? null : in.readInt();
|
||||
volumeMc = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
flagEsponiPrz = in.readString();
|
||||
dataUltVar = in.readString();
|
||||
percSfrido = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
codBarreImb = in.readString();
|
||||
flagCalcPrz = in.readString();
|
||||
esposizioneCompAcq = in.readString();
|
||||
flagCalcPrzAcq = in.readString();
|
||||
diacod = in.readString();
|
||||
plu = in.readString();
|
||||
partIvaProd = in.readString();
|
||||
ragSocProd = in.readString();
|
||||
flagRapConvVariabile = in.readString();
|
||||
flagMovArtMag = in.readString();
|
||||
flagTracciabilita = in.readString();
|
||||
taraKg = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
colliStrato = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
flagQtaCnfFissa = in.readString();
|
||||
flagColliPedanaFisso = in.readString();
|
||||
codCconCosti = in.readString();
|
||||
codCconRicavi = in.readString();
|
||||
codDgrpArt = in.readString();
|
||||
codDiviCar = in.readString();
|
||||
codDiviScar = in.readString();
|
||||
codEcrCat = in.readString();
|
||||
codEcrMcat = in.readString();
|
||||
codEcrRep = in.readString();
|
||||
codEcrStipo = in.readString();
|
||||
codEcrTipo = in.readString();
|
||||
codGrpBolla = in.readString();
|
||||
ingredienti = in.readString();
|
||||
idArtEqui = in.readString();
|
||||
descrCassa = in.readString();
|
||||
codNcIntracee = in.readString();
|
||||
marchio = in.readString();
|
||||
sezione = in.readByte() == 0x00 ? null : in.readInt();
|
||||
public boolean isFlagQtaCnfFissaBoolean() {
|
||||
return "S".equalsIgnoreCase(flagQtaCnfFissa);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
@ -709,10 +630,6 @@ public class MtbAart implements Parcelable{
|
||||
return flagQtaCnfFissa;
|
||||
}
|
||||
|
||||
public boolean getFlagQtaCnfFissaBoolean() {
|
||||
return "S".equalsIgnoreCase(flagQtaCnfFissa);
|
||||
}
|
||||
|
||||
public MtbAart setFlagQtaCnfFissa(String flagQtaCnfFissa) {
|
||||
this.flagQtaCnfFissa = flagQtaCnfFissa;
|
||||
return this;
|
||||
@ -880,111 +797,12 @@ public class MtbAart implements Parcelable{
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
dest.writeString(codMart);
|
||||
dest.writeString(descrizione);
|
||||
dest.writeString(untMis);
|
||||
dest.writeString(barCode);
|
||||
dest.writeValue(pesoKg);
|
||||
dest.writeValue(qtaCnf);
|
||||
dest.writeString(codAliq);
|
||||
dest.writeString(codScoArt);
|
||||
dest.writeString(codTcolUi);
|
||||
dest.writeString(codTcolUl);
|
||||
dest.writeString(articoloComposto);
|
||||
dest.writeString(esposizioneComp);
|
||||
dest.writeString(descrizioneEstesa);
|
||||
dest.writeString(codUltForn);
|
||||
dest.writeString(dataUltCar);
|
||||
dest.writeValue(valUltCar);
|
||||
dest.writeString(codUltClie);
|
||||
dest.writeString(dataUltScar);
|
||||
dest.writeValue(valUltScar);
|
||||
dest.writeString(tipoCodice);
|
||||
dest.writeString(note);
|
||||
dest.writeString(posizione);
|
||||
dest.writeValue(colliPedana);
|
||||
dest.writeString(untMis2);
|
||||
dest.writeValue(rapConv2);
|
||||
dest.writeString(flagInclListino);
|
||||
dest.writeString(untMis3);
|
||||
dest.writeValue(rapConv3);
|
||||
dest.writeString(codMartStat);
|
||||
dest.writeString(codMcon);
|
||||
dest.writeString(codMgrp);
|
||||
dest.writeString(codMsfa);
|
||||
dest.writeString(codMsgr);
|
||||
dest.writeString(codMstp);
|
||||
dest.writeString(codMtip);
|
||||
dest.writeString(descrizioneStat);
|
||||
dest.writeString(flagStato);
|
||||
dest.writeValue(cambioDiviCar);
|
||||
dest.writeValue(cambioDiviScar);
|
||||
if (ggScadPartita == null) {
|
||||
dest.writeByte((byte) (0x00));
|
||||
} else {
|
||||
dest.writeByte((byte) (0x01));
|
||||
dest.writeInt(ggScadPartita);
|
||||
}
|
||||
dest.writeValue(volumeMc);
|
||||
dest.writeString(flagEsponiPrz);
|
||||
dest.writeString(dataUltVar);
|
||||
dest.writeValue(percSfrido);
|
||||
dest.writeString(codBarreImb);
|
||||
dest.writeString(flagCalcPrz);
|
||||
dest.writeString(esposizioneCompAcq);
|
||||
dest.writeString(flagCalcPrzAcq);
|
||||
dest.writeString(diacod);
|
||||
dest.writeString(plu);
|
||||
dest.writeString(partIvaProd);
|
||||
dest.writeString(ragSocProd);
|
||||
dest.writeString(flagRapConvVariabile);
|
||||
dest.writeString(flagMovArtMag);
|
||||
dest.writeString(flagTracciabilita);
|
||||
dest.writeValue(taraKg);
|
||||
dest.writeValue(colliStrato);
|
||||
dest.writeString(flagQtaCnfFissa);
|
||||
dest.writeString(flagColliPedanaFisso);
|
||||
dest.writeString(codCconCosti);
|
||||
dest.writeString(codCconRicavi);
|
||||
dest.writeString(codDgrpArt);
|
||||
dest.writeString(codDiviCar);
|
||||
dest.writeString(codDiviScar);
|
||||
dest.writeString(codEcrCat);
|
||||
dest.writeString(codEcrMcat);
|
||||
dest.writeString(codEcrRep);
|
||||
dest.writeString(codEcrStipo);
|
||||
dest.writeString(codEcrTipo);
|
||||
dest.writeString(codGrpBolla);
|
||||
dest.writeString(ingredienti);
|
||||
dest.writeString(idArtEqui);
|
||||
dest.writeString(descrCassa);
|
||||
dest.writeString(codNcIntracee);
|
||||
dest.writeString(marchio);
|
||||
if (sezione == null) {
|
||||
dest.writeByte((byte) (0x00));
|
||||
} else {
|
||||
dest.writeByte((byte) (0x01));
|
||||
dest.writeInt(sezione);
|
||||
public List<MtbUntMis> getMtbUntMis() {
|
||||
return mtbUntMis;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public MtbAart setMtbUntMis(List<MtbUntMis> mtbUntMis) {
|
||||
this.mtbUntMis = mtbUntMis;
|
||||
return this;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public static final Parcelable.Creator<MtbAart> CREATOR = new Parcelable.Creator<MtbAart>() {
|
||||
@Override
|
||||
public MtbAart createFromParcel(Parcel in) {
|
||||
return new MtbAart(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MtbAart[] newArray(int size) {
|
||||
return new MtbAart[size];
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,75 @@
|
||||
package it.integry.integrywmsnative.core.model;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
public class MtbUntMis extends EntityBase {
|
||||
|
||||
private String untMis;
|
||||
private String flagDig;
|
||||
private BigDecimal cifreDec;
|
||||
private String tipoUm;
|
||||
private String flagUnitaKg;
|
||||
private String flagAttivo;
|
||||
|
||||
public MtbUntMis() {
|
||||
this.type = "mtb_unt_mis";
|
||||
}
|
||||
|
||||
public String getUntMis() {
|
||||
return untMis;
|
||||
}
|
||||
|
||||
public MtbUntMis setUntMis(String untMis) {
|
||||
this.untMis = untMis;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagDig() {
|
||||
return "S".equalsIgnoreCase(flagDig);
|
||||
}
|
||||
|
||||
public String getFlagDig() {
|
||||
return flagDig;
|
||||
}
|
||||
|
||||
public MtbUntMis setFlagDig(String flagDig) {
|
||||
this.flagDig = flagDig;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getCifreDec() {
|
||||
return cifreDec;
|
||||
}
|
||||
|
||||
public MtbUntMis setCifreDec(BigDecimal cifreDec) {
|
||||
this.cifreDec = cifreDec;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTipoUm() {
|
||||
return tipoUm;
|
||||
}
|
||||
|
||||
public MtbUntMis setTipoUm(String tipoUm) {
|
||||
this.tipoUm = tipoUm;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFlagUnitaKg() {
|
||||
return flagUnitaKg;
|
||||
}
|
||||
|
||||
public MtbUntMis setFlagUnitaKg(String flagUnitaKg) {
|
||||
this.flagUnitaKg = flagUnitaKg;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFlagAttivo() {
|
||||
return flagAttivo;
|
||||
}
|
||||
|
||||
public MtbUntMis setFlagAttivo(String flagAttivo) {
|
||||
this.flagAttivo = flagAttivo;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@ -14,6 +14,7 @@ public class SitArtOrdDTO {
|
||||
private String partitaMag;
|
||||
private BigDecimal qtaOrd;
|
||||
private BigDecimal numCnfOrd;
|
||||
private BigDecimal qtaCnfOrd;
|
||||
private String idViaggio;
|
||||
private String codMdep;
|
||||
|
||||
@ -98,6 +99,15 @@ public class SitArtOrdDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaCnfOrd() {
|
||||
return qtaCnfOrd;
|
||||
}
|
||||
|
||||
public SitArtOrdDTO setQtaCnfOrd(BigDecimal qtaCnfOrd) {
|
||||
this.qtaCnfOrd = qtaCnfOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getIdViaggio() {
|
||||
return idViaggio;
|
||||
}
|
||||
|
||||
@ -25,4 +25,11 @@ public class UtilityBigDecimal {
|
||||
return input.compareTo(toCompareWith) < 0;
|
||||
}
|
||||
|
||||
public static BigDecimal getLowerBetween(BigDecimal input1, BigDecimal input2) {
|
||||
if(input1 == null) return input2;
|
||||
if(input2 == null) return input1;
|
||||
|
||||
return lowerThan(input1, input2) ? input1 : input2;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package it.integry.integrywmsnative.core.utility;
|
||||
|
||||
import com.google.firebase.crashlytics.FirebaseCrashlytics;
|
||||
import com.orhanobut.logger.Logger;
|
||||
|
||||
import java.io.IOException;
|
||||
@ -40,37 +41,42 @@ public class UtilityLogger {
|
||||
}
|
||||
|
||||
public static void errorMe(Exception ex, String additionalText, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||
if ((!(ex instanceof SocketTimeoutException) && !(ex.getCause() instanceof SocketTimeoutException)) ||
|
||||
(!(ex instanceof SocketException) && !(ex.getCause() instanceof SocketException)) ||
|
||||
(!(ex instanceof IOException) && !(ex.getCause() instanceof IOException))) {
|
||||
FirebaseCrashlytics.getInstance().recordException(ex);
|
||||
|
||||
String message = UtilityResources.readRawTextFile(R.raw.error_mail);
|
||||
|
||||
message = message.replace("__APP_NAME__", UtilityResources.getString(R.string.app_name));
|
||||
message = message.replace("__APP_PACKAGE__", UtilityResources.getPackageName());
|
||||
|
||||
String appVersion = UtilityResources.getAppVersion();
|
||||
message = message.replace("__APP_VERSION__", appVersion == null ? "" : appVersion);
|
||||
message = message.replace("__APP_VERSION_CODE__", "" + UtilityResources.getAppVersionCode());
|
||||
|
||||
|
||||
message = message.replaceAll("__ERROR_TITLE__", ex.getMessage());
|
||||
|
||||
message = message.replaceAll("__ERROR_DETAIL__", additionalText == null ? "" : additionalText);
|
||||
|
||||
|
||||
StringWriter sw = new StringWriter();
|
||||
ex.printStackTrace(new PrintWriter(sw));
|
||||
|
||||
message = message.replace("__ERROR_STACKTRACE__", sw.toString());
|
||||
|
||||
String currentAzienda = UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB) ? "" : SettingsManager.i().userSession.profileDB;
|
||||
message = message.replace("__CUSTOMER_NAME__", currentAzienda);
|
||||
|
||||
message = message.replace("__ERROR_DATE__", UtilityDate.formatDate(UtilityDate.getDateInstance(), UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH));
|
||||
|
||||
SystemRESTConsumer.sendErrorLogMail(message, onComplete, onFailed);
|
||||
}
|
||||
// if ((!(ex instanceof SocketTimeoutException) && !(ex.getCause() instanceof SocketTimeoutException)) ||
|
||||
// (!(ex instanceof SocketException) && !(ex.getCause() instanceof SocketException)) ||
|
||||
// (!(ex instanceof IOException) && !(ex.getCause() instanceof IOException))) {
|
||||
//
|
||||
// if(ex.getMessage().contains("SocketTimeoutException")) return;
|
||||
//
|
||||
//
|
||||
// String message = UtilityResources.readRawTextFile(R.raw.error_mail);
|
||||
//
|
||||
// message = message.replace("__APP_NAME__", UtilityResources.getString(R.string.app_name));
|
||||
// message = message.replace("__APP_PACKAGE__", UtilityResources.getPackageName());
|
||||
//
|
||||
// String appVersion = UtilityResources.getAppVersion();
|
||||
// message = message.replace("__APP_VERSION__", appVersion == null ? "" : appVersion);
|
||||
// message = message.replace("__APP_VERSION_CODE__", "" + UtilityResources.getAppVersionCode());
|
||||
//
|
||||
//
|
||||
// message = message.replaceAll("__ERROR_TITLE__", ex.getMessage());
|
||||
//
|
||||
// message = message.replaceAll("__ERROR_DETAIL__", additionalText == null ? "" : additionalText);
|
||||
//
|
||||
//
|
||||
// StringWriter sw = new StringWriter();
|
||||
// ex.printStackTrace(new PrintWriter(sw));
|
||||
//
|
||||
// message = message.replace("__ERROR_STACKTRACE__", sw.toString());
|
||||
//
|
||||
// String currentAzienda = UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB) ? "" : SettingsManager.i().userSession.profileDB;
|
||||
// message = message.replace("__CUSTOMER_NAME__", currentAzienda);
|
||||
//
|
||||
// message = message.replace("__ERROR_DATE__", UtilityDate.formatDate(UtilityDate.getDateInstance(), UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH));
|
||||
//
|
||||
// SystemRESTConsumer.sendErrorLogMail(message, onComplete, onFailed);
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -784,7 +784,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
//if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
|
||||
dto.setQtaTot(new BigDecimal(ean128Model.Count));
|
||||
|
||||
if (!item.getMtbAart().getFlagQtaCnfFissaBoolean()) {
|
||||
if (!item.getMtbAart().isFlagQtaCnfFissaBoolean()) {
|
||||
dto.setQtaCnf(new BigDecimal(ean128Model.Count));
|
||||
}
|
||||
//} else {
|
||||
@ -827,7 +827,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
.setCodJcom(item.getCodJcom())
|
||||
.setRigaOrd(item.getRigaOrd());
|
||||
|
||||
if (!item.getMtbAart().getFlagQtaCnfFissaBoolean()) {
|
||||
if (!item.getMtbAart().isFlagQtaCnfFissaBoolean()) {
|
||||
mtbColr.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal());
|
||||
}
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ public class ContenutoBancaleListAdapter extends RecyclerView.Adapter<ContenutoB
|
||||
|
||||
|
||||
//Setting qty with unt_mis
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().getFlagQtaCnfFissaBoolean())){
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
||||
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
|
||||
|
||||
if(mtbColr.getMtbAart() != null) {
|
||||
@ -78,7 +78,7 @@ public class ContenutoBancaleListAdapter extends RecyclerView.Adapter<ContenutoB
|
||||
holder.bind(mtbColr);
|
||||
|
||||
//Setting qty with unt_mis
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().getFlagQtaCnfFissaBoolean())){
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
||||
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
|
||||
|
||||
if(mtbColr.getMtbAart() != null) {
|
||||
|
||||
@ -36,7 +36,7 @@ public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLibero
|
||||
public void bind(MtbColr mtbColr) {
|
||||
|
||||
//Setting qty with unt_mis
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().getFlagQtaCnfFissaBoolean())){
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
||||
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
|
||||
|
||||
if(mtbColr.getMtbAart() != null) {
|
||||
|
||||
@ -138,7 +138,7 @@ public class PickingResiListAdapter extends SectionedRecyclerViewAdapter<Picking
|
||||
|
||||
|
||||
//Setting qty with unt_mis
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (dtbDocr.getMtbAart() == null || dtbDocr.getMtbAart().getFlagQtaCnfFissaBoolean())){
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (dtbDocr.getMtbAart() == null || dtbDocr.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
||||
holder.mBinding.qtaEvasa.setText(UtilityNumber.decimalToString(qtaColEvasa));
|
||||
holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(dtbDocr.getQtaDoc()));
|
||||
holder.mBinding.untMis.setText(dtbDocr.getUntDoc());
|
||||
|
||||
@ -103,7 +103,7 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
|
||||
for (CheckableOrdineLavoro c : ordiniSelezionati) {
|
||||
BigDecimal usedCol, usedCnf;
|
||||
float perc = (c.getItem().getOrdineLav().getHrNum() * 100) / totalHr;
|
||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.getMtbAart() != null && !mtbColr.getMtbAart().getFlagQtaCnfFissaBoolean()) ){
|
||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.getMtbAart() != null && !mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean()) ){
|
||||
usedCnf = residuoCnf.multiply(BigDecimal.valueOf(perc)).divide(BigDecimal.valueOf(100)).setScale(0, BigDecimal.ROUND_FLOOR);
|
||||
if (usedCnf.compareTo(BigDecimal.ZERO) <= 0 && offsetCnf.compareTo(BigDecimal.ZERO) > 0){
|
||||
usedCnf = BigDecimal.ONE;
|
||||
@ -127,7 +127,7 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
|
||||
majorOrder = ordiniSelezionati.get(0);
|
||||
}
|
||||
if (offsetCnf.floatValue() != 0 || offsetCol.floatValue() != 0){
|
||||
if ( SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.getMtbAart() != null && !mtbColr.getMtbAart().getFlagQtaCnfFissaBoolean())) {
|
||||
if ( SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.getMtbAart() != null && !mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||
majorOrder.setNumCnf(majorOrder.getNumCnf().get() + offsetCnf.floatValue());
|
||||
majorOrder.setQtaCol(majorOrder.getQtaCol().get() + offsetCol.floatValue());
|
||||
} else {
|
||||
@ -154,7 +154,7 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
|
||||
mViewDataBinding.setMtbColr(mtbColr);
|
||||
mViewDataBinding.executePendingBindings();
|
||||
|
||||
if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().getFlagQtaCnfFissaBoolean())) {
|
||||
if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||
String text = UtilityNumber.decimalToString(checkableOrdineLavoro.getQtaCol().get());
|
||||
|
||||
if (mtbColr.getMtbAart() != null) {
|
||||
|
||||
@ -71,7 +71,7 @@ public class ProdVersamentoMaterialViewModel {
|
||||
mBinding.descrArt.setText(mtbColr.getDescrizione());
|
||||
mBinding.codArt.setText(mtbColr.getCodMart());
|
||||
mBinding.batch.setText(mtbColr.getPartitaMag() + ((mtbColr.getRifPartitaMag() != null) ? " - "+ mtbColr.getRifPartitaMag().getDescrizione() : ""));
|
||||
if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().getFlagQtaCnfFissaBoolean())) {
|
||||
if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
|
||||
|
||||
if (mtbColr.getMtbAart() != null) {
|
||||
|
||||
@ -66,7 +66,7 @@ public class RettificaGiacenzeMainListAdapter extends RecyclerView.Adapter<Retti
|
||||
holder.bind(mtbColr);
|
||||
|
||||
//Setting qty with unt_mis
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().getFlagQtaCnfFissaBoolean())){
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
||||
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
|
||||
|
||||
if(mtbColr.getMtbAart() != null) {
|
||||
|
||||
@ -78,7 +78,7 @@ public class VenditaOrdineInevasoHelper {
|
||||
if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
|
||||
PickingObjectDTOOld tmpItem = tmpList.get(i);
|
||||
|
||||
tmpItem.setHidden(tmpItem.getQtaCollo().compareTo(BigDecimal.ZERO) <= 0 || (!tmpItem.getMtbAart().getFlagQtaCnfFissaBoolean() && tmpItem.getNumCnfCollo().compareTo(BigDecimal.ZERO) <= 0));
|
||||
tmpItem.setHidden(tmpItem.getQtaCollo().compareTo(BigDecimal.ZERO) <= 0 || (!tmpItem.getMtbAart().isFlagQtaCnfFissaBoolean() && tmpItem.getNumCnfCollo().compareTo(BigDecimal.ZERO) <= 0));
|
||||
tmpItem.setTempHidden(false);
|
||||
}
|
||||
}
|
||||
@ -161,7 +161,7 @@ public class VenditaOrdineInevasoHelper {
|
||||
|
||||
|
||||
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (currentItem.getMtbAart() == null || currentItem.getMtbAart().getFlagQtaCnfFissaBoolean())){
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (currentItem.getMtbAart() == null || currentItem.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
||||
rowModel.setQtaOrdinata(currentItem.getNumCollo() != null ? currentItem.getQtaCollo() : currentItem.getQtaOrd());
|
||||
rowModel.setQtaRiservata(currentQtaColEvasa);
|
||||
|
||||
|
||||
@ -1145,7 +1145,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
boolean useQtaDaEvadere = false;
|
||||
|
||||
if(tmpPickData.getQtaTot() != null) {
|
||||
useQtaDaEvadere = qtaDaEvadere.floatValue() < tmpPickData.getQtaTot().floatValue() && item.getMtbAart().getFlagQtaCnfFissaBoolean();
|
||||
useQtaDaEvadere = qtaDaEvadere.floatValue() < tmpPickData.getQtaTot().floatValue() && item.getMtbAart().isFlagQtaCnfFissaBoolean();
|
||||
if (useQtaDaEvadere && !isTakenFromUL) {
|
||||
dto.setQtaTot(qtaDaEvadere);
|
||||
dto.setMaxQta(qtaDaEvadere);
|
||||
@ -1407,7 +1407,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
qtaDto.setNumCnf(ean128Model.Count);
|
||||
}
|
||||
|
||||
if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0 && !mtbAart.getFlagQtaCnfFissaBoolean()) {
|
||||
if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0 && !mtbAart.isFlagQtaCnfFissaBoolean()) {
|
||||
qtaDto.setQtaTot(new BigDecimal(ean128Model.NetWeightKg));
|
||||
} else {
|
||||
qtaDto.setQtaTot(qtaDto.getQtaCnf().multiply(new BigDecimal(qtaDto.getNumCnf())));
|
||||
|
||||
@ -9,8 +9,14 @@ import android.app.Dialog;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
import com.google.zxing.Result;
|
||||
import com.kroegerama.kaiteki.bcode.BarcodeResultListener;
|
||||
import com.kroegerama.kaiteki.bcode.ui.BarcodeBottomSheet;
|
||||
import com.tfb.fbtoast.FBToast;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -43,12 +49,11 @@ import it.integry.integrywmsnative.gest.spedizione_new.core.SpedizioneListAdapte
|
||||
import it.integry.integrywmsnative.gest.spedizione_new.core.SpedizioneListModel;
|
||||
import it.integry.integrywmsnative.gest.spedizione_new.model.PickingObjectDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||
|
||||
public class SpedizioneActivity extends AppCompatActivity implements SpedizioneViewModel.Listeners {
|
||||
public class SpedizioneActivity extends AppCompatActivity implements SpedizioneViewModel.Listeners, BarcodeResultListener {
|
||||
|
||||
private ActivitySpedizioneBinding mBindings;
|
||||
|
||||
@ -63,6 +68,7 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
|
||||
public BindableBoolean noLUPresent = new BindableBoolean(true);
|
||||
|
||||
|
||||
private boolean mEnableGiacenza;
|
||||
private boolean mFlagShowCodForn;
|
||||
private int barcodeScannerIstanceID = -1;
|
||||
|
||||
@ -105,11 +111,12 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
|
||||
|
||||
|
||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||
boolean enableGiacenza = !SettingsManager.iDB().isFlagSpedizioneEnableFakeGiacenza();
|
||||
mEnableGiacenza = !SettingsManager.iDB().isFlagSpedizioneEnableFakeGiacenza();
|
||||
boolean enableCheckPartitaMag = SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV();
|
||||
boolean canOverflowOrderQuantity = SettingsManager.iDB().isFlagCanAddExtraQuantitySpedizione();
|
||||
|
||||
if(enableGiacenza) mCurrentProgress = UtilityProgress.createDefaultProgressDialog(this);
|
||||
mViewmodel.loadDataset(codMdep, enableGiacenza, enableCheckPartitaMag, mSitArtOrd, mTestateOrdini);
|
||||
if (mEnableGiacenza) mCurrentProgress = UtilityProgress.createDefaultProgressDialog(this);
|
||||
mViewmodel.init(codMdep, mEnableGiacenza, enableCheckPartitaMag, mSitArtOrd, mTestateOrdini, canOverflowOrderQuantity);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -136,7 +143,7 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
|
||||
this.mBindings.spedizionePickingList.setLayoutManager(new LinearLayoutManager(this));
|
||||
|
||||
spedizioneListAdapter.setOnItemClicked(clickedItem -> {
|
||||
if(!noLUPresent.get() && SettingsManager.iDB().isFlagSpedizioneEnableManualPick()) {
|
||||
if (!noLUPresent.get() && SettingsManager.iDB().isFlagSpedizioneEnableManualPick()) {
|
||||
this.mViewmodel.dispatchOrdineRow(clickedItem);
|
||||
}
|
||||
});
|
||||
@ -177,12 +184,12 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
|
||||
|
||||
boolean anyLUPresent = x.getMtbColts() != null && x.getMtbColts().size() > 0;
|
||||
|
||||
spedizioneListModel.setActive(anyLUPresent);
|
||||
spedizioneListModel.setActive(!mEnableGiacenza || anyLUPresent);
|
||||
|
||||
if (!anyLUPresent) {
|
||||
spedizioneListModel.setGroupTitle(getString(R.string.picking_not_available));
|
||||
spedizioneListModel.setGroupTitle(mEnableGiacenza ? getString(R.string.picking_not_available) : "");
|
||||
|
||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().getFlagQtaCnfFissaBoolean())) {
|
||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||
spedizioneListModel.setUntMis("col");
|
||||
spedizioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfOrd());
|
||||
} else {
|
||||
@ -208,7 +215,7 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
|
||||
|
||||
cloneModel.setSubDescrizione2(String.format(getString(R.string.lu_number_data_text), mtbColtToPick.getNumCollo(), UtilityDate.formatDate(mtbColtToPick.getDataColloD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
|
||||
|
||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().getFlagQtaCnfFissaBoolean())) {
|
||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||
cloneModel.setUntMis("col");
|
||||
cloneModel.setQtaTot(mtbColrToDispatch != null ? mtbColrToDispatch.getNumCnf() : x.getSitArtOrdDTO().getNumCnfOrd());
|
||||
} else {
|
||||
@ -273,6 +280,27 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
|
||||
}, BarcodeManager::enable).show();
|
||||
}
|
||||
|
||||
public void startCameraBarcode() {
|
||||
List<BarcodeFormat> availableBarcodeFormats = new ArrayList<>();
|
||||
availableBarcodeFormats.add(BarcodeFormat.QR_CODE);
|
||||
availableBarcodeFormats.add(BarcodeFormat.CODE_128);
|
||||
availableBarcodeFormats.add(BarcodeFormat.UPC_E);
|
||||
availableBarcodeFormats.add(BarcodeFormat.CODABAR);
|
||||
availableBarcodeFormats.add(BarcodeFormat.EAN_8);
|
||||
availableBarcodeFormats.add(BarcodeFormat.EAN_13);
|
||||
availableBarcodeFormats.add(BarcodeFormat.ITF);
|
||||
availableBarcodeFormats.add(BarcodeFormat.UPC_A);
|
||||
|
||||
BarcodeBottomSheet bbs = BarcodeBottomSheet.Companion.show(
|
||||
getSupportFragmentManager(),
|
||||
availableBarcodeFormats,
|
||||
false,
|
||||
"tag"
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void removeListFilter() {
|
||||
this.mViewmodel.resetMatchedRows();
|
||||
}
|
||||
@ -294,7 +322,7 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
|
||||
|
||||
@Override
|
||||
public void onDatasetLoaded() {
|
||||
if(mCurrentProgress != null) {
|
||||
if (mCurrentProgress != null) {
|
||||
mCurrentProgress.dismiss();
|
||||
mCurrentProgress = null;
|
||||
}
|
||||
@ -303,7 +331,6 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
|
||||
@Override
|
||||
public void onLUCreated(MtbColt mtbColt) {
|
||||
noLUPresent.set(false);
|
||||
|
||||
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||
}
|
||||
|
||||
@ -331,19 +358,44 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemDispatched(MtbAart mtbAart, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable) {
|
||||
public void onItemDispatched(MtbAart mtbAart,
|
||||
BigDecimal totalQtaOrd,
|
||||
BigDecimal totalNumCnfOrd,
|
||||
BigDecimal qtaCnfOrd,
|
||||
BigDecimal totalQtaToBeTaken,
|
||||
BigDecimal totalNumCnfToBeTaken,
|
||||
BigDecimal qtaCnfToBeTaken,
|
||||
BigDecimal totalQtaAvailable,
|
||||
BigDecimal totalNumCnfAvailable,
|
||||
BigDecimal qtaCnfAvailable,
|
||||
boolean canOverflowOrderQuantity) {
|
||||
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
||||
.setMtbAart(mtbAart)
|
||||
.setTotalQtaOrd(totalQtaOrd)
|
||||
.setTotalNumCnfOrd(totalNumCnfOrd)
|
||||
.setQtaCnfOrd(qtaCnfOrd)
|
||||
.setTotalQtaToBeTaken(totalQtaToBeTaken)
|
||||
.setTotalNumCnfToBeTaken(totalNumCnfToBeTaken)
|
||||
.setQtaCnfToBeTaken(qtaCnfToBeTaken)
|
||||
.setTotalQtaAvailable(totalQtaAvailable)
|
||||
.setTotalNumCnfAvailable(totalNumCnfAvailable);
|
||||
.setTotalNumCnfAvailable(totalNumCnfAvailable)
|
||||
.setQtaCnfAvailable(qtaCnfAvailable)
|
||||
.setCanOverflowOrderQuantity(canOverflowOrderQuantity);
|
||||
|
||||
DialogInputQuantityV2
|
||||
.newInstance(dialogInputQuantityV2DTO)
|
||||
.show(getSupportFragmentManager(), "tag");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBarcodeResult(@NotNull Result result) {
|
||||
String a = "";
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBarcodeScanCancelled() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,6 +25,7 @@ import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||
@ -48,7 +49,6 @@ import it.integry.integrywmsnative.gest.spedizione_new.exceptions.ScannedPositio
|
||||
import it.integry.integrywmsnative.gest.spedizione_new.model.PickDataDTO;
|
||||
import it.integry.integrywmsnative.gest.spedizione_new.model.PickingObjectDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
|
||||
|
||||
public class SpedizioneViewModel {
|
||||
|
||||
@ -69,6 +69,7 @@ public class SpedizioneViewModel {
|
||||
|
||||
private boolean mEnableGiacenza;
|
||||
private boolean mEnableCheckPartitaMag;
|
||||
private boolean mCanOverflowOrderQuantity;
|
||||
|
||||
private MtbColt mCurrentMtbColt = null;
|
||||
|
||||
@ -83,11 +84,12 @@ public class SpedizioneViewModel {
|
||||
}
|
||||
|
||||
|
||||
public void loadDataset(String codMdep, boolean enableGiacenza, boolean enableCheckPartitaMag, List<SitArtOrdDTO> pickingList, List<OrdineVenditaInevasoDTO> testateOrdini) {
|
||||
public void init(String codMdep, boolean enableGiacenza, boolean enableCheckPartitaMag, List<SitArtOrdDTO> pickingList, List<OrdineVenditaInevasoDTO> testateOrdini, boolean canOverflowOrderQuantity) {
|
||||
this.mDefaultCodMdep = codMdep;
|
||||
this.mTestateOrdini = testateOrdini;
|
||||
this.mEnableGiacenza = enableGiacenza;
|
||||
this.mEnableCheckPartitaMag = enableCheckPartitaMag;
|
||||
this.mCanOverflowOrderQuantity = canOverflowOrderQuantity;
|
||||
|
||||
if (enableGiacenza) {
|
||||
mOrdiniRestConsumerService.getSuggestedPickingList(this.mDefaultCodMdep, pickingList, pickingObjectList -> {
|
||||
@ -253,9 +255,19 @@ public class SpedizioneViewModel {
|
||||
for (Listeners listener : mListeners) listener.onFilterRemoved();
|
||||
}
|
||||
|
||||
private void sendOnItemDispatched(MtbAart mtbAart, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable) {
|
||||
private void sendOnItemDispatched(MtbAart mtbAart,
|
||||
BigDecimal totalQtaOrd,
|
||||
BigDecimal totalNumCnfOrd,
|
||||
BigDecimal qtaCnfOrd,
|
||||
BigDecimal totalQtaToBeTaken,
|
||||
BigDecimal totalNumCnfToBeTaken,
|
||||
BigDecimal qtaCnfToBeTaken,
|
||||
BigDecimal totalQtaAvailable,
|
||||
BigDecimal totalNumCnfAvailable,
|
||||
BigDecimal qtaCnfAvailable,
|
||||
boolean canOverflowOrderQuantity) {
|
||||
for (Listeners listener : mListeners)
|
||||
listener.onItemDispatched(mtbAart, totalQtaOrd, totalNumCnfOrd, totalQtaToBeTaken, totalNumCnfToBeTaken, qtaCnfToBeTaken, totalQtaAvailable, totalNumCnfAvailable);
|
||||
listener.onItemDispatched(mtbAart, totalQtaOrd, totalNumCnfOrd, qtaCnfOrd, totalQtaToBeTaken, totalNumCnfToBeTaken, qtaCnfToBeTaken, totalQtaAvailable, totalNumCnfAvailable, qtaCnfAvailable, canOverflowOrderQuantity);
|
||||
}
|
||||
|
||||
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
||||
@ -405,16 +417,12 @@ public class SpedizioneViewModel {
|
||||
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
|
||||
this.executeEtichettaLU(ean128Model.Sscc, onComplete);
|
||||
} else {
|
||||
|
||||
if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) {
|
||||
barcodeProd = barcodeProd.substring(1);
|
||||
}
|
||||
|
||||
this.loadArticolo(barcodeProd, PickingObjectDTOOld.PickData.fromEan128(ean128Model), onComplete);
|
||||
|
||||
this.loadArticolo(barcodeProd, PickDataDTO.fromEan128(ean128Model), onComplete);
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
//EAN 128 non completo o comunque mancano i riferimenti al prodotto
|
||||
onComplete.run();
|
||||
@ -427,13 +435,13 @@ public class SpedizioneViewModel {
|
||||
try {
|
||||
Ean13PesoModel ean13PesoModel = Ean13PesoModel.fromBarcode(barcodeScanDTO.getStringValue());
|
||||
|
||||
this.loadArticolo(ean13PesoModel.getPrecode(), PickingObjectDTOOld.PickData.fromEan128(ean13PesoModel.toEan128()), onComplete);
|
||||
this.loadArticolo(ean13PesoModel.getPrecode(), PickDataDTO.fromEan128(ean13PesoModel.toEan128()), onComplete);
|
||||
} catch (Exception ex) {
|
||||
this.sendError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
private void loadArticolo(String barcodeProd, PickingObjectDTOOld.PickData pickData, Runnable onComplete) {
|
||||
private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) {
|
||||
if (barcodeProd.length() == 14) {
|
||||
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
|
||||
}
|
||||
@ -447,8 +455,6 @@ public class SpedizioneViewModel {
|
||||
}
|
||||
|
||||
}, this::sendError);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void searchArtFromUL(MtbColt scannedUL, Runnable onComplete) {
|
||||
@ -517,29 +523,22 @@ public class SpedizioneViewModel {
|
||||
}
|
||||
|
||||
|
||||
private void searchArtFromAnag(MtbAart mtbAart, PickingObjectDTOOld.PickData pickData, Runnable onComplete) {
|
||||
|
||||
private void searchArtFromAnag(MtbAart mtbAart, PickDataDTO pickData, Runnable onComplete) {
|
||||
final List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
||||
|
||||
// List<PickingObjectDTO> matchPickingObject = Stream.of(pickingList)
|
||||
// .filter(x -> x.getNumCollo() == null &&
|
||||
// (mtbAart.getCodMart().equalsIgnoreCase(x.getCodMart())))
|
||||
// .toList();
|
||||
//
|
||||
//
|
||||
// if (SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV()) {
|
||||
// matchPickingObject = Stream.of(matchPickingObject)
|
||||
// .filter(x -> x.getCodMart().equalsIgnoreCase(mtbAart.getCodMart()) &&
|
||||
// (pickData != null && pickData.getMtbPartitaMag() != null && Objects.equals(x.getPartitaMag(), pickData.getMtbPartitaMag().getPartitaMag()))).toList();
|
||||
//
|
||||
// }
|
||||
//
|
||||
// if (matchPickingObject.size() == 1) {
|
||||
// matchPickingObject.get(0).setTempPickData(pickData);
|
||||
// }
|
||||
//
|
||||
// this.loadMatchedRows(matchPickingObject);
|
||||
List<PickingObjectDTO> matchPickingObject = Stream.of(pickingList)
|
||||
.filter(x -> UtilityString.equalsIgnoreCase(mtbAart.getCodMart(), x.getSitArtOrdDTO().getCodMart()))
|
||||
.filter(x -> {
|
||||
MtbPartitaMag mtbPartitaMag = pickData != null && pickData.getManualPickDTO() != null && pickData.getManualPickDTO().getMtbPartitaMag() != null ? pickData.getManualPickDTO().getMtbPartitaMag() : null;
|
||||
return !mEnableCheckPartitaMag || (mtbPartitaMag != null && UtilityString.equalsIgnoreCase(x.getSitArtOrdDTO().getPartitaMag(), mtbPartitaMag.getPartitaMag()));
|
||||
})
|
||||
.toList();
|
||||
|
||||
for(PickingObjectDTO pickingObjectDTO : matchPickingObject) {
|
||||
pickingObjectDTO.setTempPickData(pickData);
|
||||
}
|
||||
|
||||
this.loadMatchedRows(matchPickingObject);
|
||||
onComplete.run();
|
||||
}
|
||||
|
||||
@ -547,6 +546,8 @@ public class SpedizioneViewModel {
|
||||
private void loadMatchedRows(List<PickingObjectDTO> matchedRows) {
|
||||
if (matchedRows == null || matchedRows.size() == 0) {
|
||||
this.sendError(new NoArtsFoundException());
|
||||
} else if (matchedRows.size() == 1) {
|
||||
this.dispatchOrdineRow(matchedRows.get(0));
|
||||
} else {
|
||||
List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
||||
|
||||
@ -559,38 +560,6 @@ public class SpedizioneViewModel {
|
||||
this.sendFilterApplied(null);
|
||||
this.getPickingList().postValue(pickingList);
|
||||
|
||||
// if (matchedRows.size() == 1) {
|
||||
//
|
||||
// if (matchedRows.get(0).getTempPickData() != null &&
|
||||
// matchedRows.get(0).getTempPickData().getSourceMtbColt() != null) {
|
||||
//
|
||||
//// MtbColt tempSourceMtbColt = matchedRows.get(0).getTempPickData().getSourceMtbColt();
|
||||
//
|
||||
//// if (tempSourceMtbColt.getGestione().equals(matchedRows.get(0).getGestione()) &&
|
||||
//// tempSourceMtbColt.getNumCollo() == matchedRows.get(0).getNumCollo() &&
|
||||
//// tempSourceMtbColt.getSerCollo().equals(matchedRows.get(0).getSerCollo()) &&
|
||||
//// tempSourceMtbColt.getDataColloS().equals(matchedRows.get(0).getDataColloS())) {
|
||||
//
|
||||
// dispatchOrdineRow(matchedRows.get(0));
|
||||
//// } else {
|
||||
//// //Se sto pickando da una UL diversa da quella suggerita allora non te la apro in
|
||||
//// //automatico ma ti mostro il filtro
|
||||
//// applyFilter("");
|
||||
//// refreshOrderBy(false);
|
||||
//// }
|
||||
//
|
||||
// } else if (matchedRows.get(0).isDeactivated()) {
|
||||
// this.sendFilterChanged("");
|
||||
//// applyFilter("");
|
||||
//// refreshOrderBy(false);
|
||||
// } else {
|
||||
// dispatchOrdineRow(matchedRows.get(0));
|
||||
// }
|
||||
// } else {
|
||||
// this.sendFilterChanged("");
|
||||
//// applyFilter("");
|
||||
//// refreshOrderBy(false);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@ -599,6 +568,7 @@ public class SpedizioneViewModel {
|
||||
|
||||
BigDecimal totalQtaOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
|
||||
BigDecimal totalNumCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd();
|
||||
BigDecimal qtaCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaCnfOrd();
|
||||
|
||||
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal();
|
||||
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal();
|
||||
@ -609,6 +579,9 @@ public class SpedizioneViewModel {
|
||||
qtaColWithdrawRows.addAndGet(row.getQtaCol());
|
||||
});
|
||||
|
||||
BigDecimal numCnfDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd().subtract(numCnfWithdrawRows.getBigDecimalValue());
|
||||
BigDecimal qtaDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd().subtract(qtaColWithdrawRows.getBigDecimalValue());
|
||||
BigDecimal qtaCnfDaEvadere = qtaCnfOrd;
|
||||
|
||||
BigDecimal numCnfDaPrelevare = null;
|
||||
BigDecimal qtaColDaPrelevare = null;
|
||||
@ -617,21 +590,32 @@ public class SpedizioneViewModel {
|
||||
|
||||
BigDecimal totalQtaAvailable = null;
|
||||
BigDecimal totalNumCnfAvailable = null;
|
||||
BigDecimal qtaCnfAvailable = null;
|
||||
|
||||
|
||||
//TODO: Al posto di prelevare la prima riga bisognerebbe controllare se c'è ne una che corrisponde con la partita richiesta
|
||||
MtbColr mtbColrToDispatch = pickingObjectDTO.getTempPickData() != null &&
|
||||
pickingObjectDTO.getTempPickData().getSourceMtbColt() != null &&
|
||||
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr() != null &&
|
||||
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().size() > 0 ?
|
||||
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().get(0) : null;
|
||||
|
||||
|
||||
if (mtbColrToDispatch != null) {
|
||||
numCnfDaPrelevare = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd().subtract(numCnfWithdrawRows.getBigDecimalValue());
|
||||
qtaColDaPrelevare = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd().subtract(qtaColWithdrawRows.getBigDecimalValue());
|
||||
// qtaCnfDaPrelevare = mtbColrToDispatch.getQtaCnfCollo();
|
||||
if(UtilityBigDecimal.lowerThan(mtbColrToDispatch.getQtaCol(), qtaDaEvadere)) {
|
||||
numCnfDaPrelevare = mtbColrToDispatch.getNumCnf();
|
||||
qtaColDaPrelevare = mtbColrToDispatch.getQtaCol();
|
||||
qtaCnfDaPrelevare = mtbColrToDispatch.getQtaCnf();
|
||||
} else {
|
||||
numCnfDaPrelevare = numCnfDaEvadere;
|
||||
qtaColDaPrelevare = qtaDaEvadere;
|
||||
qtaCnfDaPrelevare = qtaCnfDaEvadere;
|
||||
}
|
||||
|
||||
|
||||
totalQtaAvailable = mtbColrToDispatch.getQtaCol();
|
||||
totalNumCnfAvailable = mtbColrToDispatch.getNumCnf();
|
||||
qtaCnfAvailable = mtbColrToDispatch.getQtaCnf();
|
||||
|
||||
|
||||
if (UtilityBigDecimal.lowerThan(numCnfDaPrelevare, BigDecimal.ZERO))
|
||||
@ -640,9 +624,20 @@ public class SpedizioneViewModel {
|
||||
if (UtilityBigDecimal.lowerThan(qtaColDaPrelevare, BigDecimal.ZERO))
|
||||
qtaColDaPrelevare = BigDecimal.ZERO;
|
||||
|
||||
}
|
||||
} //Oppure le info del barcode scansionato
|
||||
|
||||
this.sendOnItemDispatched(pickingObjectDTO.getMtbAart(), totalQtaOrd, totalNumCnfOrd, qtaColDaPrelevare, numCnfDaPrelevare, qtaCnfDaPrelevare, totalQtaAvailable, totalNumCnfAvailable);
|
||||
this.sendOnItemDispatched(
|
||||
pickingObjectDTO.getMtbAart(),
|
||||
totalQtaOrd,
|
||||
totalNumCnfOrd,
|
||||
qtaCnfOrd,
|
||||
qtaColDaPrelevare,
|
||||
numCnfDaPrelevare,
|
||||
qtaCnfDaPrelevare,
|
||||
totalQtaAvailable,
|
||||
totalNumCnfAvailable,
|
||||
qtaCnfAvailable,
|
||||
mCanOverflowOrderQuantity);
|
||||
}
|
||||
|
||||
|
||||
@ -667,16 +662,13 @@ public class SpedizioneViewModel {
|
||||
mtbColt.generaFiltroOrdineFromDTO(mDefaultFiltroOrdine);
|
||||
|
||||
ColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
|
||||
|
||||
mtbColt
|
||||
.setNumCollo(value.getNumCollo())
|
||||
.setDataCollo(value.getDataColloS())
|
||||
.setMtbColr(new ObservableArrayList<>());
|
||||
|
||||
|
||||
this.mCurrentMtbColt = mtbColt;
|
||||
|
||||
|
||||
mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(mtbColt, mTestateOrdini);
|
||||
|
||||
if (onComplete != null) onComplete.run();
|
||||
@ -686,7 +678,7 @@ public class SpedizioneViewModel {
|
||||
}
|
||||
|
||||
public void resetMatchedRows() {
|
||||
for(PickingObjectDTO pickingObjectDTO : this.mPickingList.getValue()) {
|
||||
for (PickingObjectDTO pickingObjectDTO : this.mPickingList.getValue()) {
|
||||
pickingObjectDTO
|
||||
.setTempPickData(null)
|
||||
.setHidden(false);
|
||||
@ -718,7 +710,17 @@ public class SpedizioneViewModel {
|
||||
|
||||
void onError(Exception ex);
|
||||
|
||||
void onItemDispatched(MtbAart mtbAart, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable);
|
||||
void onItemDispatched(MtbAart mtbAart,
|
||||
BigDecimal totalQtaOrd,
|
||||
BigDecimal totalNumCnfOrd,
|
||||
BigDecimal qtaCnfOrd,
|
||||
BigDecimal totalQtaToBeTaken,
|
||||
BigDecimal totalNumCnfToBeTaken,
|
||||
BigDecimal qtaCnfToBeTaken,
|
||||
BigDecimal totalQtaAvailable,
|
||||
BigDecimal totalNumCnfAvailable,
|
||||
BigDecimal qtaCnfAvailable,
|
||||
boolean canOverflowOrderQuantity);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,10 +1,17 @@
|
||||
package it.integry.integrywmsnative.gest.spedizione_new.model;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
||||
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
|
||||
public class PickDataDTO {
|
||||
|
||||
private MtbColt sourceMtbColt;
|
||||
private ManualPickDTO manualPickDTO;
|
||||
|
||||
public MtbColt getSourceMtbColt() {
|
||||
return sourceMtbColt;
|
||||
@ -14,4 +21,87 @@ public class PickDataDTO {
|
||||
this.sourceMtbColt = sourceMtbColt;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ManualPickDTO getManualPickDTO() {
|
||||
return manualPickDTO;
|
||||
}
|
||||
|
||||
public PickDataDTO setManualPickDTO(ManualPickDTO manualPickDTO) {
|
||||
this.manualPickDTO = manualPickDTO;
|
||||
return this;
|
||||
}
|
||||
|
||||
public static PickDataDTO fromEan128(Ean128Model ean128Model) {
|
||||
if (ean128Model == null) return null;
|
||||
|
||||
PickDataDTO pickDataDTO = new PickDataDTO();
|
||||
ManualPickDTO manualPickDTO = new ManualPickDTO();
|
||||
pickDataDTO.setManualPickDTO(manualPickDTO);
|
||||
|
||||
String partitaMag = ean128Model.BatchLot;
|
||||
String dataScad = !UtilityString.isNullOrEmpty(ean128Model.BestBefore) ? ean128Model.BestBefore : ean128Model.Expiry;
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(partitaMag)) {
|
||||
MtbPartitaMag mtbPartitaMag = new MtbPartitaMag()
|
||||
.setPartitaMag(partitaMag)
|
||||
.setDataScad(UtilityDate.recognizeDateWithExceptionHandler(dataScad));
|
||||
|
||||
manualPickDTO.setMtbPartitaMag(mtbPartitaMag);
|
||||
}
|
||||
|
||||
if (ean128Model.Count != null && ean128Model.Count > 0) {
|
||||
manualPickDTO.setNumCnf(new BigDecimal(ean128Model.Count));
|
||||
}
|
||||
|
||||
if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0) {
|
||||
manualPickDTO.setQtaTot(new BigDecimal(ean128Model.NetWeightKg));
|
||||
manualPickDTO.setEanPeso(true);
|
||||
}
|
||||
|
||||
return pickDataDTO;
|
||||
}
|
||||
|
||||
public static class ManualPickDTO {
|
||||
|
||||
private MtbPartitaMag mtbPartitaMag;
|
||||
private BigDecimal numCnf;
|
||||
private BigDecimal qtaTot;
|
||||
private boolean eanPeso;
|
||||
|
||||
public MtbPartitaMag getMtbPartitaMag() {
|
||||
return mtbPartitaMag;
|
||||
}
|
||||
|
||||
public ManualPickDTO setMtbPartitaMag(MtbPartitaMag mtbPartitaMag) {
|
||||
this.mtbPartitaMag = mtbPartitaMag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getNumCnf() {
|
||||
return numCnf;
|
||||
}
|
||||
|
||||
public ManualPickDTO setNumCnf(BigDecimal numCnf) {
|
||||
this.numCnf = numCnf;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaTot() {
|
||||
return qtaTot;
|
||||
}
|
||||
|
||||
public ManualPickDTO setQtaTot(BigDecimal qtaTot) {
|
||||
this.qtaTot = qtaTot;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isEanPeso() {
|
||||
return eanPeso;
|
||||
}
|
||||
|
||||
public ManualPickDTO setEanPeso(boolean eanPeso) {
|
||||
this.eanPeso = eanPeso;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@ public class ArticoliInColloBottomSheetMtbColrAdapter extends BaseAdapter {
|
||||
binding.setMtbColr(mtbColr);
|
||||
|
||||
//Setting qty with unt_mis
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().getFlagQtaCnfFissaBoolean())){
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
||||
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
|
||||
|
||||
|
||||
|
||||
@ -149,7 +149,7 @@ public class ArticoliInColloBottomSheetViewModel {
|
||||
|
||||
//Setting qty with unt_mis
|
||||
if(clickedItem.getMtbAart() != null) {
|
||||
if (clickedItem.getMtbAart().getFlagQtaCnfFissaBoolean()) {
|
||||
if (clickedItem.getMtbAart().isFlagQtaCnfFissaBoolean()) {
|
||||
mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()) + (!UtilityString.isNullOrEmpty(clickedItem.getMtbAart().getUntMis()) ? ("" + clickedItem.getMtbAart().getUntMis()) : ""));
|
||||
} else {
|
||||
mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getNumCnf()) + " " + mContext.getString(R.string.unt_mis_col));
|
||||
|
||||
@ -57,7 +57,7 @@ public class DialogBasketLU_Page2_ListAdapter extends RecyclerView.Adapter<Dialo
|
||||
holder.bind(mtbColr);
|
||||
|
||||
//Setting qty with unt_mis
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().getFlagQtaCnfFissaBoolean())){
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
||||
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
|
||||
|
||||
if(mtbColr.getMtbAart() != null) {
|
||||
|
||||
@ -77,7 +77,7 @@ public class DialogChooseArtsFromListaArtsAdapter extends RecyclerView.Adapter<D
|
||||
MtbColr mtbColr = checkableMtbColr.getItem().getMtbColr();
|
||||
|
||||
//Setting qty with unt_mis
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().getFlagQtaCnfFissaBoolean())){
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
||||
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
|
||||
|
||||
|
||||
|
||||
@ -346,7 +346,7 @@ public class DialogInputQuantity {
|
||||
|
||||
quantityDTO.qtaCnf.set(dto.mtbAart.getQtaCnf().floatValue());
|
||||
|
||||
if(dto.getMtbAart().getFlagQtaCnfFissaBoolean()) {
|
||||
if(dto.getMtbAart().isFlagQtaCnfFissaBoolean()) {
|
||||
quantityDTO.blockedQtaPerCnf.set(true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.text.InputType;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@ -15,14 +14,11 @@ import androidx.fragment.app.DialogFragment;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.model.MtbUntMis;
|
||||
import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding;
|
||||
|
||||
public class DialogInputQuantityV2 extends DialogFragment {
|
||||
|
||||
|
||||
private Dialog mDialog;
|
||||
private Context mContext;
|
||||
|
||||
private DialogInputQuantityV2ViewModel mViewModel;
|
||||
private DialogInputQuantityV2DTO mDialogInputQuantityV2DTO;
|
||||
|
||||
@ -47,22 +43,33 @@ public class DialogInputQuantityV2 extends DialogFragment {
|
||||
|
||||
bindings.toolbar.setTitle("Inserimento articolo");
|
||||
|
||||
this.mViewModel = new DialogInputQuantityV2ViewModel();
|
||||
this.mViewModel = new DialogInputQuantityV2ViewModel()
|
||||
.setMtbAart(mDialogInputQuantityV2DTO.getMtbAart())
|
||||
.setTotalNumCnfOrd(mDialogInputQuantityV2DTO.getTotalNumCnfOrd())
|
||||
.setTotalQtaOrd(mDialogInputQuantityV2DTO.getTotalQtaOrd())
|
||||
.setQtaCnfOrd(mDialogInputQuantityV2DTO.getQtaCnfOrd())
|
||||
.setTotalNumCnfToBeTaken(mDialogInputQuantityV2DTO.getTotalNumCnfToBeTaken())
|
||||
.setTotalQtaToBeTaken(mDialogInputQuantityV2DTO.getTotalQtaToBeTaken())
|
||||
.setQtaCnfToBeTaken(mDialogInputQuantityV2DTO.getQtaCnfToBeTaken())
|
||||
.setTotalNumCnfAvailable(mDialogInputQuantityV2DTO.getTotalNumCnfAvailable())
|
||||
.setTotalQtaAvailable(mDialogInputQuantityV2DTO.getTotalQtaAvailable())
|
||||
.setCanOverflowOrderQuantity(mDialogInputQuantityV2DTO.isCanOverflowOrderQuantity())
|
||||
.setQtaCnfAvailable(mDialogInputQuantityV2DTO.getQtaCnfAvailable());
|
||||
|
||||
this.mViewModel.setMtbAart(mDialogInputQuantityV2DTO.getMtbAart());
|
||||
this.mViewModel.setTotalNumCnfOrd(mDialogInputQuantityV2DTO.getTotalNumCnfOrd());
|
||||
this.mViewModel.setTotalQtaOrd(mDialogInputQuantityV2DTO.getTotalQtaOrd());
|
||||
this.mViewModel.setTotalNumCnfToBeTaken(mDialogInputQuantityV2DTO.getTotalNumCnfToBeTaken());
|
||||
this.mViewModel.setTotalQtaToBeTaken(mDialogInputQuantityV2DTO.getTotalQtaToBeTaken());
|
||||
this.mViewModel.setQtaCnfToBeTaken(mDialogInputQuantityV2DTO.getQtaCnfToBeTaken());
|
||||
this.mViewModel.setTotalNumCnfAvailable(mDialogInputQuantityV2DTO.getTotalNumCnfAvailable());
|
||||
this.mViewModel.setTotalQtaAvailable(mDialogInputQuantityV2DTO.getTotalQtaAvailable());
|
||||
|
||||
this.mViewModel.init();
|
||||
|
||||
bindings.setViewmodel(this.mViewModel);
|
||||
|
||||
MtbUntMis mtbUntMis = mDialogInputQuantityV2DTO.getMtbAart().getMtbUntMis() != null && mDialogInputQuantityV2DTO.getMtbAart().getMtbUntMis().size() > 0 ? mDialogInputQuantityV2DTO.getMtbAart().getMtbUntMis().get(0) : null;
|
||||
if(!(mtbUntMis != null && mtbUntMis.isFlagDig())) {
|
||||
bindings.inputQtaTotText.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_FLAG_DECIMAL);
|
||||
}
|
||||
|
||||
return bindings.getRoot();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
this.mViewModel.init();
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ public class DialogInputQuantityV2DTO {
|
||||
|
||||
private BigDecimal totalQtaOrd;
|
||||
private BigDecimal totalNumCnfOrd;
|
||||
private BigDecimal qtaCnfOrd;
|
||||
|
||||
private BigDecimal totalQtaToBeTaken;
|
||||
private BigDecimal totalNumCnfToBeTaken;
|
||||
@ -17,6 +18,9 @@ public class DialogInputQuantityV2DTO {
|
||||
|
||||
private BigDecimal totalQtaAvailable;
|
||||
private BigDecimal totalNumCnfAvailable;
|
||||
private BigDecimal qtaCnfAvailable;
|
||||
|
||||
private boolean canOverflowOrderQuantity;
|
||||
|
||||
public MtbAart getMtbAart() {
|
||||
return mtbAart;
|
||||
@ -45,6 +49,15 @@ public class DialogInputQuantityV2DTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaCnfOrd() {
|
||||
return qtaCnfOrd;
|
||||
}
|
||||
|
||||
public DialogInputQuantityV2DTO setQtaCnfOrd(BigDecimal qtaCnfOrd) {
|
||||
this.qtaCnfOrd = qtaCnfOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getTotalQtaToBeTaken() {
|
||||
return totalQtaToBeTaken;
|
||||
}
|
||||
@ -89,4 +102,22 @@ public class DialogInputQuantityV2DTO {
|
||||
this.totalNumCnfAvailable = totalNumCnfAvailable;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaCnfAvailable() {
|
||||
return qtaCnfAvailable;
|
||||
}
|
||||
|
||||
public DialogInputQuantityV2DTO setQtaCnfAvailable(BigDecimal qtaCnfAvailable) {
|
||||
this.qtaCnfAvailable = qtaCnfAvailable;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isCanOverflowOrderQuantity() {
|
||||
return canOverflowOrderQuantity;
|
||||
}
|
||||
|
||||
public DialogInputQuantityV2DTO setCanOverflowOrderQuantity(boolean canOverflowOrderQuantity) {
|
||||
this.canOverflowOrderQuantity = canOverflowOrderQuantity;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
|
||||
|
||||
import androidx.databinding.Observable;
|
||||
import androidx.databinding.ObservableField;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
||||
|
||||
public class DialogInputQuantityV2ViewModel {
|
||||
@ -14,6 +14,7 @@ public class DialogInputQuantityV2ViewModel {
|
||||
|
||||
public BigDecimal totalQtaOrd;
|
||||
public BigDecimal totalNumCnfOrd;
|
||||
public BigDecimal qtaCnfOrd;
|
||||
|
||||
public BigDecimal totalQtaToBeTaken;
|
||||
public BigDecimal totalNumCnfToBeTaken;
|
||||
@ -21,11 +22,13 @@ public class DialogInputQuantityV2ViewModel {
|
||||
|
||||
public BigDecimal totalQtaAvailable;
|
||||
public BigDecimal totalNumCnfAvailable;
|
||||
public BigDecimal qtaCnfAvailable;
|
||||
|
||||
public ObservableField<BigDecimal> currentNumCnf = new ObservableField<>();
|
||||
public ObservableField<BigDecimal> currentQtaCnf = new ObservableField<>();
|
||||
public ObservableField<BigDecimal> currentQtaTot = new ObservableField<>();
|
||||
|
||||
private boolean canOverflowOrderQuantity;
|
||||
|
||||
|
||||
public void init() {
|
||||
@ -39,13 +42,16 @@ public class DialogInputQuantityV2ViewModel {
|
||||
|
||||
this.currentQtaTot.set(totalQtaToBeTaken != null ? totalQtaToBeTaken : this.mtbAart.get().getQtaCnf());
|
||||
UtilityObservable.addPropertyChanged(this.currentQtaTot, this::onCurrentQtaTotChanged);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public void setMtbAart(MtbAart mtbAart) {
|
||||
public DialogInputQuantityV2ViewModel setMtbAart(MtbAart mtbAart) {
|
||||
this.mtbAart.set(mtbAart);
|
||||
return this;
|
||||
}
|
||||
|
||||
public DialogInputQuantityV2ViewModel setTotalQtaOrd(BigDecimal totalQtaOrd) {
|
||||
@ -58,6 +64,11 @@ public class DialogInputQuantityV2ViewModel {
|
||||
return this;
|
||||
}
|
||||
|
||||
public DialogInputQuantityV2ViewModel setQtaCnfOrd(BigDecimal qtaCnfOrd) {
|
||||
this.qtaCnfOrd = qtaCnfOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public DialogInputQuantityV2ViewModel setTotalQtaToBeTaken(BigDecimal totalQtaToBeTaken) {
|
||||
this.totalQtaToBeTaken = totalQtaToBeTaken;
|
||||
return this;
|
||||
@ -83,11 +94,25 @@ public class DialogInputQuantityV2ViewModel {
|
||||
return this;
|
||||
}
|
||||
|
||||
public DialogInputQuantityV2ViewModel setQtaCnfAvailable(BigDecimal qtaCnfAvailable) {
|
||||
this.qtaCnfAvailable = qtaCnfAvailable;
|
||||
return this;
|
||||
}
|
||||
|
||||
public DialogInputQuantityV2ViewModel setCanOverflowOrderQuantity(boolean canOverflowOrderQuantity) {
|
||||
this.canOverflowOrderQuantity = canOverflowOrderQuantity;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private void onCurrentNumCnfChanged(BigDecimal newValue) {
|
||||
String a = "";
|
||||
if(newValue == null) return;
|
||||
|
||||
if(UtilityBigDecimal.greaterThan(newValue, totalNumCnfAvailable)) newValue = totalNumCnfAvailable;
|
||||
this.currentQtaTot.set(newValue.multiply(this.currentQtaCnf.get()));
|
||||
}
|
||||
|
||||
private void onCurrentQtaCnfChanged(BigDecimal newValue) {
|
||||
@ -95,6 +120,35 @@ public class DialogInputQuantityV2ViewModel {
|
||||
}
|
||||
|
||||
private void onCurrentQtaTotChanged(BigDecimal newValue) {
|
||||
String a = "";
|
||||
if(newValue == null) return;
|
||||
|
||||
newValue = UtilityBigDecimal.getLowerBetween(newValue, totalNumCnfAvailable);
|
||||
|
||||
//Se è piu' grande della qta da prelevare e non posso aggiungere qta extra allora ricalcolo
|
||||
if(UtilityBigDecimal.greaterThan(newValue, totalQtaOrd) && !canOverflowOrderQuantity) {
|
||||
|
||||
if(mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||
//Ricalcolo num cnf
|
||||
|
||||
} else {
|
||||
//Ricalcolo qta cnf
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
if(mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||
//Ricalcolo num cnf
|
||||
} else {
|
||||
//Ricalcolo qta cnf
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// private BigDecimal retrieveCorrectQtaCnf() {
|
||||
// if(UtilityBigDecimal.greaterThan(totalNumCnfAvailable, BigDecimal.ZERO) && UtilityBigDecimal.greaterThan(totalQtaAvailable, BigDecimal.ZERO)) {
|
||||
//
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
12
app/src/main/res/drawable/ic_photo_camera_black_24dp.xml
Normal file
12
app/src/main/res/drawable/ic_photo_camera_black_24dp.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z"/>
|
||||
</vector>
|
||||
@ -73,6 +73,19 @@
|
||||
android:tint="@color/colorPrimaryGray"
|
||||
android:visibility="@{BuildConfig.DEBUG ? View.VISIBLE : View.GONE}"/>
|
||||
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageButton
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="50dp"
|
||||
android:layout_gravity="end"
|
||||
android:background="@drawable/ripple_effect"
|
||||
android:adjustViewBounds="true"
|
||||
android:src="@drawable/ic_photo_camera_black_24dp"
|
||||
android:onClick="@{() -> spedizioneView.startCameraBarcode()}"
|
||||
android:tint="@color/colorPrimaryGray"
|
||||
android:visibility="@{BuildConfig.DEBUG ? View.VISIBLE : View.GONE}"/>
|
||||
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
@ -382,6 +382,7 @@
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/input_num_cnf_text"
|
||||
style="@style/TextInputEditText.OutlinePrimary"
|
||||
app:binding="@{viewmodel.currentNumCnf}"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/num_pcks"
|
||||
@ -404,7 +405,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/qty_x_pck"
|
||||
android:inputType="number"
|
||||
android:inputType="numberDecimal"
|
||||
app:binding="@{viewmodel.currentQtaCnf}" />
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
@ -420,10 +421,11 @@
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/input_qta_tot_text"
|
||||
style="@style/TextInputEditText.OutlinePrimary"
|
||||
app:binding="@{viewmodel.currentQtaTot}"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/tot_qty"
|
||||
android:inputType="number" />
|
||||
android:inputType="numberDecimal" />
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user