From 95f765756c7989ce966a3c8e38fbc9317215e80f Mon Sep 17 00:00:00 2001 From: MarcoE Date: Tue, 9 Apr 2024 10:04:12 +0200 Subject: [PATCH 1/2] 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 2/2] -> 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 {