Implementata main list vendita
This commit is contained in:
parent
ecfbc1697b
commit
f46c9882a0
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
@ -31,6 +31,7 @@ import it.integry.integrywmsnative.gest.login.LoginActivity;
|
|||||||
import it.integry.integrywmsnative.gest.main.MainFragment;
|
import it.integry.integrywmsnative.gest.main.MainFragment;
|
||||||
import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
|
import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
|
||||||
import it.integry.integrywmsnative.gest.settings.SettingsPreferenceFragment;
|
import it.integry.integrywmsnative.gest.settings.SettingsPreferenceFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity
|
public class MainActivity extends AppCompatActivity
|
||||||
implements NavigationView.OnNavigationItemSelectedListener {
|
implements NavigationView.OnNavigationItemSelectedListener {
|
||||||
@ -132,7 +133,8 @@ public class MainActivity extends AppCompatActivity
|
|||||||
fragment = MainAccettazioneFragment.newInstance();
|
fragment = MainAccettazioneFragment.newInstance();
|
||||||
this.adaptViewToFragment(fragment);
|
this.adaptViewToFragment(fragment);
|
||||||
} else if (id == R.id.nav_gallery) {
|
} else if (id == R.id.nav_gallery) {
|
||||||
|
fragment = MainVenditaFragment.newInstance();
|
||||||
|
this.adaptViewToFragment(fragment);
|
||||||
} else if (id == R.id.nav_slideshow) {
|
} else if (id == R.id.nav_slideshow) {
|
||||||
|
|
||||||
} else if (id == R.id.nav_manage) {
|
} else if (id == R.id.nav_manage) {
|
||||||
|
|||||||
@ -143,7 +143,7 @@ public class MainAccettazioneFragment extends Fragment implements SearchView.OnQ
|
|||||||
|
|
||||||
groupedOrdiniInevasi = new ArrayList<>();
|
groupedOrdiniInevasi = new ArrayList<>();
|
||||||
|
|
||||||
//Splitto gli ordini per codAnagForn
|
//Splitto gli ordini per codAnagClie
|
||||||
for(int i = 0; i < ordini.size(); i++){
|
for(int i = 0; i < ordini.size(); i++){
|
||||||
if(prevCodAnag.equalsIgnoreCase(ordini.get(i).codAnagOrd)) continue;
|
if(prevCodAnag.equalsIgnoreCase(ordini.get(i).codAnagOrd)) continue;
|
||||||
else prevCodAnag = ordini.get(i).codAnagOrd;
|
else prevCodAnag = ordini.get(i).codAnagOrd;
|
||||||
|
|||||||
@ -0,0 +1,279 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.vendita;
|
||||||
|
|
||||||
|
import android.app.ProgressDialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.databinding.DataBindingUtil;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.support.v4.app.Fragment;
|
||||||
|
import android.support.v7.widget.LinearLayoutManager;
|
||||||
|
import android.text.SpannableString;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import butterknife.ButterKnife;
|
||||||
|
import butterknife.OnClick;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.REST.CommonRESTException;
|
||||||
|
import it.integry.integrywmsnative.core.coollection.Coollection;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ITitledFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.core.MainListVenditaAdapter;
|
||||||
|
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.view.dialogs.DialogSimpleMessageHelper;
|
||||||
|
|
||||||
|
public class MainVenditaFragment extends Fragment implements ITitledFragment {
|
||||||
|
|
||||||
|
private VenditaHelper mHelper;
|
||||||
|
private FragmentMainVenditaBinding mBinding = null;
|
||||||
|
|
||||||
|
private MainListVenditaAdapter mAdapter;
|
||||||
|
|
||||||
|
private List<OrdineVenditaGroupedInevasoDTO> groupedOrdiniInevasi;
|
||||||
|
|
||||||
|
public MainVenditaFragment() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MainVenditaFragment newInstance() {
|
||||||
|
MainVenditaFragment fragment = new MainVenditaFragment();
|
||||||
|
Bundle args = new Bundle();
|
||||||
|
fragment.setArguments(args);
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTitle(Context context){
|
||||||
|
return context.getText(R.string.vendita_title_fragment).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
if (getArguments() != null) {
|
||||||
|
}
|
||||||
|
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
|
||||||
|
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_vendita, container, false);
|
||||||
|
|
||||||
|
mBinding.setView(this);
|
||||||
|
mBinding.venditaMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||||
|
mBinding.venditaMainFab.hide();
|
||||||
|
|
||||||
|
ButterKnife.bind(this, mBinding.getRoot());
|
||||||
|
|
||||||
|
return mBinding.getRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void init(){
|
||||||
|
|
||||||
|
final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting),
|
||||||
|
getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
|
mHelper = new VenditaHelper(getActivity());
|
||||||
|
|
||||||
|
mHelper.loadOrdini(new VenditaHelper.ILoadOrdiniCallback() {
|
||||||
|
@Override
|
||||||
|
public void onLoadSuccess(List<OrdineVenditaInevasoDTO> ordini) {
|
||||||
|
Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show();
|
||||||
|
groupOrdiniAndMakeRecycler(ordini);
|
||||||
|
progress.dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadFail(Exception ex) {
|
||||||
|
progress.dismiss();
|
||||||
|
|
||||||
|
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
||||||
|
if(errorMessage == null) errorMessage = ex.getMessage();
|
||||||
|
DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void groupOrdiniAndMakeRecycler(List<OrdineVenditaInevasoDTO> ordini){
|
||||||
|
|
||||||
|
String prevCodAnag = "";
|
||||||
|
|
||||||
|
// for(OrdineVenditaInevasoDTO ordine : ordini){
|
||||||
|
// if(UtilityString.isNullOrEmpty(ordine.codJcom) || ordine.codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)){
|
||||||
|
// ordine.codJcom = CommonConst.Config.COMMESSA_MAG;
|
||||||
|
// ordine.descrizioneCom = "MAGAZZINO";
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
groupedOrdiniInevasi = new ArrayList<>();
|
||||||
|
|
||||||
|
//Splitto gli ordini per codAnagOrd (Cliente)
|
||||||
|
Stream.of(ordini)
|
||||||
|
.distinctBy(x -> x.codAnagOrd)
|
||||||
|
.sortBy(x -> x.ragSocOrd)
|
||||||
|
.map(x -> x.codAnagOrd + "#_#" + x.ragSocOrd)
|
||||||
|
.forEach(anagOrd -> {
|
||||||
|
|
||||||
|
String codAnagOrd = anagOrd.substring(0, anagOrd.indexOf("#_#"));
|
||||||
|
String ragSocOrd = anagOrd.substring(anagOrd.indexOf("#_#") + 3, anagOrd.length());
|
||||||
|
|
||||||
|
OrdineVenditaGroupedInevasoDTO groupedOrdine = new OrdineVenditaGroupedInevasoDTO();
|
||||||
|
|
||||||
|
groupedOrdine.codAnagClie = codAnagOrd;
|
||||||
|
groupedOrdine.nomeCliente = ragSocOrd;
|
||||||
|
groupedOrdine.ordini = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
//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)
|
||||||
|
.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.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)
|
||||||
|
.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;
|
||||||
|
|
||||||
|
rigaOrdine.clienti.add(cliente);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
groupedOrdine.ordini.add(rigaOrdine);
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
groupedOrdiniInevasi.add(groupedOrdine);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
mAdapter = new MainListVenditaAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged);
|
||||||
|
mBinding.venditaMainList.setAdapter(mAdapter);
|
||||||
|
}
|
||||||
|
|
||||||
|
RunnableArgs<OrdineVenditaGroupedInevasoDTO> onGroupSelectionChanged = dto -> {
|
||||||
|
List<OrdineVenditaGroupedInevasoDTO> selectedOrders = mHelper.getSelectedOrders(groupedOrdiniInevasi);
|
||||||
|
|
||||||
|
if(selectedOrders != null && selectedOrders.size() > 1){
|
||||||
|
for (OrdineVenditaGroupedInevasoDTO selectedOrder : selectedOrders) {
|
||||||
|
if(!dto.codAnagClie.equalsIgnoreCase(selectedOrder.codAnagClie)) {
|
||||||
|
Stream.of(selectedOrder.ordini).forEach(x -> x.setCheckbox(false));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(selectedOrders != null && selectedOrders.size() > 0) mBinding.venditaMainFab.show();
|
||||||
|
else mBinding.venditaMainFab.hide();
|
||||||
|
};
|
||||||
|
|
||||||
|
@OnClick(R.id.vendita_main_fab)
|
||||||
|
public void onClick(View view) {
|
||||||
|
|
||||||
|
List<OrdineVenditaGroupedInevasoDTO> selectedOrders = mHelper.getSelectedOrders(groupedOrdiniInevasi);
|
||||||
|
List<String> barcodes = new ArrayList<>();
|
||||||
|
|
||||||
|
for(OrdineVenditaGroupedInevasoDTO ordine : selectedOrders){
|
||||||
|
for(OrdineVenditaGroupedInevasoDTO.Ordine righeOrd : ordine.ordini){
|
||||||
|
barcodes.add(righeOrd.barcode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting),
|
||||||
|
// getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
|
// mHelper.retrievePickingList(barcodes, new ILoadPickingListCallback() {
|
||||||
|
// @Override
|
||||||
|
// public void onLoadSuccess(final List<OrdineAccettazioneDTO> ordini) {
|
||||||
|
// progress.dismiss();
|
||||||
|
//
|
||||||
|
// AtomicInteger artsCounter = new AtomicInteger();
|
||||||
|
//
|
||||||
|
// Stream.of(ordini).forEach(x -> {
|
||||||
|
// artsCounter.addAndGet((int) Stream.of(x.ordini).filter(y -> y.getQtaDaEvadere().floatValue() > 0).count());
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// List<String> ordersKeys = new ArrayList<>();
|
||||||
|
//
|
||||||
|
// for(OrdineAccettazioneDTO ordine : ordini){
|
||||||
|
// if(!ordersKeys.contains(ordine.data + " " + ordine.numero + " " + ordine.gestione)){
|
||||||
|
// ordersKeys.add(ordine.data + " " + ordine.numero + " " + ordine.gestione);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// DialogSimpleMessageHelper.makeInfoDialog(getActivity(),
|
||||||
|
// getText(R.string.orders).toString(),
|
||||||
|
// Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, ordersKeys.size()), ordersKeys.size())
|
||||||
|
// + "<br /><br />" +
|
||||||
|
// "<b>" + artsCounter + "</b> " + getActivity().getResources().getQuantityString(R.plurals.available_articles, artsCounter.get())),
|
||||||
|
// null,
|
||||||
|
// () -> {
|
||||||
|
//
|
||||||
|
// Intent myIntent = new Intent(getActivity(), AccettazioneOrdineInevasoActivity.class);
|
||||||
|
// myIntent.putExtra("key", (ArrayList<OrdineAccettazioneDTO>) ordini); //Optional parameters
|
||||||
|
// getActivity().startActivity(myIntent);
|
||||||
|
//
|
||||||
|
// }).show();
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void onLoadFail(Exception ex) {
|
||||||
|
//// Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_LONG).show();
|
||||||
|
// progress.dismiss();
|
||||||
|
//
|
||||||
|
// String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
||||||
|
// if(errorMessage == null) errorMessage = ex.getMessage() + "\n" + ex.getCause().getCause().getMessage();
|
||||||
|
// DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,215 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.vendita.core;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.support.v4.util.Pools;
|
||||||
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
import android.text.Html;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.CheckBox;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
|
||||||
|
|
||||||
|
public class MainListVenditaAdapter extends RecyclerView.Adapter<MainListVenditaAdapter.ViewHolder> {
|
||||||
|
|
||||||
|
private Context mContext;
|
||||||
|
private List<OrdineVenditaGroupedInevasoDTO> mDataset;
|
||||||
|
private RunnableArgs<OrdineVenditaGroupedInevasoDTO> mOnGroupSelected;
|
||||||
|
|
||||||
|
private Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(2000);
|
||||||
|
private Pools.SynchronizedPool sPoolClienti = new Pools.SynchronizedPool(3000);
|
||||||
|
|
||||||
|
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
// each data item is just a string in this case
|
||||||
|
private TextView mTextViewGroupHeader;
|
||||||
|
private LinearLayout mLinearLayoutGroupItemContainer;
|
||||||
|
|
||||||
|
private List<View> views = new ArrayList<>();
|
||||||
|
|
||||||
|
public ViewHolder(View v) {
|
||||||
|
super(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Provide a suitable constructor (depends on the kind of dataset)
|
||||||
|
public MainListVenditaAdapter(Context context, List<OrdineVenditaGroupedInevasoDTO> myDataset, RunnableArgs<OrdineVenditaGroupedInevasoDTO> onGroupSelected) {
|
||||||
|
mContext = context;
|
||||||
|
mDataset = myDataset;
|
||||||
|
mOnGroupSelected = onGroupSelected;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Create new views (invoked by the layout manager)
|
||||||
|
@Override
|
||||||
|
public MainListVenditaAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
|
||||||
|
int viewType) {
|
||||||
|
// create a new view
|
||||||
|
View v = LayoutInflater.from(parent.getContext())
|
||||||
|
.inflate(R.layout.vendita_main_list_model, parent, false);
|
||||||
|
|
||||||
|
ViewHolder vh = new ViewHolder(v);
|
||||||
|
|
||||||
|
TextView groupHeader = v.findViewById(R.id.vendita_main_list_group_header);
|
||||||
|
vh.mTextViewGroupHeader = groupHeader;
|
||||||
|
|
||||||
|
LinearLayout groupItemContainer = v.findViewById(R.id.vendita_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(ViewHolder holder, int position) {
|
||||||
|
// - get element from your dataset at this position
|
||||||
|
// - replace the contents of the view with that element
|
||||||
|
|
||||||
|
final List<OrdineVenditaGroupedInevasoDTO.Ordine> subGroup = mDataset.get(position).ordini;
|
||||||
|
final int finalPosition = position;
|
||||||
|
|
||||||
|
holder.mTextViewGroupHeader.setText(mDataset.get(position).nomeCliente);
|
||||||
|
holder.itemView.setOnClickListener(view -> {
|
||||||
|
boolean newValue = true;
|
||||||
|
|
||||||
|
for(int i = 0; i < subGroup.size(); i++){
|
||||||
|
if(subGroup.get(i).checkBox) newValue = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < subGroup.size(); i++){
|
||||||
|
subGroup.get(i).setCheckbox(newValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
mOnGroupSelected.run(mDataset.get(finalPosition));
|
||||||
|
});
|
||||||
|
|
||||||
|
for (int i = 0; i < subGroup.size(); i++) {
|
||||||
|
final OrdineVenditaGroupedInevasoDTO.Ordine ordine = subGroup.get(i);
|
||||||
|
|
||||||
|
ordine.checkBoxCallback = new ArrayList<>();
|
||||||
|
|
||||||
|
View groupModelViewPool = (View) sPool.acquire();
|
||||||
|
if(groupModelViewPool == null){
|
||||||
|
groupModelViewPool = LayoutInflater.from(mContext)
|
||||||
|
.inflate(R.layout.vendita_main_list_group_model, holder.mLinearLayoutGroupItemContainer, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
View groupModelView = groupModelViewPool;
|
||||||
|
holder.views.add(groupModelView);
|
||||||
|
|
||||||
|
|
||||||
|
groupModelView.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
if (i % 2 == 1) {
|
||||||
|
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
|
||||||
|
} else {
|
||||||
|
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.white));
|
||||||
|
}
|
||||||
|
|
||||||
|
final CheckBox checkBox = groupModelView.findViewById(R.id.vendita_main_list_group_item_container_checkBox);
|
||||||
|
checkBox.setChecked(ordine.checkBox);
|
||||||
|
|
||||||
|
ordine.checkBoxCallback.add(checkBox::setChecked);
|
||||||
|
|
||||||
|
groupModelView.setOnClickListener(view -> {
|
||||||
|
checkBox.toggle();
|
||||||
|
ordine.checkBox = checkBox.isChecked();
|
||||||
|
mOnGroupSelected.run(mDataset.get(finalPosition));
|
||||||
|
// mCheckBoxCallback.onToggle(checkBox.isChecked());
|
||||||
|
});
|
||||||
|
|
||||||
|
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));
|
||||||
|
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));
|
||||||
|
testataDataConsTextView.setText(Html.fromHtml(testataDataConsString));
|
||||||
|
|
||||||
|
LinearLayout clientLinearLayout = groupModelView.findViewById(R.id.vendita_main_list_group_item_container_clienti_ord);
|
||||||
|
List<OrdineVenditaGroupedInevasoDTO.Cliente> subGroupClienti = ordine.clienti;
|
||||||
|
|
||||||
|
clientLinearLayout.removeAllViews();
|
||||||
|
|
||||||
|
for (int k = 0; k < subGroupClienti.size(); k++) {
|
||||||
|
|
||||||
|
|
||||||
|
View groupClienteModelViewPool = (View) sPoolClienti.acquire();
|
||||||
|
if(groupClienteModelViewPool == null){
|
||||||
|
groupClienteModelViewPool = LayoutInflater.from(mContext)
|
||||||
|
.inflate(R.layout.vendita_main_list_group_clienti, clientLinearLayout, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
View groupClienteModelView = groupClienteModelViewPool;
|
||||||
|
|
||||||
|
|
||||||
|
TextView clienteComm = groupClienteModelView.findViewById(R.id.vendita_main_list_group_clienti_comm);
|
||||||
|
String clienteText;
|
||||||
|
clienteText = subGroupClienti.get(k).rifOrd;
|
||||||
|
clienteComm.setText(clienteText);
|
||||||
|
|
||||||
|
// TextView dataCons = groupClienteModelView.findViewById(R.id.vendita_main_list_group_clienti_datacons);
|
||||||
|
// if (subGroupClienti.get(k).getDataCons() != null) {
|
||||||
|
// dataCons.setText(UtilityDate.formatDate(subGroupClienti.get(k).getDataCons(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH));
|
||||||
|
// } else {
|
||||||
|
// dataCons.setText("");
|
||||||
|
// }
|
||||||
|
|
||||||
|
clientLinearLayout.addView(groupClienteModelView);
|
||||||
|
}
|
||||||
|
|
||||||
|
holder.mLinearLayoutGroupItemContainer.addView(groupModelView);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewRecycled(ViewHolder holder){
|
||||||
|
if(holder != null){
|
||||||
|
for(int i = 0; i < holder.views.size(); i++){
|
||||||
|
View groupModelView = holder.views.get(i);
|
||||||
|
|
||||||
|
LinearLayout clientLinearLayout = groupModelView.findViewById(R.id.vendita_main_list_group_item_container_clienti_ord);
|
||||||
|
|
||||||
|
for(int k = 0; k < clientLinearLayout.getChildCount(); k++){
|
||||||
|
View cliente = clientLinearLayout.getChildAt(k);
|
||||||
|
((ViewGroup) cliente.getParent()).removeView(cliente);
|
||||||
|
|
||||||
|
sPoolClienti.release(cliente);
|
||||||
|
}
|
||||||
|
|
||||||
|
((ViewGroup) groupModelView.getParent()).removeView(groupModelView);
|
||||||
|
sPool.release(groupModelView);
|
||||||
|
}
|
||||||
|
|
||||||
|
holder.views.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
super.onViewRecycled(holder);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return the size of your dataset (invoked by the layout manager)
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return mDataset.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setFilter(List<OrdineVenditaGroupedInevasoDTO> newDataset) {
|
||||||
|
mDataset = new ArrayList<>();
|
||||||
|
mDataset.addAll(newDataset);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,174 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.vendita.core;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.REST.RESTBuilder;
|
||||||
|
import it.integry.integrywmsnative.core.REST.model.EsitoType;
|
||||||
|
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.rest.OrdiniVenditaRESTConsumerService;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.Callback;
|
||||||
|
import retrofit2.Response;
|
||||||
|
|
||||||
|
public class VenditaHelper {
|
||||||
|
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
public VenditaHelper(Context context){
|
||||||
|
mContext = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loadOrdini(final ILoadOrdiniCallback callback){
|
||||||
|
String codMdep = SettingsManager.i().userSession.depo.getCodMdep();
|
||||||
|
|
||||||
|
OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class);
|
||||||
|
service.listOrdiniInevasi(codMdep).enqueue(new Callback<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> call, Response<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> response) {
|
||||||
|
|
||||||
|
if(response.isSuccessful()) {
|
||||||
|
|
||||||
|
if(response.body() != null) {
|
||||||
|
if(response.body().getEsito() == EsitoType.OK) {
|
||||||
|
callback.onLoadSuccess(response.body().getDto());
|
||||||
|
} else {
|
||||||
|
Log.e("Vendita", response.body().getErrorMessage());
|
||||||
|
callback.onLoadFail(new Exception(response.message()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e("Vendita", response.message());
|
||||||
|
callback.onLoadFail(new Exception(response.message()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e("Vendita", "Status " + response.code() + ": " + response.message());
|
||||||
|
callback.onLoadFail(new Exception("Status " + response.code() + ": " + response.message()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> call, Throwable t) {
|
||||||
|
Log.e("Vendita", t.toString());
|
||||||
|
UtilityLogger.errorMe(new Exception(t));
|
||||||
|
callback.onLoadFail(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void retrievePickingList(List<String> barcodeOrdini, List<Date> dateCons, final ILoadPickingListCallback callback){
|
||||||
|
String codMdep = SettingsManager.i().userSession.depo.getCodMdep();
|
||||||
|
|
||||||
|
String joinedBarcodes = TextUtils.join(",", barcodeOrdini);
|
||||||
|
|
||||||
|
OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class);
|
||||||
|
|
||||||
|
service.getPickingList(codMdep, "", joinedBarcodes).enqueue(new Callback<ServiceRESTResponse<List<OrdineVenditaDTO>>>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<List<OrdineVenditaDTO>>> call, Response<ServiceRESTResponse<List<OrdineVenditaDTO>>> response) {
|
||||||
|
if(response.isSuccessful()) {
|
||||||
|
|
||||||
|
if(response.body() != null) {
|
||||||
|
if(response.body().getEsito() == EsitoType.OK) {
|
||||||
|
List<OrdineVenditaDTO> dto = response.body().getDto();
|
||||||
|
|
||||||
|
for (OrdineVenditaDTO ordine : dto) {
|
||||||
|
for(OrdineVenditaDTO.Riga riga : ordine.ordini){
|
||||||
|
riga.numOrd = ordine.numero;
|
||||||
|
riga.dataOrd = ordine.data;
|
||||||
|
riga.gestioneOrd = ordine.gestione;
|
||||||
|
riga.codAlis = ordine.codAlis;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
callback.onLoadSuccess(dto);
|
||||||
|
} else {
|
||||||
|
Log.e("Vendita", response.body().getErrorMessage());
|
||||||
|
callback.onLoadFail(new Exception(response.message()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e("Vendita", response.message());
|
||||||
|
callback.onLoadFail(new Exception(response.message()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e("Vendita", "Status " + response.code() + ": " + response.message());
|
||||||
|
callback.onLoadFail(new Exception("Status " + response.code() + ": " + response.message()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<List<OrdineVenditaDTO>>> call, Throwable t) {
|
||||||
|
Log.e("Vendita", t.toString());
|
||||||
|
UtilityLogger.errorMe(new Exception(t));
|
||||||
|
callback.onLoadFail(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public List<OrdineVenditaGroupedInevasoDTO> getSelectedOrders(List<OrdineVenditaGroupedInevasoDTO> groupedOrdiniInevasi){
|
||||||
|
List<OrdineVenditaGroupedInevasoDTO> selectedOrdini = new ArrayList<>();
|
||||||
|
|
||||||
|
for(int i = 0; i < groupedOrdiniInevasi.size(); i++){
|
||||||
|
List<OrdineVenditaGroupedInevasoDTO.Ordine> selectedOrdiniGroup = new ArrayList<>();
|
||||||
|
|
||||||
|
for(int j = 0; j < groupedOrdiniInevasi.get(i).ordini.size(); j++){
|
||||||
|
if(groupedOrdiniInevasi.get(i).ordini.get(j).checkBox) {
|
||||||
|
selectedOrdiniGroup.add(groupedOrdiniInevasi.get(i).ordini.get(j));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(selectedOrdiniGroup.size() > 0) {
|
||||||
|
try {
|
||||||
|
OrdineVenditaGroupedInevasoDTO cloneOrdine = groupedOrdiniInevasi.get(i).clone();
|
||||||
|
cloneOrdine.ordini = selectedOrdiniGroup;
|
||||||
|
selectedOrdini.add(cloneOrdine);
|
||||||
|
} catch (CloneNotSupportedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return selectedOrdini;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public interface ILoadOrdiniCallback {
|
||||||
|
|
||||||
|
|
||||||
|
void onLoadSuccess(List<OrdineVenditaInevasoDTO> ordini);
|
||||||
|
|
||||||
|
void onLoadFail(Exception ex);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public interface ILoadPickingListCallback {
|
||||||
|
|
||||||
|
void onLoadSuccess(List<OrdineVenditaDTO> ordini);
|
||||||
|
|
||||||
|
void onLoadFail(Exception ex);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,364 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.vendita.dto;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
|
||||||
|
public class OrdineVenditaDTO implements Parcelable {
|
||||||
|
|
||||||
|
public String ragSoc;
|
||||||
|
public int numero;
|
||||||
|
public String data;
|
||||||
|
public String gestione;
|
||||||
|
public String codMdep;
|
||||||
|
public String codAnag;
|
||||||
|
public String codVdes;
|
||||||
|
public String termCons;
|
||||||
|
public ArrayList<OrdineVenditaDTO.Riga> ordini;
|
||||||
|
public String codAlis;
|
||||||
|
public String rifOrd;
|
||||||
|
|
||||||
|
|
||||||
|
public static class Riga implements Parcelable {
|
||||||
|
public Float qtaOrd; //QTA ORDINATA (tutta la qta ordiata)
|
||||||
|
public Float qtaRiservate; //QTA COLLI (tutta la qta già accantonata nei colli
|
||||||
|
public Float qtaEvasa; //QTA EVASA ORDINE (qta con documento)
|
||||||
|
//public Float qtaDaEvadere; //qta_ord - qta_evasa - qta_colli
|
||||||
|
public int rigaOrd;
|
||||||
|
public String codJcom;
|
||||||
|
public String ragSocCom;
|
||||||
|
public String descrizioneCommessa;
|
||||||
|
public MtbAart mtbAart;
|
||||||
|
public OrdineVenditaDTO.PickingObjectDTO[] colliAssociati;
|
||||||
|
public Boolean hidden = null;
|
||||||
|
public String partitaMag;
|
||||||
|
public String codArtFor;
|
||||||
|
public String descrizioneEstesa;
|
||||||
|
public String codAlis;
|
||||||
|
|
||||||
|
public int numOrd;
|
||||||
|
public String dataOrd;
|
||||||
|
public String gestioneOrd;
|
||||||
|
|
||||||
|
public String dataCons;
|
||||||
|
|
||||||
|
public BigDecimal getQtaDaEvadere() {
|
||||||
|
return this.getQtaOrd().subtract(this.getQtaEvasa()).subtract(this.getQtaRiservate());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public BigDecimal getQtaOrd() {
|
||||||
|
return qtaOrd != null ? new BigDecimal(qtaOrd) : BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaRiservate() {
|
||||||
|
return qtaRiservate != null ? new BigDecimal(qtaRiservate) : BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaEvasa() {
|
||||||
|
return qtaEvasa != null ? new BigDecimal(qtaEvasa) : BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRigaOrd() {
|
||||||
|
return rigaOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodJcom() {
|
||||||
|
return codJcom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRagSocCom() {
|
||||||
|
return ragSocCom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizioneCommessa() {
|
||||||
|
return descrizioneCommessa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MtbAart getMtbAart() {
|
||||||
|
return mtbAart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.PickingObjectDTO[] getColliAssociati() {
|
||||||
|
return colliAssociati;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean isHidden() {
|
||||||
|
return hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPartitaMag() {
|
||||||
|
return partitaMag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodArtFor() {
|
||||||
|
return codArtFor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizioneEstesa() {
|
||||||
|
return descrizioneEstesa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodAlis() {
|
||||||
|
return codAlis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNumOrd() {
|
||||||
|
return numOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGestioneOrd() {
|
||||||
|
return gestioneOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDataCons() {
|
||||||
|
return dataCons;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataOrd() {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||||
|
Date dataOrd = null;
|
||||||
|
|
||||||
|
try{
|
||||||
|
dataOrd = sdf.parse(this.dataOrd);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
Log.e("Parsing date", ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return dataOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setQtaOrd(Float qtaOrd) {
|
||||||
|
this.qtaOrd = qtaOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setQtaRiservate(BigDecimal qtaRiservate) {
|
||||||
|
this.qtaRiservate = qtaRiservate.floatValue();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setQtaEvasa(Float qtaEvasa) {
|
||||||
|
this.qtaEvasa = qtaEvasa;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setRigaOrd(int rigaOrd) {
|
||||||
|
this.rigaOrd = rigaOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setCodJcom(String codJcom) {
|
||||||
|
this.codJcom = codJcom;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setRagSocCom(String ragSocCom) {
|
||||||
|
this.ragSocCom = ragSocCom;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setDescrizioneCommessa(String descrizioneCommessa) {
|
||||||
|
this.descrizioneCommessa = descrizioneCommessa;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setMtbAart(MtbAart mtbAart) {
|
||||||
|
this.mtbAart = mtbAart;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setHidden(boolean hidden) {
|
||||||
|
this.hidden = hidden;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setPartitaMag(String partitaMag) {
|
||||||
|
this.partitaMag = partitaMag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setCodArtFor(String codArtFor) {
|
||||||
|
this.codArtFor = codArtFor;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setDescrizioneEstesa(String descrizioneEstesa) {
|
||||||
|
this.descrizioneEstesa = descrizioneEstesa;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setCodAlis(String codAlis) {
|
||||||
|
this.codAlis = codAlis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setNumOrd(int numOrd) {
|
||||||
|
this.numOrd = numOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setDataOrd(String dataOrd) {
|
||||||
|
this.dataOrd = dataOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setGestioneOrd(String gestioneOrd) {
|
||||||
|
this.gestioneOrd = gestioneOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO.Riga setDataCons(String dataCons) {
|
||||||
|
this.dataCons = dataCons;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Riga(){}
|
||||||
|
|
||||||
|
protected Riga(Parcel in) {
|
||||||
|
qtaOrd = in.readByte() == 0x00 ? null : in.readFloat();
|
||||||
|
qtaRiservate = in.readByte() == 0x00 ? null : in.readFloat();
|
||||||
|
rigaOrd = in.readInt();
|
||||||
|
codJcom = in.readString();
|
||||||
|
ragSocCom = in.readString();
|
||||||
|
descrizioneCommessa = in.readString();
|
||||||
|
mtbAart = (MtbAart) in.readValue(MtbAart.class.getClassLoader());
|
||||||
|
hidden = in.readByte() == 0x00 ? null : in.readByte() != 0x00;
|
||||||
|
partitaMag = in.readString();
|
||||||
|
codArtFor = in.readString();
|
||||||
|
descrizioneEstesa = in.readString();
|
||||||
|
codAlis = in.readString();
|
||||||
|
numOrd = in.readInt();
|
||||||
|
dataOrd = in.readString();
|
||||||
|
gestioneOrd = in.readString();
|
||||||
|
dataCons = in.readString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
if (qtaOrd == null) {
|
||||||
|
dest.writeByte((byte) (0x00));
|
||||||
|
} else {
|
||||||
|
dest.writeByte((byte) (0x01));
|
||||||
|
dest.writeFloat(qtaOrd);
|
||||||
|
}
|
||||||
|
if (qtaRiservate == null) {
|
||||||
|
dest.writeByte((byte) (0x00));
|
||||||
|
} else {
|
||||||
|
dest.writeByte((byte) (0x01));
|
||||||
|
dest.writeFloat(qtaRiservate);
|
||||||
|
}
|
||||||
|
dest.writeInt(rigaOrd);
|
||||||
|
dest.writeString(codJcom);
|
||||||
|
dest.writeString(ragSocCom);
|
||||||
|
dest.writeString(descrizioneCommessa);
|
||||||
|
dest.writeValue(mtbAart);
|
||||||
|
if (hidden == null) {
|
||||||
|
dest.writeByte((byte) (0x00));
|
||||||
|
} else {
|
||||||
|
dest.writeByte((byte) (0x01));
|
||||||
|
dest.writeByte((byte) (hidden ? 0x01 : 0x00));
|
||||||
|
}
|
||||||
|
dest.writeString(partitaMag);
|
||||||
|
dest.writeString(codArtFor);
|
||||||
|
dest.writeString(descrizioneEstesa);
|
||||||
|
dest.writeString(codAlis);
|
||||||
|
dest.writeInt(numOrd);
|
||||||
|
dest.writeString(dataOrd);
|
||||||
|
dest.writeString(gestioneOrd);
|
||||||
|
dest.writeString(dataCons);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public static final Parcelable.Creator<OrdineVenditaDTO.Riga> CREATOR = new Parcelable.Creator<OrdineVenditaDTO.Riga>() {
|
||||||
|
@Override
|
||||||
|
public OrdineVenditaDTO.Riga createFromParcel(Parcel in) {
|
||||||
|
return new OrdineVenditaDTO.Riga(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public OrdineVenditaDTO.Riga[] newArray(int size) {
|
||||||
|
return new OrdineVenditaDTO.Riga[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class PickingObjectDTO extends MtbColt {
|
||||||
|
public boolean hidden = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaDTO() {}
|
||||||
|
|
||||||
|
protected OrdineVenditaDTO(Parcel in) {
|
||||||
|
ragSoc = in.readString();
|
||||||
|
numero = in.readInt();
|
||||||
|
data = in.readString();
|
||||||
|
gestione = in.readString();
|
||||||
|
codMdep = in.readString();
|
||||||
|
codAnag = in.readString();
|
||||||
|
codVdes = in.readString();
|
||||||
|
termCons = in.readString();
|
||||||
|
codAlis = in.readString();
|
||||||
|
rifOrd = in.readString();
|
||||||
|
if (in.readByte() == 0x01) {
|
||||||
|
ordini = new ArrayList<OrdineVenditaDTO.Riga>();
|
||||||
|
in.readList(ordini, OrdineVenditaDTO.Riga.class.getClassLoader());
|
||||||
|
} else {
|
||||||
|
ordini = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
dest.writeString(ragSoc);
|
||||||
|
dest.writeInt(numero);
|
||||||
|
dest.writeString(data);
|
||||||
|
dest.writeString(gestione);
|
||||||
|
dest.writeString(codMdep);
|
||||||
|
dest.writeString(codAnag);
|
||||||
|
dest.writeString(codVdes);
|
||||||
|
dest.writeString(termCons);
|
||||||
|
dest.writeString(codAlis);
|
||||||
|
dest.writeString(rifOrd);
|
||||||
|
if (ordini == null) {
|
||||||
|
dest.writeByte((byte) (0x00));
|
||||||
|
} else {
|
||||||
|
dest.writeByte((byte) (0x01));
|
||||||
|
dest.writeList(ordini);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public static final Parcelable.Creator<OrdineVenditaDTO> CREATOR = new Parcelable.Creator<OrdineVenditaDTO>() {
|
||||||
|
@Override
|
||||||
|
public OrdineVenditaDTO createFromParcel(Parcel in) {
|
||||||
|
return new OrdineVenditaDTO(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public OrdineVenditaDTO[] newArray(int size) {
|
||||||
|
return new OrdineVenditaDTO[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,237 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.vendita.dto;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.ICheckBoxCallback;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
|
public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable, Parcelable {
|
||||||
|
|
||||||
|
public String codAnagClie;
|
||||||
|
public String nomeCliente;
|
||||||
|
public List<Ordine> ordini;
|
||||||
|
|
||||||
|
public OrdineVenditaGroupedInevasoDTO clone() throws CloneNotSupportedException {
|
||||||
|
return (OrdineVenditaGroupedInevasoDTO) super.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
public boolean checkBox;
|
||||||
|
public List<ICheckBoxCallback> checkBoxCallback = new ArrayList<>();
|
||||||
|
public void setCheckbox(boolean newValue){
|
||||||
|
checkBox = newValue;
|
||||||
|
if(checkBoxCallback != null && checkBoxCallback.size() > 0) {
|
||||||
|
for(ICheckBoxCallback callback : checkBoxCallback) callback.onToggle(newValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Cliente> clienti;
|
||||||
|
|
||||||
|
|
||||||
|
public Date getData(){
|
||||||
|
try {
|
||||||
|
return UtilityDate.recognizeDate(data);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataCons(){
|
||||||
|
try {
|
||||||
|
return UtilityDate.recognizeDate(dataCons);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
public Ordine(){}
|
||||||
|
|
||||||
|
protected Ordine(Parcel in) {
|
||||||
|
data = in.readString();
|
||||||
|
numero = in.readInt();
|
||||||
|
codAnagOrd = in.readString();
|
||||||
|
ragSocOrd = in.readString();
|
||||||
|
pesoTotale = in.readByte() == 0x00 ? null : in.readFloat();
|
||||||
|
barcode = in.readString();
|
||||||
|
termCons = in.readString();
|
||||||
|
dataCons = in.readString();
|
||||||
|
rifOrd = in.readString();
|
||||||
|
if (in.readByte() == 0x01) {
|
||||||
|
clienti = new ArrayList<Cliente>();
|
||||||
|
in.readList(clienti, Cliente.class.getClassLoader());
|
||||||
|
} else {
|
||||||
|
clienti = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
dest.writeString(data);
|
||||||
|
dest.writeInt(numero);
|
||||||
|
dest.writeString(codAnagOrd);
|
||||||
|
dest.writeString(ragSocOrd);
|
||||||
|
if (pesoTotale == null) {
|
||||||
|
dest.writeByte((byte) (0x00));
|
||||||
|
} else {
|
||||||
|
dest.writeByte((byte) (0x01));
|
||||||
|
dest.writeFloat(pesoTotale);
|
||||||
|
}
|
||||||
|
dest.writeString(barcode);
|
||||||
|
dest.writeString(termCons);
|
||||||
|
dest.writeString(dataCons);
|
||||||
|
dest.writeString(rifOrd);
|
||||||
|
if (clienti == null) {
|
||||||
|
dest.writeByte((byte) (0x00));
|
||||||
|
} else {
|
||||||
|
dest.writeByte((byte) (0x01));
|
||||||
|
dest.writeList(clienti);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public static final Parcelable.Creator<Ordine> CREATOR = new Parcelable.Creator<Ordine>() {
|
||||||
|
@Override
|
||||||
|
public Ordine createFromParcel(Parcel in) {
|
||||||
|
return new Ordine(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Ordine[] newArray(int size) {
|
||||||
|
return new Ordine[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Cliente implements Parcelable{
|
||||||
|
public String codJcom;
|
||||||
|
public String ragSocCom;
|
||||||
|
public int idRiga;
|
||||||
|
public String dataCons;
|
||||||
|
public Integer numCnf;
|
||||||
|
public String descrCom;
|
||||||
|
public String rifOrd;
|
||||||
|
|
||||||
|
public Date getDataCons(){
|
||||||
|
try {
|
||||||
|
return UtilityDate.recognizeDate(dataCons);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Cliente(){}
|
||||||
|
|
||||||
|
protected Cliente(Parcel in) {
|
||||||
|
codJcom = in.readString();
|
||||||
|
ragSocCom = in.readString();
|
||||||
|
idRiga = in.readInt();
|
||||||
|
dataCons = in.readString();
|
||||||
|
numCnf = in.readByte() == 0x00 ? null : in.readInt();
|
||||||
|
descrCom = in.readString();
|
||||||
|
rifOrd = in.readString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
dest.writeString(codJcom);
|
||||||
|
dest.writeString(ragSocCom);
|
||||||
|
dest.writeInt(idRiga);
|
||||||
|
dest.writeString(dataCons);
|
||||||
|
if (numCnf == null) {
|
||||||
|
dest.writeByte((byte) (0x00));
|
||||||
|
} else {
|
||||||
|
dest.writeByte((byte) (0x01));
|
||||||
|
dest.writeInt(numCnf);
|
||||||
|
}
|
||||||
|
dest.writeString(descrCom);
|
||||||
|
dest.writeString(rifOrd);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public static final Parcelable.Creator<Cliente> CREATOR = new Parcelable.Creator<Cliente>() {
|
||||||
|
@Override
|
||||||
|
public Cliente createFromParcel(Parcel in) {
|
||||||
|
return new Cliente(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Cliente[] newArray(int size) {
|
||||||
|
return new Cliente[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaGroupedInevasoDTO(){}
|
||||||
|
|
||||||
|
protected OrdineVenditaGroupedInevasoDTO(Parcel in) {
|
||||||
|
codAnagClie = in.readString();
|
||||||
|
nomeCliente = in.readString();
|
||||||
|
if (in.readByte() == 0x01) {
|
||||||
|
ordini = new ArrayList<Ordine>();
|
||||||
|
in.readList(ordini, Ordine.class.getClassLoader());
|
||||||
|
} else {
|
||||||
|
ordini = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
dest.writeString(codAnagClie);
|
||||||
|
dest.writeString(nomeCliente);
|
||||||
|
if (ordini == null) {
|
||||||
|
dest.writeByte((byte) (0x00));
|
||||||
|
} else {
|
||||||
|
dest.writeByte((byte) (0x01));
|
||||||
|
dest.writeList(ordini);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public static final Parcelable.Creator<OrdineVenditaGroupedInevasoDTO> CREATOR = new Parcelable.Creator<OrdineVenditaGroupedInevasoDTO>() {
|
||||||
|
@Override
|
||||||
|
public OrdineVenditaGroupedInevasoDTO createFromParcel(Parcel in) {
|
||||||
|
return new OrdineVenditaGroupedInevasoDTO(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public OrdineVenditaGroupedInevasoDTO[] newArray(int size) {
|
||||||
|
return new OrdineVenditaGroupedInevasoDTO[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.vendita.rest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.http.GET;
|
||||||
|
import retrofit2.http.Query;
|
||||||
|
|
||||||
|
public interface OrdiniVenditaRESTConsumerService {
|
||||||
|
|
||||||
|
@GET("SM2GetOrdiniVenditaInevasi")
|
||||||
|
Call<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> listOrdiniInevasi(@Query("codMdep") String codMdep);
|
||||||
|
|
||||||
|
@GET("getPickingListFromOrdini")
|
||||||
|
Call<ServiceRESTResponse<List<OrdineVenditaDTO>>> getPickingList(@Query("codMdep") String codMdep, @Query("dataCons") String dataCons, @Query("codBarreBancale") String codBarreBacale);
|
||||||
|
|
||||||
|
}
|
||||||
@ -15,16 +15,16 @@
|
|||||||
tools:context="it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment">
|
tools:context="it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment">
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<android.support.v7.widget.RecyclerView
|
||||||
|
android:id="@+id/accettazione_main_list"
|
||||||
|
android:scrollbars="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
<android.support.v7.widget.RecyclerView
|
</RelativeLayout>
|
||||||
android:id="@+id/accettazione_main_list"
|
|
||||||
android:scrollbars="vertical"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"/>
|
|
||||||
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<android.support.design.widget.FloatingActionButton
|
<android.support.design.widget.FloatingActionButton
|
||||||
android:id="@+id/accettazione_main_fab"
|
android:id="@+id/accettazione_main_fab"
|
||||||
|
|||||||
38
app/src/main/res/layout/fragment_main_vendita.xml
Normal file
38
app/src/main/res/layout/fragment_main_vendita.xml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<?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"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<data>
|
||||||
|
<import type="android.databinding.ObservableList"/>
|
||||||
|
<variable name="view" type="it.integry.integrywmsnative.gest.vendita.MainVenditaFragment" />
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
tools:context=".gest.vendita.MainVenditaFragment">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<android.support.v7.widget.RecyclerView
|
||||||
|
android:id="@+id/vendita_main_list"
|
||||||
|
android:scrollbars="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<android.support.design.widget.FloatingActionButton
|
||||||
|
android:id="@+id/vendita_main_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"
|
||||||
|
app:srcCompat="@drawable/ic_check_black_24dp" />
|
||||||
|
</FrameLayout>
|
||||||
|
</layout>
|
||||||
14
app/src/main/res/layout/vendita_main_list_group_clienti.xml
Normal file
14
app/src/main/res/layout/vendita_main_list_group_clienti.xml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?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">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/vendita_main_list_group_clienti_comm"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:paddingRight="6dp"
|
||||||
|
android:text="TextView" />
|
||||||
|
</RelativeLayout>
|
||||||
52
app/src/main/res/layout/vendita_main_list_group_model.xml
Normal file
52
app/src/main/res/layout/vendita_main_list_group_model.xml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="8dp">
|
||||||
|
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
android:id="@+id/vendita_main_list_group_item_container_checkBox"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_toRightOf="@id/vendita_main_list_group_item_container_checkBox"
|
||||||
|
android:layout_alignParentEnd="true">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/vendita_main_list_group_item_container_testata_data_cons"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Cons 07 nov 2018"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:textColor="#000" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/vendita_main_list_group_item_container_testata_ord"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Ord. Ven. 39 del 27 ott 2017"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:textColor="#000"
|
||||||
|
android:layout_alignParentLeft="true"
|
||||||
|
android:layout_toLeftOf="@id/vendita_main_list_group_item_container_testata_data_cons"/>
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/vendita_main_list_group_item_container_clienti_ord"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/vendita_main_list_group_item_container_testata_ord"
|
||||||
|
android:orientation="vertical">
|
||||||
|
</LinearLayout>
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
61
app/src/main/res/layout/vendita_main_list_model.xml
Normal file
61
app/src/main/res/layout/vendita_main_list_model.xml
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:card_view="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
|
||||||
|
<android.support.v7.widget.CardView
|
||||||
|
xmlns:card_view="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:id="@+id/card_view"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
card_view:cardUseCompatPadding="true"
|
||||||
|
card_view:cardCornerRadius="4dp"
|
||||||
|
card_view:cardElevation="4dp">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@color/mainOrange"
|
||||||
|
android:padding="8dp">
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:checked="true"
|
||||||
|
android:enabled="false" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/vendita_main_list_group_header"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textStyle="bold"
|
||||||
|
style="@android:style/TextAppearance.Medium"
|
||||||
|
tools:text="NOME GRUPPO"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:id="@+id/vendita_main_list_group_item_container">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</android.support.v7.widget.CardView>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
@ -4,11 +4,14 @@
|
|||||||
<string name="waiting">Attendere</string>
|
<string name="waiting">Attendere</string>
|
||||||
<string name="loading">Caricamento</string>
|
<string name="loading">Caricamento</string>
|
||||||
<string name="completed">Completato</string>
|
<string name="completed">Completato</string>
|
||||||
<string name="ord_acq_testata"><![CDATA[Ord. Acq. <b>%s</b> del <b>%s</b>]]></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_ven_testata_data_cons"><![CDATA[Cons <b>%s</b>]]></string>
|
||||||
<string name="search">Cerca...</string>
|
<string name="search">Cerca...</string>
|
||||||
<string name="accettazione_title_fragment">Accettazione</string>
|
<string name="accettazione_title_fragment">Accettazione</string>
|
||||||
<string name="accettazione_ordine_inevaso_title_empty">Ordine di accettazione</string>
|
<string name="accettazione_ordine_inevaso_title_empty">Ordine di accettazione</string>
|
||||||
<string name="accettazione_ordine_inevaso_title_multiple_order">Ordini di accettazione</string>
|
<string name="accettazione_ordine_inevaso_title_multiple_order">Ordini di accettazione</string>
|
||||||
|
<string name="vendita_title_fragment">Spedizione</string>
|
||||||
<string name="error">Ops</string>
|
<string name="error">Ops</string>
|
||||||
<string name="warning">Attenzione</string>
|
<string name="warning">Attenzione</string>
|
||||||
<string name="ok">OK</string>
|
<string name="ok">OK</string>
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
<color name="colorRipple">#3f3f51b5</color>
|
<color name="colorRipple">#3f3f51b5</color>
|
||||||
|
|
||||||
<color name="mainGreen">@color/green_500</color>
|
<color name="mainGreen">@color/green_500</color>
|
||||||
<color name="mainOrange">#32db64</color>
|
<color name="mainOrange">@color/orange_700</color>
|
||||||
<color name="letturaFacilitataBG">#eeeeee</color>
|
<color name="letturaFacilitataBG">#eeeeee</color>
|
||||||
|
|
||||||
<!-- FAB DEFINITIONS -->
|
<!-- FAB DEFINITIONS -->
|
||||||
@ -40,6 +40,8 @@
|
|||||||
|
|
||||||
<color name="orange_600_with_alpha">#88FB8C00</color>
|
<color name="orange_600_with_alpha">#88FB8C00</color>
|
||||||
<color name="orange_600">#FB8C00</color>
|
<color name="orange_600">#FB8C00</color>
|
||||||
|
<color name="orange_700">#F57C00</color>
|
||||||
|
<color name="orange_800">#EF6C00</color>
|
||||||
|
|
||||||
|
|
||||||
<color name="red_600">#E53935</color>
|
<color name="red_600">#E53935</color>
|
||||||
|
|||||||
@ -14,10 +14,13 @@
|
|||||||
<string name="search">Search...</string>
|
<string name="search">Search...</string>
|
||||||
|
|
||||||
|
|
||||||
<string name="ord_acq_testata"><![CDATA[Pur. Ord. <b>%s</b> of <b>%s</b>]]></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_ven_testata_data_cons"><![CDATA[Ship <b>%s</b>]]></string>
|
||||||
<string name="accettazione_title_fragment">Check in</string>
|
<string name="accettazione_title_fragment">Check in</string>
|
||||||
<string name="accettazione_ordine_inevaso_title_empty">Check in order</string>
|
<string name="accettazione_ordine_inevaso_title_empty">Check in order</string>
|
||||||
<string name="accettazione_ordine_inevaso_title_multiple_order">Multiple acceptance orders</string>
|
<string name="accettazione_ordine_inevaso_title_multiple_order">Multiple acceptance orders</string>
|
||||||
|
<string name="vendita_title_fragment">Check out</string>
|
||||||
<string name="error">Ops</string>
|
<string name="error">Ops</string>
|
||||||
<string name="warning">Warning</string>
|
<string name="warning">Warning</string>
|
||||||
<string name="ok">OK</string>
|
<string name="ok">OK</string>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user