diff --git a/app/build.gradle b/app/build.gradle index 037b2af3..53f29218 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 112 - def appVersionName = '1.10.9' + def appVersionCode = 114 + def appVersionName = '1.10.11' signingConfigs { release { @@ -97,14 +97,14 @@ dependencies { implementation 'com.orhanobut:logger:2.2.0' implementation 'com.google.firebase:firebase-core:17.2.1' implementation 'com.google.firebase:firebase-crash:16.2.1' - implementation 'com.google.firebase:firebase-perf:19.0.1' + implementation 'com.google.firebase:firebase-perf:19.0.3' implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1' implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'com.google.android.material:material:1.1.0-beta01' - implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta3' + implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4' implementation 'androidx.cardview:cardview:1.0.0' - implementation 'androidx.recyclerview:recyclerview:1.1.0-rc01' + implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.preference:preference:1.1.0' implementation 'com.squareup.okhttp3:okhttp:4.2.2' implementation 'com.squareup.retrofit2:retrofit:2.6.2' diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java index 27e13f6c..3309123b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java @@ -81,7 +81,6 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer { @Override public void onFailure(Call>> call, Throwable t) { - Log.e("PrintCollo", t.toString()); UtilityLogger.errorMe(new Exception(t)); if(onFailed != null) onFailed.run(new Exception(t)); } 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 eb8d76d1..197d5c95 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 @@ -4,6 +4,7 @@ import com.orhanobut.logger.Logger; import java.io.PrintWriter; import java.io.StringWriter; +import java.net.SocketException; import java.net.SocketTimeoutException; import it.integry.integrywmsnative.R; @@ -38,7 +39,8 @@ public class UtilityLogger { } public static void errorMe(Exception ex, String additionalText, Runnable onComplete, RunnableArgs onFailed) { - if(!(ex instanceof SocketTimeoutException) && !(ex.getCause() instanceof SocketTimeoutException)) { + if((!(ex instanceof SocketTimeoutException) && !(ex.getCause() instanceof SocketTimeoutException)) || + (!(ex instanceof SocketException) && !(ex.getCause() instanceof SocketException)) ) { String message = UtilityResources.readRawTextFile(R.raw.error_mail); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java index 6b29ee4d..1f2ef3d9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java @@ -2,7 +2,6 @@ package it.integry.integrywmsnative.gest.accettazione; import android.app.Dialog; -import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; @@ -30,11 +29,11 @@ import it.integry.integrywmsnative.core.rest.CommonRESTException; import it.integry.integrywmsnative.core.data_cache.DataCache; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.interfaces.ISearcableFragment; +import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBinding; import it.integry.integrywmsnative.gest.accettazione.core.AccettazioneHelper; import it.integry.integrywmsnative.gest.accettazione.core.MainListAccettazioneAdapter; -import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadOrdiniCallback; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO; @@ -84,10 +83,6 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (getArguments() != null) { -// mParam1 = getArguments().getString(ARG_PARAM1); -// mParam2 = getArguments().getString(ARG_PARAM2); - } init(); @@ -126,28 +121,19 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag mHelper = new AccettazioneHelper(getActivity()); - mHelper.loadOrdini(new ILoadOrdiniCallback() { - @Override - public void onLoadSuccess(List ordini) { - if(ordini != null) { - Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show(); - mOriginalOrderList = ordini; - } - - mBinding.ordiniAccettazioneEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE); - refreshRenderedOrdini(ordini); - initRecyclerView(); - progress.dismiss(); + mHelper.loadOrdini(ordini -> { + if(ordini != null) { + Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show(); + mOriginalOrderList = ordini; } - @Override - public void onLoadFail(Exception ex) { - progress.dismiss(); + mBinding.ordiniAccettazioneEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE); + refreshRenderedOrdini(ordini); + initRecyclerView(); + progress.dismiss(); - String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex); - if(errorMessage == null) errorMessage = ex.getMessage(); - DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show(); - } + }, ex -> { + UtilityExceptions.defaultException(getActivity(), ex, progress); }); @@ -164,10 +150,6 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag if(ordini != null) mRenderedOrderList.addAll(ordini); } - private void refreshRecyclerView() { - mAdapter.updateItems(mRenderedOrderList); - } - private RunnableArgs onSingleSelectionChanged = dto -> { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/AccettazioneHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/AccettazioneHelper.java index 860fe92e..a80b0839 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/AccettazioneHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/AccettazioneHelper.java @@ -15,7 +15,6 @@ import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityLogger; -import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadOrdiniCallback; import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO; import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO; import it.integry.integrywmsnative.gest.accettazione.rest.OrdiniAccettazioneRESTConsumerService; @@ -35,7 +34,7 @@ public class AccettazioneHelper { mContext = context; } - public void loadOrdini(final ILoadOrdiniCallback callback){ + public void loadOrdini(RunnableArgs> onComplete, RunnableArgs onFailed){ String codMdep = SettingsManager.i().userSession.depo.getCodMdep(); OrdiniAccettazioneRESTConsumerService service = RESTBuilder.getService(OrdiniAccettazioneRESTConsumerService.class); @@ -47,25 +46,21 @@ public class AccettazioneHelper { if(response.body() != null) { if(response.body().getEsito() == EsitoType.OK) { - callback.onLoadSuccess(response.body().getDto()); + onComplete.run(response.body().getDto()); } else { - Log.e("Accettazione", response.body().getErrorMessage()); - callback.onLoadFail(new Exception(response.body().getErrorMessage())); + onFailed.run(new Exception(response.body().getErrorMessage())); } } else { - Log.e("Accettazione", response.message()); - callback.onLoadFail(new Exception(response.message())); + onFailed.run(new Exception(response.message())); } } else { - Log.e("Accettazione", "Status " + response.code() + ": " + response.message()); - callback.onLoadFail(new Exception("Status " + response.code() + ": " + response.message())); + onFailed.run(new Exception("Status " + response.code() + ": " + response.message())); } } @Override public void onFailure(Call>> call, Throwable t) { - Log.e("Accettazione", t.toString()); - callback.onLoadFail(new Exception(t)); + onFailed.run(new Exception(t)); } }); } @@ -96,23 +91,18 @@ public class AccettazioneHelper { onComplete.run(dto); } else { - Log.e("Accettazione", response.body().getErrorMessage()); onFailed.run(new Exception(response.body().getErrorMessage())); } } else { - Log.e("Accettazione", response.message()); onFailed.run(new Exception(response.message())); } } else { - Log.e("Accettazione", "Status " + response.code() + ": " + response.message()); onFailed.run(new Exception("Status " + response.code() + ": " + response.message())); } } @Override public void onFailure(Call>> call, Throwable t) { - Log.e("Accettazione", t.toString()); - UtilityLogger.errorMe(new Exception(t)); onFailed.run(new Exception(t)); } }); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/interfaces/ILoadOrdiniCallback.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/interfaces/ILoadOrdiniCallback.java deleted file mode 100644 index 561329ef..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/interfaces/ILoadOrdiniCallback.java +++ /dev/null @@ -1,18 +0,0 @@ -package it.integry.integrywmsnative.gest.accettazione.core.interfaces; - -import java.util.List; - -import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO; - -/** - * Created by GiuseppeS on 06/03/2018. - */ - -public interface ILoadOrdiniCallback { - - - void onLoadSuccess(List ordini); - - void onLoadFail(Exception ex); - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/interfaces/ILoadPickingListCallback.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/interfaces/ILoadPickingListCallback.java deleted file mode 100644 index bc07ccbf..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/interfaces/ILoadPickingListCallback.java +++ /dev/null @@ -1,18 +0,0 @@ -package it.integry.integrywmsnative.gest.accettazione.core.interfaces; - -import java.util.List; - -import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO; -import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO; - -/** - * Created by GiuseppeS on 22/03/2018. - */ - -public interface ILoadPickingListCallback { - - void onLoadSuccess(List ordini); - - void onLoadFail(Exception ex); - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java index 87593149..7b3fdad4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java @@ -130,8 +130,6 @@ public class AccettazioneOrdineInevasoHelper { if(tmpList.get(i).isHidden() == null || forceHiddenCheck) { if (tmpList.get(i).getQtaDaEvadere().floatValue() <= 0) { tmpList.get(i).setHidden(true); - //tmpList.remove(i); - //i--; } else tmpList.get(i).setHidden(false); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOrdineAccettazioneInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOrdineAccettazioneInevasoViewModel.java index 4fb27caf..2df1d41f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOrdineAccettazioneInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOrdineAccettazioneInevasoViewModel.java @@ -76,8 +76,6 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC private GestioneEnum defaultGestioneOfUL = null; -// private MtbColt mtbColtOfAccettazione = null; - public AccettazioneOrdineAccettazioneInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List orders) { this.mActivity = activity; this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel; 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 652e2ec2..d63ca404 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 @@ -593,6 +593,8 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { DialogAskCliente.makeBase(mContext, (status, result) -> { if(status == DialogConsts.Results.YES) { createNewLUInternal(customNumCollo, customSerCollo, result, progressDialog, onComplete, onFailed); + } else { + onFailed.run(); } }).show(); } else { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/RettificaGiacenzeMainListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/RettificaGiacenzeMainListAdapter.java index da93abde..3a680ef1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/RettificaGiacenzeMainListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/RettificaGiacenzeMainListAdapter.java @@ -12,6 +12,8 @@ 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.ListaRettificaGiacenzeModelBinding; public class RettificaGiacenzeMainListAdapter extends RecyclerView.Adapter { @@ -58,12 +60,23 @@ public class RettificaGiacenzeMainListAdapter extends RecyclerView.Adapter { if(mOnItemClickListener != null) { - mOnItemClickListener.onItemClick(item, position); + mOnItemClickListener.onItemClick(mtbColr, position); } }); } @@ -112,7 +125,7 @@ public class RettificaGiacenzeMainListAdapter extends RecyclerView.Adapter if (thereIsAnyRowInUL()) { if (!UtilityString.isNullOrEmpty(SettingsManager.iDB().getDefaultCausaleRettificaGiacenze()) && saveCausale) { - posizionaCollo(() -> - saveCausaleRettificaGiacenze(progress, () -> { - if (!mtbColt.get().getDisablePrint()) { - printCollo(progress); - } else { - progress.dismiss(); - resetMtbColt(openNewOne); - } - }), progress::dismiss, ex -> - UtilityExceptions.defaultException(mContext, ex, progress) - ); + saveCausaleRettificaGiacenze(progress, () -> { + posizionaCollo(() -> postSaveOperations(openNewOne, progress), + () -> { + progress.dismiss(); + resetMtbColt(openNewOne); + }, + ex -> UtilityExceptions.defaultException(mContext, ex, progress)); + }); + } else { posizionaCollo(() -> { - if (!mtbColt.get().getDisablePrint()) { - printCollo(progress); - } else { - progress.dismiss(); - resetMtbColt(openNewOne); - } + postSaveOperations(openNewOne, progress); }, () -> { progress.dismiss(); resetMtbColt(openNewOne); @@ -541,6 +535,16 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked } } + + private void postSaveOperations(boolean openNewOne, Dialog progressDialog) { + if (!mtbColt.get().getDisablePrint()) { + printCollo(progressDialog); + } else { + progressDialog.dismiss(); + resetMtbColt(openNewOne); + } + } + private void saveCausaleRettificaGiacenze(Dialog progress, Runnable onComplete) { final MtbCols mtbCols = new MtbCols() @@ -562,6 +566,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked @Override public void onFailed(Exception ex) { UtilityExceptions.defaultException(mContext, ex, progress); + DialogCommon.showRestError(mContext, ex, onComplete::run); } }); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java index 610a8892..93596e6f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java @@ -90,9 +90,6 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (getArguments() != null) { - } - setHasOptionsMenu(true); init(); @@ -218,7 +215,6 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS final String finalDataCons = dataCons; checkSelectedOrders(selectedOrders, () -> { - RunnableArgs> onPostGetPickingList = ordini -> { mHelper.getBancaliVenditaGiaRegistrati(selectedOrders, mtbColtList -> { 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 533933b5..8f4d1246 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 @@ -61,17 +61,14 @@ public class VenditaHelper { onComplete.run(response.body().getDto()); } else { UtilityFirebase.stopPerformanceTrace(perfTrace, true); - Log.e("Vendita", response.body().getErrorMessage()); onFailed.run(new Exception(response.body().getErrorMessage())); } } else { UtilityFirebase.stopPerformanceTrace(perfTrace, true); - Log.e("Vendita", response.message()); onFailed.run(new Exception(response.message())); } } else { UtilityFirebase.stopPerformanceTrace(perfTrace, true); - Log.e("Vendita", "Status " + response.code() + ": " + response.message()); onFailed.run(new Exception("Status " + response.code() + ": " + response.message())); } } @@ -111,18 +108,15 @@ public class VenditaHelper { onComplete.run(response.body().getDto()); } else { - Log.e("Vendita", response.body().getErrorMessage()); UtilityFirebase.stopPerformanceTrace(perfTrace, true); onFailed.run(new Exception(response.body().getErrorMessage())); } } else { - Log.e("Vendita", response.message()); UtilityFirebase.stopPerformanceTrace(perfTrace, true); onFailed.run(new Exception(response.message())); } } else { UtilityFirebase.stopPerformanceTrace(perfTrace, true); - Log.e("Vendita", "Status " + response.code() + ": " + response.message()); onFailed.run(new Exception("Status " + response.code() + ": " + response.message())); } } @@ -130,8 +124,6 @@ public class VenditaHelper { @Override public void onFailure(Call>> call, Throwable t) { UtilityFirebase.stopPerformanceTrace(perfTrace, true); - Log.e("Vendita", t.toString()); - UtilityLogger.errorMe(new Exception(t)); onFailed.run(new Exception(t)); } }); @@ -167,18 +159,15 @@ public class VenditaHelper { onComplete.run(response.body().getDto()); } else { - Log.e("Vendita", response.body().getErrorMessage()); UtilityFirebase.stopPerformanceTrace(perfTrace, true); onFailed.run(new Exception(response.body().getErrorMessage())); } } else { - Log.e("Vendita", response.message()); UtilityFirebase.stopPerformanceTrace(perfTrace, true); onFailed.run(new Exception(response.message())); } } else { UtilityFirebase.stopPerformanceTrace(perfTrace, true); - Log.e("Vendita", "Status " + response.code() + ": " + response.message()); onFailed.run(new Exception("Status " + response.code() + ": " + response.message())); } } @@ -186,8 +175,6 @@ public class VenditaHelper { @Override public void onFailure(Call>> call, Throwable t) { UtilityFirebase.stopPerformanceTrace(perfTrace, true); - Log.e("Vendita", t.toString()); - UtilityLogger.errorMe(new Exception(t)); onFailed.run(new Exception(t)); } }); @@ -246,9 +233,6 @@ public class VenditaHelper { public void getOrdiniInCommessaCollo(MtbColt testataCollo, RunnableArgs> onComplete, RunnableArgs onFailed) { - - - OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class); service.getOrdiniInCommessaCollo( testataCollo.getDataColloS(), @@ -267,15 +251,12 @@ public class VenditaHelper { if(response.body().getEsito() == EsitoType.OK) { onComplete.run(response.body().getDto()); } else { - Log.e("getOrdiniInCommCollo", response.body().getErrorMessage()); onFailed.run(new Exception(response.body().getErrorMessage())); } } else { - Log.e("getOrdiniInCommCollo", response.message()); onFailed.run(new Exception(response.message())); } } else { - Log.e("getOrdiniInCommCollo", "Status " + response.code() + ": " + response.message()); onFailed.run(new Exception("Status " + response.code() + ": " + response.message())); } @@ -283,8 +264,6 @@ public class VenditaHelper { @Override public void onFailure(Call>> call, Throwable t) { - Log.e("getOrdiniInCommCollo", t.toString()); - UtilityLogger.errorMe(new Exception(t)); onFailed.run(new Exception(t)); } }); 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 90ea0cdb..14894e68 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 @@ -1166,7 +1166,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO // } } else { - dto.setQtaTot(tmpPickData.getQtaTot()); + dto.setQtaTot(qtaDaEvadere.floatValue() < tmpPickData.getQtaTot().floatValue() ? qtaDaEvadere : tmpPickData.getQtaTot()); dto.setMaxQta(tmpPickData.getQtaTot()); if(tmpPickData.getNumCnf() != null) { @@ -1200,6 +1200,12 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO dto.setCanPartitaMagBeChanged(false); dto.setCanDataScadBeChanged(false); + } else { + dto.setNumCnf(item.getNumCnfCollo() != null ? item.getNumCnfCollo().intValue() : item.getNumCnfOrd().intValue()); + + if(dto.getNumCnf() != null && dto.getQtaTot() != null && dto.getNumCnf() > 0 && dto.getQtaTot().compareTo(BigDecimal.ZERO) > 0) { + dto.setQtaCnf(dto.getQtaTot().divide(new BigDecimal(dto.getNumCnf()), 3, RoundingMode.HALF_EVEN)); + } } boolean canOverflowQuantity = SettingsManager.iDB().isFlagCanAddExtraQuantitySpedizione(); 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 aa41ddd5..cceb9441 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 @@ -278,7 +278,7 @@ public class VersamentoMerceViewModel { //Se le gestioni sono uguali faccio uno storno sulla sorgente e non lavoro con //i riferimenti if(sourceMtbColt.getGestioneEnum() == destMtbColt.getGestioneEnum() && - (sourceMtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || sourceMtbColt.getGestioneEnum() == GestioneEnum.VENDITA)){ + (/*sourceMtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO ||*/ sourceMtbColt.getGestioneEnum() == GestioneEnum.VENDITA)){ destroyMtbColrReferences = true; MtbColr stornoSourceMtbColr = (MtbColr) destNewMtbColr.get(i).clone(); 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 daf4d8aa..f2ed317e 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 @@ -41,4 +41,10 @@ public class DialogCommon { null, onPositiveClick).show(); } + + + public static void showRestError(@NotNull Context context, Exception ex, @Nullable Runnable onPositiveClick) { + DialogSimpleMessageHelper.makeErrorDialog(context, + new SpannableString(ex.getMessage()), null, onPositiveClick).show(); + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java index dce07584..dbf3cd3b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java @@ -10,6 +10,8 @@ import android.content.res.ColorStateList; import androidx.databinding.DataBindingUtil; import androidx.databinding.Observable; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; import android.os.Handler; import com.google.android.material.textfield.TextInputLayout; import androidx.core.content.ContextCompat; @@ -26,6 +28,7 @@ import android.widget.EditText; import org.jetbrains.annotations.NotNull; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; @@ -40,6 +43,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgss; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityDate; +import it.integry.integrywmsnative.core.utility.UtilityDialog; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.core.utility.UtilityNumber; @@ -208,7 +212,7 @@ public class DialogInputQuantity { private String scadenzaString = "Scadenza"; - private AlertDialog currentAlert; + private Dialog currentDialog; private Context currentContext; private DialogInputQuantityArticoloBinding currentBinding; @@ -217,14 +221,14 @@ public class DialogInputQuantity { private QuantityDTO currentQuantityDto; private DTO currentDTO; - public static AlertDialog makeBase(final Context context, final DTO dto, boolean canOverflowQuantity, final RunnableArgs dialogCallback, final Runnable onAbort) { + public static Dialog makeBase(final Context context, final DTO dto, boolean canOverflowQuantity, final RunnableArgs dialogCallback, final Runnable onAbort) { return new DialogInputQuantity(context, dto, canOverflowQuantity, false, (quantityDto, closeUL) -> { dialogCallback.run(quantityDto); - }, onAbort).currentAlert; + }, onAbort).currentDialog; } - public static AlertDialog makeBase(final Context context, final DTO dto, boolean canOverflowQuantity, final RunnableArgss dialogCallback, final Runnable onAbort) { - return new DialogInputQuantity(context, dto, canOverflowQuantity, true, dialogCallback, onAbort).currentAlert; + public static Dialog makeBase(final Context context, final DTO dto, boolean canOverflowQuantity, final RunnableArgss dialogCallback, final Runnable onAbort) { + return new DialogInputQuantity(context, dto, canOverflowQuantity, true, dialogCallback, onAbort).currentDialog; } public DialogInputQuantity(@NotNull Context context, @NotNull final DTO dto, boolean canOverflowQuantity, boolean showCloseUL, final RunnableArgss dialogCallback, final Runnable onAbort) { @@ -258,19 +262,17 @@ public class DialogInputQuantity { currentBinding.setViewmodel(dto); currentBinding.setQuantityViewModel(currentQuantityDto); - final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context) - .setView(currentBinding.getRoot()) - .setPositiveButton(context.getText(R.string.confirm), null) - .setNegativeButton(context.getText(R.string.abort), (dialog, which) -> { - if(onAbort != null) onAbort.run(); - }); - if(showCloseUL) alertDialog.setNeutralButton("Chiudi UL", null); + currentDialog = new Dialog(context); + currentDialog.setContentView(currentBinding.getRoot()); - currentAlert = alertDialog.create(); - currentAlert.setCanceledOnTouchOutside(false); + currentDialog.setCanceledOnTouchOutside(false); + currentDialog.setCancelable(false); + currentDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - currentAlert.setOnShowListener(dialogInterface -> { + currentDialog.setCanceledOnTouchOutside(false); + + currentDialog.setOnShowListener(dialogInterface -> { final Handler handler = new Handler(); handler.postDelayed(() -> { @@ -286,18 +288,25 @@ public class DialogInputQuantity { InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(editTextToFocus, InputMethodManager.SHOW_IMPLICIT); + }, 100); - Button positiveButton = currentAlert.getButton(AlertDialog.BUTTON_POSITIVE); - positiveButton.setOnClickListener(view -> onConfirm(context, currentQuantityDto, dialogCallback, false)); - - if(showCloseUL) { - Button neutralButton = currentAlert.getButton(AlertDialog.BUTTON_NEUTRAL); - neutralButton.setOnClickListener(view -> onConfirm(context, currentQuantityDto, dialogCallback, true)); - } - }); + currentBinding.saveBtn.setOnClickListener(view -> { + onConfirm(context, currentQuantityDto, dialogCallback, false); + currentDialog.dismiss(); + }); + currentBinding.abortBtn.setOnClickListener(view -> { + if(onAbort != null) onAbort.run(); + currentDialog.dismiss(); + }); + + currentBinding.closeLuBtn.setVisibility(showCloseUL ? View.VISIBLE : View.INVISIBLE); + currentBinding.closeLuBtn.setOnClickListener(view -> { + onConfirm(context, currentQuantityDto, dialogCallback, true); + currentDialog.dismiss(); + }); initDatePicker(context, currentQuantityDto, currentBinding.getRoot().findViewById(R.id.input_data_scad)); @@ -327,8 +336,18 @@ public class DialogInputQuantity { quantityDTO.batchLot.set(dto.batchLot); if(quantityDTO.qtaCnf.get(false) == null) { if(dto.getQtaCnf() != null) { + quantityDTO.qtaCnf.set(dto.getQtaCnf().floatValue()); + + } else if(dto.numCnf != null && dto.qtaTot != null && + dto.numCnf > 0 && dto.qtaTot.compareTo(BigDecimal.ZERO) > 0) { + + quantityDTO.qtaCnfNotificationEnabled = false; + quantityDTO.qtaCnf.set(dto.qtaTot.divide(new BigDecimal(dto.numCnf), RoundingMode.HALF_EVEN).floatValue()); + quantityDTO.qtaCnfNotificationEnabled = true; + } else { + quantityDTO.qtaCnf.set(dto.mtbAart.getQtaCnf().floatValue()); if(dto.getMtbAart().isFlagQtaCnfFissa()) { @@ -385,7 +404,7 @@ public class DialogInputQuantity { .setOnScanSuccessfull(onScanSuccessfull) .setOnScanFailed(ex -> UtilityExceptions.defaultException(context, ex, false))); - currentAlert.setOnDismissListener(dialog -> { + currentDialog.setOnDismissListener(dialog -> { BarcodeManager.removeCallback(barcodeIstanceID); }); @@ -525,7 +544,9 @@ public class DialogInputQuantity { if (!quantityDTO.blockedQtaTot.get()) { quantityDTO.qtaTotNotificationEnabled = false; - quantityDTO.qtaTot.set((float) Math.round(quantityDTO.qtaCnf.get(true) * quantityDTO.numCnf.get(true) * 1000) / 1000); + float qtaTot = (float) Math.round(quantityDTO.qtaCnf.get(true) * quantityDTO.numCnf.get(true) * 1000) / 1000; + if(qtaTot > quantityDTO.maxQta.get() && !quantityDTO.canOverflowQuantity) qtaTot = quantityDTO.maxQta.get(); + quantityDTO.qtaTot.set(qtaTot); quantityDTO.qtaTotNotificationEnabled = true; } else if (!quantityDTO.blockedNumDiCnf.get()) { @@ -662,9 +683,6 @@ public class DialogInputQuantity { } text += ""; - - - } currentBinding.qtaDescriptionText.setText(Html.fromHtml(text)); @@ -701,7 +719,7 @@ public class DialogInputQuantity { } dialogCallback.run(quantityDTO, closeUL); - currentAlert.dismiss(); + currentDialog.dismiss(); } } @@ -734,7 +752,6 @@ public class DialogInputQuantity { private void showBatchLotErrorPrompt(Context mContext){ String errorMessage = mContext.getText(R.string.batch_lot_error_message).toString(); - DialogSimpleMessageHelper.makeErrorDialog(mContext, new SpannableString(Html.fromHtml(errorMessage)), null, null).show(); } diff --git a/app/src/main/res/drawable/ic_clear_black_24dp.xml b/app/src/main/res/drawable/ic_clear_black_24dp.xml deleted file mode 100644 index ede4b710..00000000 --- a/app/src/main/res/drawable/ic_clear_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_clear_white_24dp.xml b/app/src/main/res/drawable/ic_clear_white_24dp.xml deleted file mode 100644 index 1e2d044b..00000000 --- a/app/src/main/res/drawable/ic_clear_white_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_close_red_24dp.xml b/app/src/main/res/drawable/ic_close_red_24dp.xml deleted file mode 100644 index 03697e0f..00000000 --- a/app/src/main/res/drawable/ic_close_red_24dp.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/layout/dialog_input_quantity_articolo.xml b/app/src/main/res/layout/dialog_input_quantity_articolo.xml index f6283472..568f1441 100644 --- a/app/src/main/res/layout/dialog_input_quantity_articolo.xml +++ b/app/src/main/res/layout/dialog_input_quantity_articolo.xml @@ -29,12 +29,15 @@ + android:layout_height="wrap_content" + app:cardCornerRadius="12dp" + app:cardElevation="0dp"> - + android:orientation="vertical" + android:padding="16dp"> @@ -101,8 +105,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{viewmodel.mtbAart.descrizioneEstesa}" - android:textSize="16sp" android:textStyle="bold" + style="@style/AppTheme.NewMaterial.Text.Small" tools:text="RAD 25 D H/L 200 - 10 EL B BIANCO" /> - + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/lista_rettifica_giacenze_model.xml b/app/src/main/res/layout/lista_rettifica_giacenze_model.xml index a4a07a79..485b444e 100644 --- a/app/src/main/res/layout/lista_rettifica_giacenze_model.xml +++ b/app/src/main/res/layout/lista_rettifica_giacenze_model.xml @@ -23,16 +23,18 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" + app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toStartOf="@+id/qta_box" app:layout_constraintStart_toStartOf="parent"> - - + + + + + diff --git a/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/KeyboardEmulatorBarcodeReader.java b/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/KeyboardEmulatorBarcodeReader.java index 8091d60b..58db8448 100644 --- a/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/KeyboardEmulatorBarcodeReader.java +++ b/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/KeyboardEmulatorBarcodeReader.java @@ -55,28 +55,28 @@ public class KeyboardEmulatorBarcodeReader implements BarcodeReaderInterface { @Override public void onKeyEvent(KeyEvent keyEvent) { - if (keyEvent.getEventTime() - mLastCharInsertTime > 500){ - mLastCharInsertTime =keyEvent.getEventTime(); + if (keyEvent.getEventTime() - mLastCharInsertTime > 500) { + mLastCharInsertTime = keyEvent.getEventTime(); mTextBarcode = ""; } - if (keyEvent.getKeyCode() != KeyEvent.KEYCODE_ENTER){ - if (keyEvent.getKeyCode() != KeyEvent.KEYCODE_SHIFT_LEFT){ - mLastCharInsertTime =keyEvent.getEventTime(); - if (keyEvent.getUnicodeChar() > 0){ - mTextBarcode+= (char) keyEvent.getUnicodeChar(); - }else if (keyEvent.getCharacters() != null){ + if (keyEvent.getKeyCode() != KeyEvent.KEYCODE_ENTER) { + if (keyEvent.getKeyCode() != KeyEvent.KEYCODE_SHIFT_LEFT) { + mLastCharInsertTime = keyEvent.getEventTime(); + if (keyEvent.getUnicodeChar() > 0) { + mTextBarcode += (char) keyEvent.getUnicodeChar(); + } else if (keyEvent.getCharacters() != null) { mTextBarcode = keyEvent.getCharacters(); } } - }else{ - if (mTextBarcode.length() > 0){ + } else { + if (mTextBarcode.length() > 0) { BarcodeType barcodeType = decodeBarcode(mTextBarcode); BarcodeScanDTO barcodeScanDTO = new BarcodeScanDTO() .setByteValue(mTextBarcode.getBytes()) .setStringValue(mTextBarcode) .setType(barcodeType) - .setName(barcodeType != null ? barcodeType.toString():""); + .setName(barcodeType != null ? barcodeType.toString() : ""); mOnScanSuccessfull.run(barcodeScanDTO); } @@ -84,32 +84,52 @@ public class KeyboardEmulatorBarcodeReader implements BarcodeReaderInterface { } - public BarcodeType decodeBarcode(String barcode){ -/* - Pattern patternUPCA = Pattern.compile("^[0-9]{12}$"); + public BarcodeType decodeBarcode(String barcode) { + /*Pattern patternUPCA = Pattern.compile("^[0-9]{12}$"); Pattern patternUPCE = Pattern.compile("^[0-1][0-9]{7}$"); Pattern patternUPCE1 = Pattern.compile(""); Pattern patternEAN8 = Pattern.compile("^[0-9]{8}$"); Pattern patternEAN13 = Pattern.compile("^[0-9]{13}$"); Pattern patternCODE11 = Pattern.compile(""); - Pattern patternCODE39 = Pattern.compile(""); - if(){ - return BarcodeType.CODE11; - }else if(){ - return BarcodeType.CODE39; - }else if(){ - return BarcodeType.EAN13; - }else if(){ - return BarcodeType.EAN8; - }else if(){ - return BarcodeType.UPCA; - }else if(){ - return BarcodeType.UPCE; - }else if(false){ - return BarcodeType.UPCE1; - }else{ - return BarcodeType.CODE128; - }*/ + Pattern patternCODE39 = Pattern.compile("");*/ + if (barcode.length() == 8) { + try { + int checksum = getEanChecksum(barcode); + if (checksum == Integer.parseInt(barcode.substring(7))){ + return BarcodeType.EAN8; + } + } catch (WrongFormatException e) { + return BarcodeType.CODE128; + } + } else if (barcode.length() == 13) { + try { + int checksum = getEanChecksum(barcode); + if (checksum == Integer.parseInt(barcode.substring(12))){ + return BarcodeType.EAN13; + } + } catch (WrongFormatException e) { + return BarcodeType.CODE128; + } + } return BarcodeType.CODE128; } + + private static int getEanChecksum(String barcode) throws WrongFormatException { + int odds = 0; + int evens = 0; + barcode = barcode.substring(0,barcode.length()-1); + int pos = 0; + for (int i = barcode.length() -1; i >=0 ; i--) { + pos++; + if (!Character.isDigit(barcode.charAt(i))) { + throw new WrongFormatException(); + } + if (pos % 2 == 0) { + evens += Integer.parseInt(barcode.charAt(i)+""); + } else { + odds += Integer.parseInt(barcode.charAt(i)+""); + } + } + return ((10 - (((3 * odds) + evens) % 10)) % 10); + } } diff --git a/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/WrongFormatException.java b/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/WrongFormatException.java new file mode 100644 index 00000000..54d0aa09 --- /dev/null +++ b/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/WrongFormatException.java @@ -0,0 +1,4 @@ +package it.integry.keyobardemulatorscannerlibrary; + +public class WrongFormatException extends Exception { +}