Completato picking libero
This commit is contained in:
@@ -35,10 +35,18 @@ public class PickingLiberoActivity extends AppCompatActivity {
|
||||
|
||||
setSupportActionBar(this.mBindings.toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
getSupportActionBar().setDisplayShowTitleEnabled(false);
|
||||
|
||||
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||
.setOnScanSuccessfull(mViewModel.onScanSuccessfull)
|
||||
.setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
|
||||
|
||||
|
||||
mBindings.waterfallToolbar.setNestedScrollView(mBindings.scrollView);
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
mBindings.toolbarTitle.setText(title);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
package it.integry.integrywmsnative.gest.picking_libero.core;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableList;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.databinding.ListaPickingLiberoListModelBinding;
|
||||
|
||||
public class PickingLiberoListAdapter extends RecyclerView.Adapter<PickingLiberoListAdapter.ViewHolder>{
|
||||
|
||||
protected Context mContext;
|
||||
protected ObservableArrayList<MtbColr> mDataset;
|
||||
|
||||
private IRecyclerItemClicked<MtbColr> mOnItemClickListener;
|
||||
|
||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
protected ListaPickingLiberoListModelBinding mViewDataBinding;
|
||||
|
||||
|
||||
public ViewHolder(ListaPickingLiberoListModelBinding v) {
|
||||
super(v.getRoot());
|
||||
mViewDataBinding = v;
|
||||
}
|
||||
|
||||
public void bind(MtbColr mtbColr) {
|
||||
mViewDataBinding.setMtbColr(mtbColr);
|
||||
mViewDataBinding.executePendingBindings();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public PickingLiberoListAdapter(Context context, ObservableArrayList<MtbColr> myDataset, IRecyclerItemClicked<MtbColr> onItemClickListener) {
|
||||
mContext = context;
|
||||
mDataset = myDataset;
|
||||
mOnItemClickListener = onItemClickListener;
|
||||
|
||||
myDataset.addOnListChangedCallback(onListChangedCallback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PickingLiberoListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
// create a new view
|
||||
ListaPickingLiberoListModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.lista_picking_libero_list_model, parent, false);
|
||||
|
||||
return new PickingLiberoListAdapter.ViewHolder(viewDataBinding);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(PickingLiberoListAdapter.ViewHolder holder, int position) {
|
||||
MtbColr item = mDataset.get(position);
|
||||
holder.bind(item);
|
||||
|
||||
holder.mViewDataBinding.getRoot().setOnClickListener(x -> {
|
||||
if(mOnItemClickListener != null) {
|
||||
mOnItemClickListener.onItemClick(item, position);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(PickingLiberoListAdapter.ViewHolder holder) {
|
||||
super.onViewRecycled(holder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return mDataset.size();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback<ObservableList<MtbColr>>(){
|
||||
|
||||
@Override
|
||||
public void onChanged(ObservableList<MtbColr> sender) {
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeChanged(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeInserted(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeMoved(ObservableList<MtbColr> sender, int fromPosition, int toPosition, int itemCount) {
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeRemoved(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
@@ -12,9 +12,13 @@ import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.databinding.Observable;
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableField;
|
||||
import androidx.databinding.ObservableList;
|
||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.CommonConst;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.ArticoloRESTConsumer;
|
||||
@@ -26,6 +30,7 @@ import it.integry.integrywmsnative.core.REST.model.Ean13PesoModel;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
|
||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
@@ -36,7 +41,9 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.ActivityPickingLiberoBinding;
|
||||
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoActivity;
|
||||
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper;
|
||||
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||
import it.integry.integrywmsnative.ui.StatusBarAlert;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
|
||||
@@ -45,7 +52,7 @@ import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuanti
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
|
||||
public class PickingLiberoViewModel {
|
||||
public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
|
||||
|
||||
public ObservableField<MtbColt> mtbColt = new ObservableField<>();
|
||||
|
||||
@@ -54,16 +61,20 @@ public class PickingLiberoViewModel {
|
||||
public BindableBoolean thereIsAnyRowInUL = new BindableBoolean();
|
||||
public BindableBoolean thereIsAnOpenULWithoutRows = new BindableBoolean();
|
||||
|
||||
private Activity mContext;
|
||||
private PickingLiberoActivity mContext;
|
||||
private ActivityPickingLiberoBinding mBinding;
|
||||
private PickingLiberoHelper mHelper;
|
||||
|
||||
public void init(Activity context, ActivityPickingLiberoBinding binding, PickingLiberoHelper helper) {
|
||||
private PickingLiberoListAdapter mAdapter;
|
||||
|
||||
public void init(PickingLiberoActivity context, ActivityPickingLiberoBinding binding, PickingLiberoHelper helper) {
|
||||
mContext = context;
|
||||
mBinding = binding;
|
||||
mHelper = helper;
|
||||
|
||||
initObservable();
|
||||
|
||||
initRecyclerView();
|
||||
}
|
||||
|
||||
|
||||
@@ -79,9 +90,62 @@ public class PickingLiberoViewModel {
|
||||
}
|
||||
|
||||
private void refreshBindables() {
|
||||
if(mtbColt.get() != null) {
|
||||
initAdapter();
|
||||
|
||||
mContext.setTitle(String.format(mContext.getText(R.string.lu_number_text).toString(), mtbColt.get().getNumCollo()));
|
||||
|
||||
initObservableMtbColr();
|
||||
}
|
||||
else {
|
||||
destroyAdapter();
|
||||
|
||||
mContext.setTitle(mContext.getText(R.string.free_picking).toString());
|
||||
}
|
||||
|
||||
thereIsAnOpenedUL.set(mtbColt.get() != null);
|
||||
thereIsntAnOpenedUL.set(!thereIsAnOpenedUL.get());
|
||||
|
||||
|
||||
refreshObservableMtbColr();
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void initObservableMtbColr() {
|
||||
mtbColt.get().getMtbColr().addOnListChangedCallback(new ObservableList.OnListChangedCallback<ObservableList<MtbColr>>() {
|
||||
@Override
|
||||
public void onChanged(ObservableList<MtbColr> sender) {
|
||||
refresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeChanged(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
|
||||
refresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeInserted(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
|
||||
refresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeMoved(ObservableList<MtbColr> sender, int fromPosition, int toPosition, int itemCount) {
|
||||
refresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeRemoved(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
|
||||
refresh();
|
||||
}
|
||||
|
||||
private void refresh() {
|
||||
refreshObservableMtbColr();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void refreshObservableMtbColr() {
|
||||
thereIsAnyRowInUL.set(mtbColt.get() != null &&
|
||||
mtbColt.get().getMtbColr() != null &&
|
||||
mtbColt.get().getMtbColr().size() > 0);
|
||||
@@ -92,6 +156,29 @@ public class PickingLiberoViewModel {
|
||||
}
|
||||
|
||||
|
||||
private void initRecyclerView() {
|
||||
mBinding.pickingLiberoMainList.setNestedScrollingEnabled(false);
|
||||
|
||||
mBinding.pickingLiberoMainList.setHasFixedSize(true);
|
||||
|
||||
mBinding.pickingLiberoMainList.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
|
||||
DividerItemDecoration itemDecorator = new DividerItemDecoration(mContext, DividerItemDecoration.VERTICAL);
|
||||
itemDecorator.setDrawable(ContextCompat.getDrawable(mContext, R.drawable.divider));
|
||||
mBinding.pickingLiberoMainList.addItemDecoration(itemDecorator);
|
||||
}
|
||||
|
||||
private void initAdapter() {
|
||||
mAdapter = new PickingLiberoListAdapter(mContext, mtbColt.get().getMtbColr(), this);
|
||||
mBinding.pickingLiberoMainList.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
private void destroyAdapter() {
|
||||
mAdapter = null;
|
||||
mBinding.pickingLiberoMainList.setAdapter(null);
|
||||
}
|
||||
|
||||
|
||||
public void onBackPressed() {
|
||||
if(thereIsAnOpenedUL.get()) {
|
||||
this.closeLU();
|
||||
@@ -365,6 +452,9 @@ public class PickingLiberoViewModel {
|
||||
|
||||
|
||||
private void setULToCurrentContext(MtbColt mtbColt){
|
||||
if(mtbColt != null && mtbColt.getMtbColr() == null) {
|
||||
mtbColt.setMtbColr(new ObservableArrayList<>());
|
||||
}
|
||||
this.mtbColt.set(mtbColt);
|
||||
}
|
||||
|
||||
@@ -413,4 +503,8 @@ public class PickingLiberoViewModel {
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemClick(MtbColr item, int position) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.dto.VenditaOrdineInevasoListViewModel;
|
||||
@@ -111,7 +110,7 @@ public class VenditaOrdineInevasoHelper {
|
||||
}
|
||||
|
||||
if(currentItem.getNumCollo() != null) {
|
||||
rowModel.setSubDescrizione2(String.format(mContext.getResources().getText(R.string.lu_number_text).toString(), currentItem.getNumCollo(), currentItem.getDataColloHuman()));
|
||||
rowModel.setSubDescrizione2(String.format(mContext.getResources().getText(R.string.lu_number_data_text).toString(), currentItem.getNumCollo(), currentItem.getDataColloHuman()));
|
||||
}
|
||||
|
||||
rowModel.setQtaRiservata(getRigaQuantityEvasa(currentItem, mtbColrs));
|
||||
|
||||
Reference in New Issue
Block a user