From bef0fa01846f0e4f21a58dbbf46ed1c9e0ccfb49 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 24 Apr 2020 18:31:05 +0200 Subject: [PATCH] Fix vari. Implementato doppio tap per bloccare/sbloccare caselle di testo in DialogInputQuantity. --- app/build.gradle | 3 +- .../integrywmsnative/core/model/MtbAart.java | 22 +- .../core/utility/UtilityBigDecimal.java | 7 + .../spedizione_new/SpedizioneActivity.java | 9 +- .../spedizione_new/SpedizioneViewModel.java | 24 +++ .../exceptions/InvalidPesoKGException.java | 7 + .../gest/vendita/MainVenditaFragment.java | 2 +- .../vendita/core/MainListVenditaAdapter.java | 3 +- .../vendita/dto/OrdineVenditaInevasoDTO.java | 15 +- .../DialogInputQuantityV2.java | 39 ++++ app/src/main/res/layout/activity_login.xml | 204 +++++++++--------- .../main/res/layout/activity_spedizione.xml | 6 +- .../res/layout/dialog_input_quantity_v2.xml | 3 + build.gradle | 2 +- 14 files changed, 223 insertions(+), 123 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/spedizione_new/exceptions/InvalidPesoKGException.java diff --git a/app/build.gradle b/app/build.gradle index 0ef51211..a2089e48 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -98,7 +98,7 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.1.0' - implementation 'androidx.preference:preference:1.1.0' + implementation 'androidx.preference:preference:1.1.1' implementation 'com.squareup.okhttp3:okhttp:4.5.0' implementation 'com.squareup.retrofit2:retrofit:2.8.1' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' @@ -128,6 +128,7 @@ dependencies { implementation 'com.fxn769:stash:1.2' testImplementation 'junit:junit:4.13' implementation 'com.github.zhukic:sectioned-recyclerview:1.2.3' + implementation 'com.github.pedromassango:doubleClick:3.0' //SQLite ROOM def room_version = "2.2.4" diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java index 5801b5db..1a78ad49 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java @@ -1,10 +1,6 @@ package it.integry.integrywmsnative.core.model; -import android.os.Parcel; -import android.os.Parcelable; - import java.math.BigDecimal; -import java.util.Date; import java.util.List; import it.integry.integrywmsnative.core.utility.UtilityString; @@ -91,9 +87,18 @@ public class MtbAart extends EntityBase{ private String codNcIntracee; private String marchio; private Integer sezione; + private UntMisRifPesoEnum untMisRifPeso; private List mtbUntMis; + + public enum UntMisRifPesoEnum { + C, + M; + } + + + public MtbAart() { this.type = "mtb_aart"; } @@ -805,4 +810,13 @@ public class MtbAart extends EntityBase{ this.mtbUntMis = mtbUntMis; return this; } + + public UntMisRifPesoEnum getUntMisRifPeso() { + return untMisRifPeso; + } + + public MtbAart setUntMisRifPeso(UntMisRifPesoEnum untMisRifPeso) { + this.untMisRifPeso = untMisRifPeso; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBigDecimal.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBigDecimal.java index b3e995f1..62c120ab 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBigDecimal.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBigDecimal.java @@ -33,6 +33,13 @@ public class UtilityBigDecimal { return lowerThan(input1, input2) ? input1 : input2; } + public static BigDecimal getGreaterBetween(BigDecimal input1, BigDecimal input2) { + if(input1 == null) return input2; + if(input2 == null) return input1; + + return greaterThan(input1, input2) ? input1 : input2; + } + public static BigDecimal divide(BigDecimal input1, BigDecimal divisor) { if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione_new/SpedizioneActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione_new/SpedizioneActivity.java index 67511009..ee68fc23 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione_new/SpedizioneActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione_new/SpedizioneActivity.java @@ -43,9 +43,11 @@ import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.core.utility.UtilityToast; import it.integry.integrywmsnative.databinding.ActivitySpedizioneBinding; import it.integry.integrywmsnative.gest.spedizione_new.core.SpedizioneListAdapter; import it.integry.integrywmsnative.gest.spedizione_new.core.SpedizioneListModel; +import it.integry.integrywmsnative.gest.spedizione_new.exceptions.InvalidPesoKGException; import it.integry.integrywmsnative.gest.spedizione_new.model.PickedQuantityDTO; import it.integry.integrywmsnative.gest.spedizione_new.model.PickingObjectDTO; import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO; @@ -450,7 +452,12 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo public void onError(Exception ex) { this.closeProgress(); - UtilityExceptions.defaultException(this, ex, mCurrentProgress); + if(ex instanceof InvalidPesoKGException) { + UtilityToast.showToast(ex.getMessage()); + } else { + UtilityExceptions.defaultException(this, ex, mCurrentProgress); + } + BarcodeManager.enable(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione_new/SpedizioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione_new/SpedizioneViewModel.java index a1f5d6bc..20352711 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione_new/SpedizioneViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione_new/SpedizioneViewModel.java @@ -50,6 +50,7 @@ import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityPosizione; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.gest.spedizione_new.exceptions.CurrentMonoLUPositionIsNotCorrectException; +import it.integry.integrywmsnative.gest.spedizione_new.exceptions.InvalidPesoKGException; import it.integry.integrywmsnative.gest.spedizione_new.exceptions.NoPrintersFoundException; import it.integry.integrywmsnative.gest.spedizione_new.exceptions.OrdersLoadException; import it.integry.integrywmsnative.gest.spedizione_new.exceptions.NoArtsFoundException; @@ -667,6 +668,9 @@ public class SpedizioneViewModel { BigDecimal qtaDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd().subtract(qtaColWithdrawRows.getBigDecimalValue()); BigDecimal qtaCnfDaEvadere = qtaCnfOrd; + numCnfDaEvadere = UtilityBigDecimal.getGreaterBetween(numCnfDaEvadere, BigDecimal.ZERO); + qtaDaEvadere = UtilityBigDecimal.getGreaterBetween(qtaDaEvadere, BigDecimal.ZERO); + BigDecimal numCnfDaPrelevare = null; BigDecimal qtaColDaPrelevare = null; BigDecimal qtaCnfDaPrelevare = null; @@ -718,11 +722,22 @@ public class SpedizioneViewModel { PickDataDTO.ManualPickDTO manualPickDTO = pickingObjectDTO.getTempPickData().getManualPickDTO(); MtbAart mtbAart = pickingObjectDTO.getMtbAart(); + qtaColDaPrelevare = manualPickDTO.getQtaTot(); numCnfDaPrelevare = manualPickDTO.getNumCnf(); if (mtbAart.isFlagQtaCnfFissaBoolean()) { qtaCnfDaPrelevare = mtbAart.getQtaCnf(); + + if(manualPickDTO.isEanPeso()) { + if(mtbAart.getUntMisRifPeso() == MtbAart.UntMisRifPesoEnum.M) { + if (UtilityBigDecimal.equalsTo(mtbAart.getPesoKg(), BigDecimal.ZERO)) { + this.sendError(new InvalidPesoKGException()); + } else { + qtaColDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, mtbAart.getPesoKg()); + } + } + } } else if (qtaColDaPrelevare != null && numCnfDaPrelevare != null) { qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare); } @@ -1082,6 +1097,15 @@ public class SpedizioneViewModel { // } } + + if(UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) { + resetMatchedRows(); + this.sendOnLoadingEnded(); + + if (shouldCloseLU) closeLU(shouldPrint); + return; + } + boolean finalShouldPrint = shouldPrint; mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione_new/exceptions/InvalidPesoKGException.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione_new/exceptions/InvalidPesoKGException.java new file mode 100644 index 00000000..d0547407 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione_new/exceptions/InvalidPesoKGException.java @@ -0,0 +1,7 @@ +package it.integry.integrywmsnative.gest.spedizione_new.exceptions; + +public class InvalidPesoKGException extends Exception { + public InvalidPesoKGException() { + super("Il campo Peso KG dell'articolo non รจ valido"); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java index d13915f8..2c3ccb83 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java @@ -163,7 +163,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS public void refreshOrdini(List ordini){ mRenderedOrderList.clear(); - mRenderedOrderList.addAll(ordini); + mRenderedOrderList.addAll(ordini != null ? ordini : new ArrayList<>()); } private void initRecyclerView() { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/MainListVenditaAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/MainListVenditaAdapter.java index 567c6a37..6a90c326 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/MainListVenditaAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/MainListVenditaAdapter.java @@ -14,7 +14,6 @@ import androidx.recyclerview.widget.RecyclerView; import com.annimon.stream.Stream; import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter; -import java.util.HashMap; import java.util.List; import it.integry.integrywmsnative.R; @@ -130,7 +129,7 @@ public class MainListVenditaAdapter extends SectionedRecyclerViewAdapter - - + + - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:fitsSystemWindows="true"> - - - - - - - + + + + + - + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + app:errorText="@{loginViewModel.usernameError}" + app:hintTextAppearance="@style/hint_text" + style="@style/TextInputLayout.OutlinePrimary"> - - - - - - - - - - - - - + android:hint="Username" + android:inputType="textEmailAddress" + app:binding="@{loginViewModel.username}" /> + - + + + + + + + + + + + + + - + android:layout_marginTop="8dp" + app:errorText="@{loginViewModel.codAziendaError}" + app:hintTextAppearance="@style/hint_text" + style="@style/TextInputLayout.OutlinePrimary"> - + + - + + + - - + - - + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_spedizione.xml b/app/src/main/res/layout/activity_spedizione.xml index 4bd2e7ba..8459aff9 100644 --- a/app/src/main/res/layout/activity_spedizione.xml +++ b/app/src/main/res/layout/activity_spedizione.xml @@ -76,8 +76,7 @@ android:background="@drawable/ripple_effect" app:singleClick="@{() -> spedizioneView.startManualSearch()}" android:src="@drawable/ic_black_barcode" - android:tint="@color/colorPrimaryGray" - android:visibility="@{BuildConfig.DEBUG ? View.VISIBLE : View.GONE}" /> + android:tint="@color/colorPrimaryGray" /> + android:tint="@color/colorPrimaryGray" /> diff --git a/app/src/main/res/layout/dialog_input_quantity_v2.xml b/app/src/main/res/layout/dialog_input_quantity_v2.xml index 9c4295a1..31eb2acf 100644 --- a/app/src/main/res/layout/dialog_input_quantity_v2.xml +++ b/app/src/main/res/layout/dialog_input_quantity_v2.xml @@ -432,6 +432,7 @@ android:layout_height="wrap_content" android:layout_weight="@{!viewmodel.mtbAart.flagQtaCnfFissaBoolean ? 1f : 1.5f}" android:paddingEnd="4dp" + android:focusableInTouchMode="false" android:enabled="@{view.enabledNumCnf}" tools:layout_weight="1"> @@ -453,6 +454,7 @@ android:layout_height="wrap_content" android:layout_weight="1" android:paddingEnd="4dp" + android:focusableInTouchMode="false" android:enabled="@{view.enabledQtaCnf}" android:visibility="@{!viewmodel.mtbAart.flagQtaCnfFissaBoolean ? View.VISIBLE : View.GONE}"> @@ -474,6 +476,7 @@ android:layout_height="wrap_content" android:layout_weight="@{!viewmodel.mtbAart.flagQtaCnfFissaBoolean ? 1f : 1.5f}" android:enabled="@{view.enabledQtaTot}" + android:focusableInTouchMode="false" tools:layout_weight="1">