Implementata empty view in ListaBancali.
Implementata Activity OrdineVenditaInevaso
This commit is contained in:
parent
2bcfd32399
commit
7182782c25
4
.idea/assetWizardSettings.xml
generated
4
.idea/assetWizardSettings.xml
generated
@ -23,7 +23,7 @@
|
||||
<PersistentState>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="url" value="jar:file:/C:/Program%20Files/Android/Android%20Studio/plugins/android/lib/android.jar!/images/material_design_icons/action/ic_delete_black_24dp.xml" />
|
||||
<entry key="url" value="jar:file:/C:/Program%20Files/Android/Android%20Studio/plugins/android/lib/android.jar!/images/material_design_icons/av/ic_playlist_add_check_black_24dp.xml" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
@ -33,7 +33,7 @@
|
||||
</option>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="outputName" value="ic_delete_24dp" />
|
||||
<entry key="outputName" value="ic_playlist_add_check_24dp" />
|
||||
<entry key="sourceFile" value="C:\Users\GiuseppeS" />
|
||||
</map>
|
||||
</option>
|
||||
|
||||
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
@ -28,6 +28,10 @@
|
||||
android:name=".gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar"
|
||||
android:windowSoftInputMode="adjustNothing" />
|
||||
<activity
|
||||
android:name=".gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar"
|
||||
android:windowSoftInputMode="adjustNothing" />
|
||||
<activity
|
||||
android:name=".gest.login.LoginActivity"
|
||||
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
|
||||
@ -38,7 +42,7 @@
|
||||
<activity
|
||||
android:name=".gest.contenuto_bancale.ContenutoBancaleActivity"
|
||||
android:label="@string/activity_contenuto_bancale_title"
|
||||
android:theme="@style/Theme.AppCompat.Light.NoActionBar"></activity>
|
||||
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@ -0,0 +1,50 @@
|
||||
package it.integry.integrywmsnative.core.model;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class FiltroOrdineDTO {
|
||||
|
||||
private String gestioneOrd;
|
||||
private String dataOrd;
|
||||
private int numOrd;
|
||||
|
||||
public String getGestioneOrd() {
|
||||
return gestioneOrd;
|
||||
}
|
||||
|
||||
public FiltroOrdineDTO setGestioneOrd(String gestioneOrd) {
|
||||
this.gestioneOrd = gestioneOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDataOrdS() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public Date getDataOrdD() throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
return sdf.parse(getDataOrdS());
|
||||
}
|
||||
|
||||
public FiltroOrdineDTO setDataOrd(String dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FiltroOrdineDTO setDataOrd(Date dataOrd) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
this.dataOrd = sdf.format(dataOrd);
|
||||
return this;
|
||||
}
|
||||
|
||||
public int getNumOrd() {
|
||||
return numOrd;
|
||||
}
|
||||
|
||||
public FiltroOrdineDTO setNumOrd(int numOrd) {
|
||||
this.numOrd = numOrd;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@ -4,12 +4,14 @@ import android.databinding.ObservableArrayList;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
@ -618,5 +620,30 @@ public class MtbColt extends EntityBase implements Parcelable {
|
||||
|
||||
|
||||
|
||||
public void generaFiltroOrdineFromDTO(List<FiltroOrdineDTO> filtroOrdineDtos) {
|
||||
|
||||
String xmlPrefix = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ROOT><FILTER>";
|
||||
String xmlSuffix = "</FILTER></ROOT>";
|
||||
|
||||
StringBuilder xmlContent = new StringBuilder();
|
||||
|
||||
if(filtroOrdineDtos != null && filtroOrdineDtos.size() > 0) {
|
||||
|
||||
for(int i = 0; i < filtroOrdineDtos.size(); i++){
|
||||
FiltroOrdineDTO x = filtroOrdineDtos.get(i);
|
||||
|
||||
try {
|
||||
xmlContent.append("<DTB_ORDT COND=\"OR\"><GESTIONE type=\"V\">" + x.getGestioneOrd() + "</GESTIONE><DATA_ORD type=\"D\">" + UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH) + "</DATA_ORD><NUM_ORD type=\"N\">" + x.getNumOrd() + "</NUM_ORD></DTB_ORDT>");
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
this.filtroOrdini = xmlPrefix + xmlContent + xmlSuffix;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -73,12 +73,15 @@ public class AccettazioneOrdineInevasoHelper {
|
||||
if(mDataset.get(i).codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) mDataset.get(i).descrizioneCommessa = null;
|
||||
}
|
||||
|
||||
Collections.sort(codArtForns, (str1, str2) -> {
|
||||
if(str1 != null && str2 != null) {
|
||||
return str1.compareToIgnoreCase(str2);
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
codArtForns = Stream.of(codArtForns)
|
||||
.sortBy(x -> x).toList();
|
||||
|
||||
// Collections.sort(codArtForns, (str1, str2) -> {
|
||||
// if(str1 != null && str2 != null) {
|
||||
// return str1.compareToIgnoreCase(str2);
|
||||
// }
|
||||
// return 0;
|
||||
// });
|
||||
|
||||
List<List<OrdineAccettazioneDTO.Riga>> groupedRighe = new ArrayList<>();
|
||||
for (String codArtForn : codArtForns) {
|
||||
|
||||
@ -19,6 +19,8 @@ public class MainListListaColliAdapter extends RecyclerView.Adapter<MainListList
|
||||
protected Context mContext;
|
||||
protected ObservableArrayList<MtbColt> mDataset;
|
||||
|
||||
private View mEmptyView;
|
||||
|
||||
private IRecyclerItemClicked<MtbColt> mOnItemClickListener;
|
||||
|
||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
@ -36,12 +38,15 @@ public class MainListListaColliAdapter extends RecyclerView.Adapter<MainListList
|
||||
}
|
||||
}
|
||||
|
||||
public MainListListaColliAdapter(Context context, ObservableArrayList<MtbColt> myDataset, IRecyclerItemClicked<MtbColt> onItemClickListener) {
|
||||
public MainListListaColliAdapter(Context context, ObservableArrayList<MtbColt> myDataset, IRecyclerItemClicked<MtbColt> onItemClickListener, View emptyView) {
|
||||
mContext = context;
|
||||
mDataset = myDataset;
|
||||
mEmptyView = emptyView;
|
||||
mOnItemClickListener = onItemClickListener;
|
||||
|
||||
myDataset.addOnListChangedCallback(onListChangedCallback);
|
||||
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
|
||||
@ -78,33 +83,43 @@ public class MainListListaColliAdapter extends RecyclerView.Adapter<MainListList
|
||||
}
|
||||
|
||||
|
||||
|
||||
void checkIfEmpty() {
|
||||
if (mEmptyView != null) {
|
||||
final boolean emptyViewVisible = getItemCount() == 0;
|
||||
mEmptyView.setVisibility(emptyViewVisible ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback<ObservableList<MtbColt>>() {
|
||||
@Override
|
||||
public void onChanged(ObservableList<MtbColt> sender) {
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeChanged(ObservableList<MtbColt> sender, int positionStart, int itemCount) {
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeInserted(ObservableList<MtbColt> sender, int positionStart, int itemCount) {
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeMoved(ObservableList<MtbColt> sender, int fromPosition, int toPosition, int itemCount) {
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeRemoved(ObservableList<MtbColt> sender, int positionStart, int itemCount) {
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -60,7 +60,7 @@ public class ListaBancaliViewModel implements IRecyclerItemClicked<MtbColt> {
|
||||
mContext.bindings.listaColliMainList.addItemDecoration(itemDecorator);
|
||||
|
||||
|
||||
mAdapter = new MainListListaColliAdapter(mContext, mMtbColts, this);
|
||||
mAdapter = new MainListListaColliAdapter(mContext, mMtbColts, this, mContext.bindings.listaBancaliEmptyView);
|
||||
mContext.bindings.listaColliMainList.setAdapter(mAdapter);
|
||||
|
||||
mContext.bindings.waterfallToolbar.setRecyclerView(mContext.bindings.listaColliMainList);
|
||||
|
||||
@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.vendita;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.databinding.DataBindingUtil;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
@ -25,6 +26,7 @@ import butterknife.OnClick;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.REST.CommonRESTException;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding;
|
||||
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ITitledFragment;
|
||||
@ -33,6 +35,7 @@ import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
|
||||
|
||||
public class MainVenditaFragment extends Fragment implements ITitledFragment {
|
||||
@ -123,9 +126,9 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment {
|
||||
|
||||
//Splitto gli ordini per codAnagOrd (Cliente)
|
||||
Stream.of(ordini)
|
||||
.distinctBy(x -> x.codAnagOrd)
|
||||
.sortBy(x -> x.ragSocOrd)
|
||||
.map(x -> x.codAnagOrd + "#_#" + x.ragSocOrd)
|
||||
.distinctBy(OrdineVenditaInevasoDTO::getCodAnagOrd)
|
||||
.sortBy(OrdineVenditaInevasoDTO::getRagSocOrd)
|
||||
.map(x -> x.getCodAnagOrd() + "#_#" + x.getRagSocOrd())
|
||||
.forEach(anagOrd -> {
|
||||
|
||||
String codAnagOrd = anagOrd.substring(0, anagOrd.indexOf("#_#"));
|
||||
@ -140,42 +143,45 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment {
|
||||
|
||||
//Raggruppo gli ordini del singolo fornitore suddivisi per data, dataCons e numero
|
||||
Stream.of(ordini)
|
||||
.filter(x -> x.codAnagOrd.equalsIgnoreCase(codAnagOrd))
|
||||
.distinctBy(x -> x.data + " - " + x.dataCons + " - " + x.numero)
|
||||
.filter(x -> x.getCodAnagOrd().equalsIgnoreCase(codAnagOrd))
|
||||
.distinctBy(x -> x.getDataOrdS() + " - " + x.getDataConsS() + " - " + x.getNumOrd())
|
||||
.forEach(ord -> {
|
||||
|
||||
|
||||
OrdineVenditaGroupedInevasoDTO.Ordine rigaOrdine = new OrdineVenditaGroupedInevasoDTO.Ordine();
|
||||
|
||||
rigaOrdine.data = ord.data;
|
||||
rigaOrdine.numero = ord.numero;
|
||||
rigaOrdine.codAnagOrd = ord.codAnagOrd;
|
||||
rigaOrdine.ragSocOrd = ord.ragSocOrd;
|
||||
rigaOrdine.pesoTotale = ord.pesoTotale;
|
||||
rigaOrdine.barcode = ord.barcode;
|
||||
rigaOrdine.termCons = ord.termCons;
|
||||
rigaOrdine.dataCons = ord.dataCons;
|
||||
rigaOrdine.rifOrd = ord.rifOrd;
|
||||
rigaOrdine
|
||||
.setData(ord.getDataOrdS())
|
||||
.setNumero(ord.getNumOrd())
|
||||
.setCodAnagOrd(ord.getCodAnagOrd())
|
||||
.setRagSocOrd(ord.getRagSocOrd())
|
||||
.setPesoTotale(ord.getPesoTotale() != null ? ord.getPesoTotale().floatValue() : null)
|
||||
.setBarcode(ord.getBarcode())
|
||||
.setTermCons(ord.getTermCons())
|
||||
.setDataCons(ord.getDataConsS())
|
||||
.setRifOrd(ord.getRifOrd())
|
||||
.setGestione(ord.getGestione());
|
||||
|
||||
rigaOrdine.clienti = new ArrayList<>();
|
||||
|
||||
|
||||
//Leggo tutti i clienti dell'ordine corrente
|
||||
Stream.of(ordini)
|
||||
.filter(x -> x.codAnagOrd.equalsIgnoreCase(codAnagOrd) &&
|
||||
x.numero == ord.numero &&
|
||||
x.data.equalsIgnoreCase(ord.data) &&
|
||||
x.dataCons.equalsIgnoreCase(ord.dataCons))
|
||||
.distinctBy(x -> x.codJcom)
|
||||
.filter(x -> x.getCodAnagOrd().equalsIgnoreCase(codAnagOrd) &&
|
||||
x.getNumOrd().equals(ord.getNumOrd()) &&
|
||||
x.getDataOrdS().equalsIgnoreCase(ord.getDataOrdS()) &&
|
||||
x.getDataConsS().equalsIgnoreCase(ord.getDataConsS()))
|
||||
.distinctBy(OrdineVenditaInevasoDTO::getCodJcom)
|
||||
.forEach(ordCliente -> {
|
||||
|
||||
OrdineVenditaGroupedInevasoDTO.Cliente cliente = new OrdineVenditaGroupedInevasoDTO.Cliente();
|
||||
|
||||
cliente.codJcom = ordCliente.codJcom;
|
||||
cliente.ragSocCom = ordCliente.ragSocCom;
|
||||
cliente.descrCom = ordCliente.descrizioneCom;
|
||||
cliente.dataCons = ordCliente.dataCons;
|
||||
cliente.numCnf = ordCliente.numCnf;
|
||||
cliente.rifOrd = ordCliente.rifOrd;
|
||||
cliente.codJcom = ordCliente.getCodJcom();
|
||||
cliente.ragSocCom = ordCliente.getRagSocCom();
|
||||
cliente.descrCom = ordCliente.getDescrizioneCom();
|
||||
cliente.dataCons = ordCliente.getDataConsS();
|
||||
cliente.numCnf = ordCliente.getNumCnfdaEvadere() != null ? ordCliente.getNumCnfdaEvadere().floatValue() : 0;
|
||||
cliente.rifOrd = ordCliente.getRifOrd();
|
||||
|
||||
rigaOrdine.clienti.add(cliente);
|
||||
|
||||
@ -219,10 +225,10 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment {
|
||||
|
||||
for(OrdineVenditaGroupedInevasoDTO ordine : selectedOrders){
|
||||
for(OrdineVenditaGroupedInevasoDTO.Ordine righeOrd : ordine.ordini){
|
||||
if(!barcodes.contains(righeOrd.barcode)) barcodes.add(righeOrd.barcode);
|
||||
if(!barcodes.contains(righeOrd.getBarcode())) barcodes.add(righeOrd.getBarcode());
|
||||
|
||||
if(dataCons == null) dataCons = righeOrd.dataCons;
|
||||
else if(!dataCons.equalsIgnoreCase(righeOrd.dataCons)) dataCons = "";
|
||||
if(dataCons == null) dataCons = righeOrd.getDataConsS();
|
||||
else if(!dataCons.equalsIgnoreCase(righeOrd.getDataConsS())) dataCons = "";
|
||||
}
|
||||
}
|
||||
|
||||
@ -238,7 +244,10 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment {
|
||||
|
||||
progress.dismiss();
|
||||
|
||||
List<String> codMarts = Stream.of(ordini).distinctBy(x -> x.codMart).map(x -> x.codMart).toList();
|
||||
List<String> codMarts = Stream.of(ordini)
|
||||
.distinctBy(PickingObjectDTO::getCodMart)
|
||||
.map(PickingObjectDTO::getCodMart)
|
||||
.toList();
|
||||
|
||||
int alreadyRegisteredUL = mtbColtList.size();
|
||||
|
||||
@ -252,9 +261,11 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment {
|
||||
null,
|
||||
() -> {
|
||||
|
||||
// Intent myIntent = new Intent(getActivity(), AccettazioneOrdineInevasoActivity.class);
|
||||
// myIntent.putExtra("key", (ArrayList<OrdineAccettazioneDTO>) ordini); //Optional parameters
|
||||
// getActivity().startActivity(myIntent);
|
||||
Intent myIntent = new Intent(getActivity(), VenditaOrdineInevasoActivity.class);
|
||||
myIntent.putExtra("keyPickingList", (ArrayList<PickingObjectDTO>) ordini); //Optional parameters
|
||||
myIntent.putExtra("keyTestateOrdini", (ArrayList<OrdineVenditaGroupedInevasoDTO>)selectedOrders);
|
||||
myIntent.putExtra("keyColliRegistrati", (ArrayList<MtbColt>)mtbColtList);
|
||||
getActivity().startActivity(myIntent);
|
||||
|
||||
}).show();
|
||||
|
||||
|
||||
@ -127,11 +127,11 @@ public class MainListVenditaAdapter extends RecyclerView.Adapter<MainListVendita
|
||||
});
|
||||
|
||||
TextView testataOrdTextView = groupModelView.findViewById(R.id.vendita_main_list_group_item_container_testata_ord);
|
||||
String testataOrdString = String.format(mContext.getString(R.string.ord_ven_testata), String.valueOf(ordine.numero), UtilityDate.formatDate(ordine.getData(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
String testataOrdString = String.format(mContext.getString(R.string.ord_ven_testata), String.valueOf(ordine.getNumero()), UtilityDate.formatDate(ordine.getData(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
testataOrdTextView.setText(Html.fromHtml(testataOrdString));
|
||||
|
||||
TextView testataDataConsTextView = groupModelView.findViewById(R.id.vendita_main_list_group_item_container_testata_data_cons);
|
||||
String testataDataConsString = String.format(mContext.getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(ordine.getDataCons(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
String testataDataConsString = String.format(mContext.getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(ordine.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
testataDataConsTextView.setText(Html.fromHtml(testataDataConsString));
|
||||
|
||||
LinearLayout clientLinearLayout = groupModelView.findViewById(R.id.vendita_main_list_group_item_container_clienti_ord);
|
||||
|
||||
@ -136,7 +136,7 @@ public class VenditaHelper {
|
||||
for(int j = 0; j < currentOrders.size(); j++){
|
||||
|
||||
whereCond += "(mtb_colr.data_ord = " + UtilityDate.formatDate(currentOrders.get(j).getData(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH) + " " +
|
||||
"AND mtb_colr.num_ord = " + currentOrders.get(j).numero + ") ";
|
||||
"AND mtb_colr.num_ord = " + currentOrders.get(j).getNumero() + ") ";
|
||||
|
||||
if(i != (orders.size() - 1)){
|
||||
whereCond += "OR ";
|
||||
|
||||
@ -9,6 +9,7 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.interfaces.ICheckBoxCallback;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
|
||||
public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable, Parcelable {
|
||||
@ -23,18 +24,24 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
|
||||
|
||||
|
||||
public static class Ordine implements Parcelable{
|
||||
public String data;
|
||||
public int numero;
|
||||
public String codAnagOrd = "";
|
||||
public String ragSocOrd = "";
|
||||
public Float pesoTotale;
|
||||
public String barcode;
|
||||
public String termCons;
|
||||
public String dataCons;
|
||||
public String rifOrd;
|
||||
private String data;
|
||||
private int numero;
|
||||
private String codAnagOrd = "";
|
||||
private String ragSocOrd = "";
|
||||
private Float pesoTotale;
|
||||
private String barcode;
|
||||
private String termCons;
|
||||
private String dataCons;
|
||||
private String rifOrd;
|
||||
private String gestione;
|
||||
|
||||
public List<Cliente> clienti;
|
||||
|
||||
public boolean checkBox;
|
||||
public List<ICheckBoxCallback> checkBoxCallback = new ArrayList<>();
|
||||
|
||||
|
||||
|
||||
public void setCheckbox(boolean newValue){
|
||||
checkBox = newValue;
|
||||
if(checkBoxCallback != null && checkBoxCallback.size() > 0) {
|
||||
@ -42,8 +49,6 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
|
||||
}
|
||||
}
|
||||
|
||||
public List<Cliente> clienti;
|
||||
|
||||
|
||||
public Date getData(){
|
||||
try {
|
||||
@ -54,7 +59,70 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
|
||||
return null;
|
||||
}
|
||||
|
||||
public Date getDataCons(){
|
||||
public Ordine setData(String data) {
|
||||
this.data = data;
|
||||
return this;
|
||||
}
|
||||
|
||||
public int getNumero() {
|
||||
return numero;
|
||||
}
|
||||
|
||||
public Ordine setNumero(int numero) {
|
||||
this.numero = numero;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodAnagOrd() {
|
||||
return codAnagOrd;
|
||||
}
|
||||
|
||||
public Ordine setCodAnagOrd(String codAnagOrd) {
|
||||
this.codAnagOrd = codAnagOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRagSocOrd() {
|
||||
return ragSocOrd;
|
||||
}
|
||||
|
||||
public Ordine setRagSocOrd(String ragSocOrd) {
|
||||
this.ragSocOrd = ragSocOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Float getPesoTotale() {
|
||||
return pesoTotale;
|
||||
}
|
||||
|
||||
public Ordine setPesoTotale(Float pesoTotale) {
|
||||
this.pesoTotale = pesoTotale;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getBarcode() {
|
||||
return barcode;
|
||||
}
|
||||
|
||||
public Ordine setBarcode(String barcode) {
|
||||
this.barcode = barcode;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTermCons() {
|
||||
return termCons;
|
||||
}
|
||||
|
||||
public Ordine setTermCons(String termCons) {
|
||||
this.termCons = termCons;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDataConsS(){
|
||||
return dataCons;
|
||||
}
|
||||
|
||||
public Date getDataConsD(){
|
||||
try {
|
||||
return UtilityDate.recognizeDate(dataCons);
|
||||
} catch (Exception e) {
|
||||
@ -62,6 +130,52 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Ordine setDataCons(String dataCons) {
|
||||
this.dataCons = dataCons;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRifOrd() {
|
||||
return rifOrd;
|
||||
}
|
||||
|
||||
public Ordine setRifOrd(String rifOrd) {
|
||||
this.rifOrd = rifOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getGestione() {
|
||||
return gestione;
|
||||
}
|
||||
|
||||
public GestioneEnum getGestioneEnum() {
|
||||
return GestioneEnum.fromString(getGestione());
|
||||
}
|
||||
|
||||
public Ordine setGestione(String gestione) {
|
||||
this.gestione = gestione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<Cliente> getClienti() {
|
||||
return clienti;
|
||||
}
|
||||
|
||||
public Ordine setClienti(List<Cliente> clienti) {
|
||||
this.clienti = clienti;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isCheckBox() {
|
||||
return checkBox;
|
||||
}
|
||||
|
||||
public Ordine setCheckBox(boolean checkBox) {
|
||||
this.checkBox = checkBox;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Ordine(){}
|
||||
|
||||
protected Ordine(Parcel in) {
|
||||
@ -75,11 +189,12 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
|
||||
dataCons = in.readString();
|
||||
rifOrd = in.readString();
|
||||
if (in.readByte() == 0x01) {
|
||||
clienti = new ArrayList<Cliente>();
|
||||
clienti = new ArrayList<>();
|
||||
in.readList(clienti, Cliente.class.getClassLoader());
|
||||
} else {
|
||||
clienti = null;
|
||||
}
|
||||
gestione = in.readString();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -109,6 +224,7 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
|
||||
dest.writeByte((byte) (0x01));
|
||||
dest.writeList(clienti);
|
||||
}
|
||||
dest.writeString(gestione);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
@ -131,7 +247,7 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
|
||||
public String ragSocCom;
|
||||
public int idRiga;
|
||||
public String dataCons;
|
||||
public Integer numCnf;
|
||||
public Float numCnf;
|
||||
public String descrCom;
|
||||
public String rifOrd;
|
||||
|
||||
@ -151,7 +267,7 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
|
||||
ragSocCom = in.readString();
|
||||
idRiga = in.readInt();
|
||||
dataCons = in.readString();
|
||||
numCnf = in.readByte() == 0x00 ? null : in.readInt();
|
||||
numCnf = in.readByte() == 0x00 ? null : in.readFloat();
|
||||
descrCom = in.readString();
|
||||
rifOrd = in.readString();
|
||||
}
|
||||
@ -171,7 +287,7 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
|
||||
dest.writeByte((byte) (0x00));
|
||||
} else {
|
||||
dest.writeByte((byte) (0x01));
|
||||
dest.writeInt(numCnf);
|
||||
dest.writeFloat(numCnf);
|
||||
}
|
||||
dest.writeString(descrCom);
|
||||
dest.writeString(rifOrd);
|
||||
@ -197,7 +313,7 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
|
||||
codAnagClie = in.readString();
|
||||
nomeCliente = in.readString();
|
||||
if (in.readByte() == 0x01) {
|
||||
ordini = new ArrayList<Ordine>();
|
||||
ordini = new ArrayList<>();
|
||||
in.readList(ordini, Ordine.class.getClassLoader());
|
||||
} else {
|
||||
ordini = null;
|
||||
|
||||
@ -1,23 +1,444 @@
|
||||
package it.integry.integrywmsnative.gest.vendita.dto;
|
||||
|
||||
public class OrdineVenditaInevasoDTO {
|
||||
public String data;
|
||||
public int numero;
|
||||
public String termCons;
|
||||
public String codAuto;
|
||||
public String descrizioneAuto;
|
||||
public String rifOrd;
|
||||
public String codVvet;
|
||||
public String descrizioneVettore;
|
||||
public String dataInizTrasp;
|
||||
public String codJcom = "";
|
||||
public String descrizioneCom = "";
|
||||
public String codAnagOrd = "";
|
||||
public String ragSocOrd = "";
|
||||
public String ragSocCom = "";
|
||||
public Float pesoTotale;
|
||||
public Integer numCnf;
|
||||
public String dataCons;
|
||||
public String barcode;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class OrdineVenditaInevasoDTO implements Parcelable {
|
||||
|
||||
private String data;
|
||||
private Integer numero;
|
||||
private String gestione;
|
||||
private String listino;
|
||||
private String termCons;
|
||||
private String codAuto;
|
||||
private String descrizioneAuto;
|
||||
private String codVvet;
|
||||
private String descrizioneVettore;
|
||||
private String dataInizTrasp;
|
||||
private String descrizionePaga;
|
||||
private String rifOrd;
|
||||
private String codAnagOrd;
|
||||
private String codJcom;
|
||||
private String descrizioneCom;
|
||||
private String ragSocCom;
|
||||
private String ragSocOrd;
|
||||
private String destinatario;
|
||||
private String citta;
|
||||
private String provincia;
|
||||
private String indirizzo;
|
||||
private BigDecimal pesoTotale;
|
||||
private BigDecimal numCnfdaEvadere;
|
||||
private BigDecimal numCnfDisp;
|
||||
private String dataCons;
|
||||
private String barcode;
|
||||
private Integer numRighe;
|
||||
private Integer righeInPartenza;
|
||||
private BigDecimal saldoContabile;
|
||||
private String codVzon;
|
||||
private String ragSocOrdV;
|
||||
|
||||
|
||||
protected OrdineVenditaInevasoDTO(Parcel in) {
|
||||
data = in.readString();
|
||||
if (in.readByte() == 0) {
|
||||
numero = null;
|
||||
} else {
|
||||
numero = in.readInt();
|
||||
}
|
||||
gestione = in.readString();
|
||||
listino = in.readString();
|
||||
termCons = in.readString();
|
||||
codAuto = in.readString();
|
||||
descrizioneAuto = in.readString();
|
||||
codVvet = in.readString();
|
||||
descrizioneVettore = in.readString();
|
||||
dataInizTrasp = in.readString();
|
||||
descrizionePaga = in.readString();
|
||||
rifOrd = in.readString();
|
||||
codAnagOrd = in.readString();
|
||||
codJcom = in.readString();
|
||||
descrizioneCom = in.readString();
|
||||
ragSocCom = in.readString();
|
||||
ragSocOrd = in.readString();
|
||||
destinatario = in.readString();
|
||||
citta = in.readString();
|
||||
provincia = in.readString();
|
||||
indirizzo = in.readString();
|
||||
dataCons = in.readString();
|
||||
barcode = in.readString();
|
||||
if (in.readByte() == 0) {
|
||||
numRighe = null;
|
||||
} else {
|
||||
numRighe = in.readInt();
|
||||
}
|
||||
if (in.readByte() == 0) {
|
||||
righeInPartenza = null;
|
||||
} else {
|
||||
righeInPartenza = in.readInt();
|
||||
}
|
||||
codVzon = in.readString();
|
||||
ragSocOrdV = in.readString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
dest.writeString(data);
|
||||
if (numero == null) {
|
||||
dest.writeByte((byte) 0);
|
||||
} else {
|
||||
dest.writeByte((byte) 1);
|
||||
dest.writeInt(numero);
|
||||
}
|
||||
dest.writeString(gestione);
|
||||
dest.writeString(listino);
|
||||
dest.writeString(termCons);
|
||||
dest.writeString(codAuto);
|
||||
dest.writeString(descrizioneAuto);
|
||||
dest.writeString(codVvet);
|
||||
dest.writeString(descrizioneVettore);
|
||||
dest.writeString(dataInizTrasp);
|
||||
dest.writeString(descrizionePaga);
|
||||
dest.writeString(rifOrd);
|
||||
dest.writeString(codAnagOrd);
|
||||
dest.writeString(codJcom);
|
||||
dest.writeString(descrizioneCom);
|
||||
dest.writeString(ragSocCom);
|
||||
dest.writeString(ragSocOrd);
|
||||
dest.writeString(destinatario);
|
||||
dest.writeString(citta);
|
||||
dest.writeString(provincia);
|
||||
dest.writeString(indirizzo);
|
||||
dest.writeString(dataCons);
|
||||
dest.writeString(barcode);
|
||||
if (numRighe == null) {
|
||||
dest.writeByte((byte) 0);
|
||||
} else {
|
||||
dest.writeByte((byte) 1);
|
||||
dest.writeInt(numRighe);
|
||||
}
|
||||
if (righeInPartenza == null) {
|
||||
dest.writeByte((byte) 0);
|
||||
} else {
|
||||
dest.writeByte((byte) 1);
|
||||
dest.writeInt(righeInPartenza);
|
||||
}
|
||||
dest.writeString(codVzon);
|
||||
dest.writeString(ragSocOrdV);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static final Creator<OrdineVenditaInevasoDTO> CREATOR = new Creator<OrdineVenditaInevasoDTO>() {
|
||||
@Override
|
||||
public OrdineVenditaInevasoDTO createFromParcel(Parcel in) {
|
||||
return new OrdineVenditaInevasoDTO(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrdineVenditaInevasoDTO[] newArray(int size) {
|
||||
return new OrdineVenditaInevasoDTO[size];
|
||||
}
|
||||
};
|
||||
|
||||
public String getDataOrdS() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public Date getDataOrdD() throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
return sdf.parse(getDataOrdS());
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setData(String data) {
|
||||
this.data = data;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getNumOrd() {
|
||||
return numero;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setNumero(Integer numero) {
|
||||
this.numero = numero;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getGestione() {
|
||||
return gestione;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setGestione(String gestione) {
|
||||
this.gestione = gestione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getListino() {
|
||||
return listino;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setListino(String listino) {
|
||||
this.listino = listino;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTermCons() {
|
||||
return termCons;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setTermCons(String termCons) {
|
||||
this.termCons = termCons;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodAuto() {
|
||||
return codAuto;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setCodAuto(String codAuto) {
|
||||
this.codAuto = codAuto;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrizioneAuto() {
|
||||
return descrizioneAuto;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setDescrizioneAuto(String descrizioneAuto) {
|
||||
this.descrizioneAuto = descrizioneAuto;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVvet() {
|
||||
return codVvet;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setCodVvet(String codVvet) {
|
||||
this.codVvet = codVvet;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrizioneVettore() {
|
||||
return descrizioneVettore;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setDescrizioneVettore(String descrizioneVettore) {
|
||||
this.descrizioneVettore = descrizioneVettore;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDataInizTraspS() {
|
||||
return dataInizTrasp;
|
||||
}
|
||||
|
||||
public Date getDataInizTraspD() throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
return sdf.parse(getDataInizTraspS());
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setDataInizTrasp(String dataInizTrasp) {
|
||||
this.dataInizTrasp = dataInizTrasp;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrizionePaga() {
|
||||
return descrizionePaga;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setDescrizionePaga(String descrizionePaga) {
|
||||
this.descrizionePaga = descrizionePaga;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRifOrd() {
|
||||
return rifOrd;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setRifOrd(String rifOrd) {
|
||||
this.rifOrd = rifOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodAnagOrd() {
|
||||
return codAnagOrd;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setCodAnagOrd(String codAnagOrd) {
|
||||
this.codAnagOrd = codAnagOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodJcom() {
|
||||
return codJcom;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setCodJcom(String codJcom) {
|
||||
this.codJcom = codJcom;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrizioneCom() {
|
||||
return descrizioneCom;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setDescrizioneCom(String descrizioneCom) {
|
||||
this.descrizioneCom = descrizioneCom;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRagSocCom() {
|
||||
return ragSocCom;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setRagSocCom(String ragSocCom) {
|
||||
this.ragSocCom = ragSocCom;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRagSocOrd() {
|
||||
return ragSocOrd;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setRagSocOrd(String ragSocOrd) {
|
||||
this.ragSocOrd = ragSocOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDestinatario() {
|
||||
return destinatario;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setDestinatario(String destinatario) {
|
||||
this.destinatario = destinatario;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCitta() {
|
||||
return citta;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setCitta(String citta) {
|
||||
this.citta = citta;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getProvincia() {
|
||||
return provincia;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setProvincia(String provincia) {
|
||||
this.provincia = provincia;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getIndirizzo() {
|
||||
return indirizzo;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setIndirizzo(String indirizzo) {
|
||||
this.indirizzo = indirizzo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getPesoTotale() {
|
||||
return pesoTotale;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setPesoTotale(BigDecimal pesoTotale) {
|
||||
this.pesoTotale = pesoTotale;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getNumCnfdaEvadere() {
|
||||
return numCnfdaEvadere;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setNumCnfdaEvadere(BigDecimal numCnfdaEvadere) {
|
||||
this.numCnfdaEvadere = numCnfdaEvadere;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getNumCnfDisp() {
|
||||
return numCnfDisp;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setNumCnfDisp(BigDecimal numCnfDisp) {
|
||||
this.numCnfDisp = numCnfDisp;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDataConsS() {
|
||||
return dataCons;
|
||||
}
|
||||
|
||||
public Date getDataConsD() throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
return sdf.parse(getDataConsS());
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setDataCons(String dataCons) {
|
||||
this.dataCons = dataCons;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getBarcode() {
|
||||
return barcode;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setBarcode(String barcode) {
|
||||
this.barcode = barcode;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getNumRighe() {
|
||||
return numRighe;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setNumRighe(Integer numRighe) {
|
||||
this.numRighe = numRighe;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getRigheInPartenza() {
|
||||
return righeInPartenza;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setRigheInPartenza(Integer righeInPartenza) {
|
||||
this.righeInPartenza = righeInPartenza;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getSaldoContabile() {
|
||||
return saldoContabile;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setSaldoContabile(BigDecimal saldoContabile) {
|
||||
this.saldoContabile = saldoContabile;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVzon() {
|
||||
return codVzon;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setCodVzon(String codVzon) {
|
||||
this.codVzon = codVzon;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRagSocOrdV() {
|
||||
return ragSocOrdV;
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setRagSocOrdV(String ragSocOrdV) {
|
||||
this.ragSocOrdV = ragSocOrdV;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,32 +1,162 @@
|
||||
package it.integry.integrywmsnative.gest.vendita.dto;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class PickingObjectDTO {
|
||||
public class PickingObjectDTO implements Parcelable {
|
||||
|
||||
public Integer numCollo;
|
||||
public String gestione;
|
||||
public String serCollo;
|
||||
public String descrizioneEstesa;
|
||||
public String codJcom;
|
||||
public String codMart;
|
||||
public String posizione;
|
||||
public BigDecimal qtaCollo;
|
||||
public String dataCollo;
|
||||
public Integer idViaggio;
|
||||
public String codTagl;
|
||||
public String codCol;
|
||||
public String dataScad;
|
||||
public String codArtFor;
|
||||
public String partitaMag;
|
||||
public BigDecimal qtaOrd;
|
||||
public BigDecimal numCnfCollo;
|
||||
public BigDecimal numCnf;
|
||||
public String codAlis;
|
||||
public BigDecimal colliPedana;
|
||||
private Integer numCollo;
|
||||
private String gestione;
|
||||
private String serCollo;
|
||||
private String descrizioneEstesa;
|
||||
private String codJcom;
|
||||
private String codMart;
|
||||
private String posizione;
|
||||
private BigDecimal qtaCollo;
|
||||
private String dataCollo;
|
||||
private Integer idViaggio;
|
||||
private String codTagl;
|
||||
private String codCol;
|
||||
private String dataScad;
|
||||
private String codArtFor;
|
||||
private String partitaMag;
|
||||
private BigDecimal qtaOrd;
|
||||
private BigDecimal numCnfCollo;
|
||||
private BigDecimal numCnf;
|
||||
private String codAlis;
|
||||
private BigDecimal colliPedana;
|
||||
|
||||
private Boolean hidden = null;
|
||||
|
||||
protected PickingObjectDTO(Parcel in) {
|
||||
if (in.readByte() == 0) {
|
||||
numCollo = null;
|
||||
} else {
|
||||
numCollo = in.readInt();
|
||||
}
|
||||
gestione = in.readString();
|
||||
serCollo = in.readString();
|
||||
descrizioneEstesa = in.readString();
|
||||
codJcom = in.readString();
|
||||
codMart = in.readString();
|
||||
posizione = in.readString();
|
||||
dataCollo = in.readString();
|
||||
if (in.readByte() == 0) {
|
||||
idViaggio = null;
|
||||
} else {
|
||||
idViaggio = in.readInt();
|
||||
}
|
||||
codTagl = in.readString();
|
||||
codCol = in.readString();
|
||||
dataScad = in.readString();
|
||||
codArtFor = in.readString();
|
||||
partitaMag = in.readString();
|
||||
codAlis = in.readString();
|
||||
hidden = in.readByte() == 0x00 ? null : in.readByte() != 0x00;
|
||||
|
||||
if (in.readByte() == 0) {
|
||||
qtaCollo = null;
|
||||
} else {
|
||||
qtaCollo = new BigDecimal(in.readFloat());
|
||||
}
|
||||
if (in.readByte() == 0) {
|
||||
qtaOrd = null;
|
||||
} else {
|
||||
qtaOrd = new BigDecimal(in.readFloat());
|
||||
}
|
||||
if (in.readByte() == 0) {
|
||||
numCnf = null;
|
||||
} else {
|
||||
numCnf = new BigDecimal(in.readFloat());
|
||||
}
|
||||
if (in.readByte() == 0) {
|
||||
numCnfCollo = null;
|
||||
} else {
|
||||
numCnfCollo = new BigDecimal(in.readFloat());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
if (numCollo == null) {
|
||||
dest.writeByte((byte) 0);
|
||||
} else {
|
||||
dest.writeByte((byte) 1);
|
||||
dest.writeInt(numCollo);
|
||||
}
|
||||
dest.writeString(gestione);
|
||||
dest.writeString(serCollo);
|
||||
dest.writeString(descrizioneEstesa);
|
||||
dest.writeString(codJcom);
|
||||
dest.writeString(codMart);
|
||||
dest.writeString(posizione);
|
||||
dest.writeString(dataCollo);
|
||||
if (idViaggio == null) {
|
||||
dest.writeByte((byte) 0);
|
||||
} else {
|
||||
dest.writeByte((byte) 1);
|
||||
dest.writeInt(idViaggio);
|
||||
}
|
||||
dest.writeString(codTagl);
|
||||
dest.writeString(codCol);
|
||||
dest.writeString(dataScad);
|
||||
dest.writeString(codArtFor);
|
||||
dest.writeString(partitaMag);
|
||||
dest.writeString(codAlis);
|
||||
if (hidden == null) {
|
||||
dest.writeByte((byte) (0x00));
|
||||
} else {
|
||||
dest.writeByte((byte) (0x01));
|
||||
dest.writeByte((byte) (hidden ? 0x01 : 0x00));
|
||||
}
|
||||
|
||||
if (qtaCollo == null) {
|
||||
dest.writeByte((byte) (0x00));
|
||||
} else {
|
||||
dest.writeByte((byte) (0x01));
|
||||
dest.writeFloat(qtaCollo.floatValue());
|
||||
}
|
||||
if (qtaOrd == null) {
|
||||
dest.writeByte((byte) (0x00));
|
||||
} else {
|
||||
dest.writeByte((byte) (0x01));
|
||||
dest.writeFloat(qtaOrd.floatValue());
|
||||
}
|
||||
if (numCnf == null) {
|
||||
dest.writeByte((byte) (0x00));
|
||||
} else {
|
||||
dest.writeByte((byte) (0x01));
|
||||
dest.writeFloat(numCnf.floatValue());
|
||||
}
|
||||
if (numCnfCollo == null) {
|
||||
dest.writeByte((byte) (0x00));
|
||||
} else {
|
||||
dest.writeByte((byte) (0x01));
|
||||
dest.writeFloat(numCnfCollo.floatValue());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static final Creator<PickingObjectDTO> CREATOR = new Creator<PickingObjectDTO>() {
|
||||
@Override
|
||||
public PickingObjectDTO createFromParcel(Parcel in) {
|
||||
return new PickingObjectDTO(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PickingObjectDTO[] newArray(int size) {
|
||||
return new PickingObjectDTO[size];
|
||||
}
|
||||
};
|
||||
|
||||
public Integer getNumCollo() {
|
||||
return numCollo;
|
||||
@ -217,4 +347,13 @@ public class PickingObjectDTO {
|
||||
this.colliPedana = colliPedana;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Boolean isHidden() {
|
||||
return hidden;
|
||||
}
|
||||
|
||||
public PickingObjectDTO setHidden(boolean hidden) {
|
||||
this.hidden = hidden;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,108 @@
|
||||
package it.integry.integrywmsnative.gest.vendita_ordine_inevaso;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.databinding.DataBindingUtil;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.os.Bundle;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.databinding.ActivityVenditaOrdineInevasoBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
||||
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.viewmodel.VenditaOrdineInevasoViewModel;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
|
||||
|
||||
public class VenditaOrdineInevasoActivity extends AppCompatActivity {
|
||||
|
||||
|
||||
public ActivityVenditaOrdineInevasoBinding bindings;
|
||||
private VenditaOrdineInevasoViewModel mVenditaOrdineInevasoViewModel;
|
||||
private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
||||
|
||||
|
||||
private static final int PICK_UL_REQUEST = 1; // The request code
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
bindings = DataBindingUtil.setContentView(this, R.layout.activity_vendita_ordine_inevaso);
|
||||
FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude;
|
||||
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
|
||||
|
||||
List<PickingObjectDTO> pickingList = (ArrayList<PickingObjectDTO>)getIntent().getSerializableExtra("keyPickingList");
|
||||
List<OrdineVenditaGroupedInevasoDTO> testateOrdini = (ArrayList<OrdineVenditaGroupedInevasoDTO>)getIntent().getSerializableExtra("keyTestateOrdini");
|
||||
List<MtbColt> colliRegistrati = (ArrayList<MtbColt>) getIntent().getSerializableExtra("keyColliRegistrati");
|
||||
mVenditaOrdineInevasoViewModel = new VenditaOrdineInevasoViewModel(
|
||||
this, mArticoliInColloBottomSheetViewModel, pickingList, testateOrdini, colliRegistrati);
|
||||
|
||||
setSupportActionBar(this.bindings.toolbar);
|
||||
|
||||
setTitle(R.string.activity_vendita_inevaso_title);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onSupportNavigateUp() {
|
||||
onBackPressed();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
if(mArticoliInColloBottomSheetViewModel.isExpanded()){
|
||||
mArticoliInColloBottomSheetViewModel.collapse();
|
||||
} else if(mVenditaOrdineInevasoViewModel.thereIsAnOpenedUL()) {
|
||||
mArticoliInColloBottomSheetViewModel.closeCurrentUL();
|
||||
} else super.onBackPressed();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
// Inflate the menu; this adds items to the action bar if it is present.
|
||||
getMenuInflater().inflate(R.menu.activity_vendita_ordine_inevaso, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
// Handle item selection
|
||||
switch (item.getItemId()) {
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void startListaBancaliRegistratiActivity(ArrayList<MtbColt> mtbColts){
|
||||
Intent myIntent = new Intent(this, ListaBancaliActivity.class);
|
||||
myIntent.putExtra("key", mtbColts); //Optional parameters
|
||||
myIntent.putExtra(ListaBancaliActivity.Key.CanRecoverUL, true);
|
||||
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
// Check which request we're responding to
|
||||
if (requestCode == PICK_UL_REQUEST) {
|
||||
// Make sure the request was successful
|
||||
if (resultCode == RESULT_OK) {
|
||||
|
||||
MtbColt recoveredMtbColt = data.getParcelableExtra("key");
|
||||
|
||||
mVenditaOrdineInevasoViewModel.recoverUL(recoveredMtbColt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,227 @@
|
||||
package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core;
|
||||
|
||||
import android.content.Context;
|
||||
import android.databinding.ObservableArrayList;
|
||||
import android.databinding.ObservableList;
|
||||
import android.graphics.Color;
|
||||
import android.support.v4.util.Pools;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.CommonConst;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||
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;
|
||||
|
||||
public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<MainListOrdineVenditaInevasoAdapter.ViewHolder> {
|
||||
|
||||
protected Context mContext;
|
||||
protected List<VenditaOrdineInevasoListViewModel> mDataset;
|
||||
protected ObservableArrayList<VenditaOrdineInevasoListViewModel> mObservableDataset;
|
||||
protected IOnOrdineRowDispatchCallback mOrdineRowDispatch;
|
||||
|
||||
private static final Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(200);
|
||||
|
||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
// each data item is just a string in this case
|
||||
protected View mGroupTitle;
|
||||
protected LinearLayout mLinearLayoutGroupItemContainer;
|
||||
|
||||
protected List<View> pool = new ArrayList<>();
|
||||
|
||||
public ViewHolder(View v) {
|
||||
super(v);
|
||||
}
|
||||
}
|
||||
|
||||
public MainListOrdineVenditaInevasoAdapter(Context context, ObservableArrayList<VenditaOrdineInevasoListViewModel> myDataset) {
|
||||
mContext = context;
|
||||
mObservableDataset = myDataset;
|
||||
|
||||
|
||||
mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
|
||||
mObservableDataset.addOnListChangedCallback(onListChangedCallback);
|
||||
}
|
||||
|
||||
public void setOnOrdineRowDispatchCallback(IOnOrdineRowDispatchCallback ordineRowDispatch) {
|
||||
mOrdineRowDispatch = ordineRowDispatch;
|
||||
}
|
||||
|
||||
private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback<ObservableList<VenditaOrdineInevasoListViewModel>>() {
|
||||
@Override
|
||||
public void onChanged(ObservableList<VenditaOrdineInevasoListViewModel> sender) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeChanged(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeInserted(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeMoved(ObservableList<VenditaOrdineInevasoListViewModel> sender, int fromPosition, int toPosition, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeRemoved(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
private void refreshNotHiddenElements() {
|
||||
mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@Override
|
||||
public MainListOrdineVenditaInevasoAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
// create a new view
|
||||
View v = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.vendita_ordine_inevaso_main_list_model, parent, false);
|
||||
|
||||
|
||||
ViewHolder vh = new ViewHolder(v);
|
||||
|
||||
TextView descrizioneArtForn = v.findViewById(R.id.vendita_ordine_inevaso_main_list__descrizione_gruppo);
|
||||
vh.mGroupTitle = descrizioneArtForn;
|
||||
|
||||
LinearLayout groupItemContainer = v.findViewById(R.id.vendita_ordine_inevaso_main_list__group_item_container);
|
||||
vh.mLinearLayoutGroupItemContainer = groupItemContainer;
|
||||
|
||||
return vh;
|
||||
}
|
||||
|
||||
|
||||
// Replace the contents of a view (invoked by the layout manager)
|
||||
@Override
|
||||
public void onBindViewHolder(MainListOrdineVenditaInevasoAdapter.ViewHolder holder, int position) {
|
||||
((TextView)holder.mGroupTitle).setText(mDataset.get(position).descrizioneGroup);
|
||||
|
||||
List<VenditaOrdineInevasoListViewModel.SubItem> subset = mDataset.get(position).rows;
|
||||
|
||||
int visibleElementsCounter = 0;
|
||||
|
||||
for(int i = 0; i < subset.size(); i++) {
|
||||
|
||||
final VenditaOrdineInevasoListViewModel.SubItem rowItem = subset.get(i);
|
||||
|
||||
if(!rowItem.getOriginalModel().isHidden()) {
|
||||
visibleElementsCounter++;
|
||||
|
||||
View groupModelViewPool = (View) sPool.acquire();
|
||||
if (groupModelViewPool == null) {
|
||||
groupModelViewPool = LayoutInflater.from(mContext)
|
||||
.inflate(R.layout.vendita_ordine_inevaso_main_list_child_group_model, holder.mLinearLayoutGroupItemContainer, false);
|
||||
}
|
||||
|
||||
View groupModelView = groupModelViewPool;
|
||||
holder.pool.add(groupModelView);
|
||||
|
||||
if (rowItem.getQtaRiservata().subtract(rowItem.getQtaOrdinata()).floatValue() >= 0 ) {
|
||||
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
|
||||
} else if (rowItem.getQtaRiservata().floatValue() > 0) {
|
||||
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
|
||||
} else if (visibleElementsCounter % 2 == 1) {
|
||||
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
|
||||
} else {
|
||||
groupModelView.setBackgroundColor(Color.WHITE);
|
||||
}
|
||||
|
||||
final TextView badge1 = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_badge1);
|
||||
badge1.setText(rowItem.getBadge1());
|
||||
|
||||
final TextView badge2 = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_badge2);
|
||||
badge2.setText(rowItem.getBadge2());
|
||||
badge2.setVisibility(UtilityString.isNullOrEmpty(rowItem.getBadge2()) ? View.GONE : View.VISIBLE);
|
||||
|
||||
|
||||
final TextView descrizione = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_descrizione);
|
||||
|
||||
String descrizioneString = rowItem.getDescrizione();
|
||||
int descrizioneColor = Color.BLACK;
|
||||
|
||||
if (UtilityString.isNullOrEmpty(descrizioneString)) {
|
||||
descrizioneString = mContext.getString(R.string.no_description);
|
||||
descrizioneColor = Color.GRAY;
|
||||
} else if (descrizioneString.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) {
|
||||
descrizioneString = mContext.getString(R.string.stock);
|
||||
}
|
||||
|
||||
descrizione.setText(descrizioneString);
|
||||
descrizione.setTextColor(descrizioneColor);
|
||||
|
||||
final TextView qtaEvasa = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_qta_evasa);
|
||||
qtaEvasa.setText(UtilityNumber.decimalToString(rowItem.getQtaRiservata()));
|
||||
|
||||
final TextView qtaTot = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_qta_tot);
|
||||
qtaTot.setText(UtilityNumber.decimalToString(rowItem.getQtaOrdinata()));
|
||||
|
||||
|
||||
groupModelView.setOnClickListener(view -> {
|
||||
if (mOrdineRowDispatch != null) {
|
||||
mOrdineRowDispatch.onOrdineRowDispatch(rowItem.getOriginalModel());
|
||||
}
|
||||
});
|
||||
|
||||
holder.mLinearLayoutGroupItemContainer.addView(groupModelView);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(MainListOrdineVenditaInevasoAdapter.ViewHolder holder){
|
||||
if(holder != null){
|
||||
for(int i = 0; i < holder.pool.size(); i++){
|
||||
((ViewGroup) holder.pool.get(i).getParent()).removeView(holder.pool.get(i));
|
||||
sPool.release(holder.pool.get(i));
|
||||
}
|
||||
|
||||
holder.pool.clear();
|
||||
}
|
||||
|
||||
super.onViewRecycled(holder);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Return the size of your dataset (invoked by the layout manager)
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return mDataset.size();
|
||||
}
|
||||
|
||||
|
||||
public interface IOnOrdineRowDispatchCallback {
|
||||
|
||||
void onOrdineRowDispatch(PickingObjectDTO item);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,114 @@
|
||||
package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core;
|
||||
|
||||
import android.content.Context;
|
||||
import android.databinding.ObservableArrayList;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
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;
|
||||
|
||||
public class VenditaOrdineInevasoHelper {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
private ObservableArrayList<VenditaOrdineInevasoListViewModel> mListViewModels = new ObservableArrayList<>();
|
||||
|
||||
public VenditaOrdineInevasoHelper(Context context){
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
public MainListOrdineVenditaInevasoAdapter getRightListAdapter() {
|
||||
return new MainListOrdineVenditaInevasoAdapter(mContext, mListViewModels);
|
||||
}
|
||||
|
||||
public void updateListModel(List<List<PickingObjectDTO>> mDataset, List<MtbColr> mtbColrs) throws Exception {
|
||||
|
||||
mListViewModels.clear();
|
||||
|
||||
mListViewModels.addAll(getListViewModelPerPosizione(mDataset, mtbColrs));
|
||||
|
||||
}
|
||||
|
||||
public List<List<PickingObjectDTO>> getPickingListRaggruppataPerPosizione(List<PickingObjectDTO> mPickingList, boolean forceHiddenCheck){
|
||||
|
||||
List<String> listOfKnownPositions = Stream.of(mPickingList)
|
||||
.map(PickingObjectDTO::getPosizione)
|
||||
.distinctBy(x -> x)
|
||||
.withoutNulls()
|
||||
.sortBy(x -> x)
|
||||
.toList();
|
||||
|
||||
listOfKnownPositions.add(null);
|
||||
|
||||
List<List<PickingObjectDTO>> groupedRighe = new ArrayList<>();
|
||||
for (String position : listOfKnownPositions) {
|
||||
|
||||
List<PickingObjectDTO> tmpList = Stream.of(mPickingList)
|
||||
.filter(x -> (x.getPosizione() == null && position == null) ||
|
||||
(x.getPosizione() != null && x.getPosizione().equalsIgnoreCase(position))).toList();
|
||||
|
||||
for(int i = 0; i < tmpList.size(); i++){
|
||||
if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
|
||||
if (tmpList.get(i).getQtaCollo().floatValue() <= 0) {
|
||||
tmpList.get(i).setHidden(true);
|
||||
} else tmpList.get(i).setHidden(false);
|
||||
}
|
||||
}
|
||||
|
||||
if(tmpList.size() > 0){
|
||||
groupedRighe.add(tmpList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return groupedRighe;
|
||||
}
|
||||
|
||||
|
||||
public List<VenditaOrdineInevasoListViewModel> getListViewModelPerPosizione(List<List<PickingObjectDTO>> groupedRighe, List<MtbColr> mtbColrs) {
|
||||
|
||||
List<VenditaOrdineInevasoListViewModel> listModel = new ArrayList<>();
|
||||
|
||||
for(int i = 0; i < groupedRighe.size(); i++) {
|
||||
List<PickingObjectDTO> currentGroup = groupedRighe.get(i);
|
||||
|
||||
VenditaOrdineInevasoListViewModel itemModel = new VenditaOrdineInevasoListViewModel();
|
||||
|
||||
|
||||
String posizione = UtilityString.isNullOrEmpty(currentGroup.get(0).getPosizione()) ? "N.A." : currentGroup.get(0).getPosizione();
|
||||
itemModel.descrizioneGroup = mContext.getResources().getText(R.string.position_text) + ": " + posizione;
|
||||
itemModel.rows = new ArrayList<>();
|
||||
|
||||
for(int k = 0; k < currentGroup.size(); k++) {
|
||||
final PickingObjectDTO currentItem = currentGroup.get(k);
|
||||
final VenditaOrdineInevasoListViewModel.SubItem rowModel = new VenditaOrdineInevasoListViewModel.SubItem();
|
||||
|
||||
String badge1 = currentItem.getCodAlis() + " - " + (!UtilityString.isNullOrEmpty(currentItem.getCodArtFor()) ? currentItem.getCodArtFor() : currentItem.getCodMart());
|
||||
rowModel.setBadge1(badge1);
|
||||
|
||||
rowModel.setBadge2(UtilityString.isNullOrEmpty(currentItem.getCodJcom()) ? null : currentItem.getCodJcom());
|
||||
|
||||
rowModel.setDescrizione(currentItem.getDescrizioneEstesa());
|
||||
|
||||
//TODO: Aggiungere la qta evasa
|
||||
rowModel.setQtaOrdinata(currentItem.getNumCollo() != null ? currentItem.getQtaCollo() : currentItem.getQtaOrd());
|
||||
|
||||
rowModel.setOriginalModel(currentItem);
|
||||
|
||||
itemModel.rows.add(rowModel);
|
||||
}
|
||||
listModel.add(itemModel);
|
||||
}
|
||||
|
||||
return listModel;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,85 @@
|
||||
package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.dto;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||
|
||||
public class VenditaOrdineInevasoListViewModel {
|
||||
public String descrizioneGroup;
|
||||
public List<SubItem> rows;
|
||||
|
||||
public boolean isHidden(){
|
||||
if(rows == null || rows.size() == 0) return true;
|
||||
return Stream.of(rows).filter(x -> x.originalModel.isHidden() != null && !x.originalModel.isHidden()).count() == 0;
|
||||
}
|
||||
|
||||
public static class SubItem {
|
||||
|
||||
private String badge1;
|
||||
private String badge2;
|
||||
|
||||
private String descrizione;
|
||||
private BigDecimal qtaRiservata;
|
||||
private BigDecimal qtaOrdinata;
|
||||
|
||||
private PickingObjectDTO originalModel;
|
||||
|
||||
public String getBadge1() {
|
||||
return badge1;
|
||||
}
|
||||
|
||||
public SubItem setBadge1(String badge1) {
|
||||
this.badge1 = badge1;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getBadge2() {
|
||||
return badge2;
|
||||
}
|
||||
|
||||
public SubItem setBadge2(String badge2) {
|
||||
this.badge2 = badge2;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrizione() {
|
||||
return descrizione;
|
||||
}
|
||||
|
||||
public SubItem setDescrizione(String descrizione) {
|
||||
this.descrizione = descrizione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaRiservata() {
|
||||
return qtaRiservata == null ? BigDecimal.ZERO : qtaRiservata;
|
||||
}
|
||||
|
||||
public SubItem setQtaRiservata(BigDecimal qtaRiservata) {
|
||||
this.qtaRiservata = qtaRiservata;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaOrdinata() {
|
||||
return qtaOrdinata == null ? BigDecimal.ZERO : qtaOrdinata;
|
||||
}
|
||||
|
||||
public SubItem setQtaOrdinata(BigDecimal qtaOrdinata) {
|
||||
this.qtaOrdinata = qtaOrdinata;
|
||||
return this;
|
||||
}
|
||||
|
||||
public PickingObjectDTO getOriginalModel() {
|
||||
return originalModel;
|
||||
}
|
||||
|
||||
public SubItem setOriginalModel(PickingObjectDTO originalModel) {
|
||||
this.originalModel = originalModel;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,4 @@
|
||||
package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.rest;
|
||||
|
||||
public interface OrdineVenditaInevasoRESTConsumerService {
|
||||
}
|
||||
@ -0,0 +1,222 @@
|
||||
package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.viewmodel;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.databinding.ObservableField;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.model.FiltroOrdineDTO;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita.rest.OrdiniVenditaRESTConsumerService;
|
||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity;
|
||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.VenditaOrdineInevasoHelper;
|
||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.MainListOrdineVenditaInevasoAdapter;
|
||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.rest.OrdineVenditaInevasoRESTConsumerService;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
|
||||
|
||||
import it.integry.integrywmsnative.BR;
|
||||
|
||||
public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
|
||||
|
||||
public ObservableField<Boolean> isFabVisible = new ObservableField<>();
|
||||
|
||||
private final VenditaOrdineInevasoActivity mActivity;
|
||||
private final ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
||||
|
||||
private final List<PickingObjectDTO> mPickingList;
|
||||
private List<List<PickingObjectDTO>> mGroupedPickingList;
|
||||
private final List<OrdineVenditaGroupedInevasoDTO> mTestateOrdini;
|
||||
private final List<MtbColt> mColliRegistrati;
|
||||
|
||||
private VenditaOrdineInevasoHelper mHelper;
|
||||
private MainListOrdineVenditaInevasoAdapter mAdapter;
|
||||
|
||||
private GestioneEnum defaultGestioneOfUL = null;
|
||||
private List<FiltroOrdineDTO> defaultFiltroOrdine = null;
|
||||
|
||||
public VenditaOrdineInevasoViewModel(VenditaOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<PickingObjectDTO> pickingList, List<OrdineVenditaGroupedInevasoDTO> orders, List<MtbColt> colliRegistrati) {
|
||||
this.mActivity = activity;
|
||||
this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
|
||||
this.mPickingList = pickingList;
|
||||
this.mTestateOrdini = orders;
|
||||
this.mColliRegistrati = colliRegistrati;
|
||||
|
||||
this.isFabVisible.set(true);
|
||||
|
||||
this.mActivity.bindings.setVariable(BR.viewmodel, this);
|
||||
|
||||
this.init();
|
||||
this.initDatiPicking();
|
||||
}
|
||||
|
||||
private void init(){
|
||||
mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this);
|
||||
mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback(() -> this.refreshOrderBy(false));
|
||||
mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback(() -> this.refreshOrderBy(false));
|
||||
|
||||
mHelper = new VenditaOrdineInevasoHelper(mActivity);
|
||||
|
||||
initRecyclerView();
|
||||
}
|
||||
|
||||
private void initRecyclerView(){
|
||||
//RecyclerView setup
|
||||
mActivity.bindings.venditaOrdineMainList.setHasFixedSize(true);
|
||||
|
||||
mActivity.bindings.venditaOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
|
||||
mAdapter = mHelper.getRightListAdapter();
|
||||
|
||||
try {
|
||||
this.mGroupedPickingList = mHelper.getPickingListRaggruppataPerPosizione(mPickingList, true);
|
||||
mHelper.updateListModel(this.mGroupedPickingList, null);
|
||||
} catch (Exception e) {
|
||||
UtilityExceptions.defaultException(mActivity, e);
|
||||
}
|
||||
|
||||
// mAdapter.setOnOrdineRowDispatchCallback(this);
|
||||
mActivity.bindings.venditaOrdineMainList.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
private void initDatiPicking() {
|
||||
if(this.mTestateOrdini != null && this.mTestateOrdini.size() > 0){
|
||||
boolean shouldBreak = false;
|
||||
|
||||
//Definizione della gestione collo di default
|
||||
for(int i = 0; i < this.mTestateOrdini.size(); i++){
|
||||
|
||||
for(int j = 0; j < this.mTestateOrdini.get(i).ordini.size(); j++){
|
||||
|
||||
OrdineVenditaGroupedInevasoDTO.Ordine dto = this.mTestateOrdini.get(i).ordini.get(j);
|
||||
|
||||
if(defaultGestioneOfUL == null) {
|
||||
defaultGestioneOfUL = dto.getGestioneEnum();
|
||||
}
|
||||
|
||||
if(dto.getGestioneEnum() != defaultGestioneOfUL){
|
||||
//TODO: scrivere qui la gestione di default che deve avere il collo nel caso in cui ho fatto il pick di ordini L e V insieme
|
||||
defaultGestioneOfUL = GestioneEnum.LAVORAZIONE;
|
||||
shouldBreak = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(shouldBreak) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//Definizione del filtro ordine da applicare a tutti i colli generati
|
||||
for(int i = 0; i < this.mTestateOrdini.size(); i++){
|
||||
|
||||
if(defaultFiltroOrdine == null) defaultFiltroOrdine = new ArrayList<>();
|
||||
|
||||
for(int j = 0; j < this.mTestateOrdini.get(i).ordini.size(); j++){
|
||||
OrdineVenditaGroupedInevasoDTO.Ordine dto = this.mTestateOrdini.get(i).ordini.get(j);
|
||||
|
||||
defaultFiltroOrdine.add(new FiltroOrdineDTO()
|
||||
.setDataOrd(dto.getData())
|
||||
.setNumOrd(dto.getNumero())
|
||||
.setGestioneOrd(dto.getGestione()));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void refreshOrderBy(boolean forceHiddenCheck){
|
||||
|
||||
try {
|
||||
List<MtbColr> mtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get() != null ? mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() : null;
|
||||
|
||||
this.mGroupedPickingList = mHelper.getPickingListRaggruppataPerPosizione(mPickingList, forceHiddenCheck);
|
||||
mHelper.updateListModel(this.mGroupedPickingList, mtbColrs);
|
||||
} catch (Exception e) {
|
||||
UtilityExceptions.defaultException(mActivity, e);
|
||||
}
|
||||
}
|
||||
|
||||
public void recoverUL(MtbColt recoveredMtbColt){
|
||||
|
||||
for(int i = 0; i < recoveredMtbColt.getMtbColr().size(); i++){
|
||||
|
||||
MtbColr currentMtbColr = recoveredMtbColt.getMtbColr().get(i);
|
||||
|
||||
// List<OrdineAccettazioneDTO.Riga> foundRows = Stream.of(groupedOrdini)
|
||||
// .filter(x -> x.getNumOrd() == currentMtbColr.getNumOrd() &&
|
||||
// x.getRigaOrd() == currentMtbColr.getRigaOrd()&&
|
||||
// x.getDataOrd().equals(currentMtbColr.getDataOrdD()))
|
||||
// .toList();
|
||||
//
|
||||
// if(foundRows != null && foundRows.size() > 0){
|
||||
// OrdineAccettazioneDTO.Riga currentRow = foundRows.get(0);
|
||||
//
|
||||
// currentRow.setHidden(false);
|
||||
// currentRow.setQtaRiservate(currentRow.getQtaRiservate().subtract(currentMtbColr.getQtaCol()));
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
||||
setULToCurrentContext(recoveredMtbColt);
|
||||
refreshOrderBy(false);
|
||||
}
|
||||
|
||||
public void createNewUL() {
|
||||
|
||||
}
|
||||
|
||||
private void setULToCurrentContext(MtbColt mtbColt){
|
||||
isFabVisible.set(false);
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(mtbColt);
|
||||
}
|
||||
|
||||
public void showCreatedUL() {
|
||||
|
||||
mActivity.bindings.venditaOrdineInevasoFab.close(false);
|
||||
mActivity.startListaBancaliRegistratiActivity((ArrayList<MtbColt>) mColliRegistrati);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onColloClosed() {
|
||||
if(thereIsAnOpenedUL()) {
|
||||
|
||||
if(thereIsAnyRowInUL()) {
|
||||
printCollo();
|
||||
} else {
|
||||
deleteCollo();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void printCollo() {
|
||||
|
||||
}
|
||||
|
||||
private void deleteCollo() {
|
||||
|
||||
}
|
||||
|
||||
public boolean thereIsAnOpenedUL() {
|
||||
return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null;
|
||||
}
|
||||
public boolean thereIsAnyRowInUL() {
|
||||
return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null &&
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() != null &&
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr().size() > 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
9
app/src/main/res/drawable/ic_playlist_add_check_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_playlist_add_check_24dp.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M14,10L2,10v2h12v-2zM14,6L2,6v2h12L14,6zM2,16h8v-2L2,14v2zM21.5,11.5L23,13l-6.99,7 -4.51,-4.5L13,14l3.01,3 5.49,-5.5z"/>
|
||||
</vector>
|
||||
@ -12,7 +12,6 @@
|
||||
android:orientation="vertical"
|
||||
android:background="@color/full_white">
|
||||
|
||||
|
||||
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar
|
||||
android:id="@+id/waterfall_toolbar"
|
||||
android:layout_width="match_parent"
|
||||
@ -25,11 +24,10 @@
|
||||
|
||||
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar>
|
||||
|
||||
<android.support.constraint.ConstraintLayout
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".gest.lista_bancali.ListaBancaliActivity">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/lista_colli_main_list"
|
||||
@ -38,6 +36,64 @@
|
||||
android:scrollbars="vertical"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<android.support.constraint.ConstraintLayout
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/lista_bancali_empty_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:alpha="0.3"
|
||||
tools:context=".gest.lista_bancali.ListaBancaliActivity">
|
||||
|
||||
<android.support.constraint.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.1" />
|
||||
|
||||
<android.support.constraint.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" />
|
||||
|
||||
<android.support.constraint.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">
|
||||
|
||||
<android.support.v7.widget.AppCompatImageView
|
||||
android:layout_width="72dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_playlist_add_check_24dp"
|
||||
android:adjustViewBounds="true"/>
|
||||
|
||||
<android.support.v7.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="Nessun bancale creato in precedenza"/>
|
||||
</LinearLayout>
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
150
app/src/main/res/layout/activity_vendita_ordine_inevaso.xml
Normal file
150
app/src/main/res/layout/activity_vendita_ordine_inevaso.xml
Normal file
@ -0,0 +1,150 @@
|
||||
<layout>
|
||||
|
||||
<data>
|
||||
<import type="android.view.View" />
|
||||
|
||||
<variable
|
||||
name="viewmodel"
|
||||
type="it.integry.integrywmsnative.gest.vendita_ordine_inevaso.viewmodel.VenditaOrdineInevasoViewModel"/>
|
||||
|
||||
</data>
|
||||
|
||||
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="false"
|
||||
xmlns:fab="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_gravity="top">
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<android.support.design.widget.CoordinatorLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_above="@id/empty_space_padding">
|
||||
|
||||
<android.support.design.widget.AppBarLayout
|
||||
android:id="@+id/appbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="?attr/actionBarSize"
|
||||
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
|
||||
android:background="?attr/colorPrimary">
|
||||
|
||||
<android.support.v7.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:layout_collapseMode="pin"
|
||||
android:minHeight="?attr/actionBarSize"
|
||||
android:layout_width="match_parent"
|
||||
app:titleTextColor="@android:color/white"
|
||||
android:background="?attr/colorPrimary"
|
||||
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
|
||||
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
|
||||
</android.support.v7.widget.Toolbar>
|
||||
|
||||
</android.support.design.widget.AppBarLayout>
|
||||
|
||||
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/vendita_ordine_main_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||
|
||||
<com.github.clans.fab.FloatingActionMenu
|
||||
android:id="@+id/vendita_ordine_inevaso_fab"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:visibility="@{viewmodel.isFabVisible ? View.VISIBLE : View.GONE}"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
fab:menu_animationDelayPerItem="50"
|
||||
fab:menu_backgroundColor="@color/white_bg_alpha"
|
||||
fab:menu_buttonSpacing="0dp"
|
||||
fab:menu_colorNormal="@color/colorPrimary"
|
||||
fab:menu_colorPressed="@color/colorPrimaryDark"
|
||||
fab:menu_fab_size="normal"
|
||||
fab:menu_labels_colorNormal="@color/white"
|
||||
fab:menu_labels_colorPressed="@color/white_pressed"
|
||||
fab:menu_labels_colorRipple="#66FFFFFF"
|
||||
fab:menu_labels_cornerRadius="3dp"
|
||||
fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
|
||||
fab:menu_labels_margin="0dp"
|
||||
fab:menu_labels_padding="8dp"
|
||||
fab:menu_labels_paddingBottom="4dp"
|
||||
fab:menu_labels_paddingLeft="8dp"
|
||||
fab:menu_labels_paddingRight="8dp"
|
||||
fab:menu_labels_paddingTop="4dp"
|
||||
fab:menu_labels_position="left"
|
||||
fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
|
||||
fab:menu_labels_showShadow="true"
|
||||
fab:menu_labels_textColor="@color/black_semi_transparent"
|
||||
fab:menu_labels_textSize="18sp"
|
||||
fab:menu_openDirection="up"
|
||||
fab:menu_shadowColor="#66000000"
|
||||
fab:menu_shadowRadius="4dp"
|
||||
fab:menu_shadowXOffset="1dp"
|
||||
fab:menu_shadowYOffset="3dp"
|
||||
fab:menu_showShadow="true">
|
||||
|
||||
<com.github.clans.fab.FloatingActionButton
|
||||
android:id="@+id/vendita_ordine_inevaso_fab_item1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_box"
|
||||
app:fab_colorNormal="@color/white"
|
||||
app:fab_colorPressed="@color/white_pressed"
|
||||
app:fab_colorRipple="#66FFFFFF"
|
||||
app:onClick="@{() -> viewmodel.showCreatedUL()}"
|
||||
fab:fab_label="@string/action_show_created_ul" />
|
||||
|
||||
<com.github.clans.fab.FloatingActionButton
|
||||
android:id="@+id/vendita_ordine_inevaso_fab_item2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_add_24dp"
|
||||
app:fab_colorNormal="@color/white"
|
||||
app:fab_colorPressed="@color/white_pressed"
|
||||
app:fab_colorRipple="#66FFFFFF"
|
||||
app:onClick="@{() -> viewmodel.createNewUL()}"
|
||||
fab:fab_label="@string/action_create_ul" />
|
||||
|
||||
</com.github.clans.fab.FloatingActionMenu>
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/empty_space_padding"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:visibility="@{!viewmodel.isFabVisible ? View.VISIBLE : View.GONE}"
|
||||
android:layout_alignParentBottom="true">
|
||||
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
<View
|
||||
android:id="@+id/shadow"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="16dp"
|
||||
android:background="@drawable/shape_gradient_top_shadow"
|
||||
android:visibility="@{!viewmodel.isFabVisible ? View.VISIBLE : View.GONE}"
|
||||
app:layout_anchor="@id/bottom_sheet_include" />
|
||||
|
||||
<include
|
||||
android:id="@+id/bottom_sheet_include"
|
||||
layout="@layout/fragment_articoli_in_collo_bottom_sheet"></include>
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
|
||||
</layout>
|
||||
@ -0,0 +1,101 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:padding="8dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
<TextView
|
||||
android:id="@+id/vendita_ordine_inevaso_main_list_group_item_badge1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="BADGE 1"
|
||||
android:background="@drawable/badge1_round_corner"
|
||||
android:textColor="@android:color/white"
|
||||
android:paddingTop="2dp"
|
||||
android:paddingBottom="2dp"
|
||||
android:paddingLeft="6dp"
|
||||
android:paddingRight="6dp"
|
||||
android:textStyle="bold"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/vendita_ordine_inevaso_main_list_group_item_badge2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="BADGE 2"
|
||||
android:background="@drawable/badge2_round_corner"
|
||||
android:textColor="@android:color/white"
|
||||
android:paddingTop="2dp"
|
||||
android:paddingBottom="2dp"
|
||||
android:paddingLeft="6dp"
|
||||
android:paddingRight="6dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:textStyle="bold"/>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="right">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@color/green_700"
|
||||
style="@android:style/TextAppearance.Medium"
|
||||
android:text="@string/dispatched"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/vendita_ordine_inevaso_main_list_group_item_qta_evasa"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="4dp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@color/green_700"
|
||||
style="@android:style/TextAppearance.Medium"
|
||||
android:text="QTA"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@android:color/black"
|
||||
style="@android:style/TextAppearance.Medium"
|
||||
android:text=" / "/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/vendita_ordine_inevaso_main_list_group_item_qta_tot"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@android:color/black"
|
||||
style="@android:style/TextAppearance.Medium"
|
||||
android:text="QTA"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/vendita_ordine_inevaso_main_list_group_item_descrizione"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:textSize="16sp"
|
||||
android:textColor="@android:color/black"
|
||||
android:text="DESCRIZIONE"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/mainGreen"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/vendita_ordine_inevaso_main_list__descrizione_gruppo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="POSIZIONE"
|
||||
android:padding="8dp"
|
||||
android:textColor="@android:color/white"
|
||||
android:textStyle="bold"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end" />
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/white"
|
||||
android:orientation="vertical"
|
||||
android:id="@+id/vendita_ordine_inevaso_main_list__group_item_container"> </LinearLayout>
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
</menu>
|
||||
@ -112,6 +112,7 @@
|
||||
|
||||
<string name="activity_lista_bancali_title">Lista UL</string>
|
||||
<string name="activity_contenuto_bancale_title">Contenuto UL</string>
|
||||
<string name="activity_vendita_inevaso_title">Spedizione merce</string>
|
||||
|
||||
<string name="button_ignore_print">Salta stampa</string>
|
||||
|
||||
|
||||
@ -120,6 +120,7 @@
|
||||
|
||||
<string name="activity_lista_bancali_title">LU List</string>
|
||||
<string name="activity_contenuto_bancale_title">LU Content</string>
|
||||
<string name="activity_vendita_inevaso_title">Shipping goods</string>
|
||||
|
||||
<string name="button_ignore_print">Skip print</string>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user