Implementata gestione Ean Peso in rettifica giacenze
This commit is contained in:
parent
650d1670de
commit
e764ad1148
@ -215,15 +215,6 @@ public class DBSettingsModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isFlagUseNewPickingListSpedizione() {
|
|
||||||
return flagUseNewPickingListSpedizione;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DBSettingsModel setFlagUseNewPickingListSpedizione(boolean flagUseNewPickingListSpedizione) {
|
|
||||||
this.flagUseNewPickingListSpedizione = flagUseNewPickingListSpedizione;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isFlagVersamentoDirettoProduzione() {
|
public boolean isFlagVersamentoDirettoProduzione() {
|
||||||
return flagVersamentoDirettoProduzione;
|
return flagVersamentoDirettoProduzione;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -356,7 +356,6 @@ public class SettingsManager {
|
|||||||
dbSettingsModelIstance.setFlagEnableCheckDepositoSpedizione(getValueFromList(list, "SPEDIZIONE", "ENABLE_CHECK_DEPOSITO", Boolean.class));
|
dbSettingsModelIstance.setFlagEnableCheckDepositoSpedizione(getValueFromList(list, "SPEDIZIONE", "ENABLE_CHECK_DEPOSITO", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagForceAllToColli(getValueFromList(list, "SETUP", "FLAG_FORCE_ALL_TO_COLLI", Boolean.class));
|
dbSettingsModelIstance.setFlagForceAllToColli(getValueFromList(list, "SETUP", "FLAG_FORCE_ALL_TO_COLLI", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagAskPesoColloSpedizione(getValueFromList(list, "SETUP", "FLAG_ASK_PESO_COLLO", Boolean.class));
|
dbSettingsModelIstance.setFlagAskPesoColloSpedizione(getValueFromList(list, "SETUP", "FLAG_ASK_PESO_COLLO", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagUseNewPickingListSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_USE_NEW_PICKING_LIST", Boolean.class));
|
|
||||||
dbSettingsModelIstance.setFlagVersamentoDirettoProduzione(getValueFromList(list, "PRODUZIONE", "FLAG_VERSAMENTO_DIRETTO", Boolean.class));
|
dbSettingsModelIstance.setFlagVersamentoDirettoProduzione(getValueFromList(list, "PRODUZIONE", "FLAG_VERSAMENTO_DIRETTO", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagSpedizioneEnableManualPick(getValueFromList(list, "SPEDIZIONE", "ENABLE_MANUAL_PICK", Boolean.class));
|
dbSettingsModelIstance.setFlagSpedizioneEnableManualPick(getValueFromList(list, "SPEDIZIONE", "ENABLE_MANUAL_PICK", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class));
|
dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class));
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
@ -105,6 +106,10 @@ public class RettificaGiacenzeViewModel {
|
|||||||
//Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
|
//Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
|
||||||
this.executeEtichettaEan128(barcodeScanDTO, onComplete);
|
this.executeEtichettaEan128(barcodeScanDTO, onComplete);
|
||||||
|
|
||||||
|
} else if (UtilityBarcode.isEanPeso(barcodeScanDTO)) {
|
||||||
|
//Cerco tramite articolo ean peso
|
||||||
|
this.executeEtichettaEanPeso(barcodeScanDTO, onComplete);
|
||||||
|
|
||||||
} else if (UtilityBarcode.isEtichettaArt(barcodeScanDTO)) {
|
} else if (UtilityBarcode.isEtichettaArt(barcodeScanDTO)) {
|
||||||
this.searchArtInt(barcodeScanDTO.getStringValue(), onComplete);
|
this.searchArtInt(barcodeScanDTO.getStringValue(), onComplete);
|
||||||
|
|
||||||
@ -141,6 +146,15 @@ public class RettificaGiacenzeViewModel {
|
|||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void executeEtichettaEanPeso(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
||||||
|
try {
|
||||||
|
Ean13PesoModel ean13PesoModel = Ean13PesoModel.fromBarcode(barcodeScanDTO.getStringValue());
|
||||||
|
this.loadArticolo(ean13PesoModel.getPrecode(), PickDataDTO.fromEan128(ean13PesoModel.toEan128()), onComplete);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
this.sendError(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) {
|
private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) {
|
||||||
this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
|
this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
|
||||||
if (onComplete != null) onComplete.run();
|
if (onComplete != null) onComplete.run();
|
||||||
|
|||||||
@ -695,14 +695,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
List<MtbColr> scannedMtbColrs = pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr();
|
List<MtbColr> scannedMtbColrs = pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr();
|
||||||
|
|
||||||
List<MtbPartitaMag> availableBatchLots = Stream.of(scannedMtbColrs)
|
List<MtbPartitaMag> availableBatchLots = Stream.of(scannedMtbColrs).filter(x -> x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) && (x.getPartitaMag() == null || UtilityString.isNullOrEmpty(x.getMtbPartitaMag().getDataScadS()) || UtilityDate.getDateInstance().before(x.getMtbPartitaMag().getDataScadD()))).distinctBy(MtbColr::getPartitaMag).map(x -> x.getPartitaMag() == null ? new MtbPartitaMag().setCodMart(x.getMtbAart().getCodMart()) : x.getMtbPartitaMag()).toList();
|
||||||
.filter(x ->
|
|
||||||
x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) &&
|
|
||||||
(x.getPartitaMag() == null ||
|
|
||||||
UtilityString.isNullOrEmpty(x.getMtbPartitaMag().getDataScadS()) ||
|
|
||||||
UtilityDate.getDateInstance().before(x.getMtbPartitaMag().getDataScadD())))
|
|
||||||
.distinctBy(MtbColr::getPartitaMag)
|
|
||||||
.map(x -> x.getPartitaMag() == null ? new MtbPartitaMag().setCodMart(x.getMtbAart().getCodMart()) : x.getMtbPartitaMag()).toList();
|
|
||||||
|
|
||||||
//Controllo se una delle partite combacia con quella che voglio evadere
|
//Controllo se una delle partite combacia con quella che voglio evadere
|
||||||
if (refMtbColr != null && refMtbColr.getMtbPartitaMag() != null) {
|
if (refMtbColr != null && refMtbColr.getMtbPartitaMag() != null) {
|
||||||
@ -894,68 +887,14 @@ public class SpedizioneViewModel {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onItemDispatched(PickingObjectDTO pickingObjectDTO,
|
public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, Date dataScad, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
||||||
MtbAart mtbAart,
|
|
||||||
BigDecimal initialNumCnf,
|
|
||||||
BigDecimal initialQtaCnf,
|
|
||||||
BigDecimal initialQtaTot,
|
|
||||||
BigDecimal totalQtaOrd,
|
|
||||||
BigDecimal totalNumCnfOrd,
|
|
||||||
BigDecimal qtaCnfOrd,
|
|
||||||
BigDecimal totalQtaToBeTaken,
|
|
||||||
BigDecimal totalNumCnfToBeTaken,
|
|
||||||
BigDecimal qtaCnfToBeTaken,
|
|
||||||
BigDecimal totalQtaAvailable,
|
|
||||||
BigDecimal totalNumCnfAvailable,
|
|
||||||
BigDecimal qtaCnfAvailable,
|
|
||||||
String partitaMag,
|
|
||||||
Date dataScad,
|
|
||||||
boolean canOverflowOrderQuantity,
|
|
||||||
boolean canPartitaMagBeChanged,
|
|
||||||
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
|
||||||
if (SettingsManager.iDB().isNotifyLotStatus() && !UtilityString.isNullOrEmpty(partitaMag)) {
|
if (SettingsManager.iDB().isNotifyLotStatus() && !UtilityString.isNullOrEmpty(partitaMag)) {
|
||||||
this.loadProductLotStatus(mtbAart.getCodMart(), partitaMag, (status) -> {
|
this.loadProductLotStatus(mtbAart.getCodMart(), partitaMag, (status) -> {
|
||||||
pickingObjectDTO.setStatoArticoloDTO(status);
|
pickingObjectDTO.setStatoArticoloDTO(status);
|
||||||
this.sendOnFullItemDispatched(pickingObjectDTO,
|
this.sendOnFullItemDispatched(pickingObjectDTO, mtbAart, initialNumCnf, initialQtaCnf, initialQtaTot, totalQtaOrd, totalNumCnfOrd, qtaCnfOrd, totalQtaToBeTaken, totalNumCnfToBeTaken, qtaCnfToBeTaken, totalQtaAvailable, totalNumCnfAvailable, qtaCnfAvailable, partitaMag, dataScad, canOverflowOrderQuantity, canPartitaMagBeChanged, onComplete);
|
||||||
mtbAart,
|
|
||||||
initialNumCnf,
|
|
||||||
initialQtaCnf,
|
|
||||||
initialQtaTot,
|
|
||||||
totalQtaOrd,
|
|
||||||
totalNumCnfOrd,
|
|
||||||
qtaCnfOrd,
|
|
||||||
totalQtaToBeTaken,
|
|
||||||
totalNumCnfToBeTaken,
|
|
||||||
qtaCnfToBeTaken,
|
|
||||||
totalQtaAvailable,
|
|
||||||
totalNumCnfAvailable,
|
|
||||||
qtaCnfAvailable,
|
|
||||||
partitaMag,
|
|
||||||
dataScad,
|
|
||||||
canOverflowOrderQuantity,
|
|
||||||
canPartitaMagBeChanged,
|
|
||||||
onComplete);
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.sendOnFullItemDispatched(pickingObjectDTO,
|
this.sendOnFullItemDispatched(pickingObjectDTO, mtbAart, initialNumCnf, initialQtaCnf, initialQtaTot, totalQtaOrd, totalNumCnfOrd, qtaCnfOrd, totalQtaToBeTaken, totalNumCnfToBeTaken, qtaCnfToBeTaken, totalQtaAvailable, totalNumCnfAvailable, qtaCnfAvailable, partitaMag, dataScad, canOverflowOrderQuantity, canPartitaMagBeChanged, onComplete);
|
||||||
mtbAart,
|
|
||||||
initialNumCnf,
|
|
||||||
initialQtaCnf,
|
|
||||||
initialQtaTot,
|
|
||||||
totalQtaOrd,
|
|
||||||
totalNumCnfOrd,
|
|
||||||
qtaCnfOrd,
|
|
||||||
totalQtaToBeTaken,
|
|
||||||
totalNumCnfToBeTaken,
|
|
||||||
qtaCnfToBeTaken,
|
|
||||||
totalQtaAvailable,
|
|
||||||
totalNumCnfAvailable,
|
|
||||||
qtaCnfAvailable,
|
|
||||||
partitaMag,
|
|
||||||
dataScad,
|
|
||||||
canOverflowOrderQuantity,
|
|
||||||
canPartitaMagBeChanged,
|
|
||||||
onComplete);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1105,11 +1044,10 @@ public class SpedizioneViewModel {
|
|||||||
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal(0);
|
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal(0);
|
||||||
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal(0);
|
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal(0);
|
||||||
|
|
||||||
Stream.of(finalPickingObjectDTO.getWithdrawMtbColrs())
|
Stream.of(finalPickingObjectDTO.getWithdrawMtbColrs()).forEach(row -> {
|
||||||
.forEach(row -> {
|
numCnfWithdrawRows.addAndGet(row.getNumCnf());
|
||||||
numCnfWithdrawRows.addAndGet(row.getNumCnf());
|
qtaColWithdrawRows.addAndGet(row.getQtaCol());
|
||||||
qtaColWithdrawRows.addAndGet(row.getQtaCol());
|
});
|
||||||
});
|
|
||||||
|
|
||||||
numCnfDaEvadere = totalNumCnfOrd.subtract(numCnfWithdrawRows.getBigDecimalValue()).add(mtbColrToEdit.getNumCnf());
|
numCnfDaEvadere = totalNumCnfOrd.subtract(numCnfWithdrawRows.getBigDecimalValue()).add(mtbColrToEdit.getNumCnf());
|
||||||
qtaDaEvadere = totalQtaOrd.subtract(qtaColWithdrawRows.getBigDecimalValue()).add(mtbColrToEdit.getQtaCol());
|
qtaDaEvadere = totalQtaOrd.subtract(qtaColWithdrawRows.getBigDecimalValue()).add(mtbColrToEdit.getQtaCol());
|
||||||
@ -1649,20 +1587,17 @@ public class SpedizioneViewModel {
|
|||||||
onOrderClosedPrintingDone();
|
onOrderClosedPrintingDone();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<DtbOrdt> closedOrders = Stream.of(this.mTestateOrdini)
|
List<DtbOrdt> closedOrders = Stream.of(this.mTestateOrdini).map(ord -> {
|
||||||
.map(ord -> {
|
DtbOrdt ordV = new DtbOrdt();
|
||||||
DtbOrdt ordV = new DtbOrdt();
|
ordV.setDataOrd(ord.getDataOrdS()).setNumOrd(ord.getNumOrd()).setGestione(ord.getGestione()).setCodAnag(ord.getCodAnagOrd());
|
||||||
ordV.setDataOrd(ord.getDataOrdS()).setNumOrd(ord.getNumOrd()).setGestione(ord.getGestione()).setCodAnag(ord.getCodAnagOrd());
|
return ordV;
|
||||||
return ordV;
|
}).toList();
|
||||||
}).toList();
|
|
||||||
|
|
||||||
dto.setPrintList(closedOrders);
|
dto.setPrintList(closedOrders);
|
||||||
printClosedOrders(dto, this::onOrderClosedPrintingDone, ex -> this.sendLUPrintError(ex, this::sendOnLoadingEnded));
|
printClosedOrders(dto, this::onOrderClosedPrintingDone, ex -> this.sendLUPrintError(ex, this::sendOnLoadingEnded));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void printClosedOrders(PrintOrderCloseDTO dto, Runnable onSuccess, RunnableArgs<Exception> onAbort) {
|
private void printClosedOrders(PrintOrderCloseDTO dto, Runnable onSuccess, RunnableArgs<Exception> onAbort) {
|
||||||
|
|
||||||
|
|
||||||
this.mPrinterRESTConsumer.printClosedOrders(dto, SettingsManager.i().getUserSession().getDepo().getCodMdep(), onSuccess, onAbort);
|
this.mPrinterRESTConsumer.printClosedOrders(dto, SettingsManager.i().getUserSession().getDepo().getCodMdep(), onSuccess, onAbort);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,7 @@ buildscript {
|
|||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:7.3.1'
|
classpath 'com.android.tools.build:gradle:7.4.0'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
classpath 'com.google.gms:google-services:4.3.13'
|
classpath 'com.google.gms:google-services:4.3.13'
|
||||||
|
|
||||||
|
|||||||
@ -33,4 +33,5 @@ org.gradle.parallel=true
|
|||||||
# Enable simple gradle caching
|
# Enable simple gradle caching
|
||||||
org.gradle.caching=true
|
org.gradle.caching=true
|
||||||
# Increase memory allotted to JVM
|
# Increase memory allotted to JVM
|
||||||
org.gradle.jvmargs=-Xmx4096m
|
org.gradle.jvmargs=-Xmx4096m
|
||||||
|
org.gradle.unsafe.configuration-cache=true
|
||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
|||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
|
||||||
|
|||||||
@ -45,9 +45,7 @@ public class HoneyWellBarcodeReader implements BarcodeReaderInterface {
|
|||||||
compatibleModels.add("EDA51");
|
compatibleModels.add("EDA51");
|
||||||
compatibleModels.add("CT60");
|
compatibleModels.add("CT60");
|
||||||
|
|
||||||
if (compatibleModels.contains(model)) {
|
return compatibleModels.contains(model);
|
||||||
return true;
|
|
||||||
} else return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user