Refactoring main list accettazione
This commit is contained in:
parent
fbcda5eaf6
commit
624a880ad5
@ -5,6 +5,8 @@ import javax.inject.Singleton;
|
||||
import dagger.Component;
|
||||
import it.integry.integrywmsnative.core.context.AppContext;
|
||||
import it.integry.integrywmsnative.core.data_store.db.RoomModule;
|
||||
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneComponent;
|
||||
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneModule;
|
||||
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingComponent;
|
||||
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingModule;
|
||||
import it.integry.integrywmsnative.gest.main.MainActivityComponent;
|
||||
@ -53,10 +55,11 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
||||
// Definition of the Application graph
|
||||
@Singleton
|
||||
@Component(modules = {
|
||||
RoomModule.class,
|
||||
SplashActivityModule.class,
|
||||
MainApplicationModule.class,
|
||||
MainFragmentModule.class,
|
||||
RoomModule.class,
|
||||
MainAccettazioneModule.class,
|
||||
MainActivityModule.class,
|
||||
PVOrdineAcquistoGrigliaModule.class,
|
||||
PVOrdineAcquistoEditModule.class,
|
||||
@ -83,6 +86,7 @@ public interface MainApplicationComponent {
|
||||
SplashActivityComponent.Factory splashActivityComponent();
|
||||
MainActivityComponent.Factory mainActivityComponent();
|
||||
MainFragmentComponent.Factory mainFragmentComponent();
|
||||
MainAccettazioneComponent.Factory mainAccettazioneComponent();
|
||||
PVOrdineAcquistoGrigliaComponent.Factory pvOrdineAcquistoGrigliaComponent();
|
||||
PVOrdineAcquistoEditComponent.Factory pvOrdineAcquistoEditComponent();
|
||||
PickingLiberoComponent.Factory pickingLiberoComponent();
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
package it.integry.integrywmsnative.gest.accettazione;
|
||||
|
||||
import dagger.Subcomponent;
|
||||
|
||||
@Subcomponent
|
||||
public interface MainAccettazioneComponent {
|
||||
|
||||
@Subcomponent.Factory
|
||||
interface Factory {
|
||||
|
||||
MainAccettazioneComponent create();
|
||||
}
|
||||
|
||||
void inject(MainAccettazioneFragment mainAccettazioneFragment);
|
||||
}
|
||||
@ -1,20 +1,17 @@
|
||||
package it.integry.integrywmsnative.gest.accettazione;
|
||||
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Html;
|
||||
import android.text.SpannableString;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
@ -23,44 +20,46 @@ import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.core.rest.CommonRESTException;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBinding;
|
||||
import it.integry.integrywmsnative.gest.accettazione.core.AccettazioneHelper;
|
||||
import it.integry.integrywmsnative.gest.accettazione.core.MainListAccettazioneAdapter;
|
||||
import it.integry.integrywmsnative.gest.accettazione.core.MainListAccettazioneClienteListModel;
|
||||
import it.integry.integrywmsnative.gest.accettazione.core.MainListAccettazioneListModel;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
||||
import it.integry.integrywmsnative.gest.accettazione.rest.OrdiniAccettazioneRESTConsumer;
|
||||
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingActivity;
|
||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||
|
||||
public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IScrollableFragment {
|
||||
public class MainAccettazioneFragment extends BaseFragment implements ISearcableFragment, ITitledFragment, IScrollableFragment, MainAccettazioneViewModel.Listener {
|
||||
|
||||
public BindableBoolean fabVisible = new BindableBoolean(false);
|
||||
|
||||
@Inject
|
||||
MainAccettazioneViewModel mViewModel;
|
||||
|
||||
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||
private ElevatedToolbar mToolbar;
|
||||
|
||||
private FragmentMainAccettazioneBinding mBinding;
|
||||
|
||||
private AccettazioneHelper mHelper;
|
||||
private MainListAccettazioneAdapter mAdapter;
|
||||
|
||||
private List<OrdineAccettazioneInevasoDTO> mOriginalOrderList;
|
||||
private final List<OrdineAccettazioneInevasoDTO> mRenderedOrderList = new ArrayList<>();
|
||||
private final ObservableArrayList<MainListAccettazioneListModel> mOrdiniInevasiMutableData = new ObservableArrayList<>();
|
||||
|
||||
private AppCompatTextView mAppBarTitle;
|
||||
|
||||
|
||||
|
||||
|
||||
public MainAccettazioneFragment() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
@ -73,8 +72,6 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||
mAppBarTitle = titleText;
|
||||
@ -87,21 +84,32 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
||||
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_accettazione, container, false);
|
||||
|
||||
init();
|
||||
MainApplication.appComponent
|
||||
.mainAccettazioneComponent()
|
||||
.create()
|
||||
.inject(this);
|
||||
|
||||
mViewModel.setListener(this);
|
||||
|
||||
mBinding.setLifecycleOwner(this);
|
||||
mBinding.setView(this);
|
||||
mBinding.accettazioneMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
mBinding.accettazioneMainFab.hide();
|
||||
|
||||
mBinding.accettazioneMainFab.setOnClickListener(v -> {
|
||||
this.onAccettazioneMainFabClick();
|
||||
});
|
||||
this.initRecyclerView();
|
||||
|
||||
mToolbar.setRecyclerView(mBinding.accettazioneMainList);
|
||||
|
||||
return mBinding.getRoot();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
|
||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||
mViewModel.init(codMdep);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||
@ -111,111 +119,93 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void init() {
|
||||
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
||||
|
||||
mHelper = new AccettazioneHelper(getActivity());
|
||||
|
||||
mHelper.loadOrdini(ordini -> {
|
||||
if(ordini != null) {
|
||||
Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show();
|
||||
mOriginalOrderList = ordini;
|
||||
}
|
||||
|
||||
mBinding.ordiniAccettazioneEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE);
|
||||
refreshRenderedOrdini(ordini);
|
||||
initRecyclerView();
|
||||
progress.dismiss();
|
||||
|
||||
}, ex -> {
|
||||
UtilityExceptions.defaultException(getActivity(), ex, progress);
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void initRecyclerView() {
|
||||
mAdapter = new MainListAccettazioneAdapter(getActivity(), mRenderedOrderList, onSingleSelectionChanged);
|
||||
mBinding.accettazioneMainList.setAdapter(mAdapter);
|
||||
}
|
||||
this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), this::refreshList);
|
||||
|
||||
private void refreshRenderedOrdini(List<OrdineAccettazioneInevasoDTO> ordini) {
|
||||
|
||||
mRenderedOrderList.clear();
|
||||
if(ordini != null) mRenderedOrderList.addAll(ordini);
|
||||
MainListAccettazioneAdapter adapter = new MainListAccettazioneAdapter(getActivity(), mOrdiniInevasiMutableData)
|
||||
.setOnGroupItemClicked(x -> {
|
||||
Stream.of(mOrdiniInevasiMutableData)
|
||||
.filter(y -> !y.getGroupTitle().equalsIgnoreCase(x) && y.getSelectedObservable().get())
|
||||
.forEach(y -> y.getSelectedObservable().set(false));
|
||||
|
||||
boolean allSelected = Stream.of(mOrdiniInevasiMutableData)
|
||||
.filter(y -> y.getGroupTitle().equalsIgnoreCase(x))
|
||||
.allMatch(y -> y.getSelectedObservable().get());
|
||||
|
||||
Stream.of(mOrdiniInevasiMutableData)
|
||||
.filter(y -> y.getGroupTitle().equalsIgnoreCase(x))
|
||||
.forEach(y -> y.getSelectedObservable().set(!allSelected));
|
||||
})
|
||||
.setOnItemChecked(x -> {
|
||||
Stream.of(mOrdiniInevasiMutableData)
|
||||
.filter(y -> !y.getGroupTitle().equalsIgnoreCase(x.getGroupTitle()) && y.getSelectedObservable().get())
|
||||
.forEach(y -> y.getSelectedObservable().set(false));
|
||||
|
||||
fabVisible.set(Stream.of(mOrdiniInevasiMutableData)
|
||||
.anyMatch(y -> y.getSelectedObservable().get()));
|
||||
});
|
||||
|
||||
adapter.setEmptyView(this.mBinding.ordiniAccettazioneEmptyView);
|
||||
|
||||
this.mBinding.accettazioneMainList.setAdapter(adapter);
|
||||
this.mBinding.accettazioneMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
|
||||
if (mToolbar != null)
|
||||
mToolbar.setRecyclerView(this.mBinding.accettazioneMainList);
|
||||
}
|
||||
|
||||
|
||||
private void refreshList(List<OrdineAccettazioneInevasoDTO> filteredList) {
|
||||
|
||||
private final RunnableArgs<OrdineAccettazioneInevasoDTO> onSingleSelectionChanged = dto -> {
|
||||
List<OrdineAccettazioneInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
||||
List<OrdineAccettazioneInevasoDTO> tmpList = null;
|
||||
|
||||
if(dto.isSelected()) {
|
||||
Stream.of(selectedOrders)
|
||||
.filter(x -> !x.getCodAnagOrd().equalsIgnoreCase(dto.getCodAnagOrd()))
|
||||
.forEach(x -> x.setSelected(false));
|
||||
if (filteredList != null) {
|
||||
tmpList = filteredList;
|
||||
} else {
|
||||
tmpList = mViewModel.getOrderList().getValue();
|
||||
}
|
||||
|
||||
if(selectedOrders != null && selectedOrders.size() > 0) {
|
||||
mBinding.accettazioneMainFab.show();
|
||||
}
|
||||
else {
|
||||
mBinding.accettazioneMainFab.hide();
|
||||
}
|
||||
};
|
||||
this.mOrdiniInevasiMutableData.clear();
|
||||
this.mOrdiniInevasiMutableData.addAll(convertDataModelToListModel(tmpList));
|
||||
}
|
||||
|
||||
private void onAccettazioneMainFabClick() {
|
||||
private List<MainListAccettazioneListModel> convertDataModelToListModel(List<OrdineAccettazioneInevasoDTO> dataList) {
|
||||
|
||||
List<OrdineAccettazioneInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
||||
return Stream.of(dataList)
|
||||
.distinctBy(OrdineAccettazioneInevasoDTO::getBarcode)
|
||||
.sortBy(x -> x.getRagSocOrd() + (x.getDataConsD() != null ? UtilityDate.formatDate(x.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH) : ""))
|
||||
.map(x -> {
|
||||
MainListAccettazioneListModel listModel = new MainListAccettazioneListModel();
|
||||
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
||||
listModel.setOriginalModel(x);
|
||||
|
||||
OrdiniAccettazioneRESTConsumer.retrievePickingListNewStatic(selectedOrders, sitArtOrds -> {
|
||||
progress.dismiss();
|
||||
|
||||
|
||||
long artsCounter = Stream.of(sitArtOrds)
|
||||
.filter(x -> UtilityBigDecimal.greaterThan(x.getQtaDaEvadere(), BigDecimal.ZERO))
|
||||
.map(SitArtOrdDTO::getCodMart)
|
||||
.distinct()
|
||||
.count();
|
||||
|
||||
long ordsCounter = Stream.of(sitArtOrds)
|
||||
.distinctBy(x -> x.getDataOrd() + " " + x.getNumOrd() + " " + x.getGestione())
|
||||
.count();
|
||||
|
||||
|
||||
DialogSimpleMessageView.makeInfoDialog(getText(R.string.orders).toString(),
|
||||
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, (int) ordsCounter), ordsCounter)
|
||||
+ "<br /><br />" +
|
||||
"<b>" + artsCounter + "</b> " + getActivity().getResources().getQuantityString(R.plurals.available_articles, (int) artsCounter)),
|
||||
null,
|
||||
() -> {
|
||||
|
||||
String cacheSitArtItemID = DataCache.addItem(sitArtOrds);
|
||||
String cacheOrdersItemID = DataCache.addItem(selectedOrders);
|
||||
|
||||
Intent myIntent = new Intent(getActivity(), AccettazionePickingActivity.class);
|
||||
myIntent.putExtra("keyOrders", cacheOrdersItemID);
|
||||
myIntent.putExtra("keySitArts", cacheSitArtItemID);
|
||||
getActivity().startActivity(myIntent);
|
||||
|
||||
}).show(getActivity().getSupportFragmentManager(), "tag");
|
||||
|
||||
}, ex -> {
|
||||
progress.dismiss();
|
||||
|
||||
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
||||
if(errorMessage == null) errorMessage = ex.getMessage() + "\n" + ex.getCause().getCause().getMessage();
|
||||
|
||||
DialogSimpleMessageView
|
||||
.makeErrorDialog(new SpannableString(errorMessage), null, null)
|
||||
.show(getActivity().getSupportFragmentManager(), "tag");
|
||||
});
|
||||
listModel.setGroupTitle(x.getRagSocOrd());
|
||||
|
||||
listModel.setDescription(String.format(getString(R.string.ord_acq_testata), x.getNumero().toString(), UtilityDate.formatDate(x.getDataD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
|
||||
|
||||
List<MainListAccettazioneClienteListModel> clienti = Stream.of(dataList)
|
||||
.filter(y -> y.getBarcode().equals(x.getBarcode()))
|
||||
.map(y -> new MainListAccettazioneClienteListModel()
|
||||
.setPrimaryText(y.getRifOrd())
|
||||
.setRightText(UtilityDate.formatDate(y.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH)))
|
||||
.toList();
|
||||
|
||||
listModel.setClientiListModel(clienti);
|
||||
|
||||
return listModel;
|
||||
})
|
||||
.toList();
|
||||
}
|
||||
|
||||
public void dispatchOrders() {
|
||||
List<OrdineAccettazioneInevasoDTO> selectedOrders = Stream.of(this.mOrdiniInevasiMutableData)
|
||||
.filter(x -> x.getSelectedObservable().get())
|
||||
.map(MainListAccettazioneListModel::getOriginalModel)
|
||||
.toList();
|
||||
|
||||
|
||||
this.mViewModel.loadPicking(selectedOrders);
|
||||
}
|
||||
|
||||
|
||||
@ -236,11 +226,22 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
final List<OrdineAccettazioneInevasoDTO> filtermodelist = mHelper.getFilteredOrdersByFornitore(mOriginalOrderList, newText);
|
||||
mAdapter.updateItems(filtermodelist);
|
||||
return true;
|
||||
List<OrdineAccettazioneInevasoDTO> filteredOrders = new ArrayList<>();
|
||||
List<OrdineAccettazioneInevasoDTO> originalList = this.mViewModel.getOrderList().getValue();
|
||||
|
||||
if(originalList == null || originalList.isEmpty()) return false;
|
||||
|
||||
for(int i = 0; i < originalList.size(); i++){
|
||||
|
||||
if(originalList.get(i).getRagSocOrd().toLowerCase().contains(newText.toLowerCase())){
|
||||
filteredOrders.add(originalList.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
refreshList(filteredOrders);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||
mToolbar = toolbar;
|
||||
@ -251,4 +252,35 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
||||
public void addOnPreDestroy(Runnable onPreDestroy) {
|
||||
this.mOnPreDestroyList.add(onPreDestroy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOrdersDispatched(List<OrdineAccettazioneInevasoDTO> orders, List<SitArtOrdDTO> sitArts) {
|
||||
long artsCounter = Stream.of(sitArts)
|
||||
.filter(x -> UtilityBigDecimal.greaterThan(x.getQtaDaEvadere(), BigDecimal.ZERO))
|
||||
.map(SitArtOrdDTO::getCodMart)
|
||||
.distinct()
|
||||
.count();
|
||||
|
||||
long ordsCounter = Stream.of(sitArts)
|
||||
.distinctBy(x -> x.getDataOrd() + " " + x.getNumOrd() + " " + x.getGestione())
|
||||
.count();
|
||||
|
||||
|
||||
DialogSimpleMessageView.makeInfoDialog(getText(R.string.orders).toString(),
|
||||
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, (int) ordsCounter), ordsCounter)
|
||||
+ "<br /><br />" +
|
||||
"<b>" + artsCounter + "</b> " + getActivity().getResources().getQuantityString(R.plurals.available_articles, (int) artsCounter)),
|
||||
null,
|
||||
() -> {
|
||||
|
||||
String cacheSitArtItemID = DataCache.addItem(sitArts);
|
||||
String cacheOrdersItemID = DataCache.addItem(orders);
|
||||
|
||||
Intent myIntent = new Intent(getActivity(), AccettazionePickingActivity.class);
|
||||
myIntent.putExtra("keyOrders", cacheOrdersItemID);
|
||||
myIntent.putExtra("keySitArts", cacheSitArtItemID);
|
||||
getActivity().startActivity(myIntent);
|
||||
|
||||
}).show(getActivity().getSupportFragmentManager(), "tag");
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,20 @@
|
||||
package it.integry.integrywmsnative.gest.accettazione;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import it.integry.integrywmsnative.gest.accettazione.rest.OrdiniAccettazioneRESTConsumer;
|
||||
|
||||
@Module(subcomponents = {MainAccettazioneComponent.class})
|
||||
public class MainAccettazioneModule {
|
||||
|
||||
@Provides
|
||||
OrdiniAccettazioneRESTConsumer providesOrdiniAccettazioneRESTConsumer() {
|
||||
return new OrdiniAccettazioneRESTConsumer();
|
||||
}
|
||||
|
||||
@Provides
|
||||
MainAccettazioneViewModel providesMainAccettazioneViewModel(OrdiniAccettazioneRESTConsumer ordiniAccettazioneRESTConsumer) {
|
||||
return new MainAccettazioneViewModel(ordiniAccettazioneRESTConsumer);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,94 @@
|
||||
package it.integry.integrywmsnative.gest.accettazione;
|
||||
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
||||
import it.integry.integrywmsnative.gest.accettazione.rest.OrdiniAccettazioneRESTConsumer;
|
||||
|
||||
public class MainAccettazioneViewModel {
|
||||
|
||||
private final OrdiniAccettazioneRESTConsumer mOrdiniAccettazioneRESTConsumer;
|
||||
|
||||
private final MutableLiveData<List<OrdineAccettazioneInevasoDTO>> mOrderList = new MutableLiveData<>();
|
||||
|
||||
private Listener mListener;
|
||||
private String codMdep;
|
||||
|
||||
@Inject
|
||||
public MainAccettazioneViewModel(OrdiniAccettazioneRESTConsumer ordiniAccettazioneRESTConsumer) {
|
||||
this.mOrdiniAccettazioneRESTConsumer = ordiniAccettazioneRESTConsumer;
|
||||
}
|
||||
|
||||
public void init(String currentCodMdep) {
|
||||
this.codMdep = currentCodMdep;
|
||||
|
||||
this.sendOnLoadingStarted();
|
||||
new Thread(() -> {
|
||||
|
||||
mOrdiniAccettazioneRESTConsumer.getOrdiniInevasi(codMdep, orderList -> {
|
||||
this.mOrderList.setValue(orderList);
|
||||
|
||||
this.sendOnLoadingEnded();
|
||||
}, this::sendError);
|
||||
|
||||
}).start();
|
||||
}
|
||||
|
||||
|
||||
public void loadPicking(List<OrdineAccettazioneInevasoDTO> selectedOrders) {
|
||||
|
||||
this.sendOnLoadingStarted();
|
||||
|
||||
new Thread(() -> {
|
||||
|
||||
this.mOrdiniAccettazioneRESTConsumer.retrievePickingListNew(selectedOrders, sitArtOrds -> {
|
||||
|
||||
this.sendOnOrdersDispatched(selectedOrders, sitArtOrds);
|
||||
this.sendOnLoadingEnded();
|
||||
|
||||
}, this::sendError);
|
||||
|
||||
}).start();
|
||||
|
||||
}
|
||||
|
||||
|
||||
public MutableLiveData<List<OrdineAccettazioneInevasoDTO>> getOrderList() {
|
||||
return mOrderList;
|
||||
}
|
||||
|
||||
public MainAccettazioneViewModel setListener(Listener listener) {
|
||||
this.mListener = listener;
|
||||
return this;
|
||||
}
|
||||
|
||||
private void sendOnLoadingStarted() {
|
||||
if (this.mListener != null) mListener.onLoadingStarted();
|
||||
}
|
||||
|
||||
private void sendOnLoadingEnded() {
|
||||
if (this.mListener != null) mListener.onLoadingEnded();
|
||||
}
|
||||
|
||||
private void sendError(Exception ex) {
|
||||
if (this.mListener != null) mListener.onError(ex);
|
||||
}
|
||||
|
||||
private void sendOnOrdersDispatched(List<OrdineAccettazioneInevasoDTO> orders, List<SitArtOrdDTO> sitArts) {
|
||||
if (this.mListener != null) mListener.onOrdersDispatched(orders, sitArts);
|
||||
}
|
||||
|
||||
public interface Listener extends ILoadingListener {
|
||||
|
||||
void onError(Exception ex);
|
||||
|
||||
void onOrdersDispatched(List<OrdineAccettazioneInevasoDTO> orders, List<SitArtOrdDTO> sitArts);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,87 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.accettazione.core;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||
import it.integry.integrywmsnative.core.rest.model.EsitoType;
|
||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.accettazione.rest.OrdiniAccettazioneRESTConsumerService;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
|
||||
/**
|
||||
* Created by GiuseppeS on 06/03/2018.
|
||||
*/
|
||||
|
||||
public class AccettazioneHelper {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
public AccettazioneHelper(Context context){
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
public void loadOrdini(RunnableArgs<List<OrdineAccettazioneInevasoDTO>> onComplete, RunnableArgs<Exception> onFailed){
|
||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||
|
||||
OrdiniAccettazioneRESTConsumerService service = RESTBuilder.getService(OrdiniAccettazioneRESTConsumerService.class);
|
||||
service.listOrdiniInevasi(codMdep, "A").enqueue(new Callback<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> call, Response<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> response) {
|
||||
|
||||
if(response.isSuccessful()) {
|
||||
|
||||
if(response.body() != null) {
|
||||
if(response.body().getEsito() == EsitoType.OK) {
|
||||
onComplete.run(response.body().getDto());
|
||||
} else {
|
||||
onFailed.run(new Exception(response.body().getErrorMessage()));
|
||||
}
|
||||
} else {
|
||||
onFailed.run(new Exception(response.message()));
|
||||
}
|
||||
} else {
|
||||
onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> call, Throwable t) {
|
||||
onFailed.run(new Exception(t));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public List<OrdineAccettazioneInevasoDTO> getSelectedOrders(List<OrdineAccettazioneInevasoDTO> ordiniList){
|
||||
return Stream.of(ordiniList)
|
||||
.filter(OrdineAccettazioneInevasoDTO::isSelected)
|
||||
.toList();
|
||||
}
|
||||
|
||||
|
||||
public List<OrdineAccettazioneInevasoDTO> getFilteredOrdersByFornitore(List<OrdineAccettazioneInevasoDTO> groupedOrdiniInevasi, String textFilter){
|
||||
List<OrdineAccettazioneInevasoDTO> filteredOrders = new ArrayList<>();
|
||||
|
||||
for(int i = 0; i < groupedOrdiniInevasi.size(); i++){
|
||||
|
||||
if(groupedOrdiniInevasi.get(i).getRagSocOrd().toLowerCase().contains(textFilter.toLowerCase())){
|
||||
filteredOrders.add(groupedOrdiniInevasi.get(i));
|
||||
}
|
||||
}
|
||||
return filteredOrders;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -3,36 +3,28 @@ package it.integry.integrywmsnative.gest.accettazione.core;
|
||||
import android.content.Context;
|
||||
import android.text.Html;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.databinding.Observable;
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||
import it.integry.integrywmsnative.core.expansion.OnSingleClickListener;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.expansion.view.ExtendedSectionedRecyclerView;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.AccettazioneMainListGroupClientiBinding;
|
||||
import it.integry.integrywmsnative.databinding.AccettazioneMainListGroupModelBinding;
|
||||
import it.integry.integrywmsnative.databinding.AccettazioneMainListModelBinding;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
||||
|
||||
public class MainListAccettazioneAdapter extends SectionedRecyclerViewAdapter<MainListAccettazioneAdapter.SubheaderHolder, MainListAccettazioneAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
||||
|
||||
public class MainListAccettazioneAdapter extends ExtendedSectionedRecyclerView<MainListAccettazioneListModel, MainListAccettazioneAdapter.SubheaderHolder, MainListAccettazioneAdapter.SingleItemViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
private List<OrdineAccettazioneInevasoDTO> mOriginalDataset;
|
||||
private List<OrdineAccettazioneInevasoDTO> mDataset;
|
||||
private RunnableArgs<OrdineAccettazioneInevasoDTO> mOnSingleSelectionChanged;
|
||||
private RunnableArgs<String> mOnGroupItemClicked;
|
||||
private RunnableArgs<MainListAccettazioneListModel> mOnItemChecked;
|
||||
|
||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
@ -55,31 +47,22 @@ public class MainListAccettazioneAdapter extends SectionedRecyclerViewAdapter<Ma
|
||||
}
|
||||
}
|
||||
|
||||
public MainListAccettazioneAdapter(Context context, List<OrdineAccettazioneInevasoDTO> myDataset, RunnableArgs<OrdineAccettazioneInevasoDTO> onSingleSelectionChanged) {
|
||||
public MainListAccettazioneAdapter(Context context, ObservableArrayList<MainListAccettazioneListModel> myDataset) {
|
||||
super(myDataset);
|
||||
mContext = context;
|
||||
mOriginalDataset = myDataset;
|
||||
mDataset = orderItems(myDataset);
|
||||
mOnSingleSelectionChanged = onSingleSelectionChanged;
|
||||
}
|
||||
|
||||
public void updateItems(List<OrdineAccettazioneInevasoDTO> updatedDataset) {
|
||||
mDataset.clear();
|
||||
mDataset.addAll(orderItems(updatedDataset));
|
||||
notifyDataSetChanged();
|
||||
notifyDataChanged();
|
||||
public MainListAccettazioneAdapter setOnGroupItemClicked(RunnableArgs<String> onGroupItemClicked) {
|
||||
this.mOnGroupItemClicked = onGroupItemClicked;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
private List<OrdineAccettazioneInevasoDTO> orderItems(List<OrdineAccettazioneInevasoDTO> dataset) {
|
||||
return Stream.of(dataset)
|
||||
.distinctBy(OrdineAccettazioneInevasoDTO::getBarcode)
|
||||
.sortBy(x -> x.getRagSocOrd() + (x.getDataConsD() != null ? UtilityDate.formatDate(x.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH) : ""))
|
||||
.toList();
|
||||
|
||||
public MainListAccettazioneAdapter setOnItemChecked(RunnableArgs<MainListAccettazioneListModel> onItemChecked) {
|
||||
this.mOnItemChecked = onItemChecked;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||
AccettazioneMainListModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.accettazione_main_list_model, parent, false);
|
||||
@ -95,48 +78,32 @@ public class MainListAccettazioneAdapter extends SectionedRecyclerViewAdapter<Ma
|
||||
|
||||
@Override
|
||||
public void onBindSubheaderViewHolder(SubheaderHolder subheaderHolder, int nextItemPosition) {
|
||||
subheaderHolder.binding.accettazioneMainListGroupHeader.setText(mDataset.get(nextItemPosition).getRagSocOrd());
|
||||
subheaderHolder.binding.accettazioneMainListGroupHeader.setText(mDataset.get(nextItemPosition).getGroupTitle());
|
||||
|
||||
subheaderHolder.binding.getRoot().setOnClickListener(v -> {
|
||||
|
||||
boolean anySelected = Stream.of(mDataset)
|
||||
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
||||
.anyMatch(OrdineAccettazioneInevasoDTO::isSelected);
|
||||
|
||||
Stream.of(mDataset)
|
||||
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
||||
.forEach(x -> x.setSelected(!anySelected));
|
||||
subheaderHolder.binding.getRoot().setOnClickListener(new OnSingleClickListener() {
|
||||
@Override
|
||||
public void onSingleClick(View v) {
|
||||
if(mOnGroupItemClicked != null) mOnGroupItemClicked.run(mDataset.get(nextItemPosition).getGroupTitle());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindItemViewHolder(SingleItemViewHolder h, int itemPosition) {
|
||||
final OrdineAccettazioneInevasoDTO ordine = mDataset.get(itemPosition);
|
||||
final SingleItemViewHolder holder = h;
|
||||
public void onBindItemViewHolder(SingleItemViewHolder holder, int itemPosition) {
|
||||
final MainListAccettazioneListModel ordine = mDataset.get(itemPosition);
|
||||
|
||||
holder.binding.accettazioneMainListGroupItemContainerCheckBox.setTag(ordine.getNumero());
|
||||
|
||||
holder.binding.accettazioneMainListGroupItemContainerCheckBox.setOnCheckedChangeListener(null);
|
||||
|
||||
ordine.selected.resetOnPropertyChangedCallback();
|
||||
|
||||
|
||||
String testataOrdString = String.format(mContext.getString(R.string.ord_acq_testata), String.valueOf(ordine.getNumero()), UtilityDate.formatDate(ordine.getDataD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
holder.binding.accettazioneMainListGroupItemContainerTestataOrd.setText(Html.fromHtml(testataOrdString));
|
||||
ordine.getSelectedObservable().resetOnPropertyChangedCallback();
|
||||
|
||||
holder.binding.accettazioneMainListGroupItemContainerClientiOrd.removeAllViews();
|
||||
holder.binding.accettazioneMainListGroupItemContainerTestataOrd.setText(Html.fromHtml(ordine.getDescription()));
|
||||
|
||||
List<OrdineAccettazioneInevasoDTO> clienti = Stream.of(mOriginalDataset)
|
||||
.filter(x -> x.getBarcode().equals(ordine.getBarcode()))
|
||||
.toList();
|
||||
|
||||
for (OrdineAccettazioneInevasoDTO cliente : clienti) {
|
||||
for (MainListAccettazioneClienteListModel cliente : ordine.getClientiListModel()) {
|
||||
AccettazioneMainListGroupClientiBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.accettazione_main_list_group_clienti, holder.binding.accettazioneMainListGroupItemContainerClientiOrd, false);
|
||||
|
||||
binding.accettazioneMainListGroupClientiComm.setText(cliente.getRifOrd());
|
||||
binding.accettazioneMainListGroupClientiComm.setText(cliente.getPrimaryText());
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(cliente.getDataConsS())) {
|
||||
binding.accettazioneMainListGroupClientiDatacons.setText(UtilityDate.formatDate(cliente.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH));
|
||||
if (!UtilityString.isNullOrEmpty(cliente.getRightText())) {
|
||||
binding.accettazioneMainListGroupClientiDatacons.setText(cliente.getRightText());
|
||||
} else {
|
||||
binding.accettazioneMainListGroupClientiDatacons.setText("");
|
||||
}
|
||||
@ -144,37 +111,34 @@ public class MainListAccettazioneAdapter extends SectionedRecyclerViewAdapter<Ma
|
||||
holder.binding.accettazioneMainListGroupItemContainerClientiOrd.addView(binding.getRoot());
|
||||
}
|
||||
|
||||
holder.binding.setCheckboxValue(ordine.selected);
|
||||
holder.binding.setSelected(ordine.getSelectedObservable());
|
||||
holder.binding.executePendingBindings();
|
||||
holder.binding.accettazioneMainListGroupItemContainerCheckBox.jumpDrawablesToCurrentState();
|
||||
|
||||
ordine.getSelectedObservable().addOnPropertyChangedCallback(() -> {
|
||||
if(this.mOnItemChecked != null) this.mOnItemChecked.run(ordine);
|
||||
});
|
||||
|
||||
holder.binding.getRoot().setOnClickListener(v -> {
|
||||
ordine.setSelected(!ordine.isSelected());
|
||||
ordine.getSelectedObservable().set(!ordine.getSelectedObservable().get());
|
||||
});
|
||||
|
||||
holder.binding.accettazioneMainListGroupItemContainerCheckBox.setChecked(ordine.isSelected());
|
||||
|
||||
//Bindable to View
|
||||
ordine.selected.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
||||
@Override
|
||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||
if(holder.binding.accettazioneMainListGroupItemContainerCheckBox.getTag().equals(ordine.getNumero())) {
|
||||
holder.binding.accettazioneMainListGroupItemContainerCheckBox.setChecked(((BindableBoolean) sender).get());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//View to Bindable
|
||||
holder.binding.accettazioneMainListGroupItemContainerCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
ordine.setSelected(isChecked);
|
||||
mOnSingleSelectionChanged.run(ordine);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onPlaceSubheaderBetweenItems(int position) {
|
||||
return !this.mDataset.get(position).getRagSocOrd().equalsIgnoreCase(this.mDataset.get(position + 1).getRagSocOrd());
|
||||
if (getItemSize() == 1) return true;
|
||||
else if (getItemSize() > 1) {
|
||||
MainListAccettazioneListModel compare1 = this.mDataset.get(position);
|
||||
MainListAccettazioneListModel compare2 = this.mDataset.get(position + 1);
|
||||
|
||||
if (UtilityString.equalsIgnoreCase(compare1.getGroupTitle(), compare2.getGroupTitle())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -182,11 +146,4 @@ public class MainListAccettazioneAdapter extends SectionedRecyclerViewAdapter<Ma
|
||||
return mDataset.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSectionTitle(int position) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
package it.integry.integrywmsnative.gest.accettazione.core;
|
||||
|
||||
public class MainListAccettazioneClienteListModel {
|
||||
|
||||
private String primaryText;
|
||||
private String rightText;
|
||||
|
||||
|
||||
public String getPrimaryText() {
|
||||
return primaryText;
|
||||
}
|
||||
|
||||
public MainListAccettazioneClienteListModel setPrimaryText(String primaryText) {
|
||||
this.primaryText = primaryText;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRightText() {
|
||||
return rightText;
|
||||
}
|
||||
|
||||
public MainListAccettazioneClienteListModel setRightText(String rightText) {
|
||||
this.rightText = rightText;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package it.integry.integrywmsnative.gest.accettazione.core;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||
|
||||
public class MainListAccettazioneListModel {
|
||||
|
||||
private String groupTitle;
|
||||
|
||||
private String description;
|
||||
|
||||
private boolean hidden;
|
||||
private BindableBoolean selected = new BindableBoolean();
|
||||
|
||||
|
||||
private OrdineAccettazioneInevasoDTO originalModel;
|
||||
private List<MainListAccettazioneClienteListModel> clientiListModel;
|
||||
|
||||
|
||||
public String getGroupTitle() {
|
||||
return groupTitle;
|
||||
}
|
||||
|
||||
public MainListAccettazioneListModel setGroupTitle(String groupTitle) {
|
||||
this.groupTitle = groupTitle;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public MainListAccettazioneListModel setDescription(String description) {
|
||||
this.description = description;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isHidden() {
|
||||
return hidden;
|
||||
}
|
||||
|
||||
public MainListAccettazioneListModel setHidden(boolean hidden) {
|
||||
this.hidden = hidden;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BindableBoolean getSelectedObservable() {
|
||||
return selected;
|
||||
}
|
||||
|
||||
public OrdineAccettazioneInevasoDTO getOriginalModel() {
|
||||
return originalModel;
|
||||
}
|
||||
|
||||
public MainListAccettazioneListModel setOriginalModel(OrdineAccettazioneInevasoDTO originalModel) {
|
||||
this.originalModel = originalModel;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<MainListAccettazioneClienteListModel> getClientiListModel() {
|
||||
return clientiListModel;
|
||||
}
|
||||
|
||||
public MainListAccettazioneListModel setClientiListModel(List<MainListAccettazioneClienteListModel> clientiListModel) {
|
||||
this.clientiListModel = clientiListModel;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@ -1,481 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.accettazione.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 java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
|
||||
/**
|
||||
* Created by GiuseppeS on 06/03/2018.
|
||||
*/
|
||||
|
||||
public class OrdineAccettazioneDTO implements Parcelable {
|
||||
|
||||
private String ragSoc;
|
||||
private int numero;
|
||||
private String data;
|
||||
private String gestione;
|
||||
private String codMdep;
|
||||
private String codAnag;
|
||||
private String codVdes;
|
||||
private String termCons;
|
||||
private ArrayList<Riga> ordini;
|
||||
private String codAlis;
|
||||
private String rifOrd;
|
||||
|
||||
|
||||
public static class Riga implements Parcelable {
|
||||
private Float qtaOrd; //QTA ORDINATA (tutta la qta ordiata)
|
||||
public Float qtaRiservate; //QTA COLLI (tutta la qta già accantonata nei colli
|
||||
private 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;
|
||||
private PickingObjectDTO[] colliAssociati;
|
||||
private Boolean hidden = null;
|
||||
private Boolean tempHidden = null;
|
||||
private String partitaMag;
|
||||
private 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 PickingObjectDTO[] getColliAssociati() {
|
||||
return colliAssociati;
|
||||
}
|
||||
|
||||
public Boolean isHidden() {
|
||||
return hidden;
|
||||
}
|
||||
|
||||
public Boolean isTempHidden() {
|
||||
return tempHidden;
|
||||
}
|
||||
|
||||
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 GestioneEnum getGestioneOrdEnum() {
|
||||
return GestioneEnum.fromString(gestioneOrd);
|
||||
}
|
||||
|
||||
public String getDataCons() {
|
||||
return dataCons;
|
||||
}
|
||||
|
||||
public String getDataOrdS() {
|
||||
return this.dataOrd;
|
||||
}
|
||||
|
||||
public Date getDataOrdD() {
|
||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataOrdS());
|
||||
}
|
||||
|
||||
|
||||
public Riga setQtaOrd(Float qtaOrd) {
|
||||
this.qtaOrd = qtaOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setQtaRiservate(BigDecimal qtaRiservate) {
|
||||
this.qtaRiservate = qtaRiservate.floatValue();
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setQtaEvasa(Float qtaEvasa) {
|
||||
this.qtaEvasa = qtaEvasa;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setRigaOrd(int rigaOrd) {
|
||||
this.rigaOrd = rigaOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setCodJcom(String codJcom) {
|
||||
this.codJcom = codJcom;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setRagSocCom(String ragSocCom) {
|
||||
this.ragSocCom = ragSocCom;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setDescrizioneCommessa(String descrizioneCommessa) {
|
||||
this.descrizioneCommessa = descrizioneCommessa;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setMtbAart(MtbAart mtbAart) {
|
||||
this.mtbAart = mtbAart;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setHidden(boolean hidden) {
|
||||
this.hidden = hidden;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setTempHidden(boolean hidden) {
|
||||
this.tempHidden = hidden;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setPartitaMag(String partitaMag) {
|
||||
this.partitaMag = partitaMag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setCodArtFor(String codArtFor) {
|
||||
this.codArtFor = codArtFor;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setDescrizioneEstesa(String descrizioneEstesa) {
|
||||
this.descrizioneEstesa = descrizioneEstesa;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setCodAlis(String codAlis) {
|
||||
this.codAlis = codAlis;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setNumOrd(int numOrd) {
|
||||
this.numOrd = numOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setDataOrd(String dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Riga setGestioneOrd(String gestioneOrd) {
|
||||
this.gestioneOrd = gestioneOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public 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<Riga> CREATOR = new Parcelable.Creator<Riga>() {
|
||||
@Override
|
||||
public Riga createFromParcel(Parcel in) {
|
||||
return new Riga(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Riga[] newArray(int size) {
|
||||
return new Riga[size];
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
public static class PickingObjectDTO extends MtbColt{
|
||||
public boolean hidden = false;
|
||||
}
|
||||
|
||||
public OrdineAccettazioneDTO() {}
|
||||
|
||||
protected OrdineAccettazioneDTO(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<Riga>();
|
||||
in.readList(ordini, 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<OrdineAccettazioneDTO> CREATOR = new Parcelable.Creator<OrdineAccettazioneDTO>() {
|
||||
@Override
|
||||
public OrdineAccettazioneDTO createFromParcel(Parcel in) {
|
||||
return new OrdineAccettazioneDTO(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrdineAccettazioneDTO[] newArray(int size) {
|
||||
return new OrdineAccettazioneDTO[size];
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
public String getRagSoc() {
|
||||
return ragSoc;
|
||||
}
|
||||
|
||||
public OrdineAccettazioneDTO setRagSoc(String ragSoc) {
|
||||
this.ragSoc = ragSoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
public int getNumero() {
|
||||
return numero;
|
||||
}
|
||||
|
||||
public OrdineAccettazioneDTO setNumero(int numero) {
|
||||
this.numero = numero;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public OrdineAccettazioneDTO setData(String data) {
|
||||
this.data = data;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getGestione() {
|
||||
return gestione;
|
||||
}
|
||||
|
||||
public OrdineAccettazioneDTO setGestione(String gestione) {
|
||||
this.gestione = gestione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodMdep() {
|
||||
return codMdep;
|
||||
}
|
||||
|
||||
public OrdineAccettazioneDTO setCodMdep(String codMdep) {
|
||||
this.codMdep = codMdep;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodAnag() {
|
||||
return codAnag;
|
||||
}
|
||||
|
||||
public OrdineAccettazioneDTO setCodAnag(String codAnag) {
|
||||
this.codAnag = codAnag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVdes() {
|
||||
return codVdes;
|
||||
}
|
||||
|
||||
public OrdineAccettazioneDTO setCodVdes(String codVdes) {
|
||||
this.codVdes = codVdes;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTermCons() {
|
||||
return termCons;
|
||||
}
|
||||
|
||||
public OrdineAccettazioneDTO setTermCons(String termCons) {
|
||||
this.termCons = termCons;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArrayList<Riga> getOrdini() {
|
||||
return ordini;
|
||||
}
|
||||
|
||||
public OrdineAccettazioneDTO setOrdini(ArrayList<Riga> ordini) {
|
||||
this.ordini = ordini;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodAlis() {
|
||||
return codAlis;
|
||||
}
|
||||
|
||||
public OrdineAccettazioneDTO setCodAlis(String codAlis) {
|
||||
this.codAlis = codAlis;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRifOrd() {
|
||||
return rifOrd;
|
||||
}
|
||||
|
||||
public OrdineAccettazioneDTO setRifOrd(String rifOrd) {
|
||||
this.rifOrd = rifOrd;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@ -22,6 +22,22 @@ import retrofit2.Response;
|
||||
public class OrdiniAccettazioneRESTConsumer extends _BaseRESTConsumer {
|
||||
|
||||
|
||||
public void getOrdiniInevasi(String codMdep, RunnableArgs<List<OrdineAccettazioneInevasoDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||
OrdiniAccettazioneRESTConsumerService service = RESTBuilder.getService(OrdiniAccettazioneRESTConsumerService.class);
|
||||
service.listOrdiniInevasi(codMdep, "A").enqueue(new Callback<>() {
|
||||
@Override
|
||||
public void onResponse(Call<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> call, Response<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> response) {
|
||||
analyzeAnswer(response, "getOrdiniInevasi", onComplete, onFailed);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> call, Throwable t) {
|
||||
onFailed.run(new Exception(t));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public void retrievePickingListNew(List<OrdineAccettazioneInevasoDTO> orders, RunnableArgs<List<SitArtOrdDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||
retrievePickingListNewStatic(orders, onComplete, onFailed);
|
||||
}
|
||||
|
||||
@ -155,7 +155,6 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
||||
|
||||
OrdiniUscitaElencoAdapter ordiniUscitaElencoAdapter =
|
||||
new OrdiniUscitaElencoAdapter(getActivity(), mOrdiniInevasiMutableData)
|
||||
.setEmptyView(this.mBindings.ordiniVenditaEmptyView)
|
||||
.setOnGroupItemClicked(x -> {
|
||||
if (!canSelectMultipleClienti) {
|
||||
Stream.of(mOrdiniInevasiMutableData)
|
||||
@ -182,6 +181,9 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
||||
.anyMatch(y -> y.getSelectedObservable().get()));
|
||||
});
|
||||
|
||||
ordiniUscitaElencoAdapter
|
||||
.setEmptyView(this.mBindings.ordiniVenditaEmptyView);
|
||||
|
||||
this.mBindings.venditaMainList.setAdapter(ordiniUscitaElencoAdapter);
|
||||
this.mBindings.venditaMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
|
||||
|
||||
@ -10,28 +10,19 @@ import android.view.ViewGroup;
|
||||
import androidx.core.content.res.ResourcesCompat;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableList;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
|
||||
import it.integry.integrywmsnative.core.expansion.OnSingleClickListener;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.expansion.view.ExtendedSectionedRecyclerView;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.FragmentMainOrdiniUscitaListGroupModelBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentMainOrdiniUscitaListModelBinding;
|
||||
|
||||
public class OrdiniUscitaElencoAdapter extends SectionedRecyclerViewAdapter<OrdiniUscitaElencoAdapter.SubheaderHolder, OrdiniUscitaElencoAdapter.SingleItemViewHolder> {
|
||||
|
||||
private final Context mContext;
|
||||
private final List<OrdiniUscitaElencoListModel> mDataset = new ArrayList<>();
|
||||
private View mEmptyView;
|
||||
public class OrdiniUscitaElencoAdapter extends ExtendedSectionedRecyclerView<OrdiniUscitaElencoListModel, OrdiniUscitaElencoAdapter.SubheaderHolder, OrdiniUscitaElencoAdapter.SingleItemViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
private RunnableArgs<String> mOnGroupItemClicked;
|
||||
private RunnableArgs<OrdiniUscitaElencoListModel> mOnItemChecked;
|
||||
|
||||
@ -57,18 +48,8 @@ public class OrdiniUscitaElencoAdapter extends SectionedRecyclerViewAdapter<Ordi
|
||||
}
|
||||
|
||||
public OrdiniUscitaElencoAdapter(Context context, ObservableArrayList<OrdiniUscitaElencoListModel> mutableDataSet) {
|
||||
this.mContext = context;
|
||||
|
||||
mutableDataSet.addOnListChangedCallback(new OnListGeneralChangedCallback() {
|
||||
@Override
|
||||
public void onChanged(ObservableList sender) {
|
||||
mDataset.clear();
|
||||
mDataset.addAll(sender);
|
||||
notifyDataSetChanged();
|
||||
notifyDataChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
});
|
||||
super(mutableDataSet);
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
public OrdiniUscitaElencoAdapter setOnGroupItemClicked(RunnableArgs<String> onGroupItemClicked) {
|
||||
@ -81,19 +62,6 @@ public class OrdiniUscitaElencoAdapter extends SectionedRecyclerViewAdapter<Ordi
|
||||
return this;
|
||||
}
|
||||
|
||||
public OrdiniUscitaElencoAdapter setEmptyView(View emptyView) {
|
||||
this.mEmptyView = emptyView;
|
||||
this.checkIfEmpty();
|
||||
return this;
|
||||
}
|
||||
|
||||
private void checkIfEmpty() {
|
||||
if (mEmptyView != null) {
|
||||
final boolean emptyViewVisible = getItemCount() == 0;
|
||||
mEmptyView.setVisibility(emptyViewVisible ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public OrdiniUscitaElencoAdapter.SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout>
|
||||
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<data>
|
||||
<import type="it.integry.integrywmsnative.R" />
|
||||
<variable
|
||||
name="checkboxValue"
|
||||
name="selected"
|
||||
type="it.integry.integrywmsnative.core.di.BindableBoolean" />
|
||||
|
||||
|
||||
@ -17,12 +17,13 @@
|
||||
android:padding="8dp">
|
||||
|
||||
|
||||
<CheckBox
|
||||
<androidx.appcompat.widget.AppCompatCheckBox
|
||||
android:id="@+id/accettazione_main_list_group_item_container_checkBox"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:layout_editor_absoluteX="0dp"
|
||||
tools:layout_editor_absoluteY="1dp" />
|
||||
tools:layout_editor_absoluteY="1dp"
|
||||
app:checked="@{selected}" />
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@ -1,29 +1,31 @@
|
||||
<layout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<data>
|
||||
<import type="androidx.databinding.ObservableList"/>
|
||||
<variable name="view" type="it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment" />
|
||||
|
||||
<import type="androidx.databinding.ObservableList" />
|
||||
|
||||
<variable
|
||||
name="view"
|
||||
type="it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment" />
|
||||
</data>
|
||||
|
||||
<FrameLayout
|
||||
<FrameLayout xmlns:fab="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:fab="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/full_white"
|
||||
tools:context="it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/accettazione_main_list"
|
||||
android:scrollbars="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/accettazione_main_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
@ -56,40 +58,42 @@
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center_horizontal"
|
||||
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
|
||||
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
|
||||
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="72dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_playlist_add_check_24dp"
|
||||
android:adjustViewBounds="true"/>
|
||||
android:adjustViewBounds="true"
|
||||
android:src="@drawable/ic_playlist_add_check_24dp" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/no_orders_found_message"
|
||||
android:textColor="@android:color/black"
|
||||
android:textSize="18sp"
|
||||
android:text="@string/no_orders_found_message"/>
|
||||
android:textSize="18sp" />
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/accettazione_main_fab"
|
||||
style="@style/Widget.MaterialComponents.FloatingActionButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_margin="@dimen/fab_margin"
|
||||
android:onClick="@{() -> view.dispatchOrders()}"
|
||||
android:tint="@android:color/white"
|
||||
style="@style/Widget.MaterialComponents.FloatingActionButton"
|
||||
app:srcCompat="@drawable/ic_check_black_24dp" />
|
||||
app:srcCompat="@drawable/ic_check_black_24dp"
|
||||
app:visibility="@{view.fabVisible}" />
|
||||
</FrameLayout>
|
||||
|
||||
</layout>
|
||||
@ -44,7 +44,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent"
|
||||
app:checked="@{selected}"/>
|
||||
app:checked="@{selected}" />
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user