Modifiche varie per Frudis
This commit is contained in:
parent
44851db845
commit
ccfba252ec
@ -167,6 +167,9 @@ public class MainActivity extends BaseActivity
|
||||
Menu menu = mBinding.navView.getMenu();
|
||||
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
|
||||
if(customConfiguration == null) return;
|
||||
|
||||
BaseMenuConfiguration menuConfiguration = customConfiguration.getConfig(BaseCustomConfiguration.Keys.MENU_CONFIGURATION);
|
||||
List<MenuConfiguration.MenuGroup> menuGroups = menuConfiguration.getGroups();
|
||||
|
||||
|
||||
@ -8,11 +8,14 @@ import androidx.databinding.ObservableArrayList;
|
||||
import com.annimon.stream.Stream;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
@ -28,10 +31,13 @@ import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||
import it.integry.integrywmsnative.core.rest.model.DistribuzioneColloDTO;
|
||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||
import it.integry.integrywmsnative.core.rest.model.SingleValueDTO;
|
||||
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.UtilityQuery;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteClienteDTO;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
@ -106,6 +112,9 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
|
||||
|
||||
public static void saveRigaCollo(MtbColr mtbColrToSave, RunnableArgs<MtbColr> onComplete, RunnableArgs<Exception> onFailed){
|
||||
|
||||
mtbColrToSave.setMtbAart(null);
|
||||
mtbColrToSave.setRifPartitaMag(null);
|
||||
|
||||
EntityRESTConsumer.processEntity(mtbColrToSave, new ISimpleOperationCallback<MtbColr>() {
|
||||
@Override
|
||||
public void onSuccess(MtbColr value) {
|
||||
@ -507,6 +516,25 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
|
||||
|
||||
|
||||
|
||||
public static void doesColloContainsAnyRow(MtbColt mtbColt, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
|
||||
|
||||
HashMap<String, Object> params = new HashMap<>();
|
||||
params.put("gestione", mtbColt.getGestione());
|
||||
params.put("ser_collo", mtbColt.getSerCollo());
|
||||
params.put("num_collo", mtbColt.getNumCollo());
|
||||
params.put("data_collo", mtbColt.getDataColloD());
|
||||
|
||||
String whereCond = UtilityQuery.concatFieldsInWhereCond(params);
|
||||
|
||||
String query = "SELECT COUNT(*) as value FROM mtb_colr " +
|
||||
"WHERE " + whereCond;
|
||||
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<SingleValueDTO<Integer>>>() {}.getType();
|
||||
SystemRESTConsumer.<ArrayList<SingleValueDTO<Integer>>>processSql(query, typeOfObjectsList, data -> {
|
||||
onComplete.run(data.get(0).getValue() > 0);
|
||||
}, onFailed);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -32,7 +32,7 @@ import retrofit2.Response;
|
||||
|
||||
public class SystemRESTConsumer extends _BaseRESTConsumer {
|
||||
|
||||
public static <T> void processSql(String nativeSql, final Type clazz, final ISimpleOperationCallback<T> callback) {
|
||||
public static <T> void processSql(String nativeSql, final Type clazz, RunnableArgs<T> onComplete, RunnableArgs<Exception> onFailed) {
|
||||
|
||||
NativeSqlRequestDTO nativeSqlDTO = new NativeSqlRequestDTO();
|
||||
nativeSqlDTO.nativeSql = nativeSql;
|
||||
@ -51,12 +51,12 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
|
||||
Reader reader = new InputStreamReader(ims);
|
||||
T gsonObj = gson.fromJson(reader, clazz);
|
||||
|
||||
callback.onSuccess(gsonObj);
|
||||
onComplete.run(gsonObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
callback.onFailed(ex);
|
||||
onFailed.run(ex);
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -64,12 +64,18 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
|
||||
@Override
|
||||
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
|
||||
Log.e("ProcessSql", t.toString());
|
||||
callback.onFailed(new Exception(t));
|
||||
// UtilityLogger.errorMe(new Exception(t), nativeSql);
|
||||
onFailed.run(new Exception(t));
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
public static <T> void processSql(String nativeSql, final Type clazz, final ISimpleOperationCallback<T> callback) {
|
||||
|
||||
processSql(nativeSql, clazz, data -> {
|
||||
callback.onSuccess((T) data);
|
||||
}, callback::onFailed);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void getAvailableProfiles(final ISimpleOperationCallback<List<String>> callback){
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
package it.integry.integrywmsnative.core.rest.model;
|
||||
|
||||
public class SingleValueDTO<T> {
|
||||
|
||||
private T value;
|
||||
|
||||
public T getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public SingleValueDTO<T> setValue(T value) {
|
||||
this.value = value;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@ -1,4 +0,0 @@
|
||||
package it.integry.integrywmsnative.core.rest.model;
|
||||
|
||||
public class SlackMessageDTO {
|
||||
}
|
||||
@ -25,6 +25,7 @@ public class DBSettingsModel {
|
||||
private boolean flagCanAddExtraItemSpedizione;
|
||||
private boolean flagCanAutoOpenNewULAccettazione;
|
||||
private boolean flagCanAddExtraQuantitySpedizione;
|
||||
private boolean flagEnableCheckDepositoSpedizione;
|
||||
|
||||
public List<String> getAvailableProfiles() {
|
||||
return availableProfiles;
|
||||
@ -139,4 +140,14 @@ public class DBSettingsModel {
|
||||
this.flagCanAddExtraQuantitySpedizione = flagCanAddExtraQuantitySpedizione;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public boolean isFlagEnableCheckDepositoSpedizione() {
|
||||
return flagEnableCheckDepositoSpedizione;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagEnableCheckDepositoSpedizione(boolean flagEnableCheckDepositoSpedizione) {
|
||||
this.flagEnableCheckDepositoSpedizione = flagEnableCheckDepositoSpedizione;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@ -214,6 +214,10 @@ public class SettingsManager {
|
||||
.setGestName("PICKING")
|
||||
.setSection("SPEDIZIONE")
|
||||
.setKeySection("FLAG_CAN_ADD_EXTRA_QUANTITY"));
|
||||
stbGestSetupList.add(new StbGestSetup()
|
||||
.setGestName("PICKING")
|
||||
.setSection("SPEDIZIONE")
|
||||
.setKeySection("ENABLE_CHECK_DEPOSITO"));
|
||||
|
||||
|
||||
GestSetupRESTConsumer.getValues(stbGestSetupList, list -> {
|
||||
@ -226,6 +230,7 @@ public class SettingsManager {
|
||||
dbSettingsModelIstance.setFlagCanAddExtraItemSpedizione(getValueFromList(list, "FLAG_CAN_ADD_EXTRA_ITEMS", Boolean.class));
|
||||
dbSettingsModelIstance.setFlagCanAutoOpenNewULAccettazione(getValueFromList(list, "FLAG_AUTO_OPEN_NEW_UL", Boolean.class));
|
||||
dbSettingsModelIstance.setFlagCanAddExtraQuantitySpedizione(getValueFromList(list, "FLAG_CAN_ADD_EXTRA_QUANTITY", Boolean.class));
|
||||
dbSettingsModelIstance.setFlagEnableCheckDepositoSpedizione(getValueFromList(list, "ENABLE_CHECK_DEPOSITO", Boolean.class));
|
||||
|
||||
if(onComplete != null) onComplete.run();
|
||||
}, onFailed);
|
||||
|
||||
@ -11,6 +11,11 @@ import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
|
||||
public class UtilityBarcode {
|
||||
|
||||
|
||||
public static boolean isBarcodeOrdineV(BarcodeScanDTO barcodeScanDTO) {
|
||||
return (isEan13(barcodeScanDTO) || isEtichetta128(barcodeScanDTO)) && barcodeScanDTO.getStringValue().startsWith("3");
|
||||
}
|
||||
|
||||
public static boolean isEtichettaAnonima(BarcodeScanDTO barcodeScanDTO){
|
||||
return barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.CODE128 && barcodeScanDTO.getStringValue().startsWith("U");
|
||||
}
|
||||
|
||||
@ -0,0 +1,31 @@
|
||||
package it.integry.integrywmsnative.core.utility;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class UtilityQuery {
|
||||
|
||||
public static String concatFieldsInWhereCond(HashMap<String, Object> inputData) {
|
||||
|
||||
StringBuilder sbWhereCond = new StringBuilder();
|
||||
|
||||
HashMap<String, Object> singleInputData = inputData;
|
||||
Object[] keys = singleInputData.keySet().toArray();
|
||||
|
||||
sbWhereCond.append("(");
|
||||
|
||||
for(int k = 0; k < keys.length; k++) {
|
||||
Object value = singleInputData.get(keys[k]);
|
||||
|
||||
sbWhereCond.append(keys[k] + (value == null ? " IS NULL" : " = " + UtilityDB.valueToString(value)));
|
||||
|
||||
if(k < keys.length - 1) sbWhereCond.append(" AND ");
|
||||
}
|
||||
|
||||
sbWhereCond.append(")");
|
||||
|
||||
|
||||
|
||||
return sbWhereCond.toString();
|
||||
}
|
||||
|
||||
}
|
||||
@ -40,4 +40,22 @@ public class UtilityString {
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
public static String mid(String string, Integer start) {
|
||||
return mid(string, start, 0);
|
||||
}
|
||||
|
||||
public static String mid(String string, Integer start, Integer length){
|
||||
String value = "";
|
||||
if(start <= string.length()) {
|
||||
if(length == 0){
|
||||
length = string.length() - start + 1;
|
||||
} else if (length > string.length() - start){
|
||||
length = string.length() - start + 1;
|
||||
}
|
||||
value = string.substring(start - 1, start + length - 1).trim();
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -107,14 +107,12 @@ public class ListaBancaliActivity extends BaseActivity {
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
// Check which request we're responding to
|
||||
if (requestCode == PICK_UL_REQUEST) {
|
||||
// Make sure the request was successful
|
||||
if (resultCode == RESULT_OK) {
|
||||
|
||||
// MtbColt recoveredMtbColt = data.getParcelableExtra("key");
|
||||
|
||||
|
||||
this.setResult(RESULT_OK, data);
|
||||
this.finish();
|
||||
}
|
||||
|
||||
@ -97,6 +97,8 @@ public class VenditaHelper {
|
||||
Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_pick_v");
|
||||
perfTrace.start();
|
||||
|
||||
codMdep = SettingsManager.iDB().isFlagEnableCheckDepositoSpedizione() ? codMdep : null;
|
||||
|
||||
service.getPickingList(codMdep, dateCons, joinedBarcodes).enqueue(new Callback<ServiceRESTResponse<List<PickingObjectDTO>>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ServiceRESTResponse<List<PickingObjectDTO>>> call, Response<ServiceRESTResponse<List<PickingObjectDTO>>> response) {
|
||||
|
||||
@ -8,7 +8,10 @@ import android.text.SpannableString;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
@ -57,7 +60,9 @@ public class VenditaViewModel {
|
||||
BarcodeManager.disable();
|
||||
final Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||
|
||||
if(UtilityBarcode.isEtichettaAnonima(data)) {
|
||||
if(UtilityBarcode.isBarcodeOrdineV(data)) {
|
||||
this.executeEtichettaOrdineV(data.getStringValue(), progressDialog);
|
||||
} else if(UtilityBarcode.isEtichettaAnonima(data)) {
|
||||
this.executeEtichettaLU(data.getStringValue(), progressDialog);
|
||||
} else if(UtilityBarcode.isEtichetta128(data)){
|
||||
this.executeEtichettaEan128(data, progressDialog);
|
||||
@ -103,6 +108,46 @@ public class VenditaViewModel {
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void executeEtichettaOrdineV(String barcode, Dialog progressDialog) {
|
||||
String gestione = "";
|
||||
|
||||
char c = barcode.charAt(0);
|
||||
if (c == '1')
|
||||
gestione = "A";
|
||||
else if (c == '2')
|
||||
gestione = "L";
|
||||
else if (c == '3')
|
||||
gestione = "V";
|
||||
|
||||
int numOrd = Integer.parseInt(UtilityString.mid(barcode, 10));
|
||||
|
||||
Date date = null;
|
||||
try {
|
||||
date = new SimpleDateFormat("ddMMyyyy")
|
||||
.parse(UtilityString.mid(barcode, 2, 8));
|
||||
} catch (ParseException ex) {
|
||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
||||
BarcodeManager.enable();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
final String finalGestione = gestione;
|
||||
final Date finalDate = date;
|
||||
|
||||
List<OrdineVenditaInevasoDTO> filteredOrders = Stream.of(mOrdini)
|
||||
.filter(x -> x.getNumOrd() == numOrd && x.getGestione().equalsIgnoreCase(finalGestione) && x.getDataOrdD().equals(finalDate)).toList();
|
||||
|
||||
mFragment.refreshOrdini(filteredOrders);
|
||||
mFragment.refreshRecyclerView();
|
||||
|
||||
|
||||
progressDialog.dismiss();
|
||||
BarcodeManager.enable();
|
||||
}
|
||||
|
||||
private void executeEtichettaLU(String SSCC, Dialog progressDialog) {
|
||||
ColliMagazzinoRESTConsumer.getBySSCC(SSCC, true, false, mtbColt -> {
|
||||
|
||||
|
||||
@ -305,7 +305,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
}
|
||||
}
|
||||
|
||||
public void refreshOrderBy(boolean forceHiddenCheck){
|
||||
private void refreshOrderBy(boolean forceHiddenCheck){
|
||||
|
||||
try {
|
||||
List<MtbColr> mtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get() != null ? mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() : null;
|
||||
@ -317,7 +317,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
}
|
||||
}
|
||||
|
||||
public void applyFilter(String descriptionText) {
|
||||
private void applyFilter(String descriptionText) {
|
||||
|
||||
this.mBindings.filteredArtsInListExpandableLayout.expand(true);
|
||||
|
||||
@ -750,20 +750,20 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
if (matchedRows.get(0).getTempPickData() != null &&
|
||||
matchedRows.get(0).getTempPickData().getSourceMtbColt() != null ) {
|
||||
|
||||
MtbColt tempSourceMtbColt = matchedRows.get(0).getTempPickData().getSourceMtbColt();
|
||||
// MtbColt tempSourceMtbColt = matchedRows.get(0).getTempPickData().getSourceMtbColt();
|
||||
|
||||
if (tempSourceMtbColt.getGestione().equals(matchedRows.get(0).getGestione()) &&
|
||||
tempSourceMtbColt.getNumCollo() == matchedRows.get(0).getNumCollo() &&
|
||||
tempSourceMtbColt.getSerCollo().equals(matchedRows.get(0).getSerCollo()) &&
|
||||
tempSourceMtbColt.getDataColloS().equals(matchedRows.get(0).getDataColloS())) {
|
||||
// if (tempSourceMtbColt.getGestione().equals(matchedRows.get(0).getGestione()) &&
|
||||
// tempSourceMtbColt.getNumCollo() == matchedRows.get(0).getNumCollo() &&
|
||||
// tempSourceMtbColt.getSerCollo().equals(matchedRows.get(0).getSerCollo()) &&
|
||||
// tempSourceMtbColt.getDataColloS().equals(matchedRows.get(0).getDataColloS())) {
|
||||
|
||||
onOrdineRowDispatch(matchedRows.get(0));
|
||||
} else {
|
||||
//Se sto pickando da una UL diversa da quella suggerita allora non te la apro in
|
||||
//automatico ma ti mostro il filtro
|
||||
applyFilter("");
|
||||
refreshOrderBy(false);
|
||||
}
|
||||
// } else {
|
||||
// //Se sto pickando da una UL diversa da quella suggerita allora non te la apro in
|
||||
// //automatico ma ti mostro il filtro
|
||||
// applyFilter("");
|
||||
// refreshOrderBy(false);
|
||||
// }
|
||||
|
||||
} else if(matchedRows.get(0).isDeactivated()) {
|
||||
applyFilter("");
|
||||
@ -861,11 +861,15 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mActivity);
|
||||
|
||||
if(thereIsAnyRowInUL()) {
|
||||
final MtbColt currentMtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get();
|
||||
|
||||
ColliMagazzinoRESTConsumer.doesColloContainsAnyRow(currentMtbColt, containRows -> {
|
||||
|
||||
if(containRows) {
|
||||
ColliMagazzinoRESTConsumer.updateDataFine(
|
||||
mActivity,
|
||||
progress,
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.get(),
|
||||
currentMtbColt,
|
||||
() -> distribuisciCollo(progress, (generatedMtbColts) -> {
|
||||
if(shouldPrint) printCollo(progress, generatedMtbColts, onComplete);
|
||||
else {
|
||||
@ -878,6 +882,11 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
deleteCollo(progress, onComplete);
|
||||
}
|
||||
|
||||
|
||||
}, ex -> {
|
||||
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||
});
|
||||
|
||||
} else {
|
||||
if(onComplete != null) onComplete.run();
|
||||
}
|
||||
@ -1115,10 +1124,10 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
batchLotEnabled = tmpPickData.getMtbPartitaMag().getFlagStato() == null || tmpPickData.getMtbPartitaMag().getFlagStato().equalsIgnoreCase("A");
|
||||
}
|
||||
|
||||
boolean useQtaDaEvadere;
|
||||
boolean useQtaDaEvadere = false;
|
||||
|
||||
if(tmpPickData.getQtaTot() != null) {
|
||||
useQtaDaEvadere = qtaDaEvadere.floatValue() < tmpPickData.getQtaTot().floatValue() && item.getMtbAart().isFlagQtaCnfFissa();
|
||||
useQtaDaEvadere = qtaDaEvadere.floatValue() < tmpPickData.getQtaTot().floatValue();// && item.getMtbAart().isFlagQtaCnfFissa();
|
||||
if (useQtaDaEvadere) {
|
||||
dto.setQtaTot(qtaDaEvadere);
|
||||
dto.setMaxQta(qtaDaEvadere);
|
||||
@ -1141,8 +1150,12 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
}
|
||||
|
||||
|
||||
if(dto.getQtaTot() != null && dto.getQtaTot().floatValue() > 0 && dto.getQtaCnf() != null && dto.getQtaCnf().floatValue() > 0) {
|
||||
dto.setNumCnf(dto.getQtaTot().divide(dto.getQtaCnf()).intValue());
|
||||
if(dto.getQtaDaEvadere() != null && dto.getQtaDaEvadere().floatValue() > 0 && dto.getQtaCnf() != null && dto.getQtaCnf().floatValue() > 0) {
|
||||
if(useQtaDaEvadere && (dto.getQtaDaEvadere() != null && dto.getQtaDaEvadere().floatValue() > 0)) {
|
||||
dto.setNumCnf(dto.getQtaDaEvadere().divide(dto.getQtaCnf()).intValue());
|
||||
} else {
|
||||
dto.setNumCnf((dto.getQtaTot().compareTo(dto.getQtaDaEvadere()) < 0 ? dto.getQtaTot() : dto.getQtaDaEvadere()).divide(dto.getQtaCnf()).intValue());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@ import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.databinding.Observable;
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableField;
|
||||
import androidx.databinding.ObservableList;
|
||||
import androidx.annotation.NonNull;
|
||||
@ -22,8 +23,11 @@ import android.view.ViewGroup;
|
||||
import android.widget.BaseAdapter;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||
@ -32,6 +36,7 @@ import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
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.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetMtbcolrItemBinding;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.ArticoliInColloBottomSheetHelper;
|
||||
@ -153,18 +158,27 @@ public class ArticoliInColloBottomSheetViewModel {
|
||||
mBindings.bottomSheetActionsTitle.setText(clickedItem.getDescrizione());
|
||||
mBindings.bottomSheetActionsSubtitle.setText(clickedItem.getCodMart());
|
||||
|
||||
|
||||
//Setting qty with unt_mis
|
||||
if(clickedItem.getMtbAart() != null) {
|
||||
if (clickedItem.getMtbAart().isFlagQtaCnfFissa()) {
|
||||
mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()) + (!UtilityString.isNullOrEmpty(clickedItem.getMtbAart().getUntMis()) ? ("" + clickedItem.getMtbAart().getUntMis()) : ""));
|
||||
} else {
|
||||
mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getNumCnf()) + " " + mContext.getString(R.string.unt_mis_col));
|
||||
}
|
||||
} else {
|
||||
mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()));
|
||||
}
|
||||
|
||||
mBindings.bottomSheetActionsEditBtn.setOnClickListener(v -> onItemEdit(position));
|
||||
|
||||
mBindings.bottomSheetActionsDeleteBtn.setOnClickListener(v -> onItemDelete(position));
|
||||
|
||||
mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()) + " " + clickedItem.getUntMis());
|
||||
|
||||
|
||||
};
|
||||
|
||||
private void onItemEdit(int position) {
|
||||
|
||||
MtbColr itemToEdit = mtbColt.get().getMtbColr().get(position);
|
||||
MtbColr cloneItemToEdit = (MtbColr) itemToEdit.clone();
|
||||
|
||||
MtbColr originalItem = (MtbColr) itemToEdit.clone();
|
||||
|
||||
@ -184,12 +198,16 @@ public class ArticoliInColloBottomSheetViewModel {
|
||||
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||
|
||||
|
||||
cloneItemToEdit.setQtaCol(quantityDTO.qtaTot.getBigDecimal());
|
||||
cloneItemToEdit.setNumCnf(quantityDTO.numCnf.getBigDecimal());
|
||||
|
||||
ColliMagazzinoRESTConsumer.updateRiga(cloneItemToEdit, () ->{
|
||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
||||
|
||||
itemToEdit.setQtaCol(quantityDTO.qtaTot.getBigDecimal());
|
||||
itemToEdit.setNumCnf(quantityDTO.numCnf.getBigDecimal());
|
||||
|
||||
ColliMagazzinoRESTConsumer.updateRiga(itemToEdit, () ->{
|
||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
||||
|
||||
progress.dismiss();
|
||||
mtbColt.get().getMtbColr().set(position, itemToEdit);
|
||||
|
||||
@ -205,19 +223,29 @@ public class ArticoliInColloBottomSheetViewModel {
|
||||
|
||||
String text = mContext.getResources().getString(R.string.alert_delete_mtb_colr);
|
||||
DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(text), null, () -> {
|
||||
MtbColr itemToDelete = mtbColt.get().getMtbColr().get(position);
|
||||
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||
|
||||
progress.show();
|
||||
MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone();
|
||||
mtbColtClone.setMtbColr(new ObservableArrayList<>());
|
||||
mtbColtClone.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||
|
||||
ColliMagazzinoRESTConsumer.deleteRiga(itemToDelete, () -> {
|
||||
MtbColr itemToDelete = (MtbColr) mtbColt.get().getMtbColr().get(position).clone();
|
||||
itemToDelete.setQtaCol(itemToDelete.getQtaCol().multiply(new BigDecimal(-1)));
|
||||
itemToDelete.setNumCnf(itemToDelete.getNumCnf().multiply(new BigDecimal(-1)));
|
||||
itemToDelete.setRiga(null);
|
||||
itemToDelete.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||
|
||||
mtbColtClone.getMtbColr().add(itemToDelete);
|
||||
|
||||
ColliMagazzinoRESTConsumer.saveCollo(mtbColtClone, (newMtbColt) -> {
|
||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
||||
|
||||
progress.dismiss();
|
||||
mtbColt.get().getMtbColr().remove(position);
|
||||
MtbColr deletedItem = mtbColt.get().getMtbColr().get(position);
|
||||
mtbColt.get().getMtbColr().remove(deletedItem);
|
||||
|
||||
if(this.mOnItemDeletedCallback != null) this.mOnItemDeletedCallback.run(itemToDelete);
|
||||
progress.dismiss();
|
||||
|
||||
if(this.mOnItemDeletedCallback != null) this.mOnItemDeletedCallback.run(deletedItem);
|
||||
}, ex -> UtilityExceptions.defaultException(mContext, ex, progress));
|
||||
}, null).show();
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user