Implementato popup che chiede se modificare o aggiungere una riga nel caso di articolo già inventariato
This commit is contained in:
parent
6a998d6605
commit
7ef0299282
@ -56,6 +56,7 @@ public class DBSettingsModel {
|
|||||||
private boolean showCodFornSpedizione = true;
|
private boolean showCodFornSpedizione = true;
|
||||||
private boolean flagCanCreateInventario = true;
|
private boolean flagCanCreateInventario = true;
|
||||||
private boolean flagCanAddUnknownItemsInventario = true;
|
private boolean flagCanAddUnknownItemsInventario = true;
|
||||||
|
private boolean flagShouldAskToCreateOrUpdateRowInventario = false;
|
||||||
|
|
||||||
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
||||||
return flagSpedizioneEnableFakeGiacenza;
|
return flagSpedizioneEnableFakeGiacenza;
|
||||||
@ -418,6 +419,15 @@ public class DBSettingsModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isFlagShouldAskToCreateOrUpdateRowInventario() {
|
||||||
|
return flagShouldAskToCreateOrUpdateRowInventario;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagShouldAskToCreateOrUpdateRowInventario(boolean flagShouldAskToCreateOrUpdateRowInventario) {
|
||||||
|
this.flagShouldAskToCreateOrUpdateRowInventario = flagShouldAskToCreateOrUpdateRowInventario;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isFlagConsentiFuoriPianoLogistico() {
|
public boolean isFlagConsentiFuoriPianoLogistico() {
|
||||||
return flagConsentiFuoriPianoLogistico;
|
return flagConsentiFuoriPianoLogistico;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -363,6 +363,10 @@ public class SettingsManager {
|
|||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("INVENTARIO")
|
.setSection("INVENTARIO")
|
||||||
.setKeySection("FLAG_CAN_ADD_UNKNOWN_ITEMS"));
|
.setKeySection("FLAG_CAN_ADD_UNKNOWN_ITEMS"));
|
||||||
|
stbGestSetupList.add(new StbGestSetup()
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("INVENTARIO")
|
||||||
|
.setKeySection("FLAG_SHOULD_ASK_TO_CREATE_OR_UPDATE_ROW"));
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
|
|
||||||
mGestSetupRESTConsumer.getValues(codMdep, stbGestSetupList, list -> {
|
mGestSetupRESTConsumer.getValues(codMdep, stbGestSetupList, list -> {
|
||||||
@ -398,6 +402,7 @@ public class SettingsManager {
|
|||||||
dbSettingsModelIstance.setGroupShippingByCommodityGroup(getValueFromList(list, "SPEDIZIONE", "FLAG_GROUP_BY_GRP_MERC", Boolean.class, Boolean.FALSE));
|
dbSettingsModelIstance.setGroupShippingByCommodityGroup(getValueFromList(list, "SPEDIZIONE", "FLAG_GROUP_BY_GRP_MERC", Boolean.class, Boolean.FALSE));
|
||||||
dbSettingsModelIstance.setFlagCanCreateInventario(getValueFromList(list, "INVENTARIO", "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));
|
dbSettingsModelIstance.setFlagCanAddUnknownItemsInventario(getValueFromList(list, "INVENTARIO", "FLAG_CAN_ADD_UNKNOWN_ITEMS", Boolean.class, Boolean.TRUE));
|
||||||
|
dbSettingsModelIstance.setFlagShouldAskToCreateOrUpdateRowInventario(getValueFromList(list, "INVENTARIO", "FLAG_SHOULD_ASK_TO_CREATE_OR_UPDATE_ROW", Boolean.class, Boolean.FALSE));
|
||||||
|
|
||||||
String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class);
|
String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class);
|
||||||
if (notePerdita != null)
|
if (notePerdita != null)
|
||||||
@ -435,7 +440,7 @@ public class SettingsManager {
|
|||||||
} else if (clazz == Integer.class && value.getValue() != null) {
|
} else if (clazz == Integer.class && value.getValue() != null) {
|
||||||
return clazz.cast(Integer.parseInt(value.getValue()));
|
return clazz.cast(Integer.parseInt(value.getValue()));
|
||||||
}
|
}
|
||||||
} else {
|
} else if(defaultValue == null) {
|
||||||
if (clazz == Boolean.class) {
|
if (clazz == Boolean.class) {
|
||||||
return clazz.cast(Boolean.FALSE);
|
return clazz.cast(Boolean.FALSE);
|
||||||
} else if (clazz == Integer.class) {
|
} else if (clazz == Integer.class) {
|
||||||
|
|||||||
@ -36,6 +36,8 @@ 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.databinding.ActivityPickingInventarioBinding;
|
import it.integry.integrywmsnative.databinding.ActivityPickingInventarioBinding;
|
||||||
import it.integry.integrywmsnative.databinding.ActivityPickingInventarioListItemBinding;
|
import it.integry.integrywmsnative.databinding.ActivityPickingInventarioListItemBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsItemListModel;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsView;
|
||||||
import it.integry.integrywmsnative.gest.inventario.bottom_sheet__inventario_row_actions.BottomSheetInventarioRowActionsView;
|
import it.integry.integrywmsnative.gest.inventario.bottom_sheet__inventario_row_actions.BottomSheetInventarioRowActionsView;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
@ -99,7 +101,8 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn
|
|||||||
mViewModel.init(
|
mViewModel.init(
|
||||||
DataCache.retrieveItem(getIntent().getStringExtra(KEY_INVENTARIO)),
|
DataCache.retrieveItem(getIntent().getStringExtra(KEY_INVENTARIO)),
|
||||||
DataCache.retrieveItem(getIntent().getStringExtra(KEY_INVENTARIO_ARTS)),
|
DataCache.retrieveItem(getIntent().getStringExtra(KEY_INVENTARIO_ARTS)),
|
||||||
SettingsManager.iDB().isFlagCanAddUnknownItemsInventario());
|
SettingsManager.iDB().isFlagCanAddUnknownItemsInventario(),
|
||||||
|
SettingsManager.iDB().isFlagShouldAskToCreateOrUpdateRowInventario());
|
||||||
|
|
||||||
initToolbar();
|
initToolbar();
|
||||||
initBarcodeReader();
|
initBarcodeReader();
|
||||||
@ -236,6 +239,36 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn
|
|||||||
.show(getSupportFragmentManager(), "tag");
|
.show(getSupportFragmentManager(), "tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onItemAlreadyFound(InventarioArtDTO matchedArt, List<InventarioRowRoomDTO> alreadyScannedItems) {
|
||||||
|
final List<DialogSelectDocRowsItemListModel<Object>> dialogSelectDocRowsItemListModels = Stream.of(alreadyScannedItems)
|
||||||
|
.map(x -> new DialogSelectDocRowsItemListModel<>()
|
||||||
|
.setBarcode(x.getScanCodBarre())
|
||||||
|
.setCodMart(x.getCodMart())
|
||||||
|
.setDescrizione(x.getDescrizione())
|
||||||
|
.setQtaOrd(x.getQta())
|
||||||
|
.setUntMisOrd(x.getUntMis())
|
||||||
|
.setNew(false)
|
||||||
|
.setOriginalModel(x))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
dialogSelectDocRowsItemListModels.add(new DialogSelectDocRowsItemListModel<>()
|
||||||
|
.setCodMart(matchedArt.getCodMart())
|
||||||
|
.setDescrizione(matchedArt.getDescrizione())
|
||||||
|
.setQtaOrd(BigDecimal.ZERO)
|
||||||
|
.setUntMisOrd(matchedArt.getUntMis())
|
||||||
|
.setNew(true));
|
||||||
|
|
||||||
|
DialogSelectDocRowsView.newInstance(dialogSelectDocRowsItemListModels, data -> {
|
||||||
|
if(data.isNew())
|
||||||
|
this.mViewModel.dispatchRowInsert(null, matchedArt, null);
|
||||||
|
else
|
||||||
|
this.mViewModel.dispatchRowEdit(matchedArt.toMtbAart(), (InventarioRowRoomDTO) data.getOriginalModel());
|
||||||
|
}, () -> {
|
||||||
|
|
||||||
|
}).show(this.getSupportFragmentManager(), "DialogSelectDocRowsView");
|
||||||
|
}
|
||||||
|
|
||||||
public void showAvailableArts() {
|
public void showAvailableArts() {
|
||||||
var listaMtbAart = Stream.of(this.mViewModel.getAvailableArts())
|
var listaMtbAart = Stream.of(this.mViewModel.getAvailableArts())
|
||||||
.map(InventarioArtDTO::toMtbAart)
|
.map(InventarioArtDTO::toMtbAart)
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import androidx.lifecycle.LiveData;
|
|||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
import androidx.lifecycle.ViewModel;
|
import androidx.lifecycle.ViewModel;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -37,6 +39,7 @@ public class PickingInventarioViewModel extends ViewModel {
|
|||||||
private final InventarioRowRepository inventarioRowRepository;
|
private final InventarioRowRepository inventarioRowRepository;
|
||||||
|
|
||||||
private boolean canAddUnknownItems;
|
private boolean canAddUnknownItems;
|
||||||
|
private boolean flagShouldAskToCreateOrUpdateRowInventario;
|
||||||
|
|
||||||
public MutableLiveData<InventarioRoomDTO> currentInventario = new MutableLiveData<>();
|
public MutableLiveData<InventarioRoomDTO> currentInventario = new MutableLiveData<>();
|
||||||
public LiveData<List<InventarioRowRoomDTO>> currentInventarioRows = new MutableLiveData<>();
|
public LiveData<List<InventarioRowRoomDTO>> currentInventarioRows = new MutableLiveData<>();
|
||||||
@ -51,8 +54,9 @@ public class PickingInventarioViewModel extends ViewModel {
|
|||||||
this.inventarioRowRepository = inventarioRowRepository;
|
this.inventarioRowRepository = inventarioRowRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void init(InventarioRoomDTO inventarioRoomDTO, List<InventarioArtDTO> inventarioArts, boolean canAddUnknownItems) {
|
public void init(InventarioRoomDTO inventarioRoomDTO, List<InventarioArtDTO> inventarioArts, boolean canAddUnknownItems, boolean flagShouldAskToCreateOrUpdateRowInventario) {
|
||||||
this.canAddUnknownItems = canAddUnknownItems;
|
this.canAddUnknownItems = canAddUnknownItems;
|
||||||
|
this.flagShouldAskToCreateOrUpdateRowInventario = flagShouldAskToCreateOrUpdateRowInventario;
|
||||||
|
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
@ -168,15 +172,32 @@ public class PickingInventarioViewModel extends ViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (matchedArt != null) {
|
if (matchedArt != null) {
|
||||||
|
var alreadyScannedItems = searchArtInAlreadyScannedItems(matchedArt);
|
||||||
|
|
||||||
|
if (alreadyScannedItems == null || alreadyScannedItems.isEmpty() || !flagShouldAskToCreateOrUpdateRowInventario)
|
||||||
this.dispatchRowInsert(barcodeProd, matchedArt, ean128Model);
|
this.dispatchRowInsert(barcodeProd, matchedArt, ean128Model);
|
||||||
|
|
||||||
|
else {
|
||||||
|
this.sendOnItemAlreadyFound(matchedArt, alreadyScannedItems);
|
||||||
|
|
||||||
|
}
|
||||||
onComplete.run();
|
onComplete.run();
|
||||||
} else
|
} else
|
||||||
this.sendError(new NoResultFromBarcodeException(barcodeProd));
|
this.sendError(new NoResultFromBarcodeException(barcodeProd));
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<InventarioRowRoomDTO> searchArtInAlreadyScannedItems(InventarioArtDTO inventarioArtDTO) {
|
||||||
|
final List<InventarioRowRoomDTO> inventarioRows = this.currentInventarioRows.getValue();
|
||||||
|
|
||||||
|
if (inventarioRows == null) return null;
|
||||||
|
|
||||||
|
return Stream.of(inventarioRows)
|
||||||
|
.filter(x -> x.getCodMart().equalsIgnoreCase(inventarioArtDTO.getCodMart()))
|
||||||
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void dispatchRowInsert(String barcode, InventarioArtDTO inventarioArtDTO, Ean128Model ean128Model) {
|
public void dispatchRowInsert(String barcode, InventarioArtDTO inventarioArtDTO, Ean128Model ean128Model) {
|
||||||
var mtbAart = inventarioArtDTO.toMtbAart();
|
var mtbAart = inventarioArtDTO.toMtbAart();
|
||||||
mtbAart.setFlagTracciabilita("N");
|
mtbAart.setFlagTracciabilita("N");
|
||||||
|
|
||||||
@ -290,7 +311,7 @@ public class PickingInventarioViewModel extends ViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void dispatchRowEdit(MtbAart mtbAart, InventarioRowRoomDTO inventarioRowRoomDTO) {
|
public void dispatchRowEdit(MtbAart mtbAart, InventarioRowRoomDTO inventarioRowRoomDTO) {
|
||||||
|
|
||||||
final PickingObjectDTO pickingObjectDTO = new PickingObjectDTO()
|
final PickingObjectDTO pickingObjectDTO = new PickingObjectDTO()
|
||||||
.setMtbAart(mtbAart);
|
.setMtbAart(mtbAart);
|
||||||
@ -393,6 +414,11 @@ public class PickingInventarioViewModel extends ViewModel {
|
|||||||
onComplete);
|
onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendOnItemAlreadyFound(InventarioArtDTO matchedArt, List<InventarioRowRoomDTO> alreadyScannedItems) {
|
||||||
|
if(this.mListener != null)
|
||||||
|
this.mListener.onItemAlreadyFound(matchedArt, alreadyScannedItems);
|
||||||
|
}
|
||||||
|
|
||||||
public PickingInventarioViewModel setListener(Listener listener) {
|
public PickingInventarioViewModel setListener(Listener listener) {
|
||||||
this.mListener = listener;
|
this.mListener = listener;
|
||||||
return this;
|
return this;
|
||||||
@ -419,5 +445,7 @@ public class PickingInventarioViewModel extends ViewModel {
|
|||||||
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
||||||
|
|
||||||
|
|
||||||
|
void onItemAlreadyFound(InventarioArtDTO matchedArt, List<InventarioRowRoomDTO> alreadyScannedItems);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user