diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index ca2abbe3..770b61df 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/build.gradle b/app/build.gradle index 4ddfd5b6..38f1ad34 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -21,8 +21,8 @@ android { applicationId "it.integry.integrywmsnative" minSdkVersion 21 targetSdkVersion 28 - versionCode 11 - versionName "1.0.8" + versionCode 12 + versionName "1.0.9" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -49,6 +49,7 @@ dependencies { }) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.orhanobut:logger:2.2.0' + implementation 'com.google.firebase:firebase-core:16.0.6' implementation 'com.google.firebase:firebase-crash:16.2.1' implementation 'com.google.firebase:firebase-perf:16.2.2' implementation 'com.crashlytics.sdk.android:crashlytics:2.9.7' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b4ff3c85..20b6fc3b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,6 +55,9 @@ + \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java index 2acaab81..df67d6b7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java @@ -21,6 +21,7 @@ import it.integry.integrywmsnative.core.settings.Stash; import it.integry.integrywmsnative.core.update.UpdatesManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityResources; +import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.exception.DialogException; @@ -38,6 +39,22 @@ public class MainApplication extends Application { if(!BuildConfig.DEBUG) { Fabric.with(this, new Crashlytics()); + + if(SettingsManager.i() != null && + (SettingsManager.i().userSession != null && !UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB)) && + (SettingsManager.i().user != null && !UtilityString.isNullOrEmpty(SettingsManager.i().user.fullname))) { + + Crashlytics.setString("user_fullname", SettingsManager.i().user.fullname); + Crashlytics.setString("profile_db", SettingsManager.i().userSession.profileDB); + } + } else { + if(SettingsManager.i() != null && + (SettingsManager.i().userSession != null && !UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB)) && + (SettingsManager.i().user != null && !UtilityString.isNullOrEmpty(SettingsManager.i().user.fullname))) { + + Crashlytics.setString("user_fullname", SettingsManager.i().user.fullname); + Crashlytics.setString("profile_db", "[DEBUG] " + SettingsManager.i().userSession.profileDB); + } } Stash.init(this); 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 c9755991..549046ad 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 @@ -71,6 +71,22 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ } + public static void saveRigaCollo(MtbColr mtbColrToSave, RunnableArgs onComplete, RunnableArgs onFailed){ + + EntityRESTConsumer.processEntity(mtbColrToSave, new ISimpleOperationCallback() { + @Override + public void onSuccess(MtbColr value) { + if(onComplete != null) onComplete.run(value); + } + + @Override + public void onFailed(Exception ex) { + if(onFailed != null) onFailed.run(ex); + } + }, MtbColr.class); + + } + public static void createColloLavorazione(int segno, RunnableArgs onComplete, RunnableArgs onFailed) { MtbColt mtbColtToCreate = new MtbColt() .setSegno(segno) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java index a79f5168..685178d9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java @@ -71,7 +71,7 @@ public class SettingsManager { public static void reloadDBVariables(Runnable onComplete, RunnableArgs onFailed){ dbSettingsModelIstance = new DBSettingsModel(); - Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("_db_reload_vars"); + Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_reload_vars"); perfTrace.start(); Runnable tmpOnComplete = () -> { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java index 91b13ac3..3af4dec0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java @@ -5,6 +5,7 @@ import android.content.Context; import android.text.SpannableString; import android.util.Log; +import com.crashlytics.android.Crashlytics; import com.orhanobut.logger.Logger; import it.integry.integrywmsnative.core.REST.CommonRESTException; @@ -30,6 +31,8 @@ public class UtilityExceptions { DialogSimpleMessageHelper.makeErrorDialog(context, new SpannableString(errorMessage), null, null).show(); if(sendEmail) UtilityLogger.errorMe(ex); + + Crashlytics.logException(ex.getCause()); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java index 10a88396..e6ef1bf6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java @@ -19,6 +19,7 @@ import com.annimon.stream.Stream; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Date; import java.util.List; import it.integry.integrywmsnative.MainActivity; @@ -26,6 +27,7 @@ import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.REST.CommonRESTException; import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; +import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback; import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.di.BindableBoolean; @@ -40,6 +42,7 @@ import it.integry.integrywmsnative.core.report.ReportManager; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityLogger; +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.FragmentMainRettificaGiacenzeBinding; @@ -291,32 +294,6 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked qtaDto.setCanPartitaMagBeChanged(true); qtaDto.setCanDataScadBeChanged(true); -/* - if(ean128Model != null){ - if(!UtilityString.isNullOrEmpty(ean128Model.BatchLot)){ - qtaDto.partitaMag = ean128Model.BatchLot; - qtaDto.canPartitaMagBeChanged = false; - } - - let dataScad = ean128Model.BestBefore || ean128Model.Expiry; - if(dataScad != null){ - qtaDto.shouldAskDataScad = true; - qtaDto.dataScad = moment(dataScad, "DD/MM/YYYY HH:mm:ss").format("YYYY-MM-DD"); - qtaDto.canDataScadBeChanged = false; - } - - if(ean128Model.NetWeightKg != null) { - qtaDto.qtaTot = ean128Model.NetWeightKg; - qtaDto.qtaPerCnf = ean128Model.NetWeightKg; - qtaDto.numDiCnf = 1; - } - - if(ean128Model.Count != null){ - qtaDto.qtaTot = ean128Model.Count; - qtaDto.numDiCnf = qtaDto.qtaTot / qtaDto.qtaPerCnf; - } - } -*/ DialogInputQuantity.makeBase(mContext, qtaDto, true, (quantityDTO) -> { onPostDispatch(mtbAart, quantityDTO); @@ -385,7 +362,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked @Override public void onItemClick(MtbColr item, int position) { - /* + mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); MtbColr clickedItem = mtbColt.get().getMtbColr().get(position); @@ -393,12 +370,11 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked mBinding.bottomSheetActionsTitle.setText(clickedItem.getDescrizione()); mBinding.bottomSheetActionsSubtitle.setText(clickedItem.getCodMart()); - mBinding.bottomSheetActionsEditBtn.setOnClickListener(v -> onItemEdit(position)); + mBinding.bottomSheetActionsEditBtn.setOnClickListener(v -> onItemEdit(item, position)); - mBinding.bottomSheetActionsDeleteBtn.setOnClickListener(v -> onItemDelete(position)); + mBinding.bottomSheetActionsDeleteBtn.setOnClickListener(v -> onItemDelete(item)); - mBinding.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()) + " " + clickedItem.getUntMis()); - */ + mBinding.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()) + " " + clickedItem.getMtbAart().getUntMis()); } @@ -440,9 +416,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked progress.dismiss(); resetMtbColt(openNewOne); } - }), () -> { - progress.dismiss(); - }, ex -> + }), progress::dismiss, ex -> UtilityExceptions.defaultException(mContext, ex, progress) ); @@ -453,9 +427,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked } else { resetMtbColt(openNewOne); } - }, () -> { - progress.dismiss(); - }, ex -> UtilityExceptions.defaultException(mContext, ex, progress)); + }, progress::dismiss, ex -> UtilityExceptions.defaultException(mContext, ex, progress)); } } else { @@ -506,6 +478,89 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked }, onFailed).show(); } + private void onItemEdit(MtbColr mtbColrToEdit, int index) { + mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); + + MtbColr mtbColrToEditClone = (MtbColr) mtbColrToEdit.clone(); + + DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO() + .setBatchLot(mtbColrToEditClone.getPartitaMag()) + .setQtaDaEvadere(null) + .setQtaOrd(null) + .setQtaDisponibile(new BigDecimal(-1)) + .setMtbAart(mtbColrToEditClone.getMtbAart()) + .setCanPartitaMagBeChanged(false) + .setQtaTot(mtbColrToEditClone.getQtaCol()); + + DialogInputQuantity.makeBase(mContext, dto, true, value -> { + + mtbColrToEditClone + .setRiga(null) + .setDatetimeRow(new Date()) + .setQtaCol(new BigDecimal(value.qtaTot.get()).subtract(mtbColrToEditClone.getQtaCol())) + .setOperation(CommonModelConsts.OPERATION.INSERT); + + MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone(); + mtbColtClone.setMtbColr(new ObservableArrayList<>()); + mtbColtClone.getMtbColr().add(mtbColrToEditClone); + mtbColtClone.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + + ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + + ColliMagazzinoRESTConsumer.saveCollo(mtbColtClone, valueNewMtbColt -> { + progressDialog.dismiss(); + mtbColt.get().getMtbColr().remove(index); + + mtbColrToEditClone + .setQtaCol(new BigDecimal(value.qtaTot.get())) + .setOperation(CommonModelConsts.OPERATION.NO_OP); + + mtbColt.get().getMtbColr().add(index, mtbColrToEditClone); + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + }); + + }).show(); + + + + + + + + + + + + } + + private void onItemDelete(MtbColr mtbColrToDelete) { + mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); + + MtbColr mtbColrToDeleteClone = (MtbColr) mtbColrToDelete.clone(); + + mtbColrToDeleteClone + .setRiga(null) + .setDatetimeRow(new Date()) + .setQtaCol(mtbColrToDeleteClone.getQtaCol().multiply(new BigDecimal(-1))) + .setOperation(CommonModelConsts.OPERATION.INSERT); + + MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone(); + mtbColtClone.setMtbColr(new ObservableArrayList<>()); + mtbColtClone.getMtbColr().add(mtbColrToDeleteClone); + mtbColtClone.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + + ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + + ColliMagazzinoRESTConsumer.saveCollo(mtbColtClone, value -> { + progressDialog.dismiss(); + mtbColt.get().getMtbColr().remove(mtbColrToDelete); + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + }); + } + + private void printCollo(ProgressDialog progress) { 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 ac29c5c9..4e4a42b7 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 @@ -45,7 +45,7 @@ public class VenditaHelper { public void loadOrdini(final ILoadOrdiniCallback callback){ String codMdep = SettingsManager.i().userSession.depo.getCodMdep(); - Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("_db_load_ords_v"); + Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_ords_v"); perfTrace.start(); OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class); @@ -95,7 +95,7 @@ public class VenditaHelper { OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class); - Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("_db_load_pick_v"); + Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_pick_v"); perfTrace.start(); service.getPickingList(codMdep, dateCons, joinedBarcodes).enqueue(new Callback>>() { diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java index daa90202..23410bc0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java @@ -146,12 +146,15 @@ public class DialogAskPositionOfLU { if (UtilityPosizione.isPosizioneWithLivello(foundPosizione)) { askLivello(); + BarcodeManager.enable(); } else { updatePosizione(foundPosizione, () -> { completedFlow = true; + BarcodeManager.enable(); if(onComplete != null) onComplete.run(foundPosizione); }, ex -> { completedFlow = true; + BarcodeManager.enable(); onFailed.run(ex); }); }