Implementata main list vendita

This commit is contained in:
Giuseppe Scorrano 2018-11-21 12:48:21 +01:00
parent ecfbc1697b
commit f46c9882a0
18 changed files with 1500 additions and 13 deletions

Binary file not shown.

View File

@ -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) {

View File

@ -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;

View File

@ -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();
// }
// });
}
}

View File

@ -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();
}
}

View File

@ -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);
}
}

View File

@ -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];
}
};
}

View File

@ -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];
}
};
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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"

View 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>

View 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>

View 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>

View 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>

View File

@ -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>

View File

@ -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>

View File

@ -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>