From c1c9b23894b1638b33e222f229a8e2d5f8366689 Mon Sep 17 00:00:00 2001 From: Mauricio Sanchez Date: Sun, 6 Sep 2020 22:33:22 -0300 Subject: [PATCH] 06092020 2207 --- app/build.gradle | 14 +- .../deboinventariov20/DB/DAO/ArticulosDAO.kt | 11 +- .../focasoftware/deboinventariov20/Model/Tablas.kt | 2 +- .../actualizacionMaestros/ActuaMaestrosFragment.kt | 23 ++-- .../ui/configuracion/ConfiguracionFragment.kt | 92 ++++++++----- .../ui/descripcionFragment/DescripcionFragment.kt | 70 ++++++---- .../ui/dialogos/DialogNoEncontrado.kt | 20 --- .../deboinventariov20/ui/dialogos/DialogoLogin.kt | 44 ------- .../deboinventariov20/ui/dialogos/InsertCant.kt | 48 ------- .../ui/dialogos/SingleChoiceAlertDialog.kt | 53 -------- .../ui/inventario/InventarioFragment.kt | 144 ++++++++++----------- .../ui/main/InventarioListAdapter.kt | 5 +- .../deboinventariov20/ui/main/MainFragment.kt | 4 +- .../ui/servidores/ServidoresFragment.kt | 4 +- .../ui/util/Base/dialogos/DialogNoEncontrado.kt | 20 +++ .../ui/util/Base/dialogos/DialogoLogin.kt | 44 +++++++ .../ui/util/Base/dialogos/InsertCant.kt | 45 +++++++ .../util/Base/dialogos/SingleChoiceAlertDialog.kt | 53 ++++++++ app/src/main/res/layout/fragment_descripcion.xml | 28 ++-- app/src/main/res/layout/fragment_main.xml | 92 +++++++------ app/src/main/res/layout/item_principal.xml | 80 ++++++++---- app/src/main/res/layout/login_dialog.xml | 81 ++++++------ app/src/main/res/navigation/mobile_navigation.xml | 12 +- app/src/main/res/values/strings.xml | 2 +- 24 files changed, 534 insertions(+), 457 deletions(-) delete mode 100644 app/src/main/java/com/focasoftware/deboinventariov20/ui/dialogos/DialogNoEncontrado.kt delete mode 100644 app/src/main/java/com/focasoftware/deboinventariov20/ui/dialogos/DialogoLogin.kt delete mode 100644 app/src/main/java/com/focasoftware/deboinventariov20/ui/dialogos/InsertCant.kt delete mode 100644 app/src/main/java/com/focasoftware/deboinventariov20/ui/dialogos/SingleChoiceAlertDialog.kt create mode 100644 app/src/main/java/com/focasoftware/deboinventariov20/ui/util/Base/dialogos/DialogNoEncontrado.kt create mode 100644 app/src/main/java/com/focasoftware/deboinventariov20/ui/util/Base/dialogos/DialogoLogin.kt create mode 100644 app/src/main/java/com/focasoftware/deboinventariov20/ui/util/Base/dialogos/InsertCant.kt create mode 100644 app/src/main/java/com/focasoftware/deboinventariov20/ui/util/Base/dialogos/SingleChoiceAlertDialog.kt diff --git a/app/build.gradle b/app/build.gradle index bdd8ed2..be22373 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' -apply plugin: 'kotlin-kapt' + android { compileSdkVersion 30 @@ -44,7 +44,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'com.google.android.material:material:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.1' implementation 'androidx.navigation:navigation-fragment:2.3.0' implementation 'androidx.navigation:navigation-ui:2.3.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' @@ -52,14 +52,14 @@ dependencies { implementation 'androidx.navigation:navigation-ui-ktx:2.3.0' implementation 'androidx.recyclerview:recyclerview:1.1.0' testImplementation 'junit:junit:4.13' - androidTestImplementation 'androidx.test.ext:junit:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + androidTestImplementation 'androidx.test.ext:junit:1.1.2' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' //Room implementation 'androidx.room:room-ktx:2.2.5' implementation "androidx.room:room-runtime:2.2.5" - kapt "androidx.room:room-compiler:2.2.5" + annotationProcessor 'androidx.room:room-compiler:2.2.5' //Retrofit implementation 'com.squareup.retrofit2:retrofit:2.9.0' @@ -69,6 +69,8 @@ dependencies { //Gson library implementation "com.google.code.gson:gson:2.8.6" - annotationProcessor 'androidx.room:room-compiler:2.2.5' + // ViewModel and LiveData + implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' + annotationProcessor 'androidx.lifecycle:lifecycle-common-java8:2.2.0' } \ No newline at end of file diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/DB/DAO/ArticulosDAO.kt b/app/src/main/java/com/focasoftware/deboinventariov20/DB/DAO/ArticulosDAO.kt index 51efcb3..faf3396 100644 --- a/app/src/main/java/com/focasoftware/deboinventariov20/DB/DAO/ArticulosDAO.kt +++ b/app/src/main/java/com/focasoftware/deboinventariov20/DB/DAO/ArticulosDAO.kt @@ -47,6 +47,9 @@ interface InvHeadDAO { @Query("SELECT * FROM $TABLA_INV_H ORDER BY INV_FEI") suspend fun fetchAllInvHead(): List + + @Query("UPDATE $TABLA_INV_H SET INV_PRODCONT=:cant WHERE INV_NUM=:inven") + suspend fun UpdateInvBody(cant: Float, inven: Int) } @Dao @@ -89,9 +92,9 @@ interface ServeInvDao { @Query("UPDATE $TABLA_SERV_INV SET SER_PRE=0") suspend fun UpdateServerPreInZero() - @Query("UPDATE $TABLA_SERV_INV SET SER_PRE=1 WHERE SER_DESC LIKE :description AND SER_DIR LIKE :dir") - suspend fun UpdateServerPre(description: String, dir: String) + @Query("UPDATE $TABLA_SERV_INV SET SER_PRE=1 WHERE SER_NUM = :numero") + suspend fun UpdateServerPre(numero: Int) - @Query("SELECT * FROM $TABLA_SERV_INV WHERE SER_PRE =:sOne") - suspend fun fetchServerPreOne(sOne: String): ServeInv + @Query("SELECT * FROM $TABLA_SERV_INV WHERE SER_PRE= 1") + suspend fun fetchServerPreOne(): ServeInv } \ No newline at end of file diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/Model/Tablas.kt b/app/src/main/java/com/focasoftware/deboinventariov20/Model/Tablas.kt index 6702130..15f6b16 100644 --- a/app/src/main/java/com/focasoftware/deboinventariov20/Model/Tablas.kt +++ b/app/src/main/java/com/focasoftware/deboinventariov20/Model/Tablas.kt @@ -83,7 +83,7 @@ data class InvBody(@ColumnInfo(name = "INV_NUM") var invNum: Int, data class ServeInv( @ColumnInfo(name = "SER_DESC") var descripcion: String?, @ColumnInfo(name = "SER_DIR") var direccion: String?, - @ColumnInfo(name = "SER_PRE") var predeterminado: String?): + @ColumnInfo(name = "SER_PRE") var predeterminado: Int?): Serializable { @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "SER_NUM") var servNum: Int=0 diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/ui/actualizacionMaestros/ActuaMaestrosFragment.kt b/app/src/main/java/com/focasoftware/deboinventariov20/ui/actualizacionMaestros/ActuaMaestrosFragment.kt index a40aafb..11804c5 100644 --- a/app/src/main/java/com/focasoftware/deboinventariov20/ui/actualizacionMaestros/ActuaMaestrosFragment.kt +++ b/app/src/main/java/com/focasoftware/deboinventariov20/ui/actualizacionMaestros/ActuaMaestrosFragment.kt @@ -6,17 +6,16 @@ import android.view.View import android.view.ViewGroup import android.widget.Button import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity +import androidx.lifecycle.lifecycleScope import com.focasoftware.deboinventariov20.DB.DataBase.AppDb -import com.focasoftware.deboinventariov20.Model.Articles -import com.focasoftware.deboinventariov20.Model.Productos -import com.focasoftware.deboinventariov20.Model.ProductosService -import com.focasoftware.deboinventariov20.Model.ServeInv +import com.focasoftware.deboinventariov20.Model.* import com.focasoftware.deboinventariov20.R import com.google.android.material.bottomappbar.BottomAppBarTopEdgeTreatment import kotlinx.android.synthetic.main.fragment_actua_maestros.* import kotlinx.coroutines.* -var BASE_URL ="" +public var BASE_URL ="" class ActuaMaestrosFragment : Fragment() { var job: Job? = null @@ -25,18 +24,16 @@ class ActuaMaestrosFragment : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // GlobalScope.launch(Dispatchers.Main) { -// -// BASE_URL = fetchServerPre().direccion.toString() -// } - BASE_URL="http://10.0.2.2:3000/" +// val invbody = fetchServerPreOne() + //BASE_URL= invbody!!.direccion.toString() + BASE_URL="http://10.0.2.2:3000/" +// } // mostrarArticulos() } - suspend fun fetchServerPre(): ServeInv { - var busqueda: ServeInv + private suspend fun fetchServerPreOne(): ServeInv? { return GlobalScope.async(Dispatchers.IO) { - busqueda = AppDb.getAppDb(requireContext())!!.ServeInvDao()!!.fetchServerPreOne("1") - return@async busqueda + return@async AppDb.getAppDb(requireActivity())!!.ServeInvDao()!!.fetchServerPreOne() }.await() } diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/ui/configuracion/ConfiguracionFragment.kt b/app/src/main/java/com/focasoftware/deboinventariov20/ui/configuracion/ConfiguracionFragment.kt index f19c3e1..774e4f4 100644 --- a/app/src/main/java/com/focasoftware/deboinventariov20/ui/configuracion/ConfiguracionFragment.kt +++ b/app/src/main/java/com/focasoftware/deboinventariov20/ui/configuracion/ConfiguracionFragment.kt @@ -8,6 +8,8 @@ import android.view.View import android.view.ViewGroup import android.widget.* import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity +import androidx.lifecycle.lifecycleScope import androidx.navigation.NavController import androidx.navigation.Navigation import androidx.navigation.fragment.findNavController @@ -16,10 +18,7 @@ import com.focasoftware.deboinventariov20.Model.ServeInv import com.focasoftware.deboinventariov20.R import com.focasoftware.deboinventariov20.ui.servidores.SpinnerAdapterServidor import kotlinx.android.synthetic.main.fragment_configuracion.* -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.async -import kotlinx.coroutines.launch +import kotlinx.coroutines.* class ConfiguracionFragment : Fragment() { @@ -166,19 +165,19 @@ class ConfiguracionFragment : Fragment() { } btnAgregarServidor.setOnClickListener { findNavController().navigate(R.id.servidoresFragment) } btnValidarServidor.setOnClickListener { Toast.makeText(requireContext(), "Dirección correcta", Toast.LENGTH_LONG).show() } - spServidor?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onNothingSelected(parent: AdapterView<*>?) {} - override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { itemSelect = position } - } GlobalScope.launch(Dispatchers.Main) { adapterSpinnerServidor = SpinnerAdapterServidor(requireContext(), getDescServers()) spServidor.adapter = adapterSpinnerServidor - if (sharedPreferences.contains("ServerPredeterminado")) { spServidor.setSelection(sharedPreferences.getString("ServerPredeterminado", "").toString().toInt()) } else (spServidor.setSelection(0)) } - + spServidor?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { + override fun onNothingSelected(parent: AdapterView<*>?) {} + override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { + itemSelect = position + } + } return v } @@ -189,31 +188,54 @@ class ConfiguracionFragment : Fragment() { } fun guardarPreferencias() { - try { - val editor = sharedPreferences.edit() - - if (etRuta.text.isNotEmpty()) editor?.putString("etRuta", etRuta.text.toString()) - - if (rbProInclu.isChecked) editor?.putString("rbProInclu", "1") else editor?.putString("rbProInclu", "0") - if (rbProNoInclu.isChecked) editor?.putString("rbProNoInclu", "1") else editor?.putString("rbProNoInclu", "0") - - if (cbHabiLectura.isChecked) editor?.putString("cbHabiLectura", "1") else editor?.putString("cbHabiLectura", "0") - if (cbMostrarStock.isChecked) editor?.putString("cbMostrarStock", "1") else editor?.putString("cbMostrarStock", "0") - if (rbVentas.isChecked) editor?.putString("rbVentas", "1") else editor?.putString("rbVentas", "0") - if (rbDeposito.isChecked) editor?.putString("rbDeposito", "1") else editor?.putString("rbDeposito", "0") - if (rbCodigoDebo.isChecked) editor?.putString("rbCodigoDebo", "1") else editor?.putString("rbCodigoDebo", "0") - if (rbCodigoOrigen.isChecked) editor?.putString("rbCodigoOrigen", "1") else editor?.putString("rbCodigoOrigen", "0") - if (rbCodigoBarras.isChecked) editor?.putString("rbCodigoBarras", "1") else editor?.putString("rbCodigoBarras", "0") - if (cbMostrarExistencia.isChecked) editor?.putString("cbMostrarExistencia", "1") else editor?.putString("cbMostrarExistencia", "0") - if (cbMostrarPrecio.isChecked) editor?.putString("cbMostrarPrecio", "1") else editor?.putString("cbMostrarPrecio", "0") - editor?.putString("ServerPredeterminado", itemSelect.toString()) - - editor?.apply() - editor.commit() - - } catch (e: Exception) { - e.printStackTrace() - } +// try { + val editor = sharedPreferences.edit() + + if (etRuta.text.isNotEmpty()) editor?.putString("etRuta", etRuta.text.toString()) + + if (rbProInclu.isChecked) editor?.putString("rbProInclu", "1") else editor?.putString("rbProInclu", "0") + if (rbProNoInclu.isChecked) editor?.putString("rbProNoInclu", "1") else editor?.putString("rbProNoInclu", "0") + + if (cbHabiLectura.isChecked) editor?.putString("cbHabiLectura", "1") else editor?.putString("cbHabiLectura", "0") + if (cbMostrarStock.isChecked) editor?.putString("cbMostrarStock", "1") else editor?.putString("cbMostrarStock", "0") + if (rbVentas.isChecked) editor?.putString("rbVentas", "1") else editor?.putString("rbVentas", "0") + if (rbDeposito.isChecked) editor?.putString("rbDeposito", "1") else editor?.putString("rbDeposito", "0") + if (rbCodigoDebo.isChecked) editor?.putString("rbCodigoDebo", "1") else editor?.putString("rbCodigoDebo", "0") + if (rbCodigoOrigen.isChecked) editor?.putString("rbCodigoOrigen", "1") else editor?.putString("rbCodigoOrigen", "0") + if (rbCodigoBarras.isChecked) editor?.putString("rbCodigoBarras", "1") else editor?.putString("rbCodigoBarras", "0") + if (cbMostrarExistencia.isChecked) editor?.putString("cbMostrarExistencia", "1") else editor?.putString("cbMostrarExistencia", "0") + if (cbMostrarPrecio.isChecked) editor?.putString("cbMostrarPrecio", "1") else editor?.putString("cbMostrarPrecio", "0") + editor?.putString("ServerPredeterminado", itemSelect.toString()) + updateServerPreInZero() + updateServerPre(itemSelect+1) + + editor?.apply() + editor.commit() + +// } catch (e: Exception) { +// Toast.makeText(requireContext(), "Error ", Toast.LENGTH_LONG).show() +// e.printStackTrace() +// } } + private fun updateServerPreInZero() { + lifecycleScope.launch { + withContext(Dispatchers.IO) { + val activity: FragmentActivity? = activity + if (activity != null && isAdded) { + AppDb.getAppDb(requireActivity())!!.ServeInvDao()!!.UpdateServerPreInZero() + } + } + } + } + private fun updateServerPre(server:Int) { + lifecycleScope.launch { + withContext(Dispatchers.IO) { + val activity: FragmentActivity? = activity + if (activity != null && isAdded) { + AppDb.getAppDb(requireActivity())!!.ServeInvDao()!!.UpdateServerPre(server) + } + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/focasoftware/deboinventariov20/ui/descripcionFragment/DescripcionFragment.kt b/app/src/main/java/com/focasoftware/deboinventariov20/ui/descripcionFragment/DescripcionFragment.kt index 62539fc..4b9b68b 100644 --- a/app/src/main/java/com/focasoftware/deboinventariov20/ui/descripcionFragment/DescripcionFragment.kt +++ b/app/src/main/java/com/focasoftware/deboinventariov20/ui/descripcionFragment/DescripcionFragment.kt @@ -61,13 +61,14 @@ class DescripcionFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val v = inflater.inflate(R.layout.fragment_descripcion, container, false) rcDescripcion = v.findViewById(R.id.rcDescripcion) - val btnSalir = v.findViewById