Completato refactoring Picking Libero

This commit is contained in:
Giuseppe Scorrano 2020-08-12 12:01:03 +02:00
parent 26c08f1945
commit 0b3df8a34d
12 changed files with 356 additions and 130 deletions

View File

@ -402,20 +402,20 @@ public class Converters {
} }
// @BindingAdapter("visibility") @BindingAdapter("visibility")
// public static void bindView(View view, final ObservableField<Boolean> bindableBoolean) { public static void bindView(View view, final ObservableField<Boolean> bindableBoolean) {
// if (view.getTag(R.id.bound_observable) != bindableBoolean) { if (view.getTag(R.id.bound_observable) != bindableBoolean) {
// view.setTag(R.id.bound_observable, bindableBoolean); view.setTag(R.id.bound_observable, bindableBoolean);
// } }
// bindableBoolean.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { bindableBoolean.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
// @Override @Override
// public void onPropertyChanged(Observable sender, int propertyId) { public void onPropertyChanged(Observable sender, int propertyId) {
// view.setVisibility(bindableBoolean.get() ? View.VISIBLE : View.GONE); view.setVisibility(bindableBoolean.get() ? View.VISIBLE : View.GONE);
// } }
// }); });
//
// view.setVisibility(bindableBoolean.get() ? View.VISIBLE : View.GONE); view.setVisibility(bindableBoolean.get() ? View.VISIBLE : View.GONE);
// } }
@BindingAdapter("android:layout_weight") @BindingAdapter("android:layout_weight")

View File

@ -1,18 +1,10 @@
package it.integry.integrywmsnative.core.model; package it.integry.integrywmsnative.core.model;
import android.os.Parcel;
import android.os.Parcelable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityString;
public class MtbColr extends EntityBase { public class MtbColr extends EntityBase {
@ -59,7 +51,7 @@ public class MtbColr extends EntityBase {
private MtbAart mtbAart; private MtbAart mtbAart;
private MtbPartitaMag rifPartitaMag; private MtbPartitaMag mtbPartitaMag;
public MtbColr() { public MtbColr() {
type = "mtb_colr"; type = "mtb_colr";
@ -419,12 +411,12 @@ public class MtbColr extends EntityBase {
} }
public MtbPartitaMag getRifPartitaMag() { public MtbPartitaMag getMtbPartitaMag() {
return rifPartitaMag; return mtbPartitaMag;
} }
public MtbColr setRifPartitaMag(MtbPartitaMag rifPartitaMag) { public MtbColr setMtbPartitaMag(MtbPartitaMag mtbPartitaMag) {
this.rifPartitaMag = rifPartitaMag; this.mtbPartitaMag = mtbPartitaMag;
return this; return this;
} }

View File

@ -1,8 +1,5 @@
package it.integry.integrywmsnative.core.rest.consumers; package it.integry.integrywmsnative.core.rest.consumers;
import android.app.Dialog;
import android.content.Context;
import androidx.databinding.ObservableArrayList; import androidx.databinding.ObservableArrayList;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
@ -11,7 +8,6 @@ import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.json.JSONObject;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -39,7 +35,6 @@ import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
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.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityQuery; import it.integry.integrywmsnative.core.utility.UtilityQuery;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
@ -55,7 +50,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
for (int i = 0; i < mtbColtToSave.getMtbColr().size(); i++) { for (int i = 0; i < mtbColtToSave.getMtbColr().size(); i++) {
mtbColtToSave.getMtbColr().get(i) mtbColtToSave.getMtbColr().get(i)
.setMtbAart(null) .setMtbAart(null)
.setRifPartitaMag(null); .setMtbPartitaMag(null);
} }
EntityRESTConsumer.processEntity(mtbColtToSave, callback, MtbColt.class); EntityRESTConsumer.processEntity(mtbColtToSave, callback, MtbColt.class);
@ -76,7 +71,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
mtbColtToSaveClone.getMtbColr().add( mtbColtToSaveClone.getMtbColr().add(
((MtbColr) mtbColtToSave.getMtbColr().get(i).clone()) ((MtbColr) mtbColtToSave.getMtbColr().get(i).clone())
.setMtbAart(null) .setMtbAart(null)
.setRifPartitaMag(null)); .setMtbPartitaMag(null));
} }
EntityRESTConsumer.processEntity(mtbColtToSaveClone, new ISimpleOperationCallback<MtbColt>() { EntityRESTConsumer.processEntity(mtbColtToSaveClone, new ISimpleOperationCallback<MtbColt>() {
@ -102,7 +97,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
for (int i = 0; i < mtbColt.getMtbColr().size(); i++) { for (int i = 0; i < mtbColt.getMtbColr().size(); i++) {
mtbColt.getMtbColr().get(i) mtbColt.getMtbColr().get(i)
.setMtbAart(null) .setMtbAart(null)
.setRifPartitaMag(null); .setMtbPartitaMag(null);
} }
} }
@ -673,7 +668,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
public static void creaRettificaCollo(MtbColr sourceMtbColrOriginal, BigDecimal newNumCnf, BigDecimal newQtaTot, Runnable onComplete, RunnableArgs<Exception> onFailed) { public static void creaRettificaCollo(MtbColr sourceMtbColrOriginal, BigDecimal newNumCnf, BigDecimal newQtaTot, Runnable onComplete, RunnableArgs<Exception> onFailed) {
MtbColr sourceMtbColr = (MtbColr) sourceMtbColrOriginal.clone(); MtbColr sourceMtbColr = (MtbColr) sourceMtbColrOriginal.clone();
sourceMtbColr.setRifPartitaMag(null); sourceMtbColr.setMtbPartitaMag(null);
sourceMtbColr.setMtbAart(null); sourceMtbColr.setMtbAart(null);
RettificaULDTO rettificaULDTO = new RettificaULDTO() RettificaULDTO rettificaULDTO = new RettificaULDTO()

View File

@ -6,6 +6,8 @@ import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import androidx.appcompat.widget.AppCompatTextView; import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.ContextCompat;
import androidx.databinding.ObservableList;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -13,11 +15,14 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.tfb.fbtoast.FBToast; import com.tfb.fbtoast.FBToast;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
@ -27,12 +32,14 @@ import it.integry.integrywmsnative.R;
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.di.BindableBoolean; import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss; import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbAart;
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.model.VtbDest; import it.integry.integrywmsnative.core.model.VtbDest;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
@ -40,6 +47,7 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityToast; import it.integry.integrywmsnative.core.utility.UtilityToast;
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding; import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter;
import it.integry.integrywmsnative.gest.picking_libero.viewmodel.PickingLiberoViewModel; import it.integry.integrywmsnative.gest.picking_libero.viewmodel.PickingLiberoViewModel;
import it.integry.integrywmsnative.gest.spedizione_new.exceptions.InvalidPesoKGException; import it.integry.integrywmsnative.gest.spedizione_new.exceptions.InvalidPesoKGException;
import it.integry.integrywmsnative.gest.spedizione_new.model.PickedQuantityDTO; import it.integry.integrywmsnative.gest.spedizione_new.model.PickedQuantityDTO;
@ -47,6 +55,7 @@ import it.integry.integrywmsnative.gest.spedizione_new.model.PickingObjectDTO;
import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.ui.ElevatedToolbar;
import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskCliente; import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskCliente;
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
@ -69,6 +78,8 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
private ElevatedToolbar mToolbar; private ElevatedToolbar mToolbar;
private AppCompatTextView mToolbarTitleText; private AppCompatTextView mToolbarTitleText;
private PickingLiberoListAdapter mAdapter;
private int barcodeScannerIstanceID = -1; private int barcodeScannerIstanceID = -1;
private Dialog mCurrentProgress; private Dialog mCurrentProgress;
@ -118,15 +129,11 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
mBindings.setLifecycleOwner(this); mBindings.setLifecycleOwner(this);
mBindings.setView(this); mBindings.setView(this);
// barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
// .setOnScanSuccessfull(mViewModel.onScanSuccessfull)
// .setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false)));
mToolbar.setRecyclerView(mBindings.pickingLiberoMainList); mToolbar.setRecyclerView(mBindings.pickingLiberoMainList);
this.initVars(); this.initVars();
this.initBarcodeReader(); this.initBarcodeReader();
this.initRecyclerView();
boolean flagAskCliente = SettingsManager.iDB().isFlagAskClienteInPickingLibero(); boolean flagAskCliente = SettingsManager.iDB().isFlagAskClienteInPickingLibero();
mViewModel.init(flagAskCliente); mViewModel.init(flagAskCliente);
@ -137,9 +144,10 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
private void initVars() { private void initVars() {
this.thereIsAnOpenedUL.addOnPropertyChangedCallback(() -> { this.thereIsAnOpenedUL.addOnPropertyChangedCallback(() -> {
this.thereIsntAnOpenedUL.set(!thereIsntAnOpenedUL.get()); this.thereIsntAnOpenedUL.set(!thereIsntAnOpenedUL.get());
this.thereIsAnOpenULWithoutRows.set(!thereIsAnyRowInUL.get() && thereIsAnOpenedUL.get());
}); });
this.thereIsAnyRowInUL.addOnPropertyChangedCallback(() -> { this.thereIsAnyRowInUL.addOnPropertyChangedCallback(() -> {
this.thereIsAnOpenULWithoutRows.set(!thereIsAnyRowInUL.get()); this.thereIsAnOpenULWithoutRows.set(!thereIsAnyRowInUL.get() && thereIsAnOpenedUL.get());
}); });
} }
@ -149,6 +157,29 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
.setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false))); .setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false)));
} }
private void initRecyclerView() {
mBindings.pickingLiberoMainList.setNestedScrollingEnabled(false);
mBindings.pickingLiberoMainList.setHasFixedSize(true);
mBindings.pickingLiberoMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
DividerItemDecoration itemDecorator = new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL);
itemDecorator.setDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.divider));
mBindings.pickingLiberoMainList.addItemDecoration(itemDecorator);
}
private void initAdapter() {
mAdapter = new PickingLiberoListAdapter(getActivity(), mViewModel.getCurrentMtbColt().getMtbColr());
mBindings.pickingLiberoMainList.setAdapter(mAdapter);
}
private void destroyAdapter() {
mAdapter = null;
mBindings.pickingLiberoMainList.setAdapter(null);
}
private RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> { private RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
BarcodeManager.disable(); BarcodeManager.disable();
@ -169,6 +200,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
} }
public void closeLU() { public void closeLU() {
destroyAdapter();
this.mViewModel.closeLU(); this.mViewModel.closeLU();
} }
@ -217,14 +249,25 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
@Override @Override
public void onLUOpened(MtbColt mtbColt) { public void onLUOpened(MtbColt mtbColt) {
initAdapter();
thereIsAnOpenedUL.set(true); thereIsAnOpenedUL.set(true);
thereIsAnyRowInUL.set(mtbColt.getMtbColr().size() > 0, true); thereIsAnyRowInUL.set(mtbColt.getMtbColr().size() > 0, true);
mtbColt.getMtbColr().addOnListChangedCallback(new OnListGeneralChangedCallback() {
@Override
public void onChanged(ObservableList sender) {
thereIsAnyRowInUL.set(mtbColt.getMtbColr().size() > 0, true);
}
});
FBToast.successToast(getActivity(), getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT); FBToast.successToast(getActivity(), getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
} }
@Override @Override
public void onLUClosed() { public void onLUClosed() {
destroyAdapter();
thereIsAnyRowInUL.set(false); thereIsAnyRowInUL.set(false);
thereIsAnOpenedUL.set(false); thereIsAnOpenedUL.set(false);
} }
@ -253,6 +296,15 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
}).show(); }).show();
} }
@Override
public void onArtSelectionRequest(List<MtbColr> mtbColrsToPick, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort) {
DialogChooseArtsFromListaArts.make(getActivity(), mtbColrsToPick, onComplete, () -> {
onAbort.run();
BarcodeManager.enable();
})
.show();
}
@Override @Override
public void onItemDispatched( public void onItemDispatched(
PickingObjectDTO pickingObjectDTO, PickingObjectDTO pickingObjectDTO,
@ -266,6 +318,8 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
String partitaMag, String partitaMag,
Date dataScad, Date dataScad,
boolean canOverflowOrderQuantity, boolean canOverflowOrderQuantity,
boolean canPartitaMagBeChanged,
boolean canLUBeClosed,
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) { RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO() DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
@ -278,7 +332,9 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
.setQtaCnfToBeTaken(qtaCnfToBeTaken) .setQtaCnfToBeTaken(qtaCnfToBeTaken)
.setPartitaMag(partitaMag) .setPartitaMag(partitaMag)
.setDataScad(dataScad) .setDataScad(dataScad)
.setCanOverflowOrderQuantity(canOverflowOrderQuantity); .setCanOverflowOrderQuantity(canOverflowOrderQuantity)
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
.setCanLUBeClosed(canLUBeClosed);
DialogInputQuantityV2 DialogInputQuantityV2
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> { .newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {

View File

@ -4,8 +4,13 @@ import android.app.Dialog;
import androidx.databinding.ObservableArrayList; import androidx.databinding.ObservableArrayList;
import com.annimon.stream.Stream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
@ -55,10 +60,10 @@ public class PickingLiberoViewModelNEW {
@Inject @Inject
public PickingLiberoViewModelNEW( ArticoloRESTConsumer articoloRESTConsumer, public PickingLiberoViewModelNEW(ArticoloRESTConsumer articoloRESTConsumer,
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
PrinterRESTConsumer printerRESTConsumer, PrinterRESTConsumer printerRESTConsumer,
BarcodeRESTConsumer barcodeRESTConsumer) { BarcodeRESTConsumer barcodeRESTConsumer) {
this.mArticoloRESTConsumer = articoloRESTConsumer; this.mArticoloRESTConsumer = articoloRESTConsumer;
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer; this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
this.mPrinterRESTConsumer = printerRESTConsumer; this.mPrinterRESTConsumer = printerRESTConsumer;
@ -71,8 +76,8 @@ public class PickingLiberoViewModelNEW {
} }
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete){ public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
if(this.mCurrentMtbColt == null) { if (this.mCurrentMtbColt == null) {
this.createNewLU(null, null, () -> { this.createNewLU(null, null, () -> {
executeEtichettaBehaviour(barcodeScanDTO, onComplete); executeEtichettaBehaviour(barcodeScanDTO, onComplete);
}); });
@ -82,15 +87,15 @@ public class PickingLiberoViewModelNEW {
} }
private void executeEtichettaBehaviour(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { private void executeEtichettaBehaviour(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
if(UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)){ if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) {
//Cerco gli articoli presenti nell'ul dell'etichetta anonima //Cerco gli articoli presenti nell'ul dell'etichetta anonima
this.executeEtichettaLU(barcodeScanDTO.getStringValue(), onComplete); this.executeEtichettaLU(barcodeScanDTO.getStringValue(), onComplete);
} else if(UtilityBarcode.isEtichetta128(barcodeScanDTO)) { } else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
//Cerco tramite etichetta ean 128 (che può indicarmi una UL) //Cerco tramite etichetta ean 128 (che può indicarmi una UL)
this.executeEtichettaEan128(barcodeScanDTO, onComplete); this.executeEtichettaEan128(barcodeScanDTO, onComplete);
} else if(UtilityBarcode.isEanPeso(barcodeScanDTO)) { } else if (UtilityBarcode.isEanPeso(barcodeScanDTO)) {
//Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL) //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
this.executeEtichettaEanPeso(barcodeScanDTO, onComplete); this.executeEtichettaEanPeso(barcodeScanDTO, onComplete);
@ -112,9 +117,9 @@ public class PickingLiberoViewModelNEW {
private void executeEtichettaLU(String sscc, Runnable onComplete) { private void executeEtichettaLU(String sscc, Runnable onComplete) {
mColliMagazzinoRESTConsumer.getBySSCC(sscc, true, false, mtbColtScanned -> { mColliMagazzinoRESTConsumer.getBySSCC(sscc, true, false, mtbColtScanned -> {
if(mtbColtScanned == null) { if (mtbColtScanned == null) {
this.sendError(new NoLUFoundException()); this.sendError(new NoLUFoundException());
} else if((mtbColtScanned.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColtScanned.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColtScanned.getSegno() > 0) { } else if ((mtbColtScanned.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColtScanned.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColtScanned.getSegno() > 0) {
pickMerceULtoUL(mtbColtScanned, onComplete); pickMerceULtoUL(mtbColtScanned, onComplete);
} else { } else {
this.sendError(new NoLUFoundException()); this.sendError(new NoLUFoundException());
@ -128,16 +133,17 @@ public class PickingLiberoViewModelNEW {
String barcodeProd = null; String barcodeProd = null;
if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc; if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
if(!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin; if (!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
if(!UtilityString.isNullOrEmpty(ean128Model.Content)) barcodeProd = ean128Model.Content; if (!UtilityString.isNullOrEmpty(ean128Model.Content))
barcodeProd = ean128Model.Content;
if(!UtilityString.isNullOrEmpty(barcodeProd)) { if (!UtilityString.isNullOrEmpty(barcodeProd)) {
if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)){ if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
this.executeEtichettaLU(ean128Model.Sscc, onComplete); this.executeEtichettaLU(ean128Model.Sscc, onComplete);
} else if(!UtilityString.isNullOrEmpty(barcodeProd)) { } else if (!UtilityString.isNullOrEmpty(barcodeProd)) {
if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) { if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) {
barcodeProd = barcodeProd.substring(1); barcodeProd = barcodeProd.substring(1);
} }
@ -155,15 +161,16 @@ public class PickingLiberoViewModelNEW {
} }
private void loadArticolo(String barcodeProd, Ean128Model ean128Model, Runnable onComplete) { private void loadArticolo(String barcodeProd, Ean128Model ean128Model, Runnable onComplete) {
if(barcodeProd.length() == 14) { if (barcodeProd.length() == 14) {
// barcodeProd = UtilityBarcode.convertITF14toNeutral(barcodeProd); // barcodeProd = UtilityBarcode.convertITF14toNeutral(barcodeProd);
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd); barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
} }
mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
if(mtbAartList != null && mtbAartList.size() > 0) { if (mtbAartList != null && mtbAartList.size() > 0) {
this.dispatchArt(mtbAartList.get(0), ean128Model); this.dispatchArt(mtbAartList.get(0), ean128Model);
onComplete.run();
} else { } else {
this.sendError(new NoResultFromBarcodeException()); this.sendError(new NoResultFromBarcodeException());
@ -174,7 +181,7 @@ public class PickingLiberoViewModelNEW {
public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) { public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) {
if(this.mFlagAskCliente) { if (this.mFlagAskCliente) {
this.sendLUClienteRequired(vtbDest -> { this.sendLUClienteRequired(vtbDest -> {
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, onComplete); createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, onComplete);
}, onComplete); }, onComplete);
@ -186,19 +193,19 @@ public class PickingLiberoViewModelNEW {
private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, Runnable onComplete) { private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, Runnable onComplete) {
MtbColt mtbColt = new MtbColt(); MtbColt mtbColt = new MtbColt();
mtbColt.initDefaultFields(); mtbColt.initDefaultFields();
mtbColt .setGestione(GestioneEnum.VENDITA) mtbColt.setGestione(GestioneEnum.VENDITA)
.setSegno(-1) .setSegno(-1)
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
if(customNumCollo != null) { if (customNumCollo != null) {
mtbColt.setNumCollo(customNumCollo); mtbColt.setNumCollo(customNumCollo);
} }
if(!UtilityString.isNullOrEmpty(customSerCollo)) { if (!UtilityString.isNullOrEmpty(customSerCollo)) {
mtbColt.setSerCollo(customSerCollo); mtbColt.setSerCollo(customSerCollo);
} }
if(vtbDest != null) { if (vtbDest != null) {
mtbColt.setCodAnag(vtbDest.getCodAnag()); mtbColt.setCodAnag(vtbDest.getCodAnag());
mtbColt.setCodVdes(vtbDest.getCodVdes()); mtbColt.setCodVdes(vtbDest.getCodVdes());
} }
@ -216,7 +223,7 @@ public class PickingLiberoViewModelNEW {
}, this::sendError); }, this::sendError);
} }
private void dispatchArt(MtbAart mtbAart, Ean128Model ean128Model){ private void dispatchArt(MtbAart mtbAart, Ean128Model ean128Model) {
PickingObjectDTO pickingObjectDTO = new PickingObjectDTO() PickingObjectDTO pickingObjectDTO = new PickingObjectDTO()
.setMtbAart(mtbAart) .setMtbAart(mtbAart)
.setTempPickData(PickDataDTO.fromEan128(ean128Model)); .setTempPickData(PickDataDTO.fromEan128(ean128Model));
@ -264,7 +271,7 @@ public class PickingLiberoViewModelNEW {
initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf); initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf);
} }
if(numCnfDaPrelevare == null && qtaColDaPrelevare == null && initialNumCnf == null && initialQtaTot == null) { if (numCnfDaPrelevare == null && qtaColDaPrelevare == null && initialNumCnf == null && initialQtaTot == null) {
initialNumCnf = BigDecimal.ONE; initialNumCnf = BigDecimal.ONE;
initialQtaCnf = mtbAart.getQtaCnf(); initialQtaCnf = mtbAart.getQtaCnf();
initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf); initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf);
@ -283,6 +290,8 @@ public class PickingLiberoViewModelNEW {
partitaMag, partitaMag,
dataScad, dataScad,
false, false,
true,
true,
(pickedQuantityDTO, shouldCloseLU) -> { (pickedQuantityDTO, shouldCloseLU) -> {
this.saveNewRow(pickingObjectDTO, this.saveNewRow(pickingObjectDTO,
pickedQuantityDTO.getNumCnf(), pickedQuantityDTO.getNumCnf(),
@ -295,14 +304,134 @@ public class PickingLiberoViewModelNEW {
} }
private void pickMerceULtoUL(MtbColt sourceMtbColt, Runnable onComplete) { private void pickMerceULtoUL(MtbColt sourceMtbColt, Runnable onComplete) {
List<MtbColr> mtbColrsToPick = Stream.of(sourceMtbColt.getMtbColr())
.filter(x -> UtilityBigDecimal.greaterThan(x.getQtaCol(), BigDecimal.ZERO))
.toList();
this.sendArtSelectionRequest(mtbColrsToPick, pickedAarts -> {
List<MtbColr> destNewMtbColr = new ArrayList<>();
if (pickedAarts.size() > 0) {
askQuantities(pickedAarts.iterator(), destNewMtbColr, () -> {
if (destNewMtbColr.size() > 0) {
MtbColt clonedTestata = (MtbColt) this.mCurrentMtbColt.clone();
clonedTestata.setOperation(CommonModelConsts.OPERATION.UPDATE);
ObservableArrayList<MtbColr> mtbColrObservableField = new ObservableArrayList<>();
for (int i = 0; i < destNewMtbColr.size(); i++) {
MtbColr cloneMtbColr = (MtbColr) destNewMtbColr.get(i).clone();
cloneMtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
cloneMtbColr
.setGestioneRif(cloneMtbColr.getGestione())
.setGestione((String) null)
.setSerColloRif(cloneMtbColr.getSerCollo())
.setSerCollo(null)
.setNumColloRif(cloneMtbColr.getNumCollo())
.setNumCollo(null)
.setDataColloRif(cloneMtbColr.getDataColloS())
.setDataCollo(null)
.setPesoLordoKg(null)
.setPesoNettoKg(null);
mtbColrObservableField.add(cloneMtbColr);
}
clonedTestata.setMtbColr(mtbColrObservableField);
this.sendOnLoadingStarted();
mColliMagazzinoRESTConsumer.saveCollo(clonedTestata, value -> {
for (int i = 0; i < mtbColrObservableField.size(); i++) {
mtbColrObservableField.get(i)
.setDataCollo(value.getDataColloS())
.setNumCollo(value.getNumCollo())
.setGestione(value.getGestione())
.setSerCollo(value.getSerCollo());
mCurrentMtbColt.getMtbColr().add(mtbColrObservableField.get(i));
}
this.sendOnRowSaved();
this.sendOnLoadingEnded();
onComplete.run();
}, this::sendError);
}
}, onComplete);
} else {
onComplete.run();
}
}, this::sendOnLoadingEnded);
} }
private void askQuantities(Iterator<MtbColr> sourceMtbColrs, List<MtbColr> destMtbColr, Runnable onComplete, Runnable onAbort) {
if (sourceMtbColrs.hasNext()) {
askSingleQuantity(sourceMtbColrs.next(), mtbColr -> {
destMtbColr.add(mtbColr);
askQuantities(sourceMtbColrs, destMtbColr, onComplete, onAbort);
}, onAbort);
} else {
onComplete.run();
}
}
private void askSingleQuantity(MtbColr mtbColr, RunnableArgs<MtbColr> onComplete, Runnable onAbort) {
MtbColt sourceMtbColt = new MtbColt()
.setNumCollo(mtbColr.getNumCollo())
.setGestione(mtbColr.getGestione())
.setDataCollo(mtbColr.getDataColloD())
.setSerCollo(mtbColr.getSerCollo())
.setMtbColr(new ObservableArrayList<>());
sourceMtbColt
.getMtbColr()
.add(mtbColr);
PickingObjectDTO pickingObjectDTO = new PickingObjectDTO()
.setMtbAart(mtbColr.getMtbAart())
.setTempPickData(
new PickDataDTO()
.setSourceMtbColt(sourceMtbColt));
this.sendOnItemDispatched(
pickingObjectDTO,
pickingObjectDTO.getMtbAart(),
mtbColr.getNumCnf(),
mtbColr.getQtaCnf(),
mtbColr.getQtaCol(),
null,
null,
null,
mtbColr.getPartitaMag(),
mtbColr.getDataScadPartitaD(),
false,
false,
false,
(pickedQuantityDTO, shouldCloseLU) -> {
mtbColr
.setPartitaMag(pickedQuantityDTO.getPartitaMag())
.setDataScadPartita(pickedQuantityDTO.getDataScad())
.setQtaCol(pickedQuantityDTO.getQtaTot())
.setQtaCnf(pickedQuantityDTO.getQtaCnf())
.setNumCnf(pickedQuantityDTO.getNumCnf())
.setDatetimeRow(UtilityDate.getDateInstance());
onComplete.run(mtbColr);
});
}
public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) { public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
@ -326,7 +455,7 @@ public class PickingLiberoViewModelNEW {
cloneMtbColt.setMtbColr(new ObservableArrayList()); cloneMtbColt.setMtbColr(new ObservableArrayList());
cloneMtbColt.getMtbColr().add((MtbColr) mtbColr.clone()); cloneMtbColt.getMtbColr().add((MtbColr) mtbColr.clone());
if(UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) { if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) {
this.sendOnLoadingEnded(); this.sendOnLoadingEnded();
return; return;
} }
@ -352,10 +481,36 @@ public class PickingLiberoViewModelNEW {
public void closeLU() { public void closeLU() {
if (mCurrentMtbColt == null) return;
this.sendOnLoadingStarted();
mColliMagazzinoRESTConsumer.canLUBeDeleted(mCurrentMtbColt, canBeDeleted -> {
if (canBeDeleted) {
deleteLU(() -> {
this.sendLUClosed();
this.sendOnLoadingEnded();
this.mCurrentMtbColt = null;
});
} else {
mColliMagazzinoRESTConsumer.updateDataFine(mCurrentMtbColt, () -> {
this.sendLUClosed();
this.sendOnLoadingEnded();
this.mCurrentMtbColt = null;
}, this::sendError);
}
}, this::sendError);
} }
private void deleteLU(Runnable onComplete) {
mColliMagazzinoRESTConsumer.deleteCollo(mCurrentMtbColt, () -> {
this.mCurrentMtbColt = null;
if (onComplete != null) onComplete.run();
}, this::sendError);
}
private void sendOnLoadingStarted() { private void sendOnLoadingStarted() {
@ -367,15 +522,23 @@ public class PickingLiberoViewModelNEW {
} }
private void sendError(Exception ex) { private void sendError(Exception ex) {
if(this.mListener != null) mListener.onError(ex); if (this.mListener != null) mListener.onError(ex);
} }
private void sendLUOpened(MtbColt mtbColt) { private void sendLUOpened(MtbColt mtbColt) {
if (this.mListener != null) mListener.onLUOpened(mtbColt); if (this.mListener != null) mListener.onLUOpened(mtbColt);
} }
private void sendLUClosed() {
if (this.mListener != null) mListener.onLUClosed();
}
private void sendLUClienteRequired(RunnableArgs<VtbDest> onComplete, Runnable onAbort) { private void sendLUClienteRequired(RunnableArgs<VtbDest> onComplete, Runnable onAbort) {
if(this.mListener != null) mListener.onLUClienteRequired(onComplete, onAbort); if (this.mListener != null) mListener.onLUClienteRequired(onComplete, onAbort);
}
private void sendArtSelectionRequest(List<MtbColr> mtbColrsToPick, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort) {
if (this.mListener != null) mListener.onArtSelectionRequest(mtbColrsToPick, onComplete, onAbort);
} }
private void sendOnItemDispatched(PickingObjectDTO pickingObjectDTO, private void sendOnItemDispatched(PickingObjectDTO pickingObjectDTO,
@ -389,6 +552,8 @@ public class PickingLiberoViewModelNEW {
String partitaMag, String partitaMag,
Date dataScad, Date dataScad,
boolean canOverflowOrderQuantity, boolean canOverflowOrderQuantity,
boolean canPartitaMagBeChanged,
boolean canLUBeClosed,
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) { RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO, if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO,
mtbAart, mtbAart,
@ -401,6 +566,8 @@ public class PickingLiberoViewModelNEW {
partitaMag, partitaMag,
dataScad, dataScad,
canOverflowOrderQuantity, canOverflowOrderQuantity,
canPartitaMagBeChanged,
canLUBeClosed,
onComplete); onComplete);
} }
@ -426,6 +593,8 @@ public class PickingLiberoViewModelNEW {
void onLUClienteRequired(RunnableArgs<VtbDest> onComplete, Runnable onAbort); void onLUClienteRequired(RunnableArgs<VtbDest> onComplete, Runnable onAbort);
void onArtSelectionRequest(List<MtbColr> mtbColrsToPick, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort);
/*void onLUPrintRequest(RunnableArgs<Boolean> onComplete); /*void onLUPrintRequest(RunnableArgs<Boolean> onComplete);
void onLUPrintError(Exception ex, Runnable onComplete); void onLUPrintError(Exception ex, Runnable onComplete);
@ -447,6 +616,8 @@ public class PickingLiberoViewModelNEW {
String partitaMag, String partitaMag,
Date dataScad, Date dataScad,
boolean canOverflowOrderQuantity, boolean canOverflowOrderQuantity,
boolean canPartitaMagBeChanged,
boolean canLUBeClosed,
RunnableArgss<PickedQuantityDTO, Boolean> onComplete); RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
void onRowSaved(); void onRowSaved();
@ -454,4 +625,9 @@ public class PickingLiberoViewModelNEW {
} }
public MtbColt getCurrentMtbColt() {
return mCurrentMtbColt;
}
} }

View File

@ -8,7 +8,11 @@ import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList; import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableList; import androidx.databinding.ObservableList;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked; import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
@ -16,16 +20,16 @@ import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.ListaPickingLiberoListModelBinding; import it.integry.integrywmsnative.databinding.ListaPickingLiberoListModelBinding;
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentListAdapter;
public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLiberoListAdapter.ViewHolder>{ public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLiberoListAdapter.ViewHolder>{
protected Context mContext; private Context mContext;
protected ObservableArrayList<MtbColr> mDataset; private ArrayList<MtbColr> mDataset;
private OnItemClickListener mOnItemClickListener;
private IRecyclerItemClicked<MtbColr> mOnItemClickListener;
public class ViewHolder extends RecyclerView.ViewHolder { public class ViewHolder extends RecyclerView.ViewHolder {
private ListaPickingLiberoListModelBinding mViewDataBinding; protected ListaPickingLiberoListModelBinding mViewDataBinding;
public ViewHolder(ListaPickingLiberoListModelBinding v) { public ViewHolder(ListaPickingLiberoListModelBinding v) {
@ -55,12 +59,16 @@ public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLibero
public PickingLiberoListAdapter(Context context, ObservableArrayList<MtbColr> myDataset, IRecyclerItemClicked<MtbColr> onItemClickListener) { public PickingLiberoListAdapter(Context context, ObservableArrayList<MtbColr> myDataset) {
mContext = context; mContext = context;
mDataset = myDataset; mDataset = myDataset;
mOnItemClickListener = onItemClickListener;
myDataset.addOnListChangedCallback(onListChangedCallback); myDataset.addOnListChangedCallback(new OnListGeneralChangedCallback() {
@Override
public void onChanged(ObservableList sender) {
notifyDataSetChanged();
}
});
} }
@Override @Override
@ -78,9 +86,11 @@ public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLibero
holder.mViewDataBinding.getRoot().setOnClickListener(x -> { holder.mViewDataBinding.getRoot().setOnClickListener(x -> {
if(mOnItemClickListener != null) { if(mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(item, position); mOnItemClickListener.onItemClick(holder.mViewDataBinding.getMtbColr());
} }
}); });
holder.mViewDataBinding.executePendingBindings();
} }
@Override @Override
@ -94,33 +104,13 @@ public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLibero
} }
public PickingLiberoListAdapter setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.mOnItemClickListener = onItemClickListener;
return this;
}
private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback<ObservableList<MtbColr>>(){ interface OnItemClickListener {
void onItemClick(MtbColr item);
@Override }
public void onChanged(ObservableList<MtbColr> sender) {
notifyDataSetChanged();
}
@Override
public void onItemRangeChanged(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
notifyDataSetChanged();
}
@Override
public void onItemRangeInserted(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
notifyDataSetChanged();
}
@Override
public void onItemRangeMoved(ObservableList<MtbColr> sender, int fromPosition, int toPosition, int itemCount) {
notifyDataSetChanged();
}
@Override
public void onItemRangeRemoved(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
notifyDataSetChanged();
}
};
} }

View File

@ -180,7 +180,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
} }
private void initAdapter() { private void initAdapter() {
mAdapter = new PickingLiberoListAdapter(mContext, mtbColt.get().getMtbColr(), this); mAdapter = new PickingLiberoListAdapter(mContext, mtbColt.get().getMtbColr());
mBinding.pickingLiberoMainList.setAdapter(mAdapter); mBinding.pickingLiberoMainList.setAdapter(mAdapter);
} }

View File

@ -22,7 +22,6 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.exception.DateNotRecognizedException; import it.integry.integrywmsnative.core.exception.DateNotRecognizedException;
import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException; import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColr;
@ -76,7 +75,7 @@ public class ProdVersamentoMaterialViewModel {
mMtbColr = mtbColr; mMtbColr = mtbColr;
mBinding.descrArt.setText(mtbColr.getDescrizione()); mBinding.descrArt.setText(mtbColr.getDescrizione());
mBinding.codArt.setText(mtbColr.getCodMart()); mBinding.codArt.setText(mtbColr.getCodMart());
mBinding.batch.setText(mtbColr.getPartitaMag() + ((mtbColr.getRifPartitaMag() != null) ? " - "+ mtbColr.getRifPartitaMag().getDescrizione() : "")); mBinding.batch.setText(mtbColr.getPartitaMag() + ((mtbColr.getMtbPartitaMag() != null) ? " - "+ mtbColr.getMtbPartitaMag().getDescrizione() : ""));
if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())) { if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())) {
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol()); String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());

View File

@ -76,20 +76,6 @@ public class DialogChooseArtsFromListaArts {
binding.setFilterStatus(filterStatus); binding.setFilterStatus(filterStatus);
binding.emptyView.setVisibility(listaMtbColr != null && listaMtbColr.size() > 0 ? View.GONE : View.VISIBLE); binding.emptyView.setVisibility(listaMtbColr != null && listaMtbColr.size() > 0 ? View.GONE : View.VISIBLE);
// AlertDialog.Builder builder = new AlertDialog.Builder(context);
// builder.setPositiveButton(context.getResources().getText(R.string.confirm), (dialog, which) -> {
// mDialog.dismiss();
// onPositiveClick();
// });
// builder.setNegativeButton(context.getResources().getText(R.string.abort), (dialog, which) -> {
// mDialog.dismiss();
// onNegativeClick();Z
// });
//
// builder.setView(binding.getRoot());
//
// mDialog = builder.create();
mDialog = new Dialog(context); mDialog = new Dialog(context);
mDialog.setContentView(binding.getRoot()); mDialog.setContentView(binding.getRoot());

View File

@ -51,6 +51,9 @@ public class DialogInputQuantityV2 extends DialogFragment implements DialogInput
public ObservableField<Boolean> enabledQtaCnf = new ObservableField<>(true); public ObservableField<Boolean> enabledQtaCnf = new ObservableField<>(true);
public ObservableField<Boolean> enabledQtaTot = new ObservableField<>(true); public ObservableField<Boolean> enabledQtaTot = new ObservableField<>(true);
public ObservableField<Boolean> enabledChangePartitaMag = new ObservableField<>(true);
public ObservableField<Boolean> enabledLUCloseButton = new ObservableField<>(true);
public Context context; public Context context;
private DialogInputQuantityV2Binding mBindings; private DialogInputQuantityV2Binding mBindings;
@ -260,6 +263,10 @@ public class DialogInputQuantityV2 extends DialogFragment implements DialogInput
mViewModel.blockedQtaTot.set(!mViewModel.blockedQtaTot.get()); mViewModel.blockedQtaTot.set(!mViewModel.blockedQtaTot.get());
} }
})); }));
this.enabledChangePartitaMag.set(this.mDialogInputQuantityV2DTO.isCanPartitaMagBeChanged());
this.enabledLUCloseButton.set(this.mDialogInputQuantityV2DTO.isCanLUBeClosed());
} }

View File

@ -25,6 +25,9 @@ public class DialogInputQuantityV2DTO {
private BigDecimal totalNumCnfAvailable; private BigDecimal totalNumCnfAvailable;
private BigDecimal qtaCnfAvailable; private BigDecimal qtaCnfAvailable;
private boolean canPartitaMagBeChanged;
private boolean canLUBeClosed;
private String partitaMag; private String partitaMag;
private Date dataScad; private Date dataScad;
@ -147,6 +150,24 @@ public class DialogInputQuantityV2DTO {
return this; return this;
} }
public boolean isCanPartitaMagBeChanged() {
return canPartitaMagBeChanged;
}
public DialogInputQuantityV2DTO setCanPartitaMagBeChanged(boolean canPartitaMagBeChanged) {
this.canPartitaMagBeChanged = canPartitaMagBeChanged;
return this;
}
public boolean isCanLUBeClosed() {
return canLUBeClosed;
}
public DialogInputQuantityV2DTO setCanLUBeClosed(boolean canLUBeClosed) {
this.canLUBeClosed = canLUBeClosed;
return this;
}
public String getPartitaMag() { public String getPartitaMag() {
return partitaMag; return partitaMag;
} }

View File

@ -380,6 +380,7 @@
style="@style/TextInputLayout.OutlinePrimary" style="@style/TextInputLayout.OutlinePrimary"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:enabled="@{view.enabledChangePartitaMag}"
android:layout_weight="@{viewmodel.shouldAskDataScad || viewmodel.shouldShowDataScad ? 1f : 2f}" android:layout_weight="@{viewmodel.shouldAskDataScad || viewmodel.shouldShowDataScad ? 1f : 2f}"
android:paddingEnd="4dp" android:paddingEnd="4dp"
tools:layout_weight="1"> tools:layout_weight="1">
@ -400,6 +401,7 @@
style="@style/TextInputLayout.OutlinePrimary" style="@style/TextInputLayout.OutlinePrimary"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:enabled="@{view.enabledChangePartitaMag}"
android:visibility="@{viewmodel.shouldAskDataScad || viewmodel.shouldShowDataScad ? View.VISIBLE : View.GONE}" android:visibility="@{viewmodel.shouldAskDataScad || viewmodel.shouldShowDataScad ? View.VISIBLE : View.GONE}"
android:layout_weight="1"> android:layout_weight="1">
@ -498,7 +500,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="16dp" android:layout_margin="16dp"
android:orientation="horizontal" android:orientation="horizontal"
android:weightSum="1"> android:weightSum="1"
android:gravity="center_horizontal">
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/close_lu_btn" android:id="@+id/close_lu_btn"
@ -510,6 +513,7 @@
android:layout_weight="0.4" android:layout_weight="0.4"
android:onClick="@{() -> view.saveAndCloseLU()}" android:onClick="@{() -> view.saveAndCloseLU()}"
android:text="@string/action_close_ul" android:text="@string/action_close_ul"
app:visibility="@{view.enabledLUCloseButton}"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:strokeColor="@color/colorPrimary" /> app:strokeColor="@color/colorPrimary" />