From b931100f94ea0ee163c5d70e6651228b3741052c Mon Sep 17 00:00:00 2001 From: Gius95 Date: Mon, 7 Jan 2019 19:37:02 +0100 Subject: [PATCH 1/4] Completato picking libero --- .../picking_libero/PickingLiberoActivity.java | 8 + .../core/PickingLiberoListAdapter.java | 108 +++++++++ .../viewmodel/PickingLiberoViewModel.java | 100 ++++++++- .../core/VenditaOrdineInevasoHelper.java | 3 +- .../res/layout/activity_picking_libero.xml | 211 +++++++++--------- .../lista_picking_libero_list_model.xml | 94 ++++++++ app/src/main/res/values-it/strings.xml | 3 +- app/src/main/res/values/strings.xml | 3 +- 8 files changed, 420 insertions(+), 110 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoListAdapter.java create mode 100644 app/src/main/res/layout/lista_picking_libero_list_model.xml diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoActivity.java index 456f3423..7dc16672 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoActivity.java @@ -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 diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoListAdapter.java new file mode 100644 index 00000000..a07d327c --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoListAdapter.java @@ -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{ + + protected Context mContext; + protected ObservableArrayList mDataset; + + private IRecyclerItemClicked 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 myDataset, IRecyclerItemClicked 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>(){ + + @Override + public void onChanged(ObservableList sender) { + notifyDataSetChanged(); + } + + @Override + public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) { + notifyDataSetChanged(); + } + + @Override + public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) { + notifyDataSetChanged(); + } + + @Override + public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) { + notifyDataSetChanged(); + } + + @Override + public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) { + notifyDataSetChanged(); + } + }; + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java index c1a195c9..ad82b9f6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java @@ -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 { public ObservableField 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>() { + @Override + public void onChanged(ObservableList sender) { + refresh(); + } + + @Override + public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) { + refresh(); + } + + @Override + public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) { + refresh(); + } + + @Override + public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) { + refresh(); + } + + @Override + public void onItemRangeRemoved(ObservableList 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) { + + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java index c58379c5..ffece70f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java @@ -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)); diff --git a/app/src/main/res/layout/activity_picking_libero.xml b/app/src/main/res/layout/activity_picking_libero.xml index 68a98e44..d76ca5cf 100644 --- a/app/src/main/res/layout/activity_picking_libero.xml +++ b/app/src/main/res/layout/activity_picking_libero.xml @@ -35,128 +35,133 @@ android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?actionBarSize" - tools:title="Picking Libero" - app:popupTheme="@style/AppTheme.PopupOverlay"/> + android:gravity="center_horizontal" + app:popupTheme="@style/AppTheme.PopupOverlay"> + + + + - + android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior"> + + android:orientation="vertical" + android:paddingTop="8dp" + android:focusableInTouchMode="true" + tools:context=".gest.contenuto_bancale.ContenutoBancaleActivity"> - - - - + android:layout_marginTop="16dp" + android:layout_marginBottom="92dp" + android:paddingStart="2dp" + android:paddingEnd="2dp"> + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 63a94bd1..888eba0a 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -122,7 +122,8 @@ Contenuto UL Spedizione merce - %d - %s]]> + %d - %s]]> + Salta stampa diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 34f6fbdc..07a03bc2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -132,7 +132,8 @@ LU Content Shipping goods - %d - %s]]> + %d - %s]]> + Skip print From b263ad39f2791764a6330fde1abc002113ae811d Mon Sep 17 00:00:00 2001 From: Gius95 Date: Tue, 8 Jan 2019 15:18:59 +0100 Subject: [PATCH 2/4] Maggiorato timeout in caricamento Picking List vendita --- .../integrywmsnative/core/REST/RESTBuilder.java | 15 +++++++++------ .../gest/vendita/core/VenditaHelper.java | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/RESTBuilder.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/RESTBuilder.java index e43d30c1..2fc0b9b3 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/REST/RESTBuilder.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/RESTBuilder.java @@ -18,18 +18,21 @@ public class RESTBuilder { return getService(service, SettingsManager.i().server.host, SettingsManager.i().server.port, true); } - public static T getService(final Class service, long timeout) { + public static T getService(final Class service, int timeout) { // return getService(service, "192.168.2.13", 8080); - return getService(service, SettingsManager.i().server.host, SettingsManager.i().server.port, true); + return getService(service, SettingsManager.i().server.host, SettingsManager.i().server.port, true, timeout); } + public static T getService(final Class service, String host, int port, boolean addInterceptors) { + return getService(service, host, port, addInterceptors, 30); + } - public static T getService(final Class service, String host, int port, boolean addInterceptors){ + public static T getService(final Class service, String host, int port, boolean addInterceptors, int timeout){ OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder(); - clientBuilder.connectTimeout(30, TimeUnit.SECONDS); - clientBuilder.readTimeout(30, TimeUnit.SECONDS); - clientBuilder.writeTimeout(30, TimeUnit.SECONDS); + clientBuilder.connectTimeout(timeout, TimeUnit.SECONDS); + clientBuilder.readTimeout(timeout, TimeUnit.SECONDS); + clientBuilder.writeTimeout(timeout, TimeUnit.SECONDS); if(addInterceptors) clientBuilder.addInterceptor(new HttpInterceptor()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java index 4e4a42b7..9a4c5c93 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java @@ -93,7 +93,7 @@ public class VenditaHelper { String joinedBarcodes = TextUtils.join(",", barcodeOrdini); - OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class); + OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class, 60); Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_pick_v"); perfTrace.start(); From 18895509d9375f6f92a16f622790e84b31986a82 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 9 Jan 2019 15:52:37 +0100 Subject: [PATCH 3/4] =?UTF-8?q?Aggiunta=20possibilit=C3=A0=20di=20cancella?= =?UTF-8?q?re=20le=20righe=20nel=20Picking=20Libero?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/assetWizardSettings.xml | 51 --------- .idea/caches/build_file_checksums.ser | Bin 728 -> 729 bytes .idea/modules.xml | 2 +- .../consumers/ColliMagazzinoRESTConsumer.java | 4 +- .../REST/model/DistribuzioneColloDTO.java | 3 +- .../core/context/AppContext.java | 10 ++ .../core/utility/UtilityExceptions.java | 8 +- .../viewmodel/PickingLiberoViewModel.java | 62 +++++++++++ .../viewmodel/RettificaGiacenzeViewModel.java | 10 -- .../VenditaOrdineInevasoViewModel.java | 3 +- .../res/layout/activity_picking_libero.xml | 103 ++++++++++++++++++ 11 files changed, 188 insertions(+), 68 deletions(-) delete mode 100644 .idea/assetWizardSettings.xml create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml deleted file mode 100644 index f48666fb..00000000 --- a/.idea/assetWizardSettings.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 4ae112ed089d4617b0b9228d2826b232c2a78359..32b760cfef49b473c3f63e4b6ed7c18f777864f6 100644 GIT binary patch delta 99 zcmV-p0G$8W1=$6Vm;^2Y>GYADPXrKQaBz|VBoKZ)*>Z#wecui#vO|Ag z36mrN5|d*AEE6n4I$TwAWpZ;|M`?9)WpHq1QV5RdZ!>b6iJhb#rBKaAjOBXL4a=Y-L=NtpXd9#sO9kg`uy{ T7LxU5_xGSpA4=FslPm(Q;6N=X diff --git a/.idea/modules.xml b/.idea/modules.xml index e0a9141b..70316e59 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,7 @@ - + diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java index 93daa408..25af3c1a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java @@ -178,10 +178,10 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ } - public static void distribuisciCollo(MtbColt mtbColtToDistribute, Runnable onComplete, RunnableArgs onFailed) { + public static void distribuisciCollo(MtbColt mtbColtToDistribute, DistribuzioneColloDTO.CriterioDistribuzione criterioDistribuzione, Runnable onComplete, RunnableArgs onFailed) { DistribuzioneColloDTO distribuzioneColloDTO = new DistribuzioneColloDTO() - .setCriterioDistribuzione(DistribuzioneColloDTO.CriterioDistribuzione.UPDATE) + .setCriterioDistribuzione(criterioDistribuzione) .setDataCollo(mtbColtToDistribute.getDataColloS()) .setNumCollo(mtbColtToDistribute.getNumCollo()) .setGestione(mtbColtToDistribute.getGestione()) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/model/DistribuzioneColloDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/model/DistribuzioneColloDTO.java index bb84832d..a67a4428 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/REST/model/DistribuzioneColloDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/model/DistribuzioneColloDTO.java @@ -63,7 +63,8 @@ public class DistribuzioneColloDTO { } public enum CriterioDistribuzione { - UPDATE("U"); //UPDATE COLLO GIA' ESISTENTE + UPDATE("U"), //UPDATE COLLO GIA' ESISTENTE + SPLIT_ORDINE("O"); //UPDATE COLLO GIA' ESISTENTE private String text; CriterioDistribuzione(String text) { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java b/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java new file mode 100644 index 00000000..8343e531 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java @@ -0,0 +1,10 @@ +package it.integry.integrywmsnative.core.context; + +public class AppContext { + + public AppContext() { + + } + + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java index 3af4dec0..70d6e73e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java @@ -8,6 +8,7 @@ import android.util.Log; import com.crashlytics.android.Crashlytics; import com.orhanobut.logger.Logger; +import it.integry.integrywmsnative.BuildConfig; import it.integry.integrywmsnative.core.REST.CommonRESTException; import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; @@ -30,9 +31,12 @@ public class UtilityExceptions { if(errorMessage == null) errorMessage = ex.getMessage(); DialogSimpleMessageHelper.makeErrorDialog(context, new SpannableString(errorMessage), null, null).show(); - if(sendEmail) UtilityLogger.errorMe(ex); - Crashlytics.logException(ex.getCause()); + if(!BuildConfig.DEBUG) { + if(sendEmail) UtilityLogger.errorMe(ex); + + Crashlytics.logException(ex.getCause()); + } } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java index ad82b9f6..7b358468 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java @@ -3,8 +3,10 @@ package it.integry.integrywmsnative.gest.picking_libero.viewmodel; import android.app.Activity; import android.app.ProgressDialog; import android.text.SpannableString; +import android.view.View; import com.annimon.stream.Stream; +import com.google.android.material.bottomsheet.BottomSheetBehavior; import java.math.BigDecimal; import java.util.ArrayList; @@ -12,6 +14,7 @@ import java.util.Date; import java.util.Iterator; import java.util.List; +import androidx.annotation.NonNull; import androidx.core.content.ContextCompat; import androidx.databinding.Observable; import androidx.databinding.ObservableArrayList; @@ -38,6 +41,7 @@ import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityNumber; import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.ActivityPickingLiberoBinding; @@ -61,6 +65,8 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { public BindableBoolean thereIsAnyRowInUL = new BindableBoolean(); public BindableBoolean thereIsAnOpenULWithoutRows = new BindableBoolean(); + private BottomSheetBehavior mBottomSheetBehavior; + private PickingLiberoActivity mContext; private ActivityPickingLiberoBinding mBinding; private PickingLiberoHelper mHelper; @@ -75,6 +81,8 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { initObservable(); initRecyclerView(); + + initBottomSheetActions(); } @@ -178,6 +186,26 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { mBinding.pickingLiberoMainList.setAdapter(null); } + private void initBottomSheetActions() { + mBinding.bg.setOnClickListener(v -> mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED)); + + mBottomSheetBehavior = BottomSheetBehavior.from(mBinding.bottomSheetActions); + + mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { + @Override + public void onStateChanged(@NonNull View bottomSheet, int newState) { + if (newState == BottomSheetBehavior.STATE_COLLAPSED) + mBinding.bg.setVisibility(View.GONE); + } + + @Override + public void onSlide(@NonNull View bottomSheet, float slideOffset) { + mBinding.bg.setVisibility(View.VISIBLE); + mBinding.bg.setAlpha(slideOffset); + } + }); + } + public void onBackPressed() { if(thereIsAnOpenedUL.get()) { @@ -505,6 +533,40 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { @Override public void onItemClick(MtbColr item, int position) { + mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); + MtbColr clickedItem = mtbColt.get().getMtbColr().get(position); + + mBinding.bottomSheetActionsTitle.setText(clickedItem.getDescrizione()); + mBinding.bottomSheetActionsSubtitle.setText(clickedItem.getCodMart()); + + mBinding.bottomSheetActionsDeleteBtn.setOnClickListener(v -> onItemDelete(item)); + + mBinding.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()) + " " + clickedItem.getMtbAart().getUntMis()); + } + + + private void onItemDelete(MtbColr mtbColrToDelete) { + mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); + + MtbColr mtbColrToDeleteClone = (MtbColr) mtbColrToDelete.clone(); + + mtbColrToDeleteClone + .setRiga(null) + .setDatetimeRow(new Date()) + .setQtaCol(mtbColrToDeleteClone.getQtaCol().multiply(new BigDecimal(-1))) + .setOperation(CommonModelConsts.OPERATION.DELETE); + + MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone(); + mtbColtClone.setMtbColr(new ObservableArrayList<>()); + mtbColtClone.getMtbColr().add(mtbColrToDeleteClone); + mtbColtClone.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + + ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + + ColliMagazzinoRESTConsumer.saveCollo(mtbColtClone, value -> { + progressDialog.dismiss(); + mtbColt.get().getMtbColr().remove(mtbColrToDelete); + }, ex -> UtilityExceptions.defaultException(mContext, ex, progressDialog)); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java index 3fb0ff5c..a51fb212 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java @@ -519,16 +519,6 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked }).show(); - - - - - - - - - - } private void onItemDelete(MtbColr mtbColrToDelete) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java index 8d9a536a..9e26aee9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java @@ -21,6 +21,7 @@ import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer; +import it.integry.integrywmsnative.core.REST.model.DistribuzioneColloDTO; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.CommonModelConsts; @@ -688,7 +689,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone(); - ColliMagazzinoRESTConsumer.distribuisciCollo(cloneMtbColt, onComplete, + ColliMagazzinoRESTConsumer.distribuisciCollo(cloneMtbColt, DistribuzioneColloDTO.CriterioDistribuzione.UPDATE, onComplete, ex -> UtilityExceptions.defaultException(mActivity, ex, progress)); } diff --git a/app/src/main/res/layout/activity_picking_libero.xml b/app/src/main/res/layout/activity_picking_libero.xml index d76ca5cf..4de2c5e9 100644 --- a/app/src/main/res/layout/activity_picking_libero.xml +++ b/app/src/main/res/layout/activity_picking_libero.xml @@ -192,6 +192,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 0f41d6dbf60f481a0d167785161b96220a01110f Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 9 Jan 2019 15:55:07 +0100 Subject: [PATCH 4/4] -> v1.0.15 (18) --- .idea/caches/build_file_checksums.ser | Bin 729 -> 729 bytes app/build.gradle | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 32b760cfef49b473c3f63e4b6ed7c18f777864f6..590549a468754f87458c945392c176fe2716a634 100644 GIT binary patch delta 36 scmcb~dXsg+3>IUlq>hPm$_2zir(ZiDalOyNscXK0*J%8c6>0TJ2`VgLXD delta 36 scmcb~dXsg+3>H16mtQ8%DHo`-xmnaAQhT3IbCYv@{8RqT%8c6>0VaD7F8}}l diff --git a/app/build.gradle b/app/build.gradle index b1089999..e55ae9e1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -21,8 +21,8 @@ android { applicationId "it.integry.integrywmsnative" minSdkVersion 21 targetSdkVersion 28 - versionCode 17 - versionName "1.0.14" + versionCode 18 + versionName "1.0.15" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }