From b1941d5c348ae6d303ec5eeff027fbda97beb2a3 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 11 Nov 2020 10:48:08 +0100 Subject: [PATCH 1/3] Aggiornato Gradle. Sistemati i testi dei bottoni in dialog base. Implementato logout nel dialog di errore all'avvio dell'app. --- .../integrywmsnative/MainActivity.java | 2 +- .../integrywmsnative/MainApplication.java | 2 + .../MainApplicationComponent.java | 5 ++ .../core/context/AppContext.java | 8 +++ .../core/context/MainContext.java | 14 +++-- .../consumers/MesRESTConsumerService.java | 2 +- .../core/utility/UtilitySettings.java | 10 +++- .../base/DialogSimpleMessageHelper.java | 54 +++++++++--------- .../base/DialogSimpleMessageViewModel.java | 30 ++++++++++ app/src/main/res/layout/dialog_base.xml | 57 ++++++++++++++++--- build.gradle | 2 +- 11 files changed, 144 insertions(+), 42 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java index f4c51d0c..c3e6981c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java @@ -175,8 +175,8 @@ public class MainActivity extends BaseActivity break; case R.id.nav_logout: - UtilitySettings.logout(this.mAppDatabase); ServerStatusChecker.dispose(); + UtilitySettings.logout(); startLoginActivity(); break; diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java index 4bb36e80..00bfc562 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java @@ -34,6 +34,8 @@ public class MainApplication extends Application { .roomModule(roomModule) .build(); + appComponent.inject(appContext); + appContext.init(); res = getResources(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java index 4e2d206f..f5200838 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java @@ -3,6 +3,7 @@ package it.integry.integrywmsnative; import javax.inject.Singleton; import dagger.Component; +import it.integry.integrywmsnative.core.context.AppContext; import it.integry.integrywmsnative.core.data_store.db.RoomModule; import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingComponent; import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingModule; @@ -47,4 +48,8 @@ public interface MainApplicationComponent { PickingResiComponent.Factory pickingResiComponent(); DialogInputQuantityV2Component.Factory dialogInputQuantityV2Component(); + + + void inject(AppContext appContext); + } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java b/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java index b00b35f3..8f752c4d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java @@ -6,12 +6,16 @@ import com.google.firebase.crashlytics.FirebaseCrashlytics; import com.orhanobut.logger.AndroidLogAdapter; import com.orhanobut.logger.Logger; +import javax.inject.Inject; + import it.integry.integrywmsnative.BuildConfig; import it.integry.integrywmsnative.core.data_recover.ColliDataRecover; +import it.integry.integrywmsnative.core.data_store.db.AppDatabase; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.Stash; import it.integry.integrywmsnative.core.utility.UtilityContext; import it.integry.integrywmsnative.core.utility.UtilityResources; +import it.integry.integrywmsnative.core.utility.UtilitySettings; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityToast; @@ -20,6 +24,9 @@ public class AppContext { //Note: this is the Application Context NOT the Activity Context private final Context mContext; + @Inject + AppDatabase mAppDatabase; + public AppContext(Context context) { this.mContext = context; } @@ -63,6 +70,7 @@ public class AppContext { UtilityContext.initApplicationContext(mContext); UtilityResources.init(mContext); UtilityToast.init(mContext); + UtilitySettings.init(mAppDatabase); } private void initLogger() { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java b/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java index 16ccf091..8d425f15 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java @@ -3,15 +3,18 @@ package it.integry.integrywmsnative.core.context; import android.content.Context; import android.text.SpannableString; -import java.lang.reflect.Method; - import androidx.appcompat.app.AppCompatActivity; -import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker; +import java.lang.reflect.Method; + +import it.integry.integrywmsnative.MainApplication; +import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.class_router.ClassRouter; +import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilitySettings; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; public class MainContext { @@ -44,7 +47,10 @@ public class MainContext { private void initDBData(Runnable onComplete) { SettingsManager.loadDBVariables(onComplete, ex -> { DialogSimpleMessageHelper.makeErrorDialog(mContext, - new SpannableString(ex.getMessage()), null, mContext::finish).show(); + new SpannableString(ex.getMessage()), null, mContext::finish, R.string.logout, () -> { + UtilitySettings.logout(); + MainApplication.exit(); + }).show(); } ); } 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 09a058fd..ae48d79b 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 @@ -11,7 +11,7 @@ import retrofit2.http.Query; public interface MesRESTConsumerService { - @GET("mes/getOrdiniLavorazioneMateriale") + @GET("mes_v2/getOrdiniLavorazioneMateriale") Call>> getOrdiniLavorazioneMateriale(@Query("codJfas") String codJfas, @Query("idMateriale") String idMateriale); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilitySettings.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilitySettings.java index 1c12f951..1574c6f9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilitySettings.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilitySettings.java @@ -6,10 +6,16 @@ import it.integry.integrywmsnative.core.settings.SettingsManager; public class UtilitySettings { - public static void logout(AppDatabase appDatabase){ + private static AppDatabase mAppDatabase; + + public static void init(AppDatabase appDatabase) { + mAppDatabase = appDatabase; + } + + public static void logout(){ SettingsManager.i().setUser(null); SettingsManager.i().setUserSession(null); - UtilityThread.executeParallel(appDatabase::clearAllTables); + UtilityThread.executeParallel(mAppDatabase::clearAllTables); SettingsManager.update(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java index 964ac72e..dbbe9aa5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java @@ -1,7 +1,6 @@ package it.integry.integrywmsnative.view.dialogs.base; import android.app.Activity; -import androidx.appcompat.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.res.ColorStateList; @@ -9,22 +8,20 @@ import android.graphics.Color; import android.graphics.Rect; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; -import androidx.annotation.StringRes; -import androidx.core.content.ContextCompat; -import androidx.appcompat.widget.AppCompatImageView; - import android.text.SpannableString; import android.text.Spanned; import android.view.LayoutInflater; -import android.view.View; import android.view.Window; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import androidx.annotation.StringRes; +import androidx.core.content.ContextCompat; +import androidx.databinding.DataBindingUtil; + import java.util.HashMap; -import androidx.databinding.DataBindingUtil; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.databinding.DialogBaseBinding; @@ -41,9 +38,11 @@ public class DialogSimpleMessageHelper { ERROR(4); private int value; + TYPE(int value) { this.value = value; } + public int getValue() { return this.value; } @@ -56,15 +55,15 @@ public class DialogSimpleMessageHelper { } } - private static Dialog makeBase(TYPE type, Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){ - LayoutInflater inflater = (LayoutInflater) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); + private static Dialog makeBase(TYPE type, Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick, @StringRes Integer rNeutralButtonString, Runnable onNeutralClick) { + LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); int colorBackgroundTitle = -1; Drawable titleIconRes = null; Dialog dialog = new Dialog(mContext); - switch (type){ + switch (type) { case INFO: colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.light_blue_300); titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_info_78dp); @@ -91,7 +90,11 @@ public class DialogSimpleMessageHelper { viewModel .setOnPositive(onPositiveClick) .setOnNeutral(onNeutralClick) - .setOnNegative(onNegativeClick); + .setOnNegative(onNegativeClick) + + .setPositiveButtonText(mContext.getText(R.string.ok).toString()) + .setNeutralButtonText(rNeutralButtonString != null && rNeutralButtonString != -1 ? mContext.getText(rNeutralButtonString).toString() : null) + .setNegativeButtonText(mContext.getText(R.string.no).toString()); DialogBaseBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.dialog_base, null, false); @@ -99,12 +102,10 @@ public class DialogSimpleMessageHelper { mBinding.setViewmodel(viewModel); - Rect displayRectangle = new Rect(); Window window = ((Activity) mContext).getWindow(); window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle); - mBinding.titleContainer.setMinimumWidth((int)(displayRectangle.width() * 0.8f)); - + mBinding.titleContainer.setMinimumWidth((int) (displayRectangle.width() * 0.8f)); //Title VIEW @@ -120,7 +121,7 @@ public class DialogSimpleMessageHelper { LinearLayout hashMapContainer = mBinding.dialogContentHashmap; - if(hashmapContent != null) { + if (hashmapContent != null) { for (int i = 0; i < hashmapContent.keySet().size(); i++) { String currentKey = hashmapContent.keySet().toArray()[i].toString(); String currentValue = hashmapContent.get(currentKey); @@ -142,7 +143,7 @@ public class DialogSimpleMessageHelper { } - public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){ + public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) { return makeBase(TYPE.INFO, mContext, titleText, @@ -153,7 +154,7 @@ public class DialogSimpleMessageHelper { } - public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){ + public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick) { return makeBase(TYPE.INFO, mContext, titleText, @@ -164,7 +165,7 @@ public class DialogSimpleMessageHelper { } - public static Dialog makeSuccessDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){ + public static Dialog makeSuccessDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) { return makeBase(TYPE.SUCCESS, mContext, titleText, @@ -175,18 +176,20 @@ public class DialogSimpleMessageHelper { } - public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){ + public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick) { return makeBase(TYPE.WARNING, mContext, mContext.getText(R.string.warning).toString(), messageText, hashmapContent, onPositiveClick, - () -> { if(onNegativeClick != null) onNegativeClick.run(); }, -1, null); + () -> { + if (onNegativeClick != null) onNegativeClick.run(); + }, -1, null); } - public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){ + public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) { return makeBase(TYPE.WARNING, mContext, mContext.getText(R.string.warning).toString(), @@ -196,7 +199,7 @@ public class DialogSimpleMessageHelper { null, -1, null); } - public static void showSimpleWarningDialog(Context context, String message){ + public static void showSimpleWarningDialog(Context context, String message) { makeErrorDialog( context, new SpannableString(message), @@ -204,7 +207,7 @@ public class DialogSimpleMessageHelper { null).show(); } - public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){ + public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) { return makeBase(TYPE.ERROR, mContext, @@ -215,7 +218,7 @@ public class DialogSimpleMessageHelper { null, -1, null); } - public static void showSimpleErrorDialog(Context context, String message){ + public static void showSimpleErrorDialog(Context context, String message) { makeErrorDialog( context, new SpannableString(message), @@ -223,7 +226,7 @@ public class DialogSimpleMessageHelper { null).show(); } - public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){ + public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick) { return makeBase(TYPE.ERROR, mContext, @@ -236,5 +239,4 @@ public class DialogSimpleMessageHelper { } - } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java index 2d3ed9e4..3a217b53 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java @@ -11,6 +11,9 @@ public class DialogSimpleMessageViewModel { private Runnable onNeutral; private Runnable onNegative; + private String positiveButtonText; + private String neutralButtonText; + private String negativeButtonText; public DialogSimpleMessageViewModel(Dialog dialog) { mDialog = dialog; @@ -46,6 +49,33 @@ public class DialogSimpleMessageViewModel { } + public String getPositiveButtonText() { + return positiveButtonText; + } + + public DialogSimpleMessageViewModel setPositiveButtonText(String positiveButtonText) { + this.positiveButtonText = positiveButtonText; + return this; + } + + public String getNeutralButtonText() { + return neutralButtonText; + } + + public DialogSimpleMessageViewModel setNeutralButtonText(String neutralButtonText) { + this.neutralButtonText = neutralButtonText; + return this; + } + + public String getNegativeButtonText() { + return negativeButtonText; + } + + public DialogSimpleMessageViewModel setNegativeButtonText(String negativeButtonText) { + this.negativeButtonText = negativeButtonText; + return this; + } + public void onPositiveClick() { mDialog.dismiss(); if(onPositive != null) onPositive.run(); diff --git a/app/src/main/res/layout/dialog_base.xml b/app/src/main/res/layout/dialog_base.xml index 1aa04bfa..6b7ddd31 100644 --- a/app/src/main/res/layout/dialog_base.xml +++ b/app/src/main/res/layout/dialog_base.xml @@ -123,7 +123,7 @@ app:layout_constraintEnd_toStartOf="@id/center_guideline" app:strokeColor="@color/colorPrimary" android:onClick="@{() -> viewmodel.onNegativeClick()}" - android:text="@string/no"/> + android:text="@{viewmodel.negativeButtonText}"/> + android:text="@{viewmodel.positiveButtonText}"/> @@ -173,7 +173,7 @@ app:layout_constraintStart_toStartOf="@id/ok_left_buttons_guideline" app:layout_constraintEnd_toEndOf="@id/ok_right_buttons_guideline" android:onClick="@{() -> viewmodel.onPositiveClick()}" - android:text="@string/ok"/> + android:text="@{viewmodel.positiveButtonText}"/> @@ -184,7 +184,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="8dp" - android:visibility="@{viewmodel.neutralVisible ? View.VISIBLE : View.GONE}"> + android:visibility="@{viewmodel.negativeVisible && viewmodel.neutralVisible ? View.VISIBLE : View.GONE}"> + android:text="@{viewmodel.negativeButtonText}"/> + android:text="@{viewmodel.neutralButtonText}"/> + android:text="@{viewmodel.positiveButtonText}"/> + + + + + + + + + + + + + diff --git a/build.gradle b/build.gradle index ac4a0e5d..ca743e40 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.0' + classpath 'com.android.tools.build:gradle:4.1.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.4' classpath 'com.google.firebase:perf-plugin:1.3.3' From a96078c9e650658615810c5f992fc7ddb7ed574b Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 11 Nov 2020 12:32:38 +0100 Subject: [PATCH 2/3] Risolto problema di picking diverso dal collo suggerito. --- .../gest/spedizione/SpedizioneActivity.java | 4 +- .../gest/spedizione/SpedizioneViewModel.java | 58 +++++++++++++------ .../core/SpedizioneListAdapter.java | 9 +-- 3 files changed, 48 insertions(+), 23 deletions(-) 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 8d289482..01826f58 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 @@ -204,9 +204,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo this.mBindings.spedizionePickingList.setAdapter(spedizioneListAdapter); this.mBindings.spedizionePickingList.setLayoutManager(new LinearLayoutManager(this)); - spedizioneListAdapter.setOnItemClicked((clickedItem) -> { + spedizioneListAdapter.setOnItemClicked((clickedItem, refMtbColt) -> { if (!noLUPresent.get() && SettingsManager.iDB().isFlagSpedizioneEnableManualPick() && clickedItem.getSitArtOrdDTO().isFlagEnablePickManuale()) { - this.mViewmodel.dispatchOrdineRow(clickedItem, clickedItem.getRefMtbColt()); + this.mViewmodel.dispatchOrdineRow(clickedItem, refMtbColt); } }); } 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 5777f034..5e0fac25 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 @@ -588,7 +588,7 @@ public class SpedizioneViewModel { if (UtilityString.equalsIgnoreCase(x.getCodMart(), pickingObject.getSitArtOrdDTO().getCodMart()) && UtilityString.equalsIgnoreCase(x.getCodTagl(), pickingObject.getSitArtOrdDTO().getCodTagl()) && UtilityString.equalsIgnoreCase(x.getCodCol(), pickingObject.getSitArtOrdDTO().getCodCol()) && - (!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(x.getPartitaMag(), pickingObject.getSitArtOrdDTO().getPartitaMag()))) { + (!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(x.getPartitaMag(), pickingObject.getSitArtOrdDTO().getPartitaMag()) || UtilityString.isNullOrEmpty(pickingObject.getSitArtOrdDTO().getPartitaMag()))) { if (!matchPickingObject.contains(pickingObject)) { matchPickingObject.add(pickingObject); @@ -701,28 +701,47 @@ public class SpedizioneViewModel { //TODO: Al posto di prelevare la prima riga bisognerebbe controllare se c'รจ ne una che corrisponde con la partita richiesta - MtbColr mtbColrToDispatch = pickingObjectDTO.getTempPickData() != null && + MtbColr scannedMtbColr = pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getSourceMtbColt() != null && pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr() != null && pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().size() > 0 ? pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().get(0) : null; - if (mtbColrToDispatch != null) { - if (UtilityBigDecimal.lowerThan(mtbColrToDispatch.getQtaCol(), qtaDaEvadere) || UtilityBigDecimal.equalsTo(mtbColrToDispatch.getQtaCol(), qtaDaEvadere)) { - numCnfDaPrelevare = mtbColrToDispatch.getNumCnf(); - qtaColDaPrelevare = mtbColrToDispatch.getQtaCol(); + if (refMtbColt == null && pickingObjectDTO.getMtbColts() != null && pickingObjectDTO.getMtbColts().size() == 1) { + refMtbColt = pickingObjectDTO.getMtbColts().get(0); + } + + MtbColr refMtbColr = null; + + if(refMtbColt != null && refMtbColt.getMtbColr().size() > 0) { + Optional optionalMtbColr = Stream.of(refMtbColt.getMtbColr()) + .filter(y -> UtilityString.equalsIgnoreCase(y.getCodMart(), scannedMtbColr.getCodMart()) && + UtilityString.equalsIgnoreCase(y.getCodTagl(), scannedMtbColr.getCodTagl()) && + UtilityString.equalsIgnoreCase(y.getCodCol(), scannedMtbColr.getCodCol()) && + (!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(y.getPartitaMag(), scannedMtbColr.getPartitaMag()) || UtilityString.isNullOrEmpty(scannedMtbColr.getPartitaMag()))) + .findFirst(); + + if(optionalMtbColr.isPresent()) refMtbColr = optionalMtbColr.get(); + } + + MtbColr mtbColrToUse = refMtbColr != null ? refMtbColr : scannedMtbColr; + + if (mtbColrToUse != null) { + if (UtilityBigDecimal.equalsOrLowerThan(mtbColrToUse.getQtaCol(), qtaDaEvadere)) { + numCnfDaPrelevare = mtbColrToUse.getNumCnf(); + qtaColDaPrelevare = mtbColrToUse.getQtaCol(); } else { numCnfDaPrelevare = numCnfDaEvadere; qtaColDaPrelevare = qtaDaEvadere; } - qtaCnfDaPrelevare = mtbColrToDispatch.getQtaCnf(); + qtaCnfDaPrelevare = mtbColrToUse.getQtaCnf(); - totalQtaAvailable = mtbColrToDispatch.getQtaCol(); - totalNumCnfAvailable = mtbColrToDispatch.getNumCnf(); - qtaCnfAvailable = mtbColrToDispatch.getQtaCnf(); + totalQtaAvailable = mtbColrToUse.getQtaCol(); + totalNumCnfAvailable = mtbColrToUse.getNumCnf(); + qtaCnfAvailable = mtbColrToUse.getQtaCnf(); if (UtilityBigDecimal.lowerThan(numCnfDaPrelevare, BigDecimal.ZERO)) @@ -731,8 +750,8 @@ public class SpedizioneViewModel { if (UtilityBigDecimal.lowerThan(qtaColDaPrelevare, BigDecimal.ZERO)) qtaColDaPrelevare = BigDecimal.ZERO; - partitaMag = mtbColrToDispatch.getPartitaMag(); - dataScad = mtbColrToDispatch.getDataScadPartitaD(); + partitaMag = scannedMtbColr.getPartitaMag(); + dataScad = scannedMtbColr.getDataScadPartitaD(); } else if (pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getManualPickDTO() != null) { //Oppure le info del barcode scansionato @@ -779,10 +798,6 @@ public class SpedizioneViewModel { } } - if(refMtbColt == null && pickingObjectDTO.getMtbColts().size() == 1) { - refMtbColt = pickingObjectDTO.getMtbColts().get(0); - } - MtbColt finalRefMtbColt = refMtbColt; this.sendOnItemDispatched( pickingObjectDTO, @@ -1185,7 +1200,16 @@ public class SpedizioneViewModel { .setUntMis(pickingObjectDTO.getMtbAart().getUntMis()) .setMtbAart(pickingObjectDTO.getMtbAart()); - mtbColr.setRefMtbColr(mtbColrToDispatch); + + mtbColr.setRefMtbColr(new MtbColr() + .setCodMart(mtbColr.getCodMart()) + .setPartitaMag(mtbColr.getPartitaMag()) + .setCodTagl(mtbColr.getCodTagl()) + .setCodCol(mtbColr.getCodCol()) + .setNumCollo(refMtbColt.getNumCollo()) + .setDataCollo(refMtbColt.getDataColloS()) + .setSerCollo(refMtbColt.getSerCollo()) + .setGestione(refMtbColt.getGestione())); pickingObjectDTO.getWithdrawMtbColrs().add(mtbColr); mCurrentMtbColt.getMtbColr().add(mtbColr); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/SpedizioneListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/SpedizioneListAdapter.java index bf2cd22f..07bfafec 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/SpedizioneListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/SpedizioneListAdapter.java @@ -20,7 +20,8 @@ import java.util.List; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback; -import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.expansion.RunnableArgss; +import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.utility.UtilityNumber; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.SpedizioneMainListGroupHeaderBinding; @@ -32,7 +33,7 @@ public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter mDataset = new ArrayList<>(); - private RunnableArgs mOnItemClicked; + private RunnableArgss mOnItemClicked; static class SubheaderHolder extends RecyclerView.ViewHolder { @@ -70,7 +71,7 @@ public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter onItemClicked) { + public void setOnItemClicked(RunnableArgss onItemClicked) { this.mOnItemClicked = onItemClicked; } @@ -138,7 +139,7 @@ public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter { if (this.mOnItemClicked != null) - this.mOnItemClicked.run(pickingObjectDTO.getOriginalModel()); + this.mOnItemClicked.run(pickingObjectDTO.getOriginalModel(), pickingObjectDTO.getSourceMtbColt()); }); } From 575762da2fb7f3805a61e0a4e7c6c7ba13405741 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 11 Nov 2020 12:33:14 +0100 Subject: [PATCH 3/3] -> v1.13.20 (166) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 94aabcb8..69c5fbfe 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 165 - def appVersionName = '1.13.19' + def appVersionCode = 166 + def appVersionName = '1.13.20' signingConfigs { release {