Commit f65cd6121da32b9167aca39d441274099d2a73b3

Authored by Mauricio Sanchez
1 parent 880347544e
Exists in master

22102020 0743

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>