From 35fce7e65653eb4b8a1ecb7596ba0a9993e74831 Mon Sep 17 00:00:00 2001 From: Sergio De la torre Date: Tue, 26 Nov 2024 10:54:50 +0100 Subject: [PATCH] feat: refs #7920 itemShelvingGet --- .../baselineProfiles/0/app-general-release.dm | Bin 0 -> 5008 bytes .../fragment/shelvingLogFragment.kt | 94 ++++++++++++++---- .../fragment/shelvingLogViewModel.kt | 24 ++++- .../historicoshelvinglog/model/ShelvingLog.kt | 2 + .../res/layout/activity_restaurant_view.xml | 42 ++++---- app/src/main/res/values-es/strings.xml | 4 +- app/src/main/res/values-fr/strings.xml | 4 +- app/src/main/res/values-pt/strings.xml | 4 +- app/src/main/res/values/strings.xml | 2 + 9 files changed, 132 insertions(+), 44 deletions(-) create mode 100644 app/general/release/baselineProfiles/0/app-general-release.dm diff --git a/app/general/release/baselineProfiles/0/app-general-release.dm b/app/general/release/baselineProfiles/0/app-general-release.dm new file mode 100644 index 0000000000000000000000000000000000000000..a622bdba83114bc5e9e3f66876c9d5dec044bdf9 GIT binary patch literal 5008 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 SXU?9`r;Z { + binding.mainToolbar.toolbarTitle.text = title + } - } else { - binding.mainToolbar.toolbarTitle.text = title - binding.scanInput.setHint(getString(R.string.scanParkingTxt)) + LogType.PREVIOUS -> { + binding.mainToolbar.toolbarTitle.text = title + binding.scanInput.setHint(getString(R.string.scanParkingTxt)) + } + LogType.ITEMSHELVING -> { + binding.mainToolbar.toolbarTitle.text = title + binding.scanInput.setHint("Escanea carro o item") + } } + /* if (logType == LogType.SHELVING) { + binding.mainToolbar.toolbarTitle.text = title + + } else { + binding.mainToolbar.toolbarTitle.text = title + binding.scanInput.setHint(getString(R.string.scanParkingTxt)) + + }*/ + } private fun setEvents() { @@ -62,6 +80,11 @@ class ShelvingLogFragment( if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) { if (binding.scanInput.text.toString().isNotEmpty()) { + binding.scanInput.setText( + itemScanValue( + binding.scanInput.text.toString(), arrayOf("buy"), "id" + ).toString() + ) when (logType) { LogType.SHELVING -> { viewModel.shelvings((binding.scanInput.text.toString())) @@ -69,6 +92,9 @@ class ShelvingLogFragment( } LogType.PREVIOUS -> viewModel.getParkingId((binding.scanInput.text.toString())) + LogType.ITEMSHELVING -> { + viewModel.shelvings((binding.scanInput.text.toString())) + } } itemScan = binding.scanInput.text.toString() } @@ -95,11 +121,11 @@ class ShelvingLogFragment( LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) setToolBar(getString(R.string.shelvingLog) + ":" + itemScan) if (it.list.isEmpty()) { - customDialog.setTitle(getString(R.string.noResults)) - .setDescription(getString(R.string.noDataLabelScanned)) - .setOkButton(getString(R.string.close)) { - customDialog.dismiss() - }.show() + if (logType == LogType.SHELVING) { + showMessage() + } else { + viewModel.getIdFromCodeSalix(itemScan) + } } else { openWebViewer(it.list[0].id!!, "shelving") } @@ -113,24 +139,58 @@ class ShelvingLogFragment( } } + loadResponseCode.observe(viewLifecycleOwner) { event -> + event.getContentIfNotHandled().notNull { + setToolBar(getString(R.string.item) + itemScan) + if (it == -1) showMessage() else { + isitemFkScanned = true + openWebViewer(it, "") + } + + } + } } } + override fun onPause() { + isitemFkScanned = false + super.onPause() + } + + private fun showMessage() { + customDialog.setTitle(getString(R.string.noResults)) + .setDescription(getString(R.string.noDataLabelScanned)) + .setOkButton(getString(R.string.close)) { + customDialog.dismiss() + }.show() + } + private fun openWebViewer(param: Int, web: String) { + + //variableWeb = if (itemScan is Number) "var-itemFk=$param" else "var-shelvingCode=$param" ma.onPasillerosItemClickListener( PasillerosItemVO( title = R.string.titleWebViewer, ), - entryPoint = Gson().toJson( - mutableMapOf( - "entryPoint" to param, - "web" to "${mobileApplication.dataStoreApp.getServerLilium()}/#/$web/$param/log" + entryPoint = if (logType == LogType.ITEMSHELVING) { + Gson().toJson( + mutableMapOf( + "entryPoint" to param, + "web" to "https://grafana.verdnatura.es/d/ce4b8ymvex4owa?${if (isitemFkScanned) "var-itemFk=$param" else "var-shelvingCode=$itemScan"}" + ) ) - ) + } else { + Gson().toJson( + mutableMapOf( + "entryPoint" to param, + "web" to "${mobileApplication.dataStoreApp.getServerLilium()}/#/$web/$param/log" + ) + ) + } ) } -} +} \ No newline at end of file diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelvinglog/fragment/shelvingLogViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelvinglog/fragment/shelvingLogViewModel.kt index 817e73c3..f7dee81f 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelvinglog/fragment/shelvingLogViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelvinglog/fragment/shelvingLogViewModel.kt @@ -6,6 +6,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.map import com.google.gson.JsonObject import es.verdnatura.domain.SalixCallback +import es.verdnatura.domain.userCases.GetItemFromBarcodeUseCase import es.verdnatura.presentation.base.BaseViewModel import es.verdnatura.presentation.common.Event import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.ShelvingLogSalix @@ -13,14 +14,18 @@ import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.Shelvi import retrofit2.Response class ShelvingLogViewModel(val context: Context) : BaseViewModel(context) { - + private val getItemFromBarcodeUseCase = GetItemFromBarcodeUseCase(salix) private val _itemShelvingLogSalixList by lazy { MutableLiveData() } val loadShelvingLogSalixList: LiveData> = _itemShelvingLogSalixList.map { Event(it) } private val _responseParkingId by lazy { MutableLiveData() } val responseParkingId: LiveData = _responseParkingId - val loadResponseParking: LiveData> =_responseParkingId.map { Event(it) } + val loadResponseParking: LiveData> = _responseParkingId.map { Event(it) } + + private val _responseCode by lazy { MutableLiveData() } + val responseCode: LiveData = _responseCode + val loadResponseCode: LiveData> = _responseCode.map { Event(it) } fun shelvings(vShelvingFK: String) { salix.shelvingsGet("""{"where": {"code": "$vShelvingFK"}}""").enqueue(object : @@ -41,13 +46,26 @@ class ShelvingLogViewModel(val context: Context) : BaseViewModel(context) { .enqueue(object : SalixCallback>(context) { override fun onSuccess(response: Response>) { - _responseParkingId.value = response.body()?.firstOrNull()?.entrySet()?.firstOrNull()?.value?.toString()?.toIntOrNull() + _responseParkingId.value = + response.body()?.firstOrNull()?.entrySet()?.firstOrNull()?.value?.toString() + ?.toIntOrNull() } }) } + + fun getIdFromCodeSalix(code: String) { + getItemFromBarcodeUseCase.execute(code) + .enqueue(object : SalixCallback(context) { + + override fun onSuccess(response: Response) { + _responseCode.value = response.body() ?: -1 + + } + }) + } } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelvinglog/model/ShelvingLog.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelvinglog/model/ShelvingLog.kt index 50d4863c..8eb22de8 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelvinglog/model/ShelvingLog.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelvinglog/model/ShelvingLog.kt @@ -40,8 +40,10 @@ data class DeviceLogSalix( val versionApp: String, val serialNumber: String? ) + enum class LogType { SHELVING, PREVIOUS, + ITEMSHELVING } diff --git a/app/src/main/res/layout/activity_restaurant_view.xml b/app/src/main/res/layout/activity_restaurant_view.xml index 7451a3f4..aa0cf146 100644 --- a/app/src/main/res/layout/activity_restaurant_view.xml +++ b/app/src/main/res/layout/activity_restaurant_view.xml @@ -82,27 +82,6 @@ - - -