Migliorie a Rientro Merce

This commit is contained in:
2021-07-20 18:30:57 +02:00
parent cfb3acc33d
commit 15d3b1858a
13 changed files with 803 additions and 481 deletions

View File

@@ -150,6 +150,28 @@ public class Converters {
}
}
@BindingAdapter("binding")
public static void bindEditText(AutoCompleteTextView view, final ObservableField<String> observableString) {
Pair<ObservableField<String>, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);
if (pair == null || pair.first != observableString) {
if (pair != null) {
view.removeTextChangedListener(pair.second);
}
TextWatcherAdapter watcher = new TextWatcherAdapter() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
observableString.set(s.toString());
}
};
view.setTag(R.id.bound_observable, new Pair<>(observableString, watcher));
view.addTextChangedListener(watcher);
}
String newValue = observableString.get();
if (!view.getText().toString().equals(newValue)) {
view.setText(newValue, false);
}
}
@BindingAdapter("binding")
public static void bindTextInputEditText(TextInputEditText view, final BindableString bindableString) {
Pair<BindableString, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);

View File

@@ -385,6 +385,18 @@ public class MtbColt extends EntityBase {
return dataVers;
}
public Date getDataVersD() {
return UtilityDate.recognizeDateWithExceptionHandler(getDataVers());
}
public String getTimeVers() {
Date dataColloD = getDataVersD();
if(dataColloD != null){
return UtilityDate.formatDate(dataColloD, UtilityDate.COMMONS_DATE_FORMATS.TIME);
} else return null;
}
public MtbColt setDataVers(String dataVers) {
this.dataVers = dataVers;

View File

@@ -9,12 +9,15 @@ import android.view.ViewGroup;
import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableField;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.MutableLiveData;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.annimon.stream.Stream;
import com.google.gson.reflect.TypeToken;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -22,6 +25,7 @@ import javax.inject.Inject;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal;
import it.integry.integrywmsnative.core.expansion.BaseFragment;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.DtbOrdSteps;
@@ -60,6 +64,12 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
private RunnableArgs<MtbColt> onMtbColtClicked;
public ObservableField<BigDecimal> sumLUNumber = new ObservableField<>(BigDecimal.ZERO);
public ObservableField<BigDecimal> sumColliNumber = new ObservableField<>(BigDecimal.ZERO);
public ObservableField<BigDecimal> sumNetKG = new ObservableField<>(BigDecimal.ZERO);
public ObservableField<BigDecimal> sumGrossKG = new ObservableField<>(BigDecimal.ZERO);
public ProdRientroMerceOrderDetailFragment() {
// Required empty public constructor
}
@@ -124,6 +134,29 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
}
private void refreshList(List<MtbColt> mtbColts) {
if(mtbColts != null) {
sumLUNumber.set(new BigDecimal(mtbColts.size()));
AtomicBigDecimal sumColli = new AtomicBigDecimal(BigDecimal.ZERO);
AtomicBigDecimal sumNet = new AtomicBigDecimal(BigDecimal.ZERO);
AtomicBigDecimal sumGross = new AtomicBigDecimal(BigDecimal.ZERO);
Stream.of(mtbColts)
.forEach(x -> Stream.of(x.getMtbColr()).forEach(y -> {
sumColli.getAndAdd(y.getNumCnf());
sumNet.getAndAdd(y.getPesoNettoKg());
sumGross.getAndAdd(y.getPesoLordoKg());
}));
sumColliNumber.set(sumColli.get());
sumGrossKG.set(sumGross.get());
sumNetKG.set(sumNet.get());
} else {
sumLUNumber.set(BigDecimal.ZERO);
sumColliNumber.set(BigDecimal.ZERO);
sumGrossKG.set(BigDecimal.ZERO);
sumNetKG.set(BigDecimal.ZERO);
}
mAdapter.updateDataset(mtbColts);
}

View File

@@ -46,7 +46,9 @@ public class ProdRientroMerceOrderDetailViewModel {
this.mProdRientroMerceOrderDetailRESTConsumer.getMtbColtsOfOrder(currentOrder, mtbColts -> {
for (MtbColt mtbColt : mtbColts) {
mtbColt.getMtbColr().get(0).setDescrizione(currentOrder.getDescrizioneProd());
mtbColt.getMtbColr().get(0)
.setDescrizione(currentOrder.getDescrizioneProd())
.setUntMis(currentOrder.getUntOrd());
}
this.mtbColtsOfOrder.postValue(mtbColts);
@@ -66,7 +68,7 @@ public class ProdRientroMerceOrderDetailViewModel {
.setQtaCnf(pickedQuantityDTO.getPesoCollo())
.setQtaCol(pickedQuantityDTO.getPesoNetto())
.setCodJcom(currentOrder.getCodJcom())
.setCodJfas(pickedQuantityDTO.getJtbFasi().getCodJfas())
.setCodJfas(pickedQuantityDTO.getJtbFasi() != null ? pickedQuantityDTO.getJtbFasi().getCodJfas() : null)
.setCodMart(currentOrder.getCodProd())
.setCodTcol(pickedQuantityDTO.getMtbTCol().getCodTcol())
.setDataCollo(new Date())

View File

@@ -106,7 +106,7 @@ public class ProdRientroMerceOrderListFragment extends Fragment {
ComparatorCompat<OrdineLavorazioneDTO> comparator = ComparatorCompat
.comparing(OrdineLavorazioneDTO::getCodJfas)
.thenComparing(ComparatorCompat.comparing(ordineLavorazioneDTO -> ordineLavorazioneDTO.getDataInizProd() != null ? ordineLavorazioneDTO.getDataInizProd() : "zzzzzzzz"))
.thenComparing(ComparatorCompat.comparing(ordineLavorazioneDTO -> ordineLavorazioneDTO.getDataOrd() != null ? ordineLavorazioneDTO.getDataOrd() : "zzzzzzzz")).reversed()
.thenComparing(ComparatorCompat.comparing(OrdineLavorazioneDTO::getNumOrd));
if(dataList == null) return new ArrayList<>();

View File

@@ -9,6 +9,7 @@ import android.text.SpannableString;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.AdapterView;
import androidx.annotation.NonNull;
@@ -104,6 +105,7 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NORMAL, R.style.AppTheme_NewMaterial_Dialog_FullscreenDialog);
}
@@ -131,6 +133,7 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
getDialog().setCanceledOnTouchOutside(false);
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
return mBindings.getRoot();
}
@@ -333,6 +336,7 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
this.mViewModel.getLineeProd().observe(getViewLifecycleOwner(), lineeProd -> {
this.enabledLineeProd.set(lineeProd != null && lineeProd.size() > 0);
this.mViewModel.setLineeProdRequired(lineeProd != null && lineeProd.size() > 0);
lineeProdArrayAdapter = new DialogInputLULineeProdAdapter(getActivity(), R.layout.array_adapter_single_item, lineeProd);
mBindings.filledExposedDropdownCodJfas.setAdapter(lineeProdArrayAdapter);

View File

@@ -46,6 +46,7 @@ public class DialogInputLUProdViewModel {
private MtbTCol internalTipoPed;
private JtbFasi internalLineaProd;
private boolean isLineeProdRequired;
private Listener mListener;
@@ -218,6 +219,11 @@ public class DialogInputLUProdViewModel {
return UtilityBigDecimal.multiply(this.internalNumCnf, this.internalPesoCollo.add(internalTaraCol)).add(taraPed);
}
public DialogInputLUProdViewModel setLineeProdRequired(boolean lineeProdRequired) {
isLineeProdRequired = lineeProdRequired;
return this;
}
public boolean validate() {
if (this.internalNumCnf == null || UtilityBigDecimal.equalsOrLowerThan(this.internalNumCnf, BigDecimal.ZERO)) {
this.mListener.onError(new InvalidNumCnfQuantityException());
@@ -225,7 +231,7 @@ public class DialogInputLUProdViewModel {
} else if (this.internalPesoLordo == null || UtilityBigDecimal.equalsOrLowerThan(this.internalPesoLordo, BigDecimal.ZERO)) {
this.mListener.onError(new InvalidGrossWeightQuantityException());
return false;
} else if(this.internalLineaProd == null) {
} else if(this.internalLineaProd == null && isLineeProdRequired) {
this.mListener.onError(new InvalidProductionLineException());
return false;
}