diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index c414bd1..3cc336b 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -1,29 +1,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -158,14 +133,6 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
index 79ee123..6e6eec1 100644
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -1,5 +1,6 @@
+
\ No newline at end of file
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 c8abda2..40d9d5b 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
@@ -20,22 +20,22 @@ interface ArticulosDAO {
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insertArticulos(articulos: Articles?)
- @Query("SELECT * FROM $TABLA_ART ORDER BY DES DESC")
+ @Query("SELECT * FROM $TABLA_ART ORDER BY DETART DESC")
suspend fun findAllArticulos(): List
- @Query("SELECT * FROM $TABLA_ART WHERE DEPSN=:dep AND DES LIKE '%' || :description || '%' GROUP BY DES ORDER BY DES")
- suspend fun findArticuloByDesc(description: String?, dep: Int): List
+ @Query("SELECT * FROM $TABLA_ART WHERE DEPSN=:dep AND DETART LIKE '%' || :description || '%' GROUP BY DETART ORDER BY DETART")
+ suspend fun findArticuloByDesc(description: String?, dep: Boolean): List
- @Query("SELECT * FROM $TABLA_ART WHERE DEPSN=:dep AND CB LIKE :codBarra")
- suspend fun findArticuloByCodBar(codBarra: String?, dep: Int): Articles?
+ @Query("SELECT * FROM $TABLA_ART WHERE DEPSN=:dep AND TRIM(CODBAR) = :codBarra")
+ suspend fun findArticuloByCodBar(codBarra: String, dep: Boolean): Articles
- @Query("SELECT * FROM $TABLA_ART WHERE DEPSN=:dep AND CBC LIKE :CodOrigen")
- suspend fun findArticuloByCodOri(CodOrigen: String?, dep: Int): Articles?
+ @Query("SELECT * FROM $TABLA_ART WHERE DEPSN=:dep AND TRIM(COO) LIKE :CodOrigen")
+ suspend fun findArticuloByCodOri(CodOrigen: String?, dep: Boolean): List
@Query("DELETE FROM $TABLA_ART")
suspend fun deleteAllArticulos()
- @Query("SELECT * FROM $TABLA_ART WHERE SEC=:sector AND COD=:codigo")
+ @Query("SELECT * FROM $TABLA_ART WHERE CODSEC=:sector AND CODART=:codigo")
suspend fun fetchArticuloByCodSec(sector: String?, codigo: String?): Articles?
}
@@ -56,6 +56,9 @@ interface InvHeadDAO {
@Query("SELECT * FROM $TABLA_INV_H ORDER BY INV_FEI")
suspend fun fetchAllInvHead(): List
+ @Query("SELECT INV_LUG FROM $TABLA_INV_H WHERE INV_NUM=:inven")
+ suspend fun fetchAreaInvH (inven: Int): Boolean
+
@Query("SELECT INV_PRODCONT FROM $TABLA_INV_H WHERE INV_NUM=:inven")
suspend fun consultaCantidadInvH (inven: Int): Int
diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/Model/ProductosApi.kt b/app/src/main/java/com/focasoftware/deboinventariov20/Model/ProductosApi.kt
index 24ba60f..e060b3f 100644
--- a/app/src/main/java/com/focasoftware/deboinventariov20/Model/ProductosApi.kt
+++ b/app/src/main/java/com/focasoftware/deboinventariov20/Model/ProductosApi.kt
@@ -5,7 +5,7 @@ import retrofit2.http.GET
interface ProductosApi {
- @GET("api/articulos")
+ @GET("articulos/articulosCodBarra")
suspend fun getProductos(): Response>
}
\ No newline at end of file
diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/Model/Tablas.kt b/app/src/main/java/com/focasoftware/deboinventariov20/Model/Tablas.kt
index e4a74f2..ab53801 100644
--- a/app/src/main/java/com/focasoftware/deboinventariov20/Model/Tablas.kt
+++ b/app/src/main/java/com/focasoftware/deboinventariov20/Model/Tablas.kt
@@ -10,40 +10,69 @@ import com.focasoftware.deboinventariov20.DB.Constans.Constans.Companion.TABLA_S
import com.google.gson.annotations.SerializedName
import java.io.Serializable
-data class Productos(@SerializedName("SEC") var sector: String?,
- @SerializedName("COD") var codigo: String?,
- @SerializedName("DESC") var descripcion: String?,
- @SerializedName("CB") var codBar: String?,
- @SerializedName("CBC") var codOrigen: String?,
- @SerializedName("PRE_VTA") var precio: String?,
- @SerializedName("PRE_COS") var costo: String?,
- @SerializedName( "EV") var exiVenta: String?,
- @SerializedName( "ED") var exiDeposito: String?,
- @SerializedName( "DE") var de: String?,
- @SerializedName( "BAL") var balanza: Int?,
- @SerializedName("DEPSN") var depSn: Int?,
- @SerializedName("FOTO") var imagen: String?)
-
+//data class Productos(@SerializedName("SEC") var sector: String?,
+// @SerializedName("COD") var codigo: String?,
+// @SerializedName("DESC") var descripcion: String?,
+// @SerializedName("CB") var codBar: String?,
+// @SerializedName("CBC") var codOrigen: String?,
+// @SerializedName("PRE_VTA") var precio: String?,
+// @SerializedName("PRE_COS") var costo: String?,
+// @SerializedName( "EV") var exiVenta: String?,
+// @SerializedName( "ED") var exiDeposito: String?,
+// @SerializedName( "DE") var de: String?,
+// @SerializedName( "BAL") var balanza: Int?,
+// @SerializedName("DEPSN") var depSn: Int?,
+// @SerializedName("FOTO") var imagen: String?)
+data class Productos(@SerializedName("CODSEC") var sector: String?,
+ @SerializedName("CODART") var codigo: String?,
+ @SerializedName("DETART") var descripcion: String?,
+ @SerializedName("CODBAR") var codBar: String?,
+ @SerializedName("COO") var codOrigen: String?,
+ @SerializedName("PREVEN") var precio: String?,
+ @SerializedName("COSTO") var costo: String?,
+ @SerializedName( "EXIVTA") var exiVenta: String?,
+ @SerializedName( "EXIDEP") var exiDeposito: String?,
+ @SerializedName( "DVE") var de: String?,
+ @SerializedName( "UNIVEN") var balanza: Int?,
+ @SerializedName("DEPSN") var depSn: Boolean?,
+ @SerializedName("FOTO") var imagen: String?)
+//@Entity(tableName = TABLA_ART)
+//data class Articles(@ColumnInfo(name = "SEC") var sector: String?,
+// @ColumnInfo(name = "COD") var codigo: String?,
+// @ColumnInfo(name = "DES") var descripcion: String?,
+// @ColumnInfo(name = "CB") var codBar: String?,
+// @ColumnInfo(name = "CBC") var codOrigen: String?,
+// @ColumnInfo(name = "PRE_VTA") var precio: String?,
+// @ColumnInfo(name = "PRE_COS") var costo: String?,
+// @ColumnInfo(name = "EV") var exiVenta: String?,
+// @ColumnInfo(name = "ED") var exiDeposito: String?,
+// @ColumnInfo(name = "DE") var de: String?,
+// @ColumnInfo(name = "BAL") var balanza: Int?,
+// @ColumnInfo(name = "DEPSN") var depSn: Int?,
+// @ColumnInfo(name = "FOTO") var imagen: String?) : Serializable {
+// @PrimaryKey(autoGenerate = true)
+// @ColumnInfo(name = "id")
+// var id: Long = 0
+//}
@Entity(tableName = TABLA_ART)
-data class Articles(@ColumnInfo(name = "SEC") var sector: String?,
- @ColumnInfo(name = "COD") var codigo: String?,
- @ColumnInfo(name = "DES") var descripcion: String?,
- @ColumnInfo(name = "CB") var codBar: String?,
- @ColumnInfo(name = "CBC") var codOrigen: String?,
- @ColumnInfo(name = "PRE_VTA") var precio: String?,
- @ColumnInfo(name = "PRE_COS") var costo: String?,
- @ColumnInfo(name = "EV") var exiVenta: String?,
- @ColumnInfo(name = "ED") var exiDeposito: String?,
- @ColumnInfo(name = "DE") var de: String?,
- @ColumnInfo(name = "BAL") var balanza: Int?,
- @ColumnInfo(name = "DEPSN") var depSn: Int?,
- @ColumnInfo(name = "FOTO") var imagen: String?) : Serializable {
+data class Articles(@ColumnInfo(name = "CODSEC") var sector: String?,
+ @ColumnInfo(name = "CODART") var codigo: String?,
+ @ColumnInfo(name = "DETART") var descripcion: String?,
+ @ColumnInfo(name = "CODBAR") var codBar: String?,
+ @ColumnInfo(name = "COO") var codOrigen: String?,
+ @ColumnInfo(name = "PREVEN") var precio: String?,
+ @ColumnInfo(name = "COSTO") var costo: String?,
+ @ColumnInfo(name = "EXIVTA") var exiVenta: String?,
+ @ColumnInfo(name = "EXIDEP") var exiDeposito: String?,
+ @ColumnInfo(name = "DVE") var de: String?,
+ @ColumnInfo(name = "UNIVEN") var balanza: Int?,
+ @ColumnInfo(name = "DEPSN") var depSn: Boolean?,
+ @ColumnInfo(name = "FOTO") var imagen: String?) : Serializable {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
var id: Long = 0
}
-
@Entity(tableName = TABLA_INV_H)
data class InvHead(@PrimaryKey(autoGenerate = true) @ColumnInfo(name = "INV_NUM") var invNum: Int,
@ColumnInfo(name = "INV_DESC") var descripcion: String?,
@@ -52,7 +81,7 @@ data class InvHead(@PrimaryKey(autoGenerate = true) @ColumnInfo(name = "INV_NUM"
@ColumnInfo(name = "INV_FEF") var fechaFinal: String?,
// productos contados en el inventario
@ColumnInfo(name = "INV_PRODCONT") var prodContados: Long?,
- @ColumnInfo(name = "INV_LUG") var lugar: Int?,
+ @ColumnInfo(name = "INV_LUG") var lugar: Boolean?,
// Solo se ajustan los productos incluidos en el conteo=0
// Ajusta productos no incluidos en el conteo con stock en cero=1
@ColumnInfo(name = "PRO_NO_CONTA") var stDesc: Int?,
@@ -62,18 +91,18 @@ data class InvHead(@PrimaryKey(autoGenerate = true) @ColumnInfo(name = "INV_NUM"
@Entity(tableName = TABLA_INV_B)
data class InvBody(@ColumnInfo(name = "INV_NUM") var invNum: Int,
- @ColumnInfo(name = "SEC") var sector: String?,
- @ColumnInfo(name = "COD") var codigo: String?,
- @ColumnInfo(name = "DES") var descripcion: String?,
- @ColumnInfo(name = "CANT") var cantTomada: String?,
- @ColumnInfo(name = "CB") var codBar: String?,
- @ColumnInfo(name = "CBC") var codOrigen: String?,
- @ColumnInfo(name = "PRE_VTA") var precio: String?,
- @ColumnInfo(name = "PRE_COS") var costo: String?,
- @ColumnInfo(name = "BAL") var balanza: Int?,
- @ColumnInfo(name = "DSN") var depSn: Int?,
- @ColumnInfo(name = "INV_FEI") var fechaInicio: String?,
- @ColumnInfo(name = "INV_FEF") var fechaFinal: String?) : Serializable {
+ @ColumnInfo(name = "SEC") var sector: String?,
+ @ColumnInfo(name = "COD") var codigo: String?,
+ @ColumnInfo(name = "DES") var descripcion: String?,
+ @ColumnInfo(name = "CANT") var cantTomada: String?,
+ @ColumnInfo(name = "CB") var codBar: String?,
+ @ColumnInfo(name = "CBC") var codOrigen: String?,
+ @ColumnInfo(name = "PRE_VTA") var precio: String?,
+ @ColumnInfo(name = "PRE_COS") var costo: String?,
+ @ColumnInfo(name = "BAL") var balanza: Int?,
+ @ColumnInfo(name = "DSN") var depSn: Boolean?,
+ @ColumnInfo(name = "INV_FEI") var fechaInicio: String?,
+ @ColumnInfo(name = "INV_FEF") var fechaFinal: String?) : Serializable {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
var id: Long = 0
diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/UI/actualizacionMaestros/ActuaMaestrosFragment.kt b/app/src/main/java/com/focasoftware/deboinventariov20/UI/actualizacionMaestros/ActuaMaestrosFragment.kt
index 0ef95f5..176ac9a 100644
--- a/app/src/main/java/com/focasoftware/deboinventariov20/UI/actualizacionMaestros/ActuaMaestrosFragment.kt
+++ b/app/src/main/java/com/focasoftware/deboinventariov20/UI/actualizacionMaestros/ActuaMaestrosFragment.kt
@@ -15,6 +15,7 @@ import kotlinx.android.synthetic.main.fragment_actua_maestros.*
import kotlinx.coroutines.*
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Dispatchers.Main
+import java.util.ArrayList
var BASE_URL = ""
@@ -54,18 +55,18 @@ class ActuaMaestrosFragment : Fragment() {
return v
}
-
private suspend fun obtenerArticulos() {
val productosService = ProductosService.getProductosService()
var index: Long = 1
withContext(IO) {
- val job = CoroutineScope(Dispatchers.IO).launch {
+ val job = CoroutineScope(IO).launch {
// TODO: BORRO TODO LOS ARTICULOS DE LA BASE PARA CARGARLOS DE NUEVO
AppDb.getAppDb(requireActivity())!!.ArticulosDAO()!!.deleteAllArticulos()
val response = productosService.getProductos()
if (response.isSuccessful) {
+
for (pro in response.body()!!) {
val artiAcargar = Articles(pro.sector,
pro.codigo,
@@ -88,6 +89,12 @@ class ActuaMaestrosFragment : Fragment() {
countriesList.text = "¡Datos Importados Correctamente!"
loading_view.visibility = View.GONE
}
+ }else{
+ withContext(Main) {
+ countriesList.visibility = View.VISIBLE
+ countriesList.text = "¡Error!"
+ loading_view.visibility = View.GONE
+ }
}
}
if (job == null) {
@@ -99,6 +106,7 @@ class ActuaMaestrosFragment : Fragment() {
}
}
+
// withContext(Dispatchers.Main) {
// if (response.isSuccessful) {
// val call = WebService
diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripCorigenFragment/CodigoOriFragment.kt b/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripCorigenFragment/CodigoOriFragment.kt
new file mode 100644
index 0000000..08dcc3d
--- /dev/null
+++ b/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripCorigenFragment/CodigoOriFragment.kt
@@ -0,0 +1,274 @@
+package com.focasoftware.deboinventariov20.UI.descripCorigenFragment
+
+import android.app.AlertDialog
+import android.content.Context
+import android.content.SharedPreferences
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.drawable.ColorDrawable
+import android.os.Bundle
+import android.text.InputType
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.view.WindowManager
+import android.view.inputmethod.InputMethodManager
+import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.lifecycleScope
+import androidx.navigation.NavController
+import androidx.navigation.Navigation
+import androidx.recyclerview.widget.ItemTouchHelper
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.focasoftware.deboinventariov20.DB.DataBase.AppDb
+import com.focasoftware.deboinventariov20.Model.Articles
+import com.focasoftware.deboinventariov20.Model.InvBody
+import com.focasoftware.deboinventariov20.R
+import com.focasoftware.deboinventariov20.UI.Utils.modificarCantidadEnCabecera
+import com.focasoftware.deboinventariov20.UI.inventario.InventarioFragment
+import kotlinx.android.synthetic.main.ingresar_cantidad.view.*
+import kotlinx.android.synthetic.main.ingresar_cantidad.view.btnAceptar
+import kotlinx.android.synthetic.main.login_dialog.view.*
+import kotlinx.coroutines.*
+
+//
+class CodigoOriFragment : Fragment() {
+
+ private lateinit var artAcargar2: List
+ private var listArticulos: List? = null
+ lateinit var viewAdapter2: RecyclerView.Adapter<*>
+ private lateinit var viewManager2: RecyclerView.LayoutManager
+ private lateinit var rcCodigoOri: RecyclerView
+ private var swipeBackground: ColorDrawable = ColorDrawable(Color.YELLOW)
+ private var cantidad = 0F
+ private var numeroInventario = 0
+ lateinit var navController: NavController
+ lateinit var sharedPreferences: SharedPreferences
+ private var artCargadoEnBD: InvBody? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ sharedPreferences = requireActivity().getSharedPreferences("SP_INFO", Context.MODE_PRIVATE)
+ arguments.apply {
+ artAcargar2 = requireArguments().getSerializable("ArrayDesc") as List
+ numeroInventario = requireArguments().getInt("numeroInv")
+ }
+
+ }
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ navController = Navigation.findNavController(view)
+ showSoftKeyboard(view)
+ }
+ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+ val v = inflater.inflate(R.layout.fragment_codigo_ori, container, false)
+ rcCodigoOri = v.findViewById(R.id.rcCodigoOri)
+
+ IngresarRecicler(artAcargar2)
+ showSoftKeyboard(v)
+// btnSalir.setOnClickListener {
+// activity?.onBackPressed();
+//// VolverAinventario()
+// }
+ return v
+ }
+
+ private fun showSoftKeyboard(view: View) {
+ if (view.requestFocus()) {
+ val imm = requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
+ imm.showSoftInput(view, InputMethodManager.HIDE_IMPLICIT_ONLY)
+ }
+ }
+
+ fun IngresarRecicler(articulos: List) {
+
+ viewAdapter2 = CodigoOrigenAdapter(requireContext(),articulos)
+ viewManager2 = LinearLayoutManager(requireContext())
+
+ rcCodigoOri.apply {
+ adapter = viewAdapter2
+ layoutManager = viewManager2
+ }
+ val itemTouchHelperCallback = object : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT) {
+ override fun onMove(p0: RecyclerView, p1: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder): Boolean {
+ return false
+ }
+
+ override fun onSwiped(viewHolder: RecyclerView.ViewHolder, position: Int) {
+
+ GlobalScope.launch(Dispatchers.Main) {
+ //TODO BUSCO EN BASE DE DATOS
+ artCargadoEnBD = buscarCodigoDeboEnBD((viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)?.sector.toString(),
+ (viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)?.codigo.toString(),
+ numeroInventario.toString())
+ if (artCargadoEnBD == null) {
+ val mDialogView = LayoutInflater.from(context).inflate(R.layout.ingresar_cantidad, null)
+ val mBuilder = AlertDialog.Builder(context).setView(mDialogView).setCancelable(false)
+ //TODO: DEPENDIENDO DEL TIPO DE ARTICULO PERMITER INGRESAR DECIMALES O NO
+ if ((viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.balanza==1 || (viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.balanza==3 || (viewAdapter2 as CodigoOrigenAdapter).items2?.get(
+ viewHolder.layoutPosition)!!.balanza==7)
+ mDialogView.etCantidad.inputType= InputType.TYPE_CLASS_NUMBER
+
+ mDialogView.tvTitulo.text = "${(viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.descripcion}"
+ val mAlertDialog = mBuilder.show()
+ mDialogView.etCantidad.requestFocus()
+ mAlertDialog.window!!.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM)
+ mAlertDialog.window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
+ mDialogView.btnAceptar.setOnClickListener {
+ if (mDialogView.etCantidad.text.isNullOrEmpty()) {
+ mDialogView.etCantidad.error = "No vacio"
+ mDialogView.etCantidad.requestFocus()
+ mDialogView.etCantidad.hint = "Ingrese un valor"
+ } else if (!mDialogView.etCantidad.text.isNullOrEmpty()) {
+ cantidad = mDialogView.etCantidad.text.toString().toFloat()
+ val body = InvBody(numeroInventario,
+ (viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.sector,
+ // TODO: PREPARO PARA MANDAR A CARGAR EN LA BD
+ (viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.codigo,
+ (viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.descripcion,
+ cantidad.toString(),
+ (viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.codBar,
+ (viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.codOrigen,
+ (viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.precio,
+ (viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.precio,
+ (viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.balanza,
+ (viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.depSn,
+ InventarioFragment().ObtenerFechaActual(),
+ InventarioFragment().ObtenerFechaActual())
+ InsertarArtEnDB(body)// TODO: MANDO A CARGAR A LA BASE DE DATOS
+ modificarCantidadEnCabecera(numeroInventario, true, requireActivity())
+// VolverAinventario()
+ activity?.onBackPressed()
+ mAlertDialog.dismiss()
+ }
+ }
+ } else if (artCargadoEnBD != null) {
+
+ val mDialogView = LayoutInflater.from(context).inflate(R.layout.login_dialog, null)
+ val mBuilder = AlertDialog.Builder(context).setView(mDialogView).setTitle("Producto '${artCargadoEnBD!!.descripcion}', se encuentra cargado.").setCancelable(false)
+ if (artCargadoEnBD!!.balanza.toString().contains("1") || artCargadoEnBD!!.balanza.toString().contains("3") || artCargadoEnBD!!.balanza.toString().contains("7")) mDialogView.tvNuevaCantidad.inputType= InputType.TYPE_CLASS_NUMBER
+ mDialogView.tvCantInicial.text =String.format("%.2f", artCargadoEnBD!!.cantTomada.toString().toFloat())
+
+ val mAlertDialog = mBuilder.show()
+ mDialogView.tvNuevaCantidad.requestFocus()
+
+
+ mAlertDialog?.window!!.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM)
+ mAlertDialog.window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
+
+ mDialogView.rbSumar.setOnClickListener {
+ if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) {
+ mDialogView.tvResultado.text = String.format("%.2f", (mDialogView.tvCantInicial.text.toString().toFloat() + mDialogView.tvNuevaCantidad.text.toString().toFloat()))
+ mDialogView.tvNuevaCantidad.isEnabled=false
+ }
+ }
+ mDialogView.rbRestar.setOnClickListener {
+ if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) {
+ if (mDialogView.tvCantInicial.text.toString().toFloat() >= mDialogView.tvNuevaCantidad.text.toString().toFloat()) {
+ mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvCantInicial.text.toString().toFloat() - mDialogView.tvNuevaCantidad.text.toString().toFloat())
+ mDialogView.tvNuevaCantidad.isEnabled = false
+ }else{
+ mDialogView.tvResultado.text=""
+ mDialogView.tvResultado.error = "Operación No Valida"
+ mDialogView.tvResultado.requestFocus()
+ mDialogView.tvResultado.hint = "Error"
+ }
+ }
+ }
+ mDialogView.rbMdodificar.setOnClickListener {
+ if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) {
+ mDialogView.tvResultado.text = String.format("%.2f", (mDialogView.tvNuevaCantidad.text.toString().toFloat()))
+ mDialogView.tvNuevaCantidad.isEnabled = false
+ }
+ }
+ mDialogView.btnAceptar.setOnClickListener {
+ if (mDialogView.tvNuevaCantidad.text.isNotEmpty() || !mDialogView.tvNuevaCantidad.text.isBlank()) {
+ if (mDialogView.tvResultado.text.isNotEmpty() || !mDialogView.tvResultado.text.isBlank()) {
+
+ updateCantidad((viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.sector.toString(),
+ (viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.codigo.toString(),
+ mDialogView.tvResultado.text.toString().toFloat())
+// VolverAinventario()
+ activity?.onBackPressed();
+ mAlertDialog.dismiss()
+ } else if (mDialogView.tvNuevaCantidad.text.isNotEmpty() || mDialogView.tvNuevaCantidad.text.isBlank()) {
+ mDialogView.tvResultado.error = "Operación Requerida"
+ mDialogView.tvResultado.requestFocus()
+ mDialogView.tvResultado.hint = "Seleccione Operación"
+ }
+ } else if (mDialogView.tvNuevaCantidad.text.isEmpty() || mDialogView.tvNuevaCantidad.text.isBlank()) {
+ mDialogView.tvNuevaCantidad.error = "Completar"
+ mDialogView.tvNuevaCantidad.requestFocus()
+ mDialogView.tvNuevaCantidad.hint = "Ingrese un valor"
+ }
+ }
+ mDialogView.dialogCancelBtn.setOnClickListener {
+ activity?.onBackPressed();
+ mAlertDialog.dismiss()
+ }
+ }
+ }
+ }
+
+ override fun onChildDraw(c: Canvas, recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, dX: Float, dY: Float, actionState: Int, isCurrentlyActive: Boolean) {
+ super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive)
+ val itemView = viewHolder.itemView
+
+ c.clipRect(0f, itemView.top.toFloat(), dX, itemView.bottom.toFloat())
+
+ if (dX > 0) {
+
+ c.drawColor(Color.RED)
+ } else if (dX < 0) {
+ // swipeBackground.setBounds(itemView.right+dX.toInt(),itemView.top,itemView.right,itemView.bottom)
+ c.drawColor(Color.YELLOW)
+ }
+ swipeBackground.draw(c)
+ super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive)
+ }
+ }
+ val itemTouchHelper2 = ItemTouchHelper(itemTouchHelperCallback)
+ itemTouchHelper2.attachToRecyclerView(rcCodigoOri)
+
+ }
+
+ fun InsertarArtEnDB(cuarpoInventario: InvBody) {
+ lifecycleScope.launch {
+ withContext(Dispatchers.IO) {
+ AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.insertInvBody(cuarpoInventario)
+ }
+ }
+ }
+
+// fun VolverAinventario() {
+//
+// val editor = sharedPreferences.edit()
+// editor?.putString("Inventario", numeroInventario.toString())
+// editor?.apply()
+// editor.commit()
+// navController.navigate(R.id.action_descripcionFragment_to_inventarioFragment)
+// }
+
+ suspend fun buscarCodigoDeboEnBD(sector: String, codigo: String, numInventario: String): InvBody? {
+ //TODO BUSQUEDA POR CODIGO DE BARRAS
+ var busqueda: InvBody? = null
+ return GlobalScope.async(Dispatchers.IO) {
+ busqueda = AppDb.getAppDb(requireContext())!!.InvBodyDAO()!!.fetchArtInInvBody(sector, codigo, numInventario)
+ return@async busqueda
+ }.await()
+ }
+
+ fun updateCantidad(sector: String, codigo: String, cantidad: Float) {
+ lifecycleScope.launch {
+ withContext(Dispatchers.IO) {
+ val activity: FragmentActivity? = activity
+ if (activity != null && isAdded) {
+ AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.UpdateInvBody(cantidad, sector, codigo)
+ }
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripCorigenFragment/CodigoOrigenAdapter.kt b/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripCorigenFragment/CodigoOrigenAdapter.kt
new file mode 100644
index 0000000..02b7d59
--- /dev/null
+++ b/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripCorigenFragment/CodigoOrigenAdapter.kt
@@ -0,0 +1,55 @@
+package com.focasoftware.deboinventariov20.UI.descripCorigenFragment
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import com.focasoftware.deboinventariov20.Model.Articles
+import com.focasoftware.deboinventariov20.Model.InvHead
+import com.focasoftware.deboinventariov20.R
+import com.focasoftware.deboinventariov20.UI.Utils.BaseViewHolder
+import com.focasoftware.deboinventariov20.UI.descripcionFragment.DescripcionListAdapter
+import kotlinx.android.synthetic.main.item.view.*
+import kotlinx.android.synthetic.main.item.view.tvCodigo
+import kotlinx.android.synthetic.main.item.view.tvCodigoOrigen
+import kotlinx.android.synthetic.main.item.view.tvDescripcion
+import kotlinx.android.synthetic.main.item.view.tvSector
+import kotlinx.android.synthetic.main.item_codigo_origen.view.*
+
+class CodigoOrigenAdapter(private val cnxt: Context, private val corigen: List) :
+ RecyclerView.Adapter() {
+ internal var items2: List? = null
+
+ init {
+ this.items2 = corigen
+ }
+
+ override fun onCreateViewHolder(parent: ViewGroup, p1: Int) = ItemsViewHolder(
+ LayoutInflater.from(cnxt).inflate(R.layout.item_codigo_origen, parent, false))
+
+ override fun getItemCount() = corigen.size
+
+ override fun onBindViewHolder(holder: ItemsViewHolder, position: Int) {
+ when (holder) {
+ is ItemsViewHolder -> {
+ holder.bind(items2!![position])
+ }
+ }
+ }
+
+ class ItemsViewHolder constructor(view: View) : RecyclerView.ViewHolder(view) {
+
+ val sector = view.tvSector
+ val codigo = view.tvCodigo
+ val descripcion = view.tvDescripcion
+ val CodigoOrigen = view.tvCodigoOrigen
+
+ fun bind(pro: Articles) {
+ sector.text = pro.sector
+ codigo.text = pro.codigo
+ descripcion.text = pro.descripcion
+ CodigoOrigen.text = pro.codOrigen
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripCorigenFragment/ItemCodigoOrigen.kt b/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripCorigenFragment/ItemCodigoOrigen.kt
new file mode 100644
index 0000000..66c6a92
--- /dev/null
+++ b/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripCorigenFragment/ItemCodigoOrigen.kt
@@ -0,0 +1,3 @@
+package com.focasoftware.deboinventariov20.UI.descripCorigenFragment
+
+data class ItemCodigoOrigen(val sector: String?,val codigo: String?, val descripcion: String?, val codigoOrigen: String?)
\ No newline at end of file
diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripcionFragment/DescripcionFragment.kt b/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripcionFragment/DescripcionFragment.kt
index 62dd939..2d28929 100644
--- a/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripcionFragment/DescripcionFragment.kt
+++ b/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripcionFragment/DescripcionFragment.kt
@@ -1,6 +1,5 @@
package com.focasoftware.deboinventariov20.UI.descripcionFragment
-import android.app.Activity
import android.app.AlertDialog
import android.content.Context
import android.content.SharedPreferences
@@ -14,7 +13,6 @@ import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
import android.view.inputmethod.InputMethodManager
-import androidx.core.content.ContextCompat.getSystemService
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.lifecycleScope
@@ -46,7 +44,6 @@ class DescripcionFragment : Fragment() {
private var numeroInventario = 0
lateinit var navController: NavController
lateinit var sharedPreferences: SharedPreferences
- private var indice = 0
private var artCargadoEnBD: InvBody? = null
override fun onCreate(savedInstanceState: Bundle?) {
@@ -58,18 +55,11 @@ class DescripcionFragment : Fragment() {
}
}
- private fun showSoftKeyboard(view: View) {
- if (view.requestFocus()) {
- val imm = requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
- imm.showSoftInput(view, InputMethodManager.HIDE_IMPLICIT_ONLY)
- }
- }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
navController = Navigation.findNavController(view)
showSoftKeyboard(view)
}
-
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val v = inflater.inflate(R.layout.fragment_descripcion, container, false)
rcDescripcion = v.findViewById(R.id.rcDescripcion)
@@ -85,6 +75,13 @@ class DescripcionFragment : Fragment() {
return v
}
+ private fun showSoftKeyboard(view: View) {
+ if (view.requestFocus()) {
+ val imm = requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
+ imm.showSoftInput(view, InputMethodManager.HIDE_IMPLICIT_ONLY)
+ }
+ }
+
fun IngresarRecicler(articulos: List?) {
viewAdapter2 = DescripcionListAdapter(articulos)
@@ -101,23 +98,20 @@ class DescripcionFragment : Fragment() {
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, position: Int) {
- var indice = 0
- indice = viewHolder.layoutPosition
GlobalScope.launch(Dispatchers.Main) {
//TODO BUSCO EN BASE DE DATOS
- artCargadoEnBD = buscarCodigoDeboEnBD((viewAdapter2 as DescripcionListAdapter).items2?.get(indice)?.sector.toString(),
- (viewAdapter2 as DescripcionListAdapter).items2?.get(indice)?.codigo.toString(),
- numeroInventario.toString())
+ artCargadoEnBD = buscarCodigoDeboEnBD((viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)?.sector.toString(),
+ (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)?.codigo.toString(), numeroInventario.toString())
if (artCargadoEnBD == null) {
val mDialogView = LayoutInflater.from(context).inflate(R.layout.ingresar_cantidad, null)
val mBuilder = AlertDialog.Builder(context).setView(mDialogView).setCancelable(false)
//TODO: DEPENDIENDO DEL TIPO DE ARTICULO PERMITER INGRESAR DECIMALES O NO
- if ((viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.balanza==1 || (viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.balanza==3 || (viewAdapter2 as DescripcionListAdapter).items2?.get(
- indice)!!.balanza==7)
+ if ((viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.balanza==1 || (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.balanza==3 || (viewAdapter2 as DescripcionListAdapter).items2?.get(
+ viewHolder.layoutPosition)!!.balanza==7)
mDialogView.etCantidad.inputType= InputType.TYPE_CLASS_NUMBER
- mDialogView.tvTitulo.text = "${(viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.descripcion}"
+ mDialogView.tvTitulo.text = "${(viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.descripcion}"
val mAlertDialog = mBuilder.show()
mDialogView.etCantidad.requestFocus()
mAlertDialog.window!!.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM)
@@ -128,19 +122,19 @@ class DescripcionFragment : Fragment() {
mDialogView.etCantidad.requestFocus()
mDialogView.etCantidad.hint = "Ingrese un valor"
} else if (!mDialogView.etCantidad.text.isNullOrEmpty()) {
- cantidad = mDialogView.etCantidad.text.toString().toFloat()
+ cantidad =String.format("%.2f", mDialogView.etCantidad.text.toString().toFloat()).toFloat()
val body = InvBody(numeroInventario,
- (viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.sector,
+ (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.sector,
// TODO: PREPARO PARA MANDAR A CARGAR EN LA BD
- (viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.codigo,
- (viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.descripcion,
+ (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.codigo,
+ (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.descripcion,
cantidad.toString(),
- (viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.codBar,
- (viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.codOrigen,
- (viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.precio,
- (viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.precio,
- (viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.balanza,
- (viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.depSn,
+ (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.codBar,
+ (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.codOrigen,
+ (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.precio,
+ (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.precio,
+ (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.balanza,
+ (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.depSn,
InventarioFragment().ObtenerFechaActual(),
InventarioFragment().ObtenerFechaActual())
InsertarArtEnDB(body)// TODO: MANDO A CARGAR A LA BASE DE DATOS
@@ -193,8 +187,8 @@ class DescripcionFragment : Fragment() {
if (mDialogView.tvNuevaCantidad.text.isNotEmpty() || !mDialogView.tvNuevaCantidad.text.isBlank()) {
if (mDialogView.tvResultado.text.isNotEmpty() || !mDialogView.tvResultado.text.isBlank()) {
- updateCantidad((viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.sector.toString(),
- (viewAdapter2 as DescripcionListAdapter).items2?.get(indice)!!.codigo.toString(),
+ updateCantidad((viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.sector.toString(),
+ (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.codigo.toString(),
mDialogView.tvResultado.text.toString().toFloat())
// VolverAinventario()
activity?.onBackPressed();
diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripcionFragment/DescripcionListAdapter.kt b/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripcionFragment/DescripcionListAdapter.kt
index 2e99d48..a162d3c 100644
--- a/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripcionFragment/DescripcionListAdapter.kt
+++ b/app/src/main/java/com/focasoftware/deboinventariov20/UI/descripcionFragment/DescripcionListAdapter.kt
@@ -17,8 +17,7 @@ class DescripcionListAdapter(private val productos: List?) :
}
override fun onCreateViewHolder(parent: ViewGroup, p1: Int) = ItemsViewHolder(
- LayoutInflater.from(parent.context).inflate(R.layout.item_descripcion, parent, false)
- )
+ LayoutInflater.from(parent.context).inflate(R.layout.item_descripcion, parent, false))
override fun getItemCount() = productos!!.size
@@ -30,7 +29,6 @@ class DescripcionListAdapter(private val productos: List?) :
}
}
-
class ItemsViewHolder constructor(view: View) : RecyclerView.ViewHolder(view) {
val sector = view.tvSector
diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/UI/detalleProducto/DetalleArtFragment.kt b/app/src/main/java/com/focasoftware/deboinventariov20/UI/detalleProducto/DetalleArtFragment.kt
index 4c50077..8c4073b 100644
--- a/app/src/main/java/com/focasoftware/deboinventariov20/UI/detalleProducto/DetalleArtFragment.kt
+++ b/app/src/main/java/com/focasoftware/deboinventariov20/UI/detalleProducto/DetalleArtFragment.kt
@@ -6,6 +6,7 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.view.inputmethod.InputMethodManager
import androidx.fragment.app.Fragment
import com.focasoftware.deboinventariov20.DB.DataBase.AppDb
import com.focasoftware.deboinventariov20.Model.Articles
@@ -32,9 +33,11 @@ class DetalleArtFragment : Fragment() {
codigo = it.getString("codigo")
Inventario= it.getInt("numeroInv")
}
+ val imm = requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager?
+ imm!!.hideSoftInputFromWindow(requireActivity().currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS)
+
marcarInventario()
GlobalScope.launch(Dispatchers.Main) {
-
artSerch = buscarCodigoDeboEnBD(sector, codigo)
if (artSerch == null) {
@@ -59,14 +62,29 @@ class DetalleArtFragment : Fragment() {
} else if (artSerch != null) {
tvSector.text=sector
tvCodigo.text=codigo
- tvDeposito.text=if(artSerch!!.depSn!!.toInt() ==0)"No" else "Si"
+ tvDeposito.text=if(!artSerch!!.depSn!!)"No" else "Si"
tvDescripcion.text=artSerch!!.descripcion.toString()
- tvCodigoBarras.text=artSerch!!.codBar.toString()
- tvCodigoOrigen.text=artSerch!!.codOrigen.toString()
+ tvCodigoBarras.text=if (artSerch!!.codBar.toString()=="null")"" else artSerch!!.codBar.toString()
+ tvCodigoOrigen.text=if (artSerch!!.codOrigen.toString()=="null")"" else artSerch!!.codOrigen.toString()
tvExiVenta.text=artSerch!!.exiVenta.toString()
tvExiDeposito.text=artSerch!!.exiDeposito.toString()
- tvBal.text=artSerch!!.balanza.toString()
- tvDE.text=artSerch!!.de.toString()
+
+ when ( artSerch!!.balanza.toString().toInt()) {
+ 1 ->tvBal.text="Unidades"
+ 2 ->tvBal.text="Litros"
+ 3 ->tvBal.text="Cajas"
+ 4 ->tvBal.text="M3"
+ 5 ->tvBal.text="Metros"
+ 6 ->tvBal.text="Fracción"
+ 7 ->tvBal.text="Bultos"
+ 8 ->tvBal.text="Gramos"
+ 9 ->tvBal.text="Cent. cúbicos"
+ 10 ->tvBal.text="Kgs"
+ else -> { tvBal.text="Otros"
+ }
+ }
+ tvCosto.text=String.format("%.2f", artSerch!!.costo.toString().toFloat())
+ tvPrecio.text=String.format("%.2f", artSerch!!.precio.toString().toFloat())
}
}
}
@@ -78,7 +96,7 @@ class DetalleArtFragment : Fragment() {
suspend fun buscarCodigoDeboEnBD(sector: String?, codigo: String?): Articles? {
//TODO BUSQUEDA POR CODIGO DE BARRAS
- var busqueda: Articles? = null
+ var busqueda: Articles?
return GlobalScope.async(Dispatchers.IO) {
busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.fetchArticuloByCodSec(sector, codigo)
return@async busqueda
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 f2d9890..6c0d68c 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
@@ -37,6 +37,7 @@ import kotlinx.android.synthetic.main.ingresar_cantidad.view.*
import kotlinx.android.synthetic.main.login_dialog.view.*
import kotlinx.android.synthetic.main.login_dialog.view.btnAceptar
import kotlinx.coroutines.*
+import kotlinx.coroutines.Dispatchers.IO
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.util.*
@@ -44,7 +45,7 @@ import java.util.*
class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickListener {
private lateinit var sharedPreferences: SharedPreferences
- private var iArea: Int = 0
+ private var iArea: Boolean = false
private lateinit var invHead: InvHead
private lateinit var rcInventarios: RecyclerView
private lateinit var viewAdapter: RecyclerView.Adapter<*>
@@ -94,7 +95,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
//TODO: BUSCO EL ULTIMO INVENTARIO EN LA BD PARA PODER CREAR EL PROXIMO
InventarioNuevo = AppDb.getAppDb(requireActivity())?.InvHeadDAO()?.findLastInv()?.plus(1) ?: 1
//TODO: CREAMOS EL INVENTARIO EN LA CABECERA DEL INVENTARIO
- invHead = InvHead(InventarioNuevo, if (SerchArea() == 0) "Ventas" else "Deposito", 1, ObtenerFechaActual(), ObtenerFechaActual(), 0L, SerchArea(), AjusteProductos(), ProdNoCont())
+ invHead = InvHead(InventarioNuevo, if (!SerchArea()) "Ventas" else "Deposito", 1, ObtenerFechaActual(), ObtenerFechaActual(), 0L, SerchArea(), AjusteProductos(), ProdNoCont())
AppDb.getAppDb(requireActivity())!!.InvHeadDAO()!!.insertInvHead(invHead)
tvTitulo.text = "Inventario Dinamico" + " N° $InventarioNuevo"
}
@@ -109,10 +110,15 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
sChangeUpper = tCodigoBarras.text.toString()
var indiceDelArtEncontrado = 0
- if (tCodigoBarras.text.isNullOrBlank()) {
+ if (tCodigoBarras.text.isNullOrBlank() ) {
tCodigoBarras.error = "No puede estar vacio"
tCodigoBarras.requestFocus()
tCodigoBarras.hint = "No puede estar vacio"
+ }else if (tCodigoBarras.text.toString().length<4 && iEstado==2) {
+ tCodigoBarras.error = "Minimo 4 caracteres"
+ tCodigoBarras.requestFocus()
+ tCodigoBarras.hint = "4 Minimo"
+
} else {
//TODO COMIENZA LA BUSQUEDA POR CODIGO DE BARRAS
@@ -190,6 +196,8 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
val artEncontrado = buscarDescEnBD(sChangeUpper.toUpperCase(Locale.ROOT))
ContinuarCargaDesc(artEncontrado as ArrayList)
}
+
+ iBusquedaPor = 0
// }
return@setOnKeyListener true
@@ -198,22 +206,22 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
val imm = requireActivity().getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager?
imm!!.hideSoftInputFromWindow(requireActivity().currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS)
- GlobalScope.launch(Dispatchers.Main) {
- indiceDelArtEncontrado = buscoArtEnRv(sChangeUpper.toUpperCase(Locale.ROOT), 2)//TODO Si encuentra el articulo en el RV devuelve el indice
-// //TODO Si no lo encuentra devuelve -1
- if (indiceDelArtEncontrado != -1) {
- if (swSumaUno!!.isChecked) {
- fCant = 0F
- fCant = listArticulos[indiceDelArtEncontrado].cantTomada
- fCant += 1F
- //TODO ACTUALIZO LA CANTIDAD EN LA BD
- updateCantidad(listArticulos[indiceDelArtEncontrado].sector.toString(), listArticulos[indiceDelArtEncontrado].codigo.toString(), fCant)
- //TODO ACTUALIZO LA CANTIDAD EN EL RV
- listArticulos[indiceDelArtEncontrado].cantTomada = fCant
- viewAdapter.notifyDataSetChanged()
- } else {
- dialogoSumaResta(requireContext(), indiceDelArtEncontrado, listArticulos[indiceDelArtEncontrado].univta, false)
- }
+// GlobalScope.launch(Dispatchers.Main) {
+// indiceDelArtEncontrado = buscoArtEnRv(sChangeUpper.toUpperCase(Locale.ROOT), 2)//TODO Si encuentra el articulo en el RV devuelve el indice
+//// //TODO Si no lo encuentra devuelve -1
+// if (indiceDelArtEncontrado != -1) {
+// if (swSumaUno!!.isChecked) {
+// fCant = 0F
+// fCant = listArticulos[indiceDelArtEncontrado].cantTomada
+// fCant += 1F
+// //TODO ACTUALIZO LA CANTIDAD EN LA BD
+// updateCantidad(listArticulos[indiceDelArtEncontrado].sector.toString(), listArticulos[indiceDelArtEncontrado].codigo.toString(), fCant)
+// //TODO ACTUALIZO LA CANTIDAD EN EL RV
+// listArticulos[indiceDelArtEncontrado].cantTomada = fCant
+// viewAdapter.notifyDataSetChanged()
+// } else {
+// dialogoSumaResta(requireContext(), indiceDelArtEncontrado, listArticulos[indiceDelArtEncontrado].univta, false)
+// }
// } else {
// val mDialogView = LayoutInflater.from(context).inflate(R.layout.login_dialog, null)
// val mBuilder =
@@ -271,17 +279,17 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
// }
// }.cancelOnTouchOutside(false).cornerRadius(10F)
// }
- } else if (indiceDelArtEncontrado == -1) {
+// } else if (indiceDelArtEncontrado == -1) {
// no lo encontro en el RV, lo va a buscar en al BD
GlobalScope.launch(Dispatchers.Main) {
//TODO BUSCO EN BASE DE DATOS
- listArticulos[indiceDelArtEncontrado].cantTomada
val artEncontrado = buscarCodiogoOriEnBD(sChangeUpper.toUpperCase(Locale.ROOT))
- ContinuarCargaCB(artEncontrado)
+ ContinuarCargaCodigoOri(artEncontrado )
}
- }
- }
+ iBusquedaPor = 0
+// }
+// }
return@setOnKeyListener true
}
}
@@ -385,7 +393,27 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
}
}
- // @SuppressLint("RestrictedApi")
+ private fun ContinuarCargaCodigoOri(artAcargar:List) {
+
+ if (artAcargar.isNotEmpty() || !artAcargar.isNullOrEmpty()) {// TODO: Si lo encuentra en la BD
+ // TODO: ESCONDE EL TECLADO VIRTUAL AL PRESIONAR ENTER
+ val imm = requireActivity().getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager?
+ imm!!.hideSoftInputFromWindow(requireActivity().currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS)
+
+ var bundle = Bundle()
+ bundle = bundleOf("ArrayDesc" to artAcargar)
+ bundle.putInt("numeroInv", InventarioNuevo)
+ navController.navigate(R.id.action_inventarioFragment_to_codigoOriFragment, bundle)
+
+ } else {//TODO si no lo encuentra en la BD
+ val modalDialog = NoEncontradoSimple()
+ modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog")
+ }
+ etCodigoBarras.focusable = View.FOCUSABLE
+ etCodigoBarras.setText("")
+ etCodigoBarras.selectAll()
+ }
+
private fun ContinuarCargaDesc(artAcargar: ArrayList) {
//TODO DESPUES DE INGRESAR LA DESCRIPCION Y DE BUSCAR LOS CAINCIDENCIAS EN LA BASE SE VA A MOSTRAR LAS MISMAS
//TODO SI LA CANTIDAD ENCONTRADA ES UNO, LO CARGO DIRECTAMENTE EN EL RV
@@ -489,7 +517,6 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
etCodigoBarras.selectAll()
}
-
fun DialogingresarCantidad(cnxt: Context, artAcargar: Articles?): Float {
var cantidad = 0F
val mDialogView = LayoutInflater.from(cnxt).inflate(R.layout.ingresar_cantidad, null)
@@ -583,11 +610,12 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
mAlertDialog.dismiss()
}
}
- suspend fun buscarCodiogoOriEnBD(CodOri: String): Articles? {
+
+ suspend fun buscarCodiogoOriEnBD(CodOri: String): List {
//TODO BUSQUEDA POR CODIGO DE BARRAS
- var busqueda: Articles? = null
+ var busqueda: List
return GlobalScope.async(Dispatchers.IO) {
- busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByCodOri(CodOri, SerchArea())
+ busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByCodOri(CodOri, SerchAreaInventario())
return@async busqueda
}.await()
}
@@ -595,8 +623,8 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
suspend fun buscarCBEnBD(CodigoBarras: String): Articles? {
//TODO BUSQUEDA POR CODIGO DE BARRAS
var busqueda: Articles? = null
- return GlobalScope.async(Dispatchers.IO) {
- busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByCodBar(CodigoBarras, SerchArea())
+ return GlobalScope.async(IO) {
+ busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByCodBar(CodigoBarras, SerchAreaInventario())
return@async busqueda
}.await()
}
@@ -605,7 +633,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
//TODO BUSQUEDA POR DESCRIPCION
var busqueda: List? = null
return GlobalScope.async(Dispatchers.IO) {
- busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByDesc(descripcion, SerchArea())
+ busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByDesc(descripcion, SerchAreaInventario())
return@async busqueda
}.await()
}
@@ -613,14 +641,14 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
suspend fun borrarArticulo(sector: String, codigo: String, inventario: String): Int? {
//TODO BUSQUEDA POR DESCRIPCION
var result: Int
- return GlobalScope.async(Dispatchers.IO) {
+ return GlobalScope.async(IO) {
result = AppDb.getAppDb(requireContext())!!.InvBodyDAO()!!.deleteItemFromInvBody(sector, codigo, inventario)
return@async result
}.await()
}
private suspend fun buscoArtEnRv(codigoBarras: String, sTipoBusqueda: Int): Int {
- return GlobalScope.async(Dispatchers.IO) {
+ return GlobalScope.async(IO) {
var indice = 0
var bEncontrado = false
if (sTipoBusqueda == 0) {//TODO BUSQUEDA POR CODIGO DE BARRAS
@@ -660,7 +688,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
suspend fun cambioCBporCodigoDebo(codigoBarras: String): Articles? {
//TODO BUSQUEDA POR DESCRIPCION
var busqueda: Articles? = null
- return GlobalScope.async(Dispatchers.IO) {
+ return GlobalScope.async(IO) {
busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByCodBar(codigoBarras, SerchArea())
return@async busqueda
}.await()
@@ -685,7 +713,8 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
fun cargarRecicler(articulos: Articles, cant: Float) {
//TODO CARGO EN LE RV
- val item = ItemsRecycler(articulos.sector, articulos.codigo, articulos.descripcion, cant, articulos.codBar, articulos.codOrigen, articulos.balanza.toString(), articulos.de.toString())
+ val item = ItemsRecycler(if (articulos.sector.toString().toInt()<9) "0${articulos.sector.toString()}" else articulos.sector.toString()
+ , articulos.codigo, articulos.descripcion, cant, articulos.codBar, articulos.codOrigen, articulos.balanza.toString(), articulos.de.toString())
listArticulos.add(item)
viewAdapter = ProductosListAdapter(requireContext(), listArticulos, this)
@@ -746,12 +775,17 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
return prodInclu
}
- private fun SerchArea(): Int {
- if (sharedPreferences.contains("rbVentas")) if (sharedPreferences.getString("rbVentas", "").toString() == "1") iArea = 0
- if (sharedPreferences.contains("rbDeposito")) if (sharedPreferences.getString("rbDeposito", "").toString() == "1") iArea = 1
+ private fun SerchArea(): Boolean {
+ if (sharedPreferences.contains("rbVentas")) if (sharedPreferences.getString("rbVentas", "").toString() == "1") iArea =false
+ if (sharedPreferences.contains("rbDeposito")) if (sharedPreferences.getString("rbDeposito", "").toString() == "1") iArea = true
return iArea
}
+ suspend fun SerchAreaInventario(): Boolean {
+ return GlobalScope.async(IO) {
+ return@async AppDb.getAppDb(requireActivity())!!.InvHeadDAO()!!.fetchAreaInvH(InventarioNuevo)
+ }.await()
+ }
fun ObtenerFechaActual(): String? {
//TODO OBTENGO FECHA Y HORA ACTUAL PARA LA CABECERA DEL INVENTARIO Y PARA CADA ITEM QUE SE INSERTA EN LA BD
val current = LocalDateTime.now()
@@ -784,7 +818,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList
override fun onImageDotsClick(sector: String?, codigo: String?) {
val bundle = Bundle()
- bundle.putString("sector", sector)
+ bundle.putString("sector", sector!!.toInt().toString())
bundle.putString("codigo", codigo)
bundle.putInt("numeroInv", InventarioNuevo)
navController.navigate(R.id.action_inventarioFragment_to_detalleArtFragment, bundle)
diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/UI/main/InventarioListAdapter.kt b/app/src/main/java/com/focasoftware/deboinventariov20/UI/main/InventarioListAdapter.kt
index 453fd3b..760202e 100644
--- a/app/src/main/java/com/focasoftware/deboinventariov20/UI/main/InventarioListAdapter.kt
+++ b/app/src/main/java/com/focasoftware/deboinventariov20/UI/main/InventarioListAdapter.kt
@@ -4,15 +4,22 @@ import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.Filter
+import android.widget.Filterable
import androidx.recyclerview.widget.RecyclerView
import com.focasoftware.deboinventariov20.Model.InvHead
import com.focasoftware.deboinventariov20.R
import com.focasoftware.deboinventariov20.UI.Utils.BaseViewHolder
import kotlinx.android.synthetic.main.item_principal.view.*
+import java.util.*
+import kotlin.collections.ArrayList
class InventarioListAdapter(private val context: Context, private val inv: List, private val itemClickListener: OnInventarioClickListener) :
- RecyclerView.Adapter>() {
-
+ RecyclerView.Adapter>(), Filterable {
+ var invFiltrados: List
+ init {
+ invFiltrados=inv
+ }
interface OnInventarioClickListener {
fun onItemClick(inventario: String?)
}
@@ -40,8 +47,33 @@ class InventarioListAdapter(private val context: Context, private val inv: List<
}
}
+ override fun getFilter(): Filter {
+ return object : Filter() {
+ override fun performFiltering(charSequence: CharSequence): FilterResults {
+ val charString = charSequence.toString()
-}
+ invFiltrados = if (charString.isEmpty()) {
+ inv
+ } else {
+ val filteredList = ArrayList()
+ for (row in inv) {
+ if (row.lugar.toString().contains(charString.toLowerCase(Locale.ROOT))) {
+ filteredList.add(row)
+ }
+ }
+ filteredList
+ }
+ val filterResults = FilterResults()
+ filterResults.values=invFiltrados
+ return filterResults
+ }
+ override fun publishResults(charSequence: CharSequence?, filterResults: FilterResults?) {
+ invFiltrados = filterResults!!.values as ArrayList
+ notifyDataSetChanged()
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/UI/main/MainFragment.kt b/app/src/main/java/com/focasoftware/deboinventariov20/UI/main/MainFragment.kt
index 8a06093..d7e22de 100644
--- a/app/src/main/java/com/focasoftware/deboinventariov20/UI/main/MainFragment.kt
+++ b/app/src/main/java/com/focasoftware/deboinventariov20/UI/main/MainFragment.kt
@@ -6,7 +6,9 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.*
+import android.widget.CheckBox
+import android.widget.ImageButton
+import android.widget.TextView
import androidx.fragment.app.Fragment
import androidx.navigation.NavController
import androidx.navigation.Navigation
@@ -20,6 +22,7 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.async
import kotlinx.coroutines.launch
import java.util.*
+import java.util.Locale.filter
class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener {
private lateinit var inventarios: List
@@ -27,33 +30,38 @@ class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener
private lateinit var rcInventario: RecyclerView
private lateinit var viewAdapter: RecyclerView.Adapter<*>
private lateinit var viewManager: RecyclerView.LayoutManager
-// private var listIvn2 = List()
-private var listIvn2 = ArrayList()
+ private var listIvn2 = ArrayList()
private lateinit var navController: NavController
private lateinit var sharedPreferences: SharedPreferences
private var cantidadInventarios: Int = 0
+ private var adapterFilter: InventarioListAdapter? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
sharedPreferences = requireActivity().getSharedPreferences("SP_INFO", Context.MODE_PRIVATE)
}
- override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
var bAbiertoCerrado = false
val v = inflater.inflate(R.layout.fragment_main, container, false)
val tvInvDinamicos = v.findViewById(R.id.tvInvDinamicos)
val txtDeposito = v.findViewById(R.id.txtDeposito)
- val ivSort19= v.findViewById(R.id.ivSort19)
- val ivSort91= v.findViewById(R.id.ivSort91)
- val cbVentas= v.findViewById(R.id.cbVentas)
- val cbDeposito= v.findViewById(R.id.cbDeposito)
- val tvTipo = v.findViewById(R.id.tvTipo)
+ val ivSort19 = v.findViewById(R.id.ivSort19)
+ val ivSort91 = v.findViewById(R.id.ivSort91)
+ val cbVentas = v.findViewById(R.id.cbVentas)
+ val cbDeposito = v.findViewById(R.id.cbDeposito)
+ val tvTipo = v.findViewById(R.id.tvTipo)
rcInventario = v.findViewById(R.id.rcInventario)
GlobalScope.launch(Dispatchers.Main) {
inventarios = buscarEnBDInvHead()
for ((i, item) in inventarios.withIndex()) {
- val inv = InvHead(inventarios[i].invNum,
+ val inv = InvHead(
+ inventarios[i].invNum,
inventarios[i].descripcion,
inventarios[i].estado,
inventarios[i].fechaInicio,
@@ -61,11 +69,12 @@ private var listIvn2 = ArrayList()
inventarios[i].prodContados,
inventarios[i].lugar,
inventarios[i].stDesc,
- inventarios[i].proNoCont)
+ inventarios[i].proNoCont
+ )
cargarRecicler(inv)
cantidadInventarios = i + 1
}
- tvInvDinamicos.text = "Inventarios Dinamicos (${cantidadInventarios.toString()}) +"
+ tvInvDinamicos.text = "Inventarios Dinamicos ($cantidadInventarios) +"
tvInvDinamicos.setOnClickListener {
if (!bAbiertoCerrado) {
bAbiertoCerrado = true
@@ -76,7 +85,8 @@ private var listIvn2 = ArrayList()
cbVentas.visibility = View.VISIBLE
cbDeposito.visibility = View.VISIBLE
tvTipo.visibility = View.VISIBLE
- tvInvDinamicos.text = "Inventarios Dinamicos (${cantidadInventarios.toString()}) -"
+ tvInvDinamicos.text =
+ "Inventarios Dinamicos ($cantidadInventarios) -"
} else {
bAbiertoCerrado = false
rcInventario.visibility = View.GONE
@@ -86,13 +96,14 @@ private var listIvn2 = ArrayList()
cbVentas.visibility = View.GONE
cbDeposito.visibility = View.GONE
tvTipo.visibility = View.GONE
- tvInvDinamicos.text = "Inventarios Dinamicos (${cantidadInventarios.toString()}) +"
+ tvInvDinamicos.text =
+ "Inventarios Dinamicos ($cantidadInventarios) +"
}
}
ivSort19.setOnClickListener {
- ordenado= inventarios.sortedByDescending {
- it.invNum
- }
+ ordenado = inventarios.sortedByDescending {
+ it.invNum
+ }
viewAdapter = InventarioListAdapter(requireContext(), ordenado, this@MainFragment)
viewManager = LinearLayoutManager(requireContext())
@@ -101,11 +112,11 @@ private var listIvn2 = ArrayList()
layoutManager = viewManager
}
viewAdapter.notifyDataSetChanged()
- ivSort19.visibility=View.INVISIBLE
- ivSort91.visibility=View.VISIBLE
+ ivSort19.visibility = View.INVISIBLE
+ ivSort91.visibility = View.VISIBLE
}
ivSort91.setOnClickListener {
- ordenado= inventarios.sortedBy {
+ ordenado = inventarios.sortedBy {
it.invNum
}
viewAdapter = InventarioListAdapter(requireContext(), ordenado, this@MainFragment)
@@ -116,10 +127,23 @@ private var listIvn2 = ArrayList()
layoutManager = viewManager
}
viewAdapter.notifyDataSetChanged()
- ivSort91.visibility=View.INVISIBLE
- ivSort19.visibility=View.VISIBLE
+ ivSort91.visibility = View.INVISIBLE
+ ivSort19.visibility = View.VISIBLE
}
}
+
+// cbVentas.setOnClickListener {
+// if (cbVentas.isChecked) {
+// rcInventario.apply {
+// adapter = viewAdapter
+// layoutManager = viewManager
+// }
+// adapterFilter.
+// adapterFilter?.filter?.filter("Deposito")
+// adapterFilter?.notifyDataSetChanged()
+// viewAdapter.notifyDataSetChanged()
+// }
+// }
return v
}
diff --git a/app/src/main/res/layout/fragment_codigo_ori.xml b/app/src/main/res/layout/fragment_codigo_ori.xml
new file mode 100644
index 0000000..4e03208
--- /dev/null
+++ b/app/src/main/res/layout/fragment_codigo_ori.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_descripcion.xml b/app/src/main/res/layout/fragment_descripcion.xml
index 1f06e8b..76bc496 100644
--- a/app/src/main/res/layout/fragment_descripcion.xml
+++ b/app/src/main/res/layout/fragment_descripcion.xml
@@ -1,14 +1,11 @@
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
diff --git a/app/src/main/res/layout/fragment_detalle_art.xml b/app/src/main/res/layout/fragment_detalle_art.xml
index 54475bf..18a9f54 100644
--- a/app/src/main/res/layout/fragment_detalle_art.xml
+++ b/app/src/main/res/layout/fragment_detalle_art.xml
@@ -46,7 +46,7 @@
android:layout_marginTop="10dp"
android:text="Sector:"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
- android:textSize="14sp"
+ android:textSize="15sp"
app:layout_constraintEnd_toStartOf="@id/tvSector"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvTime" />
@@ -55,13 +55,12 @@
android:id="@+id/tvSector"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginTop="10dp"
android:text=""
android:textAppearance="@style/TextAppearance.AppCompat.Large"
- android:textSize="14sp"
+ android:textSize="18sp"
+ app:layout_constraintBaseline_toBaselineOf="@+id/textView19"
app:layout_constraintEnd_toStartOf="@id/textView18"
- app:layout_constraintStart_toEndOf="@id/textView19"
- app:layout_constraintTop_toBottomOf="@+id/tvTime" />
+ app:layout_constraintStart_toEndOf="@id/textView19" />
@@ -79,13 +78,12 @@
android:id="@+id/tvCodigo"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginTop="10dp"
android:text=""
android:textAppearance="@style/TextAppearance.AppCompat.Large"
- android:textSize="14sp"
+ android:textSize="18sp"
+ app:layout_constraintBaseline_toBaselineOf="@+id/textView18"
app:layout_constraintEnd_toStartOf="@+id/textView3"
- app:layout_constraintStart_toEndOf="@id/textView18"
- app:layout_constraintTop_toBottomOf="@+id/tvTime" />
+ app:layout_constraintStart_toEndOf="@id/textView18" />
@@ -103,13 +101,12 @@
android:id="@+id/tvDeposito"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginTop="10dp"
android:text=""
android:textAppearance="@style/TextAppearance.AppCompat.Large"
- android:textSize="14sp"
+ android:textSize="18sp"
+ app:layout_constraintBaseline_toBaselineOf="@+id/textView3"
app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toEndOf="@id/textView3"
- app:layout_constraintTop_toBottomOf="@+id/tvTime" />
+ app:layout_constraintStart_toEndOf="@id/textView3" />
@@ -146,7 +143,7 @@
android:layout_marginTop="10dp"
android:text="C. de barras:"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
- android:textSize="14sp"
+ android:textSize="15sp"
app:layout_constraintEnd_toStartOf="@id/tvCodigoBarras"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" />
@@ -155,13 +152,12 @@
android:id="@+id/tvCodigoBarras"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginTop="10dp"
android:text=""
android:textAppearance="@style/TextAppearance.AppCompat.Large"
- android:textSize="14sp"
+ android:textSize="18sp"
+ app:layout_constraintBaseline_toBaselineOf="@+id/textView1"
app:layout_constraintEnd_toStartOf="@id/textView2"
- app:layout_constraintStart_toEndOf="@id/textView1"
- app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" />
+ app:layout_constraintStart_toEndOf="@id/textView1" />
@@ -179,13 +175,12 @@
android:id="@+id/tvCodigoOrigen"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginTop="10dp"
android:text=""
android:textAppearance="@style/TextAppearance.AppCompat.Large"
- android:textSize="14sp"
+ android:textSize="18sp"
+ app:layout_constraintBaseline_toBaselineOf="@+id/textView2"
app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toEndOf="@id/textView2"
- app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" />
+ app:layout_constraintStart_toEndOf="@id/textView2" />
@@ -205,13 +200,12 @@
android:id="@+id/tvExiVenta"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginTop="10dp"
android:text=""
android:textAppearance="@style/TextAppearance.AppCompat.Large"
- android:textSize="14sp"
+ android:textSize="18sp"
+ app:layout_constraintBaseline_toBaselineOf="@+id/textView5"
app:layout_constraintEnd_toStartOf="@id/textView7"
- app:layout_constraintStart_toEndOf="@id/textView5"
- app:layout_constraintTop_toBottomOf="@+id/tvCodigoBarras" />
+ app:layout_constraintStart_toEndOf="@id/textView5" />
@@ -229,88 +223,111 @@
android:id="@+id/tvExiDeposito"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginTop="10dp"
android:text=""
android:textAppearance="@style/TextAppearance.AppCompat.Large"
- android:textSize="14sp"
- app:layout_constraintEnd_toStartOf="@+id/textView8"
- app:layout_constraintStart_toEndOf="@id/textView7"
- app:layout_constraintTop_toBottomOf="@+id/tvCodigoBarras" />
+ android:textSize="18sp"
+ app:layout_constraintBaseline_toBaselineOf="@+id/textView7"
+ app:layout_constraintEnd_toStartOf="@+id/textView9"
+ app:layout_constraintStart_toEndOf="@id/textView7" />
+ android:textSize="18sp"
+ app:layout_constraintBaseline_toBaselineOf="@+id/textView9"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@id/textView9" />
+
+
+
+ android:textSize="15sp"
+ app:layout_constraintEnd_toStartOf="@id/tvBal"
+ app:layout_constraintStart_toEndOf="@id/tvCosto"
+ app:layout_constraintTop_toBottomOf="@+id/tvExiVenta" />
+ app:layout_constraintStart_toEndOf="@+id/textView10" />
+ app:layout_constraintTop_toBottomOf="@+id/textView8" />
+ app:layout_constraintHorizontal_bias="0.003"
+ app:layout_constraintStart_toEndOf="@id/textView11"
+ app:layout_constraintTop_toBottomOf="@+id/tvBal" />
diff --git a/app/src/main/res/layout/ingresar_cantidad.xml b/app/src/main/res/layout/ingresar_cantidad.xml
index 16eb1e2..eab6810 100644
--- a/app/src/main/res/layout/ingresar_cantidad.xml
+++ b/app/src/main/res/layout/ingresar_cantidad.xml
@@ -52,18 +52,18 @@
app:layout_constraintTop_toBottomOf="@id/barraSuperior">
-
+ android:maxLength="8"
+ android:text=""
+ android:textSize="20sp" />
+
+
+ app:layout_constraintStart_toEndOf="@+id/tvCodigo"
+ app:layout_constraintTop_toTopOf="parent" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml
index d6ccc12..a8c3f81 100644
--- a/app/src/main/res/navigation/mobile_navigation.xml
+++ b/app/src/main/res/navigation/mobile_navigation.xml
@@ -69,6 +69,9 @@
+
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5136c49..fada822 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -30,7 +30,6 @@
Ingrese la cantidad contada
Inventarios Dinamicos de Ventas
- Confirmar
Cancelar