diff --git a/app/build.gradle b/app/build.gradle index ae687d62..8cd90a00 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 284 - def appVersionName = '1.26.1' + def appVersionCode = 285 + def appVersionName = '1.26.2' signingConfigs { release { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java index 18107973..c03ca174 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java @@ -19,7 +19,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt; -@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 8, exportSchema = false) +@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 9, exportSchema = false) @TypeConverters({ DateConverter.class, BigDecimalConverter.class diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java index 2a109a0c..329820ba 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java @@ -6,7 +6,10 @@ import androidx.room.ForeignKey; import androidx.room.Index; import androidx.room.PrimaryKey; +import org.json.JSONObject; + import java.math.BigDecimal; +import java.util.HashMap; import it.integry.integrywmsnative.core.utility.UtilityDate; @@ -202,6 +205,14 @@ public class ArticoloGriglia { this.newNoPromo = newNoPromo; } + public String generateSystemNote() { + HashMap pairs = new HashMap<>(); + pairs.put("qta_proposta", String.valueOf(qtaProposta)); + pairs.put("giacenza", String.valueOf(giacenza)); + + return new JSONObject(pairs).toString(); + } + public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) { ArticoloOrdine articolo = new ArticoloOrdine(); @@ -222,6 +233,7 @@ public class ArticoloGriglia { articolo.setQtaPrevistaVendita(BigDecimal.valueOf(this.getQtaPrevistaVendita())); articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta())); articolo.setNewNoPromo(this.isNewNoPromo()); + articolo.setSystemNote(generateSystemNote()); articolo.setQtaOrd(0); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloOrdine.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloOrdine.java index 37fe4fea..bb0f8709 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloOrdine.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloOrdine.java @@ -70,6 +70,9 @@ public class ArticoloOrdine { @ColumnInfo(name = "new_no_promo") private boolean newNoPromo; + @ColumnInfo(name = "system_note") + private String systemNote; + @Ignore private int ggScadenza = 0; @@ -266,4 +269,12 @@ public class ArticoloOrdine { this.bgTint = bgTint; return this; } + + public String getSystemNote() { + return systemNote; + } + + public void setSystemNote(String systemNote) { + this.systemNote = systemNote; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java index c335508e..88a2dea9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java @@ -56,7 +56,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer { .groupBy(ArticoloDTO::getCodMart) .forEach(entry -> { - if(entry.getValue().size() == 1) { + if (entry.getValue().size() == 1) { listaArticoli.add(entry.getValue().get(0)); } else { for (ArticoloDTO articolo : entry.getValue()) { @@ -93,7 +93,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer { int i = 0; for (ArticoloOrdine art : articoli) { i++; - artRows.add(convertArtToDTO(art,i)); + artRows.add(convertArtToDTO(art, i)); } ordineDTO.setChiaveGriglia(griglia.getCodAlis()); @@ -109,9 +109,9 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer { .enqueue(new Callback>>() { @Override public void onResponse(Call>> call, Response>> response) { - if (response.body() != null && response.body().size() > 0){ - analyzeListOfAnswers(response, "getArticoliListino", dtoList-> { - if (dtoList.size() > 0){ + if (response.body() != null && response.body().size() > 0) { + analyzeListOfAnswers(response, "getArticoliListino", dtoList -> { + if (dtoList.size() > 0) { DtbOrdt dto = dtoList.get(0); ordine.setTransmitted(true); ordine.setTransmissionDate(UtilityDate.getDateInstance()); @@ -120,7 +120,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer { ordine.setCodMdep(dto.getCodMdep()); ordine.setNumOrd(dto.getNumOrd()); onSuccess.run(ordine); - }else{ + } else { onFailed.run(new Exception("Nessun ordine generato")); } }, onFailed); @@ -128,7 +128,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer { } @Override - public void onFailure(Call>>call, Throwable t) { + public void onFailure(Call>> call, Throwable t) { Log.e("saveOrdineTerminale_pv", t.toString()); UtilityLogger.errorMe(new Exception(t)); onFailed.run(new Exception(t)); @@ -136,7 +136,6 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer { }); - } private ArtDTO convertArtToDTO(ArticoloOrdine art, int rigaOrd) { @@ -147,6 +146,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer { dto.setDescrizione(art.getDescrizione()); dto.setDataInsD(art.getDataIns()); dto.setUntMis(art.getUntMis()); + dto.setSystemNote(art.getSystemNote()); dto.setQta(BigDecimal.valueOf(art.getQtaOrd())); dto.setQtaCnf(BigDecimal.valueOf(art.getQtaCnf())); dto.setColli(BigDecimal.ZERO); 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/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java index d7961f9c..cd545753 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java @@ -163,6 +163,7 @@ public class PVOrdineAcquistoEditViewModel { articolo.setMerceDaRic(artGrid.getMerceDaRic()); articolo.setNewNoPromo(artGrid.isNewNoPromo()); articolo.setFlagQtaMultipla(artGrid.getFlagQtaMultipla()); + articolo.setSystemNote(artGrid.generateSystemNote()); onSuccess.run(articolo); } else { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dto/ArtDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dto/ArtDTO.java index 1a8d5d9e..9b0bcf4a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dto/ArtDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dto/ArtDTO.java @@ -28,6 +28,8 @@ public class ArtDTO { private String dataScad; + private String systemNote; + public Integer getRigaOrd() { return rigaOrd; } @@ -63,6 +65,7 @@ public class ArtDTO { public String getDataIns() { return dataIns; } + public Date getDataInsD() { return UtilityDate.recognizeDateWithExceptionHandler(getDataIns()); } @@ -70,6 +73,7 @@ public class ArtDTO { public void setDataIns(String dataIns) { this.dataIns = dataIns; } + public void setDataInsD(Date dataIns) { setDataIns(UtilityDate.formatDate(dataIns, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH)); } @@ -122,6 +126,7 @@ public class ArtDTO { public void setDataScad(String dataScad) { this.dataScad = dataScad; } + public Date getDataScadD() { return UtilityDate.recognizeDateWithExceptionHandler(getDataScad()); } @@ -130,5 +135,12 @@ public class ArtDTO { setDataScad(UtilityDate.formatDate(dataScad, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH)); } + public String getSystemNote() { + return systemNote; + } + public ArtDTO setSystemNote(String systemNote) { + this.systemNote = systemNote; + return this; + } } 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) {