From 70af7b7396815db1d783891d35ff6b2043aae220 Mon Sep 17 00:00:00 2001 From: Gius95 Date: Thu, 13 Dec 2018 16:19:06 +0100 Subject: [PATCH] Completato posizionamento in RettificaGiacenze --- .idea/caches/build_file_checksums.ser | Bin 728 -> 728 bytes app/build.gradle | 4 +- .../core/model/MtbDepoPosizione.java | 16 +++ .../core/utility/UtilityPosizione.java | 13 ++ .../viewmodel/RettificaGiacenzeViewModel.java | 12 +- .../VenditaOrdineInevasoViewModel.java | 5 +- .../DialogAskPositionOfLU.java | 120 +++++++++++++++--- .../DialogAskPositionOfLUAdapter.java | 9 ++ .../dialog_ask_position_of_lu__page2.xml | 7 +- app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/values/styles.xml | 10 +- 12 files changed, 159 insertions(+), 39 deletions(-) diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index f32d8f4d1cebf5fb0d1a25e95f2a1573eebe3277..7a399af8ac7e1ac94294b7b03de6f5f0a2923f90 100644 GIT binary patch delta 36 ucmV+<0NelA1=t0Um;|RzLm`ozwGagF%JKKbqS*5ZWF3k#x?Hni0e1mFj1cnx delta 36 ucmV+<0NelA1=t0Um;|Qf3h0rXwGaUmlaf?(F$Wn4)U%*E_;j;j0e1l-)(;8* diff --git a/app/build.gradle b/app/build.gradle index 636a418b..da57a5d7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "it.integry.integrywmsnative" minSdkVersion 21 targetSdkVersion 28 - versionCode 4 - versionName "1.0.1" + versionCode 5 + versionName "1.0.2" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbDepoPosizione.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbDepoPosizione.java index f67b8e3b..73c5d4d8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbDepoPosizione.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbDepoPosizione.java @@ -1,5 +1,8 @@ package it.integry.integrywmsnative.core.model; +import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityLogger; + public class MtbDepoPosizione { private String codMdep; @@ -7,6 +10,19 @@ public class MtbDepoPosizione { private String descrizione; private String flagMonoCollo; + + + public MtbDepoPosizione clone() { + try { + return (MtbDepoPosizione) super.clone(); + } catch (CloneNotSupportedException e) { + e.printStackTrace(); + UtilityLogger.errorMe(e); + } + + return null; + } + public String getCodMdep() { return codMdep; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityPosizione.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityPosizione.java index a7ba71c9..617edbf7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityPosizione.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityPosizione.java @@ -1,6 +1,11 @@ package it.integry.integrywmsnative.core.utility; +import com.annimon.stream.Stream; + +import java.util.List; + import it.integry.integrywmsnative.core.model.MtbDepoPosizione; +import it.integry.integrywmsnative.core.settings.SettingsManager; public class UtilityPosizione { @@ -21,4 +26,12 @@ public class UtilityPosizione { return false; } + public static MtbDepoPosizione getFromCache(String posizione) { + List tmpList = Stream.of(SettingsManager.iDB().getAvailablePosizioni()) + .filter(x -> x.getPosizione().equalsIgnoreCase(posizione)).toList(); + + if(tmpList != null && tmpList.size() > 0) return tmpList.get(0); + else return null; + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java index 7029c785..4bdd344e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java @@ -481,12 +481,16 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked } private void posizionaCollo(Runnable onComplete, RunnableArgs onFailed) { - /*DialogAskPositionOfLU.makeBase(mContext, mtbColt.get(), () -> { + DialogAskPositionOfLU.makeBase(mContext, mtbColt.get(), mtbDepoPosizione -> { + if(mtbDepoPosizione != null) { + mtbColt.get().setPosizione(mtbDepoPosizione.getPosizione()); + onComplete.run(); + } else { + onFailed.run(null); + } - }, ex -> { - }).show();*/ - onComplete.run(); + }, onFailed).show(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java index 4698b6b4..6eea9234 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java @@ -387,7 +387,6 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO private void loadArticolo(String barcodeProd, PickingObjectDTO.PickData pickData, ProgressDialog progressDialog) { if(barcodeProd.length() == 14) { -// barcodeProd = UtilityBarcode.convertITF14toNeutral(barcodeProd); barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd); } @@ -831,7 +830,9 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO x.getGestioneRif() != null && x.getGestioneRif().equalsIgnoreCase(item.getGestione()) && Objects.equals(x.getNumColloRif(), item.getNumCollo()) && x.getSerColloRif() != null && x.getSerColloRif().equalsIgnoreCase(item.getSerCollo()) && - x.getDataColloRifD() != null && x.getDataColloRifD().equals(item.getDataColloD()) + x.getDataColloRifD() != null && x.getDataColloRifD().equals(item.getDataColloD()) && + x.getCodMart() != null && x.getCodMart().equalsIgnoreCase(item.getCodMart()) && + (!SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV() || (SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV() && ((x.getPartitaMag() == null && item.getPartitaMag() == null) || (x.getPartitaMag() != null && x.getPartitaMag().equalsIgnoreCase(item.getPartitaMag()))))) ).toList(); float qtaEvasaCurrentULInMtbColr = 0; diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java index b1cf9db6..5e9d0daa 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java @@ -3,17 +3,14 @@ package it.integry.integrywmsnative.view.dialogs.ask_position_of_lu; import android.app.Dialog; import android.app.ProgressDialog; import android.content.Context; +import android.content.DialogInterface; import android.databinding.DataBindingUtil; -import android.os.Handler; -import android.os.Looper; -import android.support.annotation.LayoutRes; -import android.support.v7.app.AlertDialog; +import android.support.design.widget.TextInputLayout; +import android.text.Editable; +import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; -import android.view.Window; -import android.widget.Button; -import android.widget.LinearLayout; +import android.widget.TextView; import com.annimon.stream.Stream; @@ -27,7 +24,6 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbDepoPosizione; -import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityPosizione; @@ -42,16 +38,20 @@ public class DialogAskPositionOfLU { private DialogAskPositionOfLuBinding mBinding; private MtbColt mtbColt; + private MtbDepoPosizione currentMtbDepoPosizione; + private Dialog mDialog; - private Runnable onComplete; + private RunnableArgs onComplete; private RunnableArgs onFailed; - public static Dialog makeBase(final Context context, MtbColt mtbColtToUpdate, Runnable onComplete, RunnableArgs onFailed) { + private TextInputLayout livelloTextInputLayout; + + public static Dialog makeBase(final Context context, MtbColt mtbColtToUpdate, RunnableArgs onComplete, RunnableArgs onFailed) { return new DialogAskPositionOfLU(context, mtbColtToUpdate, onComplete, onFailed).mDialog; } - public DialogAskPositionOfLU(Context context, MtbColt mtbColtToUpdate, Runnable onComplete, RunnableArgs onFailed) { + public DialogAskPositionOfLU(Context context, MtbColt mtbColtToUpdate, RunnableArgs onComplete, RunnableArgs onFailed) { mContext = context; mtbColt = mtbColtToUpdate; @@ -66,16 +66,47 @@ public class DialogAskPositionOfLU { views.add(R.layout.dialog_ask_position_of_lu__page1); views.add(R.layout.dialog_ask_position_of_lu__page2); - DialogAskPositionOfLUAdapter myadapter = new DialogAskPositionOfLUAdapter(mContext, views); - mBinding.viewpager.setAdapter(myadapter); + DialogAskPositionOfLUAdapter adapter = new DialogAskPositionOfLUAdapter(mContext, views); + mBinding.viewpager.setAdapter(adapter); mBinding.viewpager.beginFakeDrag(); - mDialog = new Dialog(mContext); mDialog.setContentView(mBinding.getRoot()); mDialog.setCanceledOnTouchOutside(false); + mDialog.setOnShowListener(dialog -> { + adapter.getPage(1).findViewById(R.id.button_confirm).setOnClickListener(v -> { + String levelNumber = ((TextView)adapter.getPage(1).findViewById(R.id.level_number)).getText().toString(); + onLevelConfirm(levelNumber); + }); + + adapter.getPage(1).findViewById(R.id.button_abort).setOnClickListener(v -> { + onLevelAbort(); + }); + + livelloTextInputLayout = adapter.getPage(1).findViewById(R.id.level_number_layout); + + livelloTextInputLayout.getEditText().addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + if(livelloTextInputLayout.getEditText().getText() != null) { + validateLevel(livelloTextInputLayout.getEditText().getText().toString()); + } else resetLevelError(); + } + + @Override + public void afterTextChanged(Editable s) { + + } + }); + }); + setupBarcode(); } @@ -109,16 +140,15 @@ public class DialogAskPositionOfLU { if (UtilityBarcode.isEtichettaPosizione(data)) { - MtbDepoPosizione foundPosizione = Stream.of(SettingsManager.iDB().getAvailablePosizioni()) - .filter(x -> x.getPosizione().equalsIgnoreCase(data.getStringValue())) - .single(); + MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(data.getStringValue()); + currentMtbDepoPosizione = foundPosizione; if (UtilityPosizione.isPosizioneWithLivello(foundPosizione)) { askLivello(); } else { updatePosizione(foundPosizione, () -> { - if(onComplete != null) onComplete.run(); + if(onComplete != null) onComplete.run(foundPosizione); }, onFailed); } @@ -129,6 +159,56 @@ public class DialogAskPositionOfLU { }; + private void onLevelConfirm(String levelString) { + + String newPosizione = currentMtbDepoPosizione.getPosizione().substring(0, currentMtbDepoPosizione.getPosizione().length()-1); + newPosizione += levelString; + + MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(newPosizione); + + if(foundPosizione != null) { + resetLevelError(); + ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + + ColliMagazzinoRESTConsumer.changePosizione(mtbColt, foundPosizione, () -> { + progressDialog.dismiss(); + onComplete.run(foundPosizione); + mDialog.dismiss(); + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + onFailed.run(ex); + mDialog.dismiss(); + }); + + } else { + setLevelError(mContext.getResources().getString(R.string.not_valid)); + } + } + + private void validateLevel(String levelString) { + String newPosizione = currentMtbDepoPosizione.getPosizione().substring(0, currentMtbDepoPosizione.getPosizione().length()-1); + newPosizione += levelString; + + if(UtilityPosizione.getFromCache(newPosizione) != null) { + resetLevelError(); + } else setLevelError(mContext.getResources().getString(R.string.not_valid)); + } + + private void setLevelError(String message){ + livelloTextInputLayout.setErrorEnabled(true); + livelloTextInputLayout.setError(message); + } + + private void resetLevelError() { + livelloTextInputLayout.setError(null); + } + + + private void onLevelAbort() { + onComplete.run(null); + mDialog.dismiss(); + } + private void updatePosizione(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete, RunnableArgs onFailed) { final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); @@ -144,4 +224,6 @@ public class DialogAskPositionOfLU { } + + } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java index 42c5c7f0..6e2bac60 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java @@ -9,16 +9,20 @@ import android.view.ViewGroup; import android.widget.LinearLayout; +import java.util.ArrayList; import java.util.List; public class DialogAskPositionOfLUAdapter extends PagerAdapter { private Context mContext; private List mDatasetLayout; + private List mDatasetViews; public DialogAskPositionOfLUAdapter(Context context, List datasetView) { this.mContext = context; this.mDatasetLayout = datasetView; + + this.mDatasetViews = new ArrayList<>(); } @Override @@ -32,6 +36,7 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter { View view = inflater.inflate(mDatasetLayout.get(position), container, false); container.addView(view); + this.mDatasetViews.add(view); return view; } @@ -47,4 +52,8 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter { } + public View getPage(int index) { + return this.mDatasetViews.get(index); + } + } \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml b/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml index 0ce7f04d..64259c0f 100644 --- a/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml +++ b/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml @@ -6,6 +6,7 @@ android:layout_height="match_parent"> Scansiona il codice a barre di una Posizione Livello + Non valido \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 143a0bc9..013bdebe 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -103,6 +103,7 @@ Batch lot Level + Not valid %s]]> Expire date Pcks num diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 2806e537..21db95e9 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -17,7 +17,7 @@ true - - -