feat inventoryParking #refs 6193

This commit is contained in:
Sergio De la torre 2024-06-18 12:18:33 +02:00
parent 915aad5a32
commit 6a5817844e
2 changed files with 105 additions and 17 deletions

View File

@ -39,6 +39,7 @@ object ConstAndValues {
const val SUPPLIERID = "SUPPLIERID" const val SUPPLIERID = "SUPPLIERID"
const val SUPPLIERNAME = "SUPPLIERNAME" const val SUPPLIERNAME = "SUPPLIERNAME"
const val ENTRYID = "ENTRYID" const val ENTRYID = "ENTRYID"
const val ENTRYOBSERVATIONORIGINAL = "ENTRYOBSERVATIONORIGINAL"
const val ITEMPACKING = "itemPackingType" const val ITEMPACKING = "itemPackingType"
const val ITEMPACKINGFK = "itemPackingTypeFk" const val ITEMPACKINGFK = "itemPackingTypeFk"
const val BUYER = "buyernickname" const val BUYER = "buyernickname"
@ -60,6 +61,9 @@ object ConstAndValues {
const val RENEWINTERVAL = "renewInterval" const val RENEWINTERVAL = "renewInterval"
const val RENEWPERIOD = "renewPeriod" const val RENEWPERIOD = "renewPeriod"
const val MENUBYDEFAULTSELECTED = "MENUBYDEFAULTSELECTED" const val MENUBYDEFAULTSELECTED = "MENUBYDEFAULTSELECTED"
const val INVENTORYPARKINGTO = "INVENTORYPARKINGTO"
const val INVENTORYPARKINGFROM = "INVENTORYPARKINGFROM"
const val LIMITRECORDSSHELVINGLOG = 25
} }

View File

@ -3,11 +3,15 @@ package es.verdnatura.presentation.view.feature.inventario.fragment
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.os.Bundle
import android.text.InputType import android.text.InputType
import android.view.View
import android.view.View.GONE import android.view.View.GONE
import android.view.View.VISIBLE import android.view.View.VISIBLE
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import android.widget.ImageView import android.widget.ImageView
import androidx.activity.OnBackPressedCallback
import androidx.activity.OnBackPressedDispatcher
import androidx.appcompat.content.res.AppCompatResources import androidx.appcompat.content.res.AppCompatResources
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
@ -16,9 +20,12 @@ import com.google.gson.JsonArray
import com.google.gson.JsonObject import com.google.gson.JsonObject
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentInventoryParkingBinding import es.verdnatura.databinding.FragmentInventoryParkingBinding
import es.verdnatura.domain.ConstAndValues.INVENTORYPARKINGFROM
import es.verdnatura.domain.ConstAndValues.INVENTORYPARKINGTO
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.domain.toast import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnBackPressedListener
import es.verdnatura.presentation.common.OnBarcodeRowClickListener import es.verdnatura.presentation.common.OnBarcodeRowClickListener
import es.verdnatura.presentation.common.OnMoreClickListener import es.verdnatura.presentation.common.OnMoreClickListener
import es.verdnatura.presentation.common.OnOptionsSelectedListener import es.verdnatura.presentation.common.OnOptionsSelectedListener
@ -36,6 +43,7 @@ import es.verdnatura.presentation.view.feature.inventario.model.ItemShelvingChec
import es.verdnatura.presentation.view.feature.inventario.model.ItemShelvingVisible import es.verdnatura.presentation.view.feature.inventario.model.ItemShelvingVisible
import es.verdnatura.presentation.view.feature.inventario.model.ItemShelvingVisibleZero import es.verdnatura.presentation.view.feature.inventario.model.ItemShelvingVisibleZero
import es.verdnatura.presentation.view.feature.ubicador.model.ItemUbicadorVO import es.verdnatura.presentation.view.feature.ubicador.model.ItemUbicadorVO
import kotlinx.coroutines.runBlocking
import timber.log.Timber.d import timber.log.Timber.d
@Suppress("UNUSED_ANONYMOUS_PARAMETER") @Suppress("UNUSED_ANONYMOUS_PARAMETER")
@ -43,7 +51,7 @@ class InventaryParkingFragment(
var title: String = "", var title: String = "",
) : BaseFragment<FragmentInventoryParkingBinding, InventaryViewModel>( ) : BaseFragment<FragmentInventoryParkingBinding, InventaryViewModel>(
InventaryViewModel::class InventaryViewModel::class
) { ), OnBackPressedListener {
private var adapter: InventoryParkingAdapter? = null private var adapter: InventoryParkingAdapter? = null
private lateinit var customDialogInput: CustomDialogInput private lateinit var customDialogInput: CustomDialogInput
private lateinit var customDialogList: CustomDialogList private lateinit var customDialogList: CustomDialogList
@ -60,6 +68,7 @@ class InventaryParkingFragment(
private var filterActivated = false private var filterActivated = false
private var shelvingSaved = "" private var shelvingSaved = ""
val listIcons: ArrayList<ImageView> = ArrayList() val listIcons: ArrayList<ImageView> = ArrayList()
private lateinit var backDispatcher: OnBackPressedDispatcher
companion object { companion object {
fun newInstance(title: String) = InventaryParkingFragment(title) fun newInstance(title: String) = InventaryParkingFragment(title)
@ -102,6 +111,22 @@ class InventaryParkingFragment(
super.init() super.init()
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
requireActivity().onBackPressedDispatcher.addCallback(
viewLifecycleOwner,
object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
if (!onBackPressedHandled()) {
isEnabled = false
requireActivity().onBackPressedDispatcher
} else {
}
}
})
}
private fun setViews() { private fun setViews() {
binding.inventoryParkingRecyclerview.addOnScrollListener(object : binding.inventoryParkingRecyclerview.addOnScrollListener(object :
RecyclerView.OnScrollListener() { RecyclerView.OnScrollListener() {
@ -193,12 +218,12 @@ class InventaryParkingFragment(
} }
}) })
chageListAdapter(listIcons.filter { it != iconReset }) changeListAdapter(listIcons.filter { it != iconReset })
binding.mainToolbar.toolbarIcons.layoutManager = binding.mainToolbar.toolbarIcons.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
} }
private fun chageListAdapter(filterList: List<ImageView>, removeReset: Boolean = false) { private fun changeListAdapter(filterList: List<ImageView>, removeReset: Boolean = false) {
if (!removeReset) { if (!removeReset) {
(binding.mainToolbar.toolbarIcons.adapter as ToolBarAdapterTooltip).setItemsList( (binding.mainToolbar.toolbarIcons.adapter as ToolBarAdapterTooltip).setItemsList(
filterList filterList
@ -278,8 +303,30 @@ class InventaryParkingFragment(
ma.hideKeyboard(customDialogList.getEditText()) ma.hideKeyboard(customDialogList.getEditText())
listParkings = ArrayList() listParkings = ArrayList()
customDialogList.dismiss() customDialogList.dismiss()
}.setValue("").show() }.setValue("")
if (mobileApplication.dataStoreApp.readDataStoreKey<String>(
INVENTORYPARKINGFROM
).isNotEmpty()
) {
customDialogList.setOkButton(
getString(
R.string.lastChecking, mobileApplication.dataStoreApp.readDataStoreKey<String>(
INVENTORYPARKINGFROM
), mobileApplication.dataStoreApp.readDataStoreKey<String>(
INVENTORYPARKINGTO
)
)
) {
reviewParkings(
mobileApplication.dataStoreApp.readDataStoreKey<String>(
INVENTORYPARKINGFROM
), mobileApplication.dataStoreApp.readDataStoreKey<String>(
INVENTORYPARKINGTO
)
)
}
}
customDialogList.show()
customDialogList.getEditText().requestFocus() customDialogList.getEditText().requestFocus()
ma.hideKeyboard(customDialogList.getEditText()) ma.hideKeyboard(customDialogList.getEditText())
@ -289,15 +336,30 @@ class InventaryParkingFragment(
try { try {
if (listParkings.size == 1) { if (listParkings.size == 1) {
callGetInventory(
/* callGetInventory(
listParkings.first().code!!.uppercase(),
customDialogList.getValue().uppercase()
)*/
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(
INVENTORYPARKINGFROM,
listParkings.first().code!!
)
mobileApplication.dataStoreApp.editDataStoreKey(
INVENTORYPARKINGTO,
customDialogList.getValue()
)
}
reviewParkings(
listParkings.first().code!!.uppercase(), listParkings.first().code!!.uppercase(),
customDialogList.getValue().uppercase() customDialogList.getValue().uppercase()
) )
/*ma.hideKeyboard(customDialogList.getEditText())
ma.hideKeyboard(customDialogList.getEditText())
listParkings.clear() listParkings.clear()
customDialogList.dismiss() customDialogList.dismiss()
binding.editMatricula.requestFocus() binding.editMatricula.requestFocus()*/
} else { } else {
customDialogList.setDescription(getString(R.string.selectParkingsTo)) customDialogList.setDescription(getString(R.string.selectParkingsTo))
listParkings.add(0, BarcodeVO(code = customDialogList.getValue())) listParkings.add(0, BarcodeVO(code = customDialogList.getValue()))
@ -336,6 +398,17 @@ class InventaryParkingFragment(
} }
private fun reviewParkings(parkingFrom: String, parkingTo: String) {
callGetInventory(
parkingFrom,
parkingTo
)
ma.hideKeyboard(customDialogList.getEditText())
listParkings.clear()
customDialogList.dismiss()
binding.editMatricula.requestFocus()
}
private fun callGetInventory(parkingFromScan: String, parkingToScan: String) { private fun callGetInventory(parkingFromScan: String, parkingToScan: String) {
parkingFrom = parkingFromScan parkingFrom = parkingFromScan
parkingTo = parkingToScan parkingTo = parkingToScan
@ -373,7 +446,7 @@ class InventaryParkingFragment(
) )
binding.editMatricula.hint = getString(R.string.scanShelving) binding.editMatricula.hint = getString(R.string.scanShelving)
chageListAdapter(listIcons.filter { changeListAdapter(listIcons.filter {
it.drawable.constantState?.equals( it.drawable.constantState?.equals(
AppCompatResources.getDrawable( AppCompatResources.getDrawable(
requireContext(), requireContext(),
@ -396,7 +469,7 @@ class InventaryParkingFragment(
try { try {
binding.editMatricula.setText( binding.editMatricula.setText(
itemScanValue( itemScanValue(
binding.editMatricula.text.toString(), "buy", "more" binding.editMatricula.text.toString(), arrayOf("buy"), "more"
).toString().uppercase() ).toString().uppercase()
) )
} catch (ex: Exception) { } catch (ex: Exception) {
@ -429,7 +502,7 @@ class InventaryParkingFragment(
titleWithError = "", titleWithError = "",
isToasted = true isToasted = true
) )
chageListAdapter(listIcons) changeListAdapter(listIcons)
adapter!!.setItems(myListInventory.filter { it.shelvingFk.uppercase() == myListInventory[positionShelvingChecking].shelvingFk.uppercase() }) adapter!!.setItems(myListInventory.filter { it.shelvingFk.uppercase() == myListInventory[positionShelvingChecking].shelvingFk.uppercase() })
positionShelvingChecking = -1 positionShelvingChecking = -1
positionItemChecking = -1 positionItemChecking = -1
@ -449,7 +522,7 @@ class InventaryParkingFragment(
) )
} else { } else {
chageListAdapter(listIcons) changeListAdapter(listIcons)
adapter!!.setItems(myListInventory.filter { it.shelvingFk == myListInventory[positionShelvingChecking].shelvingFk }) adapter!!.setItems(myListInventory.filter { it.shelvingFk == myListInventory[positionShelvingChecking].shelvingFk })
binding.editMatricula.hint = getString(R.string.scanItemForChecking) binding.editMatricula.hint = getString(R.string.scanItemForChecking)
@ -464,7 +537,7 @@ class InventaryParkingFragment(
viewModel.getIdFromCodeSalix( viewModel.getIdFromCodeSalix(
code = itemScanValue( code = itemScanValue(
binding.editMatricula.text.toString(), "buy", "more" binding.editMatricula.text.toString(), arrayOf("buy"), "more"
).toString() ).toString()
) )
@ -490,7 +563,7 @@ class InventaryParkingFragment(
} }
private fun resetChecking() { private fun resetChecking() {
chageListAdapter(listIcons) changeListAdapter(listIcons)
positionShelvingChecking = -1 positionShelvingChecking = -1
positionItemChecking = -1 positionItemChecking = -1
shelvingSaved = "" shelvingSaved = ""
@ -568,7 +641,7 @@ class InventaryParkingFragment(
} }
response.observe(viewLifecycleOwner) { response.observe(viewLifecycleOwner) {
chageListAdapter(listIcons, true) changeListAdapter(listIcons, true)
callGetInventory( callGetInventory(
parkingFrom, parkingTo parkingFrom, parkingTo
) )
@ -578,7 +651,7 @@ class InventaryParkingFragment(
callGetInventory( callGetInventory(
parkingFrom, parkingTo parkingFrom, parkingTo
) )
chageListAdapter(listIcons, true) changeListAdapter(listIcons, true)
} }
} }
@ -654,4 +727,15 @@ class InventaryParkingFragment(
customDialogInput.setFocusText() customDialogInput.setFocusText()
} }
override fun onBackPressedHandled(): Boolean {
if (shelvingSaved.isBlank()) {
ma.onMyBackPressed()
return false
} else {
resetChecking()
return true
}
}
} }