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.settings.MainSettingsFragment;
|
||||
import it.integry.integrywmsnative.gest.settings.SettingsPreferenceFragment;
|
||||
import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
|
||||
|
||||
public class MainActivity extends AppCompatActivity
|
||||
implements NavigationView.OnNavigationItemSelectedListener {
|
||||
@ -132,7 +133,8 @@ public class MainActivity extends AppCompatActivity
|
||||
fragment = MainAccettazioneFragment.newInstance();
|
||||
this.adaptViewToFragment(fragment);
|
||||
} 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_manage) {
|
||||
|
||||
@ -143,7 +143,7 @@ public class MainAccettazioneFragment extends Fragment implements SearchView.OnQ
|
||||
|
||||
groupedOrdiniInevasi = new ArrayList<>();
|
||||
|
||||
//Splitto gli ordini per codAnagForn
|
||||
//Splitto gli ordini per codAnagClie
|
||||
for(int i = 0; i < ordini.size(); i++){
|
||||
if(prevCodAnag.equalsIgnoreCase(ordini.get(i).codAnagOrd)) continue;
|
||||
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);
|
||||
|
||||
}
|
||||
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="loading">Caricamento</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="accettazione_title_fragment">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="vendita_title_fragment">Spedizione</string>
|
||||
<string name="error">Ops</string>
|
||||
<string name="warning">Attenzione</string>
|
||||
<string name="ok">OK</string>
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<color name="colorRipple">#3f3f51b5</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>
|
||||
|
||||
<!-- FAB DEFINITIONS -->
|
||||
@ -40,6 +40,8 @@
|
||||
|
||||
<color name="orange_600_with_alpha">#88FB8C00</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>
|
||||
|
||||
@ -14,10 +14,13 @@
|
||||
<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_ordine_inevaso_title_empty">Check in order</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="warning">Warning</string>
|
||||
<string name="ok">OK</string>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user