diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PrinterRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PrinterRESTConsumer.java index 038c879e..97050900 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PrinterRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PrinterRESTConsumer.java @@ -11,6 +11,7 @@ import javax.inject.Singleton; import it.integry.integrywmsnative.core.exception.NoPrintersFoundException; import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.model.DtbOrdt; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.report.ReportType; import it.integry.integrywmsnative.core.rest.RESTBuilder; @@ -155,5 +156,26 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer { printReportType(reportType, codMdep, null, params, onComplete, onFailed); } + public void printClosedOrders(List closedOrders, String codMdep, Runnable onComplete, RunnableArgs onFailed) { + + PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class, 240); + Call> callable = printerService.printClosedOrders(codMdep, closedOrders); + callable.enqueue(new Callback<>() { + @Override + public void onResponse(Call> call, Response> response) { + analyzeAnswer(response, "printCollo", data -> { + onComplete.run(); + }, onFailed); + } + + @Override + public void onFailure(Call> call, Throwable t) { + if (t.getMessage().contains("Printer not found")) { + onFailed.run(new NoPrintersFoundException()); + } else onFailed.run(new Exception(t)); + } + }); + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PrinterRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PrinterRESTConsumerService.java index 833c3adf..f4bd2e97 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PrinterRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PrinterRESTConsumerService.java @@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.rest.consumers; import java.util.List; +import it.integry.integrywmsnative.core.model.DtbOrdt; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.rest.model.JasperDTO; import it.integry.integrywmsnative.core.rest.model.ReportTypeDTO; @@ -37,4 +38,10 @@ public interface PrinterRESTConsumerService { @Body MtbColt mtbColtToPrint ); + @POST("wms/printClosedOrders") + Call> printClosedOrders( + @Query("codMdep") String codMdep, + @Body List closedOrders + ); + } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java index 489b59c4..42809d10 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java @@ -36,6 +36,7 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUBaseOp import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUPrintListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.model.CommonModelConsts; +import it.integry.integrywmsnative.core.model.DtbOrdt; import it.integry.integrywmsnative.core.model.FiltroOrdineDTO; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbColr; @@ -1851,29 +1852,27 @@ public class SpedizioneViewModel { public void closeOrder() { this.sendOnLoadingStarted(); - - Runnable printEtichetteOrderRunnable = () -> { - if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) { - cyclicPrintListEtichette( - this.mTestateOrdini.iterator(), - this::sendOnLoadingEnded, - ex -> this.sendLUPrintError(ex, this::sendOnLoadingEnded)); - } - - }; - - if (SettingsManager.iDB().isFlagPrintPackingListOnOrderClose()) { - - cyclicPrintPackingList( - this.mTestateOrdini.iterator(), - - printEtichetteOrderRunnable, - ex -> this.sendLUPrintError(ex, printEtichetteOrderRunnable)); - } else { - printEtichetteOrderRunnable.run(); + if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose() || SettingsManager.iDB().isFlagPrintPackingListOnOrderClose()) { + printClosedOrders(this.mTestateOrdini, this::sendOnLoadingEnded, ex -> this.sendLUPrintError(ex, this::sendOnLoadingEnded)); } + } + private void printClosedOrders(List listOrdiniInevasi, Runnable onSuccess, RunnableArgs onAbort) { + HashMap params = new HashMap<>(); + List closedOrders = Stream.of(listOrdiniInevasi).map(ord -> { + DtbOrdt ordV = new DtbOrdt(); + ordV.setDataOrd(ord.getDataOrdS()) + .setNumOrd(ord.getNumOrd()) + .setGestione(ord.getGestione()) + .setCodAnag(ord.getCodAnagOrd()); + return ordV; + }).toList(); + this.mPrinterRESTConsumer.printClosedOrders( + closedOrders, + SettingsManager.i().getUserSession().getDepo().getCodMdep(), + onSuccess, + onAbort); } private void cyclicPrintPackingList(@NotNull Iterator sourceTestateOrdineVenditaIterator, Runnable onComplete, RunnableArgs onAbort) {