This commit is contained in:
Giuseppe Scorrano 2020-03-25 12:40:57 +01:00
parent c2ab0c9ec1
commit e5a4113968
30 changed files with 548 additions and 363 deletions

View File

@ -91,7 +91,7 @@ dependencies {
implementation 'com.google.firebase:firebase-core:17.2.3' implementation 'com.google.firebase:firebase-core:17.2.3'
implementation 'com.google.firebase:firebase-crash:16.2.1' implementation 'com.google.firebase:firebase-crash:16.2.1'
implementation 'com.google.firebase:firebase-perf:19.0.5' 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.appcompat:appcompat:1.1.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.1.0' implementation 'com.google.android.material:material:1.1.0'
@ -145,6 +145,7 @@ dependencies {
implementation project(':barcode_base_android_library') implementation project(':barcode_base_android_library')
implementation project(':honeywellscannerlibrary') implementation project(':honeywellscannerlibrary')
implementation project(':keyobardemulatorscannerlibrary') implementation project(':keyobardemulatorscannerlibrary')
implementation 'com.kroegerama:barcode-kaiteki:1.1.1'
androidTestImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0' androidTestImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
androidTestImplementation 'org.testng:testng:7.1.0' androidTestImplementation 'org.testng:testng:7.1.0'
} }

View File

@ -38,6 +38,7 @@ import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
import it.integry.integrywmsnative.core.utility.UtilityNumber; import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityString;
public class Converters { public class Converters {
@ -105,14 +106,18 @@ public class Converters {
TextWatcherAdapter watcher = new TextWatcherAdapter() { TextWatcherAdapter watcher = new TextWatcherAdapter() {
@Override @Override
public void onTextChanged(CharSequence s, int start, int before, int count) { 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.setTag(R.id.bound_observable, new Pair<>(observableBigDecimal, watcher));
view.addTextChangedListener(watcher); view.addTextChangedListener(watcher);
} }
BigDecimal newValue = observableBigDecimal.get(); 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)); view.setText(UtilityNumber.decimalToString(newValue));
} }
} }

View File

@ -5,6 +5,7 @@ import android.os.Parcelable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List;
import it.integry.integrywmsnative.core.utility.UtilityString; 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. * Created by GiuseppeS on 06/03/2018.
*/ */
public class MtbAart implements Parcelable{ public class MtbAart extends EntityBase{
private String codMart; private String codMart;
private String descrizione; private String descrizione;
@ -91,102 +92,22 @@ public class MtbAart implements Parcelable{
private String marchio; private String marchio;
private Integer sezione; private Integer sezione;
private List<MtbUntMis> mtbUntMis;
public MtbAart(){} public MtbAart() {
this.type = "mtb_aart";
}
public boolean isFlagTracciabilita() { public boolean isFlagTracciabilita() {
return flagTracciabilita != null && flagTracciabilita.equalsIgnoreCase("S"); return flagTracciabilita != null && flagTracciabilita.equalsIgnoreCase("S");
} }
public boolean isFlagQtaCnfFissaBoolean() {
return "S".equalsIgnoreCase(flagQtaCnfFissa);
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();
} }
@Override
public int describeContents() {
return 0;
}
public String getCodMart() { public String getCodMart() {
return codMart; return codMart;
@ -709,10 +630,6 @@ public class MtbAart implements Parcelable{
return flagQtaCnfFissa; return flagQtaCnfFissa;
} }
public boolean getFlagQtaCnfFissaBoolean() {
return "S".equalsIgnoreCase(flagQtaCnfFissa);
}
public MtbAart setFlagQtaCnfFissa(String flagQtaCnfFissa) { public MtbAart setFlagQtaCnfFissa(String flagQtaCnfFissa) {
this.flagQtaCnfFissa = flagQtaCnfFissa; this.flagQtaCnfFissa = flagQtaCnfFissa;
return this; return this;
@ -880,111 +797,12 @@ public class MtbAart implements Parcelable{
return this; return this;
} }
@Override public List<MtbUntMis> getMtbUntMis() {
public void writeToParcel(Parcel dest, int flags) { return mtbUntMis;
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 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];
}
};
} }

View File

@ -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;
}
}

View File

@ -14,6 +14,7 @@ public class SitArtOrdDTO {
private String partitaMag; private String partitaMag;
private BigDecimal qtaOrd; private BigDecimal qtaOrd;
private BigDecimal numCnfOrd; private BigDecimal numCnfOrd;
private BigDecimal qtaCnfOrd;
private String idViaggio; private String idViaggio;
private String codMdep; private String codMdep;
@ -98,6 +99,15 @@ public class SitArtOrdDTO {
return this; return this;
} }
public BigDecimal getQtaCnfOrd() {
return qtaCnfOrd;
}
public SitArtOrdDTO setQtaCnfOrd(BigDecimal qtaCnfOrd) {
this.qtaCnfOrd = qtaCnfOrd;
return this;
}
public String getIdViaggio() { public String getIdViaggio() {
return idViaggio; return idViaggio;
} }

View File

@ -25,4 +25,11 @@ public class UtilityBigDecimal {
return input.compareTo(toCompareWith) < 0; 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;
}
} }

View File

@ -1,5 +1,6 @@
package it.integry.integrywmsnative.core.utility; package it.integry.integrywmsnative.core.utility;
import com.google.firebase.crashlytics.FirebaseCrashlytics;
import com.orhanobut.logger.Logger; import com.orhanobut.logger.Logger;
import java.io.IOException; import java.io.IOException;
@ -40,37 +41,42 @@ public class UtilityLogger {
} }
public static void errorMe(Exception ex, String additionalText, Runnable onComplete, RunnableArgs<Exception> onFailed) { public static void errorMe(Exception ex, String additionalText, Runnable onComplete, RunnableArgs<Exception> onFailed) {
if ((!(ex instanceof SocketTimeoutException) && !(ex.getCause() instanceof SocketTimeoutException)) || FirebaseCrashlytics.getInstance().recordException(ex);
(!(ex instanceof SocketException) && !(ex.getCause() instanceof SocketException)) ||
(!(ex instanceof IOException) && !(ex.getCause() instanceof IOException))) {
String message = UtilityResources.readRawTextFile(R.raw.error_mail); // if ((!(ex instanceof SocketTimeoutException) && !(ex.getCause() instanceof SocketTimeoutException)) ||
// (!(ex instanceof SocketException) && !(ex.getCause() instanceof SocketException)) ||
message = message.replace("__APP_NAME__", UtilityResources.getString(R.string.app_name)); // (!(ex instanceof IOException) && !(ex.getCause() instanceof IOException))) {
message = message.replace("__APP_PACKAGE__", UtilityResources.getPackageName()); //
// if(ex.getMessage().contains("SocketTimeoutException")) return;
String appVersion = UtilityResources.getAppVersion(); //
message = message.replace("__APP_VERSION__", appVersion == null ? "" : appVersion); //
message = message.replace("__APP_VERSION_CODE__", "" + UtilityResources.getAppVersionCode()); // String message = UtilityResources.readRawTextFile(R.raw.error_mail);
//
// message = message.replace("__APP_NAME__", UtilityResources.getString(R.string.app_name));
message = message.replaceAll("__ERROR_TITLE__", ex.getMessage()); // message = message.replace("__APP_PACKAGE__", UtilityResources.getPackageName());
//
message = message.replaceAll("__ERROR_DETAIL__", additionalText == null ? "" : additionalText); // String appVersion = UtilityResources.getAppVersion();
// message = message.replace("__APP_VERSION__", appVersion == null ? "" : appVersion);
// message = message.replace("__APP_VERSION_CODE__", "" + UtilityResources.getAppVersionCode());
StringWriter sw = new StringWriter(); //
ex.printStackTrace(new PrintWriter(sw)); //
// message = message.replaceAll("__ERROR_TITLE__", ex.getMessage());
message = message.replace("__ERROR_STACKTRACE__", sw.toString()); //
// message = message.replaceAll("__ERROR_DETAIL__", additionalText == null ? "" : additionalText);
String currentAzienda = UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB) ? "" : SettingsManager.i().userSession.profileDB; //
message = message.replace("__CUSTOMER_NAME__", currentAzienda); //
// StringWriter sw = new StringWriter();
message = message.replace("__ERROR_DATE__", UtilityDate.formatDate(UtilityDate.getDateInstance(), UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH)); // ex.printStackTrace(new PrintWriter(sw));
//
SystemRESTConsumer.sendErrorLogMail(message, onComplete, onFailed); // 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);
// }
} }
} }

View File

@ -784,7 +784,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
//if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) { //if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
dto.setQtaTot(new BigDecimal(ean128Model.Count)); dto.setQtaTot(new BigDecimal(ean128Model.Count));
if (!item.getMtbAart().getFlagQtaCnfFissaBoolean()) { if (!item.getMtbAart().isFlagQtaCnfFissaBoolean()) {
dto.setQtaCnf(new BigDecimal(ean128Model.Count)); dto.setQtaCnf(new BigDecimal(ean128Model.Count));
} }
//} else { //} else {
@ -827,7 +827,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
.setCodJcom(item.getCodJcom()) .setCodJcom(item.getCodJcom())
.setRigaOrd(item.getRigaOrd()); .setRigaOrd(item.getRigaOrd());
if (!item.getMtbAart().getFlagQtaCnfFissaBoolean()) { if (!item.getMtbAart().isFlagQtaCnfFissaBoolean()) {
mtbColr.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal()); mtbColr.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal());
} }

View File

@ -39,7 +39,7 @@ public class ContenutoBancaleListAdapter extends RecyclerView.Adapter<ContenutoB
//Setting qty with unt_mis //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()); String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
if(mtbColr.getMtbAart() != null) { if(mtbColr.getMtbAart() != null) {
@ -78,7 +78,7 @@ public class ContenutoBancaleListAdapter extends RecyclerView.Adapter<ContenutoB
holder.bind(mtbColr); holder.bind(mtbColr);
//Setting qty with unt_mis //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()); String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
if(mtbColr.getMtbAart() != null) { if(mtbColr.getMtbAart() != null) {

View File

@ -36,7 +36,7 @@ public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLibero
public void bind(MtbColr mtbColr) { public void bind(MtbColr mtbColr) {
//Setting qty with unt_mis //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()); String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
if(mtbColr.getMtbAart() != null) { if(mtbColr.getMtbAart() != null) {

View File

@ -138,7 +138,7 @@ public class PickingResiListAdapter extends SectionedRecyclerViewAdapter<Picking
//Setting qty with unt_mis //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.qtaEvasa.setText(UtilityNumber.decimalToString(qtaColEvasa));
holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(dtbDocr.getQtaDoc())); holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(dtbDocr.getQtaDoc()));
holder.mBinding.untMis.setText(dtbDocr.getUntDoc()); holder.mBinding.untMis.setText(dtbDocr.getUntDoc());

View File

@ -103,7 +103,7 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
for (CheckableOrdineLavoro c : ordiniSelezionati) { for (CheckableOrdineLavoro c : ordiniSelezionati) {
BigDecimal usedCol, usedCnf; BigDecimal usedCol, usedCnf;
float perc = (c.getItem().getOrdineLav().getHrNum() * 100) / totalHr; 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); 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){ if (usedCnf.compareTo(BigDecimal.ZERO) <= 0 && offsetCnf.compareTo(BigDecimal.ZERO) > 0){
usedCnf = BigDecimal.ONE; usedCnf = BigDecimal.ONE;
@ -127,7 +127,7 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
majorOrder = ordiniSelezionati.get(0); majorOrder = ordiniSelezionati.get(0);
} }
if (offsetCnf.floatValue() != 0 || offsetCol.floatValue() != 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.setNumCnf(majorOrder.getNumCnf().get() + offsetCnf.floatValue());
majorOrder.setQtaCol(majorOrder.getQtaCol().get() + offsetCol.floatValue()); majorOrder.setQtaCol(majorOrder.getQtaCol().get() + offsetCol.floatValue());
} else { } else {
@ -154,7 +154,7 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
mViewDataBinding.setMtbColr(mtbColr); mViewDataBinding.setMtbColr(mtbColr);
mViewDataBinding.executePendingBindings(); 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()); String text = UtilityNumber.decimalToString(checkableOrdineLavoro.getQtaCol().get());
if (mtbColr.getMtbAart() != null) { if (mtbColr.getMtbAart() != null) {

View File

@ -71,7 +71,7 @@ public class ProdVersamentoMaterialViewModel {
mBinding.descrArt.setText(mtbColr.getDescrizione()); mBinding.descrArt.setText(mtbColr.getDescrizione());
mBinding.codArt.setText(mtbColr.getCodMart()); mBinding.codArt.setText(mtbColr.getCodMart());
mBinding.batch.setText(mtbColr.getPartitaMag() + ((mtbColr.getRifPartitaMag() != null) ? " - "+ mtbColr.getRifPartitaMag().getDescrizione() : "")); 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()); String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
if (mtbColr.getMtbAart() != null) { if (mtbColr.getMtbAart() != null) {

View File

@ -66,7 +66,7 @@ public class RettificaGiacenzeMainListAdapter extends RecyclerView.Adapter<Retti
holder.bind(mtbColr); holder.bind(mtbColr);
//Setting qty with unt_mis //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()); String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
if(mtbColr.getMtbAart() != null) { if(mtbColr.getMtbAart() != null) {

View File

@ -78,7 +78,7 @@ public class VenditaOrdineInevasoHelper {
if(tmpList.get(i).isHidden() == null || forceHiddenCheck) { if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
PickingObjectDTOOld tmpItem = tmpList.get(i); 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); 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.setQtaOrdinata(currentItem.getNumCollo() != null ? currentItem.getQtaCollo() : currentItem.getQtaOrd());
rowModel.setQtaRiservata(currentQtaColEvasa); rowModel.setQtaRiservata(currentQtaColEvasa);

View File

@ -1145,7 +1145,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
boolean useQtaDaEvadere = false; boolean useQtaDaEvadere = false;
if(tmpPickData.getQtaTot() != null) { 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) { if (useQtaDaEvadere && !isTakenFromUL) {
dto.setQtaTot(qtaDaEvadere); dto.setQtaTot(qtaDaEvadere);
dto.setMaxQta(qtaDaEvadere); dto.setMaxQta(qtaDaEvadere);
@ -1407,7 +1407,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
qtaDto.setNumCnf(ean128Model.Count); 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)); qtaDto.setQtaTot(new BigDecimal(ean128Model.NetWeightKg));
} else { } else {
qtaDto.setQtaTot(qtaDto.getQtaCnf().multiply(new BigDecimal(qtaDto.getNumCnf()))); qtaDto.setQtaTot(qtaDto.getQtaCnf().multiply(new BigDecimal(qtaDto.getNumCnf())));

View File

@ -9,8 +9,14 @@ import android.app.Dialog;
import android.os.Bundle; import android.os.Bundle;
import com.annimon.stream.Stream; 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 com.tfb.fbtoast.FBToast;
import org.jetbrains.annotations.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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.core.SpedizioneListModel;
import it.integry.integrywmsnative.gest.spedizione_new.model.PickingObjectDTO; import it.integry.integrywmsnative.gest.spedizione_new.model.PickingObjectDTO;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO; 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.base.DialogSimpleInputHelper;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; 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; private ActivitySpedizioneBinding mBindings;
@ -63,6 +68,7 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
public BindableBoolean noLUPresent = new BindableBoolean(true); public BindableBoolean noLUPresent = new BindableBoolean(true);
private boolean mEnableGiacenza;
private boolean mFlagShowCodForn; private boolean mFlagShowCodForn;
private int barcodeScannerIstanceID = -1; private int barcodeScannerIstanceID = -1;
@ -105,11 +111,12 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
boolean enableGiacenza = !SettingsManager.iDB().isFlagSpedizioneEnableFakeGiacenza(); mEnableGiacenza = !SettingsManager.iDB().isFlagSpedizioneEnableFakeGiacenza();
boolean enableCheckPartitaMag = SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV(); boolean enableCheckPartitaMag = SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV();
boolean canOverflowOrderQuantity = SettingsManager.iDB().isFlagCanAddExtraQuantitySpedizione();
if(enableGiacenza) mCurrentProgress = UtilityProgress.createDefaultProgressDialog(this); if (mEnableGiacenza) mCurrentProgress = UtilityProgress.createDefaultProgressDialog(this);
mViewmodel.loadDataset(codMdep, enableGiacenza, enableCheckPartitaMag, mSitArtOrd, mTestateOrdini); mViewmodel.init(codMdep, mEnableGiacenza, enableCheckPartitaMag, mSitArtOrd, mTestateOrdini, canOverflowOrderQuantity);
} }
@Override @Override
@ -136,7 +143,7 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
this.mBindings.spedizionePickingList.setLayoutManager(new LinearLayoutManager(this)); this.mBindings.spedizionePickingList.setLayoutManager(new LinearLayoutManager(this));
spedizioneListAdapter.setOnItemClicked(clickedItem -> { spedizioneListAdapter.setOnItemClicked(clickedItem -> {
if(!noLUPresent.get() && SettingsManager.iDB().isFlagSpedizioneEnableManualPick()) { if (!noLUPresent.get() && SettingsManager.iDB().isFlagSpedizioneEnableManualPick()) {
this.mViewmodel.dispatchOrdineRow(clickedItem); this.mViewmodel.dispatchOrdineRow(clickedItem);
} }
}); });
@ -177,12 +184,12 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
boolean anyLUPresent = x.getMtbColts() != null && x.getMtbColts().size() > 0; boolean anyLUPresent = x.getMtbColts() != null && x.getMtbColts().size() > 0;
spedizioneListModel.setActive(anyLUPresent); spedizioneListModel.setActive(!mEnableGiacenza || anyLUPresent);
if (!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.setUntMis("col");
spedizioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfOrd()); spedizioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfOrd());
} else { } 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))); 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.setUntMis("col");
cloneModel.setQtaTot(mtbColrToDispatch != null ? mtbColrToDispatch.getNumCnf() : x.getSitArtOrdDTO().getNumCnfOrd()); cloneModel.setQtaTot(mtbColrToDispatch != null ? mtbColrToDispatch.getNumCnf() : x.getSitArtOrdDTO().getNumCnfOrd());
} else { } else {
@ -273,6 +280,27 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
}, BarcodeManager::enable).show(); }, 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() { public void removeListFilter() {
this.mViewmodel.resetMatchedRows(); this.mViewmodel.resetMatchedRows();
} }
@ -294,7 +322,7 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
@Override @Override
public void onDatasetLoaded() { public void onDatasetLoaded() {
if(mCurrentProgress != null) { if (mCurrentProgress != null) {
mCurrentProgress.dismiss(); mCurrentProgress.dismiss();
mCurrentProgress = null; mCurrentProgress = null;
} }
@ -303,7 +331,6 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
@Override @Override
public void onLUCreated(MtbColt mtbColt) { public void onLUCreated(MtbColt mtbColt) {
noLUPresent.set(false); noLUPresent.set(false);
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT); FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
} }
@ -331,19 +358,44 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
} }
@Override @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() DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
.setMtbAart(mtbAart) .setMtbAart(mtbAart)
.setTotalQtaOrd(totalQtaOrd) .setTotalQtaOrd(totalQtaOrd)
.setTotalNumCnfOrd(totalNumCnfOrd) .setTotalNumCnfOrd(totalNumCnfOrd)
.setQtaCnfOrd(qtaCnfOrd)
.setTotalQtaToBeTaken(totalQtaToBeTaken) .setTotalQtaToBeTaken(totalQtaToBeTaken)
.setTotalNumCnfToBeTaken(totalNumCnfToBeTaken) .setTotalNumCnfToBeTaken(totalNumCnfToBeTaken)
.setQtaCnfToBeTaken(qtaCnfToBeTaken) .setQtaCnfToBeTaken(qtaCnfToBeTaken)
.setTotalQtaAvailable(totalQtaAvailable) .setTotalQtaAvailable(totalQtaAvailable)
.setTotalNumCnfAvailable(totalNumCnfAvailable); .setTotalNumCnfAvailable(totalNumCnfAvailable)
.setQtaCnfAvailable(qtaCnfAvailable)
.setCanOverflowOrderQuantity(canOverflowOrderQuantity);
DialogInputQuantityV2 DialogInputQuantityV2
.newInstance(dialogInputQuantityV2DTO) .newInstance(dialogInputQuantityV2DTO)
.show(getSupportFragmentManager(), "tag"); .show(getSupportFragmentManager(), "tag");
} }
@Override
public boolean onBarcodeResult(@NotNull Result result) {
String a = "";
return true;
}
@Override
public void onBarcodeScanCancelled() {
}
} }

View File

@ -25,6 +25,7 @@ import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione; 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.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; 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.PickDataDTO;
import it.integry.integrywmsnative.gest.spedizione_new.model.PickingObjectDTO; import it.integry.integrywmsnative.gest.spedizione_new.model.PickingObjectDTO;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO; import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
public class SpedizioneViewModel { public class SpedizioneViewModel {
@ -69,6 +69,7 @@ public class SpedizioneViewModel {
private boolean mEnableGiacenza; private boolean mEnableGiacenza;
private boolean mEnableCheckPartitaMag; private boolean mEnableCheckPartitaMag;
private boolean mCanOverflowOrderQuantity;
private MtbColt mCurrentMtbColt = null; 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.mDefaultCodMdep = codMdep;
this.mTestateOrdini = testateOrdini; this.mTestateOrdini = testateOrdini;
this.mEnableGiacenza = enableGiacenza; this.mEnableGiacenza = enableGiacenza;
this.mEnableCheckPartitaMag = enableCheckPartitaMag; this.mEnableCheckPartitaMag = enableCheckPartitaMag;
this.mCanOverflowOrderQuantity = canOverflowOrderQuantity;
if (enableGiacenza) { if (enableGiacenza) {
mOrdiniRestConsumerService.getSuggestedPickingList(this.mDefaultCodMdep, pickingList, pickingObjectList -> { mOrdiniRestConsumerService.getSuggestedPickingList(this.mDefaultCodMdep, pickingList, pickingObjectList -> {
@ -253,9 +255,19 @@ public class SpedizioneViewModel {
for (Listeners listener : mListeners) listener.onFilterRemoved(); 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) 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) { public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
@ -405,16 +417,12 @@ public class SpedizioneViewModel {
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) { if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
this.executeEtichettaLU(ean128Model.Sscc, onComplete); this.executeEtichettaLU(ean128Model.Sscc, onComplete);
} else { } else {
if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) { if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) {
barcodeProd = barcodeProd.substring(1); barcodeProd = barcodeProd.substring(1);
} }
this.loadArticolo(barcodeProd, PickingObjectDTOOld.PickData.fromEan128(ean128Model), onComplete); this.loadArticolo(barcodeProd, PickDataDTO.fromEan128(ean128Model), onComplete);
} }
} else { } else {
//EAN 128 non completo o comunque mancano i riferimenti al prodotto //EAN 128 non completo o comunque mancano i riferimenti al prodotto
onComplete.run(); onComplete.run();
@ -427,13 +435,13 @@ public class SpedizioneViewModel {
try { try {
Ean13PesoModel ean13PesoModel = Ean13PesoModel.fromBarcode(barcodeScanDTO.getStringValue()); 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) { } catch (Exception ex) {
this.sendError(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) { if (barcodeProd.length() == 14) {
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd); barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
} }
@ -447,8 +455,6 @@ public class SpedizioneViewModel {
} }
}, this::sendError); }, this::sendError);
} }
private void searchArtFromUL(MtbColt scannedUL, Runnable onComplete) { 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(); final List<PickingObjectDTO> pickingList = mPickingList.getValue();
// List<PickingObjectDTO> matchPickingObject = Stream.of(pickingList) List<PickingObjectDTO> matchPickingObject = Stream.of(pickingList)
// .filter(x -> x.getNumCollo() == null && .filter(x -> UtilityString.equalsIgnoreCase(mtbAart.getCodMart(), x.getSitArtOrdDTO().getCodMart()))
// (mtbAart.getCodMart().equalsIgnoreCase(x.getCodMart()))) .filter(x -> {
// .toList(); 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()));
// })
// if (SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV()) { .toList();
// 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);
for(PickingObjectDTO pickingObjectDTO : matchPickingObject) {
pickingObjectDTO.setTempPickData(pickData);
}
this.loadMatchedRows(matchPickingObject);
onComplete.run(); onComplete.run();
} }
@ -547,6 +546,8 @@ public class SpedizioneViewModel {
private void loadMatchedRows(List<PickingObjectDTO> matchedRows) { private void loadMatchedRows(List<PickingObjectDTO> matchedRows) {
if (matchedRows == null || matchedRows.size() == 0) { if (matchedRows == null || matchedRows.size() == 0) {
this.sendError(new NoArtsFoundException()); this.sendError(new NoArtsFoundException());
} else if (matchedRows.size() == 1) {
this.dispatchOrdineRow(matchedRows.get(0));
} else { } else {
List<PickingObjectDTO> pickingList = mPickingList.getValue(); List<PickingObjectDTO> pickingList = mPickingList.getValue();
@ -559,38 +560,6 @@ public class SpedizioneViewModel {
this.sendFilterApplied(null); this.sendFilterApplied(null);
this.getPickingList().postValue(pickingList); 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 totalQtaOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
BigDecimal totalNumCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd(); BigDecimal totalNumCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd();
BigDecimal qtaCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaCnfOrd();
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal(); AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal();
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal(); AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal();
@ -609,6 +579,9 @@ public class SpedizioneViewModel {
qtaColWithdrawRows.addAndGet(row.getQtaCol()); 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 numCnfDaPrelevare = null;
BigDecimal qtaColDaPrelevare = null; BigDecimal qtaColDaPrelevare = null;
@ -617,21 +590,32 @@ public class SpedizioneViewModel {
BigDecimal totalQtaAvailable = null; BigDecimal totalQtaAvailable = null;
BigDecimal totalNumCnfAvailable = 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 && MtbColr mtbColrToDispatch = pickingObjectDTO.getTempPickData() != null &&
pickingObjectDTO.getTempPickData().getSourceMtbColt() != null && pickingObjectDTO.getTempPickData().getSourceMtbColt() != null &&
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr() != null && pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr() != null &&
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().size() > 0 ? pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().size() > 0 ?
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().get(0) : null; pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().get(0) : null;
if (mtbColrToDispatch != null) { if (mtbColrToDispatch != null) {
numCnfDaPrelevare = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd().subtract(numCnfWithdrawRows.getBigDecimalValue()); if(UtilityBigDecimal.lowerThan(mtbColrToDispatch.getQtaCol(), qtaDaEvadere)) {
qtaColDaPrelevare = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd().subtract(qtaColWithdrawRows.getBigDecimalValue()); numCnfDaPrelevare = mtbColrToDispatch.getNumCnf();
// qtaCnfDaPrelevare = mtbColrToDispatch.getQtaCnfCollo(); qtaColDaPrelevare = mtbColrToDispatch.getQtaCol();
qtaCnfDaPrelevare = mtbColrToDispatch.getQtaCnf();
} else {
numCnfDaPrelevare = numCnfDaEvadere;
qtaColDaPrelevare = qtaDaEvadere;
qtaCnfDaPrelevare = qtaCnfDaEvadere;
}
totalQtaAvailable = mtbColrToDispatch.getQtaCol(); totalQtaAvailable = mtbColrToDispatch.getQtaCol();
totalNumCnfAvailable = mtbColrToDispatch.getNumCnf(); totalNumCnfAvailable = mtbColrToDispatch.getNumCnf();
qtaCnfAvailable = mtbColrToDispatch.getQtaCnf();
if (UtilityBigDecimal.lowerThan(numCnfDaPrelevare, BigDecimal.ZERO)) if (UtilityBigDecimal.lowerThan(numCnfDaPrelevare, BigDecimal.ZERO))
@ -640,9 +624,20 @@ public class SpedizioneViewModel {
if (UtilityBigDecimal.lowerThan(qtaColDaPrelevare, BigDecimal.ZERO)) if (UtilityBigDecimal.lowerThan(qtaColDaPrelevare, BigDecimal.ZERO))
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); mtbColt.generaFiltroOrdineFromDTO(mDefaultFiltroOrdine);
ColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> { ColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
mtbColt mtbColt
.setNumCollo(value.getNumCollo()) .setNumCollo(value.getNumCollo())
.setDataCollo(value.getDataColloS()) .setDataCollo(value.getDataColloS())
.setMtbColr(new ObservableArrayList<>()); .setMtbColr(new ObservableArrayList<>());
this.mCurrentMtbColt = mtbColt; this.mCurrentMtbColt = mtbColt;
mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(mtbColt, mTestateOrdini); mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(mtbColt, mTestateOrdini);
if (onComplete != null) onComplete.run(); if (onComplete != null) onComplete.run();
@ -686,7 +678,7 @@ public class SpedizioneViewModel {
} }
public void resetMatchedRows() { public void resetMatchedRows() {
for(PickingObjectDTO pickingObjectDTO : this.mPickingList.getValue()) { for (PickingObjectDTO pickingObjectDTO : this.mPickingList.getValue()) {
pickingObjectDTO pickingObjectDTO
.setTempPickData(null) .setTempPickData(null)
.setHidden(false); .setHidden(false);
@ -718,7 +710,17 @@ public class SpedizioneViewModel {
void onError(Exception ex); 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);
} }
} }

View File

@ -1,10 +1,17 @@
package it.integry.integrywmsnative.gest.spedizione_new.model; 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.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 { public class PickDataDTO {
private MtbColt sourceMtbColt; private MtbColt sourceMtbColt;
private ManualPickDTO manualPickDTO;
public MtbColt getSourceMtbColt() { public MtbColt getSourceMtbColt() {
return sourceMtbColt; return sourceMtbColt;
@ -14,4 +21,87 @@ public class PickDataDTO {
this.sourceMtbColt = sourceMtbColt; this.sourceMtbColt = sourceMtbColt;
return this; 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;
}
}
} }

View File

@ -49,7 +49,7 @@ public class ArticoliInColloBottomSheetMtbColrAdapter extends BaseAdapter {
binding.setMtbColr(mtbColr); binding.setMtbColr(mtbColr);
//Setting qty with unt_mis //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()); String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());

View File

@ -149,7 +149,7 @@ public class ArticoliInColloBottomSheetViewModel {
//Setting qty with unt_mis //Setting qty with unt_mis
if(clickedItem.getMtbAart() != null) { 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()) : "")); mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()) + (!UtilityString.isNullOrEmpty(clickedItem.getMtbAart().getUntMis()) ? ("" + clickedItem.getMtbAart().getUntMis()) : ""));
} else { } else {
mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getNumCnf()) + " " + mContext.getString(R.string.unt_mis_col)); mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getNumCnf()) + " " + mContext.getString(R.string.unt_mis_col));

View File

@ -57,7 +57,7 @@ public class DialogBasketLU_Page2_ListAdapter extends RecyclerView.Adapter<Dialo
holder.bind(mtbColr); holder.bind(mtbColr);
//Setting qty with unt_mis //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()); String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
if(mtbColr.getMtbAart() != null) { if(mtbColr.getMtbAart() != null) {

View File

@ -77,7 +77,7 @@ public class DialogChooseArtsFromListaArtsAdapter extends RecyclerView.Adapter<D
MtbColr mtbColr = checkableMtbColr.getItem().getMtbColr(); MtbColr mtbColr = checkableMtbColr.getItem().getMtbColr();
//Setting qty with unt_mis //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()); String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());

View File

@ -346,7 +346,7 @@ public class DialogInputQuantity {
quantityDTO.qtaCnf.set(dto.mtbAart.getQtaCnf().floatValue()); quantityDTO.qtaCnf.set(dto.mtbAart.getQtaCnf().floatValue());
if(dto.getMtbAart().getFlagQtaCnfFissaBoolean()) { if(dto.getMtbAart().isFlagQtaCnfFissaBoolean()) {
quantityDTO.blockedQtaPerCnf.set(true); quantityDTO.blockedQtaPerCnf.set(true);
} }
} }

View File

@ -1,8 +1,7 @@
package it.integry.integrywmsnative.view.dialogs.input_quantity_v2; package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.text.InputType;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -15,14 +14,11 @@ import androidx.fragment.app.DialogFragment;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.model.MtbUntMis;
import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding; import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding;
public class DialogInputQuantityV2 extends DialogFragment { public class DialogInputQuantityV2 extends DialogFragment {
private Dialog mDialog;
private Context mContext;
private DialogInputQuantityV2ViewModel mViewModel; private DialogInputQuantityV2ViewModel mViewModel;
private DialogInputQuantityV2DTO mDialogInputQuantityV2DTO; private DialogInputQuantityV2DTO mDialogInputQuantityV2DTO;
@ -47,22 +43,33 @@ public class DialogInputQuantityV2 extends DialogFragment {
bindings.toolbar.setTitle("Inserimento articolo"); 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); 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(); return bindings.getRoot();
} }
@Override
public void onStart() {
super.onStart();
this.mViewModel.init();
}
} }

View File

@ -10,6 +10,7 @@ public class DialogInputQuantityV2DTO {
private BigDecimal totalQtaOrd; private BigDecimal totalQtaOrd;
private BigDecimal totalNumCnfOrd; private BigDecimal totalNumCnfOrd;
private BigDecimal qtaCnfOrd;
private BigDecimal totalQtaToBeTaken; private BigDecimal totalQtaToBeTaken;
private BigDecimal totalNumCnfToBeTaken; private BigDecimal totalNumCnfToBeTaken;
@ -17,6 +18,9 @@ public class DialogInputQuantityV2DTO {
private BigDecimal totalQtaAvailable; private BigDecimal totalQtaAvailable;
private BigDecimal totalNumCnfAvailable; private BigDecimal totalNumCnfAvailable;
private BigDecimal qtaCnfAvailable;
private boolean canOverflowOrderQuantity;
public MtbAart getMtbAart() { public MtbAart getMtbAart() {
return mtbAart; return mtbAart;
@ -45,6 +49,15 @@ public class DialogInputQuantityV2DTO {
return this; return this;
} }
public BigDecimal getQtaCnfOrd() {
return qtaCnfOrd;
}
public DialogInputQuantityV2DTO setQtaCnfOrd(BigDecimal qtaCnfOrd) {
this.qtaCnfOrd = qtaCnfOrd;
return this;
}
public BigDecimal getTotalQtaToBeTaken() { public BigDecimal getTotalQtaToBeTaken() {
return totalQtaToBeTaken; return totalQtaToBeTaken;
} }
@ -89,4 +102,22 @@ public class DialogInputQuantityV2DTO {
this.totalNumCnfAvailable = totalNumCnfAvailable; this.totalNumCnfAvailable = totalNumCnfAvailable;
return this; 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;
}
} }

View File

@ -1,11 +1,11 @@
package it.integry.integrywmsnative.view.dialogs.input_quantity_v2; package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
import androidx.databinding.Observable;
import androidx.databinding.ObservableField; import androidx.databinding.ObservableField;
import java.math.BigDecimal; import java.math.BigDecimal;
import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
import it.integry.integrywmsnative.core.utility.UtilityObservable; import it.integry.integrywmsnative.core.utility.UtilityObservable;
public class DialogInputQuantityV2ViewModel { public class DialogInputQuantityV2ViewModel {
@ -14,6 +14,7 @@ public class DialogInputQuantityV2ViewModel {
public BigDecimal totalQtaOrd; public BigDecimal totalQtaOrd;
public BigDecimal totalNumCnfOrd; public BigDecimal totalNumCnfOrd;
public BigDecimal qtaCnfOrd;
public BigDecimal totalQtaToBeTaken; public BigDecimal totalQtaToBeTaken;
public BigDecimal totalNumCnfToBeTaken; public BigDecimal totalNumCnfToBeTaken;
@ -21,11 +22,13 @@ public class DialogInputQuantityV2ViewModel {
public BigDecimal totalQtaAvailable; public BigDecimal totalQtaAvailable;
public BigDecimal totalNumCnfAvailable; public BigDecimal totalNumCnfAvailable;
public BigDecimal qtaCnfAvailable;
public ObservableField<BigDecimal> currentNumCnf = new ObservableField<>(); public ObservableField<BigDecimal> currentNumCnf = new ObservableField<>();
public ObservableField<BigDecimal> currentQtaCnf = new ObservableField<>(); public ObservableField<BigDecimal> currentQtaCnf = new ObservableField<>();
public ObservableField<BigDecimal> currentQtaTot = new ObservableField<>(); public ObservableField<BigDecimal> currentQtaTot = new ObservableField<>();
private boolean canOverflowOrderQuantity;
public void init() { public void init() {
@ -39,13 +42,16 @@ public class DialogInputQuantityV2ViewModel {
this.currentQtaTot.set(totalQtaToBeTaken != null ? totalQtaToBeTaken : this.mtbAart.get().getQtaCnf()); this.currentQtaTot.set(totalQtaToBeTaken != null ? totalQtaToBeTaken : this.mtbAart.get().getQtaCnf());
UtilityObservable.addPropertyChanged(this.currentQtaTot, this::onCurrentQtaTotChanged); UtilityObservable.addPropertyChanged(this.currentQtaTot, this::onCurrentQtaTotChanged);
} }
public void setMtbAart(MtbAart mtbAart) { public DialogInputQuantityV2ViewModel setMtbAart(MtbAart mtbAart) {
this.mtbAart.set(mtbAart); this.mtbAart.set(mtbAart);
return this;
} }
public DialogInputQuantityV2ViewModel setTotalQtaOrd(BigDecimal totalQtaOrd) { public DialogInputQuantityV2ViewModel setTotalQtaOrd(BigDecimal totalQtaOrd) {
@ -58,6 +64,11 @@ public class DialogInputQuantityV2ViewModel {
return this; return this;
} }
public DialogInputQuantityV2ViewModel setQtaCnfOrd(BigDecimal qtaCnfOrd) {
this.qtaCnfOrd = qtaCnfOrd;
return this;
}
public DialogInputQuantityV2ViewModel setTotalQtaToBeTaken(BigDecimal totalQtaToBeTaken) { public DialogInputQuantityV2ViewModel setTotalQtaToBeTaken(BigDecimal totalQtaToBeTaken) {
this.totalQtaToBeTaken = totalQtaToBeTaken; this.totalQtaToBeTaken = totalQtaToBeTaken;
return this; return this;
@ -83,11 +94,25 @@ public class DialogInputQuantityV2ViewModel {
return this; 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) { 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) { private void onCurrentQtaCnfChanged(BigDecimal newValue) {
@ -95,6 +120,35 @@ public class DialogInputQuantityV2ViewModel {
} }
private void onCurrentQtaTotChanged(BigDecimal newValue) { 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)) {
//
// }
// }
} }

View 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>

View File

@ -73,6 +73,19 @@
android:tint="@color/colorPrimaryGray" android:tint="@color/colorPrimaryGray"
android:visibility="@{BuildConfig.DEBUG ? View.VISIBLE : View.GONE}"/> 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> </androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>

View File

@ -382,6 +382,7 @@
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/input_num_cnf_text" android:id="@+id/input_num_cnf_text"
style="@style/TextInputEditText.OutlinePrimary" style="@style/TextInputEditText.OutlinePrimary"
app:binding="@{viewmodel.currentNumCnf}"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/num_pcks" android:hint="@string/num_pcks"
@ -404,7 +405,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/qty_x_pck" android:hint="@string/qty_x_pck"
android:inputType="number" android:inputType="numberDecimal"
app:binding="@{viewmodel.currentQtaCnf}" /> app:binding="@{viewmodel.currentQtaCnf}" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
@ -420,10 +421,11 @@
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/input_qta_tot_text" android:id="@+id/input_qta_tot_text"
style="@style/TextInputEditText.OutlinePrimary" style="@style/TextInputEditText.OutlinePrimary"
app:binding="@{viewmodel.currentQtaTot}"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/tot_qty" android:hint="@string/tot_qty"
android:inputType="number" /> android:inputType="numberDecimal" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>