Funcionalidades:Enviar receta por correo, validar cedula,validar campos en pantalla de registro
This commit is contained in:
parent
2a21d6b537
commit
4c115b3e79
|
@ -64,4 +64,8 @@ class PacienteActivity : AppCompatActivity(), CellClickListener {
|
||||||
intent.putExtra("Sexo", paciente.sexo)
|
intent.putExtra("Sexo", paciente.sexo)
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onEnviarCorreoClickListener(position: Int) {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -97,6 +97,38 @@ class PacientePrincipalActivity : AppCompatActivity(), CellClickListener {
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onEnviarCorreoClickListener(position: Int) {
|
||||||
|
val receta = recetas[position]
|
||||||
|
val nombrePaciente = receta.NombrePaciente
|
||||||
|
val nombreMedicamento = receta.nombreMedicamento
|
||||||
|
val dosisMedicamento = receta.dosis
|
||||||
|
val duracionMedicamento = receta.duracion
|
||||||
|
val fechaReceta = receta.fecha
|
||||||
|
val pesoPaciente = receta.pesoPaciente
|
||||||
|
val edadPaciente = receta.edadPaciente
|
||||||
|
|
||||||
|
val descripcionReceta = """
|
||||||
|
Fecha de Consulta: $fechaReceta
|
||||||
|
Datos Generales del Paciente:
|
||||||
|
Peso del Paciente: $pesoPaciente
|
||||||
|
Edad del Paciente: $edadPaciente
|
||||||
|
Medicamento a Recetar: $nombreMedicamento
|
||||||
|
Dosis del Medicamento: $dosisMedicamento
|
||||||
|
Duración del Tratamiento: $duracionMedicamento
|
||||||
|
""".trimIndent()
|
||||||
|
|
||||||
|
val intent = Intent(Intent.ACTION_SEND).apply {
|
||||||
|
type = "message/rfc822"
|
||||||
|
putExtra(Intent.EXTRA_SUBJECT, "Receta Médica de $nombrePaciente")
|
||||||
|
putExtra(Intent.EXTRA_TEXT, descripcionReceta)
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
startActivity(Intent.createChooser(intent, "Enviar receta a través de:"))
|
||||||
|
} catch (ex: android.content.ActivityNotFoundException) {
|
||||||
|
Toast.makeText(this, "No hay clientes de correo instalados.", 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)
|
||||||
|
|
|
@ -15,21 +15,64 @@ class RegistrarDActivity : AppCompatActivity() {
|
||||||
binding = ActivityRegistrarDactivityBinding.inflate(layoutInflater)
|
binding = ActivityRegistrarDactivityBinding.inflate(layoutInflater)
|
||||||
val view = binding.root
|
val view = binding.root
|
||||||
setContentView(view)
|
setContentView(view)
|
||||||
db= DoctorDataBaseHelper(this@RegistrarDActivity)
|
db = DoctorDataBaseHelper(this@RegistrarDActivity)
|
||||||
|
|
||||||
binding.btnRegistrar.setOnClickListener {
|
binding.btnRegistrar.setOnClickListener {
|
||||||
|
if (validarCampos()) {
|
||||||
registrarUsuario()
|
registrarUsuario()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private fun registrarUsuario(){
|
}
|
||||||
val cedula=binding.etCedelaRegistro.text.toString()
|
private fun validarCampos(): Boolean {
|
||||||
val nombre=binding.etNombreRegistro.text.toString()
|
val cedula = binding.etCedelaRegistro.text.toString()
|
||||||
val apellido=binding.etApellidoRegistro.text.toString()
|
val nombre = binding.etNombreRegistro.text.toString()
|
||||||
val telefono=binding.etTelefonoRegisto.text.toString()
|
val apellido = binding.etApellidoRegistro.text.toString()
|
||||||
|
val telefono = binding.etTelefonoRegisto.text.toString()
|
||||||
val domicilio = binding.etDomicilio.text.toString()
|
val domicilio = binding.etDomicilio.text.toString()
|
||||||
val contrasena= binding.etContrasenaRegistro.text.toString()
|
val contrasena = binding.etContrasenaRegistro.text.toString()
|
||||||
val usuario= Doctor(cedula,nombre,apellido,telefono,domicilio.toInt())
|
|
||||||
db.agregarDoctores(usuario,contrasena)
|
if (cedula.isEmpty() || nombre.isEmpty() || apellido.isEmpty() || telefono.isEmpty() || domicilio.isEmpty() || contrasena.isEmpty()) {
|
||||||
Toast.makeText(this@RegistrarDActivity,"USUARIO AGREGADO",Toast.LENGTH_LONG).show()
|
Toast.makeText(this, "Todos los campos son obligatorios.", Toast.LENGTH_LONG).show()
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!validarCedula(cedula)) {
|
||||||
|
Toast.makeText(this, "Cédula profesional no válida.", Toast.LENGTH_LONG).show()
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!validarTelefono(telefono)) {
|
||||||
|
Toast.makeText(this, "Número de teléfono no válido.", Toast.LENGTH_LONG).show()
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun validarCedula(cedula: String): Boolean {
|
||||||
|
// Expresión regular para validar que la cédula tenga entre 5 y 8 caracteres o exactamente 11 caracteres alfanuméricos
|
||||||
|
val regex = Regex("^[a-zA-Z0-9]{5,8}$|^[a-zA-Z0-9]{11}$")
|
||||||
|
return regex.matches(cedula)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun validarTelefono(telefono: String): Boolean {
|
||||||
|
// Expresión regular para validar que el número de teléfono tenga 10 digitos
|
||||||
|
val regex = Regex("^\\d{10}$")
|
||||||
|
return regex.matches(telefono)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun registrarUsuario() {
|
||||||
|
val cedula = binding.etCedelaRegistro.text.toString()
|
||||||
|
val nombre = binding.etNombreRegistro.text.toString()
|
||||||
|
val apellido = binding.etApellidoRegistro.text.toString()
|
||||||
|
val telefono = binding.etTelefonoRegisto.text.toString()
|
||||||
|
val domicilio = binding.etDomicilio.text.toString()
|
||||||
|
val contrasena = binding.etContrasenaRegistro.text.toString()
|
||||||
|
|
||||||
|
val usuario = Doctor(cedula, nombre, apellido, telefono, domicilio.toInt())
|
||||||
|
db.agregarDoctores(usuario, contrasena)
|
||||||
|
|
||||||
|
Toast.makeText(this@RegistrarDActivity, "USUARIO AGREGADO", Toast.LENGTH_LONG).show()
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,4 +4,5 @@ interface CellClickListener {
|
||||||
fun onCellClickListener(position : Int)
|
fun onCellClickListener(position : Int)
|
||||||
fun onEliminarClickListener(position: Int)
|
fun onEliminarClickListener(position: Int)
|
||||||
fun onModifyClickListener(position: Int)
|
fun onModifyClickListener(position: Int)
|
||||||
|
fun onEnviarCorreoClickListener(position: Int)
|
||||||
}
|
}
|
|
@ -20,6 +20,7 @@ class RecetaViewAdapter(private var notes : List<Receta>, context: Context, val
|
||||||
val btnDescargar : ImageView = itemView.findViewById(R.id.iv_descargar_receta)
|
val btnDescargar : ImageView = itemView.findViewById(R.id.iv_descargar_receta)
|
||||||
val btnEliminar: ImageView = itemView.findViewById(R.id.iv_eliminar_receta)
|
val btnEliminar: ImageView = itemView.findViewById(R.id.iv_eliminar_receta)
|
||||||
val btnModificar : ImageView = itemView.findViewById(R.id.iv_modificar_receta)
|
val btnModificar : ImageView = itemView.findViewById(R.id.iv_modificar_receta)
|
||||||
|
val btnEnviar : ImageView = itemView.findViewById(R.id.iv_correo_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)
|
||||||
|
@ -54,6 +55,9 @@ class RecetaViewAdapter(private var notes : List<Receta>, context: Context, val
|
||||||
holder.btnModificar.setOnClickListener {
|
holder.btnModificar.setOnClickListener {
|
||||||
cellClickListener.onModifyClickListener(position)
|
cellClickListener.onModifyClickListener(position)
|
||||||
}
|
}
|
||||||
|
holder.btnEnviar.setOnClickListener{
|
||||||
|
cellClickListener.onEnviarCorreoClickListener(position)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun refreshData( newNotes : List<Receta>){
|
fun refreshData( newNotes : List<Receta>){
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/rv_pacientes"
|
android:id="@+id/rv_pacientes"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="550dp"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="20dp"
|
android:layout_marginTop="20dp"
|
||||||
android:layout_marginEnd="8dp"/>
|
android:layout_marginEnd="8dp"/>
|
||||||
|
|
|
@ -13,8 +13,7 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:scrollbars="vertical"
|
android:scrollbars="vertical"
|
||||||
tools:listitem="@layout/rc_receta_item"
|
tools:listitem="@layout/rc_receta_item" />
|
||||||
/>
|
|
||||||
|
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
|
@ -18,16 +18,16 @@
|
||||||
android:textSize="30dp"/>
|
android:textSize="30dp"/>
|
||||||
|
|
||||||
|
|
||||||
<ImageView
|
<!--<ImageView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="150dp"
|
android:layout_height="150dp"
|
||||||
android:layout_margin="20dp"
|
android:layout_margin="20dp"
|
||||||
android:src="@drawable/doctor"/>
|
android:src="@drawable/doctor"/>-->
|
||||||
|
|
||||||
<GridLayout
|
<GridLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="80dp"
|
android:layout_marginTop="30dp"
|
||||||
android:columnCount="1"
|
android:columnCount="1"
|
||||||
android:rowCount="4">
|
android:rowCount="4">
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,7 @@
|
||||||
android:layout_marginBottom="20dp"
|
android:layout_marginBottom="20dp"
|
||||||
android:background="@drawable/radius_tv"
|
android:background="@drawable/radius_tv"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:inputType="text"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -56,6 +57,7 @@
|
||||||
android:layout_marginBottom="20dp"
|
android:layout_marginBottom="20dp"
|
||||||
android:background="@drawable/radius_tv"
|
android:background="@drawable/radius_tv"
|
||||||
android:textColorHint="@color/black"
|
android:textColorHint="@color/black"
|
||||||
|
android:inputType="text"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
|
@ -69,6 +71,9 @@
|
||||||
android:layout_marginBottom="20dp"
|
android:layout_marginBottom="20dp"
|
||||||
android:background="@drawable/radius_tv"
|
android:background="@drawable/radius_tv"
|
||||||
android:textColorHint="@color/black"
|
android:textColorHint="@color/black"
|
||||||
|
android:inputType="phone"
|
||||||
|
android:maxLength="15"
|
||||||
|
android:digits="0123456789"
|
||||||
/>
|
/>
|
||||||
<EditText
|
<EditText
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
|
@ -96,6 +101,7 @@
|
||||||
android:background="@drawable/radius_tv"
|
android:background="@drawable/radius_tv"
|
||||||
android:hint="@string/et_contrasena_registrar"
|
android:hint="@string/et_contrasena_registrar"
|
||||||
android:textColorHint="@color/black"
|
android:textColorHint="@color/black"
|
||||||
|
android:maxLength="12"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
|
|
@ -79,6 +79,23 @@
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:layout_constraintVertical_bias="0.243" />
|
app:layout_constraintVertical_bias="0.243" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_correo_receta"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="100dp"
|
||||||
|
android:layout_marginTop="2dp"
|
||||||
|
android:layout_marginEnd="24dp"
|
||||||
|
android:layout_marginBottom="50dp"
|
||||||
|
android:background="#3F51B5"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintHorizontal_bias="0.815"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintVertical_bias="0.529"
|
||||||
|
app:srcCompat="@android:drawable/ic_dialog_email" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/iv_modificar_receta"
|
android:id="@+id/iv_modificar_receta"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|
Loading…
Reference in New Issue