From af5c5338b74b656229d29fe6f01f8c51ff97f158 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Thu, 7 Mar 2024 12:03:44 +0100 Subject: [PATCH 1/4] Fix linea di impiego in dialog in approv. linee --- .../ProdFabbisognoLineeProdFragment.java | 6 + .../ProdFabbisognoLineeProdRESTConsumer.java | 137 +++--------------- ...logRowInfoProdFabbisognoLineeProdView.java | 1 + ...wInfoProdFabbisognoLineeProdViewModel.java | 4 +- 4 files changed, 29 insertions(+), 119 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java index 2be22253..6126fe36 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java @@ -312,6 +312,11 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi private void startPickingActivity(List fabbisognoList) { String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); + String ordini = UtilityDB.listValueToString(Stream.of(mProdFabbisognoItemModel) + .filter(x -> x instanceof ProdFabbisognoLineeItemModelDto && ((ProdFabbisognoLineeItemModelDto) x).selected.get()) + .map(x -> ((ProdFabbisognoLineeItemModelDto) x).getOrdineLavorazioneDTO().getNumOrd().toString()) + .toList()); + List sitArtOrdDTOS = Stream.of(fabbisognoList) .map(x -> { SitArtOrdDTO sitArtOrdDTO = new SitArtOrdDTO() @@ -328,6 +333,7 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi sitArtOrdDTO.getExtraInfo().put("dataInizio", x.getDataInizio()); sitArtOrdDTO.getExtraInfo().put("dataFine", x.getDataFine()); + sitArtOrdDTO.getExtraInfo().put("ordini", ordini); return sitArtOrdDTO; }) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/rest/ProdFabbisognoLineeProdRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/rest/ProdFabbisognoLineeProdRESTConsumer.java index d75d5188..8f54b725 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/rest/ProdFabbisognoLineeProdRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/rest/ProdFabbisognoLineeProdRESTConsumer.java @@ -50,123 +50,26 @@ public class ProdFabbisognoLineeProdRESTConsumer extends _BaseRESTConsumer { } - public void loadFabbisogno(String codMart, Date startDate, Date endDate, String codMdep, RunnableArgs> onComplete, RunnableArgs onFailed) { - String sql = "WITH input_values AS ( " + - " SELECT " + UtilityDB.valueToString(startDate) + " AS data_inizio, " + - " " + UtilityDB.valueToString(endDate) + " AS data_fine, " + -// " " + UtilityDB.valueToString(lineaProd) + " AS linea_prod, " + - " " + UtilityDB.valueToString(codMdep) + " AS cod_mdep)," + - " withdraw_mtb_colr AS ( " + - " SELECT cod_mart, " + - " SUM(ISNULL(qta_col, 0)) as qta_col, " + - " SUM(ISNULL(num_cnf, 0)) as num_cnf, " + - " mtb_colr.data_ord, " + - " mtb_colr.num_ord, " + - " mtb_colr.gestione " + - " FROM mtb_colr " + - " INNER JOIN mtb_colt mc on mtb_colr.gestione = mc.gestione and mtb_colr.data_collo = mc.data_collo and " + - " mtb_colr.ser_collo = mc.ser_collo and mtb_colr.num_collo = mc.num_collo " + - " WHERE segno = -1 " + - " AND cod_dtip IS NULL " + - " GROUP BY cod_mart, " + - " mtb_colr.data_ord, " + - " mtb_colr.num_ord, " + - " mtb_colr.gestione " + - " ), " + - " custom_mtb_colr AS (SELECT cod_mart, " + - " SUM(qta_col) AS qta_col, " + - " SUM(num_cnf) AS num_cnf, " + - " posizione " + - " FROM mvw_sitart_udc_det_inventario " + - " GROUP BY cod_mart, posizione), " + - " grouped_ord AS ( " + - " SELECT dtb_ordr.cod_mart, " + - " dtb_ordt.cod_jfas, " + - " dtb_ordt.cod_mdep, " + - " dtb_ordt.gestione, " + - " CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) - " + - " SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord, " + - " SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord, " + - " SUM(ISNULL(withdraw_mtb_colr.qta_col, 0)) AS qta_col_scaricata, " + - " SUM(ISNULL(withdraw_mtb_colr.num_cnf, 0)) AS num_cnf_scaricata " + - " FROM dtb_ordr " + - " INNER JOIN dtb_ordt on dtb_ordr.gestione = dtb_ordt.gestione AND " + - " dtb_ordr.data_ord = dtb_ordt.data_ord AND " + - " dtb_ordr.num_ord = dtb_ordt.num_ord " + - " LEFT OUTER JOIN withdraw_mtb_colr " + - " ON withdraw_mtb_colr.gestione = dtb_ordt.gestione AND " + - " withdraw_mtb_colr.num_ord = dtb_ordt.num_ord AND " + - " withdraw_mtb_colr.data_ord = dtb_ordt.data_ord AND " + - " withdraw_mtb_colr.cod_mart = dtb_ordr.cod_mart " + - " CROSS APPLY input_values " + - " WHERE dtb_ordt.gestione = 'L' " + - " AND flag_evaso = 'I' " + - " AND dtb_ordr.flag_evaso_forzato = 'N' " + - " AND flag_annulla = 'N' " + - " AND dtb_ordt.cod_mdep = input_values.cod_mdep " + - " AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine " + - " GROUP BY dtb_ordr.cod_mart, dtb_ordt.cod_jfas, dtb_ordt.cod_mdep, dtb_ordt.gestione " + - " ), " + - " tmp_ord AS (SELECT grouped_ord.cod_mart, " + - " mtb_aart.unt_mis, " + - " grouped_ord.cod_jfas, " + - " SUM(qta_ord) - SUM(qta_col_scaricata) AS qta_ord, " + - " SUM(num_cnf_ord) - SUM(num_cnf_scaricata) AS num_cnf_ord " + - " FROM grouped_ord " + - " INNER JOIN mtb_aart ON grouped_ord.cod_mart = mtb_aart.cod_mart " + - " CROSS APPLY input_values " + - " GROUP BY grouped_ord.cod_mart, mtb_aart.unt_mis, grouped_ord.cod_jfas " + - " ), " + - " ord_without_positioned_mtb_colt AS ( " + - " SELECT tmp_ord.cod_mart, " + - " tmp_ord.cod_jfas, " + - " ISNULL(custom_mtb_colr_on_linea.posizione, tmp_ord.cod_jfas) AS posizione, " + - " unt_mis, " + - " qta_ord AS qta_ord_calc, " + - " num_cnf_ord AS num_cnf_ord_calc, " + - " ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata, " + - " ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata, " + - " qta_ord - ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_fabbisogno, " + - " num_cnf_ord - ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_fabbisogno " + - " FROM tmp_ord " + - " INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas " + - " AND tmp_ord.cod_jfas = jrl_fase_posizioni.posizione " + - " LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea " + - " ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND " + - " tmp_ord.cod_jfas = custom_mtb_colr_on_linea.posizione " + - " " + - " UNION ALL " + - " " + - " SELECT DISTINCT tmp_ord.cod_mart, " + - " null AS cod_jfas, " + - " jrl_fase_posizioni.posizione, " + - " unt_mis, " + - " 0 AS qta_ord_calc, " + - " 0 AS num_cnf_ord_calc, " + - " ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata, " + - " ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata, " + - " 0 AS qta_fabbisogno, " + - " 0 AS num_cnf_fabbisogno " + - " FROM tmp_ord " + - " INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas " + - " AND tmp_ord.cod_jfas <> jrl_fase_posizioni.posizione " + - " " + - " " + - " LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea " + - " ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND " + - " jrl_fase_posizioni.posizione = custom_mtb_colr_on_linea.posizione " + - " ) " + - "SELECT DISTINCT cod_mart, " + - " unt_mis, " + - " cod_jfas, " + - " input_values.data_inizio, " + - " input_values.data_fine " + - "FROM ord_without_positioned_mtb_colt " + - "CROSS APPLY input_values " + - "WHERE cod_mart = " + UtilityDB.valueToString(codMart) + " " + - "GROUP BY cod_mart, unt_mis, cod_jfas, input_values.data_inizio, input_values.data_fine " + - "HAVING SUM(qta_ord_calc - qta_gia_posizionata) > 0 AND SUM(num_cnf_ord_calc - num_cnf_gia_posizionata) > 0 " + - "ORDER BY cod_mart"; + public void loadFabbisogno(String codMart, String ordini, Date startDate, Date endDate, String codMdep, RunnableArgs> onComplete, RunnableArgs onFailed) { + String sql = "SELECT DISTINCT cod_jfas\n" + + "FROM (SELECT DENSE_RANK() OVER (PARTITION BY dtb_ordt.gestione, dtb_ordt.data_ord, dtb_ordt.num_ord ORDER BY dtb_ord_steps.data_iniz DESC) AS row_n,\n" + + " dtb_ord_steps.*\n" + + " FROM dtb_ord_steps\n" + + " INNER JOIN dtb_ordt ON dtb_ord_steps.data_ord = dtb_ordt.data_ord\n" + + " AND dtb_ord_steps.num_ord = dtb_ordt.num_ord\n" + + " AND dtb_ord_steps.gestione = dtb_ordt.gestione\n" + + " INNER JOIN dtb_ordr ON dtb_ordr.gestione = dtb_ord_steps.gestione AND\n" + + " dtb_ordr.data_ord = dtb_ord_steps.data_ord AND\n" + + " dtb_ordr.num_ord = dtb_ord_steps.num_ord\n" + + " WHERE dtb_ordt.gestione = 'L'\n" + + " AND dtb_ordr.flag_evaso = 'I'\n" + + " AND dtb_ordr.flag_evaso_forzato = 'N'\n" + + " AND flag_annulla = 'N'\n" + + " AND dtb_ordt.cod_mdep = " + UtilityDB.valueToString(codMdep) + "\n" + + " AND dtb_ordt.num_ord IN ( " + ordini + " )\n" + + " AND dtb_ordt.data_ord BETWEEN " + UtilityDB.valueToString(startDate) + " AND " + UtilityDB.valueToString(endDate) + "\n" + + " AND dtb_ordr.cod_mart = " + UtilityDB.valueToString(codMart) + ") t\n" + + "WHERE t.row_n = 1"; Type typeOfObjectsList = new TypeToken>() {}.getType(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/prod_fabbisogno_linee_prod/DialogRowInfoProdFabbisognoLineeProdView.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/prod_fabbisogno_linee_prod/DialogRowInfoProdFabbisognoLineeProdView.java index ba232757..b51c592a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/prod_fabbisogno_linee_prod/DialogRowInfoProdFabbisognoLineeProdView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/prod_fabbisogno_linee_prod/DialogRowInfoProdFabbisognoLineeProdView.java @@ -76,6 +76,7 @@ public class DialogRowInfoProdFabbisognoLineeProdView extends BaseDialogRowInfoV this.mViewModel.init( sitArtOrdDTO.getCodMart(), sitArtOrdDTO.getCodMdep(), + (String) sitArtOrdDTO.getExtraInfo().get("ordini"), (Date) sitArtOrdDTO.getExtraInfo().get("dataInizio"), (Date) sitArtOrdDTO.getExtraInfo().get("dataFine")); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/prod_fabbisogno_linee_prod/DialogRowInfoProdFabbisognoLineeProdViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/prod_fabbisogno_linee_prod/DialogRowInfoProdFabbisognoLineeProdViewModel.java index df3405ba..c6b9e622 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/prod_fabbisogno_linee_prod/DialogRowInfoProdFabbisognoLineeProdViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/prod_fabbisogno_linee_prod/DialogRowInfoProdFabbisognoLineeProdViewModel.java @@ -23,10 +23,10 @@ public class DialogRowInfoProdFabbisognoLineeProdViewModel { } - public void init(String codMart, String codMdep, Date startDate, Date endDate) { + public void init(String codMart, String codMdep, String ordni, Date startDate, Date endDate) { this.sendOnLoadingStarted(); - this.mProdFabbisognoLineeProdRESTConsumer.loadFabbisogno(codMart, startDate, endDate, codMdep, fabbisognoList -> { + this.mProdFabbisognoLineeProdRESTConsumer.loadFabbisogno(codMart, ordni, startDate, endDate, codMdep, fabbisognoList -> { this.mFabbisognoList.postValue(fabbisognoList); this.sendOnLoadingEnded(); }, this::sendError); From 3f470df462b2e5b5b26fa1fc26ed4a62c38690ea Mon Sep 17 00:00:00 2001 From: MarcoE Date: Thu, 7 Mar 2024 12:10:04 +0100 Subject: [PATCH 2/4] -> v1.40.03 (420) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 6c6570a6..0bdaa6dd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 419 - def appVersionName = '1.40.02' + def appVersionCode = 420 + def appVersionName = '1.40.03' signingConfigs { release { From 9454614af6dc9dda31cce08c909a75409140bb95 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Thu, 7 Mar 2024 16:11:52 +0100 Subject: [PATCH 3/4] Rimosso tipo report WMS_SPEDIZIONE_ETICHETTE_SSCC_ORD --- .../it/integry/integrywmsnative/core/report/ReportType.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/report/ReportType.java b/app/src/main/java/it/integry/integrywmsnative/core/report/ReportType.java index 3800524f..d4515e82 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/report/ReportType.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/report/ReportType.java @@ -10,8 +10,6 @@ public enum ReportType { ETICHETTA_SSCC_LAVORAZIONE(1), @SerializedName("2") ETICHETTA_SSCC_SPEDIZIONE(2), - @SerializedName("3") - WMS_SPEDIZIONE_ETICHETTE_SSCC_ORD(3), @SerializedName("4") WMS_SPEDIZIONE_PACKING_LIST_ORD(4), @SerializedName("5") From 67e88d01e773c002d6761c27de21ee0e86b45552 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Mon, 11 Mar 2024 13:32:08 +0100 Subject: [PATCH 4/4] =?UTF-8?q?Implementato=20in=20rettifica=20giacenza=20?= =?UTF-8?q?avviso=20se=20l'articolo=20che=20si=20sta=20inserendo=20=C3=A8?= =?UTF-8?q?=20attivo=20o=20meno?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RettificaGiacenzeFragment.java | 45 ++++++++++++------- app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java index e8457b1a..0e9d29f9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java @@ -5,6 +5,7 @@ import android.content.pm.ActivityInfo; import android.content.res.ColorStateList; import android.content.res.Resources; import android.os.Bundle; +import android.text.Html; import android.text.SpannableString; import android.view.LayoutInflater; import android.view.View; @@ -46,6 +47,7 @@ import it.integry.integrywmsnative.core.model.MtbDepoPosizione; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityToast; import it.integry.integrywmsnative.databinding.FragmentMainRettificaGiacenzeBinding; @@ -398,24 +400,35 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr .setCanPartitaMagBeChanged(canPartitaMagBeChanged) .setCanLUBeClosed(canLUBeClosed); - if (!mDialogInputQuantityV2View.isVisible()) - mDialogInputQuantityV2View - .setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO) - .setOnComplete((resultDTO, shouldCloseLU) -> { - PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() - .setNumCnf(resultDTO.getNumCnf()) - .setQtaCnf(resultDTO.getQtaCnf()) - .setQtaTot(resultDTO.getQtaTot()) - .setPartitaMag(resultDTO.getPartitaMag()) - .setDataScad(resultDTO.getDataScad()); + String codMart = dialogInputQuantityV2DTO.getMtbAart().getCodMart(); + String flagStato = dialogInputQuantityV2DTO.getMtbAart().getFlagStato(); - this.onLoadingStarted(); - onComplete.run(pickedQuantityDTO, shouldCloseLU); - }) - .setOnAbort(this::onLoadingEnded) - .show(requireActivity().getSupportFragmentManager(), "tag"); + if (flagStato.equalsIgnoreCase("I")) { + DialogSimpleMessageView.makeInfoDialog( + getActivity().getResources().getString(R.string.confirm), + new SpannableString(Html.fromHtml(String.format(UtilityResources.getString(R.string.item_not_enabled), codMart))), + null, + () -> { + if (!mDialogInputQuantityV2View.isVisible()) + mDialogInputQuantityV2View + .setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO) + .setOnComplete((resultDTO, shouldCloseLU) -> { + PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() + .setNumCnf(resultDTO.getNumCnf()) + .setQtaCnf(resultDTO.getQtaCnf()) + .setQtaTot(resultDTO.getQtaTot()) + .setPartitaMag(resultDTO.getPartitaMag()) + .setDataScad(resultDTO.getDataScad()); - else this.onLoadingEnded(); + this.onLoadingStarted(); + onComplete.run(pickedQuantityDTO, shouldCloseLU); + }) + .setOnAbort(this::onLoadingEnded) + .show(requireActivity().getSupportFragmentManager(), "tag"); + }, + this::onLoadingEnded) + .show(getActivity().getSupportFragmentManager(), "tag"); + } else this.onLoadingEnded(); } @Override diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index c4564f27..3672cc4a 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -352,6 +352,7 @@ Personalizzazioni Frudis %s non è attivo.]]> + %s non è attivo.]]> Punto Vendita SaporiVeri PV Genera ordini di acquisto diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 160c0409..82468fc2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -357,6 +357,7 @@ Frudis customizations %s is inactive.]]> + %s is inactive.]]> Other Home Logout