feat: refs #7920 itemShelvingGet

This commit is contained in:
Sergio De la torre 2024-11-26 10:54:50 +01:00
parent 72ff345744
commit 35fce7e656
9 changed files with 132 additions and 44 deletions

View File

@ -8,6 +8,7 @@ import es.verdnatura.R
import es.verdnatura.databinding.FragmentShelvinglogBinding import es.verdnatura.databinding.FragmentShelvinglogBinding
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.itemScanValue
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.feature.historicoshelvinglog.adapter.ShelvingLogAdapter import es.verdnatura.presentation.view.feature.historicoshelvinglog.adapter.ShelvingLogAdapter
import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.LogType import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.LogType
@ -23,6 +24,7 @@ class ShelvingLogFragment(
) { ) {
private var adapter: ShelvingLogAdapter? = null private var adapter: ShelvingLogAdapter? = null
private var itemScan = "" private var itemScan = ""
private var isitemFkScanned = false
companion object { companion object {
fun newInstance(entryPoint: String, logType: LogType) = fun newInstance(entryPoint: String, logType: LogType) =
@ -43,17 +45,33 @@ class ShelvingLogFragment(
} }
private fun setToolBar(title:String) { private fun setToolBar(title: String) {
if (logType == LogType.SHELVING) { when (logType) {
binding.mainToolbar.toolbarTitle.text = title LogType.SHELVING -> {
binding.mainToolbar.toolbarTitle.text = title
}
} else { LogType.PREVIOUS -> {
binding.mainToolbar.toolbarTitle.text = title binding.mainToolbar.toolbarTitle.text = title
binding.scanInput.setHint(getString(R.string.scanParkingTxt)) 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() { 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 (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
if (binding.scanInput.text.toString().isNotEmpty()) { if (binding.scanInput.text.toString().isNotEmpty()) {
binding.scanInput.setText(
itemScanValue(
binding.scanInput.text.toString(), arrayOf("buy"), "id"
).toString()
)
when (logType) { when (logType) {
LogType.SHELVING -> { LogType.SHELVING -> {
viewModel.shelvings((binding.scanInput.text.toString())) viewModel.shelvings((binding.scanInput.text.toString()))
@ -69,6 +92,9 @@ class ShelvingLogFragment(
} }
LogType.PREVIOUS -> viewModel.getParkingId((binding.scanInput.text.toString())) LogType.PREVIOUS -> viewModel.getParkingId((binding.scanInput.text.toString()))
LogType.ITEMSHELVING -> {
viewModel.shelvings((binding.scanInput.text.toString()))
}
} }
itemScan = binding.scanInput.text.toString() itemScan = binding.scanInput.text.toString()
} }
@ -95,11 +121,11 @@ class ShelvingLogFragment(
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
setToolBar(getString(R.string.shelvingLog) + ":" + itemScan) setToolBar(getString(R.string.shelvingLog) + ":" + itemScan)
if (it.list.isEmpty()) { if (it.list.isEmpty()) {
customDialog.setTitle(getString(R.string.noResults)) if (logType == LogType.SHELVING) {
.setDescription(getString(R.string.noDataLabelScanned)) showMessage()
.setOkButton(getString(R.string.close)) { } else {
customDialog.dismiss() viewModel.getIdFromCodeSalix(itemScan)
}.show() }
} else { } else {
openWebViewer(it.list[0].id!!, "shelving") 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) { private fun openWebViewer(param: Int, web: String) {
//variableWeb = if (itemScan is Number) "var-itemFk=$param" else "var-shelvingCode=$param"
ma.onPasillerosItemClickListener( ma.onPasillerosItemClickListener(
PasillerosItemVO( PasillerosItemVO(
title = R.string.titleWebViewer, title = R.string.titleWebViewer,
), ),
entryPoint = Gson().toJson( entryPoint = if (logType == LogType.ITEMSHELVING) {
mutableMapOf( Gson().toJson(
"entryPoint" to param, mutableMapOf(
"web" to "${mobileApplication.dataStoreApp.getServerLilium()}/#/$web/$param/log" "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"
)
)
}
) )
} }
} }

View File

@ -6,6 +6,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.map import androidx.lifecycle.map
import com.google.gson.JsonObject import com.google.gson.JsonObject
import es.verdnatura.domain.SalixCallback import es.verdnatura.domain.SalixCallback
import es.verdnatura.domain.userCases.GetItemFromBarcodeUseCase
import es.verdnatura.presentation.base.BaseViewModel import es.verdnatura.presentation.base.BaseViewModel
import es.verdnatura.presentation.common.Event import es.verdnatura.presentation.common.Event
import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.ShelvingLogSalix 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 import retrofit2.Response
class ShelvingLogViewModel(val context: Context) : BaseViewModel(context) { class ShelvingLogViewModel(val context: Context) : BaseViewModel(context) {
private val getItemFromBarcodeUseCase = GetItemFromBarcodeUseCase(salix)
private val _itemShelvingLogSalixList by lazy { MutableLiveData<ShelvingLogSalixList>() } private val _itemShelvingLogSalixList by lazy { MutableLiveData<ShelvingLogSalixList>() }
val loadShelvingLogSalixList: LiveData<Event<ShelvingLogSalixList>> = val loadShelvingLogSalixList: LiveData<Event<ShelvingLogSalixList>> =
_itemShelvingLogSalixList.map { Event(it) } _itemShelvingLogSalixList.map { Event(it) }
private val _responseParkingId by lazy { MutableLiveData<Int?>() } private val _responseParkingId by lazy { MutableLiveData<Int?>() }
val responseParkingId: LiveData<Int?> = _responseParkingId val responseParkingId: LiveData<Int?> = _responseParkingId
val loadResponseParking: LiveData<Event<Int?>> =_responseParkingId.map { Event(it) } val loadResponseParking: LiveData<Event<Int?>> = _responseParkingId.map { Event(it) }
private val _responseCode by lazy { MutableLiveData<Int?>() }
val responseCode: LiveData<Int?> = _responseCode
val loadResponseCode: LiveData<Event<Int?>> = _responseCode.map { Event(it) }
fun shelvings(vShelvingFK: String) { fun shelvings(vShelvingFK: String) {
salix.shelvingsGet("""{"where": {"code": "$vShelvingFK"}}""").enqueue(object : salix.shelvingsGet("""{"where": {"code": "$vShelvingFK"}}""").enqueue(object :
@ -41,13 +46,26 @@ class ShelvingLogViewModel(val context: Context) : BaseViewModel(context) {
.enqueue(object : .enqueue(object :
SalixCallback<List<JsonObject>>(context) { SalixCallback<List<JsonObject>>(context) {
override fun onSuccess(response: Response<List<JsonObject>>) { override fun onSuccess(response: Response<List<JsonObject>>) {
_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<Int?>(context) {
override fun onSuccess(response: Response<Int?>) {
_responseCode.value = response.body() ?: -1
}
})
}
} }

View File

@ -40,8 +40,10 @@ data class DeviceLogSalix(
val versionApp: String, val versionApp: String,
val serialNumber: String? val serialNumber: String?
) )
enum class LogType { enum class LogType {
SHELVING, SHELVING,
PREVIOUS, PREVIOUS,
ITEMSHELVING
} }

View File

@ -82,27 +82,6 @@
</LinearLayout> </LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<Button
android:id="@+id/buttonMerienda"
style="@style/DefaultButton.DynamicButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_margin_min"
android:onClick="generateQr"
android:tag="5"
android:text="@string/snack"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/scan_input" />
</LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -138,6 +117,27 @@
</LinearLayout> </LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<Button
android:id="@+id/buttonMerienda"
style="@style/DefaultButton.DynamicButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_margin_min"
android:onClick="generateQr"
android:tag="5"
android:text="@string/snack"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/scan_input" />
</LinearLayout>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout

View File

@ -358,7 +358,7 @@
<string name="titleQrReader">Lector Qr</string> <string name="titleQrReader">Lector Qr</string>
<string name="titleBufferOff">Desactivado buffer</string> <string name="titleBufferOff">Desactivado buffer</string>
<string name="titlePreControl">Pre Control</string> <string name="titlePreControl">Pre Control</string>
<string name="titleShelvingHistorical">Histórico ítems del carro</string> <string name="titleShelvingHistorical">Histórico ítems del carro Viejo</string>
<string name="titleLogShelving">Histórico del carro</string> <string name="titleLogShelving">Histórico del carro</string>
<string name="itemScanetNotFound">Elemento escaneado no encontrado </string> <string name="itemScanetNotFound">Elemento escaneado no encontrado </string>
<string name="NotOrderReplacement">No existen pedidos para reponer</string> <string name="NotOrderReplacement">No existen pedidos para reponer</string>
@ -911,6 +911,8 @@
<string name="entrySearch">Escribe entrada</string> <string name="entrySearch">Escribe entrada</string>
<string name="snack">Merienda</string> <string name="snack">Merienda</string>
<string name="register">Registro:</string> <string name="register">Registro:</string>
<string name="titleShelvingHistNew">Histórico ítems del carro</string>
<string name="ubicatorNew">ubicador nuevo</string>
</resources> </resources>

View File

@ -358,7 +358,7 @@
<string name="titleQrReader">Lector Qr</string> <string name="titleQrReader">Lector Qr</string>
<string name="titleBufferOff">Desactivado buffer</string> <string name="titleBufferOff">Desactivado buffer</string>
<string name="titlePreControl">Pre Control</string> <string name="titlePreControl">Pre Control</string>
<string name="titleShelvingHistorical">Histórico ítems del carro</string> <string name="titleShelvingHistorical">Histórico ítems del carro Viejo</string>
<string name="titleLogShelving">Histórico del carro</string> <string name="titleLogShelving">Histórico del carro</string>
<string name="itemScanetNotFound">Elemento escaneado no encontrado </string> <string name="itemScanetNotFound">Elemento escaneado no encontrado </string>
<string name="NotOrderReplacement">No existen pedidos para reponer</string> <string name="NotOrderReplacement">No existen pedidos para reponer</string>
@ -911,5 +911,7 @@
<string name="entrySearch">Escribe entrada</string> <string name="entrySearch">Escribe entrada</string>
<string name="snack">Merienda</string> <string name="snack">Merienda</string>
<string name="register">Registro:</string> <string name="register">Registro:</string>
<string name="titleShelvingHistNew">Histórico ítems del carro</string>
<string name="ubicatorNew">ubicador nuevo</string>
</resources> </resources>

View File

@ -358,7 +358,7 @@
<string name="titleQrReader">Lector Qr</string> <string name="titleQrReader">Lector Qr</string>
<string name="titleBufferOff">Desactivado buffer</string> <string name="titleBufferOff">Desactivado buffer</string>
<string name="titlePreControl">Pre Control</string> <string name="titlePreControl">Pre Control</string>
<string name="titleShelvingHistorical">Histórico ítems del carro</string> <string name="titleShelvingHistorical">Histórico ítems del carro Viejo</string>
<string name="titleLogShelving">Histórico del carro</string> <string name="titleLogShelving">Histórico del carro</string>
<string name="itemScanetNotFound">Elemento escaneado no encontrado </string> <string name="itemScanetNotFound">Elemento escaneado no encontrado </string>
<string name="NotOrderReplacement">No existen pedidos para reponer</string> <string name="NotOrderReplacement">No existen pedidos para reponer</string>
@ -911,5 +911,7 @@
<string name="entrySearch">Escribe entrada</string> <string name="entrySearch">Escribe entrada</string>
<string name="snack">Merienda</string> <string name="snack">Merienda</string>
<string name="register">Registro:</string> <string name="register">Registro:</string>
<string name="titleShelvingHistNew">Histórico ítems del carro</string>
<string name="ubicatorNew">ubicador nuevo</string>
</resources> </resources>

View File

@ -914,5 +914,7 @@
<string name="entrySearch">Escribe entrada</string> <string name="entrySearch">Escribe entrada</string>
<string name="snack">Merienda</string> <string name="snack">Merienda</string>
<string name="register">Registro:</string> <string name="register">Registro:</string>
<string name="titleShelvingHistNew">Histórico ítems del carro</string>
<string name="ubicatorNew">ubicador nuevo</string>
</resources> </resources>