Funcionalidad Eliminar Receta desde el médico y paciente. Funcionalidad de Cerrar Sesión.

This commit is contained in:
mosterTeco 2024-05-11 16:39:01 -06:00
parent 28c4ea83af
commit 7edc71a7ff
24 changed files with 127 additions and 80 deletions

View File

@ -32,7 +32,7 @@
android:name=".RegistrarDActivity" android:name=".RegistrarDActivity"
android:exported="false" /> android:exported="false" />
<activity <activity
android:name="Reports.ConsultarPacientesActivity" android:name="reports.ConsultarPacientesActivity"
android:exported="false" /> android:exported="false" />
<activity <activity
android:name=".EliminarActivity" android:name=".EliminarActivity"

View File

@ -1,7 +1,7 @@
package Adapters package adapters
import Data.Receta
interface CellClickListener { interface CellClickListener {
fun onCellClickListener(position : Int) fun onCellClickListener(position : Int)
fun onEliminarClickListener(position: Int)
} }

View File

@ -1,14 +1,12 @@
package Adapters package adapters
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.ContentValues import android.content.ContentValues
import android.content.Context import android.content.Context
import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper import android.database.sqlite.SQLiteOpenHelper
import Data.Doctor import data.Doctor
import Data.Paciente import data.Paciente
import android.database.Cursor
import android.widget.Toast
class DoctorDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABASE_NAME,null, class DoctorDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABASE_NAME,null,
DATABASE_VERSION DATABASE_VERSION

View File

@ -1,6 +1,6 @@
package Adapters package adapters
import Data.Paciente import data.Paciente
import android.content.Context import android.content.Context
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View

View File

@ -1,6 +1,6 @@
package Adapters package adapters
import Data.Receta import data.Receta
import android.content.Context import android.content.Context
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View

View File

@ -1,12 +1,12 @@
package Adapters package adapters
import Data.Receta import data.Receta
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.ContentValues import android.content.ContentValues
import android.content.Context import android.content.Context
import android.database.Cursor
import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper import android.database.sqlite.SQLiteOpenHelper
import android.util.Log
class RecetaDataBaseHelper(context: Context) : SQLiteOpenHelper(context, DATABAENAME, null, DATABASEVERSION){ class RecetaDataBaseHelper(context: Context) : SQLiteOpenHelper(context, DATABAENAME, null, DATABASEVERSION){
companion object{ companion object{
@ -93,10 +93,12 @@ class RecetaDataBaseHelper(context: Context) : SQLiteOpenHelper(context, DATABAE
} }
fun eliminarReceta(receta: Receta) { fun eliminarReceta(receta: Receta) {
Log.d("RecetaDataBaseHelper", "Eliminando receta: ${receta.NombrePaciente}, ${receta.fecha}")
val db = writableDatabase val db = writableDatabase
db.delete(TABLE_NAME, "$COLUMN_NOMBRE_PACIENTE = ? AND $COLUMN_FECHA = ?", arrayOf(receta.NombrePaciente, receta.fecha)) db.delete(TABLE_NAME, "$COLUMN_NOMBRE_PACIENTE = ? AND $COLUMN_FECHA = ?", arrayOf(receta.NombrePaciente, receta.fecha))
db.close() db.close()
} }
fun crearTablaReceta(){ fun crearTablaReceta(){
val db=writableDatabase val db=writableDatabase
val creatTabla="CREATE TABLE $TABLE_NAME ($COLUMN_NOMBRE_PACIENTE VARCHAR(30), $COLUMN_EDAD_PACIENTE INT, $COLUMN_PESO_PACIENTE INT, $COLUMN_FECHA VARCHAR(30), " + val creatTabla="CREATE TABLE $TABLE_NAME ($COLUMN_NOMBRE_PACIENTE VARCHAR(30), $COLUMN_EDAD_PACIENTE INT, $COLUMN_PESO_PACIENTE INT, $COLUMN_FECHA VARCHAR(30), " +

View File

@ -1,14 +1,12 @@
package Adapters package adapters
import Data.Receta import data.Receta
import android.content.Context import android.content.Context
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.AdapterView.OnItemClickListener
import android.widget.Button import android.widget.Button
import android.widget.TextView import android.widget.TextView
import android.widget.Toast
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.terratenientes.medicalhealth.R import com.terratenientes.medicalhealth.R
@ -19,6 +17,7 @@ class RecetaViewAdapter(private var notes : List<Receta>, context: Context,val c
val fechaReceta : TextView = itemView.findViewById(R.id.tv_fecha_receta) val fechaReceta : TextView = itemView.findViewById(R.id.tv_fecha_receta)
val nombreReceta : TextView = itemView.findViewById(R.id.tv_nombre_paciente) val nombreReceta : TextView = itemView.findViewById(R.id.tv_nombre_paciente)
val btnDescargar : Button = itemView.findViewById(R.id.btn_descargar_receta) val btnDescargar : Button = itemView.findViewById(R.id.btn_descargar_receta)
val btnEliminar: Button = itemView.findViewById(R.id.btn_eliminar_receta)
val pesoReceta : TextView = itemView.findViewById(R.id.tv_peso_paciente) val pesoReceta : TextView = itemView.findViewById(R.id.tv_peso_paciente)
val edadReceta : TextView = itemView.findViewById(R.id.tv_edad_paciente) val edadReceta : TextView = itemView.findViewById(R.id.tv_edad_paciente)
val dosisReceta : TextView=itemView.findViewById(R.id.tv_dosis_medicamento) val dosisReceta : TextView=itemView.findViewById(R.id.tv_dosis_medicamento)
@ -47,6 +46,9 @@ class RecetaViewAdapter(private var notes : List<Receta>, context: Context,val c
holder.btnDescargar.setOnClickListener{ holder.btnDescargar.setOnClickListener{
cellClickListener.onCellClickListener(position) cellClickListener.onCellClickListener(position)
} }
holder.btnEliminar.setOnClickListener{
cellClickListener.onEliminarClickListener(position)
}
} }
fun refreshData( newNotes : List<Receta>){ fun refreshData( newNotes : List<Receta>){

View File

@ -1,7 +1,7 @@
package com.terratenientes.medicalhealth package com.terratenientes.medicalhealth
import Adapters.DoctorDataBaseHelper import adapters.DoctorDataBaseHelper
import Data.Paciente import data.Paciente
import android.R import android.R
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle

View File

@ -1,8 +1,8 @@
package com.terratenientes.medicalhealth package com.terratenientes.medicalhealth
import Adapters.DoctorDataBaseHelper import adapters.DoctorDataBaseHelper
import Adapters.PacienteAdapter import adapters.PacienteAdapter
import Data.Paciente import data.Paciente
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.os.Bundle import android.os.Bundle
import android.widget.Toast import android.widget.Toast

View File

@ -1,24 +1,20 @@
package com.terratenientes.medicalhealth package com.terratenientes.medicalhealth
import Adapters.RecetaAdapter import adapters.RecetaAdapter
import Adapters.RecetaDataBaseHelper import adapters.RecetaDataBaseHelper
import Data.Receta import data.Receta
import android.os.Bundle import android.os.Bundle
import android.widget.Toast import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.terratenientes.medicalhealth.databinding.ActivityEliminarPacienteBinding
import com.terratenientes.medicalhealth.databinding.ActivityEliminarRecetaBinding import com.terratenientes.medicalhealth.databinding.ActivityEliminarRecetaBinding
import android.widget.ListView import android.widget.ListView
class EliminarRecetaActivity : AppCompatActivity() { class EliminarRecetaActivity : AppCompatActivity() {
private lateinit var binding: ActivityEliminarRecetaBinding private lateinit var binding: ActivityEliminarRecetaBinding
private lateinit var dbReceta: RecetaDataBaseHelper private lateinit var dbReceta: RecetaDataBaseHelper
private lateinit var recetaAdapter: RecetaAdapter private lateinit var recetaAdapter: RecetaAdapter
private var recetaSeleccionada: Receta? = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -28,18 +24,16 @@ class EliminarRecetaActivity : AppCompatActivity() {
dbReceta = RecetaDataBaseHelper(this) dbReceta = RecetaDataBaseHelper(this)
// Configurar el ListView y el adaptador cargarListaRecetas()
val recetas = obtenerListaRecetas()
recetaAdapter = RecetaAdapter(this, recetas) binding.listaRecetas.setOnItemClickListener { _, _, position, _ ->
binding.listaRecetas.adapter = recetaAdapter recetaSeleccionada = recetaAdapter.getItem(position)
}
// Manejar el evento de clic en el botón para eliminar receta
binding.btnEliminarReceta.setOnClickListener { binding.btnEliminarReceta.setOnClickListener {
val posicionSeleccionada = binding.listaRecetas.selectedItemPosition if (recetaSeleccionada != null) {
if (posicionSeleccionada != ListView.INVALID_POSITION) { eliminarReceta(recetaSeleccionada!!)
val recetaSeleccionada = recetas[posicionSeleccionada] cargarListaRecetas()
eliminarReceta(recetaSeleccionada)
recetaAdapter.remove(recetaSeleccionada)
Toast.makeText(this, "Receta eliminada correctamente", Toast.LENGTH_SHORT).show() Toast.makeText(this, "Receta eliminada correctamente", Toast.LENGTH_SHORT).show()
} else { } else {
Toast.makeText(this, "Por favor, seleccione una receta para eliminar", Toast.LENGTH_SHORT).show() Toast.makeText(this, "Por favor, seleccione una receta para eliminar", Toast.LENGTH_SHORT).show()
@ -47,11 +41,17 @@ class EliminarRecetaActivity : AppCompatActivity() {
} }
} }
private fun cargarListaRecetas() {
val recetas = obtenerListaRecetas()
recetaAdapter = RecetaAdapter(this, recetas)
binding.listaRecetas.adapter = recetaAdapter
}
private fun obtenerListaRecetas(): List<Receta> { private fun obtenerListaRecetas(): List<Receta> {
return dbReceta.obtenerTodasRecetas() // Implementa este método en tu RecetaDataBaseHelper para obtener todas las recetas return dbReceta.obtenerTodasRecetas()
} }
private fun eliminarReceta(receta: Receta) { private fun eliminarReceta(receta: Receta) {
dbReceta.eliminarReceta(receta) // Implementa este método en tu RecetaDataBaseHelper para eliminar una receta dbReceta.eliminarReceta(receta)
} }
} }

View File

@ -1,7 +1,7 @@
package com.terratenientes.medicalhealth package com.terratenientes.medicalhealth
import Adapters.DoctorDataBaseHelper import adapters.DoctorDataBaseHelper
import Data.Doctor import data.Doctor
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
@ -41,6 +41,8 @@ class MainActivity : AppCompatActivity() {
val intent = Intent(this@MainActivity, RegistrarDActivity::class.java) val intent = Intent(this@MainActivity, RegistrarDActivity::class.java)
startActivity(intent) startActivity(intent)
} }
} }
@SuppressLint("SuspiciousIndentation") @SuppressLint("SuspiciousIndentation")
private fun cargarDatos(){ private fun cargarDatos(){

View File

@ -1,8 +1,8 @@
package com.terratenientes.medicalhealth package com.terratenientes.medicalhealth
import Adapters.DoctorDataBaseHelper import adapters.DoctorDataBaseHelper
import Data.Paciente import data.Paciente
import Reports.ConsultarPacientesActivity import reports.ConsultarPacientesActivity
import android.content.Intent import android.content.Intent
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle import android.os.Bundle

View File

@ -1,14 +1,11 @@
package com.terratenientes.medicalhealth package com.terratenientes.medicalhealth
import Adapters.CellClickListener import adapters.CellClickListener
import Adapters.RecetaDataBaseHelper import adapters.RecetaDataBaseHelper
import Adapters.RecetaViewAdapter import adapters.RecetaViewAdapter
import Data.Receta import data.Receta
import android.Manifest import android.Manifest
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.graphics.Typeface import android.graphics.Typeface
import android.graphics.pdf.PdfDocument import android.graphics.pdf.PdfDocument
import android.os.Bundle import android.os.Bundle
@ -76,6 +73,14 @@ class PacientePrincipalActivity : AppCompatActivity(), CellClickListener {
pedirPermisosPDF() pedirPermisosPDF()
} }
} }
override fun onEliminarClickListener(position: Int) {
val receta = recetas[position]
db.eliminarReceta(receta)
recycleAdapter.refreshData(db.obtenerRecetasPaciente(idPaciente))
Toast.makeText(this, "Receta eliminada correctamente", Toast.LENGTH_SHORT).show()
}
// función que valida si los permisos ya estan garantizados por parte del usuario // función que valida si los permisos ya estan garantizados por parte del usuario
fun permisosPDF() : Boolean{ fun permisosPDF() : Boolean{
val permission1= ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) val permission1= ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)

View File

@ -28,5 +28,16 @@ class PrincipalActivity : AppCompatActivity() {
startActivity(intent) startActivity(intent)
} }
binding.btnEliminarReceta.setOnClickListener {
val intent = Intent (this@PrincipalActivity, EliminarRecetaActivity::class.java)
startActivity(intent)
}
binding.btnCerrar.setOnClickListener {
val intent = Intent(this@PrincipalActivity, MainActivity::class.java)
startActivity(intent)
finish()
}
} }
} }

View File

@ -1,8 +1,8 @@
package com.terratenientes.medicalhealth package com.terratenientes.medicalhealth
import Adapters.DoctorDataBaseHelper import adapters.DoctorDataBaseHelper
import Adapters.RecetaDataBaseHelper import adapters.RecetaDataBaseHelper
import Data.Receta import data.Receta
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
@ -27,7 +27,7 @@ class RecetaActivity : AppCompatActivity(), OnItemSelectedListener {
db= RecetaDataBaseHelper(this@RecetaActivity) db= RecetaDataBaseHelper(this@RecetaActivity)
dbPaciente = DoctorDataBaseHelper(this@RecetaActivity) dbPaciente = DoctorDataBaseHelper(this@RecetaActivity)
setContentView(view) setContentView(view)
// db.crearTablaReceta() //db.crearTablaReceta()
cargarSpinnerPacientes() cargarSpinnerPacientes()
binding.spNombrePaciente.onItemSelectedListener=this binding.spNombrePaciente.onItemSelectedListener=this
binding.btnAgregarReceta.setOnClickListener { binding.btnAgregarReceta.setOnClickListener {

View File

@ -1,7 +1,7 @@
package com.terratenientes.medicalhealth package com.terratenientes.medicalhealth
import Adapters.DoctorDataBaseHelper import adapters.DoctorDataBaseHelper
import Data.Doctor import data.Doctor
import android.os.Bundle import android.os.Bundle
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity

View File

@ -1,3 +1,3 @@
package Data package data
data class Doctor(var Cedula : String ,var Nombre : String, var Apellido : String, var Telefono : String, var Consultorio : Int) data class Doctor(var Cedula : String ,var Nombre : String, var Apellido : String, var Telefono : String, var Consultorio : Int)

View File

@ -1,4 +1,4 @@
package Data package data
data class Paciente( data class Paciente(
var id: Int, // Este campo representa el ID autoincrementable en la base de datos var id: Int, // Este campo representa el ID autoincrementable en la base de datos

View File

@ -1,3 +1,3 @@
package Data package data
data class Receta(var NombrePaciente : String, var edadPaciente : Int, var pesoPaciente: Double, var nombreMedicamento : String, var fecha : String, var dosis : String, var duracion :String) data class Receta(var NombrePaciente : String, var edadPaciente : Int, var pesoPaciente: Double, var nombreMedicamento : String, var fecha : String, var dosis : String, var duracion :String)

View File

@ -1,4 +1,4 @@
package Reports package reports
import android.Manifest import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
@ -11,10 +11,10 @@ import android.os.Environment
import android.widget.Toast import android.widget.Toast
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import Adapters.DoctorDataBaseHelper import adapters.DoctorDataBaseHelper
import com.terratenientes.medicalhealth.ModificarActivity import com.terratenientes.medicalhealth.ModificarActivity
import Data.Paciente import data.Paciente
import Adapters.PacienteAdapter import adapters.PacienteAdapter
import com.terratenientes.medicalhealth.R import com.terratenientes.medicalhealth.R
import com.terratenientes.medicalhealth.databinding.ActivityConsultarPacientesBinding import com.terratenientes.medicalhealth.databinding.ActivityConsultarPacientesBinding
import java.io.File import java.io.File

View File

@ -18,13 +18,6 @@
android:gravity="center" android:gravity="center"
/> />
<ImageView
android:layout_width="200dp"
android:layout_height="150dp"
android:layout_marginTop="25dp"
android:layout_gravity="center_horizontal"
android:src="@drawable/image_area"/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@ -5,7 +5,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
tools:context="Reports.ConsultarPacientesActivity"> tools:context="reports.ConsultarPacientesActivity">
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -23,6 +23,23 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/btn_agregar_receta"/> android:text="@string/btn_agregar_receta"/>
<Button
android:id="@+id/btn_eliminar_receta"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Eliminar Receta"/>
<Button
android:id="@+id/btn_cerrar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Cerrar Sesión"/>
</LinearLayout> </LinearLayout>

View File

@ -68,7 +68,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="243dp" android:layout_marginStart="243dp"
android:layout_marginTop="13dp" android:layout_marginTop="2dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:text="Descargar" android:text="Descargar"
@ -80,6 +80,23 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.487" /> app:layout_constraintVertical_bias="0.487" />
<Button
android:id="@+id/btn_eliminar_receta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="243dp"
android:layout_marginTop="75dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="10dp"
android:text="Eliminar"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.487" />
<TextView <TextView
android:id="@+id/tv_peso_paciente" android:id="@+id/tv_peso_paciente"
android:layout_width="50dp" android:layout_width="50dp"