Aggiunta gestione colli misti

This commit is contained in:
Valerio Castellana 2020-05-22 10:58:06 +02:00
parent 8a366e800e
commit ed7f2499c8

View File

@ -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. <br> 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<OrdineLavorazioneDTO> ordini, MtbDepoPosizione mtbDepoPosizione) {
private void richiediOrdiniPerVersamento(List<OrdineLavorazioneDTO> 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<MtbColr> 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());
}
}