Fix su caricamento dati da griglia quando si scansiona un articolo gia inserito nell'ordine

This commit is contained in:
Giuseppe Scorrano 2022-03-10 12:07:22 +01:00
parent 1f94c14634
commit c32da27b7f
3 changed files with 27 additions and 29 deletions

View File

@ -59,7 +59,7 @@ public class BaseActivity extends AppCompatActivity {
protected void openProgress() {
BarcodeManager.disable();
if (!progressOpened) {
if (!progressOpened && !this.mCurrentProgress.isAdded()) {
this.progressOpened = true;
runOnUiThread(() -> {
this.mCurrentProgress.show(getSupportFragmentManager(), "tag");

View File

@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData;
import com.annimon.stream.Stream;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@ -93,7 +94,7 @@ public class PVOrdineAcquistoEditViewModel {
.filter(x -> Objects.equals(x.getCodMart(), articolo.getCodMart()))
.findFirst();
if(alreadySavedItem.isPresent()) newList.remove(alreadySavedItem.get());
if (alreadySavedItem.isPresent()) newList.remove(alreadySavedItem.get());
newList.add(articolo);
this.mArticoli.postValue(newList);
@ -154,20 +155,36 @@ public class PVOrdineAcquistoEditViewModel {
private void checkArticolo(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
try {
mArticoliOrdineRepository.findArticoloByScanAndOrdine(ordine, barcode, (articolo) -> {
if (articolo != null) {
onSuccess.run(articolo);
} else {
mArticoloGrigliaRepository.findArticoloByScanAndGriglia(barcode, ordine.getIdGriglia(), artGrid -> {
if (artGrid != null) {
onSuccess.run(artGrid.convertToArticoloOrdine(ordine));
mArticoloGrigliaRepository.findArticoloByScanAndGriglia(barcode, ordine.getIdGriglia(), artGrid -> {
if (artGrid != null) {
mArticoliOrdineRepository.findArticoloByScanAndOrdine(ordine, barcode, (articolo) -> {
if (articolo != null) {
articolo
.setQtaPrevistaVendita(BigDecimal.valueOf(artGrid.getQtaPrevistaVendita()))
.setQtaProposta(BigDecimal.valueOf(artGrid.getQtaProposta()))
.setGiacenza(BigDecimal.valueOf(artGrid.getGiacenza()))
.setMediaSett(artGrid.getMediaSett());
articolo.setQtaMinOrdinabile(artGrid.getQtaMinOrdinabile());
articolo.setMerceDaRic(artGrid.getMerceDaRic());
articolo.setNewNoPromo(artGrid.isNewNoPromo());
articolo.setFlagQtaMultipla(artGrid.getFlagQtaMultipla());
onSuccess.run(articolo);
} else {
onFail.run(new Exception("L' articolo ( " + barcode + " ) non è presente nella griglia"));
onSuccess.run(artGrid.convertToArticoloOrdine(ordine));
}
}, onFail);
} else {
onFail.run(new Exception("L' articolo ( " + barcode + " ) non è presente nella griglia"));
}
}, onFail);
} catch (Exception e) {
onFail.run(e);
}

View File

@ -37,11 +37,9 @@ import it.integry.integrywmsnative.core.rest.model.Ean128Model;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityDialog;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsLayoutBinding;
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
@ -62,7 +60,6 @@ public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
private final List<DialogChooseArtsFromListaArtsItemModel> mDataset;
private int mBarcodeScannerIstanceID;
private DialogProgressView mCurrentProgress;
private MtbAart selectedArt;
public static DialogChooseArtsFromListaArts newInstance(List<MtbColr> listaMtbColr, RunnableArgs<List<MtbColr>> onItemsChoosed, Runnable onAbort) {
@ -385,20 +382,4 @@ public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
this.dismiss();
}
protected void openProgress() {
requireActivity().runOnUiThread(() -> {
if (this.mCurrentProgress == null) {
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity());
}
});
}
protected void closeProgress() {
requireActivity().runOnUiThread(() -> {
if (mCurrentProgress != null) {
mCurrentProgress.dismiss();
mCurrentProgress = null;
}
});
}
}