Commit f65cd6121da32b9167aca39d441274099d2a73b3
1 parent
880347544e
Exists in
master
22102020 0743
Showing
5 changed files
with
52 additions
and
18 deletions
Show diff stats
app/src/main/java/com/focasoftware/deboinventariov20/DB/DAO/ArticulosDAO.kt
| ... | ... | @@ -36,6 +36,16 @@ interface ArticulosDAO { |
| 36 | 36 | |
| 37 | 37 | @Query("SELECT * FROM $TABLA_ART WHERE CODSEC=:sector AND CODART=:codigo") |
| 38 | 38 | suspend fun fetchArticuloByCodSec(sector: String?, codigo: String?): Articles? |
| 39 | + | |
| 40 | + | |
| 41 | + @Query("SELECT * FROM $TABLA_ART WHERE TRIM(CODBAR) = :codBarra") | |
| 42 | + suspend fun findArticuloByCodBarNoArea(codBarra: String): Articles | |
| 43 | + | |
| 44 | + @Query("SELECT * FROM $TABLA_ART WHERE TRIM(COO) LIKE :CodOrigen") | |
| 45 | + suspend fun findArticuloByCodOriNoArea(CodOrigen: String?): List<Articles> | |
| 46 | + | |
| 47 | + @Query("SELECT * FROM $TABLA_ART WHERE DETART LIKE '%' || :description || '%' GROUP BY DETART ORDER BY DETART") | |
| 48 | + suspend fun findArticuloByDescNoArea(description: String?): List<Articles> | |
| 39 | 49 | } |
| 40 | 50 | |
| 41 | 51 | @Dao |
app/src/main/java/com/focasoftware/deboinventariov20/UI/Utils/Utils.kt
| ... | ... | @@ -225,7 +225,7 @@ class SelAreaInventarioVentas : DialogFragment() { |
| 225 | 225 | override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { |
| 226 | 226 | return activity?.let { |
| 227 | 227 | val title = "Inventarios de Ventas" |
| 228 | - val content = "!En busqueda de articulos no estaran disponibles los articulos de DEPOSITO¡" | |
| 228 | + val content = "!En busqueda de articulos estaran disponibles los articulos de VENTAS y DEPOSITO¡" | |
| 229 | 229 | val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) |
| 230 | 230 | builder.setTitle(title).setMessage(content) |
| 231 | 231 | .setPositiveButton(android.R.string.ok) { _, _ -> } |
| ... | ... | @@ -238,7 +238,7 @@ class SelAreaInventarioDeposito : DialogFragment() { |
| 238 | 238 | override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { |
| 239 | 239 | return activity?.let { |
| 240 | 240 | val title = "Inventarios de Depositos" |
| 241 | - val content = "!En busqueda de articulos no estaran disponibles los articulos de VENTAS¡" | |
| 241 | + val content = "!En busqueda de articulos estaran disponibles los articulos de DEPOSITO¡" | |
| 242 | 242 | val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) |
| 243 | 243 | builder.setTitle(title).setMessage(content) |
| 244 | 244 | .setPositiveButton(android.R.string.ok) { _, _ -> } |
app/src/main/java/com/focasoftware/deboinventariov20/UI/inventario/InventarioFragment.kt
| ... | ... | @@ -128,10 +128,13 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 128 | 128 | } |
| 129 | 129 | } else {// TODO (SI VENGO DE FRAGMENT DESCRIPCION) |
| 130 | 130 | listArticulos.clear() |
| 131 | - cargarDeBdInventario((inventarioViewModel as InventarioViewModel).InventarioNuevo) | |
| 132 | - tvTitulo.text = "Inventario " + " # ${(inventarioViewModel as InventarioViewModel).InventarioNuevo} " + descArea | |
| 133 | - } | |
| 131 | + GlobalScope.launch(Main) { | |
| 132 | + val depositoVentas = if (SerchAreaInventario()) "Deposito" else "Ventas" | |
| 133 | + tvTitulo.text = "Inventario " + " # ${(inventarioViewModel as InventarioViewModel).InventarioNuevo} " + depositoVentas | |
| 134 | 134 | |
| 135 | + cargarDeBdInventario((inventarioViewModel as InventarioViewModel).InventarioNuevo) | |
| 136 | + } | |
| 137 | + } | |
| 135 | 138 | tCodigoBarras.setOnKeyListener { _, keyCode, keyEvent -> |
| 136 | 139 | if (keyCode == KeyEvent.KEYCODE_ENTER && keyEvent.action == KeyEvent.ACTION_UP) { |
| 137 | 140 | sChangeUpper = tCodigoBarras.text.toString() |
| ... | ... | @@ -202,9 +205,12 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 202 | 205 | } else if (indiceDelArtEncontrado == -1) {// TODO: no lo encontro en el RV, lo va a buscar en al BD |
| 203 | 206 | //TODO BUSCO EN BASE DE DATOS |
| 204 | 207 | val artEncontrado:Articles? = if (EsBalanza) { |
| 205 | - buscarCBEnBD(codBarBalanza) | |
| 208 | + if (iArea){ buscarCBEnBD(codBarBalanza) | |
| 209 | + }else{ findArticuloByCodBarNoArea(codBarBalanza) } | |
| 210 | + | |
| 206 | 211 | }else{ |
| 207 | - buscarCBEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) | |
| 212 | + if (iArea){ buscarCBEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) } | |
| 213 | + else{ findArticuloByCodBarNoArea(sChangeUpper.toUpperCase(Locale.ROOT)) } | |
| 208 | 214 | } |
| 209 | 215 | continuarCargaCB(artEncontrado)//TODO SE MANDA CERO POR QUE ES UN ARTICULO ESCANEADO NUEVO PARA QUE SEA COMPATIBLE |
| 210 | 216 | } |
| ... | ... | @@ -248,8 +254,10 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 248 | 254 | // } else if |
| 249 | 255 | // (indiceDelArtEncontrado == -1) {// TODO: no lo encontro en el RV, lo va a buscar en al BD |
| 250 | 256 | GlobalScope.launch(Main) { |
| 251 | - val artEncontrado = buscarDescEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) | |
| 252 | - continuarCargaDesc(artEncontrado as ArrayList<Articles>) | |
| 257 | + if (iArea){val artEncontrado = buscarDescEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) | |
| 258 | + continuarCargaDesc(artEncontrado as ArrayList<Articles>)} | |
| 259 | + else{val artEncontrado = findArticuloByDescNoArea(sChangeUpper.toUpperCase(Locale.ROOT)) | |
| 260 | + continuarCargaDesc(artEncontrado as ArrayList<Articles>)} | |
| 253 | 261 | } |
| 254 | 262 | |
| 255 | 263 | ivCamara.setImageResource(R.drawable.codbar) |
| ... | ... | @@ -342,10 +350,12 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 342 | 350 | // } else if (indiceDelArtEncontrado == -1) { |
| 343 | 351 | // no lo encontro en el RV, lo va a buscar en al BD |
| 344 | 352 | |
| 345 | - GlobalScope.launch(Dispatchers.Main) { | |
| 353 | + GlobalScope.launch(Main) { | |
| 346 | 354 | //TODO BUSCO EN BASE DE DATOS |
| 347 | - val artEncontrado = buscarCodiogoOriEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) | |
| 348 | - continuarCargaCodigoOri(artEncontrado) | |
| 355 | + if (iArea){ val artEncontrado = buscarCodiogoOriEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) | |
| 356 | + continuarCargaCodigoOri(artEncontrado) } | |
| 357 | + else{ val artEncontrado = findArticuloByCodOriNoArea(sChangeUpper.toUpperCase(Locale.ROOT)) | |
| 358 | + continuarCargaCodigoOri(artEncontrado) } | |
| 349 | 359 | } |
| 350 | 360 | ivCamara.setImageResource(R.drawable.codbar) |
| 351 | 361 | etCodigoBarras.hint = "Busqueda por Código de Barras" |
| ... | ... | @@ -446,7 +456,6 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 446 | 456 | } |
| 447 | 457 | |
| 448 | 458 | private fun exportarInventarioHead(aEnviar: ItomInvC, datosCuerpo: List<InvBody>) { |
| 449 | - var exporto = false | |
| 450 | 459 | if (serverBajada != null) { |
| 451 | 460 | |
| 452 | 461 | if (serverBajada!!.direccion.isNullOrEmpty()) { |
| ... | ... | @@ -506,7 +515,6 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 506 | 515 | |
| 507 | 516 | private fun exportarInventarioBody(datosCuerpo: List<InvBody>):Boolean { |
| 508 | 517 | |
| 509 | - | |
| 510 | 518 | for (cuerpo in datosCuerpo) { |
| 511 | 519 | val aEnviar: ItomInvD = ItomInvD( |
| 512 | 520 | cuerpo.sector.toString(), |
| ... | ... | @@ -829,6 +837,14 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 829 | 837 | }.await() |
| 830 | 838 | } |
| 831 | 839 | |
| 840 | + suspend fun findArticuloByCodOriNoArea(CodOri: String): List<Articles> { | |
| 841 | + //TODO BUSQUEDA POR CODIGO DE BARRAS | |
| 842 | + var busqueda: List<Articles> | |
| 843 | + return GlobalScope.async(IO) { | |
| 844 | + busqueda = AppDb.getAppDb((activity as MainActivity))!!.ArticulosDAO()!!.findArticuloByCodOriNoArea(CodOri) | |
| 845 | + return@async busqueda | |
| 846 | + }.await() | |
| 847 | + } | |
| 832 | 848 | suspend fun buscarCBEnBD(CodigoBarras: String): Articles? { |
| 833 | 849 | //TODO BUSQUEDA POR CODIGO DE BARRAS |
| 834 | 850 | var busqueda: Articles? = null |
| ... | ... | @@ -838,11 +854,11 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 838 | 854 | }.await() |
| 839 | 855 | } |
| 840 | 856 | |
| 841 | - suspend fun buscarCodigoDeboEnBD(sector: String?, codigo: String?): Articles? { | |
| 857 | + suspend fun findArticuloByCodBarNoArea(codigoBarras: String): Articles? { | |
| 842 | 858 | //TODO BUSQUEDA POR CODIGO DE BARRAS |
| 843 | 859 | var busqueda: Articles? |
| 844 | 860 | return GlobalScope.async(IO) { |
| 845 | - busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.fetchArticuloByCodSec(sector, codigo) | |
| 861 | + busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByCodBarNoArea(codigoBarras) | |
| 846 | 862 | return@async busqueda |
| 847 | 863 | }.await() |
| 848 | 864 | } |
| ... | ... | @@ -856,6 +872,14 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 856 | 872 | }.await() |
| 857 | 873 | } |
| 858 | 874 | |
| 875 | + suspend fun findArticuloByDescNoArea(descripcion: String): List<Articles>? { | |
| 876 | + //TODO BUSQUEDA POR DESCRIPCION | |
| 877 | + var busqueda: List<Articles>? = null | |
| 878 | + return GlobalScope.async(IO) { | |
| 879 | + busqueda = AppDb.getAppDb((activity as MainActivity))!!.ArticulosDAO()!!.findArticuloByDescNoArea(descripcion) | |
| 880 | + return@async busqueda | |
| 881 | + }.await() | |
| 882 | + } | |
| 859 | 883 | suspend fun borrarArticulo(sector: String, codigo: String, inventario: String): Int? { |
| 860 | 884 | //TODO BUSQUEDA POR DESCRIPCION |
| 861 | 885 | var result: Int |
| ... | ... | @@ -1023,7 +1047,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 1023 | 1047 | |
| 1024 | 1048 | private fun InsertarArtEnDB(cuarpoInventario: InvBody) { |
| 1025 | 1049 | lifecycleScope.launch { |
| 1026 | - withContext(Dispatchers.IO) { | |
| 1050 | + withContext(IO) { | |
| 1027 | 1051 | AppDb.getAppDb((activity as MainActivity))!!.InvBodyDAO()!!.insertInvBody(cuarpoInventario) |
| 1028 | 1052 | } |
| 1029 | 1053 | } |
app/src/main/res/values/strings.xml
| ... | ... | @@ -33,7 +33,7 @@ |
| 33 | 33 | |
| 34 | 34 | |
| 35 | 35 | <!-- Fragment Inventario--> |
| 36 | - <string name="invTitulo">Inventarios Dinámicos</string> | |
| 36 | + <string name="invTitulo"> </string> | |
| 37 | 37 | <string name="invTituloV">Inventarios de Ventas</string> |
| 38 | 38 | <string name="invTituloD">Inventarios de Depósitos</string> |
| 39 | 39 | <string name="invCodigoBarras">Código Barras:</string> |