You are on page 1of 12

AP6-AA2-EV2-CONSTRUCCIÓN DE ELEMENTOS DE

PROGRAMACIÓN PARA EL PROYECTO DE FORMACIÓN

POR

FÉLIX MERIÑO MENDOZA

FREDDY MÁRQUEZ

Servicio Nacional de Aprendizaje SENA


Análisis y Desarrollo de Sistemas de Información
2018
Esquema Entidad Relación de la Base de datos
PROCEDIMIENTOS:

1. Procedimiento almacenado para la inserción de datos en la tabla clientes:

CREATE PROCEDURE `ingreso_cliente`(IN `nombre_cliente` VARCHAR(255), IN `telefono_cliente` VA


RCHAR(45), IN `correo_cliente` VARCHAR(60), IN `direccion_cliente` VARCHAR(255), IN`No_expedi
ente` VARCHAR(255)) NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER INSERT INTO clientes (Nombr
e_Cliente, Telefono_Cliente, Correo_Cliente, Direccion_Cliente, No_expediente) VALUE(nombre_c
liente, telefono_cliente, correo_cliente, direccion_cliente, No_expediente);

call ingreso_cliente('Alberto Marin','62354123','alberto@correo.com','av cl 3 # 12-


23','9099456490');

2. Procedimiento almacenado para la consulta de datos de la tabla clientes:

CREATE PROCEDURE `mostrar_clientes`() NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER SELECT *
FROM clientes;

3. Procedimiento almacenado para la inserción de datos en la tabla perfil:

CREATE PROCEDURE `agregar_perfil`(IN `nombre_bufet` VARCHAR(255), IN `telefono` VARCHAR(60),


IN `resolucion` VARCHAR(255), IN `ciudad` VARCHAR(100), IN `impuesto_iva` INT(2),IN `nit` VAR
CHAR(30), IN `prefijo` VARCHAR(255), IN `comentarios` TEXT) NOT DETERMINISTIC NO SQL SQL SECU
RITY DEFINER INSERT INTO `perfil` (`Nombre_bufet`,`Telefono`, `Resolucion`, `Ciudad`, `Impues
to_iva`, `Nit`, `Prefijo`, `Comentarios`) VALUES (nombre_bufet, telefono, resolucion, ciudad,
impuesto_iva, nit, prefijo,comentarios);

Call agregar_perfil('Meriño y asociados', '3107028929', '00000000004560', 'soledad', 19, '8006752256', '-


ccc03', 'Cuenta corriente 111907795643');
4. Procedimiento almacenado para la consulta de datos de la tabla perfil:

CREATE PROCEDURE `mostrar_perfil`() NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER SELECT
* FROM perfil;

5. Procedimiento almacenado para la inserción de datos en la tabla abogados:

CREATE PROCEDURE `ingreso_abogado`(IN Nombre VARCHAR(255), IN Apellido VARCHAR(255), IN perfi


l INT, IN clave VARCHAR(45),IN correo VARCHAR(255))

NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER INSERT INTO abogados (Nombre_Usuario, Apel
lido_Usuario, Perfil_Usuario, Usuario_Clave, Usuario_Correo) VALUE(Nombre, Apellido, per
fil, clave, correo);

Call ingreso_abogado('Juan Manuel','Santos',1,'123456','juanma@correo.com');

6. Procedimiento almacenado para la consulta de datos de la tabla abogados:

CREATE PROCEDURE `mostrar_abogados`() NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER SELECT *
FROM abogados;
7. Procedimiento almacenado para la inserción de datos en la tabla asesorías:

CREATE PROCEDURE `ingreso_asesoria`(IN idCliente INT, IN idAbogado


INT, IN fecha DATE, IN condiciones VARCHAR(255),IN honorarios FLOAT, IN observaciones
LONGTEXT, IN referencia VARCHAR(50) )

NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER INSERT INTO asesorias (idCliente, idAbogado, Fe
cha, Condiciones, Total_Honorarios, observaciones,
ref_asesoria) VALUE(idCliente, idAbogado, fecha, condiciones, honorarios, observaciones,
referencia);

Call ingreso_asesoria(1,1,'2018-10-06','Resolución de Detección',14250000,'Los terminos del


servicio son claros para el cliente','CASE 012456' );

8. Procedimiento almacenado para la consulta de datos de la tabla asesorías:

CREATE PROCEDURE `mostrar_asesorias`() NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER SEL
ECT * FROM asesorias;

9. Procedimiento almacenado para la consulta que permita conocer los datos del
cliente y de la asesoría recibida dado el código de la asesoría:

CREATE PROCEDURE `asesoria_clientes`(IN `idAsesoria` INT) NOT DETERMINISTIC NO SQL SQL S


ECURITY DEFINER SELECT c.`idCliente`, c.`Nombre_Cliente`, c.`Telefono_Cliente`,c.`Correo
_Cliente`, c.`Direccion_Cliente`, c.`No_expediente`, a.`Fecha`, a.`Condiciones`, a.`Tota
l_Honorarios`, a.`observaciones` FROM `clientes`c INNER JOIN asesorias a ona.idCliente =
c.idCliente WHERE a.idAsesoria = idAsesoria;
10. Procedimiento almacenado para la consulta que permita conocer los datos del
abogado y el perfil del mismo dado su código:

CREATE PROCEDURE `perfil_abogado`(IN `idAbogado` INT) NOT DETERMINISTIC NO SQL SQL SECUR
ITY DEFINER SELECT a.`idUsuarios`, a.`Nombre_Usuario`, a.`Apellido_Usuario`,a.`Usuario_C
orreo`, p.`Nombre_bufet`, p.`Telefono`, p.`Resolucion`, p.`Ciudad` FROM `abogados` a INN
ER JOIN perfil p ON p.idPerfil = a.Perfil_Usuario WHERE a.idUsuarios =idAbogado;
FUNCIONES

1. Función que permite obtener los datos concatenados del nombre del abogado
según el código ingresado como parámetro

DELIMITER $$

CREATE FUNCTION nombreabogado (id INT) RETURNS VARCHAR(150) BEGIN DECLARE nombrecompleto
VARCHAR(150); SET nombrecompleto = (SELECT CONCAT(`Nombre_Usuario`,"
",`Apellido_Usuario`)FROM abogados WHERE `idUsuarios` = id); RETURN nombrecompleto; END
$$

DELIMITER $$

2. Función que permite obtener el valor total de todos los honorarios generados
por concepto de asesorías:

DELIMITER $$

CREATE FUNCTION total_honorarios () RETURNS FLOAT BEGIN DECLARE total FLOAT;


SET total = (SELECT SUM(`Total_Honorarios`) FROM asesorias); RETURN total; END
$$

DELIMITER $$
3. Función que permite obtener el valor máximo de todos los honorarios cobrados
por asesorías:

DELIMITER $$

CREATE FUNCTION honorarios_max () RETURNS FLOAT BEGIN DECLARE total FLOAT; SET tot
al = (SELECT MAX(`Total_Honorarios`) FROM asesorias); RETURN total; END $$

DELIMITER $$

4. Función que permite obtener los días que han trascurrido hasta la fecha actual
de una asesoría según su id:

DELIMITER $$

CREATE FUNCTION dias_transcurridos (idIn INT) RETURNS INT BEGIN DECLARE dias INT;
SET dias = (SELECT DATEDIFF(CURDATE(),fecha) AS "Dias
Transcurridos" FROM asesorias WHEREidAsesoria = idIn); RETURN dias; END $$

DELIMITER $$
5. Función que permite obtener el valor promedio de los honorarios cobrados por
asesorías:

DELIMITER $$

CREATE FUNCTION honorarios_promedio () RETURNS FLOAT BEGIN DECLARE total FLOA


T; SET total = (SELECT AVG(`Total_Honorarios`) FROM asesorias); RETURN total; END
$$

DELIMITER $$
DESENCADENADORES – TRIGGERS

1. TRIGGER QUE REGISTRA EN LA TABLA HISTORIAL EL INGRESO DE UN NUEVO REGISTRO EN LA


TABLA ABOGADOS

DELIMITER $$
CREATE TRIGGER `abogados`.`accionesAbogados` AFTER INSERT ON `abogados`.`abogados` FOR EAC
H ROW BEGIN INSERT historial(`usuario`,`accion`,`tabla`,`idRegistro`)VALUES("root","INSERT
","abogados",NEW.idUsuarios); END $$
DELIMITER $$

2. TRIGGER QUE REGISTRA EN LA TABLA HISTORIAL LA MODIFICACION DE UN REGISTRO EN LA


TABLA ABOGADOS

DELIMITER $$
CREATE TRIGGER `abogados`.`modificarAbogados` AFTER UPDATE ON `abogados`.`abogados` FOR EA
CH ROW BEGIN INSERT historial(`usuario`,`accion`,`tabla`,`idRegistro`)VALUES("root","UPDAT
E","abogados",OLD.idUsuarios); END $$
DELIMITER $$
3. TRIGGER QUE REGISTRA EN LA TABLA HISTORIAL LA ELIMINACION DE UN REGISTRO EN LA TABLA
ABOGADOS

DELIMITER $$
CREATE TRIGGER `abogados`.`eliminarAbogado` AFTER DELETE ON `abogados`.`abogados` FOR EACH
ROW BEGIN INSERT INTO historial(`usuario`,`accion`,`tabla`,`idRegistro`)
VALUES("root","DELETE","abogados",OLD.idUsuarios); END $$
DELIMITER $$

4. TRIGGER QUE REGISTRA EN LA TABLA HISTORIAL EL INGRESO DE UN NUEVO REGISTRO EN LA


TABLA CLIENTES

DELIMITER $$
CREATE TRIGGER `abogados`.`ingresoCliente` AFTER INSERT ON `abogados`.`clientes` FOR EACH
ROW BEGIN INSERT INTO historial(`usuario`,`accion`,`tabla`,`idRegistro`)
VALUES("root","INSERT","clientes",NEW.idCliente); END $$
DELIMITER $$

INSERT INTO `clientes`(`Nombre_Cliente`, `Telefono_Cliente`, `Correo_Cliente`, `Direccion_


Cliente`, `No_expediente`) VALUES ("Pedro Luis
Mendoza","3011234567","cliente123@correo.com","Barrio Arriba","12488")

11
5. TRIGGER QUE REGISTRA EN LA TABLA HISTORIAL LA ELIMINACION DE REGISTROS EN LA TABLA
CLIENTES

DELIMITER $$
CREATE TRIGGER `abogados`.`eliminarCliente` AFTER DELETE ON `abogados`.`clientes` FOR EACH
ROW BEGIN INSERT INTO historial(`usuario`,`accion`,`tabla`,`idRegistro`)
VALUES("root","DELETE","clientes",OLD.idCliente); END $$
DELIMITER $$

DELETE FROM `clientes` WHERE `idCliente` = 5;

12

You might also like