refs #5228 review QrPallet

This commit is contained in:
Sergio De la torre 2023-11-16 10:06:08 +01:00
parent 8df86a326b
commit e07016c87c
2 changed files with 46 additions and 139 deletions

View File

@ -2,66 +2,38 @@ package es.verdnatura.presentation.common
import android.os.Build import android.os.Build
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import org.json.JSONObject import org.json.JSONObject
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter import java.time.format.DateTimeFormatter
data class itemScanned(var scanned: JSONObject) { data class ItemScanned(var scanned: JSONObject) {
var table: String = scanned.get("table").toString() var table: String = scanned.get("table").toString()
var id: Int = scanned.get("id").toString().toInt() var id: Int = scanned.get("id").toString().toInt()
var company: String = scanned.get("company").toString() var company: String = scanned.get("company").toString()
var more: String = scanned.get("more").toString() var more: String = if (scanned.has("more")) scanned.get("more").toString() else ""
var user: Int = scanned.get("user").toString().toInt() var user: Int = scanned.get("user").toString().toInt()
@RequiresApi(Build.VERSION_CODES.O) @RequiresApi(Build.VERSION_CODES.O)
var created = DateTimeFormatter.ISO_INSTANT.parse(scanned.get("created").toString()) var created = DateTimeFormatter.ISO_INSTANT.parse(scanned.get("created").toString())
/* var created: LocalDateTime = LocalDateTime.parse(
scanned.get("created").toString(),
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
)*/
/* var created: LocalDateTime =
(scanned.get("created").toString()).toDate().formatTo("yyyy-MM-dd HH:mm")
)*/
} }
//Tarea#5109
@RequiresApi(Build.VERSION_CODES.O)
data class itemScannedAll(var scanned: JSONObject) {
var company: String = scanned.get("company").toString()
var user: Int = scanned.get("user").toString().toInt()
var created: LocalDateTime = LocalDateTime.parse(
scanned.get("created").toString(),
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
)
var table: String = scanned.get("table").toString()
var id: String = scanned.get("id").toString()
var more: String = scanned.get("more").toString()
}
//Tarea #5109
fun itemScanIsQr(value: String): Boolean { fun itemScanIsQr(value: String): Boolean {
return try { return try {
itemScanned(JSONObject(value)) ItemScanned(JSONObject(value))
return true true
} catch (Ex: Exception) { } catch (ex: Exception) {
return false false
} }
} }
fun itemScanValue(value: String, table: String, field: String): Any { fun itemScanValue(value: String, table: String, field: String): Any {
var item: itemScanned val item: ItemScanned
return try { return try {
try { try {
item = itemScanned(JSONObject(value)) item = ItemScanned(JSONObject(value))
} catch (Ex: Exception) { } catch (ex: Exception) {
return value return value
} }
@ -76,42 +48,8 @@ fun itemScanValue(value: String, table: String, field: String): Any {
} }
throw Exception("QR no válido") throw Exception("QR no válido")
} catch (ex: Exception) {
} catch (Ex: Exception) { throw ex
throw Ex
} }
} }
fun itemScanValueOld(value: String, table: String, field: String): Any {
val gson = Gson()
var item = itemScanned(JSONObject(value))
try {
if (item.company == "vnl" && item.table == table) {
var valueToReturn: Map<String, Any> =
gson.fromJson(value, object : TypeToken<Map<String, Any>>() {}.type)
valueToReturn.forEach {
if (it.key == field) {
// return it.value.toString() /*si no li pose toString torna error double to string*/
/*return (it.value as Double).toInt()*/
item.more
}
}
}
throw Exception("QR no válido")
} catch (Ex: Exception) {
if (Ex.message!!.contains("QR")) {
throw Ex
} else {
return value
}
}
}

View File

@ -1,17 +1,15 @@
package es.verdnatura.presentation.view.feature.paletizador.fragment package es.verdnatura.presentation.view.feature.paletizador.fragment
import android.view.View import android.view.View
import android.view.View.GONE
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import androidx.core.view.isVisible import androidx.core.view.isVisible
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentGeneralBlackBinding import es.verdnatura.databinding.FragmentGeneralBlackBinding
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.itemScanned import es.verdnatura.presentation.common.itemScanValue
import es.verdnatura.presentation.view.component.CustomDialogInput import es.verdnatura.presentation.view.component.CustomDialogInput
import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletVO import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletVO
import org.json.JSONObject
class PalletScanFragment( class PalletScanFragment(
var title: String = "", var action: String var title: String = "", var action: String
@ -21,7 +19,7 @@ class PalletScanFragment(
override fun getLayoutId(): Int = R.layout.fragment_general_black override fun getLayoutId(): Int = R.layout.fragment_general_black
private lateinit var customDialogList: CustomDialogInput private lateinit var customDialogList: CustomDialogInput
private var itemScaned: String = "" private var itemScaned: Int = 0
private var isShowed = false private var isShowed = false
@ -44,42 +42,6 @@ class PalletScanFragment(
binding.mainToolbar.toolbarTitle.text = title binding.mainToolbar.toolbarTitle.text = title
} }
private fun expeditionState_addByPallet(vPalletId: Int) {
customDialogList.dismiss()
binding.splashProgress.visibility = View.VISIBLE
viewModel.expeditionState_addByPallet(
vPalletId,
"STORED"
)
}
private fun expeditionPallet_get(vPalletId: String) {
binding.splashProgress.visibility = View.VISIBLE
customDialogList.dismiss()
var valueScanned: String
try {
valueScanned = itemScanned(JSONObject(vPalletId)).id.toString()
} catch (ex: Exception) {
valueScanned = vPalletId
}
itemScaned = valueScanned
try {
viewModel.expeditionPallet_get(
itemScaned.toInt(),
)
} catch (ex: Exception) {
binding.splashProgress.visibility = GONE
ex.message!!.toast(context)
}
}
private fun setEvents() { private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener { binding.mainToolbar.backButton.setOnClickListener {
@ -94,7 +56,6 @@ class PalletScanFragment(
override fun observeViewModel() { override fun observeViewModel() {
with(viewModel) { with(viewModel) {
binding.splashProgress.visibility = View.GONE binding.splashProgress.visibility = View.GONE
responseScan.observe(viewLifecycleOwner) { responseScan.observe(viewLifecycleOwner) {
@ -132,7 +93,10 @@ class PalletScanFragment(
binding.splashProgress.visibility = View.GONE binding.splashProgress.visibility = View.GONE
ma.messageWithSound(getString(R.string.palletScanned) + itemScaned, false, true) ma.messageWithSound(getString(R.string.palletScanned) + itemScaned, false, true)
ma.onComprobarPalletFromPalletScan(it, ItemPalletVO(Pallet = itemScaned.toInt())) ma.onComprobarPalletFromPalletScan(
it,
ItemPalletVO(Pallet = itemScaned.toInt())
)
} }
} }
@ -142,48 +106,54 @@ class PalletScanFragment(
private fun showPalletScan() { private fun showPalletScan() {
//customDialogList.setCancelable(false) customDialogList.setTitle(
if (action == "receive") {
when (action) { getString(R.string.palletScan)
"receive" -> { } else {
customDialogList.setTitle(getString(R.string.palletScan)) getString(R.string.palletScanAdd)
} }
"get" -> { )
customDialogList.setTitle(getString(R.string.palletScanAdd))
}
else -> {}
}
customDialogList.setOkButton(getString(R.string.end)) { customDialogList.setOkButton(getString(R.string.end)) {
ma.hideKeyboard(customDialogList.getEditText()) ma.hideKeyboard(customDialogList.getEditText())
customDialogList.dismiss() customDialogList.dismiss()
}.setValue("").show() }.setValue("").show()
customDialogList.setFocusText() customDialogList.setFocusText()
ma.hideKeyboard(customDialogList.getEditText()) ma.hideKeyboard(customDialogList.getEditText())
customDialogList.getEditText().setOnEditorActionListener { _, actionId, _ -> customDialogList.getEditText().setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5 || actionId == 6) { if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5 || actionId == 6) {
if (customDialogList.getValue().isNotEmpty() if (customDialogList.getValue().isNotEmpty()
) { ) {
itemScaned = customDialogList.getValue() try {
itemScaned = itemScanValue(
customDialogList.getValue(),
"expeditionPallet",
"id"
) as Int
} catch (ex: Exception) {
ex.message!!.toast(requireContext())
}
ma.hideKeyboard(customDialogList.getEditText()) ma.hideKeyboard(customDialogList.getEditText())
when (action) { when (action) {
"receive" -> expeditionState_addByPallet( "receive" -> viewModel.expeditionState_addByPallet(
customDialogList.getValue().toInt() itemScaned,
"STORED"
)
"get" -> viewModel.expeditionPallet_get(
itemScaned
) )
"get" -> expeditionPallet_get(customDialogList.getValue())
} }
customDialogList.dismiss()
binding.splashProgress.visibility = View.VISIBLE
customDialogList.setValue("") customDialogList.setValue("")
} }
@ -193,5 +163,4 @@ class PalletScanFragment(
} }
} }
} }