Add holiday CRUD operations

This commit is contained in:
coolneng 2020-06-18 09:04:44 +02:00
parent 095b639794
commit be7b5d2718
Signed by: coolneng
GPG Key ID: 9893DA236405AF57
6 changed files with 221 additions and 17 deletions

View File

@ -53,9 +53,9 @@ CREATE TABLE IF NOT EXISTS festivo (
id INT PRIMARY KEY AUTO_INCREMENT, id INT PRIMARY KEY AUTO_INCREMENT,
fecha_festivo DATE NOT NULL, fecha_festivo DATE NOT NULL,
tipo_festivo VARCHAR(15) NOT NULL, tipo_festivo VARCHAR(15) NOT NULL,
medico VARCHAR(50), medico INT DEFAULT NULL,
FOREIGN KEY (medico) FOREIGN KEY (medico)
REFERENCES usuario(usuario) REFERENCES usuario(id)
); );
CREATE TABLE IF NOT EXISTS calendario ( CREATE TABLE IF NOT EXISTS calendario (
@ -68,10 +68,10 @@ CREATE TABLE IF NOT EXISTS calendario (
sabado_habil BOOLEAN, sabado_habil BOOLEAN,
domingo_habil BOOLEAN, domingo_habil BOOLEAN,
duracion_cita_por_defecto INT, duracion_cita_por_defecto INT,
medico VARCHAR(50), medico INT,
PRIMARY KEY (id, medico), PRIMARY KEY (id, medico),
FOREIGN KEY (medico) FOREIGN KEY (medico)
REFERENCES usuario(usuario) REFERENCES usuario(id)
); );
CREATE TABLE IF NOT EXISTS cita( CREATE TABLE IF NOT EXISTS cita(
@ -79,12 +79,12 @@ CREATE TABLE IF NOT EXISTS cita(
fecha DATE NOT NULL, fecha DATE NOT NULL,
hora TIME NOT NULL, hora TIME NOT NULL,
duracion INT, duracion INT,
medico VARCHAR(50) NOT NULL, medico INT NOT NULL,
observaciones VARCHAR(255), observaciones VARCHAR(255),
paciente INT NOT NULL, paciente INT NOT NULL,
PRIMARY KEY (id, medico), PRIMARY KEY (id, medico),
FOREIGN KEY (medico) FOREIGN KEY (medico)
REFERENCES usuario(usuario), REFERENCES usuario(id),
FOREIGN KEY (paciente) FOREIGN KEY (paciente)
REFERENCES paciente(id) REFERENCES paciente(id)
); );
@ -96,10 +96,10 @@ CREATE TABLE IF NOT EXISTS informe(
paciente INT NOT NULL, paciente INT NOT NULL,
titulo VARCHAR(100) NOT NULL, titulo VARCHAR(100) NOT NULL,
contenido VARCHAR(255) NOT NULL, contenido VARCHAR(255) NOT NULL,
medico VARCHAR(50) NOT NULL, medico INT NOT NULL,
PRIMARY KEY (id, paciente), PRIMARY KEY (id, paciente),
FOREIGN KEY (medico) FOREIGN KEY (medico)
REFERENCES usuario(usuario), REFERENCES usuario(id),
FOREIGN KEY (paciente) FOREIGN KEY (paciente)
REFERENCES paciente(id) REFERENCES paciente(id)
); );

48
src/calendar.php Normal file
View File

@ -0,0 +1,48 @@
<!doctype html>
<html class="no-js" lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Gestión de calendario</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../static/style.css" type="text/css" media="screen" />
</head>
<body>
<div style="text-align: right; margin-top: 20px;">
<a href="forms/holiday_create_form.php" class="create_btn" >Crear</a>
</div>
<table>
<thead>
<tr>
<th>Fecha</th>
<th>Tipo</th>
<th>Medico</th>
<th colspan="2">Acciones</th>
</tr>
</thead>
<?php
include 'database.php';
$pdo = connectDatabase();
$list = listHolidays($pdo);
foreach($list as $row) :
?>
<tr>
<td><?php echo $row[1]; ?></td>
<td><?php echo $row[2]; ?></td>
<td><?php echo $row[3]; ?></td>
<td>
<a href="forms/holiday_edit_form.php?edit=<?php echo $row[0]; ?>" class="edit_btn">Editar</a>
</td>
<td>
<a href="holiday_management.php?delete=<?php echo $row[0]; ?>" class="del_btn">Borrar</a>
</td>
</tr>
<?php endforeach ?>
<?php closeDatabase($pdo); ?>
</table>
</body>
</html>

View File

@ -53,18 +53,23 @@ function deletePatient($pdo, string $id) {
} }
function createHoliday($pdo, $data) { function createHoliday($pdo, $data) {
if(empty($data["medico"])){
$query = "INSERT INTO festivo (fecha_festivo, tipo_festivo, medico) VALUES (?,?,?)"; $query = "INSERT INTO festivo (fecha_festivo, tipo_festivo, medico) VALUES (?,?,?)";
$pdo->prepare($query)->execute([$data["fecha_festivo"], $data["tipo_festivo"], $data["medico"]]); $pdo->prepare($query)->execute([$data["fecha_festivo"], $data["tipo_festivo"], $data["medico"]]);
} else {
$query = "INSERT INTO festivo (fecha_festivo, tipo_festivo) VALUES (?,?)";
$pdo->prepare($query)->execute([$data["fecha_festivo"], $data["tipo_festivo"]]);
}
return "Festivo creado con éxito"; return "Festivo creado con éxito";
} }
function editHoliday($pdo, $attr, $param, $id) { function editHoliday($pdo, $data, $id) {
$query = "UPDATE festivo SET ? = ? WHERE id = ?"; $query = "UPDATE festivo SET fecha_festivo=?, tipo_festivo=?, medico=? WHERE id=?";
$pdo->prepare($query)->execute([$attr, $param, $id]); $pdo->prepare($query)->execute([$data["fecha_festivo"], $data["tipo_festivo"], $data["medico"], $id]);
return "Festivo modificado con éxito"; return "Festivo modificado con éxito";
} }
function deleteHoliday($pdo, str $id) { function deleteHoliday($pdo, $id) {
$statement = "DELETE FROM festivo where id=?"; $statement = "DELETE FROM festivo where id=?";
$pdo->prepare($statement)->execute([$id]); $pdo->prepare($statement)->execute([$id]);
return "Festivo borrado con éxito"; return "Festivo borrado con éxito";
@ -121,8 +126,10 @@ function findUser($pdo, $input) {
function listPatients($pdo) { function listPatients($pdo) {
$query = "SELECT paciente.id, paciente.nombre, paciente.apellido, paciente.fecha_de_nacimiento, paciente.documento_identificativo, $query = "SELECT paciente.id, paciente.nombre, paciente.apellido, paciente.fecha_de_nacimiento, paciente.documento_identificativo,
paciente.tipo_documento, paciente.direccion, paciente.localidad, paciente.provincia, paciente.pais, cita.id, informe.titulo paciente.tipo_documento, paciente.direccion, municipios.nombre, provincias.provincia, paciente.pais, cita.id, informe.titulo
FROM paciente LEFT JOIN cita ON paciente.id=cita.paciente LEFT JOIN informe ON paciente.id=informe.paciente FROM paciente INNER JOIN municipios ON paciente.localidad = municipios.id_municipio
INNER JOIN provincias ON paciente.provincia = provincias.id_provincia
LEFT JOIN cita ON paciente.id=cita.paciente LEFT JOIN informe ON paciente.id=informe.paciente
GROUP BY paciente.id, cita.id, informe.titulo"; GROUP BY paciente.id, cita.id, informe.titulo";
$result = $pdo->prepare($query); $result = $pdo->prepare($query);
$result->execute(); $result->execute();
@ -164,4 +171,28 @@ function fetchRegions($pdo){
return $data; return $data;
} }
function listHolidays($pdo){
$query = "SELECT * FROM festivo";
$result = $pdo->prepare($query);
$result->execute();
$data = $result->fetchAll();
return $data;
}
function listDoctors($pdo){
$query = "SELECT * FROM usuario where rol=2";
$result = $pdo->prepare($query);
$result->execute();
$data = $result->fetchAll();
return $data;
}
function fetchHolidayData($pdo, string $id) {
$query = "SELECT * FROM festivo WHERE id=?";
$result = $pdo->prepare($query);
$result->execute([$id]);
$data = $result->fetch();
return $data;
}
?> ?>

View File

@ -0,0 +1,42 @@
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Gestión de usuarios</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../static/style.css" type="text/css" media="screen" />
<script src="../validate_date.js"></script>
</head>
<body>
<?php
include '../database.php';
$pdo = connectDatabase();
$doctors = listDoctors($pdo);
?>
<form name="create_form" method="post" action="../holiday_management.php">
<div class="input-group">
<label>Fecha</label>
<input type="date" name="fecha_festivo" value="">
</div>
<div class="select-input">
<label>Tipo</label>
<select id="tipo_festivo" name="tipo_festivo">
<option value="mañana">mañana</option>
<option value="tarde">tarde</option>
<option value="completo">completo</option>
</select>
</div>
<div class="input-group">
<select id="medico" name="medico">
<option>Seleccione un médico</option>
<?php foreach($doctors as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?></option>
<?php endforeach ?>
</select>
</div>
<div class="input-group">
<button class="btn" type="submit" name="create" >Guardar</button>
</div>
</form>
</body>

View File

@ -0,0 +1,43 @@
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Gestión de usuarios</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../static/style.css" type="text/css" media="screen" />
</head>
<body>
<?php
include '../database.php';
$pdo = connectDatabase();
$data = fetchHolidayData($pdo, $_GET["edit"]);
?>
<form method="post" action="../user_management.php">
<div class="input-group">
<label>Fecha</label>
<input type="date" name="fecha_festivo" value="<?php echo $data[1]; ?>">
</div>
<div class="select-input">
<label>Tipo</label>
<select id="tipo_festivo" name="tipo_festivo">
<option value="mañana">mañana</option>
<option value="tarde">tarde</option>
<option value="completo">completo</option>
</select>
</div>
<div class="input-group">
<select id="medico" name="medico">
<option>Seleccione un médico</option>
<?php foreach($doctors as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?></option>
<?php endforeach ?>
</select>
</div>
<div class="input-group">
<button class="btn" type="submit" name="edit" >Editar</button>
</div>
<input type="hidden" name="id" value="<?php echo $_GET["edit"]; ?>">
</form>
<?php closeDatabase($pdo); ?>
</body>

View File

@ -0,0 +1,40 @@
<?php
include'database.php';
function holidayCreation(){
$data = $_POST;
$pdo = connectDatabase();
createHoliday($pdo, $data);
closeDatabase($pdo);
header('location: calendar.php');
}
function holidayModification(){
$data = $_POST;
$id = $_POST["id"];
$pdo = connectDatabase();
editHoliday($pdo, $data, $id);
closeDatabase($pdo);
header('location: calendar.php');
}
function holidayDeletion(){
$id = $_GET["delete"];
$pdo = connectDatabase();
deleteHoliday($pdo, $id);
closeDatabase($pdo);
header('location: calendar.php');
}
if (isset($_POST["create"])) {
holidayCreation();
}
if (isset($_POST["edit"])) {
holidayModification();
}
if (isset($_GET["delete"])) {
holidayDeletion();
}