Sei sulla pagina 1di 210

Contenido

1. PERFIL...............................................................................................................................................7
1.1 Introduccion...................................................................................................................................7
1.2 Antecedentes.................................................................................................................................8
1.3 Estructura Organizacional...........................................................................................................9
1.4 Justificación.................................................................................................................................10
1.5 Descripción del problema..........................................................................................................10
1.5.1. Proceso de Gestión de Clientes............................................................................................10
1.5.2. Proceso de Gestión de Mascotas.........................................................................................11
1.5.3. Procesos de gestión de inventarios......................................................................................11
1.5.4. Proceso de Recibo..................................................................................................................13
1.5.5. Proceso de Diagnóstico.........................................................................................................13
1.5.6. Proceso de Gestión de Servicios..........................................................................................14
1.6 Formulación del problema.........................................................................................................14
1.7 Objetivos......................................................................................................................................14
1.7.1 Objetivo general......................................................................................................................14
1.7.2 Objetivos específicos..............................................................................................................15
1.8 Alcance.........................................................................................................................................15
1.9 ELEMENTOS DEL SISTEMA BASADO EN COMPUTADORAS.........................................17
1.9.1. HARDWARE............................................................................................................................17
1.9.1.1. SERVIDOR..........................................................................................................................17
 Disco duro de 160GB.................................................................................................................17
 Memoria RAM 2GB.....................................................................................................................17
 Procesador Intel Pentium IV de 2.0GHz..................................................................................17
 Puertos USB................................................................................................................................17
 Tarjeta de video de 32 MB.........................................................................................................17
 Unidad lectora de DVD..............................................................................................................17
 Monitor..........................................................................................................................................17
 Impresora.....................................................................................................................................17
 Dispositivos de entrada y salida (mouse, teclado).................................................................17
1.9.1.2. CLIENTE..............................................................................................................................17
- Disco duro de 80GB...................................................................................................................17
- Memoria RAM 1GB.....................................................................................................................17
- Procesador Intel Pentium IV de 2.0GHz..................................................................................17
- Puertos USB................................................................................................................................17
- Tarjeta de video de 32 MB.........................................................................................................17
- Unidad lectora de DVD..............................................................................................................17
- Monitor..........................................................................................................................................17
- Impresora.....................................................................................................................................17
- Dispositivos de entrada y salida (mouse, teclado).................................................................17
1.9.1.3. OTROS DISPOSITIVOS....................................................................................................18
1.9.2. SOFTWARE.............................................................................................................................18
1.9.2.1. Servidor................................................................................................................................18
- Sistema operativo Windows XP, Vista, Seven o Windows 8.................................................18
- Motor de base de datos MySQL...............................................................................................18
- Máquina virtual Java JDK para lenguaje de programación Net Beans...............................18
- Procesador de texto (Microsoft Word, Notepad++)................................................................18
1.9.2.2. Cliente...................................................................................................................................18
- Sistema operativo Windows XP, Vista, Seven o Windows 8.................................................18
- Motor de base de datos MySQL...............................................................................................18
- Máquina virtual Java JDK para lenguaje de programación Net Beans...............................18
- Procesador de texto (Microsoft Word, Notepad++)................................................................18
1.9.2.3. Otro software adicional.......................................................................................................18
- Architect Enterprise versión 8...................................................................................................18
- Microsoft Word versión 2010.....................................................................................................18
- Smartvoice Recorder para android...........................................................................................18
1.9.3. DATOS......................................................................................................................................18
- Nombre del empleado................................................................................................................19
- C.I..................................................................................................................................................19
- Dirección......................................................................................................................................19
- Teléfono........................................................................................................................................19
- Cargo............................................................................................................................................19
- Nombre.........................................................................................................................................19
- C.I..................................................................................................................................................19
- Dirección......................................................................................................................................19
- Teléfono........................................................................................................................................19
- Email.............................................................................................................................................19
- Nombre del propietario...............................................................................................................19
- Nombre de la mascota...............................................................................................................19
- Color.............................................................................................................................................19
- Raza.............................................................................................................................................19
1.9.4. PROCESOS.............................................................................................................................19
-Proceso de Gestión de Clientes......................................................................................................19
-Proceso de Gestión de Mascotas...................................................................................................19
-Procesos de gestión de inventarios................................................................................................19
-Proceso de Recibo............................................................................................................................19
-Proceso de Diagnóstico....................................................................................................................19
-Proceso de Gestión de Servicios....................................................................................................19
1.9.5. GENTE/USUARIO..................................................................................................................19
- Administrador...............................................................................................................................19
- Empleado.....................................................................................................................................19
- Cliente..........................................................................................................................................19
- Proveedor.....................................................................................................................................19
- Promotor.......................................................................................................................................19
1.9.6. DOCUMENTO.........................................................................................................................20
- Guía para el manejo del software.............................................................................................20
- Licencias que también proporciona información....................................................................20
- Planilla de Orden de Trabajo.....................................................................................................20
1.10 TECNOLOGIA PARA EL DESARROLLO DEL SOFTWARE................................................20
1.10.1 Estrategia para el desarrollo del software...........................................................................20
1.10.2 Metodología para el desarrollo del software.......................................................................20
1.10.2.1 Características del PUDS..................................................................................................20
- Inicio.............................................................................................................................................20
- Elaboración..................................................................................................................................20
- Construcción................................................................................................................................20
- Transición.....................................................................................................................................20
1.10.2.2 Características de UML......................................................................................................21
1.10.3 HERRAMIENTAS DE DESARROLLO.................................................................................21
1.10.3.1 Software...............................................................................................................................21
- Sistemas operativos...................................................................................................................21
Windows...............................................................................................................................................21
- Sistemas de Aplicación..............................................................................................................21
NetBeans IDE 7..................................................................................................................................21
UML......................................................................................................................................................21
- Microsoft Word............................................................................................................................21
1.10.3.2 Hardware..............................................................................................................................21
- PC con procesador: Intel(R) CORE(TM) 2 DUO 2.93GHz....................................................21
- Memoria instalada (RAM) de 1 GB...........................................................................................21
1.11 POSIBLES COSTOS..................................................................................................................21
1.12 Posibles Beneficios.....................................................................................................................22
1.12.1. Tiempo..................................................................................................................................23
1.12.2. Esfuerzo...............................................................................................................................23
1.12.3. Costos...................................................................................................................................23
1.13 POSIBLES CLIENTES...............................................................................................................23
2. MARCO TEORICO.........................................................................................................................24
2.1. Ciclo de Vida PUDS................................................................................................................24
2.2. Flujos de Trabajo.................................................................................................................24
2.2.1. Requisitos.........................................................................................................................25
2.2.2. Fases................................................................................................................................29
2.3. Concepto de UML...............................................................................................................32
2.4. Vocabulario de UML...........................................................................................................33
3. MÉTODO DE REQUERIMIENTOS - MÉTODO ISHIKAWA.....................................................35
3.1. IDENTIFICAR LISTA DE PROBLEMAS..................................................................................35
3.1.1. LISTA DE PROBLEMAS........................................................................................................35
3.2. DEPURAR PROBLEMA............................................................................................................36
Justificación.............................................................................................................................................37
3.3. LISTA DE PROBLEMAS FINALES...........................................................................................37
3.4. IDENTIFICAR PROPIETARIOS DE PROBLEMAS................................................................38
Lista de propietarios...............................................................................................................................38
Identificar propietarios de problemas...................................................................................................38
3.5. ANALIZAR PROBLEMAS..........................................................................................................42
3.6. Diseño Grafico.............................................................................................................................43
3.7. Identificar Categorias..................................................................................................................43
3.7.1. Descripcion de cada categoria..............................................................................................44
3.8. Diagrama Causa/Efecto.............................................................................................................45
4. MODELO DE DOMINIO.................................................................................................................46
4.1. Identificar clases y categorías...................................................................................................46
4.2. Identificar Relaciones entre Clases..........................................................................................51
4.3. DISEÑAR EL DIAGRAMA DE CLASES DEL MODELO DE DOMINIO...............................58
4.4. DISEÑO DE DATOS LÓGICOS................................................................................................59
4.4.1. DIAGRAMA DE CLASES.......................................................................................................59
4.5. MAPEO.........................................................................................................................................60
4.6. DISEÑO FÍSICO.........................................................................................................................63
PERSONA...........................................................................................................................................63
PERSONAL.........................................................................................................................................63
CARGO................................................................................................................................................63
CLIENTE..............................................................................................................................................63
PROVEEDOR.....................................................................................................................................63
PROMOTOR.......................................................................................................................................63
MASCOTA...........................................................................................................................................63
RAZA....................................................................................................................................................64
ANIMAL................................................................................................................................................64
SERVICIO............................................................................................................................................64
PROXIMA CONSULTA.......................................................................................................................64
RECEPCION.......................................................................................................................................65
RECIBO................................................................................................................................................65
DIAGNOSTICO...................................................................................................................................65
DETALLEDIAGNOSTICO..................................................................................................................65
TRATAMIENTO...................................................................................................................................66
EVOLUCION.......................................................................................................................................66
RECETA...............................................................................................................................................66
PEDIDO................................................................................................................................................67
PRODUCTO........................................................................................................................................67
DETALLEVENTA.................................................................................................................................67
DETALLEDELPEDIDO.......................................................................................................................67
PRODUCTOS UTILIZADOS.............................................................................................................68
POLITICADEDEVOLUCION.............................................................................................................68
DEVUELTO..........................................................................................................................................68
TIPO DE MEDICAMENTOS..............................................................................................................69
DESECHADO......................................................................................................................................69
ALIMENTO...........................................................................................................................................69
ARTICULOS........................................................................................................................................69
MEDICAMENTOS...............................................................................................................................70
4.7. SCRIPT BASE DE DATOS VETERINARIA “EL PRADO”......................................................70
4.8. DIAGRAMA RELACIONAL......................................................................................................131
5. MODELO DE NEGOCIOS...........................................................................................................132
5.1. DIAGRAMA DE ACTIVIDAD...................................................................................................132
Son similares a los diagramas de flujo de otras metodologías OO. En realidad se corresponden
con un caso especial de los diagramas de estado donde los estados son estados de acción
(estados con una acción interna y una o más transiciones que suceden al finalizar esta acción,
o lo que es lo mismo, un paso en la ejecución de lo que será un procedimiento) y las
transiciones vienen provocadas por la finalización de las acciones que tienen lugar en los
estados de origen. Siempre van unidos a una clase o a la implementación de un caso de uso o
de un método (que tiene el mismo significado que en cualquier otra metodología OO). Los
diagramas de actividad se utilizan para mostrar el flujo de operaciones que se desencadenan
en un procedimiento interno del sistema...........................................................................................132
5.1.1. GESTIÓN DE DIAGNOSTICO............................................................................................132
5.1.2. GESTIÓN DE PEDIDO........................................................................................................133
5.1.3. GESTIÓN DE CONSULTAS................................................................................................133
5.1.4. GESTIÓN DE COMPRA......................................................................................................134
6. Flujo de Trabajo: Requisitos........................................................................................................134
6.1. LISTAR CASOS DE USO E IDENTIFICAR ACTORES.......................................................134
6.1.1. LISTA DE ACTORES............................................................................................................134
6.1.2. LISTA DE CASOS DE USO.................................................................................................135
6.2. PRIORIZACIÓN DE CASOS DE USO...................................................................................135
6.3. DETALLAR CASOS DE USO..................................................................................................137
6.4. Unificar cada caso de Uso.......................................................................................................160
3.6. Detallar relación de cada caso de uso...................................................................................161
3.7. PROTOTIPOS...........................................................................................................................167
3.7.1. Formularios............................................................................................................................167
7. FLUJO DE TRABAJO: Analisis...................................................................................................182
7.1. Análisis de Arquitectura............................................................................................................182
7.1.1. Identificar Paquetes..............................................................................................................182
7.1.2. Vista de paquete...................................................................................................................183
7.1.3. Encapsular de Casos de Uso..............................................................................................186
7.2. Analizar cosos de Uso..............................................................................................................187
7.3. Análisis de Paquetes................................................................................................................190
8. Flujo de Trabajo: Diseño..............................................................................................................191
8.1. Arquitectura Fisica: Modelo de Despliegue...........................................................................191
8.2. Arquitectura Logica: Diagrama Organizado en capaz.........................................................191
8.3. Procedimientos Almacenados.................................................................................................191
8.4. Triggers = Disparadores...........................................................................................................200
8.5. Bitacoras....................................................................................................................................206
9. FLUJO DE TRABAJO: Implementacion.....................................................................................211
9.1. Modelo de arquitectura: Sistema Principal............................................................................211
9.2. Arquitectura de Subsistemas..................................................................................................211
9.2.1. Paquete: PERSONA.............................................................................................................211
9.2.2. Paquete: Venta......................................................................................................................212
9.2.3. Paquete: Servicio..................................................................................................................212
9.2.4. Paquete: INVENTARIOS......................................................................................................213
9.2.5. Paquete: Reportes................................................................................................................213
9.2.6. Paquete: PACIENTE.............................................................................................................214
10. CONCLUCIONES.....................................................................................................................214
11. RECOMENDACIONES............................................................................................................214
12. Bibliografia:..............................................................................................................................215
13. ANEXOS....................................................................................................................................215
1. PERFIL
1.1Introduccion

El Sistema de Información para la Administración de Servicios e Inventarios de la


VETERINARIA ”EL PRADO” es una herramienta única que permite administrar
los servicios de una veterinaria, inventario de productos para mascotas (pet
shop), cirugías, desparasitaciones, peluquería canina, baños antiparasitarios,
medicamentos, vacunas y mucho más, sin necesidad de habilidades especiales y
con solo unos pocos clics. Este sistema de información te da el poder de
controlar la administración de servicios de tu veterinaria, todo a través de una
sencilla interface. No necesitas ser un genio de la tecnología, hemos incluido
prácticamente todo lo que necesitas para controlar la gestión de servicios de tu
veterinaria, no hay nada en el mercado más poderoso que esta herramienta.

Deja de administrar tu Veterinaria a la manera "tradicional" o en forma manual.

Este sistema de información es un software especialmente diseñado para


administrar los Servicios de una Veterinaria.

Es una poderosa herramienta que permite controlar de una manera muy fácil y
eficiente toda la administración de servicios clínicos e inventarios de la
veterinaria, eliminado así la necesidad de invertir mucho tiempo en tareas
tediosas para poder dedicarlo a actividades verdaderamente productivas.

El Sistema de Información para la Administración de Servicios clínicos e


Inventarios de la VETERINARIA “EL PRADO” es un software que permitirá una
mejor y más rápida atención al cliente, con este sistema se tendrá un mejor
manejo de la información y con una mayor fluidez. Se podrá obtener una
información al instante de los registros de las mascotas, accesorios para
mascotas, tratamientos y cuidados realizados, clientes, inventario, facturas y
recibos. Asimismo este sistema de información ayudará a que la empresa se
desarrolle de manera progresiva, alcanzando máximos niveles de eficiencia y
eficacia; aportando con esto al desarrollo de la región.

1.2 Antecedentes

La veterinaria ”EL PRADO” lleva más de 20 años brindando servicios clínicos


y quirúrgicos para toda clase de animales domésticos.
La empresa fue creada por el año 1992 por el doctor Gonzalo Gonzales
aunque lo tuvo el negocio a su cargo por muy poco tiempo vendiéndolo a la
doctora María Armelia el mismo año de su creación quien fue propietaria
hasta 1997 cuando lo vendió a la doctora Nelsi Gumucio. Finalmente la
doctora Ana Maria Chavez Justiniano compro la veterinaria el 2007 y hasta el
día de hoy es la única propietaria

Desde que fue creada la veterinaria no a cambiado su ubicación:

1.3 Estructura Organizacional


Dueña: Dra. Ana María Chávez

Es la encargada de la administración de la veterinaria”EL PRADO”, a su vez


también cumple el rol de médico veterinario

Doctores: Karmen Perez

Son los encargados de realizar tratamientos médicos, cirugías, operaciones


etc

Auxiliar: Liliana Paz

Es la encargada de asistir a los doctores en cirugías, tratamientos estéticos


de las mascotas y también en la venta de los medicamentos y productos
1.4 Justificación

En el país existe una gran diversidad de animales además estadísticamente


cada familia tiene por lo menos una mascota que necesita atención ya sea
especializada, estética u operaciones necesarias ya que las mascotas se han
convertido en un miembro más de la familia.

Debido a lo anteriormente mencionado existen en el país centros médicos


especializados en el cuidado de las mascotas, tomando en cuenta el avance
de la tecnología y su influencia en el desarrollo de las diferentes empresas o
negocios.

Ya que el manejo de la información de la veterinaria “EL PRADO” es de


forma manual siendo un trabajo laborioso y estresante, además causando
una lenta atención al cliente. Por todo ello es que se ha decidido desarrollar
un “Sistema de Información para la Administración de Servicios clínicos e
Inventarios de la veterinaria “EL PRADO” para así optimizar la eficacia y
eficiencia de los servicios que ésta empresa realiza. Para que con ello la
empresa tenga un manejo rápido y fluido de la información, satisfaga las
necesidades de los clientes, y cumpla todas las expectativas requeridas en
cuanto a brindar servicios de calidad se refiere.

1.5 Descripción del problema

Actualmente, el la veterinaria “EL PRADO” no cuenta con herramienta


tecnológica que le permita la fácil administración y gestión de: clientes,
mascotas, servicios, inventario, recibo y Diagnostico.

En un comienzo no se veía la necesidad de una herramienta tecnológica,


debido a que daba pocos servicios. Hoy en día con el crecimiento y el
aumento de la demanda de los trabajos que realiza la veterinaria, requiere un
sistema de información para la administración de sus servicios.

Para describir la problemática que surge en la empresa, lo podemos


mencionar en los siguientes procesos:

1.5.1. Proceso de Gestión de Clientes

El administrador registra al cliente anotando el nombre, ci y teléfono de


referencia

Hay diversos problemas en este proceso de los cuales mencionaremos


algunos:
 La empresa no puede llevar un control preciso sobre el número de
mascotas que posee un cliente
 Muchas veces hay pérdidas de datos de los clientes que son
registrados.

 En algunas ocasiones al internar una mascota, no se puede contactar


con el dueño por perdida de datos al registrar manualmente

 No hay una obtención rápida de la información ante cualquier reclamo


o exigencia del cliente.

1.5.2. Proceso de Gestión de Mascotas

El administrador registra las mascotas que son ingresados en la


veterinaria anotando el nombre del propietario así como de los datos de la
mascota como ser: especie, color, edad, raza, sexo, tamaño etc.

Hay diversos problemas en este proceso de los cuales mencionaremos


algunos:

 La empresa no puede llevar un control preciso sobre las mascotas que


atienden
 Muchas veces hay pérdidas de datos de las mascotas que son
atendidas.

 Existen diferencias para propietarios que tienen más de una mascota


en tratamiento.

 No hay una obtención rápida de la información ante cualquier reclamo


o exigencia del cliente.

1.5.3. Procesos de gestión de inventarios

No cuenta con un buen control de las ventas que se realizan al día y esto
provoca que a veces ocurra desorden de la documentación por falta de
tiempo de los vendedores, por lo que puede ocurrir pérdida de dinero y/o
productos.
Utilizan la observación para darse cuenta cuando un producto está
faltando o se dan cuenta al final del día cuando revisan sus anotaciones.
Esto provoca que al momento de realizar la compra, no se tenga
conocimiento de la cantidad exacta de cada producto que hay en cada
momento por lo que a veces se realiza la compra de productos
innecesarios. Tomando en cuenta el intervalo necesario de tiempo hasta
su correspondiente vencimiento.
Es moroso para el vendedor, al momento de realizar una venta, el tener
que verificar la existencia de dicho producto, debido que son muchos los
productos que se ofrecen, para así poder realizar la venta y tal situación
resulta incomodo para el cliente cuando este no existe.
Muchas veces existen productos que ofrece la veterinaria, y están
vencidos o la cantidad ofrecida del producto es menor a la que se
encuentra en el almacén, lo cual significa que es un problema muy serio
para la veterinaria y a veces incómodo para el cliente ya que ellos muchas
veces llegan a extraviar las facturas o nota de venta que se les da por el
pago del producto, si el almacén también pierde los documentos que
tenía como referencia de la venta realizada, está perdida es irreparable.
No se puede realizar el cambio de producto cuando se pierdan
documentos, al no contar con un sistema que pueda verificar la venta de
dicho producto. Por tanto viendo este caso que se puede presentar en
cualquier momento en la empresa, sería un grave problema es así que
vemos por conveniente implementar un sistema que sea confiable y
rápido.
A veces ocasiona confusión en los precios reales del producto, ya que
estas se realizan de forma manual con la lista de precios que no están
actualizados constantemente, existiendo ocasiones donde algunos
productos están en ofertas, etc.
Otro problema es que varía el precio de los productos en venta, tales
motivos como: devaluación de productos, economía del país, cambio de
dólar, etc.
Al no tener un mejor control sobre las ventas de los productos al final del
día o del mes no se tiene la cifra exacta de las ganancias o pérdidas que
se haya obtenido durante ese periodo de tiempo.
Cuando se realiza una compra de acuerdo al producto se pide por lote o
se lo compra por unidad. Ya que cada lote tiene una misma fecha de
fabricación y vencimiento, al vencerse el mismo el laboratorio hace el
respectivo desalojo del producto del mercado.

Algunos laboratorios tienen la política de reponer los productos que ya


hayan caducado, tomando en cuenta si se encuentra dentro de la nómina
de productos que ellos pueden reponer 1 a 3 meses según la política del
proveedor.
Al final del día el administrador hace una inspección de las herramientas
de trabajo, de los productos y medicamentos.

Hay diversos problemas en este proceso de los cuales mencionaremos


algunos:

 No existe un inventario adecuado sobre las herramientas,


equipos que posee.

 No hay control sobre que herramientas, equipos usa cada


doctor en un día de trabajo.

 Hay riesgo de pérdidas y daños de las herramientas,


equipos.

1.5.4. Proceso de Recibo

Al final de un servicio el administrador le hace un recibo al cliente


describiendo el monto total, concepto o detalle, nombre del cliente, etc.

Hay diversos problemas en este proceso de los cuales mencionaremos


algunos:

 No hay exactitud acerca de que servicios han sido entregados


con recibo y cuáles no.

 No existe control sobre a qué servicios se le han realizado


descuentos y a cuáles no ya sea por uno u otros motivos.

 No hay una obtención rápida de la información ante cualquier


reclamo o exigencia del cliente.

 No se puede llevar el control de recibos ya sea en un día,


semana, mes o año.

1.5.5. Proceso de Diagnóstico

En el proceso de diagnóstico el cliente llega con su mascota y es atendido


por un veterinario, el cual hace la revisión de la mascota indicando que
problemas médicos presenta la mascota. Seguido esto el doctor pasa a
hacer una cotización del servicio incluyendo el costo de los medicamentos
y tratamientos.
El principal problema es que los datos tanto del diagnóstico como de la
cotización no se guardan y casi siempre hay pérdidas de éstos datos.

1.5.6. Proceso de Gestión de Servicios.

Después de que un mascota ingresa a la veterinaria para ser atendido, un


doctores encarga de darle servicio médico pudiendo éste contar con la
ayuda de un auxiliar. Si el trabajo es sencillo lo pueden realizar solamente
por el auxiliar.

Hay diversos problemas en este proceso de los cuales mencionaremos


algunos:

 No hay un control sobre qué servicios brinda cada doctor o auxiliar


en un día laboral.
 El administrador no puede llevar la información de todos los
servicios que brinda a lo largo de un día, semana, mes o año.

 No hay una obtención rápida de la información ante cualquier


reclamo o exigencia del cliente.

1.6 Formulación del problema

Con el proceso de diagnóstico se ofrecerá al cliente el costo del servicio así


como los problemas médicos que tiene su mascota.
Con los procesos de gestión de mascotas y servicios se guardarán todos los
datos de la mascota y sobre el tratamiento que se le está dando.
Con el proceso de control de inventario se llevara a cabo la verificación de la
fechas de vencimiento de los medicamentos previniendo al administrador uno
o tres meses antes de la fecha de expiración de un producto
Con el proceso de control de recibos se controlaran todos los recibos y
facturas emitidas.
Con el proceso de Gestion de Servicios se ofrecerá al cliente todos los
servicios disponibles para su mascota ya sea: Cirugia, Desparacitaciones,
fumigaciones, Peluqueria Canina , Baños y Pet shop

1.7 Objetivos
1.7.1 Objetivo general
Desarrollar un Sistema de Información para la Gestión de Servicios Clínicos
e Inventarios de la “Veterinaria El Prado”

1.7.2 Objetivos específicos

 Identificar requisitos del software a partir de los requerimientos del cliente


logrando esto con entrevistas al cliente y utilizando luego un modelo de
negocio o un modelo de dominio.
 Analizar los requisitos del sistema aplicando el proceso unificado con
UML a través de diagramas de casos de usos, diagramas de clases.
 Diseñar una base de datos con el SGBD SQL SERVER 2008.
 Implementar el diseño en el lenguaje de programación Java Netbeans
 Realizar pruebas para detectar errores y comparar el nivel de los
requerimientos que espera el cliente.

1.8 Alcance

Este proyecto se realiza para mejorar el funcionamiento de la Veterinaria “EL


PRADO” así también para llevar el control de servicios, ventas, compras
realizadas e inventario de los productos de la misma.

 Gestión de cliente

 Asignar un código por cada cliente de una mascota


 Registrar los datos personales del cliente

 Gestión de mascota

 Asignar un código por cada mascota atendida en la veterinaria


 Registras las características de la mascota (color, raza, tamaño,
especie, Fecha de nacimiento, Fecha de Registro, nombre)
 Registrar el control de vacunas de la mascota
 Registrar algún tratamiento por alguna dolencia o malestar que
halla tenido la mascota
 Registrar los diagnósticos por las afecciones que padece la
mascota

 Gestión de Proveedor

 Asignar un código único a cada Proveedor


 Registrar el nombre.
 Registrar la Dirección.
 Registrar el Teléfono.
 Registrar la Fecha de Registro

 Gestión del Promotor

 Registrar el Codigo del Promotor


 Registrar el Nombre
 Gestión de Compra

 Asignar un código por cada compra realizada


 Registrar Productos que se están siendo comprados
 Registrar la cantidad de la mercadería que se compró.
 Calcular el Costo total que se cancela por esa cantidad.
 Registrar la fecha en la que se realiza dicha compra.
 Actualizar inventario por compra.

 Gestión de Ventas

 Asignar un código por cada venta realizada


 Registrar la cantidad de la mercadería que se vendió.
 Calcular el monto total que se adquirió por las ventas.
 Registrar la fecha en la que se realiza dicha venta.
 Actualizar inventario por cada venta.

 Gestión de servicios

 Se asigna un código único por cada servicio ofertado.


 Registrar el precio de cada servicio.
 Registrar los tipos de Servicios

 Gestión de inventario

 Registrar todos los datos y tipo de producto que la veterinaria tiene


en almacén.
 Mostrar la cantidad actualizada de los productos que ofertados.
 Llevar un control de cantidades del ingreso y egreso de los
productos que son adquiridos.
 Se llevará registro de los productos que han sido dados de baja (por
vencimiento o devolución) registrando la fecha, cantidad de
producto y el proveedor al que se realizó la devolución.
 Se registrara Productos desechados por vencimiento, malogrados

 Registrar Recepción para Prestar Servicios


 Asignar un código único a cada Recepción
 Registrar los servicios que fueron prestados
 Registrar productos utilizados en un servicio
 Registrar una próxima consulta si lo amerita
 Calcular el monto total a cancelar
 Registrar el pago de la Recepción
1.9 ELEMENTOS DEL SISTEMA BASADO EN COMPUTADORAS
1.9.1. HARDWARE
1.9.1.1. SERVIDOR

Los requisitos mínimos del hardware para que el sistema de información


funcione adecuadamente son:

 Disco duro de 160GB.


 Memoria RAM 2GB.
 Procesador Intel Pentium IV de 2.0GHz.
 Puertos USB.
 Tarjeta de video de 32 MB.
 Unidad lectora de DVD.
 Monitor.
 Impresora.
 Dispositivos de entrada y salida (mouse, teclado).
1.9.1.2. CLIENTE

Los requisitos mínimos del hardware para que el sistema de información


funcione adecuadamente son:

- Disco duro de 80GB.


- Memoria RAM 1GB.
- Procesador Intel Pentium IV de 2.0GHz.
- Puertos USB.
- Tarjeta de video de 32 MB.
- Unidad lectora de DVD.
- Monitor.
- Impresora.
- Dispositivos de entrada y salida (mouse, teclado).

1.9.1.3. OTROS DISPOSITIVOS

Algunos de los dispositivos que se podrían llegar a utilizar son los


siguientes:
- Celulares Smartphone con conexión internet
- Router para conexión a internet del sistema
- Un swicht para la comunicación en red en la clínica
1.9.2. SOFTWARE
1.9.2.1. Servidor
El software mínimo requerido para el funcionamiento del
sistema es:
- Sistema operativo Windows XP, Vista, Seven o Windows 8.
- Motor de base de datos MySQL.
- Máquina virtual Java JDK para lenguaje de programación
Net Beans.
- Procesador de texto (Microsoft Word, Notepad++).
1.9.2.2. Cliente
El software mínimo requerido para el funcionamiento del
sistema es:
- Sistema operativo Windows XP, Vista, Seven o Windows 8.
- Motor de base de datos MySQL.
- Máquina virtual Java JDK para lenguaje de programación
Net Beans.
- Procesador de texto (Microsoft Word, Notepad++).
1.9.2.3. Otro software adicional

Para el desarrollo del sistema de información se a utilizado


algunas herramientas adicionales
- Architect Enterprise versión 8.
- Microsoft Word versión 2010.
- Smartvoice Recorder para android

1.9.3. DATOS

Los datos los conseguiremos a través entrevistas a personal de la empresa,


además de los anexos que nos proporcionarían en dicha institución (Recibos,
notas de ventas, etc.).

Datos del personal:

- Nombre del empleado.


- C.I.
- Dirección.
- Teléfono.
- Cargo.

Datos del cliente:


- Nombre
- C.I.
- Dirección.
- Teléfono.
- Email.

Datos de la mascota:

- Nombre del propietario.


- Nombre de la mascota.
- Color.
- Raza.
1.9.4. PROCESOS

-Proceso de Gestión de Clientes


-Proceso de Gestión de Mascotas
-Procesos de gestión de inventarios
-Proceso de Recibo
-Proceso de Diagnóstico
-Proceso de Gestión de Servicios

1.9.5. GENTE/USUARIO

Son todas aquellas personas que se involucran directa o indirectamente con


la empresa:
- Administrador.
- Empleado.
- Cliente.
- Proveedor.
- Promotor.

Administrador: Es el encargado de controlar toda la información de la


empresa, a su vez es el dueño de la empresa.
Cliente: Es la persona que solicita los servicios de la empresa
Empleado: Son la mano de obra de la empresa los cuales desempeñan los
diferentes servicios que la empresa proporciona al cliente.
Proveedor: Son las empresas que proporcionan los diferentes productos
farmacéuticos y/o artículos, ya sean estéticos u de limpieza.
Promotor: Son la mano de obra de la empresa de los que nos provee algunos
de los artículos que existen en la clínica veterinaria.
1.9.6. DOCUMENTO

- Guía para el manejo del software.


- Licencias que también proporciona información.
- Planilla de Orden de Trabajo.

1.10 TECNOLOGIA PARA EL DESARROLLO DEL SOFTWARE


1.10.1 Estrategia para el desarrollo del software

En el diseño del proyecto se empleará el proceso unificado de desarrollo de


software por su naturaleza interactiva e incremental con sus fases: Inicio,
Elaboración, Construcción y Transición del proceso unificado. El proceso
unificado utiliza el lenguaje unificado de modelado (UML) en cada uno de sus
modelos.
1.10.2 Metodología para el desarrollo del software
1.10.2.1 Características del PUDS

Al igual que con cualquier otro modelo de desarrollo, del Proceso


Unificado también se pueden destacar ciertas características como
ser:

Iterativo e incremental.
El Proceso Unificado es un marco de desarrollo compuesto de cuatro
fases:
- Inicio.
- Elaboración.
- Construcción.
- Transición.

1.10.2.2 Características de UML

En el desarrollo del proyecto se empleará el proceso unificado de


desarrollo de software por su naturaleza interactiva e incremental con sus
fases: Inicio, Elaboración, Construcción y Transición del proceso
unificado. El proceso unificado utiliza el lenguaje unificado de modelado
(UML) en cada uno de sus modelos.
1.10.3 HERRAMIENTAS DE DESARROLLO
1.10.3.1 Software
Un elemento de suma importancia en el desarrollo de este sistema de
gestión es precisamente el software. Utilizaremos los siguientes: Sistemas
operativos, Sistemas de aplicación, Sistemas de Base de datos.
- Sistemas operativos
Windows.

- Sistemas de Aplicación
NetBeans IDE 7.
UML.
- Microsoft Word.
1.10.3.2 Hardware

En cuanto a hardware para desarrollar el sistema de gestión


utilizaremos una computadora que cuente con los siguientes
requisitos mínimos:
- PC con procesador: Intel(R) CORE(TM) 2 DUO 2.93GHz
- Memoria instalada (RAM) de 1 GB.
1.11 POSIBLES COSTOS

Para el uso del Sistema se necesitará contar con mínimo dos equipos de
computación, uno que será para el proceso de asistencia de empleado, y
la otra será para llevar el control en almacén (o inventario).
RECURSOS
Las computadoras deben cumplir con las siguientes características que
describimos a continuación:
RECURSOS DE HARDWARE
Recursos para la implementación de la red LAN $ 200
Costos del sistema de información $ 600
RECURSOS DE SOFTWARE Y HARDWARE

SUMANDO EL TOTAL DE TODOS LOS COSTOS, SE NECESITARA


INVERTIR UN TOTAL DE $US 4846,5 PARA LA PUESTA EN MARCHA
DEL SISTEMA.

1.12 Posibles Beneficios


El rendimiento del sistema debe ser lo más óptimo ya que los usuarios
trabajan directamente con los clientes, por lo que el tiempo de espera debe
ser mínimo, los resultados deberán ser rápidos y consistentes, a mayor
detalle mejor funcionamiento.

1.12.1. Tiempo

Evitar pérdida de tiempo recopilando información que ya está almacenada en


bases de datos que se pueden compartir.
Aumento de la productividad gracias a la liberación de tiempos en búsqueda
y generación de información repetida.

1.12.2. Esfuerzo

Una Interfaz sencilla y de rápido acceso, para el mejor entendimiento del


Usuario.
Generación de informes e indicadores, que permiten corregir fallas difíciles
de detectar y controlar con un sistema manual.

1.12.3. Costos

Costos reducidos y mejores manejo del inventario.


La administración utiliza la información gestionada por nuestro sistema para
identificar las tendencias de ventas de autopartes, mejorar la variedad de
productos, eliminar del inventario los productos que se desplazan con
lentitud.
Brindar la información en tiempo real de cualquier producto del inventario.
1.13 POSIBLES CLIENTES

Tenemos a la Empresa Clínica Veterinaria (Servicios de Consultas médicas,


Consultas y Diagnostico, Pet Shop) como cliente seguro ya que la
Propietario necesita un software para poder administrar su empresa de
manera más eficiente, por este motivo requiere de nuestros servicios como
desarrolladores para analizar su caso de estudio y llevar a cabo el proyecto.
La Clínica Veterinaria El Prado nos ofreció ayuda en ciertos aspectos del
proyecto, a modo de guiarnos en algunas etapas. Si bien no es un cliente
seguro, el trabajo que realicemos lo definirá.
Entonces como posibles clientes tenemos a las empresas:
La Veterinaria Servet.
Veterinaria La Colorada.

2. MARCO TEORICO

2.1. Ciclo de Vida PUDS

El Proceso Unificado es conjunto de actividades necesarias para transformar los requisitos del usuario en
un sistema de software. Está dirigido por casos de uso, centrado en la arquitectura, y es iterativo e
incremental.

Un caso de uso es un fragmento de funcionalidad del sistema que proporciona un resultado de valor a un
usuario. Los casos de uso modelan los requerimientos funcionales del sistema. El concepto de
arquitectura software incluye los aspectos estáticos y dinámicos más significativos del sistema. La
arquitectura es una vista del diseño completo con las características más importantes resaltadas,
dejando los detalles de lado. Es práctico dividir el esfuerzo de desarrollo de un proyecto de software en
partes más pequeñas o mini proyectos. Cada mini proyecto es una iteración que resulta en un
incremento. Las iteraciones hacen referencia a pasos en el flujo de trabajo, y los incrementos a
crecimientos en el producto.

Las iteraciones deben estar controladas. Esto significa que deben seleccionarse y ejecutarse de una
forma planificada.

2.2. Flujos de Trabajo


Cada fase se subdivide en iteraciones. En cada iteración se desarrolla en secuencia un conjunto de
disciplinas o flujos de trabajos.
Cada disciplina o flujo de trabajo es un conjunto de actividades relacionadas vinculadas a un área
específica dentro del proyecto total. Las más importantes son: Requisitos, Análisis, Diseño,
Implementación y Prueba.

El agrupamiento de actividades en disciplinas es principalmente una ayuda para comprender el proyecto


desde la visión tradicional en cascada.

Los flujos de trabajo desarrollan modelos desde el modelo de casos de uso hasta el modelo de pruebas.

Flujos de Trabajo Modelos

Requisitos Modelo de Caso de Usos

Análisis Modelo de Análisis

Diseño Modelo de Diseño – Modelo de despliegue

Implementación Modelo de Implementación

Pruebas Modelo de Prueba

2.2.1. Requisitos
Este flujo de trabajo está representado por el Modelo de Caso de Usos. El objetivo de este flujo de
trabajo es determinar los requisitos funcionales del sistema, y luego plasmarlos a través de casos de uso
en un Modelo de Casos de Usos. El propósito fundamental del flujo de trabajo de los requisitos es guiar
el desarrollo hacia el sistema correcto.

Hay diferentes puntos de partida para la captura de requisitos. En algunos casos comenzamos haciendo
un modelo del negocio o partimos de uno ya desarrollado. En otros casos si es un sistema acotado que
no da soporte al negocio podemos partir de un modelo de objetos sencillo como un modelo del dominio.
En otros casos el cliente puede ya haber desarrollado una especificación completa de requisitos no
basada en objetos, de la cual podemos partir.

El modelo de casos de uso ayuda al cliente, a los usuarios, y a los desarrolladores a llegar a un acuerdo
sobre cómo utilizar el sistema. Cada tipo de usuario del sistema se representa mediante un actor que
define un rol de utilización del sistema.

Los actores modelan el entorno del sistema, y los casos de uso especifican el sistema. Un diagrama de
casos de uso describe parte del modelo de casos de uso y muestra un conjunto de casos de uso y
actores asociados.
Actividades Trabajador Resp. De Artefactos (Entradas)
Artefactos(Salida)

1º Encontrar actores y Analista de Modelos de Casos de - Modelo de Negocio o del


casos de uso sistemas Uso Dominio.
- Requisitos adicionales
2º Priorizar Casos de Uso Descripción de la -Modelo de Caso de Uso
arquitectura
Arquitecto - Requisitos adicionales.

- Glosario

3º Detallar Casos de Uso Especificador de Casos de -Modelo de Caso de Uso


Casos de Uso Uso(Detallado)
- Requisitos adicionales.

- Glosario

4º Encontrar el modelo de Analista de Modelo de Casos de Modelo de Caso de Uso


Casos de Uso Sistemas Uso (estructurado)
- Requisitos adicionales.

- Caso de Uso(detallado)

- Glosario

5º Crear prototipos Diseñador de Prototipo de interfaz de Modelo de Caso de Uso


interfaz de usuario Interfaz de Usuario usuario
- Requisitos adicionales.

- Caso de Uso(detallado)

- Glosario

 Artefactos
- Modelo de casos de usos: un modelo de casos de uso es un modelo del sistema que
contiene actores, casos de uso y sus relaciones.
- Actor, el modelo de casos de uso describe lo que hace el sistema para cada tipo de usuario.
Cada uno de éstos se representa mediante uno o más actores. Los actores suelen
corresponderse con trabajadores (o actores del negocio).
- Caso de Uso, los casos de uso son fragmentos de funcionalidad que el sistema ofrece para
aportar un resultado de valor para sus actores. Para cada caso de uso debe detallarse su flujo
de sucesos. El flujo de sucesos puede plasmarse en forma textual y describe como interactúa
el sistema con los actores cuando se lleva a cabo un caso de uso. También pueden vincularse
a un caso de uso requisitos no funcionales específicos del caso de uso.

- Descripción de la Arquitectura, la descripción de la arquitectura contiene una vista de la


arquitectura del modelo de casos de uso, que representa los casos de uso significativos para
la arquitectura.
- Glosario, Podemos utilizar un glosario para definir términos comunes importantes que los
analistas utilizan para describir el sistema.
- Prototipo de Interfaz de usuario, los prototipos de interfaz de usuario nos ayudan a
comprender y especificar las interacciones entre actores humanos y el sistema durante la
captura de requisitos.

 Trabajadores
- Analista de Sistema, es responsable de: el modelo de Caso de Uso, actores que contiene y
glosario.
- Especificador de Casos de Usos, asiste al analista de sistema en la descripción detallada
de caso de uso, por lo tanto, es responsable de caso de uso.
- Diseñador de Interfaz de usuario, es responsable del prototipo de interfaz de usuario.
- Arquitecto, es responsable de la descripción de la arquitectura(vista del modelo de casos de
uso).
 Actividades

Analista de Sistema Arquitecto Especificador de casos Diseñador


de De uso Interfaz

- Encontrar Actores y Casos de Uso, esta actividad es realizada para: delimitar el entorno
del sistema, identificar quien y que actores interactúan con el sistema y que funcionalidad se
espera del sistema y por ultimo capturar y definir un glosario de términos comunes esenciales
para la creación de descripciones detalladas de las funcionalidades del sistema.
Esta actividad consta de cuatro pasos, los cuales no tienen que ser ejecutados en un orden
determinado:

 Encontrar actores, depende de nuestro punto de partida, si partimos de un modelo


del negocio, el analista puede asignar un actor a cada trabajador del negocio y un actor
a cada actor del negocio (cliente) que utilizará información del sistema. En otro caso,
con o sin un modelo del dominio, el analista del sistema junto con el cliente identifica
los usuarios e intenta organizarlos en categorías representadas por actores. En ambos
casos hay que identificar actores que representan sistemas externos y los actores de
mantenimiento y operación del sistema. Los actores modelan roles.

 Encontrar Casos de Uso, cuando se parte de un modelo del negocio, se propone un


caso de uso para cada rol de trabajador que utilizará información del sistema. El
método más general es la identificación a partir del análisis de cada actor por separado.
 Describir cada caso de uso, esta descripción debe ser breve es dar una idea
general de cada caso de uso.
 Describir el modelo de Casos de Uso completo, en este paso también se
determina el glosario.

- Priorizar casos de uso, El propósito de esta actividad es priorizar cuales son los casos de
uso más importantes para abordar en las primeras iteraciones. Los resultados se recogen en
la vista de la arquitectura del modelo de casos de uso. Esta vista revisada con el jefe de
proyecto se utiliza como entrada al hacer la planificación de lo que debe desarrollarse dentro
de una iteración.
- Detallar casos de uso, El objetivo principal de detallar cada caso de uso es describir su flujo
de sucesos en detalle, incluyendo como comienza, termina, e interactúan con los actores.
Para detallar los casos de uso se usan: descripciones textuales, diagramas de transición de
estados para describir los estados de los casos de uso y las transiciones entre esos estados,
diagramas de actividad para describir transiciones entre estados con más detalle como
secuencias de acciones. Los diagramas de actividad pueden describirse como la
generalización de los diagramas de transición de estados, diagramas de interacción para
describir cómo interactúa una instancia de caso de uso con la instancia de un actor. Los
diagramas de interacción muestran el caso de uso y el actor o actores participantes. Para
cada caso de uso debe detallarse: estado inicial como precondición, cómo y cuando
comienza el caso de uso (primera acción a ejecutar), orden en que deben ejecutarse las
acciones (puede ser una secuencia numerada), cómo y cuando terminan los casos de uso,
posibles estados finales como postcondiciones, caminos de ejecución que no están permitido,
camino básico y caminos alternativos.
- Crear prototipos de interfaz de usuario, comenzamos con los casos de uso e intentamos
discernir que se necesita de las interfaces de usuario para habilitar los casos de uso para
cada actor. Hacemos un diseño lógico de la interfaz de usuario, luego creamos un modelo
físico, y desarrollamos prototipos para ilustrar como pueden utilizar el sistema los usuarios
para ejecutar los casos de uso.
- Estructurar el modelo de casos de uso, Los casos de uso identificado son estructurados
utilizando las relaciones de uso (secuencias comunes), extensiones (casos excepcionales), y
generalizaciones.

2.2.2. Fases

El Proceso Unificado se repite a lo largo de una serie de ciclos que constituyen la vida de un sistema.
Cada ciclo constituye una versión del sistema:
Cada fase termina con un hito, este se determina por la disponibilidad de un conjunto de artefactos, es
decir un conjunto de modelos o documentos que han sido desarrollados hasta alcanzar un estado
predefinido. Los hitos tienen muchos objetivos. Los directores deben tomar ciertas decisiones antes de
continuar con la siguiente fase, los hitos también sirven para controlar la dirección y el progreso del
trabajo.

 Fase de Inicio
Durante la fase de inicio se desarrolla una descripción del producto final, y se presenta el
análisis del negocio. Esta fase responde las siguientes preguntas:

· ¿Cuáles son las principales funciones del sistema para los usuarios más importantes?

· ¿Cómo podría ser la mejor arquitectura del sistema?

· ¿Cuál es el plan del proyecto y cuanto costará desarrollar el producto?

En esta fase se identifican y priorizan los riesgos más importantes. El objetivo de esta fase es
ayudar al equipo de proyecto a decidir cuáles son los verdaderos objetivos del proyecto. Puede
que todo el trabajo físico realizado en esta fase sea descartado. Lo único que normalmente
sobrevive a la fase de inicio es el incremento del conocimiento en el equipo.

Esta Fase termina con el hito de Objetivos del ciclo de vida.

Este hito es alcanzado cuando el equipo de proyectos y el cliente llegan a un acuerdo sobre:

- Cuál es el conjunto de necesidades del negocio, y que conjunto de funciones satisfacen estas
necesidades.

- Una planificación preliminar de iteraciones.


- Una arquitectura preliminar.

 Fase de Elaboración
Durante la fase de elaboración se especifican en detalle la mayoría de los casos de uso del
producto y se diseña la arquitectura. Las iteraciones en la fase de elaboración:

- Establecen una firme comprensión del problema a solucionar.

- Establece la fundación arquitectural para el software.

- Establece un plan detallado para las siguientes iteraciones.

- Elimina los mayores riesgos.

El resultado de esta fase es la línea base de la arquitectura. En esta fase se construyen


típicamente los siguientes artefactos:

- El cuerpo básico del software en la forma de un prototipo arquitectural.

- Casos de prueba

- La mayoría de los casos de uso (80%) que describen la funcionalidad del sistema.

- Un plan detallado para las siguientes iteraciones.

La fase de elaboración finaliza con el hito de la Arquitectura del Ciclo de Vida. Este hito se
alcanza cuando el equipo de desarrollo y el cliente llegan a un acuerdo sobre:

- Los casos de uso que describen la funcionalidad del sistema.

- La línea base de la arquitectura

- Los mayores riesgos han sido mitigados

- El plan del proyecto

 Fase de Construcción
Durante la fase de construcción se crea el producto. La línea base de la arquitectura crece hasta
convertirse en el sistema completo.

Al final de esta fase, el producto contiene todos los casos de uso implementados, sin embargo
puede que no esté libre de defectos.

Los artefactos producidos durante esta fase son:

- El sistema software

- Los casos de prueba

- Los manuales de usuario


La fase de construcción finaliza con el hito de Capacidad Operativa Inicial. Este hito se alcanza
cuando el equipo de desarrollo y el cliente llegan a un acuerdo sobre:

- El producto es estable para ser usado

- El producto provee alguna funcionalidad de valor

- Todas las partes están listas para comenzar la transición

 Fase de Transición
La fase de transición cubre el período durante el cual el producto se convierte en la versión beta.

Las iteraciones en esta fase continúan agregando características al software. Sin embargo las
características se agregan a un sistema que el usuario se encuentra utilizando activamente.

Los artefactos construidos en esta fase son los mismos que en la fase de construcción. El equipo
se encuentra ocupado fundamentalmente La fase de transición finaliza con el hito de
Lanzamiento del Producto. Este hito se alcanza cuando el equipo de desarrollo y el cliente
llegan a un acuerdo sobre:

- Se han alcanzado los objetivos fijados en la fase de Inicio.

- El usuario está satisfecho.

2.3. Concepto de UML


UML es una especificación de notación orientada a objetos. Se basa en las anteriores especificaciones
BOOCH, RUMBAUGH y COAD-YOURDON. Divide cada proyecto en un número de diagramas que
representan las diferentes vistas del proyecto. Estos diagramas juntos son los que representa la
arquitectura del proyecto.

Con UML nos debemos olvidar del protagonismo excesivo que se le da al diagrama de clases, este
representa una parte importante del sistema, pero solo representa una vista estática, es decir muestra al
sistema parado. Sabemos su estructura pero no sabemos que le sucede a sus diferentes partes cuando
el sistema empieza a funcionar. UML introduce nuevos diagramas que representa una visión dinámica
del sistema. Es decir, gracias al diseño de la parte dinámica del sistema podemos darnos cuenta en la
fase de diseño de problemas de la estructura al propagar errores o de las partes que necesitan ser
sincronizadas, así como del estado de cada una de las instancias en cada momento. El diagrama de
clases continua siendo muy importante, pero se debe tener en cuenta que su representación es limitada,
y que ayuda a diseñar un sistema robusto con partes reutilizables, pero no a solucionar problemas de
propagación de mensajes ni de sincronización o recuperación ante estados de error. En resumen, un
sistema debe estar bien diseñado, pero también debe funcionar bien.

UML también intenta solucionar el problema de propiedad de código que se da con los desarrolladores,
al implementar un lenguaje de modelado común para todos los desarrollos se crea una documentación
también común, que cualquier desarrollador con conocimientos de UML será capaz de entender,
independientemente del lenguaje utilizado para el desarrollo.

UML es ahora un standard, no existe otra especificación de diseño orientado a objetos, ya que es el
resultado de las tres opciones existentes en el mercado. Su utilización es independiente del lenguaje de
programación y de las características de los proyectos, ya que UML ha sido diseñado para modelar
cualquier tipo de proyectos, tanto informáticos como de arquitectura, o de cualquier otro ramo.
UML permite la modificación de todos sus miembros mediante estereotipos y restricciones. Un
estereotipo nos permite indicar especificaciones del lenguaje al que se refiere el diagrama de UML. Una
restricción identifica un comportamiento forzado de una clase o relación, es decir mediante la restricción
estamos forzando el comportamiento que debe tener el objeto al que se le aplica.

UML permite: especificar, construir, visualizar y documentar los objetos de un sistema programado.

2.4. Vocabulario de UML

Estructuras

 Estáticas: Muestra de una manera estática la estructura de información del sistema y la


visibilidad que tiene cada una de las clases, dada por sus relaciones con los demás en el
modelo.

 Dinámicas: Muestra las actividades del sistema que representan acciones en la vida real. Se los
representa con relaciones en las que se anotan dicha actividad entre las partes que actúan.

Relaciones

 Asociación: es una relación estructural que describa una conexión entre dos clases
 Agregación: Relaciona una clase ya ensamblada con una clase componente. Es también una
relación de composición menos fuerte (no se exige dependencia existencial) y se denota por un
rombo sin rellenar en uno de los extremos.

 Composición: es un tipo muy representativo de agregación. Cada componente dentro de una


composición puede pertenecer solo a un todo. El símbolo de notación es el mismo que el de
agregación, excepto que el rombo está relleno.

 Herencia: es un proceso de abstracción en el cual un conjunto de clases existentes, que tienen


atributos y métodos comunes, es referido por una clase genérica a un nivel mayor de
abstracción. La relación de generalización denota una relación de herencia entre clases. Se
representa dibujando un triángulo sin rellenar en el lado de la superclase. La subclase hereda
todos los atributos y mensajes descritos en la superclase. Si la clase hija hereda solo de una
clase madre, se dice que es herencia simple. Si la clase hija hereda de más de 1 clase madre, se
dice que herencia múltiple.
 Dependencia: Es una relación donde existen entidades independientes y otras dependientes, lo
que implica que cambiar el elemento independiente puede requerir cambios en los dependientes.
Se representa con una línea punteada direccional, indicando el sentido de la dependencia.
Diagramas

 Diagrama de casos de uso: Los diagramas de casos de uso describen las relaciones y las
dependencias entre un grupo de casos de uso y los actores participantes en el proceso. Es
importante resaltar que los diagramas de casos de uso no están pensados para representar el
diseño y no puede describir los elementos internos de un sistema. Los diagramas de casos de
uso sirven para facilitar la comunicación con los futuros usuarios del sistema, y con el cliente, y
resultan especialmente útiles para determinar las características necesarias que tendrá el
sistema. En otras palabras, los diagramas de casos de uso describen qué es lo que debe hacer
el sistema, pero no cómo.
 Diagrama de clases: Los diagramas de clases muestran las diferentes clases que componen un
sistema y cómo se relacionan unas con otras.
 Diagrama de objetos: un objeto es la instancia de una clase (una entidad que tiene valores
específicos de los atributos y acciones). En los diagramas se los representa en rectángulos que
en la parte superior tienen el nombre de la instancia seguido de dos puntos y el nombre de la
clase a la que pertenecen.
 Diagrama de actividad: Los diagramas de actividad describen la secuencia de las actividades en
un sistema. Los diagramas de actividad son una forma especial de los diagramas de estado, que
únicamente (o mayormente) contienen actividades.

 Diagrama de colaboración: Los diagramas de colaboración muestran las interacciones que


ocurren entre los objetos que participan en una situación determinada. En los diagramas de
colaboración los mensajes enviados de un objeto a otro se representan mediante flechas,
mostrando el nombre del mensaje, los parámetros y la secuencia del mensaje. Los diagramas de
colaboración están indicados para mostrar una situación o flujo programa específicos y son unos
de los mejores tipos de diagramas para demostrar o explicar rápidamente un proceso dentro de
la lógica del programa.
 Diagrama de Secuencia: Los diagramas de secuencia muestran el intercambio de mensajes (es
decir la forma en que se invocan) en un momento dado. Los diagramas de secuencia ponen
especial énfasis en el orden y el momento en que se envían los mensajes a los objetos.
En los diagramas de secuencia, los objetos están representados por líneas intermitentes verticales, con
el nombre del objeto en la parte más alta. El eje de tiempo también es vertical, incrementándose hacia
abajo, de forma que los mensajes son enviados de un objeto a otro en forma de flechas con los nombres
de la operación y los parámetros.

 Diagramas de despliegue: representa la visualización de los componentes sobre los dispositivos


físicos.
 Diagrama de distribución: muestra la arquitectura física de un sistema informático. Puede
representar los equipos y dispositivos, mostrar sus interconexiones y el software que se
encontrará en cada máquina. Cada computadora está representada por un cubo y las
interacciones entre las computadoras están representadas por líneas que conectan los cubos.
 Diagrama de componentes: Los diagramas de componentes muestran los componentes del
software (ya sea las tecnologías que lo forman como Kparts, componentes CORBA, Java Beans
o simplemente secciones del sistema claramente distintas) y los artilugios de que está
compuesto como los archivos de código fuente, las librerías o las tablas de una base de datos.
Los componentes pueden tener interfaces (es decir clases abstractas con operaciones) que permiten
asociaciones entre componentes.

REFERENCIAS:

 Jacobson, Ivar y Booch, Grady y Rumbaugh, James, El proceso Unificado de


Desarrollo de Software, (España, Ed. Adisson-Wessley Iberoamericana).
Aprendiendo UML en 24 horas (Joseph schmuller)

 MANUAL DE REFERENCIA DE UML, Rumbaugh Jacobson, Booch.


 EL LENGUAJE UNIFICADO DE MODELADO (1era Edición) Addson Wesley
Iberoamericana Madrid, 1999. Rumbaugh Jacobson, Booch

3. MÉTODO DE REQUERIMIENTOS - MÉTODO ISHIKAWA


3.1. IDENTIFICAR LISTA DE PROBLEMAS.
3.1.1. LISTA DE PROBLEMAS

P1 Deficiente registro de mascotas de un cliente


P2 Demora en la entrega de información para el tratamiento de la mascota
P3 Deficiente registro de tratamientos aplicados a las mascotas
P4 Deficiente registro de equipos quirúrgicos en la veterinaria
P5 Deficiente organización de horarios para el personal veterinario
P6 Deficiente control de tratamientos a realizarse a ciertas mascotas
P7 Ineficiente manipulación de los registros de consultas de los clientes
P8 Deficiencia en el manejo de inventario.
P9 Deficiencia en el registro de los productos próximos a la fecha de vencimiento.
P10 Mala organización de los productos en el inventario.
P11 Espacio no apropiado para el almacén.
P12 Dificultad para hallar los productos próximos a la fecha de vencimiento.
P13 Deficiencia en el registro del stock de los productos.
P14 Inconvenientes al buscar información de contacto del proveedor.
P15 Deficiencia en el registro de proveedores.
P16 Deficiente control en las compras de los productos.
P17 Mala manipulación de los registros de compra.
P18 Demora en la entrega de factura al cliente.
P19 Demora en la entrega de notas de venta.
P20 Inadecuado registro de los clientes.
P21 Incomodidad en la espera del cliente.
Desconocimiento de los efectos de algunos medicamentos, por parte de los
P22 empleados.
P23 Demora en la ubicación de los productos para venderlos.
Deficiencia en la actualización del stock de los productos al momento de la
P24 venta.
P25 Ineficiencia en el manejo de los precios de venta de los productos.
P26 Deficiencia en el registro de las ventas de cada empleados.
P27 Pérdida de tiempo al realizar un inventario.
Ineficiencia en el registro del precio real del producto (precio al que se vendió
P28 el producto).
P29 Deficiencia en el registro de los productos salientes o dados de baja.
Deficiencia en la actualización del stock cuando se devuelve un producto
P30 próximo a vencer, al respectivo proveedor.
P31 Perdida de información de las actividades diarias.

3.2. DEPURAR PROBLEMA.

P1 Deficiente registro de mascotas de un cliente


P2 Demora en la entrega de información para el tratamiento de la mascota
P3 Deficiente registro de tratamientos aplicados a las mascotas
P6 Deficiente control de tratamientos a realizarse a ciertas mascotas
P7 Ineficiente manipulación de los registros de consultas de los clientes
P8 Deficiencia en el manejo de inventario.
Deficiencia en el registro de los productos próximos a la fecha de
P9 vencimiento.
P10 Mala organización de los productos en el inventario.
P12 Dificultad para hallar los productos próximos a la fecha de vencimiento.
P13 Deficiencia en el registro del stock de los productos.
P14 Inconvenientes al buscar información de contacto del proveedor.
P15 Deficiencia en el registro de proveedores.
P16 Deficiente control en las compras de los productos.
P17 Mala manipulación de los registros de compra.
P19 Demora en la entrega de notas de venta.
P20 Inadecuado registro de los clientes.
Deficiencia en la actualización del stock de los productos al momento de la
P24 venta.
P25 Ineficiencia en el manejo de los precios de venta de los productos.
P27 Pérdida de tiempo al realizar un inventario.
Ineficiencia en el registro del precio real del producto (precio al que se vendió
P28 el producto).
P29 Deficiencia en el registro de los productos salientes o dados de baja.
Deficiencia en la actualización del stock cuando se devuelve un producto
P30 próximo a vencer, al respectivo proveedor.
P31 Perdida de información de las actividades diarias.
Justificación

P4
El
siste
ma
de
infor
maci
ón se
enfoc
a
exclu
siva
ment
e en
comp
ra y
venta
P5 El área de RRHH no forma parte de nuestro sistema de información
La infraestructura de la empresa no es relevante para nuestro sistema
P11 de información
P18 El sistema de información no gestionara la factura del cliente
P21 Este es un problema que depende de la infraestructura
Este problema es causado por la falta de estudio de algunos empleados
P22 de la veterinaria
Puesto que la infraestructura es pequeña e influye en la organización de
P23 los productos. La organización de dicho producto es escasa
Al no contar con una organización para las ventas no es posible llevar un
P26 registro de las ventas realizadas de cada empleado

3.3. LISTA DE PROBLEMAS FINALES.

P1 = P1 Deficiente registro de mascotas de un cliente


P2 = P2 Demora en la entrega de información para el tratamiento de la mascota
P3 = P3 Deficiente registro de tratamientos aplicados a las mascotas
P6 = P4 Deficiente control de tratamientos a realizarse a ciertas mascotas
P7 = P5 Mal manipulación de los registros de consultas de los clientes
P8 = P6 Deficiencia en el manejo de inventario.
Deficiencia en el registro de los productos próximos a la fecha de
P9 = P7 vencimiento.
P10 = P8 Mala organización de los productos en el inventario.
P12 = P9 Dificultad para hallar los productos próximos a la fecha de vencimiento.
P13 = P10 Deficiencia en el registro del stock de los productos.
P14 = P11 Inconvenientes al buscar información de contacto del proveedor.
P15 = P12 Deficiencia en el registro de proveedores.
P16 = P13 Deficiente control en las compras de los productos.
P17 = P14 Mala manipulación de los registros de compra.
P19 = P15 Demora en la entrega de notas de venta.
P20 = P16 Inadecuado registro de los clientes.
Deficiencia en la actualización del stock de los productos al momento de
P24 = P17 la venta.
P25 = P18 Ineficiencia en el manejo de los precios de venta de los productos.
P27 = P19 Pérdida de tiempo al realizar un inventario.
Ineficiencia en el registro del precio real del producto (precio al que se
P28 = P20 vendió el producto).
P29 = P21 Deficiencia en el registro de los productos salientes o dados de baja.
Deficiencia en la actualización del stock cuando se devuelve un
P30 = P22 producto próximo a vencer, al respectivo proveedor.
P31 = P23 Perdida de información de las actividades diarias.

3.4. IDENTIFICAR PROPIETARIOS DE PROBLEMAS.


Lista de propietarios

Propietario 1: Dueño/a
Propietario 2: Médico veterinario
Propietario 3: Asistente
Propietario 4: Cliente
Propietario 5: Proveedor
Propietario 6: Mascota

Identificar propietarios de problemas.

Propietario
Dueñ Médico Asistent Client Proveedo Mascot
o veterinari e e r a
Problemas
o
Deficiente
registro de
mascotas de 1 1 1 1 1
P1 un cliente
Demora en
la entrega
de 1
información
para el 1 1 1 1
tratamiento
de la
P2 mascota

Deficiente
registro de
tratamientos 1
aplicados a 1 1 1
las
P3 mascotas

Deficiente
control de
tratamientos 1
a realizarse 1 1 1
a ciertas
P4 mascotas

Ineficiente
manipulació
n de los
registros de 1 1 1
consultas de
P5 los clientes

Deficiencia
en el manejo
de 1 1 1
P6 inventario.

Deficiencia
en el
registro de
los
productos 1
próximos a
la fecha de
P7 vencimiento.

P8 Mala
1 1
organización
de los
productos
en el
inventario.

Dificultad
para hallar
los
productos 1 1
próximos a
la fecha de
P9 vencimiento.

Deficiencia
en el
registro del 1 1
stock de los
P10 productos.

Inconvenient
es al buscar
información 1
de contacto 1
del
P11 proveedor.

Deficiencia
en el
registro de 1 1
P12 proveedores

Deficiente
control en
las compras 1
de los
P13 productos.

Mala
manipulació
n de los 1
registros de
P14 compra.

Demora en
la entrega
de notas de 1
P15 venta.

Inadecuado
registro de
1 1
P16 los clientes
Deficiencia
en la
actualizació
n del stock
de los 1
productos al
momento de
P17 la venta.

Ineficiencia
en el manejo
de los
precios de 1 1
venta de los
P18 productos.

Pérdida de
tiempo al
realizar un 1 1 1
P19 inventario.

Ineficiencia
en el
registro del
precio real
del producto
1 1 1
(precio al
que se
vendió el
P20 producto).

Deficiencia
en el
registro de 1 1 1
los
productos
salientes o
dados de
P21 baja.

P22 Deficiencia
en la
actualizació 1 1
n del stock
cuando se
devuelve un
producto
próximo a
vencer, al
respectivo
proveedor.

Perdida de
información
de las 1 1 1
actividades
P23 diarias.
3.5. ANALIZAR PROBLEMAS.

Deficiencia en
Deficiente Mal
Deficiencia en la Deficiencia en el registroDeficiencia
de en Demora en la
Mala registro de Deficiente
manipulació
Ineficiencia
Mala
actualización endel la actualización los productos entrega de
organización Pérdida de el registro de tratamientos control
n dedelos
el manejo
manipulación
stock cuandode se Dificultad para
del stock en
de los próximos información
Deficiente Deficiencia
hallarde
loslos Deficiencia enalos
la productos Deficiente
aplicados registros
tratamientos de
a
deloslos
control precios
en las de
devuelve un productos
el registro al tiempo al
fechade
de salientes o registro de para el a las Inadecuad
productos
productos en del el manejo Demora en la
consultas de
ventade
registros
producto
compras dedepróximo
los a momento
stock de losde la realizar un mascotas
tratamiento de realizarse
o a
registro
productos.
el inventario.
próximos a la venta. vencimiento.dados de mascotas de
inventario. entrega de
los clientes
compra.
vencer, al respectivo la mascota ciertas
los
P8productos. inventario. un cliente P3 notasdede
los
P19 P6P7
P18 fecha de baja. P5
P14proveedor.
productos.P22 P10P17 P1 P2 clientes.
mascotas
venta.
vencimiento. INVENTARI P21 Mascotas
CLIENTES P16
INVENTARI Mascotas
CLIENTES P4
P15
3.6. Diseño Grafico

3.7. Identificar Categorias

3.7.1. Descripcion de cada categoria


Proceso de inventarios: en el proceso de inventarios hay una deficiencia a
la hora de registrar el stock de los nuevos productos la cual necesita ser
analizado con mucha delicadeza

Proceso de Mascotas: en el proceso de registro de mascotas hay una


deficiencia al momento de tomar los datos de la mascota como ser: los
tratamientos, vacunas, etc…

Proceso de registro de Proveedores: en el proceso registro de


proveedores al ser registrado manualmente este provoca alguna perdida de
información

Proceso de registro de Clientes: en el proceso de registro de clientes al


hacerlo de forma manual hay una deficiencia al momento de registrar los
datos
3.8. Diagrama Causa/Efecto
4. MODELO DE DOMINIO

4.1. Identificar clases y categorías


Listar cada clase y especificar su funcionalidad

Persona.- esta clase heredara las demás clases como ser: personal, cliente,
cargo, mascota, proveedor, etc…tiene los siguientes atributos

codpersona (PK): es el código


que se asignara a cada persona
Nombre: nombre de cada
persona
Dirección: dirección de cada
persona
Teléfono: número de teléfono de
cada persona en caso de que no tenga se pondrá NULL

Personal: en esta clase almacenaremos los datos del personal que trabaja en la
veterinaria en donde los atributos son heredados de la clase Persona excepto el
código q se asignara a cada uno de los miembros de la veterinaria

Codpersonal: código que se asignara


a cada miembro dela veterinaria
Cargo: en esta clase se registrara el
cargo que ejerce de cada miembro
que trabaja en la veterinaria la cual
tiene los siguientes atributos:

Codcargo: es el código
que tendrá cada cargo que
tenga el personal de trabajo
Descripción: nombre del
cargo que ejerce el personal

Cliente: en esta clase se registrara todos los datos de los clientes que ingresen
con sus mascotas para ser atendidos. Los atributos son heredados de la clase
persona excepto el código q será asignado a cada cliente

Codcliente: es el código
que se le asignara a cada cliente
para ser atendido
Proveedor: en esta clase se registrara todos los datos de los proveedores de la
empresa que provee de productos a la veterinaria la cual tendrá los siguientes
atributos:

Codproveedor: es el código
que se asignara a cada
proveedor para poder
identificarlo
Nombre: nombre de cada
proveedor
Dirección: dirección de los
proveedores
Teléfono: se registrara ya sea el nro. de celular o fijo
Fecha de registro: se registrara la fecha que ingreso cada proveedor

Promotor: en esta clase se registrara el código del promotor y el proveedor ya


los demás atributos serán heredados de la clase Persona

Codpromotor: es el
código que se asignara a
cada promotor de la
empresa

Mascota: en esta clase se registrara los datos de las mascotas que van a ser
atendidos por los empleados

Codmascota: es el
código que se
asignara a cada
mascota para
identificarlo
Fecha de Registro:
fecha que se
registrara a la mascota
CodRaza: es el
código que identificara
el tipo de raza q es la
mascota
Nombre: nombre de cada mascota
FechaNacimiento: la fecha en el que nació la mascota
Sexo: el género de cada mascota
Tamanio: el tamaño de la macota
Color: el color o colores de la macota
Raza: en esta clase se registra el código con el tipo raza que es cada animal o
mascota

Codraza: es el que
identificara cada raza
Descripción: los nombre
de las razas
Codanimal: referencia de
la clase Animal

Animal: en esta clase se registraran los datos los animales que son atendidos
especificando su raza por medio de un código que será heredado de la clase
Raza. Tiene los siguientes atributos:

Codanimal: es el código que


tendrá cada animal p poder
identificarlo
Nombre: nombre de cada animal
Codraza: código heredado de la
clase Raza

Diagnóstico: en esta clase se registrara el diagnostico que se realizara a la


mascota identificándolo con el código y el código de recepción

Coddiagnostico: código
asignado a cada diagnostico
Codrecepcion: código
heredado de la clase recepción

DetalleDiagnostico: en esta clase registrara los detalles que se hicieron


después del diagnóstico que se le realizo a la mascota o animal

Coddetallediagnostico:
código para cada detalle
Descripción: detalle del
diagnóstico realizado
Fecha: fecha en la cual se realizó el diagnostico
Coddiagnostico: código heredado de clase diagnostico

Servicio: en esta clase se registraran los datos de todos los servicios que brinda
la veterinaria. Tiene los siguientes atributos:

Codservicio: código para


identificar cada servicio
Nombre: nombre de los
servicios
Precio: costo que tendrá
cada servicio

Proxima Consulta: en esta clase se registrara las diferentes consultas que se


brindara al cliente

CodProximaConsulta: código heredado de la


clase servicio

Descripción: detalle de la
consulta
Fecha: Fecha que se realizo la consulta

Producto: en esta clase se registrara el nombre de los diferentes productos con


sus respectivos códigos y el costo que tienen

Codproducto: código
asignado a cada producto
Nombre: nombre del
producto
Precio: costo de los
productos
Cantidad: cantidad de
Productos
Fabrica: lugar donde se fabrico el producto
Medicamentos: en esta clase se registrara los datos de los medicamentos
colocándole un código que será heredado de la clase Producto la cual tiene los
siguientes atributos:

Codmedicamento:
código de cada
medicamento
CantDosis: cantidad de
dosis
DosisTotal: cantidad de
dosis totales
Fechadevencimiento: fecha que vence el medicamento
Codigolote: código del lote asignado a los medicamentos

Pedido: en esta clase se registrara los datos de los diferentes pedidos que
realiza la veterinaria la cual tendrá un código de promotor y proveedor q serán
heredados de esas clases y la fecha que se realizó el pedido

Codpedido: código
asignado a cada pedido
realizado
Codpromotor: código
heredado de la clase
promotor
Fecha: fecha en que se
realizado el pedido
TipodeAdquisicion: tipo de adquisición del producto pedido

detallePedido: en esta clase se registrara todos los detalles de los pedidos de


productos que hace la veterinaria

coddetallepedido: código de
cada detalle

Cantidad: cantidad pedidos


realizan los empleados

Precio: costo total del pedido


realizado

codproducto: código del producto que se realizó por el pedido

codpedido: código heredado de la clase pedido

Servicios Prestados: en esta


clase se registrara todos los
detalles de los servicios prestados
que hace la veterinaria
CodServicioPrestado: código de cada Servicio P

CodServicio: Codigo q hace referencia a la clase Servicio

Fecha: fecha que se hace el servicio prestado

Tipos de Servicios: en esta clase se registrara todos los detalles de los Tipos
de servicios que hace la veterinaria

CodTipoServicio: código de
cada Tipo de Servicio

Nombre: nombre del tipo de servicio

Tipos de Medicamentos: en esta clase se registrara todos los detalles de los


Tipos de medicamentos que hace la veterinaria

CodTipomedicamento:
código de cada Tipo de
medicamentos

Nombre: nombre del tipo de medicamento

Tipos de Medicamentos: en esta clase se registrara todos los detalles de los


Tipos de medicamentos que hace la veterinaria

CodUnidadMedida :
código de cada Unidad de
medida

Nombre: nombre de la
unidad de medidad
4.2. Identificar Relaciones entre Clases
RELACIONES:

1) La clase PERSONA realiza


una Generalización hacia los
tipos de clases como ser:
Personal que tendrá acceso
a la base de datos y podrá
interactuar con el sistema,
Cliente y Promotor que
serán registradas en la base
de datos.

2)

2)
La clase Persona tiene una relación de Asociación de
1…* la cual especifica que cada persona puede
tener de 1 a * mascotas

3) La clase Raza tiene una relación de


Asociación de 1…* la cual especifica que cada
Raza puede ser entre 1 a * Mascotas

4) La relación entre la clase


Personal y Cargo tendrá
un relación de Asociación

de 1 a 1 ya que cada
persona le corresponde un
solo cargo
5) la relación entre el Cliente y Recepción es de tipo asociación la cual nos dice que un
cliente puede ser recepcionado entre 1 y * veces

6) La relación entre las


clases de Promotor y
Proveedor es de
Composición en
donde la existencia
de los Proveedores
de la empresa
depende del
Promotor

7) La relación que hay entre las clases Personal y


Recepción es de Asociación en donde
especifica que cada encargado hará entre 1 y *
recepciones

8) Le relación que existe entre las


clases Mascota y Recepción es
de tipo Asociación en donde se
dice que una mascota puede
ser o no recepcionada entre 0
y * veces

9) La relación que hay entre las


clases Recepción y DetalleVenta
es de Asociación en donde nos dice que en la recepción se registrara entre 0 y *
detalles de la venta

10) La relación que hay entre las clases Recepción y Diagnostico


es de composición en donde se especifica que el
Diagnostico q se le haga a una mascota depende de la
Recepción

11) La clase SERVICIO realiza una relacion


de asociación de 0 a * hacia Servicios
Prestados. Donde nos dice que un
servicio puede o no tener varios
servicios prestados

12)
La clase Tipo de Servicio realiza una relacion de
asociación de 0 a * hacia Servicios. Donde
nos dice que un Tipo de servicio puede o no
tener varios servicios realizables

13)

13)
13) La clase
PRODUCTO
realiza una
Generalización
hacia los tipos de
clases como ser:
Artículos Varios,
Alimentos,
Medicamentos que son los diferentes Productos y accesorios que hay en la Veterinaria
“EL PRADO”

14) Le relación que hay entre las


clases Producto y DetalleVenta
es de tipo Asociación un
Producto puede ser detallado
en el registro de ventas entre 0
y * veces

15) La relación que hay entre las clases


Producto y DetallePedido es de tipo
Asociación en donde se especifica que
un Producto puede ser pedido entre 1 y
* veces

16)

La relación que hay entre las clases


Pedido y DetallePedido es de
Asociación en donde un pedido
será registrado entre 1 y * veces
de acuerdo a las cantidades que
se pida

17) la relación que hay entre las clases Mascota y Raza


es de asociación de 1 a * en donde nos dice que
una Raza pueden ser diferentes mascotas y una
mascota solo le pertenece a una raza

18) la relación que hay


entre Diagnostico y
Receta es de Asociación donde un diagnostico que se le
haga a una mascota se le puede sacar varias Recetas o no puede haber también( 0….*)
y de varias recetas sale n de un solo diagnostico(1)

19) relación que hay entre


Servicios Prestados y
Productos Utilizados es de
asociacion la cual nos dice
que los servicios prestados
se los pueden o no hacer
de varios productos
utilizados por lo cual hay
una multiplicidad de 0…*

20) la relación que hay entre Recepcion y Servicios Prestados es de asociacion la cual nos
dice que una Recepcion puede
tener o no varios servicios
prestados por lo cual hay una
multiplicidad de 0…*

21) La relacion que hay entre Producto

y Devuelto es de Asociación la cual nos dice que


un producto puede ser Devuelto entre 1 y *
veces como solo se puede devolver una
producto a la vez por lo tanto hay una
multiplicidad de 1 a *

22) La relacion que hay


entre Recepcion y
Pago es de asociación la cual dice que en una Recepcion se
puede o no realizar entre 0 y * pagos como solamente se
puede pagar una sola vez en recepcion. Por lo cual hay una
multiplicidad de 0 a *
23) La relacion que hay entre
proveedor y politica de
devolucion es de tipo
Asociación donde nos
dice que un proveedor
puede recibir entre 1 y *
politicas de devolucion

24) la relacion que hay entre proveedor y devuelto es de Asociación la cual un proveedor
puede recibir entre 1 y * productos devueltos y solamente los productos pueden ser
devolvidos por un solo proveedor
4.3. DISEÑAR EL DIAGRAMA DE CLASES DEL MODELO DE DOMINIO

4.4. DISEÑO DE DATOS LÓGICOS


4.4.1. DIAGRAMA DE CLASES

4.5. MAPEO
Persona
PK
Codpersona Nombre Telefono Direccion

Cliente
PK /FK
Codcliente

Personal
PK /FK
Codpersonal

Cargo
PK FK
Codcargo Descripción

Mascota
PK FK FK
Codmascota Codpersona codraza Nombre F Sexo Tamaño F de Color
nacimiento Registro

Proveedor
PK
Codproveedor Nombre direccion Teléfono Fechaderegistro

Promotor
PK/FK PK/FK
Codpromotor Codproveedor

Raza
PK FK
Codraza codanimal Descripción

Animal
PK FK
Codanimal nombre

Servicio
PK
Codservicio nombre Precio

Proxima Consulta
PK
CodProximaConsulta Descripción Fecha

Recepcion
PK FK FK FK
Codrecepcion Fecha Codmascota Codcliente Codpersonal

Recibo
PK
Codrecibo Fecha Deuda Monto

Diagnostico
PK FK
Coddiagnostico Codrecepcion

DetalleDiagnostico
PK FK FK
Coddetallediagnostico Codrecepcion Descripción Fecha Coddiagnostico

Tratamiento
PK FK
Codtratamiento Descripción Coddetallediagnostico

Evolucion
PK FK FK
Codevolucion Codtratamiento Descripción Fecha

Receta
PK FK FK
Codreceta Descripción Coddiagnostico

Pedido
PK FK FK
Codpedido Codpromotor Tipo de Fecha
Adquisicion

Producto
PK
Codproducto Nombre Precio Febrica cantidad

DetalleVenta
PK FK FK
Coddetalleventa Cantidad Precio Codrecepcion Codproducto

ProductosUtilizados
PK FK
Codproductosutilizados Cantidad Descripción codServiciosPrestados

PoliticadeEvolucion
PK FK FK
CodpoliticaEvolucion Descripción Codproducto Codproveedor

Devuelto
PK FK FK
Coddevuelto Codproducto Codproveedor Cantidad Motivo

Desechado
PK FK
Coddesechado Fecha Motivo Codproducto

Alimento
PK/FK
Codalimento Descripción Fechavencimiento

Articulos
PK/FK
Codarticulos Descripción

Medicamentos
PK/FK
Codmedicamentos fechadevencimiento codigolote

Reposicion
PK FK FK
Codreposicion Codproveedor codreviciondeproductos

Servicios Prestados
CodServicioPrestado Fecha

Tipo de Servicio
CodTipoServicio NombreServicio

Tipo de Medicamento
CodTipoMedicamento NombreMedicamento
4.6. DISEÑO FÍSICO
4.6.1. TABLA DE VOLUMEN

PERSONA
Atributos Tipo de dato Llave Amplitud Nulo Descripción
Codpersona Numérico Primaria No nulo Código de persona
Nombre Carácter 50 No nulo Nombre de persona
Dirección Carácter 50 Nulo Dirección de persona
Telefono Numérico Nulo Teléfono de persona

PERSONAL
Atributos Tipo de dato Llave Amplitud Nulo Descripción
Codpersonal Numérico Primaria No nulo Código de
persona
Codcargo Numérico llave foranea No nulo Código de cargo

CARGO
Atributos Tipo de dato Llave Amplitud Nulo Descripción
Codcargo Numérico Primaria No nulo Código del cargo
Descripcion Carácter 10 No nulo Descripción del
cargo

CLIENTE
Atributos Tipo de dato Llave Amplitud Nulo Descripción
Codcliente Numérico Primaria No nulo Código del
cliente

PROVEEDOR
Atributos Tipo de dato Llave Amplitud Nulo Descripción
Codproveedor Numérico Primaria No nulo Código del proveedor
Nombre Carácter 50 No nulo Nombre del proveedor
Dirección Carácter 50 No nulo Dirección del
proveedor
Telefono Numérico No nulo Teléfono del
proveedor
fechaderegistro Date No nulo Fecha de registro del
proveedor

PROMOTOR
Atributos Tipo de dato Llave Amplitud Nulo Descripción
Codpromotor Numérico Primaria, No nulo Código del
foránea promotor
Codproveedor numerico Primaria, No nulo Código del
foranea proveedor

MASCOTA
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codmascota Numérico Primaria No nulo Código de la
mascot
Codpersona Numérico Foránea No nulo Código de la
persona
Codrazal Numérico Foránea No nulo Código del
animal
Nombre carácter 50 No nulo Nombre del
animal
Fechanacimiento Fecha No nulo Fecha de
nacimiento
de la
mascota
Sexo Carácter 1 No nulo Sexo de la
mascota
Tamanio Carácter 10 No nulo Tamaño de la
mascota
Color carácter 50 No nulo Color de la
mascota

RAZA
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codraza Numérico primaria No nulo Código de la
raza
Codanimal Numérico Foránea No nulo Codigo de
animal
Descripción Carácter 50 No nulo Descripción
de la raza

ANIMAL
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codanimal Numérico Primaria No nulo Código del
animal
Nombre Carácter 50 No nulo Nombre del
animal

SERVICIO
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codservicio Numérico Primaria No nulo Código del
servicio
Nombre Carácter 50 No nulo Nombre del
servicio
Precio Numérico No nulo Precio del
servicio

PROXIMA CONSULTA
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
CodProximaconsulta Numérico Primaria, No Código de la
foránea nulo consulta
Descripción Carácter 50 No Descripción
nulo de la
consulta
Fecha Date 10 No Fecha de
nulo Consulta

RECEPCION
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codrecpcion Numérico Primaria No nulo Código de
recepción
Fecha Fecha No nulo Fecha de la
recepción
Codmascota numerica Foránea Nulo Código de la
mascota
Codcliente numercia Foránea Nulo Código del
cliente
Codpersonal numerica Foránea No nulo Código del
personal

RECIBO
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codrecibo Numérico Primaria No nulo Código del
recibo
Fecha Fecha No nulo Fecha del
recibo
Codrecepcion Numérico Foránea Nulo codigo de
recepcion

DIAGNOSTICO
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Coddiagnostico Numérico Primaria No nulo Código del
diagnostico
Codrecepcion Numérico Primaria, No nulo Código de la
foránea recepción

DETALLEDIAGNOSTICO
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Coddetallediagnostico Numérico Primaria, No Código del
foránea nulo detalle de
diagnostico
Codrecepcion numerico Foránea No Código de
nulo recepción
Descripción caracter 80 No Descripción
nulo del detalle
diagnostico
Fecha Fecha No Fecha del
nulo detalle
diagnostico
coddiagnostico numerico Foránea No Código del
nulo detalle
diagnostico

TRATAMIENTO
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codtratamiento Numérico Primaria No Código del
nulo tratamiento
Descripción Carácter 50 No Descripción
nulo del servicio
Coddetallediagnostico Numérico Primaria, No Código del
foránea nulo detalle
diagnostico

EVOLUCION
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codevolucion Numérico Primaria No Código de la
nulo evolución de
la mascota
Codtratamiento numerico Foránea No Código del
nulo tratamiento
Códigodetallediagnostico numerico Foránea No Código del
nulo detalle
diagnostico
Descripción caracter 50 No Descripción
nulo de la
evolución de
la mascota
Fecha Fecha No Fecha de la
nulo evolución de
la mascota

RECETA
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codreceta Numérico Primaria No nulo Código de la
receta
Descripción Carácter 50 No nulo Descripción
de la receta
Coddiagnostico Numérico foranea No nulo Código del
diagnostico
Codrecepcion numerico Foránea No nulo Código de la
recepción

PEDIDO
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codpedido Numérico Primaria No nulo Código del
pedido
Codpromotor numerico Foránea No nulo Código del
promotor
Codproveedor Numérico Foránea No nulo Código del
proveedor
Fecha Fecha No nulo fecha del
pedido

PRODUCTO
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codproducto Numérico Primaria No nulo Código del
producto
Nombre Carácter 50 No nulo Nombre del
producto
Precio Numérico No nulo Precio del
producto
Cantidad Numérico No nulo Cantidad de
productos

DETALLEVENTA
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Coddetalleventa Numérico Primaria No nulo Código de
detalle de
venta
Cantidad Numérico No nulo Cantidad de
detalle de
venta
Precio numerico No nulo Precio del
detalle de
venta
Codrecepcion Numérico Foránea No nulo Código de la
recepción
Codproducto Numérico Foránea No nulo Codigo del
producto

DETALLEDELPEDIDO
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Coddetallepedido Numérico Primaria No nulo Código del
detalle de
pedigo
Cantidad Numérico No nulo Cantidad de
detalle de
pedigo
Precio numerico No nulo Precio del
detalle de
pedigo
Codproducto Numérico Foránea No nulo Código del
producto
Codpedido Numérico Foránea No nulo Código del
pedido

PRODUCTOS UTILIZADOS
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
CodproductosUtilizados Numérico Primaria No Código de
nulo de productos
Utilizados
Cantidad Numerico No Cantidad de
nulo productos
utilizados
CodServiciosPrestados numerico Primaria, No Código de
foranea nulo Servicios
Prestados
Fecha Date No Fecha de los
nulo Productos
Utilizados

POLITICADEDEVOLUCION
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codpoliticadevolucion Numérico Primaria No Código de la
nulo política de
devolución
Descripción Carácter 50 No Descripción
nulo de la política
de
devolución
Codproducto numerico foranea No Código del
nulo producto
Codproveedor Numérico Foránea No Código del
nulo proveedor

DEVUELTO
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Coddevuelto Numérico Primaria No nulo Código de
los productos
devueltos
Codproducto Numérico Foránea No nulo Código del
producto
Codproveedor Numérico Foránea No nulo Código del
proveedor
Cantidad Numérico No nulo Cantidad de
los productos
devueltos
Motivo Carácter 50 No nulo Motivo por el
cual se
devolvió el
producto

TIPO DE MEDICAMENTOS
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
CodtipoMedicamentos Numérico Primaria No Código del
nulo tipo de
adquisición
Nombre Carácter 50 No Descripción
Nulo del tipo de
Medicamento

DESECHADO
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Coddesechado Numérico Primaria No nulo Código de
desechado
Fecha Fecha Nulo Fecha en la
que fue
desechado el
producto
Motivo Carácter 50 Nulo Motivo por el
cual fue
desechado el
producto
Codproducto Numérico Foránea No nulo Código del
producto

ALIMENTO
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codalimento Numérico Primaria, No Código del
foránea nulo alimento
Descripción Carácter 50 Nulo Descripción
del alimento
Fechadevencimiento Fecha Nulo Fecha del
vencimiento
del alimento

ARTICULOS
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codarticulos Numérico Primaria, No nulo Codigo de
foránea los artículos
Descripción Carácter No nulo Descripción
de los
articulos

MEDICAMENTOS
Atributos Tipo de Llave Amplitud Nulo Descripción
dato
Codmedicamento Numérico Primaria No Código de los
nulo medicamentos
Fechadevencimiento Fecha Nulo Fecha de
vencimiento
de los
medicamentos
Codigolote Numérico Nulo Código de lote
de los
medicamentos

TIPO DE SERVICIO

Atributos Tipo de Llave Amplitud Nulo Descripción


dato
CodTipoServicio Numérico Primaria No Codigo de
nulo Tipo de
Servicio
Nombre Carácter No Nombre del
nulo Tipo de
Servicio

SERVICIOS PRESTADOS

Atributos Tipo de Llave Amplitud Nulo Descripción


dato
CodServiciosPrestados Numérico Primaria No Codigo de
nulo Servicios
Prestados
CodServicio Numérico Foránea No Codigo de
nulo Servicio
Fecha Date No Fecha del
nulo Servicio
Prestado

4.7. SCRIPT BASE DE DATOS VETERINARIA “EL PRADO”


declare @db varchar(100)
select @db= NAME from DBO.SYSDATABASES WHERE
name='veterinariaprado'
if not @db is null
drop database veterinariaprado
go
create database veterinariaprado;
GO
use veterinariaprado;
go
CREATE TABLE PERSONA (
codpersona int NOT NULL,
nombre varchar (50) NOT NULL,
direccion varchar (50) NULL,
telefono int NULL,
primary key (codpersona)
)
go
insert into PERSONA values(1,'Ana Maria Chavez Justiniano','av
alemana,calle los chacos 185',3532572);
insert into PERSONA values(2,'Carmen Perez','av centenario
127',7025486);
insert into PERSONA values(3,'Alfredo Montaño Garcia','B/ Los angeles
#12',70052632);
insert into PERSONA values(4,'Jorge Padilla Vidal','B/ Las Palmas
#26',70053432);
insert into PERSONA values(5,'Luis Alberto Farel Nuñez','B/ Calderon
#1650',74552676);
insert into PERSONA values(6,'Mario Caceres Tarqui','B/ Villa 1ro de
Mayo #22',70346555);
insert into PERSONA values(7,'Pedro Chacon Cosme','B/ El Fuerte
#175',70055462);
insert into PERSONA values(8,'Alvaro Mendez Mamani','B/ el Por Venir
#167',70545664);
insert into PERSONA values(9,'Maria Meneses Esdras','B/ 18 de MArzo
#572',74865344);
insert into PERSONA values(10,'Ana','Davila Valverde B/ Los Andes
#564',72354533);
insert into PERSONA values(11,'Roxana igueroa Perez','B/ San Juan
#165',76547635);
insert into PERSONA values(12,'Maria Gonzales Merinda','B/ Las Palmas
#512',7326875);
insert into PERSONA values(13,'Ramon Valdes Pasina','B/ San roque
#114',77135874);
insert into PERSONA values(14,'Karina Illanes Soleto','B/ El PARI
#165',76386947);
insert into PERSONA values(15,'Martin Nogales Perez','B/ SAN
MARTIN',75127894);
go
go
create proc RegistrarPersona(@codpersona int, @nombre varchar(50),
@direccion varchar(50), @telef int)
as
insert into PERSONA values(@codpersona, @nombre, @direccion,
@telef)
return
go

create proc EliminarPersona(@codpersona int)


as
delete PERSONA where codpersona= @codpersona
return
go

create proc ActualizarPersona(@codpersona int, @nombre varchar(50),


@direccion varchar(50), @telef int)
as
update PERSONA set codpersona = @codpersona,nombre =
@nombre, @direccion = @direccion, telefono = @telef where
codpersona = @codpersona
return
go

create proc BuscarPersona @COD int


as
select *
from Persona
where PERSONA.codpersona=@COD
return
go

CREATE TABLE CARGO (


codcargo int NOT NULL,
descripcion varchar (20) NOT NULL,
PRIMARY KEY(codcargo)
)
go
insert into CARGO values(1,'Propietaria');
insert into CARGO values(2,'Doctora Veterinaria');
insert into CARGO values(3,'Auxiliar');
go

go

create proc Insertar_Cargo(@cod int, @descripcion varchar(50))


as
insert into CARGO values(@cod, @descripcion)
return
go

create proc Actualizar_Cargo(@cod int, @descripcion varchar(50))


as
update CARGO set descripcion = @descripcion where codcargo =
@cod
return
go

create proc Eliminar_Cargo(@descripcion varchar(50))


as
delete from CARGO where descripcion= @descripcion
return
go

CREATE TABLE PERSONAL (


codpersonal int NOT NULL,
codcargo int not null
primary key(codpersonal),
foreign key (codpersonal) references persona(codpersona)
on delete cascade
on update cascade,
foreign key (codcargo) references CARGO(codcargo)
on delete cascade
on update cascade
)
go
insert into PERSONAL values(1,1);
insert into PERSONAL values(2,2);
insert into PERSONAL values(3,2);
insert into PERSONAL values(4,3);

go

create proc Insertar_Personal(@codpersonal int, @codcargo int)


as
insert into PERSONAL values(@codpersonal, @codcargo)
return
go

create proc Insertar_Persona(@codpersona int, @nombre varchar(50),


@direccion varchar(50), @telef int)
as
insert into PERSONA values(@codpersona, @nombre, @direccion,
@telef)
return
go

create proc Actualizar_Persona(@codpersona int, @nombre varchar(50),


@direccion varchar(50), @telef int)
as
update PERSONA set codpersona = @codpersona,nombre =
@nombre, @direccion = @direccion, telefono = @telef where
codpersona = @codpersona
return
go

create proc Actualizar_Personal(@codpersonal int, @codcargo int)


as
update PERSONAL set codcargo = @codcargo where codpersonal =
@codpersonal
return
go
CREATE TABLE CLIENTE (
codcliente int not NULL,
PRIMARY KEY(codcliente),
FOREIGN KEY (codcliente) references PERSONA(codpersona)
on delete cascade
on update cascade
)
go
insert into CLIENTE values(5);
insert into CLIENTE values(6);
insert into CLIENTE values(7);
insert into CLIENTE values(8);
insert into CLIENTE values(9);
insert into CLIENTE values(10);
go

create proc RegistrarCliente(@codc int)


as

insert into CLIENTE values(@codc)

return

exec registrarcliente 11
select * from CLIENTE
go
create proc EliminarCliente(@codc int)
as

delete CLIENTE where CLIENTE.codcliente=@codc


return

go
create proc ActualizarCliente(@codcliente int, @nombre varchar(50),
@direccion varchar(50), @telef int)
as
update PERSONA set codpersona = @codcliente,nombre =
@nombre, @direccion = @direccion, telefono = @telef where
codpersona = @codcliente
return
go

create proc BuscarCliente @COD int


as
select *
from Persona,CLIENTE
where PERSONA.codpersona=@COD and
PERSONA.codpersona=CLIENTE.codcliente
return
go

create proc BuscarClienteNombre @nombre varchar(50)


as
select *
from Persona,CLIENTE
where PERSONA.nombre=@nombre and
PERSONA.codpersona=CLIENTE.codcliente
return
go

CREATE TABLE PROVEEDOR (


codproveedor int NOT NULL,
nombre varchar (50) NOT NULL,
direccion varchar (50) NOT NULL,
telefono int NOT NULL,
fechaderegistro date NOT NULL,
primary key(codproveedor)
)
go
insert into PROVEEDOR values(1,'TERBOL','pakque industrial
148',3526981, '30/01/2000');
insert into PROVEEDOR values(2,'DISPROPET','pakque industrial
167',3536897, '31/01/2000');
insert into PROVEEDOR values(3,'PETERQUIMICA','pakque industrial
189',3361284, '30/03/2000');
insert into PROVEEDOR values(4,'IFA','pakque industrial 332',3535672,
'26/01/2000');
insert into PROVEEDOR values(5,'AGROPAN','pakque industrial
987',3542987, '4/01/2000');
go

create proc Insertar_Proveedor(@codproveedor int, @nombre


varchar(50), @direccion varchar(50), @telefono int, @fechaderegistro
date)
as
insert into PROVEEDOR values(@codproveedor, @nombre,
@direccion, @telefono, @fechaderegistro)
return
go

create proc Actualizar_Proveedor(@codproveedor int, @nombre


varchar(50), @direccion varchar(50), @telefono int, @fechaderegistro
date)
as
update PROVEEDOR set codproveedor = @codproveedor, nombre =
@nombre, direccion = @direccion, telefono=@telefono, fechaderegistro
= @fechaderegistro
where codproveedor = @codproveedor
return
go

create proc Eliminar_Proveedor(@nombre varchar(50))


as
delete from PROVEEDOR where nombre = @nombre
return
go

CREATE TABLE PROMOTOR (


codpromotor int NOT NULL,
codproveedor int NOT NULL,
primary key(codpromotor, codproveedor),
foreign key(codpromotor) references PERSONA(codpersona)
on delete cascade
on update cascade,
foreign key(codproveedor) references PROVEEDOR(codproveedor)
on delete cascade
on update cascade,
)
go
insert into PROMOTOR values(11,1);
insert into PROMOTOR values(12,2);
insert into PROMOTOR values(13,3);
insert into PROMOTOR values(14,4);
insert into PROMOTOR values(15,5);
go
go

create proc Insertar_Promotor(@codpromotor int, @codproveedor int)


as
insert into PROMOTOR values(@codpromotor, @codproveedor)
return
go

create proc Actualizar_Promotor(@codpromotor int, @codproveedor int)


as
update PROMOTOR set codpromotor =@codpromotor,
codproveedor= @codproveedor where codpromotor = @codpromotor
return
go

create proc Eliminar_Promotor(@codpromotor int)


as
delete from PROMOTOR where codpromotor = @codpromotor
return
go

CREATE TABLE ANIMAL (


codanimal int NOT NULL identity(1,1),
nombre varchar (50) NOT NULL,
PRIMARY KEY(codanimal)
)
go
insert into Animal values('Perro');
insert into Animal values('Gato');
go
create proc Insertar_Animal( @nombre varchar(50))
as
insert into ANIMAL values( @nombre)
return
go
create proc Actualizar_Animal(@cod int, @nombre varchar(50))
as
update ANIMAL set nombre = @nombre where codanimal = @cod
return
go
create proc Eliminar_Animal(@nombre varchar(50))
as
delete ANIMAL where nombre = @nombre
return
go
CREATE TABLE RAZA (
codraza int NOT NULL identity(1,1),
codanimal int not null,
descripcion varchar (10) NOT NULL,
primary key(codraza),
FOREIGN KEY (codanimal) references ANIMAL(codanimal)
on delete cascade
on update cascade
)
go
insert into RAZA values(1,'Doberman');
insert into RAZA values(1,'Chiuahua');
insert into RAZA values(1,'Salchica');
insert into RAZA values(1,'Terrier');
insert into RAZA values(1,'bulldoc');
insert into RAZA values(2,'Siames');
insert into RAZA values(2,'Persa');
go
create proc Insertar_raza( @codanimal int, @descripcion varchar(50))
as
insert into RAZA values( @codanimal, @descripcion)
return
go
create proc Actualizar_raza(@codraza int, @codanimal int, @descripcion
varchar(50))
as
update RAZA set codanimal = @codanimal, descripcion =
@descripcion where codraza = @codraza
return
go
create proc Eliminar_raza(@codraza int)
as
delete from RAZA where codraza = @codraza
return
go
CREATE TABLE MASCOTA (
codmascota int NOT NULL identity(1,1),
codpersona int not null,
codraza int not null,
nombre varchar (50) NULL,
fechanacimiento date NULL,
sexo char (1)not NULL,
tamanio char (10)not NULL,
color varchar (50)not NULL,
fechaderegistro date not null,
primary key (codmascota),
foreign key(codpersona) references persona(codpersona)
on delete cascade
on update cascade,
foreign key(codraza) references RAZA(codraza)
on delete cascade
on update cascade
)
go
insert into MASCOTA values(5,1,'fido','12/10/2011','f','35
cm','cafe','12/12/2012');
insert into MASCOTA values(5,1,'fido2','2/10/2011','m','30
cm','negro','24/11/2012');
insert into MASCOTA values(6,2,'pelusa','15/09/2009','m','35
cm','naranga','16/10/2012');
insert into MASCOTA values(7,1,'robin','03/06/2010','m','35
cm','marron','10/07/2011');
insert into MASCOTA values(8,2,'princesa','05/07/2012','f','13
cm','blanco','06/08/2012');
insert into MASCOTA values(9,1,'iker','01/07/2010','m',' 20
cm','negro','05/08/2010');
insert into MASCOTA values(10,2,'espuma','1/10/2009','f','10
cm','gris','05/02/2010');
go
create proc RegistrarMascota(@codpersona int, @codraza int, @nombre
varchar(50), @fechanacimiento date, @sexo char (1), @tamanio
char(10), @color varchar(50), @fechaderegistro date)
as
insert into MASCOTA values(@codpersona, @codraza,
@nombre,@fechanacimiento,@sexo, @tamanio, @color,
@fechaderegistro)
return
go
create proc EliminarMascota(@codmascota int)
as
delete MASCOTA where MASCOTA.codmascota=@codmascota
return
go
create proc ActualizarMascota(@codmascota int, @codpersona int,
@codraza int, @nombre varchar(50), @fechanacimiento date, @sexo
char (1), @tamanio char(10), @color varchar(50), @fechaderegistro
date)
as
update MASCOTA set codpersona = @codpersona, codraza =
@codraza, nombre = @nombre, fechanacimiento=@fechanacimiento,
sexo=@sexo, tamanio=@tamanio, color=@color,
fechaderegistro=@fechaderegistro where codmascota = @codmascota
return
go
create proc BuscarMascota @COD int
as
select *
from MASCOTA
where MASCOTA.codmascota=@COD
return
go
create table TIPOSERVICIO(
codtiposervicio int identity(1,1) primary key,
nombre varchar(50) not null,
)
go
create proc Insertar_TIPOSERVICIO(@nombre varchar(50))
as
insert into TIPOSERVICIO values(@nombre)
return
go
create proc Buscar_TIPOSERVICIO(@COD int)
as
select * from TIPOSERVICIO where codtiposervicio=@COD
return
go
create proc Eliminar_TIPOSERVICO(@COD int)
as
delete from TIPOSERVICIO where codtiposervicio=@COD
return
go
create proc Actualizar_TIPOSERVICIO(@COD int,@NOMBRE varchar(50))
as
update TIPOSERVICIO set nombre=@NOMBRE where
codtiposervicio=@COD
return
go
insert into TIPOSERVICIO values('vacunacion');
insert into TIPOSERVICIO values('internacion');
insert into TIPOSERVICIO values('curacion');
insert into TIPOSERVICIO values('baño');
insert into TIPOSERVICIO values('peluqueria');
insert into TIPOSERVICIO values('consulta')
insert into TIPOSERVICIO values('cirugia');
go
CREATE TABLE SERVICIO (
codservicio int identity(1,1) primary key,
precio int NOT NULL,
nombre varchar(50) not null,
codtiposervicio int not null,
foreign key(codtiposervicio) references
TIPOSERVICIO(codtiposervicio)
on update cascade
on delete no action
)
go
insert into SERVICIO values(2,'parvovirosis',1);--1
insert into SERVICIO values(2,'Panleucopenia',1);--2
insert into SERVICIO values(2,'MOQUILLO',1);--3
insert into SERVICIO values(2,'Hepatitis',1);--4
insert into SERVICIO values(2,'Coronavirus',1);--5
insert into SERVICIO values(2,'Leptospirosis',1);--6
insert into SERVICIO values(2,'Rabia',1);--7
insert into SERVICIO values(2,'Rinotraqueitis',1);--8
insert into SERVICIO values(2,'FIP',1);--9
insert into SERVICIO values(2,'Leucemia',1);--10
insert into SERVICIO values(400,'cesarea',7);--11
insert into SERVICIO values(20,'consulta en la farmacia',6);--12
go
create proc RegistrarServicio( @precio int, @nombre varchar(50),
@codtiposervicio int)
as
insert into SERVICIO values( @precio, @nombre, @codtiposervicio)
return
go
create proc EliminarServicio(@codservicio int)
as
delete SERVICIO where codservicio=@codservicio
return
go
create proc ActualizarServicio(@codservicio int, @precio int, @nombre
varchar(50), @codtiposervicio int )
as
update SERVICIO set precio= @precio, nombre = @nombre,
codtiposervicio = @codtiposervicio where codservicio = @codservicio
return
go
create proc BuscarServicio @COD int
as
select *
from SERVICIO
where codservicio=@COD
return
go
CREATE TABLE RECEPCION (
codrecepcion int identity(1,1),
fecha date NOT NULL,
codmascota int,
codcliente int,
codpersonal int not null,
primary key(codrecepcion),
foreign key(codcliente) references CLIENTE(codcliente)
on update no action
on delete no action,
foreign key(codmascota) references MASCOTA(codmascota)
on update no action
on delete no action,
foreign key(codpersonal) references PERSONAL(codpersonal)
on update no action
on delete no action,
)
GO
create proc Insertar_RECEPCION(@FECH date,@CODM INT,@CODCL
int,@CODPER int)
as
insert into RECEPCION values
(@FECH,@CODM,@CODCL,@CODPER)
return
go
create proc Buscar_RECEPCION @CODR INT
as
select *
from RECEPCION
where CODRECEPCION=@CODR
return
go
create proc Actualizar_RECEPCION(@COD int, @FECH date,@CODM
INT,@CODCL int,@CODPER int)
as
update RECEPCION set fecha=@FECH where
CODRECEPCION=@COD
update RECEPCION set codmascota=@CODM where
CODRECEPCION=@COD
update RECEPCION set codcliente=@CODCL where
CODRECEPCION=@COD
update RECEPCION set codpersonal=@CODPER where
CODRECEPCION=@COD
return
go
create proc Eliminar_RECEPCION @COD int
as
delete from RECEPCION
where CODRECEPCION=@COD
return
GO
insert into RECEPCION values('25/09/2013',1,5,2);
insert into RECEPCION values('1/07/2009',2,5,2);
insert into RECEPCION values('8/05/2011',3,6,3);
insert into RECEPCION values('1/03/2008',4,7,3);
insert into RECEPCION values('2/10/2013',5,8,3);
insert into RECEPCION values('5/10/2013',6,9,2);
insert into RECEPCION values('2/10/2013',null,7,4);
go
CREATE TABLE SERVICIOSPRESTADOS (
codserviciosprestados int identity(1,1),
codrecepcion int NOT NULL,
codservicio int not NULL,
fecha date not null,
precio int not null,
primary key(codserviciosprestados),
foreign key(codrecepcion) references RECEPCION(codrecepcion)
on delete cascade
on update cascade,
foreign key(codservicio) references SERVICIO(codservicio)
on delete cascade
on update cascade,
)
go
create proc Insertar_SERVICIOSPRESTADOS(@CODRE int,@CODSER
INT,@FECH date,@prec int)
as
insert into SERVICIOSPRESTADOS values
(@CODRE,@CODSER,@FECH,@prec)
return
go
create proc Buscar_SERVICIOSPRESTADOS @COD INT
as
select *
from SERVICIOSPRESTADOS
where CODSERVICIOSPRESTADOS=@COD
return
go
create proc Actualizar_SERVICIOSPRESTADOS(@COD int, @CODRE
int,@CODSER INT,@FECH date,@prec int)
as
update SERVICIOSPRESTADOS set codrecepcion=@CODRE where
CODSERVICIOSPRESTADOS=@COD
update SERVICIOSPRESTADOS set codservicio=@CODSER where
CODSERVICIOSPRESTADOS=@COD
update SERVICIOSPRESTADOS set fecha=@FECH where
CODSERVICIOSPRESTADOS=@COD
update SERVICIOSPRESTADOS set precio=@prec where
CODSERVICIOSPRESTADOS=@COD
return
go
create proc Eliminar_SERVICIOSPRESTADOS @COD int
as
delete from SERVICIOSPRESTADOS
where CODSERVICIOSPRESTADOS=@COD
return
GO
insert into SERVICIOSPRESTADOS values(1,4,'10/10/2013',2);
insert into SERVICIOSPRESTADOS values(2,1,'10/10/2013',2);
insert into SERVICIOSPRESTADOS values(3,2,'10/10/2013',2);
insert into SERVICIOSPRESTADOS values(4,1,'10/10/2013',2);
insert into SERVICIOSPRESTADOS values(5,2,'10/10/2013',2);
insert into SERVICIOSPRESTADOS values(6,3,'10/10/2013',2);
insert into SERVICIOSPRESTADOS values(7,5,'10/10/2013',2);
go
CREATE TABLE RECIBO (
codrecibo int identity(1,1),
fecha date not NULL,
monto int not null,
deuda int not null,
codrecepcion int not null,
primary key(codrecibo),
foreign key(codrecepcion) references RECEPCION(codrecepcion)
on delete cascade
on update cascade
)
go
create proc Insertar_RECIBO(@FECH date,@MONT INT,@DEUD
int,@CODREC int)
as
insert into RECIBO values (@FECH,@MONT,@DEUD,@CODREC)
return
go
create proc Buscar_RECIBO @CODR INT
as
select *
from RECIBO
where CODRECIBO=@CODR
return
go
create proc Actualizar_RECIBO(@COD int, @FECH date,@MONT
INT,@DEUD int,@CODREC int)
as
update RECIBO set fecha=@FECH where CODRECIBO=@COD
update RECIBO set monto=@MONT where CODRECIBO=@COD
update RECIBO set deuda=@DEUD where CODRECIBO=@COD
update RECIBO set codrecepcion=@CODREC where
CODRECIBO=@COD
return
go
create proc Eliminar_RECIBO @COD int
as
delete from RECIBO
where CODRECIBO=@COD
return
GO
CREATE TABLE PROXIMACONSULTA (
codproximaconsulta int identity(1,1),
fecha date NOT NULL,
descripcion varchar (80) NULL,
codrecepcion int not null,
primary key(codproximaconsulta),
foreign key(codrecepcion) references RECEPCION(codrecepcion)
on delete cascade
on update cascade
)
go
create proc Insertar_PROXIMACONSULTA(@FECH date,@DES
varchar(80),@CODR int)
as
insert into PROXIMACONSULTA values (@FECH,@DES,@CODR)
return
go
create proc Buscar_PROXIMACONSULTA @CODP INT
as
select *
from PROXIMACONSULTA
where CODPROXIMACONSULTA=@CODP
return
go
create proc Actualizar_PROXIMACONSULTA(@COD int, @FECH
date,@DES varchar(80),@CODR int)
as
update PROXIMACONSULTA set fecha=@FECH where
CODPROXIMACONSULTA=@COD
update PROXIMACONSULTA set descripcion=@DES where
CODPROXIMACONSULTA=@COD
update PROXIMACONSULTA set codrecepcion=@CODR where
CODPROXIMACONSULTA=@COD
return
go
create proc Eliminar_PROXIMACONSULTA @COD int
as
delete from PROXIMACONSULTA where
CODPROXIMACONSULTA=@COD
return
GO
insert into PROXIMACONSULTA values('25/11/2013','control',1);
insert into PROXIMACONSULTA values('8/06/2011','control',3);
insert into PROXIMACONSULTA values('8/03/2008','control',4);
insert into PROXIMACONSULTA values('1/07/2010','control',2);
go
CREATE TABLE DIAGNOSTICO (
coddiagnostico int identity(1,1),
codrecepcion int not null,
primary key(codrecepcion,coddiagnostico),
foreign key(codrecepcion) references recepcion(codrecepcion)
on update cascade
on delete cascade
)
go
insert into DIAGNOSTICO values(1);
insert into DIAGNOSTICO values(1);
insert into DIAGNOSTICO values(2);
insert into DIAGNOSTICO values(3);
go
create proc RegistrarDiagnostico(@codrecepcion int)
as
insert into DIAGNOSTICO values(@codrecepcion)
return
go
create proc EliminarDiagnostico(@codddiagnostico int, @codrecepcion
int)
as
delete DIAGNOSTICO where coddiagnostico=@codddiagnostico and
codrecepcion=@codrecepcion
return
go
create proc ActualizarDiagnostico(@codddiagnostico int,
@codrecepcion int)
as
update DIAGNOSTICO set codrecepcion= @codrecepcion where
coddiagnostico = @codddiagnostico
return
go
create proc BuscardDiagnostico @COD int
as
select *
from DIAGNOSTICO
where coddiagnostico=@COD
return
go
CREATE TABLE DETALLEDIAGNOSTICO (
coddetallediagnostico int not null identity(1,1),
descripcion varchar (80) NOT NULL,
fecha date NOT NULL,
coddiagnostico int not null,
codrecepcion int not null,
PRIMARY KEY(coddetallediagnostico),
FOREIGN KEY (codrecepcion,coddiagnostico) references
DIAGNOSTICO(codrecepcion,coddiagnostico)
on delete cascade
on update cascade
)
go
insert into DETALLEDIAGNOSTICO values('no ingerir
liquidos','25/09/2013',1,1);
insert into DETALLEDIAGNOSTICO values('no comer
fritos','25/09/2013',1,1);
insert into DETALLEDIAGNOSTICO values('no resivir mucho
sol','25/09/2013',2,1);
insert into DETALLEDIAGNOSTICO values('no ingerir
liquidos','25/09/2013',3,2);
insert into DETALLEDIAGNOSTICO values('no ingerir
liquidos','25/09/2013',4,3);
go
create proc RegistrarDetallediagnostico( @descripcion varchar(50),
@fecha date, @coddiagnostico int, @codrecepcion int)
as
insert into DETALLEDIAGNOSTICO values( @descripcion, @fecha,
@coddiagnostico, @codrecepcion)
return
go
create proc EliminarDetallediagnostico(@coddetallediagnostico int)
as
delete DETALLEDIAGNOSTICO where
coddetallediagnostico=@coddetallediagnostico
return
go
create proc ActualizarDetallediagnostico(@coddetallediagnostico int,
@descripcion varchar(50), @fecha date, @coddiagnostico int,
@codrecepcion int)
as
update DETALLEDIAGNOSTICO set descripcion=
@descripcion,fecha=@fecha,coddiagnostico= @coddiagnostico,
codrecepcion = @codrecepcion where coddetallediagnostico =
@coddetallediagnostico
return
go
create proc BuscarDetallediagnostico @COD int
as
select *
from DETALLEDIAGNOSTICO
where coddetallediagnostico=@COD
return
go
CREATE TABLE TRATAMIENTO (
codtratamiento int not null identity(1,1),
descripcion varchar (50) NULL,
coddetallediagnostico int not null,
primary key(codtratamiento),
foreign key(coddetallediagnostico) references
DETALLEDIAGNOSTICO(coddetallediagnostico)
on delete cascade
on update cascade
)
go
insert into TRATAMIENTO values('parpovirus',1)
insert into TRATAMIENTO values('recetar tabletas',1);
insert into TRATAMIENTO values('vacunas y tabletas',2);
insert into TRATAMIENTO values('recetar tableras',3);
insert into TRATAMIENTO values('recetar tableras',4);
go
create proc RegistrarTratameinto( @descripcion varchar(50),
@coddetallediagnostico int)
as
insert into TRATAMIENTO values( @descripcion,
@coddetallediagnostico)
return
go
create proc EliminarTratamiento(@codtratamiento int)
as
delete TRATAMIENTO where codtratamiento=@codtratamiento
return
go
create proc ActualizarTratamiento(@codtratamiento int, @descripcion
varchar(50), @coddetallediagnostico int)
as
update TRATAMIENTO set descripcion= @descripcion,
coddetallediagnostico = @coddetallediagnostico where codtratamiento =
@codtratamiento
return
go
create proc BuscarTratamiento @COD int
as
select *
from TRATAMIENTO
where codtratamiento=@COD
return
go
CREATE TABLE EVOLUCION (
codevolucion int not null identity(1,1),
codtratamiento int not null,
--coddetallediagnostico int not null,
descripcion varchar (50) NOT NULL,
fecha date NOT NULL,
primary key(codevolucion),
foreign key(codtratamiento) references tratamiento(codtratamiento)
on update cascade
on delete cascade
)
go
insert into EVOLUCION values(1,'sana lentamente','10/11/2013');
insert into EVOLUCION values(1,'empeoro ligeramente','05/11/2013');
insert into EVOLUCION values(1,'sana rapidamente','10/11/2013');
insert into EVOLUCION values(1,'sano completamente','10/11/2013');
go
create proc RegistrarEvolucion(@codtratamiento int,@descripcion
varchar(50), @fecha date)
as
insert into EVOLUCION values( @codtratamiento, @descripcion,
@fecha)
return
go
create proc EliminarEvolucion(@codevolucion int)
as
delete EVOLUCION where codevolucion=@codevolucion
return
go
create proc ActualizarEvolucion(@codevolucion int, @codtratamiento
int,@descripcion varchar(50), @fecha date)
as
update EVOLUCION set codtratamiento=@codtratamiento,
descripcion= @descripcion, fecha = @fecha where codevolucion =
@codevolucion
return
go
create proc BuscarEvolucion @COD int
as
select *
from EVOLUCION
where codevolucion=@COD
return
go
CREATE TABLE RECETA (
codreceta int not null identity(1,1),
descripcion varchar (50) NOT NULL,
coddiagnostico int not null,
codrecepcion int not null,
primary key(codreceta),
foreign key(codrecepcion,coddiagnostico ) references
DIAGNOSTICO(codrecepcion,coddiagnostico)
on delete cascade
on update cascade
)
go
insert into RECETA values('clotricomasol 2 gotas al dia cada 8
horas',1,1);
insert into RECETA values('terramisina 1 ves al dia por 1 semana',2,1);
insert into RECETA values('nitrato de meterla 2 gotas al dia cada 8
horas',3,2);
insert into RECETA values('clotricomasol 2 gotas al dia cada 8
horas',4,3);
go
create proc RegistrarReceta(@descripcion varchar(50),
@coddiagnostico int, @codrecepcion int)
as
insert into RECETA values(@descripcion, @coddiagnostico,
@codrecepcion)
return
go
create proc EliminarReceta(@codreceta int)
as
delete RECETA where codreceta=@codreceta
return
go
create proc ActualizarReceta(@codreceta int, @descripcion varchar(50),
@coddiagnostico int, @codrecepcion int)
as
update RECETA set descripcion=@descripcion, coddiagnostico=
@coddiagnostico, codrecepcion = @codrecepcion where codreceta =
@codreceta
return
go
create proc BuscarReceta @COD int
as
select *
from RECETA
where codreceta=@COD
return
go
CREATE TABLE PEDIDO (
codpedido int identity(1,1),
codpromotor int not null,
codproveedor int not null,
fecha date NOT NULL,
tipodeadquisicion varchar(20) not null,
primary key(codpedido),
foreign key(codpromotor,codproveedor) references
promotor(codpromotor,codproveedor)
on delete cascade
on update cascade
)
go
insert into PEDIDO values(11,1,'12/02/2000','compra');
go
create proc Insertar_PEDIDO(@CODPRO int,@CDPROVE INT,@FECH
date,@TIPOAD varchar(20))
as
insert into PEDIDO values
(@CODPRO,@CDPROVE,@FECH,@TIPOAD)
return
go
create proc Buscar_PEDIDO @CODP INT
as
select *
from PEDIDO
where CODPEDIDO=@CODP
return
go
create proc Actualizar_PEDIDO(@COD int, @CODPRO int,@CDPROVE
INT,@FECH date,@TIPOAD varchar(20))
as
update PEDIDO set codpromotor=@CODPRO where
CODPEDIDO=@COD
update PEDIDO set codproveedor=@CDPROVE where
CODPEDIDO=@COD
update PEDIDO set fecha=@FECH where CODPEDIDO=@COD
update PEDIDO set tipodeadquisicion=@TIPOAD where
CODPEDIDO=@COD
return
go
create proc Eliminar_PEDIDO @COD int
as
delete from PEDIDO where CODPEDIDO=@COD
return
GO
CREATE TABLE PRODUCTO (
codproducto int identity(1,1),
nombre varchar (50) not NULL,
precioventa decimal(12,2) not null,
marca varchar(50) not null,
primary key(codproducto)
)
go
create proc Insertar_PRODUCTO(@NOMB VARCHAR(50),@PRECV
decimal(12,2),@MAR VARCHAR(50))
as
insert into PRODUCTO values (@NOMB,@PRECV,@MAR)
return
go
create proc Buscar_PRODUCTO @CODP INT
as
select *
from PRODUCTO
where CODPRODUCTO=@CODP
return
go
create proc Buscar_PRODUCTOnomb @nomb INT
as
select *
from PRODUCTO
where nombre=@nomb
return
go
create proc Buscar_PRODUCTOmarca @mar INT
as
select *
from PRODUCTO
where marca=@mar
return
go
create proc Actualizar_PRODUCTO(@COD int, @NOMB
VARCHAR(50),@PRECV decimal(12,2),@MAR VARCHAR(50))
as
update PRODUCTO set nombre=@NOMB where
CODPRODUCTO=@COD
update PRODUCTO set precioventa=@PRECV where
CODPRODUCTO=@COD
update PRODUCTO set marca=@MAR where
CODPRODUCTO=@COD
return
go
create proc Eliminar_PRODUCTO @COD int
as
delete from PRODUCTO
where CODPRODUCTO=@COD
return
GO
insert into PRODUCTO values('Plato grande',35,'ifa');--1
insert into PRODUCTO values('Plato pequeño',15,'plas');--2
insert into PRODUCTO values('Hueso de hule',25,'ind');--3
insert into PRODUCTO values('Shampoo',20,'shel');--4
insert into PRODUCTO values('Jabon',7,'guabira');--5
insert into PRODUCTO values('Dectamol',19,'ifa');--6
insert into PRODUCTO values('Tecamol',18,'ifa');--7
insert into PRODUCTO values('Paratec',14,'ifa');--8
insert into PRODUCTO values('Dinamoc',16,'ifa');--9
insert into PRODUCTO values('Soldec',15,'ifa');--10
insert into PRODUCTO values('Pasmopina',135,'ifa');--11
insert into PRODUCTO values('Dogchau',30,'ifa');--12
insert into PRODUCTO values('Catchau',36,'sopro');--13
insert into PRODUCTO values('pedigree',45,'sopro');--14
insert into PRODUCTO values('CANIGEN 7 10 Dosis',35,'ifa');--15
go
CREATE TABLE DETALLEVENTA (
coddetalleventa int identity(1,1),
cantidad int NOT NULL,
precio int NOT NULL,
codrecepcion int not null,
codproducto int not null,
codlote int,
PRIMARY KEY(coddetalleventa),
FOREIGN KEY (codproducto) references PRODUCTO(codproducto)
on delete cascade
on update cascade,
FOREIGN KEY (codrecepcion) references
RECEPCION(codrecepcion)
on delete cascade
on update cascade
)
go
create proc RegistrarDetalleventa( @cantidad int, @precio int,
@codrecepcio int, @codproducto int, @codlote int)
as
insert into DETALLEVENTA values( @cantidad, @precio,
@codrecepcio, @codproducto, @codlote)
return
go
create proc EliminarDetalleventa(@coddetalleventa int)
as
delete DETALLEVENTA where coddetalleventa=@coddetalleventa
return
go
create proc ActualizarDetalleventa(@coddetalleventa int, @cantidad int,
@precio int, @codrecepcio int, @codproducto int, @codlote int)
as
update DETALLEVENTA set cantidad=@cantidad,precio= @precio,
codproducto = @codproducto, codlote = @codlote where
coddetalleventa = @coddetalleventa
return
go
create proc BuscarDetalleventa @COD int
as
select *
from DETALLEVENTA
where coddetalleventa=@COD
return
--go
--create TRIGGER actualizar_cantproducto
--ON detalleventa
--FOR INSERT
--AS
--begin

-- DECLARE @CODPROD VARCHAR(4),@CANT INT, @cantprod int


-- SELECT @CODPROD=codproducto,@CANT=cantidad FROM
inserted
-- declare @cantrestante int, @cantproducto int
-- select @cantproducto = producto.cantidad from inserted, producto
where inserted.codproducto = producto.codproducto
-- set @cantrestante = @cantproducto - @cant
-- if @cantrestante < 0
-- begin
-- print 'Stock!!!'
-- rollback
-- end
-- else
-- begin
-- UPDATE PRODUCTO SET cantidad =cantidad-@CANT
-- WHERE codproducto=@CODPROD
-- commit
-- end
--end
go
CREATE TABLE DETALLEPEDIDO (
coddetallepedido int IDENTITY(1,1),
cantidad int NULL,
precio int NULL,
codproducto int not null,
codpedido int not null,
PRIMARY KEY(coddetallepedido),
FOREIGN KEY (codproducto) references PRODUCTO(codproducto)
on delete cascade
on update cascade,
FOREIGN KEY (codpedido) references PEDIDO(codpedido)
on delete cascade
on update cascade
)
go
create proc Insertar_DETALLEPEDIDO(@CANT int,@PREC INT,@CODP
INT,@CODPE INT)
as
insert into DETALLEPEDIDO values
(@CANT,@PREC,@CODP,@CODPE)
return
go
create proc Buscar_DETALLEPEDIDO @CODP INT
as
select *
from DETALLEPEDIDO
where CODDETALLEPEDIDO=@CODP
return
go
insert into DETALLEPEDIDO values(10, 300, 1, 1)
insert into DETALLEPEDIDO values(10, 100, 2, 1)
insert into DETALLEPEDIDO values(10, 200, 3, 1)
insert into DETALLEPEDIDO values(10, 150, 4, 1)
insert into DETALLEPEDIDO values(10, 50, 5, 1)
insert into DETALLEPEDIDO values(10, 150, 6, 1)
insert into DETALLEPEDIDO values(10, 100, 7, 1)
insert into DETALLEPEDIDO values(10, 50, 8, 1)
insert into DETALLEPEDIDO values(10, 200, 9, 1)
insert into DETALLEPEDIDO values(10, 300, 10, 1)
insert into DETALLEPEDIDO values(10, 1000, 11, 1)
insert into DETALLEPEDIDO values(10, 200, 12, 1)
insert into DETALLEPEDIDO values(10, 250, 13, 1)
insert into DETALLEPEDIDO values(10, 300, 14, 1)
go
CREATE TABLE POLITICADEDEVOLUCION (
codpoliticadevolucion int identity(1,1),
descripcion varchar (50) NOT NULL,
codproducto int not null,
codproveedor int not null,
primary key( codpoliticadevolucion),
foreign key(codproducto) references PRODUCTO(codproducto)
on delete cascade
on update cascade,
foreign key(codproveedor) references PROVEEDOR(codproveedor)
on delete cascade
on update cascade
)
go
create proc Insertar_POLITICADEDEVOLUCION(@DES
varchar(50),@CDPR INT,@CODPROV int)
as
insert into POLITICADEDEVOLUCION values
(@DES,@CDPR,@CODPROV)
return
go
create proc Buscar_POLITICADEDEVOLUCION @CODP INT
as
select *
from POLITICADEDEVOLUCION
where CODPOLITICADEVOLUCION=@CODP
return
go
create proc Actualizar_POLITICADEDEVOLUCION(@COD int, @DES
varchar(50),@CDPR INT,@CODPROV int)
as
update POLITICADEDEVOLUCION set descripcion=@DES where
CODPOLITICADEVOLUCION=@COD
update POLITICADEDEVOLUCION set codproducto=@CDPR where
CODPOLITICADEVOLUCION=@COD
update POLITICADEDEVOLUCION set codproveedor=@CODPROV
where CODPOLITICADEVOLUCION=@COD
return
go
create proc Eliminar_POLITICADEDEVOLUCION @COD int
as
delete from POLITICADEDEVOLUCION
where CODPOLITICADEVOLUCION=@COD
return
GO
insert into POLITICADEDEVOLUCION values('no devolvible', 1, 1)
insert into POLITICADEDEVOLUCION values('no devolvible', 2, 1)
insert into POLITICADEDEVOLUCION values('no devolvible', 3, 1)
insert into POLITICADEDEVOLUCION values('no devolvible', 4, 1)
insert into POLITICADEDEVOLUCION values('no devolvible', 5, 1)
insert into POLITICADEDEVOLUCION values('devolvible', 6, 1)
insert into POLITICADEDEVOLUCION values('devolvible', 7, 1)
insert into POLITICADEDEVOLUCION values('devolvible', 8, 1)
insert into POLITICADEDEVOLUCION values('devolvible', 9, 1)
insert into POLITICADEDEVOLUCION values('devolvible', 10, 1)
insert into POLITICADEDEVOLUCION values('devolvible', 11, 1)
insert into POLITICADEDEVOLUCION values('no devolvible', 12, 1)
insert into POLITICADEDEVOLUCION values('no devolvible', 13, 1)
insert into POLITICADEDEVOLUCION values('no devolvible', 14, 1)
go
CREATE TABLE DEVUELTO (
coddevuelto int identity(1,1),
codproducto int not null,
codlote int not null,
codproveedor int not null,
cantidad int NOT NULL,
motivo varchar (50) NOT NULL,
fecha Date not null,
primary key(coddevuelto),
foreign key(codproducto) references producto(codproducto)
on delete cascade
on update cascade,
foreign key(codproveedor) references proveedor(codproveedor)
on delete cascade
on update cascade
)
go
create proc Insertar_DEVUELTO(@CODPRO int,@CODLO
int,@CDPROVE INT,@CANT int,@MOT varchar(50),@FECH Date)
as
insert into DEVUELTO values
(@CODPRO,@CODLO,@CDPROVE,@CANT,@MOT,@FECH)
return
go
create proc Buscar_DEVUELTO @COD INT
as
select *
from DEVUELTO
where CODDEVUELTO=@COD
return
go
create proc Actualizar_DEVUELTO(@COD int, @CODPRO int,@CODLO
int,@CDPROVE INT,@CANT int,@MOT varchar(50),@FECH Date)
as
update DEVUELTO set codproducto=@CODPRO where
CODDEVUELTO=@COD and codlote=@CODLO
update DEVUELTO set codproveedor=@CDPROVE where
CODDEVUELTO=@COD and codlote=@CODLO
update DEVUELTO set cantidad=@CANT where
CODDEVUELTO=@COD and codlote=@CODLO
update DEVUELTO set motivo=@MOT where CODDEVUELTO=@COD
and codlote=@CODLO
update DEVUELTO set fecha=@FECH where coddevuelto=@COD and
codlote=@CODLO
return
go
create proc Eliminar_DEVUELTO @COD int
as
delete from DEVUELTO
where CODDEVUELTO=@COD
return
GO
CREATE TABLE DESECHADO (
coddesechado int IDENTITY(1,1),
codlote int ,
fecha date NULL,
motivo varchar (50) NULL,
codproducto int not null,
cantidad int not null,
PRIMARY KEY(coddesechado),
FOREIGN KEY (codproducto) references PRODUCTO(codproducto)
on delete cascade
on update cascade
)
go
create trigger actualizarcant
on desechado
after insert
as
declare @codlo int,@codproduc int,@a int;
select @codproduc=codproducto from inserted
if @codproduc in (select codproducto from medicamento)
begin
select @codlo=codlote from inserted
select @a=cantidad from inserted
update medicamento set cantidad =(cantidad-@a) where
codproducto=@codproduc and codlote=@codlo
end
if @codproduc in (select codproducto from articulos)
begin
select @a=cantidad from inserted
update articulos set cantidad =(cantidad-@a) where
codproducto=@codproduc
end
if @codproduc in (select codproducto from alimento)
begin
select @codlo=codlote from inserted
select @a=cantidad from inserted
update alimento set cantidad =(cantidad-@a) where
codproducto=@codproduc and codlote=@codlo
end
go
create proc Insertar_DESECHADO(@CODLOT int,@FECH date,@MOT
varchar(50),@CODPRO int,@cant int)
as
insert into DESECHADO values
(@CODLOT,@FECH,@MOT,@CODPRO,@cant)
return
go
create proc Buscar_DESECHADO @COD INT
as
select *
from DESECHADO
where CODDESECHADO=@COD
return
go
create proc Actualizar_DESECHADO(@COD int, @CODLOT int,@FECH
date,@MOT varchar(50),@CODPRO int,@cant int)
as
update DESECHADO set codlote=@CODLOT where
CODDESECHADO=@COD
update DESECHADO set fecha=@FECH where
CODDESECHADO=@COD
update DESECHADO set motivo=@MOT where
CODDESECHADO=@COD
update DESECHADO set codproducto=@CODPRO where
CODDESECHADO=@COD
update DESECHADO set cantidad=@cant where
CODDESECHADO=@COD
return
go
create proc Eliminar_DESECHADO @COD int
as
delete from DESECHADO
where CODDESECHADO=@COD
return
GO
CREATE TABLE ALIMENTO(
codlote int identity(2000,1),
descripcion varchar(50) NULL,
cantidad int not null,
preciocompra decimal(12,2) not null,
fechadevencimiento date NULL,
codproducto int not null,
PRIMARY KEY(codlote),
FOREIGN KEY (codproducto) references PRODUCTO(codproducto)
on delete no action
on update cascade
)
insert into ALIMENTO values ('alimento para perro 1
kg',10,25 ,'01/01/2014',12)
insert into ALIMENTO values ('alimento para gatos 1 kg',10,
28,'01/01/2014',13)
insert into ALIMENTO values ('alimento para perro 2
kg',10,40 ,'01/01/2014',14)

go
create proc Insertar_ALIMENTO(@DES varchar(50),@CANT int,@PRECC
decimal(12,2),@FECH date,@COD int)
as
insert into ALIMENTO values
(@DES,@CANT,@PRECC,@FECH,@COD)
return
go
create proc Buscar_ALIMENTO @CODLO INT
as
select *
from ALIMENTO
where codlote=@CODLO
return
go
create proc Buscar_ALIMENTOLOTE @CODLOT INT
as
select *
from ALIMENTO
where codlote=@CODLOT
return
go
create proc Actualizar_ALIMENTO(@CODLO int,@DES
varchar(50),@CANT int,@PRECC decimal(12,2),@FECH date,@COD int)
as
update ALIMENTO set codproducto=@COD where
codproducto=@COD AND CODLOTE=@CODLO
update ALIMENTO set descripcion=@DES where
codproducto=@COD AND CODLOTE=@CODLO
update ALIMENTO set cantidad=@CANT where codproducto=@COD
AND CODLOTE=@CODLO
update ALIMENTO set preciocompra=@PRECC where
codproducto=@COD AND CODLOTE=@CODLO
update ALIMENTO set fechadevencimiento=@FECH where
codproducto=@COD AND CODLOTE=@CODLO
return
go
create proc Eliminar_ALIMENTO @CODLO int
as
delete from ALIMENTO where codlote=@CODLO
return
GO
CREATE TABLE ARTICULOS (
codarticulos int identity(1,1),
descripcion varchar (50) NOT NULL,
cantidad int not null,
codproducto int not null,
PRIMARY KEY(codarticulos),
FOREIGN KEY (codproducto) references PRODUCTO(codproducto)
on delete cascade
on update cascade
)
go
insert into ARTICULOS values ('accesorio',10,1)
insert into ARTICULOS values ('accesorio',8,2)
insert into ARTICULOS values ('accesorio',9,3)
insert into ARTICULOS values ('aseo',7,4)
insert into ARTICULOS values ('aseo',6,5)

go
create proc INSERTAR_ARTICULO(@descripcion varchar(50), @cantidad
int, @codproducto int)
as
insert into ARTICULOS values (@descripcion, @cantidad,
@codproducto)
return
go

alter proc ACTUALIZAR_ARTICULO (@coarticulo int, @descripcion


varchar(50), @cantidad int, @codproducto int)
as
--update PRODUCTO set nombre = @descripcion where codproducto
= @codproducto
update ARTICULOS set cantidad=@cantidad,
descripcion=@descripcion, codproducto=@codproducto where
codarticulos = @coarticulo
return

go

alter PROC ELIMINAR_ARTICULO(@codarticulo int, @NOMBRE


VARCHAR(50))
AS
--DELETE PRODUCTO WHERE nombre =@NOMBRE
delete ARTICULOS where codarticulos=@codarticulo
RETURN
go

select* from MEDICAMENTO

CREATE TABLE MEDICAMENTO (


fechadevencimiento date NULL,
codlote int identity(1000,1),
uso varchar(50),
cantidad int not null,
preciocompra decimal(12,2) not null,
codproducto int not null,
primary key (codlote),
foreign key(codproducto) references producto(codproducto)
on delete cascade
on update cascade
)
insert into MEDICAMENTO values('01/01/2014','perros y gatos',7,10,6)
insert into MEDICAMENTO values('01/01/2014','perros',8,11,7)
insert into MEDICAMENTO values('01/01/2014','perros',8,8,8)
insert into MEDICAMENTO values('01/01/2014','perros',9,11,9)
insert into MEDICAMENTO values('01/01/2014','perros',5,10,10)
insert into MEDICAMENTO values('01/01/2014','gatos',1,100,11)
insert into MEDICAMENTO values('01/01/2014','perros adultos',6,30,15)
go

alter proc Insertar_Medicamento( @fechadevencimiento date, @uso


varchar(50), @cantidad int, @preciocompra decimal(12,2),
@codproducto int)
as
insert into MEDICAMENTO values(@fechadevencimiento, @uso,
@cantidad, @preciocompra, @codproducto)
return
go

create proc Actualizar_Medicamento(@fechadevencimiento date,


@codlote int, @uso varchar(50), @cantidad int, @preciocompra
decimal(12,2), @codproducto int)
as
update MEDICAMENTO set fechadevencimiento =
@fechadevencimiento, uso=@uso, cantidad=@cantidad,
preciocompra=@preciocompra, codproducto=@codproducto where
codlote=@codlote
return
go
create proc Eliminar_Medicamento(@codlote int)
as
delete MEDICAMENTO where codlote = @codlote
return
go

create table productoutilizado(


codproductoutilizado int identity(1,1) primary key,
cantidad int not null,
fecha date not null,
codproducto int not null,
codlote integer,
codserviciosprestados int not null,
foreign key(codserviciosprestados) references
SERVICIOSPRESTADOS(codserviciosprestados)
on delete no action
on update cascade
)
GO
create trigger actualizarcantproductutilizado
on productoutilizado
after insert
as
declare @codlo int,@codproduc int,@a int;
select @codproduc=codproducto from inserted
if @codproduc in (select codproducto from medicamento)
begin
select @codlo=codlote from inserted
select @a=cantidad from inserted
update medicamento set cantidad =(cantidad-@a) where
codproducto=@codproduc and codlote=@codlo
end
if @codproduc in (select codproducto from articulos)
begin
select @a=cantidad from inserted
update articulos set cantidad =(cantidad-@a) where
codproducto=@codproduc
end
if @codproduc in (select codproducto from alimento)
begin
select @codlo=codlote from inserted
select @a=cantidad from inserted
update alimento set cantidad =(cantidad-@a) where
codproducto=@codproduc and codlote=@codlo
end
go
create proc Insertar_PRODUCTOUTILIZADO(@CANT int,@FECH
date,@CODPR int,@CODLO integer,@CODSERPRES int)
as
insert into productoutilizado values
(@CANT,@FECH,@CODPR,@CODLO,@CODSERPRES)
return
go
create proc Actualizar_PRODUCTOUTILIZADO(@COD int,@CANT
int,@FECH date,@CODPR int,@CODLO int,@CODSERPRES int)
as
update PRODUCTOUTILIZADO set cantidad=@CANT where
codproductoutilizado=@COD and codlote=@CODLO
update PRODUCTOUTILIZADO set fecha=@FECH where
codproductoutilizado=@COD and codlote=@CODLO
update PRODUCTOUTILIZADO set codproducto=@CODPR
where codproductoutilizado=@COD and codlote=@CODLO
update PRODUCTOUTILIZADO set codlote=@CODPR where
codproductoutilizado=@COD and codlote=@CODLO
update PRODUCTOUTILIZADO set
codserviciosprestados=@CODSERPRES where
codproductoutilizado=@COD and codlote=@CODLO
return
go
create table suma(
codrecepcion int not null primary key,
montoser int not null,
montopro int not null,
total int not null
)
go
create trigger crearsuma
on recepcion
after insert
as
declare @codrecep int,@codmascota int;
select @codmascota=codmascota from inserted
if @codmascota is not null
begin
select @codrecep=codrecepcion from inserted
insert into suma values(@codrecep,0,0,0)
end
go
create trigger calsumaserviciosprestados
on serviciosprestados
after insert
as
declare @precio int,@codrecep int;
select @codrecep=codrecepcion from inserted

select @precio=precio from inserted


update suma set montoser=(montoser+@precio) where
suma.codrecepcion=@codrecep
update suma set total=(total+@precio) where
suma.codrecepcion=@codrecep
go
create trigger calsumaproutilizados
on productoutilizado
after insert
as
declare @codproduc int,@can int,@codserp int,@precio
int,@codrecep int;
select @codproduc=codproducto from inserted
select @can=cantidad from inserted
select @codserp=codserviciosprestados from inserted
select @codrecep=codrecepcion from serviciosprestados where
serviciosprestados.codserviciosprestados=@codserp

select @precio=precioventa from producto where


producto.codproducto=@codproduc
update suma set montopro=(montopro+(@precio*@can)) where
suma.codrecepcion=@codrecep
update suma set total=(total+(@precio*@can)) where
suma.codrecepcion=@codrecep
go
CREATE TABLE PAGO(
codpago int not null identity(1,1),
concepto char(40),
fecha date not null,
monto int not null,
codrecepcion int not null
primary key(codpago),
foreign key(codrecepcion) references RECEPCION(codrecepcion)
on delete cascade
on update cascade
)
go
create trigger actcanpro
on devuelto
after insert
as
declare @codlo int,@codproduc int,@a int;
select @codproduc=codproducto from inserted
if @codproduc in (select codproducto from medicamento)
begin
select @codlo=codlote from inserted
select @a=cantidad from inserted
update medicamento set cantidad =(cantidad-@a) where
codproducto=@codproduc and codlote=@codlo
end
if @codproduc in (select codproducto from alimento)
begin
select @codlo=codlote from inserted
select @a=cantidad from inserted
update alimento set cantidad =(cantidad-@a) where
codproducto=@codproduc and codlote=@codlo
end
go
create proc Insertar_PAGO(@CONC char(40),@FECH date,@MON
int,@CODRE int)
as
declare @totaldeuda int,@deuda int,@cod int,@aux int;
set @cod=@CODRE
select @deuda= total from suma where codrecepcion=@cod
set @aux=0
if (select sum(monto) from pago where codrecepcion=@cod) is not
null
begin
select @aux=sum(monto) from PAGO where
codrecepcion=@cod
end
select @totaldeuda=@deuda-@aux
if (@MON<=@totaldeuda)
begin
insert into PAGO values
(@CONC,@FECH,@MON,@CODRE)
end
else
begin
raiserror('no se puede insertar',16,1)
select @@ERROR
end
return
go
create proc caldeuda(@codrec int)
as
declare @total int,@pagos int,@deuda int;
select @total=total from suma where codrecepcion=@codrec
select @pagos=SUM(monto) from PAGO where
codrecepcion=@codrec
select @deuda=(@total-@pagos)
select @deuda as deudatotal
return
go
create proc Buscar_PAGO @CODP INT
as
select *
from PAGO
where CODPAGO=@CODP
return
go
create proc Actualizar_PAGO(@COD int, @CONC char(40),@FECH
date,@MON int,@CODRE int)
as
update PAGO set concepto=@CONC where CODPAGO=@COD
update PAGO set fecha=@FECH where CODPAGO=@COD
update PAGO set monto=@MON where CODPAGO=@COD
update PAGO set codrecepcion=@CODRE where CODPAGO=@COD
return
go
create proc Eliminar_PAGO @COD int
as
delete from PAGO
where CODPAGO=@COD
return
GO
create table LISTADEPAQUETES(
codpaquete int identity(100,1) primary key,
ADM_PERSONA BIT NOT NULL,
ADM_SERVICIO BIT NOT NULL,
ADM_INVENTARIO BIT NOT NULL,
ADM_VENTAS BIT NOT NULL,
ADM_MASCOTA BIT NOT NULL,
REPORTES BIT NOT NULL,
GESTION_USUARIO BIT NOT NULL,
)
go-- drop proc insertarlistadepaquetes
create proc insertarlistadepaquetes(@per bit,@servi bit,@inv bit,@ven
bit,@masc bit,@report bit,@ges bit)
as
insert into LISTADEPAQUETES
values(@per,@servi,@inv,@ven,@masc,@report,@ges)
return
go
create proc buscarlistadepaquetes(@codl int)
as
select * from LISTADEPAQUETES where codpaquete=@codl
return
go
insert into LISTADEPAQUETES values(1,1,1,1,1,1,1)--superusuario
insert into LISTADEPAQUETES values(1,1,0,0,0,0,0)--invitado
create table GRUPO(
CODGRUPO INT IDENTITY(1,1),
DESCRIPCION CHAR(30) NOT NULL,
CODLISTA INT NOT NULL,
ACTIVADO BIT NOT NULL,--0 ES NO, 1 ES SI
PRIMARY KEY(CODGRUPO),
FOREIGN KEY(CODLISTA) references
LISTADEPAQUETES(codpaquete)
ON UPDATE CASCADE
);
GO
INSERT into GRUPO VALUES ('ADMINISTRADOR',100,1);--EL 4
ATRIBUTO ES EL DE ACTIVACION DEL GRUPO SI ES 0 ESTA
DESACTIVADO Y SI ES 1 ESTA ACTIVADO
INSERT into GRUPO VALUES ('INVITADO',101,1)
go
create proc Insertar_GRUPO(@DES CHAR(30),@CDLI INT,@BOOL BIT)
as
insert into GRUPO values (@DES,@CDLI,@BOOL)
return
go
create proc Buscar_GRUPO @ID char(30)
as
select *
from GRUPO
where CODGRUPO=@ID
return
go
create proc Actualizar_GRUPO(@Cod int, @DES char(30),@C
INT,@CODLI INT,@ACT INT)
as
update GRUPO set DESCRIPCION=@DES where CODGRUPO=@Cod
update GRUPO set CODLISTA=@CODLI where CODGRUPO=@Cod
update GRUPO set ACTIVADO=@ACT where CODGRUPO=@Cod
return
go
create proc Eliminar_GRUPO @ID int
as
delete from GRUPO where CODGRUPO=@ID
return
go----------------------------------------------------------------------------------------------------
----------------------------
create table USUARIO(
IDUSUARIO char(30) NOT NULL,
PASS CHAR(32) NOT NULL,
CI INT NOT NULL,
CODGRUPO INT NOT NULL,
PRIMARY KEY(IDUSUARIO),
FOREIGN KEY(CI) references persona(codpersona)
ON UPDATE CASCADE,
FOREIGN KEY(CODGRUPO) references GRUPO(CODGRUPO)
ON UPDATE CASCADE,
);
GO
select * from PERSONA
insert into PERSONA values(7712389,'Joaquin Chumacero','calle los
angeles',70102030)
insert into PERSONA values(7700559,'Patricia Aquilera','calle los
mangos',78065252)
go
INSERT into USUARIO VALUES('ADMIN','12345', 7712389, 1);
INSERT into USUARIO VALUES('INVITADO','123', 7700559, 1);
go
create proc Insertar_USUARIO (@CODUS varchar(20), @PAS
CHAR(32),@CI INT,@CDGRP INT)
as
insert into USUARIO values (@CODUS,@PAS,@CI,@CDGRP)
return
go
create proc Buscar_USUARIO @ID char(30)
as
select *
from USUARIO
where IDUSUARIO=@ID
return
go
create proc Buscar_USUARIOVALIDAR @ID char(32), @pas char(32)
as
select *
from USUARIO
where IDUSUARIO=@ID and PASS=@pas
return
go
create proc Actualizar_USUARIO(@Cod int, @PASWOR char(32),@C
INT,@CODGRP INT)
as
update USUARIO set PASS=@PASWOR where IDUSUARIO=@Cod
update USUARIO set CI=@C where IDUSUARIO=@Cod
update USUARIO set CODGRUPO=@CODGRP where
IDUSUARIO=@Cod
return
go
create proc Eliminar_USUARIO @ID char(30)
as
delete from USUARIO where IDUSUARIO=@ID
return
go

------------------------------
--create trigger actrecibo
-- on pago
-- after insert
-- as
-- declare @a int,@codproduc int;

-- begin
-- select @a=cantidad from inserted
-- select @codproduc=codproducto from inserted
-- update producto set cantidad=(cantidad-@a) where
producto.codproducto=@codproduc
-- end
--go
-----------------------------------

/*select RECIBO.codrecepcion, RECIBO.codrecibo, SERVICIO.nombre,


SERVICIOSPRESTADOS.precio, RECIBO.fecha, RECIBO.monto
from RECEPCION, SERVICIO, SERVICIOSPRESTADOS, RECIBO
where RECEPCION.codrecepcion=8 and RECIBO.codrecepcion=
RECEPCION.codrecepcion and
SERVICIOSPRESTADOS.codrecepcion=
RECEPCION.codrecepcion and
SERVICIOSPRESTADOS.codservicio= SERVICIO.codservicio

select RECIBO.codrecepcion, RECIBO.codrecibo,


DETALLEVENTA.coddetalleventa, DETALLEVENTA.codproducto,
PRODUCTO.nombre, PRODUCTO.precioventa,DETALLEVENTA.cantidad,
RECIBO.monto
from RECEPCION, RECIBO, DETALLEVENTA, PRODUCTO
where RECEPCION.codrecepcion=8 and RECIBO.codrecepcion=
RECEPCION.codrecepcion and
DETALLEVENTA.codrecepcion= RECEPCION.codrecepcion
and
DETALLEVENTA.codproducto= producto.codproducto */

----administracion de usuarios
--ELIMINAR Y SELECCIONAR
--DROP TABLE GRUPODEPRIVILEGIO
--go
--DROP TABLE GRUPOS
--go
--DROP TABLE USUARIOS
--go
--DROP TABLE PRIVILEGIOS
--go
--DROP TABLE CASOSDEUSO
--go
--DROP TABLE PAQUETE
--GO

--SELECT * FROM GRUPOS


--SELECT * FROM USUARIOS
--SELECT * FROM PAQUETE
--SELECT * FROM CASOSDEUSO
--SELECT * FROM PRIVILEGIOS
--SELECT * FROM GRUPODEPRIVILEGIO
GO
CREATE TABLE GRUPOS(
CODGRUPO INT NOT NULL IDENTITY(1, 1),
DESCRIPCION VARCHAR(30),
PRIMARY KEY(CODGRUPO)
);
GO
INSERT INTO GRUPOS VALUES('ADMINISTRADOR')

GO
CREATE PROC INSERTAR_GRUPOS(@DESCRIPCION VARCHAR(30))
AS
INSERT INTO GRUPOS VALUES(@DESCRIPCION)
RETURN
GO
CREATE PROC ACTUALIZAR_GRUPOS(@CODGRUPO INT,
@DESCRIPCION VARCHAR(30))
AS
UPDATE GRUPOS SET DESCRIPCION = @DESCRIPCION WHERE
CODGRUPO = @CODGRUPO
RETURN
GO

CREATE PROC ELIMINAR_GRUPOS(@CODGRUPO INT)


AS
DELETE FROM GRUPOS WHERE CODGRUPO = @CODGRUPO
RETURN
GO

CREATE TABLE USUARIOS(


CODUSUARIO INT NOT NULL IDENTITY(1, 1),
CODGRUPOS INT,
CODPERSONAL INT,
NOMBREUSUARIO VARCHAR(30),
CONTRASENIA VARCHAR(30),
ESTADO VARCHAR(20),
PRIMARY KEY(CODUSUARIO),
FOREIGN KEY(CODGRUPOS) REFERENCES GRUPOS(CODGRUPO),
FOREIGN KEY(CODPERSONAL) REFERENCES
PERSONAL(CODPERSONAL),
);
GO
INSERT INTO USUARIOS VALUES(1, 1,'BAR', '123', 'HABILITADO')
GO

create proc Insertar_Usuarios(@codgrupo int, @codpersonal int,


@nombreusuario varchar(30), @contra varchar(30), @estado
varchar(20))
as
insert into USUARIOS values(@codgrupo, @codpersonal,
@nombreusuario, @contra, @estado)
return
go

create proc Actualizar_Usuarios(@codusuario int, @codgrupo int,


@codpersonal int, @nombreusuario varchar(30), @contra varchar(30),
@estado varchar(20))
as
update USUARIOS set CODGRUPOS = @codgrupo, CODPERSONAL
= @codpersonal, NOMBREUSUARIO = @nombreusuario,
CONTRASENIA =@contra, ESTADO = @estado where
CODUSUARIO = @codusuario
return
go

create proc Eliminar_Usuarios(@codusuario int)


as
delete from USUARIOS where CODUSUARIO = @codusuario
return
go
create proc Buscar_USUARIOSVALIDAR (@nombre varchar(30), @pas
varchar(30))
as
select *
from USUARIOS
where NOMBREUSUARIO=@nombre and CONTRASENIA=@pas
return
go
go
create proc Buscar_USUARIOS @nombre char(30)
as
select *
from USUARIOS
where NOMBREUSUARIO=@nombre
return
go
exec Buscar_USUARIOS 'bar'
go
create table PAQUETE(
CODPAQUETE INT NOT NULL IDENTITY(1, 1),
DESCRIPCIONPAQUETE VARCHAR(30),
PRIMARY KEY (CODPAQUETE)
);
GO
INSERT INTO PAQUETE VALUES('ADM_PERSONA');
INSERT INTO PAQUETE VALUES('ADM_SERVICIO');
INSERT INTO PAQUETE VALUES('ADM_INVENTARIO');
INSERT INTO PAQUETE VALUES('ADM_VENTAS');
INSERT INTO PAQUETE VALUES('ADM_MASCOTA');
INSERT INTO PAQUETE VALUES('ADM_USUARIO');
GO

create proc Insertar_Paquete(@descripcionpaquete varchar(30))


as
insert into PAQUETE values(@descripcionpaquete)
return
go
CREATE TABLE CASOSDEUSO(
CODIGOCASODEUSO INT NOT NULL IDENTITY(1,1),
CODPAQUETE INT NOT NULL,
DESCRIPCION VARCHAR(30),
PRIMARY KEY(CODIGOCASODEUSO),
FOREIGN KEY(CODPAQUETE) REFERENCES PAQUETE(CODPAQUETE)
ON DELETE CASCADE
ON UPDATE CASCADE
);
GO
INSERT INTO CASOSDEUSO VALUES(1, 'CLIENTE')
INSERT INTO CASOSDEUSO VALUES(1, 'PERSONAL')
INSERT INTO CASOSDEUSO VALUES(1, 'PROVEEDOR')
INSERT INTO CASOSDEUSO VALUES(1, 'PROMOTOR')

INSERT INTO CASOSDEUSO VALUES(2, 'SERVICIOS')


INSERT INTO CASOSDEUSO VALUES(2, 'TIPOS DE SERCIVIOS')

INSERT INTO CASOSDEUSO VALUES(3, 'REVISIONDEPRODUCTOS')


INSERT INTO CASOSDEUSO VALUES(3, 'PEDIDO')
INSERT INTO CASOSDEUSO VALUES(3, 'DEVOLUCION DE
PRODUCTOS')
INSERT INTO CASOSDEUSO VALUES(3, 'POLITICAS DE DEVOLUCION')
INSERT INTO CASOSDEUSO VALUES(3, 'MEDICAMENTO')
INSERT INTO CASOSDEUSO VALUES(3, 'ALIMENTO')
INSERT INTO CASOSDEUSO VALUES(3, 'ARTICULO')

INSERT INTO CASOSDEUSO VALUES(4, 'RECIBO')


INSERT INTO CASOSDEUSO VALUES(4, 'RECEPCION VENTA')

INSERT INTO CASOSDEUSO VALUES(5, 'RAZA')


INSERT INTO CASOSDEUSO VALUES(5, 'ANIMAL')
INSERT INTO CASOSDEUSO VALUES(5, 'MASCOTA')
INSERT INTO CASOSDEUSO VALUES(5, 'RECEPCION SERVICIOS')
INSERT INTO CASOSDEUSO VALUES(5, 'TRATAMIENTO')
INSERT INTO CASOSDEUSO VALUES(5, 'EVOLUCION')
INSERT INTO CASOSDEUSO VALUES(5, 'DIAGNOSTICO')
INSERT INTO CASOSDEUSO VALUES(5, 'RECETA')

INSERT INTO CASOSDEUSO VALUES(6, 'GRUPO')


INSERT INTO CASOSDEUSO VALUES(6, 'USUARIO')
INSERT INTO CASOSDEUSO VALUES(6, 'ASIGNAR PRIVILEGIOS')
GO

create proc BUSCAR_CODCASODEUSO(@DESCRIPCION VARCHAR(30))


AS
SELECT CODIGOCASODEUSO FROM CASOSDEUSO WHERE
DESCRIPCION = @DESCRIPCION
RETURN
GO

EXEC BUSCAR_CODCASODEUSO 'CLIENTE'


GO

CREATE TABLE PRIVILEGIOS(


CODPRIVILEGIO INT NOT NULL IDENTITY(1, 1),
CODIGOCASODEUSO INT NOT NULL,
DESCRIPCION VARCHAR(30),
PRIMARY KEY(CODPRIVILEGIO),
FOREIGN KEY(CODIGOCASODEUSO) REFERENCES
CASOSDEUSO(CODIGOCASODEUSO)
);
GO

INSERT INTO PRIVILEGIOS VALUES(1, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(1, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(1, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(1, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(2, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(2, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(2, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(2, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(3, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(3, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(3, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(3, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(4, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(4, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(4, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(4, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(5, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(5, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(5, 'ACTUALIZAR')

INSERT INTO PRIVILEGIOS VALUES(6, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(6, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(6, 'ACTUALIZAR')

INSERT INTO PRIVILEGIOS VALUES(7, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(7, 'REGISTRAR')

INSERT INTO PRIVILEGIOS VALUES(8, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(8, 'REGISTRAR')

INSERT INTO PRIVILEGIOS VALUES(9, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(9, 'REGISTRAR')

INSERT INTO PRIVILEGIOS VALUES(10, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(10, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(10, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(10, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(11, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(11, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(11, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(11, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(12, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(12, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(12, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(12, 'BORRAR')
INSERT INTO PRIVILEGIOS VALUES(13, 'NUEVO')
INSERT INTO PRIVILEGIOS VALUES(13, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(13, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(13, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(14, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(14, 'REGISTRAR')

INSERT INTO PRIVILEGIOS VALUES(15, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(15, 'REGISTRAR')

INSERT INTO PRIVILEGIOS VALUES(16, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(16, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(16, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(16, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(17, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(17, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(17, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(17, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(18, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(18, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(18, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(18, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(19, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(19, 'REGISTRAR')

INSERT INTO PRIVILEGIOS VALUES(20, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(20, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(20, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(20, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(21, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(21, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(21, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(21, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(22, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(22, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(22, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(22, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(23, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(23, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(23, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(23, 'BORRAR')
INSERT INTO PRIVILEGIOS VALUES(24, 'NUEVO')
INSERT INTO PRIVILEGIOS VALUES(24, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(24, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(24, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(25, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(25, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(25, 'ACTUALIZAR')
INSERT INTO PRIVILEGIOS VALUES(25, 'BORRAR')

INSERT INTO PRIVILEGIOS VALUES(26, 'NUEVO')


INSERT INTO PRIVILEGIOS VALUES(26, 'REGISTRAR')
INSERT INTO PRIVILEGIOS VALUES(26, 'BORRAR')
GO

CREATE TABLE GRUPODEPRIVILEGIO(


CODGRUPO INT,
CODPRIVILEGIO INT,
PRIMARY KEY(CODGRUPO, CODPRIVILEGIO),
FOREIGN KEY (CODGRUPO) REFERENCES GRUPOS(CODGRUPO)
ON DELETE CASCADE
ON UPDATE CASCADE,
FOREIGN KEY (CODPRIVILEGIO) REFERENCES PRIVILEGIOS
(CODPRIVILEGIO)
ON DELETE CASCADE
ON UPDATE CASCADE
);
GO
INSERT INTO GRUPODEPRIVILEGIO VALUES(1, 1)
INSERT INTO GRUPODEPRIVILEGIO VALUES(1, 2)
INSERT INTO GRUPODEPRIVILEGIO VALUES(1, 3)
INSERT INTO GRUPODEPRIVILEGIO VALUES(1, 4)
INSERT INTO GRUPODEPRIVILEGIO VALUES(1, 5)

GO
CREATE PROC BUSCAR_CODPRIVILEGIO(@CASODEUSO INT,
@DESCRIPCION VARCHAR(30))
AS
SELECT CODPRIVILEGIO FROM PRIVILEGIOS WHERE
DESCRIPCION = @DESCRIPCION AND CODIGOCASODEUSO =
@CASODEUSO
RETURN
GO

EXEC BUSCAR_CODPRIVILEGIO 1, 'NUEVO'

GO
create proc Insertar_GrupoDePrivilegio(@codgrupo int, @codprivilegio
int)
as
insert into GRUPODEPRIVILEGIO values (@codgrupo,
@codprivilegio)
return
go

exec Insertar_GrupoDePrivilegio 1, 1
go

create proc Eliminar_grupoprivilegio(@codgrupos int)


as
delete from GRUPODEPRIVILEGIO where CODGRUPO = @codgrupos
return
go

create proc Actualizar_grupoprivilegio(@codgrupo int, @codprivilegio


int)
as
update GRUPODEPRIVILEGIO set CODPRIVILEGIO = @codprivilegio
where CODGRUPO = @codgrupo
return
go

exec Actualizar_grupoprivilegio 1, 14
go

---ELIMINAR Y SELECCIONAR
--DROP TABLE GRUPODEPRIVILEGIO
--DROP TABLE GRUPOS
--DROP TABLE USUARIOS
--DROP TABLE PRIVILEGIOS
--DROP TABLE CASOSDEUSO
--DROP TABLE PAQUETE
GO

SELECT * FROM GRUPOS


SELECT * FROM USUARIOS
SELECT * FROM PAQUETE
SELECT * FROM CASOSDEUSO
SELECT * FROM PRIVILEGIOS
SELECT * FROM GRUPODEPRIVILEGIO
GO

---CONSULTAS
--PRIVILEGIOS DE ADMINISTRADOR
SELECT *
FROM USUARIOS, GRUPOS, PRIVILEGIOS, GRUPODEPRIVILEGIO
WHERE USUARIOS.CODGRUPOS = GRUPOS.CODGRUPO AND
PRIVILEGIOS.CODPRIVILEGIO = GRUPODEPRIVILEGIO.CODPRIVILEGIO
AND GRUPOS.CODGRUPO = GRUPODEPRIVILEGIO.CODGRUPO

--consulta: para cambiar nombre


select *
from PRIVILEGIOS, CASOSDEUSO where
PRIVILEGIOS.CODIGOCASODEUSO =
CASOSDEUSO.CODIGOCASODEUSO and CASOSDEUSO.DESCRIPCION
= 'animal'

--consulta: con casos de uso


SELECT PRIVILEGIOS.DESCRIPCION, GRUPOS.CODGRUPO
FROM USUARIOS, GRUPOS, PRIVILEGIOS, GRUPODEPRIVILEGIO,
CASOSDEUSO
WHERE USUARIOS.CODGRUPOS = GRUPOS.CODGRUPO AND
PRIVILEGIOS.CODPRIVILEGIO = GRUPODEPRIVILEGIO.CODPRIVILEGIO
AND GRUPOS.CODGRUPO = GRUPODEPRIVILEGIO.CODGRUPO and
CASOSDEUSO.CODIGOCASODEUSO =
PRIVILEGIOS.CODIGOCASODEUSO and CASOSDEUSO.DESCRIPCION =
'animal'

---CONSULTAS
--paquetes DE ADMINISTRADOR

SELECT distinct PAQUETE.DESCRIPCIONPAQUETE


FROM USUARIOS, GRUPOS, PRIVILEGIOS, GRUPODEPRIVILEGIO,
PAQUETE, CASOSDEUSO
WHERE USUARIOS.CODGRUPOS = GRUPOS.CODGRUPO AND
PRIVILEGIOS.CODPRIVILEGIO = GRUPODEPRIVILEGIO.CODPRIVILEGIO
AND GRUPOS.CODGRUPO = GRUPODEPRIVILEGIO.CODGRUPO and
PAQUETE.CODPAQUETE = CASOSDEUSO.CODPAQUETE
and CASOSDEUSO.CODIGOCASODEUSO =
PRIVILEGIOS.CODIGOCASODEUSO and GRUPOS.CODGRUPO = 1
group by PAQUETE.DESCRIPCIONPAQUETE

--delete from GRUPODEPRIVILEGIO


SELECT * FROM CASOSDEUSO, PAQUETE, PRIVILEGIOS WHERE
CASOSDEUSO.CODPAQUETE = PAQUETE.CODPAQUETE and
PRIVILEGIOS.CODIGOCASODEUSO =
CASOSDEUSO.CODIGOCASODEUSO
select * from PAQUETE
select * from CASOSDEUSO
select * from PRIVILEGIOS
select * from GRUPOS
select * from GRUPODEPRIVILEGIO

---
*********bitacora**********----------------------------------------------------------------------
-----------------
create table Bitacora(
CodBitacora int not null identity(1, 1),
CodUsuario int not null,
--Fecha date not null,
--HoraEntrada time(0) not null,
--HoraSalida time(0) not null,
HoraFechaEntrada char(30),
HoraFechaSalida char(30),
primary key(CodBitacora),
foreign key(CodUsuario)references Usuarios(codusuario)
on delete cascade
on update cascade
)
go

--drop table detallebitacora


--drop table bitacora
go

create proc Insertar_Bitacora(@codusuario int)


as
declare @entrada char(20)
declare @salida char(20)
select @entrada = GETDATE()
select @salida = GETDATE()
insert into Bitacora values(@codusuario, @entrada, @salida)
return
go

--exec Insertar_Bitacora 1
go
create proc BuscarCodusario(@nombreuser varchar(30))
as
select CODUSUARIO from USUARIOS where NOMBREUSUARIO =
@nombreuser
return
go

select * from Bitacora

--drop proc Insertar_Bitacora


--alter proc Insertar_Bitacora(@CodUsuario int)
--as
-- insert into BITACORA values(@CodUsuario , CONVERT (date,
SYSDATETIME()) , CONVERT (time(0), SYSDATETIME()) , CONVERT
(time(0), SYSDATETIME()))
--return
--go
select convert (datetime, SYSDATETIME())
select GETUTCDATE()
select GETDATE()
--exec Insertar_Bitacora 1

select * from BITACORA

go
select * from BITACORA
select * from USUARIOS
go
create procedure ActualizarHoraSalidaBitacora
as
begin

declare @CodBitacora int


select @CodBitacora= MAX(CodBitacora) from Bitacora
declare @fecha char(20)
select @fecha=GETDATE()
update Bitacora set HoraFechaSalida =@fecha
where CodBitacora =@CodBitacora
end

--********detalle bitacora*******
create table DetalleBitacora(
CodDetalleBitacora int not null identity(1, 1),
CodBitacora int not null,
Operacion varchar(30),
HoraOperacion char(20),
primary key(CodDetalleBitacora, CodBitacora),
foreign key (CodBitacora) references Bitacora(CodBitacora)
on delete cascade
on update cascade,
)

go
create proc Insertar_DetalleBitacora(@operacion varchar(30))
as
declare @horaoperacion char(20)
select @horaoperacion = GETDATE()
declare @codbitacora int
select @codbitacora = MAX(CodBitacora) from Bitacora
insert into detallebitacora values(@codbitacora, @operacion,
@horaoperacion)
return
go

--exec Insertar_DetalleBitacora 'nuevo'


go

exec ActualizarHoraSalidaBitacora
go
select* from Bitacora
select * from detallebitacora

select*
from Bitacora, detallebitacora, USUARIOS
where Bitacora.CodUsuario= USUARIOS.CODUSUARIO and
Bitacora.CodBitacora= detallebitacora.CodBitacora

select* from USUARIOS


select*from USUARIO

select
PEDIDO.codpedido,fecha,tipodeadquisicion,PRODUCTO.nombre,PRODU
CTO.marca,precio,cantidad from PEDIDO,DETALLEPEDIDO,PRODUCTO
where PEDIDO.codpedido=DETALLEPEDIDO.codpedido and
DETALLEPEDIDO.codproducto=PRODUCTO.codproducto and
PEDIDO.codpedido=

select * from PAGO

select * from RECEPCION


select * from RECIBO

select Bitacora.CodBitacora,Bitacora.CodUsuario,
Bitacora.HoraFechaEntrada,Bitacora.HoraFechaSalida,
DetalleBitacora.Operacion,DetalleBitacora.HoraOperacion
from Bitacora, detallebitacora, USUARIOS
where Bitacora.CodUsuario= USUARIOS.CODUSUARIO and
Bitacora.CodBitacora= detallebitacora.CodBitacora
4.8. DIAGRAMA RELACIONAL
INTERNACION CERTIFICADOS
codinternacion codcertificados
descripcion descripcion

DETALLEDIAGNOSTICO
coddetallediagnostico
DETALLERECEPCION
descripcion
codrecepcion
fecha
codservicio
coddiagnostico
codrecepcion

RECEPCION
TRATAMIENTO codrecepcion
PROXIMACONSULTA
codtratamiento DIAGNOSTICO codproximaconsulta
fecha
descripcion coddiagnostico fecha
codmascota
coddetallediagnostico codrecepcion descripcion
codcliente
codrecepcion
codpersonal

EVOLUCION RECETA
codevolucion codreceta
codtratamiento descripcion
coddetallediagnostico coddiagnostico
descripcion codrecepcion
fecha

CARGO PERSONAL RECIBO


codcargo codpersonal codrecibo
descripcion codcargo fecha
codrecepcion

MASCOTA
codmascota
codpersona

ANIMAL codanimal
codanimal nombre
nombre fechanacimiento
CUIDADOESPECIAL sexo
codcuidadoespecial
tamanio
descripcion PERSONA
color
codpersona
codraza
nombre CLIENTE
codenfermedad
codcliente
direccion
telefono

RAZA
codraza
codanimal
descripcion

ENFERMEDAD
codenfermedad
CURACION nombre
codcuracion
descripcion

SERVICIO
codservicio
precio
PEDIDO
codpedido PROMOTOR
VACUNACION codpromotor codpromotor

codvacunacion codproveedor codproveedor

nombre fecha
descripcion
PROVEEDOR DEVUELTO
codproveedor coddevuelto
nombre codproducto
direccion codproveedor
telefono cantidad
fechaderegistro motivo
DETALLEPEDIDO
REVISIONDEPRODUCTOS coddetallepedido
codrevisiondeproductos cantidad
descripcion precio
coddetalledepedido codproducto
codpedido

POLITICADEDEVOLUCION
codpoliticadevolucion DESECHADO
descripcion coddesechado
codproducto fecha
codproveedor motivo
codproducto

DETALLEVENTA
coddetalleventa
cantidad
precio
codrecepcion
codproducto
PRODUCTO
ARTICULOS codproducto

codarticulos nombre

descripcion precio
cantidad

MEDICAMENTO
codmedicamento
fechadevencimiento
codigolote

ALIMENTO
codalimento
descripcion
fechadevencimiento

PELUQUERIA
codpeluqueria
descripcion

CIRUGIA
codcirugia
descripcion

BANIO PETSHOP CONSULTA


codbanio codpetshop codconsulta
descripcion descripcion
5. MODELO DE NEGOCIOS
5.1. DIAGRAMA DE ACTIVIDAD

Son similares a los diagramas de flujo de otras metodologías OO. En realidad se corresponden con un
caso especial de los diagramas de estado donde los estados son estados de acción (estados con
una acción interna y una o más transiciones que suceden al finalizar esta acción, o lo que es lo
mismo, un paso en la ejecución de lo que será un procedimiento) y las transiciones vienen
provocadas por la finalización de las acciones que tienen lugar en los estados de origen. Siempre
van unidos a una clase o a la implementación de un caso de uso o de un método (que tiene el
mismo significado que en cualquier otra metodología OO). Los diagramas de actividad se utilizan
para mostrar el flujo de operaciones que se desencadenan en un procedimiento interno del sistema.

5.1.1. GESTIÓN DE DIAGNOSTICO


5.1.2. GESTIÓN DE PEDIDO
5.1.3. GESTIÓN DE CONSULTAS

5.1.4. GESTIÓN DE COMPRA


6. Flujo de Trabajo: Requisitos
6.1. LISTAR CASOS DE USO E IDENTIFICAR ACTORES
6.1.1. LISTA DE ACTORES

S.I. para la gestión de Servicios clínicos de la


Veterinaria “EL PRADO”

Cliente

Mascota Promotor
Personal
Proveedor

6.1.2. LISTA DE CASOS DE USO

CU1: Gestionar cliente


CU2: Gestionar mascota
CU3: Gestionar personal
CU4: Gestionar promotor
CU5: Gestionar proveedor
CU6: Gestionar servicios
CU7: Gestionar productos
CU8: Gestionar diagnostico
CU9: Gestionar recibo
CU10: Gestionar próxima consulta
CU11: Gestionar pago
CU12: Gestionar pedido
CU13: Gestionar raza
CU14: Gestionar animal
CU15: Registrar receta
CU16: Registrar tratamiento
CU17: Registrar evolución
CU18: Registrar políticas de devolución del proveedor
CU19: Registrar reposición de medicamentos
CU20: Registrar devolución de productos del proveedor
CU21: Registrar Recepción prestar servicios
CU22: Registrar Servicios Prestados
CU23: Gestionar Ventas
CU24: Registrar productos utilizados
CU25: Imprimir certificado de viaje (certificado del estado de buena salud de
la mascota)
CU26: Imprimir histórico de vacunación
CU27: Imprimir certificado de vacunación contra la rabia (con respecto a la
fecha actual o de solicitud)
CU28: Registrar productos desechados (medicamentos o alimentos
vencidos)

6.2. PRIORIZACIÓN DE CASOS DE USO

N° Nombre Del Estado Prioridad Riesgo


Caso Caso De Uso
De
Uso
C.U. 1 Gestionar Cliente Aprobado Normal Normal
8C.U. Gestionar Aprobado Critico Critico
2 mascota
C.U. 3 Gestionar Aprobado Normal Normal
personal
C.U. 4 Gestionar Aprobado Normal Normal
promotor
C.U. 5 Gestionar Aprobado Normal Normal
proveedor
C.U. 6 Gestionar Aprobado Critico Critico
servicios
C.U. 7 Gestionar Aprobado Critico Critico
productos
C.U. 8 Gestionar Incorporad critico critico
diagnostico o
C.U. 9 Gestionar recibo Aprobado Critico Normal
C.U. Gestionar Propuesto Critico Normal
10 próxima consulta
C.U. Gestionar pago Aprobado Critico Normal
11
C.U. Gestionar pedido Incorporad Critico Normal
12 o
C.U. Gestionar raza Aprobado Normal Normal
13
C.U. Gestionar animal Aprobado Normal Normal
14
C.U. Registrar receta Aprobado Critico Normal
15
C.U. Registrar Incorporad Critico Normal
16 tratamiento o
C.U. Registrar Aprobado critico Normal
17 evolución
C.U. Registrar Incorporad Critico Critico
18 políticas de o
devolución
C.U.19 Registrar Incorporad Critico Normal
reposición de o
medicamentos
C.U.20 Registrar Incorporad Critico Normal
devolución de o
productos
C.U. Registrar Incorporad Critico Critico
21 Recepción o
prestar servicios
C.U.22 Registrar Incorporad Critico Normal
Servicios o
Prestados
C.U.23 Gestionar Ventas Incorporad Critico Critico
o
C.U.24 Registrar Incorporad Critico Critico
productos o
utilizados
C.U.25 Imprimir certificado Incorporad Significativo Accesoria
de viaje o
C.U.26 Imprimir histórico Incorporad Significativo Accesoria
de vacunación o
C.U.27 Imprimir Incorporad Significativo Accesoria
certificado de o
vacunación
contra la rabia
C.U.28 Registrar Incorporad Critico Critico
productos o
desechados

6.3. DETALLAR CASOS DE USO


CU1: Gestionar cliente
Nro.: 1 Caso de Uso: Gestionar Cliente
Propósito: Realizar modificaciones, actualizaciones, búsqueda y eliminación
del cliente
Descripción: Registro que ocurre en la veterinaria donde el cliente
proporciona los datos requeridos (CodCliente, nombre, dirección). Y donde
se podrá actualizar, modificar, borrar, actualizar y buscar los datos del
cliente.
Actores: Cliente, Personal
Iniciador: Cliente,
Precondición: Ninguno.
Proceso: Actualizar, Modificar, Eliminar y Buscar.
1. Insertar Nuevo Cliente
1.1. Para ingresar un nuevo cliente se deberá hacer clic en el botón
“Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: CodCliente, Nombre,
Dirección y Telefono
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando cliente registrado correctamente se deberá guardar la
información ingresada para salvarlo en la base de datos.
2. Buscar
2.1. Clic en nuevo para limpiar los campos del formulario
2.2. Si es usuario conoce el nombre del cliente o su Ci del cliente la
colocara en dicho campo en la parte superior
2.3. El usuario hará en el botón “Buscar”
2.4. En la tabla se mostrara todos los cliente con el mismo nombre en
caso de haber varios con sus respectivos datos, y en caso del la CI
se mostrara el cliente con sus datos en la tabla.
2.5. En caso ingresar una CI o Nombre incorrectos o que no esté en la
base de datos, la tabla se mostrara sin ningún dato.
3. Eliminar.- Para eliminar primero se tendrá que haber “buscado” un cliente
previamente.
3.1. Seleccionar de la tabla el cliente a ser eliminado
3.2. Clic en el botón “Eliminar”
3.3. Se eliminara al cliente seleccionado previamente de la tabla Cliente y
Persona no así de todas la base de datos.
4. Actualizar.- Para actualizar primero se tendrá que haber “buscado” un
cliente previamente.
4.1. Seleccionara de la tabla el cliente a ser “Modificado”
4.2. Automáticamente se llenaran los campos con los datos del cliente
seleccionado en la parte superior.
4.3. Se procederá a modificar dichos campos
4.4. El usuario hará Clic en “Actualizar”
4.5. Para guardar un cliente luego de ser correctamente modificado se
deberá guardar los datos modificados para salvarlo en la base de
datos.

5. Mostrar.- El usuario podrá hacer clic en el botón “Ver Lista de Clientes”


en cualquier momentos para ver los clientes en la base de datos
mostrados en una tabla.
5.1. El usuario hará clic en el botón “Ver Lista de Clientes” y se mostrara
en la tabla todos los clientes registrados en la base de datos.

Post condición: Realizar modificaciones, actualizaciones, búsqueda y


eliminación de los clientes
Excepción:
1. El usuario podrá buscar al cliente ya sea por su nombre o por su CI,
dependiendo de qué campo este llenado del mismo.
2. El usuario puede poner el nombre completo o parte del nombre en el
campo “Nombre” para buscarlo.

CU2: Gestionar mascota


Nro.: 2 Caso de Uso: Gestionar Mascota
Propósito: Realizar modificaciones, actualizaciones, búsqueda y eliminación
de la mascota
Descripción: Registro que ocurre en la veterinaria donde se proporciona los
datos requeridos de la mascota (nombre, Fecha de nacimiento, sexo,
tamaño,. Codpersona, CodAnimal, CodRaza). Y donde se podrá actualizar,
borrar y actualizar los datos del cliente.
Actores: Cliente, Personal, Mascota
Iniciador: Mascota,
Precondición: Ninguno.
Proceso: Registrar, Actualizar, Eliminar y Buscar.
1. Insertar Nueva Mascota
1.1. Para ingresar una nueva mascota se deberá hacer clic en el
botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: nombre, Fecha de
nacimiento, sexo, tamaño,. Codpersona, CodAnimal, CodRaza
1.3. Se hará clic en el botón “Registrar”
1.4. En la tabla inferior de mostrara la mascota registrada
1.5. Cuando una mascota este registrada correctamente se deberá
guardar la información ingresada para salvarlo en la base de
datos.

2. Eliminar.- Para eliminar primero se tendrá que haber seleccionado de la


tabla una mascota previamente.
2.1. Seleccionar de la tabla la mascota a ser eliminado
2.2. Clic en el botón “Eliminar”
2.3. Se eliminara ala mascota seleccionada previamente de la
tabla Mascota no así de todas la base de datos.
3. Actualizar
3.1. Seleccionara de la tabla la mascota a ser “Modificado”
3.2. Automáticamente se llenaran los campos con los datos de la
mascota seleccionado en la parte superior.
3.3. Se procederá a modificar dichos campos
3.4. El usuario hará Clic en “Actualizar”
3.5. Una mascota luego de ser correctamente modificado se
deberá guardar los datos modificados para salvarlo en la base de
datos.

Post condición: Realizar actualizaciones y eliminación de las Mascotas


Excepción:
1. El usuario buscara a la mascota por su Código en caso de ingresarla
mal la tabla mostrar un mensaje de error o no mostrara nada en caso
de que no está en la base de datos

CU3: Gestionar Personal


Nro.: 3 Caso de Uso: Gestionar Personal
Propósito: Realizar actualizaciones, búsqueda, eliminación, Registrar
mascota y cargo del personal
Descripción: Se van a registrar los datos correspondientes del personal que
trabaja en la Veterinaria. Los datos requeridos (Codpersonal, nombre,
dirección, teléfono, Codcargo, Propietaria). Y donde se podrá Insertar,
actualizar, borrar los datos del personal, Registrar mascota y cargo
Actores: Personal
Iniciador: Personal
Precondición: Gestionar Cargo
Proceso: Insertar, Actualizar, Modificar, Eliminar y Buscar.
1. Insertar Nuevo Personal
1.1. Para ingresar un nuevo personal se deberá hacer clic en el
botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Codpersonal,
nombre, dirección, teléfono, Codcargo
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando un personal este registrado correctamente se deberá
guardar la información ingresada para salvarlo en la base de
datos.
2. Eliminar.- Para eliminar primero se tendrá que haber haber
seleccionado de la tabla un personal previamente.
2.1. Seleccionar de la tabla el personal a ser eliminado
2.2. Clic en el botón “Eliminar”
2.3. Se eliminara al personal seleccionado previamente de la tabla
Personal y Persona no así de toda la base de datos.
3. Actualizar.- Para actualizar primero se tendrá que haber haber
seleccionado de la tabla un personal previamente.
3.1. Seleccionara de la tabla el personal a ser “Modificado”
3.2. Automáticamente se llenaran los campos con los datos del
personal seleccionado en la parte superior.
3.3. Se procederá a modificar dichos campos
3.4. El usuario hará Clic en “Actualizar”
3.5. Luego de ser correctamente modificado se deberá guardar
los datos modificados para salvarlo en la base de datos.

Post condición: Realizar actualizaciones, eliminación del personal, Registro


de Cargo y Mascota
Excepción:
1. El usuario podrá buscar al personal ya sea por su nombre o por su
Codigo, dependiendo de qué campo este llenado del mismo.
2. El usuario puede poner el nombre completo o parte del nombre en el
campo “Nombre” para buscarlo.

CU4: Gestionar promotor


Nro.: 4 Caso de Uso: Gestionar Promotor
Propósito: Realizar actualizaciones, búsqueda y eliminación del promotor
Descripción: Se van a registrar los datos correspondientes del promotor
(Codpromotor, Codproveedor, nombre, dirección y Telefono). Y donde se
podrá actualizar, modificar, borrar y actualizar los datos del promotor
Actores: Promotor, Personal
Iniciador: Promotor
Precondición: Gestionar proveedor
Proceso: Insertar, Actualizar, Eliminar y Buscar.
1. Insertar Nuevo Promotor
1.1. Para ingresar un nuevo promotor se deberá hacer clic en el
botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Codpromotor,
codproveedor, Nombre, Dirección y Teléfono
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando un promotor este registrado correctamente se deberá
guardar la información ingresada para salvarlo en la base de
datos.

2. Eliminar.- Para eliminar primero se tendrá que haber seleccionado


de la tabla un promotor previamente.
2.1. Seleccionar de la tabla el promotor a ser eliminado
2.2. Clic en el botón “Eliminar”
2.3. Se eliminara al promotor seleccionado previamente de la tabla
Promotor y Persona no así de todas la base de datos.

3. Actualizar
3.1. Seleccionara de la tabla el promotor a ser “Modificado”
3.2. Automáticamente se llenaran los campos con los datos del
promotor seleccionado en la parte inferior en la tabla
3.3. Se procederá a modificar dichos campos
3.4. El usuario hará Clic en “Actualizar”
3.5. Luego de ser correctamente modificado se deberá guardar los
datos modificados para salvarlo en la base de datos.

Post condición: Realizar modificaciones, actualizaciones, búsqueda y


eliminación del personal
Excepción:
1. El usuario buscara el promotor por su codigo ya en caso de no
ingresar correctamente el dato la tabla mostrara un mensaje de error
no mostrara nada en caso de no estar registrado en la base de datos

CU5: Gestionar proveedor


Nro.: 5 Caso de Uso: Gestionar Proveedor
Propósito: Realizar actualizaciones, búsqueda y eliminación del proveedor
Descripción: Se van a registrar los datos correspondientes del proveedor
(Codproveedor, nombre, dirección, Fecha de Reg. y Telefono). Y donde se
podrá insertar, actualizar, borrar los datos del proveedor.
Actores: Proveedor, Promotor y Personal
Iniciador: Proveedor
Precondición: Ninguno.
Proceso: Insertar, Actualizar, Eliminar
1. Insertar Nuevo Promotor
1.1. Para ingresar un nuevo promotor se deberá hacer clic
en el botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos:
Codproveedor, Nombre, Dirección, Fecha de Reg. y Telefono
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando un promotor este registrado correctamente se
deberá guardar la información ingresada para salvarlo en la
base de datos.
2. Eliminar.- Para eliminar primero se tendrá que haber seleccionado
de la tabla inferior un proveedor previamente.
3.1. Seleccionar de la tabla el proveedor a ser eliminado
3.2. Clic en el botón “Eliminar”
3.3. Se eliminara al proveedor seleccionado previamente de
la tabla Proveedor y no así de todas la base de datos.
3. Actualizar.
4.1. Seleccionara de la tabla el proveedor a ser
“Modificado”
4.2. Automáticamente se llenaran los campos con los datos
del proveedor seleccionado en la parte superior.
4.3. Se procederá a modificar dichos campos
4.4. El usuario hará Clic en “Actualizar”
4.5. Luego de ser correctamente modificado se deberá
guardar los datos modificados para salvarlo en la base de
datos.
Post condición: Realizar actualizaciones, búsqueda , eliminación, Registro
de Promotor y Politicas de devolucion del proveedor
Excepción:
1. El usuario buscara el proveedor por su código ya en caso de no
ingresar correctamente el dato la tabla mostrara un mensaje de error
no mostrara nada en caso de no estar registrado en la base de datos

CU6: Gestionar servicios


Nro.: 6 Caso de Uso: Gestionar Servicios
Propósito: Realizar Registro y modificaciones de los Servicios
Descripción: Se van a registrar los datos correspondientes de los Servicios
(CodServicio, nombre, precio, Tipo de Servicio). Y donde se podrá modificar
y registrar los datos de los Servicios.
Actores: Personal
Iniciador: Servicio
Precondición: Ninguno.
Proceso: Registrar y Modificar
1. Insertar Nuevo Servicio
1.1. Para ingresar un nuevo Servicio se deberá hacer clic en el
botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: CodServicio,
Nombre, Precio y Tipo de Servicio
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando un Servicio este registrado correctamente se deberá
guardar la información ingresada para salvarlo en la base de
datos.
2. Modificar
2.1. Seleccionara de la tabla el Servicio a ser “Modificado”
2.2. Automáticamente se llenaran los campos con los datos del
Servicio seleccionado en la parte superior.
2.3. Se procederá a modificar dichos campos
2.4. El usuario hará Clic en “modificar”
2.5. Luego de ser correctamente modificado se deberá guardar los
datos modificados para salvarlo en la base de datos.

Post condición: ninguna


Excepcion:
1. El usuario buscara el servicio por su codigo ya en caso de no ingresar
correctamente el dato la tabla mostrara un mensaje de error no
mostrara nada en caso de no estar registrado en la base de datos

CU7: Gestionar productos


Nro.: 7 Caso de Uso: Gestionar Productos
Propósito: Realizar modificaciones, actualizaciones, búsqueda de los
Productos
Descripción: Se van a registrar los datos correspondientes de los Productos
(Codproducto, nombre, precio, marca). Y donde se podrá modificar y
actualizar los datos de los productos.
Actores: Personal
Iniciador: Producto
Precondición: Ninguno.
Proceso: Insertar, Actualizar, Modificar y Buscar.
1. Insertar Nuevo Producto
1.1. Para ingresar un nuevo producto se deberá hacer clic en el
botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Codproducto,
Nombre, precio y marca
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando un producto este registrado correctamente se deberá
guardar la información ingresada para salvarlo en la base de
datos.
2. Buscar
2.1. Clic en nuevo para limpiar los campos del formulario
2.2. el usuario colocara el Codproducto
2.3. El usuario hará en el botón “Buscar”
2.4. En la tabla se mostrara el producto con sus datos en la tabla.
2.5. En caso ingresar un Codproducto incorrecto la tabla no
mostrara ningún dato
3. Actualizar.- Para actualizar primero se tendrá que haber “buscado” un
producto previamente.
4.1. Seleccionara de la tabla el producto a ser “Modificado”
4.2. Automáticamente se llenaran los campos con los datos del
producto seleccionado en la parte superior.
4.3. Se procederá a modificar dichos campos
4.4. El usuario hará Clic en “Actualizar”
4.5. Luego de ser correctamente modificado se deberá guardar los
datos modificados para salvarlo en la base de datos.

Post condición: Realizar modificaciones, actualizaciones, búsqueda y


eliminación del producto
Excepción:
5. El usuario podrá buscar al producto ya sea por su nombre o por su
Codproducto, dependiendo de qué campo este llenado del mismo.
6. El usuario puede poner el nombre completo o parte del nombre en el
campo “Nombre” para buscarlo.

CU8: Gestionar diagnostico


Nro.: 8 Caso de Uso: Gestionar Diagnostico
Propósito: Realizar modificaciones, búsqueda y eliminación de los
diagnósticos
Descripción: Se van a registrar los datos correspondientes del diagnóstico
(Coddiagnostico, Codrecepcion) dependiendo de la recepción que se haga.
Y donde se podrá registrar, modificar, borrar los datos de los diagnosticos.
Actores: Personal
Iniciador: Diagnostico
Precondición: Ninguno.
Proceso: Insertar, Modificar, Eliminar y Buscar.
1. Insertar Nuevo Diagnostico
1.1. Para ingresar un nuevo diagnóstico realizado se deberá hacer
clic en el botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Coddiagnostico,
Codrecepcion
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando un diagnostico este registrado correctamente se
deberá guardar la información ingresada para salvarlo en la base
de datos.
2. Buscar
2.1. Clic en nuevo para limpiar los campos del formulario
2.2. el usuario colocara el coddiagnostico
2.3. El usuario hará en el botón “Buscar”
2.4. En la tabla se mostrara el diagnostico con sus datos en la
tabla.
2.5. En caso ingresar una Coddiagnostico incorrectos o que no
esté en la base de datos, la tabla no mostrara ningún dato
3. Eliminar.- Para eliminar primero se tendrá que haber “buscado” un
diagnostico previamente.
3.1. Seleccionar de la tabla el diagnostico a ser eliminado
3.2. Clic en el botón “Eliminar”
3.3. Se eliminara el diagnostico seleccionado previamente de las
tablas Diagnostico y Detalle de diagnóstico no así de todas la
base de datos.
4. Actualizar.- Para actualizar primero se tendrá que haber “buscado” un
diagnostico previamente.
4.1. Seleccionara de la tabla el diagnostico a ser “Modificado”
4.2. Automáticamente se llenaran los campos con los datos del
diagnóstico seleccionado en la parte superior.
4.3. Se procederá a modificar dichos campos
4.4. El usuario hará Clic en “Actualizar”
4.5. Luego de ser correctamente modificado se deberá guardar los
datos modificados para salvarlo en la base de datos.

Post condición: Realizar modificaciones, búsqueda, eliminación, Detalle de


diagnostico y Buscar Recepcion del diagnostico
Excepción:
1. El usuario buscara el diagnostico por su código ya en caso de no
ingresar correctamente el dato la tabla mostrara un mensaje de error
no mostrara nada en caso de no estar registrado en la base de datos

CU9: Gestionar recibo


Nro.: 9 Caso de Uso: Gestionar Recibo
Propósito: Realizar Registro, búsqueda y eliminación del recibo
Descripción: Se van a registrar los datos correspondientes del recibo
(Codrecibo, monto, Fecha, deuda). Y donde se podrá Registrar, borrar y
buscar los datos del recibo.
Actores: Personal
Iniciador: Recibo
Precondición: Ninguno.
Proceso: Registrar, Eliminar y Buscar.
1. Insertar Nuevo Recibo
1.1. Para ingresar un nuevo recibo se deberá hacer clic en el
botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Codrecibo,
Codrecepcion,monto, fecha, deuda
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando un recibo este registrado correctamente se deberá
guardar la información ingresada para salvarlo en la base de
datos.
2. Buscar
2.1. Clic en nuevo para limpiar los campos del formulario
2.2. el usuario colocara el Codrecibo
2.3. El usuario hará en el botón “Buscar”
2.4. En la tabla se mostrara el recibo con sus datos en la tabla.
2.5. En caso ingresar un Codrecibo incorrecto o que no esté en la
base de datos, la tabla no mostrara ningún dato
3. Eliminar.- Para eliminar primero se tendrá que haber “buscado” un
recibo previamente.
3.1. Seleccionar de la tabla el recibo a ser eliminado
3.2. Clic en el botón “Eliminar”
3.3. Se eliminara al personal seleccionado previamente de la tabla
Recibo y no así de todas la base de datos.
4. Imprimir
4.1. el usuario podrá imprimir todo lo que ha sido registrado en la
base de datos tomando en cuenta si es adm o invitado dándole clic
en el botón “IMPRIMIR"
Post condición: Realizar actualizaciones, búsqueda, eliminación del recibo.
También se hara una búsqueda de Recepcion
Excepción:
1. El usuario buscara el recibo por su codigo ya en caso de no ingresar
correctamente el dato la tabla mostrara un mensaje de error no
mostrara nada en caso de no estar registrado en la base de datos

CU10: Gestionar próxima consulta


Nro.: 10 Caso de Uso: Gestiona Próxima
Consulta
Propósito: Realizar modificaciones, actualizaciones, búsqueda y eliminación
del personal
Descripción: Se van a registrar los datos correspondientes de la próxima
consulta (Codproximaconsulta, Codrecepcion, descripción y Fecha). Y donde
se podrá actualizar, modificar, borrar y actualizar los datos de la próxima
consulta.
Actores: Personal
Iniciador: Próxima consulta
Precondición: Ninguno.
Proceso: Registrar, Buscar.
1. Insertar Próxima Consulta
1.1. Para ingresar un nueva próxima consulta se deberá hacer clic
en el botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Codproximaconsulta,
Codrecepcion, descripción y Fecha
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando este registrado correctamente se deberá guardar la
información ingresada para salvarlo en la base de datos.
2. Buscar
2.1. Clic en nuevo para limpiar los campos del formulario
2.2. el usuario colocara el Codproximaconsulta
2.3. El usuario hará en el botón “Buscar”
2.4. En la tabla se mostrara la Proxima Consulta con sus datos en
la tabla.
2.5. En caso ingresar un Codproximaconsulta incorrectos o que no
esté en la base de datos, la tabla no mostrara ningún dato

Post condición: Realizar búsqueda de Recepcion


Excepción:
1. El usuario buscara la próxima consulta por su codigo ya en caso de
no ingresar correctamente el dato la tabla mostrara un mensaje de
error no mostrara nada en caso de no estar registrado en la base de
datos

CU11: Gestionar pago


Nro.: 11 Caso de Uso: Gestionar Pago
Propósito: Realizar Registro del pago
Descripción: Se van a registrar los datos correspondientes del pago
(Codpago, fecha, monto,concepto, Cancelado(si o no)).

Actores: Personal
Iniciador: Pago
Precondición: Ninguno.
Proceso: Registro.
1. Insertar Nuevo Pago
1.1 Para ingresar un nuevo pago se deberá hacer clic en el botón
“Nuevo” para habilitar y limpiar todos los campos
1.2 Se procederá a llenar todos los campos: CodPago, Fecha, monto
1.3 Se hará clic en el botón “Registrar”
1.4 Cuando un pago este registrado correctamente se deberá guardar
la información ingresada para salvarlo en la base de datos.

Post condición: Realizar búsqueda de recepción, mostrar recibo


Excepción:
1. El usuario buscara el pago por su codigo ya en caso de no ingresar
correctamente el dato la tabla mostrara un mensaje de error no
mostrara nada

CU12: Gestionar pedido


Nro.: 12 Caso de Uso: Gestionar Pedido
Propósito: Realizar registro, búsqueda, eliminación e impresión del pedido
Descripción: Se van a registrar los datos correspondientes del pedido
(Codpedido, Codproveedor, codpromotor, fecha de entrega, Tipo de
Compra). Y donde se podrá buscar e imprimir los datos del pedido.
Actores: Personal
Iniciador: Pedido
Precondición: Ninguno.
Proceso: Registro, Buscar e Imprimir.
1. Insertar Nuevo Pedido
1.1. Para ingresar un nuevo pedido se deberá hacer clic en el
botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Codpedido,
Codproveedor, codpromotor, fecha de entrega, Tipo de compra
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando un personal este registrado correctamente se deberá
guardar la información ingresada para salvarlo en la base de
datos.
2. Buscar
2.1. Clic en nuevo para limpiar los campos del formulario
2.2. el usuario colocara el Codpedido
2.3. El usuario hará en el botón “Buscar”
2.4. En la tabla se mostrara todo el pedido con sus datos en la
tabla.
2.5. En caso ingresar un Codpedido incorrecto o que no esté en la
base de datos, la tabla no mostrara ningún dato

3. Imprimir
5.1. el usuario podrá imprimir todo lo que ha sido registrado en la
base de datos tomando en cuenta si es adm o invitado dándole
clic en el botón “IMPRIMIR"
Post condición: añadir nuevos pedidos y buscar productos
Excepción:
1. en caso de no registrar bien un pedido la tabla no almacenara ni
registrara ningún dato

CU13: Gestionar raza


Nro.: 14 Caso de Uso: Gestionar Raza
Propósito: Realizar registro, actualizaciones, eliminación de la Raza
Descripción: Se van a registrar los datos correspondientes (Codraza,
nombre, Codanimal). Y donde se podrá actualizar, borrar los datos de la
raza.
Actores: Personal
Iniciador: Raza
Precondición: Ninguno.
Proceso: Insertar, Actualizar,Eliminar y Buscar.
1. Insertar Nueva raza
1.1. Para ingresar un nuevo raza se deberá hacer clic en el botón
“Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Codraza, nombre,
Codanimal
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando un personal este registrado correctamente se deberá
guardar la información ingresada para salvarlo en la base de
datos.
2. Eliminar
3.1. Seleccionar de la tabla la raza a ser eliminada
3.2. Clic en el botón “Eliminar”
3.3. Se eliminara al personal seleccionado previamente de la tabla
Raza y no así de todas la base de datos.
3. Actualizar
4.1. Seleccionara de la tabla la raza a ser “Modificado”
4.2. Automáticamente se llenaran los campos con los datos de la
raza seleccionado en la parte superior.
4.3. Se procederá a modificar dichos campos
4.4. El usuario hará Clic en “Actualizar”
4.5. Luego de ser correctamente modificado se deberá guardar los
datos modificados para salvarlo en la base de datos.

Post condición: Realizar el registro del animal


Excepción:
7. El usuario podrá buscar al personal ya sea por su nombre o por su
Codraza, dependiendo de qué campo este llenado del mismo.
8. El usuario puede poner el nombre completo o parte del nombre en el
campo “Nombre” para buscarlo.

CU14: Gestionar animal


Nro.: 14 Caso de Uso: Gestionar Animal
Propósito: Realizar registro,actualizaciones, búsqueda y eliminación del
Animal
Descripción: Se van a registrar los datos correspondientes(Codanimal,
nombre). Y donde se podrá actualizar, modificar, borrar y actualizar los datos
del Animal.
Actores: Personal
Iniciador: Animal
Precondición: Ninguno.
Proceso: Registro, Actualizar,Eliminar y Buscar.
1. Insertar Nuevo Animal
1.1. Para ingresar un nuevo Animal se deberá hacer clic en el
botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Codanimal, Nombre
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando un animal este registrado correctamente se deberá
guardar la información ingresada para salvarlo en la base de
datos.
2. Eliminar
3.1. Seleccionar de la tabla el animal a ser eliminado
3.2. Clic en el botón “Eliminar”
3.3. Se eliminara al animal seleccionado previamente de la tabla
Animal no así de todas la base de datos.
3. Actualizar
4.1. Seleccionara de la tabla el animal a ser “Modificado”
4.2. Automáticamente se llenaran los campos con los datos del
animal seleccionado en la parte superior.
4.3. Se procederá a modificar dichos campos
4.4. El usuario hará Clic en “Actualizar”
4.5. Luego de ser correctamente modificado se deberá guardar los
datos modificados para salvarlo en la base de datos.

Post condición: ninguna


Excepción:
1. En caso de que un animal no sea bien registrado en la tabla parecerá
un mensaje de error diciendo que no se pudo registrar al animal

CU15: Registrar receta


Nro: 15 Caso de Uso: Registrar Receta
Propósito: Realizar modificaciones, búsqueda y eliminación de la Receta
Descripción: Se van a registrar los datos correspondientes (codreceta,
descripción, coddiagnostico, codrecepcion). Y donde se podrá modificar,
borrar y actualizar los datos de la receta.
Actores: Personal
Iniciador: Receta
Precondición: Ninguno.
Proceso: Registrar, Modificar, Eliminar y Buscar.
1. Insertar Nueva Receta
1.1. Para ingresar un nuevo receta se deberá hacer clic en el
botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: codreceta,
descripción, coddiagnostico
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando una receta este registrado correctamente se deberá
guardar la información ingresada para salvarlo en la base de
datos.
2. Buscar
2.1. Clic en nuevo para limpiar los campos del formulario
2.2. el usuario colocara el Codreceta
2.3. El usuario hará en el botón “Buscar”
2.4. En la tabla se mostrara la receta con sus datos en la tabla.
2.5. En caso ingresar un Codreceta incorrecto o que no esté en la
base de datos, la tabla no mostrara ningún dato
3. Eliminar.- Para eliminar primero se tendrá que haber “buscado” la
receta previamente.
3.1. Seleccionar de la tabla la receta a ser eliminado
3.2. Clic en el botón “Eliminar”
3.3. Se eliminara a la receta de la Tabla Receta y no así de todas
la base de datos.
4. Actualizar.- Para actualizar primero se tendrá que haber “buscado”
una receta previamente.
4.1. Seleccionara de la tabla la receta a ser “Modificado”
4.2. Automáticamente se llenaran los campos con los datos de la
receta seleccionado en la parte superior.
4.3. Se procederá a modificar dichos campos
4.4. El usuario hará Clic en “Actualizar”
4.5. Luego de ser correctamente modificado se deberá guardar los
datos modificados para salvarlo en la base de datos.
Post condición: ninguna
Excepción:
1. El usuario podrá buscar una receta por su codigo ya en caso de no
encontrarlo es que está colocando mal el codigo o esa receta no se
encuentra en la base de datos

CU16: Registrar tratamiento


Nro:16 Caso de Uso: Registrar Tratamiento
Propósito: Realizar Registro, actualizaciones, búsqueda y eliminación del
tratamiento
Descripción: Se van a registrar los datos correspondiente(Codtratamiento,
coddetallediagnostico, descripción). Y donde se podrá actualizar, borrar y
actualizar los datos del tratamiento.
Actores: Personal
Iniciador: Tratamiento
Precondición: Ninguno.
Proceso: registro, Actualizar, Modificar, Eliminar
1. Insertar Nuevo Tratamiento
1.1. Para ingresar un nuevo tratamiento se deberá hacer clic en el
botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Codtratamiento,
coddetallediagnostico, descripcion
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando un tratamiento este registrado correctamente se
deberá guardar la información ingresada para salvarlo en la base
de datos.
2. Eliminar
2.1. Seleccionar de la tabla el tratamiento a ser eliminado
2.2. Clic en el botón “Eliminar”
2.3. Se eliminara al personal seleccionado previamente de
la tabla Tratamiento y Evolucion no así de todas la base de
datos.
3. Actualizar
3.1. Seleccionara de la tabla el tratamiento a ser “Modificado”
3.2. Automáticamente se llenaran los campos con los datos del
tratamiento seleccionado en la parte superior.
3.3. Se procederá a modificar dichos campos
3.4. El usuario hará Clic en “Actualizar”
3.5. En caso de que el formato de los datos proporcionados hayan
sido correctos se guardaran los mismos en la base de datos.
3.6. Caso contrario se mostrara una alerta de que no se ha podido
actualizar los datos.
3.7. Luego de ser correctamente modificado se deberá guardar
los datos modificados para salvarlo en la base de datos.

Post condición: Ver la evolución del tratamiento mediante un reporte


Excepción:
1. Se buscara el tratamiento por su Código ya en el caso de no
haber ingresado correctamente el dato la tabla mostrara un
mensaje de error diciendo que no se pudo encontrar en código
ingresado

CU17: Registrar evolución


Nro.: 17 Caso de Uso: Registrar evolución
Propósito: Realizar registro, actualizaciones, eliminación de la evolución
Descripción: Se van a registrar los datos correspondientes (Codevolucion,
CodTratamiento, fecha, descripción). Y donde se podrá actualizar, modificar,
borrar y actualizar los datos de la evolución
Actores: Personal
Iniciador: Evolucion
Precondición: Ninguno.
Proceso: Actualizar, Modificar, Eliminar.
1. Insertar Nueva Evolución
1.1. Para ingresar un nuevo personal se deberá hacer clic en el
botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Codevolucion, fecha,
descripción
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando una evolución este registrado correctamente se
deberá guardar la información ingresada para salvarlo en la base
de datos.
2. Eliminar
2.1. Seleccionar de la tabla la evolución a ser eliminado
2.2. Clic en el botón “Eliminar”
2.3. Se eliminara la evolución seleccionado previamente de la
tabla Evolución no así de todas la base de datos.
3. Actualizar
3.1. Seleccionara de la tabla la evolución a ser “Modificado”
3.2. Automáticamente se llenaran los campos con los datos de la
evolución seleccionado en la parte superior.
3.3. Se procederá a modificar dichos campos
3.4. El usuario hará Clic en “Actualizar”
3.5. Luego de ser correctamente modificado se deberá guardar los
datos modificados para salvarlo en la base de datos.
Post condición: Realizar búsqueda del tratamiento
Excepción:
1. El usuario buscara la evolución por su código en caso de ingresarla
correctamente la tabla mostrara un mensaje de error

CU18: Registrar políticas de devolución del proveedor


Nro.: 18 Caso de Uso: Registrar políticas de
devolución del proveedor
Propósito: Realizar modificaciones, actualizaciones, búsqueda y eliminación
de las políticas de devolución del proveedor
Descripción: Se van a registrar los datos correspondientes
(CodpoliticadeDevolucion, descripción, Codproducto, Codproveedor). Y
donde se podrá actualizar, modificar, borrar y actualizar los datos de las
políticas de devolución del proveedor.
Actores: Personal, Proveedor
Iniciador: Política de devolución del proveedor
Precondición: Ninguno.
Proceso: Insertar, Actualizar, Modificar, Eliminar y Buscar.
1. Insertar Nuevo Política de devolución
1.1. Para ingresar un nueva Política de devolución se deberá
hacer clic en el botón “Nuevo” para habilitar y limpiar todos los
campos
1.2. Se procederá a llenar todos los campos:
CodpoliticadeDevolucion, descripción, Codproducto,
Codproveedor.
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando una Política de devolución este registrado
correctamente se deberá guardar la información ingresada para
salvarlo en la base de datos.
2. Buscar
2.1. Clic en nuevo para limpiar los campos del formulario
2.2. el usuario colocara el Codpolitica de Devolución
2.3. El usuario hará en el botón “Buscar”
2.4. En la tabla se mostrara la Política de devolución con sus datos
2.5. En caso ingresar un CodpoliticadeDevolucion incorrecto o que
no esté en la base de datos, la tabla no mostrara ningún dato
3. Eliminar.- Para eliminar primero se tendrá que haber “buscado” una
Política de devolución previamente.
3.1. Seleccionar de la tabla la Política de devolución a ser
eliminado
3.2. Clic en el botón “Eliminar”
3.3. Se eliminara la Política de devolución seleccionado
previamente de la tabla Política de devolución y no así de todas la
base de datos.
4. Actualizar.- Para actualizar primero se tendrá que haber “buscado”
una Política de devolución previamente.
4.1. Seleccionara de la tabla la Política de devolución a ser
“Modificado”
4.2. Automáticamente se llenaran los campos con los datos de la
Política de devolución seleccionado en la parte superior.
4.3. Se procederá a modificar dichos campos
4.4. El usuario hará Clic en “Actualizar”
4.5. Luego de ser correctamente modificado se deberá guardar los
datos modificados para salvarlo en la base de datos.

Post condición: Realizar modificaciones, actualizaciones, búsqueda y


eliminación de las Políticas de devolución
Excepción:
1. El usuario buscara la Política de devolución por su código en caso
de no ingresarla correctamente la tabla mostrara un mensaje de
error

CU19: Registrar reposición de medicamentos


Nro.: 19 Caso de Uso: Registrar reposición de
medicamentos
Propósito: Realizar modificaciones, actualizaciones, búsqueda y eliminación
de la reposición de medicamentos
Descripción: Se van a registrar los datos correspondientes (Codreposicion,
Codproveedor, CodrevisiondeProductos). Y donde se podrá actualizar,
modificar, borrar y actualizar los datos de la reposición de medicamentos.
Actores: Personal, Proveedor
Iniciador: reposición de medicamentos
Precondición: Ninguno.
Proceso: Actualizar, Modificar, Eliminar y Buscar.
1. Insertar Nueva reposición de medicamentos
1.1. Para ingresar una nueva reposición de medicamentos se
deberá hacer clic en el botón “Nuevo” para habilitar y limpiar
todos los campos
1.2. Se procederá a llenar todos los campos: Codreposicion,
Codproveedor, CodrevisiondeProductos
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando una reposición de medicamentos este registrado
correctamente se deberá guardar la información ingresada para
salvarlo en la base de datos.
2. Buscar
2.1. Clic en nuevo para limpiar los campos del formulario
2.2. el usuario colocara el Codreposicion
2.3. El usuario hará en el botón “Buscar”
2.4. En la tabla se mostrara la reposición de medicamentos con
sus datos en la tabla.
2.5. En caso ingresar un Codreposicion incorrecto o que no esté
en la base de datos, la tabla no mostrara ningún dato
3. Eliminar.- Para eliminar primero se tendrá que haber “buscado” una
reposición de medicamentos previamente.
3.1. Seleccionar de la tabla la reposición de medicamentos a ser
eliminado
3.2. Clic en el botón “Eliminar”
3.3. Se eliminara la reposición de medicamentos seleccionado
previamente de la tabla reposición de medicamentos y no así de
todas la base de datos.
4. Actualizar.- Para actualizar primero se tendrá que haber “buscado”
una reposición de medicamentos previamente.
4.1. Seleccionara de la tabla la reposición de medicamentos a ser
“Modificado”
4.2. Automáticamente se llenaran los campos con los datos de la
reposición de medicamentos seleccionado en la parte superior.
4.3. Se procederá a modificar dichos campos
4.4. El usuario hará Clic en “Actualizar”
4.5. Luego de ser correctamente modificado se deberá guardar los
datos modificados para salvarlo en la base de datos.

Post condición: Realizar modificaciones, actualizaciones, búsqueda y


eliminación de la reposición de medicamentos
Excepción:
1. El usuario buscara la reposición de medicamentos por su código en
caso de no ingresarla correctamente la tabla mostrara un mensaje de
error

CU20: Registrar devolución de productos del proveedor


Nro.: 20 Caso de Uso: Registrar devolución de
productos del proveedor
Propósito: Realizar registrar y búsqueda de la devolución de productos
Descripción: Se van a registrar los datos correspondientes (Coddevolucion,
cantidad, codproveedor, Codproducto, motivo, Codlote(alimentos,
medicamentos )). Y donde se podrá buscar los datos de la devolución de
productos.
Actores: Personal, Proveedor
Iniciador: devolución de productos
Precondición: Ninguno.
Proceso: Registrar y Buscar.
1. Insertar Nueva devolución de productos.
1.1. Para ingresar un nuevo personal se deberá hacer clic en el
botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Coddevuelto,
cantidad, codproveedor, Codproducto, motivo
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando una devolución de productos este registrado
correctamente se deberá guardar la información ingresada para
salvarlo en la base de datos.
2. Buscar
2.1. Clic en nuevo para limpiar los campos del formulario
2.2. el usuario colocara el Coddevolucion
2.3. El usuario hará en el botón “Buscar”
2.4. En la tabla se mostrara la devolución de productos con sus
datos en la tabla.
2.5. En caso ingresar un Coddevolucion incorrecto o que no esté
en la base de datos, la tabla no mostrara ningún dato
3. Buscar Producto
3.1. Clic en nuevo para limpiar los campos del formulario
3.2. el usuario colocara el Codproducto
3.3. El usuario hará en el botón “Buscar”
3.4. En la tabla se mostrara la devolución de productos con sus
datos en la tabla.
3.5. En caso ingresar un Codproducto incorrecto o que no esté en
la base de datos, la tabla no mostrara ningún dato

Post condición: ninguna


Excepción:
1. El usuario buscara la devolución de productos por su código en
caso de no ingresarla correctamente la tabla mostrara un mensaje
de error

CU21: Registrar Recepción prestar servicios


Nro.: 21 Caso de Uso: Registrar Recepción
prestar servicios
Propósito: Realizar registro y búsqueda de la Recepción
Descripción: Se van a registrar los datos correspondientes (Codrecepcion,
fecha, Codpersonal, Codcliente, codmascota).

Actores: Personal
Iniciador: Recepcion
Precondición: Ninguno.
Proceso: Registrar y Buscar.
1. Insertar Nueva Recepcion
1.1. Para ingresar un nuevo personal se deberá hacer clic en el
botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Codrecepcion, fecha,
Codpersonal, Codcliente, codmascota
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando una Recepcion este registrado correctamente se
deberá guardar la información ingresada para salvarlo en la base
de datos.
2. Buscar
2.1. Clic en nuevo para limpiar los campos del formulario
2.2. el usuario colocara el Codrecepcion
2.3. El usuario hará en el botón “Buscar”
2.4. En la tabla se mostrara la Recepcion con sus datos en la
tabla.
2.5. En caso ingresar un Codrecepcion incorrecto o que no esté en
la base de datos, la tabla no mostrara ningún dato
Post condición: Realizar registro de pago, diagnostico, próxima consulta,
productos utilizados y servicios prestados
Excepción:
1. El usuario buscara la recepcion por su codigo en caso de no
ingresarla correctamente la tabla mostrara un mensaje de error

CU22: Registrar Servicios Prestados


Nro.: 22 Caso de Uso: Registrar Servicios
Prestados
Propósito: Realizar registro, modificación y eliminación de los Servicios
prestados
Descripción: Se van a registrar los datos correspondientes
(Codservicioprestado, Codrecepcion, Codservicio,Precio, Fecha).
Actores: Personal
Iniciador: Servicios Prestados
Precondición: Ninguno.
Proceso: Actualizar, Modificar, Eliminar y Buscar.
1. Insertar Nuevo Servicios Prestados
1.1. Para ingresar un nuevo Servicio Prestado se deberá hacer
clic en el botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos: Codservicioprestado,
Codrecepcion, Codservicio, Fecha
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando un Servicio Prestado este registrado correctamente
se deberá guardar la información ingresada para salvarlo en la
base de datos.
2. Eliminar
2.1. Seleccionar de la tabla el servicio prestado a ser eliminado
2.2. Clic en el botón “Eliminar”
2.3. Se eliminara el servicio prestado seleccionado previamente de
la tabla servicio prestado y no así de todas la base de datos.
3. Actualizar
3.1. Seleccionara de la tabla el servicio prestado a ser
“Modificado”
3.2. Automáticamente se llenaran los campos con los datos del
servicio prestado seleccionado en la parte superior.
3.3. Se procederá a modificar dichos campos
3.4. El usuario hará Clic en “Actualizar”
3.5. Luego de ser correctamente modificado se deberá guardar los
datos modificados para salvarlo en la base de datos.

Post condición: Realizar búsqueda del Servicio Prestado


Excepción:
1. El usuario buscara el Servicio Prestado por su código en caso de
no ingresarla correctamente la tabla mostrara un mensaje de error

CU23: Gestionar Ventas


Nro.: 23 Caso de Uso: Gestionar Ventas
Propósito: Realizar modificaciones, actualizaciones, búsqueda y eliminación
de las Ventas
Descripción: Registrar los acontecimientos en la veterinaria donde se halla
hecho una venta con los siguientes detalles: CodDetalleventa, nombre
(producto), cantidad, precio.
Actores: Cliente, Personal
Iniciador: Cliente
Precondición: Gestionar producto, Registrar Recepción
Proceso: insertar, Actualizar, Eliminar y Buscar.
1. Insertar Nueva Venta
1.1. Para ingresar un nueva venta se deberá hacer clic en el botón
“Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos habilitados
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando una Venta este registrado correctamente se deberá guardar
la información ingresada para salvarlo en la base de datos.
2. Eliminar.- Para eliminar primero se tendrá que haber “buscado” una venta
previamente.
2.1. Seleccionar de la tabla la venta a ser eliminado
2.2. Clic en el botón “Eliminar”
2.3. Se eliminara la venta seleccionada previamente de la tabla
DETALLEVENTA y no así de todas la base de datos.
3. Actualizar.- Para actualizar primero se tendrá que haber “buscado” una
venta de medicamentos previamente.
3.1. Seleccionara de la tabla la venta a ser “Modificado”
3.2. Automáticamente se llenaran los campos con los datos de la venta
seleccionado en la parte superior.
3.3. Se procederá a modificar dichos campos
3.4. El usuario hará Clic en “Actualizar”
3.5. Luego de ser correctamente modificado se deberá guardar los datos
modificados para salvarlo en la base de datos.
4. Buscar
4.1. Clic en nuevo para limpiar los campos del formulario
4.2. el usuario colocara el CodDetalleventa
4.3. El usuario hará en el botón “Buscar”
4.4. En la tabla se mostrara la venta con sus datos en la tabla.
En caso ingresar un Coddetalleventa incorrecto o que no esté en la base de
datos, la tabla no mostrara ningún dato

Post condición: Se actualizara el Stock de los producto comprados


Excepción :
2. Si el producto (medicamento, articulo, alimento) no estuviese
disponible se lanzara una alerta al usuario indicando la falta de del
mismo.

CU24: Registrar productos utilizados


Nro.: 24 Caso de Uso: Registrar productos
utilizados
Propósito: Realizar Registro y modificaciones de los Productos Utilizados
Descripción: Registrar los acontecimientos en la veterinaria de Productos
Utilizados con los siguientes detalles: CodproductosUtilizados,Codrecepcion ,
Codproducto, codlote, fecha, cantidad, codservicioprestado.
Actores: Personal
Iniciador: gestionar productos
Precondición: Gestionar producto
Proceso: Insertar y modificar.
1. Insertar Nueva producto utilizado
1.1. Para ingresar un nueva venta se deberá hacer clic en el botón
“Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos habilitados
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando el Producto Utilizado este registrado correctamente se
deberá guardar la información ingresada para salvarlo en la base de
datos.
2. Actualizar.
2.1. Seleccionar el producto a ser “Modificado”
2.2. Se procederá a modificar dichos campos
2.3. El usuario hará Clic en “Actualizar”
2.4. Luego de ser correctamente modificado se deberá guardar los datos
modificados para salvarlo en la base de datos.

Post condición: se realizara la búsqueda de productos


Excepción :
1. Si el producto utilizado (medicamento, articulo, alimento) no estuviese
disponible se lanzara una alerta al usuario indicando la falta de del
mismo.

CU25: Imprimir certificado de viaje (certificado del estado de buena salud de la mascota)
Nro.: 25 Caso de Uso: Imprimir certificado de
viaje
Propósito: Realizar una impresión del reporte certificado de viaje
Descripción: Buscar e imprimir el reporte del certificado de viaje
Actores: Personal
Iniciador: cliente
Precondición: mascota
Proceso: Buscar e imprimir.
1. Buscar
1.1. Clic en nuevo para limpiar los campos del formulario
1.2. el usuario buscara el reporte mediante un codigo
1.3. El usuario hará en el botón “Buscar”
1.4. En la tabla se mostrara el reporte del certificado con los datos.
1.5. Se realizara la impresión del reporte
1.6. En caso ingresar un codigo invalido incorrecto o que no esté en la
base de datos, la tabla no mostrara ningún dato

Post condición: ninguna


Excepción :
2. Si el reporte no estuviese disponible se lanzara una alerta al usuario
indicando la falta de del mismo.

CU26: Imprimir certificado de vacunacion


Nro.: 26 Caso de Uso: Imprimir certificado de
vacunacion
Propósito: Realizar una impresión del reporte certificado de vacunacion
Descripción: Buscar e imprimir el reporte del certificado de vacunacion
Actores: Personal
Iniciador: cliente
Precondición: mascota
Proceso: Buscar e imprimir.
1. Buscar
a. Clic en nuevo para limpiar los campos del formulario
b. el usuario buscara el reporte mediante un codigo
c. El usuario hará en el botón “Buscar”
d. En la tabla se mostrara el reporte del certificado con los datos.
e. Se realizara la impresión del reporte del cetificado
f. En caso ingresar un codigo invalido incorrecto o que no esté
en la base de datos, la tabla no mostrara ningún dato

Post condición: ninguna


Excepción :
1. Si el reporte no estuviese disponible se lanzara una alerta al usuario
indicando la falta de del mismo.

CU27: Imprimir certificado de vacunación contra la rabia (con respecto a la fecha actual o
de solicitud)
Nro.: 27 Caso de Uso: Imprimir certificado de
vacunación contra la rabia
Propósito: Realizar una impresión del reporte certificado de vacunacion
Descripción: Buscar e imprimir el reporte del certificado de vacunacion
Actores: Personal
Iniciador: cliente
Precondición: mascota
Proceso: Buscar e imprimir.
2. Buscar
2.1. Clic en nuevo para limpiar los campos del formulario
2.2. el usuario buscara el reporte mediante un codigo
2.3. El usuario hará en el botón “Buscar”
2.4. En la tabla se mostrara el reporte del certificado con los datos.
2.5. Se realizara la impresión del reporte del cetificado
2.6. En caso ingresar un codigo invalido incorrecto o que no esté en la
base de datos, la tabla no mostrara ningún dato

Post condición: ninguna


Excepción :
3. Si el reporte no estuviese disponible se lanzara una alerta al usuario
indicando la falta de del mismo.

CU28: Registrar productos desechados


Nro.: 28 Caso de Uso: Registrar productos
desechados
Propósito: Realizar registro de los Productos Desechados
Descripción: Registrar los acontecimientos en la veterinaria de Productos
Desechados con los siguientes detalles: Coddesechado, codproducto,
Codlote, fecha, motivo, cantidad.
Actores: Personal
Iniciador: Gestionar productos
Precondición: Gestionar producto
Proceso: Insertar.
1. Insertar Nuevo producto desechado
1.1. Para ingresar un nuevo producto desechado se deberá hacer clic en
el botón “Nuevo” para habilitar y limpiar todos los campos
1.2. Se procederá a llenar todos los campos habilitados
1.3. Se hará clic en el botón “Registrar”
1.4. Cuando el producto desechado este registrado correctamente se
deberá guardar la información ingresada para salvarlo en la base de
datos.
Post condición: se realizara la buiqueda de productos ya sean: artículos
medicamentos alimentos y otros
Excepción :
3. Si el producto desechado (medicamento, articulo, alimento) no
estuviese disponible se lanzara una alerta al usuario indicando la falta
de del mismo.

6.4. Unificar cada caso de Uso


3.6. Detallar relación de cada caso de uso
C.U. 1.- Gestionar Cliente
CU2.- Gestionar mascota

CU3.- Gestionar personal

CU4.- Gestionar promotor

CU5.- Gestionar proveedor

CU6.- Gestionar servicios


CU7.- Gestionar productos

CU8.- Gestionar diagnostico

CU9.- Gestionar recibo

CU10.- Gestionar próxima consulta

CU11.- Gestionar pago


CU12.- Gestionar pedido

CU13.- Gestionar raza

CU14.- Gestionar animal

CU15.- Registrar receta

CU16.- Registrar tratamiento


CU17.- Registrar evolución

CU18.- Registrar políticas de devolución

CU19.- Registrar reposición de medicamentos

CU20.- Registrar devolución de productos

CU21.- Registrar Recepción prestar servicios


CU22.- Registrar Servicios Prestados

CU23.- Gestionar Ventas

CU24.- Registrar Productos utilizados

CU25.- Imprimir Certificado de Viaje


CU26.- Imprimir Historico de Vacunacion

CU27: Imprimir certificado de vacunación contra la rabia

CU28: Registrar productos desechados (medicamentos o alimentos vencidos)


3.7. PROTOTIPOS
3.7.1.Formularios
1.- Personal

2.- Cliente
3.- Cargo

4.- Mascota

5.- Promotor
6.- Proveedor
7.- Animal

8.- Raza
9.- Diagnostico

10.- Detalle de diagnostico


11.- Receta

12.- Tratamiento
13.- Evolución

14.- Próxima consulta


15.- Pago

16.Recibo
17.- Registrar Servicios Prestados

18.- Productos Utilizados


19.- Pedido

20.- Recepción Prestar Servicios


22.- Revisión de Productos

23.- Políticas de Devolución


24.- Devuelto

25.- Alimento
26.- Desechado

27.- Servicios
28. Administrador de Usuario

29. Usuario

30. Grupo
31. Detalle Venta

32. Tipo de Servicio

32. PrototipoIUFinal
7. FLUJO DE TRABAJO: Analisis
7.1. Análisis de Arquitectura
7.1.1. Identificar Paquetes
En el paquete de servicios se van a gestionar
los servicios y los diferentes tipos de servicio.
Este paquete servirá para administrar la toda
la información referente a los servicios en
general.

En el paquete de persona se gestiona las


diferentes personas involucradas en el
funcionamiento de la veterinaria.

En el paquete de reporte se van a mostrar las


informaciones requeridas para los usuarios del
sistema.

En el paquete de ventas se van a gestionar las


ventas las cuales son realizadas por el
personal de la veterinaria.

En el paquete de inventario se van a gestionar


los productos existentes en la veterinaria, así
también los pedidos que realiza la veterinaria,
la revisión de productos, a su vez también
podrán dar de baja a cualquier producto que
presenta algún inconveniente.
En este paquete se van a gestionar los datos
de las diferentes mascotas las cuales serán
atendidas en la veterinaria, a su vez en este
paquete se podrá gestionar las razas de los
animales y también gestionar a las especies
animales si fuese el caso.

7.1.2. Vista de paquete


Paquete: REPORTES

Paquete: GESTIONAR PERSONA


Paquete: GESTIONAR VENTA

Paquete: GESTIONAR PACIENTE


Paquete: GESTIONAR SERVICIO
Paquete: GESTIONAR INVENTARIO

7.1.3. Encapsular de Casos de Uso


7.2. Analizar casos de Uso
7.2.1. Diagramas de Comunicación
CU1: GESTIONAR CLIENTE
CU2: Gestionar Mascota

7.3. Análisis de Paquetes

7.4. Acoplamiento de Paquetes


8. Flujo de Trabajo: Diseño

8.1. Arquitectura Fisica: Modelo de Despliegue

8.2. Arquitectura Logica: Diagrama Organizado en capaz

8.3. Procedimientos Almacenados


create proc Insertar_Animal( @nombre varchar(50))
as

insert into ANIMAL values( @nombre)

return

go

create proc Actualizar_Animal(@cod int, @nombre varchar(50))

as

update ANIMAL set nombre = @nombre where codanimal = @cod

return

go

create proc Eliminar_Animal(@nombre varchar(50))

as

delete ANIMAL where nombre = @nombre

return

go

create proc Insertar_raza( @codanimal int, @descripcion varchar(50))

as

insert into RAZA values( @codanimal, @descripcion)

return

go

create proc Actualizar_raza(@codraza int, @codanimal int, @descripcion varchar(50))

as

update RAZA set codanimal = @codanimal, descripcion = @descripcion where codraza


= @codraza

return

go

create proc Eliminar_raza(@codraza int)

as

delete from RAZA where codraza = @codraza


return

go

create proc RegistrarMascota(@codpersona int, @codraza int, @nombre varchar(50),


@fechanacimiento date, @sexo char (1), @tamanio char(10), @color varchar(50),
@fechaderegistro date)

as

insert into MASCOTA values(@codpersona, @codraza,


@nombre,@fechanacimiento,@sexo, @tamanio, @color, @fechaderegistro)

return

go

create proc EliminarMascota(@codmascota int)

as

delete MASCOTA where MASCOTA.codmascota=@codmascota

return

go

create proc ActualizarMascota(@codmascota int, @codpersona int, @codraza int, @nombre


varchar(50), @fechanacimiento date, @sexo char (1), @tamanio char(10), @color
varchar(50), @fechaderegistro date)

as

update MASCOTA set codpersona = @codpersona, codraza = @codraza, nombre =


@nombre, fechanacimiento=@fechanacimiento, sexo=@sexo, tamanio=@tamanio,
color=@color, fechaderegistro=@fechaderegistro where codmascota = @codmascota

return

go

create proc BuscarMascota @COD int

as

select *

from MASCOTA

where MASCOTA.codmascota=@COD

return
go

create proc Insertar_TIPOSERVICIO(@nombre varchar(50))

as

insert into TIPOSERVICIO values(@nombre)

return

go

create proc Buscar_TIPOSERVICIO(@COD int)

as

select * from TIPOSERVICIO where codtiposervicio=@COD

return

go

create proc Eliminar_TIPOSERVICO(@COD int)

as

delete from TIPOSERVICIO where codtiposervicio=@COD

return

go

create proc Actualizar_TIPOSERVICIO(@COD int,@NOMBRE varchar(50))

as

update TIPOSERVICIO set nombre=@NOMBRE where codtiposervicio=@COD

return

go

create proc RegistrarServicio( @precio int, @nombre varchar(50), @codtiposervicio int)

as

insert into SERVICIO values( @precio, @nombre, @codtiposervicio)

return

go

create proc EliminarServicio(@codservicio int)

as
delete SERVICIO where codservicio=@codservicio

return

go

create proc ActualizarServicio(@codservicio int, @precio int, @nombre varchar(50),


@codtiposervicio int )

as

update SERVICIO set precio= @precio, nombre = @nombre, codtiposervicio =


@codtiposervicio where codservicio = @codservicio

return

go

create proc BuscarServicio @COD int

as

select *

from SERVICIO

where codservicio=@COD

return

go

create proc Insertar_RECEPCION(@FECH date,@CODM INT,@CODCL int,@CODPER int)

as

insert into RECEPCION values (@FECH,@CODM,@CODCL,@CODPER)

return

go

create proc Buscar_RECEPCION @CODR INT

as

select *

from RECEPCION

where CODRECEPCION=@CODR

return
go

create proc Insertar_SERVICIOSPRESTADOS(@CODRE int,@CODSER INT,@FECH


date,@prec int)

as

insert into SERVICIOSPRESTADOS values (@CODRE,@CODSER,@FECH,@prec)

return

go

create proc Buscar_SERVICIOSPRESTADOS @COD INT

as

select *

from SERVICIOSPRESTADOS

where CODSERVICIOSPRESTADOS=@COD

return

go

create proc Actualizar_SERVICIOSPRESTADOS(@COD int, @CODRE int,@CODSER


INT,@FECH date,@prec int)

as

update SERVICIOSPRESTADOS set codrecepcion=@CODRE where


CODSERVICIOSPRESTADOS=@COD

update SERVICIOSPRESTADOS set codservicio=@CODSER where


CODSERVICIOSPRESTADOS=@COD

update SERVICIOSPRESTADOS set fecha=@FECH where


CODSERVICIOSPRESTADOS=@COD

update SERVICIOSPRESTADOS set precio=@prec where


CODSERVICIOSPRESTADOS=@COD

return

go

create proc Eliminar_SERVICIOSPRESTADOS @COD int

as

delete from SERVICIOSPRESTADOS


where CODSERVICIOSPRESTADOS=@COD

return

GO

create proc Insertar_RECIBO(@FECH date,@MONT INT,@DEUD int,@CODREC int)

as

insert into RECIBO values (@FECH,@MONT,@DEUD,@CODREC)

return

go

create proc Buscar_RECIBO @CODR INT

as

select *

from RECIBO

where CODRECIBO=@CODR

return

go

create proc Actualizar_RECIBO(@COD int, @FECH date,@MONT INT,@DEUD int,@CODREC


int)

as

update RECIBO set fecha=@FECH where CODRECIBO=@COD

update RECIBO set monto=@MONT where CODRECIBO=@COD

update RECIBO set deuda=@DEUD where CODRECIBO=@COD

update RECIBO set codrecepcion=@CODREC where CODRECIBO=@COD

return

go

create proc Eliminar_RECIBO @COD int

as

delete from RECIBO

where CODRECIBO=@COD
return

GO

create proc Insertar_PROXIMACONSULTA(@FECH date,@DES varchar(80),@CODR int)

as

insert into PROXIMACONSULTA values (@FECH,@DES,@CODR)

return

go

create proc Buscar_PROXIMACONSULTA @CODP INT

as

select *

from PROXIMACONSULTA

where CODPROXIMACONSULTA=@CODP

return

go

create proc Actualizar_PROXIMACONSULTA(@COD int, @FECH date,@DES


varchar(80),@CODR int)

as

update PROXIMACONSULTA set fecha=@FECH where


CODPROXIMACONSULTA=@COD

update PROXIMACONSULTA set descripcion=@DES where


CODPROXIMACONSULTA=@COD

update PROXIMACONSULTA set codrecepcion=@CODR where


CODPROXIMACONSULTA=@COD

return

go

create proc Eliminar_PROXIMACONSULTA @COD int

as

delete from PROXIMACONSULTA where CODPROXIMACONSULTA=@COD

return
create proc RegistrarDiagnostico(@codrecepcion int)

as

insert into DIAGNOSTICO values(@codrecepcion)

return

go

create proc EliminarDiagnostico(@codddiagnostico int, @codrecepcion int)

as

delete DIAGNOSTICO where coddiagnostico=@codddiagnostico and


codrecepcion=@codrecepcion

return

go

create proc ActualizarDiagnostico(@codddiagnostico int, @codrecepcion int)

as

update DIAGNOSTICO set codrecepcion= @codrecepcion where coddiagnostico =


@codddiagnostico

return

go

create proc BuscardDiagnostico @COD int

as

select *

from DIAGNOSTICO

where coddiagnostico=@COD

return

go

create proc RegistrarDetallediagnostico( @descripcion varchar(50), @fecha date,


@coddiagnostico int, @codrecepcion int)

as

insert into DETALLEDIAGNOSTICO values( @descripcion, @fecha, @coddiagnostico,


@codrecepcion)
return

go

create proc EliminarDetallediagnostico(@coddetallediagnostico int)

as

delete DETALLEDIAGNOSTICO where coddetallediagnostico=@coddetallediagnostico

return

go

create proc ActualizarDetallediagnostico(@coddetallediagnostico int, @descripcion varchar(50),


@fecha date, @coddiagnostico int, @codrecepcion int)

as

update DETALLEDIAGNOSTICO set descripcion=


@descripcion,fecha=@fecha,coddiagnostico= @coddiagnostico, codrecepcion =
@codrecepcion where coddetallediagnostico = @coddetallediagnostico

return

go

create proc BuscarDetallediagnostico @COD int

as

select *

from DETALLEDIAGNOSTICO

where coddetallediagnostico=@COD

return

go

8.4. Triggers = Disparadores


create TRIGGER actualizar_cant

ON detalleventa

FOR INSERT

AS2

DECLARE @CODPROD VARCHAR(4),@CANT INT

SELECT @CODPROD=codproducto,@CANT=cantidad FROM inserted


UPDATE PRODUCTO SET cantidad =cantidad-@CANT

WHERE codproducto=@CODPROD

GO

drop trigger actualizar_cant

go

create TRIGGER actualizar_cantproducto

ON detalleventa

FOR INSERT

AS

begin

DECLARE @CODPROD VARCHAR(4),@CANT INT, @cantprod int

SELECT @CODPROD=codproducto,@CANT=cantidad FROM inserted

declare @cantrestante int, @cantproducto int

select @cantproducto = producto.cantidad from inserted, producto where


inserted.codproducto = producto.codproducto

set @cantrestante = @cantproducto - @cant

if @cantrestante < 0

begin

print 'Stock!!!'

rollback

end

else

begin

UPDATE PRODUCTO SET cantidad =cantidad-@CANT

WHERE codproducto=@CODPROD
commit

end

end

go

create TRIGGER actualizar_cantpedido

ON detallepedido

FOR INSERT

AS

begin

DECLARE @CODPROD VARCHAR(4),@CANT INT, @cantprod int

SELECT @CODPROD=codproducto,@CANT=cantidad FROM inserted

UPDATE PRODUCTO SET cantidad =cantidad+@CANT

WHERE codproducto=@CODPROD

end

go

create TRIGGER alerta_stock

ON detalleventa

FOR INSERT

AS

begin
DECLARE @CODPROD VARCHAR(4),@CANT INT, @cantprod int

SELECT @CODPROD=codproducto,@CANT=cantidad FROM inserted

declare @cantrestante int, @cantproducto int

select @cantproducto = producto.cantidad from inserted, producto where


inserted.codproducto = producto.codproducto

set @cantrestante = @cantproducto - @cant

if @cantrestante < 3

begin

print 'Stock!!!'

end

end

GO

create trigger actualizarcantproductutilizado

on productoutilizado

after insert

as

declare @codlo int,@codproduc int,@a int;

select @codproduc=codproducto from inserted

if @codproduc in (select codproducto from medicamento)

begin

select @codlo=codlote from inserted

select @a=cantidad from inserted

update medicamento set cantidad =(cantidad-@a) where


codproducto=@codproduc and codlote=@codlo

end

if @codproduc in (select codproducto from articulos)


begin

select @a=cantidad from inserted

update articulos set cantidad =(cantidad-@a) where codproducto=@codproduc

end

if @codproduc in (select codproducto from alimento)

begin

select @codlo=codlote from inserted

select @a=cantidad from inserted

update alimento set cantidad =(cantidad-@a) where codproducto=@codproduc


and codlote=@codlo

end

go

create trigger crearsuma

on recepcion

after insert

as

declare @codrecep int,@codmascota int;

select @codmascota=codmascota from inserted

if @codmascota is not null

begin

select @codrecep=codrecepcion from inserted

insert into suma values(@codrecep,0,0,0)

end

go

create trigger calsumaserviciosprestados

on serviciosprestados

after insert
as

declare @precio int,@codrecep int;

select @codrecep=codrecepcion from inserted

select @precio=precio from inserted

update suma set montoser=(montoser+@precio) where suma.codrecepcion=@codrecep

update suma set total=(total+@precio) where suma.codrecepcion=@codrecep

go

create trigger calsumaproutilizados

on productoutilizado

after insert

as

declare @codproduc int,@can int,@codserp int,@precio int,@codrecep int;

select @codproduc=codproducto from inserted

select @can=cantidad from inserted

select @codserp=codserviciosprestados from inserted

select @codrecep=codrecepcion from serviciosprestados where


serviciosprestados.codserviciosprestados=@codserp

select @precio=precioventa from producto where producto.codproducto=@codproduc

update suma set montopro=(montopro+(@precio*@can)) where


suma.codrecepcion=@codrecep

update suma set total=(total+(@precio*@can)) where suma.codrecepcion=@codrecep

go

create trigger actcanpro

on devuelto

after insert
as

declare @codlo int,@codproduc int,@a int;

select @codproduc=codproducto from inserted

if @codproduc in (select codproducto from medicamento)

begin

select @codlo=codlote from inserted

select @a=cantidad from inserted

update medicamento set cantidad =(cantidad-@a) where


codproducto=@codproduc and codlote=@codlo

end

if @codproduc in (select codproducto from alimento)

begin

select @codlo=codlote from inserted

select @a=cantidad from inserted

update alimento set cantidad =(cantidad-@a) where codproducto=@codproduc


and codlote=@codlo

end

8.5. Bitacoras

---*********bitacora**********---------------------------------------------------------------------------------------

create table Bitacora(

CodBitacora int not null identity(1, 1),

CodUsuario int not null,

--Fecha date not null,

--HoraEntrada time(0) not null,

--HoraSalida time(0) not null,

HoraFechaEntrada char(30),

HoraFechaSalida char(30),
primary key(CodBitacora),

foreign key(CodUsuario)references Usuarios(codusuario)

on delete cascade

on update cascade

go

--drop table detallebitacora

--drop table bitacora

go

create proc Insertar_Bitacora(@codusuario int)

as

declare @entrada char(20)

declare @salida char(20)

select @entrada = GETDATE()

select @salida = GETDATE()

insert into Bitacora values(@codusuario, @entrada, @salida)

return

go

--exec Insertar_Bitacora 1

go

create proc BuscarCodusario(@nombreuser varchar(30))

as

select CODUSUARIO from USUARIOS where NOMBREUSUARIO = @nombreuser

return

go
select * from Bitacora

--drop proc Insertar_Bitacora

--alter proc Insertar_Bitacora(@CodUsuario int)

--as

-- insert into BITACORA values(@CodUsuario , CONVERT (date, SYSDATETIME()) ,


CONVERT (time(0), SYSDATETIME()) , CONVERT (time(0), SYSDATETIME()))

--return

--go

select convert (datetime, SYSDATETIME())

select GETUTCDATE()

select GETDATE()

--exec Insertar_Bitacora 1

select * from BITACORA

go

select * from BITACORA

select * from USUARIOS

go

create procedure ActualizarHoraSalidaBitacora

as

begin

declare @CodBitacora int

select @CodBitacora= MAX(CodBitacora) from Bitacora


declare @fecha char(20)

select @fecha=GETDATE()

update Bitacora set HoraFechaSalida =@fecha

where CodBitacora =@CodBitacora

end

--********detalle bitacora*******

create table DetalleBitacora(

CodDetalleBitacora int not null identity(1, 1),

CodBitacora int not null,

Operacion varchar(30),

HoraOperacion char(20),

primary key(CodDetalleBitacora, CodBitacora),

foreign key (CodBitacora) references Bitacora(CodBitacora)

on delete cascade

on update cascade,

go

create proc Insertar_DetalleBitacora(@operacion varchar(30))

as

declare @horaoperacion char(20)

select @horaoperacion = GETDATE()

declare @codbitacora int

select @codbitacora = MAX(CodBitacora) from Bitacora

insert into detallebitacora values(@codbitacora, @operacion, @horaoperacion)

return
go

--exec Insertar_DetalleBitacora 'nuevo'

go

exec ActualizarHoraSalidaBitacora

go

select* from Bitacora

select * from detallebitacora

select*

from Bitacora, detallebitacora, USUARIOS

where Bitacora.CodUsuario= USUARIOS.CODUSUARIO and Bitacora.CodBitacora=


detallebitacora.CodBitacora
9. FLUJO DE TRABAJO: Implementacion

9.1. Modelo de arquitectura: Sistema Principal


9.2. Arquitectura de Subsistemas

9.2.1. Paquete: PERSONA


9.2.2. Paquete: Venta

9.2.3. Paquete: Servicio


9.2.4. Paquete: INVENTARIOS

9.2.5. Paquete: Reportes


9.2.6. Paquete: PACIENTE
10. CONCLUCIONES
A través de este proyecto se van aprendieron Modelos de desarrollo de
Software principalmente el Proceso Unificado de Desarrollo de
Software(PUDS) lo que también se hizo fue profundizar detalldamente el
UML y se aprendió los conceptos básicos y avanzados del Lenguaje
Unificado de Modelado y que éste no es un lenguaje solo para programación
sino para toda clase de problemas en el aspecto informatico, ya por ejemplo
que nos ayudo a modelar nuestro sistema desde los más básico que fue el
inicio del diseño del sistema hasta la conclusión con buenos resultados.
El proyecto, se avanzó como se esperaba de menos a mas, generando un
Sistema de información capaz de controlar la Veterinaria “EL PRADO”. Cabe
destacar que este proyecto no es tan grande y que hacen falta muchas
cosas más que podrían ser tomadas en consideración en un futuro más
cercano.
Se avanzó de acuerdo a lo que necesita la Veterinaria y lo que se tiene q
hacer es crear una base de datos mas avanzada para almacenar todos los
productos, medicamento y accesorios para evitar pérdida de información,
ayudar a la toma de decisiones de acuerdo a datos almacenados, y el buen
manejo de información de las compras, ventas y servicios clínicos que la
misma hace diariamente.

11. RECOMENDACIONES
Se recomienda a los trabajadores en general de la Veterinaria “EL PRADO”
mejorar el Sistema de Informacion para poder controlar la compra, venta y
servicios clínicos hacia los clientes y proveedores Esto los ayudaría al control
mas eficiente y eficaz de las ventas y compras q piden cada cierto tiempo a los
proveedores . Tambien podría tener un reportes completos de todos los servicios
clínicos que se le hace al paciente.

12. Bibliografia:
 Jacobson, Ivar y Booch, Grady y Rumbaugh, James, El proceso Unificado de
Desarrollo de Software, (España, Ed. Adisson-Wessley Iberoamericana).
 Johansen Bertoglio,Introducción a la teoría general de Sistemas( Mexico, Ed.
Megabyte)
 Aprendiendo UML en 24 horas (Joseph schmuller)

 INGENIERÍA DE REQUERIMIENTOS, Wieringa IEEE.

 MANUAL DE REFERENCIA DE UML, Rumbaugh Jacobson, Booch.


 EL LENGUAJE UNIFICADO DE MODELADO (1era Edición) Addson Wesley
Iberoamericana Madrid, 1999. Rumbaugh Jacobson, Booch
13. ANEXOS

Potrebbero piacerti anche