Fix su scannedMtbColr nullo in spedizione.

This commit is contained in:
Giuseppe Scorrano 2020-11-13 10:24:42 +01:00
parent 4809a96e5b
commit 3a3bf4c2dd
4 changed files with 73 additions and 88 deletions

View File

@ -3,21 +3,22 @@ package it.integry.integrywmsnative.gest.contenuto_bancale.viewmodel;
import android.app.Dialog; import android.app.Dialog;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
import androidx.databinding.ObservableField;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import android.text.SpannableString; import android.text.SpannableString;
import androidx.core.content.ContextCompat;
import androidx.databinding.ObservableField;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.data_cache.DataCache; import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.di.BindableString; import it.integry.integrywmsnative.core.di.BindableString;
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked; import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
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.report.ReportManager; import it.integry.integrywmsnative.core.report.ReportManager;
import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityProgress;
@ -42,7 +43,7 @@ public class ContenutoBancaleViewModel implements IRecyclerItemClicked<MtbColr>
private PrinterRESTConsumer.Type mPrinterType; private PrinterRESTConsumer.Type mPrinterType;
private String mReportName; private String mReportName;
public ContenutoBancaleViewModel(ContenutoBancaleActivity context, MtbColt mtbColt, boolean canRecoverUL, PrinterRESTConsumer.Type printerType, String defaultReportName){ public ContenutoBancaleViewModel(ContenutoBancaleActivity context, MtbColt mtbColt, boolean canRecoverUL, PrinterRESTConsumer.Type printerType, String defaultReportName) {
mContext = context; mContext = context;
this.mtbColt = new ObservableField<>(mtbColt); this.mtbColt = new ObservableField<>(mtbColt);
this.isFabVisible.set(true); this.isFabVisible.set(true);
@ -85,8 +86,7 @@ public class ContenutoBancaleViewModel implements IRecyclerItemClicked<MtbColr>
} }
public void recoverUL() {
public void recoverUL(){
Intent data = new Intent(); Intent data = new Intent();
String key = DataCache.addItem(mtbColt.get()); String key = DataCache.addItem(mtbColt.get());
data.putExtra("key", key); data.putExtra("key", key);
@ -102,39 +102,37 @@ public class ContenutoBancaleViewModel implements IRecyclerItemClicked<MtbColr>
PrinterRESTConsumer.getAvailablePrintersStatic(SettingsManager.i().getUserSession().getDepo().getCodMdep(), mPrinterType, value -> { PrinterRESTConsumer.getAvailablePrintersStatic(SettingsManager.i().getUserSession().getDepo().getCodMdep(), mPrinterType, value -> {
if(value.size() > 0) { if (value.size() > 0) {
try { try {
ReportManager.getReportNameLUFromGestione(mtbColt.get().getGestioneEnum(), reportName -> { String reportName = ReportManager.getReportNameLUFromGestione(mtbColt.get().getGestioneEnum());
reportName = mReportName != null ? mReportName : reportName; reportName = mReportName != null ? mReportName : reportName;
PrinterRESTConsumer.printColloStatic(value.get(0), PrinterRESTConsumer.printColloStatic(value.get(0),
mtbColt.get(), mtbColt.get(),
1, 1,
reportName, reportName,
() -> { () -> {
progress.dismiss(); progress.dismiss();
Resources res = mContext.getResources(); Resources res = mContext.getResources();
String errorMessage = res.getText(R.string.alert_print_completed_message).toString(); String errorMessage = res.getText(R.string.alert_print_completed_message).toString();
DialogSimpleMessageHelper.makeSuccessDialog(mContext, res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null).show(); DialogSimpleMessageHelper.makeSuccessDialog(mContext, res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null).show();
}, ex -> UtilityExceptions.defaultException(mContext,ex, progress)); }, ex -> UtilityExceptions.defaultException(mContext, ex, progress));
}, ex -> UtilityExceptions.defaultException(mContext, ex, progress) } catch (Exception ex) {
); UtilityExceptions.defaultException(mContext, ex, progress);
} catch (Exception ex){
UtilityExceptions.defaultException(mContext, ex, progress);
}
} else {
progress.dismiss();
String errorMessage = "Nessuna stampante configurata";
DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(errorMessage), null, null).show();
} }
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progress); } else {
}); progress.dismiss();
String errorMessage = "Nessuna stampante configurata";
DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(errorMessage), null, null).show();
}
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progress);
});
} }

View File

@ -216,15 +216,14 @@ public class PickingResiViewModel {
} }
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onFailed) { private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum(), reportName -> { String reportName = ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum());
this.mPrinterRESTConsumer.printCollo( this.mPrinterRESTConsumer.printCollo(
printerName, printerName,
mtbColtToPrint, mtbColtToPrint,
1, 1,
reportName, onComplete, onFailed); reportName, onComplete, onFailed);
}, onFailed);
} }
private void postCloseOperations(MtbColt mtbColt, Runnable onComplete) { private void postCloseOperations(MtbColt mtbColt, Runnable onComplete) {
@ -282,7 +281,6 @@ public class PickingResiViewModel {
BigDecimal qtaCnfDoc = withdrawableDtbDocr.getQtaCnf(); BigDecimal qtaCnfDoc = withdrawableDtbDocr.getQtaCnf();
this.sendOnItemDispatched( this.sendOnItemDispatched(
withdrawableDtbDocr.getMtbAart(), withdrawableDtbDocr.getMtbAart(),
totalNumCnfDoc, totalNumCnfDoc,
@ -376,13 +374,13 @@ public class PickingResiViewModel {
this.mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> { this.mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> {
mtbColr mtbColr
.setDataCollo(value.getDataColloS()) .setDataCollo(value.getDataColloS())
.setNumCollo(value.getNumCollo()) .setNumCollo(value.getNumCollo())
.setGestione(value.getGestione()) .setGestione(value.getGestione())
.setSerCollo(value.getSerCollo()) .setSerCollo(value.getSerCollo())
.setRiga(value.getMtbColr().get(0).getRiga()) .setRiga(value.getMtbColr().get(0).getRiga())
.setUntMis(withdrawableDtbDocr.getMtbAart().getUntMis()) .setUntMis(withdrawableDtbDocr.getMtbAart().getUntMis())
.setMtbAart(withdrawableDtbDocr.getMtbAart()); .setMtbAart(withdrawableDtbDocr.getMtbAart());
withdrawableDtbDocr.getWithdrawRows().add(mtbColr); withdrawableDtbDocr.getWithdrawRows().add(mtbColr);
mCurrentMtbColt.getMtbColr().add(mtbColr); mCurrentMtbColt.getMtbColr().add(mtbColr);

View File

@ -79,7 +79,6 @@ public class ProdRecuperoMaterialeViewModel {
} }
private void initBarcode() { private void initBarcode() {
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessfull(onScanSuccessful) .setOnScanSuccessfull(onScanSuccessful)
@ -97,13 +96,12 @@ public class ProdRecuperoMaterialeViewModel {
} }
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> { private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
BarcodeManager.disable(); BarcodeManager.disable();
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
if(UtilityBarcode.isEtichettaAnonima(data) || UtilityBarcode.isEtichetta128(data)){ if (UtilityBarcode.isEtichettaAnonima(data) || UtilityBarcode.isEtichetta128(data)) {
this.executeEtichettaUL(data, progressDialog); this.executeEtichettaUL(data, progressDialog);
} }
@ -112,10 +110,10 @@ public class ProdRecuperoMaterialeViewModel {
private void executeEtichettaUL(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) { private void executeEtichettaUL(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) {
ColliMagazzinoRESTConsumer.getBySSCCStatic(barcodeScanDTO.getStringValue(), true, false, mtbColt -> { ColliMagazzinoRESTConsumer.getBySSCCStatic(barcodeScanDTO.getStringValue(), true, false, mtbColt -> {
if(mtbColt != null) { if (mtbColt != null) {
HistoryVersamentoProdULDTO historyVersamentoProdULRestDTO = this.getHistoryElementFromMtbColt(mtbColt); HistoryVersamentoProdULDTO historyVersamentoProdULRestDTO = this.getHistoryElementFromMtbColt(mtbColt);
if(historyVersamentoProdULRestDTO != null) { if (historyVersamentoProdULRestDTO != null) {
this.dispatchItem(historyVersamentoProdULRestDTO, mtbColt, progressDialog); this.dispatchItem(historyVersamentoProdULRestDTO, mtbColt, progressDialog);
} else { } else {
DialogCommon.showNoULFound(mContext, () -> { DialogCommon.showNoULFound(mContext, () -> {
@ -144,9 +142,9 @@ public class ProdRecuperoMaterialeViewModel {
x.getDataColloRif().equals(mtbColt.getDataColloS()) && x.getDataColloRif().equals(mtbColt.getDataColloS()) &&
x.getSerColloRif().equalsIgnoreCase(mtbColt.getSerCollo()) && x.getSerColloRif().equalsIgnoreCase(mtbColt.getSerCollo()) &&
x.getGestioneRif().equalsIgnoreCase(mtbColt.getGestione())) x.getGestioneRif().equalsIgnoreCase(mtbColt.getGestione()))
.toList(); .toList();
if(filteredItems != null && filteredItems.size() > 0) { if (filteredItems != null && filteredItems.size() > 0) {
return filteredItems.get(0); return filteredItems.get(0);
} }
@ -175,17 +173,14 @@ public class ProdRecuperoMaterialeViewModel {
DialogInputQuantity.makeBase(mContext, dto, false, quantity -> { DialogInputQuantity.makeBase(mContext, dto, false, quantity -> {
onItemDispatched(item, quantity.qtaTot.getBigDecimal(), sourceMtbColt, dialogProgress); onItemDispatched(item, quantity.qtaTot.getBigDecimal(), sourceMtbColt, dialogProgress);
}, () -> { }, () -> {
if(dialogProgress != null) dialogProgress.dismiss(); if (dialogProgress != null) dialogProgress.dismiss();
}).show(); }).show();
} }
private void onItemDispatched(HistoryVersamentoProdULDTO item, BigDecimal quantity, MtbColt sourceMtbColt, Dialog progress) { private void onItemDispatched(HistoryVersamentoProdULDTO item, BigDecimal quantity, MtbColt sourceMtbColt, Dialog progress) {
if(progress == null) { if (progress == null) {
progress = UtilityProgress.createDefaultProgressDialog(mContext); progress = UtilityProgress.createDefaultProgressDialog(mContext);
} }
Dialog finalProgress = progress; Dialog finalProgress = progress;
@ -197,7 +192,7 @@ public class ProdRecuperoMaterialeViewModel {
.setGestione(item.getGestione()) .setGestione(item.getGestione())
.setMtbColr(new ObservableArrayList<>()); .setMtbColr(new ObservableArrayList<>());
for(HistoryVersamentoProdULDTO.OrdineDto ordine : item.getOrdini()) { for (HistoryVersamentoProdULDTO.OrdineDto ordine : item.getOrdini()) {
BigDecimal qtaCol = quantity.multiply(new BigDecimal(-1).multiply(new BigDecimal(ordine.getPercentageHr()))).divide(new BigDecimal(100), 3, RoundingMode.HALF_EVEN); BigDecimal qtaCol = quantity.multiply(new BigDecimal(-1).multiply(new BigDecimal(ordine.getPercentageHr()))).divide(new BigDecimal(100), 3, RoundingMode.HALF_EVEN);
final MtbColr mtbColrScarico = new MtbColr() final MtbColr mtbColrScarico = new MtbColr()
@ -220,18 +215,17 @@ public class ProdRecuperoMaterialeViewModel {
} }
mtbColtScarico.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); mtbColtScarico.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
RunnableArgss<MtbColt, Boolean> saveRunnable = (mtbColt, createdLU) -> { RunnableArgss<MtbColt, Boolean> saveRunnable = (mtbColt, createdLU) -> {
if(mtbColt != null) { if (mtbColt != null) {
List<MtbColt> colliToSave = new ArrayList<>(); List<MtbColt> colliToSave = new ArrayList<>();
boolean shouldPrint = false; boolean shouldPrint = false;
if(!Objects.equals(mtbColt.getNumCollo(), item.getNumColloRif()) || if (!Objects.equals(mtbColt.getNumCollo(), item.getNumColloRif()) ||
!Objects.equals(mtbColt.getSerCollo(), item.getSerColloRif()) || !Objects.equals(mtbColt.getSerCollo(), item.getSerColloRif()) ||
!Objects.equals(mtbColt.getDataColloS(), item.getDataColloRif()) || !Objects.equals(mtbColt.getDataColloS(), item.getDataColloRif()) ||
!Objects.equals(mtbColt.getGestione(), item.getGestioneRif())) { !Objects.equals(mtbColt.getGestione(), item.getGestioneRif())) {
@ -267,7 +261,7 @@ public class ProdRecuperoMaterialeViewModel {
FBToast.successToast(mContext, mContext.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT); FBToast.successToast(mContext, mContext.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
if(finalShouldPrint) { if (finalShouldPrint) {
printCollo(finalProgress, value.get(0), () -> { printCollo(finalProgress, value.get(0), () -> {
this.refreshAdapter(); this.refreshAdapter();
mOnRecuperoCompleted.run(); mOnRecuperoCompleted.run();
@ -287,7 +281,7 @@ public class ProdRecuperoMaterialeViewModel {
} }
}; };
if(sourceMtbColt != null) saveRunnable.run(sourceMtbColt, false); if (sourceMtbColt != null) saveRunnable.run(sourceMtbColt, false);
else DialogScanOrCreateLU.make(mContext, true, false, saveRunnable).show(); else DialogScanOrCreateLU.make(mContext, true, false, saveRunnable).show();
} }
@ -329,21 +323,18 @@ public class ProdRecuperoMaterialeViewModel {
} }
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onAbort) { private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onAbort) {
ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum(), reportName -> { String reportName = ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum());
PrinterRESTConsumer.printColloStatic( PrinterRESTConsumer.printColloStatic(
printerName, printerName,
mtbColtToPrint, mtbColtToPrint,
1, 1,
reportName, onComplete, onAbort); reportName, onComplete, onAbort);
}, onAbort);
} }
private void refreshAdapter() { private void refreshAdapter() {
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
@ -360,5 +351,4 @@ public class ProdRecuperoMaterialeViewModel {
} }
} }

View File

@ -714,7 +714,7 @@ public class SpedizioneViewModel {
MtbColr refMtbColr = null; MtbColr refMtbColr = null;
if(refMtbColt != null && refMtbColt.getMtbColr().size() > 0) { if (scannedMtbColr != null && refMtbColt != null && refMtbColt.getMtbColr().size() > 0) {
Optional<MtbColr> optionalMtbColr = Stream.of(refMtbColt.getMtbColr()) Optional<MtbColr> optionalMtbColr = Stream.of(refMtbColt.getMtbColr())
.filter(y -> UtilityString.equalsIgnoreCase(y.getCodMart(), scannedMtbColr.getCodMart()) && .filter(y -> UtilityString.equalsIgnoreCase(y.getCodMart(), scannedMtbColr.getCodMart()) &&
UtilityString.equalsIgnoreCase(y.getCodTagl(), scannedMtbColr.getCodTagl()) && UtilityString.equalsIgnoreCase(y.getCodTagl(), scannedMtbColr.getCodTagl()) &&
@ -722,7 +722,7 @@ public class SpedizioneViewModel {
(!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(y.getPartitaMag(), scannedMtbColr.getPartitaMag()) || UtilityString.isNullOrEmpty(scannedMtbColr.getPartitaMag()))) (!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(y.getPartitaMag(), scannedMtbColr.getPartitaMag()) || UtilityString.isNullOrEmpty(scannedMtbColr.getPartitaMag())))
.findFirst(); .findFirst();
if(optionalMtbColr.isPresent()) refMtbColr = optionalMtbColr.get(); if (optionalMtbColr.isPresent()) refMtbColr = optionalMtbColr.get();
} }
MtbColr mtbColrToUse = refMtbColr != null ? refMtbColr : scannedMtbColr; MtbColr mtbColrToUse = refMtbColr != null ? refMtbColr : scannedMtbColr;
@ -1412,15 +1412,14 @@ public class SpedizioneViewModel {
} }
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onFailed) { private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum(), reportName -> { String reportName = ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum());
this.mPrinterRESTConsumer.printCollo( this.mPrinterRESTConsumer.printCollo(
printerName, printerName,
mtbColtToPrint, mtbColtToPrint,
1, 1,
reportName, onComplete, onFailed); reportName, onComplete, onFailed);
}, onFailed);
} }