From 76cf6c7d66c6190931a699baa60cc746b5d2271a Mon Sep 17 00:00:00 2001 From: MarcoE Date: Thu, 4 Apr 2024 11:52:24 +0200 Subject: [PATCH 01/15] Fix LocalDate deserializer --- .../core/rest/deserializer/LocalDateDeserializer.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/LocalDateDeserializer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/LocalDateDeserializer.java index 5570f9ba..fdd81603 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/LocalDateDeserializer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/LocalDateDeserializer.java @@ -13,15 +13,13 @@ import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityString; public class LocalDateDeserializer implements JsonDeserializer { - - DateTimeFormatter formatter = DateTimeFormatter.ofPattern(UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH); - - @Override public LocalDate deserialize(JsonElement element, Type arg1, JsonDeserializationContext arg2) throws JsonParseException { String date = element.getAsString(); if (UtilityString.isNullOrEmpty(date)) return null; + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(UtilityString.determineDateFormat(date)); + return LocalDate.parse(date, formatter); } } From 38dc5e134cf193f1eba82e827df047a17f605c2f Mon Sep 17 00:00:00 2001 From: MarcoE Date: Thu, 4 Apr 2024 11:53:56 +0200 Subject: [PATCH 02/15] -> v1.40.08 (425) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a7111eb6..5cb376ca 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 424 - def appVersionName = '1.40.07' + def appVersionCode = 425 + def appVersionName = '1.40.08' signingConfigs { release { From f212987547ca1eb7bc4c392c3240a7dc7f9fecc5 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Thu, 4 Apr 2024 12:25:25 +0200 Subject: [PATCH 03/15] Aggiunto in UtilityString determineDateFormat --- .../core/utility/UtilityString.java | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java index 629bfabc..a273c07f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java @@ -5,6 +5,8 @@ import android.text.Spanned; import androidx.annotation.StringRes; +import java.util.HashMap; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -13,6 +15,98 @@ import java.util.regex.Pattern; */ public class UtilityString { + private static final Map DATE_FORMAT_REGEXPS = new HashMap() {{ + + //----------------------------------------------------------------------------------------- + //giorno-mese-giorno + put("^\\d{1,2}/\\d{1,2}/\\d{4}$", "dd/MM/yyyy"); + put("^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$", "dd.MM.yyyy"); + put("^\\d{1,2}-\\d{1,2}-\\d{4}$", "dd-MM-yyyy"); + + //anno-mese-giorno + put("^\\d{4}/\\d{1,2}/\\d{1,2}$", "yyyy/MM/dd"); + put("^\\d{4}\\.\\d{1,2}\\.\\d{1,2}$", "yyyy.MM.dd"); + put("^\\d{4}-\\d{1,2}-\\d{1,2}$", "yyyy-MM-dd"); + + + //----------------------------------------------------------------------------------------- + //senza spazi + put("^\\d{8}$", "yyyyMMdd"); + put("^\\d{1,2}\\s[a-z]{3}\\s\\d{4}$", "dd MMM yyyy"); + put("^\\d{1,2}\\s[a-z]{4,}\\s\\d{4}$", "dd MMMM yyyy"); + + put("^\\d{12}$", "yyyyMMddHHmm"); + put("^\\d{8}\\s\\d{4}$", "yyyyMMdd HHmm"); + + put("^\\d{14}$", "yyyyMMddHHmmss"); + put("^\\d{8}\\s\\d{6}$", "yyyyMMdd HHmmss"); + + + //----------------------------------------------------------------------------------------- + //giorno-mese-anno hhmm + put("^\\d{1,2}/\\d{1,2}/\\d{4}\\s\\d{1,2}\\.\\d{2}$", "dd/MM/yyyy HH.mm"); + put("^\\d{1,2}/\\d{1,2}/\\d{4}\\s\\d{1,2}:\\d{2}$", "dd/MM/yyyy HH:mm"); + + put("^\\d{1,2}\\.\\d{1,2}\\.\\d{4}\\s\\d{1,2}\\.\\d{2}$", "dd.MM.yyyy HH.mm"); + put("^\\d{1,2}\\.\\d{1,2}\\.\\d{4}\\s\\d{1,2}:\\d{2}$", "dd.MM.yyyy HH:mm"); + + put("^\\d{1,2}-\\d{1,2}-\\d{4}\\s\\d{1,2}\\.\\d{2}$", "dd-MM-yyyy HH.mm"); + put("^\\d{1,2}-\\d{1,2}-\\d{4}\\s\\d{1,2}:\\d{2}$", "dd-MM-yyyy HH:mm"); + + //anno-mese-giorno hhmm + put("^\\d{4}/\\d{1,2}/\\d{1,2}\\s\\d{1,2}\\.\\d{2}$", "yyyy/MM/dd HH.mm"); + put("^\\d{4}/\\d{1,2}/\\d{1,2}\\s\\d{1,2}:\\d{2}$", "yyyy/MM/dd HH:mm"); + + put("^\\d{4}\\.\\d{1,2}\\.\\d{1,2}\\s\\d{1,2}\\.\\d{2}$", "yyyy.MM.dd HH.mm"); + put("^\\d{4}\\.\\d{1,2}\\.\\d{1,2}\\s\\d{1,2}:\\d{2}$", "yyyy.MM.dd HH:mm"); + + put("^\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}\\.\\d{2}$", "yyyy-MM-dd HH.mm"); + put("^\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{2}$", "yyyy-MM-dd HH:mm"); + + + //----------------------------------------------------------------------------------------- + //giorno-mese-anno hhmmss + put("^\\d{1,2}/\\d{1,2}/\\d{4}\\s\\d{1,2}\\.\\d{2}\\.\\d{2}$", "dd/MM/yyyy HH.mm.ss"); + put("^\\d{1,2}/\\d{1,2}/\\d{4}\\s\\d{1,2}:\\d{2}:\\d{2}$", "dd/MM/yyyy HH:mm:ss"); + + put("^\\d{1,2}\\.\\d{1,2}\\.\\d{4}\\s\\d{1,2}\\.\\d{2}\\.\\d{2}$", "dd.MM.yyyy HH.mm.ss"); + put("^\\d{1,2}\\.\\d{1,2}\\.\\d{4}\\s\\d{1,2}:\\d{2}:\\d{2}$", "dd.MM.yyyy HH:mm:ss"); + + put("^\\d{1,2}-\\d{1,2}-\\d{4}\\s\\d{1,2}\\.\\d{2}\\.\\d{2}$", "dd-MM-yyyy HH.mm.ss"); + put("^\\d{1,2}-\\d{1,2}-\\d{4}\\s\\d{1,2}:\\d{2}:\\d{2}$", "dd-MM-yyyy HH:mm:ss"); + + //anno-mese-giorno hhmmss + put("^\\d{4}/\\d{1,2}/\\d{1,2}\\s\\d{1,2}\\.\\d{2}\\.\\d{2}$", "yyyy/MM/dd HH.mm.ss"); + put("^\\d{4}/\\d{1,2}/\\d{1,2}\\s\\d{1,2}:\\d{2}:\\d{2}$", "yyyy/MM/dd HH:mm:ss"); + + put("^\\d{4}\\.\\d{1,2}\\.\\d{1,2}\\s\\d{1,2}\\.\\d{2}\\.\\d{2}$", "yyyy.MM.dd HH.mm.ss"); + put("^\\d{4}\\.\\d{1,2}\\.\\d{1,2}\\s\\d{1,2}:\\d{2}:\\d{2}$", "yyyy.MM.dd HH:mm:ss"); + + put("^\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}\\.\\d{2}\\.\\d{2}$", "yyyy-MM-dd HH.mm.ss"); + put("^\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{2}:\\d{2}$", "yyyy-MM-dd HH:mm:ss"); + + //anno-mese-giorno hhmmssS + put("^\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{2}:\\d{2}.\\d{1,3}$", "yyyy-MM-dd HH:mm:ss.SSS"); + + //----------------------------------------------------------------------------------------- + //altri formati + put("^\\d{1,2}\\s[a-z]{3}\\s\\d{4}\\s\\d{1,2}:\\d{2}:\\d{2}$", "dd MMM yyyy HH:mm:ss"); + put("^\\d{1,2}\\s[a-z]{4,}\\s\\d{4}\\s\\d{1,2}:\\d{2}:\\d{2}$", "dd MMMM yyyy HH:mm:ss"); + + put("^\\d{4}-\\d{1,2}-\\d{1,2}[T]\\d{1,2}:\\d{2}:\\d{2}$", "yyyy-MM-ddTHH:mm:ss"); + + put("^\\d{4}-\\d{1,2}-\\d{1,2}t\\d{1,2}:\\d{2}:\\d{2}.\\d{1,3}z$", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); + put("^(\\d{4})-(\\d{2})-(\\d{2})t(\\d{2}):(\\d{2}):(\\d{2})((\\+|-)(\\d{2}):(\\d{2}))$", "yyyy-MM-dd'T'HH:mm:ss"); + }}; + + public static String determineDateFormat(String dateString) { + for (String regexp : DATE_FORMAT_REGEXPS.keySet()) { + if (dateString.toLowerCase().matches(regexp)) { + return DATE_FORMAT_REGEXPS.get(regexp); + } + } + return null; // Unknown format. + } public static boolean isNullOrEmpty(String stringToCheck){ return stringToCheck == null || stringToCheck.trim().isEmpty(); From 1b864253b5907e9c310cfa3892eb572ab1055b5d Mon Sep 17 00:00:00 2001 From: MarcoE Date: Thu, 4 Apr 2024 12:26:38 +0200 Subject: [PATCH 04/15] -> v1.40.09 (426) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 5cb376ca..0507c9a3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 425 - def appVersionName = '1.40.08' + def appVersionCode = 426 + def appVersionName = '1.40.09' signingConfigs { release { From 95f765756c7989ce966a3c8e38fbc9317215e80f Mon Sep 17 00:00:00 2001 From: MarcoE Date: Tue, 9 Apr 2024 10:04:12 +0200 Subject: [PATCH 05/15] Fix vari --- .../ProdRiposizionamentoDaProdFragment.java | 17 ++++++-- .../ProdRiposizionamentoDaProdViewModel.java | 19 +++++++- .../info_giacenza/DialogInfoGiacenzaView.java | 27 +++--------- .../dto/ArtsInGiacenzaDTO.java | 15 +++++++ .../RettificaGiacenzeFragment.java | 43 ++++++------------- .../DialogInputQuantityV2View.java | 2 +- .../DialogInputQuantityV2ViewModel.java | 2 - .../DialogScanOrCreateLUViewModel.java | 16 ++++++- app/src/main/res/values-it/strings.xml | 4 +- app/src/main/res/values/strings.xml | 4 +- 10 files changed, 86 insertions(+), 63 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/ProdRiposizionamentoDaProdFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/ProdRiposizionamentoDaProdFragment.java index c8a67912..28bf7210 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/ProdRiposizionamentoDaProdFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/ProdRiposizionamentoDaProdFragment.java @@ -136,6 +136,14 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements return null; }); + itemType.areContentsTheSame((oldObject, newObject) -> + oldObject.getCodMart().equalsIgnoreCase(newObject.getCodMart()) && + oldObject.getNumOrd().equals(newObject.getNumOrd()) && + oldObject.getDataOrd().equals(newObject.getDataOrd()) + ); + + itemType.areItemSame((oldObject, newObject) -> oldObject == newObject); + new LiveAdapter(mItemsInventario) .map(ArtsInGiacenzaDTO.class, itemType) .into(this.mBindings.inventarioList); @@ -199,10 +207,10 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements .setOnFilterApplied(mFilterViewModel::setPositionFilter) .setPreselected( Stream.of(Objects.requireNonNull(mViewModel.getItemsInventario().getValue())) - .filter(mFilterViewModel.getCurrentPositionPredicate().get() == null ? - x -> false : Objects.requireNonNull(mFilterViewModel.getCurrentPositionPredicate().get())) - .map(ArtsInGiacenzaDTO::getPosizione) - .toList() + .filter(mFilterViewModel.getCurrentPositionPredicate().get() == null ? + x -> false : Objects.requireNonNull(mFilterViewModel.getCurrentPositionPredicate().get())) + .map(ArtsInGiacenzaDTO::getPosizione) + .toList() ); } @@ -213,6 +221,7 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements public void onInfoClick(ArtsInGiacenzaDTO item) { try { + BarcodeManager.disable(); DialogInfoGiacenzaView.newInstance(item).show(getChildFragmentManager(), DialogInfoGiacenzaView.class.getName()); } catch (Exception e) { UtilityExceptions.defaultException(this.getContext(), e); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/ProdRiposizionamentoDaProdViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/ProdRiposizionamentoDaProdViewModel.java index 07b473a0..f08c9147 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/ProdRiposizionamentoDaProdViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/ProdRiposizionamentoDaProdViewModel.java @@ -179,7 +179,24 @@ public class ProdRiposizionamentoDaProdViewModel { Objects.equals(x.getNumOrd(), dtoList.get(0).getNumOrd()) && Objects.equals(x.getDataOrd(), dtoList.get(0).getDataOrd()) ) - .findFirstOrElse(null); + .findFirstOrElse(new StatoArtInventarioDTO()); + + MvwSitArtUdcDetInventario mvwInventario = mvwSitArtUdcDetInventario.get(); + + if (mvwInventario.getCodMart().equalsIgnoreCase(dtoList.get(0).getCodMart()) && + Objects.equals(mvwInventario.getNumOrd(), dtoList.get(0).getNumOrd()) && + Objects.equals(mvwInventario.getDataOrd(), dtoList.get(0).getDataOrd())) { + BigDecimal colliMag = statoArticolo.getColliMag(); + Integer pedMag = statoArticolo.getPedMag(); + BigDecimal qtaMag = statoArticolo.getQtaMag(); + + BigDecimal numCnf = mvwInventario.getNumCnf(); + BigDecimal qtaCol = mvwInventario.getQtaCol(); + + statoArticolo.setColliMag(colliMag.add(numCnf)); + statoArticolo.setQtaMag(qtaMag.add(qtaCol)); + statoArticolo.setPedMag(pedMag + 1); + } return new ArtsInGiacenzaDTO() .setCodMart(dtoList.get(0).getCodMart()) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/dialogs/info_giacenza/DialogInfoGiacenzaView.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/dialogs/info_giacenza/DialogInfoGiacenzaView.java index 092ae768..d19784ca 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/dialogs/info_giacenza/DialogInfoGiacenzaView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/dialogs/info_giacenza/DialogInfoGiacenzaView.java @@ -10,13 +10,9 @@ import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.annimon.stream.Stream; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.ravikoradiya.liveadapter.LiveAdapter; -import java.util.ArrayList; -import java.util.List; - import javax.inject.Inject; import it.integry.integrywmsnative.BR; @@ -24,7 +20,6 @@ import it.integry.integrywmsnative.MainApplication; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; import it.integry.integrywmsnative.databinding.DialogInfoGiacenzaBinding; -import it.integry.integrywmsnative.databinding.DialogInfoGiacenzaSituazioneArticoloBinding; import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.ArtsInGiacenzaDTO; import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.StatoArtInventarioDTO; import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.ui.DialogInfoSituazioneArticoloAvailableListItem; @@ -34,8 +29,7 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment { DialogInfoGiacenzaViewModel mViewModel; private DialogInfoGiacenzaBinding mBindings; - private Context mContext; - private ArtsInGiacenzaDTO item; + private final ArtsInGiacenzaDTO item; public static DialogInfoGiacenzaView newInstance(ArtsInGiacenzaDTO item) { return new DialogInfoGiacenzaView(item); @@ -48,9 +42,9 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment { @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { - this.mContext = requireContext(); + Context mContext = requireContext(); - mBindings = DialogInfoGiacenzaBinding.inflate(LayoutInflater.from(this.mContext), null, false); + mBindings = DialogInfoGiacenzaBinding.inflate(LayoutInflater.from(mContext), null, false); mBindings.setLifecycleOwner(this); MainApplication.appComponent @@ -60,7 +54,7 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment { setCancelable(true); - var alertDialog = new MaterialAlertDialogBuilder(this.mContext) + var alertDialog = new MaterialAlertDialogBuilder(mContext) .setView(mBindings.getRoot()) .setNeutralButton(R.string.action_close, null) .setCancelable(isCancelable()) @@ -86,17 +80,8 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment { if (availableItems == null) return; - var listItem = Stream.of(availableItems) - .flatMap(x -> Stream.of(x.getMvwSitArtUdcDetInventarioDTO()) - .map(DialogInfoSituazioneArticoloAvailableListItem::fromMvwSitArtUdcDetInventario) - ) - .toList(); - - List statoArticolo = null; StatoArtInventarioDTO statoArtInventario = availableItems.getStatoArtInventario(); if (statoArtInventario != null) { - statoArticolo = Stream.of(statoArtInventario).toList(); - if (statoArtInventario.colliArrivoIsLessThenZero() && statoArtInventario.colliMagIsLessThenZero()) { this.mBindings.situazioneArticolo.setVisibility(View.GONE); @@ -105,11 +90,11 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment { this.mBindings.situazioneArticolo.setVisibility(View.GONE); } - new LiveAdapter(listItem, BR.item) + new LiveAdapter(this.item.getSituazioneArticoloAvailableListItem(), BR.item) .map(DialogInfoSituazioneArticoloAvailableListItem.class, R.layout.dialog_info_giacenza_list_item) .into(this.mBindings.availableList); - new LiveAdapter(statoArticolo, BR.item) + new LiveAdapter(this.item.getStatoInventario(), BR.item) .map(StatoArtInventarioDTO.class, R.layout.dialog_info_giacenza_situazione_articolo) .into(this.mBindings.situazioneArticolo); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/dto/ArtsInGiacenzaDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/dto/ArtsInGiacenzaDTO.java index c400cc98..e7e583d6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/dto/ArtsInGiacenzaDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/dto/ArtsInGiacenzaDTO.java @@ -1,10 +1,13 @@ package it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto; +import com.annimon.stream.Stream; + import java.math.BigDecimal; import java.util.Date; import java.util.List; import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario; +import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.ui.DialogInfoSituazioneArticoloAvailableListItem; public class ArtsInGiacenzaDTO { @@ -113,4 +116,16 @@ public class ArtsInGiacenzaDTO { this.dataOrd = dataOrd; return this; } + + public List getSituazioneArticoloAvailableListItem() { + return Stream.of(this) + .flatMap(x -> Stream.of(x.getMvwSitArtUdcDetInventarioDTO()) + .map(DialogInfoSituazioneArticoloAvailableListItem::fromMvwSitArtUdcDetInventario) + ) + .toList(); + } + + public List getStatoInventario(){ + return Stream.of(this.statoArtInventario).toList(); + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java index a64b93f4..27dfbdca 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java @@ -403,32 +403,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr String codMart = dialogInputQuantityV2DTO.getMtbAart().getCodMart(); String flagStato = dialogInputQuantityV2DTO.getMtbAart().getFlagStato(); - if (flagStato.equalsIgnoreCase("I")) { - DialogSimpleMessageView.makeWarningDialog( - new SpannableString(Html.fromHtml(String.format(UtilityResources.getString(R.string.item_not_enabled), codMart))), - null, - () -> { - 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()); - - this.onLoadingStarted(); - onComplete.run(pickedQuantityDTO, shouldCloseLU); - }) - .setOnAbort(this::onLoadingEnded) - .show(requireActivity().getSupportFragmentManager(), "tag"); - }, - this::onLoadingEnded) - .show(getActivity().getSupportFragmentManager(), "tag"); - } else { - this.onLoadingEnded(); + checkIfItemIsActive(flagStato, codMart, () -> { if (!mDialogInputQuantityV2View.isVisible()) mDialogInputQuantityV2View .setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO) @@ -440,13 +415,23 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr .setPartitaMag(resultDTO.getPartitaMag()) .setDataScad(resultDTO.getDataScad()); - this.onLoadingStarted(); onComplete.run(pickedQuantityDTO, shouldCloseLU); }) - .setOnAbort(this::onLoadingEnded) .show(requireActivity().getSupportFragmentManager(), "tag"); + }, () -> {}); + } + + private void checkIfItemIsActive(String flagStato, String codMart, Runnable onContinue, Runnable onNegativeClick){ + if (flagStato.equalsIgnoreCase("I")) { + DialogSimpleMessageView.makeWarningDialog( + new SpannableString(Html.fromHtml(String.format(UtilityResources.getString(R.string.item_not_enabled), codMart))), + null, + onContinue, + onNegativeClick) + .show(getActivity().getSupportFragmentManager(), "tag"); + } else { + onContinue.run(); } - ; } @Override 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 8fdcaecf..e1111263 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 @@ -271,7 +271,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia this.mViewModel.validate(validated -> { if (validated) { this.mAbort = false; - dismiss();this.onLoadingEnded(); + dismiss(); this.mOnComplete.run(this.mViewModel.getResult(), true); }else { this.onLoadingEnded(); 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 e9916cd4..95bfd39e 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 @@ -485,7 +485,6 @@ public class DialogInputQuantityV2ViewModel { } public void validate(RunnableArgs onValidated) { - this.sendOnLoadingStarted(); new Thread(() -> { if (this.internalQtaCnf == null || UtilityBigDecimal.equalsTo(this.internalQtaCnf, BigDecimal.ZERO)) { @@ -611,7 +610,6 @@ public class DialogInputQuantityV2ViewModel { } } - this.sendOnLoadingEnded(); onValidated.run(true); }).start(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUViewModel.java index 990b2bd1..26a02de5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUViewModel.java @@ -3,6 +3,7 @@ package it.integry.integrywmsnative.view.dialogs.scan_or_create_lu; import com.annimon.stream.Stream; import it.integry.barcode_base_android_library.model.BarcodeScanDTO; +import it.integry.integrywmsnative.core.CommonConst; import it.integry.integrywmsnative.core.exception.AlreadyAttachedDocumentToLUException; import it.integry.integrywmsnative.core.exception.NoLUFoundException; import it.integry.integrywmsnative.core.exception.TooManyLUFoundInMonoLUPositionException; @@ -114,7 +115,20 @@ public class DialogScanOrCreateLUViewModel { if (mtbColt == null) { if (mEnableCreation) { - this.mColliMagazzinoRESTConsumer.createColloFromEtichettaAnonima(barcodeScanDTO, GestioneEnum.LAVORAZIONE, createdMtbColt -> { + Integer customNumCollo = null; + + try { + customNumCollo = UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()); + } catch (Exception ex) { + this.sendError(ex); + } + + var createUdcRequest = new CreateUDCRequestDTO() + .setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep()) + .setNumCollo(customNumCollo) + .setSerCollo(CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE); + + this.mColliLavorazioneRESTConsumer.createUDC(createUdcRequest, createdMtbColt -> { onComplete.run(); this.sendOnLUOpened(createdMtbColt, true); }, this::sendError); diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 12c3fac0..8a79a67e 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -354,8 +354,8 @@ Consegnato il %s Personalizzazioni Frudis - %s non è attivo.]]> - %s non è attivo.]]> + %s non è attivo. Continuare?]]> + %s non è attivo. Continuare?]]> Punto Vendita SaporiVeri PV Genera ordini di acquisto diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3bd81317..72ec40f4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -359,8 +359,8 @@ Delivered on %s Frudis customizations - %s is inactive.]]> - %s is inactive.]]> + %s is inactive. To continue?]]> + %s is inactive. To continue?]]> Other Home Logout From 9f7085dfed43e0f6d1ad4b77bee76296b8ab6bff Mon Sep 17 00:00:00 2001 From: MarcoE Date: Tue, 9 Apr 2024 10:06:32 +0200 Subject: [PATCH 06/15] -> v1.40.10 (427) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 0507c9a3..646f9ac1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 426 - def appVersionName = '1.40.09' + def appVersionCode = 427 + def appVersionName = '1.40.10' signingConfigs { release { From b0272cd9e072786b46ef88b98965a2ec6c22ca15 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 10 Apr 2024 12:07:41 +0200 Subject: [PATCH 07/15] Fix thread in validation DialogInputQuantityV2 --- .../DialogInputQuantityV2View.java | 26 ++++---- .../DialogInputQuantityV2ViewModel.java | 63 ++++++++----------- 2 files changed, 38 insertions(+), 51 deletions(-) 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 e1111263..0aa33da3 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 @@ -256,14 +256,19 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia }; public void save() { + this.onLoadingStarted(); + this.mViewModel.validate(validated -> { - if (validated) { - this.mAbort = false; - dismiss(); - this.mOnComplete.run(this.mViewModel.getResult(), false); - }else { + + requireActivity().runOnUiThread(() -> { this.onLoadingEnded(); - } + + if (validated) { + this.mAbort = false; + dismiss(); + this.mOnComplete.run(this.mViewModel.getResult(), false); + } + }); }); } @@ -273,7 +278,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia this.mAbort = false; dismiss(); this.mOnComplete.run(this.mViewModel.getResult(), true); - }else { + } else { this.onLoadingEnded(); } }); @@ -527,13 +532,6 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia this.mEnableDataCallback = true; } - @Override - public void onError(Exception ex) { - DialogSimpleMessageView - .makeErrorDialog(new SpannableString(Html.fromHtml(ex.getMessage())), null, null) - .show(requireActivity().getSupportFragmentManager(), "tag"); - } - @Override public void onWarning(String text, RunnableArgs result) { DialogSimpleMessageView.makeWarningDialog(new SpannableString(Html.fromHtml(text)), 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 95bfd39e..39f78cb1 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 @@ -99,7 +99,6 @@ public class DialogInputQuantityV2ViewModel { private final MagazzinoRESTConsumer mMagazzinoRESTConsumer; private StatoPartitaMag statoArt; - private MtbPartitaMag mtbPartitaMag; @Inject public DialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer, MagazzinoRESTConsumer magazzinoRESTConsumer) { @@ -488,7 +487,7 @@ public class DialogInputQuantityV2ViewModel { new Thread(() -> { if (this.internalQtaCnf == null || UtilityBigDecimal.equalsTo(this.internalQtaCnf, BigDecimal.ZERO)) { - this.mListener.onError(new InvalidQtaCnfQuantityException()); + this.sendError(new InvalidQtaCnfQuantityException()); onValidated.run(false); return; } @@ -497,33 +496,33 @@ public class DialogInputQuantityV2ViewModel { if (suggestPartitaMagRunnable != null) { internalPartitaMag = suggestPartitaMagRunnable.run(this); if (internalPartitaMag == null) { - this.mListener.onError(new InvalidBatchLotException()); + this.sendError(new InvalidBatchLotException()); onValidated.run(false); return; } } else { - this.mListener.onError(new InvalidBatchLotException()); + this.sendError(new InvalidBatchLotException()); onValidated.run(false); return; } } if (this.statoArt == StatoPartitaMag.DISATTIVO) { - this.mListener.onError(new InactiveBatchLotException(internalPartitaMag)); + this.sendError(new InactiveBatchLotException(internalPartitaMag)); onValidated.run(false); return; } if (this.shouldAskDataScad && UtilityString.isNullOrEmpty(internalPartitaMag)) { - this.mListener.onError(new InvalidBatchLotException()); + this.sendError(new InvalidBatchLotException()); onValidated.run(false); return; } if (this.shouldAskDataScad && this.internalDataScad == null) { - this.mListener.onError(new InvalidExpireDateException()); + this.sendError(new InvalidExpireDateException()); onValidated.run(false); return; } @@ -531,7 +530,7 @@ public class DialogInputQuantityV2ViewModel { if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) && this.mtbAart.get().isFlagQtaCnfFissaBoolean()) { - this.mListener.onError(new OverflowQtaTotOrderedQuantityException()); + this.sendError(new OverflowQtaTotOrderedQuantityException()); onValidated.run(false); return; } @@ -539,14 +538,14 @@ public class DialogInputQuantityV2ViewModel { if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfOrd) && !this.mtbAart.get().isFlagQtaCnfFissaBoolean()) { - this.mListener.onError(new OverflowNumCnfOrderedQuantityException()); + this.sendError(new OverflowNumCnfOrderedQuantityException()); onValidated.run(false); return; } if (UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaAvailable)) { - this.mListener.onError(new OverflowQtaTotAvailableQuantityException()); + this.sendError(new OverflowQtaTotAvailableQuantityException()); onValidated.run(false); return; } @@ -554,7 +553,7 @@ public class DialogInputQuantityV2ViewModel { if (UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfAvailable) && !this.mtbAart.get().isFlagQtaCnfFissaBoolean()) { - this.mListener.onError(new OverflowNumCnfAvailableQuantityException()); + this.sendError(new OverflowNumCnfAvailableQuantityException()); onValidated.run(false); return; } @@ -564,13 +563,13 @@ public class DialogInputQuantityV2ViewModel { UtilityBigDecimal.equalsOrLowerThan(this.internalQtaCnf, BigDecimal.ZERO) || UtilityBigDecimal.equalsOrLowerThan(this.internalQtaTot, BigDecimal.ZERO))) { - this.mListener.onError(new InvalidQuantityException()); + this.sendError(new InvalidQuantityException()); onValidated.run(false); return; } if (this.isNoteMandatory() && (this.internalNote == null || this.internalNote.length() <= 0)) { - this.mListener.onError(new InvalidNotesException()); + this.sendError(new InvalidNotesException()); onValidated.run(false); return; } @@ -579,10 +578,17 @@ public class DialogInputQuantityV2ViewModel { this.internalPartitaMag = this.internalPartitaMag.toUpperCase(); if (SettingsManager.iDB().isFlagWarningNewPartitaMag()) { - asyncMagazzinoRESTConsumer(internalPartitaMag, this.getMtbAart().getCodMart()); + MtbPartitaMag mtbPartitaMag = null; + try { + mtbPartitaMag = retrievePartitaMag(internalPartitaMag, this.getMtbAart().getCodMart()); + } catch (Exception e) { + this.sendError(e); + onValidated.run(false); + return; + } if (mtbPartitaMag == null) { - boolean result = runAsyncWarningDialog(UtilityResources.getString(R.string.batch_lot_inexistent_error_message)); + boolean result = runWarningDialogSyncronized(UtilityResources.getString(R.string.batch_lot_inexistent_error_message)); if (!result) { onValidated.run(false); return; @@ -593,7 +599,7 @@ public class DialogInputQuantityV2ViewModel { if (this.warnOnQuantityOverflow && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) && this.mtbAart.get().isFlagQtaCnfFissaBoolean()) { - boolean result = runAsyncWarningDialog(UtilityResources.getString(R.string.confirm_ordered_quantity_overflow_error_message)); + boolean result = runWarningDialogSyncronized(UtilityResources.getString(R.string.confirm_ordered_quantity_overflow_error_message)); if (!result) { onValidated.run(false); return; @@ -603,7 +609,7 @@ public class DialogInputQuantityV2ViewModel { if (this.warnOnQuantityOverflow && UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfOrd) && !this.mtbAart.get().isFlagQtaCnfFissaBoolean()) { - boolean result = runAsyncWarningDialog(UtilityResources.getString(R.string.confirm_ordered_num_cnf_overflow_error_message)); + boolean result = runWarningDialogSyncronized(UtilityResources.getString(R.string.confirm_ordered_num_cnf_overflow_error_message)); if (!result) { onValidated.run(false); return; @@ -614,7 +620,7 @@ public class DialogInputQuantityV2ViewModel { }).start(); } - private boolean runAsyncWarningDialog(String text) { + private boolean runWarningDialogSyncronized(String text) { try { final FutureTask ft = new FutureTask<>(() -> { }, new Object()); @@ -632,26 +638,9 @@ public class DialogInputQuantityV2ViewModel { } } - private void asyncMagazzinoRESTConsumer(String partitaMag, String codMart) { - try { - final FutureTask ft = new FutureTask<>(() -> { - }, new Object()); - mMagazzinoRESTConsumer.retrievePartitaMag( - partitaMag, - codMart, - returnPartitaMag -> { - mtbPartitaMag = returnPartitaMag; - ft.run(); - }, - e -> { - this.sendError(e); - ft.run(); - }); + private MtbPartitaMag retrievePartitaMag(String partitaMag, String codMart) throws Exception { + return mMagazzinoRESTConsumer.retrievePartitaMagSyncronized(partitaMag, codMart, this::sendError); - ft.get(); - } catch (Exception e) { - this.sendError(e); - } } public DialogInputQuantityV2ResultDTO getResult() { From 230a32139d02ecdc027e178b271006830d35e12e Mon Sep 17 00:00:00 2001 From: MarcoE Date: Wed, 10 Apr 2024 12:21:29 +0200 Subject: [PATCH 08/15] Aggiunto retrievePartitaMagSyncronized in MagazzinoRESTConsumer --- .../core/rest/consumers/MagazzinoRESTConsumer.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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 687689be..47bf7627 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 @@ -90,6 +90,19 @@ public class MagazzinoRESTConsumer extends _BaseRESTConsumer { }); } + public MtbPartitaMag retrievePartitaMagSyncronized(String partitaMag, String codMart, RunnableArgs onFailed) throws Exception { + MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class); + Response> response = service.retrievePartitaMag(codMart, partitaMag) + .execute(); + + if(response.isSuccessful()) { + return analyzeAnswer(response, "retrievePartitaMag"); + } else { + //TO BE TESTED + return null; + } + } + public void retrievePartitaMag(String partitaMag, String codMart, RunnableArgs onComplete, RunnableArgs onFailed){ MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class); service.retrievePartitaMag(codMart, partitaMag) From e643f25aa36ade71a8b7cad3f2594432ee3b6515 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Wed, 10 Apr 2024 13:26:12 +0200 Subject: [PATCH 09/15] Fix response retrievePartitaMagSyncronized --- .../core/rest/consumers/MagazzinoRESTConsumer.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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 47bf7627..5b6bc36a 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 @@ -2,8 +2,11 @@ package it.integry.integrywmsnative.core.rest.consumers; import androidx.annotation.NonNull; +import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import org.json.JSONObject; + import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; @@ -12,11 +15,13 @@ import javax.inject.Singleton; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.DtbOrdt; +import it.integry.integrywmsnative.core.model.ErrorResponse; 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; +import okhttp3.ResponseBody; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -95,15 +100,10 @@ public class MagazzinoRESTConsumer extends _BaseRESTConsumer { Response> response = service.retrievePartitaMag(codMart, partitaMag) .execute(); - if(response.isSuccessful()) { - return analyzeAnswer(response, "retrievePartitaMag"); - } else { - //TO BE TESTED - return null; - } + return analyzeAnswer(response, "retrievePartitaMag"); } - public void retrievePartitaMag(String partitaMag, String codMart, RunnableArgs onComplete, RunnableArgs onFailed){ + public void retrievePartitaMag(String partitaMag, String codMart, RunnableArgs onComplete, RunnableArgs onFailed) { MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class); service.retrievePartitaMag(codMart, partitaMag) .enqueue(new Callback<>() { From 835915b46a9c579655819bda48eac9145b3d7991 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Wed, 10 Apr 2024 13:27:06 +0200 Subject: [PATCH 10/15] -> v1.40.11 (428) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 646f9ac1..6d0d6d0b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 427 - def appVersionName = '1.40.10' + def appVersionCode = 428 + def appVersionName = '1.40.11' signingConfigs { release { From d9b02c44022b8949675970f14072270a025e78ee Mon Sep 17 00:00:00 2001 From: MarcoE Date: Wed, 10 Apr 2024 13:28:49 +0200 Subject: [PATCH 11/15] Fix import MagazzinoRESTConsumer --- .../core/rest/consumers/MagazzinoRESTConsumer.java | 5 ----- 1 file changed, 5 deletions(-) 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 5b6bc36a..2383218f 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 @@ -2,11 +2,8 @@ package it.integry.integrywmsnative.core.rest.consumers; import androidx.annotation.NonNull; -import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; -import org.json.JSONObject; - import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; @@ -15,13 +12,11 @@ import javax.inject.Singleton; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.DtbOrdt; -import it.integry.integrywmsnative.core.model.ErrorResponse; 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; -import okhttp3.ResponseBody; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; From ed3f84d0ea43272ea8d48b3c1f917a266c31cd45 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Wed, 10 Apr 2024 13:29:53 +0200 Subject: [PATCH 12/15] -> v1.40.12 (429) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 6d0d6d0b..8a9ce920 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 428 - def appVersionName = '1.40.11' + def appVersionCode = 429 + def appVersionName = '1.40.12' signingConfigs { release { From 518a00becf0b6052c5a81f20463859a97c4e63b7 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Tue, 16 Apr 2024 08:51:27 +0200 Subject: [PATCH 13/15] Fix check newPartitaMag --- .../DialogInputQuantityV2ViewModel.java | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) 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 39f78cb1..42609532 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 @@ -492,18 +492,39 @@ public class DialogInputQuantityV2ViewModel { return; } - if (!disableTracciabilitaCheck && mtbAart.get().isFlagTracciabilitaBoolean() && UtilityString.isNullOrEmpty(internalPartitaMag)) { - if (suggestPartitaMagRunnable != null) { - internalPartitaMag = suggestPartitaMagRunnable.run(this); - if (internalPartitaMag == null) { + if (!disableTracciabilitaCheck && mtbAart.get().isFlagTracciabilitaBoolean()) { + if (UtilityString.isNullOrEmpty(internalPartitaMag)) { + if (suggestPartitaMagRunnable != null) { + internalPartitaMag = suggestPartitaMagRunnable.run(this); + if (internalPartitaMag == null) { + this.sendError(new InvalidBatchLotException()); + onValidated.run(false); + return; + } + } else { this.sendError(new InvalidBatchLotException()); onValidated.run(false); return; } } else { - this.sendError(new InvalidBatchLotException()); - onValidated.run(false); - return; + if (SettingsManager.iDB().isFlagWarningNewPartitaMag()) { + MtbPartitaMag mtbPartitaMag = null; + try { + mtbPartitaMag = retrievePartitaMag(internalPartitaMag, this.getMtbAart().getCodMart()); + } catch (Exception e) { + this.sendError(e); + onValidated.run(false); + return; + } + + if (mtbPartitaMag == null) { + boolean result = runWarningDialogSyncronized(UtilityResources.getString(R.string.batch_lot_inexistent_error_message)); + if (!result) { + onValidated.run(false); + return; + } + } + } } } @@ -577,25 +598,6 @@ public class DialogInputQuantityV2ViewModel { if (!UtilityString.isNullOrEmpty(this.internalPartitaMag)) this.internalPartitaMag = this.internalPartitaMag.toUpperCase(); - if (SettingsManager.iDB().isFlagWarningNewPartitaMag()) { - MtbPartitaMag mtbPartitaMag = null; - try { - mtbPartitaMag = retrievePartitaMag(internalPartitaMag, this.getMtbAart().getCodMart()); - } catch (Exception e) { - this.sendError(e); - onValidated.run(false); - return; - } - - if (mtbPartitaMag == null) { - boolean result = runWarningDialogSyncronized(UtilityResources.getString(R.string.batch_lot_inexistent_error_message)); - if (!result) { - onValidated.run(false); - return; - } - } - } - if (this.warnOnQuantityOverflow && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) && this.mtbAart.get().isFlagQtaCnfFissaBoolean()) { From d04b3797ce970dc41f8048044df5b2957f8f603f Mon Sep 17 00:00:00 2001 From: MarcoE Date: Tue, 16 Apr 2024 08:55:44 +0200 Subject: [PATCH 14/15] -> v1.40.13 (430) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 8a9ce920..739a33df 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 429 - def appVersionName = '1.40.12' + def appVersionCode = 430 + def appVersionName = '1.40.13' signingConfigs { release { From ad012835119d8763a408f6ef84439838bf5ebc63 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 16 Apr 2024 10:46:56 +0200 Subject: [PATCH 15/15] Aggiornamenti librerie --- .idea/kotlinc.xml | 2 +- app/build.gradle | 8 ++++---- build.gradle | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index fdf8d994..e805548a 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 739a33df..599f4f67 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -103,17 +103,17 @@ dependencies { //Firebase // Import the Firebase BoM - implementation platform('com.google.firebase:firebase-bom:29.1.0') + implementation platform('com.google.firebase:firebase-bom:32.8.1') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-core' implementation 'com.google.firebase:firebase-crashlytics' implementation 'com.google.firebase:firebase-perf' - implementation 'com.google.android.gms:play-services-basement:18.2.0' + implementation 'com.google.android.gms:play-services-basement:18.3.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'com.google.android.material:material:1.10.0' + implementation 'com.google.android.material:material:1.11.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.3.2' @@ -128,7 +128,7 @@ dependencies { implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' implementation 'com.annimon:stream:1.2.2' - implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.2' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.7.0' // implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'org.apache.commons:commons-text:1.9' diff --git a/build.gradle b/build.gradle index 125adf3e..a814d42b 100644 --- a/build.gradle +++ b/build.gradle @@ -2,8 +2,8 @@ buildscript { ext { - kotlin_version = '1.9.0' - agp_version = '8.3.1' + kotlin_version = '1.9.20' + agp_version = '8.3.2' } repositories { @@ -13,7 +13,7 @@ buildscript { dependencies { classpath "com.android.tools.build:gradle:$agp_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath 'com.google.gms:google-services:4.4.0' + classpath 'com.google.gms:google-services:4.4.1' classpath 'com.google.firebase:perf-plugin:1.4.2'