Merge branch 'develop' into feature/Refactoring_Spedizione

# Conflicts:
#	app/build.gradle
This commit is contained in:
Giuseppe Scorrano 2020-05-28 12:09:18 +02:00
commit 2e1d4d6325
3 changed files with 37 additions and 63 deletions

View File

@ -7,7 +7,7 @@ apply plugin: 'com.google.gms.google-services'
android { android {
def appVersionCode = 137 def appVersionCode = 142
def appVersionName = '1.13.0' def appVersionName = '1.13.0'
signingConfigs { signingConfigs {

View File

@ -13,17 +13,11 @@ public class CheckableOrdineLavoro {
private ChooseOrdsLavFromListItemModel item; private ChooseOrdsLavFromListItemModel item;
private BindableBoolean checked = new BindableBoolean(false); private BindableBoolean checked = new BindableBoolean(false);
private BindableBoolean hidden = new BindableBoolean(false);
private String testata; private String testata;
public CheckableOrdineLavoro(ChooseOrdsLavFromListItemModel item) { public CheckableOrdineLavoro(ChooseOrdsLavFromListItemModel item) {
this.item = item; this.item = item;
this.item.getHidden().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
@Override
public void onPropertyChanged(Observable sender, int propertyId) {
hidden.set(item.isHidden());
}
});
} }
public ChooseOrdsLavFromListItemModel getItem() { public ChooseOrdsLavFromListItemModel getItem() {
@ -33,13 +27,6 @@ public class CheckableOrdineLavoro {
public CheckableOrdineLavoro setItem(ChooseOrdsLavFromListItemModel item) { public CheckableOrdineLavoro setItem(ChooseOrdsLavFromListItemModel item) {
this.item = item; this.item = item;
this.item.getHidden().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
@Override
public void onPropertyChanged(Observable sender, int propertyId) {
hidden.set(item.isHidden());
}
});
return this; return this;
} }
@ -52,19 +39,6 @@ public class CheckableOrdineLavoro {
return this; return this;
} }
public BindableBoolean getHidden() {
return hidden;
}
public boolean isHidden() {
return hidden.get();
}
public CheckableOrdineLavoro setHidden(BindableBoolean hidden) {
this.hidden = hidden;
return this;
}
public BindableFloat getQtaCol() { public BindableFloat getQtaCol() {
return item.getOrdineLav().getQtaColVersamento(); return item.getOrdineLav().getQtaColVersamento();
} }

View File

@ -1,6 +1,8 @@
package it.integry.integrywmsnative.gest.prod_versamento_materiale.core; package it.integry.integrywmsnative.gest.prod_versamento_materiale.core;
import android.content.Context; import android.content.Context;
import android.text.Html;
import android.text.SpannableString;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -16,6 +18,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.di.BindableBoolean;
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.model.CheckableOrdineLavoro; import it.integry.integrywmsnative.core.model.CheckableOrdineLavoro;
@ -28,6 +31,7 @@ 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.FragmentChooseOrdsLavFromListItemModelBinding; import it.integry.integrywmsnative.databinding.FragmentChooseOrdsLavFromListItemModelBinding;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrdsLavFromListAdapter.ViewHolder> { public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrdsLavFromListAdapter.ViewHolder> {
@ -47,40 +51,18 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
mDataset = Stream.of(myDataset) mDataset = Stream.of(myDataset)
.withoutNulls() .withoutNulls()
.map(CheckableOrdineLavoro::new).toList(); .map(CheckableOrdineLavoro::new).toList();
for (int i = 0; i < mDataset.size(); i++) {
final CheckableOrdineLavoro itemModel = mDataset.get(i);
OrdineLavorazioneDTO ordine = itemModel.getItem().getOrdineLav();
itemModel.setTestata(UtilityString.formatHtmlStringFromResId(R.string.ord_testata, String.valueOf(ordine.getNumOrd()), UtilityDate.formatDate(ordine.getDateOrd(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)).toString());
mDatasetPositions.put(itemModel, i);
itemModel.getHidden().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
@Override
public void onPropertyChanged(Observable sender, int propertyId) {
onItemHidden(itemModel);
}
});
itemModel.getChecked().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
@Override
public void onPropertyChanged(Observable sender, int propertyId) {
onItemChecked(itemModel);
}
});
}
} }
} }
private void onItemHidden(CheckableOrdineLavoro itemModel) {
if (itemModel.isHidden()) {
mDataset.remove(itemModel);
} else {
mDataset.add(mDatasetPositions.get(itemModel), itemModel);
}
calculateMtbColtShare();
notifyDataSetChanged();
}
private void onItemChecked(CheckableOrdineLavoro itemModel) { private void onItemChecked(CheckableOrdineLavoro itemModel) {
if (itemModel.isChecked() && itemModel.getItem().getOrdineLav().getHrNum() <= 0){
DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(Html.fromHtml("Nessuna risorsa umana registrata per l'ordine selezionato! <br> Per una corretta suddivisione delle quantità registra le risorse.")),
null, () -> {
itemModel.getChecked().set(false);
}).show();
return;
}
if (!itemModel.isChecked()) { if (!itemModel.isChecked()) {
itemModel.setQtaCol(0); itemModel.setQtaCol(0);
itemModel.setNumCnf(0); itemModel.setNumCnf(0);
@ -140,7 +122,7 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
} }
} }
public static class ViewHolder extends RecyclerView.ViewHolder { public class ViewHolder extends RecyclerView.ViewHolder {
protected FragmentChooseOrdsLavFromListItemModelBinding mViewDataBinding; protected FragmentChooseOrdsLavFromListItemModelBinding mViewDataBinding;
@ -149,10 +131,21 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
mViewDataBinding = v; mViewDataBinding = v;
} }
public void bind(CheckableOrdineLavoro checkableOrdineLavoro, MtbColr mtbColr) { public void bind(CheckableOrdineLavoro checkableOrdineLavoro, MtbColr mtbColr) throws ParseException, TimeNotRecognizedException, DateNotRecognizedException {
mViewDataBinding.setCheckableOrdineLav(checkableOrdineLavoro); mViewDataBinding.setCheckableOrdineLav(checkableOrdineLavoro);
mViewDataBinding.setMtbColr(mtbColr); mViewDataBinding.setMtbColr(mtbColr);
mViewDataBinding.executePendingBindings();
OrdineLavorazioneDTO ordine = checkableOrdineLavoro.getItem().getOrdineLav();
checkableOrdineLavoro.setTestata(UtilityString.formatHtmlStringFromResId(R.string.ord_testata, String.valueOf(ordine.getNumOrd()), UtilityDate.formatDate(ordine.getDateOrd(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)).toString());
checkableOrdineLavoro.getChecked().resetOnPropertyChangedCallback();
checkableOrdineLavoro.getChecked().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
@Override
public void onPropertyChanged(Observable sender, int propertyId) {
onItemChecked(checkableOrdineLavoro);
}
});
if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())) { if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())) {
String text = UtilityNumber.decimalToString(checkableOrdineLavoro.getQtaCol().get()); String text = UtilityNumber.decimalToString(checkableOrdineLavoro.getQtaCol().get());
@ -166,7 +159,6 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(checkableOrdineLavoro.getNumCnf().get()) + "\n" + UtilityResources.getString(R.string.unt_mis_col)); mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(checkableOrdineLavoro.getNumCnf().get()) + "\n" + UtilityResources.getString(R.string.unt_mis_col));
} }
mViewDataBinding.setMtbColr(mtbColr);
mViewDataBinding.executePendingBindings(); mViewDataBinding.executePendingBindings();
} }
} }
@ -182,7 +174,15 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
@Override @Override
public void onBindViewHolder(ChooseOrdsLavFromListAdapter.ViewHolder holder, int position) { public void onBindViewHolder(ChooseOrdsLavFromListAdapter.ViewHolder holder, int position) {
CheckableOrdineLavoro item = mDataset.get(position); CheckableOrdineLavoro item = mDataset.get(position);
holder.bind(item, mMtbColr); try {
holder.bind(item, mMtbColr);
} catch (ParseException e) {
e.printStackTrace();
} catch (TimeNotRecognizedException e) {
e.printStackTrace();
} catch (DateNotRecognizedException e) {
e.printStackTrace();
}
} }