diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index f933bcae..c9951824 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -1,25 +1,17 @@ - + - + - - + + - - - - - - - - - - + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 92aeffef..cc9abfcf 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 294 - def appVersionName = '1.28.0' + def appVersionCode = 295 + def appVersionName = '1.28.1' signingConfigs { release { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java index c03ca174..a56b35d2 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java @@ -19,7 +19,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt; -@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 9, exportSchema = false) +@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 10, exportSchema = false) @TypeConverters({ DateConverter.class, BigDecimalConverter.class diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java index 9480717b..4781b024 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java @@ -53,6 +53,6 @@ public interface ArticoloGrigliaDao { @Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId") List getArticoliFromGriglia(int grigliaId); - @Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId AND new_no_promo = 1") + @Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId AND qta_ord >= 1") List getNewArticoliInGriglia(int grigliaId); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java index 329820ba..4602b8e2 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java @@ -71,6 +71,9 @@ public class ArticoloGriglia { @ColumnInfo(name = "qta_proposta") private float qtaProposta; + @ColumnInfo(name = "qta_ord") + private float qtaOrd; + @ColumnInfo(name = "id_griglia") private int idGriglia; @@ -205,6 +208,14 @@ public class ArticoloGriglia { this.newNoPromo = newNoPromo; } + public float getQtaOrd() { + return qtaOrd; + } + + public void setQtaOrd(float qtaOrd) { + this.qtaOrd = qtaOrd; + } + public String generateSystemNote() { HashMap pairs = new HashMap<>(); pairs.put("qta_proposta", String.valueOf(qtaProposta)); @@ -234,8 +245,7 @@ public class ArticoloGriglia { articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta())); articolo.setNewNoPromo(this.isNewNoPromo()); articolo.setSystemNote(generateSystemNote()); - - articolo.setQtaOrd(0); + articolo.setQtaOrd(this.getQtaOrd()); return articolo; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Ordine.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Ordine.java index 34407354..5f7e35a5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Ordine.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Ordine.java @@ -50,6 +50,9 @@ public class Ordine { @Ignore private int countArticoli = 0; + @Ignore + private boolean orderNewProducts = false; + @ColumnInfo(name = "id_griglia") private int idGriglia; @@ -149,4 +152,13 @@ public class Ordine { public void setDataOrdS(String dataOrd) { setDataOrd(UtilityDate.recognizeDateWithExceptionHandler(dataOrd)); } + + public boolean isOrderNewProducts() { + return orderNewProducts; + } + + public Ordine setOrderNewProducts(boolean orderNewProducts) { + this.orderNewProducts = orderNewProducts; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/view_model/ArticoloDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/view_model/ArticoloDTO.java index f3c7a02b..2859998e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/view_model/ArticoloDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/view_model/ArticoloDTO.java @@ -19,6 +19,7 @@ public class ArticoloDTO { private float giacenza; private float qtaPrevistaVendita; private float qtaProposta; + private float qtaOrd; public String getCodMart() { @@ -151,6 +152,15 @@ public class ArticoloDTO { return this; } + public float getQtaOrd() { + return qtaOrd; + } + + public ArticoloDTO setQtaOrd(float qtaOrd) { + this.qtaOrd = qtaOrd; + return this; + } + public ArticoloGriglia toArticoloGriglia() { ArticoloGriglia result = new ArticoloGriglia(); result.setBarCode(this.getBarCode()); @@ -164,6 +174,7 @@ public class ArticoloDTO { result.setQtaMinOrdinabile(this.getQtaMinOrdinabile()); result.setGgScadenza(this.ggScadenza); result.setNewNoPromo(this.newNoPromo); + result.setQtaOrd(this.getQtaOrd()); result.setGiacenza(this.giacenza); result.setQtaPrevistaVendita(this.qtaPrevistaVendita); result.setQtaProposta(this.qtaProposta); 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 9e893a49..6c37ddb4 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 @@ -27,7 +27,6 @@ public class BaseDialogFragment extends DialogFragment { private boolean mBarcodeListener = false; - @Override public void show(FragmentManager manager, String tag) { try { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java index 384c6d0d..0d498c1e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java @@ -78,9 +78,9 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer { } - public static void getValues(List stbGestSetupList, RunnableArgs> onComplete, RunnableArgs onFailed) { + public static void getValues(String codMdep, List stbGestSetupList, RunnableArgs> onComplete, RunnableArgs onFailed) { GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class); - service.getGestSetupValues(stbGestSetupList).enqueue(new Callback<>() { + service.getGestSetupValues(codMdep, stbGestSetupList).enqueue(new Callback<>() { @Override public void onResponse(Call>> call, Response>> response) { analyzeAnswer(response, "GestSetup", onComplete, onFailed); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumerService.java index b4ba1d63..d2561898 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumerService.java @@ -28,6 +28,7 @@ public interface GestSetupRESTConsumerService { @POST("gestSetupList") Call>> getGestSetupValues( + @Query("codMdep") String codMdep, @Body List stbGestSetupList); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumer.java index c48bbd10..6ff91204 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumer.java @@ -46,10 +46,10 @@ public class MesRESTConsumer extends _BaseRESTConsumer { }); } - public void getOrdiniLavorazione(String flagEvaso, String codJfas, RunnableArgs> onComplete, RunnableArgs onFailed) { + public void getOrdiniLavorazione(String flagEvaso, String codJfas, String codAnag, RunnableArgs> onComplete, RunnableArgs onFailed) { MesRESTConsumerService mesRESTConsumerService = RESTBuilder.getService(MesRESTConsumerService.class); - mesRESTConsumerService.getOrdiniLavorazione(flagEvaso, codJfas) + mesRESTConsumerService.getOrdiniLavorazione(null, flagEvaso, codJfas, codAnag) .enqueue(new Callback<>() { @Override public void onResponse(Call>> call, Response>> response) { @@ -63,6 +63,7 @@ public class MesRESTConsumer extends _BaseRESTConsumer { }); } + public void getOrdiniLavorazione(Date dateStart, String flagEvaso, String codJfas, RunnableArgs> onComplete, RunnableArgs onFailed) { MesRESTConsumerService mesRESTConsumerService = RESTBuilder.getService(MesRESTConsumerService.class); @@ -82,7 +83,8 @@ public class MesRESTConsumer extends _BaseRESTConsumer { public void getLineeProduzione(String codJfasParent, RunnableArgs> onComplete, RunnableArgs onFailed) { - Type typeOfObjectsList = new TypeToken>() {}.getType(); + Type typeOfObjectsList = new TypeToken>() { + }.getType(); this.mSystemRESTConsumer.processSql( "SELECT * FROM jtb_fasi WHERE cod_jfas_parent = " + UtilityDB.valueToString(codJfasParent), typeOfObjectsList, diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumerService.java index 2ab0a08c..bf919418 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumerService.java @@ -22,4 +22,7 @@ public interface MesRESTConsumerService { @GET("mes_v2/getOrdiniLavorazione") Call>> getOrdiniLavorazione(@Query("startDate") String startDate, @Query("flagEvaso") String flagEvaso, @Query("codJfas") String codJfas); + @GET("mes_v2/getOrdiniLavorazione") + Call>> getOrdiniLavorazione(@Query("startDate") String startDate, @Query("flagEvaso") String flagEvaso, @Query("codJfas") String codJfas, @Query("codAnag") String codAnag); + } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java index 619ec067..4a0d97c8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java @@ -48,6 +48,8 @@ public class DBSettingsModel { private int onQtaTotInputChanged = 1; private boolean flagAccettazioneUseQtaOrd = false; private boolean flagPickLiberoAllowEmptyDest = false; + private boolean flagAskInfoAggiuntiveSpedizione = false; + private String filterFornitoreProd; public boolean isFlagSpedizioneEnableFakeGiacenza() { return flagSpedizioneEnableFakeGiacenza; @@ -364,4 +366,22 @@ public class DBSettingsModel { this.flagOrdinaArticoliOnScan = flagOrdinaArticoliOnScan; return this; } + + public boolean isFlagAskInfoAggiuntiveSpedizione() { + return flagAskInfoAggiuntiveSpedizione; + } + + public DBSettingsModel setFlagAskInfoAggiuntiveSpedizione(boolean flagAskInfoAggiuntiveSpedizione) { + this.flagAskInfoAggiuntiveSpedizione = flagAskInfoAggiuntiveSpedizione; + return this; + } + + public String getFilterFornitoreProd() { + return filterFornitoreProd; + } + + public DBSettingsModel setFilterFornitoreProd(String filterFornitoreProd) { + this.filterFornitoreProd = filterFornitoreProd; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java index 34423a2b..4f80f212 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java @@ -258,6 +258,10 @@ public class SettingsManager { .setGestName("PICKING") .setSection("PRODUZIONE") .setKeySection("FLAG_VERSAMENTO_DIRETTO")); + stbGestSetupList.add(new StbGestSetup() + .setGestName("PICKING") + .setSection("PRODUZIONE") + .setKeySection("FILTER_FORNTIORE_PROD")); stbGestSetupList.add(new StbGestSetup() .setGestName("PICKING") .setSection("SPEDIZIONE") @@ -306,9 +310,21 @@ public class SettingsManager { .setGestName("PICKING") .setSection("PICKING_LIBERO") .setKeySection("FLAG_ALLOW_EMPTY_DEST")); + stbGestSetupList.add(new StbGestSetup() + .setGestName("PICKING") + .setSection("SPEDIZIONE") + .setKeySection("FLAG_PRINT_PACKING_LIST_ON_CLOSE")); + stbGestSetupList.add(new StbGestSetup() + .setGestName("PICKING") + .setSection("SPEDIZIONE") + .setKeySection("FLAG_ALLOW_EMPTY_DEST")); + stbGestSetupList.add(new StbGestSetup() + .setGestName("PICKING") + .setSection("SPEDIZIONE") + .setKeySection("FLAG_ASK_INFO_AGGIUNTIVE")); + String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); - - GestSetupRESTConsumer.getValues(stbGestSetupList, list -> { + GestSetupRESTConsumer.getValues(codMdep, stbGestSetupList, list -> { dbSettingsModelIstance.setDefaultCausaleRettificaGiacenze(getValueFromList(list, "SETUP", "DEFAULT_CAUSALE_RETTIFICA_GIACENZE", String.class)); dbSettingsModelIstance.setEnableCheckPartitaMagCheckPickingV(getValueFromList(list, "SETUP", "ENABLE_CHECK_PARTITA_MAG_PICKING_V", Boolean.class)); dbSettingsModelIstance.setFlagMultiClienteOrdV(getValueFromList(list, "SETUP", "FLAG_MULTI_CLIENTE_ORD_VENDITA", Boolean.class)); @@ -333,29 +349,24 @@ public class SettingsManager { dbSettingsModelIstance.setFlagAccettazioneUseQtaOrd(getValueFromList(list, "ACCETTAZIONE", "FLAG_USE_QTA_ORD", Boolean.class)); dbSettingsModelIstance.setFlagPickLiberoAllowEmptyDest(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_DEST", Boolean.class)); dbSettingsModelIstance.setFlagOrdinaArticoliOnScan(getValueFromList(list, "ORDINI_A", "ORDINA_ARTICOLI_ON_SCAN", Boolean.class)); + dbSettingsModelIstance.setFlagPrintPackingListOnOrderClose(getValueFromList(list, "SPEDIZIONE", "FLAG_PRINT_PACKING_LIST_ON_CLOSE", Boolean.class)); + dbSettingsModelIstance.setFlagPrintEtichetteOnOrderClose(getValueFromList(list, "SPEDIZIONE", "FLAG_PRINT_ETICHETTE_ON_CLOSE", Boolean.class)); + dbSettingsModelIstance.setFlagAskInfoAggiuntiveSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_ASK_INFO_AGGIUNTIVE", Boolean.class)); + dbSettingsModelIstance.setFilterFornitoreProd(getValueFromList(list, "PRODUZIONE", "FILTER_FORNTIORE_PROD", String.class)); String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class); - if (notePerdita != null) { + if (notePerdita != null) dbSettingsModelIstance.setNotePerditaDocInterni(Arrays.asList(notePerdita.split("\\|"))); - } Integer onNumCnfInputChanged = getValueFromList(list, "SETUP", "ON_NUM_CNF_INPUT_CHANGED", Integer.class); - if (onNumCnfInputChanged != null) { + if (onNumCnfInputChanged != null) dbSettingsModelIstance.setOnNumCnfInputChanged(onNumCnfInputChanged); - } Integer onQtaTotInputChanged = getValueFromList(list, "SETUP", "ON_QTA_TOT_INPUT_CHANGED", Integer.class); - if (onQtaTotInputChanged != null) { + if (onQtaTotInputChanged != null) dbSettingsModelIstance.setOnQtaTotInputChanged(onQtaTotInputChanged); - } - String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); - GestSetupRESTConsumer.getBooleanValue("PICKING", "SPEDIZIONE", "FLAG_PRINT_PACKING_LIST_ON_CLOSE", codMdep, (value) -> { - dbSettingsModelIstance.setFlagPrintPackingListOnOrderClose(value); - GestSetupRESTConsumer.getBooleanValue("PICKING", "SPEDIZIONE", "FLAG_PRINT_ETICHETTE_ON_CLOSE", codMdep, (setupValue) -> { - dbSettingsModelIstance.setFlagPrintEtichetteOnOrderClose(setupValue); - if (onComplete != null) onComplete.run(); - }, onFailed); - }, onFailed); + + if (onComplete != null) onComplete.run(); }, onFailed); } @@ -365,7 +376,7 @@ public class SettingsManager { StbGestSetup value = Stream.of(stbGestSetupList) .filter(x -> x.getSection().equalsIgnoreCase(section) && x.getKeySection().equalsIgnoreCase(keySectionName)) - .findFirst().get(); + .findFirstOrElse(new StbGestSetup()); if (clazz == String.class) { return clazz.cast(value.getValue()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoViewModel.java index a5455f2d..38a80d64 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoViewModel.java @@ -35,6 +35,13 @@ public class DialogSelectDocInfoViewModel { public void init(DocInterniSetupDTO initialList) { this.mDocInterniSetupDTO = initialList; + this.mTipoDoc = null; + this.mGruppoArt = null; + this.mFornitore = null; + this.mDataDoc = null; + this.mNumDoc = null; + this.mNote = null; + this.mListener = null; } public String getCodDtip() { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GrigliaAcquistiChildDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GrigliaAcquistiChildDTO.java index 9db96088..a88b0100 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GrigliaAcquistiChildDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GrigliaAcquistiChildDTO.java @@ -19,6 +19,8 @@ public class GrigliaAcquistiChildDTO { private float giacenza; private float qtaPrevistaVendita; private float qtaProposta; + private BigDecimal qtaOrd; + public String getCodMart() { return codMart; @@ -154,4 +156,13 @@ public class GrigliaAcquistiChildDTO { this.newNoPromo = newNoPromo; return this; } + + public BigDecimal getQtaOrd() { + return qtaOrd; + } + + public GrigliaAcquistiChildDTO setQtaOrd(BigDecimal qtaOrd) { + this.qtaOrd = qtaOrd; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java index 7ef050d4..3355f832 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java @@ -250,6 +250,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter .setNotesMandatory(this.viewModel.isNotesMandatory()) .setDataScadMandatory(flagTracciabilita) .setCanPartitaMagBeChanged(flagTracciabilita) + .setNumCnfEditable(false) .setSuggestPartitaMag(data -> { Date dataScad = data.getDataScad(); String partitaMag = null; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceViewModel.java index 4e3160bc..e9194db5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceViewModel.java @@ -9,6 +9,7 @@ import javax.inject.Inject; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.IOrdersLoadingListener; import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException; @@ -28,8 +29,8 @@ public class ProdRientroMerceViewModel { public void refreshOrderList() { new Thread(this::sendOnOrdersLoadingStarted).start(); - - this.mMesRESTConsumer.getOrdiniLavorazione("I", null, ordiniLavorazioneList -> { + String codAnag = SettingsManager.iDB().getFilterFornitoreProd(); + this.mMesRESTConsumer.getOrdiniLavorazione("I", null, codAnag, ordiniLavorazioneList -> { this.mOrdiniLavorazioneAperti.postValue(ordiniLavorazioneList); this.sendOnOrdersLoadingEnded(); }, ex -> this.sendError(new OrdersLoadException(ex))); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailFragment.java index 0330c007..e53c57dd 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailFragment.java @@ -82,6 +82,8 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements public ObservableField sumColliNumber = new ObservableField<>(BigDecimal.ZERO); public ObservableField sumNetKG = new ObservableField<>(BigDecimal.ZERO); public ObservableField sumGrossKG = new ObservableField<>(BigDecimal.ZERO); + public ObservableField progress = new ObservableField<>(0); + public boolean isOrderColli = false; public ProdRientroMerceOrderDetailFragment() { // Required empty public constructor @@ -113,8 +115,10 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements mViewModel.setListener(this); - if(currentOrder.getValue() != null) + if (currentOrder.getValue() != null) { refreshOrder(); + isOrderColli = currentOrder.getValue().getQtaCnf().compareTo(BigDecimal.ONE) == 0; + } this.mViewModel.mtbColtsOfOrder.observe(getViewLifecycleOwner(), this::refreshList); this.initRecyclerView(); @@ -191,9 +195,9 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements } private void refreshOrder() { - if(mBindings != null) mBindings.invalidateAll(); - if(mAdapter != null) mAdapter.clearDataset(); - if(mViewModel != null) mViewModel.setOrder(currentOrder.getValue()); + if (mBindings != null) mBindings.invalidateAll(); + if (mAdapter != null) mAdapter.clearDataset(); + if (mViewModel != null) mViewModel.setOrder(currentOrder.getValue()); } private void refreshList(List mtbColts) { @@ -212,6 +216,7 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements })); sumColliNumber.set(sumColli.get()); sumGrossKG.set(sumGross.get()); + progress.set(currentOrder.getValue().getProgress()); sumNetKG.set(sumNet.get()); } else { sumLUNumber.set(BigDecimal.ZERO); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListAdapter.java index 61300ee7..771d3e03 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListAdapter.java @@ -129,15 +129,18 @@ public class ProdRientroMerceOrderListAdapter extends SectionedRecyclerViewAdapt case START: holder.mBinding.ordineStateIcon.setImageResource(R.drawable.ic_play_circle_filled_24dp); holder.mBinding.ordineStateIcon.setColorFilter(ContextCompat.getColor(mContext, R.color.green_800), android.graphics.PorterDuff.Mode.SRC_IN); + holder.mBinding.orderProgress.setVisibility(View.VISIBLE); break; case PAUSE: holder.mBinding.ordineStateIcon.setImageResource(R.drawable.ic_pause_circle_filled_24dp); holder.mBinding.ordineStateIcon.setColorFilter(ContextCompat.getColor(mContext, R.color.yellow_800), android.graphics.PorterDuff.Mode.SRC_IN); + holder.mBinding.orderProgress.setVisibility(View.VISIBLE); break; case SCHEDULED: default: holder.mBinding.ordineStateIcon.setImageResource(R.drawable.ic_clock_circle_outline_24dp); holder.mBinding.ordineStateIcon.setColorFilter(ContextCompat.getColor(mContext, R.color.blue_700), android.graphics.PorterDuff.Mode.SRC_IN); + holder.mBinding.orderProgress.setVisibility(View.GONE); break; } @@ -166,6 +169,8 @@ public class ProdRientroMerceOrderListAdapter extends SectionedRecyclerViewAdapt holder.mBinding.rightSubDescrizione.setVisibility(View.VISIBLE); } else holder.mBinding.rightSubDescrizione.setVisibility(View.GONE); + holder.mBinding.orderProgress.setProgress(listModel.getProgress()); + holder.mBinding.executePendingBindings(); holder.mBinding.getRoot().setOnClickListener(v -> { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFragment.java index 7592d2d1..dc8cd432 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFragment.java @@ -70,7 +70,7 @@ public class ProdRientroMerceOrderListFragment extends Fragment { mBindings.setLifecycleOwner(this); - if(savedInstanceState == null) this.initRecyclerView(); + if (savedInstanceState == null) this.initRecyclerView(); return mBindings.getRoot(); } @@ -84,7 +84,8 @@ public class ProdRientroMerceOrderListFragment extends Fragment { ProdRientroMerceOrderListAdapter prodRientroMerceOrderListAdapter = new ProdRientroMerceOrderListAdapter(getActivity(), mOrdiniApertiMutableData) .setEmptyView(this.mBindings.emptyView) .setOnItemChecked(x -> { - if(mOnItemSelectedRunnable != null) mOnItemSelectedRunnable.run(x.getOriginalModel()); + if (mOnItemSelectedRunnable != null) + mOnItemSelectedRunnable.run(x.getOriginalModel()); }); this.mBindings.mainList.setAdapter(prodRientroMerceOrderListAdapter); @@ -93,7 +94,7 @@ public class ProdRientroMerceOrderListFragment extends Fragment { this.mToolbar.setRecyclerView(mBindings.mainList); this.mBindings.swiperefresh.setOnRefreshListener(() -> { - if(onRefreshListener != null) onRefreshListener.onRefresh(); + if (onRefreshListener != null) onRefreshListener.onRefresh(); }); } @@ -119,7 +120,7 @@ public class ProdRientroMerceOrderListFragment extends Fragment { .thenComparing(ComparatorCompat.comparing(ordineLavorazioneDTO -> ordineLavorazioneDTO.getDataOrd() != null ? ordineLavorazioneDTO.getDataOrd() : "zzzzzzzz")).reversed() .thenComparing(ComparatorCompat.comparing(OrdineLavorazioneDTO::getNumOrd)); - if(dataList == null) return new ArrayList<>(); + if (dataList == null) return new ArrayList<>(); List notHiddenElements = Stream.of(dataList) .sorted(comparator) @@ -141,8 +142,12 @@ public class ProdRientroMerceOrderListFragment extends Fragment { listModel.setGroupTitle(x.getCodJfas()); - if(!UtilityString.isNullOrEmpty(x.getRagSocAnag())) - listModel.setPreDescription("Provenienza: " + x.getRagSocAnag()); + if (!UtilityString.isNullOrEmpty(x.getDataConsCommessa())) { + listModel.setPreDescription("Consegna: " + UtilityDate.formatDate(x.getDataConsCommessaD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); + } else { + /* if (!UtilityString.isNullOrEmpty(x.getRagSocAnag())) + listModel.setPreDescription("Provenienza: " + x.getRagSocAnag());*/ + } String testataOrdString = "N° " + x.getNumOrd(); listModel.setDescription(testataOrdString); @@ -151,11 +156,13 @@ public class ProdRientroMerceOrderListFragment extends Fragment { listModel.setRightDescription(x.getCodJcom() != null ? (x.getDescCommessa() + " (" + x.getCodJcom() + ")") : ""); - try { + listModel.setProgress(x.getProgress()); + listModel.setRightSubDescription(x.getNumCnf().stripTrailingZeros().toPlainString() + " COL"); + /*try { listModel.setRightSubDescription(UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); } catch (Exception ex) { - } + }*/ listModel.setOriginalModel(x); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListModel.java index 6968b527..9049b52a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListModel.java @@ -11,6 +11,7 @@ public class ProdRientroMerceOrderListModel implements Cloneable { private String subDescription; private String rightDescription; private String rightSubDescription; + private int progress; private boolean hidden; @@ -105,4 +106,13 @@ public class ProdRientroMerceOrderListModel implements Cloneable { START, SCHEDULED } + + public int getProgress() { + return progress; + } + + public ProdRientroMerceOrderListModel setProgress(int progress) { + this.progress = progress; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/dto/OrdineLavorazioneDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/dto/OrdineLavorazioneDTO.java index 849f54e0..8e720d90 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/dto/OrdineLavorazioneDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/dto/OrdineLavorazioneDTO.java @@ -1,6 +1,7 @@ package it.integry.integrywmsnative.gest.prod_versamento_materiale.dto; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Date; import it.integry.integrywmsnative.core.di.BindableFloat; @@ -50,6 +51,7 @@ public class OrdineLavorazioneDTO { private String dataScad; + private String partitaMagSuggested; private String dataScadSuggested; @@ -90,6 +92,8 @@ public class OrdineLavorazioneDTO { private String descCommessa; + private String dataConsCommessa; + private BigDecimal prodStd; private Object mtbColtToEdit; @@ -135,6 +139,7 @@ public class OrdineLavorazioneDTO { public String getDataOrd() { return dataOrd; } + public Date getDataOrdD() { return UtilityDate.recognizeDateWithExceptionHandler(dataOrd); } @@ -490,4 +495,32 @@ public class OrdineLavorazioneDTO { public OrdineLavorazioneStatoEnum getStatoEnum() { return OrdineLavorazioneStatoEnum.fromString(getStato()); } + + public String getDataConsCommessa() { + return dataConsCommessa; + } + + public Date getDataConsCommessaD() { + return UtilityDate.recognizeDateWithExceptionHandler(getDataConsCommessa()); + } + + public void setDataConsCommessa(String dataConsCommessa) { + this.dataConsCommessa = dataConsCommessa; + } + + + public int getProgress() { + + int progress = 0; + if (this.getQtaProd().compareTo(BigDecimal.ZERO) > 0) { + if (this.getQtaTrasferite().compareTo(this.getQtaProd()) > 0) { + progress = 100; + } else { + progress = this.getQtaTrasferite().multiply(BigDecimal.valueOf(100)).divide(this.getQtaProd(), 0, RoundingMode.UP).intValue(); + } + } + + return progress; + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java index 589f86a1..28441efa 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java @@ -108,8 +108,9 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi mBinding.closeActivityFab.close(false); mBinding.scanArtSpinner.setVisibility(articoli.size() > 0 ? View.GONE : View.VISIBLE); - if (articoli.isEmpty() && isOrderNewProdsForced()) { + if (mOrdine.isOrderNewProducts() && articoli.isEmpty() && isOrderNewProdsForced()) { this.mViewModel.orderNewProducts(); + mOrdine.setOrderNewProducts(false); } }); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java index cd545753..ef0a8dd4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java @@ -220,7 +220,6 @@ public class PVOrdineAcquistoEditViewModel { .isEmpty() ) { ArticoloOrdine dto = articolo.convertToArticoloOrdine(mCurrentOrdine); - dto.setQtaOrd(dto.getQtaCnf()); articoliToSave.add(dto); } }); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java index 5c6e5aff..4f76dba9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java @@ -75,6 +75,7 @@ public class OrdineAcquistoPvHelper { Ordine ordine = new Ordine(); ordine.setDataIns(UtilityDate.getDateInstance()); ordine.setIdGriglia(griglia.getGrigliaId()); + ordine.setOrderNewProducts(true); mOrdineRepository.insert(ordine, id -> { ordine.setOrdineId(id); onSuccess.run(ordine); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java index 54b87d73..78927c6b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java @@ -44,6 +44,7 @@ import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbDepoPosizione; import it.integry.integrywmsnative.core.model.MtbPartitaMag; +import it.integry.integrywmsnative.core.model.MtbTCol; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO; import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO; @@ -72,6 +73,7 @@ import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShould import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotView; +import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.InfoAggiuntiveLUDialog; import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPeso; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View; @@ -938,4 +940,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo } } } + + @Override + public void onInfoAggiuntiveRequired(MtbColt mtbColt, RunnableArgss onComplete) { + InfoAggiuntiveLUDialog.newInstance(mtbColt, onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog"); + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java index 506c6a36..a22c73c0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java @@ -43,6 +43,7 @@ import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbDepoPosizione; import it.integry.integrywmsnative.core.model.MtbPartitaMag; +import it.integry.integrywmsnative.core.model.MtbTCol; import it.integry.integrywmsnative.core.model.dto.PickDataDTO; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.report.ReportType; @@ -1617,14 +1618,36 @@ public class SpedizioneViewModel { } else { if (mDefaultSegnoCol == -1) { Runnable saveAction = () -> { - mColliMagazzinoRESTConsumer.updateDataFine( - mCurrentMtbColt, () -> distribuisciLU((generatedMtbColts) -> { - if (shouldPrint) - printCollo(generatedMtbColts, () -> this.postCloseOperations(generatedMtbColts)); - else { - postCloseOperations(generatedMtbColts); - } - }), this::sendError); + if (SettingsManager.iDB().isFlagAskInfoAggiuntiveSpedizione()) { + this.mListener.onInfoAggiuntiveRequired(mCurrentMtbColt, (note, mtbTcol) -> { + mCurrentMtbColt.setAnnotazioni(note); + if (mtbTcol != null) { + mCurrentMtbColt.setMtbTCol(mtbTcol); + mCurrentMtbColt.setCodTcol(mtbTcol.getCodTcol()); + } else { + mCurrentMtbColt.setMtbTCol(null); + mCurrentMtbColt.setCodTcol(null); + } + mColliMagazzinoRESTConsumer.updateDataFine( + mCurrentMtbColt, () -> distribuisciLU((generatedMtbColts) -> { + if (shouldPrint) + printCollo(generatedMtbColts, () -> this.postCloseOperations(generatedMtbColts)); + else { + postCloseOperations(generatedMtbColts); + } + }), this::sendError); + }); + } else { + + mColliMagazzinoRESTConsumer.updateDataFine( + mCurrentMtbColt, () -> distribuisciLU((generatedMtbColts) -> { + if (shouldPrint) + printCollo(generatedMtbColts, () -> this.postCloseOperations(generatedMtbColts)); + else { + postCloseOperations(generatedMtbColts); + } + }), this::sendError); + } }; if (mShouldAskPesoLU) { @@ -1992,6 +2015,7 @@ public class SpedizioneViewModel { boolean canBatchLotBeChanged, RunnableArgss onComplete); + void onInfoAggiuntiveRequired(MtbColt currentMtbColt, RunnableArgss onComplete); void onLUPositionChangeRequest(RunnableArgss onComplete); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/InfoAggiuntiveLUDialog.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/InfoAggiuntiveLUDialog.java index 75155e02..21ec2357 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/InfoAggiuntiveLUDialog.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/InfoAggiuntiveLUDialog.java @@ -26,9 +26,11 @@ import it.integry.integrywmsnative.MainApplication; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; import it.integry.integrywmsnative.core.expansion.RunnableArgss; +import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbTCol; import it.integry.integrywmsnative.core.utility.UtilityDialog; import it.integry.integrywmsnative.core.utility.UtilityObservable; +import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.DialogNoteAggiuntiveNuovaUlBinding; import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloAdapter; import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloListModel; @@ -40,20 +42,24 @@ public class InfoAggiuntiveLUDialog extends BaseDialogFragment implements InfoAg private DialogNoteAggiuntiveNuovaUlBinding mBindings; private final RunnableArgss mOnComplete; - + private MtbColt currentMtbColt; private DialogInputLUProdTipoColloAdapter codTcolArrayAdapter = null; public ObservableField additionalNotes = new ObservableField<>(); public ObservableField selectedMtbTcol = new ObservableField<>(); public ObservableField currentMtbTCol = new ObservableField<>(); public static InfoAggiuntiveLUDialog newInstance(@NotNull RunnableArgss onComplete) { - return new InfoAggiuntiveLUDialog(onComplete); + return new InfoAggiuntiveLUDialog(null, onComplete); } - private InfoAggiuntiveLUDialog(@NotNull RunnableArgss onComplete) { + public static InfoAggiuntiveLUDialog newInstance(MtbColt mtbColt, @NotNull RunnableArgss onComplete) { + return new InfoAggiuntiveLUDialog(mtbColt, onComplete); + } + + private InfoAggiuntiveLUDialog(MtbColt mtbColt, @NotNull RunnableArgss onComplete) { super(); this.mOnComplete = onComplete; - + this.currentMtbColt = mtbColt; } @@ -121,9 +127,17 @@ public class InfoAggiuntiveLUDialog extends BaseDialogFragment implements InfoAg this.mViewModel.getTipiCollo().observe(getViewLifecycleOwner(), tipiCollo -> { + codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(getActivity(), R.layout.array_adapter_single_item, tipiCollo); mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter); + if (currentMtbTCol != null && !UtilityString.isNullOrEmpty(currentMtbColt.getCodTcol()) && UtilityString.isNullOrEmpty(this.selectedMtbTcol.get())) { + MtbTCol tipoPedana = Stream.of(tipiCollo).filter(x -> x.getCodTcol().equalsIgnoreCase(currentMtbColt.getCodTcol())).findFirstOrElse(null); + if (tipoPedana != null) { + this.selectedMtbTcol.set(tipoPedana.getCodTcol() + " - " + tipoPedana.getDescrizione()); + } + } + }); this.mBindings.filledExposedDropdownCodTcol.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @@ -141,6 +155,9 @@ public class InfoAggiuntiveLUDialog extends BaseDialogFragment implements InfoAg mBindings.buttonConfirm.setOnClickListener(v -> { dismiss(); }); - } + if (this.currentMtbColt != null) { + this.additionalNotes.set(currentMtbColt.getAnnotazioni()); + } + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdView.java index 28720aa8..3a07cc20 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdView.java @@ -11,6 +11,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.AdapterView; +import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -147,7 +148,7 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI this.init(); - if(mBluetoothDeviceInterface != null) { + if (mBluetoothDeviceInterface != null) { // Listen to bluetooth events mBluetoothDeviceInterface.setListeners(this::onMessageReceived, this::onMessageSent, x -> this.onError(new Exception(x))); enabledBluetoothDevice.set(true); @@ -400,7 +401,11 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI // Toast.makeText(requireActivity(), "Leggo peso uaglio", Toast.LENGTH_SHORT).show(); // Let's send a message: - mBluetoothDeviceInterface.sendMessage("GW\r"); + if (mBluetoothDeviceInterface != null) { + mBluetoothDeviceInterface.sendMessage("GW\r"); + } else { + Toast.makeText(requireActivity(), "Nessun dispositivo BLUETOOTH configurato nelle impostazioni.", Toast.LENGTH_SHORT).show(); + } } private void onMessageSent(String request) { @@ -412,8 +417,8 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI String tmpResp = response.replace(".", ""); - BigDecimal grossWeight = new BigDecimal(tmpResp.substring(2,7)); - BigDecimal netWeight = new BigDecimal(tmpResp.substring(8,13)); + BigDecimal grossWeight = new BigDecimal(tmpResp.substring(2, 7)); + BigDecimal netWeight = new BigDecimal(tmpResp.substring(8, 13)); mViewModel.setPesoNetto(netWeight); mViewModel.setPesoLordo(grossWeight); @@ -424,7 +429,7 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI if (this.mViewModel.validate()) { this.mOnComplete.run(this.mViewModel.getResult()); - if(mBluetoothDeviceInterface != null) + if (mBluetoothDeviceInterface != null) mBluetoothDeviceInterface.setListeners(null, null, null); dismiss(); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java index 08213283..3f924d69 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java @@ -31,6 +31,7 @@ public class DialogInputQuantityV2DTO { private boolean isDataScadMandatory = false; private boolean isNotesAllowed = false; private boolean isNotesMandatory = false; + private boolean isNumCnfEditable = true; private boolean isFocusOnStart = true; private boolean canLUBeClosed; private boolean saveOnImeDone = false; @@ -249,6 +250,15 @@ public class DialogInputQuantityV2DTO { return this; } + public boolean isNumCnfEditable() { + return isNumCnfEditable; + } + + public DialogInputQuantityV2DTO setNumCnfEditable(boolean numCnfEditable) { + isNumCnfEditable = numCnfEditable; + return this; + } + public RunnableArgsWithReturn getSuggestPartitaMag() { return suggestPartitaMag; } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java index b823f403..b7044a7f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.res.ColorStateList; import android.os.Bundle; +import android.os.Handler; import android.text.Html; import android.text.InputType; import android.text.SpannableString; @@ -43,6 +44,7 @@ import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbUntMis; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityFocus; import it.integry.integrywmsnative.core.utility.UtilityObservable; import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; @@ -81,6 +83,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia public ObservableField enabledChangePartitaMag = new ObservableField<>(true); public ObservableField enabledNotes = new ObservableField<>(false); public ObservableField enabledLUCloseButton = new ObservableField<>(true); + private Handler mHandler = new Handler(); private Context context; @@ -170,7 +173,14 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia } this.onLoadingEnded(); if (mDialogInputQuantityV2DTO.isFocusOnStart()) { - mBindings.inputNumCnfText.requestFocus(); + mHandler.postDelayed(() -> { + + if (mDialogInputQuantityV2DTO.isNumCnfEditable()) { + mBindings.inputNumCnfText.requestFocus(); + } else { + UtilityFocus.focusTextBox(requireContext(), mBindings.inputQtaTotText); + } + }, 1000); } return mBindings.getRoot(); } @@ -240,11 +250,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia Date minDataScad = calendar.getTime(); if (minDataScad.after(value) && value.after(new Date())) { DialogSimpleMessageView - .makeWarningDialog(new SpannableString("La data selezionata è precedente alla data di scadenza consigliata per l'articolo scelto ( " + mtbAart.getGgScadPartita() + " giorni) . Continuare?"), null, () -> { - this.mViewModel.setDataScad(value); - }, () -> { - this.currentDataScad.set(null); - }) + .makeWarningDialog(new SpannableString("La data selezionata è precedente alla data di scadenza consigliata per l'articolo scelto ( " + mtbAart.getGgScadPartita() + " giorni) . Continuare?"), null, () -> this.mViewModel.setDataScad(value), () -> this.currentDataScad.set(null)) .show(requireActivity().getSupportFragmentManager(), "tag"); } else { this.mViewModel.setDataScad(value); @@ -325,7 +331,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia if (!this.enabledQtaTot.get()) { this.enabledQtaTot.set(true); } else if (!this.enabledNumCnf.get()) { - this.enabledNumCnf.set(true); + this.enabledNumCnf.set(this.mDialogInputQuantityV2DTO.isNumCnfEditable()); } } }); @@ -334,7 +340,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia toggleTextInputLayoutError(textColorsQtaTot, this.mBindings.inputQtaTotLayout, value); if (this.mViewModel.mtbAart.get().isFlagQtaCnfFissaBoolean()) { - this.enabledNumCnf.set(!value); + this.enabledNumCnf.set(this.mDialogInputQuantityV2DTO.isNumCnfEditable() && !value); } else { if (value) { if (this.mViewModel.blockedQtaCnf.get()) { @@ -346,7 +352,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia if (!this.enabledQtaCnf.get()) { this.enabledQtaCnf.set(true); } else if (!this.enabledNumCnf.get()) { - this.enabledNumCnf.set(true); + this.enabledNumCnf.set(this.mDialogInputQuantityV2DTO.isNumCnfEditable()); } } } diff --git a/app/src/main/res/layout-large/fragment_prod_rientro_merce_order_detail.xml b/app/src/main/res/layout-large/fragment_prod_rientro_merce_order_detail.xml index a1a00a53..9c1c8a81 100644 --- a/app/src/main/res/layout-large/fragment_prod_rientro_merce_order_detail.xml +++ b/app/src/main/res/layout-large/fragment_prod_rientro_merce_order_detail.xml @@ -9,6 +9,7 @@ + @@ -140,6 +141,14 @@ android:textStyle="bold" tools:text="Ordine #218" /> + @@ -184,8 +193,532 @@ + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -93,119 +94,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + android:weightSum="2"> - + android:layout_weight="1" + android:orientation="horizontal"> + + + - - - - - - - - - - - - + android:textStyle="bold" /> + + + - + - - + + android:layout_gravity="center_vertical" + android:gravity="end" + android:orientation="vertical"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -218,13 +348,18 @@ + tools:text="0" /> + + + @@ -234,10 +369,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -252,7 +519,7 @@ @@ -278,13 +545,48 @@ android:textAppearance="@style/AppTheme.NewMaterial.Text.Small" android:textColor="@android:color/black" /> + + + + + + + + + + + + + + + + + + - @@ -307,77 +610,21 @@ - - - - - - - - - - - - - - - - - - - - - - - - - @@ -410,150 +657,19 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -575,7 +691,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_prod_rientro_merce_order_detail__mtb_colt_item_model.xml b/app/src/main/res/layout/fragment_prod_rientro_merce_order_detail__mtb_colt_item_model.xml index 2281031e..bea40a90 100644 --- a/app/src/main/res/layout/fragment_prod_rientro_merce_order_detail__mtb_colt_item_model.xml +++ b/app/src/main/res/layout/fragment_prod_rientro_merce_order_detail__mtb_colt_item_model.xml @@ -65,9 +65,9 @@ android:layout_height="wrap_content" android:gravity="center" android:paddingLeft="6dp" - android:paddingTop="2dp" + android:paddingTop="0dp" android:paddingRight="6dp" - android:paddingBottom="2dp" + android:paddingBottom="0dp" android:text="@{mtbColt.mtbColr.get(0).numCnf.intValue() + ` col`}" android:textStyle="bold" tools:text="45 col" /> diff --git a/app/src/main/res/layout/fragment_prod_rientro_merce_order_list__list_group_model.xml b/app/src/main/res/layout/fragment_prod_rientro_merce_order_list__list_group_model.xml index 0e5ce981..35965d76 100644 --- a/app/src/main/res/layout/fragment_prod_rientro_merce_order_list__list_group_model.xml +++ b/app/src/main/res/layout/fragment_prod_rientro_merce_order_list__list_group_model.xml @@ -1,5 +1,5 @@ - + @@ -96,7 +96,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" - tools:text="Cod Jcom" /> + tools:text="150KG" /> + tools:text="Descr articolo estesa" /> + + +