diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java index 87db9581..47e625b5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java @@ -1,5 +1,7 @@ package it.integry.integrywmsnative.core.rest.consumers; +import androidx.annotation.NonNull; + import com.annimon.stream.Stream; import com.google.gson.reflect.TypeToken; @@ -98,6 +100,25 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer { }); } + public void findIfIsKit(MtbAart mtbAart, RunnableArgs onComplete, RunnableArgs onFailed){ + ArticoloRESTConsumerService articoloRESTConsumerService = RESTBuilder.getService(ArticoloRESTConsumerService.class); + + articoloRESTConsumerService + .findIfIsKit(mtbAart) + .enqueue(new Callback<>() { + @Override + public void onResponse(@NonNull Call> call, @NonNull Response> response) { + analyzeAnswer(response, "findIfIsKit", (m) -> { + onComplete.run(response.body().getDto()); + }, onFailed); + } + + @Override + public void onFailure(@NonNull Call> call, Throwable t) { + onFailed.run(new Exception(t)); + } + }); + } public void getByCodMarts(List codMartToFind, RunnableArgs> onComplete, RunnableArgs onFailed) { getByCodMartsStatic(codMartToFind, onComplete, onFailed); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java index c497adc6..1c273ff6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java @@ -31,6 +31,9 @@ public interface ArticoloRESTConsumerService { @POST("wms/articolo/searchByBarcode") Call> searchByBarcode(@Body() SearchArticoloByBarcodeRequestDTO searchArticoloByBarcodeRequest); + @POST("wms/articolo/findIfIsKit") + Call> findIfIsKit(@Body MtbAart mtbAart); + @POST("wms/articolo/retrieveByCodMart") Call>> getByCodMart(@Body RetrieveArticoloByCodMartRequestDTO retrieveArticoloByCodMartRequest); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java index feb85589..8cf0e716 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java @@ -19,6 +19,9 @@ public class SitBollaAccettazioneDTO { private BigDecimal qtaDaAccettare; private BigDecimal numCnfDaAccettare; + private boolean kit; + private boolean componente; + public int getNumDoc() { return numDoc; } @@ -126,4 +129,20 @@ public class SitBollaAccettazioneDTO { this.numCnfDaAccettare = numCnfDaAccettare; return this; } + + public boolean isKit() { + return kit; + } + + public void setKit(boolean kit) { + this.kit = kit; + } + + public boolean isComponente() { + return componente; + } + + public void setComponente(boolean componente) { + this.componente = componente; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java index aec586ae..cf7f146b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java @@ -338,8 +338,14 @@ public class AccettazioneBollaPickingViewModel { } private void loadMatchedRows(List matchedRows, MtbAart mtbAart, PickDataDTO pickDataDTO) { - if (matchedRows == null || matchedRows.size() == 0) { - manageNoArtFound(mtbAart, pickDataDTO); + if (matchedRows == null || matchedRows.isEmpty()) { + this.mArticoloRESTConsumer.findIfIsKit(mtbAart, mtbAartFind -> { + if (mtbAartFind == null){ + manageNoArtFound(mtbAart, pickDataDTO); + } else { + searchArtFromAnag(mtbAartFind, pickDataDTO, () -> {}); + } + }, this::sendError); } else if (matchedRows.size() == 1) { this.manageDispatchBollaRow(matchedRows.get(0)); } else { @@ -662,8 +668,8 @@ public class AccettazioneBollaPickingViewModel { .setUntMis(pickingObjectDTO.getMtbAart().getUntMis()) .setMtbAart(pickingObjectDTO.getMtbAart()); - pickingObjectDTO.getWithdrawMtbColrs().add(insertedMtbColr); - mCurrentMtbColt.getMtbColr().add(insertedMtbColr); + pickingObjectDTO.getWithdrawMtbColrs().add(0, insertedMtbColr); + mCurrentMtbColt.getMtbColr().add(0, insertedMtbColr); //Chiamato removeListFilter perché cosi mi cancella tutti i dati di pick temporanei resetMatchedRows(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java index 3b81d9c4..8ef41338 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java @@ -77,8 +77,8 @@ public class AccettazioneBollaPickingListAdapter extends SectionedRecyclerViewAd Collections.sort(listaOrdinata, (a, b) -> { - boolean condA = a.getQtaEvasa().subtract(a.getQtaTot()).floatValue() == 0; - boolean condB = b.getQtaEvasa().subtract(b.getQtaTot()).floatValue() == 0; + boolean condA = a.getQtaEvasa().floatValue() > 0; + boolean condB = b.getQtaEvasa().floatValue() > 0; if (condA && !condB) { return -1;