From 5cf275e43cb9fcaf1472dfcd085308ed367171a4 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Fri, 19 Apr 2024 13:18:46 +0200 Subject: [PATCH 01/10] Fix nullPoint StatoArtInventarioDto --- .../dto/StatoArtInventarioDTO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/dto/StatoArtInventarioDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/dto/StatoArtInventarioDTO.java index 29568484..6c157dc4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/dto/StatoArtInventarioDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/dto/StatoArtInventarioDTO.java @@ -151,7 +151,7 @@ public class StatoArtInventarioDTO { } public Integer getPedMag() { - if (pedMag < 0) + if (pedMag == null || pedMag < 0) return 0; else return pedMag; From cc454aea1ad117da41fc7ad2ecc4f29c8aa17646 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Fri, 19 Apr 2024 13:56:55 +0200 Subject: [PATCH 02/10] -> v1.40.14 (431) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index cdb86341..13e15917 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 430 - def appVersionName = '1.40.13' + def appVersionCode = 431 + def appVersionName = '1.40.14' signingConfigs { release { From 925cb6ae07f0ab8b1b5f0a340d8f8af5d0ccc1cc Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 19 Apr 2024 17:32:32 +0200 Subject: [PATCH 03/10] Implementata gestione degli imballi in accettazione --- app/src/main/AndroidManifest.xml | 16 +- .../MainApplicationComponent.java | 11 +- .../MainApplicationModule.java | 15 +- .../integrywmsnative/core/di/Converters.java | 5 +- .../core/expansion/BaseDialogFragment.java | 11 +- .../integrywmsnative/core/model/MtbTCol.java | 34 +- .../core/rest/RESTBuilder.java | 6 +- .../rest/consumers/GiacenzaRESTConsumer.java | 4 +- .../rest/consumers/ImballiRESTConsumer.java | 67 +++ .../consumers/ImballiRESTConsumerService.java | 23 + .../rest/consumers/MagazzinoRESTConsumer.java | 82 +-- .../MagazzinoRESTConsumerService.java | 8 +- .../MtbTcolFlagUiUlDeserializer.java | 23 + .../model/imballi/ImballoQuantityDTO.java | 25 + .../RegistraCaricoImballiRequestDTO.java | 17 + .../serializer/MtbTcolFlagUiUlSerializer.java | 17 + .../core/utility/UtilityGson.java | 5 + .../AccettazioneOrdiniPickingActivity.java | 546 +++++++----------- .../AccettazioneOrdiniPickingModule.java | 11 +- .../AccettazioneOrdiniPickingViewModel.java | 35 +- ...ogAskShouldVersamentoAutomaticoULView.java | 63 +- .../DialogInfoAggiuntiveLUModule.java | 6 +- .../DialogInfoAggiuntiveLUView.java | 8 +- .../DialogInfoAggiuntiveLUViewModel.java | 13 +- .../DialogInputLUProdModule.java | 6 +- .../DialogInputLUProdViewModel.java | 14 +- .../input_peso_lu/DialogInputPesoLUView.java | 6 +- .../DialogInputQuantityV2ViewModel.java | 3 +- .../DialogScanOrCreateLUView.java | 2 +- .../DialogTracciamentoImballiComponent.java | 14 + .../DialogTracciamentoImballiModule.java | 15 + .../DialogTracciamentoImballiView.java | 207 +++++++ .../DialogTracciamentoImballiViewModel.java | 92 +++ .../TracciamentoImballoDTO.java | 84 +++ ...gTracciamentoImballi_TipoColloAdapter.java | 48 ++ .../DialogVersamentoAutomaticoULDoneView.java | 129 +---- .../main/res/drawable/circular_background.xml | 7 + app/src/main/res/drawable/ic_add_to_inbox.xml | 10 + ...ne_bolla_picking_main_list__group_item.xml | 2 +- .../accettazione_main_list_group_model.xml | 12 +- .../layout/accettazione_main_list_model.xml | 73 +-- ...e_ordine_inevaso_main_list__group_item.xml | 2 +- .../activity_contab_doc_interni_edit.xml | 2 +- ...ntab_doc_interno_row__list_single_item.xml | 4 +- .../layout/activity_picking_inventario.xml | 2 +- ...activity_picking_inventario__list_item.xml | 2 +- app/src/main/res/layout/activity_splash.xml | 2 +- ..._sheet_fragment__lu_content__list_item.xml | 4 +- .../res/layout/dialog_ask_cliente__page1.xml | 2 +- .../res/layout/dialog_ask_cliente__page2.xml | 2 +- .../dialog_ask_magazzino_prossimita.xml | 2 +- .../dialog_ask_position_of_lu__page2.xml | 2 +- .../res/layout/dialog_ask_should_print.xml | 2 +- ...og_ask_should_versamento_automatico_ul.xml | 109 +--- ...vailable_intventario_items__item_model.xml | 2 +- app/src/main/res/layout/dialog_base.xml | 4 +- .../dialog_basket_lu__mtb_colr_model.xml | 4 +- .../dialog_basket_lu__mtb_colt_model.xml | 2 +- .../res/layout/dialog_basket_lu__page2.xml | 2 +- ..._choose_art_from_lista_art__item_model.xml | 2 +- ...se_arts_from_mtb_aart_list__item_model.xml | 4 +- ...se_arts_from_mtb_colr_list__item_model.xml | 6 +- .../dialog_choose_batch_lot_item_model.xml | 2 +- .../res/layout/dialog_info_aggiuntive_lu.xml | 2 +- .../layout/dialog_info_giacenza_list_item.xml | 6 +- ...ituazione_articolo_available_list_item.xml | 6 +- ...situazione_articolo_incoming_list_item.xml | 6 +- .../main/res/layout/dialog_input_general.xml | 2 +- .../main/res/layout/dialog_input_lu_prod.xml | 2 +- .../res/layout/dialog_input_quantity_v2.xml | 8 +- .../res/layout/dialog_pv_edit_articolo.xml | 6 +- ...dialog_select_art_to_order__item_model.xml | 6 +- .../dialog_select_doc_rows__item_model.xml | 6 +- .../layout/dialog_tracciamento_imballi.xml | 105 ++++ ..._tracciamento_imballi__list_item_model.xml | 169 ++++++ ...dialog_ultime_consegne_filtro_avanzato.xml | 2 +- ...ltimi_arrivi_fornitore_filtro_avanzato.xml | 2 +- .../dialog_versamento_automatico_ul_done.xml | 82 +-- ...atico_ul_done__not_completed_list_item.xml | 4 +- ..._choose_ords_lav_from_list__item_model.xml | 4 +- .../main/res/layout/fragment_doc_interni.xml | 2 +- ...ent_elenco_inventario_list_single_item.xml | 2 +- app/src/main/res/layout/fragment_main.xml | 2 +- ...nt_main_accettazione_bolla__list_model.xml | 39 +- .../fragment_main_rettifica_giacenze.xml | 2 +- ...ime_consegne_cliente__list_single_item.xml | 2 +- ...prod_fabbisogno_linee_list_single_item.xml | 2 +- ...erce_order_detail__mtb_colt_item_model.xml | 2 +- .../fragment_prod_versamento_materiale.xml | 2 +- ...coli_ordine_acquisto__list_single_item.xml | 4 +- ...imi_arrivi_fornitore__list_single_item.xml | 2 +- .../res/layout/lista_bancali_list_model.xml | 2 +- .../lista_contenuto_bancale_list_model.xml | 4 +- .../lista_giacenze_per_posizione_model.xml | 4 +- .../lista_picking_libero_list_model.xml | 4 +- .../layout/lista_rettifica_giacenze_model.xml | 4 +- .../prod_recupero_materiale_list_header.xml | 2 +- ...od_riposizionamento_da_prod__list_item.xml | 2 +- .../spedizione_main_list__group_header.xml | 1 - .../spedizione_main_list__group_item.xml | 2 +- .../accettazione_ordine_inevaso_fab_menu.xml | 4 + app/src/main/res/menu/edit_delete_menu.xml | 12 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/values/styles.xml | 7 +- app/src/main/res/values/themes.xml | 4 + 106 files changed, 1551 insertions(+), 922 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ImballiRESTConsumer.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ImballiRESTConsumerService.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/MtbTcolFlagUiUlDeserializer.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/rest/model/imballi/ImballoQuantityDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/rest/model/imballi/RegistraCaricoImballiRequestDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/rest/serializer/MtbTcolFlagUiUlSerializer.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiComponent.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiModule.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiView.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiViewModel.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/TracciamentoImballoDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/adapter/DialogTracciamentoImballi_TipoColloAdapter.java create mode 100644 app/src/main/res/drawable/circular_background.xml create mode 100644 app/src/main/res/drawable/ic_add_to_inbox.xml create mode 100644 app/src/main/res/layout/dialog_tracciamento_imballi.xml create mode 100644 app/src/main/res/layout/dialog_tracciamento_imballi__list_item_model.xml create mode 100644 app/src/main/res/menu/edit_delete_menu.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 57b819d7..f5a45a2e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,31 +33,25 @@ android:requestLegacyExternalStorage="true"> @@ -68,28 +62,23 @@ + android:screenOrientation="portrait" /> (observableBigDecimal, watcher)); view.addTextChangedListener(watcher); } + BigDecimal newValue = observableBigDecimal.get(); - BigDecimal viewValue = view.getText().toString().trim().length() > 0 ? new BigDecimal(view.getText().toString()) : null; + BigDecimal viewValue = !view.getText().toString().trim().isEmpty() ? new BigDecimal(view.getText().toString()) : null; if (!UtilityBigDecimal.equalsTo(viewValue, newValue)) { view.setText(UtilityNumber.decimalToString(newValue)); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java index 80f9adfd..d68e94e6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java @@ -5,6 +5,7 @@ import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.View; +import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -19,7 +20,7 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.view.dialogs.DialogProgressView; -public class BaseDialogFragment extends DialogFragment implements DialogInterface.OnShowListener { +public abstract class BaseDialogFragment extends DialogFragment implements DialogInterface.OnShowListener { @Inject public DialogProgressView mCurrentProgress; @@ -111,7 +112,15 @@ public class BaseDialogFragment extends DialogFragment implements DialogInterfac @Override public void onShow(DialogInterface dialogInterface) { + getDialog().getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN); + getDialog().getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); + this.initialize(); + this.onInit(dialogInterface); + } + + public void onInit(DialogInterface dialogInterface) { + } private void initialize() { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbTCol.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbTCol.java index 0b078f69..990a1d02 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbTCol.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbTCol.java @@ -1,5 +1,7 @@ package it.integry.integrywmsnative.core.model; +import com.google.gson.annotations.SerializedName; + import java.math.BigDecimal; public class MtbTCol { @@ -13,7 +15,7 @@ public class MtbTCol { private BigDecimal taraKg; private String descrizione; private String codMart; - private String flagUIUL; + private FlagUiUlEnum flagUIUL; private String circuito; public String getCodTcol() { @@ -88,13 +90,12 @@ public class MtbTCol { return this; } - public String getFlagUIUL() { + public FlagUiUlEnum getFlagUIUL() { return flagUIUL; } - public MtbTCol setFlagUIUL(String flagUIUL) { + public void setFlagUIUL(FlagUiUlEnum flagUIUL) { this.flagUIUL = flagUIUL; - return this; } public String getCircuito() { @@ -107,4 +108,29 @@ public class MtbTCol { } + public enum FlagUiUlEnum { + @SerializedName("UI") + UI("UI"), + + @SerializedName("UL") + UL("UL"); + + private final String text; + FlagUiUlEnum(String text) { + this.text = text; + } + + + public String getText() { + return this.text; + } + + public static FlagUiUlEnum fromString(String text) { + for (FlagUiUlEnum b : FlagUiUlEnum.values()) { + if (b.text.equalsIgnoreCase(text)) return b; + } + return null; + } + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/RESTBuilder.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/RESTBuilder.java index cbc9a42d..2259ec57 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/RESTBuilder.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/RESTBuilder.java @@ -61,7 +61,11 @@ public class RESTBuilder { Gson gson = UtilityGson.createObject(); - Retrofit retrofit = new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(gson)).baseUrl(endpoint).client(client).build(); + Retrofit retrofit = new Retrofit.Builder() + .addConverterFactory(GsonConverterFactory.create(gson)) + .baseUrl(endpoint) + .client(client) + .build(); return retrofit.create(service); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumer.java index acb51b71..0541f82c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumer.java @@ -25,11 +25,9 @@ import retrofit2.Response; @Singleton public class GiacenzaRESTConsumer extends _BaseRESTConsumer { - private final SystemRESTConsumer mSystemRESTConsumer; private final ArticoloRESTConsumer mArticoloRESTConsumer; - public GiacenzaRESTConsumer(SystemRESTConsumer systemRESTConsumer, ArticoloRESTConsumer articoloRESTConsumer) { - this.mSystemRESTConsumer = systemRESTConsumer; + public GiacenzaRESTConsumer(ArticoloRESTConsumer articoloRESTConsumer) { this.mArticoloRESTConsumer = articoloRESTConsumer; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ImballiRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ImballiRESTConsumer.java new file mode 100644 index 00000000..995b2e29 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ImballiRESTConsumer.java @@ -0,0 +1,67 @@ +package it.integry.integrywmsnative.core.rest.consumers; + +import java.util.List; +import java.util.concurrent.ExecutorService; + +import javax.inject.Singleton; + +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.model.MtbTCol; +import it.integry.integrywmsnative.core.rest.RESTBuilder; +import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; +import it.integry.integrywmsnative.core.rest.model.imballi.ImballoQuantityDTO; +import it.integry.integrywmsnative.core.rest.model.imballi.RegistraCaricoImballiRequestDTO; +import retrofit2.Response; + +@Singleton +public class ImballiRESTConsumer extends _BaseRESTConsumer { + + private final ExecutorService executorService; + + public ImballiRESTConsumer(ExecutorService executorService) { + this.executorService = executorService; + } + + + public List retrieveTipiColloSyncronized(MtbTCol.FlagUiUlEnum tipoImballo) throws Exception { + ImballiRESTConsumerService service = RESTBuilder.getService(ImballiRESTConsumerService.class); + Response>> response = service.retrieveTipiCollo(tipoImballo) + .execute(); + + return analyzeAnswer(response, "retrieveTipiCollo"); + } + + public void retrieveTipiCollo(MtbTCol.FlagUiUlEnum tipoImballo, RunnableArgs> onComplete, RunnableArgs onFailed) { + executorService.execute(() -> { + try { + var response = retrieveTipiColloSyncronized(tipoImballo); + if (onComplete != null) onComplete.run(response); + } catch (Exception ex) { + if (onFailed != null) onFailed.run(ex); + } + }); + } + + + public void registraCaricoSyncronized(List imballi) throws Exception { + ImballiRESTConsumerService service = RESTBuilder.getService(ImballiRESTConsumerService.class); + Response> response = service.registraCarico( + new RegistraCaricoImballiRequestDTO() + .setUsedImballi(imballi)) + .execute(); + + analyzeAnswer(response, "registraCarico"); + } + + public void registraCarico(List imballi, Runnable onComplete, RunnableArgs onFailed) { + executorService.execute(() -> { + try { + registraCaricoSyncronized(imballi); + if (onComplete != null) onComplete.run(); + } catch (Exception ex) { + if (onFailed != null) onFailed.run(ex); + } + }); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ImballiRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ImballiRESTConsumerService.java new file mode 100644 index 00000000..b7737067 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ImballiRESTConsumerService.java @@ -0,0 +1,23 @@ +package it.integry.integrywmsnative.core.rest.consumers; + +import java.util.List; + +import it.integry.integrywmsnative.core.model.MtbTCol; +import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; +import it.integry.integrywmsnative.core.rest.model.imballi.RegistraCaricoImballiRequestDTO; +import retrofit2.Call; +import retrofit2.http.Body; +import retrofit2.http.GET; +import retrofit2.http.POST; +import retrofit2.http.Path; + +public interface ImballiRESTConsumerService { + + + @GET("wms/imballi/retrieve/{tipo}") + Call>> retrieveTipiCollo(@Path("tipo") MtbTCol.FlagUiUlEnum tipo); + + @POST("wms/imballi/registraCarico") + Call> registraCarico(@Body RegistraCaricoImballiRequestDTO registraCaricoImballiRequest); + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumer.java index 2383218f..af1b4f46 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumer.java @@ -1,19 +1,11 @@ package it.integry.integrywmsnative.core.rest.consumers; -import androidx.annotation.NonNull; - -import com.google.gson.reflect.TypeToken; - -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.List; +import java.util.concurrent.ExecutorService; import javax.inject.Singleton; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -import it.integry.integrywmsnative.core.model.DtbOrdt; import it.integry.integrywmsnative.core.model.MtbPartitaMag; -import it.integry.integrywmsnative.core.model.MtbTCol; import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO; @@ -24,56 +16,14 @@ import retrofit2.Response; @Singleton public class MagazzinoRESTConsumer extends _BaseRESTConsumer { + private final ExecutorService executorService; private final SystemRESTConsumer mSystemRESTConsumer; - public MagazzinoRESTConsumer(SystemRESTConsumer mSystemRESTConsumer) { + public MagazzinoRESTConsumer(ExecutorService executorService, SystemRESTConsumer mSystemRESTConsumer) { + this.executorService = executorService; this.mSystemRESTConsumer = mSystemRESTConsumer; } - - public void getTipiCollo(RunnableArgs> onComplete, RunnableArgs onFailed) { - String baseSql = "SELECT * " + - "FROM mtb_tcol "; - - Type typeOfObjectsList = new TypeToken>() { - }.getType(); - - mSystemRESTConsumer.>processSql(baseSql, typeOfObjectsList, values -> { - if (onComplete != null) { - onComplete.run(values); - } - }, ex -> { - if (onFailed != null) onFailed.run(ex); - }); - } - - - public void saveOrdine(SaveDTO saveDTO, RunnableArgs onComplete, RunnableArgs onFailed) { - MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class, 240); - service.saveOrdine(saveDTO) - .enqueue(new Callback<>() { - @Override - public void onResponse(Call>> call, Response>> response) { - if (response.body() != null && response.body().size() > 0) { - analyzeListOfAnswers(response, "saveOrdine", dtoList -> { - if (dtoList.size() > 0) { - onComplete.run(dtoList.get(0)); - } else { - onFailed.run(new Exception("Nessun ordine generato")); - } - }, onFailed); - } else { - onFailed.run(new Exception("Nessun ordine generato")); - } - } - - @Override - public void onFailure(Call>> call, Throwable t) { - onFailed.run(new Exception(t)); - } - }); - } - public void saveTerminalinoWMS(SaveDTO saveDTO, Runnable onComplete, RunnableArgs onFailed) { MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class); service.saveTerminalinoWMS(saveDTO) @@ -90,7 +40,8 @@ public class MagazzinoRESTConsumer extends _BaseRESTConsumer { }); } - public MtbPartitaMag retrievePartitaMagSyncronized(String partitaMag, String codMart, RunnableArgs onFailed) throws Exception { + + public MtbPartitaMag retrievePartitaMagSyncronized(String partitaMag, String codMart) throws Exception { MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class); Response> response = service.retrievePartitaMag(codMart, partitaMag) .execute(); @@ -99,18 +50,13 @@ public class MagazzinoRESTConsumer extends _BaseRESTConsumer { } public void retrievePartitaMag(String partitaMag, String codMart, RunnableArgs onComplete, RunnableArgs onFailed) { - MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class); - service.retrievePartitaMag(codMart, partitaMag) - .enqueue(new Callback<>() { - @Override - public void onResponse(@NonNull Call> call, @NonNull Response> response) { - analyzeAnswer(response, "retrievePartitaMag", onComplete, onFailed); - } - - @Override - public void onFailure(@NonNull Call> call, @NonNull Throwable t) { - onFailed.run(new Exception(t)); - } - }); + executorService.execute(() -> { + try { + var response = retrievePartitaMagSyncronized(partitaMag, codMart); + if (onComplete != null) onComplete.run(response); + } catch (Exception ex) { + if (onFailed != null) onFailed.run(ex); + } + }); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumerService.java index f9075a85..2797ffee 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumerService.java @@ -2,14 +2,15 @@ package it.integry.integrywmsnative.core.rest.consumers; import java.util.List; -import it.integry.integrywmsnative.core.model.DtbOrdt; import it.integry.integrywmsnative.core.model.MtbPartitaMag; +import it.integry.integrywmsnative.core.model.MtbTCol; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO; import retrofit2.Call; import retrofit2.http.Body; import retrofit2.http.GET; import retrofit2.http.POST; +import retrofit2.http.Path; import retrofit2.http.Query; public interface MagazzinoRESTConsumerService { @@ -17,11 +18,10 @@ public interface MagazzinoRESTConsumerService { @POST("SM2SaveTerminalinoWMS") Call> saveTerminalinoWMS(@Body SaveDTO saveDTO); - @POST("SM2SaveTerminalino") - Call>> saveOrdine(@Body SaveDTO saveDTO); - @GET("wms/partita-magazzino/retrievePartitaMag") Call> retrievePartitaMag(@Query("codMart") String codMart, @Query("partitaMag") String partitaMag); + + } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/MtbTcolFlagUiUlDeserializer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/MtbTcolFlagUiUlDeserializer.java new file mode 100644 index 00000000..c86545a6 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/MtbTcolFlagUiUlDeserializer.java @@ -0,0 +1,23 @@ +package it.integry.integrywmsnative.core.rest.deserializer; + +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonParseException; + +import java.lang.reflect.Type; + +import it.integry.integrywmsnative.core.model.MtbTCol; + +public class MtbTcolFlagUiUlDeserializer implements JsonDeserializer { + @Override + public MtbTCol.FlagUiUlEnum deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + if (json.isJsonNull()) { + return null; + } + + String text = json.getAsString(); + return MtbTCol.FlagUiUlEnum.fromString(text); + + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/imballi/ImballoQuantityDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/imballi/ImballoQuantityDTO.java new file mode 100644 index 00000000..9c51d167 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/imballi/ImballoQuantityDTO.java @@ -0,0 +1,25 @@ +package it.integry.integrywmsnative.core.rest.model.imballi; + +public class ImballoQuantityDTO { + + private String codMart; + private Integer qta; + + public String getCodMart() { + return codMart; + } + + public ImballoQuantityDTO setCodMart(String codMart) { + this.codMart = codMart; + return this; + } + + public Integer getQta() { + return qta; + } + + public ImballoQuantityDTO setQta(Integer qta) { + this.qta = qta; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/imballi/RegistraCaricoImballiRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/imballi/RegistraCaricoImballiRequestDTO.java new file mode 100644 index 00000000..2d8ead32 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/imballi/RegistraCaricoImballiRequestDTO.java @@ -0,0 +1,17 @@ +package it.integry.integrywmsnative.core.rest.model.imballi; + +import java.util.List; + +public class RegistraCaricoImballiRequestDTO { + + private List usedImballi; + + public List getUsedImballi() { + return usedImballi; + } + + public RegistraCaricoImballiRequestDTO setUsedImballi(List usedImballi) { + this.usedImballi = usedImballi; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/serializer/MtbTcolFlagUiUlSerializer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/serializer/MtbTcolFlagUiUlSerializer.java new file mode 100644 index 00000000..e22fd7c7 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/serializer/MtbTcolFlagUiUlSerializer.java @@ -0,0 +1,17 @@ +package it.integry.integrywmsnative.core.rest.serializer; + +import com.google.gson.JsonElement; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; + +import java.lang.reflect.Type; + +import it.integry.integrywmsnative.core.model.MtbTCol; + +public class MtbTcolFlagUiUlSerializer implements JsonSerializer { + @Override + public JsonElement serialize(MtbTCol.FlagUiUlEnum src, Type typeOfSrc, JsonSerializationContext context) { + return new JsonPrimitive(src.getText()); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityGson.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityGson.java index 66f5abb1..37dc03fa 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityGson.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityGson.java @@ -7,12 +7,15 @@ import java.lang.reflect.Modifier; import java.time.LocalDate; import java.time.LocalDateTime; +import it.integry.integrywmsnative.core.model.MtbTCol; import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag; import it.integry.integrywmsnative.core.rest.deserializer.LocalDateDeserializer; import it.integry.integrywmsnative.core.rest.deserializer.LocalDateTimeDeserializer; +import it.integry.integrywmsnative.core.rest.deserializer.MtbTcolFlagUiUlDeserializer; import it.integry.integrywmsnative.core.rest.deserializer.StatoPartitaMagDeserializer; import it.integry.integrywmsnative.core.rest.serializer.LocalDateSerializer; import it.integry.integrywmsnative.core.rest.serializer.LocalDateTimeSerializer; +import it.integry.integrywmsnative.core.rest.serializer.MtbTcolFlagUiUlSerializer; import it.integry.integrywmsnative.core.rest.serializer.StatoPartitaMagSerializer; public class UtilityGson { @@ -27,6 +30,8 @@ public class UtilityGson { .registerTypeAdapter(LocalDateTime.class, new LocalDateTimeSerializer()) .registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagDeserializer()) .registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagSerializer()) + .registerTypeAdapter(MtbTCol.FlagUiUlEnum.class, new MtbTcolFlagUiUlDeserializer()) + .registerTypeAdapter(MtbTCol.FlagUiUlEnum.class, new MtbTcolFlagUiUlSerializer()) .create(); } 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 d726e2d4..ac0c5ad3 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 @@ -78,6 +78,7 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUView; 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.tracciamento_imballi.DialogTracciamentoImballiView; import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView; public class AccettazioneOrdiniPickingActivity extends BaseActivity implements AccettazioneOrdiniPickingViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener { @@ -127,10 +128,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A mBindings.setLifecycleOwner(this); mBindings.setView(this); - MainApplication.appComponent - .accettazionePickingComponent() - .create() - .inject(this); + MainApplication.appComponent.accettazionePickingComponent().create().inject(this); setSupportActionBar(mBindings.toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); @@ -151,17 +149,11 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A boolean useQtaOrd = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd(); mViewModel.setListeners(this); - mViewModel.init( - mOrders, - mSitArts, - useQtaOrd); + mViewModel.init(mOrders, mSitArts, useQtaOrd); } private void initFab() { - fabPopupMenu = new PopupMenu(this, this.mBindings.accettazioneOrdineInevasoFab, - (Gravity.END | Gravity.BOTTOM), - androidx.appcompat.R.attr.popupMenuStyle, - com.google.android.material.R.style.Widget_Material3_PopupMenu_ContextMenu); + fabPopupMenu = new PopupMenu(this, this.mBindings.accettazioneOrdineInevasoFab, (Gravity.END | Gravity.BOTTOM), androidx.appcompat.R.attr.popupMenuStyle, com.google.android.material.R.style.Widget_Material3_PopupMenu_ContextMenu); fabPopupMenu.setForceShowIcon(true); fabPopupMenu.getMenuInflater().inflate(R.menu.accettazione_ordine_inevaso_fab_menu, fabPopupMenu.getMenu()); @@ -171,8 +163,13 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A if (itemId == R.id.show_created_ul) { showCreatedUL(); + return true; + } else if (itemId == R.id.track_packaging) { + trackPackaging(); + return true; } else if (itemId == R.id.create_ul) { createNewLU(); + return true; } return false; @@ -192,17 +189,11 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A mAppliedFilterViewModel.getCurrentDescrPredicate().addOnPropertyChangedCallback(onPredicateChanged); mAppliedFilterViewModel.getCurrentPosPredicate().addOnPropertyChangedCallback(onPredicateChanged); - List filterList = Stream.of(AccettazioneOrdiniPickingBindings.AVAILABLE_FILTERS.entrySet()) - .map(Map.Entry::getValue) - .sortBy(FilterChipDTO::getPosizione) - .toList(); + List filterList = Stream.of(AccettazioneOrdiniPickingBindings.AVAILABLE_FILTERS.entrySet()).map(Map.Entry::getValue).sortBy(FilterChipDTO::getPosizione).toList(); for (FilterChipDTO filterChipDTO : filterList) { - FilterChipView filterChipView = new FilterChipView( - this, - filterChipDTO.getFilterChipText(), - v -> initBottomSheetDialogFilter(filterChipDTO)); + FilterChipView filterChipView = new FilterChipView(this, filterChipDTO.getFilterChipText(), v -> initBottomSheetDialogFilter(filterChipDTO)); switch (filterChipDTO.getID()) { case AccettazioneOrdiniPickingBindings.COD_ART_FILTER_ID -> { @@ -280,52 +271,20 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A private void initBottomSheetDialogFilter(FilterChipDTO filterChipDTO) { - filterChipDTO - .getFilterLayoutView() - .setFilterName(filterChipDTO.getFilterChipText()) - .setContext(this); + filterChipDTO.getFilterLayoutView().setFilterName(filterChipDTO.getFilterChipText()).setContext(this); - var filterLayoutView = filterChipDTO - .getFilterLayoutView(); + var filterLayoutView = filterChipDTO.getFilterLayoutView(); switch (filterChipDTO.getID()) { case AccettazioneOrdiniPickingBindings.COD_ART_FILTER_ID -> - ((FilterCodArtLayoutView) filterLayoutView) - .setAll(mAppliedFilterViewModel.getAllCodArts()) - .setAvailable(mAppliedFilterViewModel.getAvailableCodArts()) - .setOnFilterApplied(mAppliedFilterViewModel::setCodArtFilter) - .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())) - .filter(mAppliedFilterViewModel.getCurrentCodArtPredicate().get() == null ? - x -> false : - mAppliedFilterViewModel.getCurrentCodArtPredicate().get()) - .map(x -> x.getSitArtOrdDTO().getCodMart()) - .toList()); + ((FilterCodArtLayoutView) filterLayoutView).setAll(mAppliedFilterViewModel.getAllCodArts()).setAvailable(mAppliedFilterViewModel.getAvailableCodArts()).setOnFilterApplied(mAppliedFilterViewModel::setCodArtFilter).setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())).filter(mAppliedFilterViewModel.getCurrentCodArtPredicate().get() == null ? x -> false : mAppliedFilterViewModel.getCurrentCodArtPredicate().get()).map(x -> x.getSitArtOrdDTO().getCodMart()).toList()); case AccettazioneOrdiniPickingBindings.DESCR_FILTER_ID -> - ((FilterDescrLayoutView) filterLayoutView) - .setAll(mAppliedFilterViewModel.getAllDescrs()) - .setAvailable(mAppliedFilterViewModel.getAvailableDescrs()) - .setOnFilterApplied(mAppliedFilterViewModel::setDescrFilter) - .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())) - .filter(mAppliedFilterViewModel.getCurrentDescrPredicate().get() == null ? - x -> false : - mAppliedFilterViewModel.getCurrentDescrPredicate().get()) - .map(x -> x.getSitArtOrdDTO().getDescrizioneEstesaArt()) - .toList()); + ((FilterDescrLayoutView) filterLayoutView).setAll(mAppliedFilterViewModel.getAllDescrs()).setAvailable(mAppliedFilterViewModel.getAvailableDescrs()).setOnFilterApplied(mAppliedFilterViewModel::setDescrFilter).setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())).filter(mAppliedFilterViewModel.getCurrentDescrPredicate().get() == null ? x -> false : mAppliedFilterViewModel.getCurrentDescrPredicate().get()).map(x -> x.getSitArtOrdDTO().getDescrizioneEstesaArt()).toList()); case AccettazioneOrdiniPickingBindings.POS_FILTER_ID -> - ((FilterPosizioneLayoutView) filterLayoutView) - .setAll(mAppliedFilterViewModel.getAllPos()) - .setAvailable(mAppliedFilterViewModel.getAvailablePos()) - .setOnFilterApplied(mAppliedFilterViewModel::setPosFilter) - .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())) - .filter(mAppliedFilterViewModel.getCurrentPosPredicate().get() == null ? - x -> false : - mAppliedFilterViewModel.getCurrentPosPredicate().get()) - .map(x -> x.getMtbAart().getPosizione()) - .toList()); + ((FilterPosizioneLayoutView) filterLayoutView).setAll(mAppliedFilterViewModel.getAllPos()).setAvailable(mAppliedFilterViewModel.getAvailablePos()).setOnFilterApplied(mAppliedFilterViewModel::setPosFilter).setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())).filter(mAppliedFilterViewModel.getCurrentPosPredicate().get() == null ? x -> false : mAppliedFilterViewModel.getCurrentPosPredicate().get()).map(x -> x.getMtbAart().getPosizione()).toList()); } - if (!filterLayoutView.isAdded()) - filterLayoutView.show(getSupportFragmentManager(), "TAG"); + if (!filterLayoutView.isAdded()) filterLayoutView.show(getSupportFragmentManager(), "TAG"); } @Override @@ -374,9 +333,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A } private void initBarcodeReader() { - barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() - .setOnScanSuccessful(onScanSuccessful) - .setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false))); + barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO().setOnScanSuccessful(onScanSuccessful).setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false))); } private void initRecyclerView() { @@ -417,9 +374,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A } private List convertDataModelToListModel(List dataList) { - List tmpList = Stream.of(dataList) - .filter(x -> !x.isHidden() && UtilityBigDecimal.greaterThan(x.getSitArtOrdDTO().getQtaDaEvadere(), BigDecimal.ZERO)) - .toList(); + List tmpList = Stream.of(dataList).filter(x -> !x.isHidden() && UtilityBigDecimal.greaterThan(x.getSitArtOrdDTO().getQtaDaEvadere(), BigDecimal.ZERO)).toList(); return switch (mCurrentOrderBy) { case COD_ART_FOR -> convertDataModelToListModel__CodArtForn(tmpList); @@ -430,133 +385,118 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A private List convertDataModelToListModel__CodArtForn(List dataList) { ArrayList list = new ArrayList<>(); - Stream.of(dataList) - .sortBy(x -> UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) + - (UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa())) - .forEach(x -> { - AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel(); - accettazioneOrdiniPickingListModel.setActive(true); + Stream.of(dataList).sortBy(x -> UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) + (UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa())).forEach(x -> { + AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel(); + accettazioneOrdiniPickingListModel.setActive(true); - accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) + - (UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa())); + accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) + (UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa())); - accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG)); - accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd())); + accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG)); + accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd())); - accettazioneOrdiniPickingListModel.setSubDescrizione1("Consegna: " + UtilityDate.formatDate(x.getSitArtOrdDTO().getDataCons(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH)); + accettazioneOrdiniPickingListModel.setSubDescrizione1("Consegna: " + UtilityDate.formatDate(x.getSitArtOrdDTO().getDataCons(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH)); - accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa()); - if (x.getMtbAart() != null) - accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione()); + accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa()); + if (x.getMtbAart() != null) + accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione()); - //Calc Num CNF - BigDecimal numCnfEvasa = BigDecimal.ZERO; + //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); - } + 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; + //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 (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())) { - accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa); - accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); - accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col)); + if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) { + accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa); + accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); + accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col)); - accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa); - accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); - if (x.getMtbAart() != null) - accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis()); - } else { - accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa); - accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); - if (x.getMtbAart() != null) - accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis()); + accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa); + accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); + if (x.getMtbAart() != null) + accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis()); + } else { + accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa); + accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); + if (x.getMtbAart() != null) + accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis()); - accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa); - accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); - accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col)); - } + accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa); + accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); + accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col)); + } - accettazioneOrdiniPickingListModel.setOriginalModel(x); + accettazioneOrdiniPickingListModel.setOriginalModel(x); - list.add(accettazioneOrdiniPickingListModel); - }); + list.add(accettazioneOrdiniPickingListModel); + }); return list; } private List convertDataModelToListModel__DescrArt(List dataList) { ArrayList list = new ArrayList<>(); - Stream.of(dataList) - .sortBy(x -> x.getMtbAart().getDescrizioneEstesa()) - .forEach(x -> { - AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel(); - accettazioneOrdiniPickingListModel.setActive(true); + Stream.of(dataList).sortBy(x -> x.getMtbAart().getDescrizioneEstesa()).forEach(x -> { + AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel(); + accettazioneOrdiniPickingListModel.setActive(true); - accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) - + (UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa())); + accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) + (UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa())); - accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG)); - accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd())); + accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG)); + accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd())); - accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa()); - if (x.getMtbAart() != null) - accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione()); + accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa()); + if (x.getMtbAart() != null) + accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione()); - //Calc Num CNF - BigDecimal numCnfEvasa = BigDecimal.ZERO; + //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); - } + 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; + //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 (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())) { - accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa); - accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); - accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col)); + if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) { + accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa); + accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); + accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col)); - accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa); - accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); - if (x.getMtbAart() != null) - accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis()); - } else { - accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa); - accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); - if (x.getMtbAart() != null) - accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis()); + accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa); + accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); + if (x.getMtbAart() != null) + accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis()); + } else { + accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa); + accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); + if (x.getMtbAart() != null) + accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis()); - accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa); - accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); - accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col)); - } + accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa); + accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); + accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col)); + } - accettazioneOrdiniPickingListModel.setOriginalModel(x); + accettazioneOrdiniPickingListModel.setOriginalModel(x); - list.add(accettazioneOrdiniPickingListModel); - }); + list.add(accettazioneOrdiniPickingListModel); + }); return list; } @@ -564,136 +504,122 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A private List convertDataModelToListModel__RagSocCom(List dataList) { ArrayList list = new ArrayList<>(); - Stream.of(dataList) - .filter(x -> !UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) && !x.getSitArtOrdDTO().getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) - .sortBy(x -> x.getSitArtOrdDTO().getDescrizioneCommessa()) - .forEach(x -> { - AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel(); - accettazioneOrdiniPickingListModel.setActive(true); + Stream.of(dataList).filter(x -> !UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) && !x.getSitArtOrdDTO().getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)).sortBy(x -> x.getSitArtOrdDTO().getDescrizioneCommessa()).forEach(x -> { + AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel(); + accettazioneOrdiniPickingListModel.setActive(true); - accettazioneOrdiniPickingListModel.setGroupTitle(x.getSitArtOrdDTO().getCodJcom() + (!UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) ? " - " + x.getSitArtOrdDTO().getDescrizioneCommessa() : "")); + accettazioneOrdiniPickingListModel.setGroupTitle(x.getSitArtOrdDTO().getCodJcom() + (!UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) ? " - " + x.getSitArtOrdDTO().getDescrizioneCommessa() : "")); - accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart())); - accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd())); + accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart())); + accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd())); - //Calc Num CNF - BigDecimal numCnfEvasa = BigDecimal.ZERO; + //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); - } + 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; + //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 (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())) { - accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa); - accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); - accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col)); + if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) { + accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa); + accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); + accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col)); - accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa); - accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); - if (x.getMtbAart() != null) - accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis()); - } else { - accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa); - accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); - if (x.getMtbAart() != null) - accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis()); + accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa); + accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); + if (x.getMtbAart() != null) + accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis()); + } else { + accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa); + accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); + if (x.getMtbAart() != null) + accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis()); - accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa); - accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); - accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col)); - } + accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa); + accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); + accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col)); + } - accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneEstesaOrd()); + accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneEstesaOrd()); - if (x.getMtbAart() != null) { - accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione()); - } + if (x.getMtbAart() != null) { + accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione()); + } - accettazioneOrdiniPickingListModel.setOriginalModel(x); + accettazioneOrdiniPickingListModel.setOriginalModel(x); - list.add(accettazioneOrdiniPickingListModel); - }); + list.add(accettazioneOrdiniPickingListModel); + }); - Stream.of(dataList) - .filter(x -> UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) || x.getSitArtOrdDTO().getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) - .forEach(x -> { - AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel(); - accettazioneOrdiniPickingListModel.setActive(true); + Stream.of(dataList).filter(x -> UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) || x.getSitArtOrdDTO().getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)).forEach(x -> { + AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel(); + accettazioneOrdiniPickingListModel.setActive(true); - accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG)); + accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG)); - accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart())); - accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd())); + accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart())); + accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd())); - //Calc Num CNF - BigDecimal numCnfEvasa = BigDecimal.ZERO; + //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); - } + 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; + //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 (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())) { - accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa); - accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); - accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col)); + if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) { + accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa); + accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); + accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col)); - accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa); - accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); - if (x.getMtbAart() != null) - accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis()); - } else { - accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa); - accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); - if (x.getMtbAart() != null) - accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis()); + accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa); + accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); + if (x.getMtbAart() != null) + accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis()); + } else { + accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa); + accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere()); + if (x.getMtbAart() != null) + accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis()); - accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa); - accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); - accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col)); - } + accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa); + accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere()); + accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col)); + } - if (x.getMtbAart() != null) { - accettazioneOrdiniPickingListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa()); - accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis()); - } + if (x.getMtbAart() != null) { + accettazioneOrdiniPickingListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa()); + accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis()); + } - accettazioneOrdiniPickingListModel.setOriginalModel(x); + accettazioneOrdiniPickingListModel.setOriginalModel(x); - list.add(accettazioneOrdiniPickingListModel); - }); + list.add(accettazioneOrdiniPickingListModel); + }); return list; } private boolean isThereAnyItemToPick(List dataList) { - return Stream.of(dataList) - .anyMatch(x -> !x.isHidden()); + return Stream.of(dataList).anyMatch(x -> !x.isHidden()); } private final RunnableArgs onScanSuccessful = data -> { @@ -718,20 +644,25 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A }); } + public void trackPackaging() { + this.fabPopupMenu.dismiss(); + + DialogTracciamentoImballiView.newInstance(data -> { + mViewModel.registraImballi(data); + }).show(getSupportFragmentManager(), DialogTracciamentoImballiView.class.getName()); + } + + public void showCreatedUL() { this.fabPopupMenu.dismiss(); this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity); } private void showOrderByDialog() { - AlertDialog dialog = new AlertDialog.Builder(this) - .setTitle(this.getText(R.string.action_orderBy)) - .setSingleChoiceItems(AccettazioneOrdineInevasoOrderBy.descriptions, mCurrentOrderBy.getVal(), (dialog12, which) -> { - mCurrentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.fromInt(which); - SettingsManager.i().getUserSession().setDefaultOrdinamentoPickingAccettazione(which); - }) - .setPositiveButton(getText(R.string.ok), (dialog1, which) -> this.refreshList()) - .create(); + AlertDialog dialog = new AlertDialog.Builder(this).setTitle(this.getText(R.string.action_orderBy)).setSingleChoiceItems(AccettazioneOrdineInevasoOrderBy.descriptions, mCurrentOrderBy.getVal(), (dialog12, which) -> { + mCurrentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.fromInt(which); + SettingsManager.i().getUserSession().setDefaultOrdinamentoPickingAccettazione(which); + }).setPositiveButton(getText(R.string.ok), (dialog1, which) -> this.refreshList()).create(); dialog.show(); } @@ -739,14 +670,9 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A Intent myIntent = ListaBancaliActivity.createIntent(this, - Stream.of(mtbColts) - .map(AlreadyRegisteredUDCDTO::getMtbColt) - .toList(), + Stream.of(mtbColts).map(AlreadyRegisteredUDCDTO::getMtbColt).toList(), - input -> Stream.of(mtbColts) - .filter(x -> x.getMtbColt() == input) - .findFirstOrElse(null) - .isCanBeRecovered(), + input -> Stream.of(mtbColts).filter(x -> x.getMtbColt() == input).findFirstOrElse(null).isCanBeRecovered(), ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO)); @@ -757,9 +683,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A 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"); + DialogSimpleMessageView.makeSuccessDialog(res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null).show(getSupportFragmentManager(), "tag"); } @Override @@ -769,13 +693,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A @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"); + DialogSimpleMessageView.makeErrorDialog(new SpannableString(ex.getMessage()), null, null, R.string.button_ignore_print, onComplete).show(getSupportFragmentManager(), "tag"); } @Override @@ -795,20 +713,12 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A @Override public void onVersamentoAutomaticoULRequest(RunnableArgs onComplete) { - runOnUiThread(() -> { - DialogAskShouldVersamentoAutomaticoULView.newInstance(onComplete) - .show(getSupportFragmentManager(), "tag"); - }); + DialogAskShouldVersamentoAutomaticoULView.newInstance(onComplete).show(getSupportFragmentManager(), "tag"); } @Override public void onInfoAggiuntiveRequest(RunnableArgss onComplete) { -// runOnUiThread(() -> { -// DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog"); -// }); - - DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded) - .show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName()); + DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded).show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName()); } @Override @@ -826,41 +736,13 @@ 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, LocalDate dataScad, boolean canPartitaMagBeChanged, boolean canOverflowQuantity, String customArtDescription, 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) - .setCustomArtDescription(customArtDescription); + 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).setCustomArtDescription(customArtDescription); 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"); + 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 @@ -894,9 +776,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A public void onULVersata(VersamentoAutomaticoULResponseDTO versamentoAutomaticoULResponseDTO, Runnable onComplete) { runOnUiThread(() -> { - DialogVersamentoAutomaticoULDoneView - .newInstance(versamentoAutomaticoULResponseDTO, onComplete) - .show(getSupportFragmentManager(), "tag"); + DialogVersamentoAutomaticoULDoneView.newInstance(versamentoAutomaticoULResponseDTO, onComplete).show(getSupportFragmentManager(), "tag"); }); } @@ -905,11 +785,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A 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"); + DialogSimpleMessageView.makeWarningDialog(new SpannableString(text), null, () -> onComplete.run(true), () -> onComplete.run(false)).show(getSupportFragmentManager(), "tag"); }); } @@ -925,15 +801,11 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A @Override public void onLUClosed() { - runOnUiThread(() -> { - noLUPresent.set(true); - this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null); + noLUPresent.set(true); + this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null); + this.refreshList(); - - this.refreshList(); - - if (this.mShouldCloseActivity) super.onBackPressed(); - }); + if (this.mShouldCloseActivity) super.onBackPressed(); } @Override diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingModule.java index cbd87f03..416193b7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingModule.java @@ -8,7 +8,7 @@ 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.ImballiRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest.AccettazioneOrdiniPickingRESTConsumer; import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel; @@ -31,18 +31,19 @@ public class AccettazioneOrdiniPickingModule { ArticoloRESTConsumer articoloRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, - PrinterRESTConsumer printerRESTConsumer, AccettazioneOrdiniPickingRESTConsumer accettazioneOrdiniPickingRESTConsumer, ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer, ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer, - Ean128Service ean128Service) { + Ean128Service ean128Service, + ImballiRESTConsumer imballiRESTConsumer) { return new AccettazioneOrdiniPickingViewModel(articoloRESTConsumer, barcodeRESTConsumer, colliMagazzinoRESTConsumer, - printerRESTConsumer, accettazioneOrdiniPickingRESTConsumer, colliAccettazioneRESTConsumer, - colliLavorazioneRESTConsumer, ean128Service); + colliLavorazioneRESTConsumer, + ean128Service, + imballiRESTConsumer); } } 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 72a8ab5c..4fc21d57 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 @@ -11,6 +11,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import javax.inject.Inject; @@ -40,11 +41,12 @@ 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.ImballiRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliCaricoRESTConsumerInterface; import it.integry.integrywmsnative.core.rest.model.Ean128Model; import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel; import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO; +import it.integry.integrywmsnative.core.rest.model.imballi.ImballoQuantityDTO; 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.CreateUDCRequestOrderDTO; @@ -66,17 +68,18 @@ import it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest.Accetta import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException; import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException; import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; +import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.TracciamentoImballoDTO; public class AccettazioneOrdiniPickingViewModel { private final ArticoloRESTConsumer mArticoloRESTConsumer; private final BarcodeRESTConsumer mBarcodeRESTConsumer; private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer; - private final PrinterRESTConsumer mPrinterRESTConsumer; private final AccettazioneOrdiniPickingRESTConsumer mAccettazioneOrdiniPickingRESTConsumer; private final ColliAccettazioneRESTConsumer mColliAccettazioneRESTConsumer; private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer; private final Ean128Service mEan128Service; + private final ImballiRESTConsumer mImballiRESTConsumer; private ColliCaricoRESTConsumerInterface mColliCaricoRESTConsumer; @@ -95,19 +98,19 @@ public class AccettazioneOrdiniPickingViewModel { public AccettazioneOrdiniPickingViewModel(ArticoloRESTConsumer articoloRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, - PrinterRESTConsumer printerRESTConsumer, AccettazioneOrdiniPickingRESTConsumer accettazioneOrdiniPickingRESTConsumer, ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer, ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer, - Ean128Service ean128Service) { + Ean128Service ean128Service, + ImballiRESTConsumer imballiRESTConsumer) { this.mArticoloRESTConsumer = articoloRESTConsumer; this.mBarcodeRESTConsumer = barcodeRESTConsumer; this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer; - this.mPrinterRESTConsumer = printerRESTConsumer; this.mAccettazioneOrdiniPickingRESTConsumer = accettazioneOrdiniPickingRESTConsumer; this.mColliAccettazioneRESTConsumer = colliAccettazioneRESTConsumer; this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer; this.mEan128Service = ean128Service; + this.mImballiRESTConsumer = imballiRESTConsumer; } @@ -275,7 +278,7 @@ public class AccettazioneOrdiniPickingViewModel { null, false, () -> { - if(UtilityString.isNullOrEmpty(customSSCC)) + if (UtilityString.isNullOrEmpty(customSSCC)) processBarcodeAlreadyOpenedLU(barcodeScanDTO, onComplete); else onComplete.run(); }); @@ -767,9 +770,6 @@ public class AccettazioneOrdiniPickingViewModel { } else { postCloseOperations(); } - - this.sendLUClosed(); - this.sendOnLoadingEnded(); }; sendVersamentoAutomaticoULRequest(response -> { @@ -821,7 +821,7 @@ public class AccettazioneOrdiniPickingViewModel { BigDecimal qtaEvasa = BigDecimal.ZERO; BigDecimal numCnf = BigDecimal.ZERO; - if (withdrawMtbColrs.size() > 0) { + if (!withdrawMtbColrs.isEmpty()) { qtaEvasa = Stream.of(withdrawMtbColrs) .map(MtbColr::getQtaCol) .reduce(BigDecimal.ZERO, BigDecimal::add); @@ -887,6 +887,21 @@ public class AccettazioneOrdiniPickingViewModel { return optional.isPresent() ? optional.get() : null; } + public void registraImballi(List data) { + this.sendOnLoadingStarted(); + + var inputData = data.stream() + .map(x -> new ImballoQuantityDTO() + .setQta(x.getQta().get()) + .setCodMart(x.getCodMart().get())) + .collect(Collectors.toList()); + + mImballiRESTConsumer.registraCarico(inputData, () -> { + this.sendOnLoadingEnded(); + }, this::sendError); + } + + private void sendOnLoadingStarted() { if (this.mListener != null) mListener.onLoadingStarted(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_should_versamento_automatico_ul/DialogAskShouldVersamentoAutomaticoULView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_should_versamento_automatico_ul/DialogAskShouldVersamentoAutomaticoULView.java index f201a127..b9e78f1b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_should_versamento_automatico_ul/DialogAskShouldVersamentoAutomaticoULView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_should_versamento_automatico_ul/DialogAskShouldVersamentoAutomaticoULView.java @@ -1,17 +1,14 @@ package it.integry.integrywmsnative.view.dialogs.ask_should_versamento_automatico_ul; -import android.content.DialogInterface; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; +import android.app.Dialog; +import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.databinding.DataBindingUtil; + +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.jetbrains.annotations.NotNull; @@ -22,10 +19,9 @@ import it.integry.integrywmsnative.databinding.DialogAskShouldVersamentoAutomati public class DialogAskShouldVersamentoAutomaticoULView extends BaseDialogFragment { - private RunnableArgs mOnDismiss; + private final RunnableArgs mOnDismiss; private DialogAskShouldVersamentoAutomaticoUlBinding mBindings; - - private boolean returnValue = false; + private Context mContext; public static DialogAskShouldVersamentoAutomaticoULView newInstance(@NotNull RunnableArgs onDismiss) { return new DialogAskShouldVersamentoAutomaticoULView(onDismiss); @@ -37,39 +33,32 @@ public class DialogAskShouldVersamentoAutomaticoULView extends BaseDialogFragmen this.mOnDismiss = onDismiss; } - @Nullable + + @NonNull @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_should_versamento_automatico_ul, container, false); + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + this.mContext = requireContext(); + + mBindings = DialogAskShouldVersamentoAutomaticoUlBinding.inflate(LayoutInflater.from(this.mContext), null, false); mBindings.setLifecycleOwner(this); - - getDialog().setCanceledOnTouchOutside(false); - getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); - mBindings.setView(this); - return mBindings.getRoot(); - } + setCancelable(false); - @Override - public void onDismiss(@NonNull DialogInterface dialog) { - super.onDismiss(dialog); + var alertDialog = new MaterialAlertDialogBuilder(this.mContext) + .setView(mBindings.getRoot()) + .setCancelable(isCancelable()) + .setNegativeButton(R.string.no, (dialog, which) -> { + this.mOnDismiss.run(false); + }) + .setPositiveButton(R.string.yes, (dialog, which) -> { + this.mOnDismiss.run(true); + }) + .create(); - if (mOnDismiss != null) { - this.mOnDismiss.run(returnValue); - } - } - - - public void confirm() { - this.returnValue = true; - dismiss(); - } - - public void abort() { - this.returnValue = false; - dismiss(); + alertDialog.setCanceledOnTouchOutside(isCancelable()); + alertDialog.setOnShowListener(this); + return alertDialog; } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUModule.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUModule.java index 0f4aea1d..27bb2a77 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUModule.java @@ -2,14 +2,14 @@ package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu; import dagger.Module; import dagger.Provides; -import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer; @Module(subcomponents = DialogInfoAggiuntiveLUComponent.class) public class DialogInfoAggiuntiveLUModule { @Provides - DialogInfoAggiuntiveLUViewModel providesDialogInfoAggiuntiveLUViewModel(MagazzinoRESTConsumer magazzinoRESTConsumer) { - return new DialogInfoAggiuntiveLUViewModel(magazzinoRESTConsumer); + DialogInfoAggiuntiveLUViewModel providesDialogInfoAggiuntiveLUViewModel(ImballiRESTConsumer imballiRESTConsumer) { + return new DialogInfoAggiuntiveLUViewModel(imballiRESTConsumer); } } \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUView.java index ef85fd11..3adbb8f6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUView.java @@ -6,6 +6,7 @@ import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; +import android.view.WindowManager; import android.widget.AdapterView; import androidx.annotation.NonNull; @@ -98,19 +99,20 @@ public class DialogInfoAggiuntiveLUView extends BaseDialogFragment implements Di alertDialog.setCanceledOnTouchOutside(isCancelable()); alertDialog.setOnShowListener(this); + + alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN); return alertDialog; } @Override - public void onShow(DialogInterface dialogInterface) { - super.onShow(dialogInterface); + public void onInit(DialogInterface dialogInterface) { + super.onInit(dialogInterface); this.init(); this.mViewModel.init(); } - private void init() { if (this.currentMtbColt != null) this.additionalNotes.set(currentMtbColt.getAnnotazioni()); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUViewModel.java index 267649a3..08710e40 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUViewModel.java @@ -2,32 +2,33 @@ package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu; import androidx.lifecycle.MutableLiveData; +import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.model.MtbTCol; -import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer; public class DialogInfoAggiuntiveLUViewModel { private final MutableLiveData> tipiCollo = new MutableLiveData<>(); private Listener mListener; - private final MagazzinoRESTConsumer mMagazzinoRESTConsumer; + private final ImballiRESTConsumer imballiRESTConsumer; @Inject - public DialogInfoAggiuntiveLUViewModel(MagazzinoRESTConsumer mMagazzinoRESTConsumer) { - this.mMagazzinoRESTConsumer = mMagazzinoRESTConsumer; + public DialogInfoAggiuntiveLUViewModel(ImballiRESTConsumer imballiRESTConsumer) { + this.imballiRESTConsumer = imballiRESTConsumer; } public void init() { this.sendOnLoadingStarted(); - mMagazzinoRESTConsumer.getTipiCollo(tipiCollo -> { - this.tipiCollo.postValue(tipiCollo); + imballiRESTConsumer.retrieveTipiCollo(MtbTCol.FlagUiUlEnum.UL, tipiCollo -> { + this.tipiCollo.postValue(tipiCollo == null ? new ArrayList<>() : tipiCollo); this.sendOnLoadingEnded(); }, this::sendError); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdModule.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdModule.java index 53bac67c..90cad7d9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdModule.java @@ -2,15 +2,15 @@ package it.integry.integrywmsnative.view.dialogs.input_lu_prod; import dagger.Module; import dagger.Provides; -import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer; @Module(subcomponents = DialogInputLUProdComponent.class) public class DialogInputLUProdModule { @Provides - DialogInputLUProdViewModel providesDialogInputLUProdViewModel(MagazzinoRESTConsumer magazzinoRESTConsumer, MesRESTConsumer mesRESTConsumer) { - return new DialogInputLUProdViewModel(magazzinoRESTConsumer, mesRESTConsumer); + DialogInputLUProdViewModel providesDialogInputLUProdViewModel(ImballiRESTConsumer imballiRESTConsumer, MesRESTConsumer mesRESTConsumer) { + return new DialogInputLUProdViewModel(imballiRESTConsumer, mesRESTConsumer); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdViewModel.java index f87b2999..4f198759 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdViewModel.java @@ -12,12 +12,12 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingL import it.integry.integrywmsnative.core.model.JtbFasi; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbTCol; -import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer; import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; import it.integry.integrywmsnative.view.dialogs.exception.InvalidGrossWeightQuantityException; -import it.integry.integrywmsnative.view.dialogs.exception.InvalidProductionLineException; import it.integry.integrywmsnative.view.dialogs.exception.InvalidNumCnfQuantityException; +import it.integry.integrywmsnative.view.dialogs.exception.InvalidProductionLineException; public class DialogInputLUProdViewModel { @@ -50,19 +50,19 @@ public class DialogInputLUProdViewModel { private Listener mListener; - private final MagazzinoRESTConsumer mMagazzinoRESTConsumer; + private final ImballiRESTConsumer imballiRESTConsumer; private final MesRESTConsumer mMesRESTConsumer; @Inject - public DialogInputLUProdViewModel(MagazzinoRESTConsumer magazzinoRESTConsumer, MesRESTConsumer mesRESTConsumer) { - this.mMagazzinoRESTConsumer = magazzinoRESTConsumer; + public DialogInputLUProdViewModel(ImballiRESTConsumer imballiRESTConsumer, MesRESTConsumer mesRESTConsumer) { + this.imballiRESTConsumer = imballiRESTConsumer; this.mMesRESTConsumer = mesRESTConsumer; } public void init(String codJfasParent) { - new Thread(this::sendOnLoadingStarted).start(); + this.sendOnLoadingStarted(); - mMagazzinoRESTConsumer.getTipiCollo(tipiCollo -> { + imballiRESTConsumer.retrieveTipiCollo(MtbTCol.FlagUiUlEnum.UL, tipiCollo -> { this.mTipiColloLiveData.postValue(tipiCollo); mMesRESTConsumer.getLineeProduzione(codJfasParent, jtbFasi -> { diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_peso_lu/DialogInputPesoLUView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_peso_lu/DialogInputPesoLUView.java index b2e7a787..da86ff71 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_peso_lu/DialogInputPesoLUView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_peso_lu/DialogInputPesoLUView.java @@ -24,7 +24,7 @@ import it.integry.integrywmsnative.core.di.BindableString; import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; import it.integry.integrywmsnative.core.expansion.RunnableArgsss; import it.integry.integrywmsnative.core.model.MtbTCol; -import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityNumber; import it.integry.integrywmsnative.databinding.DialogInputPesoLuBinding; @@ -35,7 +35,7 @@ public class DialogInputPesoLUView extends BaseDialogFragment { DialogInputPesoLUViewModel mViewModel; @Inject - MagazzinoRESTConsumer magazzinoRESTConsumer; + ImballiRESTConsumer imballiRESTConsumer; private DialogInputPesoLuBinding mBindings; private Context mContext; @@ -98,7 +98,7 @@ public class DialogInputPesoLUView extends BaseDialogFragment { private void init() { - magazzinoRESTConsumer.getTipiCollo(codTcols -> { + imballiRESTConsumer.retrieveTipiCollo(MtbTCol.FlagUiUlEnum.UL, codTcols -> { this.codTcolList = codTcols; List codTcolDescriptions = Stream.of(codTcols) 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 42609532..6b7af810 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 @@ -641,8 +641,7 @@ public class DialogInputQuantityV2ViewModel { } private MtbPartitaMag retrievePartitaMag(String partitaMag, String codMart) throws Exception { - return mMagazzinoRESTConsumer.retrievePartitaMagSyncronized(partitaMag, codMart, this::sendError); - + return mMagazzinoRESTConsumer.retrievePartitaMagSyncronized(partitaMag, codMart); } public DialogInputQuantityV2ResultDTO getResult() { diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUView.java index 8e0e9f72..ffd5aae7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUView.java @@ -107,7 +107,7 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial var alertDialog = new MaterialAlertDialogBuilder(requireContext()) .setView(mBindings.getRoot()) - .setCancelable(false) + .setCancelable(isCancelable()) .create(); alertDialog.setCanceledOnTouchOutside(false); alertDialog.setOnShowListener(this); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiComponent.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiComponent.java new file mode 100644 index 00000000..ecfb042b --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiComponent.java @@ -0,0 +1,14 @@ +package it.integry.integrywmsnative.view.dialogs.tracciamento_imballi; + +import dagger.Subcomponent; + +@Subcomponent +public interface DialogTracciamentoImballiComponent { + + @Subcomponent.Factory + interface Factory { + DialogTracciamentoImballiComponent create(); + } + + void inject(DialogTracciamentoImballiView dialogTracciamentoImballiView); +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiModule.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiModule.java new file mode 100644 index 00000000..37e35e76 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiModule.java @@ -0,0 +1,15 @@ +package it.integry.integrywmsnative.view.dialogs.tracciamento_imballi; + +import dagger.Module; +import dagger.Provides; +import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer; + +@Module(subcomponents = DialogTracciamentoImballiComponent.class) +public class DialogTracciamentoImballiModule { + + @Provides + DialogTracciamentoImballiViewModel providesDialogTracciamentoImballiViewModel(ImballiRESTConsumer imballiRESTConsumer) { + return new DialogTracciamentoImballiViewModel(imballiRESTConsumer); + } + +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiView.java new file mode 100644 index 00000000..8c6a7cf2 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiView.java @@ -0,0 +1,207 @@ +package it.integry.integrywmsnative.view.dialogs.tracciamento_imballi; + +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.WindowManager; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.PopupMenu; +import androidx.databinding.ObservableBoolean; +import androidx.databinding.ObservableList; + +import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.ravikoradiya.liveadapter.LiveAdapter; +import com.ravikoradiya.liveadapter.Type; + +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +import javax.inject.Inject; + +import it.integry.integrywmsnative.BR; +import it.integry.integrywmsnative.MainApplication; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; +import it.integry.integrywmsnative.core.expansion.OnGeneralChangedCallback; +import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.databinding.DialogTracciamentoImballiBinding; +import it.integry.integrywmsnative.databinding.DialogTracciamentoImballiListItemModelBinding; +import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.adapter.DialogTracciamentoImballi_TipoColloAdapter; + +public class DialogTracciamentoImballiView extends BaseDialogFragment implements DialogTracciamentoImballiViewModel.Listener { + + @Inject + DialogTracciamentoImballiViewModel mViewModel; + + + public final ObservableBoolean canAddMoreItems = new ObservableBoolean(true); + public DialogTracciamentoImballi_TipoColloAdapter tipoColloAdapter; + + + private DialogTracciamentoImballiBinding mBindings; + private Context mContext; + private final RunnableArgs> onComplete; + + //Pass here all external parameters + public static DialogTracciamentoImballiView newInstance(@NotNull RunnableArgs> onComplete) { + return new DialogTracciamentoImballiView(onComplete); + } + + private DialogTracciamentoImballiView(@NotNull RunnableArgs> onComplete) { + super(); + + this.onComplete = onComplete; + + MainApplication.appComponent + .dialogTracciamentoImballiComponent() + .create() + .inject(this); + + } + + + @NonNull + @Override + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + this.mContext = requireContext(); + + mBindings = DialogTracciamentoImballiBinding.inflate(LayoutInflater.from(this.mContext), null, false); + mBindings.setLifecycleOwner(this); + mBindings.setViewmodel(this.mViewModel); + mBindings.setView(this); + + setCancelable(false); + + var alertDialog = new MaterialAlertDialogBuilder(this.mContext) + .setView(mBindings.getRoot()) + .setCancelable(isCancelable()) + .setNeutralButton(R.string.action_close, null) + .setPositiveButton(R.string.confirm, (dialog, which) -> { + this.onComplete.run(this.mViewModel.getImballiRegistrati().getValue()); + }) + .create(); + + alertDialog.setCanceledOnTouchOutside(isCancelable()); + alertDialog.setOnShowListener(this); + return alertDialog; + } + + + @Override + public void onInit(DialogInterface dialogInterface) { + super.onInit(dialogInterface); + + this.initAdapter(); + this.initRecyclerView(); + + this.mViewModel.getImballiRegistrati().observe(this, data -> { + onEditableChangedCallback.run(); + + data.forEach(x -> { + x.getEditable().removeOnPropertyChangedCallback(onEditableChangedCallback); + x.getEditable().addOnPropertyChangedCallback(onEditableChangedCallback); + }); + }); + + this.mViewModel + .setListener(this) + .init(); + } + + private void initAdapter() { + mViewModel.getImballiDisponibili().addOnListChangedCallback(new OnListGeneralChangedCallback<>() { + @Override + public void onChanged(ObservableList sender) { + var list = mViewModel.getImballiDisponibili(); + + tipoColloAdapter = new DialogTracciamentoImballi_TipoColloAdapter(mContext, R.layout.array_adapter_single_item, list); + } + }); + + } + + private final OnGeneralChangedCallback onEditableChangedCallback = new OnGeneralChangedCallback() { + @Override + public void run() { + var allNotEditable = mViewModel.getImballiRegistrati().getValue() + .stream() + .noneMatch(TracciamentoImballoDTO::isEditable); + canAddMoreItems.set(allNotEditable); + } + }; + + @Override + public void onShow(DialogInterface dialogInterface) { + super.onShow(dialogInterface); + + //StackOverflow + //The problem seems to be (at least in my case), that since the place where you enter text + // is hidden initially (or nested or something), AlertDialog is automatically setting the + // flag WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM (or some combination of that and + // WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) so that things don't trigger + // a soft input to show up. + getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); + + + getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); + } + + + private void initRecyclerView() { + var itemType = new Type(R.layout.dialog_tracciamento_imballi__list_item_model, BR.item); + itemType.onBind(dialogTracciamentoImballiListItemModelBindingHolder -> { + var itemBinding = dialogTracciamentoImballiListItemModelBindingHolder.getBinding(); + + itemBinding.filledExposedDropdownArticolo.setText(""); + itemBinding.textInputQta.setText(""); + + itemBinding.filledExposedDropdownArticolo.setAdapter(tipoColloAdapter); + itemBinding.filledExposedDropdownArticolo.setOnItemClickListener((adapterView, view, i, l) -> { + + var tipoCollo = ((DialogTracciamentoImballi_TipoColloAdapter.ListModel) adapterView.getItemAtPosition(i)).getOriginalModel(); + + itemBinding.getItem().setCodMart(tipoCollo.getCodMart()) + .setDescrizione(tipoCollo.getDescrizione()) + .setCodMart(tipoCollo.getCodMart()); + }); + + return null; + }); + itemType.onLongClick(dialogTracciamentoImballiListItemModelBindingHolder -> { + var popupMenu = new PopupMenu(requireContext(), dialogTracciamentoImballiListItemModelBindingHolder.itemView); + var inflater = popupMenu.getMenuInflater(); + inflater.inflate(R.menu.edit_delete_menu, popupMenu.getMenu()); + + popupMenu.setOnMenuItemClickListener(item -> { + int itemId = item.getItemId(); + + if (itemId == R.id.edit) { + dialogTracciamentoImballiListItemModelBindingHolder.getBinding().getItem().setEditable(true); + return true; + } else if (itemId == R.id.delete) { + var itemToDelete = dialogTracciamentoImballiListItemModelBindingHolder.getBinding().getItem(); + mViewModel.deleteImballo(itemToDelete); + return true; + } + + return false; + }); + + popupMenu.show(); + + return null; + }); + itemType.areContentsTheSame(TracciamentoImballoDTO::equals); + + new LiveAdapter(this.mViewModel.getImballiRegistrati(), this) + .map(TracciamentoImballoDTO.class, itemType) + .into(this.mBindings.recyclerview); + } + +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiViewModel.java new file mode 100644 index 00000000..dcfdb4aa --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/DialogTracciamentoImballiViewModel.java @@ -0,0 +1,92 @@ +package it.integry.integrywmsnative.view.dialogs.tracciamento_imballi; + +import androidx.databinding.ObservableArrayList; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; +import it.integry.integrywmsnative.core.model.MtbTCol; +import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer; + +public class DialogTracciamentoImballiViewModel { + + private final ImballiRESTConsumer imballiRESTConsumer; + + private final MutableLiveData> imballiRegistrati = new MutableLiveData<>(new ArrayList<>()); + private final ObservableArrayList imballiDisponibili = new ObservableArrayList<>(); + + private Listener mListener; + + public DialogTracciamentoImballiViewModel(ImballiRESTConsumer imballiRESTConsumer) { + this.imballiRESTConsumer = imballiRESTConsumer; + } + + + public void init() { + this.imballiRESTConsumer.retrieveTipiCollo(MtbTCol.FlagUiUlEnum.UI, tipiCollo -> { + + if (tipiCollo == null || tipiCollo.isEmpty()) + return; + + imballiDisponibili.addAll(tipiCollo); + }, this::sendError); + } + + + public LiveData> getImballiRegistrati() { + return imballiRegistrati; + } + + public ObservableArrayList getImballiDisponibili() { + return imballiDisponibili; + } + + public void addNew() { + var tmp = imballiRegistrati.getValue(); + tmp.add(new TracciamentoImballoDTO()); + + imballiRegistrati.postValue(tmp); + } + + public void saveCurrent() { + var currentOpened = imballiRegistrati.getValue().stream() + .filter(TracciamentoImballoDTO::isEditable) + .findFirst() + .orElse(null); + + currentOpened.setEditable(!currentOpened.isEditable()); + } + + + public void deleteImballo(TracciamentoImballoDTO imballoToRemove) { + Objects.requireNonNull(this.imballiRegistrati.getValue()).remove(imballoToRemove); + imballiRegistrati.postValue(imballiRegistrati.getValue()); + } + + + private void sendOnLoadingStarted() { + if (this.mListener != null) mListener.onLoadingStarted(); + } + + private void sendOnLoadingEnded() { + if (this.mListener != null) mListener.onLoadingEnded(); + } + + private void sendError(Exception ex) { + if (this.mListener != null) mListener.onError(ex); + } + + public DialogTracciamentoImballiViewModel setListener(Listener listener) { + this.mListener = listener; + return this; + } + + interface Listener extends ILoadingListener { + void onError(Exception ex); + } + +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/TracciamentoImballoDTO.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/TracciamentoImballoDTO.java new file mode 100644 index 00000000..94e39eb8 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/TracciamentoImballoDTO.java @@ -0,0 +1,84 @@ +package it.integry.integrywmsnative.view.dialogs.tracciamento_imballi; + +import androidx.databinding.ObservableBoolean; +import androidx.databinding.ObservableField; + +public class TracciamentoImballoDTO { + + private final ObservableField codTcol = new ObservableField<>(); + private final ObservableField descrizione = new ObservableField<>(); + private final ObservableField codMart = new ObservableField<>(); + private final ObservableField qta = new ObservableField(); + + private final ObservableBoolean editable = new ObservableBoolean(true); + + public ObservableField getCodTcol() { + return codTcol; + } + + public ObservableField getDescrizione() { + return descrizione; + } + + public ObservableField getCodMart() { + return codMart; + } + + public ObservableField getQta() { + return qta; + } + + public TracciamentoImballoDTO setCodTcol(String codTcol) { + this.codTcol.set(codTcol); + return this; + } + + public TracciamentoImballoDTO setDescrizione(String descrizione) { + this.descrizione.set(descrizione); + return this; + } + + public TracciamentoImballoDTO setCodMart(String codMart) { + this.codMart.set(codMart); + return this; + } + + public TracciamentoImballoDTO setQta(Integer qta) { + this.qta.set(qta); + return this; + } + + public ObservableBoolean getEditable() { + return editable; + } + + public boolean isEditable() { + return editable.get(); + } + + public void setEditable(boolean editable) { + this.editable.set(editable); + } + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + TracciamentoImballoDTO that = (TracciamentoImballoDTO) o; + + if (!getCodTcol().equals(that.getCodTcol())) return false; + if (!getDescrizione().equals(that.getDescrizione())) return false; + if (!getCodMart().equals(that.getCodMart())) return false; + if (!getQta().equals(that.getQta())) return false; + return true; + } + + @Override + public int hashCode() { + int result = getCodTcol() != null ? getCodTcol().hashCode() : 0; + result = 31 * result + (getQta() != null ? getQta().hashCode() : 0); + return result; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/adapter/DialogTracciamentoImballi_TipoColloAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/adapter/DialogTracciamentoImballi_TipoColloAdapter.java new file mode 100644 index 00000000..a01e93e4 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/tracciamento_imballi/adapter/DialogTracciamentoImballi_TipoColloAdapter.java @@ -0,0 +1,48 @@ +package it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.adapter; + +import android.content.Context; +import android.widget.ArrayAdapter; + +import androidx.annotation.NonNull; + +import com.annimon.stream.Stream; + +import java.util.List; + +import it.integry.integrywmsnative.core.model.MtbTCol; + +public class DialogTracciamentoImballi_TipoColloAdapter extends ArrayAdapter { + + public DialogTracciamentoImballi_TipoColloAdapter(@NonNull Context context, int resource, List inputData) { + super(context, resource); + + if(inputData == null) return; + + List mDataset = Stream.of(inputData) + .map(x -> new ListModel() + .setOriginalModel(x)) + .toList(); + + addAll(mDataset); + } + + public static class ListModel { + + private MtbTCol originalModel; + + public MtbTCol getOriginalModel() { + return originalModel; + } + public ListModel setOriginalModel(MtbTCol originalModel) { + this.originalModel = originalModel; + return this; + } + + @Override + public String toString() { + return this.getOriginalModel().getDescrizione(); + //return this.getOriginalModel().getCodDtip() + " - " + this.getOriginalModel().getDescrizione(); + } + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/versamento_automatico_ul_done/DialogVersamentoAutomaticoULDoneView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/versamento_automatico_ul_done/DialogVersamentoAutomaticoULDoneView.java index d54c7d2f..e288dd1d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/versamento_automatico_ul_done/DialogVersamentoAutomaticoULDoneView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/versamento_automatico_ul_done/DialogVersamentoAutomaticoULDoneView.java @@ -1,26 +1,23 @@ package it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done; +import android.app.Dialog; +import android.content.Context; import android.content.DialogInterface; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.text.Html; import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; -import androidx.databinding.DataBindingUtil; + +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.jetbrains.annotations.NotNull; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO; -import it.integry.integrywmsnative.core.utility.UtilityDialog; import it.integry.integrywmsnative.databinding.DialogVersamentoAutomaticoUlDoneBinding; public class DialogVersamentoAutomaticoULDoneView extends BaseDialogFragment { @@ -29,6 +26,7 @@ public class DialogVersamentoAutomaticoULDoneView extends BaseDialogFragment { private final Runnable mOnDismiss; private DialogVersamentoAutomaticoUlDoneBinding mBindings; + private Context mContext; public static DialogVersamentoAutomaticoULDoneView newInstance(@NotNull VersamentoAutomaticoULResponseDTO versamentoAutomaticoULResponseDTO, @NotNull Runnable onDismiss) { return new DialogVersamentoAutomaticoULDoneView(versamentoAutomaticoULResponseDTO, onDismiss); @@ -41,36 +39,40 @@ public class DialogVersamentoAutomaticoULDoneView extends BaseDialogFragment { this.mOnDismiss = onDismiss; } - @Nullable + + @NonNull @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_versamento_automatico_ul_done, container, false); + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + this.mContext = requireContext(); + + mBindings = DialogVersamentoAutomaticoUlDoneBinding.inflate(LayoutInflater.from(this.mContext), null, false); mBindings.setLifecycleOwner(this); - - getDialog().setCanceledOnTouchOutside(false); - getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); - - UtilityDialog.setTo95PercentWidth(requireContext(), this); - mBindings.setView(this); + setCancelable(false); + + var alertDialog = new MaterialAlertDialogBuilder(this.mContext) + .setView(mBindings.getRoot()) + .setCancelable(isCancelable()) + .setNeutralButton(R.string.action_close, (dialog, which) -> this.mOnDismiss.run()) + .setPositiveButton(R.string.ok, (dialog, which) -> { + this.mOnDismiss.run(); + }) + .create(); + + alertDialog.setCanceledOnTouchOutside(isCancelable()); + alertDialog.setOnShowListener(this); + return alertDialog; + } + + @Override + public void onInit(DialogInterface dialogInterface) { + super.onInit(dialogInterface); + this.initTitle(); this.initContent(); - - return mBindings.getRoot(); } - @Override - public void onDismiss(@NonNull DialogInterface dialog) { - super.onDismiss(dialog); - - if (mOnDismiss != null) { - this.mOnDismiss.run(); - } - } - - private void initTitle() { int colorBackgroundTitle = -1; @@ -82,8 +84,7 @@ public class DialogVersamentoAutomaticoULDoneView extends BaseDialogFragment { colorBackgroundTitle = ContextCompat.getColor(requireContext(), R.color.yellow_600); } - - mBindings.base.setBackgroundColor(colorBackgroundTitle); + mBindings.icon.setColorFilter(colorBackgroundTitle); } private void initContent() { @@ -99,72 +100,6 @@ public class DialogVersamentoAutomaticoULDoneView extends BaseDialogFragment { } mBindings.descriptionText.setText(Html.fromHtml(text)); - - - - -// var notCompletedListAdapter = new BaseAdapter() { -// -// @Override -// public View getView(int position, View convertView, ViewGroup parent) { -// -// var mtbColr = versamentoAutomaticoULResponseDTO.getFailed().get(position); -// -// var inflater = LayoutInflater.from(requireContext()); -// DialogVersamentoAutomaticoUlDoneNotCompletedListItemBinding binding = null; -// -// if(convertView == null) { -// binding = DataBindingUtil.inflate(inflater, R.layout.dialog_versamento_automatico_ul_done__not_completed_list_item, parent, false); -// } else { -// binding = DataBindingUtil.findBinding(convertView); -// } -// -// binding.setItem(mtbColr); -// -// convertView = binding.getRoot(); -// -// //Setting qty with unt_mis -// if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())) { -// String text = UtilityNumber.decimalToString(mtbColr.getQtaCol()); -// -// -// if (mtbColr.getMtbAart() != null) { -// text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : ""; -// } -// -// binding.qtaTextview.setText(text); -// } else { -// binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col)); -// } -// -// return convertView; -// } -// -// @Override -// public long getItemId(int position) { -// return position; -// } -// -// @Override -// public Object getItem(int position) { -// return position; -// } -// -// @Override -// public int getCount() { -// return versamentoAutomaticoULResponseDTO.getFailed().size(); -// } -// }; -// -// -// mBindings.detailsNotCompletedList.setAdapter(notCompletedListAdapter); - } - -// public void toggleDetailVisibility() { -// mBindings.detailsContainer.toggle(true); -// } - - } diff --git a/app/src/main/res/drawable/circular_background.xml b/app/src/main/res/drawable/circular_background.xml new file mode 100644 index 00000000..839d093c --- /dev/null +++ b/app/src/main/res/drawable/circular_background.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_add_to_inbox.xml b/app/src/main/res/drawable/ic_add_to_inbox.xml new file mode 100644 index 00000000..9609a558 --- /dev/null +++ b/app/src/main/res/drawable/ic_add_to_inbox.xml @@ -0,0 +1,10 @@ + + + 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 index bd3f67a7..590b41e2 100644 --- 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 @@ -25,7 +25,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/badge_round_corner" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:paddingLeft="6dp" android:paddingTop="2dp" android:paddingRight="6dp" diff --git a/app/src/main/res/layout/accettazione_main_list_group_model.xml b/app/src/main/res/layout/accettazione_main_list_group_model.xml index 71c42cc4..b4f75028 100644 --- a/app/src/main/res/layout/accettazione_main_list_group_model.xml +++ b/app/src/main/res/layout/accettazione_main_list_group_model.xml @@ -6,25 +6,23 @@ name="selected" type="it.integry.integrywmsnative.core.di.BindableBoolean" /> - - + android:paddingStart="2dp" + android:paddingEnd="4dp" + android:paddingVertical="2dp"> - - + android:layout_height="wrap_content" + android:paddingStart="2dp" + android:background="@color/mainGreen"> - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml index efca9ac0..bb2b26fa 100644 --- a/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml +++ b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml @@ -25,7 +25,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/badge_round_corner" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:paddingLeft="6dp" android:paddingTop="2dp" android:paddingRight="6dp" diff --git a/app/src/main/res/layout/activity_contab_doc_interni_edit.xml b/app/src/main/res/layout/activity_contab_doc_interni_edit.xml index 079e221e..97ade67d 100644 --- a/app/src/main/res/layout/activity_contab_doc_interni_edit.xml +++ b/app/src/main/res/layout/activity_contab_doc_interni_edit.xml @@ -81,7 +81,7 @@ diff --git a/app/src/main/res/layout/activity_contab_doc_interno_row__list_single_item.xml b/app/src/main/res/layout/activity_contab_doc_interno_row__list_single_item.xml index 8cadf3fc..69d0c69b 100644 --- a/app/src/main/res/layout/activity_contab_doc_interno_row__list_single_item.xml +++ b/app/src/main/res/layout/activity_contab_doc_interno_row__list_single_item.xml @@ -34,7 +34,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{item.codMart}" - android:textColor="@color/colorPrimary" + android:textColor="?colorPrimary" android:textSize="14sp" android:textStyle="bold" tools:text="COD MART" /> @@ -76,7 +76,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/badge_round_corner" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:gravity="center" android:paddingLeft="6dp" android:paddingTop="2dp" diff --git a/app/src/main/res/layout/activity_picking_inventario.xml b/app/src/main/res/layout/activity_picking_inventario.xml index 93a609bc..d1e97950 100644 --- a/app/src/main/res/layout/activity_picking_inventario.xml +++ b/app/src/main/res/layout/activity_picking_inventario.xml @@ -67,7 +67,7 @@ android:id="@+id/profile_root_container" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/colorPrimary" + android:background="?colorPrimary" android:orientation="horizontal" android:padding="16dp"> diff --git a/app/src/main/res/layout/activity_picking_inventario__list_item.xml b/app/src/main/res/layout/activity_picking_inventario__list_item.xml index d79129ad..ea6b85ec 100644 --- a/app/src/main/res/layout/activity_picking_inventario__list_item.xml +++ b/app/src/main/res/layout/activity_picking_inventario__list_item.xml @@ -114,7 +114,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/badge_round_corner" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:gravity="center" android:paddingLeft="6dp" android:paddingTop="2dp" diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 7ef59bc9..85185b20 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -5,7 +5,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/colorPrimary" + android:background="?colorPrimary" tools:context=".SplashActivity"> @@ -119,7 +119,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/badge_round_corner" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:gravity="center" android:paddingLeft="6dp" android:paddingTop="2dp" diff --git a/app/src/main/res/layout/dialog_ask_cliente__page1.xml b/app/src/main/res/layout/dialog_ask_cliente__page1.xml index b89e8b23..88b55468 100644 --- a/app/src/main/res/layout/dialog_ask_cliente__page1.xml +++ b/app/src/main/res/layout/dialog_ask_cliente__page1.xml @@ -97,7 +97,7 @@ app:layout_constraintEnd_toStartOf="@id/center_buttons_guideline" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/input_commessa" - app:strokeColor="@color/colorPrimary" /> + app:strokeColor="?colorPrimary" /> + app:strokeColor="?colorPrimary" /> diff --git a/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml b/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml index 0f986634..f92a05ae 100644 --- a/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml +++ b/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml @@ -40,7 +40,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/Button.PrimaryOutline" - app:strokeColor="@color/colorPrimary" + app:strokeColor="?colorPrimary" android:layout_marginEnd="8dp" android:text="@string/abort"/> diff --git a/app/src/main/res/layout/dialog_ask_should_print.xml b/app/src/main/res/layout/dialog_ask_should_print.xml index 4a2d6653..2bdd284f 100644 --- a/app/src/main/res/layout/dialog_ask_should_print.xml +++ b/app/src/main/res/layout/dialog_ask_should_print.xml @@ -81,7 +81,7 @@ app:layout_constraintEnd_toStartOf="@id/center_buttons_guideline" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:strokeColor="@color/colorPrimary" /> + app:strokeColor="?colorPrimary" /> + @@ -13,101 +14,41 @@ android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:orientation="vertical" - app:cardCornerRadius="12dp" + app:cardCornerRadius="16dp" app:cardElevation="0dp"> + + android:orientation="vertical" + android:paddingHorizontal="16dp" + android:paddingVertical="16dp"> - + + + + android:layout_marginBottom="16dp" + android:gravity="center_horizontal" + android:text="@string/versamento_automatico" /> - - - - - - - - - - - - - - - - - - - - - - - - - - + android:gravity="center_horizontal" + android:text="@string/ask_should_versamento_automatico" /> diff --git a/app/src/main/res/layout/dialog_available_intventario_items__item_model.xml b/app/src/main/res/layout/dialog_available_intventario_items__item_model.xml index fe443ded..fdb769ac 100644 --- a/app/src/main/res/layout/dialog_available_intventario_items__item_model.xml +++ b/app/src/main/res/layout/dialog_available_intventario_items__item_model.xml @@ -35,7 +35,7 @@ android:layout_alignParentStart="true" android:layout_toStartOf="@id/already_inventariato" android:text="@{item.codMart}" - android:textColor="@color/colorPrimary" + android:textColor="?colorPrimary" android:textSize="14sp" android:textStyle="bold" android:layout_marginTop="8dp" diff --git a/app/src/main/res/layout/dialog_base.xml b/app/src/main/res/layout/dialog_base.xml index 800e6e51..c7a6743f 100644 --- a/app/src/main/res/layout/dialog_base.xml +++ b/app/src/main/res/layout/dialog_base.xml @@ -191,7 +191,7 @@ - + @@ -236,7 +236,7 @@ - + diff --git a/app/src/main/res/layout/dialog_basket_lu__mtb_colr_model.xml b/app/src/main/res/layout/dialog_basket_lu__mtb_colr_model.xml index 5e0d56e5..76a632d1 100644 --- a/app/src/main/res/layout/dialog_basket_lu__mtb_colr_model.xml +++ b/app/src/main/res/layout/dialog_basket_lu__mtb_colr_model.xml @@ -41,7 +41,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{mtbColr.codMart}" - android:textColor="@color/colorPrimary" + android:textColor="?colorPrimary" android:textSize="14sp" android:textStyle="bold" style="@style/AppTheme.NewMaterial.Text" @@ -121,7 +121,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/badge_round_corner" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:gravity="center" android:paddingLeft="6dp" android:paddingTop="2dp" diff --git a/app/src/main/res/layout/dialog_basket_lu__mtb_colt_model.xml b/app/src/main/res/layout/dialog_basket_lu__mtb_colt_model.xml index a50e5ef3..2cb0bacc 100644 --- a/app/src/main/res/layout/dialog_basket_lu__mtb_colt_model.xml +++ b/app/src/main/res/layout/dialog_basket_lu__mtb_colt_model.xml @@ -39,7 +39,7 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="12dp" android:background="@drawable/badge_round_corner" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:layout_gravity="center" android:paddingLeft="6dp" android:paddingTop="2dp" diff --git a/app/src/main/res/layout/dialog_basket_lu__page2.xml b/app/src/main/res/layout/dialog_basket_lu__page2.xml index 604a52ba..17a80322 100644 --- a/app/src/main/res/layout/dialog_basket_lu__page2.xml +++ b/app/src/main/res/layout/dialog_basket_lu__page2.xml @@ -116,7 +116,7 @@ app:layout_constraintEnd_toStartOf="@id/center_buttons_guideline" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:strokeColor="@color/colorPrimary" /> + app:strokeColor="?colorPrimary" /> diff --git a/app/src/main/res/layout/dialog_choose_arts_from_mtb_aart_list__item_model.xml b/app/src/main/res/layout/dialog_choose_arts_from_mtb_aart_list__item_model.xml index 53dac773..df2d8991 100644 --- a/app/src/main/res/layout/dialog_choose_arts_from_mtb_aart_list__item_model.xml +++ b/app/src/main/res/layout/dialog_choose_arts_from_mtb_aart_list__item_model.xml @@ -53,7 +53,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{item.codMart}" - android:textColor="@color/colorPrimary" + android:textColor="?colorPrimary" android:textSize="14sp" android:textStyle="bold" tools:text="COD MART" /> @@ -112,7 +112,7 @@ android:layout_marginStart="12dp" android:gravity="center_horizontal" android:background="@drawable/badge_round_corner" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:visibility="@{item.qta != null ? View.VISIBLE : View.GONE}"> @@ -116,7 +116,7 @@ android:layout_marginStart="8dp" android:padding="6dp" android:background="@drawable/badge_round_corner" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:gravity="center_horizontal" android:orientation="vertical" android:visibility="@{item.mtbColr.qtaCol != null ? View.VISIBLE : View.GONE}"> @@ -125,7 +125,7 @@ diff --git a/app/src/main/res/layout/dialog_info_aggiuntive_lu.xml b/app/src/main/res/layout/dialog_info_aggiuntive_lu.xml index 52185c8f..2b7a4ffe 100644 --- a/app/src/main/res/layout/dialog_info_aggiuntive_lu.xml +++ b/app/src/main/res/layout/dialog_info_aggiuntive_lu.xml @@ -53,7 +53,7 @@ android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@id/title_text" app:layout_constraintBottom_toTopOf="@id/level_number_layout" - android:visibility="@{viewModel.tipiCollo.empty ? View.GONE : View.VISIBLE}" + android:visibility="@{viewModel.tipiCollo == null || viewModel.tipiCollo.empty ? View.GONE : View.VISIBLE}" android:hint="@string/lu_type"> + app:strokeColor="?colorPrimary" /> @@ -612,7 +612,7 @@ android:layout_marginStart="2dp" android:layout_weight="0.5" android:background="@drawable/badge_round_corner" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:orientation="vertical" android:padding="8dp" android:visibility="@{viewmodel.totalNumCnfAvailable != null || viewmodel.totalQtaAvailable != null ? View.VISIBLE : View.GONE}"> @@ -983,7 +983,7 @@ android:layout_weight="1" android:onClick="@{() -> view.saveAndCloseLU()}" android:text="@string/action_close_ul" - app:strokeColor="@color/colorPrimary" + app:strokeColor="?colorPrimary" app:visibility="@{view.enabledLUCloseButton}" /> diff --git a/app/src/main/res/layout/dialog_pv_edit_articolo.xml b/app/src/main/res/layout/dialog_pv_edit_articolo.xml index cce298cc..2b8a8472 100644 --- a/app/src/main/res/layout/dialog_pv_edit_articolo.xml +++ b/app/src/main/res/layout/dialog_pv_edit_articolo.xml @@ -63,7 +63,7 @@ android:layout_toStartOf="@id/unt_mis" android:ellipsize="end" android:text="@{view.articolo.codMart}" - android:textColor="@color/colorPrimary" + android:textColor="?colorPrimary" tools:text="020100514" /> @@ -516,7 +516,7 @@ android:layout_marginStart="2dp" android:layout_weight="1" android:background="@drawable/badge_round_corner" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:orientation="vertical" android:padding="8dp"> diff --git a/app/src/main/res/layout/dialog_select_art_to_order__item_model.xml b/app/src/main/res/layout/dialog_select_art_to_order__item_model.xml index f40b1f05..ac8197e3 100644 --- a/app/src/main/res/layout/dialog_select_art_to_order__item_model.xml +++ b/app/src/main/res/layout/dialog_select_art_to_order__item_model.xml @@ -76,7 +76,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{row.codMart}" - android:textColor="@color/colorPrimary" + android:textColor="?colorPrimary" android:textSize="14sp" android:textStyle="bold" tools:text="COD MART" /> @@ -117,7 +117,7 @@ android:layout_centerVertical="true" android:layout_marginStart="8dp" android:background="@drawable/badge_round_corner" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:gravity="center_horizontal" android:orientation="vertical" android:padding="6dp"> @@ -127,7 +127,7 @@ style="@style/TextAppearance.AppCompat.Small" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:gravity="center" android:text="@{row.codAlis}" android:textAllCaps="true" diff --git a/app/src/main/res/layout/dialog_select_doc_rows__item_model.xml b/app/src/main/res/layout/dialog_select_doc_rows__item_model.xml index 9a797b51..119eadb1 100644 --- a/app/src/main/res/layout/dialog_select_doc_rows__item_model.xml +++ b/app/src/main/res/layout/dialog_select_doc_rows__item_model.xml @@ -73,7 +73,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{row.codMart}" - android:textColor="@color/colorPrimary" + android:textColor="?colorPrimary" android:textSize="14sp" android:textStyle="bold" tools:text="COD MART" /> @@ -114,7 +114,7 @@ android:layout_centerVertical="true" android:layout_marginStart="8dp" android:background="@drawable/badge_round_corner" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:gravity="center_horizontal" android:orientation="vertical" android:padding="6dp"> @@ -124,7 +124,7 @@ style="@style/TextAppearance.AppCompat.Small" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:backgroundTint="@color/colorPrimary" + android:backgroundTint="?colorPrimary" android:gravity="center" android:text="@{UtilityNumber.decimalToString(row.qtaOrd)}" android:textAllCaps="true" diff --git a/app/src/main/res/layout/dialog_tracciamento_imballi.xml b/app/src/main/res/layout/dialog_tracciamento_imballi.xml new file mode 100644 index 00000000..465887a7 --- /dev/null +++ b/app/src/main/res/layout/dialog_tracciamento_imballi.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +