diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java index 1723b162..8b8a7001 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java @@ -54,6 +54,7 @@ public class DBSettingsModel { private boolean groupShippingByCommodityGroup = true; private boolean showCodFornSpedizione = true; private boolean flagCanCreateInventario = true; + private boolean flagCanAddUnknownItemsInventario = true; public boolean isFlagSpedizioneEnableFakeGiacenza() { return flagSpedizioneEnableFakeGiacenza; @@ -406,4 +407,13 @@ public class DBSettingsModel { this.flagCanCreateInventario = flagCanCreateInventario; return this; } + + public boolean isFlagCanAddUnknownItemsInventario() { + return flagCanAddUnknownItemsInventario; + } + + public DBSettingsModel setFlagCanAddUnknownItemsInventario(boolean flagCanAddUnknownItemsInventario) { + this.flagCanAddUnknownItemsInventario = flagCanAddUnknownItemsInventario; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java index cfed6231..5a71fd62 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java @@ -353,6 +353,10 @@ public class SettingsManager { .setGestName("PICKING") .setSection("INVENTARIO") .setKeySection("FLAG_CAN_CREATE_INVENTARIO")); + stbGestSetupList.add(new StbGestSetup() + .setGestName("PICKING") + .setSection("INVENTARIO") + .setKeySection("FLAG_CAN_ADD_UNKNOWN_ITEMS")); String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); mGestSetupRESTConsumer.getValues(codMdep, stbGestSetupList, list -> { @@ -385,7 +389,8 @@ public class SettingsManager { dbSettingsModelIstance.setNotifyLotStatus(getValueFromList(list, "SPEDIZIONE", "FLAG_NOTIFICA_STATO_PARTITA", Boolean.class)); dbSettingsModelIstance.setShowCodFornSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_SHOW_COD_FORN", Boolean.class, Boolean.TRUE)); dbSettingsModelIstance.setGroupShippingByCommodityGroup(getValueFromList(list, "SPEDIZIONE", "FLAG_GROUP_BY_GRP_MERC", Boolean.class, Boolean.FALSE)); - dbSettingsModelIstance.setFlagCanCreateInventario(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_CREATE_INVENTARIO", Boolean.class, Boolean.TRUE)); + dbSettingsModelIstance.setFlagCanCreateInventario(getValueFromList(list, "INVENTARIO", "FLAG_CAN_CREATE_INVENTARIO", Boolean.class, Boolean.TRUE)); + dbSettingsModelIstance.setFlagCanAddUnknownItemsInventario(getValueFromList(list, "INVENTARIO", "FLAG_CAN_ADD_UNKNOWN_ITEMS", Boolean.class, Boolean.TRUE)); String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class); if (notePerdita != null) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java index 95a97e31..b0a3540f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java @@ -32,6 +32,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgss; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.rest.model.inventario.InventarioArtDTO; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.databinding.ActivityPickingInventarioBinding; import it.integry.integrywmsnative.databinding.ActivityPickingInventarioListItemBinding; @@ -96,7 +97,8 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn mViewModel.init( DataCache.retrieveItem(getIntent().getStringExtra(KEY_INVENTARIO)), - DataCache.retrieveItem(getIntent().getStringExtra(KEY_INVENTARIO_ARTS))); + DataCache.retrieveItem(getIntent().getStringExtra(KEY_INVENTARIO_ARTS)), + SettingsManager.iDB().isFlagCanAddUnknownItemsInventario()); initToolbar(); initBarcodeReader(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java index d4caad28..4d6552b2 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java @@ -36,6 +36,8 @@ public class PickingInventarioViewModel extends ViewModel { private final InventarioRepository inventarioRepository; private final InventarioRowRepository inventarioRowRepository; + private boolean canAddUnknownItems; + public MutableLiveData currentInventario = new MutableLiveData<>(); public LiveData> currentInventarioRows = new MutableLiveData<>(); @@ -49,7 +51,9 @@ public class PickingInventarioViewModel extends ViewModel { this.inventarioRowRepository = inventarioRowRepository; } - public void init(InventarioRoomDTO inventarioRoomDTO, List inventarioArts) { + public void init(InventarioRoomDTO inventarioRoomDTO, List inventarioArts, boolean canAddUnknownItems) { + this.canAddUnknownItems = canAddUnknownItems; + this.sendOnLoadingStarted(); this.currentInventario.postValue(inventarioRoomDTO); @@ -89,19 +93,27 @@ public class PickingInventarioViewModel extends ViewModel { var barcodeList = new ArrayList(); barcodeList.add(itemToUpdate.getScanCodBarre()); - var matchedArt = availableInventarioArts.stream() + var matchedArtOpt = availableInventarioArts.stream() .filter(x -> itemToUpdate.getCodMart() != null && x.getCodMart().contains(itemToUpdate.getCodMart())) - .findFirst() - .orElse(new InventarioArtDTO() - .setBarcode(barcodeList) - .setFlagQtaCnfFissa(true) - .setPlu(false) - .setUntMis(itemToUpdate.getUntMis()) - .setQtaCnf(itemToUpdate.getQtaConf())); + .findFirst(); - var articolo = matchedArt.toMtbAart(); - articolo.setFlagTracciabilita("N"); - dispatchRowEdit(articolo, itemToUpdate); + MtbAart articolo = null; + + if (canAddUnknownItems) { + var matchedArt = matchedArtOpt.orElse(new InventarioArtDTO() + .setBarcode(barcodeList) + .setFlagQtaCnfFissa(true) + .setPlu(false) + .setUntMis(itemToUpdate.getUntMis()) + .setQtaCnf(itemToUpdate.getQtaConf())); + + articolo = matchedArt.toMtbAart() + .setFlagTracciabilita("N"); + } + if (articolo != null) { + dispatchRowEdit(articolo, itemToUpdate); + } else + this.sendError(new NoResultFromBarcodeException(itemToUpdate.getScanCodBarre())); } public void deleteRow(InventarioRowRoomDTO itemToDelete) { @@ -111,7 +123,7 @@ public class PickingInventarioViewModel extends ViewModel { public void exportAll(Runnable onComplete) { - if(this.currentInventarioRows.getValue().isEmpty()) { + if (this.currentInventarioRows.getValue().isEmpty()) { this.sendError(new Exception("Impossibile esportare un inventario senza righe")); return; } @@ -139,16 +151,22 @@ public class PickingInventarioViewModel extends ViewModel { var barcodeList = new ArrayList(); barcodeList.add(barcodeProd); - var matchedArt = availableInventarioArts.stream() + var matchedArtOpt = availableInventarioArts.stream() .filter(x -> x.getBarcode().contains(barcodeProd)) - .findFirst() - .orElse(new InventarioArtDTO() + .findFirst(); + + InventarioArtDTO matchedArt = null; + + if (canAddUnknownItems) { + matchedArt = matchedArtOpt.orElse(new InventarioArtDTO() .setBarcode(barcodeList) .setFlagQtaCnfFissa(true) .setPlu(false) .setUntMis("PZ") .setQtaCnf(BigDecimal.ONE)); + } + if (matchedArt != null) { this.dispatchRowInsert(barcodeProd, matchedArt, ean128Model); onComplete.run(); diff --git a/build.gradle b/build.gradle index a15287fb..5424d897 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { ext { kotlin_version = '1.8.0' - agp_version = '8.1.0-alpha08' + agp_version = '8.1.0-alpha09' } repositories {