From 19adf86f9f17fa13b4c14c8b2d35b756ef79541e Mon Sep 17 00:00:00 2001 From: Sergio De la torre Date: Thu, 12 Dec 2024 16:55:08 +0100 Subject: [PATCH] feat: refs #6845 userIterface --- .../fragment/CollectionCheckerViewModel.kt | 14 +- .../fragment/CollectionFragmentChecker.kt | 166 ++++++++++++------ 2 files changed, 124 insertions(+), 56 deletions(-) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionCheckerViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionCheckerViewModel.kt index 77ad2c28..6ffa715b 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionCheckerViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionCheckerViewModel.kt @@ -53,6 +53,10 @@ class CollectionCheckerViewModel(val context: Context) : BaseViewModel(context) val responseTicketState: LiveData = _responseTicketState val loadTicketState: LiveData> = _responseTicketState.map { Event(it) } + private val _responseTicketSetState by lazy { MutableLiveData() } + val responseTicketSetState: LiveData = _responseTicketSetState + val loadTicketSetState: LiveData> = _responseTicketSetState.map { Event(it) } + private val _responseTicketIsPickup by lazy { MutableLiveData() } val responseTicketIsPickup: LiveData = _responseTicketIsPickup val loadTicketIsPickup: LiveData> = _responseTicketIsPickup.map { Event(it) } @@ -70,9 +74,9 @@ class CollectionCheckerViewModel(val context: Context) : BaseViewModel(context) val responseNew: LiveData = _responseNew val loadAddNew: LiveData> = _responseNew.map { Event(it) } - private val _responseIncQuantity by lazy { MutableLiveData() } - val responseIncQuantity: LiveData = _responseIncQuantity - val loadIncQuantity: LiveData> = _responseIncQuantity.map { Event(it) } + private val _responseIncQuantity by lazy { MutableLiveData() } + val responseIncQuantity: LiveData = _responseIncQuantity + val loadIncQuantity: LiveData> = _responseIncQuantity.map { Event(it) } private val _responseParking by lazy { MutableLiveData() } val responseParking: LiveData = _responseParking @@ -217,7 +221,7 @@ class CollectionCheckerViewModel(val context: Context) : BaseViewModel(context) salix.ticketStateTodaySetState(arrayListOf(ticketFk, state).formatWithQuotes()) .enqueue(object : SalixCallback(context) { override fun onSuccess(response: Response) { - _responseTicketState.value = TicketState() + _responseTicketSetState.value = TicketState(code = state, ticketFk = ticketFk) super.onSuccess(response) } }) @@ -232,7 +236,7 @@ class CollectionCheckerViewModel(val context: Context) : BaseViewModel(context) override fun onSuccess(response: Response) { super.onSuccess(response) - _responseIncQuantity.value = true + _responseIncQuantity.value = saleFk } }) } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragmentChecker.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragmentChecker.kt index 2dcd4c1f..6549f434 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragmentChecker.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragmentChecker.kt @@ -107,6 +107,7 @@ class CollectionFragmentChecker( override fun onResume() { super.onResume() scanRequest() + viewModel.setPausedState(false) } override fun init() { @@ -172,19 +173,18 @@ class CollectionFragmentChecker( binding.mainToolbar.toolbarIcons.adapter = ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener { override fun onOptionsItemSelected(item: Drawable) { - if (collection.tickets.isNotEmpty()) - when (item) { - iconViewCollection.drawable -> getCollection() - iconPrint.drawable -> print() - iconAdd.drawable -> addItem() - iconWorker.drawable -> showUser() - iconUpdate.drawable -> updateScreen() - iconParking.drawable -> pasillerosItemClickListener?.onPasillerosItemClickListener( - PasillerosItemVO( - title = R.string.Parking - ), "" - ) - } + if (collection.tickets.isNotEmpty()) when (item) { + iconViewCollection.drawable -> getCollection() + iconPrint.drawable -> print() + iconAdd.drawable -> addItem() + iconWorker.drawable -> showUser() + iconUpdate.drawable -> updateScreen() + iconParking.drawable -> pasillerosItemClickListener?.onPasillerosItemClickListener( + PasillerosItemVO( + title = R.string.Parking + ), "" + ) + } } }) @@ -237,8 +237,6 @@ class CollectionFragmentChecker( } private fun takeActionPrevia(customDialogList: CustomDialogList) { - println("previaaaa ${customDialogList.getValue()}") - ma.hideKeyboard(customDialogList.getEditText()) try { val saleGroupScanned = itemScanValue( @@ -383,13 +381,11 @@ class CollectionFragmentChecker( customDialogWarning.setTitle(getString(R.string.ticketPickup)) customDialogWarning.setDescription( getString( - R.string.ticketPickupDescr, - binding.mainToolbar.toolbarTitle.text + R.string.ticketPickupDescr, binding.mainToolbar.toolbarTitle.text ) - ) - .setOkButton(getString(R.string.aware)) { - customDialogWarning.dismiss() - } + ).setOkButton(getString(R.string.aware)) { + customDialogWarning.dismiss() + } customDialogWarning.show() } @@ -399,13 +395,20 @@ class CollectionFragmentChecker( event.getContentIfNotHandled().notNull { context.showToastCenterWithBackground( getString( - R.string.parkingIn, - ticketScanTxt + R.string.parkingIn, ticketScanTxt ) ) } } + loadTicketSetState.observe(viewLifecycleOwner) { event -> + event.getContentIfNotHandled().notNull { + "${it.ticketFk}: ${if (it.code == "CHECKED") "Revisado" else "Revisando"}".toast( + requireContext() + ) + } + } + loadPrint.observe(viewLifecycleOwner) { event -> event.getContentIfNotHandled().notNull { (getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey( @@ -469,7 +472,7 @@ class CollectionFragmentChecker( loadIncQuantity.observe(viewLifecycleOwner) { event -> event.getContentIfNotHandled().notNull { - incresaseSuccesful() + incresaseSuccesful(it) } } @@ -566,15 +569,23 @@ class CollectionFragmentChecker( compareBy({ it.isControlled }, { it.picked }) )*/ - saleAdapter = SaleAdapter( - myGroupList as MutableList, + saleAdapter = SaleAdapter(myGroupList as MutableList, pasillerosItemClickListener!!, object : OnQuantityClickListener { override fun onQuantityClick(sale: SaleVO) { myGroupList.forEachIndexed { index, saleVO -> - if (saleVO.saleFk == sale.saleFk) { - showQuantityDialog(index) + + if (saleVO.isParent) { + saleVO.sonSales.forEachIndexed { indexSon, saleV0 -> + if (saleV0.saleFk == sale.saleFk) { + showQuantityDialogBySale(saleV0.saleFk) + } + } + } else { + if (saleVO.saleFk == sale.saleFk) { + showQuantityDialog(index) + } } } @@ -638,8 +649,7 @@ class CollectionFragmentChecker( } } - } - ) + }) lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) binding.fragmentSacadorCollections.adapter = saleAdapter @@ -993,7 +1003,6 @@ class CollectionFragmentChecker( if (totalMark == sales.size) { getString(R.string.completCollection).toast(this.context, Toast.LENGTH_SHORT) // saleAdapter!!.notifyDataSetChanged() - if (canChangeState) changeTicketState() } else { if (allTicketsChecked) { @@ -1011,8 +1020,7 @@ class CollectionFragmentChecker( val ticketFk = sale.ticketFk.toInt() if (sale.isControlled == "0" && ticketFk !in processedTickets) { viewModel.ticketStateTodaySetState( - ticketFk = ticketFk, - state = "ON_CHECKING" + ticketFk = ticketFk, state = "ON_CHECKING" ) processedTickets.add(ticketFk) } @@ -1022,7 +1030,37 @@ class CollectionFragmentChecker( } } + private fun showQuantityDialogBySale(saleFk: Int) { + + try { + + customDialogThreeButtons.setDescription(getString(R.string.itemSaleQuantity)) + .setValue("").setOkButtonAdd(getString(R.string.modify)) { + try { + increaseQuantityBySale(saleFk, customDialogThreeButtons.getValue().toInt()) + scanRequest() + customDialogThreeButtons.dismiss() + } catch (ex: Exception) { + ma.messageWithSound( + message = getString(R.string.errorInputQuantity), + isPlayed = true, + isError = true, + isToasted = true + ) + } + + }.setKoButton(getString(R.string.cancel)) { + scanRequest() + customDialogThreeButtons.dismiss() + }.show() + customDialogThreeButtons.setFocusDialogValue() + } catch (ex: Exception) { + getString(R.string.errorInput).toast(requireContext()) + } + } + private fun showQuantityDialog(position: Int) { + try { customDialogThreeButtons.setDescription(getString(R.string.itemSaleQuantity)) @@ -1050,22 +1088,51 @@ class CollectionFragmentChecker( } } - private fun incresaseSuccesful() { - try { - sales[positionIncreaseQuantity].quantity = quantityIncrease + private fun incresaseSuccesful(saleFk: Number) { + // updateScreen() + try { + // if (myGroupList[positionIncreaseQuantity].isParent) { + //updateScreen() + for ((parentIndex, listItem) in myGroupList.withIndex()) { + + if (listItem.isParent) { + for ((childIndex, listItemSon) in listItem.sonSales.withIndex()) { + if (listItemSon.saleFk == saleFk) { + myGroupList[parentIndex].sonSales[childIndex].quantity = + quantityIncrease + saleAdapter?.notifyDataSetChanged() + break + } + } + } else { + if (myGroupList[parentIndex].saleFk == saleFk) myGroupList[parentIndex].quantity = + quantityIncrease + break + } + }/* } else { + myGroupList[positionIncreaseQuantity].quantity = quantityIncrease + saleAdapter?.notifyDataSetChanged() + }*/ } catch (e: Exception) { e.message!!.toast(requireContext()) } - saleAdapter?.notifyDataSetChanged() - sales[positionIncreaseQuantity].originalQuantity = quantityIncrease + } private fun increaseQuantity(position: Int, quantity: Int) { positionIncreaseQuantity = position quantityIncrease = quantity viewModel.collectionIncreaseQuantitySalix( - saleFk = sales[position].saleFk, quantity = quantity.toString() + saleFk = myGroupList[position].saleFk, quantity = quantity.toString() + ) + + } + + private fun increaseQuantityBySale(saleFk: Int, quantity: Int) { + quantityIncrease = quantity + viewModel.collectionIncreaseQuantitySalix( + saleFk, quantity = quantity.toString() ) } @@ -1096,17 +1163,14 @@ class CollectionFragmentChecker( } if (isTicket) { val labelDialogHelper = LabelDialogHelper(requireContext()) - labelDialogHelper.showLabelDialog( - onItemSelected = { labelCount -> - viewModel.collectionStickerPrint( - collectionFk = collection.collectionFk, - labelCount = labelCount - ) - val printerName = - mobileApplication.dataStoreApp.readDataStoreKey(PRINTERNAME) - (getString(R.string.Imprimiendo) + printerName).toast(requireContext()) - } - ) + labelDialogHelper.showLabelDialog(onItemSelected = { labelCount -> + viewModel.collectionStickerPrint( + collectionFk = collection.collectionFk, labelCount = labelCount + ) + val printerName = + mobileApplication.dataStoreApp.readDataStoreKey(PRINTERNAME) + (getString(R.string.Imprimiendo) + printerName).toast(requireContext()) + }) } else { viewModel.collectionStickerPrint( @@ -1175,7 +1239,7 @@ class CollectionFragmentChecker( originalQuantity = null, quantity = null, rgb = null, - saleFk = value[0].saleFk, + saleFk = 0, saleGroupFk = value[0].saleGroupFk, isPreControlled = value[0].isPreControlled, isPrepared = value[0].isPrepared,