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> |