From 16b84ce2ecf7c14f3ff84e1d33fbcd80be3a46a0 Mon Sep 17 00:00:00 2001 From: Sergio De la torre Date: Fri, 7 Mar 2025 09:17:29 +0100 Subject: [PATCH] feat: refs#7823 selectPrinterFreely --- .../verdnatura/domain/userCases/UserCases.kt | 9 + .../common/PrinterDialogManager.kt | 34 +++- .../view/commom/SearchableAdapter.kt | 10 +- .../view/component/CustomDialogList.kt | 7 + .../ajustes/fragment/AjustesFragment.kt | 172 +++++++++++++----- .../ajustes/fragment/AjustesViewModel.kt | 4 + .../articulo/fragment/ItemCardFragment.kt | 31 +++- .../articulo/fragment/ItemCardViewModel.kt | 10 + .../ubicador/fragment/UbicadorFragment.kt | 89 +++++---- .../ubicador/fragment/UbicadorViewModel.kt | 9 + .../layout/component_custom_list_dialog.xml | 9 + 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 | 4 + 15 files changed, 320 insertions(+), 80 deletions(-) diff --git a/app/src/main/java/es/verdnatura/domain/userCases/UserCases.kt b/app/src/main/java/es/verdnatura/domain/userCases/UserCases.kt index 4d52f390..16982e23 100644 --- a/app/src/main/java/es/verdnatura/domain/userCases/UserCases.kt +++ b/app/src/main/java/es/verdnatura/domain/userCases/UserCases.kt @@ -31,4 +31,13 @@ class WorkerActivityUseCase(private val salixService: SalixService) { fun addWorkerActivity(workerActionSalix: WorkerActionSalix): Call { return salixService.workerActivityAdd(workerActionSalix) } +} + +class OperatorUseCase(private val salixService: SalixService) { + fun updateOperator(workerFk: Number, update: HashMap): Call { + return salixService.updateOperator( + id = workerFk, + params = update + ) + } } \ No newline at end of file diff --git a/app/src/main/java/es/verdnatura/presentation/common/PrinterDialogManager.kt b/app/src/main/java/es/verdnatura/presentation/common/PrinterDialogManager.kt index 84b6f52b..3b5b260f 100644 --- a/app/src/main/java/es/verdnatura/presentation/common/PrinterDialogManager.kt +++ b/app/src/main/java/es/verdnatura/presentation/common/PrinterDialogManager.kt @@ -4,13 +4,18 @@ import android.app.AlertDialog import android.content.Context import android.text.InputType import android.view.View +import android.view.inputmethod.EditorInfo import es.verdnatura.R import es.verdnatura.domain.toast +import es.verdnatura.presentation.view.component.CustomDialogInput import es.verdnatura.presentation.view.component.CustomDialogList class PrinterDialogManager(private val context: Context) { fun showPrintDialog( - item: Long, itemName: String, onPrintClick: (Long, String, Int?, Int) -> Unit + item: Long, + itemName: String, + onPrintClick: (Long, String, Int?, Int) -> Unit, + onPrintChange: (String) -> Unit ) { val customDialogList = CustomDialogList(context) customDialogList.getEditText().setRawInputType(InputType.TYPE_CLASS_NUMBER) @@ -23,7 +28,9 @@ class PrinterDialogManager(private val context: Context) { }.setOkTwoButton(context.getString(R.string.printBarcode)) { handlePrintClick(item, customDialogList, onPrintClick, "barcode") customDialogList.dismiss() - + //Tarea 7823 + /*}.setOkThreeButton(context.getString(R.string.changePrinter)) { + readQrPrinter(onPrintChange)*/ }.setKoButton(context.getString(R.string.cancel)) { customDialogList.dismiss() }.setHintValueThree(context.getString(R.string.labelNumber)) @@ -32,6 +39,29 @@ class PrinterDialogManager(private val context: Context) { customDialogList.getFocusThree() } + private fun readQrPrinter(onPrintChange: (String) -> Unit) { + val customDialogInput = CustomDialogInput(context) + + customDialogInput.setTitle(context.getString(R.string.changePrinter)) + .setDescription(context.getString(R.string.scanQrPrinter)) + .setOkButton(context.getString(R.string.save)) { + onPrintChange(customDialogInput.getValue()) + customDialogInput.dismiss() + + }.setKoButton(context.getString(R.string.cancel)) { + customDialogInput.dismiss() + }.setValue("").show() + customDialogInput.getEditText().requestFocus() + customDialogInput.getEditText().setOnEditorActionListener { _, actionId, _ -> + if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) { + onPrintChange(customDialogInput.getValue()) + customDialogInput.dismiss() + return@setOnEditorActionListener true + } + false + } + } + private fun handlePrintClick( item: Long, customDialogList: CustomDialogList, diff --git a/app/src/main/java/es/verdnatura/presentation/view/commom/SearchableAdapter.kt b/app/src/main/java/es/verdnatura/presentation/view/commom/SearchableAdapter.kt index eb9bdf47..561e7def 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/commom/SearchableAdapter.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/commom/SearchableAdapter.kt @@ -16,7 +16,8 @@ import es.verdnatura.domain.toast class SearchableAdapter( private var listElements: MutableList, private var context: Context, - private val onItemClick: (NameWithId) -> Unit, + private val listColorElements: List = listOf(), + private val onItemClick: (NameWithId) -> Unit ) : RecyclerView.Adapter() { private var listElementsFiltered = listElements.toMutableList() @@ -48,6 +49,13 @@ class SearchableAdapter( } catch (ex: Exception) { ex.message?.toast(context) } + if (listColorElements.isNotEmpty()) { + if (nameWithId.id in listColorElements) { + nameText.setTextColor(Color.BLACK) + } else { + nameText.setTextColor(Color.GRAY) + } + } } } diff --git a/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogList.kt b/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogList.kt index 94b41569..2b1ce6fa 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogList.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogList.kt @@ -96,6 +96,13 @@ class CustomDialogList(context: Context) : Dialog(context, R.style.DialogTheme) return this } + fun setOkThreeButton(text: String, onButtonClicked: () -> Unit): CustomDialogList { + binding.customDialogButtonOkThree.visibility = View.VISIBLE + binding.customDialogButtonOkThree.text = text + binding.customDialogButtonOkThree.setOnClickListener { onButtonClicked() } + return this + } + fun setKoButton(text: String, onButtonClicked: () -> Unit): CustomDialogList { binding.customDialogButtonKo.visibility = View.VISIBLE binding.customDialogButtonKo.text = text diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt index 1d3548f7..0389436a 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt @@ -1,5 +1,6 @@ package es.verdnatura.presentation.view.feature.ajustes.fragment +import android.annotation.SuppressLint import android.app.AlertDialog import android.content.Intent import android.content.pm.PackageInfo @@ -86,46 +87,77 @@ class AjustesFragment : super.init() } - private fun setSearchable(listNames: MutableList) { + private fun setSearchable( + listNames: MutableList, + type: String = "sector", + listColorsElements: List = listOf() + ) { val adapter = SearchableAdapter( listElements = listNames, - context = requireContext() + context = requireContext(), + listColorElements = listColorsElements, ) { elementSelected -> - sectorListVO.forEach { - if (it.id == elementSelected.id) { - runBlocking { - mobileApplication.dataStoreApp.editDataStoreKey( - PRINTERNAME, getString(R.string.noprinter) - ) - mobileApplication.dataStoreApp.editDataStoreKey(PRINTERFK, -1) - mobileApplication.dataStoreApp.editDataStoreKey( - SECTORDESCRIP, it.description - ) - mobileApplication.dataStoreApp.editDataStoreKey( - SECTORFK, it.id - ) - it.warehouseFk?.let { it1 -> - mobileApplication.dataStoreApp.editDataStoreKey( - WAREHOUSEFK, it1 + when (type) { + "sector" -> { + sectorListVO.forEach { + if (it.id == elementSelected.id) { + runBlocking { + mobileApplication.dataStoreApp.editDataStoreKey( + PRINTERNAME, getString(R.string.noprinter) + ) + mobileApplication.dataStoreApp.editDataStoreKey(PRINTERFK, -1) + mobileApplication.dataStoreApp.editDataStoreKey( + SECTORDESCRIP, it.description + ) + mobileApplication.dataStoreApp.editDataStoreKey( + SECTORFK, it.id + ) + it.warehouseFk?.let { it1 -> + mobileApplication.dataStoreApp.editDataStoreKey( + WAREHOUSEFK, it1 + ) + } + } + viewModel.settingsItem[0].sectorFk = it.id + viewModel.settingsItem[0].selected = it.description + viewModel.workerUpdateOperatorSalix( + "sector", mobileApplication.userId!!, it.id, null ) + settingsAdapter!!.notifyItemChanged(0) + return@forEach } } - viewModel.settingsItem[0].sectorFk = it.id - viewModel.settingsItem[0].selected = it.description - viewModel.workerUpdateOperatorSalix( - "sector", mobileApplication.userId!!, it.id, null - ) - settingsAdapter!!.notifyItemChanged(0) - return@forEach + } + + "printer" -> { + println("selected $elementSelected") + val printer = printersList.find { it.name == elementSelected.name } + println("selected printer $elementSelected") + if (printer != null) { + if (printer.sector?.backupPrinterFk == printer.id) { + showWarningPrinter(printer.name, printer.id) + } else { + savePrinter(printer.name, printer.id) + } + } + printersList.clear() } } + val searchView = + binding.searchableRecyclerView.findViewById( + R.id.search_view + ) + searchView?.setQuery("", false) binding.searchableRecyclerView.visibility = View.GONE } binding.searchableRecyclerView.setAdapter(adapter, listNames) binding.searchableRecyclerView.visibility = View.VISIBLE - binding.searchableRecyclerView.setSearchHint(getString(R.string.sectorSearch)) + binding.searchableRecyclerView.setSearchHint( + if (type == "sector") getString(R.string.sectorSearch) else + getString(R.string.printerSearch) + ) ma.hideKeyboard(binding.searchableRecyclerView) } @@ -148,7 +180,7 @@ class AjustesFragment : listIcons.add(iconInfo) listIcons.add(iconLogout) // listIcons.add(iconPhone) - // listIcons.add(iconSettings) + //listIcons.add(iconSettings) binding.mainToolbar.toolbarIcons.adapter = ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener { @@ -216,13 +248,20 @@ class AjustesFragment : "phoneNumber", "sip:651353889@pbx.verdnatura.es" ) + /* intentIncoming.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT) startActivity(intentIncoming)*/ val intent = Intent("org.linphone.CALLING") + intent.setClassName( + "org.linphone.incomingcall", + "org.linphone.incomingcall.IncomingCallActivity" + ) intent.putExtra("server", "pbx.verdnatura.es") intent.putExtra("username", "1007") - intent.putExtra("password", "delatorre.1234") + intent.putExtra("password", "*******") intent.putExtra("phoneNumber", "sip:651353889@pbx.verdnatura.es") + intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT) + startActivity(intent) requireContext().sendBroadcast(intent) } @@ -375,20 +414,53 @@ class AjustesFragment : } } loadPrintersList.observe(viewLifecycleOwner) { event -> - event.getContentIfNotHandled().notNull { it -> + event.getContentIfNotHandled()?.let { it -> if (it.list.isNotEmpty()) { val listPrinters: ArrayList = ArrayList() - it.list.forEach { - listPrinters.add(it.name) + printersList.clear() + + + printersList.addAll(it.list.sortedWith(compareBy( + { printer -> + when { + printer.sector?.id == mobileApplication.dataStoreApp.readDataStoreKey( + SECTORFK + ) -> 0 + + printer.sector?.id != null -> 1 + else -> 2 + } + }, + { printer -> printer.name } + ))) + + printersList.forEach { printer -> + listPrinters.add(printer.name) } + val array = arrayOfNulls(listPrinters.size) - printersList = it.list showDialogForAll(listPrinters.toArray(array), messagePrinter ?: "") + //Tarea7823 + /* val listColorsElements = printersList.mapIndexed { _, printer -> + if (printer.sector?.id == mobileApplication.dataStoreApp.readDataStoreKey( + SECTORFK + ) + ) printer.id else null + }.filterNotNull() + + setSearchable(printersList.map { + NameWithId( + id = it.id, + name = it.name + ) + } as MutableList, + type = "printer", + listColorsElements = listColorsElements)*/ } else { viewModel.settingsItem[2].selected = getString(R.string.noprinter) - settingsAdapter!!.notifyItemChanged(2) + settingsAdapter?.notifyItemChanged(2) customDialog.setTitle(getString(R.string.printers)) .setDescription(getString(R.string.Noprinters)) .setOkButton(getString(R.string.Close)) { @@ -396,7 +468,6 @@ class AjustesFragment : handleUserCall() }.show() } - } } loadTrainList.observe(viewLifecycleOwner) { event -> @@ -421,14 +492,19 @@ class AjustesFragment : super.observeViewModel() } + @SuppressLint("NotifyDataSetChanged") private fun getUserData() { loginViewModel = LoginViewModel(requireActivity().applicationContext) handleUserCall() loginViewModel.handleUserResponse.observe(this@AjustesFragment) { iti -> - runBlocking { mobileApplication.dataStoreApp.saveWorkerData(iti) } + runBlocking { + mobileApplication.dataStoreApp.saveWorkerData(iti) + setSettings() + binding.setttingsItems.adapter!!.notifyDataSetChanged() + } } - setSettings() + } private fun handleUserCall() { @@ -496,12 +572,26 @@ class AjustesFragment : val positionPrinterEmergency = printersList.indexOfFirst { printer -> printer.sector?.backupPrinterFk == printer.id } - if (position == positionPrinterEmergency) { - textView.setTextColor(Color.RED) - } else { - textView.setTextColor(Color.BLACK) - } + val positions = printersList.mapIndexed { index, printer -> + if (printer.sector?.id == mobileApplication.dataStoreApp.readDataStoreKey( + SECTORFK + ) + ) index else null + }.filterNotNull() + when (position) { + positionPrinterEmergency -> { + textView.setTextColor(Color.RED) + } + + in positions -> { + textView.setTextColor(Color.BLACK) + } + + else -> { + textView.setTextColor(Color.GRAY) + } + } return view } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt index 8ac8ca71..da91313a 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt @@ -160,6 +160,10 @@ class AjustesViewModel(val context: Context) : BaseViewModel(context) { salix.getprinters( """{"fields":["id","name","sectorFk"],"where":{"sectorFk":$sectorFk,"isLabeler":{"neq":false}},"include": [ { "relation": "sector", "scope": { "fields": ["backupPrinterFk"]}}]}""" ).enqueue(object : SalixCallback>(context) { + //Tarea 7823 + /* salix.getprinters( + """{"fields":["id","name","sectorFk"],"where":{"isLabeler":{"neq":false}},"include": [ { "relation": "sector", "scope": { "fields": ["backupPrinterFk"]}}]}""" + ).enqueue(object : SalixCallback>(context) {*/ override fun onSuccess(response: Response>) { _printerList.value = response.body()?.let { PrintersList(it) } } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardFragment.kt index 1633c35d..f9462c87 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardFragment.kt @@ -25,6 +25,7 @@ import es.verdnatura.presentation.common.OnOptionsSelectedListener import es.verdnatura.presentation.common.PrinterDialogManager import es.verdnatura.presentation.common.ToolBarAdapterTooltip import es.verdnatura.presentation.common.hideKeyboard +import es.verdnatura.presentation.common.itemScanIsQr import es.verdnatura.presentation.common.itemScanValue import es.verdnatura.presentation.common.loadUrl import es.verdnatura.presentation.composable.ImageViewActivityComposable @@ -133,10 +134,30 @@ class ItemCardFragment( val printerDialogManager = PrinterDialogManager(requireContext()) printerDialogManager.showPrintDialog( buyToPrint ?: itemInfoG!!.id.toLong(), - itemInfoG?.longName ?: "" - ) { id, labelType, copies, packing -> - printItem(id, labelType, copies, packing) - } + itemInfoG?.longName ?: "", + onPrintClick = { id, labelType, copies, packing -> + printItem(id, labelType, copies, packing) + }, + onPrintChange = { text -> + if (itemScanIsQr(text)) { + + viewModel.operatorUpdate( + workerFk = mobileApplication.userId!!, + labelerFK = itemScanValue( + text, + arrayOf("printer"), + "id" + ).toString().toLong() + ) + } else { + ma.messageWithSound( + getString(R.string.qrPrinterNotvalid), + isPlayed = true, + isError = true, + isToasted = false + ) + } + }) } else ma.messageWithSound( getString(R.string.errorPrintBuy), isError = true, @@ -273,7 +294,7 @@ class ItemCardFragment( } binding.itemcardImage.setOnClickListener { - //JETPACKCOMPOSE + //JETPACKCOMPOSE // val i = Intent(activity, ImageViewActivity::class.java) val i = Intent(activity, ImageViewActivityComposable::class.java) i.putExtra(getString(R.string.url), urlLarge) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardViewModel.kt index 55789b6e..c916c233 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardViewModel.kt @@ -8,6 +8,7 @@ import es.verdnatura.domain.SalixCallback import es.verdnatura.domain.formatWithQuotes import es.verdnatura.domain.userCases.GetItemFromBarcodeUseCase import es.verdnatura.domain.userCases.GetItemPrintItemUseCase +import es.verdnatura.domain.userCases.OperatorUseCase import es.verdnatura.presentation.base.BaseViewModel import es.verdnatura.presentation.common.Event import es.verdnatura.presentation.common.ItemBarCodeSalix @@ -27,6 +28,7 @@ class ItemCardViewModel(var context: Context) : BaseViewModel(context) { private val getItemFromBarcodeUseCase = GetItemFromBarcodeUseCase(salix) private val printItemUseCase = GetItemPrintItemUseCase(salix) + private val operatorUseCase = OperatorUseCase(salix) private val _itemCard by lazy { MutableLiveData() } val itemCard: LiveData @@ -69,6 +71,14 @@ class ItemCardViewModel(var context: Context) : BaseViewModel(context) { }) } + fun operatorUpdate(workerFk: Number, labelerFK: Number) { + + operatorUseCase.updateOperator(workerFk = workerFk, hashMapOf("labelerFk" to labelerFK)) + .enqueue(object : SalixCallback(context) { + + }) + } + fun printItem( reportName: String, printerFk: Int, diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorFragment.kt index 6a356cb2..56d08240 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorFragment.kt @@ -37,6 +37,7 @@ import es.verdnatura.presentation.common.OnVisibleClickListener6869 import es.verdnatura.presentation.common.PrinterDialogManager import es.verdnatura.presentation.common.ToolBarAdapterTooltip import es.verdnatura.presentation.common.hideKeyboard +import es.verdnatura.presentation.common.itemScanIsQr import es.verdnatura.presentation.common.itemScanValue import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialogInput @@ -650,8 +651,11 @@ class UbicadorFragment : BaseFragment item.itemCreated!!.contains("old", ignoreCase = true) + }.distinctBy { item -> + "${item.itemFk}:${item.code}:${item.parkingFk}" }.map { item -> val itemFk = item.itemFk val shelvingFk = item.code @@ -663,10 +667,12 @@ class UbicadorFragment : BaseFragment item.itemCreated!!.contains("new", ignoreCase = true) + }.distinctBy { item -> + "${item.itemFk}:${item.code}:${item.parkingFk}" }.map { item -> val itemFk = item.itemFk val shelvingFk = item.code @@ -678,7 +684,7 @@ class UbicadorFragment : BaseFragment + item.item.id, + item.description ?: "", + onPrintClick = { id, labelType, packing, copies -> - if (item.buyFk == null) { - viewModel.buyUltimate( - itemFk = item.id, - warehouseFk = mobileApplication.dataStoreApp.readDataStoreKey( - WAREHOUSEFK - ), - dated = LocalDate.now().format( - DateTimeFormatter.ofPattern("yyyy-dd-MM") - ), - reportName = "LabelBuy", - printerFk = mobileApplication.dataStoreApp.readDataStoreKey( - ConstAndValues.PRINTERFK - ), - userFk = mobileApplication.userId!!, - priority = "normal", - copies = copies, - labelType = labelType, - packing = packing - ) - customDialogTwoButtons.dismiss() - } else { - printItem( - item.buyFk, labelType, packing, copies - ) - customDialogTwoButtons.dismiss() - } - } + if (item.buyFk == null) { + viewModel.buyUltimate( + itemFk = item.id, + warehouseFk = mobileApplication.dataStoreApp.readDataStoreKey( + WAREHOUSEFK + ), + dated = LocalDate.now().format( + DateTimeFormatter.ofPattern("yyyy-dd-MM") + ), + reportName = "LabelBuy", + printerFk = mobileApplication.dataStoreApp.readDataStoreKey( + ConstAndValues.PRINTERFK + ), + userFk = mobileApplication.userId!!, + priority = "normal", + copies = copies, + labelType = labelType, + packing = packing + ) + customDialogTwoButtons.dismiss() + } else { + printItem( + item.buyFk, labelType, packing, copies + ) + customDialogTwoButtons.dismiss() + } + }, + onPrintChange = { text -> + if (itemScanIsQr(text)) { + viewModel.operatorUpdate( + workerFk = mobileApplication.userId!!, + labelerFK = itemScanValue( + text, + arrayOf("printer"), + "id" + ).toString().toLong() + ) + } else { + ma.messageWithSound( + getString(R.string.qrPrinterNotvalid), + isPlayed = true, + isError = true, + isToasted = false + ) + } + + }) customDialogInput.getEditText().requestFocus() } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorViewModel.kt index 43daa242..06743b13 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorViewModel.kt @@ -12,6 +12,7 @@ import es.verdnatura.domain.formatWithQuotes import es.verdnatura.domain.userCases.GetItemFromBarcodeUseCase import es.verdnatura.domain.userCases.GetItemPrintItemUseCase import es.verdnatura.domain.userCases.NotiticationUseCase +import es.verdnatura.domain.userCases.OperatorUseCase import es.verdnatura.presentation.base.BaseViewModel import es.verdnatura.presentation.common.Action import es.verdnatura.presentation.common.Event @@ -39,6 +40,7 @@ class UbicadorViewModel(val context: Context) : BaseViewModel(context) { private val getItemFromBarcodeUseCase = GetItemFromBarcodeUseCase(salix) private val printItemUseCase = GetItemPrintItemUseCase(salix) private val notificationUseCase = NotiticationUseCase(salix) + private val operatorUseCase = OperatorUseCase(salix) private val _responseUbicator by lazy { MutableLiveData() } val responseUbicator: LiveData @@ -711,4 +713,11 @@ class UbicadorViewModel(val context: Context) : BaseViewModel(context) { } + fun operatorUpdate(workerFk: Number, labelerFK: Number) { + + operatorUseCase.updateOperator(workerFk = workerFk, hashMapOf("labelerFk" to labelerFK)) + .enqueue(object : SalixCallback(context) { + + }) + } } diff --git a/app/src/main/res/layout/component_custom_list_dialog.xml b/app/src/main/res/layout/component_custom_list_dialog.xml index f532c281..ab6748e1 100644 --- a/app/src/main/res/layout/component_custom_list_dialog.xml +++ b/app/src/main/res/layout/component_custom_list_dialog.xml @@ -131,6 +131,15 @@ tools:text="@string/delete" tools:visibility="visible" /> +