Perfil de Proyecto: Facultad de Ingeniería en Ciencias de La Computación Y Telecomunicaciones
Perfil de Proyecto: Facultad de Ingeniería en Ciencias de La Computación Y Telecomunicaciones
Perfil de Proyecto: Facultad de Ingeniería en Ciencias de La Computación Y Telecomunicaciones
COMPUTACIÓN Y TELECOMUNICACIONES
INGENIERIA INFORMATICA
INGENIERIA EN SISTEMAS
2-2013
PERFIL DE PROYECTO
Sistema de información para gestionar las comandas,
reservas y cobranza del servicio del restaurant
“REPUBLICA”
DOCENTE : Ing. Garzón Cuellar Angélica
MATERIA : Sistemas De Información I INF – 342
GRUPO : #2
ESTUDIANTES : Cisneros León Gustavo 210041099
Guadama Luis Gerónimo Martín 210031557
Reyes Fuentes Renato 210022140
Rodríguez Aguilera Luis Gustavo 210048409
Rosales Montaño Paola 210006935
GRUPO : ´SB´
FECHA : 5 de diciembre
1
1.2. Antecedentes
2
1.3. Estructura Organizacional
ORGANIGRAMA: REPUBLICA
1.4. Justificación
3
Los motivos por el cual es necesario que el restaurante cuente con un
sistema de información, son los siguientes:
forma manual.
el restaurante.
4
A continuación describiremos el proceso básico del restaurant
”REPUBLICA”¨:
1) Horarios de atención
2) Turnos
✔ De Café
✔ De bebidas
● 8 Meseros
⮚ Turno de la Mañana
5
⮚ Turno de Noche
5) Ubicación de cliente
6
Si el cliente se queda, deberá esperar a que vuelvan a preparar el
pedido, provocando molestias en el cliente, esto se debe a que no
se informa al cliente que pedido hay en ese momento.
8) Manera de atención
9) Reservación de mesas
7
Muchos clientes desean reservar algunas mesas. A la hora de
reservar una mesa, el cliente llama o personalmente se dirige al
restaurant. Se dirige a la cajera, y ella le pide los siguientes datos:
nombre, número de teléfono, hora, el ambiente, la cantidad de
personas.
10) Facturación
8
● Almacenamiento de toda la información del menú (precio, tiempo
de entrega aprox.).
● Almacenamiento de las solicitudes de reserva, para conocimiento
del garzón.
● Facturación de la cuenta de cada cliente de forma automática.
1.7. Objetivos
9
✔ Implementar el sistema de información en el lenguaje de
1.8. Alcance
El sistema será capaz de realizar lo siguiente:
⮚ Id
⮚ Código de Empleado
⮚ Contraseña
● EMITIR RECIBO
Emitir recibo del pedido que realiza el cliente
⮚ Código
⮚ Fecha
⮚ Total
⮚ Código Mesa
⮚ Id Usuario
10
⮚ Estado
● GESTIONAR RESERVAS
Almacenar los datos del cliente, la cantidad de personas, el
ambiente y la hora, para la confirmación de la respectiva reserva de
mesas.
⮚ Código
⮚ Número de personas
⮚ Hora de reserva
⮚ Fecha de reserva
⮚ Estado
● GESTIONAR PEDIDO
Llevar a cabo el registro de los respectivos pedidos que realizan los
clientes.
⮚ Código
⮚ Tiempo de entrega
⮚ Código Recibo
● ADMININISTRAR PRODUCTOS
11
Almacenar los distintos tipos de productos que ofrece el restaurant al
cliente y el precio y tiempo de elaboración de estos.
⮚ Código
⮚ Nombre
⮚ Precio
⮚ Tiempo de elaboración
⮚ Estado
Donde se encuentran:
▪ CAFE
⮚ Código
⮚ Nombre
⮚ Precio
⮚ Tiempo de elaboración
▪ TE
⮚ Código
⮚ Nombre
⮚ Precio
12
⮚ Tiempo de elaboración
▪ POSTRE
⮚ Código
⮚ Nombre
⮚ Precio
⮚ Tiempo de elaboración
▪ ENTRADA
⮚ Código
⮚ Nombre
⮚ Precio
⮚ Tiempo de elaboración
▪ SALADO
⮚ Código
⮚ Nombre
⮚ Precio
⮚ Tiempo de elaboración
▪ PIZZA
13
⮚ Código
⮚ Nombre
⮚ Precio
⮚ Tiempo de elaboración
▪ SOPA
⮚ Código
⮚ Nombre
⮚ Precio
⮚ Tiempo de elaboración
▪ ENSALADA
⮚ Código
⮚ Nombre
⮚ Precio
⮚ Tiempo de elaboración
▪ PANINIS TOSTADO
⮚ Código
⮚ Nombre
14
⮚ Precio
⮚ Tiempo de elaboración
▪ PASTA
⮚ Código
⮚ Nombre
⮚ Precio
⮚ Tiempo de elaboración
▪ CARNE
⮚ Código
⮚ Nombre
⮚ Precio
⮚ Tiempo de elaboración
▪ BEBIDA
⮚ Código
⮚ Nombre
⮚ Precio
⮚ Tiempo de elaboración
15
● GESTIONAR MESA
Administrar la cantidad de mesas que dispone el restaurante, en un
respectivo ambiente, teniendo en cuenta el estado de esta pudiendo
se: disponible u ocupado.
⮚ Código
⮚ Capacidad de sillas
⮚ Estado
⮚ Código Ambiente
● GESTIONAR AMBIENTE
Almacenar los datos del ambiente, siendo estos la capacidad de
personas y el estado en que se encuentra, es decir si aún tiene
mesas disponibles.
⮚ Código
⮚ Descripción
⮚ Capacidad
⮚ Estado
● GESTIONAR TURNO
Almacenar distintos turnos a los que está sujeto a trabajar el
empleado.
⮚ Código
16
⮚ Descripción
⮚ Hora de entrada
⮚ Hora de salida
● GESTIONAR EMPLEADO
Almacenar los datos personales del empleado que corresponden a
toda el área de atención al cliente, en el cual se involucra a: Cajera,
Garzones, Chef, jefe de cocina, otros.
⮚ Código
⮚ Ci
⮚ Nombre
⮚ Apellidos
⮚ Sexo
⮚ Fecha de nacimiento
⮚ Dirección
⮚ Teléfono
⮚ Fecha de ingreso
⮚ Cargo
⮚ Código Turno
17
⮚ Estado
● GESTIONAR CLIENTE
Almacenar los datos personales del cliente para poder estar a su
nombre su reserva y recibo:
⮚ Código
⮚ Nombre
⮚ Teléfono
⮚ Dirección
● GESTIONAR INGREDIENTES
Almacenar los ingredientes para su respectivo producto
⮚ Código
⮚ Nombre
⮚ Precio
● GESTIONAR MODIFICACION
Almacenar la modificación de un pedido realizado
⮚ Código
18
⮚ Código de Producto
1.9. Entrevista
Entrevista # 1
19
PREGUNTAS
¿Cómo se llama el restaurant?
R.- Se llama ‘República’
¿El área de Atención al Cliente está relacionada con las demás o trabajan
independientemente?
R.- Sí o sí se las áreas están relacionadas entre sí, un área depende de la otra,
en el caso del Área de Atención al Cliente depende del Área de Cocina, sino no
funcionaría ninguno de los dos, entonces sí están relacionadas
20
R.- Los meseros llevan la carta, toman el pedido, lo llevan y ellos son los
encargados de hacer el respectivo cobro de la mesa que están atendiendo.
21
Entrevista # 2
22
PREGUNTAS
¿Cuál es el horario de atención al cliente?
R.- Es de:
Lunes 18:00 a 23:00
Martes a Miércoles 10:00 a 23:00
Jueves 10:00 a 00:30
Viernes y Sábado 10:00 a 01:00
Domingo 10:00 a 23:00
23
- 4 meseros de viernes a domingo
Turno de Noche
- 4 meseros de lunes a domingo
24
2. Marco Teorico
2.1.1. Hardware
2.1.1.1. Servidor
● Procesador CORE I5 2310 OEM 2.96M LGA 1155
● Velocidad de reloj de 3.1 GHz
● Memoria RAM SURE 8 Gb DDR3 1333 MHz
● Grabador DVD/CD Samsung 52X SATA Código VT47573, necesario
para la instalación de aplicaciones
● Tarjeta Madre INTEL DH61WW DDR3 LGA 1155
2.1.1.2. Cliente
El cliente accederá al sistema mediante:
● Computadoras de escritorio
25
2.1.2. Software
2.1.2.1. Servidor
● Sistema Operativo Windows Seven
● Gestor de base de datos SQLSERVER 2008
● Java NetBeans IDE 7.3
2.1.2.2. Otro software adicional
Se utilizaran las siguientes herramientas adicionales:
● iReport-4.6.0, permite realizar reportes
2.1.3. Datos
El objetivo principal de un sistema es el manejo de datos, en este caso los
datos a manejar serán:
● Empleados
● Menú
● Mesas
● Ambiente
2.1.4. Procesos
● Gestión de Pedidos
● Gestión de Reservas
● Gestión de Empleado
● Gestión de Reporte
2.1.5. Gente/Usuario
● Cajera
● Administrador
● Chef
● Desarrolladores
2.1.6. Documento
El sistema debe generar documentación física referente a]:
26
● Pedido
● Recibo
MODELOS
● UML es un lenguaje estándar para escribir planos de software.
● UML puede utilizarse para visualizar, especificar, construir y
documentar los artefactos de un sistema y documentar los artefactos de un
sistema.
● UML es solo un lenguaje y por lo tanto es solo una parte de un método
de desarrollo de software.
● UML es independiente de un proceso, aunque para utilizarlo
óptimamente se debería usar en un proceso que fuese dirigido por los casos
de uso, centrado en la arquitectura, iterativo e incremental.
METODOS
El Proceso Unificado "es un proceso de desarrollo de software configurable
que se adapta a través de los proyectos variados en tamaños y complejidad.
El Proceso Unificado guía a los equipos de proyecto en cómo administrar el
desarrollo iterativo de un modo controlado mientras se balancean los
requerimientos del negocio, el tiempo al mercado y los riesgos del proyecto.
27
requerimientos y a la arquitectura. El proceso describe qué entregables
producir, cómo desarrollarlos y también provee patrones.
28
o Incremental porque cada ciclo genera una nueva versión que
mejora las funcionalidades del anterior (Hasta llegar al producto
terminado o deseado).
29
o Diagramas de Clases
o Diagramas de Objetos
o Diagramas de estructuras compuestas
o Diagrama de componente
o Diagrama de despliegues
o Diagrama de paquete
● Dinámicos
o Diagramas de interacción(Secuencia y colaboración)
o Diagrama de Estados
o Diagrama de Actividad
o Diagrama de Casos de Uso
o Diagrama de Tiempo
2.4.1. Software
● Lenguajes de Programación.
30
● Herramientas UML. Entre las que usaremos esta “Enterprise
Architect” que es una herramienta UML (Lenguaje Unificado de
Modelado) que específicamente nos servirá para implementar los
diferentes Diagramas necesarios para el proceso de desarrollo del
Sistema.
2.4.2. Hardware
● , en persona-mes
● , en meses
● , en personas
Donde:
● E es el esfuerzo requerido por el proyecto, en persona-mes
● Tdev es el tiempo requerido por el proyecto, en meses
● P es el número de personas requerido por el proyecto
31
● a, b, c y d son constantes con valores definidos en una tabla, según
cada submodelo.
● Kl es la cantidad de líneas de código, en miles.
● m(X) Es un multiplicador que depende de 15 atributos.
Modelo básico
MODO a b c d
32
2.4 1.0 2.5 0.3
Orgánico
0 5 0 8
33
● Costo total del proyecto (CosteM) = CosteH * Salario medio entre los
programadores y analistas.
Salario medio aproximado es de 500$
CosteM = 2*500
CosteM=1000$
2.6.1. Tiempo
● Evitar pérdida de tiempo en los pedidos recopilando información que
está almacenada en bases de datos.
● Brindar la información en tiempo real de cualquier producto del menú.
2.6.2. Esfuerzo
● Una Interfaz sencilla y de rápido acceso, para el mejor entendimiento
del Usuario.
● La administración utiliza la información gestionada por nuestro sistema
para identificar las diferentes tipos de productos del menú, mejorar la
variedad de productos y eliminar la variedad de productos.
2.6.3. Costos
● Menos costos en requerimientos de personal.
Con la gran cantidad de empresas del sector productivo que existe hoy en día
este sistema podría ser de gran utilidad en empresas que manejan gran
cantidad de personal como ser Empresas del mismo rubro, patios de comida,
pensiones, etc.
34
3. Método de Requerimiento
ISHIKAWA.-
3.1. Identificar la lista de problemas.-
3.1.1. Lista de problemas
P1: Lentitud de entrega del producto
P2: Deficiencia en la administración de las ventas realizadas
P3: Inadecuada búsqueda de mesas disponibles
P4: Deficiencia en la gestión de los productos (platos, bebidas y postres)
disponibles.
P5: Lentitud en el proceso de pedido
P6: Demora en la elaboración del producto
P7: Deficiencia en la ubicación de los clientes
P8: Retrasos en la asignación de garzones
P9: Retraso al atender al cliente
P10: Deficiencia en la actualización del menú
P11: Insuficiente conocimiento entre los precios de los productos.
P12: Incomodidad en la espera del cliente.
P13: Deficiente procedimiento para el conocimiento de la fecha de
vencimiento de insumos.
P14: Deficiencia en la administración del registro del personal del restaurant
P15: Ineficiente manejo de cambio de moneda.
P16: Ausencia de organización para las reuniones.
P17: Inexistencia del control de stock.
35
P18: Deficiencia en la administración de reservas
P19: Pérdida de tiempo por inexistencia de productos en el stock.
P20: Ineficiencia y pérdida de tiempo en la facturación
P21: Deficiencia en el cumplimiento de las normas de trabajo.
P22: Incumplimiento de orden de atención de los clientes.
P23. Deficiente control de egresos
P24. Deficiente procesamiento de datos (notas de venta, informes).
P25: Perdida de tiempo en cálculo de la cuenta de cliente
3.1.2. Depurar problemas
P1: Lentitud de entrega del producto
P6: Demora en la elaboración del producto
P9: Retraso al atender al cliente
P12: Incomodidad en la espera del cliente.
P13: Deficiente procedimiento para el conocimiento de la fecha de
vencimiento de insumos.
P14: Deficiencia en el control del registro del personal del restaurant
P16: Ausencia de organización para las reuniones.
P17: inexistencia del control de stock.
P19: Pérdida de tiempo por inexistencia de productos en el stock.
P20: Ineficiencia y pérdida de tiempo en la facturación
P21: Deficiencia en el cumplimiento de las normas de trabajo.
P23. Deficiente control de egresos
36
P7: Deficiencia en la actualización del menú
P8: Insuficiente conocimiento entre los precios de los productos.
P9: Ineficiente manejo de cambio de moneda.
P10: Deficiencia en la administración de reservas
P11: Incumplimiento de orden de atención de los clientes.
P12. Deficiente procesamiento de datos (notas de venta, informes).
P13: Perdida de tiempo en cálculo de la cuenta de cliente
P1 ✔
P2 ✔ ✔ ✔
P3 ✔ ✔
P4 ✔ ✔ ✔ ✔
P5 ✔ ✔ ✔
P6 ✔ ✔
P7 ✔ ✔
P8 ✔ ✔ ✔ ✔
P9 ✔ ✔
37
P10 ✔ ✔ ✔
P11 ✔
P12 ✔ ✔
P13 ✔ ✔
38
3.1.5. Analizar problemas
39
3.1.6. Diseño grafico
40
3.4. Analizar y discutir el diagrama
41
Al haber analizado y discutido los problemas encontrados, se llegó a la
conclusión de que es necesario la implementación de un sistema de
información para la solución de los siguientes problemas:
organizándose mejor.
información y organización.
3.6. Conclusión.-
42
4. Modelo de dominio
43
4.1. Diseño Lógico
4.1.1. Diagrama de clases
44
4.1.2. Diagrama Relacional
45
5. Modelo de Negocio
Diagrama de Actividades
46
PROCESO DE ATENCIÓN
Participantes
- Cliente
- Jefe de Garzón
- Garzón
- Cajera
47
-
48
49
PROCESO DE PAGO
Participantes:
- Cliente
- Garzón
- Cajero
50
6. Flujo de Trabajo: Requisitos
51
Los actores principales del Software de gestión son los siguientes:
52
Casos de Uso
53
6.2. Priorizar Casos de Uso
Casos de Uso Estado Prioridad Riesgo
CU1: Iniciar sesión Aprobado Normal Normal
CU2: Gestionar turno Aprobado Normal Normal
CU3: Gestionar empleados Aprobado Normal Normal
CU4: Gestionar usuario Aprobado Normal Normal
CU5: Gestionar ambiente Aprobado Normal Normal
CU6: Gestionar mesas Aprobado Normal Normal
CU7: Gestionar tipo Aprobado Normal Normal
CU8: Gestionar ingredientes Aprobado Normal Normal
CU9: Gestionar producto Aprobado Normal Normal
CU10: Gestionar cliente Aprobado Normal Normal
CU11: Gestionar asignación de garzones Normal Critico Critico
CU12: Gestionar pedido Aprobado Critico Critico
CU13: Consultar producto Aprobado Significativo Accesorio
CU14: Gestionar modificación Aprobado Significativo Accesorio
CU15: Gestionar recibo Aprobado Critico Critico
CU16: Consultar recibo Aprobado Significativo Accesorio
CU17: Imprimir recibo Incorporado Significativo Accesorio
CU18: Gestionar reservas Aprobado Normal Normal
CU19: Consultar reserva Aprobado Significativo Accesorio
CU20: Consultar espacio disponible Aprobado Significativo Accesorio
CU21: Consultar mesa Aprobado Significativo Accesorio
CU22: Generar reporte de recibo Incorporado Critico Critico
CU23: Generar reporte de pedido Incorporado Critico Critico
CU24: Generar reporte de reserva Incorporado Critico Critico
CU25: Generar reporte de producto Incorporado Critico Critico
CU26: Ver bitácora Propuesto Normal Normal
CU27: Cambiar contraseña Aprobado Normal Normal
CU28: Cerrar sesión Aprobado Normal Normal
54
6.3. Detallar Casos de Uso
CU1: Iniciar sesión
DISEÑO DE CASO DE USO
55
Error : Usuario no existe
En caso que no sean iguales las contraseñas
Error: Contraseña incorrecta
56
Post-Condición
Excepción Se arroja excepción por datos nulos
57
2.2. Click en el botón guardar
2.3. Verificar los datos
2.4. Si están correctos se modifican los datos
2.5. Si no están correctos se arroja una excepción
Post-Condición
Excepción de registro:
Excepción por datos nulos
Excepción
Excepción de modificación:
Excepción por datos nulos
58
CU4: Gestionar usuario
Registrar usuario
1.Id
2.Contraseña
3.Codigo de empleado
4.Click en guardar
Flujo de Suceso
5.Se verifican los campos
6.Si están correctos se almacenan
7.Si no están correctos arroja excepción
S
A
S
Modificar usuario
59
1. Id
2. Contraseña
3. Codigo de empleado
4. Click en guardar
5. Se verifican los campos
6. Si están correctos se almacenan
7. Si no están correctos arroja excepción
Eliminar usuario
1. Seleccionar usuario
2. Click en aceptar
3. Se verifican los datos
4. Si están correctos se elimina
5. Si no están correctos arroja excepción
Post-Condición
Registrar usuario arroja excepción por datos nulos
Excepción
Modificar usuario arroja excepción por datos nulos
60
CU5: Gestionar ambiente
61
1. Seleccionar el ambiente
2. Click en aceptar
Post-Condición
Registrar ambiente arroja excepción por datos nulos
Excepción
Modificar ambiente arroja excepción por datos nulos
CU6: Gestionar mesas
62
2. Click en aceptar
Post-Condición
Registrar mesa arroja excepción por datos nulos
Excepción
Modificar mesa arroja excepción por datos nulos
Eliminar tipo
1. Seleccionar tipo
63
2. Click en aceptar
Post-Condición
Registrar tipo arroja excepción por datos nulos
Excepción
Modificar tipo arroja excepción por datos nulos
64
CU9: Gestionar producto
65
Post-Condición
Excepción En caso de error : “Error : Datos inválidos”
66
2.3.3 dirección
4. guardar
Post-Condición
Excepción
Post-Condición
Excepción Error : Código de garzón Invalido
67
CU12: Gestionar pedido
68
3.3. Código recibo
4. Agregar pedido
Post-Condición CU14: Gestionar modificación
Excepción
69
CU14: Gestionar modificación
70
CU15: Gestionar recibo
71
Excepción El código de recibo es único y solo se repite una sola vez
72
Post-Condición Ninguno
Excepción Los recibos solo serán emitidos una sola ves
73
Post-Condición Ninguno
Excepción Un recibo solo se podrá imprimir si se llena todos los datos
74
CU19: Consultar reserva
Post-Condición Ninguno
Excepción
75
CU20: Consultar espacio disponible
76
CU21: Consultar mesa
77
CU22: Generar reporte de recibo
78
CU23: Generar reporte de pedido
79
CU24: Generar reporte de reserva
80
CU25: Generar reporte de producto
81
CU26: Ver bitácora
83
Post-Condición Ninguno
Excepción
84
Cerrar Sesión
1. Obtiene al Usuario que está activo
Flujo de Suceso
2. Elimina de la Sesión al Usuario
3. Guarda en la bitácora el cierre de sesión
Post-Condición Ninguno
Excepción
85
86
87
6.5. Estructurar Modelo de Casos de Uso
88
7. Flujo de Trabajo: Análisis
89
Descripción: El paquete "Conexión" agrupara las todas las clases que hagan
la conexión del sistema con la base de datos existente, y también con el
programa para hacer reportes.
90
Descripción: El paquete " S.I.G.C.R.y.C.S.R. “REPUBLICA” " es aquel que
agrupara las clases entidades de las base de datos y agrupara también los
casos de uso.
91
92
93
94
95
7.1.3. Encapsular Casos de Uso
96
97
98
99
100
7.2. Analizar Casos de Uso
101
CU2: Gestionar turno
102
CU3: Gestionar empleados
103
CU4: Gestionar usuario
104
del usuario, mediante el método propio valida que llegaron, si esta correcto
llama al método eliminarDatos(), de la clase entidad que enviará a la base de
datos todos los datos entrantes.
105
CU6: Gestionar mesas
106
correcto llama al método modificarDatos(), de la clase entidad que enviará a la
base de datos todos los datos entrantes.
107
CU7: Gestionar tipo
108
CU8: Gestionar ingredientes
109
requeridos del ingrediente, mediante el método propio valida que llegaron, si
esta correcto llama al método eliminarDatos(), de la clase entidad que enviará
a la base de datos todos los datos entrantes.
110
CU10: Gestionar cliente
111
3. Al presionar el botón eliminar se llama al método eliminar(), enviándole todos
los datos del formulario, llamara a la clase control controlGestionCliente a
través del método Buscar (), que recibe como parámetros los datos requeridos
del cliente, mediante el método propio valida que llegaron, si esta correcto
llama al método eliminarDatos(), de la clase entidad que enviará a la base de
datos todos los datos entrantes.
CU11: Gestionar asignación de garzones
112
3. Al presionar el botón eliminar se llama al método eliminar(), enviándole todos los
datos del formulario, llamara a la clase control
controIGestionarAsignacionGarzones a través del método insertarDatos(), que
recibe como parámetros los datos requeridos del recibo, mediante el método
propio valida que llegaron, si esta correcto llama al método eliminarDatos(), de la
clase entidad que enviará a la base de datos todos los datos entrantes.
113
CU13: Consultar producto
114
CU14: Gestionar modificación
115
CU15: Gestionar recibo
116
código del usuario, con toda la información llama al método guardar(), de la
clase entidad que enviará a la base de datos todos los datos entrantes.
117
llegaron, si están correctos obtiene el código del recibo, con esta
informacion llama al método consultar().
118
con toda la información llama al método guardar(), de la clase entidad que
enviará a la base de datos todos los datos entrantes.
119
2. Al presionar el botón modificar se llama al método modificar(), enviándole
todos los datos del formulario, llamara a la clase control
controlGestionarReserva a través del método insertarDatos(), que recibe como
parámetros los datos requeridos de la reserva, mediante el método propio
valida que llegaron, si esta correcto llama al método modificarDatos(), de la
clase entidad que enviará a la base de datos todos los datos entrantes.
3. Al presionar el botón eliminar se llama al método eliminar(), enviándole todos
los datos del formulario, llamara a la clase control controlGestionarReserva a
través del método insertarDatos(), que recibe como parámetros los datos
requeridos de la reserva, mediante el método propio valida que llegaron, si
esta correcto llama al método eliminarDatos(), de la clase entidad que enviará
a la base de datos todos los datos entrantes.
120
requeridos de la reserva, mediante un método propio valida los datos que
llegaron, si están correctos obtiene el código de la reserva, con esta
informacion llama al método consultar().
121
propio valida los datos que llegaron, si están correctos obtiene el código
del espacio, con esta informacion llama al método consultar().
123
controIGestionarReporteDeRecibo a través del método insertarDatos(),que
recibe como parámetros los datos requeridos del recibo, mediante un método
propio valida los datos que llegaron, si esta correcto obtiene el código del
recibo, con toda la información llama al método generar(), de la clase entidad
que enviará a la base de datos todos los datos entrantes.
124
controIGestionarReporteDePedido a través del método insertarDatos(),que
recibe como parámetros los datos requeridos del pedido, mediante un método
propio valida los datos que llegaron, si esta correcto obtiene el código del
pedido, con toda la información llama al método generar(), de la clase entidad
que enviará a la base de datos todos los datos entrantes.
125
controIGestionarReporteDeReserva a través del método insertarDatos(),que
recibe como parámetros los datos requeridos de la reserva, mediante un
método propio valida los datos que llegaron, si esta correcto obtiene el código
de la reserva, con toda la información llama al método generar(), de la clase
entidad que enviará a la base de datos todos los datos entrantes.
126
1. Al presionar el botón nuevo se llama al método nuevo(), enviándole todos los
datos del formulario, llamara a la clase control
controIGestionarReporteDeProducto a través del método insertarDatos(),que
recibe como parámetros los datos requeridos del producto, mediante un
método propio valida los datos que llegaron, si esta correcto obtiene el código
del producto, con toda la información llama al método generar(), de la clase
entidad que enviará a la base de datos todos los datos entrantes.
127
1. Al presionar el botón GestionarBitacora se llamará a la clase control
128
1. Al presionar el botón nuevo se llama al método nuevo(), enviándole todos los
datos del formulario, llamara a la clase control controlCambiarContraseña a
través del método insertarDatos(), que recibe como parámetros los datos
requeridos de la contraseña, mediante un método propio valida los datos que
llegaron, si esta correcto obtiene el código del usuario, con toda la
información llama al método guardar(), de la clase entidad que enviará a la
base de datos todos los datos entrantes.
129
1. Al cerrar sesion el sistema se llama al método llamado cerrar(), enviándole
todos los datos del formulario, llamara a la clase control controllogin, mediante
un método propio valida los datos que llegaron y si están correctos llama al
método Cerrar().
130
8. Flujo de Trabajo: Diseño
131
132
8.1.2. Arquitectura Lógica: Diagrama Organizado en Capas
1
8.2. Diseño de datos
8.2.1. Diseño lógico
Mapeo
Cliente
cod_cliente nombre teléfono dirección
Reserva
cod_reserva cod_cliente numero_personas hr_reserva fecha_reserva estado
Ambiente
cod_ambiente Descripción capacidad estado
Mesa
cod_mesa capacidad estado cod_amb
Empleado
cod_empleado ci nombre apellido sexo estado
fecha_nac direccion telefono cod_turno fecha_ingreso cargo
Usuario
Id Contrasenia cod_empl
Recibo
cod_recibo cod_cliente fecha total cod_mesa id_user estado
Pedido
cod_pedido tiempo_entrega cod_rec
Turno
2
cod_turno Descripción hora_entrada hora_salida
Tipo
cod_tipo nombre
Producto
cod_producto nombre cod_tipo precio tiempo_elaboracion estado
Modificacion
Cod_modificacion Cod_ped Cod_prod
Ingrediente
cod_ingrediente Nombre precio
Reservar
cod_reserva cod_mesa
Asignar
cod_mesa cod_empl
Contiene
cod_pedido cod_producto
ModifIngred
cod_modif cod_ing descripcion
IngredienteProducto
Cod_prod Cod_ing
PK Negrita
FK Cursiva
3
8.2.2. Diseño físico
Tabla de volumen
4
Cliente
Atributo Tipo Dato Amplitud Llave Permite Nulo Descripción
Cod_cliente Numérico No Primaria No
nombre Alfabético 50 No No
teléfono Numérico No No No
dirección Alfabético 50 No Si
Reserva
5
hora_entrada Tiempo No No No
hora_salida Tiempo No No No
Empleado
6
Pedido
Modificacion
Atributo Tipo Dato Amplitud Llave Permite Nulo Descripción
cod_modificacion Numérico No Primaria No
cod_ped Numérico No Foránea No
cod_prod Numérico No Foránea No
Ingrediente
7
Reservar
8
Script
create database prueba_sistinf1;
use prueba_sistinf1;
go
create table Cliente(
cod_cliente int not null,
nombre varchar(50) not null,
telefono int ,
Direccion varchar(50),
primary key (cod_cliente)
);
go
create table Reserva(
cod_reserva int not null,
cod_cliente int not null,
numero_personas int not null,
hora_reserva time not null,
9
fecha_reserva date not null,
estado varchar(20)not null,
primary key(cod_reserva),
foreign key(cod_cliente) references Cliente(cod_cliente)
on update cascade on delete cascade
);
go
create table Ambiente(
cod_ambiente int not null,
descripcion varchar (50) not null,
capacidad int not null,
estado char not null, -- Estado: Disponible = D , Ocupado = O
primary key (cod_ambiente)
);
go
10
foreign key(cod_amb) references Ambiente(cod_ambiente)
on delete cascade on update cascade
);
go
create table Turno(
cod_turno int not null,
descripcion varchar(20),
hora_entrada time not null,
hora_salida time not null,
primary key(cod_turno)
);
go
create table Cargo(
cod_cargo bigint identity(1,1) not null,
Descripcion varchar(50) not null,
primary key(cod_cargo)
);
go
create table Empleado(
cod_empleado int not null,
ci int not null,
nombre varchar(50) not null,
11
apellido varchar(50) not null,
sexo char not null,
fecha_nac date not null,
direccion varchar(100) not null,
telefono int not null,
fecha_ingreso date not null,
cod_cargo bigint not null,
cod_turno int not null,
estado varchar(10)not null,
primary key(cod_empleado),
foreign key(cod_cargo) references Cargo(cod_cargo)
on delete cascade on update cascade,
foreign key(cod_turno) references Turno(cod_turno)
on delete cascade on update cascade
);
go
12
foreign key(cod_empl) references Empleado(cod_empleado)
on delete cascade on update cascade
);
go
13
create table Recibo(
cod_recibo int not null,
cod_cliente int not null,
fecha date not null,
total float not null,
cod_mesa int not null,
id_user varchar(50) not null,
estado varchar(30) not null,
primary key(cod_recibo),
foreign key (cod_mesa) references Mesa(cod_mesa)
on delete cascade on update cascade,
foreign key(id_user) references Usuario(id)
on delete cascade on update cascade,
foreign key(cod_cliente) references Cliente(cod_cliente)
on update cascade on delete cascade
);
go
create table Pedido(
cod_pedido int not null,
tiempo_entrega int not null,
cod_rec int not null,
primary key(cod_pedido),
14
foreign key(cod_rec) references Recibo(cod_recibo)
on delete cascade on update cascade
);
go
create table Tipo(
cod_tipo int not null,
nombre varchar(20) not null,
primary key(cod_tipo)
);
go
create table Producto(
cod_producto int not null,
nombre varchar(50) not null,
cod_tipo int not null,
precio float not null,
tiempo_elaboracion int not null,
estado varchar(20) not null,
primary key(cod_producto),
foreign key(cod_tipo) references Tipo(cod_tipo)
on delete cascade on update cascade
);
go
15
create table Ingrediente(
cod_ingrediente int not null,
nombre varchar(50) not null,
precio float not null,
primary key(cod_ingrediente)
);
go
18
foreign key(cod_producto) references Producto(cod_producto)
on delete cascade on update cascade
);
go
create table Bitacora(
codigo bigint identity (1,1)not null,
id_usuario varchar(50) not null,
fecha date not null,
hora time not null,
accion varchar(40) not null
primary key (codigo),
foreign key(id_usuario) references Usuario(id)
on delete cascade on update cascade
);
go
Actualización de tuplas
● Insert ()
----------------------Insertar Tuplas------------
------------Cliente--------------------------
insert into Cliente values(1,'Nicolas Coronado',3425463,'Zona Villa Union');
insert into Cliente values(2,'Hubert Sologuren',78195145,'Zona Parque Industrial');
insert into Cliente values(3,'Daniel Toledo',3645900,'Zona Banzer');
19
------------Tipo-----------------
insert into Tipo values(1,'Cafe');
insert into Tipo values(2,'Te');
insert into Tipo values(3,'Postre');
insert into Tipo values(4,'Entrada');
insert into Tipo values(5,'Salado');
insert into Tipo values(6,'Pizza');
insert into Tipo values(7,'Sopa');
insert into Tipo values(8,'Ensalada');
insert into Tipo values(9,'Paninis Tostado');
insert into Tipo values(10,'Pasta');
insert into Tipo values(11,'Carne');
insert into Tipo values(12,'Bebida');
------Cafe - 1
insert into Producto values(1,'Espresso',1,9,5,'Disponible');
insert into Producto values(2,'Espresso doble',1,11,5,'Disponible');
insert into Producto values(3,'Espresso cortado',1,10,5,'Disponible');
insert into Producto values(4,'Americano',1,11,5,'Disponible');
insert into Producto values(5,'Americano cortado',1,12,5,'Disponible');
insert into Producto values(6,'Capuccino',1,12,5,'Disponible');
insert into Producto values(7,'Capuccino Republica',1,15,5,'Disponible');
insert into Producto values(8,'Cafe latte',1,12,5,'Disponible');
20
insert into Producto values(9,'Cafe latte con escencia',1,15,5,'Disponible');
insert into Producto values(10,'Cafe bombon',1,15,5,'Disponible');
insert into Producto values(11,'Mocaccino',1,12,5,'Disponible');
insert into Producto values(12,'Frapuccino',1,18,5,'Disponible');
insert into Producto values(13,'Cafe Irlandes',1,30,5,'Disponible');
------Te - 2
insert into Producto values(14,'Te clasico',2,8,5,'Disponible');
insert into Producto values(15,'Te clasico helado',2,10,5,'Disponible');
insert into Producto values(16,'Lady Grey Tea',2,10,5,'Disponible');
insert into Producto values(17,'Irish Beakfast Tea',2,10,5,'Disponible');
insert into Producto values(18,'English Breakfast Tea',2,10,5,'Disponible');
insert into Producto values(19,'Earl Grey Tea',2,10,5,'Disponible');
insert into Producto values(20,'Naranja y Canela Picante',2,10,5,'Disponible');
insert into Producto values(21,'Caballero Ingles',2,15,5,'Disponible');
insert into Producto values(22,'Pocioin Silvestre',2,15,5,'Disponible');
insert into Producto values(23,'Brisas del Mar',2,15,5,'Disponible');
insert into Producto values(24,'Frutos Rojos',2,15,5,'Disponible');
insert into Producto values(25,'Citrus',2,15,5,'Disponible');
insert into Producto values(26,'Frutos del Bosque',2,15,5,'Disponible');
------Postres - 3
insert into Producto values(27,'Brownie super humedo dechocolate negro',3,20,5,'Disponible');
21
insert into Producto values(28,'Brownie super humedo dechocolate negro con helado',3,25,5,'Disponible');
insert into Producto values(29,'Tarta de manzana',3,10,5,'Disponible');
insert into Producto values(30,'Verrine delirio de chocolate',3,25,5,'Disponible');
insert into Producto values(31,'Verrine pasion de fruts rojos',3,25,5,'Disponible');
insert into Producto values(32,'Tiramisu',3,25,5,'Disponible');
insert into Producto values(33,'Budin de zanahoria',3,15,5,'Disponible');
------Entradas - 4
insert into Producto values(34,'Empanada de carne',4,7,5,'Disponible');
insert into Producto values(35,'Empanada de pollo',4,7,5,'Disponible');
insert into Producto values(36,'Empanada de espinaca',4,7,5,'Disponible');
insert into Producto values(37,'Empanada de queseo',4,7,5,'Disponible');
insert into Producto values(38,'Tequeños',4,25,5,'Disponible');
insert into Producto values(39,'Langostinos rebozados',4,55,5,'Disponible');
------Salados - 5
insert into Producto values(40,'Cunape clasico',5,3,5,'Disponible');
insert into Producto values(41,'Cunape rosquitas,',5,3.5,5,'Disponible');
insert into Producto values(42,'Cunape tocino',5,3.5,5,'Disponible');
insert into Producto values(43,'Sonso',5,7,5,'Disponible');
insert into Producto values(44,'Sandwich miga de jamon y queso',5,10,5,'Disponible');
------Pizzas - 6
22
insert into Producto values(45,'Fugazzeta',6,40,15,'Disponible');
insert into Producto values(46,'Cuatro quesos',6,49,15,'Disponible');
insert into Producto values(47,'Americana',6,49,15,'Disponible');
insert into Producto values(48,'Pepperoni',6,49,15,'Disponible');
insert into Producto values(49,'Caprese',6,40,15,'Disponible');
insert into Producto values(50,'Clasica de anchoas',6,49,15,'Disponible');
------Sopas - 7
insert into Producto values(51,'Crema de zapallo',7,25,10,'Disponible');
insert into Producto values(52,'Sopa de cebolla',7,30,10,'Disponible');
insert into Producto values(53,'Crema de hongos',7,30,10,'Disponible');
------Ensalada - 8
insert into Producto values(54,'Ensalada cesar',8,30,10,'Disponible');
insert into Producto values(55,'Ensalada mar y tierra',8,40,10,'Disponible');
insert into Producto values(56,'Ensalada asiatica',8,30,10,'Disponible');
insert into Producto values(57,'Ensalada de quinoa',8,39,10,'Disponible');
------Paninis tostados - 9
insert into Producto values(58,'Caprese',9,30,15,'Disponible');
insert into Producto values(59,'De la huerta',9,30,15,'Disponible');
23
insert into Producto values(60,'Lomito de res',9,30,15,'Disponible');
insert into Producto values(61,'Pollo',9,35,15,'Disponible');
insert into Producto values(62,'Atun',9,35,15,'Disponible');
insert into Producto values(63,'Jamon y queso',9,25,10,'Disponible');
------Pasta - 10
insert into Producto values(64,'SorrentinosCapreseensalsadepicantede hongos',10,55,20,'Disponible');
insert into Producto values(65,'Tagliatelle cremoso de mar',10,55,15,'Disponible');
insert into Producto values(66,'Spaghetti al pesto',10,35,15,'Disponible');
insert into Producto values(67,'Spaghetti a la boloñesa',10,35,15,'Disponible');
insert into Producto values(68,'Feticcini Alfredo',10,35,15,'Disponible');
------Carne - 11
insert into Producto values(69,'Lomito de res albardado',11,50,20,'Disponible');
insert into Producto values(70,'Lomito a la pimienta',11,50,20,'Disponible');
insert into Producto values(71,'Lomito saltado',11,39,20,'Disponible');
insert into Producto values(72,'Arroz chaufa de carne',11,39,20,'Disponible');
insert into Producto values(73,'Filete de pollo rebozado',11,39,20,'Disponible');
insert into Producto values(74,'Filete de pollo a la plancha',11,39,20,'Disponible');
insert into Producto values(75,'Filete de pescado rebozado / paiche o surubi',11,59,20,'Disponible');
insert into Producto values(76,'Trucha Grillada con salsa de queso azul',11,59,20,'Disponible');
------Bebida - 12
insert into Producto values(77,'Copa de vino',12,20,5,'Disponible');
24
insert into Producto values(78,'Vino Tinto Campos de la Solana',12,70,5,'Disponible');
insert into Producto values(79,'Vino Blanco Camposde la solana',12,70,5,'Disponible');
insert into Producto values(80,'Vino Tinto La chamiza polo profesional',12,100,5,'Disponible');
insert into Producto values(81,'Vino Blanco Cousino Macul Don Luis',12,90,5,'Disponible');
insert into Producto values(82,'Vino Tinto Cousino Macul',12,160,5,'Disponible');
insert into Producto values(83,'Vino Rosado de Solana Rose',12,70,5,'Disponible');
---------Turno
insert into Turno values(1,'Mañana','09:00','17:00');
insert into Turno values(2,'Noche','17:00','01:00');
insert into Turno values(3,'Mañana - Noche','09:00','01:00');
---------Ambiente
insert into Ambiente values(1,'Abierto',100,'D');
insert into Ambiente values(2,'Cerrado',50,'D');
---------Mesa
insert into Mesa values(1,4,'D',1);
insert into Mesa values(2,4,'D',2);
insert into Mesa values(3,4,'D',1);
insert into Mesa values(4,4,'O',1);
insert into Mesa values(5,4,'D',2);
insert into Mesa values(6,4,'D',2);
insert into Mesa values(7,4,'D',1);
25
insert into Mesa values(8,4,'O',2);
insert into Mesa values(9,5,'O',1);
insert into Mesa values(10,5,'D',2);
---------Reserva
insert into Reserva values(1,1,4,'10:15','02/10/2013','Activo');
insert into Reserva values(2,2,2,'11:15','01/10/2013','Activo');
insert into Reserva values(3,2,3,'20:15','03/10/2013','Activo');
--------Reservar
insert into Reservar values(1,1);
insert into Reservar values(2,3);
insert into Reservar values(3,5);
---------Empleado
insert into empleado values(001,5012369,'Rodolfo','Bossoe Macias','m','22/07/1968','Zona
Norte',75027015,'12/09/2012','Administrador',3,'Activo');
insert into empleado values(002,9623145,'Rosario','Aguirrez Ferreira','f','04/03/1985','Zona
Arenales',77098311,'12/09/2012','Cajera',2,'Activo');
insert into empleado values(003,7125626,'Jessica','Melgar Flores','f','22/07/1980','Zona Los
Mangales',3649502,'29/09/2012','Cajera',2,'Activo');
insert into empleado values(004,6485912,'Esthepheanie','Fernandez Moreno','f','8/08/1980','Zona Villa 1er
Mayo',3817503,'12/09/2012','Cheff',3,'Activo');
26
insert into empleado values(005,9512341,'Pedro Ariel','Rodas Macias','m','21/09/91','Zona Los
Penocos',78522790,'10/02/2013','Jefe de cocina',1,'Activo');
insert into empleado values(006,5648973,'Celim','Fulguera Rios','m','27/05/1982','Zona Estacion
Argentina',3496570,'12/09/2012','Jefe de cocina',2,'Activo');
insert into empleado values(007,6123487,'Wilber','Crespo Velasquez','m','29/04/1990','Zona Plan
3000',76611157,'12/09/2012','Ayudante',1,'Activo');
insert into empleado values(008,6848935,'Bladimir','Lopez Condorena','m','20/07/1992','Zona La
Ramada',3647894,'06/01/2013','Ayudante',2,'Activo');
insert into empleado values(009,7648213,'Joel','Arauz Otterburg','m','9/07/1991','Zona San
Aurelio',77046852,'06/01/2013','Ayudante',1,'Activo');
insert into empleado values(010,5145677,'Tania','Rodriguez Cruz','f','9/09/1990','Zona El
Trompillo',76075141,'07/03/2013','Ayudante',2,'Activo');
insert into empleado values(011,5069321,'Cinthia', 'Avalos Vaca','f','29/06/1985','Zona Barrio
Primavera',3957412,'12/09/2012','Jefe de Garzon',1,'Activo');
insert into empleado values(012,8789517,'Javier', 'Laime Zambrana','m','06/04/1987','Zona 24
Septiembre',708596032,'17/10/2012','Jefe de Garzon',2,'Activo');
insert into empleado values(013,9745633,'Jorge', 'Alvarez Mendoza','m','01/05/1990','Zona Plan
3000',3945863,'10/02/2013','Garzon',1,'Activo');
insert into empleado values(014,7998054,'Eduardo', 'Claros Segovia','m','21/06/1991','Zona
Norte',3695895,'06/01/2013','Garzon',1,'Activo');
insert into empleado values(015,5089047,'Paul', 'Villagomes Inturias','m','14/11/1991','Zona 25
Diciembre',70895833,'07/03/2013','Garzon',1,'Activo');
27
insert into empleado values(016,5934897,'Diego','Blanco Gutierrez','m','17/06/1990','Zona 1er
Mayo',77036925,'25/10/2013','Garzon',2,'Activo');
insert into empleado values(017,8745691,'Marcelo', 'Frias Vargas','m','6/12/1991','Zona Villa
Olimpica',76389456,'06/01/2013','Garzon',2,'Activo');
insert into empleado values(018,6678548,'Ruddy', 'Paniagua Avendaño','m','13/03/1992','Zona
Banzer',60969523,'05/02/2013','Garzon',2,'Activo');
---------Asignar
insert into Asignar values(1,013);
insert into Asignar values(2,013);
insert into Asignar values(3,014);
insert into Asignar values(4,014);
insert into Asignar values(5,015);
insert into Asignar values(6,015);
insert into Asignar values(7,016);
insert into Asignar values(8,016);
insert into Asignar values(9,017);
insert into Asignar values(10,017);
---------Usuario
insert into Usuario values('Administrador General','admin123',001);
insert into Usuario values('Cajera 01','contra456',002);
insert into Usuario values('Cajera 02','contra789',003);
28
---------Recibo
insert into Recibo values(1,1,'01/08/2013',0,2,'Cajera 01','Sin Pagar');
insert into Recibo values(2,2,'01/08/2013',0,4,'Cajera 01','Sin Pagar');
insert into Recibo values(3,3,'01/08/2013',0,6,'Cajera 01','Sin Pagar');
insert into Recibo values(4,3,'02/08/2013',0,7,'Cajera 01','Sin Pagar');
insert into Recibo values(5,2,'02/08/2013',0,8,'Cajera 02','Sin Pagar');
insert into Recibo values(6,1,'03/08/2013',0,9,'Cajera 02','Sin Pagar');
insert into Recibo values(7,3,'04/08/2013',0,10,'Cajera 02','Sin Pagar');
---------Pedido
insert into Pedido values(1,0,1);
insert into Pedido values(2,0,2);
insert into Pedido values(3,0,3);
insert into Pedido values(4,0,4);
insert into Pedido values(5,0,5);
insert into Pedido values(6,0,6);
insert into Pedido values(7,0,7);
---------Contiene
insert into Contiene values(1,67);
insert into Contiene values(1,68);
insert into Contiene values(1,50);
insert into Contiene values(2,66);
insert into Contiene values(2,67);
29
insert into Contiene values(3,12);
insert into Contiene values(3,11);
insert into Contiene values(4,2);
insert into Contiene values(4,3);
insert into Contiene values(5,3);
insert into Contiene values(6,57);
insert into Contiene values(7,55);
insert into Contiene values(7,65);
insert into Contiene values(7,57);
8.2.3. Consultas
-------------------------------CONSULTAS-----------------------------------------------
select cod_producto,Producto.nombre
from Producto,Tipo
where Producto.cod_tipo=Tipo.cod_tipo and Tipo.cod_tipo=3;
select *
from Empleado
where Empleado.estado='Activo';
30
select*
from Mesa
where Mesa.estado='D';
select *
from Empleado
where Empleado.cod_turno =1
select Mesa.cod_mesa,Mesa.cod_amb
from Mesa,Reservar,Reserva
where Mesa.cod_mesa=Reservar.cod_mesa and Reservar.cod_reserva=Reserva.cod_reserva;
select Empleado.cod_empleado,Empleado.nombre,Empleado.apellido,Empleado.cargo
from Empleado,Asignar,Mesa
where Empleado.cod_empleado=Asignar.cod_empl and Asignar.cod_mesa=Mesa.cod_mesa and
Mesa.cod_mesa=5;
select *
from Recibo
where Recibo.cod_mesa in (select Mesa.cod_mesa
from Mesa
where Mesa.cod_mesa=6)
31
-- 8.- Mostrar todos recibos de la 'cajera 01'
select *
from Recibo
where Recibo.id_user in (select Usuario.id
from Usuario
where Usuario.id='Cajera 01');
select Producto.cod_producto,Producto.nombre
from Producto
where Producto.cod_producto in(select Contiene.cod_producto
from Contiene
where Contiene.cod_pedido in a
(select Pedido.cod_pedido
from Pedido
where Pedido.cod_rec in (select sssxxfcc
Recibo.cod_recibo
from Recibo
where Recibo.cod_mesa in (select wqqq
Mesa.cod_mesa
from Mesa
where Mesa.cod_mesa=4))))
select Mesa.cod_mesa
from Mesa
where Mesa.cod_mesa in (select Recibo.cod_mesa
32
from Recibo
where Recibo.cod_recibo in
(select Pedido.cod_rec
from Pedido
where Pedido.cod_pedido in
(select Contiene.cod_pedido
from Contiene
where Contiene.cod_producto in
(select Producto.cod_producto
from Producto
where Producto.cod_tipo in
(select Tipo.cod_tipo
from Tipo where
d Tipo.cod_tipo=8)))))
-- 11.- Mostrar el nombre de los productos de tipo carne que tenga un precio menor a 50 bs
select pr.nombre
from Producto pr
where pr.cod_tipo = 11 and pr.precio < 50
33
select SUM (m.capacidad) as Capacidad_Total
from Mesa m, Ambiente a
where m.cod_amb = a.cod_ambiente and a.descripcion = 'Cerrado'
-- 14.- Mostrar el nombre completo de los empleados que ingresaron en el año -- 2012
select e.nombre, e.apellido
from Empleado e
where e.fecha_ingreso Between '2012/01/01' and '2012/12/31'
select Reserva.cod_reserva,Reserva.nombre_cliente
from Reserva
where Reserva.cod_reserva in (select Reservar.cod_reserva
from Reservar
where Reservar.cod_mesa in
(select Mesa.cod_mesa
from Mesa
where Mesa.cod_mesa = 3))
------------------------------------PROCEDIMIENTOS ALMACENADOS--------------------------
use prueba_sistinf1
-- Cliente
34
insert into Cliente values(@cod,@nombre,@telefono, @direccion)
end
go
create proc Upd_Cliente
@cod int, @nombre varchar(50),
@telefono int , @direccion varchar(50)
as begin
update Cliente set nombre=@nombre , telefono =@telefono , direccion = @direccion
where cod_cliente=@cod
end
go
35
create proc Upd_Turno
@cod_turno int,@descripcion varchar(50),
@hora_entrada time,@hora_salida time
as begin
update Turno set descripcion=@descripcion, hora_entrada=@hora_entrada,
hora_salida=@hora_salida where cod_turno=@cod_turno
end
go
create proc Del_Turno
@cod_turno int
as begin
delete from Turno where cod_turno=@cod_turno;
end
go
create proc most_Turno
as begin
select * from Turno
end
go
-- Empleado
create proc Add_Empleado
@cod_empleado int,
@ci int, @nombre varchar(50),
@apellido varchar(50), @sexo char,
@fecha_nac date, @direccion varchar(100),
@telefono int, @fecha_ingreso date,
@cargo int, @cod_turno int,
@estado varchar(10)
as begin
insert into Empleado
values(@cod_empleado,@ci,@nombre,@apellido,@sexo,@fecha_nac,@direccion,@telefono,@fecha_ingreso,@cargo,
@cod_turno,@estado)
36
end
go
-- Usuario
-- Ambiente
create proc Add_Ambiente
@cod int,@descripcion varchar(50),@capacidad int,
@estado char
as begin
insert into Ambiente values(@cod,@descripcion,@capacidad,@estado)
end
go
-- Mesa
create proc Add_Mesa
@cod int,@capacidad int,@estado char,@cod_amb int
as begin
insert into Mesa values(@cod,@capacidad,@estado,@cod_amb)
end
go
40
create proc Upd_Mesa
@cod int,@capacidad int,@estado char,@cod_amb int
as begin
update Mesa set capacidad=@capacidad,estado=@estado,cod_amb=@cod_amb where
cod_mesa=@cod
end
go
-- Reservar
create proc Add_Reservar
@cod_reserva int,@cod_mesa int
as begin
insert into Reservar values(@cod_reserva,@cod_mesa)
end
go
create proc Upd_Reservar
@cod_reserva int,@cod_mesa int
as begin
update Reservar set @cod_mesa=cod_mesa where @cod_reserva=cod_reserva
end
go
43
create proc Del_Reservar
@cod_reserva int
as begin
delete from Reservar
where cod_reserva=@cod_reserva
end
go
-- Tipo
create proc Add_Tipo
@cod int,@nombre varchar(20)
as begin
insert into Tipo values(@cod,@nombre)
end
go
create proc Upd_Tipo
@cod int,@nombre varchar(20)
as begin
update Tipo set nombre=@nombre where cod_tipo=@cod
end
go
-- Producto
create proc Add_Producto
@cod int,@nombre varchar,
@cod_tipo int,@precio float,
@tiempo int,@estado varchar(20)
as begin
insert into Producto values(@cod,@nombre,@cod_tipo,@precio,@tiempo,@estado)
end
go
-- Recibo
-- Pedido
create proc Add_Pedido
@cod int,@tiempo int,@cod_recibo int
as begin
insert into Pedido values(@cod,@tiempo,@cod_recibo)
end
go
-- Contiene
create proc Add_Contiene
@cod_pedido int,@cod_producto int,@cantidad int
as begin
insert into Contiene values(@cod_pedido,@cod_producto,@cantidad)
end
go
48
create proc Upd_Contiene
-- Ingrediente
create proc Add_Ingrediente
@cod_ingre int, @nombre varChar(50), @precio int
as begin
insert into Ingrediente values(@cod_ingre,@nombre,@precio)
end
go
-- IngredienteProducto
create proc Add_IngredienteProducto
@cod_Prod int , @cod_ingr int
as begin
insert into IngredienteProducto values(@cod_Prod,@cod_ingr)
end
go
-- Modificacion
create proc Add_Modificacion
@cod_Modif int , @cod_pedi int , @cod_prod int
as begin
insert into Modificacion values(@cod_Modif,@cod_pedi,@cod_prod)
end
go
-- ModifIngred
create proc Add_ModifIngred
@cod_Modif int , @cod_ing int , @descripc varchar(20)
as begin
insert into ModifIngred values(@cod_Modif,@cod_ing,@descripc)
end
go
----------- ----------------------
50
create proc cajeroForm
as begin
select cod_mesa,Mesa.capacidad,Mesa.estado,descripcion from Mesa,Ambiente
where cod_amb=cod_ambiente --and Mesa.estado<>'R'
end
go
-------------Registrar Bitacora
create proc Add_Bitacora
@usuar varchar(30),@accion varchar(40)
as begin
insert into Bitacora values(@usuar,GETDATE(),GETDATE(),@accion)
end
go
--------Insertar usuarioPrivilegio
create proc Ins_UserPriv
@id varchar(50),@priv int
as begin
insert into UsuarioPrivilegio values(@id,@priv);
end
go
---------------TRIGGERS------------------------
use prueba_sistinf1
go
--Triggers Contiene
/* Actualiza el total del recibo despues de
insertar en la tabla contiene
*/
create trigger tcontiene_total_recibo_ins
on Contiene
for insert
as begin
52
declare @ped int, @rec int,@tiempo int;
select @ped=cod_pedido
from inserted
select @ped=cod_pedido
from inserted
53
------ .. ------
--Triggers Producto
------
------ .. ------
if(@estado = 'Pagado')
begin
update Mesa set estado='D' where cod_mesa=@cod_mesa
--------------.--------------
------------------ Triggers ModifIngred
create trigger tr_ModifIngred_Ins
on ModifIngred
for insert
as begin
declare @mod int,@totalMod float,@totalRec float,@ped int,@rec int,
@SumaMod float, @RestaMod float
--if(@RestaMod is null)begin
-- select @RestaMod=0;
--end
--select @totalRec=(@SumaMod+@totalRec-@RestaMod)
--------------.--------------
----------- Triggers Reservar
create trigger tr_Reservar_Ins
on Reservar
for insert
as begin
declare @mesa int
select @mesa=cod_mesa from Inserted
update Mesa set estado='R' where cod_mesa=@mesa
end
go
----
create trigger tr_Reservar_Del
on Reservar
for delete
as begin
58
begin transaction
--declare @mesa int
--select @mesa=cod_mesa from deleted
--update Mesa set estado='D' where cod_mesa=@mesa
rollback
end
go
--------------.--------------
-------------Triggers Bitacora
create trigger no_eliminar_bitacora
on Bitacora
for delete
as begin
begin transaction
rollback
end
go
-------------.--------------
create trigger no_del_cliente
on Cliente
for delete
as begin
begin transaction
rollback
end
go
60
8.3. Diseño de la interfaz humana
8.3.1. Prototipo principal
61
8.3.2. Formulario
62
63
64
8.3.3. Reportes
65
66
67
68
69
70
9. Flujo de trabajo: Implementación de Arquitectura
9.1. Implementación del Sistema de Información
9.1.1. Modelo de Implementación
71
72
9.1.2. Implementacion de la arquitectura
73
9.2. Implementación de Subsistema
74
75
76
9.3. Elección de la plataforma de desarrollo de software
77
10. Conclusión
En conclusión el SISTEMA DE INFORMACION realizado para la el restaurant “REPUBLICA” se lograra ayudar a
mejorar la atención al cliente, para optimizar las ganancias.
También servirá para facilitar el trabajo de los empleados, la información estará más organizada y habrá mejor
documentación.
11. Recomendación
A medida que la empresa vaya ascendiendo en el campo laboral el sistema también debe evolucionar de acuerdo
a las especificaciones requeridas.
78
12. Bibliografía
- JACOBSON, Ivar; BOOCH, Grady; RUMBAUGH, James. El Proceso Unificado de Desarrollo de Software.
Pearson Addisson-Wesley. Año 2000.
- "Unified Modeling Language Version 2.0: UML 2.0 Infraestructure Specification and UML 2.0 Superestructure
Specification", 2005.
- http://www.youtube.com/watch?v=9-dxumamwrg
- http://www.youtube.com/watch?v=UpX8um_GwCA
79
13. Anexos
80
Ubicación del lugar
81
Menú y Especial del Mes
Factura
Restaurant
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: