Completato picking manuale da resi
This commit is contained in:
parent
30dd94ca80
commit
000a68c164
@ -1,5 +1,8 @@
|
|||||||
package it.integry.integrywmsnative.core.REST.consumers;
|
package it.integry.integrywmsnative.core.REST.consumers;
|
||||||
|
|
||||||
|
import android.app.ProgressDialog;
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
@ -25,6 +28,8 @@ import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
|||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
@ -453,5 +458,23 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static void updateDataFine(Context context, ProgressDialog progress, MtbColt mtbColt, Runnable onComplete) {
|
||||||
|
|
||||||
|
MtbColt cloneMtbColt = (MtbColt) mtbColt.clone();
|
||||||
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
||||||
|
cloneMtbColt.setOraFinePrep(UtilityDate.getDateInstance());
|
||||||
|
|
||||||
|
|
||||||
|
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> {
|
||||||
|
onComplete.run();
|
||||||
|
}, ex -> {
|
||||||
|
UtilityExceptions.defaultException(context, ex, progress);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -71,7 +71,7 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void getAvailablePrinters(String codMdep, Type printerType, final ISimpleOperationCallback<List<String>> callback) {
|
public static void getAvailablePrinters(String codMdep, Type printerType, RunnableArgs<List<String>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
String printerTypeStr = printerType != null ? printerType.toString() : null;
|
String printerTypeStr = printerType != null ? printerType.toString() : null;
|
||||||
|
|
||||||
@ -79,14 +79,14 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
printerService.getAvailablePrinters(codMdep, printerTypeStr).enqueue(new Callback<ServiceRESTResponse<List<String>>>() {
|
printerService.getAvailablePrinters(codMdep, printerTypeStr).enqueue(new Callback<ServiceRESTResponse<List<String>>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<ServiceRESTResponse<List<String>>> call, Response<ServiceRESTResponse<List<String>>> response) {
|
public void onResponse(Call<ServiceRESTResponse<List<String>>> call, Response<ServiceRESTResponse<List<String>>> response) {
|
||||||
analyzeAnswer(response, "GetAvailablePrinters", callback);
|
analyzeAnswer(response, "GetAvailablePrinters", onComplete, onFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Call<ServiceRESTResponse<List<String>>> call, Throwable t) {
|
public void onFailure(Call<ServiceRESTResponse<List<String>>> call, Throwable t) {
|
||||||
Log.e("GetAvailablePrinters", t.toString());
|
Log.e("GetAvailablePrinters", t.toString());
|
||||||
UtilityLogger.errorMe(new Exception(t));
|
UtilityLogger.errorMe(new Exception(t));
|
||||||
callback.onFailed(new Exception(t));
|
onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -747,4 +747,17 @@ public class DtbDocr {
|
|||||||
this.mtbAart = mtbAart;
|
this.mtbAart = mtbAart;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public String getStringKeyIdentifier() {
|
||||||
|
String separator = "|";
|
||||||
|
return
|
||||||
|
this.getCodAnag() + separator +
|
||||||
|
this.getCodDtip() + separator +
|
||||||
|
this.getSerDoc() + separator +
|
||||||
|
UtilityDate.formatDate(this.getDataDocD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH) + separator +
|
||||||
|
this.getNumDoc() + separator +
|
||||||
|
this.getIdRiga();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,4 +34,24 @@ public class ReportManager {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getRightReportNameByGestione(GestioneEnum gestione) {
|
||||||
|
|
||||||
|
if(gestione != null){
|
||||||
|
|
||||||
|
switch (gestione) {
|
||||||
|
case ACQUISTO:
|
||||||
|
case PRODUZIONE:
|
||||||
|
return "EtichettaBancale";
|
||||||
|
|
||||||
|
case LAVORAZIONE:
|
||||||
|
return "EtichettaInventario";
|
||||||
|
|
||||||
|
case VENDITA:
|
||||||
|
return "EtichettaSpedizione";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -67,4 +67,12 @@ public class UtilityNumber {
|
|||||||
return numberString.replaceAll(",", ".");
|
return numberString.replaceAll(",", ".");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static Float decimalToFloat(BigDecimal bigDecimalValue) {
|
||||||
|
String tmp = decimalToString(bigDecimalValue);
|
||||||
|
return Float.parseFloat(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,6 +16,8 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
|||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
|
import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
||||||
@ -110,7 +112,7 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
|
|
||||||
public void startListaBancaliRegistratiActivity(ArrayList<MtbColt> mtbColts){
|
public void startListaBancaliRegistratiActivity(ArrayList<MtbColt> mtbColts){
|
||||||
Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, false, PrinterRESTConsumer.Type.SECONDARIA);
|
Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, false, PrinterRESTConsumer.Type.SECONDARIA, ReportManager.getRightReportNameByGestione(GestioneEnum.ACQUISTO));
|
||||||
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
|
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -683,9 +683,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.SECONDARIA, new ISimpleOperationCallback<List<String>>() {
|
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.SECONDARIA, value -> {
|
||||||
@Override
|
|
||||||
public void onSuccess(List<String> value) {
|
|
||||||
|
|
||||||
if(value.size() > 0) {
|
if(value.size() > 0) {
|
||||||
try{
|
try{
|
||||||
@ -727,12 +725,8 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
String errorMessage = "Nessuna stampante configurata";
|
String errorMessage = "Nessuna stampante configurata";
|
||||||
DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, null).show();
|
DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, null).show();
|
||||||
}
|
}
|
||||||
}
|
}, ex -> {
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(Exception ex) {
|
|
||||||
UtilityExceptions.defaultException(mActivity, ex, progress);
|
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -25,9 +25,10 @@ public class ContenutoBancaleActivity extends AppCompatActivity {
|
|||||||
private static final String MtbColtKey = "mtbColtKey";
|
private static final String MtbColtKey = "mtbColtKey";
|
||||||
private static final String CanRecoverUL = "canRecoverUL";
|
private static final String CanRecoverUL = "canRecoverUL";
|
||||||
private static final String PrinterType = "printerType";
|
private static final String PrinterType = "printerType";
|
||||||
|
private static final String ReportName = "reportName";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Intent createIntent(Context context, MtbColt item, boolean canRecoverUl, PrinterRESTConsumer.Type printerType) {
|
public static Intent createIntent(Context context, MtbColt item, boolean canRecoverUl, PrinterRESTConsumer.Type printerType, String reportName) {
|
||||||
Intent myIntent = new Intent(context, ContenutoBancaleActivity.class);
|
Intent myIntent = new Intent(context, ContenutoBancaleActivity.class);
|
||||||
|
|
||||||
String keyMtbColt = DataCache.addItem(item);
|
String keyMtbColt = DataCache.addItem(item);
|
||||||
@ -39,9 +40,8 @@ public class ContenutoBancaleActivity extends AppCompatActivity {
|
|||||||
String keyPrinterType = DataCache.addItem(printerType);
|
String keyPrinterType = DataCache.addItem(printerType);
|
||||||
myIntent.putExtra(Key.PrinterType, keyPrinterType);
|
myIntent.putExtra(Key.PrinterType, keyPrinterType);
|
||||||
|
|
||||||
// myIntent.putExtra(Key.MtbColtKey, item);
|
String keyReportName = DataCache.addItem(reportName);
|
||||||
// myIntent.putExtra(Key.CanRecoverUL, canRecoverUl);
|
myIntent.putExtra(Key.ReportName, keyReportName);
|
||||||
// myIntent.putExtra(Key.PrinterType, printerType);
|
|
||||||
|
|
||||||
return myIntent;
|
return myIntent;
|
||||||
}
|
}
|
||||||
@ -54,13 +54,11 @@ public class ContenutoBancaleActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
boolean canRecoverUL = DataCache.retrieveItem(getIntent().getStringExtra(Key.CanRecoverUL));
|
boolean canRecoverUL = DataCache.retrieveItem(getIntent().getStringExtra(Key.CanRecoverUL));
|
||||||
MtbColt mtbColt = DataCache.retrieveItem(getIntent().getStringExtra(Key.MtbColtKey));
|
MtbColt mtbColt = DataCache.retrieveItem(getIntent().getStringExtra(Key.MtbColtKey));
|
||||||
|
String reportName = DataCache.retrieveItem(getIntent().getStringExtra(Key.ReportName));
|
||||||
|
|
||||||
PrinterRESTConsumer.Type mPrinterType = DataCache.retrieveItem(getIntent().getStringExtra(Key.PrinterType));
|
PrinterRESTConsumer.Type mPrinterType = DataCache.retrieveItem(getIntent().getStringExtra(Key.PrinterType));
|
||||||
// if(getIntent().hasExtra(Key.PrinterType)) {
|
|
||||||
// mPrinterType = (PrinterRESTConsumer.Type) getIntent().getSerializableExtra(Key.PrinterType);
|
|
||||||
// } else mPrinterType = null;
|
|
||||||
|
|
||||||
mViewModel = new ContenutoBancaleViewModel(this, mtbColt, canRecoverUL, mPrinterType);
|
mViewModel = new ContenutoBancaleViewModel(this, mtbColt, canRecoverUL, mPrinterType, reportName);
|
||||||
|
|
||||||
bindings.elevatedToolbar.setNestedScrollView(bindings.scrollView);
|
bindings.elevatedToolbar.setNestedScrollView(bindings.scrollView);
|
||||||
|
|
||||||
|
|||||||
@ -42,13 +42,15 @@ public class ContenutoBancaleViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
private ContenutoBancaleListAdapter mAdapter;
|
private ContenutoBancaleListAdapter mAdapter;
|
||||||
|
|
||||||
private PrinterRESTConsumer.Type mPrinterType;
|
private PrinterRESTConsumer.Type mPrinterType;
|
||||||
|
private String mReportName;
|
||||||
|
|
||||||
public ContenutoBancaleViewModel(ContenutoBancaleActivity context, MtbColt mtbColt, boolean canRecoverUL, PrinterRESTConsumer.Type printerType){
|
public ContenutoBancaleViewModel(ContenutoBancaleActivity context, MtbColt mtbColt, boolean canRecoverUL, PrinterRESTConsumer.Type printerType, String defaultReportName){
|
||||||
mContext = context;
|
mContext = context;
|
||||||
this.mtbColt = new ObservableField<>(mtbColt);
|
this.mtbColt = new ObservableField<>(mtbColt);
|
||||||
this.isFabVisible.set(true);
|
this.isFabVisible.set(true);
|
||||||
this.isRecoverFabMenuVisible.set(canRecoverUL);
|
this.isRecoverFabMenuVisible.set(canRecoverUL);
|
||||||
this.mPrinterType = printerType;
|
this.mPrinterType = printerType;
|
||||||
|
this.mReportName = defaultReportName;
|
||||||
|
|
||||||
mContext.bindings.setViewModel(this);
|
mContext.bindings.setViewModel(this);
|
||||||
|
|
||||||
@ -102,15 +104,15 @@ public class ContenutoBancaleViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
final ProgressDialog progress = ProgressDialog.show(mContext, mContext.getText(R.string.waiting),
|
final ProgressDialog progress = ProgressDialog.show(mContext, mContext.getText(R.string.waiting),
|
||||||
mContext.getText(R.string.loading) + " ...", true);
|
mContext.getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), mPrinterType, new ISimpleOperationCallback<List<String>>() {
|
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), mPrinterType, value -> {
|
||||||
@Override
|
|
||||||
public void onSuccess(List<String> value) {
|
|
||||||
|
|
||||||
if(value.size() > 0) {
|
if(value.size() > 0) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ReportManager.getRightReportNameByGestione(mtbColt.get().getGestioneEnum(), reportName -> {
|
ReportManager.getRightReportNameByGestione(mtbColt.get().getGestioneEnum(), reportName -> {
|
||||||
|
|
||||||
|
reportName = mReportName != null ? mReportName : reportName;
|
||||||
|
|
||||||
PrinterRESTConsumer.printCollo(value.get(0),
|
PrinterRESTConsumer.printCollo(value.get(0),
|
||||||
mtbColt.get(),
|
mtbColt.get(),
|
||||||
1,
|
1,
|
||||||
@ -134,12 +136,8 @@ public class ContenutoBancaleViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
String errorMessage = "Nessuna stampante configurata";
|
String errorMessage = "Nessuna stampante configurata";
|
||||||
DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(errorMessage), null, null).show();
|
DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(errorMessage), null, null).show();
|
||||||
}
|
}
|
||||||
}
|
}, ex -> {
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(Exception ex) {
|
|
||||||
UtilityExceptions.defaultException(mContext, ex, progress);
|
UtilityExceptions.defaultException(mContext, ex, progress);
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,6 +23,7 @@ public class ListaBancaliActivity extends AppCompatActivity {
|
|||||||
private static final String MtbColtsKey = "mtbColtsKey";
|
private static final String MtbColtsKey = "mtbColtsKey";
|
||||||
private static final String CanRecoverUL = "canRecoverUL";
|
private static final String CanRecoverUL = "canRecoverUL";
|
||||||
private static final String PrinterType = "printerType";
|
private static final String PrinterType = "printerType";
|
||||||
|
private static final String ReportName = "reportName";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActivityListaBancaliBinding bindings;
|
public ActivityListaBancaliBinding bindings;
|
||||||
@ -31,11 +32,30 @@ public class ListaBancaliActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
private boolean mCanRecoverUl;
|
private boolean mCanRecoverUl;
|
||||||
private PrinterRESTConsumer.Type mPrinterType;
|
private PrinterRESTConsumer.Type mPrinterType;
|
||||||
|
private String mReportName;
|
||||||
|
|
||||||
private static final int PICK_UL_REQUEST = 1; // The request code
|
private static final int PICK_UL_REQUEST = 1; // The request code
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static Intent createIntent(Context context, ArrayList<MtbColt> items, boolean canRecoverUl, PrinterRESTConsumer.Type printerType, String reportName) {
|
||||||
|
Intent myIntent = new Intent(context, ListaBancaliActivity.class);
|
||||||
|
|
||||||
|
String mtbColtsKey = DataCache.addItem(items);
|
||||||
|
myIntent.putExtra(Key.MtbColtsKey, mtbColtsKey);
|
||||||
|
|
||||||
|
String canRecoverULKey = DataCache.addItem(canRecoverUl);
|
||||||
|
myIntent.putExtra(Key.CanRecoverUL, canRecoverULKey);
|
||||||
|
|
||||||
|
String printerTypeKey = DataCache.addItem(printerType);
|
||||||
|
myIntent.putExtra(Key.PrinterType, printerTypeKey);
|
||||||
|
|
||||||
|
String reportNameKey = DataCache.addItem(reportName);
|
||||||
|
myIntent.putExtra(Key.ReportName, reportNameKey);
|
||||||
|
|
||||||
|
return myIntent;
|
||||||
|
}
|
||||||
|
|
||||||
public static Intent createIntent(Context context, ArrayList<MtbColt> items, boolean canRecoverUl, PrinterRESTConsumer.Type printerType) {
|
public static Intent createIntent(Context context, ArrayList<MtbColt> items, boolean canRecoverUl, PrinterRESTConsumer.Type printerType) {
|
||||||
Intent myIntent = new Intent(context, ListaBancaliActivity.class);
|
Intent myIntent = new Intent(context, ListaBancaliActivity.class);
|
||||||
|
|
||||||
@ -58,11 +78,8 @@ public class ListaBancaliActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
|
|
||||||
mCanRecoverUl = DataCache.retrieveItem(getIntent().getStringExtra(Key.CanRecoverUL));
|
mCanRecoverUl = DataCache.retrieveItem(getIntent().getStringExtra(Key.CanRecoverUL));
|
||||||
|
|
||||||
mPrinterType = DataCache.retrieveItem(getIntent().getStringExtra(Key.PrinterType));
|
mPrinterType = DataCache.retrieveItem(getIntent().getStringExtra(Key.PrinterType));
|
||||||
// if(getIntent().hasExtra(Key.PrinterType)) {
|
mReportName = DataCache.retrieveItem(getIntent().getStringExtra(Key.ReportName));
|
||||||
// mPrinterType = (PrinterRESTConsumer.Type) getIntent().getSerializableExtra(Key.PrinterType);
|
|
||||||
// } else mPrinterType = null;
|
|
||||||
|
|
||||||
List<MtbColt> mtbColts = DataCache.retrieveItem(getIntent().getStringExtra(Key.MtbColtsKey));
|
List<MtbColt> mtbColts = DataCache.retrieveItem(getIntent().getStringExtra(Key.MtbColtsKey));
|
||||||
mViewModel = new ListaBancaliViewModel(this, mtbColts);
|
mViewModel = new ListaBancaliViewModel(this, mtbColts);
|
||||||
@ -81,7 +98,7 @@ public class ListaBancaliActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void startContenutoBancaleActivity(MtbColt item){
|
public void startContenutoBancaleActivity(MtbColt item){
|
||||||
Intent myIntent = ContenutoBancaleActivity.createIntent(this, item, mCanRecoverUl, mPrinterType);
|
Intent myIntent = ContenutoBancaleActivity.createIntent(this, item, mCanRecoverUl, mPrinterType, mReportName);
|
||||||
startActivityForResult(myIntent, PICK_UL_REQUEST);
|
startActivityForResult(myIntent, PICK_UL_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.databinding.ObservableField;
|
import androidx.databinding.ObservableField;
|
||||||
|
import androidx.databinding.ObservableList;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import android.app.ProgressDialog;
|
import android.app.ProgressDialog;
|
||||||
@ -19,39 +20,55 @@ import java.math.BigDecimal;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||||
import it.integry.integrywmsnative.core.data_recover.ColliDataRecover;
|
import it.integry.integrywmsnative.core.data_recover.ColliDataRecover;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||||
import it.integry.integrywmsnative.core.model.DtbDocr;
|
import it.integry.integrywmsnative.core.model.DtbDocr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.ActivityPickingResiBinding;
|
import it.integry.integrywmsnative.databinding.ActivityPickingResiBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.picking_resi.dto.WithdrawableDtbDocr;
|
||||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
|
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
|
||||||
import it.integry.integrywmsnative.gest.picking_resi.core.PickingResiListAdapter;
|
import it.integry.integrywmsnative.gest.picking_resi.core.PickingResiListAdapter;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.gest.vendita.rest.model.DocumentoResoDTO;
|
import it.integry.integrywmsnative.gest.vendita.rest.model.DocumentoResoDTO;
|
||||||
|
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
|
||||||
|
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
||||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||||
|
|
||||||
public class PickingResiActivity extends AppCompatActivity {
|
public class PickingResiActivity extends AppCompatActivity implements IOnColloClosedCallback {
|
||||||
|
|
||||||
private List<DocumentoResoDTO> mDocumentiResiList;
|
private List<DocumentoResoDTO> mDocumentiResiList;
|
||||||
private List<DtbDocr> mDtbDocrList;
|
public ObservableList<WithdrawableDtbDocr> mDtbDocrList;
|
||||||
|
private final List<MtbColt> mColliRegistrati = new ArrayList<>();
|
||||||
private HashMap<DtbDocr, List<MtbColr>> mWithdrawRows = new HashMap<>();
|
|
||||||
|
|
||||||
private ActivityPickingResiBinding mBinding;
|
private ActivityPickingResiBinding mBinding;
|
||||||
|
private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
||||||
|
|
||||||
public ObservableField<MtbColt> currentMtbColt = new ObservableField<>();
|
public ObservableField<MtbColt> currentMtbColt = new ObservableField<>();
|
||||||
|
|
||||||
|
private PickingResiListAdapter mAdapter;
|
||||||
|
|
||||||
private int barcodeScannerIstanceID = -1;
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
|
||||||
private String mDefaultGestioneOfUL;
|
private String mDefaultGestioneOfUL;
|
||||||
@ -72,6 +89,14 @@ public class PickingResiActivity extends AppCompatActivity {
|
|||||||
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_picking_resi);
|
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_picking_resi);
|
||||||
mBinding.setViewmodel(this);
|
mBinding.setViewmodel(this);
|
||||||
|
|
||||||
|
this.mDtbDocrList = new ObservableArrayList<>();
|
||||||
|
|
||||||
|
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, this.mBinding.bottomSheetInclude);
|
||||||
|
mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this);
|
||||||
|
mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback(this::onItemEdited);
|
||||||
|
mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback(this::onItemDeleted);
|
||||||
|
|
||||||
|
|
||||||
mDocumentiResiList = DataCache.retrieveItem(getIntent().getStringExtra("key"));
|
mDocumentiResiList = DataCache.retrieveItem(getIntent().getStringExtra("key"));
|
||||||
|
|
||||||
this.initView();
|
this.initView();
|
||||||
@ -87,18 +112,20 @@ public class PickingResiActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
// if(mArticoliInColloBottomSheetViewModel.isExpanded()){
|
if(mArticoliInColloBottomSheetViewModel.isExpanded()){
|
||||||
// mArticoliInColloBottomSheetViewModel.collapse();
|
mArticoliInColloBottomSheetViewModel.collapse();
|
||||||
// } else if(mVenditaOrdineInevasoViewModel.thereIsAnOpenedUL()) {
|
}
|
||||||
// mArticoliInColloBottomSheetViewModel.closeCurrentUL(() -> {
|
else if(thereIsAnOpenedUL()) {
|
||||||
// BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
mArticoliInColloBottomSheetViewModel.closeCurrentUL(() -> {
|
||||||
// super.onBackPressed();
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// } else {
|
|
||||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
super.onBackPressed();
|
super.onBackPressed();
|
||||||
// }
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
|
super.onBackPressed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initView() {
|
private void initView() {
|
||||||
@ -115,27 +142,27 @@ public class PickingResiActivity extends AppCompatActivity {
|
|||||||
ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(this);
|
ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(this);
|
||||||
UltimeConsegneClienteRESTConsumer.loadDocRowFromConsegna(mDocumentiResiList, dtbDocrToPick -> {
|
UltimeConsegneClienteRESTConsumer.loadDocRowFromConsegna(mDocumentiResiList, dtbDocrToPick -> {
|
||||||
progressDialog.dismiss();
|
progressDialog.dismiss();
|
||||||
this.mDtbDocrList = dtbDocrToPick;
|
this.mDtbDocrList.addAll(dtbDocrToPick);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this.initDatiPicking();
|
this.initDatiPicking();
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
this.showErrorDialog(ex.getMessage());
|
DialogSimpleMessageHelper.showSimpleErrorDialog(this, ex.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
this.initList(dtbDocrToPick);
|
this.initList();
|
||||||
}, ex -> {
|
}, ex -> {
|
||||||
UtilityExceptions.defaultException(this, ex, progressDialog);
|
UtilityExceptions.defaultException(this, ex, progressDialog);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initList(List<DtbDocr> dtbDocrList) {
|
private void initList() {
|
||||||
|
|
||||||
PickingResiListAdapter adapter = new PickingResiListAdapter(this, dtbDocrList);
|
mAdapter = new PickingResiListAdapter(this, this.mDtbDocrList);
|
||||||
adapter.setOnItemClicked(this::onOrdineRowDispatch);
|
mAdapter.setOnItemClicked(this::onOrdineRowDispatch);
|
||||||
|
|
||||||
this.mBinding.mainList.setLayoutManager(new LinearLayoutManager(this));
|
this.mBinding.mainList.setLayoutManager(new LinearLayoutManager(this));
|
||||||
this.mBinding.mainList.setAdapter(adapter);
|
this.mBinding.mainList.setAdapter(mAdapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initDatiPicking() throws Exception {
|
private void initDatiPicking() throws Exception {
|
||||||
@ -168,10 +195,6 @@ public class PickingResiActivity extends AppCompatActivity {
|
|||||||
throw new Exception("Sono stati caricati documenti con diversi codici deposito");
|
throw new Exception("Sono stati caricati documenti con diversi codici deposito");
|
||||||
} else mDefaultCodMDepOfUL = foundCodMdeps.get(0);
|
} else mDefaultCodMDepOfUL = foundCodMdeps.get(0);
|
||||||
|
|
||||||
|
|
||||||
for (DtbDocr dtbDocr : mDtbDocrList) {
|
|
||||||
this.mWithdrawRows.put(dtbDocr, new ArrayList<>());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -235,15 +258,16 @@ public class PickingResiActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.currentMtbColt.set(mtbColt);
|
this.currentMtbColt.set(mtbColt);
|
||||||
|
mArticoliInColloBottomSheetViewModel.mtbColt.set(mtbColt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void onOrdineRowDispatch(final DtbDocr item) {
|
public void onOrdineRowDispatch(final WithdrawableDtbDocr item) {
|
||||||
if(currentMtbColt.get() != null){
|
if(currentMtbColt.get() != null){
|
||||||
|
|
||||||
List<MtbColr> currentMtbColrs = mWithdrawRows.get(item);
|
List<MtbColr> currentMtbColrs = item.getWithdrawRows();
|
||||||
|
|
||||||
BigDecimal qtaEvasaTotaleInMtbColr = BigDecimal.ZERO;
|
BigDecimal qtaEvasaTotaleInMtbColr = BigDecimal.ZERO;
|
||||||
for (MtbColr mtbColr : currentMtbColrs) {
|
for (MtbColr mtbColr : currentMtbColrs) {
|
||||||
@ -306,19 +330,256 @@ public class PickingResiActivity extends AppCompatActivity {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
DialogInputQuantity.makeBase(this, dto, false, (quantityDTO, closeUL) -> {
|
DialogInputQuantity.makeBase(this, dto, false, (quantityDTO, closeUL) -> {
|
||||||
//onOrdineRowDispatched(item, quantityDTO, closeUL);
|
onOrdineRowDispatched(item, quantityDTO, closeUL);
|
||||||
|
|
||||||
}, null).show();
|
}, null).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void showErrorDialog(String message) {
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(
|
|
||||||
this,
|
private void onOrdineRowDispatched(WithdrawableDtbDocr item, QuantityDTO quantityDTO, boolean closeUL){
|
||||||
new SpannableString(message),
|
final ProgressDialog progress = UtilityProgress.createDefaultProgressDialog(this);
|
||||||
null,
|
|
||||||
null).show();
|
final MtbColr mtbColr = new MtbColr()
|
||||||
|
.setCodMart(item.getCodMart())
|
||||||
|
.setPartitaMag(UtilityString.empty2null(quantityDTO.batchLot.get()))
|
||||||
|
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
|
||||||
|
.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal())
|
||||||
|
.setNumCnf(quantityDTO.numCnf.getBigDecimal())
|
||||||
|
.setDescrizione(item.getDescrizioneEstesa())
|
||||||
|
.setDatetimeRow(UtilityDate.getDateInstance())
|
||||||
|
.setNote(item.getStringKeyIdentifier());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
|
MtbColt cloneMtbColt = (MtbColt) currentMtbColt.get().clone();
|
||||||
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
|
||||||
|
cloneMtbColt.setMtbColr(new ObservableArrayList());
|
||||||
|
cloneMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> {
|
||||||
|
|
||||||
|
mtbColr
|
||||||
|
.setDataCollo(value.getDataColloS())
|
||||||
|
.setNumCollo(value.getNumCollo())
|
||||||
|
.setGestione(value.getGestione())
|
||||||
|
.setSerCollo(value.getSerCollo())
|
||||||
|
.setRiga(value.getMtbColr().get(0).getRiga())
|
||||||
|
.setUntMis(item.getMtbAart().getUntMis())
|
||||||
|
.setMtbAart(item.getMtbAart());
|
||||||
|
|
||||||
|
item.getWithdrawRows().add(mtbColr);
|
||||||
|
|
||||||
|
int currentIndex = this.mDtbDocrList.indexOf(item);
|
||||||
|
|
||||||
|
this.refreshDtbDocrItem(item);
|
||||||
|
|
||||||
|
currentMtbColt.get().getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
//Chiamato removeListFilter perché cosi mi cancella tutti i dati di pick temporanei
|
||||||
|
removeListFilter();
|
||||||
|
|
||||||
|
FBToast.successToast(this, this.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||||
|
|
||||||
|
progress.dismiss();
|
||||||
|
|
||||||
|
// if(closeUL) onColloClosed(null);
|
||||||
|
}, ex -> {
|
||||||
|
UtilityExceptions.defaultException(this, ex, progress);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onColloClosed(Runnable onComplete) {
|
||||||
|
if(thereIsAnOpenedUL()) {
|
||||||
|
|
||||||
|
final ProgressDialog progress = UtilityProgress.createDefaultProgressDialog(this);
|
||||||
|
progress.show();
|
||||||
|
|
||||||
|
if(thereIsAnyRowInUL()) {
|
||||||
|
ColliMagazzinoRESTConsumer.updateDataFine(
|
||||||
|
this,
|
||||||
|
progress,
|
||||||
|
currentMtbColt.get(),
|
||||||
|
() -> printCollo(progress, currentMtbColt.get(), onComplete));
|
||||||
|
} else {
|
||||||
|
deleteCollo(progress, onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if(onComplete != null) onComplete.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onItemEdited(MtbColr mtbColrOriginal, MtbColr mtbColrEdited) {
|
||||||
|
for(int i = 0; i < mDtbDocrList.size(); i++) {
|
||||||
|
int foundIndex = mDtbDocrList.get(i).getWithdrawRows().indexOf(mtbColrOriginal);
|
||||||
|
|
||||||
|
if(foundIndex >= 0){
|
||||||
|
mDtbDocrList.get(i).getWithdrawRows().remove(foundIndex);
|
||||||
|
mDtbDocrList.get(i).getWithdrawRows().add(foundIndex, mtbColrEdited);
|
||||||
|
|
||||||
|
refreshDtbDocrItem(this.mDtbDocrList.get(i));
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onItemDeleted(MtbColr mtbColrDeleted) {
|
||||||
|
for(int i = 0; i < mDtbDocrList.size(); i++) {
|
||||||
|
int foundIndex = mDtbDocrList.get(i).getWithdrawRows().indexOf(mtbColrDeleted);
|
||||||
|
|
||||||
|
if(foundIndex >= 0){
|
||||||
|
mDtbDocrList.get(i).getWithdrawRows().remove(foundIndex);
|
||||||
|
|
||||||
|
refreshDtbDocrItem(this.mDtbDocrList.get(i));
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void printCollo(ProgressDialog progress, MtbColt mtbColtToPrint, Runnable onComplete) {
|
||||||
|
DialogAskShouldPrint.make(this, "Packing List", shouldPrint -> {
|
||||||
|
|
||||||
|
if(shouldPrint) {
|
||||||
|
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.PRIMARIA, printerList -> {
|
||||||
|
|
||||||
|
if (printerList.size() > 0) {
|
||||||
|
try {
|
||||||
|
singlePrint(mtbColtToPrint, printerList.get(0), () -> {
|
||||||
|
postCloseOperations(mtbColtToPrint, onComplete);
|
||||||
|
progress.dismiss();
|
||||||
|
}, ex -> {
|
||||||
|
progress.dismiss();
|
||||||
|
String errorMessage = ex.getMessage();
|
||||||
|
DialogSimpleMessageHelper.makeErrorDialog(
|
||||||
|
this,
|
||||||
|
new SpannableString(errorMessage),
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
R.string.button_ignore_print,
|
||||||
|
() -> postCloseOperations(mtbColtToPrint, onComplete)).show();
|
||||||
|
});
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
UtilityExceptions.defaultException(this, ex, progress);
|
||||||
|
postCloseOperations(mtbColtToPrint, onComplete);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
progress.dismiss();
|
||||||
|
String errorMessage = "Nessuna stampante configurata";
|
||||||
|
DialogSimpleMessageHelper.makeWarningDialog(this, new SpannableString(errorMessage), null, () -> postCloseOperations(mtbColtToPrint, onComplete)).show();
|
||||||
|
}
|
||||||
|
}, ex -> {
|
||||||
|
UtilityExceptions.defaultException(this, ex, progress);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
postCloseOperations(mtbColtToPrint, onComplete);
|
||||||
|
progress.dismiss();
|
||||||
|
}
|
||||||
|
}).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
||||||
|
ReportManager.getRightReportNameByGestione(mtbColtToPrint.getGestioneEnum(), reportName -> {
|
||||||
|
|
||||||
|
PrinterRESTConsumer.printCollo(
|
||||||
|
printerName,
|
||||||
|
mtbColtToPrint,
|
||||||
|
1,
|
||||||
|
reportName, onComplete, onAbort);
|
||||||
|
|
||||||
|
}, onAbort);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void postCloseOperations(MtbColt generatedMtbColt, Runnable onComplete) {
|
||||||
|
this.mColliRegistrati.add(generatedMtbColt);
|
||||||
|
|
||||||
|
setULToCurrentContext(null);
|
||||||
|
|
||||||
|
for(int i = 0; i < this.mDtbDocrList.size(); i++) {
|
||||||
|
WithdrawableDtbDocr dtbDocr = this.mDtbDocrList.get(i);
|
||||||
|
|
||||||
|
List<MtbColr> withdraws = dtbDocr.getWithdrawRows();
|
||||||
|
|
||||||
|
for(int k = 0; k < withdraws.size(); k++) {
|
||||||
|
MtbColr withdrawRow = withdraws.get(k);
|
||||||
|
|
||||||
|
dtbDocr.setQtaDoc(dtbDocr.getQtaDoc().subtract(withdrawRow.getQtaCol()));
|
||||||
|
}
|
||||||
|
|
||||||
|
dtbDocr.getWithdrawRows().clear();
|
||||||
|
|
||||||
|
if(UtilityNumber.decimalToFloat(dtbDocr.getQtaDoc()) <= 0) {
|
||||||
|
this.mDtbDocrList.remove(dtbDocr);
|
||||||
|
i--;
|
||||||
|
} else this.refreshDtbDocrItem(dtbDocr);
|
||||||
|
}
|
||||||
|
|
||||||
|
removeListFilter();
|
||||||
|
|
||||||
|
if(onComplete != null) onComplete.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void deleteCollo(ProgressDialog progress, Runnable onComplete) {
|
||||||
|
|
||||||
|
ColliMagazzinoRESTConsumer.deleteCollo(currentMtbColt.get(), () -> {
|
||||||
|
setULToCurrentContext(null);
|
||||||
|
|
||||||
|
progress.dismiss();
|
||||||
|
|
||||||
|
|
||||||
|
if(onComplete != null) onComplete.run();
|
||||||
|
}, ex -> UtilityExceptions.defaultException(this, ex, progress)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean thereIsAnOpenedUL() {
|
||||||
|
return currentMtbColt.get() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean thereIsAnyRowInUL() {
|
||||||
|
return currentMtbColt.get() != null &&
|
||||||
|
currentMtbColt.get().getMtbColr() != null &&
|
||||||
|
currentMtbColt.get().getMtbColr().size() > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void refreshDtbDocrItem(WithdrawableDtbDocr dtbDocr) {
|
||||||
|
int index = this.mDtbDocrList.indexOf(dtbDocr);
|
||||||
|
this.mDtbDocrList.remove(dtbDocr);
|
||||||
|
this.mDtbDocrList.add(index, dtbDocr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void applyFilter(String descriptionText) {
|
||||||
|
|
||||||
|
// this.mBindings.filteredArtsInListExpandableLayout.expand(true);
|
||||||
|
//
|
||||||
|
// this.mBindings.descriptionFilterText.setText(descriptionText);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeListFilter() {
|
||||||
|
// for(int i = 0; i < mPickingList.size(); i++) {
|
||||||
|
// mPickingList.get(i).setTempHidden(false);
|
||||||
|
// mPickingList.get(i).setTempPickData(null);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// refreshOrderBy(false);
|
||||||
|
// this.mBindings.filteredArtsInListExpandableLayout.collapse(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,35 +1,41 @@
|
|||||||
package it.integry.integrywmsnative.gest.picking_resi.core;
|
package it.integry.integrywmsnative.gest.picking_resi.core;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.graphics.Color;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.databinding.ObservableList;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.DtbDocr;
|
import it.integry.integrywmsnative.core.model.DtbDocr;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemBinding;
|
import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemBinding;
|
||||||
import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemHeaderBinding;
|
import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemHeaderBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.picking_resi.dto.WithdrawableDtbDocr;
|
||||||
|
|
||||||
public class PickingResiListAdapter extends SectionedRecyclerViewAdapter<PickingResiListAdapter.SubheaderHolder, PickingResiListAdapter.SingleItemViewHolder> {
|
public class PickingResiListAdapter extends SectionedRecyclerViewAdapter<PickingResiListAdapter.SubheaderHolder, PickingResiListAdapter.SingleItemViewHolder> {
|
||||||
|
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
|
||||||
private List<DtbDocr> mDataset;
|
private List<WithdrawableDtbDocr> mDataset;
|
||||||
|
|
||||||
private RunnableArgs<DtbDocr> mOnItemClicked;
|
private RunnableArgs<WithdrawableDtbDocr> mOnItemClicked;
|
||||||
|
|
||||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
@ -53,14 +59,50 @@ public class PickingResiListAdapter extends SectionedRecyclerViewAdapter<Picking
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public PickingResiListAdapter(Context context, List<DtbDocr> data) {
|
public PickingResiListAdapter(Context context, ObservableList<WithdrawableDtbDocr> data) {
|
||||||
this.mContext = context;
|
this.mContext = context;
|
||||||
this.mDataset = Stream.of(data)
|
this.mDataset = new ArrayList<>();
|
||||||
.sortBy(x -> x.getNumDoc() + " " + x.getDataDocS() + " " + x.getCodDtip() + " " + x.getSerDoc() + " " + x.getCodAnag())
|
|
||||||
.toList();
|
refreshData(data);
|
||||||
|
|
||||||
|
data.addOnListChangedCallback(new ObservableList.OnListChangedCallback<ObservableList<WithdrawableDtbDocr>>() {
|
||||||
|
@Override
|
||||||
|
public void onChanged(ObservableList<WithdrawableDtbDocr> sender) {
|
||||||
|
refreshData(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnItemClicked(RunnableArgs<DtbDocr> onItemClicked) {
|
@Override
|
||||||
|
public void onItemRangeChanged(ObservableList<WithdrawableDtbDocr> sender, int positionStart, int itemCount) {
|
||||||
|
refreshData(sender);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onItemRangeInserted(ObservableList<WithdrawableDtbDocr> sender, int positionStart, int itemCount) {
|
||||||
|
refreshData(sender);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onItemRangeMoved(ObservableList<WithdrawableDtbDocr> sender, int fromPosition, int toPosition, int itemCount) {
|
||||||
|
refreshData(sender);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onItemRangeRemoved(ObservableList<WithdrawableDtbDocr> sender, int positionStart, int itemCount) {
|
||||||
|
refreshData(sender);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refreshData(List<WithdrawableDtbDocr> data) {
|
||||||
|
this.mDataset.clear();
|
||||||
|
this.mDataset.addAll(Stream.of(data)
|
||||||
|
.sortBy(x -> x.getNumDoc() + " " + x.getDataDocS() + " " + x.getCodDtip() + " " + x.getSerDoc() + " " + x.getCodAnag() + " " + x.getIdRiga())
|
||||||
|
.toList());
|
||||||
|
|
||||||
|
this.notifyDataChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOnItemClicked(RunnableArgs<WithdrawableDtbDocr> onItemClicked) {
|
||||||
this.mOnItemClicked = onItemClicked;
|
this.mOnItemClicked = onItemClicked;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,13 +120,31 @@ public class PickingResiListAdapter extends SectionedRecyclerViewAdapter<Picking
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindItemViewHolder(final SingleItemViewHolder holder, final int position) {
|
public void onBindItemViewHolder(final SingleItemViewHolder holder, final int position) {
|
||||||
final DtbDocr dtbDocr = this.mDataset.get(position);
|
final WithdrawableDtbDocr dtbDocr = this.mDataset.get(position);
|
||||||
|
|
||||||
|
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
for(MtbColr mtbColr : dtbDocr.getWithdrawRows()) {
|
||||||
|
qtaEvasa = qtaEvasa.add(mtbColr.getQtaCol());
|
||||||
|
}
|
||||||
|
|
||||||
|
Float qtaDaEvadere = UtilityNumber.decimalToFloat(dtbDocr.getQtaDoc().subtract(qtaEvasa));
|
||||||
|
|
||||||
holder.mBinding.badge1.setText(dtbDocr.getCodMart());
|
holder.mBinding.badge1.setText(dtbDocr.getCodMart());
|
||||||
holder.mBinding.qtaEvasa.setText(String.valueOf(0));
|
holder.mBinding.qtaEvasa.setText(UtilityNumber.decimalToString(qtaEvasa));
|
||||||
holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(dtbDocr.getQtaDoc()));
|
holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(dtbDocr.getQtaDoc()));
|
||||||
holder.mBinding.descrizione.setText(UtilityString.isNullOrEmpty(dtbDocr.getDescrizioneEstesa()) ? dtbDocr.getDescrizioneEstesa() : dtbDocr.getDescrizione());
|
holder.mBinding.descrizione.setText(UtilityString.isNullOrEmpty(dtbDocr.getDescrizioneEstesa()) ? dtbDocr.getDescrizioneEstesa() : dtbDocr.getDescrizione());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (qtaDaEvadere <= 0 ) {
|
||||||
|
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
|
||||||
|
} else if (qtaDaEvadere > 0 && qtaEvasa.floatValue() > 0) {
|
||||||
|
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
|
||||||
|
} else {
|
||||||
|
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.full_white));
|
||||||
|
}
|
||||||
|
|
||||||
holder.mBinding.getRoot().setOnClickListener(v -> {
|
holder.mBinding.getRoot().setOnClickListener(v -> {
|
||||||
if(this.mOnItemClicked != null) this.mOnItemClicked.run(dtbDocr);
|
if(this.mOnItemClicked != null) this.mOnItemClicked.run(dtbDocr);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -0,0 +1,25 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.picking_resi.dto;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.DtbDocr;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
|
|
||||||
|
public class WithdrawableDtbDocr extends DtbDocr {
|
||||||
|
|
||||||
|
private List<MtbColr> withdrawRows = new ArrayList<>();
|
||||||
|
|
||||||
|
public WithdrawableDtbDocr() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MtbColr> getWithdrawRows() {
|
||||||
|
return withdrawRows;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WithdrawableDtbDocr setWithdrawRows(List<MtbColr> withdrawRows) {
|
||||||
|
this.withdrawRows = withdrawRows;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -15,6 +15,7 @@ import it.integry.integrywmsnative.core.model.DtbDocr;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
import it.integry.integrywmsnative.gest.picking_resi.dto.WithdrawableDtbDocr;
|
||||||
import it.integry.integrywmsnative.gest.vendita.rest.model.DocumentoResoDTO;
|
import it.integry.integrywmsnative.gest.vendita.rest.model.DocumentoResoDTO;
|
||||||
|
|
||||||
public class UltimeConsegneClienteRESTConsumer {
|
public class UltimeConsegneClienteRESTConsumer {
|
||||||
@ -53,7 +54,7 @@ public class UltimeConsegneClienteRESTConsumer {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void loadDocRowFromConsegna(List<DocumentoResoDTO> consegne, RunnableArgs<ArrayList<DtbDocr>> onComplete, RunnableArgs<Exception> onFailed) {
|
public static void loadDocRowFromConsegna(List<DocumentoResoDTO> consegne, RunnableArgs<ArrayList<WithdrawableDtbDocr>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
StringBuilder sbWhereCond = new StringBuilder();
|
StringBuilder sbWhereCond = new StringBuilder();
|
||||||
|
|
||||||
for(int i = 0; i < consegne.size(); i++) {
|
for(int i = 0; i < consegne.size(); i++) {
|
||||||
@ -67,23 +68,90 @@ public class UltimeConsegneClienteRESTConsumer {
|
|||||||
if(i < consegne.size()-1) sbWhereCond.append(" OR ");
|
if(i < consegne.size()-1) sbWhereCond.append(" OR ");
|
||||||
}
|
}
|
||||||
|
|
||||||
String sql = "SELECT dtb_docr.* " +
|
String sql = "SELECT dtb_docr.[cod_anag]" +
|
||||||
|
" ,dtb_docr.[cod_dtip]" +
|
||||||
|
" ,dtb_docr.[data_doc]" +
|
||||||
|
" ,dtb_docr.[ser_doc]" +
|
||||||
|
" ,dtb_docr.[num_doc]" +
|
||||||
|
" ,dtb_docr.[id_riga]" +
|
||||||
|
" ,dtb_docr.[cod_mart]" +
|
||||||
|
" ,dtb_docr.[descrizione]" +
|
||||||
|
" ,dtb_docr.[unt_doc]" +
|
||||||
|
" ,dtb_docr.[rap_conv]" +
|
||||||
|
" ,dtb_docr.[qta_doc] - ISNULL(mtb_colr.qta_col, 0) as qta_doc" +
|
||||||
|
" ,dtb_docr.[val_unt]" +
|
||||||
|
" ,dtb_docr.[sconto5]" +
|
||||||
|
" ,dtb_docr.[sconto6]" +
|
||||||
|
" ,dtb_docr.[sconto7]" +
|
||||||
|
" ,dtb_docr.[sconto8]" +
|
||||||
|
" ,dtb_docr.[cod_aliq]" +
|
||||||
|
" ,dtb_docr.[perc_prov]" +
|
||||||
|
" ,dtb_docr.[val_prov]" +
|
||||||
|
" ,dtb_docr.[data_ord]" +
|
||||||
|
" ,dtb_docr.[num_ord]" +
|
||||||
|
" ,dtb_docr.[riga_ord]" +
|
||||||
|
" ,dtb_docr.[importo_riga]" +
|
||||||
|
" ,dtb_docr.[cod_col]" +
|
||||||
|
" ,dtb_docr.[cod_tagl]" +
|
||||||
|
" ,dtb_docr.[cod_jcom]" +
|
||||||
|
" ,dtb_docr.[cod_mdep]" +
|
||||||
|
" ,dtb_docr.[perc_gest]" +
|
||||||
|
" ,dtb_docr.[val_gest]" +
|
||||||
|
" ,dtb_docr.[partita_mag]" +
|
||||||
|
" ,dtb_docr.[val_unt_iva]" +
|
||||||
|
" ,dtb_docr.[qta_cnf]" +
|
||||||
|
" ,dtb_docr.[descrizione_estesa]" +
|
||||||
|
" ,dtb_docr.[costo_unt]" +
|
||||||
|
" ,dtb_docr.[perc_ispe]" +
|
||||||
|
" ,dtb_docr.[val_ispe]" +
|
||||||
|
" ,dtb_docr.[perc_promo]" +
|
||||||
|
" ,dtb_docr.[val_promo]" +
|
||||||
|
" ,dtb_docr.[perc_oneri]" +
|
||||||
|
" ,dtb_docr.[val_oneri]" +
|
||||||
|
" ,dtb_docr.[flag_evaso_forzato]" +
|
||||||
|
" ,dtb_docr.[cod_dtip_comp]" +
|
||||||
|
" ,dtb_docr.[data_doc_comp]" +
|
||||||
|
" ,dtb_docr.[ser_doc_comp]" +
|
||||||
|
" ,dtb_docr.[num_doc_comp]" +
|
||||||
|
" ,dtb_docr.[cod_promo]" +
|
||||||
|
" ,dtb_docr.[perc_prov2]" +
|
||||||
|
" ,dtb_docr.[val_prov2]" +
|
||||||
|
" ,dtb_docr.[cod_art_for]" +
|
||||||
|
" ,dtb_docr.[unt_doc2]" +
|
||||||
|
" ,dtb_docr.[qta_doc2]" +
|
||||||
|
" ,dtb_docr.[unt_doc3]" +
|
||||||
|
" ,dtb_docr.[qta_doc3]" +
|
||||||
|
" ,dtb_docr.[num_cnf]" +
|
||||||
|
" ,dtb_docr.[peso_lordo]" +
|
||||||
|
" ,dtb_docr.[posizione]" +
|
||||||
|
" ,dtb_docr.[cod_anag_comp]" +
|
||||||
|
" ,dtb_docr.[cod_mtip]" +
|
||||||
|
" ,dtb_docr.[matricola]" +
|
||||||
|
" ,dtb_docr.[data_iniz_comp]" +
|
||||||
|
" ,dtb_docr.[data_fine_comp]" +
|
||||||
|
" ,dtb_docr.[cod_kit]" +
|
||||||
|
" ,dtb_docr.[cod_alis]" +
|
||||||
|
" ,dtb_docr.[data_ins_row]" +
|
||||||
|
" ,dtb_docr.[note] " +
|
||||||
"FROM dtb_docr " +
|
"FROM dtb_docr " +
|
||||||
"INNER JOIN mtb_aart ON dtb_docr.cod_mart = mtb_aart.cod_mart " +
|
"INNER JOIN mtb_aart ON dtb_docr.cod_mart = mtb_aart.cod_mart " +
|
||||||
"LEFT OUTER JOIN ctb_cont ON mtb_aart.cod_ccon_ricavi = ctb_cont.cod_ccon " +
|
"LEFT OUTER JOIN ctb_cont ON mtb_aart.cod_ccon_ricavi = ctb_cont.cod_ccon " +
|
||||||
"LEFT OUTER JOIN ctb_grup ON ctb_cont.cod_cgrp = ctb_grup.cod_cgrp " +
|
"LEFT OUTER JOIN ctb_grup ON ctb_cont.cod_cgrp = ctb_grup.cod_cgrp " +
|
||||||
|
"LEFT OUTER JOIN mtb_colr ON " +
|
||||||
|
" dtb_docr.cod_anag + '|' + dtb_docr.cod_dtip + '|' + dtb_docr.ser_doc + '|' + CONVERT(varchar(10), dtb_docr.data_doc , 111) + '|' + CONVERT(varchar(20), dtb_docr.num_doc) + '|' + CONVERT(varchar(20), dtb_docr.id_riga) = mtb_colr.note " +
|
||||||
"WHERE " +
|
"WHERE " +
|
||||||
" (ctb_grup.sezione <> 1 OR ctb_grup.sezione IS NULL) AND " +
|
" (ctb_grup.sezione <> 1 OR ctb_grup.sezione IS NULL) AND " +
|
||||||
|
" dtb_docr.[qta_doc] - ISNULL(mtb_colr.qta_col, 0) > 0 AND" +
|
||||||
" ( " +
|
" ( " +
|
||||||
sbWhereCond.toString() +
|
sbWhereCond.toString() +
|
||||||
" ) " +
|
" ) " +
|
||||||
"ORDER BY cod_mart";
|
"ORDER BY cod_mart";
|
||||||
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<DtbDocr>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<WithdrawableDtbDocr>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DtbDocr>>() {
|
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<WithdrawableDtbDocr>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ArrayList<DtbDocr> values) {
|
public void onSuccess(ArrayList<WithdrawableDtbDocr> values) {
|
||||||
|
|
||||||
if(values != null && values.size() > 0){
|
if(values != null && values.size() > 0){
|
||||||
List<String> codMarts = Stream.of(values)
|
List<String> codMarts = Stream.of(values)
|
||||||
|
|||||||
@ -887,7 +887,11 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
progress.show();
|
progress.show();
|
||||||
|
|
||||||
if(thereIsAnyRowInUL()) {
|
if(thereIsAnyRowInUL()) {
|
||||||
updateDataFine(progress, () -> distribuisciCollo(progress, (generatedMtbColts) -> printCollo(progress, generatedMtbColts, onComplete)));
|
ColliMagazzinoRESTConsumer.updateDataFine(
|
||||||
|
mActivity,
|
||||||
|
progress,
|
||||||
|
mArticoliInColloBottomSheetViewModel.mtbColt.get(),
|
||||||
|
() -> distribuisciCollo(progress, (generatedMtbColts) -> printCollo(progress, generatedMtbColts, onComplete)));
|
||||||
} else {
|
} else {
|
||||||
if(mtbColtSessionID != null) ColliDataRecover.closeSession(mtbColtSessionID);
|
if(mtbColtSessionID != null) ColliDataRecover.closeSession(mtbColtSessionID);
|
||||||
deleteCollo(progress, onComplete);
|
deleteCollo(progress, onComplete);
|
||||||
@ -899,26 +903,6 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateDataFine(ProgressDialog progress, Runnable onComplete) {
|
|
||||||
|
|
||||||
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
|
||||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
|
||||||
cloneMtbColt.setOraFinePrep(UtilityDate.getDateInstance());
|
|
||||||
|
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(MtbColt value) {
|
|
||||||
onComplete.run();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(Exception ex) {
|
|
||||||
UtilityExceptions.defaultException(mActivity, ex, progress);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void distribuisciCollo(ProgressDialog progress, RunnableArgs<List<MtbColt>> onComplete) {
|
private void distribuisciCollo(ProgressDialog progress, RunnableArgs<List<MtbColt>> onComplete) {
|
||||||
|
|
||||||
@ -945,9 +929,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
DialogAskShouldPrint.make(mActivity, "Packing List", shouldPrint -> {
|
DialogAskShouldPrint.make(mActivity, "Packing List", shouldPrint -> {
|
||||||
|
|
||||||
if(shouldPrint) {
|
if(shouldPrint) {
|
||||||
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.PRIMARIA, new ISimpleOperationCallback<List<String>>() {
|
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.PRIMARIA, value -> {
|
||||||
@Override
|
|
||||||
public void onSuccess(List<String> value) {
|
|
||||||
|
|
||||||
if (value.size() > 0) {
|
if (value.size() > 0) {
|
||||||
try {
|
try {
|
||||||
@ -975,12 +957,8 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
String errorMessage = "Nessuna stampante configurata";
|
String errorMessage = "Nessuna stampante configurata";
|
||||||
DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, () -> postCloseOperations(mtbColtsToPrint, onComplete)).show();
|
DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, () -> postCloseOperations(mtbColtsToPrint, onComplete)).show();
|
||||||
}
|
}
|
||||||
}
|
}, ex -> {
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(Exception ex) {
|
|
||||||
UtilityExceptions.defaultException(mActivity, ex, progress);
|
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||||
}
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
postCloseOperations(mtbColtsToPrint, onComplete);
|
postCloseOperations(mtbColtsToPrint, onComplete);
|
||||||
@ -1183,8 +1161,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void onOrdineRowDispatched(PickingObjectDTO item, QuantityDTO quantityDTO, boolean closeUL){
|
private void onOrdineRowDispatched(PickingObjectDTO item, QuantityDTO quantityDTO, boolean closeUL){
|
||||||
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
|
final ProgressDialog progress = UtilityProgress.createDefaultProgressDialog(mActivity);
|
||||||
mActivity.getText(R.string.loading) + " ...", true);
|
|
||||||
|
|
||||||
final MtbColr mtbColr = new MtbColr()
|
final MtbColr mtbColr = new MtbColr()
|
||||||
.setCodMart(item.getCodMart())
|
.setCodMart(item.getCodMart())
|
||||||
@ -1222,9 +1199,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
cloneMtbColt.setMtbColr(new ObservableArrayList());
|
cloneMtbColt.setMtbColr(new ObservableArrayList());
|
||||||
cloneMtbColt.getMtbColr().add(mtbColr);
|
cloneMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> {
|
||||||
@Override
|
|
||||||
public void onSuccess(MtbColt value) {
|
|
||||||
|
|
||||||
mtbColr
|
mtbColr
|
||||||
.setDataCollo(value.getDataColloS())
|
.setDataCollo(value.getDataColloS())
|
||||||
@ -1248,12 +1223,8 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
|
|
||||||
if(closeUL) onColloClosed(null);
|
if(closeUL) onColloClosed(null);
|
||||||
}
|
}, ex -> {
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(Exception ex) {
|
|
||||||
UtilityExceptions.defaultException(mActivity, ex, progress);
|
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -12,6 +12,8 @@ import android.graphics.drawable.Drawable;
|
|||||||
import androidx.annotation.StringRes;
|
import androidx.annotation.StringRes;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.appcompat.widget.AppCompatImageView;
|
import androidx.appcompat.widget.AppCompatImageView;
|
||||||
|
|
||||||
|
import android.text.SpannableString;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -194,6 +196,14 @@ public class DialogSimpleMessageHelper {
|
|||||||
null, -1, null);
|
null, -1, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void showSimpleWarningDialog(Context context, String message){
|
||||||
|
makeErrorDialog(
|
||||||
|
context,
|
||||||
|
new SpannableString(message),
|
||||||
|
null,
|
||||||
|
null).show();
|
||||||
|
}
|
||||||
|
|
||||||
public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){
|
public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){
|
||||||
|
|
||||||
return makeBase(TYPE.ERROR,
|
return makeBase(TYPE.ERROR,
|
||||||
@ -205,6 +215,14 @@ public class DialogSimpleMessageHelper {
|
|||||||
null, -1, null);
|
null, -1, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void showSimpleErrorDialog(Context context, String message){
|
||||||
|
makeErrorDialog(
|
||||||
|
context,
|
||||||
|
new SpannableString(message),
|
||||||
|
null,
|
||||||
|
null).show();
|
||||||
|
}
|
||||||
|
|
||||||
public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){
|
public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){
|
||||||
|
|
||||||
return makeBase(TYPE.ERROR,
|
return makeBase(TYPE.ERROR,
|
||||||
|
|||||||
@ -254,7 +254,8 @@
|
|||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/bottom_sheet_include"
|
android:id="@+id/bottom_sheet_include"
|
||||||
layout="@layout/fragment_articoli_in_collo_bottom_sheet"></include>
|
layout="@layout/fragment_articoli_in_collo_bottom_sheet"
|
||||||
|
android:visibility="@{!viewmodel.isFabVisible ? View.VISIBLE : View.GONE}" />
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
|
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:fab="http://schemas.android.com/apk/res-auto">
|
xmlns:fab="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
<data>
|
<data>
|
||||||
<import type="android.view.View" />
|
<import type="android.view.View" />
|
||||||
<variable
|
<variable
|
||||||
@ -8,14 +10,30 @@
|
|||||||
type="it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity" />
|
type="it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity" />
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:fitsSystemWindows="false"
|
||||||
android:background="@color/full_white"
|
android:background="@color/full_white"
|
||||||
tools:context=".gest.picking_resi.PickingResiActivity">
|
android:layout_gravity="top">
|
||||||
|
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_above="@id/empty_space_padding">
|
||||||
|
|
||||||
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
|
android:id="@+id/appbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:minHeight="?attr/actionBarSize"
|
||||||
|
android:background="@color/full_white">
|
||||||
|
|
||||||
|
|
||||||
<it.integry.integrywmsnative.ui.ElevatedToolbar
|
<it.integry.integrywmsnative.ui.ElevatedToolbar
|
||||||
android:id="@+id/elevated_toolbar"
|
android:id="@+id/elevated_toolbar"
|
||||||
@ -28,6 +46,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?actionBarSize"
|
android:layout_height="?actionBarSize"
|
||||||
android:gravity="center_horizontal"
|
android:gravity="center_horizontal"
|
||||||
|
app:layout_collapseMode="pin"
|
||||||
style="@style/MaterialToolbar.Event">
|
style="@style/MaterialToolbar.Event">
|
||||||
|
|
||||||
</androidx.appcompat.widget.Toolbar>
|
</androidx.appcompat.widget.Toolbar>
|
||||||
@ -35,13 +54,138 @@
|
|||||||
</it.integry.integrywmsnative.ui.ElevatedToolbar>
|
</it.integry.integrywmsnative.ui.ElevatedToolbar>
|
||||||
|
|
||||||
|
|
||||||
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||||
|
|
||||||
|
<net.cachapa.expandablelayout.ExpandableLayout
|
||||||
|
android:id="@+id/filtered_arts_in_list_expandable_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:el_duration="400"
|
||||||
|
app:el_expanded="false">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:paddingRight="8dp">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
|
android:layout_toStartOf="@+id/remove_art_filter_list"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:text="@string/filtered_arts_in_list" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/description_filter_text"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
|
tools:text="COD_ART_HERE"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/remove_art_filter_list"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/Button.DangerOutline"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:text="@string/remove_filter_button"
|
||||||
|
android:onClick="@{() -> viewmodel.removeListFilter()}"
|
||||||
|
app:strokeColor="@color/red_600"/>
|
||||||
|
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
</net.cachapa.expandablelayout.ExpandableLayout>
|
||||||
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/main_list"
|
android:id="@+id/main_list"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="match_parent"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
android:scrollbars="vertical"
|
||||||
app:layout_constraintTop_toBottomOf="@id/elevated_toolbar" />
|
android:clipToPadding="false"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/vendita_ordine_inevaso_empty_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:alpha="0.3"
|
||||||
|
android:visibility="@{viewmodel.mDtbDocrList.size() > 0 ? View.GONE : View.VISIBLE}"
|
||||||
|
tools:context=".gest.lista_bancali.ListaBancaliActivity">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_top"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
app:layout_constraintGuide_percent="0.2" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_left"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.15" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_right"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.85" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:layout_width="72dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@drawable/ic_playlist_add_check_24dp"
|
||||||
|
android:adjustViewBounds="true"/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="18sp"
|
||||||
|
android:text="@string/no_item_to_pick_text"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionMenu
|
<com.github.clans.fab.FloatingActionMenu
|
||||||
android:id="@+id/main_fab"
|
android:id="@+id/main_fab"
|
||||||
@ -81,8 +225,8 @@
|
|||||||
fab:menu_shadowYOffset="3dp"
|
fab:menu_shadowYOffset="3dp"
|
||||||
fab:menu_showShadow="true">
|
fab:menu_showShadow="true">
|
||||||
|
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionButton
|
<com.github.clans.fab.FloatingActionButton
|
||||||
android:id="@+id/vendita_ordine_inevaso_fab_item2"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:src="@drawable/ic_add_24dp"
|
android:src="@drawable/ic_add_24dp"
|
||||||
@ -94,6 +238,32 @@
|
|||||||
|
|
||||||
</com.github.clans.fab.FloatingActionMenu>
|
</com.github.clans.fab.FloatingActionMenu>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/empty_space_padding"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="?attr/actionBarSize"
|
||||||
|
android:visibility="@{viewmodel.currentMtbColt != null ? View.VISIBLE : View.GONE}"
|
||||||
|
android:layout_alignParentBottom="true">
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/shadow"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="16dp"
|
||||||
|
android:background="@drawable/shape_gradient_top_shadow"
|
||||||
|
android:visibility="@{viewmodel.currentMtbColt != null ? View.VISIBLE : View.GONE}"
|
||||||
|
app:layout_anchor="@id/bottom_sheet_include" />
|
||||||
|
|
||||||
|
<include
|
||||||
|
android:id="@+id/bottom_sheet_include"
|
||||||
|
layout="@layout/fragment_articoli_in_collo_bottom_sheet"
|
||||||
|
android:visibility="@{viewmodel.currentMtbColt != null ? View.VISIBLE : View.GONE}" />
|
||||||
|
|
||||||
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
||||||
</layout>
|
</layout>
|
||||||
@ -275,7 +275,8 @@
|
|||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/bottom_sheet_include"
|
android:id="@+id/bottom_sheet_include"
|
||||||
layout="@layout/fragment_articoli_in_collo_bottom_sheet"></include>
|
layout="@layout/fragment_articoli_in_collo_bottom_sheet"
|
||||||
|
android:visibility="@{!viewmodel.isFabVisible ? View.VISIBLE : View.GONE}" />
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,6 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@android:color/white"
|
android:background="@android:color/white"
|
||||||
android:visibility="@{viewModel.mtbColt.get() != null ? View.VISIBLE : View.GONE}"
|
|
||||||
app:behavior_peekHeight="?attr/actionBarSize"
|
app:behavior_peekHeight="?attr/actionBarSize"
|
||||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
|
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
|
||||||
app:behavior_hideable="false">
|
app:behavior_hideable="false">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user