Commit be3b7b8379eb7270ca91858b56670bab94d91506
1 parent
89988103b2
Exists in
master
21092020 0900
Showing
25 changed files
with
646 additions
and
564 deletions
Show diff stats
.idea/codeStyles/Project.xml
| ... | ... | @@ -133,6 +133,9 @@ |
| 133 | 133 | </codeStyleSettings> |
| 134 | 134 | <codeStyleSettings language="kotlin"> |
| 135 | 135 | <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> |
| 136 | + <option name="RIGHT_MARGIN" value="200" /> | |
| 137 | + <option name="ALIGN_MULTILINE_EXTENDS_LIST" value="true" /> | |
| 138 | + <option name="WRAP_ON_TYPING" value="0" /> | |
| 136 | 139 | </codeStyleSettings> |
| 137 | 140 | </code_scheme> |
| 138 | 141 | </component> |
| 139 | 142 | \ No newline at end of file |
.idea/codeStyles/codeStyleConfig.xml
app/src/main/java/com/focasoftware/deboinventariov20/DB/DAO/ArticulosDAO.kt
| ... | ... | @@ -51,19 +51,19 @@ interface InvHeadDAO { |
| 51 | 51 | suspend fun deleteAllArticulos() |
| 52 | 52 | |
| 53 | 53 | @Query("DELETE FROM $TABLA_INV_H WHERE INV_NUM=:inven") |
| 54 | - suspend fun deleteinvHead(inven: Int) | |
| 54 | + suspend fun deleteinvHead(inven: Long) | |
| 55 | 55 | |
| 56 | 56 | @Query("SELECT * FROM $TABLA_INV_H ORDER BY INV_FEI") |
| 57 | 57 | suspend fun fetchAllInvHead(): List<InvHead> |
| 58 | 58 | |
| 59 | 59 | @Query("SELECT INV_LUG FROM $TABLA_INV_H WHERE INV_NUM=:inven") |
| 60 | - suspend fun fetchAreaInvH (inven: Int): Boolean | |
| 60 | + suspend fun fetchAreaInvH (inven: Long): Boolean | |
| 61 | 61 | |
| 62 | 62 | @Query("SELECT INV_PRODCONT FROM $TABLA_INV_H WHERE INV_NUM=:inven") |
| 63 | - suspend fun consultaCantidadInvH (inven: Int): Int | |
| 63 | + suspend fun consultaCantidadInvH (inven: Long): Int | |
| 64 | 64 | |
| 65 | 65 | @Query("UPDATE $TABLA_INV_H SET INV_PRODCONT=:cant WHERE INV_NUM=:inven") |
| 66 | - suspend fun updateInvBody(inven: Int,cant: Int) | |
| 66 | + suspend fun updateInvBody(inven: Long,cant: Int) | |
| 67 | 67 | } |
| 68 | 68 | |
| 69 | 69 | @Dao |
| ... | ... | @@ -75,19 +75,19 @@ interface InvBodyDAO { |
| 75 | 75 | suspend fun deleteAllInvBody() |
| 76 | 76 | |
| 77 | 77 | @Query("DELETE FROM $TABLA_INV_B WHERE INV_NUM =:inven") |
| 78 | - suspend fun deleteInvBody(inven: Int) | |
| 78 | + suspend fun deleteInvBody(inven: Long) | |
| 79 | 79 | |
| 80 | 80 | @Query("UPDATE $TABLA_INV_B SET CANT=:cant WHERE SEC=:sec AND COD=:cod") |
| 81 | - suspend fun UpdateInvBody(cant: Float, sec: String, cod: String) | |
| 81 | + suspend fun UpdateInvBody(cant: Float, sec: Long, cod: Long) | |
| 82 | 82 | |
| 83 | 83 | @Query("SELECT * FROM $TABLA_INV_B WHERE INV_NUM =:inven ORDER BY INV_FEI DESC") |
| 84 | 84 | suspend fun fetchAllInvBody(inven: Int): List<InvBody> |
| 85 | 85 | |
| 86 | 86 | @Query("SELECT * FROM $TABLA_INV_B WHERE INV_NUM =:numInventario AND SEC=:sector AND COD=:codigo") |
| 87 | - suspend fun fetchArtInInvBody(sector: String, codigo: String, numInventario: String): InvBody | |
| 87 | + suspend fun fetchArtInInvBody(sector: Long, codigo: Long, numInventario: Long): InvBody | |
| 88 | 88 | |
| 89 | 89 | @Query("DELETE FROM $TABLA_INV_B WHERE INV_NUM =:numInventario AND SEC=:sector AND COD=:codigo") |
| 90 | - suspend fun deleteItemFromInvBody(sector: String, codigo: String, numInventario: String): Int | |
| 90 | + suspend fun deleteItemFromInvBody(sector: Long, codigo: Long, numInventario: Long): Int | |
| 91 | 91 | } |
| 92 | 92 | |
| 93 | 93 | @Dao |
| ... | ... | @@ -111,5 +111,8 @@ interface ServeInvDao { |
| 111 | 111 | suspend fun UpdateServerPre(numero: Int) |
| 112 | 112 | |
| 113 | 113 | @Query("SELECT * FROM $TABLA_SERV_INV WHERE SER_PRE= 1") |
| 114 | - suspend fun fetchServerPreOne(): ServeInv | |
| 114 | + suspend fun fetchServerPreOne(): ServeInv | |
| 115 | + | |
| 116 | + @Query("SELECT * FROM $TABLA_SERV_INV WHERE SER_NUM = :numero") | |
| 117 | + suspend fun fetchServer(numero: Int): ServeInv | |
| 115 | 118 | } |
| 116 | 119 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/SplashActivity.kt
app/src/main/java/com/focasoftware/deboinventariov20/UI/Utils/Utils.kt
| ... | ... | @@ -12,14 +12,17 @@ import kotlinx.coroutines.async |
| 12 | 12 | import java.io.IOException |
| 13 | 13 | import java.net.UnknownHostException |
| 14 | 14 | |
| 15 | -fun modificarCantidadEnCabecera(inventarioActual: Int, b: Boolean,context: Context) { | |
| 15 | +fun modificarCantidadEnCabecera(inventarioActual: Int, b: Boolean, context: Context) { | |
| 16 | 16 | GlobalScope.async(Dispatchers.IO) { |
| 17 | 17 | var cantProductos = 0 |
| 18 | - cantProductos = AppDb.getAppDb(context)!!.InvHeadDAO()!!.consultaCantidadInvH(inventarioActual) | |
| 18 | + cantProductos = | |
| 19 | + AppDb.getAppDb(context)!!.InvHeadDAO()!!.consultaCantidadInvH(inventarioActual.toLong()) | |
| 19 | 20 | if (b) { |
| 20 | - AppDb.getAppDb(context)!!.InvHeadDAO()!!.updateInvBody(inventarioActual, cantProductos + 1) | |
| 21 | + AppDb.getAppDb(context)!!.InvHeadDAO()!! | |
| 22 | + .updateInvBody(inventarioActual.toLong(), cantProductos + 1) | |
| 21 | 23 | } else { |
| 22 | - AppDb.getAppDb(context)!!.InvHeadDAO()!!.updateInvBody(inventarioActual, cantProductos - 1) | |
| 24 | + AppDb.getAppDb(context)!!.InvHeadDAO()!! | |
| 25 | + .updateInvBody(inventarioActual.toLong(), cantProductos - 1) | |
| 23 | 26 | } |
| 24 | 27 | } |
| 25 | 28 | } |
| ... | ... | @@ -48,38 +51,37 @@ open class AlertDialogBorrarInv : DialogFragment() { |
| 48 | 51 | return builder.create() |
| 49 | 52 | } ?: throw IllegalStateException("Activity cannot be null") |
| 50 | 53 | } |
| 51 | - public fun Int.twoDigits() = | |
| 52 | - if (this <= 9) "0$this" else this.toString()} | |
| 54 | +} | |
| 53 | 55 | |
| 54 | -public class NoEncontradoSimple : DialogFragment() { | |
| 56 | +class NoEncontradoSimple : DialogFragment() { | |
| 55 | 57 | override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { |
| 56 | 58 | return activity?.let { |
| 57 | 59 | val title = "" |
| 58 | 60 | val content = "¡El producto buscado NO fue encontrado!" |
| 59 | 61 | val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) |
| 60 | - builder.setTitle(title).setMessage(content).setPositiveButton(android.R.string.ok) { _, _ -> | |
| 61 | - //Todo OK click | |
| 62 | + builder.setTitle(title).setMessage(content) | |
| 63 | + .setPositiveButton(android.R.string.ok) { _, _ -> } | |
| 64 | + return builder.create() | |
| 65 | + } ?: throw IllegalStateException("Activity cannot be null") | |
| 66 | + } | |
| 67 | +} | |
| 68 | + | |
| 69 | +class noServerConf : DialogFragment() { | |
| 70 | + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { | |
| 71 | + return activity?.let { | |
| 72 | + val title = "" | |
| 73 | + val content = "¡Antes de importar debe configurar un servidor!" | |
| 74 | + val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) | |
| 75 | + builder.setTitle(title).setMessage(content) | |
| 76 | + .setPositiveButton(android.R.string.ok) { _, _ -> | |
| 77 | + activity?.onBackPressed() | |
| 62 | 78 | } |
| 63 | 79 | |
| 64 | 80 | return builder.create() |
| 65 | 81 | } ?: throw IllegalStateException("Activity cannot be null") |
| 66 | 82 | } |
| 67 | 83 | } |
| 68 | - public class noServerConf : DialogFragment() { | |
| 69 | - override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { | |
| 70 | - return activity?.let { | |
| 71 | - val title = "" | |
| 72 | - val content = "¡Antes de importar debe configurar un servidor!" | |
| 73 | - val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) | |
| 74 | - builder.setTitle(title).setMessage(content) | |
| 75 | - .setPositiveButton(android.R.string.ok) { _, _ -> | |
| 76 | - activity?.onBackPressed(); | |
| 77 | - } | |
| 78 | 84 | |
| 79 | - return builder.create() | |
| 80 | - } ?: throw IllegalStateException("Activity cannot be null") | |
| 81 | - } | |
| 82 | -} | |
| 83 | 85 | fun isConnectedToThisServer(host: String): Boolean { |
| 84 | 86 | |
| 85 | 87 | val runtime = Runtime.getRuntime() |
| ... | ... | @@ -98,3 +100,27 @@ fun isConnectedToThisServer(host: String): Boolean { |
| 98 | 100 | |
| 99 | 101 | return false |
| 100 | 102 | } |
| 103 | +class serverValido : DialogFragment() { | |
| 104 | + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { | |
| 105 | + return activity?.let { | |
| 106 | + val title = "" | |
| 107 | + val content = "¡La IP del servidor es correcta!" | |
| 108 | + val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) | |
| 109 | + builder.setTitle(title).setMessage(content) | |
| 110 | + .setPositiveButton(android.R.string.ok) { _, _ -> } | |
| 111 | + return builder.create() | |
| 112 | + } ?: throw IllegalStateException("Activity cannot be null") | |
| 113 | + } | |
| 114 | +} | |
| 115 | +class serverNoValido : DialogFragment() { | |
| 116 | + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { | |
| 117 | + return activity?.let { | |
| 118 | + val title = "" | |
| 119 | + val content = "¡La IP del servidor es Incorrecta! Verfique en la carga de Servidores." | |
| 120 | + val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) | |
| 121 | + builder.setTitle(title).setMessage(content) | |
| 122 | + .setPositiveButton(android.R.string.ok) { _, _ -> } | |
| 123 | + return builder.create() | |
| 124 | + } ?: throw IllegalStateException("Activity cannot be null") | |
| 125 | + } | |
| 126 | +} | |
| 101 | 127 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/actualizacionMaestros/ActuaMaestrosFragment.kt
| ... | ... | @@ -24,6 +24,7 @@ class ActuaMaestrosFragment : Fragment() { |
| 24 | 24 | |
| 25 | 25 | override fun onCreate(savedInstanceState: Bundle?) { |
| 26 | 26 | super.onCreate(savedInstanceState) |
| 27 | + | |
| 27 | 28 | GlobalScope.launch(Main) { |
| 28 | 29 | val serverPre = fetchServerPreOne() |
| 29 | 30 | if (serverPre!!.direccion.isNullOrEmpty()) { |
| ... | ... | @@ -31,8 +32,10 @@ class ActuaMaestrosFragment : Fragment() { |
| 31 | 32 | modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog") |
| 32 | 33 | } else { |
| 33 | 34 | BASE_URL = serverPre.direccion.toString()+":"+serverPre.puerto.toString()+"/" |
| 35 | + tvServerConectado.text="Conectado al servidor: ${serverPre.descripcion}" | |
| 34 | 36 | } |
| 35 | 37 | } |
| 38 | + | |
| 36 | 39 | // mostrarArticulos() |
| 37 | 40 | } |
| 38 | 41 | |
| ... | ... | @@ -46,9 +49,10 @@ class ActuaMaestrosFragment : Fragment() { |
| 46 | 49 | // Inflate the layout for this fragment |
| 47 | 50 | val v = inflater.inflate(R.layout.fragment_actua_maestros, container, false) |
| 48 | 51 | val bConfirmarAct = v.findViewById<Button>(R.id.btnConfirmarAct) |
| 52 | + | |
| 49 | 53 | bConfirmarAct.setOnClickListener { |
| 50 | 54 | loading_view.visibility = View.VISIBLE |
| 51 | - countriesList.text = "Obteniendo artículos del servidor $BASE_URL, aguarde por favor." | |
| 55 | + countriesList.text = "Obteniendo artículos del servidor, aguarde por favor." | |
| 52 | 56 | GlobalScope.launch(Main) { |
| 53 | 57 | obtenerArticulos() |
| 54 | 58 | } |
| ... | ... | @@ -158,73 +162,5 @@ class ActuaMaestrosFragment : Fragment() { |
| 158 | 162 | // editT.text= professor.id.toString() |
| 159 | 163 | // } |
| 160 | 164 | } |
| 161 | - | |
| 162 | - | |
| 163 | -// fun observeViewModel() { | |
| 164 | -// | |
| 165 | -// val productosService = ProductosService.getProductosService() | |
| 166 | -// var job: Job? = null | |
| 167 | -// | |
| 168 | -// | |
| 169 | -// //countriesList.text="Procesando..." | |
| 170 | -// //countriesList.visibility = View.VISIBLE | |
| 171 | -// // GlobalScope1.launch(Dispatchers.IO) { | |
| 172 | -// val response = productosService.getProductos() | |
| 173 | -// if (response.isSuccessful) { | |
| 174 | -//// countriesList.layoutManager = LinearLayoutManager(context) | |
| 175 | -//// countriesList.itemAnimator = DefaultItemAnimator() | |
| 176 | -// | |
| 177 | -//// ProductAdapter.updateCountries(it) | |
| 178 | -// // cargarArticulos(response.body()) | |
| 179 | -// | |
| 180 | -// | |
| 181 | -// val artiAcargar: Articulos? = null | |
| 182 | -// var index: Long = 1 | |
| 183 | -// | |
| 184 | -// for (pro in response.body()!!) { | |
| 185 | -// //artiAcargar.id =index+1 | |
| 186 | -// artiAcargar!!.sector = pro.sector | |
| 187 | -// artiAcargar.codigo = pro.codigo | |
| 188 | -// artiAcargar.descripcion = pro.descripcion | |
| 189 | -// artiAcargar.codBar = pro.codBar | |
| 190 | -// artiAcargar.precio = pro.precio | |
| 191 | -// artiAcargar.costo = pro.costo | |
| 192 | -// artiAcargar.balanza = pro.balanza | |
| 193 | -// artiAcargar.depSn = pro.depSn | |
| 194 | -// artiAcargar.imagen = pro.imagen | |
| 195 | -// index += index | |
| 196 | -// | |
| 197 | -// AppDb.getAppDb(requireActivity())!!.ArticulosDAO()!! | |
| 198 | -// .insertArticulos(artiAcargar) | |
| 199 | -// } | |
| 200 | -// } | |
| 201 | -// // } | |
| 202 | -// | |
| 203 | -// //job.cancel() | |
| 204 | -// | |
| 205 | -// | |
| 206 | -// } | |
| 207 | - | |
| 208 | -// fun cargarArticulos(Productos: List<Productos>?) { | |
| 209 | -// val artiAcargar: Articulos? = null | |
| 210 | -// var index: Long = 1 | |
| 211 | -// //val job4 = CoroutineScope(Dispatchers.Default).launch { | |
| 212 | -// for (pro in Productos!!) { | |
| 213 | -// //artiAcargar.id =index+1 | |
| 214 | -// artiAcargar!!.sector = pro.sector | |
| 215 | -// artiAcargar.codigo = pro.codigo | |
| 216 | -// artiAcargar.descripcion = pro.descripcion | |
| 217 | -// artiAcargar.codBar = pro.codBar | |
| 218 | -// artiAcargar.precio = pro.precio | |
| 219 | -// artiAcargar.costo = pro.costo | |
| 220 | -// artiAcargar.balanza = pro.balanza | |
| 221 | -// artiAcargar.depSn = pro.depSn | |
| 222 | -// artiAcargar.imagen = pro.imagen | |
| 223 | -// index += index | |
| 224 | -// | |
| 225 | -// AppDb.getAppDb(requireActivity())!!.ArticulosDAO()!! | |
| 226 | -// .insertArticulos(artiAcargar) | |
| 227 | -// } | |
| 228 | -// } | |
| 229 | 165 | } |
| 230 | 166 |
app/src/main/java/com/focasoftware/deboinventariov20/UI/configuracion/ConfiguracionFragment.kt
| ... | ... | @@ -17,6 +17,8 @@ import com.focasoftware.deboinventariov20.DB.DataBase.AppDb |
| 17 | 17 | import com.focasoftware.deboinventariov20.Model.ServeInv |
| 18 | 18 | import com.focasoftware.deboinventariov20.R |
| 19 | 19 | import com.focasoftware.deboinventariov20.UI.Utils.isConnectedToThisServer |
| 20 | +import com.focasoftware.deboinventariov20.UI.Utils.serverNoValido | |
| 21 | +import com.focasoftware.deboinventariov20.UI.Utils.serverValido | |
| 20 | 22 | import kotlinx.android.synthetic.main.fragment_configuracion.* |
| 21 | 23 | import kotlinx.coroutines.* |
| 22 | 24 | import kotlinx.coroutines.Dispatchers.Main |
| ... | ... | @@ -36,6 +38,7 @@ class ConfiguracionFragment : Fragment() { |
| 36 | 38 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) { |
| 37 | 39 | super.onViewCreated(view, savedInstanceState) |
| 38 | 40 | navController = Navigation.findNavController(view) |
| 41 | + | |
| 39 | 42 | GlobalScope.launch(Main) { |
| 40 | 43 | val listServer = mutableListOf<String>() |
| 41 | 44 | for (server in getDescServers()) { |
| ... | ... | @@ -55,11 +58,7 @@ class ConfiguracionFragment : Fragment() { |
| 55 | 58 | } |
| 56 | 59 | } |
| 57 | 60 | |
| 58 | - override fun onCreateView( | |
| 59 | - inflater: LayoutInflater, | |
| 60 | - container: ViewGroup?, | |
| 61 | - savedInstanceState: Bundle? | |
| 62 | - ): View? { | |
| 61 | + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { | |
| 63 | 62 | |
| 64 | 63 | val v = inflater.inflate(R.layout.fragment_configuracion, container, false) |
| 65 | 64 | val etRuta = v.findViewById<EditText>(R.id.etRuta) |
| ... | ... | @@ -187,33 +186,39 @@ class ConfiguracionFragment : Fragment() { |
| 187 | 186 | } |
| 188 | 187 | btnAgregarServidor.setOnClickListener { findNavController().navigate(R.id.servidoresFragment) } |
| 189 | 188 | |
| 190 | - btnValidarServidor.setOnClickListener { | |
| 191 | - GlobalScope.launch(Main) { | |
| 192 | - val serverPre = fetchServerPreOne() | |
| 193 | - if (isConnectedToThisServer(serverPre!!.direccion.toString().substring(7,serverPre.direccion.toString().length))) { | |
| 194 | - Toast.makeText(requireContext(), "¡Dirección Valida!", Toast.LENGTH_LONG).show() | |
| 195 | - } else { | |
| 196 | - Toast.makeText(requireContext(), "¡Verifique la Dirección!", Toast.LENGTH_LONG) | |
| 197 | - .show() | |
| 198 | - } | |
| 199 | - } | |
| 200 | - } | |
| 201 | - | |
| 202 | 189 | spServidor.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { |
| 203 | 190 | override fun onNothingSelected(parent: AdapterView<*>?) {} |
| 204 | - override fun onItemSelected( | |
| 205 | - parent: AdapterView<*>?, | |
| 206 | - view: View?, | |
| 207 | - position: Int, | |
| 208 | - id: Long | |
| 209 | - ) { | |
| 191 | + override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { | |
| 210 | 192 | itemSelect = parent!!.getItemAtPosition(position).toString().substring(0, 2).toInt() |
| 211 | 193 | indexSelect = position |
| 212 | 194 | } |
| 213 | 195 | } |
| 196 | + | |
| 197 | + btnValidarServidor.setOnClickListener { | |
| 198 | + GlobalScope.launch(Main) { | |
| 199 | + | |
| 200 | + val serverPre = fetchServer() | |
| 201 | + if (serverPre != null) { | |
| 202 | + if (isConnectedToThisServer(serverPre.direccion.toString().substring(7, serverPre.direccion.toString().length))) { | |
| 203 | + val modalDialog = serverValido() | |
| 204 | + modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog") | |
| 205 | + } else { | |
| 206 | + val modalDialog = serverNoValido() | |
| 207 | + modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog") | |
| 208 | + } | |
| 209 | + } | |
| 210 | + } | |
| 211 | + } | |
| 212 | + | |
| 214 | 213 | return v |
| 215 | 214 | } |
| 216 | 215 | |
| 216 | + private suspend fun fetchServer(): ServeInv? { | |
| 217 | + return GlobalScope.async(Dispatchers.IO) { | |
| 218 | + return@async AppDb.getAppDb(requireActivity())!!.ServeInvDao()!!.fetchServer(itemSelect) | |
| 219 | + }.await() | |
| 220 | + } | |
| 221 | + | |
| 217 | 222 | suspend fun getDescServers(): List<ServeInv> { |
| 218 | 223 | return GlobalScope.async(Dispatchers.IO) { |
| 219 | 224 | return@async AppDb.getAppDb(requireActivity())!!.ServeInvDao()!!.fetchAllServers() |
| ... | ... | @@ -221,67 +226,70 @@ class ConfiguracionFragment : Fragment() { |
| 221 | 226 | } |
| 222 | 227 | |
| 223 | 228 | fun guardarPreferencias() { |
| 224 | -// try { | |
| 225 | - val editor = sharedPreferences.edit() | |
| 226 | - | |
| 227 | - if (etRuta.text.isNotEmpty()) editor?.putString("etRuta", etRuta.text.toString()) | |
| 228 | - | |
| 229 | - if (rbProInclu.isChecked) editor?.putString( | |
| 230 | - "rbProInclu", | |
| 231 | - "1" | |
| 232 | - ) else editor?.putString("rbProInclu", "0") | |
| 233 | - if (rbProNoInclu.isChecked) editor?.putString( | |
| 234 | - "rbProNoInclu", | |
| 235 | - "1" | |
| 236 | - ) else editor?.putString("rbProNoInclu", "0") | |
| 237 | - | |
| 238 | - if (cbHabiLectura.isChecked) editor?.putString("cbHabiLectura", "1") else editor?.putString( | |
| 239 | - "cbHabiLectura", | |
| 240 | - "0" | |
| 241 | - ) | |
| 242 | - if (cbMostrarStock.isChecked) editor?.putString( | |
| 243 | - "cbMostrarStock", | |
| 244 | - "1" | |
| 245 | - ) else editor?.putString("cbMostrarStock", "0") | |
| 246 | - if (rbVentas.isChecked) editor?.putString( | |
| 247 | - "rbVentas", | |
| 248 | - "1" | |
| 249 | - ) else editor?.putString("rbVentas", "0") | |
| 250 | - if (rbDeposito.isChecked) editor?.putString( | |
| 251 | - "rbDeposito", | |
| 252 | - "1" | |
| 253 | - ) else editor?.putString("rbDeposito", "0") | |
| 254 | - if (rbCodigoDebo.isChecked) editor?.putString( | |
| 255 | - "rbCodigoDebo", | |
| 256 | - "1" | |
| 257 | - ) else editor?.putString("rbCodigoDebo", "0") | |
| 258 | - if (rbCodigoOrigen.isChecked) editor?.putString( | |
| 259 | - "rbCodigoOrigen", | |
| 260 | - "1" | |
| 261 | - ) else editor?.putString("rbCodigoOrigen", "0") | |
| 262 | - if (rbCodigoBarras.isChecked) editor?.putString( | |
| 263 | - "rbCodigoBarras", | |
| 264 | - "1" | |
| 265 | - ) else editor?.putString("rbCodigoBarras", "0") | |
| 266 | - if (cbMostrarExistencia.isChecked) editor?.putString( | |
| 267 | - "cbMostrarExistencia", | |
| 268 | - "1" | |
| 269 | - ) else editor?.putString("cbMostrarExistencia", "0") | |
| 270 | - if (cbMostrarPrecio.isChecked) editor?.putString( | |
| 271 | - "cbMostrarPrecio", | |
| 272 | - "1" | |
| 273 | - ) else editor?.putString("cbMostrarPrecio", "0") | |
| 274 | - editor?.putString("ServerPredeterminado", indexSelect.toString()) | |
| 275 | - updateServerPreInZero() | |
| 276 | - updateServerPre(itemSelect) | |
| 277 | - | |
| 278 | - editor?.apply() | |
| 279 | - editor.commit() | |
| 280 | - | |
| 281 | -// } catch (e: Exception) { | |
| 282 | -// Toast.makeText(requireContext(), "Error ", Toast.LENGTH_LONG).show() | |
| 283 | -// e.printStackTrace() | |
| 284 | -// } | |
| 229 | + try { | |
| 230 | + val editor = sharedPreferences.edit() | |
| 231 | + | |
| 232 | + if (etRuta.text.isNotEmpty()) editor?.putString("etRuta", etRuta.text.toString()) | |
| 233 | + | |
| 234 | + if (rbProInclu.isChecked) editor?.putString( | |
| 235 | + "rbProInclu", | |
| 236 | + "1" | |
| 237 | + ) else editor?.putString("rbProInclu", "0") | |
| 238 | + if (rbProNoInclu.isChecked) editor?.putString( | |
| 239 | + "rbProNoInclu", | |
| 240 | + "1" | |
| 241 | + ) else editor?.putString("rbProNoInclu", "0") | |
| 242 | + | |
| 243 | + if (cbHabiLectura.isChecked) editor?.putString( | |
| 244 | + "cbHabiLectura", | |
| 245 | + "1" | |
| 246 | + ) else editor?.putString( | |
| 247 | + "cbHabiLectura", | |
| 248 | + "0" | |
| 249 | + ) | |
| 250 | + if (cbMostrarStock.isChecked) editor?.putString( | |
| 251 | + "cbMostrarStock", | |
| 252 | + "1" | |
| 253 | + ) else editor?.putString("cbMostrarStock", "0") | |
| 254 | + if (rbVentas.isChecked) editor?.putString( | |
| 255 | + "rbVentas", | |
| 256 | + "1" | |
| 257 | + ) else editor?.putString("rbVentas", "0") | |
| 258 | + if (rbDeposito.isChecked) editor?.putString( | |
| 259 | + "rbDeposito", | |
| 260 | + "1" | |
| 261 | + ) else editor?.putString("rbDeposito", "0") | |
| 262 | + if (rbCodigoDebo.isChecked) editor?.putString( | |
| 263 | + "rbCodigoDebo", | |
| 264 | + "1" | |
| 265 | + ) else editor?.putString("rbCodigoDebo", "0") | |
| 266 | + if (rbCodigoOrigen.isChecked) editor?.putString( | |
| 267 | + "rbCodigoOrigen", | |
| 268 | + "1" | |
| 269 | + ) else editor?.putString("rbCodigoOrigen", "0") | |
| 270 | + if (rbCodigoBarras.isChecked) editor?.putString( | |
| 271 | + "rbCodigoBarras", | |
| 272 | + "1" | |
| 273 | + ) else editor?.putString("rbCodigoBarras", "0") | |
| 274 | + if (cbMostrarExistencia.isChecked) editor?.putString( | |
| 275 | + "cbMostrarExistencia", | |
| 276 | + "1" | |
| 277 | + ) else editor?.putString("cbMostrarExistencia", "0") | |
| 278 | + if (cbMostrarPrecio.isChecked) editor?.putString( | |
| 279 | + "cbMostrarPrecio", | |
| 280 | + "1" | |
| 281 | + ) else editor?.putString("cbMostrarPrecio", "0") | |
| 282 | + editor?.putString("ServerPredeterminado", indexSelect.toString()) | |
| 283 | + updateServerPreInZero() | |
| 284 | + updateServerPre(itemSelect) | |
| 285 | + | |
| 286 | + editor?.apply() | |
| 287 | + editor.commit() | |
| 288 | + | |
| 289 | + } catch (e: Exception) { | |
| 290 | + Toast.makeText(requireContext(), "Error ", Toast.LENGTH_LONG).show() | |
| 291 | + e.printStackTrace() | |
| 292 | + } | |
| 285 | 293 | } |
| 286 | 294 | |
| 287 | 295 | private fun updateServerPreInZero() { |
| ... | ... | @@ -305,6 +313,7 @@ class ConfiguracionFragment : Fragment() { |
| 305 | 313 | } |
| 306 | 314 | } |
| 307 | 315 | } |
| 316 | + | |
| 308 | 317 | private suspend fun fetchServerPreOne(): ServeInv? { |
| 309 | 318 | return GlobalScope.async(Dispatchers.IO) { |
| 310 | 319 | return@async AppDb.getAppDb(requireActivity())!!.ServeInvDao()!!.fetchServerPreOne() |
app/src/main/java/com/focasoftware/deboinventariov20/UI/descripCorigenFragment/CodigoOriFragment.kt
| ... | ... | @@ -7,7 +7,9 @@ import android.graphics.Canvas |
| 7 | 7 | import android.graphics.Color |
| 8 | 8 | import android.graphics.drawable.ColorDrawable |
| 9 | 9 | import android.os.Bundle |
| 10 | +import android.text.Editable | |
| 10 | 11 | import android.text.InputType |
| 12 | +import android.text.TextWatcher | |
| 11 | 13 | import androidx.fragment.app.Fragment |
| 12 | 14 | import android.view.LayoutInflater |
| 13 | 15 | import android.view.View |
| ... | ... | @@ -46,6 +48,7 @@ class CodigoOriFragment : Fragment() { |
| 46 | 48 | lateinit var navController: NavController |
| 47 | 49 | lateinit var sharedPreferences: SharedPreferences |
| 48 | 50 | private var artCargadoEnBD: InvBody? = null |
| 51 | + lateinit var mDialogViewM: View | |
| 49 | 52 | |
| 50 | 53 | override fun onCreate(savedInstanceState: Bundle?) { |
| 51 | 54 | super.onCreate(savedInstanceState) |
| ... | ... | @@ -146,65 +149,66 @@ class CodigoOriFragment : Fragment() { |
| 146 | 149 | } |
| 147 | 150 | } else if (artCargadoEnBD != null) { |
| 148 | 151 | |
| 149 | - val mDialogView = LayoutInflater.from(context).inflate(R.layout.login_dialog, null) | |
| 150 | - val mBuilder = AlertDialog.Builder(context).setView(mDialogView).setTitle("Producto '${artCargadoEnBD!!.descripcion}', se encuentra cargado.").setCancelable(false) | |
| 151 | - if (artCargadoEnBD!!.balanza.toString().contains("1") || artCargadoEnBD!!.balanza.toString().contains("3") || artCargadoEnBD!!.balanza.toString().contains("7")) mDialogView.tvNuevaCantidad.inputType= InputType.TYPE_CLASS_NUMBER | |
| 152 | - mDialogView.tvCantInicial.text =String.format("%.2f", artCargadoEnBD!!.cantTomada.toString().toFloat()) | |
| 152 | + mDialogViewM = LayoutInflater.from(context).inflate(R.layout.login_dialog, null) | |
| 153 | + val mBuilder = AlertDialog.Builder(context).setView(mDialogViewM).setCancelable(false) | |
| 154 | + if (artCargadoEnBD!!.balanza.toString().contains("1") || artCargadoEnBD!!.balanza.toString().contains("3") || artCargadoEnBD!!.balanza.toString().contains("7")) mDialogViewM.tvNuevaCantidad.inputType= InputType.TYPE_CLASS_NUMBER | |
| 155 | + mDialogViewM.tvTitulo2.text="${artCargadoEnBD!!.descripcion}" | |
| 156 | + mDialogViewM.tvCantInicial.text =String.format("%.2f", artCargadoEnBD!!.cantTomada.toString().toFloat()) | |
| 153 | 157 | |
| 154 | 158 | val mAlertDialog = mBuilder.show() |
| 155 | - mDialogView.tvNuevaCantidad.requestFocus() | |
| 156 | - | |
| 159 | + mDialogViewM.tvNuevaCantidad.requestFocus() | |
| 160 | + mDialogViewM.tvNuevaCantidad.addTextChangedListener(textWatcher) | |
| 157 | 161 | |
| 158 | 162 | mAlertDialog?.window!!.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM) |
| 159 | 163 | mAlertDialog.window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) |
| 160 | 164 | |
| 161 | - mDialogView.rbSumar.setOnClickListener { | |
| 162 | - if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 163 | - mDialogView.tvResultado.text = String.format("%.2f", (mDialogView.tvCantInicial.text.toString().toFloat() + mDialogView.tvNuevaCantidad.text.toString().toFloat())) | |
| 164 | - mDialogView.tvNuevaCantidad.isEnabled=false | |
| 165 | + mDialogViewM.rbSumar.setOnClickListener { | |
| 166 | + if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 167 | + mDialogViewM.tvResultado.text = String.format("%.2f", (mDialogViewM.tvCantInicial.text.toString().toFloat() + mDialogViewM.tvNuevaCantidad.text.toString().toFloat())) | |
| 168 | +// mDialogView.tvNuevaCantidad.isEnabled=false | |
| 165 | 169 | } |
| 166 | 170 | } |
| 167 | - mDialogView.rbRestar.setOnClickListener { | |
| 168 | - if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 169 | - if (mDialogView.tvCantInicial.text.toString().toFloat() >= mDialogView.tvNuevaCantidad.text.toString().toFloat()) { | |
| 170 | - mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvCantInicial.text.toString().toFloat() - mDialogView.tvNuevaCantidad.text.toString().toFloat()) | |
| 171 | - mDialogView.tvNuevaCantidad.isEnabled = false | |
| 171 | + mDialogViewM.rbRestar.setOnClickListener { | |
| 172 | + if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 173 | + if (mDialogViewM.tvCantInicial.text.toString().toFloat() >= mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) { | |
| 174 | + mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvCantInicial.text.toString().toFloat() - mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) | |
| 175 | +// mDialogView.tvNuevaCantidad.isEnabled = false | |
| 172 | 176 | }else{ |
| 173 | - mDialogView.tvResultado.text="" | |
| 174 | - mDialogView.tvResultado.error = "Operación No Valida" | |
| 175 | - mDialogView.tvResultado.requestFocus() | |
| 176 | - mDialogView.tvResultado.hint = "Error" | |
| 177 | + mDialogViewM.tvResultado.text="" | |
| 178 | + mDialogViewM.tvResultado.error = "Operación No Valida" | |
| 179 | + mDialogViewM.tvResultado.requestFocus() | |
| 180 | + mDialogViewM.tvResultado.hint = "Error" | |
| 177 | 181 | } |
| 178 | 182 | } |
| 179 | 183 | } |
| 180 | - mDialogView.rbMdodificar.setOnClickListener { | |
| 181 | - if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 182 | - mDialogView.tvResultado.text = String.format("%.2f", (mDialogView.tvNuevaCantidad.text.toString().toFloat())) | |
| 183 | - mDialogView.tvNuevaCantidad.isEnabled = false | |
| 184 | + mDialogViewM.rbMdodificar.setOnClickListener { | |
| 185 | + if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 186 | + mDialogViewM.tvResultado.text = String.format("%.2f", (mDialogViewM.tvNuevaCantidad.text.toString().toFloat())) | |
| 187 | +// mDialogView.tvNuevaCantidad.isEnabled = false | |
| 184 | 188 | } |
| 185 | 189 | } |
| 186 | - mDialogView.btnAceptar.setOnClickListener { | |
| 187 | - if (mDialogView.tvNuevaCantidad.text.isNotEmpty() || !mDialogView.tvNuevaCantidad.text.isBlank()) { | |
| 188 | - if (mDialogView.tvResultado.text.isNotEmpty() || !mDialogView.tvResultado.text.isBlank()) { | |
| 190 | + mDialogViewM.btnAceptar.setOnClickListener { | |
| 191 | + if (mDialogViewM.tvNuevaCantidad.text.isNotEmpty() || !mDialogViewM.tvNuevaCantidad.text.isBlank()) { | |
| 192 | + if (mDialogViewM.tvResultado.text.isNotEmpty() || !mDialogViewM.tvResultado.text.isBlank()) { | |
| 189 | 193 | |
| 190 | 194 | updateCantidad((viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.sector.toString(), |
| 191 | 195 | (viewAdapter2 as CodigoOrigenAdapter).items2?.get(viewHolder.layoutPosition)!!.codigo.toString(), |
| 192 | - mDialogView.tvResultado.text.toString().toFloat()) | |
| 196 | + mDialogViewM.tvResultado.text.toString().toFloat()) | |
| 193 | 197 | // VolverAinventario() |
| 194 | 198 | activity?.onBackPressed(); |
| 195 | 199 | mAlertDialog.dismiss() |
| 196 | - } else if (mDialogView.tvNuevaCantidad.text.isNotEmpty() || mDialogView.tvNuevaCantidad.text.isBlank()) { | |
| 197 | - mDialogView.tvResultado.error = "Operación Requerida" | |
| 198 | - mDialogView.tvResultado.requestFocus() | |
| 199 | - mDialogView.tvResultado.hint = "Seleccione Operación" | |
| 200 | + } else if (mDialogViewM.tvNuevaCantidad.text.isNotEmpty() || mDialogViewM.tvNuevaCantidad.text.isBlank()) { | |
| 201 | + mDialogViewM.tvResultado.error = "Operación Requerida" | |
| 202 | + mDialogViewM.tvResultado.requestFocus() | |
| 203 | + mDialogViewM.tvResultado.hint = "Seleccione Operación" | |
| 200 | 204 | } |
| 201 | - } else if (mDialogView.tvNuevaCantidad.text.isEmpty() || mDialogView.tvNuevaCantidad.text.isBlank()) { | |
| 202 | - mDialogView.tvNuevaCantidad.error = "Completar" | |
| 203 | - mDialogView.tvNuevaCantidad.requestFocus() | |
| 204 | - mDialogView.tvNuevaCantidad.hint = "Ingrese un valor" | |
| 205 | + } else if (mDialogViewM.tvNuevaCantidad.text.isEmpty() || mDialogViewM.tvNuevaCantidad.text.isBlank()) { | |
| 206 | + mDialogViewM.tvNuevaCantidad.error = "Completar" | |
| 207 | + mDialogViewM.tvNuevaCantidad.requestFocus() | |
| 208 | + mDialogViewM.tvNuevaCantidad.hint = "Ingrese un valor" | |
| 205 | 209 | } |
| 206 | 210 | } |
| 207 | - mDialogView.dialogCancelBtn.setOnClickListener { | |
| 211 | + mDialogViewM.dialogCancelBtn.setOnClickListener { | |
| 208 | 212 | activity?.onBackPressed(); |
| 209 | 213 | mAlertDialog.dismiss() |
| 210 | 214 | } |
| ... | ... | @@ -242,20 +246,11 @@ class CodigoOriFragment : Fragment() { |
| 242 | 246 | } |
| 243 | 247 | } |
| 244 | 248 | |
| 245 | -// fun VolverAinventario() { | |
| 246 | -// | |
| 247 | -// val editor = sharedPreferences.edit() | |
| 248 | -// editor?.putString("Inventario", numeroInventario.toString()) | |
| 249 | -// editor?.apply() | |
| 250 | -// editor.commit() | |
| 251 | -// navController.navigate(R.id.action_descripcionFragment_to_inventarioFragment) | |
| 252 | -// } | |
| 253 | - | |
| 254 | 249 | suspend fun buscarCodigoDeboEnBD(sector: String, codigo: String, numInventario: String): InvBody? { |
| 255 | 250 | //TODO BUSQUEDA POR CODIGO DE BARRAS |
| 256 | 251 | var busqueda: InvBody? = null |
| 257 | 252 | return GlobalScope.async(Dispatchers.IO) { |
| 258 | - busqueda = AppDb.getAppDb(requireContext())!!.InvBodyDAO()!!.fetchArtInInvBody(sector, codigo, numInventario) | |
| 253 | + busqueda = AppDb.getAppDb(requireContext())!!.InvBodyDAO()!!.fetchArtInInvBody(sector.toLong(), codigo.toLong(), numInventario.toLong()) | |
| 259 | 254 | return@async busqueda |
| 260 | 255 | }.await() |
| 261 | 256 | } |
| ... | ... | @@ -265,10 +260,42 @@ class CodigoOriFragment : Fragment() { |
| 265 | 260 | withContext(Dispatchers.IO) { |
| 266 | 261 | val activity: FragmentActivity? = activity |
| 267 | 262 | if (activity != null && isAdded) { |
| 268 | - AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.UpdateInvBody(cantidad, sector, codigo) | |
| 263 | + AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.UpdateInvBody(cantidad, sector.toLong(), codigo.toLong()) | |
| 269 | 264 | } |
| 270 | 265 | } |
| 271 | 266 | } |
| 272 | 267 | } |
| 268 | + private val textWatcher = object : TextWatcher { | |
| 269 | + override fun afterTextChanged(s: Editable?) { | |
| 270 | + } | |
| 271 | + | |
| 272 | + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { | |
| 273 | + } | |
| 273 | 274 | |
| 275 | + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { | |
| 276 | + if (mDialogViewM.rbSumar.isChecked) { | |
| 277 | +// mDialogView.tvNuevaCantidad.isEnabled=false | |
| 278 | + mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvNuevaCantidad.text.toString().toFloat() + mDialogViewM.tvCantInicial.text.toString().toFloat()) | |
| 279 | + } | |
| 280 | + if (mDialogViewM.rbRestar.isChecked) { | |
| 281 | + if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 282 | + if (mDialogViewM.tvCantInicial.text.toString().toFloat() >= mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) { | |
| 283 | + mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvCantInicial.text.toString().toFloat() - mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) | |
| 284 | +// mDialogView.tvNuevaCantidad.isEnabled = false | |
| 285 | + } else { | |
| 286 | + mDialogViewM.tvResultado.text = "" | |
| 287 | + mDialogViewM.tvResultado.error = "Operación No Valida" | |
| 288 | + mDialogViewM.tvResultado.requestFocus() | |
| 289 | + mDialogViewM.tvResultado.hint = "Error" | |
| 290 | + } | |
| 291 | + } | |
| 292 | + } | |
| 293 | + if (mDialogViewM.rbMdodificar.isChecked) { | |
| 294 | + if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 295 | + mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) | |
| 296 | +// mDialogView.tvNuevaCantidad.isEnabled = false | |
| 297 | + } | |
| 298 | + } | |
| 299 | + } | |
| 300 | + } | |
| 274 | 301 | } |
| 275 | 302 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/descripcionFragment/DescripcionFragment.kt
| ... | ... | @@ -7,7 +7,9 @@ import android.graphics.Canvas |
| 7 | 7 | import android.graphics.Color |
| 8 | 8 | import android.graphics.drawable.ColorDrawable |
| 9 | 9 | import android.os.Bundle |
| 10 | +import android.text.Editable | |
| 10 | 11 | import android.text.InputType |
| 12 | +import android.text.TextWatcher | |
| 11 | 13 | import android.view.LayoutInflater |
| 12 | 14 | import android.view.View |
| 13 | 15 | import android.view.ViewGroup |
| ... | ... | @@ -45,6 +47,7 @@ class DescripcionFragment : Fragment() { |
| 45 | 47 | lateinit var navController: NavController |
| 46 | 48 | lateinit var sharedPreferences: SharedPreferences |
| 47 | 49 | private var artCargadoEnBD: InvBody? = null |
| 50 | + lateinit var mDialogViewM: View | |
| 48 | 51 | |
| 49 | 52 | override fun onCreate(savedInstanceState: Bundle?) { |
| 50 | 53 | super.onCreate(savedInstanceState) |
| ... | ... | @@ -55,23 +58,19 @@ class DescripcionFragment : Fragment() { |
| 55 | 58 | } |
| 56 | 59 | |
| 57 | 60 | } |
| 61 | + | |
| 58 | 62 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) { |
| 59 | 63 | super.onViewCreated(view, savedInstanceState) |
| 60 | 64 | navController = Navigation.findNavController(view) |
| 61 | 65 | showSoftKeyboard(view) |
| 62 | 66 | } |
| 67 | + | |
| 63 | 68 | override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { |
| 64 | 69 | val v = inflater.inflate(R.layout.fragment_descripcion, container, false) |
| 65 | 70 | rcDescripcion = v.findViewById(R.id.rcDescripcion) |
| 66 | -// val btnSalir = v.findViewById<Button>(R.id.btnSalir) | |
| 67 | - | |
| 68 | - | |
| 69 | 71 | IngresarRecicler(artAcargar2) |
| 70 | 72 | showSoftKeyboard(v) |
| 71 | -// btnSalir.setOnClickListener { | |
| 72 | -// activity?.onBackPressed(); | |
| 73 | -//// VolverAinventario() | |
| 74 | -// } | |
| 73 | + | |
| 75 | 74 | return v |
| 76 | 75 | } |
| 77 | 76 | |
| ... | ... | @@ -100,30 +99,33 @@ class DescripcionFragment : Fragment() { |
| 100 | 99 | |
| 101 | 100 | GlobalScope.launch(Dispatchers.Main) { |
| 102 | 101 | //TODO BUSCO EN BASE DE DATOS |
| 103 | - artCargadoEnBD = buscarCodigoDeboEnBD((viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)?.sector.toString(), | |
| 104 | - (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)?.codigo.toString(), numeroInventario.toString()) | |
| 102 | + artCargadoEnBD = buscarCodigoDeboEnBD( | |
| 103 | + (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)?.sector.toString(), | |
| 104 | + (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)?.codigo.toString(), numeroInventario.toString() | |
| 105 | + ) | |
| 105 | 106 | if (artCargadoEnBD == null) { |
| 106 | 107 | val mDialogView = LayoutInflater.from(context).inflate(R.layout.ingresar_cantidad, null) |
| 107 | 108 | val mBuilder = AlertDialog.Builder(context).setView(mDialogView).setCancelable(false) |
| 108 | 109 | //TODO: DEPENDIENDO DEL TIPO DE ARTICULO PERMITER INGRESAR DECIMALES O NO |
| 109 | - if ((viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.balanza==1 || (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.balanza==3 || (viewAdapter2 as DescripcionListAdapter).items2?.get( | |
| 110 | - viewHolder.layoutPosition)!!.balanza==7) | |
| 111 | - mDialogView.etCantidad.inputType= InputType.TYPE_CLASS_NUMBER | |
| 112 | - | |
| 110 | + 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) | |
| 111 | + mDialogView.etCantidad.inputType = InputType.TYPE_CLASS_NUMBER | |
| 113 | 112 | |
| 114 | 113 | mDialogView.tvTitulo.text = "${(viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.descripcion}" |
| 115 | 114 | val mAlertDialog = mBuilder.show() |
| 115 | + | |
| 116 | 116 | mDialogView.etCantidad.requestFocus() |
| 117 | 117 | mAlertDialog.window!!.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM) |
| 118 | 118 | mAlertDialog.window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) |
| 119 | + | |
| 119 | 120 | mDialogView.btnAceptar.setOnClickListener { |
| 120 | 121 | if (mDialogView.etCantidad.text.isNullOrEmpty()) { |
| 121 | 122 | mDialogView.etCantidad.error = "No vacio" |
| 122 | 123 | mDialogView.etCantidad.requestFocus() |
| 123 | 124 | mDialogView.etCantidad.hint = "Ingrese un valor" |
| 124 | 125 | } else if (!mDialogView.etCantidad.text.isNullOrEmpty()) { |
| 125 | - cantidad =String.format("%.2f", mDialogView.etCantidad.text.toString().toFloat()).toFloat() | |
| 126 | - val body = InvBody(numeroInventario, | |
| 126 | + cantidad = String.format("%.2f", mDialogView.etCantidad.text.toString().toFloat()).toFloat() | |
| 127 | + val body = InvBody( | |
| 128 | + numeroInventario, | |
| 127 | 129 | (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.sector, |
| 128 | 130 | // TODO: PREPARO PARA MANDAR A CARGAR EN LA BD |
| 129 | 131 | (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.codigo, |
| ... | ... | @@ -136,7 +138,8 @@ class DescripcionFragment : Fragment() { |
| 136 | 138 | (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.balanza, |
| 137 | 139 | (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.depSn, |
| 138 | 140 | InventarioFragment().ObtenerFechaActual(), |
| 139 | - InventarioFragment().ObtenerFechaActual()) | |
| 141 | + InventarioFragment().ObtenerFechaActual() | |
| 142 | + ) | |
| 140 | 143 | InsertarArtEnDB(body)// TODO: MANDO A CARGAR A LA BASE DE DATOS |
| 141 | 144 | modificarCantidadEnCabecera(numeroInventario, true, requireActivity()) |
| 142 | 145 | // VolverAinventario() |
| ... | ... | @@ -146,66 +149,71 @@ class DescripcionFragment : Fragment() { |
| 146 | 149 | } |
| 147 | 150 | } else if (artCargadoEnBD != null) { |
| 148 | 151 | |
| 149 | - val mDialogView = LayoutInflater.from(context).inflate(R.layout.login_dialog, null) | |
| 150 | - val mBuilder = AlertDialog.Builder(context).setView(mDialogView).setTitle("Producto '${artCargadoEnBD!!.descripcion}', se encuentra cargado.").setCancelable(false) | |
| 151 | - if (artCargadoEnBD!!.balanza.toString().contains("1") || artCargadoEnBD!!.balanza.toString().contains("3") || artCargadoEnBD!!.balanza.toString().contains("7")) mDialogView.tvNuevaCantidad.inputType= InputType.TYPE_CLASS_NUMBER | |
| 152 | - mDialogView.tvCantInicial.text =String.format("%.2f", artCargadoEnBD!!.cantTomada.toString().toFloat()) | |
| 152 | + mDialogViewM = LayoutInflater.from(context).inflate(R.layout.login_dialog, null) | |
| 153 | + val mBuilder = AlertDialog.Builder(context).setView(mDialogViewM).setCancelable(false) | |
| 154 | + if (artCargadoEnBD!!.balanza.toString().contains("1") || artCargadoEnBD!!.balanza.toString().contains("3") || artCargadoEnBD!!.balanza.toString().contains("7") | |
| 155 | + ) mDialogViewM.tvNuevaCantidad.inputType = InputType.TYPE_CLASS_NUMBER | |
| 156 | + mDialogViewM.tvTitulo2.text="${artCargadoEnBD!!.descripcion}" | |
| 157 | + mDialogViewM.tvCantInicial.text = String.format("%.2f", artCargadoEnBD!!.cantTomada.toString().toFloat()) | |
| 153 | 158 | |
| 154 | 159 | val mAlertDialog = mBuilder.show() |
| 155 | - mDialogView.tvNuevaCantidad.requestFocus() | |
| 160 | + mDialogViewM.tvNuevaCantidad.requestFocus() | |
| 156 | 161 | |
| 157 | 162 | |
| 158 | 163 | mAlertDialog?.window!!.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM) |
| 159 | 164 | mAlertDialog.window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) |
| 160 | 165 | |
| 161 | - mDialogView.rbSumar.setOnClickListener { | |
| 162 | - if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 163 | - mDialogView.tvResultado.text = String.format("%.2f", (mDialogView.tvCantInicial.text.toString().toFloat() + mDialogView.tvNuevaCantidad.text.toString().toFloat())) | |
| 164 | - mDialogView.tvNuevaCantidad.isEnabled=false | |
| 166 | + mDialogViewM.tvNuevaCantidad.addTextChangedListener(textWatcher) | |
| 167 | + | |
| 168 | + mDialogViewM.rbSumar.setOnClickListener { | |
| 169 | + if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 170 | + mDialogViewM.tvResultado.text = String.format("%.2f", (mDialogViewM.tvCantInicial.text.toString().toFloat() + mDialogViewM.tvNuevaCantidad.text.toString().toFloat())) | |
| 171 | +// mDialogViewM.tvNuevaCantidad.isEnabled = false | |
| 165 | 172 | } |
| 166 | 173 | } |
| 167 | - mDialogView.rbRestar.setOnClickListener { | |
| 168 | - if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 169 | - if (mDialogView.tvCantInicial.text.toString().toFloat() >= mDialogView.tvNuevaCantidad.text.toString().toFloat()) { | |
| 170 | - mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvCantInicial.text.toString().toFloat() - mDialogView.tvNuevaCantidad.text.toString().toFloat()) | |
| 171 | - mDialogView.tvNuevaCantidad.isEnabled = false | |
| 172 | - }else{ | |
| 173 | - mDialogView.tvResultado.text="" | |
| 174 | - mDialogView.tvResultado.error = "Operación No Valida" | |
| 175 | - mDialogView.tvResultado.requestFocus() | |
| 176 | - mDialogView.tvResultado.hint = "Error" | |
| 174 | + mDialogViewM.rbRestar.setOnClickListener { | |
| 175 | + if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 176 | + if (mDialogViewM.tvCantInicial.text.toString().toFloat() >= mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) { | |
| 177 | + mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvCantInicial.text.toString().toFloat() - mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) | |
| 178 | +// mDialogViewM.tvNuevaCantidad.isEnabled = false | |
| 179 | + } else { | |
| 180 | + mDialogViewM.tvResultado.text = "" | |
| 181 | + mDialogViewM.tvResultado.error = "Operación No Valida" | |
| 182 | + mDialogViewM.tvResultado.requestFocus() | |
| 183 | + mDialogViewM.tvResultado.hint = "Error" | |
| 177 | 184 | } |
| 178 | 185 | } |
| 179 | 186 | } |
| 180 | - mDialogView.rbMdodificar.setOnClickListener { | |
| 181 | - if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 182 | - mDialogView.tvResultado.text = String.format("%.2f", (mDialogView.tvNuevaCantidad.text.toString().toFloat())) | |
| 183 | - mDialogView.tvNuevaCantidad.isEnabled = false | |
| 187 | + mDialogViewM.rbMdodificar.setOnClickListener { | |
| 188 | + if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 189 | + mDialogViewM.tvResultado.text = String.format("%.2f", (mDialogViewM.tvNuevaCantidad.text.toString().toFloat())) | |
| 190 | +// mDialogViewM.tvNuevaCantidad.isEnabled = false | |
| 184 | 191 | } |
| 185 | 192 | } |
| 186 | - mDialogView.btnAceptar.setOnClickListener { | |
| 187 | - if (mDialogView.tvNuevaCantidad.text.isNotEmpty() || !mDialogView.tvNuevaCantidad.text.isBlank()) { | |
| 188 | - if (mDialogView.tvResultado.text.isNotEmpty() || !mDialogView.tvResultado.text.isBlank()) { | |
| 189 | - | |
| 190 | - updateCantidad((viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.sector.toString(), | |
| 191 | - (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.codigo.toString(), | |
| 192 | - mDialogView.tvResultado.text.toString().toFloat()) | |
| 193 | -// VolverAinventario() | |
| 194 | - activity?.onBackPressed(); | |
| 195 | - mAlertDialog.dismiss() | |
| 196 | - } else if (mDialogView.tvNuevaCantidad.text.isNotEmpty() || mDialogView.tvNuevaCantidad.text.isBlank()) { | |
| 197 | - mDialogView.tvResultado.error = "Operación Requerida" | |
| 198 | - mDialogView.tvResultado.requestFocus() | |
| 199 | - mDialogView.tvResultado.hint = "Seleccione Operación" | |
| 193 | + mDialogViewM.btnAceptar.setOnClickListener { | |
| 194 | + if (mDialogViewM.tvNuevaCantidad.text.isNotEmpty() || !mDialogViewM.tvNuevaCantidad.text.isBlank()) { | |
| 195 | + if (mDialogViewM.tvResultado.text.isNotEmpty() || !mDialogViewM.tvResultado.text.isBlank()) { | |
| 196 | + | |
| 197 | + updateCantidad( | |
| 198 | + (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.sector.toString(), | |
| 199 | + (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.codigo.toString(), | |
| 200 | + mDialogViewM.tvResultado.text.toString().toFloat() | |
| 201 | + ) | |
| 202 | + activity?.onBackPressed() | |
| 203 | + mAlertDialog.dismiss() | |
| 204 | + } else if (mDialogViewM.tvNuevaCantidad.text.isNotEmpty() || mDialogViewM.tvNuevaCantidad.text.isBlank()) { | |
| 205 | + mDialogViewM.tvResultado.error = "Operación Requerida" | |
| 206 | + mDialogViewM.tvResultado.requestFocus() | |
| 207 | + mDialogViewM.tvResultado.hint = "Seleccione Operación" | |
| 208 | + } | |
| 209 | + } else if (mDialogViewM.tvNuevaCantidad.text.isEmpty() || mDialogViewM.tvNuevaCantidad.text.isBlank()) { | |
| 210 | + mDialogViewM.tvNuevaCantidad.error = "Completar" | |
| 211 | + mDialogViewM.tvNuevaCantidad.requestFocus() | |
| 212 | + mDialogViewM.tvNuevaCantidad.hint = "Ingrese un valor" | |
| 200 | 213 | } |
| 201 | - } else if (mDialogView.tvNuevaCantidad.text.isEmpty() || mDialogView.tvNuevaCantidad.text.isBlank()) { | |
| 202 | - mDialogView.tvNuevaCantidad.error = "Completar" | |
| 203 | - mDialogView.tvNuevaCantidad.requestFocus() | |
| 204 | - mDialogView.tvNuevaCantidad.hint = "Ingrese un valor" | |
| 205 | - } | |
| 206 | 214 | } |
| 207 | - mDialogView.dialogCancelBtn.setOnClickListener { | |
| 208 | - activity?.onBackPressed(); | |
| 215 | + mDialogViewM.dialogCancelBtn.setOnClickListener { | |
| 216 | + activity?.onBackPressed() | |
| 209 | 217 | mAlertDialog.dismiss() |
| 210 | 218 | } |
| 211 | 219 | } |
| ... | ... | @@ -231,7 +239,6 @@ class DescripcionFragment : Fragment() { |
| 231 | 239 | } |
| 232 | 240 | val itemTouchHelper2 = ItemTouchHelper(itemTouchHelperCallback) |
| 233 | 241 | itemTouchHelper2.attachToRecyclerView(rcDescripcion) |
| 234 | - | |
| 235 | 242 | } |
| 236 | 243 | |
| 237 | 244 | fun InsertarArtEnDB(cuarpoInventario: InvBody) { |
| ... | ... | @@ -242,20 +249,11 @@ class DescripcionFragment : Fragment() { |
| 242 | 249 | } |
| 243 | 250 | } |
| 244 | 251 | |
| 245 | -// fun VolverAinventario() { | |
| 246 | -// | |
| 247 | -// val editor = sharedPreferences.edit() | |
| 248 | -// editor?.putString("Inventario", numeroInventario.toString()) | |
| 249 | -// editor?.apply() | |
| 250 | -// editor.commit() | |
| 251 | -// navController.navigate(R.id.action_descripcionFragment_to_inventarioFragment) | |
| 252 | -// } | |
| 253 | - | |
| 254 | 252 | suspend fun buscarCodigoDeboEnBD(sector: String, codigo: String, numInventario: String): InvBody? { |
| 255 | 253 | //TODO BUSQUEDA POR CODIGO DE BARRAS |
| 256 | 254 | var busqueda: InvBody? = null |
| 257 | 255 | return GlobalScope.async(Dispatchers.IO) { |
| 258 | - busqueda = AppDb.getAppDb(requireContext())!!.InvBodyDAO()!!.fetchArtInInvBody(sector, codigo, numInventario) | |
| 256 | + busqueda = AppDb.getAppDb(requireContext())!!.InvBodyDAO()!!.fetchArtInInvBody(sector.toLong(), codigo.toLong(), numInventario.toLong()) | |
| 259 | 257 | return@async busqueda |
| 260 | 258 | }.await() |
| 261 | 259 | } |
| ... | ... | @@ -265,7 +263,41 @@ class DescripcionFragment : Fragment() { |
| 265 | 263 | withContext(Dispatchers.IO) { |
| 266 | 264 | val activity: FragmentActivity? = activity |
| 267 | 265 | if (activity != null && isAdded) { |
| 268 | - AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.UpdateInvBody(cantidad, sector, codigo) | |
| 266 | + AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.UpdateInvBody(cantidad, sector.toLong(), codigo.toLong()) | |
| 267 | + } | |
| 268 | + } | |
| 269 | + } | |
| 270 | + } | |
| 271 | + | |
| 272 | + private val textWatcher = object : TextWatcher { | |
| 273 | + override fun afterTextChanged(s: Editable?) { | |
| 274 | + } | |
| 275 | + | |
| 276 | + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { | |
| 277 | + } | |
| 278 | + | |
| 279 | + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { | |
| 280 | + if (mDialogViewM.rbSumar.isChecked) { | |
| 281 | +// mDialogView.tvNuevaCantidad.isEnabled=false | |
| 282 | + mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvNuevaCantidad.text.toString().toFloat() + mDialogViewM.tvCantInicial.text.toString().toFloat()) | |
| 283 | + } | |
| 284 | + if (mDialogViewM.rbRestar.isChecked) { | |
| 285 | + if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 286 | + if (mDialogViewM.tvCantInicial.text.toString().toFloat() >= mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) { | |
| 287 | + mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvCantInicial.text.toString().toFloat() - mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) | |
| 288 | +// mDialogView.tvNuevaCantidad.isEnabled = false | |
| 289 | + } else { | |
| 290 | + mDialogViewM.tvResultado.text = "" | |
| 291 | + mDialogViewM.tvResultado.error = "Operación No Valida" | |
| 292 | + mDialogViewM.tvResultado.requestFocus() | |
| 293 | + mDialogViewM.tvResultado.hint = "Error" | |
| 294 | + } | |
| 295 | + } | |
| 296 | + } | |
| 297 | + if (mDialogViewM.rbMdodificar.isChecked) { | |
| 298 | + if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 299 | + mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) | |
| 300 | +// mDialogView.tvNuevaCantidad.isEnabled = false | |
| 269 | 301 | } |
| 270 | 302 | } |
| 271 | 303 | } |
app/src/main/java/com/focasoftware/deboinventariov20/UI/inventario/InventarioFragment.kt
| ... | ... | @@ -2,6 +2,7 @@ package com.focasoftware.deboinventariov20.UI.inventario |
| 2 | 2 | |
| 3 | 3 | import android.annotation.SuppressLint |
| 4 | 4 | import android.app.AlertDialog |
| 5 | +import android.app.Dialog | |
| 5 | 6 | import android.content.Context |
| 6 | 7 | import android.content.Context.INPUT_METHOD_SERVICE |
| 7 | 8 | import android.content.DialogInterface |
| ... | ... | @@ -10,7 +11,9 @@ import android.graphics.Canvas |
| 10 | 11 | import android.graphics.Color |
| 11 | 12 | import android.graphics.drawable.Drawable |
| 12 | 13 | import android.os.Bundle |
| 14 | +import android.text.Editable | |
| 13 | 15 | import android.text.InputType.TYPE_CLASS_NUMBER |
| 16 | +import android.text.TextWatcher | |
| 14 | 17 | import android.view.* |
| 15 | 18 | import android.view.inputmethod.InputMethodManager |
| 16 | 19 | import android.widget.EditText |
| ... | ... | @@ -59,6 +62,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 59 | 62 | private var fCant = 0F |
| 60 | 63 | private var bFirst = false |
| 61 | 64 | private lateinit var deleteIcon: Drawable |
| 65 | + lateinit var mDialogView: View | |
| 62 | 66 | |
| 63 | 67 | @SuppressLint("MissingPermission") |
| 64 | 68 | override fun onCreate(savedInstanceState: Bundle?) { |
| ... | ... | @@ -365,8 +369,8 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 365 | 369 | private fun BorrarInvActual() { |
| 366 | 370 | lifecycleScope.launch { |
| 367 | 371 | withContext(Dispatchers.IO) { |
| 368 | - AppDb.getAppDb(requireActivity())!!.InvHeadDAO()!!.deleteinvHead(InventarioNuevo) | |
| 369 | - AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.deleteInvBody(InventarioNuevo) | |
| 372 | + AppDb.getAppDb(requireActivity())!!.InvHeadDAO()!!.deleteinvHead(InventarioNuevo.toLong()) | |
| 373 | + AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.deleteInvBody(InventarioNuevo.toLong()) | |
| 370 | 374 | } |
| 371 | 375 | } |
| 372 | 376 | } |
| ... | ... | @@ -524,11 +528,11 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 524 | 528 | if (artAcargar!!.balanza!!.toInt() == 1 || artAcargar.balanza!!.toInt() == 3 || artAcargar.balanza!!.toInt() == 7) mDialogView.etCantidad.inputType = TYPE_CLASS_NUMBER |
| 525 | 529 | mDialogView.tvTitulo.text = artAcargar.descripcion.toString() |
| 526 | 530 | val mAlertDialog = mBuilder.show() |
| 531 | + | |
| 527 | 532 | mDialogView.etCantidad.requestFocus() |
| 528 | 533 | mAlertDialog?.window!!.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM) |
| 529 | 534 | mAlertDialog.window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) |
| 530 | 535 | |
| 531 | - | |
| 532 | 536 | mDialogView.btnAceptar.setOnClickListener { |
| 533 | 537 | if (mDialogView.etCantidad.text.isNullOrEmpty()) { |
| 534 | 538 | mDialogView.etCantidad.error = "No vacio" |
| ... | ... | @@ -546,11 +550,12 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 546 | 550 | } |
| 547 | 551 | |
| 548 | 552 | fun dialogoSumaResta(context: Context, indiceDelArtEncontrado: Int, univta: String, cancelable: Boolean) { |
| 549 | - val mDialogView = LayoutInflater.from(context).inflate(R.layout.login_dialog, null) | |
| 550 | - val mBuilder = AlertDialog.Builder(context).setView(mDialogView).setTitle("${listArticulos[indiceDelArtEncontrado].descripcion} se encuentra cargado.").setCancelable(cancelable) | |
| 553 | + | |
| 554 | + mDialogView = LayoutInflater.from(context).inflate(R.layout.login_dialog, null) | |
| 555 | + val mBuilder = AlertDialog.Builder(context).setView(mDialogView).setCancelable(cancelable) | |
| 551 | 556 | // TODO: SI PERMITE QUE INGRESE DECIMALES |
| 552 | 557 | if (univta.contains("1") || univta.contains("3") || univta.contains("7")) mDialogView.tvNuevaCantidad.inputType = TYPE_CLASS_NUMBER |
| 553 | - | |
| 558 | + mDialogView.tvTitulo2.text="${listArticulos[indiceDelArtEncontrado].descripcion}" | |
| 554 | 559 | mDialogView.tvCantInicial.text = String.format("%.2f", listArticulos[indiceDelArtEncontrado].cantTomada) |
| 555 | 560 | val mAlertDialog = mBuilder.show() |
| 556 | 561 | mDialogView.tvNuevaCantidad.requestFocus() |
| ... | ... | @@ -560,17 +565,19 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 560 | 565 | mAlertDialog?.window!!.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM) |
| 561 | 566 | mAlertDialog.window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) |
| 562 | 567 | |
| 568 | + mDialogView.tvNuevaCantidad.addTextChangedListener(textWatcher) | |
| 569 | + | |
| 563 | 570 | mDialogView.rbSumar.setOnClickListener { |
| 564 | 571 | if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { |
| 565 | 572 | mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvCantInicial.text.toString().toFloat() + mDialogView.tvNuevaCantidad.text.toString().toFloat()) |
| 566 | - mDialogView.tvNuevaCantidad.isEnabled = false | |
| 573 | +// mDialogView.tvNuevaCantidad.isEnabled = false | |
| 567 | 574 | } |
| 568 | 575 | } |
| 569 | 576 | mDialogView.rbRestar.setOnClickListener { |
| 570 | 577 | if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { |
| 571 | 578 | if (mDialogView.tvCantInicial.text.toString().toFloat() >= mDialogView.tvNuevaCantidad.text.toString().toFloat()) { |
| 572 | 579 | mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvCantInicial.text.toString().toFloat() - mDialogView.tvNuevaCantidad.text.toString().toFloat()) |
| 573 | - mDialogView.tvNuevaCantidad.isEnabled = false | |
| 580 | +// mDialogView.tvNuevaCantidad.isEnabled = false | |
| 574 | 581 | } else { |
| 575 | 582 | mDialogView.tvResultado.text = "" |
| 576 | 583 | mDialogView.tvResultado.error = "Operación No Valida" |
| ... | ... | @@ -582,7 +589,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 582 | 589 | mDialogView.rbMdodificar.setOnClickListener { |
| 583 | 590 | if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { |
| 584 | 591 | mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvNuevaCantidad.text.toString().toFloat()) |
| 585 | - mDialogView.tvNuevaCantidad.isEnabled = false | |
| 592 | +// mDialogView.tvNuevaCantidad.isEnabled = false | |
| 586 | 593 | } |
| 587 | 594 | } |
| 588 | 595 | mDialogView.btnAceptar.setOnClickListener { |
| ... | ... | @@ -642,7 +649,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 642 | 649 | //TODO BUSQUEDA POR DESCRIPCION |
| 643 | 650 | var result: Int |
| 644 | 651 | return GlobalScope.async(IO) { |
| 645 | - result = AppDb.getAppDb(requireContext())!!.InvBodyDAO()!!.deleteItemFromInvBody(sector, codigo, inventario) | |
| 652 | + result = AppDb.getAppDb(requireContext())!!.InvBodyDAO()!!.deleteItemFromInvBody(sector.toLong(), codigo.toLong(), inventario.toLong()) | |
| 646 | 653 | return@async result |
| 647 | 654 | }.await() |
| 648 | 655 | } |
| ... | ... | @@ -689,7 +696,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 689 | 696 | //TODO BUSQUEDA POR DESCRIPCION |
| 690 | 697 | var busqueda: Articles? = null |
| 691 | 698 | return GlobalScope.async(IO) { |
| 692 | - busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByCodBar(codigoBarras, SerchArea()) | |
| 699 | + busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByCodBar(codigoBarras, SerchAreaInventario()) | |
| 693 | 700 | return@async busqueda |
| 694 | 701 | }.await() |
| 695 | 702 | } |
| ... | ... | @@ -780,12 +787,14 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 780 | 787 | if (sharedPreferences.contains("rbDeposito")) if (sharedPreferences.getString("rbDeposito", "").toString() == "1") iArea = true |
| 781 | 788 | return iArea |
| 782 | 789 | } |
| 790 | + | |
| 783 | 791 | suspend fun SerchAreaInventario(): Boolean { |
| 784 | 792 | return GlobalScope.async(IO) { |
| 785 | - return@async AppDb.getAppDb(requireActivity())!!.InvHeadDAO()!!.fetchAreaInvH(InventarioNuevo) | |
| 793 | + return@async AppDb.getAppDb(requireActivity())!!.InvHeadDAO()!!.fetchAreaInvH(InventarioNuevo.toLong()) | |
| 786 | 794 | }.await() |
| 787 | 795 | |
| 788 | 796 | } |
| 797 | + | |
| 789 | 798 | fun ObtenerFechaActual(): String? { |
| 790 | 799 | //TODO OBTENGO FECHA Y HORA ACTUAL PARA LA CABECERA DEL INVENTARIO Y PARA CADA ITEM QUE SE INSERTA EN LA BD |
| 791 | 800 | val current = LocalDateTime.now() |
| ... | ... | @@ -805,7 +814,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 805 | 814 | fun updateCantidad(sector: String, codigo: String, cantidad: Float) { |
| 806 | 815 | lifecycleScope.launch { |
| 807 | 816 | withContext(Dispatchers.IO) { |
| 808 | - AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.UpdateInvBody(cantidad, sector, codigo) | |
| 817 | + AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.UpdateInvBody(cantidad, sector.toLong(), codigo.toLong()) | |
| 809 | 818 | } |
| 810 | 819 | } |
| 811 | 820 | } |
| ... | ... | @@ -827,6 +836,41 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
| 827 | 836 | override fun onImagePenClick(sector: String?, codigo: String?, cantidad: String?, position: String) { |
| 828 | 837 | dialogoSumaResta(requireContext(), position.toInt(), listArticulos[position.toInt()].univta, true) |
| 829 | 838 | } |
| 839 | + | |
| 840 | + private val textWatcher = object : TextWatcher { | |
| 841 | + override fun afterTextChanged(s: Editable?) { | |
| 842 | + } | |
| 843 | + | |
| 844 | + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { | |
| 845 | + } | |
| 846 | + | |
| 847 | + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { | |
| 848 | + if(mDialogView.rbSumar.isChecked){ | |
| 849 | +// mDialogView.tvNuevaCantidad.isEnabled=false | |
| 850 | + mDialogView.tvResultado.text=String.format("%.2f", mDialogView.tvNuevaCantidad.text.toString().toFloat()+ mDialogView.tvCantInicial.text.toString().toFloat()) | |
| 851 | + } | |
| 852 | + if(mDialogView.rbRestar.isChecked) { | |
| 853 | + if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 854 | + if (mDialogView.tvCantInicial.text.toString().toFloat() >= mDialogView.tvNuevaCantidad.text.toString().toFloat()) { | |
| 855 | + mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvCantInicial.text.toString().toFloat() - mDialogView.tvNuevaCantidad.text.toString().toFloat()) | |
| 856 | +// mDialogView.tvNuevaCantidad.isEnabled = false | |
| 857 | + } else { | |
| 858 | + mDialogView.tvResultado.text = "" | |
| 859 | + mDialogView.tvResultado.error = "Operación No Valida" | |
| 860 | + mDialogView.tvResultado.requestFocus() | |
| 861 | + mDialogView.tvResultado.hint = "Error" | |
| 862 | + } | |
| 863 | + } | |
| 864 | + } | |
| 865 | + if(mDialogView.rbMdodificar.isChecked) { | |
| 866 | + if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
| 867 | + mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvNuevaCantidad.text.toString().toFloat()) | |
| 868 | +// mDialogView.tvNuevaCantidad.isEnabled = false | |
| 869 | + } | |
| 870 | + } | |
| 871 | + | |
| 872 | + } | |
| 873 | + } | |
| 830 | 874 | } |
| 831 | 875 | |
| 832 | 876 |
app/src/main/java/com/focasoftware/deboinventariov20/UI/main/InventarioListAdapter.kt
| ... | ... | @@ -15,11 +15,8 @@ import java.util.* |
| 15 | 15 | import kotlin.collections.ArrayList |
| 16 | 16 | |
| 17 | 17 | class InventarioListAdapter(private val context: Context, private val inv: List<InvHead>, private val itemClickListener: OnInventarioClickListener) : |
| 18 | - RecyclerView.Adapter<BaseViewHolder<*>>(), Filterable { | |
| 19 | - var invFiltrados: List<InvHead> | |
| 20 | - init { | |
| 21 | - invFiltrados=inv | |
| 22 | - } | |
| 18 | + RecyclerView.Adapter<BaseViewHolder<*>>() { | |
| 19 | + | |
| 23 | 20 | interface OnInventarioClickListener { |
| 24 | 21 | fun onItemClick(inventario: String?) |
| 25 | 22 | } |
| ... | ... | @@ -46,34 +43,4 @@ class InventarioListAdapter(private val context: Context, private val inv: List< |
| 46 | 43 | else -> IllegalArgumentException("No se pudo pasar el ViewHolder") |
| 47 | 44 | } |
| 48 | 45 | } |
| 49 | - | |
| 50 | - override fun getFilter(): Filter { | |
| 51 | - return object : Filter() { | |
| 52 | - override fun performFiltering(charSequence: CharSequence): FilterResults { | |
| 53 | - val charString = charSequence.toString() | |
| 54 | - | |
| 55 | - invFiltrados = if (charString.isEmpty()) { | |
| 56 | - inv | |
| 57 | - } else { | |
| 58 | - val filteredList = ArrayList<InvHead>() | |
| 59 | - | |
| 60 | - for (row in inv) { | |
| 61 | - if (row.lugar.toString().contains(charString.toLowerCase(Locale.ROOT))) { | |
| 62 | - filteredList.add(row) | |
| 63 | - } | |
| 64 | - | |
| 65 | - } | |
| 66 | - filteredList | |
| 67 | - } | |
| 68 | - val filterResults = FilterResults() | |
| 69 | - filterResults.values=invFiltrados | |
| 70 | - return filterResults | |
| 71 | - } | |
| 72 | - | |
| 73 | - override fun publishResults(charSequence: CharSequence?, filterResults: FilterResults?) { | |
| 74 | - invFiltrados = filterResults!!.values as ArrayList<InvHead> | |
| 75 | - notifyDataSetChanged() | |
| 76 | - } | |
| 77 | - } | |
| 78 | - } | |
| 79 | 46 | } |
| 80 | 47 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/main/MainFragment.kt
| ... | ... | @@ -21,6 +21,7 @@ import kotlinx.coroutines.Dispatchers |
| 21 | 21 | import kotlinx.coroutines.GlobalScope |
| 22 | 22 | import kotlinx.coroutines.async |
| 23 | 23 | import kotlinx.coroutines.launch |
| 24 | +import java.time.LocalDateTime | |
| 24 | 25 | import java.util.* |
| 25 | 26 | |
| 26 | 27 | class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener { |
| ... | ... | @@ -37,6 +38,7 @@ class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener |
| 37 | 38 | override fun onCreate(savedInstanceState: Bundle?) { |
| 38 | 39 | super.onCreate(savedInstanceState) |
| 39 | 40 | sharedPreferences = requireActivity().getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) |
| 41 | + | |
| 40 | 42 | } |
| 41 | 43 | |
| 42 | 44 | override fun onCreateView( |
| ... | ... | @@ -98,10 +100,15 @@ class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener |
| 98 | 100 | "Inventarios Dinamicos ($cantidadInventarios) +" |
| 99 | 101 | } |
| 100 | 102 | } |
| 103 | + ordenado = inventarios.sortedBy { | |
| 104 | + it.invNum | |
| 105 | + } | |
| 101 | 106 | ivSort19.setOnClickListener { |
| 102 | 107 | ordenado = inventarios.sortedByDescending { |
| 103 | 108 | it.invNum |
| 104 | 109 | } |
| 110 | + cbDeposito.isChecked=true | |
| 111 | + cbVentas.isChecked=true | |
| 105 | 112 | viewAdapter = InventarioListAdapter(requireContext(), ordenado, this@MainFragment) |
| 106 | 113 | viewManager = LinearLayoutManager(requireContext()) |
| 107 | 114 | |
| ... | ... | @@ -117,6 +124,8 @@ class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener |
| 117 | 124 | ordenado = inventarios.sortedBy { |
| 118 | 125 | it.invNum |
| 119 | 126 | } |
| 127 | + cbDeposito.isChecked=true | |
| 128 | + cbVentas.isChecked=true | |
| 120 | 129 | viewAdapter = InventarioListAdapter(requireContext(), ordenado, this@MainFragment) |
| 121 | 130 | viewManager = LinearLayoutManager(requireContext()) |
| 122 | 131 | |
| ... | ... | @@ -131,17 +140,42 @@ class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener |
| 131 | 140 | } |
| 132 | 141 | |
| 133 | 142 | cbVentas.setOnClickListener { |
| 134 | - if (cbVentas.isChecked) { | |
| 143 | + if (!cbVentas.isChecked) { | |
| 144 | + cbDeposito.isChecked=true | |
| 145 | + listIvn2.clear() | |
| 146 | + ordenado.forEach { | |
| 147 | + if (it.lugar==true) { | |
| 148 | + listIvn2.add(it) | |
| 149 | + } | |
| 150 | + } | |
| 151 | + } else { | |
| 152 | + listIvn2.clear() | |
| 153 | + listIvn2.addAll(ordenado) | |
| 154 | + } | |
| 155 | + viewAdapter = InventarioListAdapter(requireContext(), listIvn2, this@MainFragment) | |
| 156 | + viewManager = LinearLayoutManager(requireContext()) | |
| 157 | + rcInventario.apply { | |
| 158 | + adapter = viewAdapter | |
| 159 | + layoutManager = viewManager | |
| 160 | + } | |
| 161 | + viewAdapter.notifyDataSetChanged() | |
| 162 | + } | |
| 163 | + | |
| 164 | + cbDeposito.setOnClickListener { | |
| 165 | + if (!cbDeposito.isChecked) { | |
| 166 | + cbVentas.isChecked=true | |
| 135 | 167 | listIvn2.clear() |
| 136 | - inventarios.forEach { | |
| 168 | + ordenado.forEach { | |
| 137 | 169 | if (it.lugar==false) { |
| 138 | 170 | listIvn2.add(it) |
| 139 | 171 | } |
| 140 | 172 | } |
| 141 | 173 | } else { |
| 142 | 174 | listIvn2.clear() |
| 143 | - listIvn2.addAll(inventarios) | |
| 175 | + listIvn2.addAll(ordenado) | |
| 144 | 176 | } |
| 177 | + viewAdapter = InventarioListAdapter(requireContext(), listIvn2, this@MainFragment) | |
| 178 | + viewManager = LinearLayoutManager(requireContext()) | |
| 145 | 179 | rcInventario.apply { |
| 146 | 180 | adapter = viewAdapter |
| 147 | 181 | layoutManager = viewManager |
app/src/main/res/drawable/logo_splash.jpeg
14.3 KB
app/src/main/res/drawable/suitedebo.png
6.74 KB
app/src/main/res/layout-land/fragment_servidores.xml
| ... | ... | @@ -79,32 +79,16 @@ |
| 79 | 79 | android:id="@+id/etDireccionServidor" |
| 80 | 80 | android:layout_width="130dp" |
| 81 | 81 | android:layout_height="wrap_content" |
| 82 | - | |
| 83 | 82 | android:clickable="true" |
| 84 | 83 | android:ems="10" |
| 85 | 84 | android:focusable="true" |
| 86 | 85 | android:hint="192.168.100.100" |
| 87 | - android:inputType="text" | |
| 86 | + android:inputType="phone" | |
| 88 | 87 | android:lines="1" |
| 89 | 88 | android:textSize="15sp" |
| 90 | 89 | app:layout_constraintBaseline_toBaselineOf="@+id/tvDirServer" |
| 91 | 90 | app:layout_constraintStart_toEndOf="@+id/tvDirServer" /> |
| 92 | 91 | |
| 93 | - <TextView | |
| 94 | - android:id="@+id/tvPuerto" | |
| 95 | - android:layout_width="wrap_content" | |
| 96 | - android:layout_height="wrap_content" | |
| 97 | - android:layout_marginStart="10dp" | |
| 98 | - android:layout_marginTop="10dp" | |
| 99 | - android:gravity="start" | |
| 100 | - android:lines="1" | |
| 101 | - android:text="Puerto:" | |
| 102 | - android:textColor="@android:color/black" | |
| 103 | - android:textSize="@dimen/SubTitulos" | |
| 104 | - android:textStyle="bold|italic" | |
| 105 | - app:fontFamily="sans-serif-condensed" | |
| 106 | - app:layout_constraintStart_toEndOf="@+id/etDireccionServidor" | |
| 107 | - app:layout_constraintTop_toBottomOf="@+id/etNombreServidor" /> | |
| 108 | 92 | |
| 109 | 93 | <EditText |
| 110 | 94 | android:id="@+id/etPuerto" |
| ... | ... | @@ -113,12 +97,12 @@ |
| 113 | 97 | android:clickable="true" |
| 114 | 98 | android:ems="10" |
| 115 | 99 | android:focusable="true" |
| 116 | - android:hint="9999" | |
| 117 | - android:inputType="text" | |
| 100 | + android:hint="Puerto" | |
| 101 | + android:inputType="number" | |
| 118 | 102 | android:lines="1" |
| 119 | 103 | android:textSize="15sp" |
| 120 | - app:layout_constraintBaseline_toBaselineOf="@+id/tvPuerto" | |
| 121 | - app:layout_constraintStart_toEndOf="@+id/tvPuerto" | |
| 104 | + app:layout_constraintBaseline_toBaselineOf="@+id/etDireccionServidor" | |
| 105 | + app:layout_constraintStart_toEndOf="@+id/etDireccionServidor" | |
| 122 | 106 | android:autofillHints="" /> |
| 123 | 107 | |
| 124 | 108 |
app/src/main/res/layout/activity_splash.xml
| ... | ... | @@ -4,6 +4,8 @@ |
| 4 | 4 | xmlns:tools="http://schemas.android.com/tools" |
| 5 | 5 | android:layout_width="match_parent" |
| 6 | 6 | android:layout_height="match_parent" |
| 7 | + android:background="#E6E6E6" | |
| 8 | + | |
| 7 | 9 | tools:context=".UI.SplashActivity"> |
| 8 | 10 | |
| 9 | 11 | |
| ... | ... | @@ -30,33 +32,18 @@ |
| 30 | 32 | android:id="@+id/imageView" |
| 31 | 33 | android:layout_width="wrap_content" |
| 32 | 34 | android:layout_height="wrap_content" |
| 35 | + | |
| 33 | 36 | android:contentDescription="@string/todo" |
| 34 | - android:src="@drawable/ic_launcher_background" | |
| 35 | - app:layout_constraintBottom_toTopOf="@id/textView3" | |
| 37 | + android:src="@drawable/logo_splash" | |
| 38 | + app:layout_constraintBottom_toTopOf="@id/textView4" | |
| 36 | 39 | app:layout_constraintEnd_toEndOf="parent" |
| 37 | 40 | app:layout_constraintStart_toStartOf="parent" |
| 38 | 41 | app:layout_constraintTop_toBottomOf="@+id/textView2" |
| 39 | - app:srcCompat="@drawable/suitedebo" /> | |
| 42 | + /> | |
| 43 | + | |
| 44 | + | |
| 40 | 45 | |
| 41 | 46 | |
| 42 | - <TextView | |
| 43 | - android:id="@+id/textView3" | |
| 44 | - android:layout_width="match_parent" | |
| 45 | - android:layout_height="100dp" | |
| 46 | - android:layout_margin="20dp" | |
| 47 | - android:autoSizeMaxTextSize="1000sp" | |
| 48 | - android:autoSizeMinTextSize="30sp" | |
| 49 | - android:autoSizeStepGranularity="5sp" | |
| 50 | - android:autoSizeTextType="uniform" | |
| 51 | - android:gravity="center" | |
| 52 | - android:lines="1" | |
| 53 | - android:text="@string/debo" | |
| 54 | - android:textColor="@color/colorAccent" | |
| 55 | - app:fontFamily="sans-serif-condensed" | |
| 56 | - app:layout_constraintBottom_toTopOf="@+id/textView4" | |
| 57 | - app:layout_constraintEnd_toEndOf="parent" | |
| 58 | - app:layout_constraintStart_toStartOf="parent" | |
| 59 | - app:layout_constraintTop_toBottomOf="@+id/imageView" /> | |
| 60 | 47 | |
| 61 | 48 | <androidx.appcompat.widget.AppCompatTextView |
| 62 | 49 | android:id="@+id/textView4" |
| ... | ... | @@ -75,5 +62,5 @@ |
| 75 | 62 | app:layout_constraintBottom_toBottomOf="parent" |
| 76 | 63 | app:layout_constraintEnd_toEndOf="parent" |
| 77 | 64 | app:layout_constraintEnd_toStartOf="parent" |
| 78 | - app:layout_constraintTop_toBottomOf="@id/textView3" /> | |
| 65 | + app:layout_constraintTop_toBottomOf="@id/imageView" /> | |
| 79 | 66 | </androidx.constraintlayout.widget.ConstraintLayout> |
| 80 | 67 | \ No newline at end of file |
app/src/main/res/layout/fragment_actua_maestros.xml
| ... | ... | @@ -72,6 +72,19 @@ |
| 72 | 72 | |
| 73 | 73 | </RadioGroup> |
| 74 | 74 | |
| 75 | + <TextView | |
| 76 | + android:id="@+id/tvServerConectado" | |
| 77 | + android:layout_width="match_parent" | |
| 78 | + android:layout_height="wrap_content" | |
| 79 | + android:layout_margin="30dp" | |
| 80 | + android:gravity="center" | |
| 81 | + android:lines="2" | |
| 82 | + android:text="" | |
| 83 | + android:textColor="@android:color/black" | |
| 84 | + android:textSize="@dimen/SubTitulos" | |
| 85 | + app:fontFamily="sans-serif-condensed" | |
| 86 | + app:layout_constraintBottom_toTopOf="@+id/countriesList" | |
| 87 | + app:layout_constraintTop_toBottomOf="@+id/rgTipoActualizacion" /> | |
| 75 | 88 | |
| 76 | 89 | <TextView |
| 77 | 90 | android:id="@+id/countriesList" |
| ... | ... | @@ -89,7 +102,7 @@ |
| 89 | 102 | app:layout_constraintHorizontal_bias="0.0" |
| 90 | 103 | app:layout_constraintStart_toStartOf="parent" |
| 91 | 104 | app:layout_constraintTop_toBottomOf="@+id/rgTipoActualizacion" |
| 92 | - app:layout_constraintVertical_bias="0.0" /> | |
| 105 | + app:layout_constraintVertical_bias="0.106" /> | |
| 93 | 106 | |
| 94 | 107 | <Button |
| 95 | 108 | android:id="@+id/btnConfirmarAct" |
app/src/main/res/layout/fragment_configuracion.xml
| ... | ... | @@ -94,7 +94,7 @@ |
| 94 | 94 | android:id="@+id/tvUbicacionCarpetas" |
| 95 | 95 | android:layout_width="0dp" |
| 96 | 96 | android:layout_height="wrap_content" |
| 97 | - | |
| 97 | +android:visibility="gone" | |
| 98 | 98 | android:layout_marginStart="@dimen/MarginBotAgreSer" |
| 99 | 99 | android:layout_marginTop="@dimen/MarginTopSubTitulos" |
| 100 | 100 | android:gravity="start" |
| ... | ... | @@ -116,6 +116,7 @@ |
| 116 | 116 | android:src="@drawable/search" |
| 117 | 117 | android:textColor="@android:color/white" |
| 118 | 118 | android:padding="10dp" |
| 119 | + android:visibility="gone" | |
| 119 | 120 | android:background="@drawable/boton_borde_redondeado" |
| 120 | 121 | app:layout_constraintEnd_toStartOf="@+id/etRuta" |
| 121 | 122 | app:layout_constraintStart_toStartOf="parent" |
| ... | ... | @@ -130,6 +131,7 @@ |
| 130 | 131 | android:clickable="true" |
| 131 | 132 | android:ems="10" |
| 132 | 133 | android:focusable="true" |
| 134 | + android:visibility="gone" | |
| 133 | 135 | android:inputType="textPersonName" |
| 134 | 136 | android:lines="1" |
| 135 | 137 | android:text="" |
app/src/main/res/layout/fragment_detalle_art.xml
| ... | ... | @@ -13,8 +13,8 @@ |
| 13 | 13 | android:layout_marginTop="5dp" |
| 14 | 14 | android:layout_marginEnd="5dp" |
| 15 | 15 | app:cardBackgroundColor="@android:color/darker_gray" |
| 16 | - app:cardCornerRadius="4dp" | |
| 17 | - app:cardElevation="4dp" | |
| 16 | + app:cardCornerRadius="25dp" | |
| 17 | + app:cardElevation="10dp" | |
| 18 | 18 | app:layout_constraintEnd_toEndOf="parent" |
| 19 | 19 | app:layout_constraintStart_toStartOf="parent" |
| 20 | 20 | app:layout_constraintTop_toTopOf="parent"> |
| ... | ... | @@ -29,7 +29,8 @@ |
| 29 | 29 | android:layout_width="0dp" |
| 30 | 30 | android:layout_height="wrap_content" |
| 31 | 31 | android:layout_marginTop="15dp" |
| 32 | - android:gravity="center" | |
| 32 | + android:gravity="center_horizontal" | |
| 33 | + android:orientation="horizontal" | |
| 33 | 34 | android:text="Detalle del artículo" |
| 34 | 35 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 35 | 36 | android:textSize="@dimen/Titulos" |
| ... | ... | @@ -39,243 +40,250 @@ |
| 39 | 40 | app:layout_constraintTop_toTopOf="parent" /> |
| 40 | 41 | |
| 41 | 42 | <TextView |
| 42 | - android:id="@+id/textView19" | |
| 43 | + android:id="@+id/textView6" | |
| 43 | 44 | android:layout_width="wrap_content" |
| 44 | 45 | android:layout_height="wrap_content" |
| 45 | 46 | android:layout_marginStart="5dp" |
| 46 | 47 | android:layout_marginTop="10dp" |
| 47 | - android:text="Sector:" | |
| 48 | + android:text="Descripción:" | |
| 48 | 49 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 49 | - android:textSize="15sp" | |
| 50 | - app:layout_constraintEnd_toStartOf="@id/tvSector" | |
| 50 | + android:textSize="14sp" | |
| 51 | + app:layout_constraintEnd_toStartOf="@id/tvDescripcion" | |
| 51 | 52 | app:layout_constraintStart_toStartOf="parent" |
| 52 | 53 | app:layout_constraintTop_toBottomOf="@+id/tvTime" /> |
| 53 | 54 | |
| 54 | 55 | <TextView |
| 55 | - android:id="@+id/tvSector" | |
| 56 | + android:id="@+id/tvDescripcion" | |
| 56 | 57 | android:layout_width="0dp" |
| 57 | 58 | android:layout_height="wrap_content" |
| 59 | + android:layout_marginStart="5dp" | |
| 60 | + android:layout_marginTop="10dp" | |
| 61 | + android:lines="2" | |
| 58 | 62 | android:text="" |
| 59 | 63 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 60 | 64 | android:textSize="18sp" |
| 61 | - app:layout_constraintBaseline_toBaselineOf="@+id/textView19" | |
| 62 | - app:layout_constraintEnd_toStartOf="@id/textView18" | |
| 63 | - app:layout_constraintStart_toEndOf="@id/textView19" /> | |
| 65 | + android:textStyle="bold" | |
| 66 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView6" | |
| 67 | + app:layout_constraintEnd_toEndOf="parent" | |
| 68 | + app:layout_constraintStart_toEndOf="@+id/textView6" /> | |
| 69 | + | |
| 64 | 70 | |
| 65 | 71 | <TextView |
| 66 | 72 | android:id="@+id/textView18" |
| 67 | 73 | android:layout_width="wrap_content" |
| 68 | 74 | android:layout_height="wrap_content" |
| 75 | + android:layout_marginStart="5dp" | |
| 69 | 76 | android:layout_marginTop="10dp" |
| 70 | 77 | android:text="Código:" |
| 71 | 78 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 72 | 79 | android:textSize="15sp" |
| 73 | - app:layout_constraintEnd_toStartOf="@id/tvCodigo" | |
| 74 | - app:layout_constraintStart_toEndOf="@id/tvSector" | |
| 75 | - app:layout_constraintTop_toBottomOf="@+id/tvTime" /> | |
| 80 | + app:layout_constraintStart_toStartOf="parent" | |
| 81 | + app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" /> | |
| 76 | 82 | |
| 77 | 83 | <TextView |
| 78 | - android:id="@+id/tvCodigo" | |
| 84 | + android:id="@+id/tvSector" | |
| 79 | 85 | android:layout_width="0dp" |
| 80 | 86 | android:layout_height="wrap_content" |
| 81 | - android:text="" | |
| 87 | + android:layout_marginStart="5dp" | |
| 88 | + android:layout_marginTop="10dp" | |
| 89 | + android:text="99" | |
| 82 | 90 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 83 | 91 | android:textSize="18sp" |
| 92 | + android:textStyle="bold" | |
| 84 | 93 | app:layout_constraintBaseline_toBaselineOf="@+id/textView18" |
| 85 | - app:layout_constraintEnd_toStartOf="@+id/textView3" | |
| 86 | - app:layout_constraintStart_toEndOf="@id/textView18" /> | |
| 94 | + app:layout_constraintStart_toEndOf="@+id/textView18" /> | |
| 87 | 95 | |
| 88 | 96 | <TextView |
| 89 | - android:id="@+id/textView3" | |
| 90 | - android:layout_width="wrap_content" | |
| 91 | - android:layout_height="wrap_content" | |
| 92 | - android:layout_marginTop="10dp" | |
| 93 | - android:text="Depósito:" | |
| 94 | - android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
| 95 | - android:textSize="15sp" | |
| 96 | - app:layout_constraintEnd_toStartOf="@id/tvDeposito" | |
| 97 | - app:layout_constraintStart_toEndOf="@id/tvCodigo" | |
| 98 | - app:layout_constraintTop_toBottomOf="@+id/tvTime" /> | |
| 99 | - | |
| 100 | - <TextView | |
| 101 | - android:id="@+id/tvDeposito" | |
| 97 | + android:id="@+id/tvCodigo" | |
| 102 | 98 | android:layout_width="0dp" |
| 103 | 99 | android:layout_height="wrap_content" |
| 104 | - android:text="" | |
| 100 | + android:layout_marginStart="5dp" | |
| 101 | + android:layout_marginTop="10dp" | |
| 102 | + android:text="99999" | |
| 105 | 103 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 106 | 104 | android:textSize="18sp" |
| 107 | - app:layout_constraintBaseline_toBaselineOf="@+id/textView3" | |
| 108 | - app:layout_constraintEnd_toEndOf="parent" | |
| 109 | - app:layout_constraintStart_toEndOf="@id/textView3" /> | |
| 105 | + android:textStyle="bold" | |
| 106 | + app:layout_constraintBaseline_toBaselineOf="@+id/tvSector" | |
| 107 | + app:layout_constraintStart_toEndOf="@id/tvSector" /> | |
| 108 | + | |
| 110 | 109 | |
| 111 | 110 | <TextView |
| 112 | - android:id="@+id/textView6" | |
| 113 | - android:layout_width="wrap_content" | |
| 111 | + android:id="@+id/textView1" | |
| 112 | + android:layout_width="0dp" | |
| 114 | 113 | android:layout_height="wrap_content" |
| 115 | 114 | android:layout_marginStart="5dp" |
| 116 | 115 | android:layout_marginTop="10dp" |
| 117 | - android:text="Descripción:" | |
| 116 | + android:text="Código barras:" | |
| 118 | 117 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 119 | - android:textSize="14sp" | |
| 120 | - app:layout_constraintEnd_toStartOf="@id/tvDescripcion" | |
| 121 | - app:layout_constraintStart_toStartOf="parent" | |
| 122 | - app:layout_constraintTop_toBottomOf="@+id/tvCodigo" /> | |
| 118 | + android:textSize="15sp" | |
| 119 | + app:layout_constraintBaseline_toBaselineOf="@+id/tvCodigo" | |
| 120 | + app:layout_constraintStart_toEndOf="@+id/tvCodigo" /> | |
| 123 | 121 | |
| 124 | 122 | <TextView |
| 125 | - android:id="@+id/tvDescripcion" | |
| 126 | - android:layout_width="0dp" | |
| 123 | + android:id="@+id/tvCodigoBarras" | |
| 124 | + android:layout_width="wrap_content" | |
| 127 | 125 | android:layout_height="wrap_content" |
| 128 | 126 | android:layout_marginStart="5dp" |
| 129 | - android:layout_marginTop="10dp" | |
| 130 | - android:lines="2" | |
| 131 | - android:text="" | |
| 127 | + android:text="1234567890123" | |
| 132 | 128 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 133 | 129 | android:textSize="18sp" |
| 134 | - app:layout_constraintEnd_toEndOf="parent" | |
| 135 | - app:layout_constraintStart_toEndOf="@+id/textView6" | |
| 136 | - app:layout_constraintTop_toBottomOf="@+id/tvCodigo" /> | |
| 130 | + android:textStyle="bold" | |
| 131 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView1" | |
| 132 | + app:layout_constraintStart_toEndOf="@id/textView1" /> | |
| 137 | 133 | |
| 138 | 134 | <TextView |
| 139 | - android:id="@+id/textView1" | |
| 135 | + android:id="@+id/textView2" | |
| 140 | 136 | android:layout_width="wrap_content" |
| 141 | 137 | android:layout_height="wrap_content" |
| 142 | 138 | android:layout_marginStart="5dp" |
| 143 | 139 | android:layout_marginTop="10dp" |
| 144 | - android:text="C. de barras:" | |
| 140 | + android:text="Código origen:" | |
| 145 | 141 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 146 | 142 | android:textSize="15sp" |
| 147 | - app:layout_constraintEnd_toStartOf="@id/tvCodigoBarras" | |
| 148 | 143 | app:layout_constraintStart_toStartOf="parent" |
| 149 | - app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" /> | |
| 144 | + app:layout_constraintTop_toBottomOf="@+id/textView18" /> | |
| 145 | + | |
| 150 | 146 | |
| 151 | 147 | <TextView |
| 152 | - android:id="@+id/tvCodigoBarras" | |
| 153 | - android:layout_width="0dp" | |
| 148 | + android:id="@+id/tvCodigoOrigen" | |
| 149 | + android:layout_width="wrap_content" | |
| 154 | 150 | android:layout_height="wrap_content" |
| 155 | - android:text="" | |
| 151 | + android:layout_marginStart="5dp" | |
| 152 | + android:layout_marginTop="10dp" | |
| 153 | + android:text="9999999999" | |
| 156 | 154 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 157 | 155 | android:textSize="18sp" |
| 158 | - app:layout_constraintBaseline_toBaselineOf="@+id/textView1" | |
| 159 | - app:layout_constraintEnd_toStartOf="@id/textView2" | |
| 160 | - app:layout_constraintStart_toEndOf="@id/textView1" /> | |
| 156 | + android:textStyle="bold" | |
| 157 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView2" | |
| 158 | + app:layout_constraintStart_toEndOf="@+id/textView2" | |
| 159 | + app:layout_constraintTop_toBottomOf="@+id/textView18" /> | |
| 161 | 160 | |
| 162 | 161 | <TextView |
| 163 | - android:id="@+id/textView2" | |
| 162 | + android:id="@+id/textView3" | |
| 164 | 163 | android:layout_width="wrap_content" |
| 165 | 164 | android:layout_height="wrap_content" |
| 165 | + android:layout_marginStart="5dp" | |
| 166 | 166 | android:layout_marginTop="10dp" |
| 167 | - android:text="C. origen:" | |
| 167 | + android:text="Depósito:" | |
| 168 | 168 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 169 | 169 | android:textSize="15sp" |
| 170 | - app:layout_constraintEnd_toStartOf="@id/tvCodigoOrigen" | |
| 171 | - app:layout_constraintStart_toEndOf="@id/tvCodigoBarras" | |
| 172 | - app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" /> | |
| 170 | + app:layout_constraintStart_toEndOf="@+id/tvCodigoOrigen" | |
| 171 | + app:layout_constraintTop_toBottomOf="@+id/textView1" /> | |
| 173 | 172 | |
| 174 | 173 | <TextView |
| 175 | - android:id="@+id/tvCodigoOrigen" | |
| 176 | - android:layout_width="0dp" | |
| 174 | + android:id="@+id/tvDeposito" | |
| 175 | + android:layout_width="wrap_content" | |
| 177 | 176 | android:layout_height="wrap_content" |
| 178 | - android:text="" | |
| 177 | + android:layout_marginStart="5dp" | |
| 178 | + android:text="SI" | |
| 179 | 179 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 180 | 180 | android:textSize="18sp" |
| 181 | - app:layout_constraintBaseline_toBaselineOf="@+id/textView2" | |
| 182 | - app:layout_constraintEnd_toEndOf="parent" | |
| 183 | - app:layout_constraintStart_toEndOf="@id/textView2" /> | |
| 184 | - | |
| 181 | + android:textStyle="bold" | |
| 182 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView3" | |
| 183 | + app:layout_constraintStart_toEndOf="@+id/textView3" /> | |
| 185 | 184 | |
| 186 | 185 | <TextView |
| 187 | - android:id="@+id/textView5" | |
| 186 | + android:id="@+id/textView9" | |
| 188 | 187 | android:layout_width="wrap_content" |
| 189 | 188 | android:layout_height="wrap_content" |
| 190 | 189 | android:layout_marginStart="5dp" |
| 191 | 190 | android:layout_marginTop="10dp" |
| 192 | - android:text="Exi.venta:" | |
| 191 | + android:text="Precio:" | |
| 193 | 192 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 194 | 193 | android:textSize="15sp" |
| 195 | - app:layout_constraintEnd_toStartOf="@id/tvExiVenta" | |
| 196 | 194 | app:layout_constraintStart_toStartOf="parent" |
| 197 | - app:layout_constraintTop_toBottomOf="@+id/tvCodigoBarras" /> | |
| 195 | + app:layout_constraintTop_toBottomOf="@+id/textView2" /> | |
| 198 | 196 | |
| 199 | 197 | <TextView |
| 200 | - android:id="@+id/tvExiVenta" | |
| 201 | - android:layout_width="0dp" | |
| 198 | + android:id="@+id/tvPrecio" | |
| 199 | + android:layout_width="wrap_content" | |
| 202 | 200 | android:layout_height="wrap_content" |
| 203 | - android:text="" | |
| 201 | + android:layout_marginStart="5dp" | |
| 202 | + android:layout_marginTop="10dp" | |
| 203 | + android:text="100.99" | |
| 204 | 204 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 205 | 205 | android:textSize="18sp" |
| 206 | - app:layout_constraintBaseline_toBaselineOf="@+id/textView5" | |
| 207 | - app:layout_constraintEnd_toStartOf="@id/textView7" | |
| 208 | - app:layout_constraintStart_toEndOf="@id/textView5" /> | |
| 206 | + android:textStyle="bold" | |
| 207 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView9" | |
| 208 | + app:layout_constraintStart_toEndOf="@+id/textView9" /> | |
| 209 | 209 | |
| 210 | 210 | <TextView |
| 211 | - android:id="@+id/textView7" | |
| 211 | + android:id="@+id/textView8" | |
| 212 | 212 | android:layout_width="wrap_content" |
| 213 | 213 | android:layout_height="wrap_content" |
| 214 | + android:layout_marginStart="5dp" | |
| 214 | 215 | android:layout_marginTop="10dp" |
| 215 | - android:text="Exi.dep:" | |
| 216 | + android:text="Costo:" | |
| 216 | 217 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 217 | 218 | android:textSize="15sp" |
| 218 | - app:layout_constraintEnd_toStartOf="@id/tvExiDeposito" | |
| 219 | - app:layout_constraintStart_toEndOf="@id/tvExiVenta" | |
| 220 | - app:layout_constraintTop_toBottomOf="@+id/tvCodigoBarras" /> | |
| 219 | + app:layout_constraintStart_toEndOf="@+id/tvPrecio" | |
| 220 | + app:layout_constraintTop_toBottomOf="@+id/tvCodigoOrigen" /> | |
| 221 | 221 | |
| 222 | 222 | <TextView |
| 223 | - android:id="@+id/tvExiDeposito" | |
| 224 | - android:layout_width="0dp" | |
| 223 | + android:id="@+id/tvCosto" | |
| 224 | + android:layout_width="wrap_content" | |
| 225 | 225 | android:layout_height="wrap_content" |
| 226 | - android:text="" | |
| 226 | + android:layout_marginStart="5dp" | |
| 227 | + android:layout_marginTop="10dp" | |
| 228 | + android:text="22.99" | |
| 227 | 229 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 228 | 230 | android:textSize="18sp" |
| 229 | - app:layout_constraintBaseline_toBaselineOf="@+id/textView7" | |
| 230 | - app:layout_constraintEnd_toStartOf="@+id/textView9" | |
| 231 | - app:layout_constraintStart_toEndOf="@id/textView7" /> | |
| 231 | + android:textStyle="bold" | |
| 232 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView8" | |
| 233 | + app:layout_constraintStart_toEndOf="@+id/textView8" | |
| 234 | + app:layout_constraintTop_toBottomOf="@+id/tvDeposito" /> | |
| 232 | 235 | |
| 233 | 236 | <TextView |
| 234 | - android:id="@+id/textView9" | |
| 237 | + android:id="@+id/textView5" | |
| 235 | 238 | android:layout_width="wrap_content" |
| 236 | 239 | android:layout_height="wrap_content" |
| 240 | + android:layout_marginStart="5dp" | |
| 237 | 241 | android:layout_marginTop="10dp" |
| 238 | - android:text="Precio:" | |
| 242 | + android:text="Existencia en venta:" | |
| 239 | 243 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 240 | 244 | android:textSize="15sp" |
| 241 | - app:layout_constraintEnd_toStartOf="@id/tvPrecio" | |
| 242 | - app:layout_constraintStart_toEndOf="@id/tvExiDeposito" | |
| 243 | - app:layout_constraintTop_toBottomOf="@+id/textView2" /> | |
| 245 | + app:layout_constraintStart_toStartOf="parent" | |
| 246 | + app:layout_constraintTop_toBottomOf="@+id/textView9" /> | |
| 244 | 247 | |
| 245 | 248 | <TextView |
| 246 | - android:id="@+id/tvPrecio" | |
| 247 | - android:layout_width="0dp" | |
| 249 | + android:id="@+id/tvExiVenta" | |
| 250 | + android:layout_width="wrap_content" | |
| 248 | 251 | android:layout_height="wrap_content" |
| 249 | - android:text="" | |
| 252 | + android:layout_marginStart="5dp" | |
| 253 | + android:layout_marginTop="10dp" | |
| 254 | + android:text="100" | |
| 250 | 255 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 251 | 256 | android:textSize="18sp" |
| 252 | - app:layout_constraintBaseline_toBaselineOf="@+id/textView9" | |
| 253 | - app:layout_constraintEnd_toEndOf="parent" | |
| 254 | - app:layout_constraintStart_toEndOf="@id/textView9" /> | |
| 257 | + android:textStyle="bold" | |
| 258 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView5" | |
| 259 | + app:layout_constraintStart_toEndOf="@+id/textView5" /> | |
| 260 | + | |
| 255 | 261 | <TextView |
| 256 | - android:id="@+id/textView8" | |
| 262 | + android:id="@+id/textView7" | |
| 257 | 263 | android:layout_width="wrap_content" |
| 258 | 264 | android:layout_height="wrap_content" |
| 259 | 265 | android:layout_marginStart="5dp" |
| 260 | 266 | android:layout_marginTop="10dp" |
| 261 | - android:text="Costo:" | |
| 267 | + android:text="Existencia en deposito:" | |
| 262 | 268 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 263 | 269 | android:textSize="15sp" |
| 264 | - app:layout_constraintEnd_toStartOf="@+id/tvCosto" | |
| 265 | - app:layout_constraintStart_toStartOf="parent" | |
| 266 | - app:layout_constraintTop_toBottomOf="@+id/tvExiVenta" /> | |
| 270 | + app:layout_constraintStart_toEndOf="@+id/tvExiVenta" | |
| 271 | + app:layout_constraintTop_toBottomOf="@+id/textView8" /> | |
| 267 | 272 | |
| 268 | 273 | <TextView |
| 269 | - android:id="@+id/tvCosto" | |
| 274 | + android:id="@+id/tvExiDeposito" | |
| 270 | 275 | android:layout_width="wrap_content" |
| 271 | 276 | android:layout_height="wrap_content" |
| 272 | - android:text="22.99" | |
| 277 | + android:layout_marginStart="5dp" | |
| 278 | + android:layout_marginTop="10dp" | |
| 279 | + android:text="777" | |
| 273 | 280 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 274 | 281 | android:textSize="18sp" |
| 275 | - app:layout_constraintBaseline_toBaselineOf="@+id/textView8" | |
| 276 | - app:layout_constraintEnd_toStartOf="@+id/textView10" | |
| 277 | - app:layout_constraintStart_toEndOf="@+id/textView8" | |
| 278 | - app:layout_constraintTop_toBottomOf="@+id/tvExiVenta" /> | |
| 282 | + android:textStyle="bold" | |
| 283 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView7" | |
| 284 | + app:layout_constraintStart_toEndOf="@+id/textView7" | |
| 285 | + app:layout_constraintTop_toBottomOf="@+id/tvCosto" /> | |
| 286 | + | |
| 279 | 287 | |
| 280 | 288 | <TextView |
| 281 | 289 | android:id="@+id/textView10" |
| ... | ... | @@ -283,22 +291,21 @@ |
| 283 | 291 | android:layout_height="wrap_content" |
| 284 | 292 | android:layout_marginStart="5dp" |
| 285 | 293 | android:layout_marginTop="10dp" |
| 286 | - android:text="Unidad de Venta:" | |
| 294 | + android:text="Unidad de venta:" | |
| 287 | 295 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 288 | 296 | android:textSize="15sp" |
| 289 | - app:layout_constraintEnd_toStartOf="@id/tvBal" | |
| 290 | - app:layout_constraintStart_toEndOf="@id/tvCosto" | |
| 291 | - app:layout_constraintTop_toBottomOf="@+id/tvExiVenta" /> | |
| 297 | + app:layout_constraintStart_toStartOf="parent" | |
| 298 | + app:layout_constraintTop_toBottomOf="@+id/tvExiVenta" /> | |
| 292 | 299 | |
| 293 | 300 | <TextView |
| 294 | 301 | android:id="@+id/tvBal" |
| 295 | - android:layout_width="0dp" | |
| 302 | + android:layout_width="wrap_content" | |
| 296 | 303 | android:layout_height="wrap_content" |
| 304 | + android:layout_marginStart="3dp" | |
| 297 | 305 | android:text="CENT. CUBICOS" |
| 298 | 306 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 299 | 307 | android:textSize="18sp" |
| 300 | 308 | app:layout_constraintBaseline_toBaselineOf="@+id/textView10" |
| 301 | - app:layout_constraintEnd_toEndOf="parent" | |
| 302 | 309 | app:layout_constraintStart_toEndOf="@+id/textView10" /> |
| 303 | 310 | |
| 304 | 311 | |
| ... | ... | @@ -307,13 +314,12 @@ |
| 307 | 314 | android:layout_width="wrap_content" |
| 308 | 315 | android:layout_height="wrap_content" |
| 309 | 316 | android:layout_marginStart="5dp" |
| 310 | - android:layout_marginTop="8dp" | |
| 317 | + android:layout_marginTop="10dp" | |
| 311 | 318 | android:text="Imagen:" |
| 312 | 319 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 313 | 320 | android:textSize="14sp" |
| 314 | - app:layout_constraintHorizontal_bias="0.47" | |
| 315 | 321 | app:layout_constraintStart_toStartOf="parent" |
| 316 | - app:layout_constraintTop_toBottomOf="@+id/textView8" /> | |
| 322 | + app:layout_constraintTop_toBottomOf="@+id/textView10" /> | |
| 317 | 323 | |
| 318 | 324 | <ImageView |
| 319 | 325 | android:id="@+id/ivImagen" |
| ... | ... | @@ -324,9 +330,7 @@ |
| 324 | 330 | android:src="@drawable/no_imagen" |
| 325 | 331 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 326 | 332 | android:textSize="14sp" |
| 327 | - app:layout_constraintEnd_toEndOf="parent" | |
| 328 | - app:layout_constraintHorizontal_bias="0.003" | |
| 329 | - app:layout_constraintStart_toEndOf="@id/textView11" | |
| 333 | + app:layout_constraintStart_toEndOf="@+id/textView6" | |
| 330 | 334 | app:layout_constraintTop_toBottomOf="@+id/tvBal" /> |
| 331 | 335 | |
| 332 | 336 | </androidx.constraintlayout.widget.ConstraintLayout> |
app/src/main/res/layout/fragment_servidores.xml
| ... | ... | @@ -79,32 +79,16 @@ |
| 79 | 79 | android:id="@+id/etDireccionServidor" |
| 80 | 80 | android:layout_width="130dp" |
| 81 | 81 | android:layout_height="wrap_content" |
| 82 | - | |
| 83 | 82 | android:clickable="true" |
| 84 | 83 | android:ems="10" |
| 85 | 84 | android:focusable="true" |
| 86 | 85 | android:hint="192.168.100.100" |
| 87 | - android:inputType="text" | |
| 86 | + android:inputType="phone" | |
| 88 | 87 | android:lines="1" |
| 89 | 88 | android:textSize="15sp" |
| 90 | 89 | app:layout_constraintBaseline_toBaselineOf="@+id/tvDirServer" |
| 91 | 90 | app:layout_constraintStart_toEndOf="@+id/tvDirServer" /> |
| 92 | 91 | |
| 93 | - <TextView | |
| 94 | - android:id="@+id/tvPuerto" | |
| 95 | - android:layout_width="wrap_content" | |
| 96 | - android:layout_height="wrap_content" | |
| 97 | - android:layout_marginStart="10dp" | |
| 98 | - android:layout_marginTop="10dp" | |
| 99 | - android:gravity="start" | |
| 100 | - android:lines="1" | |
| 101 | - android:text="Puerto:" | |
| 102 | - android:textColor="@android:color/black" | |
| 103 | - android:textSize="@dimen/SubTitulos" | |
| 104 | - android:textStyle="bold|italic" | |
| 105 | - app:fontFamily="sans-serif-condensed" | |
| 106 | - app:layout_constraintStart_toEndOf="@+id/etDireccionServidor" | |
| 107 | - app:layout_constraintTop_toBottomOf="@+id/etNombreServidor" /> | |
| 108 | 92 | |
| 109 | 93 | <EditText |
| 110 | 94 | android:id="@+id/etPuerto" |
| ... | ... | @@ -113,12 +97,12 @@ |
| 113 | 97 | android:clickable="true" |
| 114 | 98 | android:ems="10" |
| 115 | 99 | android:focusable="true" |
| 116 | - android:hint="9999" | |
| 117 | - android:inputType="text" | |
| 100 | + android:hint="Puerto" | |
| 101 | + android:inputType="number" | |
| 118 | 102 | android:lines="1" |
| 119 | 103 | android:textSize="15sp" |
| 120 | - app:layout_constraintBaseline_toBaselineOf="@+id/tvPuerto" | |
| 121 | - app:layout_constraintStart_toEndOf="@+id/tvPuerto" | |
| 104 | + app:layout_constraintBaseline_toBaselineOf="@+id/etDireccionServidor" | |
| 105 | + app:layout_constraintStart_toEndOf="@+id/etDireccionServidor" | |
| 122 | 106 | android:autofillHints="" /> |
| 123 | 107 | |
| 124 | 108 |
app/src/main/res/layout/ingresar_cantidad.xml
app/src/main/res/layout/item_codigo_origen.xml
| ... | ... | @@ -75,7 +75,7 @@ |
| 75 | 75 | android:layout_width="wrap_content" |
| 76 | 76 | android:layout_height="match_parent" |
| 77 | 77 | android:layout_marginStart="8dp" |
| 78 | - android:text="Otros Códigos:" | |
| 78 | + android:text="Código Origen:" | |
| 79 | 79 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 80 | 80 | android:textSize="14sp" |
| 81 | 81 | android:textStyle="bold" |
app/src/main/res/layout/item_descripcion.xml
| ... | ... | @@ -75,7 +75,7 @@ |
| 75 | 75 | android:layout_width="wrap_content" |
| 76 | 76 | android:layout_height="match_parent" |
| 77 | 77 | android:layout_marginStart="8dp" |
| 78 | - android:text="Otros Códigos:" | |
| 78 | + android:text="Código Barras:" | |
| 79 | 79 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
| 80 | 80 | android:textSize="14sp" |
| 81 | 81 | android:textStyle="bold" |
app/src/main/res/layout/login_dialog.xml
| ... | ... | @@ -6,18 +6,43 @@ |
| 6 | 6 | android:orientation="vertical" |
| 7 | 7 | android:padding="10dp"> |
| 8 | 8 | |
| 9 | + <LinearLayout | |
| 10 | + android:id="@+id/barraSuperior" | |
| 11 | + android:layout_width="0dp" | |
| 12 | + android:layout_height="wrap_content" | |
| 13 | + android:background="@color/colorPrimaryDark" | |
| 14 | + android:orientation="horizontal" | |
| 15 | + app:layout_constraintEnd_toEndOf="parent" | |
| 16 | + app:layout_constraintStart_toStartOf="parent" | |
| 17 | + app:layout_constraintTop_toTopOf="parent"> | |
| 18 | + | |
| 19 | + <androidx.appcompat.widget.AppCompatTextView | |
| 20 | + android:id="@+id/tvTitulo2" | |
| 21 | + android:layout_width="0dp" | |
| 22 | + android:layout_height="wrap_content" | |
| 23 | + android:layout_margin="10dp" | |
| 24 | + android:layout_marginStart="5dp" | |
| 25 | + android:layout_marginTop="10dp" | |
| 26 | + android:layout_weight="1" | |
| 27 | + android:text="@string/adv" | |
| 28 | + android:background="@drawable/boton_borde_redondeado" | |
| 29 | + android:textAlignment="center" | |
| 30 | + android:textColor="@android:color/white" | |
| 31 | + android:textSize="25sp" /> | |
| 32 | + </LinearLayout> | |
| 33 | + | |
| 9 | 34 | <TextView |
| 10 | 35 | android:id="@+id/dialogNameEt" |
| 11 | 36 | android:layout_width="wrap_content" |
| 12 | 37 | android:layout_height="wrap_content" |
| 13 | 38 | android:layout_margin="5dp" |
| 14 | - android:text="Cantidad actual:" | |
| 39 | + android:text="Conteo actual :" | |
| 15 | 40 | android:textSize="20sp" |
| 16 | 41 | app:layout_constraintEnd_toStartOf="@id/tvCantInicial" |
| 17 | 42 | app:layout_constraintHorizontal_bias="0.0" |
| 18 | 43 | app:layout_constraintHorizontal_chainStyle="packed" |
| 19 | 44 | app:layout_constraintStart_toStartOf="parent" |
| 20 | - app:layout_constraintTop_toTopOf="parent" /> | |
| 45 | + app:layout_constraintTop_toBottomOf="@id/barraSuperior"/> | |
| 21 | 46 | |
| 22 | 47 | <TextView |
| 23 | 48 | android:id="@+id/tvCantInicial" |
| ... | ... | @@ -37,6 +62,7 @@ |
| 37 | 62 | android:layout_height="wrap_content" |
| 38 | 63 | android:layout_margin="5dp" |
| 39 | 64 | android:text="Nueva cantidad:" |
| 65 | + android:textStyle="bold" | |
| 40 | 66 | android:textSize="20sp" |
| 41 | 67 | app:layout_constraintStart_toStartOf="parent" |
| 42 | 68 | app:layout_constraintTop_toBottomOf="@+id/tvCantInicial" /> |
| ... | ... | @@ -82,8 +108,7 @@ |
| 82 | 108 | android:layout_width="wrap_content" |
| 83 | 109 | android:layout_height="wrap_content" |
| 84 | 110 | android:layout_margin="5dp" |
| 85 | - android:checked="false" | |
| 86 | - | |
| 111 | + android:checked="true" | |
| 87 | 112 | android:text="@string/rbSumar" |
| 88 | 113 | android:textSize="@dimen/text_size2" /> |
| 89 | 114 | |
| ... | ... | @@ -114,7 +139,8 @@ |
| 114 | 139 | android:layout_height="wrap_content" |
| 115 | 140 | android:layout_margin="5dp" |
| 116 | 141 | android:gravity="center" |
| 117 | - android:text="@string/tvResultado" | |
| 142 | + android:text="Resultado :" | |
| 143 | + android:textStyle="bold" | |
| 118 | 144 | android:textSize="20sp" |
| 119 | 145 | app:layout_constraintEnd_toEndOf="parent" |
| 120 | 146 | app:layout_constraintHorizontal_bias="0.0" |
| ... | ... | @@ -137,6 +163,7 @@ |
| 137 | 163 | <LinearLayout |
| 138 | 164 | android:layout_width="match_parent" |
| 139 | 165 | android:layout_height="wrap_content" |
| 166 | + android:layout_margin="10dp" | |
| 140 | 167 | android:gravity="center" |
| 141 | 168 | android:orientation="horizontal" |
| 142 | 169 | app:layout_constraintEnd_toEndOf="parent" |
| ... | ... | @@ -146,7 +173,7 @@ |
| 146 | 173 | <Button |
| 147 | 174 | android:id="@+id/btnAceptar" |
| 148 | 175 | style="@style/Base.Widget.AppCompat.Button.Colored" |
| 149 | - android:layout_width="wrap_content" | |
| 176 | + android:layout_width="140dp" | |
| 150 | 177 | android:layout_height="wrap_content" |
| 151 | 178 | android:layout_margin="5dp" |
| 152 | 179 | android:background="@drawable/boton_borde_redondeado" |
| ... | ... | @@ -157,7 +184,7 @@ |
| 157 | 184 | <Button |
| 158 | 185 | android:id="@+id/dialogCancelBtn" |
| 159 | 186 | style="@style/Base.Widget.AppCompat.Button.Colored" |
| 160 | - android:layout_width="wrap_content" | |
| 187 | + android:layout_width="140dp" | |
| 161 | 188 | android:layout_height="wrap_content" |
| 162 | 189 | android:layout_margin="5dp" |
| 163 | 190 | android:background="@drawable/boton_borde_redondeado" |
app/src/main/res/navigation/mobile_navigation.xml
| ... | ... | @@ -77,14 +77,14 @@ |
| 77 | 77 | <fragment |
| 78 | 78 | android:id="@+id/descripcionFragment" |
| 79 | 79 | android:name="com.focasoftware.deboinventariov20.UI.descripcionFragment.DescripcionFragment" |
| 80 | - android:label="Productos Encontrados"> | |
| 80 | + android:label="Busqueda por Descripción"> | |
| 81 | 81 | <action |
| 82 | 82 | android:id="@+id/action_descripcionFragment_to_inventarioFragment" |
| 83 | 83 | app:destination="@id/inventarioFragment" |
| 84 | - app:popEnterAnim="@anim/slide_in_left" | |
| 85 | - app:popExitAnim="@anim/slide_out_right" | |
| 86 | 84 | app:enterAnim="@anim/slide_in_right" |
| 87 | - app:exitAnim="@anim/slide_out_left" /> | |
| 85 | + app:exitAnim="@anim/slide_out_left" | |
| 86 | + app:popEnterAnim="@anim/slide_in_left" | |
| 87 | + app:popExitAnim="@anim/slide_out_right" /> | |
| 88 | 88 | </fragment> |
| 89 | 89 | |
| 90 | 90 | <fragment |
| ... | ... | @@ -129,7 +129,7 @@ |
| 129 | 129 | <fragment |
| 130 | 130 | android:id="@+id/codigoOriFragment" |
| 131 | 131 | android:name="com.focasoftware.deboinventariov20.UI.descripCorigenFragment.CodigoOriFragment" |
| 132 | - android:label="CodigoOriFragment" > | |
| 132 | + android:label="Busqueda por Código de Origen"> | |
| 133 | 133 | <action |
| 134 | 134 | android:id="@+id/action_codigoOriFragment_to_inventarioFragment" |
| 135 | 135 | app:destination="@id/inventarioFragment" /> |