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 androidx.annotation.RequiresApi
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import org.json.JSONObject
import java.time.LocalDateTime
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 id: Int = scanned.get("id").toString().toInt()
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()
@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 {
return try {
itemScanned(JSONObject(value))
return true
ItemScanned(JSONObject(value))
true
} catch (Ex: Exception) {
return false
} catch (ex: Exception) {
false
}
}
fun itemScanValue(value: String, table: String, field: String): Any {
var item: itemScanned
val item: ItemScanned
return try {
try {
item = itemScanned(JSONObject(value))
} catch (Ex: Exception) {
item = ItemScanned(JSONObject(value))
} catch (ex: Exception) {
return value
}
@ -76,42 +48,8 @@ fun itemScanValue(value: String, table: String, field: String): Any {
}
throw Exception("QR no válido")
} catch (Ex: Exception) {
throw Ex
} catch (ex: Exception) {
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
import android.view.View
import android.view.View.GONE
import android.view.inputmethod.EditorInfo
import androidx.core.view.isVisible
import es.verdnatura.R
import es.verdnatura.databinding.FragmentGeneralBlackBinding
import es.verdnatura.domain.toast
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.feature.paletizador.model.ItemPalletVO
import org.json.JSONObject
class PalletScanFragment(
var title: String = "", var action: String
@ -21,7 +19,7 @@ class PalletScanFragment(
override fun getLayoutId(): Int = R.layout.fragment_general_black
private lateinit var customDialogList: CustomDialogInput
private var itemScaned: String = ""
private var itemScaned: Int = 0
private var isShowed = false
@ -44,42 +42,6 @@ class PalletScanFragment(
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() {
binding.mainToolbar.backButton.setOnClickListener {
@ -94,7 +56,6 @@ class PalletScanFragment(
override fun observeViewModel() {
with(viewModel) {
binding.splashProgress.visibility = View.GONE
responseScan.observe(viewLifecycleOwner) {
@ -132,7 +93,10 @@ class PalletScanFragment(
binding.splashProgress.visibility = View.GONE
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() {
//customDialogList.setCancelable(false)
when (action) {
"receive" -> {
customDialogList.setTitle(getString(R.string.palletScan))
customDialogList.setTitle(
if (action == "receive") {
getString(R.string.palletScan)
} else {
getString(R.string.palletScanAdd)
}
"get" -> {
customDialogList.setTitle(getString(R.string.palletScanAdd))
}
else -> {}
}
)
customDialogList.setOkButton(getString(R.string.end)) {
ma.hideKeyboard(customDialogList.getEditText())
customDialogList.dismiss()
}.setValue("").show()
customDialogList.setFocusText()
ma.hideKeyboard(customDialogList.getEditText())
customDialogList.getEditText().setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5 || actionId == 6) {
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())
when (action) {
"receive" -> expeditionState_addByPallet(
customDialogList.getValue().toInt()
"receive" -> viewModel.expeditionState_addByPallet(
itemScaned,
"STORED"
)
"get" -> viewModel.expeditionPallet_get(
itemScaned
)
"get" -> expeditionPallet_get(customDialogList.getValue())
}
customDialogList.dismiss()
binding.splashProgress.visibility = View.VISIBLE
customDialogList.setValue("")
}
@ -193,5 +163,4 @@ class PalletScanFragment(
}
}
}
}