From 1ec0611e2af3b8390e21d4e9a464a411dfde6291 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 4 Aug 2023 12:38:32 +0200 Subject: [PATCH] Completata implementazione di Accettazione da bolla --- ...nAccettazioneFragment_MembersInjector.java | 56 -- ...videsMainAccettazioneViewModelFactory.java | 47 - ...OrdiniAccettazioneRESTConsumerFactory.java | 40 - .../MainAccettazioneViewModel_Factory.java | 40 - ...azionePickingActivity_MembersInjector.java | 62 -- ...ccettazionePickingRESTConsumerFactory.java | 46 - ..._ProvidesAccettazioneViewModelFactory.java | 87 -- ...heetFragmentLUContentViewModelFactory.java | 40 - .../AccettazionePickingViewModel_Factory.java | 82 -- ...cettazionePickingRESTConsumer_Factory.java | 39 - app/src/main/AndroidManifest.xml | 5 + .../MainApplicationComponent.java | 11 +- .../configs/MenuConfiguration.java | 10 +- .../core/data_store/db/entity/SqlMtbColr.java | 8 +- .../integrywmsnative/core/di/Converters.java | 34 +- .../integrywmsnative/core/model/DtbDocr.java | 10 +- .../integrywmsnative/core/model/MtbColr.java | 17 +- .../core/model/MtbPartitaMag.java | 26 +- .../model/dto/AlreadyRegisteredUDCDTO.java | 29 + .../core/model/dto/PickDataDTO.java | 2 +- .../model/uds/InsertUDCRowRequestDTO.java | 21 + .../core/settings/SettingsModel.java | 10 + .../core/utility/UtilityDate.java | 79 +- .../MainAccettazioneBollaElencoComponent.java | 2 +- .../MainAccettazioneBollaElencoFragment.java | 15 +- .../MainAccettazioneBollaElencoModule.java | 4 +- .../MainAccettazioneBollaElencoViewModel.java | 8 +- .../rest/BolleAccettazioneRESTConsumer.java | 12 +- .../BolleAccettazioneRESTConsumerService.java | 8 +- ...coArticoliAccettazioneBollaRequestDTO.java | 2 +- ...oArticoliAccettazioneBollaResponseDTO.java | 2 +- ...eveElencoBolleAccettazioneResponseDTO.java | 2 +- .../rest/dto/SitBollaAccettazioneDTO.java | 63 +- .../rest/dto/TestataBollaAccettazioneDTO.java | 2 +- .../MainAccettazioneBolleElencoAdapter.java | 2 +- .../MainAccettazioneBolleElencoListModel.java | 4 +- .../AccettazioneBollaPickingActivity.java | 555 +++++++++++ .../AccettazioneBollaPickingComponent.java | 14 + .../AccettazioneBollaPickingModule.java | 33 + .../AccettazioneBollaPickingViewModel.java | 935 ++++++++++++++++++ .../dto/AccettazioneBollaPickingOrderBy.java | 30 + .../dto/PickingObjectDTO.java | 64 ++ ...gisteredULAccettazioneBollaRequestDTO.java | 19 + ...isteredULAccettazioneBollaResponseDTO.java | 19 + .../AccettazioneBollaPickingRESTConsumer.java | 50 + ...azioneBollaPickingRESTConsumerService.java | 15 + .../AccettazioneBollaPickingListAdapter.java | 184 ++++ .../ui/AccettazioneBollaPickingListModel.java | 210 ++++ .../MainAccettazioneOrdiniElencoFragment.java | 2 +- .../AccettazioneOrdiniPickingActivity.java | 27 +- .../AccettazioneOrdiniPickingViewModel.java | 111 +-- .../dto/HistoryMtbAartDTO.java | 8 +- .../dto/RecoverMtbColtDTO.java | 17 - ...isteredULAccettazioneOrdineRequestDTO.java | 19 + ...steredULAccettazioneOrdineResponseDTO.java | 19 + ...AccettazioneOrdiniPickingRESTConsumer.java | 141 +-- ...zioneOrdiniPickingRESTConsumerService.java | 15 + .../AccettazioneOrdiniPickingListAdapter.java | 4 +- .../gest/contab_doc_interni/dto/ArtDTO.java | 7 +- .../edit_form/DocInterniEditFormActivity.java | 10 +- .../picking_libero/PickingLiberoFragment.java | 4 +- .../PickingLiberoViewModel.java | 18 +- .../picking_resi/PickingResiActivity.java | 4 +- .../picking_resi/PickingResiViewModel.java | 14 +- .../ProdDettaglioLineaActivity.java | 2 +- .../RettificaGiacenzeFragment.java | 4 +- .../RettificaGiacenzeViewModel.java | 25 +- .../gest/spedizione/SpedizioneActivity.java | 4 +- .../gest/spedizione/SpedizioneViewModel.java | 72 +- .../spedizione/model/PickedQuantityDTO.java | 7 +- .../VersamentoMerceFragment.java | 4 +- .../VersamentoMerceViewModel.java | 8 +- .../DialogInputQuantityV2DTO.java | 8 +- .../DialogInputQuantityV2ResultDTO.java | 8 +- .../DialogInputQuantityV2View.java | 16 +- .../DialogInputQuantityV2ViewModel.java | 12 +- .../ic_dashboard_accettazione_bolle.xml | 6 + ...l => ic_dashboard_accettazione_ordini.xml} | 0 ..._bolla_picking_main_list__group_header.xml | 25 + ...ne_bolla_picking_main_list__group_item.xml | 244 +++++ ...ordine_inevaso_main_list__group_header.xml | 2 +- .../activity_accettazione_bolla_picking.xml | 221 +++++ .../dialog_choose_batch_lot_item_model.xml | 6 +- .../fragment_main_accettazione_bolla.xml | 4 +- .../layout/fragment_main_menu_item_layout.xml | 4 +- app/src/main/res/values-it/strings.xml | 3 +- app/src/main/res/values/strings.xml | 3 +- app/src/main/res/xml/app_preferences.xml | 2 +- 88 files changed, 3148 insertions(+), 1017 deletions(-) delete mode 100644 app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneFragment_MembersInjector.java delete mode 100644 app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneModule_ProvidesMainAccettazioneViewModelFactory.java delete mode 100644 app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneModule_ProvidesOrdiniAccettazioneRESTConsumerFactory.java delete mode 100644 app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneViewModel_Factory.java delete mode 100644 app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingActivity_MembersInjector.java delete mode 100644 app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingModule_ProvidesAccettazionePickingRESTConsumerFactory.java delete mode 100644 app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingModule_ProvidesAccettazioneViewModelFactory.java delete mode 100644 app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingModule_ProvidesBottomSheetFragmentLUContentViewModelFactory.java delete mode 100644 app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingViewModel_Factory.java delete mode 100644 app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/rest/AccettazionePickingRESTConsumer_Factory.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/model/dto/AlreadyRegisteredUDCDTO.java rename app/src/main/java/it/integry/integrywmsnative/gest/{accettazone_bolla_elenco => accettazione_bolla_elenco}/MainAccettazioneBollaElencoComponent.java (81%) rename app/src/main/java/it/integry/integrywmsnative/gest/{accettazone_bolla_elenco => accettazione_bolla_elenco}/MainAccettazioneBollaElencoFragment.java (91%) rename app/src/main/java/it/integry/integrywmsnative/gest/{accettazone_bolla_elenco => accettazione_bolla_elenco}/MainAccettazioneBollaElencoModule.java (77%) rename app/src/main/java/it/integry/integrywmsnative/gest/{accettazone_bolla_elenco => accettazione_bolla_elenco}/MainAccettazioneBollaElencoViewModel.java (86%) rename app/src/main/java/it/integry/integrywmsnative/gest/{accettazone_bolla_elenco => accettazione_bolla_elenco}/rest/BolleAccettazioneRESTConsumer.java (80%) rename app/src/main/java/it/integry/integrywmsnative/gest/{accettazone_bolla_elenco => accettazione_bolla_elenco}/rest/BolleAccettazioneRESTConsumerService.java (59%) rename app/src/main/java/it/integry/integrywmsnative/gest/{accettazone_bolla_elenco => accettazione_bolla_elenco}/rest/dto/RetrieveElencoArticoliAccettazioneBollaRequestDTO.java (83%) rename app/src/main/java/it/integry/integrywmsnative/gest/{accettazone_bolla_elenco => accettazione_bolla_elenco}/rest/dto/RetrieveElencoArticoliAccettazioneBollaResponseDTO.java (84%) rename app/src/main/java/it/integry/integrywmsnative/gest/{accettazone_bolla_elenco => accettazione_bolla_elenco}/rest/dto/RetrieveElencoBolleAccettazioneResponseDTO.java (77%) rename app/src/main/java/it/integry/integrywmsnative/gest/{accettazone_bolla_elenco => accettazione_bolla_elenco}/rest/dto/SitBollaAccettazioneDTO.java (61%) rename app/src/main/java/it/integry/integrywmsnative/gest/{accettazone_bolla_elenco => accettazione_bolla_elenco}/rest/dto/TestataBollaAccettazioneDTO.java (92%) rename app/src/main/java/it/integry/integrywmsnative/gest/{accettazone_bolla_elenco => accettazione_bolla_elenco}/ui/MainAccettazioneBolleElencoAdapter.java (98%) rename app/src/main/java/it/integry/integrywmsnative/gest/{accettazone_bolla_elenco => accettazione_bolla_elenco}/ui/MainAccettazioneBolleElencoListModel.java (93%) create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingComponent.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingModule.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/AccettazioneBollaPickingOrderBy.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/PickingObjectDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumer.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumerService.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListModel.java delete mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/RecoverMtbColtDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/RetrieveAlreadyRegisteredULAccettazioneOrdineRequestDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/RetrieveAlreadyRegisteredULAccettazioneOrdineResponseDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/rest/AccettazioneOrdiniPickingRESTConsumerService.java create mode 100644 app/src/main/res/drawable/ic_dashboard_accettazione_bolle.xml rename app/src/main/res/drawable/{ic_dashboard_accettazione.xml => ic_dashboard_accettazione_ordini.xml} (100%) create mode 100644 app/src/main/res/layout/accettazione_bolla_picking_main_list__group_header.xml create mode 100644 app/src/main/res/layout/accettazione_bolla_picking_main_list__group_item.xml create mode 100644 app/src/main/res/layout/activity_accettazione_bolla_picking.xml diff --git a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneFragment_MembersInjector.java b/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneFragment_MembersInjector.java deleted file mode 100644 index 9c9871bb..00000000 --- a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneFragment_MembersInjector.java +++ /dev/null @@ -1,56 +0,0 @@ -package it.integry.integrywmsnative.gest.accettazione_ordini_elenco; - -import dagger.MembersInjector; -import dagger.internal.DaggerGenerated; -import dagger.internal.InjectedFieldSignature; -import it.integry.integrywmsnative.core.expansion.BaseFragment_MembersInjector; -import it.integry.integrywmsnative.view.dialogs.DialogProgressView; -import java.util.concurrent.ExecutorService; -import javax.annotation.processing.Generated; -import javax.inject.Provider; - -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes" -}) -public final class MainAccettazioneFragment_MembersInjector implements MembersInjector { - private final Provider mCurrentProgressProvider; - - private final Provider executorServiceProvider; - - private final Provider mViewModelProvider; - - public MainAccettazioneFragment_MembersInjector( - Provider mCurrentProgressProvider, - Provider executorServiceProvider, - Provider mViewModelProvider) { - this.mCurrentProgressProvider = mCurrentProgressProvider; - this.executorServiceProvider = executorServiceProvider; - this.mViewModelProvider = mViewModelProvider; - } - - public static MembersInjector create( - Provider mCurrentProgressProvider, - Provider executorServiceProvider, - Provider mViewModelProvider) { - return new MainAccettazioneFragment_MembersInjector(mCurrentProgressProvider, executorServiceProvider, mViewModelProvider); - } - - @Override - public void injectMembers(MainAccettazioneOrdiniElencoFragment instance) { - BaseFragment_MembersInjector.injectMCurrentProgress(instance, mCurrentProgressProvider.get()); - BaseFragment_MembersInjector.injectExecutorService(instance, executorServiceProvider.get()); - injectMViewModel(instance, mViewModelProvider.get()); - } - - @InjectedFieldSignature("it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment.mViewModel") - public static void injectMViewModel(MainAccettazioneOrdiniElencoFragment instance, - MainAccettazioneOrdiniElencoViewModel mViewModel) { - instance.mViewModel = mViewModel; - } -} diff --git a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneModule_ProvidesMainAccettazioneViewModelFactory.java b/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneModule_ProvidesMainAccettazioneViewModelFactory.java deleted file mode 100644 index 0bc7e89f..00000000 --- a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneModule_ProvidesMainAccettazioneViewModelFactory.java +++ /dev/null @@ -1,47 +0,0 @@ -package it.integry.integrywmsnative.gest.accettazione_ordini_elenco; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import dagger.internal.Preconditions; -import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.rest.OrdiniAccettazioneRESTConsumer; -import javax.annotation.processing.Generated; -import javax.inject.Provider; - -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes" -}) -public final class MainAccettazioneModule_ProvidesMainAccettazioneViewModelFactory implements Factory { - private final MainAccettazioneOrdiniElencoModule module; - - private final Provider ordiniAccettazioneRESTConsumerProvider; - - public MainAccettazioneModule_ProvidesMainAccettazioneViewModelFactory( - MainAccettazioneOrdiniElencoModule module, - Provider ordiniAccettazioneRESTConsumerProvider) { - this.module = module; - this.ordiniAccettazioneRESTConsumerProvider = ordiniAccettazioneRESTConsumerProvider; - } - - @Override - public MainAccettazioneOrdiniElencoViewModel get() { - return providesMainAccettazioneViewModel(module, ordiniAccettazioneRESTConsumerProvider.get()); - } - - public static MainAccettazioneModule_ProvidesMainAccettazioneViewModelFactory create( - MainAccettazioneOrdiniElencoModule module, - Provider ordiniAccettazioneRESTConsumerProvider) { - return new MainAccettazioneModule_ProvidesMainAccettazioneViewModelFactory(module, ordiniAccettazioneRESTConsumerProvider); - } - - public static MainAccettazioneOrdiniElencoViewModel providesMainAccettazioneViewModel( - MainAccettazioneOrdiniElencoModule instance, - OrdiniAccettazioneRESTConsumer ordiniAccettazioneRESTConsumer) { - return Preconditions.checkNotNullFromProvides(instance.providesMainAccettazioneViewModel(ordiniAccettazioneRESTConsumer)); - } -} diff --git a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneModule_ProvidesOrdiniAccettazioneRESTConsumerFactory.java b/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneModule_ProvidesOrdiniAccettazioneRESTConsumerFactory.java deleted file mode 100644 index ae53a0e9..00000000 --- a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneModule_ProvidesOrdiniAccettazioneRESTConsumerFactory.java +++ /dev/null @@ -1,40 +0,0 @@ -package it.integry.integrywmsnative.gest.accettazione_ordini_elenco; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import dagger.internal.Preconditions; -import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.rest.OrdiniAccettazioneRESTConsumer; -import javax.annotation.processing.Generated; - -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes" -}) -public final class MainAccettazioneModule_ProvidesOrdiniAccettazioneRESTConsumerFactory implements Factory { - private final MainAccettazioneOrdiniElencoModule module; - - public MainAccettazioneModule_ProvidesOrdiniAccettazioneRESTConsumerFactory( - MainAccettazioneOrdiniElencoModule module) { - this.module = module; - } - - @Override - public OrdiniAccettazioneRESTConsumer get() { - return providesOrdiniAccettazioneRESTConsumer(module); - } - - public static MainAccettazioneModule_ProvidesOrdiniAccettazioneRESTConsumerFactory create( - MainAccettazioneOrdiniElencoModule module) { - return new MainAccettazioneModule_ProvidesOrdiniAccettazioneRESTConsumerFactory(module); - } - - public static OrdiniAccettazioneRESTConsumer providesOrdiniAccettazioneRESTConsumer( - MainAccettazioneOrdiniElencoModule instance) { - return Preconditions.checkNotNullFromProvides(instance.providesOrdiniAccettazioneRESTConsumer()); - } -} diff --git a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneViewModel_Factory.java b/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneViewModel_Factory.java deleted file mode 100644 index 0d8800db..00000000 --- a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneViewModel_Factory.java +++ /dev/null @@ -1,40 +0,0 @@ -package it.integry.integrywmsnative.gest.accettazione_ordini_elenco; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.rest.OrdiniAccettazioneRESTConsumer; -import javax.annotation.processing.Generated; -import javax.inject.Provider; - -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes" -}) -public final class MainAccettazioneViewModel_Factory implements Factory { - private final Provider ordiniAccettazioneRESTConsumerProvider; - - public MainAccettazioneViewModel_Factory( - Provider ordiniAccettazioneRESTConsumerProvider) { - this.ordiniAccettazioneRESTConsumerProvider = ordiniAccettazioneRESTConsumerProvider; - } - - @Override - public MainAccettazioneOrdiniElencoViewModel get() { - return newInstance(ordiniAccettazioneRESTConsumerProvider.get()); - } - - public static MainAccettazioneViewModel_Factory create( - Provider ordiniAccettazioneRESTConsumerProvider) { - return new MainAccettazioneViewModel_Factory(ordiniAccettazioneRESTConsumerProvider); - } - - public static MainAccettazioneOrdiniElencoViewModel newInstance( - OrdiniAccettazioneRESTConsumer ordiniAccettazioneRESTConsumer) { - return new MainAccettazioneOrdiniElencoViewModel(ordiniAccettazioneRESTConsumer); - } -} diff --git a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingActivity_MembersInjector.java b/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingActivity_MembersInjector.java deleted file mode 100644 index 10cfede1..00000000 --- a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingActivity_MembersInjector.java +++ /dev/null @@ -1,62 +0,0 @@ -package it.integry.integrywmsnative.gest.accettazione_ordini_picking; - -import dagger.MembersInjector; -import dagger.internal.DaggerGenerated; -import dagger.internal.InjectedFieldSignature; -import it.integry.integrywmsnative.core.expansion.BaseActivity_MembersInjector; -import it.integry.integrywmsnative.view.dialogs.DialogProgressView; -import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View; -import javax.annotation.processing.Generated; -import javax.inject.Provider; - -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes" -}) -public final class AccettazionePickingActivity_MembersInjector implements MembersInjector { - private final Provider mCurrentProgressProvider; - - private final Provider mViewModelProvider; - - private final Provider mDialogInputQuantityV2ViewProvider; - - public AccettazionePickingActivity_MembersInjector( - Provider mCurrentProgressProvider, - Provider mViewModelProvider, - Provider mDialogInputQuantityV2ViewProvider) { - this.mCurrentProgressProvider = mCurrentProgressProvider; - this.mViewModelProvider = mViewModelProvider; - this.mDialogInputQuantityV2ViewProvider = mDialogInputQuantityV2ViewProvider; - } - - public static MembersInjector create( - Provider mCurrentProgressProvider, - Provider mViewModelProvider, - Provider mDialogInputQuantityV2ViewProvider) { - return new AccettazionePickingActivity_MembersInjector(mCurrentProgressProvider, mViewModelProvider, mDialogInputQuantityV2ViewProvider); - } - - @Override - public void injectMembers(AccettazioneOrdiniPickingActivity instance) { - BaseActivity_MembersInjector.injectMCurrentProgress(instance, mCurrentProgressProvider.get()); - injectMViewModel(instance, mViewModelProvider.get()); - injectMDialogInputQuantityV2View(instance, mDialogInputQuantityV2ViewProvider.get()); - } - - @InjectedFieldSignature("it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingActivity.mViewModel") - public static void injectMViewModel(AccettazioneOrdiniPickingActivity instance, - AccettazioneOrdiniPickingViewModel mViewModel) { - instance.mViewModel = mViewModel; - } - - @InjectedFieldSignature("it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingActivity.mDialogInputQuantityV2View") - public static void injectMDialogInputQuantityV2View(AccettazioneOrdiniPickingActivity instance, - DialogInputQuantityV2View mDialogInputQuantityV2View) { - instance.mDialogInputQuantityV2View = mDialogInputQuantityV2View; - } -} diff --git a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingModule_ProvidesAccettazionePickingRESTConsumerFactory.java b/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingModule_ProvidesAccettazionePickingRESTConsumerFactory.java deleted file mode 100644 index f3d76cbe..00000000 --- a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingModule_ProvidesAccettazionePickingRESTConsumerFactory.java +++ /dev/null @@ -1,46 +0,0 @@ -package it.integry.integrywmsnative.gest.accettazione_ordini_picking; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import dagger.internal.Preconditions; -import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; -import it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest.AccettazioneOrdiniPickingRESTConsumer; - -import javax.annotation.processing.Generated; -import javax.inject.Provider; - -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes" -}) -public final class AccettazionePickingModule_ProvidesAccettazionePickingRESTConsumerFactory implements Factory { - private final AccettazioneOrdiniPickingModule module; - - private final Provider systemRESTConsumerProvider; - - public AccettazionePickingModule_ProvidesAccettazionePickingRESTConsumerFactory( - AccettazioneOrdiniPickingModule module, Provider systemRESTConsumerProvider) { - this.module = module; - this.systemRESTConsumerProvider = systemRESTConsumerProvider; - } - - @Override - public AccettazioneOrdiniPickingRESTConsumer get() { - return providesAccettazionePickingRESTConsumer(module, systemRESTConsumerProvider.get()); - } - - public static AccettazionePickingModule_ProvidesAccettazionePickingRESTConsumerFactory create( - AccettazioneOrdiniPickingModule module, Provider systemRESTConsumerProvider) { - return new AccettazionePickingModule_ProvidesAccettazionePickingRESTConsumerFactory(module, systemRESTConsumerProvider); - } - - public static AccettazioneOrdiniPickingRESTConsumer providesAccettazionePickingRESTConsumer( - AccettazioneOrdiniPickingModule instance, SystemRESTConsumer systemRESTConsumer) { - return Preconditions.checkNotNullFromProvides(instance.providesAccettazionePickingRESTConsumer(systemRESTConsumer)); - } -} diff --git a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingModule_ProvidesAccettazioneViewModelFactory.java b/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingModule_ProvidesAccettazioneViewModelFactory.java deleted file mode 100644 index 015bb2db..00000000 --- a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingModule_ProvidesAccettazioneViewModelFactory.java +++ /dev/null @@ -1,87 +0,0 @@ -package it.integry.integrywmsnative.gest.accettazione_ordini_picking; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import dagger.internal.Preconditions; -import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; -import it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest.AccettazioneOrdiniPickingRESTConsumer; - -import javax.annotation.processing.Generated; -import javax.inject.Provider; - -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes" -}) -public final class AccettazionePickingModule_ProvidesAccettazioneViewModelFactory implements Factory { - private final AccettazioneOrdiniPickingModule module; - - private final Provider articoloRESTConsumerProvider; - - private final Provider barcodeRESTConsumerProvider; - - private final Provider colliMagazzinoRESTConsumerProvider; - - private final Provider printerRESTConsumerProvider; - - private final Provider accettazionePickingRESTConsumerProvider; - - private final Provider colliAccettazioneRESTConsumerProvider; - - private final Provider colliLavorazioneRESTConsumerProvider; - - public AccettazionePickingModule_ProvidesAccettazioneViewModelFactory( - AccettazioneOrdiniPickingModule module, Provider articoloRESTConsumerProvider, - Provider barcodeRESTConsumerProvider, - Provider colliMagazzinoRESTConsumerProvider, - Provider printerRESTConsumerProvider, - Provider accettazionePickingRESTConsumerProvider, - Provider colliAccettazioneRESTConsumerProvider, - Provider colliLavorazioneRESTConsumerProvider) { - this.module = module; - this.articoloRESTConsumerProvider = articoloRESTConsumerProvider; - this.barcodeRESTConsumerProvider = barcodeRESTConsumerProvider; - this.colliMagazzinoRESTConsumerProvider = colliMagazzinoRESTConsumerProvider; - this.printerRESTConsumerProvider = printerRESTConsumerProvider; - this.accettazionePickingRESTConsumerProvider = accettazionePickingRESTConsumerProvider; - this.colliAccettazioneRESTConsumerProvider = colliAccettazioneRESTConsumerProvider; - this.colliLavorazioneRESTConsumerProvider = colliLavorazioneRESTConsumerProvider; - } - - @Override - public AccettazioneOrdiniPickingViewModel get() { - return providesAccettazioneViewModel(module, articoloRESTConsumerProvider.get(), barcodeRESTConsumerProvider.get(), colliMagazzinoRESTConsumerProvider.get(), printerRESTConsumerProvider.get(), accettazionePickingRESTConsumerProvider.get(), colliAccettazioneRESTConsumerProvider.get(), colliLavorazioneRESTConsumerProvider.get()); - } - - public static AccettazionePickingModule_ProvidesAccettazioneViewModelFactory create( - AccettazioneOrdiniPickingModule module, Provider articoloRESTConsumerProvider, - Provider barcodeRESTConsumerProvider, - Provider colliMagazzinoRESTConsumerProvider, - Provider printerRESTConsumerProvider, - Provider accettazionePickingRESTConsumerProvider, - Provider colliAccettazioneRESTConsumerProvider, - Provider colliLavorazioneRESTConsumerProvider) { - return new AccettazionePickingModule_ProvidesAccettazioneViewModelFactory(module, articoloRESTConsumerProvider, barcodeRESTConsumerProvider, colliMagazzinoRESTConsumerProvider, printerRESTConsumerProvider, accettazionePickingRESTConsumerProvider, colliAccettazioneRESTConsumerProvider, colliLavorazioneRESTConsumerProvider); - } - - public static AccettazioneOrdiniPickingViewModel providesAccettazioneViewModel( - AccettazioneOrdiniPickingModule instance, ArticoloRESTConsumer articoloRESTConsumer, - BarcodeRESTConsumer barcodeRESTConsumer, - ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, - PrinterRESTConsumer printerRESTConsumer, - AccettazioneOrdiniPickingRESTConsumer accettazioneOrdiniPickingRESTConsumer, - ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer, - ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer) { - return Preconditions.checkNotNullFromProvides(instance.providesAccettazioneViewModel(articoloRESTConsumer, barcodeRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer, accettazioneOrdiniPickingRESTConsumer, colliAccettazioneRESTConsumer, colliLavorazioneRESTConsumer)); - } -} diff --git a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingModule_ProvidesBottomSheetFragmentLUContentViewModelFactory.java b/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingModule_ProvidesBottomSheetFragmentLUContentViewModelFactory.java deleted file mode 100644 index ca02a4f8..00000000 --- a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingModule_ProvidesBottomSheetFragmentLUContentViewModelFactory.java +++ /dev/null @@ -1,40 +0,0 @@ -package it.integry.integrywmsnative.gest.accettazione_ordini_picking; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import dagger.internal.Preconditions; -import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel; -import javax.annotation.processing.Generated; - -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes" -}) -public final class AccettazionePickingModule_ProvidesBottomSheetFragmentLUContentViewModelFactory implements Factory { - private final AccettazioneOrdiniPickingModule module; - - public AccettazionePickingModule_ProvidesBottomSheetFragmentLUContentViewModelFactory( - AccettazioneOrdiniPickingModule module) { - this.module = module; - } - - @Override - public BottomSheetFragmentLUContentViewModel get() { - return providesBottomSheetFragmentLUContentViewModel(module); - } - - public static AccettazionePickingModule_ProvidesBottomSheetFragmentLUContentViewModelFactory create( - AccettazioneOrdiniPickingModule module) { - return new AccettazionePickingModule_ProvidesBottomSheetFragmentLUContentViewModelFactory(module); - } - - public static BottomSheetFragmentLUContentViewModel providesBottomSheetFragmentLUContentViewModel( - AccettazioneOrdiniPickingModule instance) { - return Preconditions.checkNotNullFromProvides(instance.providesBottomSheetFragmentLUContentViewModel()); - } -} diff --git a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingViewModel_Factory.java b/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingViewModel_Factory.java deleted file mode 100644 index 068850cb..00000000 --- a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazionePickingViewModel_Factory.java +++ /dev/null @@ -1,82 +0,0 @@ -package it.integry.integrywmsnative.gest.accettazione_ordini_picking; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; -import it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest.AccettazioneOrdiniPickingRESTConsumer; - -import javax.annotation.processing.Generated; -import javax.inject.Provider; - -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes" -}) -public final class AccettazionePickingViewModel_Factory implements Factory { - private final Provider articoloRESTConsumerProvider; - - private final Provider barcodeRESTConsumerProvider; - - private final Provider colliMagazzinoRESTConsumerProvider; - - private final Provider printerRESTConsumerProvider; - - private final Provider accettazionePickingRESTConsumerProvider; - - private final Provider colliAccettazioneRESTConsumerProvider; - - private final Provider colliLavorazioneRESTConsumerProvider; - - public AccettazionePickingViewModel_Factory( - Provider articoloRESTConsumerProvider, - Provider barcodeRESTConsumerProvider, - Provider colliMagazzinoRESTConsumerProvider, - Provider printerRESTConsumerProvider, - Provider accettazionePickingRESTConsumerProvider, - Provider colliAccettazioneRESTConsumerProvider, - Provider colliLavorazioneRESTConsumerProvider) { - this.articoloRESTConsumerProvider = articoloRESTConsumerProvider; - this.barcodeRESTConsumerProvider = barcodeRESTConsumerProvider; - this.colliMagazzinoRESTConsumerProvider = colliMagazzinoRESTConsumerProvider; - this.printerRESTConsumerProvider = printerRESTConsumerProvider; - this.accettazionePickingRESTConsumerProvider = accettazionePickingRESTConsumerProvider; - this.colliAccettazioneRESTConsumerProvider = colliAccettazioneRESTConsumerProvider; - this.colliLavorazioneRESTConsumerProvider = colliLavorazioneRESTConsumerProvider; - } - - @Override - public AccettazioneOrdiniPickingViewModel get() { - return newInstance(articoloRESTConsumerProvider.get(), barcodeRESTConsumerProvider.get(), colliMagazzinoRESTConsumerProvider.get(), printerRESTConsumerProvider.get(), accettazionePickingRESTConsumerProvider.get(), colliAccettazioneRESTConsumerProvider.get(), colliLavorazioneRESTConsumerProvider.get()); - } - - public static AccettazionePickingViewModel_Factory create( - Provider articoloRESTConsumerProvider, - Provider barcodeRESTConsumerProvider, - Provider colliMagazzinoRESTConsumerProvider, - Provider printerRESTConsumerProvider, - Provider accettazionePickingRESTConsumerProvider, - Provider colliAccettazioneRESTConsumerProvider, - Provider colliLavorazioneRESTConsumerProvider) { - return new AccettazionePickingViewModel_Factory(articoloRESTConsumerProvider, barcodeRESTConsumerProvider, colliMagazzinoRESTConsumerProvider, printerRESTConsumerProvider, accettazionePickingRESTConsumerProvider, colliAccettazioneRESTConsumerProvider, colliLavorazioneRESTConsumerProvider); - } - - public static AccettazioneOrdiniPickingViewModel newInstance(ArticoloRESTConsumer articoloRESTConsumer, - BarcodeRESTConsumer barcodeRESTConsumer, - ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, - PrinterRESTConsumer printerRESTConsumer, - AccettazioneOrdiniPickingRESTConsumer accettazioneOrdiniPickingRESTConsumer, - ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer, - ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer) { - return new AccettazioneOrdiniPickingViewModel(articoloRESTConsumer, barcodeRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer, accettazioneOrdiniPickingRESTConsumer, colliAccettazioneRESTConsumer, colliLavorazioneRESTConsumer); - } -} diff --git a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/rest/AccettazionePickingRESTConsumer_Factory.java b/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/rest/AccettazionePickingRESTConsumer_Factory.java deleted file mode 100644 index cdf67fc7..00000000 --- a/app/build/generated/ap_generated_sources/debug/out/it/integry/integrywmsnative/gest/accettazione_ordini_picking/rest/AccettazionePickingRESTConsumer_Factory.java +++ /dev/null @@ -1,39 +0,0 @@ -package it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; -import javax.annotation.processing.Generated; -import javax.inject.Provider; - -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes" -}) -public final class AccettazionePickingRESTConsumer_Factory implements Factory { - private final Provider systemRESTConsumerProvider; - - public AccettazionePickingRESTConsumer_Factory( - Provider systemRESTConsumerProvider) { - this.systemRESTConsumerProvider = systemRESTConsumerProvider; - } - - @Override - public AccettazioneOrdiniPickingRESTConsumer get() { - return newInstance(systemRESTConsumerProvider.get()); - } - - public static AccettazionePickingRESTConsumer_Factory create( - Provider systemRESTConsumerProvider) { - return new AccettazionePickingRESTConsumer_Factory(systemRESTConsumerProvider); - } - - public static AccettazioneOrdiniPickingRESTConsumer newInstance(SystemRESTConsumer systemRESTConsumer) { - return new AccettazioneOrdiniPickingRESTConsumer(systemRESTConsumer); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cdc93523..57b819d7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -108,6 +108,11 @@ + + observableDate, BaseDialogFragment parentFragment, boolean warningOnOldDates) { - Pair, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable); + public static void bindEditTextDate(EditText view, final ObservableField observableDate, BaseDialogFragment parentFragment, boolean warningOnOldDates) { + Pair, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable); if (pair == null || pair.first != observableDate) { if (pair != null) { view.removeTextChangedListener(pair.second); @@ -473,37 +473,33 @@ public class Converters { RunnableArgs onClick = v -> { // Get Current Date - Calendar c = UtilityDate.getCalendarInstance(); - - if (observableDate.get() != null) { - c.setTime(observableDate.get()); - } - + LocalDate selectedDate = observableDate.get() != null ? observableDate.get() : UtilityDate.getNow(); var datePicker = MaterialDatePicker.Builder.datePicker() - .setSelection(c.getTimeInMillis()) + .setSelection(UtilityDate.localDateToMillisTime(selectedDate)) .build(); + + datePicker.addOnDismissListener(dialog -> { if(datePicker.getSelection() != null) { - var timeInMillis = datePicker.getSelection(); + var selectedTimeInMillis = datePicker.getSelection(); + var nowTime = UtilityDate.millisTimeToLocalDate(selectedTimeInMillis, null); - var calendar = UtilityDate.getCalendarInstance(); - calendar.setTimeInMillis(timeInMillis); - if (parentFragment != null && warningOnOldDates && calendar.before(UtilityDate.getCalendarInstance())) { + if (parentFragment != null && warningOnOldDates && nowTime.isBefore(UtilityDate.getNow())) { DialogSimpleMessageView .makeWarningDialog(new SpannableString("Hai scelto una data precedente a quella odierna. Continuare?"), null, () -> { - view.setText(UtilityDate.formatDate(calendar.getTime(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); - observableDate.set(calendar.getTime()); + view.setText(UtilityDate.formatDate(nowTime, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); + observableDate.set(nowTime); }, () -> { }) .show(parentFragment.requireActivity().getSupportFragmentManager(), "tag"); } else { - view.setText(UtilityDate.formatDate(calendar.getTime(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); - observableDate.set(calendar.getTime()); + view.setText(UtilityDate.formatDate(nowTime, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); + observableDate.set(nowTime); } } else { @@ -522,7 +518,7 @@ public class Converters { ((TextInputLayout) view.getParent().getParent()).setOnClickListener(onClick::run); } } - Date newValue = observableDate.get(); + var newValue = observableDate.get(); view.setText(UtilityDate.formatDate(newValue, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/DtbDocr.java b/app/src/main/java/it/integry/integrywmsnative/core/model/DtbDocr.java index 88a823ea..4cc4d8b5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/DtbDocr.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/DtbDocr.java @@ -1,6 +1,7 @@ package it.integry.integrywmsnative.core.model; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.Date; import it.integry.integrywmsnative.core.utility.UtilityDate; @@ -141,7 +142,7 @@ public class DtbDocr { private MtbAart mtbAart; - private String dataScadPartitaMag; + private LocalDate dataScadPartitaMag; public String getCodAnag() { return codAnag; @@ -741,15 +742,12 @@ public class DtbDocr { return this; } - public String getDataScadPartitaMag() { + public LocalDate getDataScadPartitaMag() { return dataScadPartitaMag; } - public Date getDataScadPartitaMagD() { - return UtilityDate.recognizeDateWithExceptionHandler(getDataScadPartitaMag()); - } - public DtbDocr setDataScadPartitaMag(String dataScadPartitaMag) { + public DtbDocr setDataScadPartitaMag(LocalDate dataScadPartitaMag) { this.dataScadPartitaMag = dataScadPartitaMag; return this; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java index 38458d0a..ffaf32b9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java @@ -1,6 +1,7 @@ package it.integry.integrywmsnative.core.model; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.Date; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; @@ -36,7 +37,7 @@ public class MtbColr extends EntityBase { private BigDecimal numCnf; private String insPartitaMag; private String mtbPartitaMag_descrizione; - private String dataScadPartita; + private LocalDate dataScadPartita; private String descrizione; private String untMis; private Integer causale; @@ -361,25 +362,15 @@ public class MtbColr extends EntityBase { } - public String getDataScadPartitaS() { + public LocalDate getDataScadPartita() { return dataScadPartita; } - public Date getDataScadPartitaD() { - return UtilityDate.recognizeDateWithExceptionHandler(getDataScadPartitaS()); - } - - public MtbColr setDataScadPartita(String dataScadPartita) { + public MtbColr setDataScadPartita(LocalDate dataScadPartita) { this.dataScadPartita = dataScadPartita; return this; } - public MtbColr setDataScadPartita(Date dataScadPartita) { - this.dataScadPartita = UtilityDate.formatDate(dataScadPartita, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH); - return this; - } - - public String getDescrizione() { return descrizione; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbPartitaMag.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbPartitaMag.java index f677fc1b..909930c0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbPartitaMag.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbPartitaMag.java @@ -1,17 +1,16 @@ package it.integry.integrywmsnative.core.model; import java.math.BigDecimal; -import java.util.Date; - -import it.integry.integrywmsnative.core.utility.UtilityDate; +import java.time.LocalDate; +import java.time.LocalDateTime; public class MtbPartitaMag extends EntityBase{ private String codMart; private String partitaMag; private String descrizione; - private String dataIns; - private String dataScad; + private LocalDateTime dataIns; + private LocalDate dataScad; private Integer scelta; private BigDecimal costoUntUmMag; private BigDecimal valUntUmMag; @@ -62,33 +61,24 @@ public class MtbPartitaMag extends EntityBase{ return this; } - public String getDataIns() { + public LocalDateTime getDataIns() { return dataIns; } - public MtbPartitaMag setDataIns(String dataIns) { + public MtbPartitaMag setDataIns(LocalDateTime dataIns) { this.dataIns = dataIns; return this; } - public String getDataScadS() { + public LocalDate getDataScad() { return dataScad; } - public Date getDataScadD() { - return UtilityDate.recognizeDateWithExceptionHandler(getDataScadS()); - } - - public MtbPartitaMag setDataScad(String dataScad) { + public MtbPartitaMag setDataScad(LocalDate dataScad) { this.dataScad = dataScad; return this; } - public MtbPartitaMag setDataScad(Date dataScad) { - this.dataScad = UtilityDate.formatDate(dataScad, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH); - return this; - } - public Integer getScelta() { return scelta; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/dto/AlreadyRegisteredUDCDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/AlreadyRegisteredUDCDTO.java new file mode 100644 index 00000000..dbe9acb0 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/AlreadyRegisteredUDCDTO.java @@ -0,0 +1,29 @@ +package it.integry.integrywmsnative.core.model.dto; + + +import it.integry.integrywmsnative.core.model.MtbColt; + +public class AlreadyRegisteredUDCDTO { + + private MtbColt mtbColt; + + private boolean canBeRecovered; + + public MtbColt getMtbColt() { + return mtbColt; + } + + public AlreadyRegisteredUDCDTO setMtbColt(MtbColt mtbColt) { + this.mtbColt = mtbColt; + return this; + } + + public boolean isCanBeRecovered() { + return canBeRecovered; + } + + public AlreadyRegisteredUDCDTO setCanBeRecovered(boolean canBeRecovered) { + this.canBeRecovered = canBeRecovered; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/dto/PickDataDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/PickDataDTO.java index f43cb742..6c5dbda3 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/dto/PickDataDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/PickDataDTO.java @@ -54,7 +54,7 @@ public class PickDataDTO { if (!UtilityString.isNullOrEmpty(partitaMag)) { MtbPartitaMag mtbPartitaMag = new MtbPartitaMag() .setPartitaMag(partitaMag) - .setDataScad(UtilityDate.recognizeDateWithExceptionHandler(dataScad)); + .setDataScad(UtilityDate.recognizeLocalDateWithExceptionHandler(dataScad)); manualPickDTO.setMtbPartitaMag(mtbPartitaMag); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDCRowRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDCRowRequestDTO.java index 96bb9537..9c1a97f2 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDCRowRequestDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDCRowRequestDTO.java @@ -21,6 +21,9 @@ public class InsertUDCRowRequestDTO { private Integer numOrd; private Integer rigaOrd; + private LocalDate dataDoc; + private Integer numDoc; + public MtbColt getTargetMtbColt() { return targetMtbColt; @@ -129,4 +132,22 @@ public class InsertUDCRowRequestDTO { this.rigaOrd = rigaOrd; return this; } + + public LocalDate getDataDoc() { + return dataDoc; + } + + public InsertUDCRowRequestDTO setDataDoc(LocalDate dataDoc) { + this.dataDoc = dataDoc; + return this; + } + + public Integer getNumDoc() { + return numDoc; + } + + public InsertUDCRowRequestDTO setNumDoc(Integer numDoc) { + this.numDoc = numDoc; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java index 40bfc937..027d4eb1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java @@ -99,6 +99,7 @@ public class SettingsModel { private String profileDB; private AvailableCodMdepsDTO depo; private Integer defaultOrdinamentoPickingAccettazione = 0; + private Integer defaultOrdinamentoPickingAccettazioneBolle = 0; public String getDeviceId() { return deviceId; @@ -134,6 +135,15 @@ public class SettingsModel { this.defaultOrdinamentoPickingAccettazione = defaultOrdinamentoPickingAccettazione; return this; } + + public Integer getDefaultOrdinamentoPickingAccettazioneBolle() { + return defaultOrdinamentoPickingAccettazioneBolle; + } + + public UserSession setDefaultOrdinamentoPickingAccettazioneBolle(Integer defaultOrdinamentoPickingAccettazioneBolle) { + this.defaultOrdinamentoPickingAccettazioneBolle = defaultOrdinamentoPickingAccettazioneBolle; + return this; + } } public Server getServer() { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java index 9aa27662..9173db1c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java @@ -53,14 +53,57 @@ public class UtilityDate { } public static Date recognizeDate(String dateString) throws ParseException, DateNotRecognizedException, TimeNotRecognizedException { + if(dateString == null) return null; + final String format = recognizeDateFormat(dateString); + if(format == null) return null; + + SimpleDateFormat sdf = new SimpleDateFormat(format); + + return sdf.parse(dateString); + } + + public static LocalDate recognizeLocalDateWithExceptionHandler(String dateString) { + try { + return UtilityDate.recognizeLocalDate(dateString); + } catch (DateNotRecognizedException | TimeNotRecognizedException pex) { + UtilityLogger.error(pex); + return null; + } + } + + public static LocalDate recognizeLocalDate(String dateString) throws DateNotRecognizedException, TimeNotRecognizedException { + final String format = recognizeDateFormat(dateString); + if(format == null) return null; + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); + return LocalDate.parse(dateString, formatter); + } + + public static LocalDateTime recognizeLocalDateTimeWithExceptionHandler(String dateString) { + try { + return UtilityDate.recognizeLocalDateTime(dateString); + } catch (DateNotRecognizedException | TimeNotRecognizedException pex) { + UtilityLogger.error(pex); + return null; + } + } + + public static LocalDateTime recognizeLocalDateTime(String dateString) throws DateNotRecognizedException, TimeNotRecognizedException { + final String format = recognizeDateFormat(dateString); + if(format == null) return null; + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); + return LocalDateTime.parse(dateString, formatter); + } + + private static String recognizeDateFormat(String dateString) throws DateNotRecognizedException, TimeNotRecognizedException { if (dateString == null) { return null; } //SE SONO PIU' DI 10 caratteri allora c'è anche l'ora - SimpleDateFormat format = null; char dateSeparator; String onlyDateSubstring = dateString.substring(0, 10); @@ -85,16 +128,12 @@ public class UtilityDate { String timeFormatString = "HH" + timeSeparator + "mm" + timeSeparator + "ss"; - format = new SimpleDateFormat(dateFormatString + " " + timeFormatString); + return dateFormatString + " " + timeFormatString; } else { - format = new SimpleDateFormat(dateFormatString); + return dateFormatString; } - - //format.setTimeZone(TimeZone.getTimeZone("GMT")); - - return format.parse(dateString); } @@ -170,27 +209,27 @@ public class UtilityDate { } public static LocalDate toLocalDate(Date dateToConvert) { - return dateToConvert.toInstant() + return dateToConvert != null ? dateToConvert.toInstant() .atZone(currentZone) - .toLocalDate(); + .toLocalDate() : null; } public static LocalDateTime toLocalDateTime(Date dateToConvert) { - return dateToConvert.toInstant() + return dateToConvert != null ? dateToConvert.toInstant() .atZone(currentZone) - .toLocalDateTime(); + .toLocalDateTime() : null; } public static Date toDate(LocalDate dateToConvert) { - return Date.from(dateToConvert.atStartOfDay() + return dateToConvert != null ? Date.from(dateToConvert.atStartOfDay() .atZone(currentZone) - .toInstant()); + .toInstant()) : null; } public static Date toDateTime(LocalDateTime dateToConvert) { - return Date.from(dateToConvert + return dateToConvert != null ? Date.from(dateToConvert .atZone(currentZone) - .toInstant()); + .toInstant()) : null; } @@ -206,6 +245,12 @@ public class UtilityDate { .toLocalDateTime(); } + public static LocalDate millisTimeToLocalDate(long time, @Nullable String timezone) { + return Instant.ofEpochMilli(time) + .atZone(timezone == null ? currentZone : ZoneId.of(timezone)) + .toLocalDate(); + } + public static LocalDate timeToLocalDate(long time, @Nullable String timezone) { return Instant.ofEpochSecond(time) .atZone(timezone == null ? currentZone : ZoneId.of(timezone)) @@ -229,5 +274,9 @@ public class UtilityDate { return TimeUnit.DAYS.toSeconds(localDate.toEpochDay()); } + public static long localDateToMillisTime(LocalDate localDate) { + return TimeUnit.DAYS.toMillis(localDate.toEpochDay()); + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoComponent.java similarity index 81% rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoComponent.java rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoComponent.java index cacb5dc7..4c1bc9d1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoComponent.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoComponent.java @@ -1,4 +1,4 @@ -package it.integry.integrywmsnative.gest.accettazone_bolla_elenco; +package it.integry.integrywmsnative.gest.accettazione_bolla_elenco; import dagger.Subcomponent; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoFragment.java similarity index 91% rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoFragment.java rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoFragment.java index c67e29ad..82fde29b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoFragment.java @@ -1,4 +1,4 @@ -package it.integry.integrywmsnative.gest.accettazone_bolla_elenco; +package it.integry.integrywmsnative.gest.accettazione_bolla_elenco; import android.content.Context; import android.os.Bundle; @@ -26,10 +26,11 @@ import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBollaBinding; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.SitBollaAccettazioneDTO; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.ui.MainAccettazioneBolleElencoAdapter; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.ui.MainAccettazioneBolleElencoListModel; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.ui.MainAccettazioneBolleElencoAdapter; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.ui.MainAccettazioneBolleElencoListModel; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.AccettazioneBollaPickingActivity; import it.integry.integrywmsnative.ui.ElevatedToolbar; public class MainAccettazioneBollaElencoFragment extends BaseFragment implements ITitledFragment, IScrollableFragment, MainAccettazioneBollaElencoViewModel.Listener { @@ -63,7 +64,7 @@ public class MainAccettazioneBollaElencoFragment extends BaseFragment implements @Override public void onCreateActionBar(AppCompatTextView titleText, Context context) { mAppBarTitle = titleText; - mAppBarTitle.setText(context.getText(R.string.accettazione_title_fragment).toString()); + mAppBarTitle.setText(context.getText(R.string.accettazione_ordine_title_fragment).toString()); } @Override @@ -213,6 +214,6 @@ public class MainAccettazioneBollaElencoFragment extends BaseFragment implements @Override public void onPickingReady(List bolle, List sitArts) { - + AccettazioneBollaPickingActivity.startActivity(requireContext(), bolle, sitArts); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoModule.java similarity index 77% rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoModule.java rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoModule.java index f68f7cd2..0491cd7a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoModule.java @@ -1,8 +1,8 @@ -package it.integry.integrywmsnative.gest.accettazone_bolla_elenco; +package it.integry.integrywmsnative.gest.accettazione_bolla_elenco; import dagger.Module; import dagger.Provides; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.BolleAccettazioneRESTConsumer; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.BolleAccettazioneRESTConsumer; @Module(subcomponents = {MainAccettazioneBollaElencoComponent.class}) public class MainAccettazioneBollaElencoModule { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoViewModel.java similarity index 86% rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoViewModel.java rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoViewModel.java index 743ba61b..868b2c32 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoViewModel.java @@ -1,4 +1,4 @@ -package it.integry.integrywmsnative.gest.accettazone_bolla_elenco; +package it.integry.integrywmsnative.gest.accettazione_bolla_elenco; import androidx.lifecycle.MutableLiveData; @@ -7,9 +7,9 @@ import java.util.List; import javax.inject.Inject; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.BolleAccettazioneRESTConsumer; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.SitBollaAccettazioneDTO; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.BolleAccettazioneRESTConsumer; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO; public class MainAccettazioneBollaElencoViewModel { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/BolleAccettazioneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/BolleAccettazioneRESTConsumer.java similarity index 80% rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/BolleAccettazioneRESTConsumer.java rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/BolleAccettazioneRESTConsumer.java index 98994087..7bae2e9f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/BolleAccettazioneRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/BolleAccettazioneRESTConsumer.java @@ -1,4 +1,4 @@ -package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest; +package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest; import java.util.List; @@ -8,11 +8,11 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.RetrieveElencoArticoliAccettazioneBollaRequestDTO; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.RetrieveElencoArticoliAccettazioneBollaResponseDTO; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.RetrieveElencoBolleAccettazioneResponseDTO; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.SitBollaAccettazioneDTO; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.RetrieveElencoArticoliAccettazioneBollaRequestDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.RetrieveElencoArticoliAccettazioneBollaResponseDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.RetrieveElencoBolleAccettazioneResponseDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/BolleAccettazioneRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/BolleAccettazioneRESTConsumerService.java similarity index 59% rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/BolleAccettazioneRESTConsumerService.java rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/BolleAccettazioneRESTConsumerService.java index 44a475dd..ae71bc6f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/BolleAccettazioneRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/BolleAccettazioneRESTConsumerService.java @@ -1,9 +1,9 @@ -package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest; +package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.RetrieveElencoArticoliAccettazioneBollaRequestDTO; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.RetrieveElencoArticoliAccettazioneBollaResponseDTO; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.RetrieveElencoBolleAccettazioneResponseDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.RetrieveElencoArticoliAccettazioneBollaRequestDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.RetrieveElencoArticoliAccettazioneBollaResponseDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.RetrieveElencoBolleAccettazioneResponseDTO; import retrofit2.Call; import retrofit2.http.Body; import retrofit2.http.GET; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaRequestDTO.java similarity index 83% rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaRequestDTO.java rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaRequestDTO.java index dc6bfc41..d547190e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaRequestDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaRequestDTO.java @@ -1,4 +1,4 @@ -package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto; +package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto; import java.util.List; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaResponseDTO.java similarity index 84% rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaResponseDTO.java rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaResponseDTO.java index c83f0278..b21c872c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaResponseDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaResponseDTO.java @@ -1,4 +1,4 @@ -package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto; +package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto; import java.util.List; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/RetrieveElencoBolleAccettazioneResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoBolleAccettazioneResponseDTO.java similarity index 77% rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/RetrieveElencoBolleAccettazioneResponseDTO.java rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoBolleAccettazioneResponseDTO.java index a2978ac0..6a0e6009 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/RetrieveElencoBolleAccettazioneResponseDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoBolleAccettazioneResponseDTO.java @@ -1,4 +1,4 @@ -package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto; +package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto; import java.util.List; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java similarity index 61% rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java index 3b64d743..8505f0e9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java @@ -1,4 +1,4 @@ -package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto; +package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto; import java.math.BigDecimal; import java.time.LocalDate; @@ -10,10 +10,16 @@ public class SitBollaAccettazioneDTO { private String serDoc; private String codDtip; private String codMart; - private BigDecimal qtaDoc; + private String codArtFor; private String partitaMag; + + private BigDecimal qtaDoc; + private BigDecimal qtaCnfDoc; + private BigDecimal numCnfDoc; private BigDecimal qtaAccettata; + private BigDecimal numCnfAccettata; private BigDecimal qtaDaAccettare; + private BigDecimal numCnfDaAccettare; public int getNumDoc() { return numDoc; @@ -60,12 +66,12 @@ public class SitBollaAccettazioneDTO { return this; } - public BigDecimal getQtaDoc() { - return qtaDoc; + public String getCodArtFor() { + return codArtFor; } - public SitBollaAccettazioneDTO setQtaDoc(BigDecimal qtaDoc) { - this.qtaDoc = qtaDoc; + public SitBollaAccettazioneDTO setCodArtFor(String codArtFor) { + this.codArtFor = codArtFor; return this; } @@ -78,6 +84,33 @@ public class SitBollaAccettazioneDTO { return this; } + public BigDecimal getQtaDoc() { + return qtaDoc; + } + + public SitBollaAccettazioneDTO setQtaDoc(BigDecimal qtaDoc) { + this.qtaDoc = qtaDoc; + return this; + } + + public BigDecimal getQtaCnfDoc() { + return qtaCnfDoc; + } + + public SitBollaAccettazioneDTO setQtaCnfDoc(BigDecimal qtaCnfDoc) { + this.qtaCnfDoc = qtaCnfDoc; + return this; + } + + public BigDecimal getNumCnfDoc() { + return numCnfDoc; + } + + public SitBollaAccettazioneDTO setNumCnfDoc(BigDecimal numCnfDoc) { + this.numCnfDoc = numCnfDoc; + return this; + } + public BigDecimal getQtaAccettata() { return qtaAccettata; } @@ -87,6 +120,15 @@ public class SitBollaAccettazioneDTO { return this; } + public BigDecimal getNumCnfAccettata() { + return numCnfAccettata; + } + + public SitBollaAccettazioneDTO setNumCnfAccettata(BigDecimal numCnfAccettata) { + this.numCnfAccettata = numCnfAccettata; + return this; + } + public BigDecimal getQtaDaAccettare() { return qtaDaAccettare; } @@ -95,4 +137,13 @@ public class SitBollaAccettazioneDTO { this.qtaDaAccettare = qtaDaAccettare; return this; } + + public BigDecimal getNumCnfDaAccettare() { + return numCnfDaAccettare; + } + + public SitBollaAccettazioneDTO setNumCnfDaAccettare(BigDecimal numCnfDaAccettare) { + this.numCnfDaAccettare = numCnfDaAccettare; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/TestataBollaAccettazioneDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/TestataBollaAccettazioneDTO.java similarity index 92% rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/TestataBollaAccettazioneDTO.java rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/TestataBollaAccettazioneDTO.java index e17128da..91d5c64a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/TestataBollaAccettazioneDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/TestataBollaAccettazioneDTO.java @@ -1,4 +1,4 @@ -package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto; +package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto; import java.util.Date; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/ui/MainAccettazioneBolleElencoAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/ui/MainAccettazioneBolleElencoAdapter.java similarity index 98% rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/ui/MainAccettazioneBolleElencoAdapter.java rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/ui/MainAccettazioneBolleElencoAdapter.java index 9632410d..578611ab 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/ui/MainAccettazioneBolleElencoAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/ui/MainAccettazioneBolleElencoAdapter.java @@ -1,4 +1,4 @@ -package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.ui; +package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.ui; import android.content.Context; import android.text.Html; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/ui/MainAccettazioneBolleElencoListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/ui/MainAccettazioneBolleElencoListModel.java similarity index 93% rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/ui/MainAccettazioneBolleElencoListModel.java rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/ui/MainAccettazioneBolleElencoListModel.java index d0974618..1f98fbfd 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/ui/MainAccettazioneBolleElencoListModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/ui/MainAccettazioneBolleElencoListModel.java @@ -1,9 +1,9 @@ -package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.ui; +package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.ui; import androidx.annotation.ColorInt; import it.integry.integrywmsnative.core.di.BindableBoolean; -import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO; public class MainAccettazioneBolleElencoListModel implements Cloneable { private String groupTitle; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java new file mode 100644 index 00000000..728f41b9 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java @@ -0,0 +1,555 @@ +package it.integry.integrywmsnative.gest.accettazione_bolla_picking; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.Resources; +import android.os.Bundle; +import android.text.SpannableString; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; +import androidx.databinding.ObservableArrayList; +import androidx.preference.PreferenceManager; + +import com.annimon.stream.ComparatorCompat; +import com.annimon.stream.Stream; +import com.tfb.fbtoast.FBToast; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import javax.inject.Inject; + +import it.integry.barcode_base_android_library.model.BarcodeScanDTO; +import it.integry.integrywmsnative.MainApplication; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; +import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; +import it.integry.integrywmsnative.core.data_cache.DataCache; +import it.integry.integrywmsnative.core.di.BindableBoolean; +import it.integry.integrywmsnative.core.expansion.BaseActivity; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.expansion.RunnableArgss; +import it.integry.integrywmsnative.core.model.MtbAart; +import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.model.MtbTCol; +import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; +import it.integry.integrywmsnative.core.report.ReportManager; +import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO; +import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; +import it.integry.integrywmsnative.core.utility.UtilityDate; +import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityResources; +import it.integry.integrywmsnative.core.utility.UtilityToast; +import it.integry.integrywmsnative.databinding.ActivityAccettazioneBollaPickingBinding; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.AccettazioneBollaPickingOrderBy; +import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListAdapter; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListModel; +import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity; +import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException; +import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; +import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView; +import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel; +import it.integry.integrywmsnative.view.dialogs.ask_should_versamento_automatico_ul.DialogAskShouldVersamentoAutomaticoULView; +import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; +import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU; +import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; +import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View; +import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView; + +public class AccettazioneBollaPickingActivity extends BaseActivity implements AccettazioneBollaPickingViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener { + + + @Inject + AccettazioneBollaPickingViewModel mViewModel; + + @Inject + DialogInputQuantityV2View mDialogInputQuantityV2View; + + private ActivityAccettazioneBollaPickingBinding mBindings; + + private BottomSheetFragmentLUContentViewModel mBottomSheetFragmentLUContentViewModel; + + + private final ObservableArrayList mAccettazioneMutableData = new ObservableArrayList<>(); + + public BindableBoolean noItemsToPick = new BindableBoolean(false); + public BindableBoolean noLUPresent = new BindableBoolean(true); + public BindableBoolean bottomSheetEnabled = new BindableBoolean(false); + + private int barcodeScannerIstanceID = -1; + private boolean mShowSecondaryUntMis = true; + private boolean mShouldCloseActivity; + private AccettazioneBollaPickingOrderBy.Enum mCurrentOrderBy; + + private final int PICK_UL_REQUEST = 1; + + private List testataBolle; + private List sitArts; + + //Pass here all external parameters + public static void startActivity(Context context, List testataBolle, List sitArts) { + Intent myIntent = new Intent(context, AccettazioneBollaPickingActivity.class); + + String keyBolle = DataCache.addItem(testataBolle); + myIntent.putExtra("keyBolle", keyBolle); + + String keySitArts = DataCache.addItem(sitArts); + myIntent.putExtra("keySitArts", keySitArts); + + context.startActivity(myIntent); + } + + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + testataBolle = DataCache.retrieveItem(getIntent().getStringExtra("keyBolle")); + sitArts = DataCache.retrieveItem(getIntent().getStringExtra("keySitArts")); + + mBindings = ActivityAccettazioneBollaPickingBinding.inflate(getLayoutInflater()); + mBindings.setLifecycleOwner(this); + mBindings.setAccettazioneView(this); + + setContentView(mBindings.getRoot()); + + MainApplication.appComponent + .accettazioneBollaPickingComponent() + .create() + .inject(this); + + + setSupportActionBar(mBindings.toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + mBottomSheetFragmentLUContentViewModel = mBindings.bottomSheetLuContent.getViewModelInstance(); + mBindings.bottomSheetLuContent.setListener(this); + mBottomSheetFragmentLUContentViewModel.setListener(this); + + SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); + mShowSecondaryUntMis = sharedPreferences.getBoolean("picking_ingresso_enable_sec_unt_mis", true); + + this.initVars(); + this.initBarcodeReader(); + this.initRecyclerView(); +// this.initFilters(); + + boolean useQtaOrd = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd(); + + mViewModel.setListeners(this); + mViewModel.init( + testataBolle, + sitArts, + useQtaOrd); + } + + @Override + public boolean onSupportNavigateUp() { + onBackPressed(); + return true; + } + + @Override + public void onBackPressed() { + if (this.mBindings.bottomSheetLuContent.isExpanded()) { + this.mBindings.bottomSheetLuContent.collapse(); + } else if (!noLUPresent.get()) { + this.mShouldCloseActivity = true; + BarcodeManager.removeCallback(barcodeScannerIstanceID); + this.mViewModel.closeLU(); + } else { + BarcodeManager.removeCallback(barcodeScannerIstanceID); + super.onBackPressed(); + } + } + + private void initVars() { + this.noLUPresent.addOnPropertyChangedCallback(() -> { + this.bottomSheetEnabled.set(!this.noLUPresent.get()); + }); + + mCurrentOrderBy = AccettazioneBollaPickingOrderBy.Enum.fromInt(SettingsManager.i().getUserSession().getDefaultOrdinamentoPickingAccettazioneBolle()); + } + + private void initBarcodeReader() { + barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() + .setOnScanSuccessful(onScanSuccessful) + .setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false))); + } + + private void initRecyclerView() { + AccettazioneBollaPickingListAdapter adapter = new AccettazioneBollaPickingListAdapter(this, mAccettazioneMutableData, mShowSecondaryUntMis); + this.mBindings.accettazionePickingList.setAdapter(adapter); + + this.mViewModel.getPickingList().observe(this, updatedData -> { +// mAppliedFilterViewModel.init(updatedData); + + refreshList(); + }); + + adapter.setOnItemClicked(clickedItem -> { + this.mViewModel.dispatchOrdineRow(clickedItem); + }); + } + + private void refreshList() { + + runOnUiThread(() -> { + List tmpList; + +// if (mAppliedFilterViewModel != null) { +// mAppliedFilterViewModel.applyAllTests(); +// tmpList = mAppliedFilterViewModel.getMutableFilteredOrderList().getValue(); +// } else { + tmpList = mViewModel.getPickingList().getValue(); +// } +// + var list = convertDataModelToListModel(tmpList); + + this.mAccettazioneMutableData.clear(); + this.mAccettazioneMutableData.addAll(list); + this.noItemsToPick.set(!isThereAnyItemToPick(tmpList)); + + }); + } + + private boolean isThereAnyItemToPick(List dataList) { + return Stream.of(dataList) + .anyMatch(x -> !x.isHidden()); + } + + private List convertDataModelToListModel(List dataList) { + List tmpList = Stream.of(dataList) + .filter(x -> !x.isHidden() && UtilityBigDecimal.greaterThan(x.getSitBollaAccettazione().getQtaDaAccettare(), BigDecimal.ZERO)) + .toList(); + + return switch (mCurrentOrderBy) { + case COD_ART_FOR -> convertDataModelToListModel__NormalView( + tmpList, + ComparatorCompat + .comparing(x -> x.getSitBollaAccettazione().getCodArtFor())); + case DESCR_ART -> //convertDataModelToListModel__DescrArt(tmpList); + new ArrayList<>(); + }; + } + + private List convertDataModelToListModel__NormalView(List dataList, ComparatorCompat comparator) { + ArrayList list = new ArrayList<>(); + Stream.of(dataList) + .sorted(comparator) + .forEach(x -> { + AccettazioneBollaPickingListModel accettazioneBollaPickingListModel = new AccettazioneBollaPickingListModel(); + accettazioneBollaPickingListModel.setActive(true); + + accettazioneBollaPickingListModel.setTitolo(x.getMtbAart().getCodMart()); + + accettazioneBollaPickingListModel.setBadge2Icon(R.drawable.ic_document_outline); + accettazioneBollaPickingListModel.setBadge2(x.getSitBollaAccettazione().getNumDoc() + " del " + UtilityDate.formatDate(x.getSitBollaAccettazione().getDataDoc(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); + + accettazioneBollaPickingListModel.setDescrizione(x.getMtbAart().getDescrizione()); + + //Calc Num CNF + BigDecimal numCnfEvasa = BigDecimal.ZERO; + + if (x.getWithdrawMtbColrs().size() > 0) { + numCnfEvasa = Stream.of(x.getWithdrawMtbColrs()) + .map(MtbColr::getNumCnf) + .reduce(BigDecimal.ZERO, BigDecimal::add); + } + + //Calc qta col + BigDecimal qtaEvasa = BigDecimal.ZERO; + + if (x.getWithdrawMtbColrs().size() > 0) { + qtaEvasa = Stream.of(x.getWithdrawMtbColrs()) + .map(MtbColr::getQtaCol) + .reduce(BigDecimal.ZERO, BigDecimal::add); + } + + + if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) { + accettazioneBollaPickingListModel.setQtaEvasa(numCnfEvasa); + accettazioneBollaPickingListModel.setQtaTot(x.getSitBollaAccettazione().getNumCnfDaAccettare()); + accettazioneBollaPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col)); + + accettazioneBollaPickingListModel.setSecQtaEvasa(qtaEvasa); + accettazioneBollaPickingListModel.setSecQtaTot(x.getSitBollaAccettazione().getQtaDaAccettare()); + if (x.getMtbAart() != null) + accettazioneBollaPickingListModel.setSecUntMis(x.getMtbAart().getUntMis()); + } else { + accettazioneBollaPickingListModel.setQtaEvasa(qtaEvasa); + accettazioneBollaPickingListModel.setQtaTot(x.getSitBollaAccettazione().getQtaDaAccettare()); + if (x.getMtbAart() != null) + accettazioneBollaPickingListModel.setUntMis(x.getMtbAart().getUntMis()); + + accettazioneBollaPickingListModel.setSecQtaEvasa(numCnfEvasa); + accettazioneBollaPickingListModel.setSecQtaTot(x.getSitBollaAccettazione().getNumCnfDaAccettare()); + accettazioneBollaPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col)); + } + + accettazioneBollaPickingListModel.setOriginalModel(x); + + list.add(accettazioneBollaPickingListModel); + }); + + return list; + } + + + private final RunnableArgs onScanSuccessful = data -> { + this.onLoadingStarted(); + + this.mViewModel.processBarcodeDTO(data, this::onLoadingEnded); + }; + + public void createNewLU() { + this.mBindings.accettazioneOrdineInevasoFab.close(true); + this.onLoadingStarted(); + + this.mViewModel.createNewLU(null, null, false, this::onLoadingEnded); + } + + public void showCreatedUL() { + this.mBindings.accettazioneOrdineInevasoFab.close(true); + + this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity); + } + + private void showOrderByDialog() { + AlertDialog dialog = new AlertDialog.Builder(this) + .setTitle(this.getText(R.string.action_orderBy)) + .setSingleChoiceItems(AccettazioneBollaPickingOrderBy.descriptions, mCurrentOrderBy.getVal(), (dialog12, which) -> { + mCurrentOrderBy = AccettazioneBollaPickingOrderBy.Enum.fromInt(which); + SettingsManager.i().getUserSession().setDefaultOrdinamentoPickingAccettazione(which); + }) + .setPositiveButton(getText(R.string.ok), (dialog1, which) -> this.refreshList()) + .create(); + dialog.show(); + } + + public void startListaBancaliRegistratiActivity(List mtbColts) { + + Intent myIntent = ListaBancaliActivity.createIntent(this, + + Stream.of(mtbColts) + .map(AlreadyRegisteredUDCDTO::getMtbColt) + .toList(), + + input -> Stream.of(mtbColts) + .filter(x -> x.getMtbColt() == input) + .findFirstOrElse(null) + .isCanBeRecovered(), + + ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO)); + + this.startActivityForResult(myIntent, PICK_UL_REQUEST); + } + + @Override + public void onMtbColrDeleteRequest(RunnableArgs onComplete) { + runOnUiThread(() -> { + String text = getResources().getString(R.string.alert_delete_mtb_colr); + DialogSimpleMessageView.makeWarningDialog(new SpannableString(text), + null, + () -> onComplete.run(true), + () -> onComplete.run(false) + ).show(getSupportFragmentManager(), "tag"); + }); + } + + @Override + public void onLUOpened(MtbColt mtbColt) { + runOnUiThread(() -> { + noLUPresent.set(false); + FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT); + + this.mBottomSheetFragmentLUContentViewModel.setMtbColt(mtbColt); + }); + } + + @Override + public void onLUClosed() { + runOnUiThread(() -> { + noLUPresent.set(true); + this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null); + + if (this.mShouldCloseActivity) super.onBackPressed(); + }); + } + + @Override + public void onRowSaved() { + runOnUiThread(() -> { + FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT); + }); + } + + @Override + public void onLUSuccessullyPrinted() { + Resources res = getResources(); + String errorMessage = res.getText(R.string.alert_print_completed_message).toString(); + DialogSimpleMessageView + .makeSuccessDialog(res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null) + .show(getSupportFragmentManager(), "tag"); + } + + @Override + public void onLUPrintRequest(RunnableArgs onComplete) { + + } + + @Override + public void onLUPrintError(Exception ex, Runnable onComplete) { + this.onLoadingEnded(); + DialogSimpleMessageView.makeErrorDialog( + new SpannableString(ex.getMessage()), + null, + null, + R.string.button_ignore_print, + onComplete) + .show(getSupportFragmentManager(), "tag"); + } + + @Override + public void onMtbColrEdit(MtbColr mtbColr) { + this.mViewModel.dispatchRowEdit(mtbColr); + } + + @Override + public void onMtbColrDelete(MtbColr mtbColr) { + this.mViewModel.deleteRow(mtbColr); + } + + @Override + public void onBottomSheetLUClose() { + this.mViewModel.closeLU(); + } + + @Override + public void onVersamentoAutomaticoULRequest(RunnableArgs onComplete) { + runOnUiThread(() -> { + DialogAskShouldVersamentoAutomaticoULView.newInstance(onComplete) + .show(getSupportFragmentManager(), "tag"); + }); + } + + @Override + public void onInfoAggiuntiveRequest(RunnableArgss onComplete) { + runOnUiThread(() -> { + DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog"); + }); + } + + @Override + public void onError(Exception ex) { + this.onLoadingEnded(); + + if (ex instanceof InvalidPesoKGException) { + UtilityToast.showToast(ex.getMessage()); + } else { + UtilityExceptions.defaultException(this, ex); + } + + BarcodeManager.enable(); + } + + @Override + public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal + initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal + totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal + totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal + totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String + partitaMag, LocalDate dataScad, boolean canPartitaMagBeChanged, + boolean canOverflowQuantity, RunnableArgss onComplete) { + DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO() + .setMtbAart(mtbAart) + .setInitialNumCnf(initialNumCnf) + .setInitialQtaCnf(initialQtaCnf) + .setInitialQtaTot(initialQtaTot) + .setTotalQtaOrd(totalQtaOrd) + .setTotalNumCnfOrd(totalNumCnfOrd) + .setQtaCnfOrd(qtaCnfOrd) + .setTotalQtaToBeTaken(totalQtaToBeTaken) + .setTotalNumCnfToBeTaken(totalNumCnfToBeTaken) + .setQtaCnfToBeTaken(qtaCnfToBeTaken) + .setTotalQtaAvailable(totalQtaAvailable) + .setTotalNumCnfAvailable(totalNumCnfAvailable) + .setQtaCnfAvailable(qtaCnfAvailable) + .setPartitaMag(partitaMag) + .setDataScad(dataScad) + .setCanPartitaMagBeChanged(canPartitaMagBeChanged) + .setCanLUBeClosed(true) + .setCanOverflowOrderQuantity(canOverflowQuantity); + + 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()); + onComplete.run(pickedQuantityDTO, shouldCloseLU); + }) + .setOnAbort(() -> this.mViewModel.resetMatchedRows()) + .show(getSupportFragmentManager(), "tag"); + } + + @Override + public void onFilterCodMartApplied(String codMartToFilter) { + runOnUiThread(() -> { + var codMarts = new ArrayList(); + codMarts.add(codMartToFilter); + +// this.mAppliedFilterViewModel.setCodArtFilter(codMarts); + }); + } + + @Override + public void onFilterPosizioneApplied(String posizioneToFilter) { + runOnUiThread(() -> { + var posizioni = new ArrayList(); + posizioni.add(posizioneToFilter); + +// this.mAppliedFilterViewModel.setPosFilter(posizioni); + }); + } + + @Override + public void onULVersata(VersamentoAutomaticoULResponseDTO + versamentoAutomaticoULResponseDTO, Runnable onComplete) { + + runOnUiThread(() -> { + DialogVersamentoAutomaticoULDoneView + .newInstance(versamentoAutomaticoULResponseDTO, onComplete) + .show(getSupportFragmentManager(), "tag"); + }); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + + // Check which request we're responding to + if (requestCode == PICK_UL_REQUEST) { + + // Make sure the request was successful + if (resultCode == RESULT_OK) { + MtbColt recoveredMtbColt = DataCache.retrieveItem(data.getStringExtra("key")); + this.mViewModel.recoverLU(recoveredMtbColt); + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingComponent.java new file mode 100644 index 00000000..d75161a8 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingComponent.java @@ -0,0 +1,14 @@ +package it.integry.integrywmsnative.gest.accettazione_bolla_picking; + +import dagger.Subcomponent; + +@Subcomponent +public interface AccettazioneBollaPickingComponent { + + @Subcomponent.Factory + interface Factory { + AccettazioneBollaPickingComponent create(); + } + + void inject(AccettazioneBollaPickingActivity AccettazioneBollaPickingActivity); +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingModule.java new file mode 100644 index 00000000..4a1d478c --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingModule.java @@ -0,0 +1,33 @@ +package it.integry.integrywmsnative.gest.accettazione_bolla_picking; + +import dagger.Module; +import dagger.Provides; +import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.rest.AccettazioneBollaPickingRESTConsumer; + +@Module(subcomponents = AccettazioneBollaPickingComponent.class) +public class AccettazioneBollaPickingModule { + + @Provides + AccettazioneBollaPickingViewModel providesAccettazioneBollaPickingViewModel(ArticoloRESTConsumer articoloRESTConsumer, + BarcodeRESTConsumer barcodeRESTConsumer, + ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, + PrinterRESTConsumer printerRESTConsumer, + AccettazioneBollaPickingRESTConsumer accettazioneBollaPickingRESTConsumer, + ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer, + ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer) { + return new AccettazioneBollaPickingViewModel(articoloRESTConsumer, + barcodeRESTConsumer, + colliMagazzinoRESTConsumer, + printerRESTConsumer, + accettazioneBollaPickingRESTConsumer, + colliAccettazioneRESTConsumer, + colliLavorazioneRESTConsumer); + } + +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java new file mode 100644 index 00000000..5181d247 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java @@ -0,0 +1,935 @@ +package it.integry.integrywmsnative.gest.accettazione_bolla_picking; + +import androidx.annotation.NonNull; +import androidx.databinding.ObservableArrayList; +import androidx.lifecycle.MutableLiveData; + +import com.annimon.stream.Optional; +import com.annimon.stream.Stream; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import javax.inject.Inject; + +import it.integry.barcode_base_android_library.model.BarcodeScanDTO; +import it.integry.integrywmsnative.core.CommonConst; +import it.integry.integrywmsnative.core.exception.AlreadyUsedAnonymousLabelException; +import it.integry.integrywmsnative.core.exception.LUScanNotGrantedException; +import it.integry.integrywmsnative.core.exception.NoArtsFoundException; +import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException; +import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.expansion.RunnableArgss; +import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUBaseOperationsListener; +import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUPrintListener; +import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; +import it.integry.integrywmsnative.core.model.MtbAart; +import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.model.MtbTCol; +import it.integry.integrywmsnative.core.model.dto.PickDataDTO; +import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; +import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliCaricoRESTConsumerInterface; +import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel; +import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO; +import it.integry.integrywmsnative.core.rest.model.udc.CloseUDCRequestDTO; +import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCRequestDTO; +import it.integry.integrywmsnative.core.rest.model.udc.DeleteUDCRowRequestDTO; +import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.PrintULRequestDTO; +import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityBarcode; +import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; +import it.integry.integrywmsnative.core.utility.UtilityDate; +import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO; +import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.rest.AccettazioneBollaPickingRESTConsumer; +import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.HistoryMtbAartDTO; +import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException; +import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException; +import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; + +public class AccettazioneBollaPickingViewModel { + + + + private final ArticoloRESTConsumer mArticoloRESTConsumer; + private final BarcodeRESTConsumer mBarcodeRESTConsumer; + private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer; + private final PrinterRESTConsumer mPrinterRESTConsumer; + private final AccettazioneBollaPickingRESTConsumer mAccettazioneBollaPickingRESTConsumer; + private final ColliAccettazioneRESTConsumer mColliAccettazioneRESTConsumer; + private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer; + + + + private ColliCaricoRESTConsumerInterface mColliCaricoRESTConsumer; + + + + + private Listener mListener; + + private List mBolle; + private boolean mUseQtaBolla; + private final MutableLiveData> mPickingList = new MutableLiveData<>(); + + private MtbColt mCurrentMtbColt = null; + private GestioneEnum defaultGestioneOfUL = null; + + private final List mHistoryUsedAarts = new ArrayList<>(); + + @Inject + public AccettazioneBollaPickingViewModel(ArticoloRESTConsumer articoloRESTConsumer, + BarcodeRESTConsumer barcodeRESTConsumer, + ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, + PrinterRESTConsumer printerRESTConsumer, + AccettazioneBollaPickingRESTConsumer accettazioneBollaPickingRESTConsumer, + ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer, + ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer) { + this.mArticoloRESTConsumer = articoloRESTConsumer; + this.mBarcodeRESTConsumer = barcodeRESTConsumer; + this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer; + this.mPrinterRESTConsumer = printerRESTConsumer; + this.mAccettazioneBollaPickingRESTConsumer = accettazioneBollaPickingRESTConsumer; + this.mColliAccettazioneRESTConsumer = colliAccettazioneRESTConsumer; + this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer; + } + + public void init(List orders, List sitArts, boolean useQtaOrd) { + this.mBolle = orders; + this.mUseQtaBolla = useQtaOrd; + + List mSitArts = Stream.of(sitArts) + .filter(x -> + UtilityBigDecimal.greaterThan(x.getQtaDaAccettare(), BigDecimal.ZERO)) + .toList(); + + getEmptyPickingList(mSitArts, this.mPickingList::postValue); + + + defaultGestioneOfUL = GestioneEnum.ACQUISTO; + + switch (defaultGestioneOfUL) { + case ACQUISTO -> this.mColliCaricoRESTConsumer = mColliAccettazioneRESTConsumer; + case LAVORAZIONE -> this.mColliCaricoRESTConsumer = mColliLavorazioneRESTConsumer; + } + } + + private void getEmptyPickingList(List sitBolleList, RunnableArgs> onComplete) { + + List codMarts = Stream.of(sitBolleList) + .map(SitBollaAccettazioneDTO::getCodMart) + .toList(); + + this.mArticoloRESTConsumer.getByCodMarts(codMarts, listMtbAarts -> { + List pickingList = Stream.of(sitBolleList) + .map(sitBolla -> { + MtbAart mtbAart = null; + + for (MtbAart mtbAartItem : listMtbAarts) { + if (mtbAartItem.getCodMart().equalsIgnoreCase(sitBolla.getCodMart())) { + mtbAart = mtbAartItem; + break; + } + } + + return new PickingObjectDTO() + .setSitBollaAccettazione(sitBolla) + .setMtbAart(mtbAart); + }) + .toList(); + + onComplete.run(pickingList); + }, this::sendError); + } + + public MutableLiveData> getPickingList() { + return mPickingList; + } + + + + public void retrieveExistentLU(RunnableArgs> onComplete) { + this.sendOnLoadingStarted(); + + this.mAccettazioneBollaPickingRESTConsumer.retrieveAlreadyRegisteredUDC(this.mBolle, mtbColtList -> { + this.sendOnLoadingEnded(); + onComplete.run(mtbColtList); + }, this::sendError); + } + + + public void recoverLU(MtbColt recoveredMtbColt) { + this.mCurrentMtbColt = recoveredMtbColt; + + this.resetMatchedRows(); + this.sendLUOpened(this.mCurrentMtbColt); + } + + + public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { + //Se non c'è una UL aperta + if (mCurrentMtbColt == null) { + + //Se è un'etichetta anonima + if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) { + //Se il collo non esiste allora lo creo associandolo a questa etichetta anonima + //invece se esiste apro un collo nuovo e cerco gli articoli presenti nell'ul + //dell'etichetta anonima + this.executeEtichettaAnonimaNotOpenedLU(barcodeScanDTO, onComplete); + } else { + this.processBarcodeNotOpenedLU(barcodeScanDTO, onComplete); + } + + } else { + if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) { + this.sendError(new LUScanNotGrantedException()); + } else { + this.processBarcodeAlreadyOpenedLU(barcodeScanDTO, onComplete); + } + } + } + + private void executeEtichettaAnonimaNotOpenedLU(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { + mColliMagazzinoRESTConsumer.getBySSCC(barcodeScanDTO.getStringValue(), true, false, mtbColt -> { + + if (mtbColt == null) { + if (!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcodeScanDTO.getStringValue())) { + this.sendError(new NotCurrentYearLUException()); + } else { + int numCollo = -1; + + try { + numCollo = UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()); + this.createNewLU( + numCollo, + CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, true, onComplete); + } catch (Exception ex) { + this.sendError(ex); + } + } + } else { + this.sendError(new AlreadyUsedAnonymousLabelException()); + } + + }, this::sendError); + } + + private void processBarcodeNotOpenedLU(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { + this.createNewLU( + null, + null, + false, + () -> processBarcodeAlreadyOpenedLU(barcodeScanDTO, onComplete)); + } + + private void processBarcodeAlreadyOpenedLU(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { + + if (UtilityBarcode.isEanPeso(barcodeScanDTO)) { + //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL) + this.executeEtichettaEanPeso(barcodeScanDTO, onComplete); + + + } else if (UtilityBarcode.isEtichettaPosizione(barcodeScanDTO)) { + //Applico filtro per posizione + this.executeEtichettaPosizione(barcodeScanDTO, onComplete); + + } else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) { + //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL) + this.executeEtichettaEan128(barcodeScanDTO, onComplete); + + + } else { + this.loadArticolo(barcodeScanDTO.getStringValue(), null, onComplete); + } + } + + private void executeEtichettaEanPeso(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { + try { + Ean13PesoModel ean13PesoModel = Ean13PesoModel.fromBarcode(barcodeScanDTO.getStringValue()); + + this.loadArticolo(ean13PesoModel.getPrecode(), PickDataDTO.fromEan128(ean13PesoModel.toEan128()), onComplete); + } catch (Exception ex) { + this.sendError(ex); + } + } + + private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { + mBarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> { + + String barcodeProd = null; + + if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc; + if (!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin; + if (!UtilityString.isNullOrEmpty(ean128Model.Content)) + barcodeProd = ean128Model.Content; + + + if (!UtilityString.isNullOrEmpty(barcodeProd)) { + + if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) { + this.sendError(new LUScanNotGrantedException()); + } else { + + PickDataDTO pickDataDTO = PickDataDTO.fromEan128(ean128Model); + this.loadArticolo(barcodeProd, pickDataDTO, onComplete); + } + } else { + //EAN 128 non completo o comunque mancano i riferimenti al prodotto + onComplete.run(); + } + }, this::sendError); + } + + private void executeEtichettaPosizione(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { + + var optionalPos = Stream.of(SettingsManager.iDB().getAvailablePosizioni()) + .filter(x -> x.getPosizione().equalsIgnoreCase(barcodeScanDTO.getStringValue())) + .findFirst(); + + this.sendFilterPosizioneApplied(optionalPos.get().getPosizione()); + onComplete.run(); + } + + private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) { + this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { + + if (mtbAartList != null && mtbAartList.size() > 0) { + this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete); + } else { + this.sendError(new NoResultFromBarcodeException(barcodeProd)); + } + + }, this::sendError); + } + + + private void searchArtFromAnag(MtbAart mtbAart, PickDataDTO pickData, Runnable onComplete) { + final List pickingList = mPickingList.getValue(); + + List matchPickingObject = Stream.of(pickingList) + .filter(x -> UtilityString.equalsIgnoreCase(mtbAart.getCodMart(), x.getSitBollaAccettazione().getCodMart())) + .toList(); + + for (PickingObjectDTO pickingObjectDTO : matchPickingObject) { + pickingObjectDTO.setTempPickData(pickData); + } + + this.loadMatchedRows(matchPickingObject); + onComplete.run(); + } + + private void loadMatchedRows(List matchedRows) { + if (matchedRows == null || matchedRows.size() == 0) { + this.sendError(new NoArtsFoundException()); + } else if (matchedRows.size() == 1) { + this.dispatchOrdineRow(matchedRows.get(0)); + } else { + //So che il codMart sarà solo 1 + var firstCodMart = Stream.of(matchedRows) + .map(x -> x.getSitBollaAccettazione().getCodMart()) + .distinct() + .findFirst() + .get(); + + this.sendFilterCodMartApplied(firstCodMart); + } + } + + + public void createNewLU(Integer customNumCollo, String customSerCollo, boolean disablePrint, Runnable onComplete) { + this.sendOnInfoAggiuntiveRequest((additionalNotes, tCol) -> { + + + final CreateUDCRequestDTO createUDCRequestDTO = new CreateUDCRequestDTO() + .setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep()) + .setAnnotazioni(additionalNotes) + .setCodTcol(tCol != null ? tCol.getCodTcol() : null) + .setNumCollo(customNumCollo) + .setSerCollo(customSerCollo); + + this.mColliCaricoRESTConsumer.createUDC(createUDCRequestDTO, createdUDS -> { + this.mCurrentMtbColt = createdUDS; + + this.mCurrentMtbColt.setMtbColr(new ObservableArrayList<>()) + .setDisablePrint(disablePrint); + + if (onComplete != null) onComplete.run(); + this.sendLUOpened(createdUDS); + }, this::sendError); + + }); + } + + + public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO) { + if (this.mCurrentMtbColt == null) return; + + BigDecimal totalQtaDoc = pickingObjectDTO.getSitBollaAccettazione().getQtaDoc(); + BigDecimal totalNumCnfDoc = pickingObjectDTO.getSitBollaAccettazione().getNumCnfDoc(); + BigDecimal qtaCnfDoc = pickingObjectDTO.getSitBollaAccettazione().getQtaCnfDoc(); + + AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal(); + AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal(); + + Stream.of(pickingObjectDTO.getWithdrawMtbColrs()) + .forEach(row -> { + numCnfWithdrawRows.addAndGet(row.getNumCnf()); + qtaColWithdrawRows.addAndGet(row.getQtaCol()); + }); + + BigDecimal numCnfDaEvadere = pickingObjectDTO.getSitBollaAccettazione().getNumCnfDaAccettare().subtract(numCnfWithdrawRows.getBigDecimalValue()); + BigDecimal qtaDaEvadere = pickingObjectDTO.getSitBollaAccettazione().getQtaDaAccettare().subtract(qtaColWithdrawRows.getBigDecimalValue()); + BigDecimal qtaCnfDaEvadere = qtaCnfDoc; + + numCnfDaEvadere = UtilityBigDecimal.getGreaterBetween(numCnfDaEvadere, BigDecimal.ZERO); + qtaDaEvadere = UtilityBigDecimal.getGreaterBetween(qtaDaEvadere, BigDecimal.ZERO); + + BigDecimal numCnfDaPrelevare = null; + BigDecimal qtaColDaPrelevare = null; + BigDecimal qtaCnfDaPrelevare = null; + + String partitaMag = null; + LocalDate dataScad = null; + + if (pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getManualPickDTO() != null) { + //Oppure le info del barcode scansionato + PickDataDTO.ManualPickDTO manualPickDTO = pickingObjectDTO.getTempPickData().getManualPickDTO(); + MtbAart mtbAart = pickingObjectDTO.getMtbAart(); + + + qtaColDaPrelevare = manualPickDTO.getQtaTot(); + numCnfDaPrelevare = manualPickDTO.getNumCnf(); + + if (mtbAart.isFlagQtaCnfFissaBoolean()) { + qtaCnfDaPrelevare = mtbAart.getQtaCnf(); + + if (manualPickDTO.isEanPeso()) { + if (mtbAart.getUntMisRifPeso() == MtbAart.UntMisRifPesoEnum.M) { + if (UtilityBigDecimal.equalsTo(mtbAart.getPesoKg(), BigDecimal.ZERO)) { + this.sendError(new InvalidPesoKGException()); + } else { + qtaColDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, mtbAart.getPesoKg()); + } + } + } + } else if (qtaColDaPrelevare != null && numCnfDaPrelevare != null) { + qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare); + } + + + if (qtaColDaPrelevare != null && numCnfDaPrelevare == null) { + numCnfDaPrelevare = UtilityBigDecimal.divideAndRoundToInteger(qtaColDaPrelevare, mtbAart.getQtaCnf()); + + if (!mtbAart.isFlagQtaCnfFissaBoolean()) { + if (UtilityBigDecimal.equalsTo(numCnfDaPrelevare, BigDecimal.ZERO)) + numCnfDaPrelevare = BigDecimal.ONE; + qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare); + } + } else if (numCnfDaPrelevare != null && qtaColDaPrelevare == null) { + qtaCnfDaPrelevare = mtbAart.getQtaCnf(); + qtaColDaPrelevare = UtilityBigDecimal.multiply(numCnfDaPrelevare, qtaCnfDaPrelevare); + } + + if (manualPickDTO.getMtbPartitaMag() != null) { + partitaMag = manualPickDTO.getMtbPartitaMag().getPartitaMag(); + dataScad = manualPickDTO.getMtbPartitaMag().getDataScad(); + } + } + + BigDecimal initialNumCnf; + BigDecimal initialQtaCnf; + BigDecimal initialQtaTot; + + if (qtaColDaPrelevare != null) { + initialNumCnf = numCnfDaPrelevare; + initialQtaCnf = qtaCnfDaPrelevare; + initialQtaTot = qtaColDaPrelevare; + + } else { + initialNumCnf = totalNumCnfDoc; + initialQtaCnf = qtaCnfDoc; + initialQtaTot = totalQtaDoc; + } + + if (!this.mUseQtaBolla && + UtilityBigDecimal.greaterThan(pickingObjectDTO.getMtbAart().getColliPedana(), BigDecimal.ZERO) && + UtilityBigDecimal.greaterThan(initialNumCnf, pickingObjectDTO.getMtbAart().getColliPedana())) { + initialNumCnf = pickingObjectDTO.getMtbAart().getColliPedana(); + initialQtaTot = initialNumCnf.multiply(initialQtaCnf); + } + + if (dataScad == null && pickingObjectDTO.getMtbAart().getGgScadPartita() != null && pickingObjectDTO.getMtbAart().getGgScadPartita() > 0) { + dataScad = UtilityDate.getNow(); + dataScad.plusDays(pickingObjectDTO.getMtbAart().getGgScadPartita()); + } + + if (partitaMag == null && dataScad == null) { + HistoryMtbAartDTO historyMtbAartDTO = this.getHistoryItemIfExists(pickingObjectDTO.getMtbAart().getCodMart()); + + if (historyMtbAartDTO != null) { + partitaMag = historyMtbAartDTO.getPartitaMag(); + dataScad = historyMtbAartDTO.getDataScad(); + } + } + + this.sendOnItemDispatched( + pickingObjectDTO, + pickingObjectDTO.getMtbAart(), + initialNumCnf, initialQtaCnf, initialQtaTot, + qtaDaEvadere, + numCnfDaEvadere, + qtaCnfDaEvadere, + qtaColDaPrelevare, + numCnfDaPrelevare, + qtaCnfDaPrelevare, + null, + null, + null, + partitaMag, + dataScad, + true, + (pickedQuantityDTO, shouldCloseLU) -> { + this.saveNewRow(pickingObjectDTO, + pickedQuantityDTO.getNumCnf(), + pickedQuantityDTO.getQtaCnf(), + pickedQuantityDTO.getQtaTot(), + pickedQuantityDTO.getPartitaMag(), + pickedQuantityDTO.getDataScad(), + shouldCloseLU); + }); + + } + + + public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) { + if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) { + resetMatchedRows(); + + if (shouldCloseLU) closeLU(); + return; + } + + this.sendOnLoadingStarted(); + + + var clonedTargetMtbColt = (MtbColt) mCurrentMtbColt.clone(); + clonedTargetMtbColt.setMtbColr(null); + + var insertUDCRowRequestDto = new InsertUDCRowRequestDTO() + .setCodMart(pickingObjectDTO.getMtbAart().getCodMart()) + .setQtaTot(qtaTot) + .setQtaCnf(qtaCnf) + .setNumCnf(numCnf) + .setPartitaMag(partitaMag) +// .setCodJcom(pickingObjectDTO.getSitBollaAccettazione().getCodJcom()) + .setDataDoc(pickingObjectDTO.getSitBollaAccettazione().getDataDoc()) + .setNumDoc(pickingObjectDTO.getSitBollaAccettazione().getNumDoc()) + .setTargetMtbColt(clonedTargetMtbColt); + + if (dataScad != null) + insertUDCRowRequestDto + .setDataScad(dataScad); + + mColliCaricoRESTConsumer.insertUDCRow(insertUDCRowRequestDto, insertedMtbColr -> { + this.addHistoryItem(insertedMtbColr); + + insertedMtbColr + .setUntMis(pickingObjectDTO.getMtbAart().getUntMis()) + .setMtbAart(pickingObjectDTO.getMtbAart()); + + pickingObjectDTO.getWithdrawMtbColrs().add(insertedMtbColr); + mCurrentMtbColt.getMtbColr().add(insertedMtbColr); + + //Chiamato removeListFilter perché cosi mi cancella tutti i dati di pick temporanei + resetMatchedRows(); + + this.sendOnRowSaved(); + this.sendOnLoadingEnded(); + + if (shouldCloseLU) closeLU(); + + }, this::sendError); + + } + + public void dispatchRowEdit(MtbColr mtbColrToEdit) { + final PickingObjectDTO pickingObjectDTO = new PickingObjectDTO() + .setMtbAart(mtbColrToEdit.getMtbAart()); + + this.sendOnItemDispatched( + pickingObjectDTO, + pickingObjectDTO.getMtbAart(), + mtbColrToEdit.getNumCnf(), + mtbColrToEdit.getQtaCnf(), + mtbColrToEdit.getQtaCol(), + null, + null, + null, + null, null, null, + null, null, null, + mtbColrToEdit.getPartitaMag(), + mtbColrToEdit.getDataScadPartita(), + true, + (pickedQuantityDTO, shouldCloseLU) -> { + + this.saveEditedRow(mtbColrToEdit, + pickedQuantityDTO.getNumCnf(), + pickedQuantityDTO.getQtaCnf(), + pickedQuantityDTO.getQtaTot(), + pickedQuantityDTO.getPartitaMag(), + pickedQuantityDTO.getDataScad(), + shouldCloseLU); + }); + } + + private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) { + this.sendOnLoadingStarted(); + + MtbColr mtbColrClone = (MtbColr) mtbColrToUpdate.clone(); + mtbColrClone.setMtbAart(null) + .setMtbPartitaMag(null); + + var editUDCRowRequest = new EditUDCRowRequestDTO() + .setSourceMtbColr(mtbColrClone) + .setNewNumCnf(numCnf) + .setNewQtaCnf(qtaCnf) + .setNewQtaTot(qtaTot) + .setNewPartitaMag(partitaMag); + + if (dataScad != null) + editUDCRowRequest + .setNewDataScad(dataScad); + + + this.mColliCaricoRESTConsumer.editUDCRow(editUDCRowRequest, (editedMtbColr) -> { + + this.addHistoryItem(editedMtbColr); + + Optional pickingObjectDTO = Stream.of(this.mPickingList.getValue()) + .filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToUpdate)) + .findSingle(); + + editedMtbColr + .setUntMis(mtbColrToUpdate.getUntMis()) + .setMtbAart(mtbColrToUpdate.getMtbAart()); + + if (pickingObjectDTO.isPresent()) { + pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToUpdate); + pickingObjectDTO.get().getWithdrawMtbColrs().add(editedMtbColr); + } + + this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate); + this.mCurrentMtbColt.getMtbColr().add(editedMtbColr); + + //Chiamato removeListFilter perché cosi mi cancella tutti i dati di pick temporanei + resetMatchedRows(); + + this.sendOnRowSaved(); + this.sendOnLoadingEnded(); + + if (shouldCloseLU) closeLU(); + }, this::sendError); + } + + public void deleteRow(MtbColr mtbColrToDelete) { + this.sendMtbColrDeleteRequest(shouldDelete -> { + + if (!shouldDelete) + return; + + this.sendOnLoadingStarted(); + + var deleteUDCRowRequest = new DeleteUDCRowRequestDTO() + .setMtbColrToDelete(mtbColrToDelete); + + this.mColliCaricoRESTConsumer.deleteUDCRow(deleteUDCRowRequest, + () -> { + Optional pickingObjectDTO = Stream.of(this.mPickingList.getValue()) + .filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToDelete)) + .findSingle(); + + if (pickingObjectDTO.isPresent()) { + pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToDelete); + } + + this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete); + + this.resetMatchedRows(); + this.sendOnRowSaved(); + this.sendOnLoadingEnded(); + }, this::sendError); + + }); + } + + public void closeLU() { + if (mCurrentMtbColt == null) return; + + this.sendOnLoadingStarted(); + + mColliMagazzinoRESTConsumer.canULBeDeleted(mCurrentMtbColt, canBeDeleted -> { + if (canBeDeleted) { + deleteLU(() -> { + this.sendLUClosed(); + this.sendOnLoadingEnded(); + }); + } else { + CloseUDCRequestDTO closeUDCRequestDTO = new CloseUDCRequestDTO() + .setMtbColt(mCurrentMtbColt); + mColliCaricoRESTConsumer.closeUDC(closeUDCRequestDTO, closeUDCResponse -> { + + Runnable onVersamentoCompleted = () -> { + if (!mCurrentMtbColt.getDisablePrint()) { + printCollo(this::postCloseOperations); + } else { + postCloseOperations(); + } + + this.sendLUClosed(); + this.sendOnLoadingEnded(); + }; + + sendVersamentoAutomaticoULRequest(response -> { + if (response) { + versaAutomaticamenteUL(onVersamentoCompleted); + } else { + onVersamentoCompleted.run(); + } + }); + + + }, this::sendError); + } + }, this::sendError); + } + + public void versaAutomaticamenteUL(Runnable onComplete) { + if (mCurrentMtbColt == null) return; + + mColliMagazzinoRESTConsumer.versamentoAutomaticoUL(mCurrentMtbColt, versamentoResult -> { + this.notifyVersamentoAutomaticoResult(versamentoResult, onComplete); + }, this::sendError); + } + + + private void printCollo(Runnable onComplete) { + + MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone(); + cloneMtbColt.setGestione(cloneMtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE ? GestioneEnum.PRODUZIONE : cloneMtbColt.getGestioneEnum()); + + var printUDSRequestDto = new PrintULRequestDTO() + .setMtbColt(cloneMtbColt); + + this.mColliMagazzinoRESTConsumer.printUL(printUDSRequestDto, onComplete, + ex -> this.sendLUPrintError(ex, onComplete)); + } + + private void postCloseOperations() { + this.mCurrentMtbColt = null; + this.sendLUClosed(); + this.sendOnLoadingEnded(); + } + + private void deleteLU(Runnable onComplete) { + DeleteULRequestDTO deleteULRequestDTO = new DeleteULRequestDTO() + .setMtbColt(this.mCurrentMtbColt); + + mColliMagazzinoRESTConsumer.deleteUL(deleteULRequestDTO, () -> { + this.mCurrentMtbColt = null; + + if (onComplete != null) onComplete.run(); + }, this::sendError); + } + + public void resetMatchedRows() { + for (PickingObjectDTO pickingObjectDTO : this.mPickingList.getValue()) { + pickingObjectDTO + .setTempPickData(null); + } + + this.mPickingList.postValue(this.mPickingList.getValue()); + } + + private void addHistoryItem(@NonNull MtbColr mtbColr) { + Optional optional = Stream.of(this.mHistoryUsedAarts) + .filter(x -> x.getCodMart().equalsIgnoreCase(mtbColr.getCodMart())) + .findFirst(); + + if (optional.isPresent()) { + optional.get() + .setPartitaMag(mtbColr.getPartitaMag()) + .setDataScad(mtbColr.getDataScadPartita()); + } else { + this.mHistoryUsedAarts.add(new HistoryMtbAartDTO() + .setCodMart(mtbColr.getCodMart()) + .setPartitaMag(mtbColr.getPartitaMag()) + .setDataScad(mtbColr.getDataScadPartita())); + } + } + + private HistoryMtbAartDTO getHistoryItemIfExists(@NonNull String codMart) { + Optional optional = Stream.of(this.mHistoryUsedAarts) + .filter(x -> x.getCodMart().equalsIgnoreCase(codMart)) + .findFirst(); + + return optional.isPresent() ? optional.get() : null; + } + + private void sendOnLoadingStarted() { + if (this.mListener != null) mListener.onLoadingStarted(); + } + + private void sendOnLoadingEnded() { + if (this.mListener != null) mListener.onLoadingEnded(); + } + + private void sendVersamentoAutomaticoULRequest(RunnableArgs onComplete) { + if (this.mListener != null) this.mListener.onVersamentoAutomaticoULRequest(onComplete); + } + + private void sendOnInfoAggiuntiveRequest(RunnableArgss onComplete) { + if (this.mListener != null) this.mListener.onInfoAggiuntiveRequest(onComplete); + } + + private void sendError(Exception ex) { + if (this.mListener != null) mListener.onError(ex); + } + + private void sendLUOpened(MtbColt mtbColt) { + if (this.mListener != null) mListener.onLUOpened(mtbColt); + } + + private void sendLUClosed() { + if (this.mListener != null) mListener.onLUClosed(); + } + + private void sendLUSuccessfullyPrinted() { + if (this.mListener != null) mListener.onLUSuccessullyPrinted(); + } + + private void sendLUPrintError(Exception ex, Runnable onComplete) { + if (this.mListener != null) mListener.onLUPrintError(ex, onComplete); + } + + private void sendOnItemDispatched(PickingObjectDTO pickingObjectDTO, + MtbAart mtbAart, + BigDecimal initialNumCnf, + BigDecimal initialQtaCnf, + BigDecimal initialQtaTot, + BigDecimal totalQtaOrd, + BigDecimal totalNumCnfOrd, + BigDecimal qtaCnfOrd, + BigDecimal totalQtaToBeTaken, + BigDecimal totalNumCnfToBeTaken, + BigDecimal qtaCnfToBeTaken, + BigDecimal totalQtaAvailable, + BigDecimal totalNumCnfAvailable, + BigDecimal qtaCnfAvailable, + String partitaMag, + LocalDate dataScad, + boolean canPartitaMagBeChanged, + RunnableArgss onComplete) { + if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO, + mtbAart, + initialNumCnf, + initialQtaCnf, + initialQtaTot, + totalQtaOrd, + totalNumCnfOrd, + qtaCnfOrd, + totalQtaToBeTaken, + totalNumCnfToBeTaken, + qtaCnfToBeTaken, + totalQtaAvailable, + totalNumCnfAvailable, + qtaCnfAvailable, + partitaMag, + dataScad, + canPartitaMagBeChanged, + true, + onComplete); + } + + + private void sendOnRowSaved() { + if (this.mListener != null) mListener.onRowSaved(); + } + + private void sendFilterCodMartApplied(String codMart) { + if (this.mListener != null) mListener.onFilterCodMartApplied(codMart); + } + + private void sendFilterPosizioneApplied(String posizione) { + if (this.mListener != null) mListener.onFilterPosizioneApplied(posizione); + } + + private void sendMtbColrDeleteRequest(RunnableArgs onComplete) { + if (this.mListener != null) mListener.onMtbColrDeleteRequest(onComplete); + } + + private void notifyVersamentoAutomaticoResult(VersamentoAutomaticoULResponseDTO versamentoAutomaticoULResponseDTO, Runnable onComplete) { + if (this.mListener != null) + mListener.onULVersata(versamentoAutomaticoULResponseDTO, onComplete); + } + + public AccettazioneBollaPickingViewModel setListeners(Listener listener) { + this.mListener = listener; + return this; + } + + + + + public interface Listener extends ILoadingListener, ILUPrintListener, ILUBaseOperationsListener { + + void onVersamentoAutomaticoULRequest(RunnableArgs onComplete); + + void onInfoAggiuntiveRequest(RunnableArgss onComplete); + + void onError(Exception ex); + + void onItemDispatched(PickingObjectDTO pickingObjectDTO, + MtbAart mtbAart, + BigDecimal initialNumCnf, + BigDecimal initialQtaCnf, + BigDecimal initialQtaTot, + BigDecimal totalQtaOrd, + BigDecimal totalNumCnfOrd, + BigDecimal qtaCnfOrd, + BigDecimal totalQtaToBeTaken, + BigDecimal totalNumCnfToBeTaken, + BigDecimal qtaCnfToBeTaken, + BigDecimal totalQtaAvailable, + BigDecimal totalNumCnfAvailable, + BigDecimal qtaCnfAvailable, + String partitaMag, + LocalDate dataScad, + boolean canPartitaMagBeChanged, + boolean canOverflowQuantity, + RunnableArgss onComplete); + + void onFilterCodMartApplied(String codMartToFilter); + + void onFilterPosizioneApplied(String posizioneToFilter); + + void onULVersata(VersamentoAutomaticoULResponseDTO versamentoAutomaticoULResponseDTO, Runnable onComplete); + + } + +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/AccettazioneBollaPickingOrderBy.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/AccettazioneBollaPickingOrderBy.java new file mode 100644 index 00000000..5a24494e --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/AccettazioneBollaPickingOrderBy.java @@ -0,0 +1,30 @@ +package it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto; + +public class AccettazioneBollaPickingOrderBy { + + public static String[] descriptions = new String[] { + "Cod articolo fornitore", + "Descrizione articolo", + }; + + public enum Enum { + COD_ART_FOR(0), + DESCR_ART(1); + + + private int val; + Enum(int val) { + this.val = val; + } + public int getVal() { + return this.val; + } + + public static AccettazioneBollaPickingOrderBy.Enum fromInt(int val) { + for (AccettazioneBollaPickingOrderBy.Enum b : AccettazioneBollaPickingOrderBy.Enum.values()) { + if (b.val == val) return b; + } + return null; + } + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/PickingObjectDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/PickingObjectDTO.java new file mode 100644 index 00000000..898ce66b --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/PickingObjectDTO.java @@ -0,0 +1,64 @@ +package it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto; + +import java.util.ArrayList; +import java.util.List; + +import it.integry.integrywmsnative.core.model.MtbAart; +import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.model.dto.PickDataDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO; + +public class PickingObjectDTO { + private SitBollaAccettazioneDTO sitBollaAccettazione; + private MtbAart mtbAart; + + private PickDataDTO tempPickData; + private List withdrawMtbColrs = new ArrayList<>(); + + private boolean hidden = false; + + public SitBollaAccettazioneDTO getSitBollaAccettazione() { + return sitBollaAccettazione; + } + + public PickingObjectDTO setSitBollaAccettazione(SitBollaAccettazioneDTO sitBollaAccettazione) { + this.sitBollaAccettazione = sitBollaAccettazione; + return this; + } + + public MtbAart getMtbAart() { + return mtbAart; + } + + public PickingObjectDTO setMtbAart(MtbAart mtbAart) { + this.mtbAart = mtbAart; + return this; + } + + public PickDataDTO getTempPickData() { + return tempPickData; + } + + public PickingObjectDTO setTempPickData(PickDataDTO tempPickData) { + this.tempPickData = tempPickData; + return this; + } + + public List getWithdrawMtbColrs() { + return withdrawMtbColrs; + } + + public PickingObjectDTO setWithdrawMtbColrs(List withdrawMtbColrs) { + this.withdrawMtbColrs = withdrawMtbColrs; + return this; + } + + public boolean isHidden() { + return hidden; + } + + public PickingObjectDTO setHidden(boolean hidden) { + this.hidden = hidden; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO.java new file mode 100644 index 00000000..52b4bc97 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO.java @@ -0,0 +1,19 @@ +package it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto; + +import java.util.List; + +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO; + +public class RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO { + + private List bolle; + + public List getBolle() { + return bolle; + } + + public RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO setBolle(List bolle) { + this.bolle = bolle; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO.java new file mode 100644 index 00000000..699cecdd --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO.java @@ -0,0 +1,19 @@ +package it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto; + +import java.util.List; + +import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO; + +public class RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO { + + private List udcList; + + public List getUdcList() { + return udcList; + } + + public RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO setUdcList(List udcList) { + this.udcList = udcList; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumer.java new file mode 100644 index 00000000..709e3d94 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumer.java @@ -0,0 +1,50 @@ +package it.integry.integrywmsnative.gest.accettazione_bolla_picking.rest; + +import java.util.ArrayList; +import java.util.List; + +import javax.inject.Inject; +import javax.inject.Singleton; + +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.rest.RESTBuilder; +import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer; +import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; +import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO; +import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +@Singleton +public class AccettazioneBollaPickingRESTConsumer extends _BaseRESTConsumer { + + @Inject + public AccettazioneBollaPickingRESTConsumer() { + } + + + public void retrieveAlreadyRegisteredUDC(List bolle, RunnableArgs> onComplete, RunnableArgs onFailed) { + AccettazioneBollaPickingRESTConsumerService service = RESTBuilder.getService(AccettazioneBollaPickingRESTConsumerService.class); + + var request = new RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO() + .setBolle(bolle); + + service.retrieveAlreadyRegisteredUDC(request) + .enqueue(new Callback<>() { + @Override + public void onResponse(Call> call, Response> response) { + analyzeAnswer(response, "retrieveAlreadyRegisteredUDC", + data -> onComplete.run(data.getUdcList() == null ? new ArrayList<>() : data.getUdcList()), + onFailed); + } + + @Override + public void onFailure(Call> call, Throwable t) { + onFailed.run(new Exception(t)); + } + }); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumerService.java new file mode 100644 index 00000000..5d5316db --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumerService.java @@ -0,0 +1,15 @@ +package it.integry.integrywmsnative.gest.accettazione_bolla_picking.rest; + +import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO; +import retrofit2.Call; +import retrofit2.http.Body; +import retrofit2.http.POST; + +public interface AccettazioneBollaPickingRESTConsumerService { + + @POST("wms/accettazione-bolla/retrieveAlreadyRegisteredUDC") + Call> retrieveAlreadyRegisteredUDC(@Body RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO RetrieveAlreadyRegisteredULAccettazioneBollaRequest); + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java new file mode 100644 index 00000000..30e8d9cd --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java @@ -0,0 +1,184 @@ +package it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui; + +import android.content.Context; +import android.graphics.Color; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.content.res.ResourcesCompat; +import androidx.databinding.ObservableArrayList; +import androidx.databinding.ObservableList; +import androidx.recyclerview.widget.RecyclerView; + +import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter; + +import java.util.ArrayList; +import java.util.List; + +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.databinding.AccettazioneBollaPickingMainListGroupHeaderBinding; +import it.integry.integrywmsnative.databinding.AccettazioneBollaPickingMainListGroupItemBinding; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO; + +public class AccettazioneBollaPickingListAdapter extends SectionedRecyclerViewAdapter { + + private final Context mContext; + private final boolean mShowSecondaryUntMis; + private final List mDataset = new ArrayList<>(); + + private RunnableArgs mOnItemClicked; + + static class SubheaderHolder extends RecyclerView.ViewHolder { + + AccettazioneBollaPickingMainListGroupHeaderBinding mBinding; + + SubheaderHolder(AccettazioneBollaPickingMainListGroupHeaderBinding binding) { + super(binding.getRoot()); + this.mBinding = binding; + } + + } + + static class SingleItemViewHolder extends RecyclerView.ViewHolder { + + AccettazioneBollaPickingMainListGroupItemBinding mBinding; + + SingleItemViewHolder(AccettazioneBollaPickingMainListGroupItemBinding binding) { + super(binding.getRoot()); + this.mBinding = binding; + } + } + + + public AccettazioneBollaPickingListAdapter(AppCompatActivity context, ObservableArrayList mutableDataSet, boolean showSecondaryUntMis) { + this.mContext = context; + this.mShowSecondaryUntMis = showSecondaryUntMis; + + mutableDataSet.addOnListChangedCallback(new OnListGeneralChangedCallback() { + @Override + public void onChanged(ObservableList sender) { + mDataset.clear(); + mDataset.addAll(sender); + notifyDataSetChanged(); + notifyDataChanged(); + } + }); + } + + public void setOnItemClicked(RunnableArgs onItemClicked) { + this.mOnItemClicked = onItemClicked; + } + + + @Override + public AccettazioneBollaPickingListAdapter.SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) { + AccettazioneBollaPickingMainListGroupHeaderBinding binding = AccettazioneBollaPickingMainListGroupHeaderBinding.inflate(LayoutInflater.from(mContext), parent, false); + return new AccettazioneBollaPickingListAdapter.SubheaderHolder(binding); + } + + @Override + public AccettazioneBollaPickingListAdapter.SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) { + AccettazioneBollaPickingMainListGroupItemBinding binding = AccettazioneBollaPickingMainListGroupItemBinding.inflate(LayoutInflater.from(mContext), parent, false); + return new AccettazioneBollaPickingListAdapter.SingleItemViewHolder(binding); + } + + + @Override + public void onBindSubheaderViewHolder(AccettazioneBollaPickingListAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) { + AccettazioneBollaPickingListModel pickingObjectDTO = this.mDataset.get(nextItemPosition); + + subheaderHolder.mBinding.groupTitle.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getGroupTitle()) ? View.GONE : View.VISIBLE); + subheaderHolder.mBinding.groupTitle.setText(pickingObjectDTO.getGroupTitle()); + } + + @Override + public void onBindItemViewHolder(final AccettazioneBollaPickingListAdapter.SingleItemViewHolder holder, final int position) { + AccettazioneBollaPickingListModel pickingObjectDTO = this.mDataset.get(position); + + if (pickingObjectDTO.getQtaEvasa().subtract(pickingObjectDTO.getQtaTot()).floatValue() >= 0) { + holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha)); + } else if (pickingObjectDTO.getQtaEvasa().floatValue() > 0) { + holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha)); + } else if (position % 2 == 1) { + holder.mBinding.getRoot().setBackgroundColor(Color.WHITE); + } else { + holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG)); + } + + holder.mBinding.deactivatedOverBg.setVisibility(!pickingObjectDTO.isActive() ? View.VISIBLE : View.GONE); + holder.mBinding.getRoot().setAlpha(!pickingObjectDTO.isActive() ? 0.8f : 1); + holder.mBinding.qtaEvasa.setTextColor(ResourcesCompat.getColor(mContext.getResources(), !pickingObjectDTO.isActive() ? R.color.gray_600 : R.color.green_700, null)); + + holder.mBinding.titolo.setText(pickingObjectDTO.getTitolo()); + holder.mBinding.titolo.setVisibility(pickingObjectDTO.isTitoloPresente() ? View.VISIBLE : View.GONE); + + + holder.mBinding.descrizione.setText(pickingObjectDTO.getDescrizione()); + holder.mBinding.descrizione.setTextColor(pickingObjectDTO.isDescrizionePresente() ? Color.BLACK : Color.GRAY); + + + holder.mBinding.badge1.setBackground(ResourcesCompat.getDrawable(mContext.getResources(), !pickingObjectDTO.isActive() ? R.drawable.badge_round_corner : R.drawable.badge1_round_corner, null)); + holder.mBinding.badge1.setText(pickingObjectDTO.getBadge1()); + holder.mBinding.badge1.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getBadge1()) ? View.GONE : View.VISIBLE); + + holder.mBinding.badge2.setText(pickingObjectDTO.getBadge2()); + holder.mBinding.badge2.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getBadge2()) ? View.GONE : View.VISIBLE); + + holder.mBinding.badge2Icon.setVisibility(pickingObjectDTO.getBadge2Icon() == null ? View.GONE : View.VISIBLE); + if(pickingObjectDTO.getBadge2Icon() != null) holder.mBinding.badge2Icon.setImageResource(pickingObjectDTO.getBadge2Icon()); + + holder.mBinding.badge3.setText(pickingObjectDTO.getPosizione()); + holder.mBinding.badge3Layout.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getPosizione()) ? View.GONE : View.VISIBLE); + + + holder.mBinding.qtaEvasa.setText(UtilityNumber.decimalToString(pickingObjectDTO.getQtaEvasa())); + holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(pickingObjectDTO.getQtaTot())); + + holder.mBinding.untMis.setText(pickingObjectDTO.getUntMis()); + holder.mBinding.untMis.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getUntMis()) ? View.GONE : View.VISIBLE); + + //Secondary Unt Mis + holder.mBinding.secondaryUntMis.setVisibility(mShowSecondaryUntMis ? View.VISIBLE : View.GONE); + + if(mShowSecondaryUntMis) { + holder.mBinding.secQtaEvasa.setText(UtilityNumber.decimalToString(pickingObjectDTO.getSecQtaEvasa())); + holder.mBinding.secQtaTot.setText(UtilityNumber.decimalToString(pickingObjectDTO.getSecQtaTot())); + + holder.mBinding.secUntMis.setText(pickingObjectDTO.getSecUntMis()); + holder.mBinding.secUntMis.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getSecUntMis()) ? View.GONE : View.VISIBLE); + } + + holder.mBinding.getRoot().setOnClickListener(v -> { + if (this.mOnItemClicked != null) + this.mOnItemClicked.run(pickingObjectDTO.getOriginalModel()); + }); + } + + @Override + public boolean onPlaceSubheaderBetweenItems(int position) { + + if (getItemSize() == 1) return true; + else if (getItemSize() > 1) { + AccettazioneBollaPickingListModel compare1 = this.mDataset.get(position); + AccettazioneBollaPickingListModel compare2 = this.mDataset.get(position + 1); + + if (UtilityString.equalsIgnoreCase(compare1.getGroupTitle(), compare2.getGroupTitle())) { + return false; + } + } + + return true; + } + + @Override + public int getItemSize() { + return mDataset.size(); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListModel.java new file mode 100644 index 00000000..1a612f6e --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListModel.java @@ -0,0 +1,210 @@ +package it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui; + +import androidx.annotation.DrawableRes; + +import org.jetbrains.annotations.NotNull; + +import java.math.BigDecimal; + +import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO; + +public class AccettazioneBollaPickingListModel implements Cloneable { + + private String groupTitle; + private String titolo; + + private String badge1; + private @DrawableRes Integer badge2Icon; + private String badge2; + + private String descrizione; + private String subDescrizione1; + private String subDescrizione2; + private BigDecimal qtaEvasa; + private BigDecimal qtaTot; + private String untMis; + private BigDecimal secQtaEvasa; + private BigDecimal secQtaTot; + private String secUntMis; + + private String posizione; + + private boolean active; + + private PickingObjectDTO mOriginalModel; + + + + @NotNull + @Override + public Object clone() { + try { + return super.clone(); + } catch (Exception ex) { + return null; + } + } + + public String getGroupTitle() { + return groupTitle; + } + + public AccettazioneBollaPickingListModel setGroupTitle(String groupTitle) { + this.groupTitle = groupTitle; + return this; + } + + public boolean isTitoloPresente() { + return !UtilityString.isNullOrEmpty(titolo); + } + + public String getTitolo() { + return titolo; + } + + public AccettazioneBollaPickingListModel setTitolo(String titolo) { + this.titolo = titolo; + return this; + } + + public String getBadge1() { + return badge1; + } + + public AccettazioneBollaPickingListModel setBadge1(String badge1) { + this.badge1 = badge1; + return this; + } + + public @DrawableRes Integer getBadge2Icon() { + return badge2Icon; + } + + public AccettazioneBollaPickingListModel setBadge2Icon(@DrawableRes Integer badge2Icon) { + this.badge2Icon = badge2Icon; + return this; + } + + public String getBadge2() { + return badge2; + } + + public AccettazioneBollaPickingListModel setBadge2(String badge2) { + this.badge2 = badge2; + return this; + } + + public String getDescrizione() { + return descrizione; + } + + public AccettazioneBollaPickingListModel setDescrizione(String descrizione) { + this.descrizione = descrizione; + return this; + } + + public boolean isDescrizionePresente() { + return !UtilityString.isNullOrEmpty(descrizione); + } + + public String getSubDescrizione1() { + return subDescrizione1; + } + + public AccettazioneBollaPickingListModel setSubDescrizione1(String subDescrizione1) { + this.subDescrizione1 = subDescrizione1; + return this; + } + + public String getSubDescrizione2() { + return subDescrizione2; + } + + public AccettazioneBollaPickingListModel setSubDescrizione2(String subDescrizione2) { + this.subDescrizione2 = subDescrizione2; + return this; + } + + public BigDecimal getQtaEvasa() { + return qtaEvasa; + } + + public AccettazioneBollaPickingListModel setQtaEvasa(BigDecimal qtaEvasa) { + this.qtaEvasa = qtaEvasa; + return this; + } + + public BigDecimal getQtaTot() { + return qtaTot; + } + + public AccettazioneBollaPickingListModel setQtaTot(BigDecimal qtaTot) { + this.qtaTot = qtaTot; + return this; + } + + public String getUntMis() { + return untMis; + } + + public AccettazioneBollaPickingListModel setUntMis(String untMis) { + this.untMis = untMis; + return this; + } + + public BigDecimal getSecQtaEvasa() { + return secQtaEvasa; + } + + public AccettazioneBollaPickingListModel setSecQtaEvasa(BigDecimal secQtaEvasa) { + this.secQtaEvasa = secQtaEvasa; + return this; + } + + public BigDecimal getSecQtaTot() { + return secQtaTot; + } + + public AccettazioneBollaPickingListModel setSecQtaTot(BigDecimal secQtaTot) { + this.secQtaTot = secQtaTot; + return this; + } + + public String getSecUntMis() { + return secUntMis; + } + + public AccettazioneBollaPickingListModel setSecUntMis(String secUntMis) { + this.secUntMis = secUntMis; + return this; + } + + public String getPosizione() { + return posizione; + } + + public AccettazioneBollaPickingListModel setPosizione(String posizione) { + this.posizione = posizione; + return this; + } + + public boolean isActive() { + return active; + } + + public AccettazioneBollaPickingListModel setActive(boolean active) { + this.active = active; + return this; + } + + public PickingObjectDTO getOriginalModel() { + return mOriginalModel; + } + + public AccettazioneBollaPickingListModel setOriginalModel(PickingObjectDTO mOriginalModel) { + this.mOriginalModel = mOriginalModel; + return this; + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoFragment.java index c7d8fdd5..95ae7fdd 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoFragment.java @@ -73,7 +73,7 @@ public class MainAccettazioneOrdiniElencoFragment extends BaseFragment implement @Override public void onCreateActionBar(AppCompatTextView titleText, Context context) { mAppBarTitle = titleText; - mAppBarTitle.setText(context.getText(R.string.accettazione_title_fragment).toString()); + mAppBarTitle.setText(context.getText(R.string.accettazione_ordine_title_fragment).toString()); } @Override diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java index 6080c7f7..2e20aca7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java @@ -18,8 +18,8 @@ import com.annimon.stream.Stream; import com.tfb.fbtoast.FBToast; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Map; import java.util.Objects; @@ -52,11 +52,11 @@ 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.ActivityAccettazioneOrdineInevasoBinding; +import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO; import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO; import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO; import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.AccettazioneOrdineInevasoOrderBy; import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.PickingObjectDTO; -import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.RecoverMtbColtDTO; import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.AccettazionePickingFiltroOrdineViewModel; import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.FilterCodArtLayoutView; import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.FilterDescrLayoutView; @@ -142,14 +142,12 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A this.initRecyclerView(); this.initFilters(); - String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); boolean useQtaOrd = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd(); mViewModel.setListeners(this); mViewModel.init( mOrders, mSitArts, - codMdep, useQtaOrd); } @@ -675,10 +673,6 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A }); }; - public void removeListFilter() { - this.mViewModel.resetMatchedRows(); - } - public void createNewLU() { this.mBindings.accettazioneOrdineInevasoFab.close(true); @@ -707,12 +701,21 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A dialog.show(); } - public void startListaBancaliRegistratiActivity(ArrayList mtbColts) { + public void startListaBancaliRegistratiActivity(List mtbColts) { Intent myIntent = ListaBancaliActivity.createIntent(this, - Stream.of(mtbColts).map(x -> (MtbColt) x).toList(), - input -> ((RecoverMtbColtDTO) input).isFlagCanBeRecovered(), + + Stream.of(mtbColts) + .map(AlreadyRegisteredUDCDTO::getMtbColt) + .toList(), + + input -> Stream.of(mtbColts) + .filter(x -> x.getMtbColt() == input) + .findFirstOrElse(null) + .isCanBeRecovered(), + ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO)); + this.startActivityForResult(myIntent, PICK_UL_REQUEST); } @@ -785,7 +788,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A } @Override - public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, Date dataScad, boolean canPartitaMagBeChanged, boolean canOverflowQuantity, RunnableArgss onComplete) { + public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, LocalDate dataScad, boolean canPartitaMagBeChanged, boolean canOverflowQuantity, RunnableArgss onComplete) { DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO() .setMtbAart(mtbAart) .setInitialNumCnf(initialNumCnf) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java index 1854811f..08b6b78a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java @@ -8,10 +8,8 @@ import com.annimon.stream.Optional; import com.annimon.stream.Stream; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; import java.util.List; import javax.inject.Inject; @@ -57,12 +55,12 @@ import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO; import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO; import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO; import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.HistoryMtbAartDTO; import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.PickingObjectDTO; import it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest.AccettazioneOrdiniPickingRESTConsumer; -import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.RecoverMtbColtDTO; import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException; import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException; import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; @@ -108,7 +106,7 @@ public class AccettazioneOrdiniPickingViewModel { } - public void init(List orders, List sitArts, String codMdep, boolean useQtaOrd) { + public void init(List orders, List sitArts, boolean useQtaOrd) { this.mOrders = orders; this.mUseQtaOrd = useQtaOrd; @@ -182,7 +180,7 @@ public class AccettazioneOrdiniPickingViewModel { return mPickingList; } - public void retrieveExistentLU(RunnableArgs> onComplete) { + public void retrieveExistentLU(RunnableArgs> onComplete) { this.sendOnLoadingStarted(); this.mAccettazioneOrdiniPickingRESTConsumer.getBancaliGiaRegistrati(this.mOrders, mtbColtList -> { @@ -372,78 +370,6 @@ public class AccettazioneOrdiniPickingViewModel { public void createNewLU(Integer customNumCollo, String customSerCollo, boolean disablePrint, Runnable onComplete) { this.sendOnInfoAggiuntiveRequest((additionalNotes, tCol) -> { -// this.mGestSetupRESTConsumer.getValue("PICKING", "SETUP", "DEFAULT_POSIZIONE_COLLI_ACCETTAZIONE", defaultPosAccettazioneDTO -> { -// -// String defaultPosAccettazione = null; -// if (defaultPosAccettazioneDTO != null && !UtilityString.isNullOrEmpty(defaultPosAccettazioneDTO.value)) -// defaultPosAccettazione = defaultPosAccettazioneDTO.value; -// -// MtbColt mtbColt = new MtbColt(); -// mtbColt -// .initDefaultFields(defaultGestioneOfUL) -// .setAnnotazioni(additionalNotes) -// .setPosizione(defaultPosAccettazione) -// .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); -// -// if (tCol != null) { -// mtbColt.setCodTcol(tCol.getCodTcol()); -// mtbColt.setMtbTCol(tCol); -// } -// -// if (customNumCollo != null) { -// mtbColt.setNumCollo(customNumCollo); -// } -// -// if (!UtilityString.isNullOrEmpty(customSerCollo)) { -// mtbColt.setSerCollo(customSerCollo); -// } -// -// List codAnags = -// Stream.of(mOrders) -// .map(OrdineAccettazioneInevasoDTO::getCodAnagOrd) -// .distinct() -// .toList(); -// -// if (codAnags.size() == 1) { -// mtbColt.setCodAnag(codAnags.get(0)); -// } -// -// List rifOrds = -// Stream.of(mOrders) -// .map(OrdineAccettazioneInevasoDTO::getRifOrd) -// .distinct() -// .toList(); -// -// if (rifOrds.size() == 1) { -// mtbColt.setRifOrd(rifOrds.get(0)); -// } -// -// List numDataOrds = -// Stream.of(mOrders) -// .map(value -> value.getNumero() + value.getData()) -// .distinct() -// .toList(); -// -// if (numDataOrds.size() == 1) { -// mtbColt.setNumOrd(mOrders.get(0).getNumero()); -// mtbColt.setDataOrd(mOrders.get(0).getData()); -// } -// -// this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, savedMtbColt -> { -// mtbColt -// .setNumCollo(savedMtbColt.getNumCollo()) -// .setDataCollo(savedMtbColt.getDataColloS()) -// .setMtbColr(new ObservableArrayList<>()) -// .setDisablePrint(disablePrint); -// -// this.mCurrentMtbColt = mtbColt; -// -// if (onComplete != null) onComplete.run(); -// this.sendLUOpened(mtbColt); -// }, this::sendError); -// -// }, this::sendError); - final List orders = Stream.of(this.mOrders) .map(x -> new CreateUDCRequestOrderDTO() .setDataCons(x.getDataConsD() != null ? UtilityDate.toLocalDate(x.getDataConsD()) : null) @@ -502,7 +428,7 @@ public class AccettazioneOrdiniPickingViewModel { BigDecimal qtaCnfDaPrelevare = null; String partitaMag = null; - Date dataScad = null; + LocalDate dataScad = null; if (pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getManualPickDTO() != null) { //Oppure le info del barcode scansionato @@ -545,7 +471,7 @@ public class AccettazioneOrdiniPickingViewModel { if (manualPickDTO.getMtbPartitaMag() != null) { partitaMag = manualPickDTO.getMtbPartitaMag().getPartitaMag(); - dataScad = manualPickDTO.getMtbPartitaMag().getDataScadD(); + dataScad = manualPickDTO.getMtbPartitaMag().getDataScad(); } } @@ -572,11 +498,8 @@ public class AccettazioneOrdiniPickingViewModel { } if (dataScad == null && pickingObjectDTO.getMtbAart().getGgScadPartita() != null && pickingObjectDTO.getMtbAart().getGgScadPartita() > 0) { - dataScad = UtilityDate.getDateInstance(); - Calendar c = new GregorianCalendar(); - c.setTime(dataScad); - c.add(Calendar.DATE, pickingObjectDTO.getMtbAart().getGgScadPartita()); - dataScad = c.getTime(); + dataScad = UtilityDate.getNow(); + dataScad.plusDays(pickingObjectDTO.getMtbAart().getGgScadPartita()); } if (partitaMag == null && dataScad == null) { @@ -617,7 +540,7 @@ public class AccettazioneOrdiniPickingViewModel { } - public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) { + public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) { if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) { resetMatchedRows(); @@ -647,7 +570,7 @@ public class AccettazioneOrdiniPickingViewModel { if (dataScad != null) insertUDCRowRequestDto - .setDataScad(UtilityDate.toLocalDate(dataScad)); + .setDataScad(dataScad); mColliCaricoRESTConsumer.insertUDCRow(insertUDCRowRequestDto, insertedMtbColr -> { this.addHistoryItem(insertedMtbColr); @@ -688,7 +611,7 @@ public class AccettazioneOrdiniPickingViewModel { null, null, null, null, null, null, mtbColrToEdit.getPartitaMag(), - mtbColrToEdit.getDataScadPartitaD(), + mtbColrToEdit.getDataScadPartita(), true, (pickedQuantityDTO, shouldCloseLU) -> { @@ -702,7 +625,7 @@ public class AccettazioneOrdiniPickingViewModel { }); } - private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) { + private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) { this.sendOnLoadingStarted(); MtbColr mtbColrClone = (MtbColr) mtbColrToUpdate.clone(); @@ -718,7 +641,7 @@ public class AccettazioneOrdiniPickingViewModel { if (dataScad != null) editUDCRowRequest - .setNewDataScad(UtilityDate.toLocalDate(dataScad)); + .setNewDataScad(dataScad); this.mColliCaricoRESTConsumer.editUDCRow(editUDCRowRequest, (editedMtbColr) -> { @@ -878,12 +801,12 @@ public class AccettazioneOrdiniPickingViewModel { if (optional.isPresent()) { optional.get() .setPartitaMag(mtbColr.getPartitaMag()) - .setDataScad(mtbColr.getDataScadPartitaD()); + .setDataScad(mtbColr.getDataScadPartita()); } else { this.mHistoryUsedAarts.add(new HistoryMtbAartDTO() .setCodMart(mtbColr.getCodMart()) .setPartitaMag(mtbColr.getPartitaMag()) - .setDataScad(mtbColr.getDataScadPartitaD())); + .setDataScad(mtbColr.getDataScadPartita())); } } @@ -946,7 +869,7 @@ public class AccettazioneOrdiniPickingViewModel { BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, - Date dataScad, + LocalDate dataScad, boolean canPartitaMagBeChanged, RunnableArgss onComplete) { if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO, @@ -1020,7 +943,7 @@ public class AccettazioneOrdiniPickingViewModel { BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, - Date dataScad, + LocalDate dataScad, boolean canPartitaMagBeChanged, boolean canOverflowQuantity, RunnableArgss onComplete); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/HistoryMtbAartDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/HistoryMtbAartDTO.java index 1b02f6f0..47f9649b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/HistoryMtbAartDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/HistoryMtbAartDTO.java @@ -1,12 +1,12 @@ package it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto; -import java.util.Date; +import java.time.LocalDate; public class HistoryMtbAartDTO { private String codMart; private String partitaMag; - private Date dataScad; + private LocalDate dataScad; public String getCodMart() { return codMart; @@ -26,11 +26,11 @@ public class HistoryMtbAartDTO { return this; } - public Date getDataScad() { + public LocalDate getDataScad() { return dataScad; } - public HistoryMtbAartDTO setDataScad(Date dataScad) { + public HistoryMtbAartDTO setDataScad(LocalDate dataScad) { this.dataScad = dataScad; return this; } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/RecoverMtbColtDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/RecoverMtbColtDTO.java deleted file mode 100644 index d31552f9..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/RecoverMtbColtDTO.java +++ /dev/null @@ -1,17 +0,0 @@ -package it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto; - -import it.integry.integrywmsnative.core.model.MtbColt; - -public class RecoverMtbColtDTO extends MtbColt { - - private boolean flagCanBeRecovered; - - public boolean isFlagCanBeRecovered() { - return flagCanBeRecovered; - } - - public RecoverMtbColtDTO setFlagCanBeRecovered(boolean flagCanBeRecovered) { - this.flagCanBeRecovered = flagCanBeRecovered; - return this; - } -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/RetrieveAlreadyRegisteredULAccettazioneOrdineRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/RetrieveAlreadyRegisteredULAccettazioneOrdineRequestDTO.java new file mode 100644 index 00000000..2a6af5b0 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/RetrieveAlreadyRegisteredULAccettazioneOrdineRequestDTO.java @@ -0,0 +1,19 @@ +package it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto; + +import java.util.List; + +import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO; + +public class RetrieveAlreadyRegisteredULAccettazioneOrdineRequestDTO { + + private List ordini; + + public List getOrdini() { + return ordini; + } + + public RetrieveAlreadyRegisteredULAccettazioneOrdineRequestDTO setOrdini(List ordini) { + this.ordini = ordini; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/RetrieveAlreadyRegisteredULAccettazioneOrdineResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/RetrieveAlreadyRegisteredULAccettazioneOrdineResponseDTO.java new file mode 100644 index 00000000..314885f4 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/dto/RetrieveAlreadyRegisteredULAccettazioneOrdineResponseDTO.java @@ -0,0 +1,19 @@ +package it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto; + +import java.util.List; + +import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO; + +public class RetrieveAlreadyRegisteredULAccettazioneOrdineResponseDTO { + + private List udcList; + + public List getUdcList() { + return udcList; + } + + public RetrieveAlreadyRegisteredULAccettazioneOrdineResponseDTO setUdcList(List udcList) { + this.udcList = udcList; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/rest/AccettazioneOrdiniPickingRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/rest/AccettazioneOrdiniPickingRESTConsumer.java index 6987be41..1ec0f5ee 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/rest/AccettazioneOrdiniPickingRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/rest/AccettazioneOrdiniPickingRESTConsumer.java @@ -1,26 +1,26 @@ package it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest; -import com.annimon.stream.Stream; -import com.google.gson.reflect.TypeToken; - -import java.lang.reflect.Type; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import javax.inject.Inject; import javax.inject.Singleton; import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO; +import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; -import it.integry.integrywmsnative.core.utility.UtilityDate; -import it.integry.integrywmsnative.core.utility.UtilityLogger; -import it.integry.integrywmsnative.core.utility.UtilityQuery; +import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer; +import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO; -import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.RecoverMtbColtDTO; +import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.RetrieveAlreadyRegisteredULAccettazioneOrdineRequestDTO; +import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.RetrieveAlreadyRegisteredULAccettazioneOrdineResponseDTO; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; @Singleton -public class AccettazioneOrdiniPickingRESTConsumer { +public class AccettazioneOrdiniPickingRESTConsumer extends _BaseRESTConsumer { private final SystemRESTConsumer mSystemRestConsumer; @@ -29,115 +29,26 @@ public class AccettazioneOrdiniPickingRESTConsumer { this.mSystemRestConsumer = systemRESTConsumer; } - public void getBancaliGiaRegistrati(List ordiniToShow, RunnableArgs> onComplete, RunnableArgs onFailed) { - List> whereCondListMap = new ArrayList<>(); + public void getBancaliGiaRegistrati(List ordiniToShow, RunnableArgs> onComplete, RunnableArgs onFailed) { + AccettazioneOrdiniPickingRESTConsumerService service = RESTBuilder.getService(AccettazioneOrdiniPickingRESTConsumerService.class); - Stream - .of(ordiniToShow) - .distinctBy(x -> x.getData() + " " + x.getGestione() + " " + x.getNumero()) - .forEach(x -> { - try { - HashMap whereCondMap = new HashMap<>(); - whereCondMap.put("mtb_colr.data_ord", UtilityDate.recognizeDate(x.getData())); - whereCondMap.put("mtb_colr.gestione", x.getGestione().equalsIgnoreCase("P") ? "L" : x.getGestione()); - whereCondMap.put("mtb_colr.num_ord", x.getNumero()); + var request = new RetrieveAlreadyRegisteredULAccettazioneOrdineRequestDTO() + .setOrdini(ordiniToShow); - whereCondListMap.add(whereCondMap); - } catch (Exception ex) { - UtilityLogger.error(ex); + service.retrieveAlreadyRegisteredUDC(request) + .enqueue(new Callback<>() { + @Override + public void onResponse(Call> call, Response> response) { + analyzeAnswer(response, "retrieveAlreadyRegisteredUDC", + data -> onComplete.run(data.getUdcList() == null ? new ArrayList<>() : data.getUdcList()), + onFailed); + } + + @Override + public void onFailure(Call> call, Throwable t) { + onFailed.run(new Exception(t)); } }); - - - String sql = "SELECT DISTINCT CAST(CASE WHEN MAX(ISNULL(mtb_colr_scar.num_collo, 0)) = 0 THEN 1 ELSE 0 END AS BIT) AS flagCanBeRecovered, " + - " mtb_colt.gestione," + - " mtb_colt.data_collo," + - " mtb_colt.num_collo," + - " segno," + - " peso_kg," + - " lunghezza_cm," + - " larghezza_cm," + - " altezza_cm," + - " cod_anag," + - " cod_dtip," + - " mtb_colt.data_doc," + - " mtb_colt.ser_doc," + - " mtb_colt.num_doc," + - " rif_ord," + - " mtb_colt.ser_collo," + - " cod_tcol," + - " mtb_colt.data_ord," + - " mtb_colt.num_ord," + - " cod_vdes," + - " cod_mdep," + - " cod_vlis," + - " preparato_da," + - " ora_iniz_prep," + - " ora_fine_prep," + - " filtro_ordini," + - " annotazioni," + - " posizione," + - " cod_dtip_provv," + - " data_doc_provv," + - " ser_doc_provv," + - " num_doc_provv," + - " cod_jfas," + - " data_vers," + - " mtb_colt.peso_netto_kg " + - "FROM mtb_colt" + - " INNER JOIN mtb_colr ON " + - " mtb_colt.gestione = mtb_colr.gestione AND " + - " mtb_colt.ser_collo = mtb_colr.ser_collo AND " + - " mtb_colt.data_collo = mtb_colr.data_collo AND " + - " mtb_colt.num_collo = mtb_colr.num_collo " + - " LEFT OUTER JOIN mtb_colr mtb_colr_scar ON mtb_colr_scar.num_collo_rif = mtb_colr.num_collo AND " + - " mtb_colr_scar.gestione_rif = mtb_colr.gestione AND " + - " mtb_colr_scar.ser_collo_rif = mtb_colr.ser_collo AND " + - " mtb_colr_scar.data_collo_rif = mtb_colr.data_collo " + - " WHERE (" + UtilityQuery.concatFieldListInWhereCond(whereCondListMap) + ") " + - " AND mtb_colt.data_doc IS NULL " + - " GROUP BY mtb_colt.gestione," + - " mtb_colt.data_collo," + - " mtb_colt.num_collo," + - " segno," + - " peso_kg," + - " lunghezza_cm," + - " larghezza_cm," + - " altezza_cm," + - " cod_anag," + - " cod_dtip," + - " mtb_colt.data_doc," + - " mtb_colt.ser_doc," + - " mtb_colt.num_doc," + - " rif_ord," + - " mtb_colt.ser_collo," + - " cod_tcol," + - " mtb_colt.data_ord," + - " mtb_colt.num_ord," + - " cod_vdes," + - " cod_mdep," + - " cod_vlis," + - " preparato_da," + - " ora_iniz_prep," + - " ora_fine_prep," + - " filtro_ordini," + - " annotazioni," + - " posizione," + - " cod_dtip_provv," + - " data_doc_provv," + - " ser_doc_provv," + - " num_doc_provv," + - " cod_jfas," + - " data_vers," + - " mtb_colt.peso_netto_kg"; - - - Type typeOfObjectsList = new TypeToken>() { - }.getType(); - mSystemRestConsumer.>processSql(sql, typeOfObjectsList, value -> { - if (onComplete != null) onComplete.run(value); - }, onFailed); - } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/rest/AccettazioneOrdiniPickingRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/rest/AccettazioneOrdiniPickingRESTConsumerService.java new file mode 100644 index 00000000..a7ad61b9 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/rest/AccettazioneOrdiniPickingRESTConsumerService.java @@ -0,0 +1,15 @@ +package it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest; + +import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; +import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.RetrieveAlreadyRegisteredULAccettazioneOrdineRequestDTO; +import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.RetrieveAlreadyRegisteredULAccettazioneOrdineResponseDTO; +import retrofit2.Call; +import retrofit2.http.Body; +import retrofit2.http.POST; + +public interface AccettazioneOrdiniPickingRESTConsumerService { + + @POST("wms/accettazione/retrieveAlreadyRegisteredUDC") + Call> retrieveAlreadyRegisteredUDC(@Body RetrieveAlreadyRegisteredULAccettazioneOrdineRequestDTO retrieveAlreadyRegisteredULAccettazioneOrdineRequest); + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListAdapter.java index fb89d0ae..14eb404f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListAdapter.java @@ -94,8 +94,8 @@ public class AccettazioneOrdiniPickingListAdapter extends SectionedRecyclerViewA public void onBindSubheaderViewHolder(SubheaderHolder subheaderHolder, int nextItemPosition) { AccettazioneOrdiniPickingListModel pickingObjectDTO = this.mDataset.get(nextItemPosition); - subheaderHolder.mBinding.spedizioneGroupTitle.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getGroupTitle()) ? View.GONE : View.VISIBLE); - subheaderHolder.mBinding.spedizioneGroupTitle.setText(pickingObjectDTO.getGroupTitle()); + subheaderHolder.mBinding.groupTitle.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getGroupTitle()) ? View.GONE : View.VISIBLE); + subheaderHolder.mBinding.groupTitle.setText(pickingObjectDTO.getGroupTitle()); } @Override diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/ArtDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/ArtDTO.java index 71aa5b02..4d0a9db1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/ArtDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/ArtDTO.java @@ -1,6 +1,7 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.dto; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.Date; public class ArtDTO { @@ -25,7 +26,7 @@ public class ArtDTO { private String partitaMag; - private Date dataScad; + private LocalDate dataScad; private String systemNote; private String codAlis; @@ -110,11 +111,11 @@ public class ArtDTO { this.partitaMag = partitaMag; } - public Date getDataScad() { + public LocalDate getDataScad() { return dataScad; } - public void setDataScad(Date dataScad) { + public void setDataScad(LocalDate dataScad) { this.dataScad = dataScad; } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java index 0b1c0cae..7d60127d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java @@ -13,9 +13,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import com.annimon.stream.Stream; import java.math.BigDecimal; -import java.text.SimpleDateFormat; import java.util.Collections; -import java.util.Date; import java.util.List; import javax.inject.Inject; @@ -265,11 +263,11 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter .setCanPartitaMagBeChanged(flagTracciabilita) .setNumCnfEditable(false) .setSuggestPartitaMag(data -> { - Date dataScad = data.getDataScad(); + var dataScad = data.getDataScad(); + String partitaMag = null; - if (dataScad != null) { - partitaMag = new SimpleDateFormat("yyyymmdd").format(dataScad); - } + if (dataScad != null) partitaMag = UtilityDate.formatDate(dataScad, "yyyymmdd"); + return partitaMag; }); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java index db8fd627..2f1e5ded 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java @@ -18,8 +18,8 @@ import androidx.recyclerview.widget.LinearLayoutManager; import com.tfb.fbtoast.FBToast; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; -import java.util.Date; import java.util.List; import javax.inject.Inject; @@ -311,7 +311,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, String partitaMag, - Date dataScad, + LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, boolean canLUBeClosed, diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java index 22ef7672..f74233f3 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java @@ -5,8 +5,8 @@ import androidx.databinding.ObservableArrayList; import com.annimon.stream.Stream; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; -import java.util.Date; import java.util.Iterator; import java.util.List; @@ -344,7 +344,7 @@ public class PickingLiberoViewModel { BigDecimal initialQtaTot; String partitaMag = null; - Date dataScad = null; + LocalDate dataScad = null; if (pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getManualPickDTO() != null) { //Oppure le info del barcode scansionato @@ -388,7 +388,7 @@ public class PickingLiberoViewModel { if (manualPickDTO.getMtbPartitaMag() != null) { partitaMag = manualPickDTO.getMtbPartitaMag().getPartitaMag(); - dataScad = manualPickDTO.getMtbPartitaMag().getDataScadD(); + dataScad = manualPickDTO.getMtbPartitaMag().getDataScad(); } initialNumCnf = numCnfDaPrelevare; @@ -560,7 +560,7 @@ public class PickingLiberoViewModel { null, null, mtbColr.getPartitaMag(), - mtbColr.getDataScadPartitaD(), + mtbColr.getDataScadPartita(), false, false, false, @@ -579,7 +579,7 @@ public class PickingLiberoViewModel { } - public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) { + public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) { new Thread(this::sendOnLoadingStarted).start(); @@ -706,7 +706,7 @@ public class PickingLiberoViewModel { null, null, mtbColrToUpdate.getPartitaMag(), - mtbColrToUpdate.getDataScadPartitaD(), + mtbColrToUpdate.getDataScadPartita(), false, false, true, @@ -726,7 +726,7 @@ public class PickingLiberoViewModel { } - private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) { + private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) { this.sendOnLoadingStarted(); @@ -885,7 +885,7 @@ public class PickingLiberoViewModel { BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, String partitaMag, - Date dataScad, + LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, boolean canLUBeClosed, @@ -938,7 +938,7 @@ public class PickingLiberoViewModel { BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, String partitaMag, - Date dataScad, + LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, boolean canLUBeClosed, diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java index b7fd2278..8e54c771 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java @@ -14,8 +14,8 @@ import com.annimon.stream.Stream; import com.tfb.fbtoast.FBToast; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; -import java.util.Date; import java.util.List; import javax.inject.Inject; @@ -301,7 +301,7 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, - Date dataScad, + LocalDate dataScad, RunnableArgss onComplete) { DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO() .setMtbAart(mtbAart) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiViewModel.java index f65c95a2..e1fa61b4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiViewModel.java @@ -7,8 +7,8 @@ import com.annimon.stream.Optional; import com.annimon.stream.Stream; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; -import java.util.Date; import java.util.List; import javax.inject.Inject; @@ -490,7 +490,7 @@ public class PickingResiViewModel { totalAvailableNumCnf, totalAvailableQtaCnf, withdrawableDtbDocr.getPartitaMag(), - withdrawableDtbDocr.getDataScadPartitaMagD(), + withdrawableDtbDocr.getDataScadPartitaMag(), (pickedQuantityDTO, shouldCloseLU) -> { this.saveNewRow(withdrawableDtbDocr, @@ -515,7 +515,7 @@ public class PickingResiViewModel { null, null, mtbColrToEdit.getPartitaMag(), - mtbColrToEdit.getDataScadPartitaD(), + mtbColrToEdit.getDataScadPartita(), (pickedQuantityDTO, shouldCloseLU) -> { this.saveEditedRow(mtbColrToEdit, @@ -529,7 +529,7 @@ public class PickingResiViewModel { } - public void saveNewRow(WithdrawableDtbDocr withdrawableDtbDocr, MtbColt refMtbColt, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) { + public void saveNewRow(WithdrawableDtbDocr withdrawableDtbDocr, MtbColt refMtbColt, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) { this.sendOnLoadingStarted(); final MtbColr mtbColr = new MtbColr() @@ -628,7 +628,7 @@ public class PickingResiViewModel { }, this::sendError); } - private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) { + private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) { this.sendOnLoadingStarted(); @@ -776,7 +776,7 @@ public class PickingResiViewModel { BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, - Date dataScad, + LocalDate dataScad, RunnableArgss onComplete) { if (this.mListener != null) mListener.onItemDispatched(mtbAart, initialNumCnf, @@ -822,7 +822,7 @@ public class PickingResiViewModel { BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, - Date dataScad, + LocalDate dataScad, RunnableArgss onComplete); void onFilterApplied(String newValue); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaActivity.java index 157e0091..1159deb0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaActivity.java @@ -185,7 +185,7 @@ public class ProdDettaglioLineaActivity extends BaseActivity implements ProdDett .setTotalNumCnfAvailable(mtbColr.getNumCnf()) .setQtaCnfAvailable(mtbColr.getQtaCnf()) .setPartitaMag(mtbColr.getPartitaMag()) - .setDataScad(mtbColr.getDataScadPartitaD()) + .setDataScad(mtbColr.getDataScadPartita()) .setCanOverflowOrderQuantity(false) .setCanPartitaMagBeChanged(false) .setCanLUBeClosed(false) 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 a749d2e9..e8457b1a 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 @@ -23,8 +23,8 @@ import com.google.android.material.textfield.TextInputLayout; import com.tfb.fbtoast.FBToast; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; -import java.util.Date; import javax.inject.Inject; @@ -374,7 +374,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, String partitaMag, - Date dataScad, + LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, boolean canLUBeClosed, diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java index c484d3d1..e523473f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java @@ -3,10 +3,8 @@ package it.integry.integrywmsnative.gest.rettifica_giacenze; import com.annimon.stream.Stream; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; import java.util.List; import javax.inject.Inject; @@ -250,7 +248,7 @@ public class RettificaGiacenzeViewModel { BigDecimal initialQtaTot = null; String partitaMag = null; - Date dataScad = null; + LocalDate dataScad = null; boolean canPartitaMagBeChanged = true; @@ -294,7 +292,7 @@ public class RettificaGiacenzeViewModel { if (manualPickDTO.getMtbPartitaMag() != null) { partitaMag = manualPickDTO.getMtbPartitaMag().getPartitaMag(); - dataScad = manualPickDTO.getMtbPartitaMag().getDataScadD(); + dataScad = manualPickDTO.getMtbPartitaMag().getDataScad(); canPartitaMagBeChanged = false; } } else { @@ -310,11 +308,8 @@ public class RettificaGiacenzeViewModel { } if (dataScad == null && pickingObjectDTO.getMtbAart().getGgScadPartita() != null && pickingObjectDTO.getMtbAart().getGgScadPartita() > 0) { - dataScad = UtilityDate.getDateInstance(); - Calendar c = new GregorianCalendar(); - c.setTime(dataScad); - c.add(Calendar.DATE, pickingObjectDTO.getMtbAart().getGgScadPartita()); - dataScad = c.getTime(); + dataScad = UtilityDate.getNow(); + dataScad.plusDays(pickingObjectDTO.getMtbAart().getGgScadPartita()); } this.sendOnItemDispatched( @@ -347,7 +342,7 @@ public class RettificaGiacenzeViewModel { } - public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) { + public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) { this.sendOnLoadingStarted(); final MtbColr mtbColr = new MtbColr() @@ -540,7 +535,7 @@ public class RettificaGiacenzeViewModel { null, null, mtbColrToUpdate.getPartitaMag(), - mtbColrToUpdate.getDataScadPartitaD(), + mtbColrToUpdate.getDataScadPartita(), false, false, true, @@ -558,7 +553,7 @@ public class RettificaGiacenzeViewModel { } - private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) { + private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) { this.sendOnLoadingStarted(); // if(!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) { @@ -730,7 +725,7 @@ public class RettificaGiacenzeViewModel { BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, String partitaMag, - Date dataScad, + LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, boolean canLUBeClosed, @@ -807,7 +802,7 @@ public class RettificaGiacenzeViewModel { BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, String partitaMag, - Date dataScad, + LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, boolean canLUBeClosed, diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java index ff260ee8..646d3761 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java @@ -17,8 +17,8 @@ import com.annimon.stream.Stream; import com.tfb.fbtoast.FBToast; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; -import java.util.Date; import java.util.List; import javax.inject.Inject; @@ -827,7 +827,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, - Date dataScad, + LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, RunnableArgss onComplete) { 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 b6ed1901..60c39ebe 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 @@ -9,8 +9,8 @@ import com.annimon.stream.Stream; import org.apache.commons.lang3.NotImplementedException; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Objects; @@ -328,9 +328,27 @@ public class SpedizioneViewModel { if (this.mListener != null) mListener.onMtbColrDeleteRequest(onComplete); } - private void sendOnFullItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, Date dataScad, boolean canOverflowOrderQuantity, boolean canBatchLotBeChanged, RunnableArgss onComplete) { + private void sendOnFullItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canBatchLotBeChanged, RunnableArgss onComplete) { if (this.mListener != null) - mListener.onFullItemDispatched(pickingObjectDTO, mtbAart, initialNumCnf, initialQtaCnf, initialQtaTot, totalQtaOrd, totalNumCnfOrd, qtaCnfOrd, totalQtaToBeTaken, totalNumCnfToBeTaken, qtaCnfToBeTaken, totalQtaAvailable, totalNumCnfAvailable, qtaCnfAvailable, partitaMag, dataScad, canOverflowOrderQuantity, canBatchLotBeChanged, onComplete); + mListener.onFullItemDispatched(pickingObjectDTO, + mtbAart, + initialNumCnf, + initialQtaCnf, + initialQtaTot, + totalQtaOrd, + totalNumCnfOrd, + qtaCnfOrd, + totalQtaToBeTaken, + totalNumCnfToBeTaken, + qtaCnfToBeTaken, + totalQtaAvailable, + totalNumCnfAvailable, + qtaCnfAvailable, + partitaMag, + dataScad, + canOverflowOrderQuantity, + canBatchLotBeChanged, + onComplete); } private void sendOnRowSaved() { @@ -786,7 +804,14 @@ public class SpedizioneViewModel { List scannedMtbColrs = pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr(); - List availableBatchLots = Stream.of(scannedMtbColrs).filter(x -> x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) && (x.getPartitaMag() == null || UtilityString.isNullOrEmpty(x.getMtbPartitaMag().getDataScadS()) || UtilityDate.getDateInstance().before(x.getMtbPartitaMag().getDataScadD()))).distinctBy(MtbColr::getPartitaMag).map(x -> x.getPartitaMag() == null ? new MtbPartitaMag().setCodMart(x.getMtbAart().getCodMart()) : x.getMtbPartitaMag()).toList(); + List availableBatchLots = Stream.of(scannedMtbColrs) + .filter(x -> x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) && + (x.getPartitaMag() == null || x.getMtbPartitaMag().getDataScad() == null || + UtilityDate.getNow().isBefore(x.getMtbPartitaMag().getDataScad()))) + + .distinctBy(MtbColr::getPartitaMag) + .map(x -> x.getPartitaMag() == null ? new MtbPartitaMag().setCodMart(x.getMtbAart().getCodMart()) : x.getMtbPartitaMag()) + .toList(); //Controllo se una delle partite combacia con quella che voglio evadere if (refMtbColr != null && refMtbColr.getMtbPartitaMag() != null) { @@ -805,12 +830,17 @@ public class SpedizioneViewModel { List tmp = new ArrayList<>(); - if (Stream.of(availableBatchLots).anyMatch(x -> !UtilityString.isNullOrEmpty(x.getDataScadS()))) { - tmp.addAll(Stream.of(availableBatchLots).filter(x -> !UtilityString.isNullOrEmpty(x.getDataScadS()) && UtilityDate.getDateInstance().before(x.getDataScadD())).sortBy(MtbPartitaMag::getDataScadD).toList()); + if (Stream.of(availableBatchLots).anyMatch(x -> x.getDataScad() != null)) { + tmp.addAll(Stream.of(availableBatchLots) + .filter(x -> x.getDataScad() != null && UtilityDate.getNow().isBefore(x.getDataScad())) + .sortBy(MtbPartitaMag::getDataScad). + toList()); } - if (Stream.of(availableBatchLots).anyMatch(x -> UtilityString.isNullOrEmpty(x.getDataScadS()))) { - tmp.addAll(Stream.of(availableBatchLots).filter(x -> UtilityString.isNullOrEmpty(x.getDataScadS())).sortBy(x -> UtilityString.isNull(x.getPartitaMag(), "")).toList()); + if (Stream.of(availableBatchLots).anyMatch(x -> x.getDataScad() == null)) { + tmp.addAll(Stream.of(availableBatchLots) + .filter(x -> x.getDataScad() == null) + .sortBy(x -> UtilityString.isNull(x.getPartitaMag(), "")).toList()); } this.sendBatchLotSelectionRequest(tmp, selected -> { @@ -864,7 +894,7 @@ public class SpedizioneViewModel { BigDecimal qtaCnfAvailable = null; String partitaMag = null; - Date dataScad = null; + LocalDate dataScad = null; if (refMtbColt == null && pickingObjectDTO.getMtbColts() != null && pickingObjectDTO.getMtbColts().size() == 1) { @@ -925,7 +955,7 @@ public class SpedizioneViewModel { qtaColDaPrelevare = BigDecimal.ZERO; partitaMag = mtbColrToUse.getPartitaMag(); - dataScad = mtbColrToUse.getDataScadPartitaD(); + dataScad = mtbColrToUse.getDataScadPartita(); } else if (pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getManualPickDTO() != null) { //Oppure le info del barcode scansionato @@ -968,7 +998,7 @@ public class SpedizioneViewModel { if (manualPickDTO.getMtbPartitaMag() != null) { partitaMag = manualPickDTO.getMtbPartitaMag().getPartitaMag(); - dataScad = manualPickDTO.getMtbPartitaMag().getDataScadD(); + dataScad = manualPickDTO.getMtbPartitaMag().getDataScad(); } } @@ -978,7 +1008,7 @@ public class SpedizioneViewModel { }); } - public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, Date dataScad, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, RunnableArgss onComplete) { + public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, RunnableArgss onComplete) { if (SettingsManager.iDB().isNotifyLotStatus() && !UtilityString.isNullOrEmpty(partitaMag)) { this.loadProductLotStatus(mtbAart.getCodMart(), partitaMag, (status) -> { pickingObjectDTO.setStatoArticoloDTO(status); @@ -1015,7 +1045,7 @@ public class SpedizioneViewModel { BigDecimal initialQtaTot = null; String partitaMag = null; - Date dataScad = null; + LocalDate dataScad = null; MtbColt refMtbColt = null; @@ -1049,7 +1079,7 @@ public class SpedizioneViewModel { qtaColDaPrelevare = BigDecimal.ZERO; partitaMag = mtbColrToUse.getPartitaMag(); - dataScad = mtbColrToUse.getDataScadPartitaD(); + dataScad = mtbColrToUse.getDataScadPartita(); } else if (pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getManualPickDTO() != null) { //Oppure le info del barcode scansionato @@ -1081,7 +1111,7 @@ public class SpedizioneViewModel { if (manualPickDTO.getMtbPartitaMag() != null) { partitaMag = manualPickDTO.getMtbPartitaMag().getPartitaMag(); - dataScad = manualPickDTO.getMtbPartitaMag().getDataScadD(); + dataScad = manualPickDTO.getMtbPartitaMag().getDataScad(); } } else { initialNumCnf = BigDecimal.ONE; @@ -1154,7 +1184,7 @@ public class SpedizioneViewModel { BigDecimal qtaCnfAvailable = null; String partitaMag = null; - Date dataScad = null; + LocalDate dataScad = null; List mtbColrRifs = mtbColtRif != null && mtbColtRif.getMtbColr() != null ? mtbColtRif.getMtbColr() : null; @@ -1195,7 +1225,7 @@ public class SpedizioneViewModel { partitaMag = mtbColrToEdit.getPartitaMag(); - dataScad = mtbColrToEdit.getDataScadPartitaD(); + dataScad = mtbColrToEdit.getDataScadPartita(); this.sendOnLoadingEnded(); @@ -1244,7 +1274,7 @@ public class SpedizioneViewModel { }, this::sendError); } - public void saveNewRow(PickingObjectDTO pickingObjectDTO, MtbColt refMtbColt, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) { + public void saveNewRow(PickingObjectDTO pickingObjectDTO, MtbColt refMtbColt, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) { this.sendOnLoadingStarted(); //TODO: Al posto di prelevare la prima riga bisognerebbe controllare se c'è ne una che corrisponde con la partita richiesta @@ -1286,7 +1316,7 @@ public class SpedizioneViewModel { if (dataScad != null) insertUDSRowRequestDto - .setDataScad(UtilityDate.toLocalDate(dataScad)); + .setDataScad(dataScad); this.mColliScaricoRESTConsumer.insertUDSRow(insertUDSRowRequestDto, createdMtbColr -> { pickingObjectDTO.getWithdrawMtbColrs().add(createdMtbColr); @@ -1332,7 +1362,7 @@ public class SpedizioneViewModel { } - private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) { + private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) { this.sendOnLoadingStarted(); @@ -1780,7 +1810,7 @@ public class SpedizioneViewModel { void onError(Exception ex); - void onFullItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, Date dataScad, boolean canOverflowOrderQuantity, boolean canBatchLotBeChanged, RunnableArgss onComplete); + void onFullItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canBatchLotBeChanged, RunnableArgss onComplete); void onInfoAggiuntiveRequired(MtbColt currentMtbColt, RunnableArgss onComplete); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickedQuantityDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickedQuantityDTO.java index 0169f9d4..833e4d6e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickedQuantityDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickedQuantityDTO.java @@ -1,12 +1,13 @@ package it.integry.integrywmsnative.gest.spedizione.model; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.Date; public class PickedQuantityDTO { private String partitaMag; - private Date dataScad; + private LocalDate dataScad; private BigDecimal numCnf; private BigDecimal qtaCnf; @@ -21,11 +22,11 @@ public class PickedQuantityDTO { return this; } - public Date getDataScad() { + public LocalDate getDataScad() { return dataScad; } - public PickedQuantityDTO setDataScad(Date dataScad) { + public PickedQuantityDTO setDataScad(LocalDate dataScad) { this.dataScad = dataScad; return this; } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java index a6f159fb..f1f335a4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java @@ -12,8 +12,8 @@ import androidx.appcompat.widget.AppCompatTextView; import androidx.databinding.DataBindingUtil; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; -import java.util.Date; import java.util.List; import javax.inject.Inject; @@ -189,7 +189,7 @@ public class VersamentoMerceFragment extends BaseFragment implements ITitledFrag BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, - Date dataScad, + LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canBatchLotBeChanged, RunnableArgs onComplete) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceViewModel.java index 4b587a6c..1e856162 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceViewModel.java @@ -6,8 +6,8 @@ import androidx.lifecycle.MutableLiveData; import com.annimon.stream.Stream; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; -import java.util.Date; import java.util.Iterator; import java.util.List; @@ -263,7 +263,7 @@ public class VersamentoMerceViewModel { mtbColr.getNumCnf(), mtbColr.getQtaCnf(), mtbColr.getPartitaMag(), - mtbColr.getDataScadPartitaD(), + mtbColr.getDataScadPartita(), false, false, pickedQuantity -> { @@ -335,7 +335,7 @@ public class VersamentoMerceViewModel { BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, - Date dataScad, + LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canBatchLotBeChanged, RunnableArgs onComplete) { @@ -382,7 +382,7 @@ public class VersamentoMerceViewModel { BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, - Date dataScad, + LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canBatchLotBeChanged, RunnableArgs onComplete); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java index 6b337c49..b182d25d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java @@ -1,7 +1,7 @@ package it.integry.integrywmsnative.view.dialogs.input_quantity_v2; import java.math.BigDecimal; -import java.util.Date; +import java.time.LocalDate; import it.integry.integrywmsnative.core.expansion.RunnableArgsWithReturn; import it.integry.integrywmsnative.core.model.MtbAart; @@ -48,7 +48,7 @@ public class DialogInputQuantityV2DTO { private String partitaMag; private String note; - private Date dataScad; + private LocalDate dataScad; private RunnableArgsWithReturn suggestPartitaMag; private boolean canOverflowOrderQuantity; @@ -260,11 +260,11 @@ public class DialogInputQuantityV2DTO { return this; } - public Date getDataScad() { + public LocalDate getDataScad() { return dataScad; } - public DialogInputQuantityV2DTO setDataScad(Date dataScad) { + public DialogInputQuantityV2DTO setDataScad(LocalDate dataScad) { this.dataScad = dataScad; return this; } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ResultDTO.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ResultDTO.java index b5c3a104..53a7ed8f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ResultDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ResultDTO.java @@ -1,13 +1,13 @@ package it.integry.integrywmsnative.view.dialogs.input_quantity_v2; import java.math.BigDecimal; -import java.util.Date; +import java.time.LocalDate; public class DialogInputQuantityV2ResultDTO { private String partitaMag; private String note; - private Date dataScad; + private LocalDate dataScad; private BigDecimal numCnf; private BigDecimal qtaCnf; @@ -31,11 +31,11 @@ public class DialogInputQuantityV2ResultDTO { return this; } - public Date getDataScad() { + public LocalDate getDataScad() { return dataScad; } - public DialogInputQuantityV2ResultDTO setDataScad(Date dataScad) { + public DialogInputQuantityV2ResultDTO setDataScad(LocalDate dataScad) { this.dataScad = dataScad; return this; } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java index 2881646d..331a5273 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java @@ -26,8 +26,7 @@ import com.pedromassango.doubleclick.DoubleClickListener; import java.math.BigDecimal; import java.math.RoundingMode; -import java.util.Calendar; -import java.util.Date; +import java.time.LocalDate; import javax.inject.Inject; import javax.inject.Singleton; @@ -45,6 +44,7 @@ import it.integry.integrywmsnative.core.model.MtbUntMis; import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; +import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityFocus; import it.integry.integrywmsnative.core.utility.UtilityObservable; @@ -67,7 +67,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia public ObservableField currentPartitaMag = new ObservableField<>(); public ObservableField currentNotes = new ObservableField<>(); - public ObservableField currentDataScad = new ObservableField<>(); + public ObservableField currentDataScad = new ObservableField<>(); public ObservableField currentNumCnf = new ObservableField<>(); public ObservableField currentQtaCnf = new ObservableField<>(); @@ -300,12 +300,12 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia if (this.mEnableDataCallback) { MtbAart mtbAart = this.mViewModel.getMtbAart(); if (value != null && mtbAart != null && mtbAart.getGgScadPartita() != null && mtbAart.getGgScadPartita() > 0) { - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DATE, mtbAart.getGgScadPartita()); - Date minDataScad = calendar.getTime(); - if (minDataScad.after(value) && value.after(new Date())) { + + LocalDate minDataScad = UtilityDate.getNow().plusDays(mtbAart.getGgScadPartita()); + if (minDataScad.isAfter(value) && value.isAfter(UtilityDate.getNow())) { DialogSimpleMessageView - .makeWarningDialog(new SpannableString("La data selezionata è precedente alla data di scadenza consigliata per l'articolo scelto ( " + mtbAart.getGgScadPartita() + " giorni) . Continuare?"), null, () -> this.mViewModel.setDataScad(value), () -> this.currentDataScad.set(null)) + .makeWarningDialog(new SpannableString("La data selezionata è precedente alla data di scadenza consigliata per l'articolo scelto ( " + mtbAart.getGgScadPartita() + " giorni) . Continuare?"), null, + () -> this.mViewModel.setDataScad(value), () -> this.currentDataScad.set(null)) .show(requireActivity().getSupportFragmentManager(), "tag"); } else { this.mViewModel.setDataScad(value); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java index b30cf2a6..212e1065 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java @@ -3,7 +3,7 @@ package it.integry.integrywmsnative.view.dialogs.input_quantity_v2; import androidx.databinding.ObservableField; import java.math.BigDecimal; -import java.util.Date; +import java.time.LocalDate; import javax.inject.Inject; @@ -68,7 +68,7 @@ public class DialogInputQuantityV2ViewModel { private String internalPartitaMag; private String internalNote; - private Date internalDataScad; + private LocalDate internalDataScad; private RunnableArgsWithReturn suggestPartitaMagRunnable; @@ -169,9 +169,9 @@ public class DialogInputQuantityV2ViewModel { try { if (!UtilityString.isNullOrEmpty(ean128Model.BestBefore)) { - this.setDataScad(UtilityDate.recognizeDate(ean128Model.BestBefore)); + this.setDataScad(UtilityDate.recognizeLocalDate(ean128Model.BestBefore)); } else if (!UtilityString.isNullOrEmpty(ean128Model.Expiry)) { - this.setDataScad(UtilityDate.recognizeDate(ean128Model.Expiry)); + this.setDataScad(UtilityDate.recognizeLocalDate(ean128Model.Expiry)); } } catch (Exception ex) { this.mListener.onError(ex); @@ -214,7 +214,7 @@ public class DialogInputQuantityV2ViewModel { return internalNote; } - public Date getDataScad() { + public LocalDate getDataScad() { return internalDataScad; } @@ -339,7 +339,7 @@ public class DialogInputQuantityV2ViewModel { return this; } - public DialogInputQuantityV2ViewModel setDataScad(Date internalDataScad) { + public DialogInputQuantityV2ViewModel setDataScad(LocalDate internalDataScad) { this.internalDataScad = internalDataScad; return this; } diff --git a/app/src/main/res/drawable/ic_dashboard_accettazione_bolle.xml b/app/src/main/res/drawable/ic_dashboard_accettazione_bolle.xml new file mode 100644 index 00000000..1e19c2d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_dashboard_accettazione_bolle.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_dashboard_accettazione.xml b/app/src/main/res/drawable/ic_dashboard_accettazione_ordini.xml similarity index 100% rename from app/src/main/res/drawable/ic_dashboard_accettazione.xml rename to app/src/main/res/drawable/ic_dashboard_accettazione_ordini.xml diff --git a/app/src/main/res/layout/accettazione_bolla_picking_main_list__group_header.xml b/app/src/main/res/layout/accettazione_bolla_picking_main_list__group_header.xml new file mode 100644 index 00000000..47146b87 --- /dev/null +++ b/app/src/main/res/layout/accettazione_bolla_picking_main_list__group_header.xml @@ -0,0 +1,25 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/accettazione_bolla_picking_main_list__group_item.xml b/app/src/main/res/layout/accettazione_bolla_picking_main_list__group_item.xml new file mode 100644 index 00000000..bd3f67a7 --- /dev/null +++ b/app/src/main/res/layout/accettazione_bolla_picking_main_list__group_item.xml @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_header.xml b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_header.xml index edd82cdc..e2934bb0 100644 --- a/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_header.xml +++ b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_header.xml @@ -9,7 +9,7 @@ android:orientation="vertical"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_choose_batch_lot_item_model.xml b/app/src/main/res/layout/dialog_choose_batch_lot_item_model.xml index 361ceb0c..16ffd704 100644 --- a/app/src/main/res/layout/dialog_choose_batch_lot_item_model.xml +++ b/app/src/main/res/layout/dialog_choose_batch_lot_item_model.xml @@ -55,17 +55,17 @@ android:textStyle="bold" android:layout_toStartOf="@id/data_scad" android:layout_marginEnd="4dp" - android:visibility="@{UtilityString.isNullOrEmpty(mtbPartitaMag.dataScadS) ? View.GONE : View.VISIBLE}" /> + android:visibility="@{mtbPartitaMag.dataScad == null ? View.GONE : View.VISIBLE}" /> diff --git a/app/src/main/res/layout/fragment_main_accettazione_bolla.xml b/app/src/main/res/layout/fragment_main_accettazione_bolla.xml index 66fcb841..c42ecc15 100644 --- a/app/src/main/res/layout/fragment_main_accettazione_bolla.xml +++ b/app/src/main/res/layout/fragment_main_accettazione_bolla.xml @@ -7,7 +7,7 @@ + type="it.integry.integrywmsnative.gest.accettazione_bolla_elenco.MainAccettazioneBollaElencoFragment" /> + tools:context="it.integry.integrywmsnative.gest.accettazione_bolla_elenco.MainAccettazioneBollaElencoFragment"> + android:src="@drawable/ic_dashboard_accettazione_ordini" /> %s]]> Cerca… Login - Accettazione + Accettazione bolle + Accettazione Ordine di accettazione Ordini di accettazione Spedizione diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a11515b1..d92d096d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -64,7 +64,8 @@ %s of %s]]> %s of %s]]> %s]]> - Check in + Check in + Check in Check in order Multiple acceptance orders Check out diff --git a/app/src/main/res/xml/app_preferences.xml b/app/src/main/res/xml/app_preferences.xml index ea9d0a23..fbf785a3 100644 --- a/app/src/main/res/xml/app_preferences.xml +++ b/app/src/main/res/xml/app_preferences.xml @@ -2,7 +2,7 @@ xmlns:android="http://schemas.android.com/apk/res/android">