From ed7f2499c821f2dcc2cfe148541d365e0f5c811e Mon Sep 17 00:00:00 2001 From: ValerioC Date: Fri, 22 May 2020 10:58:06 +0200 Subject: [PATCH] Aggiunta gestione colli misti --- .../ProdVersamentoMaterialViewModel.java | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java index 16d82803..033eb7b8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java @@ -11,14 +11,18 @@ import android.widget.Toast; import androidx.databinding.ObservableField; import androidx.recyclerview.widget.LinearLayoutManager; +import org.jetbrains.annotations.NotNull; + import java.text.ParseException; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.exception.DateNotRecognizedException; import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbColr; @@ -124,9 +128,13 @@ public class ProdVersamentoMaterialViewModel { null, this::openLU).show(); return; } else if (mtbColt.get().getMtbColr().size() > 1) { + DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(Html.fromHtml("Il collo selezionato contiene più articoli, solo il primo verrà versato in questa sessione.
Per versare i colli restanti ripetere l'operazione di versamento.")), - null, null).show(); + null, () -> { + cyclicGetOrdiniLavByCollo(mtbColt.get().getMtbColr().iterator(), mtbDepoPosizione); + }).show(); + return; } MesRESTConsumer.getOrdiniLavorazioneMateriale(mtbDepoPosizione.getPosizione(), getIdMaterialeFromCollo(mtbColt.get()), ordini -> richiediOrdiniPerVersamento(ordini, mtbDepoPosizione), e -> DialogSimpleMessageHelper.makeWarningDialog(mContext, @@ -173,7 +181,7 @@ public class ProdVersamentoMaterialViewModel { openLU(); } - public void richiediOrdiniPerVersamento(List ordini, MtbDepoPosizione mtbDepoPosizione) { + private void richiediOrdiniPerVersamento(List ordini, MtbDepoPosizione mtbDepoPosizione) { if (ordini == null || ordini.size() <= 0) { mBinding.positiveFab.setVisibility(View.GONE); @@ -220,4 +228,24 @@ public class ProdVersamentoMaterialViewModel { mBinding.dialogChooseArtsFromListaArtMainList.setAdapter(currentAdapter); } + private void cyclicGetOrdiniLavByCollo(@NotNull Iterator righeCollo, MtbDepoPosizione mtbDepoPosizione) { + MtbColr colr = righeCollo.next(); + setMtbColr(colr); + MtbAart articolo = colr.getMtbAart(); + + MesRESTConsumer.getOrdiniLavorazioneMateriale(mtbDepoPosizione.getPosizione(), UtilityString.isNullOrEmpty(articolo.getIdArtEqui()) ? articolo.getCodMart() : articolo.getIdArtEqui(), ordini -> { + if (ordini == null || ordini.isEmpty()) { + if (righeCollo.hasNext()) { + cyclicGetOrdiniLavByCollo(righeCollo, mtbDepoPosizione); + } else { + richiediOrdiniPerVersamento(ordini, mtbDepoPosizione); + } + } else { + richiediOrdiniPerVersamento(ordini, mtbDepoPosizione); + } + } + , e -> DialogSimpleMessageHelper.makeWarningDialog(mContext, + new SpannableString(Html.fromHtml(e.getMessage())), + null, this::openLU).show()); + } }