From cce7507823a129bcd0654beb5a5a327758594fd7 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 26 Nov 2019 11:15:13 +0100 Subject: [PATCH 01/12] Fix su unt_mis in picking libero --- .../core/class_router/ClassRouter.java | 2 +- .../consumers/ColliMagazzinoRESTConsumer.java | 13 +++- .../picking_libero/PickingLiberoFragment.java | 33 ++++++--- .../core/PickingLiberoHelper.java | 13 ---- .../viewmodel/PickingLiberoViewModel.java | 17 ++--- .../res/layout/fragment_picking_libero.xml | 74 +++---------------- 6 files changed, 49 insertions(+), 103 deletions(-) delete mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoHelper.java diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java index d1412345..e17ccd51 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java @@ -72,7 +72,7 @@ public class ClassRouter { return (T)clazz.newInstance(); } catch (InstantiationException | MethodPathNotRegisteredException | IllegalAccessException ex) { - UtilityExceptions.defaultException(context, ex, true); + UtilityExceptions.defaultException(null, ex, true); } return null; 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 1d10f38f..b2d41182 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 @@ -3,6 +3,8 @@ package it.integry.integrywmsnative.core.rest.consumers; import android.app.Dialog; import android.content.Context; +import androidx.databinding.ObservableArrayList; + import com.annimon.stream.Stream; import com.google.gson.Gson; import com.google.gson.JsonObject; @@ -50,15 +52,18 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ public static void saveCollo(MtbColt mtbColtToSave, RunnableArgs onComplete, RunnableArgs onFailed){ + MtbColt mtbColtToSaveClone = (MtbColt) mtbColtToSave.clone(); + mtbColtToSaveClone.setMtbColr(new ObservableArrayList<>()); for (int i = 0; i < mtbColtToSave.getMtbColr().size(); i++) { - mtbColtToSave.getMtbColr().get(i) - .setMtbAart(null) - .setRifPartitaMag(null); + mtbColtToSaveClone.getMtbColr().add( + ((MtbColr) mtbColtToSave.getMtbColr().get(i).clone()) + .setMtbAart(null) + .setRifPartitaMag(null)); } - EntityRESTConsumer.processEntity(mtbColtToSave, new ISimpleOperationCallback() { + EntityRESTConsumer.processEntity(mtbColtToSaveClone, new ISimpleOperationCallback() { @Override public void onSuccess(MtbColt value) { if(onComplete != null) onComplete.run(value); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java index ecafcc2c..4cb35c87 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java @@ -10,29 +10,31 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import androidx.appcompat.app.ActionBar; import androidx.databinding.DataBindingUtil; -import it.integry.integrywmsnative.BuildConfig; + import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; +import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding; -import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper; import it.integry.integrywmsnative.gest.picking_libero.viewmodel.PickingLiberoViewModel; +import it.integry.integrywmsnative.ui.ElevatedToolbar; /** * A simple {@link Fragment} subclass. */ -public class PickingLiberoFragment extends Fragment implements ITitledFragment { +public class PickingLiberoFragment extends Fragment implements ITitledFragment, IScrollableFragment { private FragmentPickingLiberoBinding mBindings; - private PickingLiberoHelper mHelper; private PickingLiberoViewModel mViewModel; - private AppCompatTextView mAppCompatActionBar; + + private Runnable mOnPreDestroy; + private ElevatedToolbar mToolbar; + private AppCompatTextView mToolbarTitleText; private int barcodeScannerIstanceID = -1; @@ -49,8 +51,8 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment { @Override public void onCreateActionBar(AppCompatTextView titleText, Context context) { - mAppCompatActionBar = titleText; - titleText.setText(context.getText(R.string.free_picking_title_fragment).toString()); + mToolbarTitleText = titleText; + mToolbarTitleText.setText(context.getText(R.string.free_picking_title_fragment).toString()); } @Override @@ -66,10 +68,9 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment { // Inflate the layout for this fragment mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_picking_libero, container, false); - mHelper = new PickingLiberoHelper(getActivity()); mViewModel = new PickingLiberoViewModel(); - mViewModel.init(getActivity(), mBindings, mHelper, mAppCompatActionBar, () -> { + mViewModel.init(getActivity(), mBindings, mToolbarTitleText, () -> { ((IPoppableActivity) getActivity()).pop(); }); @@ -80,7 +81,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment { .setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false))); - mBindings.elevatedToolbar.setNestedScrollView(mBindings.scrollView); + mToolbar.setRecyclerView(mBindings.pickingLiberoMainList); return mBindings.getRoot(); } @@ -89,7 +90,17 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment { public void onDestroyView() { mViewModel.closeLU(); BarcodeManager.removeCallback(barcodeScannerIstanceID); + if(mOnPreDestroy != null) mOnPreDestroy.run(); super.onDestroyView(); } + @Override + public void setScrollToolbar(ElevatedToolbar toolbar) { + mToolbar = toolbar; + } + + @Override + public void setOnPreDestroy(Runnable onPreDestroy) { + mOnPreDestroy = onPreDestroy; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoHelper.java deleted file mode 100644 index 1d0cc315..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoHelper.java +++ /dev/null @@ -1,13 +0,0 @@ -package it.integry.integrywmsnative.gest.picking_libero.core; - -import android.content.Context; - -public class PickingLiberoHelper { - - private final Context mContext; - - public PickingLiberoHelper(Context context) { - mContext = context; - } - -} 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 3498a8d7..bb7b2bb0 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 @@ -2,7 +2,6 @@ package it.integry.integrywmsnative.gest.picking_libero.viewmodel; import android.app.Activity; import android.app.Dialog; -import android.app.ProgressDialog; import android.text.SpannableString; import android.view.View; @@ -50,8 +49,8 @@ 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.FragmentPickingLiberoBinding; -import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper; import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter; +import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskCliente; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; @@ -73,17 +72,15 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { private Activity mContext; private FragmentPickingLiberoBinding mBinding; - private PickingLiberoHelper mHelper; - private AppCompatTextView mAppBarTitle; + private AppCompatTextView mToolbarTitleText; private PickingLiberoListAdapter mAdapter; - public void init(Activity context, FragmentPickingLiberoBinding binding, PickingLiberoHelper helper, AppCompatTextView titleText, Runnable onComplete) { + public void init(Activity context, FragmentPickingLiberoBinding binding, AppCompatTextView toolbarTitleText, Runnable onComplete) { mContext = context; mBinding = binding; - mHelper = helper; - mAppBarTitle = titleText; + mToolbarTitleText = toolbarTitleText; initObservable(); @@ -108,14 +105,14 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { if(mtbColt.get() != null) { initAdapter(); - if(mAppBarTitle != null) mAppBarTitle.setText(String.format(mContext.getText(R.string.lu_number_text).toString(), mtbColt.get().getNumCollo())); + if(mToolbarTitleText != null) mToolbarTitleText.setText(String.format(mContext.getText(R.string.lu_number_text).toString(), mtbColt.get().getNumCollo())); initObservableMtbColr(); } else { destroyAdapter(); - mAppBarTitle.setText(mContext.getText(R.string.free_picking).toString()); + mToolbarTitleText.setText(mContext.getText(R.string.free_picking).toString()); } thereIsAnOpenedUL.set(mtbColt.get() != null); @@ -555,6 +552,8 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { private void saveLU(MtbColt mtbColtToSave) { mtbColtToSave.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + + for(int i = 0; i < mtbColtToSave.getMtbColr().size(); i++) { mtbColtToSave.getMtbColr().get(i).setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); } diff --git a/app/src/main/res/layout/fragment_picking_libero.xml b/app/src/main/res/layout/fragment_picking_libero.xml index a010a489..2f28004e 100644 --- a/app/src/main/res/layout/fragment_picking_libero.xml +++ b/app/src/main/res/layout/fragment_picking_libero.xml @@ -20,73 +20,17 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:layout_marginBottom="92dp" + android:paddingStart="2dp" + android:paddingEnd="2dp"> + From 34e1ce5a6660b96734b7ab7a7d5c0f45cb8d0821 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 26 Nov 2019 11:17:57 +0100 Subject: [PATCH 02/12] Aggiunto picking libero in build saporiveri_pv --- .../extensions/MenuConfigurationSAPORIVERIPV.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dynamic_saporiveri_pv/src/main/java/it/integry/wms/dynamic_customization/extensions/MenuConfigurationSAPORIVERIPV.java b/dynamic_saporiveri_pv/src/main/java/it/integry/wms/dynamic_customization/extensions/MenuConfigurationSAPORIVERIPV.java index adc468ed..a375141d 100644 --- a/dynamic_saporiveri_pv/src/main/java/it/integry/wms/dynamic_customization/extensions/MenuConfigurationSAPORIVERIPV.java +++ b/dynamic_saporiveri_pv/src/main/java/it/integry/wms/dynamic_customization/extensions/MenuConfigurationSAPORIVERIPV.java @@ -1,6 +1,7 @@ package it.integry.wms.dynamic_customization.extensions; import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration; +import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment; import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdiniAcquistoGrigliaFragment; public class MenuConfigurationSAPORIVERIPV extends BaseMenuConfiguration { @@ -25,6 +26,18 @@ public class MenuConfigurationSAPORIVERIPV extends BaseMenuConfiguration { // .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_trasmitted_orders_list) // .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_trasmitted_orders_list) // .setFragmentClass(PVOrdiniAcquistoTransmittedListFragment.newInstance())) + ) + .addGroup( + new MenuGroup() + .setGroupText(it.integry.integrywmsnative.R.string.checkout) + .setGroupId(it.integry.integrywmsnative.R.id.nav_group_spedizione) + + .addItem(new MenuItem() + .setID(it.integry.integrywmsnative.R.id.nav_free_picking) + .setTitleText(it.integry.integrywmsnative.R.string.free_picking) + .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_picking_libero) + .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_barcode_scanner) + .setFragmentClass(PickingLiberoFragment.newInstance())) ); From 6ff014820c89de62ca7d96b0a7a3c422c7eb2400 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 26 Nov 2019 11:19:58 +0100 Subject: [PATCH 03/12] -> v1.9.7 (101) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 83c5b079..7c776950 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 100 - def appVersionName = '1.9.6' + def appVersionCode = 101 + def appVersionName = '1.9.7' signingConfigs { release { From a336fa68eb7a119e274ba81f68006b5ead0b452f Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 26 Nov 2019 17:29:56 +0100 Subject: [PATCH 04/12] Migliorata gestione eccezioni --- .../integry/integrywmsnative/core/class_router/ClassRouter.java | 2 +- .../it/integry/integrywmsnative/core/utility/UtilityLogger.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java index e17ccd51..12b4bda8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java @@ -72,7 +72,7 @@ public class ClassRouter { return (T)clazz.newInstance(); } catch (InstantiationException | MethodPathNotRegisteredException | IllegalAccessException ex) { - UtilityExceptions.defaultException(null, ex, true); + // UtilityExceptions.defaultException(null, ex, true); } return null; diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityLogger.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityLogger.java index 8abd1bb0..eb8d76d1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityLogger.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityLogger.java @@ -38,7 +38,7 @@ public class UtilityLogger { } public static void errorMe(Exception ex, String additionalText, Runnable onComplete, RunnableArgs onFailed) { - if(!(ex instanceof SocketTimeoutException)) { + if(!(ex instanceof SocketTimeoutException) && !(ex.getCause() instanceof SocketTimeoutException)) { String message = UtilityResources.readRawTextFile(R.raw.error_mail); From af65a42a6af75b63c7f2ea5f7b188cb2ca6ebb09 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 26 Nov 2019 17:30:55 +0100 Subject: [PATCH 05/12] -> v1.9.8 (102) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 7c776950..ba8aabf3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 101 - def appVersionName = '1.9.7' + def appVersionCode = 102 + def appVersionName = '1.9.8' signingConfigs { release { From efa891187a3e875cf7e743c288252528053667fd Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 3 Dec 2019 11:32:02 +0100 Subject: [PATCH 06/12] Implementato pulsante per inserimento manuale dei barcode in Spedizione. Aggiunto dismiss della progress in Recupero Materiale Produzione. --- .../ProdRecuperoMaterialeViewModel.java | 1 + .../VenditaOrdineInevasoActivity.java | 4 ++ .../VenditaOrdineInevasoViewModel.java | 41 +++++++++++-------- .../DialogScanOrCreateLU.java | 4 ++ .../activity_vendita_ordine_inevaso.xml | 13 ++++++ build.gradle | 4 +- 6 files changed, 48 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java index eeec67d8..ea7eb4c6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java @@ -197,6 +197,7 @@ public class ProdRecuperoMaterialeViewModel { mOnRecuperoCompleted.run(); }); } else { + progress.dismiss(); this.refreshAdapter(); mOnRecuperoCompleted.run(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java index 7a0f2a75..c16939a5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java @@ -1,5 +1,6 @@ package it.integry.integrywmsnative.gest.vendita_ordine_inevaso; +import android.app.Dialog; import android.content.Intent; import androidx.databinding.DataBindingUtil; import androidx.appcompat.app.AppCompatActivity; @@ -9,6 +10,7 @@ import android.view.MenuItem; import java.util.ArrayList; +import it.integry.integrywmsnative.BuildConfig; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.expansion.BaseActivity; import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; @@ -17,6 +19,7 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.data_cache.DataCache; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.databinding.ActivityVenditaOrdineInevasoBinding; import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding; import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity; @@ -24,6 +27,7 @@ import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO; import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO; import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.viewmodel.VenditaOrdineInevasoViewModel; import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel; +import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper; public class VenditaOrdineInevasoActivity extends BaseActivity { 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 b0ba7938..5f8b85c7 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 @@ -19,6 +19,7 @@ import java.util.Iterator; import java.util.List; import java.util.Objects; +import it.integry.barcode_base_android_library.model.BarcodeType; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.CommonConst; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; @@ -64,6 +65,7 @@ import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBot import it.integry.integrywmsnative.view.dialogs.DialogCommon; import it.integry.integrywmsnative.view.dialogs.DialogConsts; +import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; @@ -179,23 +181,8 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO defaultGestioneOfUL = GestioneEnum.VENDITA; } - //Definizione del deposito di default - List foundCodMdep = Stream.of(mTestateOrdini) - .map(OrdineVenditaInevasoDTO::getCodMdep) -// .withoutNulls() - .distinctBy(x -> x) - .toList(); -// if(foundCodMdep != null && foundCodMdep.size() > 1){ -// DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(mActivity.getString(R.string.error_multiple_cod_mdep_ordv)), null, () -> { -// mActivity.finish(); -// }).show(); -// return; -// } else if(foundCodMdep != null && foundCodMdep.size() == 1){ -// defaultCodMdepOfUL = foundCodMdep.get(0); -// } else { - defaultCodMdepOfUL = SettingsManager.i().userSession.depo.getCodMdep(); -// } + defaultCodMdepOfUL = SettingsManager.i().userSession.depo.getCodMdep(); @@ -1157,7 +1144,14 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO } else { dto.setQtaTot(tmpPickData.getQtaTot()); dto.setMaxQta(tmpPickData.getQtaTot()); - dto.setQtaCnf(tmpPickData.getQtaTot()); + + if(tmpPickData.getNumCnf() != null) { + dto.setQtaCnf(tmpPickData.getQtaTot().divide(tmpPickData.getNumCnf())); + } else { + dto.setQtaCnf(tmpPickData.getQtaTot()); + } + + } if (tmpPickData.getQtaCnf() != null && useQtaDaEvadere) { @@ -1424,6 +1418,19 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO } + + + + public void manualSearch() { + BarcodeManager.disable(); + DialogSimpleInputHelper.makeInputDialog(mActivity,"Inserisci il codice a barre", codice->{ + + this.onScanSuccessfull.run(new BarcodeScanDTO().setStringValue(codice).setType(BarcodeType.CODE128)); + + }, BarcodeManager::enable).show(); + } + + private void showBatchLotDisabledWarning(String batchLot, Runnable onAccepted, Runnable onRejected) { DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(String.format(mActivity.getText(R.string.batch_lot_not_enabled).toString(), batchLot)), null, onAccepted, onRejected).show(); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java index d378336e..7f05513c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java @@ -4,6 +4,7 @@ import android.app.Dialog; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; +import android.os.Build; import android.text.SpannableString; import android.view.LayoutInflater; import android.view.View; @@ -12,7 +13,10 @@ import androidx.databinding.DataBindingUtil; import com.annimon.stream.Stream; +import java.util.Date; + import it.integry.barcode_base_android_library.model.BarcodeScanDTO; +import it.integry.integrywmsnative.BuildConfig; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; diff --git a/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml b/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml index 8eb5d4e7..da1bbb17 100644 --- a/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml +++ b/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml @@ -2,6 +2,7 @@ + + + + diff --git a/build.gradle b/build.gradle index 772ddfdf..508b89b5 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ buildscript { ext{ - kotlin_version = '1.3.50' + kotlin_version = '1.3.61' } repositories { @@ -16,7 +16,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.5.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath 'com.google.gms:google-services:4.3.2' + classpath 'com.google.gms:google-services:4.3.3' classpath 'com.google.firebase:perf-plugin:1.3.1' // NOTE: Do not place your application dependencies here; they belong From 58b0db488d5fc79d52e9a811f8295d2098901cb7 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 3 Dec 2019 12:26:11 +0100 Subject: [PATCH 07/12] =?UTF-8?q?Aggiunta=20possibilit=C3=A0=20di=20scansi?= =?UTF-8?q?onare=20una=20UL=20direttamente=20dall'avantielenco=20di=20Recu?= =?UTF-8?q?pero=20Materiale.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../viewmodel/PickingLiberoViewModel.java | 28 +--- .../ProdRecuperoMaterialeViewModel.java | 127 +++++++++++++----- .../ProdVersamentoMaterialViewModel.java | 13 +- .../PVOrdineAcquistoEditActivity.java | 10 -- .../vendita/viewmodel/VenditaViewModel.java | 22 +-- .../VenditaOrdineInevasoViewModel.java | 1 + .../viewmodel/VersamentoMerceViewModel.java | 31 +---- .../view/dialogs/DialogCommon.java | 23 ++++ .../DialogScanOrCreateLU.java | 15 +-- 9 files changed, 145 insertions(+), 125 deletions(-) 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 bb7b2bb0..652e2ec2 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 @@ -51,6 +51,7 @@ import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding; import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter; import it.integry.integrywmsnative.ui.ElevatedToolbar; +import it.integry.integrywmsnative.view.dialogs.DialogCommon; import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskCliente; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; @@ -275,21 +276,21 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { ColliMagazzinoRESTConsumer.getBySSCC(sscc, true, false, mtbColtScanned -> { if(mtbColtScanned == null) { - showNoULFound(() -> { + DialogCommon.showNoULFound(mContext, () -> { BarcodeManager.enable(); progressDialog.dismiss(); }); } else if((mtbColtScanned.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColtScanned.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColtScanned.getSegno() > 0) { pickMerceULtoUL(mtbColtScanned, mtbColt.get(), progressDialog); } else { - showNoULFound(() -> { + DialogCommon.showNoULFound(mContext, () -> { BarcodeManager.enable(); progressDialog.dismiss(); }); } }, ex -> { - showNoULFound(() -> { + DialogCommon.showNoULFound(mContext, () -> { BarcodeManager.enable(); progressDialog.dismiss(); }); @@ -317,7 +318,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { } this.loadArticolo(barcodeProd, ean128Model, progressDialog); } else { - showNoULFound(() -> { + DialogCommon.showNoULFound(mContext, () -> { BarcodeManager.enable(); progressDialog.dismiss(); }); @@ -327,7 +328,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { } else { //EAN 128 non completo o comunque mancano i riferimenti al prodotto - showNoULFound(() -> { + DialogCommon.showNoULFound(mContext, () -> { BarcodeManager.enable(); progressDialog.dismiss(); }); @@ -577,23 +578,6 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { } - private void showDataSavedDialog() { - - DialogSimpleMessageHelper.makeSuccessDialog( - mContext, - mContext.getResources().getString(R.string.completed), - new SpannableString(mContext.getResources().getString(R.string.data_saved)), - null, null).show(); - - } - - - private void showNoULFound(Runnable onComplete) { - DialogSimpleMessageHelper.makeWarningDialog(mContext, - new SpannableString(mContext.getResources().getText(R.string.no_lu_found_message)), - null, onComplete).show(); - } - diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java index ea7eb4c6..ea3b7d17 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java @@ -2,15 +2,14 @@ package it.integry.integrywmsnative.gest.prod_recupero_materiale.viewmodel; import android.app.Activity; import android.app.Dialog; -import android.app.ProgressDialog; import android.content.Context; -import android.text.Html; import android.text.SpannableString; import androidx.databinding.ObservableArrayList; import androidx.databinding.ObservableField; import androidx.recyclerview.widget.LinearLayoutManager; +import com.annimon.stream.Stream; import com.tfb.fbtoast.FBToast; import java.math.BigDecimal; @@ -22,32 +21,25 @@ import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; import it.integry.integrywmsnative.core.model.CommonModelConsts; -import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; -import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.report.ReportManager; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; -import it.integry.integrywmsnative.core.rest.model.Ean128Model; import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityExceptions; -import it.integry.integrywmsnative.core.utility.UtilityLogger; -import it.integry.integrywmsnative.core.utility.UtilityPosizione; import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.FragmentProdRecuperoMaterialeBinding; import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.HistoryULsListAdapter; import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.ProdRecuperoMaterialeHelper; import it.integry.integrywmsnative.gest.prod_recupero_materiale.dto.HistoryVersamentoProdUL; -import it.integry.integrywmsnative.gest.prod_recupero_materiale.views.InputQuantityToReturnDialog; -import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint; +import it.integry.integrywmsnative.view.dialogs.DialogCommon; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; -import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO; import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU; import it.integry.barcode_base_android_library.model.BarcodeScanDTO; @@ -65,6 +57,7 @@ public class ProdRecuperoMaterialeViewModel { public ObservableField mtbColt = new ObservableField<>(); + private int barcodeScannerIstanceID = -1; public void init(Activity context, FragmentProdRecuperoMaterialeBinding binding, ProdRecuperoMaterialeHelper helper, Runnable onRecuperoCompleted) { mContext = context; @@ -74,6 +67,8 @@ public class ProdRecuperoMaterialeViewModel { initRecyclerView(); refreshAdapter(); + + initBarcode(); } @@ -83,15 +78,81 @@ public class ProdRecuperoMaterialeViewModel { + private void initBarcode() { + barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() + .setOnScanSuccessfull(onScanSuccessful) + .setOnScanFailed(ex -> UtilityExceptions.defaultException(mContext, ex, false))); + + } + + private void initRecyclerView() { mAdapter = new HistoryULsListAdapter(mContext, new ArrayList<>()); - mAdapter.setOnItemClicked(this::onListItemClicked); + mAdapter.setOnItemClicked(data -> this.dispatchItem(data, null, null)); mBinding.prodRecuperoMaterialeMainList.setLayoutManager(new LinearLayoutManager(mContext)); mBinding.prodRecuperoMaterialeMainList.setAdapter(mAdapter); } - private void onListItemClicked(HistoryVersamentoProdUL item) { + + + private RunnableArgs onScanSuccessful = data -> { + BarcodeManager.disable(); + + Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + + if(UtilityBarcode.isEtichettaAnonima(data) || UtilityBarcode.isEtichetta128(data)){ + this.executeEtichettaUL(data, progressDialog); + } + + }; + + private void executeEtichettaUL(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) { + ColliMagazzinoRESTConsumer.getBySSCC(barcodeScanDTO.getStringValue(), true, false, mtbColt -> { + + if(mtbColt != null) { + + HistoryVersamentoProdUL historyVersamentoProdUL = this.getHistoryElementFromMtbColt(mtbColt); + if(historyVersamentoProdUL != null) { + this.dispatchItem(historyVersamentoProdUL, mtbColt, progressDialog); + } else { + DialogCommon.showNoULFound(mContext, () -> { + BarcodeManager.enable(); + progressDialog.dismiss(); + }); + } + + } else { + DialogCommon.showNoULFound(mContext, () -> { + BarcodeManager.enable(); + progressDialog.dismiss(); + }); + } + + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + BarcodeManager.enable(); + }); + } + + + private HistoryVersamentoProdUL getHistoryElementFromMtbColt(MtbColt mtbColt) { + List filteredItems = Stream.of(mDataset) + .filter(x -> Objects.equals(x.getNumColloRif(), mtbColt.getNumCollo()) && + x.getDataColloRif().equals(mtbColt.getDataColloS()) && + x.getSerColloRif().equalsIgnoreCase(mtbColt.getSerCollo()) && + x.getGestioneRif().equalsIgnoreCase(mtbColt.getGestione())) + .toList(); + + if(filteredItems != null && filteredItems.size() > 0) { + return filteredItems.get(0); + } + + return null; + } + + + private void dispatchItem(HistoryVersamentoProdUL item, MtbColt sourceMtbColt, Dialog dialogProgress) { BigDecimal qtaDaEvadere = BigDecimal.ZERO; qtaDaEvadere = qtaDaEvadere.add(item.getQtaCol()); @@ -108,20 +169,23 @@ public class ProdRecuperoMaterialeViewModel { .setQtaDisponibile(qtaDaEvadere); DialogInputQuantity.makeBase(mContext, dto, false, quantity -> { - onItemDispatched(item, quantity.qtaTot.getBigDecimal()); + onItemDispatched(item, quantity.qtaTot.getBigDecimal(), sourceMtbColt, dialogProgress); }, () -> { }).show(); - -// InputQuantityToReturnDialog.make(mContext, item.getMtbAart(), BigDecimal.ONE, qtaDaEvadere, quantity -> { -// onItemDispatched(item, quantity); -// }).show(); - } - private void onItemDispatched(HistoryVersamentoProdUL item, BigDecimal quantity) { - final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext); + + + + private void onItemDispatched(HistoryVersamentoProdUL item, BigDecimal quantity, MtbColt sourceMtbColt, Dialog progress) { + + if(progress == null) { + progress = UtilityProgress.createDefaultProgressDialog(mContext); + } + Dialog finalProgress = progress; + final MtbColt mtbColtScarico = new MtbColt() .setDataCollo(item.getDataCollo()) @@ -147,7 +211,8 @@ public class ProdRecuperoMaterialeViewModel { mtbColtScarico.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); mtbColtScarico.getMtbColr().add(mtbColrScarico); - DialogScanOrCreateLU.make(mContext, false, false, mtbColt -> { + + RunnableArgs saveRunnable = mtbColt -> { if(mtbColt != null) { @@ -192,30 +257,29 @@ public class ProdRecuperoMaterialeViewModel { FBToast.successToast(mContext, mContext.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT); if(finalShouldPrint) { - printCollo(progress, value.get(0), () -> { + printCollo(finalProgress, value.get(0), () -> { this.refreshAdapter(); mOnRecuperoCompleted.run(); }); } else { - progress.dismiss(); + finalProgress.dismiss(); this.refreshAdapter(); mOnRecuperoCompleted.run(); } }, ex -> { - UtilityExceptions.defaultException(mContext, ex, progress); + UtilityExceptions.defaultException(mContext, ex, finalProgress); }); } else { - progress.dismiss(); + finalProgress.dismiss(); } - }).show(); - - - + }; + if(sourceMtbColt != null) saveRunnable.run(sourceMtbColt); + else DialogScanOrCreateLU.make(mContext, false, false, saveRunnable).show(); } @@ -285,4 +349,7 @@ public class ProdRecuperoMaterialeViewModel { }); } + + + } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java index ccb4a128..3dec2a1b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java @@ -20,6 +20,7 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.databinding.FragmentProdVersamentoMaterialeBinding; import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ProdVersamentoMaterialHelper; +import it.integry.integrywmsnative.view.dialogs.DialogCommon; import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; @@ -103,7 +104,7 @@ public class ProdVersamentoMaterialViewModel { cloneUL.setCodJfas(mtbDepoPosizione.getPosizione()); ColliMagazzinoRESTConsumer.createColloScaricoDaCarico(cloneUL, mtbDepoPosizione, generatedMtbColt -> { - showDataSavedDialog(() -> { + DialogCommon.showDataSaved(mContext, () -> { progressDialog.dismiss(); mOnVersamentoCompleted.run(); }); @@ -123,14 +124,4 @@ public class ProdVersamentoMaterialViewModel { } - private void showDataSavedDialog(Runnable onPositiveClick) { - - DialogSimpleMessageHelper.makeSuccessDialog( - mContext, - mContext.getResources().getString(R.string.completed), - new SpannableString(mContext.getResources().getString(R.string.data_saved)), - null, onPositiveClick).show(); - - } - } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java index 78da5e19..521f0a53 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java @@ -210,16 +210,6 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity { super.onBackPressed(); } - private void showDataSavedDialog() { - - DialogSimpleMessageHelper.makeSuccessDialog( - this, - getString(R.string.completed), - new SpannableString(getString(R.string.data_saved)), - null, null).show(); - - } - public void manualSearch(){ BarcodeManager.disable(); DialogSimpleInputHelper.makeInputDialog(this,"Inserisci il codice a barre/codice articolo da cercare",codice->{ diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java index 3947ef7f..9ecf77fc 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java @@ -27,6 +27,7 @@ import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding; import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment; import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper; import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO; +import it.integry.integrywmsnative.view.dialogs.DialogCommon; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; import it.integry.barcode_base_android_library.model.BarcodeScanDTO; @@ -82,7 +83,7 @@ public class VenditaViewModel { if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)){ this.executeEtichettaLU(ean128Model.Sscc, progressDialog); } else { - showNoULFound(); + DialogCommon.showNoULFound(mContext, null); progressDialog.dismiss(); BarcodeManager.enable(); @@ -91,7 +92,7 @@ public class VenditaViewModel { } else { //EAN 128 non completo o comunque mancano i riferimenti al prodotto - showNoULFound(); + DialogCommon.showNoULFound(mContext, null); progressDialog.dismiss(); BarcodeManager.enable(); } @@ -124,7 +125,7 @@ public class VenditaViewModel { mFragment.refreshOrdini(filteredOrders); mFragment.refreshRecyclerView(); } else { - showNoOrderFound(); + DialogCommon.showNoOrderFound(mContext, null); } progressDialog.dismiss(); @@ -149,7 +150,7 @@ public class VenditaViewModel { } else { progressDialog.dismiss(); BarcodeManager.enable(); - showNoULFound(); + DialogCommon.showNoULFound(mContext, null); } @@ -161,19 +162,6 @@ public class VenditaViewModel { - private void showNoOrderFound() { - DialogSimpleMessageHelper.makeWarningDialog(mContext, - new SpannableString(mContext.getResources().getText(R.string.no_orders_found_message)), - null, null).show(); - } - - - private void showNoULFound() { - DialogSimpleMessageHelper.makeWarningDialog(mContext, - new SpannableString(mContext.getResources().getText(R.string.no_lu_found_message)), - null, null).show(); - } - private void showWrongGestioneUL() { DialogSimpleMessageHelper.makeWarningDialog(mContext, 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 5f8b85c7..5156ee5b 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 @@ -371,6 +371,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO //Se รจ un'etichetta anonima if(UtilityBarcode.isEtichettaAnonima(data)){ + //Se il collo non esiste allora lo creo associandolo a questa etichetta anonima //invece se esiste apro un collo nuovo e cerco gli articoli presenti nell'ul //dell'etichetta anonima diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java index 8e5ced20..aa41ddd5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java @@ -40,6 +40,7 @@ import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.FragmentMainVersamentoMerceBinding; import it.integry.integrywmsnative.gest.versamento_merce.core.VersamentoMerceHelper; import it.integry.integrywmsnative.view.dialogs.DialogAskLivelloPosizione; +import it.integry.integrywmsnative.view.dialogs.DialogCommon; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; @@ -125,7 +126,7 @@ public class VersamentoMerceViewModel { if(mtbColtList == null || mtbColtList.size() == 0){ progressDialog.dismiss(); BarcodeManager.enable(); - showNoULFound(); + DialogCommon.showNoULFound(mContext, null); } else if (mtbColtList.size() == 1) { ColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> { @@ -162,7 +163,7 @@ public class VersamentoMerceViewModel { if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)){ this.executeEtichettaLU(ean128Model.Sscc, false, progressDialog); } else { - showNoULFound(); + DialogCommon.showNoULFound(mContext, null); progressDialog.dismiss(); BarcodeManager.enable(); } @@ -186,7 +187,7 @@ public class VersamentoMerceViewModel { ColliMagazzinoRESTConsumer.getBySSCC(sscc, true, false, mtbColt -> { if(mtbColt == null && !isAnonima) { - showNoULFound(); + DialogCommon.showNoULFound(mContext, null); BarcodeManager.enable(); progressDialog.dismiss(); } else if(mtbColt != null && (/*mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO ||*/ mtbColt.getGestioneEnum() == GestioneEnum.VENDITA)) { @@ -236,7 +237,7 @@ public class VersamentoMerceViewModel { progressDialog.dismiss(); BarcodeManager.enable(); - showDataSavedDialog(mOnVersamentoCompleted); + DialogCommon.showDataSaved(mContext, mOnVersamentoCompleted); }, ex -> { UtilityExceptions.defaultException(mContext, ex, progressDialog); BarcodeManager.enable(); @@ -382,13 +383,6 @@ public class VersamentoMerceViewModel { } - private void showNoULFound() { - DialogSimpleMessageHelper.makeWarningDialog(mContext, - new SpannableString(mContext.getResources().getText(R.string.no_lu_found_message)), - null, null).show(); - } - - private void showWrongGestioneUL() { DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(Html.fromHtml(mContext.getResources().getText(R.string.gestione_V_not_accepted_message).toString())), @@ -419,7 +413,7 @@ public class VersamentoMerceViewModel { ColliMagazzinoRESTConsumer.saveColli(mtbColts, value -> { - showDataSavedDialog(() -> { + DialogCommon.showDataSaved(mContext, () -> { mOnVersamentoCompleted.run(); }); }, ex -> { @@ -428,17 +422,4 @@ public class VersamentoMerceViewModel { } - - private void showDataSavedDialog(Runnable onComplete) { - - DialogSimpleMessageHelper.makeSuccessDialog( - mContext, - mContext.getResources().getString(R.string.completed), - new SpannableString(mContext.getResources().getString(R.string.data_saved)), - null, () -> { - onComplete.run(); - //resetMtbColt(); - }).show(); - - } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogCommon.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogCommon.java index 311be32c..daf4d8aa 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogCommon.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogCommon.java @@ -18,4 +18,27 @@ public class DialogCommon { null, onPositiveClick).show(); } + public static void showNoULFound(@NotNull Context context, @Nullable Runnable onPositiveClick) { + DialogSimpleMessageHelper.makeWarningDialog(context, + new SpannableString(context.getResources().getText(R.string.no_lu_found_message)), + null, onPositiveClick).show(); + } + + + public static void showNoOrderFound(@NotNull Context context, @Nullable Runnable onPositiveClick) { + DialogSimpleMessageHelper.makeWarningDialog(context, + new SpannableString(context.getResources().getText(R.string.no_orders_found_message)), + null, onPositiveClick).show(); + } + + + public static void showDataSaved(@NotNull Context context, @Nullable Runnable onPositiveClick) { + + DialogSimpleMessageHelper.makeSuccessDialog( + context, + context.getResources().getString(R.string.completed), + new SpannableString(context.getResources().getString(R.string.data_saved)), + null, onPositiveClick).show(); + + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java index 7f05513c..746d1f86 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java @@ -33,6 +33,7 @@ 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.DialogScanOrCreateLuBinding; +import it.integry.integrywmsnative.view.dialogs.DialogCommon; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; public class DialogScanOrCreateLU { @@ -134,7 +135,7 @@ public class DialogScanOrCreateLU { } else { progressDialog.dismiss(); BarcodeManager.enable(); - showNoULFound(); + DialogCommon.showNoULFound(mContext, null); } }; @@ -150,7 +151,7 @@ public class DialogScanOrCreateLU { if(mtbColtList == null || mtbColtList.size() == 0){ progressDialog.dismiss(); BarcodeManager.enable(); - showNoULFound(); + DialogCommon.showNoULFound(mContext, null); } else if (mtbColtList.size() == 1) { ColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), mShouldCheckResiduo, false, mtbColt -> { sendMtbColt(mtbColt, progressDialog); @@ -241,7 +242,7 @@ public class DialogScanOrCreateLU { } else { BarcodeManager.enable(); progressDialog.dismiss(); - showNoULFound(); + DialogCommon.showNoULFound(mContext, null); } }, ex -> { @@ -253,7 +254,7 @@ public class DialogScanOrCreateLU { BarcodeManager.enable(); progressDialog.dismiss(); - showNoULFound(); + DialogCommon.showNoULFound(mContext, null); } @@ -272,12 +273,6 @@ public class DialogScanOrCreateLU { null, null).show(); } - private void showNoULFound() { - DialogSimpleMessageHelper.makeWarningDialog(mContext, - new SpannableString(mContext.getResources().getText(R.string.no_lu_found_message)), - null, null).show(); - } - private void sendMtbColt(MtbColt mtbColtToSend, Dialog progressDialog) { currentMtbColt = mtbColtToSend; progressDialog.dismiss(); From 9ab77bab3c1c2c9521e2ead1be118a438c6ab9fb Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 4 Dec 2019 10:24:10 +0100 Subject: [PATCH 08/12] Implementate unt_mis in base al flagQtaCnfFissa degli articoli. --- .../core/ContenutoBancaleListAdapter.java | 16 +- .../ProdRecuperoMaterialeViewModel.java | 6 - .../gest/vendita/dto/PickingObjectDTO.java | 174 +----------------- .../MainListOrdineVenditaInevasoAdapter.java | 3 +- .../core/VenditaOrdineInevasoHelper.java | 19 +- .../VenditaOrdineInevasoListViewModel.java | 10 + .../ArticoliInColloBottomSheetHelper.java | 2 - ...icoliInColloBottomSheetMtbColrAdapter.java | 135 ++++++++++++++ .../ArticoliInColloBottomSheetViewModel.java | 107 +---------- .../activity_vendita_ordine_inevaso.xml | 2 +- ...ragment_articoli_in_collo_bottom_sheet.xml | 60 ++---- ...li_in_collo_bottom_sheet__mtbcolr_item.xml | 9 +- .../lista_contenuto_bancale_list_model.xml | 3 +- ...ne_inevaso_main_list_child_group_model.xml | 13 +- app/src/main/res/values-it/strings.xml | 5 +- app/src/main/res/values/strings.xml | 1 + app/src/main/res/values/styles.xml | 6 + 17 files changed, 230 insertions(+), 341 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/view/ArticoliInColloBottomSheetMtbColrAdapter.java diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/core/ContenutoBancaleListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/core/ContenutoBancaleListAdapter.java index 2444c4d6..47a44604 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/core/ContenutoBancaleListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/core/ContenutoBancaleListAdapter.java @@ -11,12 +11,14 @@ import android.view.ViewGroup; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked; import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.ListaContenutoBancaleListModelBinding; public class ContenutoBancaleListAdapter extends RecyclerView.Adapter { - protected Context mContext; + protected static Context mContext; protected ObservableArrayList mDataset; private IRecyclerItemClicked mOnItemClickListener; @@ -32,6 +34,18 @@ public class ContenutoBancaleListAdapter extends RecyclerView.Adapter colliToSave = new ArrayList<>(); boolean shouldPrint = false; @@ -271,11 +267,9 @@ public class ProdRecuperoMaterialeViewModel { UtilityExceptions.defaultException(mContext, ex, finalProgress); }); - } else { finalProgress.dismiss(); } - }; if(sourceMtbColt != null) saveRunnable.run(sourceMtbColt); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java index ea315961..bdc38730 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java @@ -1,8 +1,5 @@ package it.integry.integrywmsnative.gest.vendita.dto; -import android.os.Parcel; -import android.os.Parcelable; - import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; @@ -16,7 +13,7 @@ import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.core.utility.UtilityString; -public class PickingObjectDTO implements Parcelable { +public class PickingObjectDTO { private Integer numCollo; private String gestione; @@ -35,7 +32,7 @@ public class PickingObjectDTO implements Parcelable { private String partitaMag; private BigDecimal qtaOrd; private BigDecimal numCnfCollo; - private BigDecimal numCnf; + private BigDecimal numCnfOrd; private String codAlis; private BigDecimal colliPedana; private BigDecimal qtaDisponibileCollo; @@ -51,165 +48,6 @@ public class PickingObjectDTO implements Parcelable { private ArrayList withdrawRows = new ArrayList<>(); - protected PickingObjectDTO(Parcel in) { - if (in.readByte() == 0) { - numCollo = null; - } else { - numCollo = in.readInt(); - } - gestione = in.readString(); - serCollo = in.readString(); - descrizioneEstesa = in.readString(); - codJcom = in.readString(); - codMart = in.readString(); - posizione = in.readString(); - dataCollo = in.readString(); - if (in.readByte() == 0) { - idViaggio = null; - } else { - idViaggio = in.readInt(); - } - codTagl = in.readString(); - codCol = in.readString(); - dataScad = in.readString(); - codArtFor = in.readString(); - partitaMag = in.readString(); - codAlis = in.readString(); - hidden = in.readByte() == 0x00 ? null : in.readByte() != 0x00; - deactivated = in.readByte() == 0x00 ? null : in.readByte() != 0x00; - - if (in.readByte() == 0) { - qtaCollo = null; - } else { - qtaCollo = new BigDecimal(in.readFloat()); - } - if (in.readByte() == 0) { - qtaOrd = null; - } else { - qtaOrd = new BigDecimal(in.readFloat()); - } - if (in.readByte() == 0) { - numCnf = null; - } else { - numCnf = new BigDecimal(in.readFloat()); - } - if (in.readByte() == 0) { - numCnfCollo = null; - } else { - numCnfCollo = new BigDecimal(in.readFloat()); - } - if (in.readByte() == 0) { - qtaDisponibileCollo = null; - } else { - qtaDisponibileCollo = new BigDecimal(in.readFloat()); - } - if (in.readByte() == 0) { - numCnfDisponibileCollo = null; - } else { - numCnfDisponibileCollo = new BigDecimal(in.readFloat()); - } - - - mtbAart = (MtbAart) in.readValue(MtbAart.class.getClassLoader()); - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - if (numCollo == null) { - dest.writeByte((byte) 0); - } else { - dest.writeByte((byte) 1); - dest.writeInt(numCollo); - } - dest.writeString(gestione); - dest.writeString(serCollo); - dest.writeString(descrizioneEstesa); - dest.writeString(codJcom); - dest.writeString(codMart); - dest.writeString(posizione); - dest.writeString(dataCollo); - if (idViaggio == null) { - dest.writeByte((byte) 0); - } else { - dest.writeByte((byte) 1); - dest.writeInt(idViaggio); - } - dest.writeString(codTagl); - dest.writeString(codCol); - dest.writeString(dataScad); - dest.writeString(codArtFor); - dest.writeString(partitaMag); - dest.writeString(codAlis); - if (hidden == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeByte((byte) (hidden ? 0x01 : 0x00)); - } - if (deactivated == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeByte((byte) (deactivated ? 0x01 : 0x00)); - } - - if (qtaCollo == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeFloat(qtaCollo.floatValue()); - } - if (qtaOrd == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeFloat(qtaOrd.floatValue()); - } - if (numCnf == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeFloat(numCnf.floatValue()); - } - if (numCnfCollo == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeFloat(numCnfCollo.floatValue()); - } - if (qtaDisponibileCollo == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeFloat(qtaDisponibileCollo.floatValue()); - } - if (numCnfDisponibileCollo == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeFloat(numCnfDisponibileCollo.floatValue()); - } - - dest.writeValue(mtbAart); - } - - @Override - public int describeContents() { - return 0; - } - - public static final Creator CREATOR = new Creator() { - @Override - public PickingObjectDTO createFromParcel(Parcel in) { - return new PickingObjectDTO(in); - } - - @Override - public PickingObjectDTO[] newArray(int size) { - return new PickingObjectDTO[size]; - } - }; - public Integer getNumCollo() { return numCollo; } @@ -384,12 +222,12 @@ public class PickingObjectDTO implements Parcelable { return this; } - public BigDecimal getNumCnf() { - return numCnf; + public BigDecimal getNumCnfOrd() { + return numCnfOrd; } - public PickingObjectDTO setNumCnf(BigDecimal numCnf) { - this.numCnf = numCnf; + public PickingObjectDTO setNumCnfOrd(BigDecimal numCnfOrd) { + this.numCnfOrd = numCnfOrd; return this; } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java index 3d15303c..63e35072 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java @@ -200,7 +200,8 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter filteredMtbColrs = Stream.of(mtbColrs).filter( -// x -> x.getCodMart().equalsIgnoreCase(item.getCodMart()) && -// ((x.getCodJcom() == null && item.getCodJcom() == null) || (x.getCodJcom() != null && x.getCodJcom().equalsIgnoreCase(item.getCodJcom()))) && -// (!SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV() || (SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV() && ((x.getPartitaMag() == null && item.getPartitaMag() == null) || (x.getPartitaMag() != null && x.getPartitaMag().equalsIgnoreCase(item.getPartitaMag()))))) && -// ((x.getNumColloRif() == null && item.getNumCollo() == null) || (x.getNumColloRif() != null && x.getNumColloRif().equals(item.getNumCollo())))).toList(); - for (MtbColr mtbColr : item.getWithdrawRows()) { - currentQtaEvasa = currentQtaEvasa.add(mtbColr.getQtaCol()); + currentQtaEvasa = currentQtaEvasa.add(item.getMtbAart().isFlagQtaCnfFissa() ? mtbColr.getQtaCol() : mtbColr.getNumCnf()); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/dto/VenditaOrdineInevasoListViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/dto/VenditaOrdineInevasoListViewModel.java index 2121b5dd..1099956a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/dto/VenditaOrdineInevasoListViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/dto/VenditaOrdineInevasoListViewModel.java @@ -27,6 +27,7 @@ public class VenditaOrdineInevasoListViewModel { private String subDescrizione2; private BigDecimal qtaRiservata; private BigDecimal qtaOrdinata; + private String untMis; private PickingObjectDTO originalModel; @@ -101,6 +102,15 @@ public class VenditaOrdineInevasoListViewModel { this.originalModel = originalModel; return this; } + + public String getUntMis() { + return untMis; + } + + public SubItem setUntMis(String untMis) { + this.untMis = untMis; + return this; + } } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/ArticoliInColloBottomSheetHelper.java b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/ArticoliInColloBottomSheetHelper.java index e3af5a78..76ccd233 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/ArticoliInColloBottomSheetHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/ArticoliInColloBottomSheetHelper.java @@ -66,8 +66,6 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom mBinding.articoliInColloDetailsPosizione.setText(mtbColt.getPosizione() != null ? mtbColt.getPosizione() : "N/A"); -// mBindings.articoliInColloDetailsPreparatoDa.setText(mtbColt.getPreparatoDa() != null ? mtbColt.getPreparatoDa() : "N/A"); - } public void updateRigheNumber(int newRigheNumber){ diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/view/ArticoliInColloBottomSheetMtbColrAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/view/ArticoliInColloBottomSheetMtbColrAdapter.java new file mode 100644 index 00000000..a46969c1 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/view/ArticoliInColloBottomSheetMtbColrAdapter.java @@ -0,0 +1,135 @@ +package it.integry.integrywmsnative.view.bottomsheet.view; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; + +import androidx.databinding.DataBindingUtil; +import androidx.databinding.ObservableField; +import androidx.databinding.ObservableList; + +import java.lang.ref.WeakReference; + +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetMtbcolrItemBinding; + +public class ArticoliInColloBottomSheetMtbColrAdapter extends BaseAdapter { + + + private final WeakReferenceOnListChangedCallback onListChangedCallback; + private Context mContext; + private ObservableField mtbColt; + + + public ArticoliInColloBottomSheetMtbColrAdapter(Context context, ObservableField mtbColt) { + super(); + this.mContext = context; + this.mtbColt = mtbColt; + this.onListChangedCallback = new WeakReferenceOnListChangedCallback(this); + + this.mtbColt.get().getMtbColr().addOnListChangedCallback(onListChangedCallback); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + + LayoutInflater inflater = LayoutInflater.from(parent.getContext()); + + FragmentArticoliInColloBottomSheetMtbcolrItemBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_articoli_in_collo_bottom_sheet__mtbcolr_item, parent, false); + + final MtbColr mtbColr = mtbColt.get().getMtbColr().get(position); + binding.setMtbColr(mtbColr); + + //Setting qty with unt_mis + if(mtbColr.getMtbAart() != null) { + if (mtbColr.getMtbAart().isFlagQtaCnfFissa()) { + binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getQtaCol()) + (!UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : "")); + } else { + binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + mContext.getString(R.string.unt_mis_col)); + } + } else { + binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getQtaCol())); + } + + + binding.executePendingBindings(); + + if(position % 2 == 1) binding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG)); + + return binding.getRoot(); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public Object getItem(int position) { + return position; + } + + @Override + public int getCount() { + if(mtbColt.get() != null && mtbColt.get().getMtbColr() != null) { + + return mtbColt.get().getMtbColr().size(); + } else return 0; + } + + + public class WeakReferenceOnListChangedCallback extends ObservableList.OnListChangedCallback { + + private final WeakReference adapterReference; + + public WeakReferenceOnListChangedCallback(BaseAdapter baseAdapter) { + this.adapterReference = new WeakReference<>(baseAdapter); + } + + @Override + public void onChanged(ObservableList sender) { + BaseAdapter adapter = adapterReference.get(); + if (adapter != null) { + adapter.notifyDataSetChanged(); + } + } + + @Override + public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) { + BaseAdapter adapter = adapterReference.get(); + if (adapter != null) { + adapter.notifyDataSetChanged(); + } + } + + @Override + public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) { + BaseAdapter adapter = adapterReference.get(); + if (adapter != null) { + adapter.notifyDataSetChanged(); + } + } + + @Override + public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) { + BaseAdapter adapter = adapterReference.get(); + if (adapter != null) { + adapter.notifyDataSetChanged(); + } + } + + @Override + public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) { + BaseAdapter adapter = adapterReference.get(); + if (adapter != null) { + adapter.notifyDataSetChanged(); + } + } + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java index 3ba14ce7..67b5fe02 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java @@ -36,6 +36,7 @@ import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomShee import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetMtbcolrItemBinding; import it.integry.integrywmsnative.view.bottomsheet.ArticoliInColloBottomSheetHelper; import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback; +import it.integry.integrywmsnative.view.bottomsheet.view.ArticoliInColloBottomSheetMtbColrAdapter; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; @@ -64,21 +65,13 @@ public class ArticoliInColloBottomSheetViewModel { mBindings.setViewModel(this); -// ShapeAppearanceModel shapeAppearanceModel = new ShapeAppearanceModel(); -// -// shapeAppearanceModel.setTopLeftCorner(CornerFamily.ROUNDED, 6); -// shapeAppearanceModel.setTopRightCorner(CornerFamily.ROUNDED, 6); -// -// MaterialShapeDrawable materialShapeDrawable = new MaterialShapeDrawable(shapeAppearanceModel); -// mBindings.getRoot().setBackground(materialShapeDrawable); - mtbColt.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { @Override public void onPropertyChanged(Observable sender, int propertyId) { if(mtbColt.get() != null) { - mBindings.linearListview.setAdapter(new ArticoliInColloBottomSheetMtbColrAdapter()); + mBindings.linearListview.setAdapter(new ArticoliInColloBottomSheetMtbColrAdapter(mContext, mtbColt)); mBindings.linearListview.setOnItemClickListener((parent, view, position, id) -> { mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); @@ -192,6 +185,7 @@ public class ArticoliInColloBottomSheetViewModel { final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext); itemToEdit.setQtaCol(quantityDTO.qtaTot.getBigDecimal()); + itemToEdit.setNumCnf(quantityDTO.numCnf.getBigDecimal()); ColliMagazzinoRESTConsumer.updateRiga(itemToEdit, () ->{ mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); @@ -232,101 +226,6 @@ public class ArticoliInColloBottomSheetViewModel { } - public class ArticoliInColloBottomSheetMtbColrAdapter extends BaseAdapter { - private final WeakReferenceOnListChangedCallback onListChangedCallback; - - public ArticoliInColloBottomSheetMtbColrAdapter() { - super(); - this.onListChangedCallback = new WeakReferenceOnListChangedCallback(this); - - mtbColt.get().getMtbColr().addOnListChangedCallback(onListChangedCallback); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - - LayoutInflater inflater = LayoutInflater.from(parent.getContext()); - - FragmentArticoliInColloBottomSheetMtbcolrItemBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_articoli_in_collo_bottom_sheet__mtbcolr_item, parent, false); - - final MtbColr item = mtbColt.get().getMtbColr().get(position); - binding.setMtbColr(item); - binding.executePendingBindings(); - - if(position % 2 == 1) binding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG)); - - return binding.getRoot(); - } - - @Override - public long getItemId(int position) { - return position; - } - - @Override - public Object getItem(int position) { - return position; - } - - @Override - public int getCount() { - if(mtbColt.get() != null && mtbColt.get().getMtbColr() != null) { - - return mtbColt.get().getMtbColr().size(); - } else return 0; - } - - - public class WeakReferenceOnListChangedCallback extends ObservableList.OnListChangedCallback { - - private final WeakReference adapterReference; - - public WeakReferenceOnListChangedCallback(BaseAdapter baseAdapter) { - this.adapterReference = new WeakReference<>(baseAdapter); - } - - @Override - public void onChanged(ObservableList sender) { - BaseAdapter adapter = adapterReference.get(); - if (adapter != null) { - adapter.notifyDataSetChanged(); - } - } - - @Override - public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) { - BaseAdapter adapter = adapterReference.get(); - if (adapter != null) { - adapter.notifyDataSetChanged(); - } - } - - @Override - public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) { - BaseAdapter adapter = adapterReference.get(); - if (adapter != null) { - adapter.notifyDataSetChanged(); - } - } - - @Override - public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) { - BaseAdapter adapter = adapterReference.get(); - if (adapter != null) { - adapter.notifyDataSetChanged(); - } - } - - @Override - public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) { - BaseAdapter adapter = adapterReference.get(); - if (adapter != null) { - adapter.notifyDataSetChanged(); - } - } - } - } - } diff --git a/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml b/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml index da1bbb17..0ca95f9c 100644 --- a/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml +++ b/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml @@ -63,7 +63,7 @@ android:layout_gravity="end" android:background="@drawable/ripple_effect" android:adjustViewBounds="true" - android:src="@drawable/ic_search_black_24dp" + android:src="@drawable/ic_black_barcode" android:visibility="@{BuildConfig.DEBUG ? View.VISIBLE : View.GONE}" android:onClick="@{() -> viewmodel.manualSearch()}" android:tint="@color/colorPrimaryGray"/> diff --git a/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet.xml b/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet.xml index e8fdc40b..f9797ecd 100644 --- a/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet.xml +++ b/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet.xml @@ -48,7 +48,7 @@ android:textStyle="bold" android:drawablePadding="12dp" android:textColor="@color/colorPrimary" - android:paddingTop="8dp" + android:paddingTop="12dp" android:paddingBottom="8dp" android:paddingLeft="16dp" android:paddingRight="16dp" @@ -57,19 +57,6 @@ android:textSize="16sp" style="@style/AppTheme.NewMaterial.Text"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -314,6 +284,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/already_read_articles" + style="@style/AppTheme.NewMaterial.Text" android:textAllCaps="true" android:textStyle="bold"/> @@ -356,6 +327,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" + android:focusable="true" android:orientation="vertical" app:dividerThickness="0.5dp" /> @@ -409,9 +381,11 @@ android:layout_height="match_parent" android:layout_marginEnd="8dp" android:gravity="center" - android:text="Cioccolato" android:textAppearance="@android:style/TextAppearance.Material.Title" - app:layout_constraintTop_toTopOf="parent"/> + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + style="@style/AppTheme.NewMaterial.Text.ToolbarTitle.DarkActionBar" + tools:text="Num UL"/> @@ -451,6 +425,7 @@ android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginBottom="8dp" + app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toStartOf="@id/bottom_sheet_actions_quantity" app:layout_constraintStart_toStartOf="parent"> @@ -460,30 +435,31 @@ android:layout_height="wrap_content" tools:text="Descrizione articolo" android:textColor="#444" - android:textSize="18dp" - android:maxLines="1" + android:maxLines="2" android:ellipsize="end" - android:paddingRight="8dp" - android:textStyle="bold" /> + android:paddingStart="0dp" + android:paddingEnd="8dp" + android:textStyle="bold" + style="@style/AppTheme.NewMaterial.Text.Medium"/> + style="@style/AppTheme.NewMaterial.Text.Small" /> @@ -504,6 +480,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" + app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toStartOf="@id/guideline_action" app:layout_constraintStart_toStartOf="parent" android:gravity="center"> @@ -530,6 +507,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" + app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="@id/guideline_action" android:gravity="center"> diff --git a/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet__mtbcolr_item.xml b/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet__mtbcolr_item.xml index 8c7f6423..2c500812 100644 --- a/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet__mtbcolr_item.xml +++ b/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet__mtbcolr_item.xml @@ -34,19 +34,19 @@ android:textColor="@color/colorPrimary" android:textSize="14sp" android:textStyle="bold" + style="@style/AppTheme.NewMaterial.Text.Small" tools:text="COD MART" /> @@ -56,6 +56,7 @@ android:text="@{`Lotto: ` + mtbColr.getPartitaMag()}" android:textSize="14sp" android:visibility="@{UtilityString.isNullOrEmpty(mtbColr.getPartitaMag()) ? View.INVISIBLE : View.VISIBLE}" + style="@style/AppTheme.NewMaterial.Text.Small" tools:text="Lotto: ABCDE" /> @@ -72,6 +73,7 @@ app:layout_constraintBottom_toBottomOf="parent"> diff --git a/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml b/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml index 6104a51e..2181a19c 100644 --- a/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml +++ b/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml @@ -84,6 +84,7 @@ app:layout_constraintBottom_toBottomOf="parent"> diff --git a/app/src/main/res/layout/vendita_ordine_inevaso_main_list_child_group_model.xml b/app/src/main/res/layout/vendita_ordine_inevaso_main_list_child_group_model.xml index 8c75cc17..d1341fd0 100644 --- a/app/src/main/res/layout/vendita_ordine_inevaso_main_list_child_group_model.xml +++ b/app/src/main/res/layout/vendita_ordine_inevaso_main_list_child_group_model.xml @@ -50,7 +50,7 @@ android:id="@+id/vendita_ordine_inevaso_main_list_group_item_qta_evasa" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginLeft="4dp" + android:layout_marginStart="4dp" android:textStyle="bold" android:textColor="@color/green_700" style="@style/AppTheme.NewMaterial.Text.Medium" @@ -73,6 +73,17 @@ style="@style/AppTheme.NewMaterial.Text.Medium" tools:text="QTA"/> + + diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 03c0767c..393004ce 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -85,9 +85,10 @@ pezzi - confezione - confezioni + collo + colli + col Chiudi UL Articoli presenti Ordini diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f8fc5b9f..32ec6adb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -31,6 +31,7 @@ package packages + pkg Integry WMS Integry Open navigation drawer diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 1092d0ff..da1bec89 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -52,6 +52,12 @@ @android:color/black + +