Completato posizionamento in RettificaGiacenze
This commit is contained in:
parent
f8edeeefcb
commit
70af7b7396
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
@ -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 {
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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 {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@ -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"
|
||||
|
||||
@ -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>
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user