From f65cd6121da32b9167aca39d441274099d2a73b3 Mon Sep 17 00:00:00 2001 From: Mauricio Sanchez Date: Thu, 22 Oct 2020 07:43:47 -0300 Subject: [PATCH] 22102020 0743 --- .../deboinventariov20/DB/DAO/ArticulosDAO.kt | 10 ++++ .../deboinventariov20/UI/Utils/Utils.kt | 4 +- .../UI/inventario/InventarioFragment.kt | 54 +++++++++++++++------ app/src/main/res/values/strings.xml | 2 +- ...lle Inventario Din\303\241mico (ITOMINVD).docx" | Bin 0 -> 162 bytes 5 files changed, 52 insertions(+), 18 deletions(-) create mode 100644 "~$ardar Detalle Inventario Din\303\241mico (ITOMINVD).docx" diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/DB/DAO/ArticulosDAO.kt b/app/src/main/java/com/focasoftware/deboinventariov20/DB/DAO/ArticulosDAO.kt index df456f1..ba3f9c3 100644 --- a/app/src/main/java/com/focasoftware/deboinventariov20/DB/DAO/ArticulosDAO.kt +++ b/app/src/main/java/com/focasoftware/deboinventariov20/DB/DAO/ArticulosDAO.kt @@ -36,6 +36,16 @@ interface ArticulosDAO { @Query("SELECT * FROM $TABLA_ART WHERE CODSEC=:sector AND CODART=:codigo") suspend fun fetchArticuloByCodSec(sector: String?, codigo: String?): Articles? + + + @Query("SELECT * FROM $TABLA_ART WHERE TRIM(CODBAR) = :codBarra") + suspend fun findArticuloByCodBarNoArea(codBarra: String): Articles + + @Query("SELECT * FROM $TABLA_ART WHERE TRIM(COO) LIKE :CodOrigen") + suspend fun findArticuloByCodOriNoArea(CodOrigen: String?): List + + @Query("SELECT * FROM $TABLA_ART WHERE DETART LIKE '%' || :description || '%' GROUP BY DETART ORDER BY DETART") + suspend fun findArticuloByDescNoArea(description: String?): List } @Dao diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/UI/Utils/Utils.kt b/app/src/main/java/com/focasoftware/deboinventariov20/UI/Utils/Utils.kt index 4488952..640e2c2 100644 --- a/app/src/main/java/com/focasoftware/deboinventariov20/UI/Utils/Utils.kt +++ b/app/src/main/java/com/focasoftware/deboinventariov20/UI/Utils/Utils.kt @@ -225,7 +225,7 @@ class SelAreaInventarioVentas : DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { return activity?.let { val title = "Inventarios de Ventas" - val content = "!En busqueda de articulos no estaran disponibles los articulos de DEPOSITO¡" + val content = "!En busqueda de articulos estaran disponibles los articulos de VENTAS y DEPOSITO¡" val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) builder.setTitle(title).setMessage(content) .setPositiveButton(android.R.string.ok) { _, _ -> } @@ -238,7 +238,7 @@ class SelAreaInventarioDeposito : DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { return activity?.let { val title = "Inventarios de Depositos" - val content = "!En busqueda de articulos no estaran disponibles los articulos de VENTAS¡" + val content = "!En busqueda de articulos estaran disponibles los articulos de DEPOSITO¡" val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) builder.setTitle(title).setMessage(content) .setPositiveButton(android.R.string.ok) { _, _ -> } diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/UI/inventario/InventarioFragment.kt b/app/src/main/java/com/focasoftware/deboinventariov20/UI/inventario/InventarioFragment.kt index 0dddbfd..7c6a5cb 100644 --- a/app/src/main/java/com/focasoftware/deboinventariov20/UI/inventario/InventarioFragment.kt +++ b/app/src/main/java/com/focasoftware/deboinventariov20/UI/inventario/InventarioFragment.kt @@ -128,10 +128,13 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList } } else {// TODO (SI VENGO DE FRAGMENT DESCRIPCION) listArticulos.clear() - cargarDeBdInventario((inventarioViewModel as InventarioViewModel).InventarioNuevo) - tvTitulo.text = "Inventario " + " # ${(inventarioViewModel as InventarioViewModel).InventarioNuevo} " + descArea - } + GlobalScope.launch(Main) { + val depositoVentas = if (SerchAreaInventario()) "Deposito" else "Ventas" + tvTitulo.text = "Inventario " + " # ${(inventarioViewModel as InventarioViewModel).InventarioNuevo} " + depositoVentas + cargarDeBdInventario((inventarioViewModel as InventarioViewModel).InventarioNuevo) + } + } tCodigoBarras.setOnKeyListener { _, keyCode, keyEvent -> if (keyCode == KeyEvent.KEYCODE_ENTER && keyEvent.action == KeyEvent.ACTION_UP) { sChangeUpper = tCodigoBarras.text.toString() @@ -202,9 +205,12 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList } else if (indiceDelArtEncontrado == -1) {// TODO: no lo encontro en el RV, lo va a buscar en al BD //TODO BUSCO EN BASE DE DATOS val artEncontrado:Articles? = if (EsBalanza) { - buscarCBEnBD(codBarBalanza) + if (iArea){ buscarCBEnBD(codBarBalanza) + }else{ findArticuloByCodBarNoArea(codBarBalanza) } + }else{ - buscarCBEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) + if (iArea){ buscarCBEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) } + else{ findArticuloByCodBarNoArea(sChangeUpper.toUpperCase(Locale.ROOT)) } } continuarCargaCB(artEncontrado)//TODO SE MANDA CERO POR QUE ES UN ARTICULO ESCANEADO NUEVO PARA QUE SEA COMPATIBLE } @@ -248,8 +254,10 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList // } else if // (indiceDelArtEncontrado == -1) {// TODO: no lo encontro en el RV, lo va a buscar en al BD GlobalScope.launch(Main) { - val artEncontrado = buscarDescEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) - continuarCargaDesc(artEncontrado as ArrayList) + if (iArea){val artEncontrado = buscarDescEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) + continuarCargaDesc(artEncontrado as ArrayList)} + else{val artEncontrado = findArticuloByDescNoArea(sChangeUpper.toUpperCase(Locale.ROOT)) + continuarCargaDesc(artEncontrado as ArrayList)} } ivCamara.setImageResource(R.drawable.codbar) @@ -342,10 +350,12 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList // } else if (indiceDelArtEncontrado == -1) { // no lo encontro en el RV, lo va a buscar en al BD - GlobalScope.launch(Dispatchers.Main) { + GlobalScope.launch(Main) { //TODO BUSCO EN BASE DE DATOS - val artEncontrado = buscarCodiogoOriEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) - continuarCargaCodigoOri(artEncontrado) + if (iArea){ val artEncontrado = buscarCodiogoOriEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) + continuarCargaCodigoOri(artEncontrado) } + else{ val artEncontrado = findArticuloByCodOriNoArea(sChangeUpper.toUpperCase(Locale.ROOT)) + continuarCargaCodigoOri(artEncontrado) } } ivCamara.setImageResource(R.drawable.codbar) etCodigoBarras.hint = "Busqueda por Código de Barras" @@ -446,7 +456,6 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList } private fun exportarInventarioHead(aEnviar: ItomInvC, datosCuerpo: List) { - var exporto = false if (serverBajada != null) { if (serverBajada!!.direccion.isNullOrEmpty()) { @@ -506,7 +515,6 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList private fun exportarInventarioBody(datosCuerpo: List):Boolean { - for (cuerpo in datosCuerpo) { val aEnviar: ItomInvD = ItomInvD( cuerpo.sector.toString(), @@ -829,6 +837,14 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList }.await() } + suspend fun findArticuloByCodOriNoArea(CodOri: String): List { + //TODO BUSQUEDA POR CODIGO DE BARRAS + var busqueda: List + return GlobalScope.async(IO) { + busqueda = AppDb.getAppDb((activity as MainActivity))!!.ArticulosDAO()!!.findArticuloByCodOriNoArea(CodOri) + return@async busqueda + }.await() + } suspend fun buscarCBEnBD(CodigoBarras: String): Articles? { //TODO BUSQUEDA POR CODIGO DE BARRAS var busqueda: Articles? = null @@ -838,11 +854,11 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList }.await() } - suspend fun buscarCodigoDeboEnBD(sector: String?, codigo: String?): Articles? { + suspend fun findArticuloByCodBarNoArea(codigoBarras: String): Articles? { //TODO BUSQUEDA POR CODIGO DE BARRAS var busqueda: Articles? return GlobalScope.async(IO) { - busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.fetchArticuloByCodSec(sector, codigo) + busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByCodBarNoArea(codigoBarras) return@async busqueda }.await() } @@ -856,6 +872,14 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList }.await() } + suspend fun findArticuloByDescNoArea(descripcion: String): List? { + //TODO BUSQUEDA POR DESCRIPCION + var busqueda: List? = null + return GlobalScope.async(IO) { + busqueda = AppDb.getAppDb((activity as MainActivity))!!.ArticulosDAO()!!.findArticuloByDescNoArea(descripcion) + return@async busqueda + }.await() + } suspend fun borrarArticulo(sector: String, codigo: String, inventario: String): Int? { //TODO BUSQUEDA POR DESCRIPCION var result: Int @@ -1023,7 +1047,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList private fun InsertarArtEnDB(cuarpoInventario: InvBody) { lifecycleScope.launch { - withContext(Dispatchers.IO) { + withContext(IO) { AppDb.getAppDb((activity as MainActivity))!!.InvBodyDAO()!!.insertInvBody(cuarpoInventario) } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index daa4d31..d378a16 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -33,7 +33,7 @@ - Inventarios Dinámicos + Inventarios de Ventas Inventarios de Depósitos Código Barras: diff --git "a/~$ardar Detalle Inventario Din\303\241mico (ITOMINVD).docx" "b/~$ardar Detalle Inventario Din\303\241mico (ITOMINVD).docx" new file mode 100644 index 0000000000000000000000000000000000000000..1467b3c0f19686fe17ce0810dba3c26014f5d998 GIT binary patch literal 162 zcmWg0O)M?SOwP<#C{D~v&Pc6dAO;99