feat: refs #6845 userIterface

This commit is contained in:
Sergio De la torre 2024-12-02 18:15:38 +01:00
parent 969660ae77
commit a1c01d1154
3 changed files with 90 additions and 2 deletions

View File

@ -121,7 +121,8 @@ class AjustesFragment :
binding.searchableRecyclerView.setAdapter(adapter, listNames)
binding.searchableRecyclerView.visibility = View.VISIBLE
binding.searchableRecyclerView.setSearchHintWithoutFocus(getString(R.string.sectorSearch))
binding.searchableRecyclerView.setSearchHint(getString(R.string.sectorSearch))
ma.hideKeyboard(binding.searchableRecyclerView)
}
private fun setToolBar() {

View File

@ -11,6 +11,7 @@ import es.verdnatura.R
import es.verdnatura.databinding.FragmentInventaryBinding
import es.verdnatura.domain.ConstAndValues.BUYER
import es.verdnatura.domain.ConstAndValues.BUYERID
import es.verdnatura.domain.ConstAndValues.ITEMPACKINGTYPEFILTER
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
@ -22,6 +23,7 @@ import es.verdnatura.presentation.view.commom.NameWithId
import es.verdnatura.presentation.view.commom.SearchableAdapter
import es.verdnatura.presentation.view.component.CustomDialogInput
import es.verdnatura.presentation.view.component.CustomDialogTwoButtons
import es.verdnatura.presentation.view.feature.calidad.model.Buyer
import es.verdnatura.presentation.view.feature.inventario.adapter.InventoryAdapter
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
@ -41,6 +43,8 @@ class InventaryFragment :
private var firstVisiblePosition = 0
private lateinit var itemClicked: ItemInventaryVO
private var buyerId: Number = -1
private var filterItemType: String? = null
private var myListBuyers = listOf<Buyer>()
companion object {
fun newInstance() = InventaryFragment()
@ -55,8 +59,12 @@ class InventaryFragment :
override fun init() {
viewModel.itemShelvingBuyerGet()
// viewModel.itemShelvingBuyerGet()
viewModel.itemShelvingBuyerGetByItemPacking()
binding.filterBuyer.text = mobileApplication.dataStoreApp.readDataStoreKey<String>((BUYER))
filterItemType =
mobileApplication.dataStoreApp.readDataStoreKey<String>((ITEMPACKINGTYPEFILTER))
binding.filterItemType.setText(filterItemType!!.firstOrNull()?.toString() ?: "").toString()
buyerId = mobileApplication.dataStoreApp.readDataStoreKey<Int>((BUYERID))
if (buyerId != -1) {
viewModel.getInventory(
@ -64,8 +72,26 @@ class InventaryFragment :
)
}
binding.filterBuyer.setOnClickListener {
val distinctPackingTypes = myListBuyers
.filter { filterItemType == getString(R.string.allText) || filterItemType == "" || it.itemPackingTypeFk == filterItemType }
.map {
NameWithId(
it.worker.user.id, it.worker.user.nickname
)
}
.distinct()
.sortedBy { it.name }
setSearchable(distinctPackingTypes as MutableList<NameWithId>)
binding.searchableRecyclerView.visibility = View.VISIBLE
binding.searchableRecyclerView.setSearchHint(getString(R.string.BuyerSearch))
ma.hideKeyboard(binding.searchableRecyclerView)
}
binding.filterItemType.setOnClickListener {
binding.searchableRecyclerViewItemType.visibility = View.VISIBLE
binding.searchableRecyclerViewItemType.setSearchHint(getString(R.string.selectItemType))
}
customDialogInput = CustomDialogInput(requireContext())
@ -106,6 +132,29 @@ class InventaryFragment :
}
private fun setSearchableItemPacking(listNames: MutableList<NameWithId>) {
val adapter =
SearchableAdapter(
listElements = listNames,
context = requireContext()
) { elementSelected ->
lifecycleScope.launch {
mobileApplication.dataStoreApp.editDataStoreKey(
ITEMPACKINGTYPEFILTER, elementSelected.name
)
}
binding.filterItemType.text = elementSelected.name.firstOrNull()?.toString() ?: ""
filterItemType = elementSelected.name
binding.searchableRecyclerViewItemType.visibility = View.GONE
}
binding.searchableRecyclerViewItemType.setAdapter(adapter, listNames)
}
private fun setToolBar() {
ma.hideBottomNavigation(View.GONE)
val listIcons: ArrayList<ImageView> = ArrayList()
@ -184,6 +233,21 @@ class InventaryFragment :
override fun observeViewModel() {
with(viewModel) {
buyersByItemPackingList.observe(viewLifecycleOwner) { list ->
myListBuyers = list.list
val distinctPackingTypes =
list?.list?.map {
NameWithId(
1, it.itemPackingTypeFk ?: getString(R.string.allText)
)
}
?.distinct()
?: emptyList()
setSearchableItemPacking(distinctPackingTypes as MutableList<NameWithId>)
}
buyersList.observe(viewLifecycleOwner) { item ->
setSearchable(item.list.map {
NameWithId(
@ -193,6 +257,7 @@ class InventaryFragment :
} as MutableList<NameWithId>)
}
inventaryList.observe(viewLifecycleOwner) { it ->
listInventory = ArrayList()
listInventoryAux = ArrayList()
@ -202,6 +267,8 @@ class InventaryFragment :
listInventoryAux.add(it)
}
}
adapter = InventoryAdapter(listInventory, object : OnInvetoryNichoClickListener {
override fun onInvetoryNichoClickListener(item: ItemInventaryVO) {
customDialog.setTitle(item.itemFk.toString() + "\n" + item.longName)

View File

@ -11,6 +11,8 @@ import es.verdnatura.domain.userCases.GetItemFromBarcodeUseCase
import es.verdnatura.presentation.base.BaseViewModel
import es.verdnatura.presentation.common.Event
import es.verdnatura.presentation.common.ItemDiscardSalixShortage
import es.verdnatura.presentation.view.feature.calidad.model.Buyer
import es.verdnatura.presentation.view.feature.calidad.model.BuyerList
import es.verdnatura.presentation.view.feature.calidad.model.BuyerListVO
import es.verdnatura.presentation.view.feature.calidad.model.BuyerVO
import es.verdnatura.presentation.view.feature.inventario.model.InventaryListVO
@ -46,6 +48,10 @@ class InventaryViewModel(val context: Context) : BaseViewModel(context) {
val buyersList: LiveData<BuyerListVO>
get() = _buyersList
private val _buyersByItemPackingList by lazy { MutableLiveData<BuyerList>() }
val buyersByItemPackingList: LiveData<BuyerList>
get() = _buyersByItemPackingList
private val _mistakeDepartmentList by lazy { MutableLiveData<DepartmentMistakeList>() }
val mistakeDepartmentList: LiveData<DepartmentMistakeList>
get() = _mistakeDepartmentList
@ -80,6 +86,20 @@ class InventaryViewModel(val context: Context) : BaseViewModel(context) {
})
}
fun itemShelvingBuyerGetByItemPacking() {
salix.getBuyersByItemPackingType(
"""{"fields":["itemPackingTypeFk","id","workerFk"],
|"include":{"relation":"worker","scope":{"fields":["id"],
|"include":{"relation":"user","scope":{"fields":["nickname"]}}}}}""".trimMargin()
)
.enqueue(object : SalixCallback<List<Buyer>>(context) {
override fun onSuccess(response: Response<List<Buyer>>) {
_buyersByItemPackingList.value = response.body()?.let { BuyerList(it) }
}
})
}
val loadInventaryList: LiveData<Event<InventaryListVO>> = _inventaryList.map { Event(it) }
fun getInventory(buyerFk: Number, warehouseFk: Int) {