From 0e503e3f23e4aa0112d42f3e062ca47e8de9b32f Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 24 Jan 2019 10:16:59 +0100 Subject: [PATCH] Implementato criterio distribuzione in setup gest. Implementata stampa di N colli una volta che essi vengono distribuiti. --- .../core/report/ReportManager.java | 4 +- .../core/settings/DBSettingsModel.java | 11 +++ .../core/settings/SettingsManager.java | 10 ++- ...eOnOrdineAccettazioneInevasoViewModel.java | 2 +- .../gest/main/MainFragment.java | 2 +- .../viewmodel/PickingLiberoViewModel.java | 4 +- .../viewmodel/RettificaGiacenzeViewModel.java | 4 +- .../VenditaOrdineInevasoViewModel.java | 83 +++++++++++-------- .../viewmodel/VersamentoMerceViewModel.java | 2 +- .../ArticoliInColloBottomSheetViewModel.java | 2 +- .../input_quantity/DialogInputQuantity.java | 8 +- .../res/layout/dialog_ask_should_print.xml | 8 +- .../lista_contenuto_bancale_list_model.xml | 3 +- 13 files changed, 88 insertions(+), 55 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/report/ReportManager.java b/app/src/main/java/it/integry/integrywmsnative/core/report/ReportManager.java index 598ed761..64f152a8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/report/ReportManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/report/ReportManager.java @@ -7,7 +7,7 @@ import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; public class ReportManager { - public static void getRightReportNameByMtbColt(MtbColt mtbColt, RunnableArgs onComplete, RunnableArgs onFailed) throws Exception{ + public static void getRightReportNameByMtbColt(MtbColt mtbColt, RunnableArgs onComplete, RunnableArgs onFailed) { if(mtbColt != null){ @@ -28,7 +28,7 @@ public class ReportManager { } } else { - throw new Exception("mtbColt cannot be NULL"); + onFailed.run(new Exception("mtbColt cannot be NULL")); } } 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 9c9da9de..34c64775 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 @@ -3,6 +3,7 @@ package it.integry.integrywmsnative.core.settings; import java.util.List; import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO; +import it.integry.integrywmsnative.core.REST.model.DistribuzioneColloDTO; import it.integry.integrywmsnative.core.model.Azienda; import it.integry.integrywmsnative.core.model.MtbDepo; import it.integry.integrywmsnative.core.model.MtbDepoPosizione; @@ -19,6 +20,7 @@ public class DBSettingsModel { private boolean flagMultiClienteOrdV; private String defaultCodAnag; private String defaultCausaleRettificaGiacenze; + private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione; public List getAvailableProfiles() { return availableProfiles; @@ -88,4 +90,13 @@ public class DBSettingsModel { this.defaultCausaleRettificaGiacenze = defaultCausaleRettificaGiacenze; return this; } + + public DistribuzioneColloDTO.CriterioDistribuzione getDefaultCriterioDistribuzione() { + return defaultCriterioDistribuzione; + } + + public DBSettingsModel setDefaultCriterioDistribuzione(String defaultCriterioDistribuzione) { + this.defaultCriterioDistribuzione = DistribuzioneColloDTO.CriterioDistribuzione.fromString(defaultCriterioDistribuzione); + return this; + } } 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 1aa1c002..2fa70fe4 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 @@ -184,7 +184,15 @@ public class SettingsManager { GestSetupRESTConsumer.getValue("PICKING", "SETUP", "COD_ANAG_DEFAULT", valueCodAnagDefault -> { dbSettingsModelIstance.setDefaultCodAnag(valueCodAnagDefault.value); - if(onComplete != null) onComplete.run(); + GestSetupRESTConsumer.getValue("PICKING", "SETUP", "DEFAULT_CRITERIO_DISTRIBUZIONE", valueDefaultCriterioDistribuzione -> { + dbSettingsModelIstance.setDefaultCriterioDistribuzione(valueDefaultCriterioDistribuzione.value); + + if(onComplete != null) onComplete.run(); + + }, ex -> { + if(onFailed != null) onFailed.run(ex); + }); + }, ex -> { if(onFailed != null) onFailed.run(ex); }); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java index fe7ff7f9..cf570082 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java @@ -748,7 +748,7 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl dto.setShouldAskDataScad(true); } - DialogInputQuantity.makeBase(mActivity, dto, true, value -> onOrdineRowDispatched(item, value)).show(); + DialogInputQuantity.makeBase(mActivity, dto, true, value -> onOrdineRowDispatched(item, value), null).show(); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java index d61c11db..a1c23d4a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java @@ -117,7 +117,7 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab MtbColt recoveredMtbColt = ColliDataRecover.getSession(recoveredMtbColtID); if(recoveredMtbColt != null && recoveredMtbColt.getGestioneEnum() == GestioneEnum.VENDITA && !UtilityString.isNullOrEmpty(recoveredMtbColt.getFiltroOrdini())) { - ColliMagazzinoRESTConsumer.distribuisciCollo(recoveredMtbColt, DistribuzioneColloDTO.CriterioDistribuzione.UPDATE, + ColliMagazzinoRESTConsumer.distribuisciCollo(recoveredMtbColt, SettingsManager.iDB().getDefaultCriterioDistribuzione(), mtbColts -> { ColliDataRecover.closeSession(recoveredMtbColtID); endRecoverMode(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java index 71a6be81..1a0943ff 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java @@ -393,7 +393,6 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { .setMaxQta(mtbColr.getQtaCol()); DialogInputQuantity.makeBase(mContext, dto, false, quantityDTO -> { - if(quantityDTO != null) { mtbColr .setQtaCol(new BigDecimal(quantityDTO.qtaTot.get())) .setQtaCnf(new BigDecimal(quantityDTO.qtaCnf.get())) @@ -401,8 +400,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { .setDatetimeRow(new Date()); onComplete.run(mtbColr); - } else onAbort.run(); - }).show(); + }, onAbort).show(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java index 6c1e7a18..f82491ce 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java @@ -301,7 +301,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked DialogInputQuantity.makeBase(mContext, qtaDto, true, (quantityDTO) -> { onPostDispatch(mtbAart, quantityDTO); - }).show(); + }, null).show(); } @@ -520,7 +520,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked UtilityExceptions.defaultException(mContext, ex, progressDialog); }); - }).show(); + }, null).show(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java index 3dd0f1e1..3dcdc995 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java @@ -11,6 +11,7 @@ import com.annimon.stream.Stream; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; +import java.util.Iterator; import java.util.List; import java.util.Objects; @@ -707,7 +708,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO progress.show(); if(thereIsAnyRowInUL()) { - updateDataFine(progress, () -> distribuisciCollo(progress, (generatedMtbColts) -> printCollo(progress))); + updateDataFine(progress, () -> distribuisciCollo(progress, (generatedMtbColts) -> printCollo(progress, generatedMtbColts))); } else { ColliDataRecover.closeSession(mtbColtSessionID); deleteCollo(progress); @@ -742,7 +743,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone(); - ColliMagazzinoRESTConsumer.distribuisciCollo(cloneMtbColt, DistribuzioneColloDTO.CriterioDistribuzione.UPDATE, + ColliMagazzinoRESTConsumer.distribuisciCollo(cloneMtbColt, SettingsManager.iDB().getDefaultCriterioDistribuzione(), mtbColts -> { ColliDataRecover.closeSession(mtbColtSessionID); onComplete.run(mtbColts); @@ -750,7 +751,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO ex -> UtilityExceptions.defaultException(mActivity, ex, progress)); } - private void printCollo(ProgressDialog progress) { + private void printCollo(ProgressDialog progress, List mtbColtsToPrint) { DialogAskShouldPrint.make(mActivity, "Packing List", shouldPrint -> { if(shouldPrint) { @@ -760,41 +761,29 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO if (value.size() > 0) { try { - MtbColt currentMtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get(); + cyclicPrint(mtbColtsToPrint.iterator(), value.get(0), () -> { + postCloseOperations(mtbColtsToPrint); + progress.dismiss(); + }, ex -> { + progress.dismiss(); + String errorMessage = ex.getMessage(); + DialogSimpleMessageHelper.makeErrorDialog( + mActivity, + new SpannableString(errorMessage), + null, + null, + R.string.button_ignore_print, + () -> postCloseOperations(mtbColtsToPrint)).show(); + }); - ReportManager.getRightReportNameByMtbColt(currentMtbColt, reportName -> { - - PrinterRESTConsumer.printCollo( - value.get(0), - currentMtbColt, - 1, reportName, () -> { - - postCloseOperations(); - progress.dismiss(); - - }, ex -> { - - progress.dismiss(); - String errorMessage = ex.getMessage(); - DialogSimpleMessageHelper.makeErrorDialog( - mActivity, - new SpannableString(errorMessage), - null, - null, - R.string.button_ignore_print, - () -> postCloseOperations()).show(); - }); - - }, ex -> UtilityExceptions.defaultException(mActivity, ex, progress) - ); } catch (Exception ex) { UtilityExceptions.defaultException(mActivity, ex, progress); - postCloseOperations(); + postCloseOperations(mtbColtsToPrint); } } else { progress.dismiss(); String errorMessage = "Nessuna stampante configurata"; - DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, () -> postCloseOperations()).show(); + DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, () -> postCloseOperations(mtbColtsToPrint)).show(); } } @@ -804,12 +793,36 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO } }); } else { - postCloseOperations(); + postCloseOperations(mtbColtsToPrint); progress.dismiss(); } }).show(); } + + private void cyclicPrint(Iterator sourceMtbColts, String printerName, Runnable onComplete, RunnableArgs onAbort) { + if(sourceMtbColts.hasNext()){ + singlePrint(sourceMtbColts.next(), printerName, () -> { + cyclicPrint(sourceMtbColts, printerName, onComplete, onAbort); + }, onAbort); + } else { + onComplete.run(); + } + } + + private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs onAbort) { + ReportManager.getRightReportNameByMtbColt(mtbColtToPrint, reportName -> { + + PrinterRESTConsumer.printCollo( + printerName, + mtbColtToPrint, + 1, + reportName, onComplete, onAbort); + + }, onAbort); + } + + private void deleteCollo(ProgressDialog progress) { ColliMagazzinoRESTConsumer.deleteCollo(mArticoliInColloBottomSheetViewModel.mtbColt.get(), () -> { @@ -833,11 +846,11 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO } - private void postCloseOperations() { + private void postCloseOperations(List generatedMtbColt) { MtbColt mtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get(); - this.mColliRegistrati.add(mtbColt); + this.mColliRegistrati.addAll(generatedMtbColt); mArticoliInColloBottomSheetViewModel.mtbColt.set(null); isFabVisible.set(true); @@ -965,7 +978,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO } - DialogInputQuantity.makeBase(mActivity, dto, false, value -> onOrdineRowDispatched(item, value)).show(); + DialogInputQuantity.makeBase(mActivity, dto, false, value -> onOrdineRowDispatched(item, value), null).show(); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java index b13b7843..6d227aed 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java @@ -333,7 +333,7 @@ public class VersamentoMerceViewModel { .setDatetimeRow(new Date()); onComplete.run(mtbColr); - }).show(); + }, null).show(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java index 7486f38d..b17e32ee 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java @@ -188,7 +188,7 @@ public class ArticoliInColloBottomSheetViewModel { }, ex -> UtilityExceptions.defaultException(mContext, ex, progress)); - }).show(); + }, null).show(); } private void onItemDelete(int position) { diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java index 1277256b..858cbe39 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java @@ -214,11 +214,11 @@ public class DialogInputQuantity { private QuantityDTO currentQuantityDto; private DTO currentDTO; - public static AlertDialog makeBase(final Context context, final DTO dto, boolean canOverflowQuantity, final ISingleValueOperationCallback dialogCallback) { - return new DialogInputQuantity(context, dto, canOverflowQuantity, dialogCallback).currentAlert; + public static AlertDialog makeBase(final Context context, final DTO dto, boolean canOverflowQuantity, final ISingleValueOperationCallback dialogCallback, final Runnable onAbort) { + return new DialogInputQuantity(context, dto, canOverflowQuantity, dialogCallback, onAbort).currentAlert; } - public DialogInputQuantity(Context context, final DTO dto, boolean canOverflowQuantity, final ISingleValueOperationCallback dialogCallback) { + public DialogInputQuantity(Context context, final DTO dto, boolean canOverflowQuantity, final ISingleValueOperationCallback dialogCallback, final Runnable onAbort) { currentContext = context; currentMtbAart = dto.getMtbAart(); currentDTO = dto; @@ -253,7 +253,7 @@ public class DialogInputQuantity { .setView(currentBinding.getRoot()) .setPositiveButton(context.getText(R.string.confirm), null) .setNegativeButton(context.getText(R.string.abort), (dialog, which) -> { - dialogCallback.onResult(null); + if(onAbort != null) onAbort.run(); }); currentAlert = alertDialog.create(); diff --git a/app/src/main/res/layout/dialog_ask_should_print.xml b/app/src/main/res/layout/dialog_ask_should_print.xml index 43804dc3..66e92ec5 100644 --- a/app/src/main/res/layout/dialog_ask_should_print.xml +++ b/app/src/main/res/layout/dialog_ask_should_print.xml @@ -27,7 +27,8 @@ + android:layout_height="match_parent" + android:padding="16dp"> diff --git a/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml b/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml index 601d25f3..e28c711f 100644 --- a/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml +++ b/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml @@ -24,7 +24,8 @@ android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintEnd_toStartOf="@+id/qta_box" - app:layout_constraintStart_toStartOf="parent"> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent">