Completato posizionamento in RettificaGiacenze

This commit is contained in:
Gius95 2018-12-13 16:19:06 +01:00
parent f8edeeefcb
commit 70af7b7396
12 changed files with 159 additions and 39 deletions

Binary file not shown.

View File

@ -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 {

View File

@ -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;
}

View File

@ -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<MtbDepoPosizione> 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;
}
}

View File

@ -481,12 +481,16 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
}
private void posizionaCollo(Runnable onComplete, RunnableArgs<Exception> 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();
}

View File

@ -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;

View File

@ -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<MtbDepoPosizione> onComplete;
private RunnableArgs<Exception> onFailed;
public static Dialog makeBase(final Context context, MtbColt mtbColtToUpdate, Runnable onComplete, RunnableArgs<Exception> onFailed) {
private TextInputLayout livelloTextInputLayout;
public static Dialog makeBase(final Context context, MtbColt mtbColtToUpdate, RunnableArgs<MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
return new DialogAskPositionOfLU(context, mtbColtToUpdate, onComplete, onFailed).mDialog;
}
public DialogAskPositionOfLU(Context context, MtbColt mtbColtToUpdate, Runnable onComplete, RunnableArgs<Exception> onFailed) {
public DialogAskPositionOfLU(Context context, MtbColt mtbColtToUpdate, RunnableArgs<MtbDepoPosizione> onComplete, RunnableArgs<Exception> 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<Exception> onFailed) {
final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
@ -144,4 +224,6 @@ public class DialogAskPositionOfLU {
}
}

View File

@ -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<Integer> mDatasetLayout;
private List<View> mDatasetViews;
public DialogAskPositionOfLUAdapter(Context context, List<Integer> 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);
}
}

View File

@ -6,6 +6,7 @@
android:layout_height="match_parent">
<android.support.design.widget.TextInputLayout
android:id="@+id/level_number_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
@ -13,7 +14,7 @@
style="@style/TextInputLayout.OutlinePrimary">
<android.support.design.widget.TextInputEditText
android:id="@+id/reg_username"
android:id="@+id/level_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/level"
@ -33,7 +34,7 @@
<android.support.design.button.MaterialButton
android:id="@+id/material_text_button"
android:id="@+id/button_abort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Button.PrimaryOutline"
@ -42,7 +43,7 @@
<android.support.design.button.MaterialButton
android:id="@+id/material_unelevated_button"
android:id="@+id/button_confirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"

View File

@ -159,5 +159,6 @@
<string name="ask_position_of_lu_message">Scansiona il codice a barre di una <b>Posizione</b></string>
<string name="level">Livello</string>
<string name="not_valid">Non valido</string>
</resources>

View File

@ -103,6 +103,7 @@
<string name="batch_lot">Batch lot</string>
<string name="level">Level</string>
<string name="not_valid">Not valid</string>
<string name="batch_lot_text"><![CDATA[Batch lot: <b>%s</b>]]></string>
<string name="expire_date">Expire date</string>
<string name="num_pcks">Pcks num</string>

View File

@ -17,7 +17,7 @@
<item name="windowNoTitle">true</item>
</style>
<style name="Light" parent="Theme.MaterialComponents.Light.NoActionBar">
<style name="Light" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
@ -70,14 +70,6 @@
</style>
<style name="giovanna" parent="TextAppearance.AppCompat">
<item name="android:textColor">@color/red_600</item>
<item name="colorAccent">@color/red_600</item>
<item name="colorControlNormal">@color/red_600</item>
<item name="colorControlActivated">@color/red_600</item>
<item name="android:textColorHint">@color/red_600</item>
</style>