Migliorie a Rientro Merce
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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<>();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user