Finish SistemazioneCalcoloQtaDaEvadere

This commit is contained in:
Giuseppe Scorrano 2019-12-12 17:42:55 +01:00
commit c4898f59f4
5 changed files with 42 additions and 15 deletions

View File

@ -26,6 +26,7 @@ public class DBSettingsModel {
private boolean flagCanAutoOpenNewULAccettazione; private boolean flagCanAutoOpenNewULAccettazione;
private boolean flagCanAddExtraQuantitySpedizione; private boolean flagCanAddExtraQuantitySpedizione;
private boolean flagEnableCheckDepositoSpedizione; private boolean flagEnableCheckDepositoSpedizione;
private boolean flagForceAllToColli;
public List<String> getAvailableProfiles() { public List<String> getAvailableProfiles() {
return availableProfiles; return availableProfiles;
@ -150,4 +151,13 @@ public class DBSettingsModel {
this.flagEnableCheckDepositoSpedizione = flagEnableCheckDepositoSpedizione; this.flagEnableCheckDepositoSpedizione = flagEnableCheckDepositoSpedizione;
return this; return this;
} }
public boolean isFlagForceAllToColli() {
return flagForceAllToColli;
}
public DBSettingsModel setFlagForceAllToColli(boolean flagForceAllToColli) {
this.flagForceAllToColli = flagForceAllToColli;
return this;
}
} }

View File

@ -218,6 +218,10 @@ public class SettingsManager {
.setGestName("PICKING") .setGestName("PICKING")
.setSection("SPEDIZIONE") .setSection("SPEDIZIONE")
.setKeySection("ENABLE_CHECK_DEPOSITO")); .setKeySection("ENABLE_CHECK_DEPOSITO"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SETUP")
.setKeySection("FLAG_FORCE_ALL_TO_COLLI"));
GestSetupRESTConsumer.getValues(stbGestSetupList, list -> { GestSetupRESTConsumer.getValues(stbGestSetupList, list -> {
@ -231,6 +235,7 @@ public class SettingsManager {
dbSettingsModelIstance.setFlagCanAutoOpenNewULAccettazione(getValueFromList(list, "FLAG_AUTO_OPEN_NEW_UL", Boolean.class)); dbSettingsModelIstance.setFlagCanAutoOpenNewULAccettazione(getValueFromList(list, "FLAG_AUTO_OPEN_NEW_UL", Boolean.class));
dbSettingsModelIstance.setFlagCanAddExtraQuantitySpedizione(getValueFromList(list, "FLAG_CAN_ADD_EXTRA_QUANTITY", Boolean.class)); dbSettingsModelIstance.setFlagCanAddExtraQuantitySpedizione(getValueFromList(list, "FLAG_CAN_ADD_EXTRA_QUANTITY", Boolean.class));
dbSettingsModelIstance.setFlagEnableCheckDepositoSpedizione(getValueFromList(list, "ENABLE_CHECK_DEPOSITO", Boolean.class)); dbSettingsModelIstance.setFlagEnableCheckDepositoSpedizione(getValueFromList(list, "ENABLE_CHECK_DEPOSITO", Boolean.class));
dbSettingsModelIstance.setFlagForceAllToColli(getValueFromList(list, "FLAG_FORCE_ALL_TO_COLLI", Boolean.class));
if(onComplete != null) onComplete.run(); if(onComplete != null) onComplete.run();
}, onFailed); }, onFailed);

View File

@ -50,7 +50,7 @@ public class UtilityBarcode {
} }
public static boolean isEanPeso(BarcodeScanDTO barcodeScanDTO) { public static boolean isEanPeso(BarcodeScanDTO barcodeScanDTO) {
return isEan13(barcodeScanDTO) && barcodeScanDTO.getStringValue().startsWith("2"); return (isEtichetta128(barcodeScanDTO) || isEan13(barcodeScanDTO)) && barcodeScanDTO.getStringValue().startsWith("2");
} }
public static boolean isEan13(BarcodeScanDTO barcodeScanDTO) { public static boolean isEan13(BarcodeScanDTO barcodeScanDTO) {

View File

@ -77,7 +77,7 @@ public class VenditaOrdineInevasoHelper {
if(tmpList.get(i).isHidden() == null || forceHiddenCheck) { if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
PickingObjectDTO tmpItem = tmpList.get(i); PickingObjectDTO tmpItem = tmpList.get(i);
tmpItem.setHidden(tmpItem.getQtaCollo().floatValue() < 0); tmpItem.setHidden(tmpItem.getQtaCollo().compareTo(BigDecimal.ZERO) <= 0 || (!tmpItem.getMtbAart().isFlagQtaCnfFissa() && tmpItem.getNumCnfCollo().compareTo(BigDecimal.ZERO) <= 0));
tmpItem.setTempHidden(false); tmpItem.setTempHidden(false);
} }
} }

View File

@ -357,18 +357,18 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
//invece se esiste apro un collo nuovo e cerco gli articoli presenti nell'ul //invece se esiste apro un collo nuovo e cerco gli articoli presenti nell'ul
//dell'etichetta anonima //dell'etichetta anonima
this.executeEtichettaAnonimaNotOpenedLU(data, progressDialog); this.executeEtichettaAnonimaNotOpenedLU(data, progressDialog);
} else if(UtilityBarcode.isEtichetta128(data)) {
//Creo una nuova ul e cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
this.createNewUL(null, null, progressDialog, false, false, () -> {
this.executeEtichettaEan128(data, progressDialog);
});
} else if(UtilityBarcode.isEanPeso(data)) { } else if(UtilityBarcode.isEanPeso(data)) {
//Creo una nuova ul e cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL) //Creo una nuova ul e cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
this.createNewUL(null, null, progressDialog, false, false, () -> { this.createNewUL(null, null, progressDialog, false, false, () -> {
this.executeEtichettaEanPeso(data, progressDialog); this.executeEtichettaEanPeso(data, progressDialog);
}); });
} else if(UtilityBarcode.isEtichetta128(data)) {
//Creo una nuova ul e cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
this.createNewUL(null, null, progressDialog, false, false, () -> {
this.executeEtichettaEan128(data, progressDialog);
});
} else { } else {
this.createNewUL(null, null, progressDialog, false, false, () -> { this.createNewUL(null, null, progressDialog, false, false, () -> {
this.loadArticolo(data.getStringValue(), null, progressDialog); this.loadArticolo(data.getStringValue(), null, progressDialog);
@ -380,16 +380,16 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
this.executeEtichettaLU(data.getStringValue(), progressDialog); this.executeEtichettaLU(data.getStringValue(), progressDialog);
} else if(UtilityBarcode.isEtichetta128(data)) {
//Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
this.executeEtichettaEan128(data, progressDialog);
} else if(UtilityBarcode.isEanPeso(data)) { } else if(UtilityBarcode.isEanPeso(data)) {
//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.executeEtichettaEanPeso(data, progressDialog); this.executeEtichettaEanPeso(data, progressDialog);
} else if(UtilityBarcode.isEtichetta128(data)) {
//Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
this.executeEtichettaEan128(data, progressDialog);
} else if(UtilityBarcode.isEtichettaPosizione(data)) { } else if(UtilityBarcode.isEtichettaPosizione(data)) {
//Cerco l'UL presente all'interno della posizione //Cerco l'UL presente all'interno della posizione
this.executeEtichettaPosizione(data.getStringValue(), progressDialog); this.executeEtichettaPosizione(data.getStringValue(), progressDialog);
@ -1045,6 +1045,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
public void onOrdineRowDispatch(final PickingObjectDTO item) { public void onOrdineRowDispatch(final PickingObjectDTO item) {
if(mArticoliInColloBottomSheetViewModel.mtbColt.get() != null){ if(mArticoliInColloBottomSheetViewModel.mtbColt.get() != null){
List<MtbColr> currentMtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr(); List<MtbColr> currentMtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr();
List<MtbColr> filteredMtbColrs = Stream.of(currentMtbColrs).filter( List<MtbColr> filteredMtbColrs = Stream.of(currentMtbColrs).filter(
@ -1115,6 +1116,12 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
if(item.getTempPickData() != null) { if(item.getTempPickData() != null) {
PickingObjectDTO.PickData tmpPickData = item.getTempPickData(); PickingObjectDTO.PickData tmpPickData = item.getTempPickData();
if(tmpPickData.getQtaCnf() == null && tmpPickData.getNumCnf() != null && tmpPickData.getQtaTot() != null) {
tmpPickData.setQtaCnf(tmpPickData.getQtaTot().divide(tmpPickData.getNumCnf(), 3, RoundingMode.HALF_EVEN));
}
boolean isTakenFromUL = tmpPickData.getSourceMtbColt() != null;
if(tmpPickData.getMtbPartitaMag() != null) { if(tmpPickData.getMtbPartitaMag() != null) {
if (!UtilityString.isNullOrEmpty(tmpPickData.getMtbPartitaMag().getPartitaMag())) { if (!UtilityString.isNullOrEmpty(tmpPickData.getMtbPartitaMag().getPartitaMag())) {
@ -1132,16 +1139,21 @@ 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().isFlagQtaCnfFissa(); useQtaDaEvadere = isTakenFromUL || (qtaDaEvadere.floatValue() < tmpPickData.getQtaTot().floatValue() && item.getMtbAart().isFlagQtaCnfFissa());
if (useQtaDaEvadere) { if (useQtaDaEvadere) {
dto.setQtaTot(qtaDaEvadere); dto.setQtaTot(qtaDaEvadere);
dto.setMaxQta(qtaDaEvadere); dto.setMaxQta(qtaDaEvadere);
if(isTakenFromUL) {
dto.setNumCnf(qtaDaEvadere.divide(tmpPickData.getQtaCnf(), 0, RoundingMode.HALF_UP).intValue());
}
} else { } else {
dto.setQtaTot(tmpPickData.getQtaTot()); dto.setQtaTot(tmpPickData.getQtaTot());
dto.setMaxQta(tmpPickData.getQtaTot()); dto.setMaxQta(tmpPickData.getQtaTot());
if(tmpPickData.getNumCnf() != null) { if(tmpPickData.getNumCnf() != null) {
dto.setQtaCnf(tmpPickData.getQtaTot().divide(tmpPickData.getNumCnf())); dto.setQtaCnf(tmpPickData.getQtaTot().divide(tmpPickData.getNumCnf(), 3, RoundingMode.HALF_UP));
} else { } else {
dto.setQtaCnf(tmpPickData.getQtaTot()); dto.setQtaCnf(tmpPickData.getQtaTot());
} }