From 0ae6bbcd96b65075252ee1a8dfe083e1c5738777 Mon Sep 17 00:00:00 2001 From: ValerioC Date: Thu, 13 Apr 2023 19:11:11 +0200 Subject: [PATCH] CARELLI - aggiunto dettaglio griglie in ordini acquisto CARELLI - impostata qta default in inserimento qta da ordinare ad 1 ct in ordini di acquisto CARELLI - aggiunto flag stampa in chiusura ul spedizione --- .../core/settings/DBSettingsModel.java | 10 +++++ .../core/settings/SettingsManager.java | 7 +++- .../MainAccettazioneFragment.java | 2 +- .../OrdiniUscitaElencoFragment.java | 4 +- .../ProdOrdineProduzioneElencoFragment.java | 2 +- .../PVOrdineAcquistoEditViewModel.java | 9 ++--- .../PVOrdiniAcquistoGrigliaFragment.java | 37 ++++++++++++++++++- .../gest/spedizione/SpedizioneViewModel.java | 2 +- app/src/main/res/values-it/strings.xml | 9 +++++ app/src/main/res/values/strings.xml | 11 ++++++ build.gradle | 2 +- 11 files changed, 81 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java index 09204f60..4fa8bc04 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java @@ -43,6 +43,7 @@ public class DBSettingsModel { private String produzioneDefaultCodAnag; private boolean flagPrintPackingListOnOrderClose; private boolean flagPrintEtichetteOnOrderClose; + private boolean flagPrintEtichetteOnLUClose; private int onNumCnfInputChanged = 1; private int onQtaTotInputChanged = 1; private boolean flagAccettazioneUseQtaOrd = false; @@ -285,6 +286,15 @@ public class DBSettingsModel { return this; } + public boolean isFlagPrintEtichetteOnLUClose() { + return flagPrintEtichetteOnLUClose; + } + + public DBSettingsModel setFlagPrintEtichetteOnLUClose(boolean flagPrintEtichetteOnLUClose) { + this.flagPrintEtichetteOnLUClose = flagPrintEtichetteOnLUClose; + return this; + } + public int getOnNumCnfInputChanged() { return onNumCnfInputChanged; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java index 49055621..a38d4acf 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java @@ -332,6 +332,10 @@ public class SettingsManager { .setGestName("PICKING") .setSection("SPEDIZIONE") .setKeySection("FLAG_PRINT_ETICHETTE_ON_CLOSE")); + stbGestSetupList.add(new StbGestSetup() + .setGestName("PICKING") + .setSection("SPEDIZIONE") + .setKeySection("FLAG_PRINT_ETICHETTE_ON_LU_CLOSE")); stbGestSetupList.add(new StbGestSetup() .setGestName("PICKING") .setSection("SPEDIZIONE") @@ -403,6 +407,7 @@ public class SettingsManager { dbSettingsModelIstance.setFlagConsentiFuoriPianoLogistico(getValueFromList(list, "ORDINI_A", "FLAG_CONSENTI_ORIDNE_DA_GRIGLIA", Boolean.class)); dbSettingsModelIstance.setFlagPrintPackingListOnOrderClose(getValueFromList(list, "SPEDIZIONE", "FLAG_PRINT_PACKING_LIST_ON_CLOSE", Boolean.class)); dbSettingsModelIstance.setFlagPrintEtichetteOnOrderClose(getValueFromList(list, "SPEDIZIONE", "FLAG_PRINT_ETICHETTE_ON_CLOSE", Boolean.class)); + dbSettingsModelIstance.setFlagPrintEtichetteOnLUClose(getValueFromList(list, "SPEDIZIONE", "FLAG_PRINT_ETICHETTE_ON_LU_CLOSE", Boolean.class, true)); dbSettingsModelIstance.setFlagAskInfoAggiuntiveSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_ASK_INFO_AGGIUNTIVE", Boolean.class)); dbSettingsModelIstance.setFilterFornitoreProd(getValueFromList(list, "PRODUZIONE", "FILTER_FORNTIORE_PROD", String.class)); dbSettingsModelIstance.setCodDtipOrdTrasfV(getValueFromList(list, "SPEDIZIONE", "COD_DTIP_ORD_TRASF", String.class)); @@ -451,7 +456,7 @@ public class SettingsManager { } else if (clazz == Integer.class && value.getValue() != null) { return clazz.cast(Integer.parseInt(value.getValue())); } - } else if(defaultValue == null) { + } else if (defaultValue == null) { if (clazz == Boolean.class) { return clazz.cast(Boolean.FALSE); } else if (clazz == Integer.class) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java index 8911f876..67352e9d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java @@ -290,7 +290,7 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearchabl DialogSimpleMessageView.makeInfoDialog(getText(R.string.orders).toString(), Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, (int) ordsCounter), ordsCounter) + "

" + - "" + artsCounter + " " + getActivity().getResources().getQuantityString(R.plurals.available_articles, (int) artsCounter)), + "" + artsCounter + " " + getActivity().getResources().getQuantityString(R.plurals.ordered_articles, (int) artsCounter)), null, () -> { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java index 1b27890f..d5979ce7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java @@ -797,7 +797,7 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF listModel.setSubDescription(x.getRifOrd()); - if(x.getDataConsD() != null) { + if (x.getDataConsD() != null) { String testataDataConsString = String.format(getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(x.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); listModel.setRightDescription(testataDataConsString); } @@ -861,7 +861,7 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF DialogSimpleMessageView.makeInfoDialog(getText(R.string.orders).toString(), Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, orders.size()), orders.size()) + "
" + - "" + codMarts.size() + " " + getActivity().getResources().getQuantityString(R.plurals.available_articles, codMarts.size()) + "" + codMarts.size() + " " + getActivity().getResources().getQuantityString(R.plurals.ordered_articles, codMarts.size()) + "
" + "" + alreadyRegisteredUL + " " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)), null, diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ProdOrdineProduzioneElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ProdOrdineProduzioneElencoFragment.java index 756afb0c..03d7ea0e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ProdOrdineProduzioneElencoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ProdOrdineProduzioneElencoFragment.java @@ -356,7 +356,7 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements DialogSimpleMessageView.makeInfoDialog(getText(R.string.orders).toString(), Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, (int) ordsCounter), ordsCounter) + "

" + - "" + artsCounter + " " + getActivity().getResources().getQuantityString(R.plurals.available_articles, (int) artsCounter)), + "" + artsCounter + " " + getActivity().getResources().getQuantityString(R.plurals.ordered_articles, (int) artsCounter)), null, () -> { 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 5fc16190..df9ce635 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 @@ -10,7 +10,6 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.Calendar; import java.util.List; -import java.util.stream.Collectors; import javax.inject.Inject; @@ -240,7 +239,6 @@ public class PVOrdineAcquistoEditViewModel { articolo.setFlagQtaMultipla(art.getFlagQtaMultipla()); articolo.setQtaMinOrdinabile(art.getQtaMinOrdinabile()); articolo.setMerceDaRic(art.getMerceDaRic()); - articolo.setQtaCnf(art.getQtaCnf()); articolo.setUntMis(art.getUntMis()); articolo.setDescrizione(art.getDescrizione()); articolo.setDataIns(UtilityDate.getDateInstance()); @@ -250,7 +248,8 @@ public class PVOrdineAcquistoEditViewModel { articolo.setQtaProposta(art.getQtaProposta()); articolo.setNewNoPromo(art.isNewNoPromo()); articolo.setSystemNote(art.generateSystemNote()); - articolo.setQtaOrd(art.getQtaOrd()); + articolo.setQtaCnf(art.getQtaCnf() > 0f ? art.getQtaCnf() : 1); + articolo.setQtaOrd(art.getQtaOrd() > 0f ? art.getQtaOrd() : art.getQtaCnf()); articolo.setCodAlis(art.getCodAlis()); articolo.setCtMaxOrd(BigDecimal.valueOf(art.getCtMaxOrd())); @@ -279,9 +278,9 @@ public class PVOrdineAcquistoEditViewModel { } private List getNewArticoli() { - return mArticoliGriglia.stream() + return Stream.of(mArticoliGriglia) .filter(x -> x.getQtaOrd() > 0f) - .collect(Collectors.toList()); + .toList(); } public void orderNewProducts() { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java index c0159b5d..c2f844f9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java @@ -14,9 +14,15 @@ import androidx.core.content.ContextCompat; import androidx.databinding.DataBindingUtil; import androidx.recyclerview.widget.LinearLayoutManager; +import com.annimon.stream.Collectors; +import com.annimon.stream.Stream; + +import org.apache.commons.lang3.StringUtils; + import java.util.ArrayList; import java.util.Calendar; import java.util.List; +import java.util.Map; import javax.inject.Inject; @@ -109,6 +115,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi } else { setGriglia(griglia); setListaArticoli(listArticoli); + this.onGrigliaRetrieved(); } }).show(requireActivity().getSupportFragmentManager(), "tag"); @@ -119,6 +126,33 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString()); } + private void onGrigliaRetrieved() { + if (UtilityString.isNullOrEmpty(mGriglia.getCodAlis())) { + + Map downloadedGrids = Stream.of(mListArticoli).collect(Collectors.groupingBy(ArticoloOrdinabileDTO::getCodAlis, Collectors.counting())); + if (downloadedGrids != null && !downloadedGrids.isEmpty()) { + + List gridsDetails = Stream.of(downloadedGrids) + .map((el) -> "" + el.getKey() + ": " + el.getValue() + " " + getResources().getQuantityString(R.plurals.available_articles, el.getValue().intValue())) + .toList(); + + + DialogSimpleMessageView.makeInfoDialog(getText(R.string.grid_details).toString(), + Html.fromHtml( + String.format(getResources().getQuantityString(R.plurals.loaded_grids_message, (int) downloadedGrids.size()), downloadedGrids.size()) + + "

" + + StringUtils.join(gridsDetails, "
")), + null, + this::fetchOrders) + .show(requireActivity().getSupportFragmentManager(), "downloadedGridDetails"); + } else { + fetchOrders(); + } + } else { + fetchOrders(); + } + } + private void setGriglia(Griglia griglia) { mGriglia = griglia; mBinding.fabNewOrder.setVisibility(View.VISIBLE); @@ -129,7 +163,6 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi mBinding.descrLis.setText(griglia.getDescrLisa()); } mBinding.descrDepo.setText(griglia.getDescrDepo()); - fetchOrders(); } private void setListaArticoli(List listArticoli) { @@ -161,7 +194,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi mBinding.ordiniAEmptyView.setVisibility(ordini == null || ordini.size() <= 0 ? View.VISIBLE : View.GONE); refreshRenderedOrdini(ordini); mAdapter.updateItems(mRenderedOrderList); - if (mRenderedOrderList.size() <= 0 && mRedirectToNewOrder) { + if (mRenderedOrderList.isEmpty() && mRedirectToNewOrder) { createNewOrder(); } else { mRedirectToNewOrder = false; 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 ec2d7989..f59ed2f5 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 @@ -1415,7 +1415,7 @@ public class SpedizioneViewModel { filledMtbColts, positionedMtbColts -> { - this.askPrint(shouldPrint, positionedMtbColts, () -> { + this.askPrint((shouldPrint && SettingsManager.iDB().isFlagPrintEtichetteOnLUClose()), positionedMtbColts, () -> { Stream.of(positionedMtbColts) .filter(x -> !this.mColliRegistrati.contains(x)) .forEach(x -> this.mColliRegistrati.add(x)); diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index ec5ef2bd..4a4955f5 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -91,6 +91,10 @@ articoli + articolo disponibile + articoli disponibili + + articolo ordinato articoli ordinati @@ -102,6 +106,10 @@ %d ordine]]> %d ordini]]> + + %d griglia]]> + %d griglie]]> + @string/piece pezzi @@ -450,4 +458,5 @@ L\'ordine presenta uno o più articoli non validi per la lista selezionata! Sei sicuro di voler continuare?]]> + Griglie disponibili \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9072d54c..333837f1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -9,9 +9,15 @@ + item available + items available + + + ordered item ordered items + already registered LU already registered LUs @@ -21,6 +27,10 @@ %d order selected]]> %d orders selected]]> + + %d grid downloaded]]> + %d grids downloaded]]> + @string/piece pieces @@ -457,4 +467,5 @@ One or more ordered products are not available in the selected list! Do you wish to continue?]]> + Available grids diff --git a/build.gradle b/build.gradle index 0c93ba8e..f95f6121 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { ext { kotlin_version = '1.8.0' - agp_version = '8.1.0-alpha10' + agp_version = '8.1.0-alpha11' } repositories {