feat: refs #8176 refactorSearchDialog
This commit is contained in:
parent
83bc9d9de4
commit
59deb90428
|
@ -24,7 +24,7 @@ class SearchableAdapter(
|
||||||
private lateinit var searchView: SearchView
|
private lateinit var searchView: SearchView
|
||||||
|
|
||||||
inner class NameViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
inner class NameViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||||
private val nombreTextView: TextView = itemView.findViewById(android.R.id.text1)
|
private val nameText: TextView = itemView.findViewById(android.R.id.text1)
|
||||||
|
|
||||||
fun bind(nameWithId: NameWithId, query: String) {
|
fun bind(nameWithId: NameWithId, query: String) {
|
||||||
val spannableString = SpannableString(nameWithId.name)
|
val spannableString = SpannableString(nameWithId.name)
|
||||||
|
@ -41,7 +41,7 @@ class SearchableAdapter(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
nombreTextView.text = spannableString
|
nameText.text = spannableString
|
||||||
itemView.setOnClickListener {
|
itemView.setOnClickListener {
|
||||||
onItemClick(nameWithId)
|
onItemClick(nameWithId)
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ class SearchableRecyclerView @JvmOverloads constructor(
|
||||||
defStyleAttr: Int = 0
|
defStyleAttr: Int = 0
|
||||||
) : LinearLayout(context, attrs, defStyleAttr) {
|
) : LinearLayout(context, attrs, defStyleAttr) {
|
||||||
|
|
||||||
private val searchView: SearchView
|
val searchView: SearchView
|
||||||
private val recyclerView: RecyclerView
|
private val recyclerView: RecyclerView
|
||||||
lateinit var adapter: SearchableAdapter
|
lateinit var adapter: SearchableAdapter
|
||||||
private var allItems: MutableList<NameWithId> = mutableListOf()
|
private var allItems: MutableList<NameWithId> = mutableListOf()
|
||||||
|
@ -33,7 +33,7 @@ class SearchableRecyclerView @JvmOverloads constructor(
|
||||||
visibility = View.GONE
|
visibility = View.GONE
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
visibility = View.GONE
|
|
||||||
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
||||||
override fun onQueryTextSubmit(query: String?): Boolean {
|
override fun onQueryTextSubmit(query: String?): Boolean {
|
||||||
return false
|
return false
|
||||||
|
@ -53,18 +53,23 @@ class SearchableRecyclerView @JvmOverloads constructor(
|
||||||
adapter.notifyDataSetChanged()
|
adapter.notifyDataSetChanged()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setVisibilityRecycler(visibility: Int) {
|
|
||||||
recyclerView.visibility = visibility
|
|
||||||
if (visibility == View.VISIBLE) {
|
|
||||||
searchView.requestFocus()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun setOnCloseListener(listener: () -> Boolean) {
|
fun setOnCloseListener(listener: () -> Boolean) {
|
||||||
searchView.setOnCloseListener { listener() }
|
searchView.setOnCloseListener { listener() }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getSearchView(): SearchView {
|
fun setVisibility() {
|
||||||
return searchView
|
searchView.visibility = View.VISIBLE
|
||||||
|
recyclerView.visibility = View.VISIBLE
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setSearchHint(searchHint: String): SearchableRecyclerView {
|
||||||
|
searchView.queryHint = searchHint
|
||||||
|
searchView.setIconifiedByDefault(true)
|
||||||
|
searchView.isIconified = false
|
||||||
|
searchView.post {
|
||||||
|
searchView.requestFocus()
|
||||||
|
}
|
||||||
|
|
||||||
|
return this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ import es.verdnatura.presentation.base.BaseFragment
|
||||||
import es.verdnatura.presentation.common.OnAjustesItemClickListener
|
import es.verdnatura.presentation.common.OnAjustesItemClickListener
|
||||||
import es.verdnatura.presentation.common.OnOptionsSelectedListener
|
import es.verdnatura.presentation.common.OnOptionsSelectedListener
|
||||||
import es.verdnatura.presentation.common.ToolBarAdapterTooltip
|
import es.verdnatura.presentation.common.ToolBarAdapterTooltip
|
||||||
|
import es.verdnatura.presentation.view.commom.NameWithId
|
||||||
import es.verdnatura.presentation.view.commom.SearchableAdapter
|
import es.verdnatura.presentation.view.commom.SearchableAdapter
|
||||||
import es.verdnatura.presentation.view.component.CustomDialog
|
import es.verdnatura.presentation.view.component.CustomDialog
|
||||||
import es.verdnatura.presentation.view.feature.ajustes.adapter.SettingsAdapter
|
import es.verdnatura.presentation.view.feature.ajustes.adapter.SettingsAdapter
|
||||||
|
@ -81,42 +82,46 @@ class AjustesFragment :
|
||||||
super.init()
|
super.init()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setSearchable(name: MutableList<String>) {
|
private fun setSearchable(listNames: MutableList<NameWithId>) {
|
||||||
val searchableRecyclerView = binding.searchableRecyclerView
|
val adapter =
|
||||||
searchableRecyclerView.visibility = View.VISIBLE
|
SearchableAdapter(
|
||||||
|
listElements = listNames,
|
||||||
val adapter = SearchableAdapter(names = name, context = requireContext()) { nombre ->
|
context = requireContext()
|
||||||
sectorListVO.forEach {
|
) { elementSelected ->
|
||||||
if (it.description == nombre) {
|
sectorListVO.forEach {
|
||||||
runBlocking {
|
if (it.id == elementSelected.id) {
|
||||||
mobileApplication.dataStoreApp.editDataStoreKey(
|
runBlocking {
|
||||||
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(
|
mobileApplication.dataStoreApp.editDataStoreKey(
|
||||||
WAREHOUSEFK, it1
|
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
|
|
||||||
}
|
}
|
||||||
|
binding.searchableRecyclerView.visibility = View.GONE
|
||||||
}
|
}
|
||||||
searchableRecyclerView.visibility = View.GONE
|
|
||||||
}
|
binding.searchableRecyclerView.setAdapter(adapter, listNames)
|
||||||
searchableRecyclerView.setAdapter(adapter, name)
|
binding.searchableRecyclerView.visibility = View.VISIBLE
|
||||||
|
binding.searchableRecyclerView.setSearchHint(getString(R.string.sectorSearch))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -266,13 +271,13 @@ class AjustesFragment :
|
||||||
}
|
}
|
||||||
// modificar
|
// modificar
|
||||||
listSectores.sort()
|
listSectores.sort()
|
||||||
val array = arrayOfNulls<String>(listSectores.size)
|
|
||||||
sectorListVO = it.list
|
sectorListVO = it.list
|
||||||
//Tarea 8176
|
setSearchable(sectorListVO.map {
|
||||||
//setSearchable(sectorListVO.map { it.description } as MutableList<String>)
|
NameWithId(
|
||||||
showDialogForAll(
|
id = it.id,
|
||||||
listSectores.toArray(array), getString(R.string.selectSector)
|
name = it.description
|
||||||
)
|
)
|
||||||
|
} as MutableList<NameWithId>)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
customDialog.setTitle(getString(R.string.sectors))
|
customDialog.setTitle(getString(R.string.sectors))
|
||||||
|
|
|
@ -18,13 +18,13 @@ import es.verdnatura.presentation.common.OnInvetoryNichoClickListener
|
||||||
import es.verdnatura.presentation.common.OnOptionsSelectedListener
|
import es.verdnatura.presentation.common.OnOptionsSelectedListener
|
||||||
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
|
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
|
||||||
import es.verdnatura.presentation.common.ToolBarAdapterTooltip
|
import es.verdnatura.presentation.common.ToolBarAdapterTooltip
|
||||||
|
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.CustomDialogInput
|
||||||
import es.verdnatura.presentation.view.component.CustomDialogTwoButtons
|
import es.verdnatura.presentation.view.component.CustomDialogTwoButtons
|
||||||
import es.verdnatura.presentation.view.feature.calidad.model.BuyerVO
|
|
||||||
import es.verdnatura.presentation.view.feature.inventario.adapter.InventoryAdapter
|
import es.verdnatura.presentation.view.feature.inventario.adapter.InventoryAdapter
|
||||||
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
|
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
|
||||||
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
|
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
|
||||||
import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat
|
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
|
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
|
||||||
|
@ -39,10 +39,8 @@ class InventaryFragment :
|
||||||
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
|
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
|
||||||
private var layoutManager: LinearLayoutManager? = null
|
private var layoutManager: LinearLayoutManager? = null
|
||||||
private var firstVisiblePosition = 0
|
private var firstVisiblePosition = 0
|
||||||
private var secondVisiblePosition = 1
|
|
||||||
private lateinit var itemClicked: ItemInventaryVO
|
private lateinit var itemClicked: ItemInventaryVO
|
||||||
private val items = ArrayList<SearchBuyerModel>()
|
private var buyerId: Number = -1
|
||||||
private lateinit var buyerId: String
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun newInstance() = InventaryFragment()
|
fun newInstance() = InventaryFragment()
|
||||||
|
@ -59,39 +57,17 @@ class InventaryFragment :
|
||||||
|
|
||||||
viewModel.itemShelvingBuyerGet()
|
viewModel.itemShelvingBuyerGet()
|
||||||
binding.filterBuyer.text = mobileApplication.dataStoreApp.readDataStoreKey<String>((BUYER))
|
binding.filterBuyer.text = mobileApplication.dataStoreApp.readDataStoreKey<String>((BUYER))
|
||||||
buyerId = mobileApplication.dataStoreApp.readDataStoreKey((BUYERID))
|
buyerId = mobileApplication.dataStoreApp.readDataStoreKey<Int>((BUYERID))
|
||||||
if (buyerId.isNotBlank()) {
|
if (buyerId != -1) {
|
||||||
viewModel.getInventory(
|
viewModel.getInventory(
|
||||||
buyerId.toInt(), mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
|
buyerId, mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
binding.filterBuyer.setOnClickListener {
|
binding.filterBuyer.setOnClickListener {
|
||||||
SimpleSearchDialogCompat(
|
binding.searchableRecyclerView.visibility = View.VISIBLE
|
||||||
context,
|
binding.searchableRecyclerView.setSearchHint(getString(R.string.BuyerSearch))
|
||||||
getString(R.string.compradores),
|
|
||||||
getString(R.string.escribirparteNombre),
|
|
||||||
null,
|
|
||||||
items
|
|
||||||
) { baseSearchDialogCompat, nombre, position ->
|
|
||||||
|
|
||||||
binding.filterBuyer.text = (nombre.title)
|
|
||||||
buyerId = nombre.getBuyerId()
|
|
||||||
|
|
||||||
lifecycleScope.launch {
|
|
||||||
mobileApplication.dataStoreApp.editDataStoreKey(
|
|
||||||
BUYER, nombre.getBuyerNickname()
|
|
||||||
)
|
|
||||||
mobileApplication.dataStoreApp.editDataStoreKey(
|
|
||||||
BUYERID, nombre.getBuyerId()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
viewModel.getInventory(
|
|
||||||
nombre.getBuyerId().toInt(),
|
|
||||||
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
|
|
||||||
)
|
|
||||||
baseSearchDialogCompat.dismiss()
|
|
||||||
}.show()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
customDialogInput = CustomDialogInput(requireContext())
|
customDialogInput = CustomDialogInput(requireContext())
|
||||||
customDialog = CustomDialogTwoButtons(requireContext())
|
customDialog = CustomDialogTwoButtons(requireContext())
|
||||||
binding.mainToolbar.toolbarTitle.text = getString(R.string.itemShelvingRadar)
|
binding.mainToolbar.toolbarTitle.text = getString(R.string.itemShelvingRadar)
|
||||||
|
@ -100,6 +76,36 @@ class InventaryFragment :
|
||||||
super.init()
|
super.init()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun setSearchable(listNames: MutableList<NameWithId>) {
|
||||||
|
|
||||||
|
val adapter =
|
||||||
|
SearchableAdapter(
|
||||||
|
listElements = listNames,
|
||||||
|
context = requireContext()
|
||||||
|
) { elementSelected ->
|
||||||
|
|
||||||
|
lifecycleScope.launch {
|
||||||
|
mobileApplication.dataStoreApp.editDataStoreKey(
|
||||||
|
BUYER, elementSelected.name
|
||||||
|
)
|
||||||
|
mobileApplication.dataStoreApp.editDataStoreKey(
|
||||||
|
BUYERID, elementSelected.id
|
||||||
|
)
|
||||||
|
}
|
||||||
|
viewModel.getInventory(
|
||||||
|
elementSelected.id,
|
||||||
|
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
|
||||||
|
)
|
||||||
|
binding.filterBuyer.text = (elementSelected.name)
|
||||||
|
buyerId = elementSelected.id
|
||||||
|
binding.searchableRecyclerView.visibility = View.GONE
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.searchableRecyclerView.setAdapter(adapter, listNames)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private fun setToolBar() {
|
private fun setToolBar() {
|
||||||
ma.hideBottomNavigation(View.GONE)
|
ma.hideBottomNavigation(View.GONE)
|
||||||
val listIcons: ArrayList<ImageView> = ArrayList()
|
val listIcons: ArrayList<ImageView> = ArrayList()
|
||||||
|
@ -114,9 +120,9 @@ class InventaryFragment :
|
||||||
if (item == iconReload.drawable) {
|
if (item == iconReload.drawable) {
|
||||||
|
|
||||||
firstVisiblePosition = layoutManager?.findFirstVisibleItemPosition() ?: 0
|
firstVisiblePosition = layoutManager?.findFirstVisibleItemPosition() ?: 0
|
||||||
if (buyerId.isNotBlank()) {
|
if (buyerId != -1) {
|
||||||
viewModel.getInventory(
|
viewModel.getInventory(
|
||||||
buyerId.toInt(),
|
buyerId,
|
||||||
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
|
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
|
@ -178,8 +184,13 @@ class InventaryFragment :
|
||||||
|
|
||||||
override fun observeViewModel() {
|
override fun observeViewModel() {
|
||||||
with(viewModel) {
|
with(viewModel) {
|
||||||
buyersList.observe(viewLifecycleOwner) {
|
buyersList.observe(viewLifecycleOwner) { item ->
|
||||||
createBuyerList(it.list)
|
setSearchable(item.list.map {
|
||||||
|
NameWithId(
|
||||||
|
it.userFk,
|
||||||
|
it.nickname
|
||||||
|
)
|
||||||
|
} as MutableList<NameWithId>)
|
||||||
}
|
}
|
||||||
|
|
||||||
inventaryList.observe(viewLifecycleOwner) { it ->
|
inventaryList.observe(viewLifecycleOwner) { it ->
|
||||||
|
@ -265,13 +276,6 @@ class InventaryFragment :
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createBuyerList(list: List<BuyerVO>) {
|
|
||||||
items.clear()
|
|
||||||
if (list.isNotEmpty()) list.forEach { buyer ->
|
|
||||||
items.add(SearchBuyerModel(buyer.nickname, buyer.userFk))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ class InventaryViewModel(val context: Context) : BaseViewModel(context) {
|
||||||
|
|
||||||
val loadInventaryList: LiveData<Event<InventaryListVO>> = _inventaryList.map { Event(it) }
|
val loadInventaryList: LiveData<Event<InventaryListVO>> = _inventaryList.map { Event(it) }
|
||||||
|
|
||||||
fun getInventory(buyerFk: Int, warehouseFk: Int) {
|
fun getInventory(buyerFk: Number, warehouseFk: Int) {
|
||||||
salix.itemShelvingFilterBuyer(params = arrayListOf(buyerFk, warehouseFk))
|
salix.itemShelvingFilterBuyer(params = arrayListOf(buyerFk, warehouseFk))
|
||||||
.enqueue(object : SalixCallback<List<ItemInventaryVO>>(context) {
|
.enqueue(object : SalixCallback<List<ItemInventaryVO>>(context) {
|
||||||
override fun onSuccess(response: Response<List<ItemInventaryVO>>) {
|
override fun onSuccess(response: Response<List<ItemInventaryVO>>) {
|
||||||
|
@ -146,7 +146,7 @@ class InventaryViewModel(val context: Context) : BaseViewModel(context) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fun workerGetFromHasMistake(departmentFk: Int) {
|
fun workerGetFromHasMistake(departmentFk: Number) {
|
||||||
salix.workerGetFromHasMistake(arrayListOf(departmentFk))
|
salix.workerGetFromHasMistake(arrayListOf(departmentFk))
|
||||||
.enqueue(object : SalixCallback<List<WorkerFromMistake>>(context) {
|
.enqueue(object : SalixCallback<List<WorkerFromMistake>>(context) {
|
||||||
override fun onSuccess(response: Response<List<WorkerFromMistake>>) {
|
override fun onSuccess(response: Response<List<WorkerFromMistake>>) {
|
||||||
|
|
|
@ -4,7 +4,6 @@ import android.content.Context
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.core.widget.addTextChangedListener
|
import androidx.core.widget.addTextChangedListener
|
||||||
import androidx.lifecycle.lifecycleScope
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import es.verdnatura.R
|
import es.verdnatura.R
|
||||||
import es.verdnatura.databinding.FragmentWorkermistakeBinding
|
import es.verdnatura.databinding.FragmentWorkermistakeBinding
|
||||||
|
@ -15,23 +14,19 @@ import es.verdnatura.presentation.base.BaseFragment
|
||||||
import es.verdnatura.presentation.common.OnBarcodeRowClickListener
|
import es.verdnatura.presentation.common.OnBarcodeRowClickListener
|
||||||
import es.verdnatura.presentation.common.OnMistakeWorkerClickListener
|
import es.verdnatura.presentation.common.OnMistakeWorkerClickListener
|
||||||
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
|
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
|
||||||
|
import es.verdnatura.presentation.view.commom.NameWithId
|
||||||
|
import es.verdnatura.presentation.view.commom.SearchableAdapter
|
||||||
import es.verdnatura.presentation.view.component.CustomDialog
|
import es.verdnatura.presentation.view.component.CustomDialog
|
||||||
import es.verdnatura.presentation.view.component.CustomDialogInput
|
import es.verdnatura.presentation.view.component.CustomDialogInput
|
||||||
import es.verdnatura.presentation.view.component.CustomDialogList
|
import es.verdnatura.presentation.view.component.CustomDialogList
|
||||||
import es.verdnatura.presentation.view.feature.articulo.adapter.BarcodeAdapter
|
import es.verdnatura.presentation.view.feature.articulo.adapter.BarcodeAdapter
|
||||||
import es.verdnatura.presentation.view.feature.articulo.model.BarcodeVO
|
import es.verdnatura.presentation.view.feature.articulo.model.BarcodeVO
|
||||||
import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryViewModel
|
import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryViewModel
|
||||||
import es.verdnatura.presentation.view.feature.inventario.fragment.SearchDepartmentModel
|
|
||||||
import es.verdnatura.presentation.view.feature.workermistake.adapter.WorkermistakeAdapter
|
import es.verdnatura.presentation.view.feature.workermistake.adapter.WorkermistakeAdapter
|
||||||
import es.verdnatura.presentation.view.feature.workermistake.model.DepartmentMistake
|
|
||||||
import es.verdnatura.presentation.view.feature.workermistake.model.MistakeType
|
import es.verdnatura.presentation.view.feature.workermistake.model.MistakeType
|
||||||
import es.verdnatura.presentation.view.feature.workermistake.model.WorkerFromMistake
|
import es.verdnatura.presentation.view.feature.workermistake.model.WorkerFromMistake
|
||||||
import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
|
|
||||||
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
|
|
||||||
class WorkermistakeFragment(
|
class WorkermistakeFragment(
|
||||||
var entryPoint: String = ""
|
var entryPoint: String = ""
|
||||||
|
|
||||||
|
@ -49,7 +44,6 @@ class WorkermistakeFragment(
|
||||||
private var listMistakes: ArrayList<BarcodeVO> = ArrayList()
|
private var listMistakes: ArrayList<BarcodeVO> = ArrayList()
|
||||||
private var listMistakesAdapter: BarcodeAdapter? = null
|
private var listMistakesAdapter: BarcodeAdapter? = null
|
||||||
private var workerMistakeName: WorkerFromMistake? = null
|
private var workerMistakeName: WorkerFromMistake? = null
|
||||||
private val departments = ArrayList<SearchDepartmentModel>()
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun newInstance(entryPoint: String) = WorkermistakeFragment(entryPoint)
|
fun newInstance(entryPoint: String) = WorkermistakeFragment(entryPoint)
|
||||||
|
@ -83,32 +77,8 @@ class WorkermistakeFragment(
|
||||||
|
|
||||||
customDialogList = CustomDialogList(requireContext())
|
customDialogList = CustomDialogList(requireContext())
|
||||||
binding.filterDepartment.setOnClickListener {
|
binding.filterDepartment.setOnClickListener {
|
||||||
SimpleSearchDialogCompat(
|
binding.searchableRecyclerView.visibility = View.VISIBLE
|
||||||
context,
|
binding.searchableRecyclerView.setSearchHint(getString(R.string.departamentSearch))
|
||||||
getString(R.string.departamentos),
|
|
||||||
getString(R.string.escribirparteNombre),
|
|
||||||
null,
|
|
||||||
departments
|
|
||||||
) { baseSearchDialogCompat, nombre, position ->
|
|
||||||
|
|
||||||
binding.filterDepartment.text = (nombre.title)
|
|
||||||
lifecycleScope.launch(Dispatchers.IO) {
|
|
||||||
mobileApplication.dataStoreApp.editDataStoreKey(
|
|
||||||
DEPARTMENTMISTAKE,
|
|
||||||
nombre.getDepartmentName()
|
|
||||||
)
|
|
||||||
mobileApplication.dataStoreApp.editDataStoreKey(
|
|
||||||
DEPARTMENTMISTAKEID,
|
|
||||||
nombre.getDepartmentId()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
viewModel.workerGetFromHasMistake(
|
|
||||||
nombre.getDepartmentId()
|
|
||||||
)
|
|
||||||
binding.filterItemFk.isEnabled = true
|
|
||||||
baseSearchDialogCompat.dismiss()
|
|
||||||
}.show()
|
|
||||||
}
|
}
|
||||||
customDialogInput = CustomDialogInput(requireContext())
|
customDialogInput = CustomDialogInput(requireContext())
|
||||||
customDialog = CustomDialog(requireContext())
|
customDialog = CustomDialog(requireContext())
|
||||||
|
@ -122,6 +92,36 @@ class WorkermistakeFragment(
|
||||||
binding.mainToolbar.toolbarTitle.text = entryPoint
|
binding.mainToolbar.toolbarTitle.text = entryPoint
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun setSearchable(listNames: MutableList<NameWithId>) {
|
||||||
|
|
||||||
|
val adapter =
|
||||||
|
SearchableAdapter(
|
||||||
|
listElements = listNames,
|
||||||
|
context = requireContext()
|
||||||
|
) { elementSelected ->
|
||||||
|
|
||||||
|
runBlocking {
|
||||||
|
mobileApplication.dataStoreApp.editDataStoreKey(
|
||||||
|
DEPARTMENTMISTAKE,
|
||||||
|
elementSelected.name
|
||||||
|
)
|
||||||
|
mobileApplication.dataStoreApp.editDataStoreKey(
|
||||||
|
DEPARTMENTMISTAKEID,
|
||||||
|
elementSelected.id
|
||||||
|
)
|
||||||
|
viewModel.workerGetFromHasMistake(
|
||||||
|
elementSelected.id
|
||||||
|
)
|
||||||
|
}
|
||||||
|
binding.filterDepartment.text = elementSelected.name
|
||||||
|
binding.searchableRecyclerView.visibility = View.GONE
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.searchableRecyclerView.setAdapter(adapter, listNames)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private fun setEvents() {
|
private fun setEvents() {
|
||||||
binding.mainToolbar.backButton.setOnClickListener {
|
binding.mainToolbar.backButton.setOnClickListener {
|
||||||
ma.onMyBackPressed()
|
ma.onMyBackPressed()
|
||||||
|
@ -151,7 +151,12 @@ class WorkermistakeFragment(
|
||||||
override fun observeViewModel() {
|
override fun observeViewModel() {
|
||||||
with(viewModel) {
|
with(viewModel) {
|
||||||
mistakeDepartmentList.observe(viewLifecycleOwner) {
|
mistakeDepartmentList.observe(viewLifecycleOwner) {
|
||||||
createDepartmentList(it.list)
|
setSearchable(it.list.map { item ->
|
||||||
|
NameWithId(
|
||||||
|
id = item.id,
|
||||||
|
name = item.name
|
||||||
|
)
|
||||||
|
} as MutableList<NameWithId>)
|
||||||
}
|
}
|
||||||
workerFromMistakeList.observe(viewLifecycleOwner) {
|
workerFromMistakeList.observe(viewLifecycleOwner) {
|
||||||
createWorkerList(it.list)
|
createWorkerList(it.list)
|
||||||
|
@ -214,32 +219,20 @@ class WorkermistakeFragment(
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createDepartmentList(list: List<DepartmentMistake>) {
|
|
||||||
departments.clear()
|
|
||||||
list.forEach { department ->
|
|
||||||
try {
|
|
||||||
departments.add(SearchDepartmentModel(department.name, department.id))
|
|
||||||
} catch (e: Exception) {
|
|
||||||
e.message!!.toast(requireContext())
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun createWorkerList(list: List<WorkerFromMistake>) {
|
private fun createWorkerList(list: List<WorkerFromMistake>) {
|
||||||
listWorker.clear()
|
try {
|
||||||
|
listWorker.apply {
|
||||||
list.forEach { worker ->
|
clear()
|
||||||
try {
|
addAll(list)
|
||||||
listWorker.add(worker)
|
|
||||||
} catch (e: Exception) {
|
|
||||||
e.message!!.toast(requireContext())
|
|
||||||
}
|
}
|
||||||
|
listWorkerAuxiliary.apply {
|
||||||
|
clear()
|
||||||
|
addAll(listWorker)
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
e.message?.toast(requireContext())
|
||||||
}
|
}
|
||||||
listWorkerAuxiliary.clear()
|
|
||||||
listWorkerAuxiliary.addAll(listWorker)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,8 @@ data class ExpeditionMistakeSalix(
|
||||||
)
|
)
|
||||||
|
|
||||||
data class DepartmentMistake(
|
data class DepartmentMistake(
|
||||||
var id: Int? = null,
|
var id: Int,
|
||||||
var name: String = ""
|
var name: String
|
||||||
)
|
)
|
||||||
|
|
||||||
data class WorkerFromMistake(
|
data class WorkerFromMistake(
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:queryHint="Buscar..."
|
android:queryHint="Buscar..."
|
||||||
android:text="sdfsdf"
|
android:text=""
|
||||||
android:textColor="@android:color/white"
|
android:textColor="@android:color/white"
|
||||||
android:textColorHint="@android:color/darker_gray" />
|
android:textColorHint="@android:color/darker_gray" />
|
||||||
|
|
||||||
|
|
|
@ -27,25 +27,15 @@
|
||||||
|
|
||||||
<!-- RecyclerView en la parte superior -->
|
<!-- RecyclerView en la parte superior -->
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
<es.verdnatura.presentation.view.commom.SearchableRecyclerView
|
|
||||||
android:id="@+id/searchableRecyclerView"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/scrollView"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/divider"
|
|
||||||
app:layout_constraintVertical_bias="0" />
|
|
||||||
<!-- Contenedor de los demás datos debajo del RecyclerView -->
|
|
||||||
<ScrollView
|
|
||||||
android:id="@+id/scrollView"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingTop="@dimen/toolbar_height"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/divider">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/setttings_items"
|
android:id="@+id/setttings_items"
|
||||||
|
@ -54,7 +44,21 @@
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintVertical_bias="0" />
|
app:layout_constraintVertical_bias="0" />
|
||||||
</ScrollView>
|
|
||||||
|
<!-- Contenedor de los demás datos debajo del RecyclerView -->
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<es.verdnatura.presentation.view.commom.SearchableRecyclerView
|
||||||
|
android:id="@+id/searchableRecyclerView"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/main_toolbar"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/main_toolbar"
|
||||||
|
app:layout_constraintVertical_bias="0" />
|
||||||
|
|
||||||
<!-- Splash progress en el centro de la pantalla -->
|
<!-- Splash progress en el centro de la pantalla -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
|
|
@ -57,8 +57,8 @@
|
||||||
android:textColor="@color/verdnatura_pumpkin_orange"
|
android:textColor="@color/verdnatura_pumpkin_orange"
|
||||||
android:textColorHint="#78909C"
|
android:textColorHint="#78909C"
|
||||||
android:visibility="visible"
|
android:visibility="visible"
|
||||||
tools:ignore="TextContrastCheck"
|
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp"
|
||||||
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp" />
|
tools:ignore="TextContrastCheck" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
@ -111,9 +111,19 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
tools:listitem="@layout/item_inventary_row" />
|
tools:listitem="@layout/item_inventary_row" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<es.verdnatura.presentation.view.commom.SearchableRecyclerView
|
||||||
|
android:id="@+id/searchableRecyclerView"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/main_toolbar"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/main_toolbar"
|
||||||
|
app:layout_constraintVertical_bias="0" />
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/main_toolbar"
|
android:id="@+id/main_toolbar"
|
||||||
layout="@layout/toolbar_fragment"
|
layout="@layout/toolbar_fragment"
|
||||||
|
|
|
@ -49,7 +49,6 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:backgroundTint="@android:color/white"
|
android:backgroundTint="@android:color/white"
|
||||||
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp"
|
|
||||||
android:focusable="false"
|
android:focusable="false"
|
||||||
android:hint="@string/suppliers"
|
android:hint="@string/suppliers"
|
||||||
android:lines="1"
|
android:lines="1"
|
||||||
|
@ -57,7 +56,8 @@
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textColor="@color/verdnatura_pumpkin_orange"
|
android:textColor="@color/verdnatura_pumpkin_orange"
|
||||||
android:textColorHint="@android:color/darker_gray"
|
android:textColorHint="@android:color/darker_gray"
|
||||||
android:visibility="visible" />
|
android:visibility="visible"
|
||||||
|
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp" />
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
@ -73,10 +73,9 @@
|
||||||
android:id="@+id/filter_entry"
|
android:id="@+id/filter_entry"
|
||||||
style="@style/InputLineTextSearch"
|
style="@style/InputLineTextSearch"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_marginTop="24dp"
|
android:layout_marginTop="24dp"
|
||||||
|
android:layout_weight="1"
|
||||||
android:backgroundTint="@android:color/white"
|
android:backgroundTint="@android:color/white"
|
||||||
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp"
|
|
||||||
android:focusable="false"
|
android:focusable="false"
|
||||||
android:hint="@string/entry"
|
android:hint="@string/entry"
|
||||||
android:lines="1"
|
android:lines="1"
|
||||||
|
@ -84,11 +83,34 @@
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textColor="@color/verdnatura_pumpkin_orange"
|
android:textColor="@color/verdnatura_pumpkin_orange"
|
||||||
android:textColorHint="@android:color/darker_gray"
|
android:textColorHint="@android:color/darker_gray"
|
||||||
android:visibility="invisible" />
|
android:visibility="invisible"
|
||||||
|
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<es.verdnatura.presentation.view.commom.SearchableRecyclerView
|
||||||
|
android:id="@+id/searchableSuplierRecyclerView"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/main_toolbar"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/main_toolbar"
|
||||||
|
app:layout_constraintVertical_bias="0" />
|
||||||
|
|
||||||
|
<es.verdnatura.presentation.view.commom.SearchableRecyclerView
|
||||||
|
android:id="@+id/searchableEntriesRecyclerView"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/main_toolbar"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/main_toolbar"
|
||||||
|
app:layout_constraintVertical_bias="0" />
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/main_toolbar"
|
android:id="@+id/main_toolbar"
|
||||||
layout="@layout/toolbar_fragment"
|
layout="@layout/toolbar_fragment"
|
||||||
|
@ -96,5 +118,5 @@
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
</layout>
|
</layout>
|
|
@ -101,6 +101,7 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/workermistake_recyclerview"
|
android:id="@+id/workermistake_recyclerview"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -110,6 +111,17 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<es.verdnatura.presentation.view.commom.SearchableRecyclerView
|
||||||
|
android:id="@+id/searchableRecyclerView"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/main_toolbar"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/main_toolbar"
|
||||||
|
app:layout_constraintVertical_bias="0" />
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/main_toolbar"
|
android:id="@+id/main_toolbar"
|
||||||
layout="@layout/toolbar_fragment"
|
layout="@layout/toolbar_fragment"
|
||||||
|
|
|
@ -904,6 +904,11 @@
|
||||||
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
|
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
|
||||||
<string name="ticketPickup">Ticket de recogida</string>
|
<string name="ticketPickup">Ticket de recogida</string>
|
||||||
<string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string>
|
<string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string>
|
||||||
|
<string name="departamentSearch">Escribe departamento</string>
|
||||||
|
<string name="BuyerSearch">Escribe comprador</string>
|
||||||
|
<string name="sectorSearch">Escribe sector</string>
|
||||||
|
<string name="supplierSearch">Escribe proveedor</string>
|
||||||
|
<string name="entrySearch">Escribe entrada</string>
|
||||||
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -904,5 +904,10 @@
|
||||||
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
|
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
|
||||||
<string name="ticketPickup">Ticket de recogida</string>
|
<string name="ticketPickup">Ticket de recogida</string>
|
||||||
<string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string>
|
<string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string>
|
||||||
|
<string name="departamentSearch">Escribe departamento</string>
|
||||||
|
<string name="BuyerSearch">Escribe comprador</string>
|
||||||
|
<string name="sectorSearch">Escribe sector</string>
|
||||||
|
<string name="supplierSearch">Escribe proveedor</string>
|
||||||
|
<string name="entrySearch">Escribe entrada</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -904,5 +904,10 @@
|
||||||
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
|
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
|
||||||
<string name="ticketPickup">Ticket de recogida</string>
|
<string name="ticketPickup">Ticket de recogida</string>
|
||||||
<string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string>
|
<string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string>
|
||||||
|
<string name="departamentSearch">Escribe departamento</string>
|
||||||
|
<string name="BuyerSearch">Escribe comprador</string>
|
||||||
|
<string name="sectorSearch">Escribe sector</string>
|
||||||
|
<string name="supplierSearch">Escribe proveedor</string>
|
||||||
|
<string name="entrySearch">Escribe entrada</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -907,5 +907,10 @@
|
||||||
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
|
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
|
||||||
<string name="ticketPickup">Ticket de recogida</string>
|
<string name="ticketPickup">Ticket de recogida</string>
|
||||||
<string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string>
|
<string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string>
|
||||||
|
<string name="departamentSearch">Escribe departamento</string>
|
||||||
|
<string name="BuyerSearch">Escribe comprador</string>
|
||||||
|
<string name="sectorSearch">Escribe sector</string>
|
||||||
|
<string name="supplierSearch">Escribe proveedor</string>
|
||||||
|
<string name="entrySearch">Escribe entrada</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in New Issue