Finish v1_10_15(118)

This commit is contained in:
Valerio Castellana 2020-01-03 15:22:30 +01:00
commit e4ed30d359
47 changed files with 1980 additions and 367 deletions

View File

@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
android {
def appVersionCode = 114
def appVersionName = '1.10.11'
def appVersionCode = 118
def appVersionName = '1.10.15'
signingConfigs {
release {

View File

@ -0,0 +1,99 @@
package it.integry.integrywmsnative.core.model;
import androidx.databinding.Observable;
import java.util.List;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.di.BindableFloat;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ChooseOrdsLavFromListItemModel;
public class CheckableOrdineLavoro {
private ChooseOrdsLavFromListItemModel item;
private BindableBoolean checked = new BindableBoolean(false);
private BindableBoolean hidden = new BindableBoolean(false);
private String testata;
public CheckableOrdineLavoro(ChooseOrdsLavFromListItemModel 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() {
return item;
}
public CheckableOrdineLavoro setItem(ChooseOrdsLavFromListItemModel 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;
}
public BindableBoolean getChecked() {
return checked;
}
public CheckableOrdineLavoro setChecked(BindableBoolean checked) {
this.checked = checked;
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() {
return item.getOrdineLav().getQtaColVersamento();
}
public void setQtaCol(float qtaCnf) {
this.item.getOrdineLav().setQtaColVersamento(qtaCnf);
}
public void toggleCheck() {
this.checked.set(!this.checked.get());
}
public boolean isChecked() {
return checked.get();
}
public String getTestata() {
return testata;
}
public void setTestata(String testata) {
this.testata = testata;
}
public BindableFloat getNumCnf() {
return item.getOrdineLav().getNumCnfVersamento();
}
public void setNumCnf(float numCnf) {
this.item.getOrdineLav().setNumCnfVersamento(numCnf);
}
}

View File

@ -13,6 +13,7 @@ import com.google.gson.reflect.TypeToken;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
@ -37,7 +38,7 @@ 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 it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@ -232,6 +233,81 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
});
}
public static void createColliScaricoDaOrdineLavorazione(MtbColt sourceMtbColt, MtbDepoPosizione posizione, List<OrdineLavorazioneDTO> ordini, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
MtbColt newMtbColt = new MtbColt()
.initDefaultFields()
.setCodAnag(null)
.setGestione(GestioneEnum.LAVORAZIONE)
.setSegno(-1)
.setCodTcol(sourceMtbColt.getCodTcol())
.setPesoKg(sourceMtbColt.getPesoKg())
.setPesoNettoKg(sourceMtbColt.getPesoNettoKg())
.setLarghezzaCm(sourceMtbColt.getLarghezzaCm())
.setLunghezzaCm(sourceMtbColt.getLunghezzaCm())
.setAltezzaCm(sourceMtbColt.getAltezzaCm())
.setCodMdep(sourceMtbColt.getCodMdep())
.setDataVers(UtilityDate.getDateInstance())
.setOraFinePrep(UtilityDate.getDateInstance());
newMtbColt.setOperation(CommonModelConsts.OPERATION.INSERT);
if (posizione != null) {
newMtbColt.setPosizione(posizione.getPosizione());
if (posizione.isFlagLineaProduzione()) {
newMtbColt.setCodJfas(posizione.getPosizione());
}
}
if (sourceMtbColt.getMtbColr().size() != 1) {
onFailed.run(new Exception());
return;
}
MtbColr original = sourceMtbColt.getMtbColr().get(0);
MtbColr mtbColrClone = new MtbColr();
mtbColrClone
.setNumCollo(null)
.setDataCollo(null)
.setRiga(null)
.setGestione(GestioneEnum.LAVORAZIONE)
.setDataColloRif(sourceMtbColt.getDataColloD())
.setNumColloRif(sourceMtbColt.getNumCollo())
.setGestioneRif(sourceMtbColt.getGestione())
.setSerColloRif(sourceMtbColt.getSerCollo())
.setCodMart(original.getCodMart())
.setCodCol(original.getCodCol())
.setQtaCnf(original.getQtaCnf())
.setCodTagl(original.getCodTagl())
.setPartitaMag(original.getPartitaMag())
.setOperation(CommonModelConsts.OPERATION.INSERT);
for (OrdineLavorazioneDTO ordLav : ordini) {
MtbColr ordColr = (MtbColr) mtbColrClone.clone();
ordColr.setQtaCol(ordLav.getQtaColVersamento().getBigDecimal());
ordColr.setNumCnf(ordLav.getNumCnfVersamento().getBigDecimal());
ordColr.setDataOrd(ordLav.getDataOrdProd())
.setNumOrd(ordLav.getNumOrdProd())
.setRigaOrd(ordLav.getRigaOrdProd());
newMtbColt.getMtbColr().add(ordColr);
}
saveCollo(newMtbColt, new ISimpleOperationCallback<MtbColt>() {
@Override
public void onSuccess(MtbColt value) {
if (onComplete != null) onComplete.run(value);
}
@Override
public void onFailed(Exception ex) {
if (onFailed != null) onFailed.run(ex);
}
});
}
public static void createColloFromEtichettaAnonima(BarcodeScanDTO barcodeScanDTO, GestioneEnum gestione, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
createColloFromEtichettaAnonima(barcodeScanDTO.getStringValue(), gestione, onComplete, onFailed);
@ -385,7 +461,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
}, onFailed);
}
@Override
@ -403,8 +478,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
}
private static void cyclicGetMultipleByTestate(@NotNull Iterator<MtbColt> sourceMtbColts, boolean onlyResiduo, ArrayList<MtbColt> resultMtbColt, Runnable onComplete, RunnableArgs<Exception> onAbort) {
if (sourceMtbColts.hasNext()) {
getByTestata(sourceMtbColts.next(), onlyResiduo, false, mtbColt -> {
@ -454,8 +527,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
}
public static void changePosizione(MtbColt testata, MtbDepoPosizione posizione, Runnable onComplete, RunnableArgs<Exception> onFailed) {
testata.setOperation(CommonModelConsts.OPERATION.UPDATE);
@ -478,7 +549,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
}
public static void deleteRiga(MtbColr mtbColrToDelete, Runnable onComplete, RunnableArgs<Exception> onFailed) {
MtbColr newMtbColr = new MtbColr();
@ -524,10 +594,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
}
public static void updateDataFine(Context context, Dialog progress, MtbColt mtbColt, Runnable onComplete) {
MtbColt cloneMtbColt = (MtbColt) mtbColt.clone();
@ -544,7 +610,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
}
public static void doesColloContainsAnyRow(MtbColt mtbColt, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
HashMap<String, Object> params = new HashMap<>();
@ -558,12 +623,12 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
String query = "SELECT COUNT(*) as value FROM mtb_colr " +
"WHERE " + whereCond;
Type typeOfObjectsList = new TypeToken<ArrayList<SingleValueDTO<Integer>>>() {}.getType();
Type typeOfObjectsList = new TypeToken<ArrayList<SingleValueDTO<Integer>>>() {
}.getType();
SystemRESTConsumer.<ArrayList<SingleValueDTO<Integer>>>processSql(query, typeOfObjectsList, data -> {
onComplete.run(data.get(0).getValue() > 0);
}, onFailed);
}
}

View File

@ -0,0 +1,31 @@
package it.integry.integrywmsnative.core.rest.consumers;
import java.util.List;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class MesRESTConsumer extends _BaseRESTConsumer {
public static void getOrdiniLavorazioneMateriale(String codJfas, String idMateriale, RunnableArgs<List<OrdineLavorazioneDTO>> onComplete, RunnableArgs<Exception> onFailed){
MesRESTConsumerService mesRESTConsumerService = RESTBuilder.getService(MesRESTConsumerService.class);
mesRESTConsumerService.getOrdiniLavorazioneMateriale(codJfas,idMateriale).enqueue(new Callback<ServiceRESTResponse<List<OrdineLavorazioneDTO>>>() {
@Override
public void onResponse(Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> call, Response<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> response) {
analyzeAnswer(response, "getAvailablePosizioni", (m) -> onComplete.run(response.body().getDto()), onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> call, Throwable t) {
onFailed.run(new Exception(t));
}
});
}
}

View File

@ -0,0 +1,17 @@
package it.integry.integrywmsnative.core.rest.consumers;
import java.util.List;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface MesRESTConsumerService {
@GET("mes/getOrdiniLavorazioneMateriale")
Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> getOrdiniLavorazioneMateriale(@Query("codJfas") String codJfas, @Query("idMateriale") String idMateriale);
}

View File

@ -27,6 +27,7 @@ public class DBSettingsModel {
private boolean flagCanAddExtraQuantitySpedizione;
private boolean flagEnableCheckDepositoSpedizione;
private boolean flagUseNewPickingListSpedizione;
private boolean flagVersamentoDirettoProduzione;
private boolean flagAskPesoColloSpedizione;
private boolean flagForceAllToColli;
@ -180,4 +181,13 @@ public class DBSettingsModel {
this.flagUseNewPickingListSpedizione = flagUseNewPickingListSpedizione;
return this;
}
public boolean isFlagVersamentoDirettoProduzione() {
return flagVersamentoDirettoProduzione;
}
public DBSettingsModel setFlagVersamentoDirettoProduzione(boolean flagVersamentoDirettoProduzione) {
this.flagVersamentoDirettoProduzione = flagVersamentoDirettoProduzione;
return this;
}
}

View File

@ -230,6 +230,10 @@ public class SettingsManager {
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("FLAG_USE_NEW_PICKING_LIST"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("PRODUZIONE")
.setKeySection("FLAG_VERSAMENTO_DIRETTO"));
GestSetupRESTConsumer.getValues(stbGestSetupList, list -> {
@ -246,6 +250,7 @@ public class SettingsManager {
dbSettingsModelIstance.setFlagForceAllToColli(getValueFromList(list, "FLAG_FORCE_ALL_TO_COLLI", Boolean.class));
dbSettingsModelIstance.setFlagAskPesoColloSpedizione(getValueFromList(list, "FLAG_ASK_PESO_COLLO", Boolean.class));
dbSettingsModelIstance.setFlagUseNewPickingListSpedizione(getValueFromList(list, "FLAG_USE_NEW_PICKING_LIST", Boolean.class));
dbSettingsModelIstance.setFlagVersamentoDirettoProduzione(getValueFromList(list, "FLAG_VERSAMENTO_DIRETTO", Boolean.class));
if(onComplete != null) onComplete.run();
}, onFailed);

View File

@ -1,9 +1,38 @@
package it.integry.integrywmsnative.core.utility;
import java.util.HashMap;
import java.util.List;
public class UtilityQuery {
public static String concatFieldListInWhereCond(List<HashMap<String, Object>> inputData) {
StringBuilder sbWhereCond = new StringBuilder();
for(int i = 0; i < inputData.size(); i++) {
HashMap<String, Object> singleInputData = inputData.get(i);
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(")");
if(i < inputData.size() - 1) sbWhereCond.append(" OR ");
}
return sbWhereCond.toString();
}
public static String concatFieldsInWhereCond(HashMap<String, Object> inputData) {
StringBuilder sbWhereCond = new StringBuilder();

View File

@ -1,5 +1,11 @@
package it.integry.integrywmsnative.core.utility;
import android.text.Html;
import android.text.Spanned;
import androidx.annotation.IdRes;
import androidx.annotation.StringRes;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -58,4 +64,12 @@ public class UtilityString {
return value;
}
public static Spanned formatHtmlString(String format, String... params){
return Html.fromHtml(String.format(format,params));
}
public static Spanned formatHtmlStringFromResId(@StringRes int stringId, String... params){
return Html.fromHtml(String.format(UtilityResources.getString(stringId),params));
}
}

View File

@ -11,7 +11,9 @@ import android.view.ViewGroup;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.ListaContenutoBancaleListModelBinding;
@ -36,14 +38,17 @@ public class ContenutoBancaleListAdapter extends RecyclerView.Adapter<ContenutoB
mViewDataBinding.setMtbColr(mtbColr);
//Setting qty with unt_mis
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissa())){
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
if(mtbColr.getMtbAart() != null) {
if (mtbColr.getMtbAart().isFlagQtaCnfFissa()) {
mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getQtaCol()) + (!UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : ""));
} else {
mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + mContext.getString(R.string.unt_mis_col));
text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : "";
}
mViewDataBinding.qtaTextview.setText(text);
} else {
mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getQtaCol()));
mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col));
}
mViewDataBinding.executePendingBindings();

View File

@ -11,6 +11,10 @@ import androidx.recyclerview.widget.RecyclerView;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.ListaPickingLiberoListModelBinding;
public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLiberoListAdapter.ViewHolder>{
@ -20,8 +24,8 @@ public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLibero
private IRecyclerItemClicked<MtbColr> mOnItemClickListener;
public static class ViewHolder extends RecyclerView.ViewHolder {
protected ListaPickingLiberoListModelBinding mViewDataBinding;
public class ViewHolder extends RecyclerView.ViewHolder {
private ListaPickingLiberoListModelBinding mViewDataBinding;
public ViewHolder(ListaPickingLiberoListModelBinding v) {
@ -30,6 +34,20 @@ public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLibero
}
public void bind(MtbColr mtbColr) {
//Setting qty with unt_mis
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissa())){
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
if(mtbColr.getMtbAart() != null) {
text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : "";
}
mViewDataBinding.qtaTextview.setText(text);
} else {
mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col));
}
mViewDataBinding.setMtbColr(mtbColr);
mViewDataBinding.executePendingBindings();
}

View File

@ -727,7 +727,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
.setRiga(null)
.setDatetimeRow(UtilityDate.getDateInstance())
.setQtaCol(mtbColrToDeleteClone.getQtaCol().multiply(new BigDecimal(-1)))
.setOperation(CommonModelConsts.OPERATION.DELETE);
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE );
MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone();
mtbColtClone.setMtbColr(new ObservableArrayList<>());

View File

@ -21,8 +21,10 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.DtbDocr;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemBinding;
import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemHeaderBinding;
@ -122,24 +124,37 @@ public class PickingResiListAdapter extends SectionedRecyclerViewAdapter<Picking
public void onBindItemViewHolder(final SingleItemViewHolder holder, final int position) {
final WithdrawableDtbDocr dtbDocr = this.mDataset.get(position);
BigDecimal qtaEvasa = BigDecimal.ZERO;
BigDecimal qtaColEvasa = BigDecimal.ZERO;
BigDecimal numCnfColEvasa = BigDecimal.ZERO;
for(MtbColr mtbColr : dtbDocr.getWithdrawRows()) {
qtaEvasa = qtaEvasa.add(mtbColr.getQtaCol());
qtaColEvasa = qtaColEvasa.add(mtbColr.getQtaCol());
numCnfColEvasa = numCnfColEvasa.add(mtbColr.getNumCnf());
}
Float qtaDaEvadere = UtilityNumber.decimalToFloat(dtbDocr.getQtaDoc().subtract(qtaEvasa));
Float qtaDaEvadere = UtilityNumber.decimalToFloat(dtbDocr.getQtaDoc().subtract(qtaColEvasa));
holder.mBinding.badge1.setText(dtbDocr.getCodMart());
holder.mBinding.qtaEvasa.setText(UtilityNumber.decimalToString(qtaEvasa));
holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(dtbDocr.getQtaDoc()));
holder.mBinding.descrizione.setText(UtilityString.isNullOrEmpty(dtbDocr.getDescrizioneEstesa()) ? dtbDocr.getDescrizioneEstesa() : dtbDocr.getDescrizione());
//Setting qty with unt_mis
if(!SettingsManager.iDB().isFlagForceAllToColli() && (dtbDocr.getMtbAart() == null || dtbDocr.getMtbAart().isFlagQtaCnfFissa())){
holder.mBinding.qtaEvasa.setText(UtilityNumber.decimalToString(qtaColEvasa));
holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(dtbDocr.getQtaDoc()));
holder.mBinding.untMis.setText(dtbDocr.getUntDoc());
} else {
holder.mBinding.qtaEvasa.setText(UtilityNumber.decimalToString(numCnfColEvasa));
holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(dtbDocr.getNumCnf()));
holder.mBinding.untMis.setText(UtilityResources.getString(R.string.unt_mis_col));
}
if (qtaDaEvadere <= 0 ) {
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
} else if (qtaDaEvadere > 0 && qtaEvasa.floatValue() > 0) {
} else if (qtaDaEvadere > 0 && qtaColEvasa.floatValue() > 0) {
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
} else {
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.full_white));

View File

@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.prod_recupero_materiale.core;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.databinding.DataBindingUtil;
@ -27,6 +28,7 @@ public class HistoryULsListAdapter extends SectionedRecyclerViewAdapter<HistoryU
private List<HistoryVersamentoProdUL> mOriginalDataset;
private List<HistoryVersamentoProdUL> mDataset;
private View mEmptyView;
private RunnableArgs<HistoryVersamentoProdUL> mOnItemClicked;
@ -54,9 +56,10 @@ public class HistoryULsListAdapter extends SectionedRecyclerViewAdapter<HistoryU
public HistoryULsListAdapter(Context context, List<HistoryVersamentoProdUL> myDataset) {
public HistoryULsListAdapter(Context context, List<HistoryVersamentoProdUL> myDataset, View emptyView) {
mContext = context;
mOriginalDataset = myDataset;
mEmptyView = emptyView;
mDataset = orderItems(myDataset);
}
@ -68,6 +71,8 @@ public class HistoryULsListAdapter extends SectionedRecyclerViewAdapter<HistoryU
mDataset.clear();
mDataset.addAll(orderItems(updatedDataset));
notifyDataChanged();
mEmptyView.setVisibility(mDataset.size() > 0 ? View.GONE : View.VISIBLE);
}

View File

@ -61,6 +61,7 @@ public class ProdRecuperoMaterialeHelper {
"LEFT OUTER JOIN jtb_fasi ON mtb_colt.cod_jfas = jtb_fasi.cod_jfas " +
"WHERE jtb_fasi.cod_jfas IS NOT NULL " +
"AND segno = -1 " +
"AND mtb_colr.data_collo > DATEADD(DAY, -1, GETDATE()) " +
"GROUP BY jtb_fasi.cod_jfas, " +
"jtb_fasi.descrizione, " +
"mtb_colr.gestione, " +

View File

@ -87,7 +87,7 @@ public class ProdRecuperoMaterialeViewModel {
private void initRecyclerView() {
mAdapter = new HistoryULsListAdapter(mContext, new ArrayList<>());
mAdapter = new HistoryULsListAdapter(mContext, new ArrayList<>(), mBinding.emptyView);
mAdapter.setOnItemClicked(data -> this.dispatchItem(data, null, null));
mBinding.prodRecuperoMaterialeMainList.setLayoutManager(new LinearLayoutManager(mContext));

View File

@ -0,0 +1,194 @@
package it.integry.integrywmsnative.gest.prod_versamento_materiale.core;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.Observable;
import androidx.recyclerview.widget.RecyclerView;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.HashMap;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.exception.DateNotRecognizedException;
import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException;
import it.integry.integrywmsnative.core.model.CheckableOrdineLavoro;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentChooseOrdsLavFromListItemModelBinding;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrdsLavFromListAdapter.ViewHolder> {
protected Context mContext;
private MtbColt mMtbColt;
private MtbColr mMtbColr;
private List<CheckableOrdineLavoro> mDataset;
private HashMap<CheckableOrdineLavoro, Integer> mDatasetPositions = new HashMap<>();
public ChooseOrdsLavFromListAdapter(Context context, List<ChooseOrdsLavFromListItemModel> myDataset, MtbColt mtbColt) throws ParseException, TimeNotRecognizedException, DateNotRecognizedException {
mContext = context;
mMtbColt = mtbColt;
mMtbColr = mtbColt.getMtbColr().get(0);
if (myDataset != null) {
mDataset = Stream.of(myDataset)
.withoutNulls()
.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) {
if (!itemModel.isChecked()) {
itemModel.setQtaCol(0);
itemModel.setNumCnf(0);
}
calculateMtbColtShare();
notifyDataSetChanged();
}
private void calculateMtbColtShare() {
MtbColr mtbColr = mMtbColt.getMtbColr().get(0);
BigDecimal residuoCol = mtbColr.getQtaCol();
BigDecimal residuoCnf = mtbColr.getNumCnf();
BigDecimal offset = BigDecimal.ZERO.add(residuoCol);
mtbColr.setQtaCnf(mtbColr.getQtaCol().divide(mtbColr.getNumCnf(),5,BigDecimal.ROUND_HALF_UP));
List<CheckableOrdineLavoro> ordiniSelezionati = getSelectedData();
int totalHr = Stream.of(ordiniSelezionati).mapToInt(x -> x.getItem().getOrdineLav().getHrNum()).sum();
for (CheckableOrdineLavoro c : ordiniSelezionati) {
BigDecimal usedCol, usedCnf;
float perc = (c.getItem().getOrdineLav().getHrNum() * 100) / totalHr;
if (SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.getMtbAart() != null && !mtbColr.getMtbAart().isFlagQtaCnfFissa())) {
usedCnf = residuoCnf.multiply(BigDecimal.valueOf(perc)).divide(BigDecimal.valueOf(100)).setScale(0, BigDecimal.ROUND_CEILING);
usedCol = usedCnf.multiply(mtbColr.getQtaCnf()).setScale(0,BigDecimal.ROUND_FLOOR);
} else {
usedCol = residuoCol.multiply(BigDecimal.valueOf(perc)).divide(BigDecimal.valueOf(100)).setScale(0, BigDecimal.ROUND_FLOOR);
usedCnf = usedCol.divide(mtbColr.getQtaCnf()).setScale(0, BigDecimal.ROUND_CEILING);
}
offset = offset.subtract(usedCol);
c.setQtaCol(usedCol.floatValue());
c.setNumCnf(usedCnf.floatValue());
}
if (ordiniSelezionati.size() > 0 && offset.floatValue() != 0) {
CheckableOrdineLavoro majorOrder = Stream.of(ordiniSelezionati).max((o1, o2) -> Integer.compare(o1.getItem().getOrdineLav().getHrNum(), o2.getItem().getOrdineLav().getHrNum())).get();
if (majorOrder == null) {
majorOrder = ordiniSelezionati.get(0);
}
majorOrder.setQtaCol(majorOrder.getQtaCol().get() + offset.floatValue());
}
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected FragmentChooseOrdsLavFromListItemModelBinding mViewDataBinding;
public ViewHolder(FragmentChooseOrdsLavFromListItemModelBinding v) {
super(v.getRoot());
mViewDataBinding = v;
}
public void bind(CheckableOrdineLavoro checkableOrdineLavoro, MtbColr mtbColr) {
mViewDataBinding.setCheckableOrdineLav(checkableOrdineLavoro);
mViewDataBinding.setMtbColr(mtbColr);
mViewDataBinding.executePendingBindings();
if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissa())) {
String text = UtilityNumber.decimalToString(checkableOrdineLavoro.getQtaCol().get());
if (mtbColr.getMtbAart() != null) {
text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : "";
}
mViewDataBinding.qtaTextview.setText(text);
} else {
mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(checkableOrdineLavoro.getNumCnf().get()) + "\n" + UtilityResources.getString(R.string.unt_mis_col));
}
mViewDataBinding.setMtbColr(mtbColr);
mViewDataBinding.executePendingBindings();
}
}
@Override
public ChooseOrdsLavFromListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// create a new view
FragmentChooseOrdsLavFromListItemModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.fragment_choose_ords_lav_from_list__item_model, parent, false);
return new ViewHolder(viewDataBinding);
}
@Override
public void onBindViewHolder(ChooseOrdsLavFromListAdapter.ViewHolder holder, int position) {
CheckableOrdineLavoro item = mDataset.get(position);
holder.bind(item, mMtbColr);
}
@Override
public void onViewRecycled(ChooseOrdsLavFromListAdapter.ViewHolder holder) {
super.onViewRecycled(holder);
}
@Override
public int getItemCount() {
return mDataset.size();
}
public List<OrdineLavorazioneDTO> getSelectedItems() {
return Stream.of(mDataset)
.filter(y -> y.getChecked().get())
.map(x -> x.getItem().getOrdineLav()).toList();
}
public List<CheckableOrdineLavoro> getSelectedData() {
return Stream.of(mDataset)
.filter(y -> y.getChecked().get())
.map(x -> x).toList();
}
}

View File

@ -0,0 +1,32 @@
package it.integry.integrywmsnative.gest.prod_versamento_materiale.core;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
public class ChooseOrdsLavFromListItemModel {
private OrdineLavorazioneDTO ordineLav;
private BindableBoolean hidden = new BindableBoolean(false);
public OrdineLavorazioneDTO getOrdineLav() {
return ordineLav;
}
public ChooseOrdsLavFromListItemModel setOrdineLav(OrdineLavorazioneDTO ordineLav) {
this.ordineLav= ordineLav;
return this;
}
public boolean isHidden() {
return hidden.get();
}
public ChooseOrdsLavFromListItemModel setHidden(boolean hidden) {
this.hidden.set(hidden);
return this;
}
public BindableBoolean getHidden() {
return hidden;
}
}

View File

@ -0,0 +1,466 @@
package it.integry.integrywmsnative.gest.prod_versamento_materiale.dto;
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.Date;
import it.integry.integrywmsnative.core.di.BindableFloat;
import it.integry.integrywmsnative.core.exception.DateNotRecognizedException;
import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException;
import it.integry.integrywmsnative.core.utility.UtilityDate;
public class OrdineLavorazioneDTO {
private String dataOrdProd;
private Integer numOrdProd;
private Integer rigaOrdProd;
private String flagAvviabile;
private String untOrd;
private BigDecimal rapConv;
private Integer posRiga;
private BigDecimal numPezzi;
private BigDecimal numCnf;
private BigDecimal qtaCnf;
private Integer ggScadPartita;
private BigDecimal colliPedana;
private BigDecimal numPedane;
private String dataOrd;
private String flagEvasoProd;
private String gestione;
private Integer numOrd;
private String descrizioneProd;
private String codJfas;
private String partitaMag;
private String dataScad;
private String partitaMagSuggested;
private String dataScadSuggested;
private String codProd;
private Integer maxStep;
private String dataInizProd;
private String dataIniz;
private String dataFine;
private BigDecimal qtaProd;
private BigDecimal qtaTrasferite;
private String stato;
private String codTcolUl;
private String codAnag;
private String rifOrd;
private String codVdes;
private String codMdep;
private String codJcom;
private String noteLav;
private BigDecimal tempoTrascorso;
private String descCommessa;
private BigDecimal prodStd;
private Object mtbColtToEdit;
private int hrNum;
private BindableFloat qtaColVersamento = new BindableFloat();
private BindableFloat numCnfVersamento = new BindableFloat();
public String getDataOrdProd() {
return dataOrdProd;
}
public void setDataOrdProd(String dataOrdProd) {
this.dataOrdProd = dataOrdProd;
}
public Integer getNumOrdProd() {
return numOrdProd;
}
public void setNumOrdProd(Integer numOrdProd) {
this.numOrdProd = numOrdProd;
}
public Integer getRigaOrdProd() {
return rigaOrdProd;
}
public void setRigaOrdProd(Integer rigaOrdProd) {
this.rigaOrdProd = rigaOrdProd;
}
public Integer getPosRiga() {
return posRiga;
}
public void setPosRiga(Integer posRiga) {
this.posRiga = posRiga;
}
public String getDataOrd() {
return dataOrd;
}
public Date getDateOrd() throws ParseException, TimeNotRecognizedException, DateNotRecognizedException {
return UtilityDate.recognizeDate(dataOrd);
}
public void setDataOrd(String dataOrd) {
this.dataOrd = dataOrd;
}
public String getFlagEvasoProd() {
return flagEvasoProd;
}
public void setFlagEvasoProd(String flagEvasoProd) {
this.flagEvasoProd = flagEvasoProd;
}
public String getGestione() {
return gestione;
}
public void setGestione(String gestione) {
this.gestione = gestione;
}
public Integer getNumOrd() {
return numOrd;
}
public void setNumOrd(Integer numOrd) {
this.numOrd = numOrd;
}
public String getDescrizioneProd() {
return descrizioneProd;
}
public void setDescrizioneProd(String descrizioneProd) {
this.descrizioneProd = descrizioneProd;
}
public String getCodJfas() {
return codJfas;
}
public void setCodJfas(String codJfas) {
this.codJfas = codJfas;
}
public Integer getMaxStep() {
return maxStep;
}
public void setMaxStep(Integer maxStep) {
this.maxStep = maxStep;
}
public String getDataIniz() {
return dataIniz;
}
public void setDataIniz(String dataIniz) {
this.dataIniz = dataIniz;
}
public String getDataFine() {
return dataFine;
}
public void setDataFine(String dataFine) {
this.dataFine = dataFine;
}
public BigDecimal getQtaProd() {
return qtaProd;
}
public void setQtaProd(BigDecimal qtaProd) {
this.qtaProd = qtaProd;
}
public BigDecimal getQtaTrasferite() {
return qtaTrasferite;
}
public void setQtaTrasferite(BigDecimal qtaTrasferite) {
this.qtaTrasferite = qtaTrasferite;
}
public String getStato() {
return stato;
}
public void setStato(String stato) {
this.stato = stato;
}
public String getUntOrd() {
return untOrd;
}
public void setUntOrd(String untOrd) {
this.untOrd = untOrd;
}
public BigDecimal getRapConv() {
return rapConv;
}
public void setRapConv(BigDecimal rapConv) {
this.rapConv = rapConv;
}
public BigDecimal getNumCnf() {
return numCnf;
}
public void setNumCnf(BigDecimal numCnf) {
this.numCnf = numCnf;
}
public BigDecimal getQtaCnf() {
return qtaCnf;
}
public void setQtaCnf(BigDecimal qtaCnf) {
this.qtaCnf = qtaCnf;
}
public String getPartitaMag() {
return partitaMag;
}
public void setPartitaMag(String partitaMag) {
this.partitaMag = partitaMag;
}
public String getDataScad() {
return dataScad;
}
public void setDataScad(String dataScad) {
this.dataScad = dataScad;
}
public String getPartitaMagSuggested() {
return partitaMagSuggested;
}
public void setPartitaMagSuggested(String partitaMagSuggested) {
this.partitaMagSuggested = partitaMagSuggested;
}
public String getDataScadSuggested() {
return dataScadSuggested;
}
public void setDataScadSuggested(String dataScadSuggested) {
this.dataScadSuggested = dataScadSuggested;
}
public String getCodProd() {
return codProd;
}
public void setCodProd(String codProd) {
this.codProd = codProd;
}
public String getDataInizProd() {
return dataInizProd;
}
public void setDataInizProd(String dataInizProd) {
this.dataInizProd = dataInizProd;
}
public String getCodTcolUl() {
return codTcolUl;
}
public void setCodTcolUl(String codTcolUl) {
this.codTcolUl = codTcolUl;
}
public String getCodAnag() {
return codAnag;
}
public void setCodAnag(String codAnag) {
this.codAnag = codAnag;
}
public String getRifOrd() {
return rifOrd;
}
public void setRifOrd(String rifOrd) {
this.rifOrd = rifOrd;
}
public String getCodVdes() {
return codVdes;
}
public void setCodVdes(String codVdes) {
this.codVdes = codVdes;
}
public String getCodMdep() {
return codMdep;
}
public void setCodMdep(String codMdep) {
this.codMdep = codMdep;
}
public String getCodJcom() {
return codJcom;
}
public void setCodJcom(String codJcom) {
this.codJcom = codJcom;
}
public BigDecimal getColliPedana() {
return colliPedana;
}
public void setColliPedana(BigDecimal colliPedana) {
this.colliPedana = colliPedana;
}
public BigDecimal getTempoTrascorso() {
return tempoTrascorso;
}
public void setTempoTrascorso(BigDecimal tempoTrascorso) {
this.tempoTrascorso = tempoTrascorso;
}
public String getDescCommessa() {
return descCommessa;
}
public void setDescCommessa(String descCommessa) {
this.descCommessa = descCommessa;
}
public BigDecimal getProdStd() {
return prodStd;
}
public void setProdStd(BigDecimal prodStd) {
this.prodStd = prodStd;
}
public String getFlagAvviabile() {
return flagAvviabile;
}
public void setFlagAvviabile(String flagAvviabile) {
this.flagAvviabile = flagAvviabile;
}
public BigDecimal getNumPezzi() {
return numPezzi;
}
public void setNumPezzi(BigDecimal numPezzi) {
this.numPezzi = numPezzi;
}
public BigDecimal getNumPedane() {
return numPedane;
}
public void setNumPedane(BigDecimal numPedane) {
this.numPedane = numPedane;
}
public Object getMtbColtToEdit() {
return mtbColtToEdit;
}
public void setMtbColtToEdit(Object mtbColtToEdit) {
this.mtbColtToEdit = mtbColtToEdit;
}
public Integer getGgScadPartita() {
return ggScadPartita;
}
public void setGgScadPartita(Integer ggScadPartita) {
this.ggScadPartita = ggScadPartita;
}
public String getNoteLav() {
return noteLav;
}
public void setNoteLav(String noteLav) {
this.noteLav = noteLav;
}
public int getHrNum() {
return hrNum;
}
public void setHrNum(int hrNum) {
this.hrNum = hrNum;
}
public BindableFloat getQtaColVersamento() {
return qtaColVersamento;
}
public void setQtaColVersamento(float qtaColVersamento) {
this.qtaColVersamento.set(qtaColVersamento);
}
public BindableFloat getNumCnfVersamento() {
return numCnfVersamento;
}
public void setNumCnfVersamento(float numCnfVersamento) {
this.numCnfVersamento.set(numCnfVersamento);
}
}

View File

@ -2,24 +2,42 @@ package it.integry.integrywmsnative.gest.prod_versamento_materiale.viewmodel;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.text.Html;
import android.text.SpannableString;
import android.view.View;
import android.widget.Toast;
import androidx.databinding.ObservableField;
import androidx.recyclerview.widget.LinearLayoutManager;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.exception.DateNotRecognizedException;
import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
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.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
import it.integry.integrywmsnative.core.settings.SettingsManager;
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.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentProdVersamentoMaterialeBinding;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ChooseOrdsLavFromListAdapter;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ChooseOrdsLavFromListItemModel;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ProdVersamentoMaterialHelper;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU;
@ -35,7 +53,8 @@ public class ProdVersamentoMaterialViewModel {
private FragmentProdVersamentoMaterialeBinding mBinding;
private ProdVersamentoMaterialHelper mHelper;
private Runnable mOnVersamentoCompleted;
private List<ChooseOrdsLavFromListItemModel> mDataset = new ArrayList<>();
private ChooseOrdsLavFromListAdapter currentAdapter;
public ObservableField<MtbColt> mtbColt = new ObservableField<>();
@ -48,6 +67,23 @@ public class ProdVersamentoMaterialViewModel {
BarcodeManager.enable();
}
public void setMtbColr(MtbColr mtbColr) {
mBinding.descrArt.setText(mtbColr.getDescrizione());
mBinding.codArt.setText(mtbColr.getCodMart());
mBinding.batch.setText(mtbColr.getPartitaMag() + ((mtbColr.getRifPartitaMag() != null) ? " - "+ mtbColr.getRifPartitaMag().getDescrizione() : ""));
if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissa())) {
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
if (mtbColr.getMtbAart() != null) {
text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? " " + mtbColr.getMtbAart().getUntMis() : "";
}
mBinding.qtaCol.setText(text);
} else {
mBinding.qtaCol.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + " " + UtilityResources.getString(R.string.unt_mis_col));
}
}
public void openLU() {
DialogScanOrCreateLU.make(mContext, true, true, false, mtbColt -> {
@ -78,9 +114,25 @@ public class ProdVersamentoMaterialViewModel {
if (status == DialogConsts.Results.ABORT) {
((IPoppableActivity) mContext).pop();
} else {
if (mtbDepoPosizione != null && mtbDepoPosizione.isFlagLineaProduzione() && mtbColt.get() != null) {
if (!SettingsManager.iDB().isFlagVersamentoDirettoProduzione()) {
createColloScarico(mtbDepoPosizione);
} else {
if (mtbColt == null || mtbColt.get() == null || mtbColt.get().getMtbColr() == null || mtbColt.get().getMtbColr().size() <= 0) {
DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(Html.fromHtml("Il collo selezionato non presenta articoli versabili sulla linea.")),
null, this::openLU).show();
return;
} else if (mtbColt.get().getMtbColr().size() > 1) {
DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(Html.fromHtml("Il collo selezionato contiene più articoli, per versarli in produzione vanno separati in colli differenti.")),
null, this::openLU).show();
return;
}
MesRESTConsumer.getOrdiniLavorazioneMateriale(mtbDepoPosizione.getPosizione(), getIdMaterialeFromCollo(mtbColt.get()), ordini -> richiediOrdiniPerVersamento(ordini, mtbDepoPosizione), e -> DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(Html.fromHtml(e.getMessage())),
null, this::openLU).show());
}
} else {
DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(Html.fromHtml("Si è verificato un errore. Riprovare")),
@ -94,25 +146,26 @@ public class ProdVersamentoMaterialViewModel {
}).show();
}
private String getIdMaterialeFromCollo(MtbColt mtbColt) {
MtbAart articolo = mtbColt.getMtbColr().get(0).getMtbAart();
return UtilityString.isNullOrEmpty(articolo.getIdArtEqui()) ? articolo.getCodMart() : articolo.getIdArtEqui();
}
private void createColloScarico(MtbDepoPosizione mtbDepoPosizione) {
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
ColliMagazzinoRESTConsumer.createColloScaricoDaCarico(mtbColt.get(), mtbDepoPosizione, generatedMtbColt -> {
DialogCommon.showDataSaved(mContext, () -> {
ColliMagazzinoRESTConsumer.createColloScaricoDaCarico(mtbColt.get(), mtbDepoPosizione, generatedMtbColt -> DialogCommon.showDataSaved(mContext, () -> {
progressDialog.dismiss();
mOnVersamentoCompleted.run();
});
}, ex -> {
UtilityExceptions.defaultException(mContext, ex);
});
}), ex -> UtilityExceptions.defaultException(mContext, ex));
}
public void setMtbColt(MtbColt mtbColt) {
this.mtbColt.set(mtbColt);
this.setMtbColr(mtbColt.getMtbColr().get(0));
}
public void resetMtbColt() {
@ -120,5 +173,51 @@ public class ProdVersamentoMaterialViewModel {
openLU();
}
public void richiediOrdiniPerVersamento(List<OrdineLavorazioneDTO> ordini, MtbDepoPosizione mtbDepoPosizione) {
if (ordini == null || ordini.size() <= 0) {
mBinding.positiveFab.setVisibility(View.GONE);
mBinding.positiveFab.setOnClickListener(null);
mBinding.emptyView.setVisibility(View.VISIBLE);
return;
}
mBinding.positiveFab.setVisibility(View.VISIBLE);
mBinding.positiveFab.setOnClickListener(c -> onPositiveClick(mtbDepoPosizione));
for (OrdineLavorazioneDTO ordineLav : ordini) {
mDataset.add(new ChooseOrdsLavFromListItemModel().setOrdineLav(ordineLav));
}
mBinding.emptyView.setVisibility(mDataset != null && mDataset.size() > 0 ? View.GONE : View.VISIBLE);
try {
initRecyclerView();
} catch (Exception e) {
UtilityExceptions.defaultException(mContext, e);
}
}
private void onPositiveClick(MtbDepoPosizione mtbDepoPosizione) {
List<OrdineLavorazioneDTO> ordLavs = currentAdapter.getSelectedItems();
if (ordLavs.size() > 0) {
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
ColliMagazzinoRESTConsumer.createColliScaricoDaOrdineLavorazione(mtbColt.get(), mtbDepoPosizione, ordLavs, generatedMtbColt -> DialogCommon.showDataSaved(mContext, () -> {
progressDialog.dismiss();
mOnVersamentoCompleted.run();
}), ex -> UtilityExceptions.defaultException(mContext, ex));
} else {
Toast.makeText(mContext, "Nessun ordine selezionato!", Toast.LENGTH_SHORT).show();
}
}
private void initRecyclerView() throws ParseException, TimeNotRecognizedException, DateNotRecognizedException {
mBinding.dialogChooseArtsFromListaArtMainList.setNestedScrollingEnabled(false);
mBinding.dialogChooseArtsFromListaArtMainList.setHasFixedSize(true);
mBinding.dialogChooseArtsFromListaArtMainList.setLayoutManager(new LinearLayoutManager(mContext));
currentAdapter = new ChooseOrdsLavFromListAdapter(mContext, mDataset, mtbColt.get());
mBinding.dialogChooseArtsFromListaArtMainList.setAdapter(currentAdapter);
}
}

View File

@ -12,7 +12,9 @@ import android.view.ViewGroup;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.ListaRettificaGiacenzeModelBinding;
@ -64,14 +66,18 @@ public class RettificaGiacenzeMainListAdapter extends RecyclerView.Adapter<Retti
holder.bind(mtbColr);
//Setting qty with unt_mis
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissa())){
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
if(mtbColr.getMtbAart() != null) {
if (mtbColr.getMtbAart().isFlagQtaCnfFissa()) {
holder.mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getQtaCol()) + (!UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : ""));
} else {
holder.mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + mContext.getString(R.string.unt_mis_col));
text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : "";
}
holder.mViewDataBinding.qtaTextview.setText(text);
} else {
holder.mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getQtaCol()));
holder.mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col));
}
holder.mViewDataBinding.getRoot().setOnClickListener(x -> {

View File

@ -121,8 +121,6 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
mBinding.rettificaGiacenzeMainList.setAdapter(null);
((IPoppableActivity) mContext).pop();
//if(openNew) openLU();
}
@ -419,6 +417,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
.setPartitaMag(quantityDTO.batchLot.get())
.setDataScadPartita(quantityDTO.expireDate)
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
.setNumCnf(quantityDTO.numCnf.getBigDecimal())
.setDescrizione(mtbAart.getDescrizioneEstesa())
.setCausale(MtbColr.Causale.RETTIFICA)
.setUtente(SettingsManager.i().user.fullname);
@ -615,14 +614,28 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
.setQtaDisponibile(new BigDecimal(-1))
.setMtbAart(mtbColrToEditClone.getMtbAart())
.setCanPartitaMagBeChanged(false)
.setQtaTot(mtbColrToEditClone.getQtaCol());
.setQtaTot(mtbColrToEditClone.getQtaCol())
.setQtaCnf(mtbColrToEditClone.getQtaCnf())
.setNumCnf(mtbColrToEditClone.getNumCnf().intValue());
DialogInputQuantity.makeBase(mContext, dto, true, value -> {
BigDecimal qtaCol = value.qtaTot.getBigDecimal().subtract(mtbColrToEditClone.getQtaCol());
if(qtaCol.compareTo(BigDecimal.ZERO) != 0) {
BigDecimal numCnf = value.numCnf.getBigDecimal().subtract(mtbColrToEditClone.getNumCnf());
if (numCnf.compareTo(BigDecimal.ZERO) == 0 && qtaCol.compareTo(BigDecimal.ZERO) > 0)
numCnf = BigDecimal.ONE;
else if (numCnf.compareTo(BigDecimal.ZERO) == 0 && qtaCol.compareTo(BigDecimal.ZERO) < 0)
numCnf = new BigDecimal(-1);
mtbColrToEditClone
.setRiga(null)
.setDatetimeRow(UtilityDate.getDateInstance())
.setQtaCol(value.qtaTot.getBigDecimal().subtract(mtbColrToEditClone.getQtaCol()))
.setQtaCol(qtaCol)
.setNumCnf(numCnf)
.setUtente(SettingsManager.i().user.fullname)
.setCausale(MtbColr.Causale.RETTIFICA)
.setOperation(CommonModelConsts.OPERATION.INSERT);
@ -640,6 +653,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
mtbColrToEditClone
.setQtaCol(value.qtaTot.getBigDecimal())
.setNumCnf(value.numCnf.getBigDecimal())
.setMtbAart(mtbColrToEdit.getMtbAart())
.setOperation(CommonModelConsts.OPERATION.NO_OP);
@ -647,6 +661,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progressDialog);
});
}
}, null).show();

View File

@ -5,6 +5,7 @@ import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
@ -15,6 +16,7 @@ import it.integry.integrywmsnative.core.model.DtbDocr;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityQuery;
import it.integry.integrywmsnative.gest.picking_resi.dto.WithdrawableDtbDocr;
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
@ -57,17 +59,18 @@ public class UltimeConsegneClienteRESTConsumer {
public static void loadDocRowFromConsegna(List<DocumentoResoDTO> consegne, RunnableArgs<ArrayList<WithdrawableDtbDocr>> onComplete, RunnableArgs<Exception> onFailed) {
StringBuilder sbWhereCond = new StringBuilder();
List<HashMap<String, Object>> filterCond = new ArrayList<>();
for(int i = 0; i < consegne.size(); i++) {
sbWhereCond.append(String.format("(dtb_docr.data_doc = '%s' AND dtb_docr.num_doc = %d AND dtb_docr.ser_doc = '%s' AND dtb_docr.cod_anag = '%s' AND dtb_docr.cod_dtip = '%s')",
UtilityDate.formatDate(consegne.get(i).getDataDocD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH),
consegne.get(i).getNumDoc(),
consegne.get(i).getSerDoc(),
consegne.get(i).getCodAnag(),
consegne.get(i).getCodDtip()));
HashMap<String, Object> filter = new HashMap<>();
if(i < consegne.size()-1) sbWhereCond.append(" OR ");
filter.put("dtb_docr.data_doc", consegne.get(i).getDataDocD());
filter.put("dtb_docr.num_doc", consegne.get(i).getNumDoc());
filter.put("dtb_docr.ser_doc", consegne.get(i).getSerDoc());
filter.put("dtb_docr.cod_anag", consegne.get(i).getCodAnag());
filter.put("dtb_docr.cod_dtip", consegne.get(i).getCodDtip());
filterCond.add(filter);
}
String sql = "SELECT dtb_docr.[cod_anag]" +
@ -142,12 +145,17 @@ public class UltimeConsegneClienteRESTConsumer {
"LEFT OUTER JOIN ctb_cont ON mtb_aart.cod_ccon_ricavi = ctb_cont.cod_ccon " +
"LEFT OUTER JOIN ctb_grup ON ctb_cont.cod_cgrp = ctb_grup.cod_cgrp " +
"LEFT OUTER JOIN mtb_colr ON " +
" dtb_docr.cod_anag + '|' + dtb_docr.cod_dtip + '|' + dtb_docr.ser_doc + '|' + CONVERT(varchar(10), dtb_docr.data_doc , 111) + '|' + CONVERT(varchar(20), dtb_docr.num_doc) + '|' + CONVERT(varchar(20), dtb_docr.id_riga) = mtb_colr.note " +
" dtb_docr.cod_anag = mtb_colr.cod_anag_doc AND " +
" dtb_docr.cod_dtip = mtb_colr.cod_dtip_doc AND " +
" dtb_docr.ser_doc = mtb_colr.ser_doc AND " +
" dtb_docr.data_doc = mtb_colr.data_doc AND " +
" dtb_docr.num_doc = mtb_colr.num_doc AND " +
" dtb_docr.id_riga = mtb_colr.id_riga_doc " +
"WHERE " +
" (ctb_grup.sezione <> 1 OR ctb_grup.sezione IS NULL) AND " +
" dtb_docr.[qta_doc] - ISNULL(mtb_colr.qta_col, 0) > 0 AND" +
" ( " +
sbWhereCond.toString() +
UtilityQuery.concatFieldListInWhereCond(filterCond) +
" ) " +
"ORDER BY cod_mart";

View File

@ -259,10 +259,4 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<Ma
}
}
public interface IOnOrdineRowDispatchCallback {
void onOrdineRowDispatch(PickingObjectDTO item);
}
}

View File

@ -15,6 +15,9 @@ import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.dto.VenditaOrdineInevasoListViewModel;
@ -148,16 +151,32 @@ public class VenditaOrdineInevasoHelper {
rowModel.setSubDescrizione2(String.format(mContext.getResources().getText(R.string.lu_number_data_text).toString(), currentItem.getNumCollo(), currentItem.getDataColloHuman()));
}
rowModel.setQtaRiservata(getRigaQuantityEvasa(currentItem, mtbColrs));
BigDecimal currentQtaColEvasa = BigDecimal.ZERO;
BigDecimal currentNumCnfColEvasa = BigDecimal.ZERO;
if(currentItem.getMtbAart().isFlagQtaCnfFissa()) {
rowModel.setUntMis(currentItem.getMtbAart().getUntMis());
if(currentItem.getWithdrawRows() != null) {
for (MtbColr mtbColr : currentItem.getWithdrawRows()) {
currentQtaColEvasa = currentQtaColEvasa.add(mtbColr.getQtaCol());
currentNumCnfColEvasa = currentNumCnfColEvasa.add(mtbColr.getNumCnf());
}
}
if(!SettingsManager.iDB().isFlagForceAllToColli() && (currentItem.getMtbAart() == null || currentItem.getMtbAart().isFlagQtaCnfFissa())){
rowModel.setQtaOrdinata(currentItem.getNumCollo() != null ? currentItem.getQtaCollo() : currentItem.getQtaOrd());
rowModel.setQtaRiservata(currentQtaColEvasa);
if(currentItem.getMtbAart() != null) {
rowModel.setUntMis(currentItem.getMtbAart().getUntMis());
}
} else {
rowModel.setUntMis("col");
rowModel.setQtaOrdinata(currentItem.getNumCollo() != null ? currentItem.getNumCnfDisponibileCollo() : currentItem.getNumCnfOrd());
rowModel.setQtaOrdinata(currentItem.getNumCollo() != null ? currentItem.getNumCnfCollo() : currentItem.getNumCnfOrd());
rowModel.setQtaRiservata(currentNumCnfColEvasa);
}
rowModel.setOriginalModel(currentItem);
itemModel.rows.add(rowModel);
@ -169,16 +188,5 @@ public class VenditaOrdineInevasoHelper {
}
private BigDecimal getRigaQuantityEvasa(PickingObjectDTO item, List<MtbColr> mtbColrs){
BigDecimal currentQtaEvasa = BigDecimal.ZERO;
if(mtbColrs != null) {
for (MtbColr mtbColr : item.getWithdrawRows()) {
currentQtaEvasa = currentQtaEvasa.add(item.getMtbAart().isFlagQtaCnfFissa() ? mtbColr.getQtaCol() : mtbColr.getNumCnf());
}
}
return currentQtaEvasa;
}
}

View File

@ -15,7 +15,9 @@ import java.lang.ref.WeakReference;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetMtbcolrItemBinding;
@ -47,14 +49,17 @@ public class ArticoliInColloBottomSheetMtbColrAdapter extends BaseAdapter {
binding.setMtbColr(mtbColr);
//Setting qty with unt_mis
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissa())){
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
if(mtbColr.getMtbAart() != null) {
if (mtbColr.getMtbAart().isFlagQtaCnfFissa()) {
binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getQtaCol()) + (!UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : ""));
} else {
binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + mContext.getString(R.string.unt_mis_col));
text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : "";
}
binding.qtaTextview.setText(text);
} else {
binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getQtaCol()));
binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col));
}

View File

@ -18,6 +18,7 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.utility.UtilityDialog;
import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtBinding;
public class DialogChooseArtFromListaArts {
@ -49,6 +50,8 @@ public class DialogChooseArtFromListaArts {
mDialog.setCanceledOnTouchOutside(false);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
UtilityDialog.setTo90PercentSize(context, mDialog);
initRecyclerView(bindings, listaArts);
}

View File

@ -29,6 +29,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityDialog;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
@ -97,6 +98,8 @@ public class DialogChooseArtsFromListaArts {
mDialog.setCanceledOnTouchOutside(false);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
UtilityDialog.setTo90PercentSize(context, mDialog);
initRecyclerView(binding);

View File

@ -15,6 +15,10 @@ import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.model.CheckableMtbColr;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsItemModelBinding;
public class DialogChooseArtsFromListaArtsAdapter extends RecyclerView.Adapter<DialogChooseArtsFromListaArtsAdapter.ViewHolder> {
@ -58,8 +62,8 @@ public class DialogChooseArtsFromListaArtsAdapter extends RecyclerView.Adapter<D
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected DialogChooseArtsFromListaArtsItemModelBinding mViewDataBinding;
public class ViewHolder extends RecyclerView.ViewHolder {
private DialogChooseArtsFromListaArtsItemModelBinding mViewDataBinding;
public ViewHolder(DialogChooseArtsFromListaArtsItemModelBinding v) {
@ -69,6 +73,25 @@ public class DialogChooseArtsFromListaArtsAdapter extends RecyclerView.Adapter<D
public void bind(CheckableMtbColr checkableMtbColr) {
mViewDataBinding.setCheckableMtbColr(checkableMtbColr);
MtbColr mtbColr = checkableMtbColr.getItem().getMtbColr();
//Setting qty with unt_mis
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissa())){
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
if(mtbColr.getMtbAart() != null) {
text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : "";
}
mViewDataBinding.qtaTextview.setText(text);
} else {
mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col));
}
mViewDataBinding.executePendingBindings();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -67,43 +67,8 @@
tools:text="Descrizione lunga articolo" />
<!--<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{`Lotto: ` + dtoModel.partitaMag}"
android:textSize="14sp"
android:visibility="@{UtilityString.isNullOrEmpty(dtoModel.partitaMag) ? View.INVISIBLE : View.VISIBLE}"
tools:text="Lotto: ABCDE" />-->
</LinearLayout>
<!--<RelativeLayout
android:id="@+id/qta_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="12dp"
android:paddingEnd="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent">
<android.support.v7.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/badge1_round_corner"
android:gravity="center"
android:paddingLeft="6dp"
android:paddingTop="2dp"
android:paddingRight="6dp"
android:paddingBottom="2dp"
android:text="@{UtilityNumber.decimalToString(mtbColr.getQtaCol()) + `\n` + mtbColr.getUntMis()}"
android:textSize="16sp"
android:textColor="@android:color/white"
android:textStyle="bold"
tools:text="280.45\nCONF" />
</RelativeLayout>-->
</LinearLayout>
</layout>

View File

@ -47,6 +47,12 @@
android:layout_toStartOf="@id/qta_box">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -57,6 +63,24 @@
tools:text="COD MART" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(checkableMtbColr.item.mtbColr.qtaCol) + checkableMtbColr.item.mtbColr.mtbAart.untMis}"
android:visibility="@{checkableMtbColr.item.mtbColr.mtbAart != null &amp;&amp; !checkableMtbColr.item.mtbColr.mtbAart.isFlagQtaCnfFissa() ? View.VISIBLE : View.GONE}"
android:textSize="14sp"
android:textStyle="bold"
android:paddingStart="6dp"
android:paddingEnd="6dp"
android:background="@drawable/badge2_round_corner"
android:textColor="@android:color/white"
android:layout_alignParentEnd="true"
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="PESO KG" />
</RelativeLayout>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -93,6 +117,7 @@
android:layout_centerVertical="true">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/qta_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/badge1_round_corner"
@ -101,10 +126,10 @@
android:paddingTop="2dp"
android:paddingRight="6dp"
android:paddingBottom="2dp"
android:text="@{UtilityNumber.decimalToString(checkableMtbColr.item.mtbColr.getQtaCol()) + (checkableMtbColr.item.mtbColr.mtbAart != null &amp;&amp; !UtilityString.isNullOrEmpty(checkableMtbColr.item.mtbColr.mtbAart.untMis) ? `\n` + checkableMtbColr.item.mtbColr.mtbAart.untMis : ``)}"
android:textSize="16sp"
android:textColor="@android:color/white"
android:textStyle="bold"
android:textAllCaps="true"
tools:text="280.45\nCONF" />
</RelativeLayout>

View File

@ -20,7 +20,7 @@
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<RelativeLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
@ -50,9 +50,7 @@
android:paddingTop="24dp"
android:paddingBottom="8dp"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:layout_alignParentTop="true"
android:layout_above="@id/buttons">
android:paddingEnd="8dp">
<TextView
android:id="@+id/title_text"
@ -121,7 +119,6 @@
android:id="@+id/buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginTop="8dp"
android:layout_marginStart="4dp"
android:layout_marginEnd="4dp"
@ -165,7 +162,7 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/base_root"
android:orientation="vertical"
android:layout_width="match_parent"
@ -34,12 +34,23 @@
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="24dp"
android:paddingBottom="16dp"
android:paddingStart="8dp"
android:paddingEnd="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="24dp">
android:paddingStart="16dp"
android:paddingEnd="16dp">
<TextView
android:id="@+id/title_text"
@ -49,17 +60,11 @@
android:text="@string/title_open_lu"
android:gravity="center_horizontal"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="10">
android:layout_marginTop="16dp">
<ProgressBar
@ -81,11 +86,28 @@
</LinearLayout>
<LinearLayout
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/dialog_scan_or_create_lu__creation_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:layout_marginTop="8dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
@ -99,45 +121,28 @@
style="@style/TextViewMaterial"
android:text="OPPURE" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/ok_left_buttons_guideline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.15"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/ok_right_buttons_guideline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.85"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/create_new_lu_button"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/ok_left_buttons_guideline"
app:layout_constraintEnd_toEndOf="@id/ok_right_buttons_guideline"
android:text="@string/button_create_new_ul"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</layout>

View File

@ -500,7 +500,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/AppTheme.NewMaterial.Text.Small"
android:text="Modifica"/>
android:text="@string/edit"/>
</LinearLayout>
@ -528,7 +528,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/AppTheme.NewMaterial.Text.Small"
android:text="Cancella"/>
android:text="@string/delete"/>
</LinearLayout>

View File

@ -7,6 +7,7 @@
<import type="android.view.View" />
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
<import type="it.integry.integrywmsnative.core.settings.SettingsManager" />
<variable
name="mtbColr"
type="it.integry.integrywmsnative.core.model.MtbColr"/>
@ -47,7 +48,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(mtbColr.qtaCol) + mtbColr.mtbAart.untMis}"
android:visibility="@{mtbColr.mtbAart != null &amp;&amp; !mtbColr.mtbAart.isFlagQtaCnfFissa() ? View.VISIBLE : View.GONE}"
android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null &amp;&amp; !mtbColr.mtbAart.isFlagQtaCnfFissa()) ? View.VISIBLE : View.GONE}"
android:textSize="14sp"
android:textStyle="bold"
android:layout_alignParentEnd="true"
@ -68,6 +69,8 @@
android:text="@{mtbColr.getDescrizione()}"
android:textColor="@android:color/black"
android:textSize="16sp"
android:paddingStart="0dp"
android:paddingEnd="8dp"
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="Descrizione lunga articolo" />

View File

@ -0,0 +1,155 @@
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<import type="it.integry.integrywmsnative.R" />
<import type="it.integry.integrywmsnative.core.settings.SettingsManager" />
<import type="android.view.View" />
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<import type="it.integry.integrywmsnative.core.utility.UtilityResources" />
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
<variable
name="checkableOrdineLav"
type="it.integry.integrywmsnative.core.model.CheckableOrdineLavoro"/>
<variable
name="mtbColr"
type="it.integry.integrywmsnative.core.model.MtbColr"/>
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@drawable/bg_checked_layout"
app:backgroundTintResID="@{checkableOrdineLav.checked.get() ? R.color.bg_checked_layout : android.R.color.transparent}"
android:layout_marginTop="2dp"
android:layout_marginStart="4dp"
android:layout_marginBottom="2dp"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:onClick="@{() -> checkableOrdineLav.toggleCheck()}">
<androidx.appcompat.widget.AppCompatCheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="8dp"
android:layout_centerVertical="true"
app:checked="@{checkableOrdineLav.checked}"/>
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_toEndOf="@id/checkbox"
android:layout_toStartOf="@id/qta_box">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{checkableOrdineLav.getTestata()}"
android:textColor="@color/colorPrimary"
android:textSize="14sp"
android:textStyle="bold"
style="@style/AppTheme.NewMaterial.Text.Medium"
tools:text="N° X del dd/mm/yyyy" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(checkableOrdineLav.qtaCol.get()) +' '+ mtbColr.mtbAart.untMis}"
android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null &amp;&amp; !mtbColr.mtbAart.isFlagQtaCnfFissa()) ? View.VISIBLE : View.GONE}"
android:textSize="14sp"
android:textStyle="bold"
android:layout_alignParentEnd="true"
android:paddingStart="6dp"
android:paddingEnd="6dp"
android:background="@drawable/badge2_round_corner"
android:textColor="@android:color/white"
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="PESO KG" />
</RelativeLayout>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="2"
android:text="@{checkableOrdineLav.item.ordineLav.codProd +' '+ checkableOrdineLav.item.ordineLav.descrizioneProd}"
android:textColor="@android:color/secondary_text_light"
style="@style/AppTheme.NewMaterial.Text.Medium"
tools:text="150303-010 CAVOLO VERZA 6 PZ PL NERA 604018" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="2"
style="@style/AppTheme.NewMaterial.Text.Small"
android:text="@{UtilityString.formatHtmlStringFromResId(R.string.batch_lot_text, checkableOrdineLav.item.ordineLav.partitaMag)}"
tools:text="Lotto: 35119F0038" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:visibility="@{!UtilityString.isNullOrEmpty(checkableOrdineLav.item.ordineLav.noteLav) ? View.VISIBLE : View.GONE}"
android:maxLines="2"
style="@style/AppTheme.NewMaterial.Text.Small"
android:text="@{UtilityString.formatHtmlStringFromResId(R.string.notes_text, checkableOrdineLav.item.ordineLav.noteLav)}"
tools:text="note: prova" />
</LinearLayout>
<RelativeLayout
android:id="@+id/qta_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="12dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/qta_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/badge1_round_corner"
android:gravity="center"
android:paddingLeft="6dp"
android:paddingTop="2dp"
android:paddingRight="6dp"
android:paddingBottom="2dp"
android:textSize="16sp"
android:textColor="@android:color/white"
android:textStyle="bold"
android:textAllCaps="true"
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="280.45\nCONF" />
</RelativeLayout>
</RelativeLayout>
</layout>

View File

@ -24,6 +24,7 @@
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -46,29 +47,29 @@
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="12dp"
android:paddingEnd="12dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:textSize="16sp"
android:textColor="@android:color/white"
android:textStyle="bold"
android:background="@drawable/badge1_round_corner"
android:text="@{viewmodel.mtbColt.get().numCollo.toString()}"
style="@style/AppTheme.NewMaterial.Text.Medium"
tools:text="2156"/>
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:textSize="16sp"
android:textColor="@android:color/black"
android:textStyle="bold"
android:visibility="@{!UtilityString.isNullOrEmpty(viewmodel.mtbColt.get().posizione) ? View.VISIBLE : View.GONE}"
android:text="@{viewmodel.mtbColt.get().posizione}"
style="@style/AppTheme.NewMaterial.Text.Medium"
tools:text="ME1FS032"/>
@ -114,6 +115,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
app:hintTextAppearance="@style/hint_text"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/guide_line_fornitore">
@ -132,6 +134,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
app:hintTextAppearance="@style/hint_text"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@id/guide_line_fornitore"
app:layout_constraintEnd_toEndOf="parent">
@ -180,6 +183,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
app:hintTextAppearance="@style/hint_text"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
@ -256,8 +260,8 @@
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textColor="@android:color/black"
android:textSize="18sp"
android:text="@string/no_item_text"/>
android:text="@string/no_item_text"
style="@style/AppTheme.NewMaterial.Text.Medium"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
@ -266,7 +270,10 @@
android:id="@+id/rettifica_giacenze_main_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="32dp"/>
android:paddingTop="16dp"
android:paddingBottom="80dp"
android:clipToPadding="false"
android:scrollbarStyle="outsideOverlay"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/rettifica_giacenze_main_fab"
@ -294,6 +301,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<LinearLayout
android:id="@+id/bottom_sheet_actions"
android:layout_width="match_parent"
@ -317,6 +326,7 @@
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginBottom="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@id/bottom_sheet_actions_quantity"
app:layout_constraintStart_toStartOf="parent">
@ -326,30 +336,31 @@
android:layout_height="wrap_content"
tools:text="Descrizione articolo"
android:textColor="#444"
android:textSize="18dp"
android:maxLines="1"
android:maxLines="2"
android:ellipsize="end"
android:paddingRight="8dp"
android:textStyle="bold" />
android:paddingStart="0dp"
android:paddingEnd="8dp"
android:textStyle="bold"
style="@style/AppTheme.NewMaterial.Text.Medium"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bottom_sheet_actions_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="ABF52IL"
android:textSize="14dp"
android:textStyle="bold" />
style="@style/AppTheme.NewMaterial.Text.Small" />
</LinearLayout>
<TextView
android:id="@+id/bottom_sheet_actions_quantity"
android:layout_width="wrap_content"
android:gravity="right"
android:gravity="end"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="15dp"
tools:text="250 PZ"
style="@style/AppTheme.NewMaterial.Text.Small"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
@ -370,6 +381,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@id/guideline_action"
app:layout_constraintStart_toStartOf="parent"
android:gravity="center">
@ -388,7 +400,8 @@
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Modifica"/>
style="@style/AppTheme.NewMaterial.Text.Small"
android:text="@string/edit"/>
</LinearLayout>
@ -396,6 +409,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/guideline_action"
android:gravity="center">
@ -414,7 +428,8 @@
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancella"/>
style="@style/AppTheme.NewMaterial.Text.Small"
android:text="@string/delete"/>
</LinearLayout>
@ -423,6 +438,9 @@
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</FrameLayout>

View File

@ -63,18 +63,24 @@
android:textSize="14sp"
tools:text="13 Apr"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/description_main"
android:layout_toStartOf="@id/compilato_da"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/sub_description_main"
style="@android:style/TextAppearance.Small"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/description_main"
android:layout_marginTop="4dp"
android:layout_marginEnd="4dp"
android:layout_toStartOf="@id/compilato_da"
android:ellipsize="end"
android:singleLine="true"
tools:text="SUB TITLE" />
</LinearLayout>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/compilato_da"
@ -86,7 +92,6 @@
android:layout_alignParentEnd="true"
android:textSize="12sp"
tools:text="Nome Cognome"/>
</RelativeLayout>
</layout>

View File

@ -230,7 +230,7 @@
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancella"/>
android:text="@string/delete"/>
</LinearLayout>

View File

@ -3,9 +3,11 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:fab="http://schemas.android.com/apk/res-auto">
<data>
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -13,14 +15,63 @@
<androidx.recyclerview.widget.RecyclerView
android:background="@color/gray_200"
android:background="@android:color/white"
android:id="@+id/prod_recupero_materiale_main_list"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/empty_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.3">
</androidx.recyclerview.widget.RecyclerView>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.2" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.15" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.85" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="72dp"
android:layout_height="wrap_content"
android:src="@drawable/ic_playlist_add_check_24dp"
android:adjustViewBounds="true"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textColor="@android:color/black"
android:textSize="18sp"
android:text="@string/no_item_in_recupera_materiale"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>

View File

@ -1,18 +1,183 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:fab="http://schemas.android.com/apk/res-auto">
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
</data>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/base_root"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment">
android:layout_gravity="center_horizontal"
android:visibility="visible"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial.DialogTitle"
android:text="@string/distribute_ul"
android:gravity="center_horizontal"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/gray_detail_background_round8"
android:orientation="vertical"
android:layout_marginLeft="8dp"
android:layout_marginTop="12dp"
android:layout_marginRight="8dp"
android:padding="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/descr_art"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="CAVOLO VERZA"
style="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@color/colorPrimary"
android:textStyle="bold"
android:layout_marginEnd="8dp"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/article"
android:textColor="@android:color/black"
android:layout_marginEnd="8dp"
android:textSize="16sp" />
<TextView
android:id="@+id/cod_art"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="150303-010"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/batch_lot"
android:textColor="@android:color/black"
android:layout_marginEnd="8dp"
android:textSize="14sp" />
<TextView
android:id="@+id/batch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="35119F0038"
android:textColor="@android:color/black"
android:textSize="14sp"
android:textStyle="italic" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/quantity"
android:textColor="@android:color/black"
android:layout_marginEnd="8dp"
android:textSize="14sp" />
<TextView
android:id="@+id/qta_col"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="385 CONF"
android:textColor="@android:color/black"
android:textSize="14sp"
android:textStyle="italic" />
</LinearLayout>
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp">
<LinearLayout
android:id="@+id/empty_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:padding="16dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/no_available_order_on_line"
android:textSize="20sp"
android:gravity="center"
android:textColor="@color/empty_view_gray"/>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/dialog_choose_arts_from_lista_art__main_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="80dp"
android:clipToPadding="false"
android:scrollbarStyle="outsideOverlay"/>
</RelativeLayout>
</LinearLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/positive_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:tint="@android:color/white"
style="@style/Widget.MaterialComponents.FloatingActionButton"
app:srcCompat="@drawable/ic_check_black_24dp" />
</FrameLayout>
</layout>

View File

@ -6,6 +6,7 @@
<import type="android.view.View" />
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
<import type="it.integry.integrywmsnative.core.settings.SettingsManager" />
<variable
name="mtbColr"
type="it.integry.integrywmsnative.core.model.MtbColr" />
@ -23,9 +24,13 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@+id/qta_box"
app:layout_constraintStart_toStartOf="parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
@ -34,19 +39,37 @@
android:textColor="@color/colorPrimary"
android:textSize="14sp"
android:textStyle="bold"
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="COD MART" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(mtbColr.qtaCol) + mtbColr.mtbAart.untMis}"
android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null &amp;&amp; !mtbColr.mtbAart.isFlagQtaCnfFissa()) ? View.VISIBLE : View.GONE}"
android:textSize="14sp"
android:textStyle="bold"
android:layout_alignParentEnd="true"
android:paddingStart="6dp"
android:paddingEnd="6dp"
android:background="@drawable/badge2_round_corner"
android:textColor="@android:color/white"
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="PESO KG" />
</RelativeLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/posizione_collo"
android:layout_alignParentStart="true"
android:layout_toStartOf="@id/posizione_collo"
android:ellipsize="end"
android:maxLines="1"
android:text="@{mtbColr.getDescrizione()}"
android:textColor="@android:color/black"
android:textSize="16sp"
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="Descrizione lunga articolo" />
@ -56,6 +79,7 @@
android:text="@{`Lotto: ` + mtbColr.getPartitaMag()}"
android:textSize="14sp"
android:visibility="@{UtilityString.isNullOrEmpty(mtbColr.getPartitaMag()) ? View.INVISIBLE : View.VISIBLE}"
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="Lotto: ABCDE" />
</LinearLayout>
@ -72,6 +96,7 @@
app:layout_constraintBottom_toBottomOf="parent">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/qta_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/badge1_round_corner"
@ -80,10 +105,11 @@
android:paddingTop="2dp"
android:paddingRight="6dp"
android:paddingBottom="2dp"
android:text="@{UtilityNumber.decimalToString(mtbColr.getQtaCol()) + (mtbColr.mtbAart != null &amp;&amp; !UtilityString.isNullOrEmpty(mtbColr.mtbAart.untMis) ? `\n` + mtbColr.mtbAart.untMis : ``)}"
android:textSize="16sp"
android:textColor="@android:color/white"
android:textStyle="bold"
android:textAllCaps="true"
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="280.45\nCONF" />
</RelativeLayout>

View File

@ -6,6 +6,7 @@
<import type="android.view.View" />
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
<import type="it.integry.integrywmsnative.core.settings.SettingsManager" />
<variable
name="mtbColr"
type="it.integry.integrywmsnative.core.model.MtbColr" />
@ -41,6 +42,7 @@
android:textColor="@color/colorPrimary"
android:textSize="14sp"
android:textStyle="bold"
style="@style/AppTheme.NewMaterial.Text"
tools:text="COD MART" />
<androidx.appcompat.widget.AppCompatTextView
@ -54,6 +56,7 @@
android:layout_marginStart="8dp"
android:layout_toEndOf="@id/cod_mart"
android:visibility="@{(mtbColr.mtbAart != null &amp;&amp; !UtilityString.isNullOrEmpty(mtbColr.mtbAart.diacod)) ? View.VISIBLE : View.GONE}"
style="@style/AppTheme.NewMaterial.Text"
tools:text="(12345)" />
@ -62,7 +65,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(mtbColr.qtaCol) + mtbColr.mtbAart.untMis}"
android:visibility="@{mtbColr.mtbAart != null &amp;&amp; !mtbColr.mtbAart.isFlagQtaCnfFissa() ? View.VISIBLE : View.GONE}"
android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null &amp;&amp; !mtbColr.mtbAart.isFlagQtaCnfFissa()) ? View.VISIBLE : View.GONE}"
android:textSize="14sp"
android:textStyle="bold"
android:layout_alignParentEnd="true"
@ -79,13 +82,12 @@
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/posizione_collo"
android:ellipsize="end"
android:maxLines="2"
android:text="@{mtbColr.getDescrizione()}"
android:textColor="@android:color/black"
android:textSize="16sp"
style="@style/AppTheme.NewMaterial.Text"
tools:text="Descrizione lunga articolo" />
@ -95,6 +97,7 @@
android:text="@{`Lotto: ` + mtbColr.getPartitaMag()}"
android:textSize="14sp"
android:visibility="@{UtilityString.isNullOrEmpty(mtbColr.getPartitaMag()) ? View.GONE : View.VISIBLE}"
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="Lotto: ABCDE" />
</LinearLayout>
@ -124,6 +127,7 @@
android:textColor="@android:color/white"
android:textStyle="bold"
android:textAllCaps="true"
style="@style/AppTheme.NewMaterial.Text"
tools:text="280.45\nCONF" />
</RelativeLayout>

View File

@ -66,6 +66,17 @@
style="@style/AppTheme.NewMaterial.Text.Medium"
tools:text="QTA"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/unt_mis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="@android:color/black"
android:layout_marginStart="4dp"
android:textAllCaps="true"
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="cnf"/>
</LinearLayout>
</LinearLayout>

View File

@ -10,8 +10,9 @@
<string name="completed">Completato</string>
<string name="ord_acq_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
<string name="ord_ven_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
<string name="ord_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
<string name="ord_ven_testata_data_cons"><![CDATA[Cons <b>%s</b>]]></string>
<string name="search">Cerca...</string>
<string name="search">Cerca</string>
<string name="login">Login</string>
<string name="accettazione_title_fragment">Accettazione</string>
<string name="accettazione_ordine_inevaso_title_empty">Ordine di accettazione</string>
@ -131,6 +132,7 @@
<string name="batch_lot">Lotto</string>
<string name="batch_lot_text"><![CDATA[Lotto: <b>%s</b>]]></string>
<string name="notes_text"><![CDATA[Note: <b>%s</b>]]></string>
<string name="expire_date">Data scad</string>
<string name="num_pcks">Num cnf</string>
<string name="qty_x_pck"><![CDATA[Qtà x cnf]]></string>
@ -164,7 +166,9 @@
<string name="no_item_to_pick_text">Nessun articolo da prelevare</string>
<string name="no_docs_to_show_text">Nessun documento da mostrare</string>
<string name="no_orders_to_pick_text">Nessun ordine da evadere</string>
<string name="no_available_order_on_line">Nessun ordine compatibile</string>
<string name="no_item_text">Nessun articolo</string>
<string name="no_item_in_recupera_materiale">Nessuna UL versata in produzione</string>
<string name="already_used_anonymous_barcode"><![CDATA[L\'etichetta scansionata è stata già utilizzata]]></string>
<string name="no_result_from_barcode">Il barcode scansionato non ha fornito alcun risultato</string>
@ -295,4 +299,7 @@
<string name="choose_action">Seleziona una azione</string>
<string name="delete">Elimina</string>
<string name="edit">Modifica</string>
<string name="distribute_ul">Distribuisci quantità</string>
<string name="article">Articolo</string>
<string name="title_dynamic_saporiveri">Personalizzazione SaporiVeri</string>
</resources>

View File

@ -49,6 +49,7 @@
<string name="permission_request_message">Permissions are required for app to work properly</string>
<string name="ord_acq_testata"><![CDATA[#<b>%s</b> of <b>%s</b>]]></string>
<string name="ord_ven_testata"><![CDATA[#<b>%s</b> of <b>%s</b>]]></string>
<string name="ord_testata"><![CDATA[#<b>%s</b> of <b>%s</b>]]></string>
<string name="ord_ven_testata_data_cons"><![CDATA[Ship <b>%s</b>]]></string>
<string name="accettazione_title_fragment">Check in</string>
<string name="accettazione_ordine_inevaso_title_empty">Check in order</string>
@ -130,6 +131,7 @@
<string name="level">Level</string>
<string name="not_valid">Not valid</string>
<string name="batch_lot_text"><![CDATA[Batch lot: <b>%s</b>]]></string>
<string name="notes_text"><![CDATA[Notes: <b>%s</b>]]></string>
<string name="expire_date">Expire date</string>
<string name="num_pcks">Pcks num</string>
<string name="qty_x_pck">Qty x pck</string>
@ -165,7 +167,9 @@
<string name="no_item_to_pick_text">No items to pick</string>
<string name="no_docs_to_show_text">No documents to show</string>
<string name="no_orders_to_pick_text">No orders to dispatch</string>
.<string name="no_available_order_on_line">no compatible orders found</string>
<string name="no_item_text">No items</string>
<string name="no_item_in_recupera_materiale">No LU poured into production</string>
<string name="already_used_anonymous_barcode">The scanned label has already been used</string>
<string name="no_result_from_barcode">The scanned barcode did not produce any results</string>
@ -301,4 +305,6 @@
<string name="delete">Delete</string>
<string name="edit">Edit</string>
<string name="title_dynamic_saporiveri">SaporVeri Customization</string>
<string name="distribute_ul">Distribute quantity</string>
<string name="article">Article</string>
</resources>