Вы находитесь на странице: 1из 78

UNIVERSIDAD TECNOLGICA DE PANAM

FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES

DISEO DE UN MODELO DE SISTEMAS DE BASES DE DATOS


DISTRIBUIDAS PARA UN SISTEMA DE ADMINISTRACION DE UN
RESTAURANTE

INTEGRANTES
ANGEL MARTINEZ
HERNANDO QUIJADA
RODYS REYES

ASESOR
BORIS LANDERO

2015
UNIVERSIDAD TECNOLGICA DE PANAM

FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES

DISEO DE UN MODELO DE SISTEMAS DE BASES DE DATOS


DISTRIBUIDAS PARA UN SISTEMA DE ADMINISTRACION DE UN
RESTAURANTE

ASESOR
BORIS LANDERO

INTEGRANTES
ANGEL MARTINEZ
HERNANDO QUIJADA
RODYS REYES

TRABAJO DE GRADUACIN PARA OPTAR AL TTULO DE


LICENCIADO EN INGENIERA DE SISTEMA COMPUTACINALES

2015
Agradecimiento

Agradecemos primeramente a Dios por permitirnos llevar a cabo este proyecto


de graduacin. Le damos gracias a nuestros padres, quienes nos apoyaron en
el transcurso de este proyecto y todo el tiempo que permanecimos en la carrera
de Lic. Desarrollo de Software
Agradecemos al Profesor Boris Landero, quin nos gui durante el desarrollo del
proyecto brindndonos su apoyo, recursos, tiempo y dedicacin. Agradecemos a
todos los profesores que nos brindaron su apoyo y nos dieron ideas para el
desarrollo del proyecto. Tambin, queremos agradecer a todas aquellas
personas que de una u otra forma contribuyeron en el desarrollo del proyecto
permitindonos cumplir nuestras expectativas.

ii
Dedicatoria

Primero a Dios por darme la sabidura, paciencia, dedicacin, salud, fortaleza a


mis padres por su incondicional apoyo por verme crecer profesionalmente y
personalmente; tambin los que me ayudaron en el transcurso de mi carrera.
Rodys Reyes.

Este trabajo de graduacin se la dedico a Dios quin supo guiarme por el buen
camino, darme fuerzas para seguir adelante y no desmayar en los problemas
que se presentaban, ensendome a encarar las adversidades sin perder nunca
la dignidad ni desfallecer en el intento.
ngel Martnez
A mi familia quienes por ellos soy lo que soy. A mis padres por su apoyo,
consejos, comprensin, amor, ayuda en los momentos difciles. Me han dado
todo lo que soy como persona, mis valores, mis principios, mi carcter, mi
empeo, mi perseverancia, mi coraje para conseguir mis objetivos. A mis
hermanos por estar siempre presentes.
Hernando Quijada

iii
ndice

Dedicatoria..........................................................................................iii
Resumen..........................................................................................vii
Introduccin....................................................................................viii
Marco Terico....................................................................................1
Componentes del modelo de replicacin.......................................1
Escenarios tpicos de la replicacin................................................3
Tipos de replicacin..........................................................................4
Replicacin de instantneas............................................................4
Replicacin transaccional................................................................5
Replicacin de mezcla......................................................................5
Fases generales para implementar y supervisar la replicacin....5
I. Anlisis del Sistema.......................................................................6
1.1 Descripcin del negocio................................................................................6
1.2 Descripcin de la situacin actual.................................................................7
1.3 Levantamiento de Requerimientos................................................................9
1.4 Descripcin del Problema...........................................................................10
1.5 Objetivos......................................................................................................11
1.5.1 Objetivo General..................................................................................11
1.5.2 Objetivos Especficos...........................................................................11
II. Diseo del Sistema......................................................................12
2.1 Modelo de datos..........................................................................................12
2.2 Cuadro preliminar del Modelo E-R de la solucin......................................14
2.3 Especificacin de requerimientos funcionales...........................................17
2.4 Diseo lgico..............................................................................................18
2.5 Diseo fsico...............................................................................................45
2.6 Configuracin de los servidores, configuracin de los clientes.................46
2.7 Solucin Front End......................................................................................48
2.8 Solucin Back End.....................................................................................50
2.9 Solucin LAN..............................................................................................51
2.10 Solucin WAN............................................................................................56
2.11 Estimacin de costos................................................................................58
2.12 Matriz de Riesgo.......................................................................................58
2.13 Replicacin...............................................................................................59
2.13 Cuadro de diseo de la red......................................................................59
2.14 Cuadro general de actividades del proyecto............................................60
Conclusiones...................................................................................61
Recomendaciones...........................................................................62

iv
Bibliografa.......................................................................................63
ANEXO..............................................................................................64

v
Resumen

El documento actual es una propuesta para el diseo de un sistema para


administracin de un restaurante que actualmente maneja sus tareas de forma
manual. El sistema gestor de bases de datos que se utilizar es SQL Server
2008, el cual es utilizado para organizar, gestionar y recuperar datos
almacenados en una base de datos, permite la administracin de bases de
datos relacionales, la creacin de tablas independientes, manejo de formularios,
reportes y consultas. El sistema operativo es Windows 7 profesional 32 bits y
para el desarrollo de la aplicacin utilizaremos el IDE Visual Studio 2010

El sistema para administracin de restaurante cambiar la forma que realizan las


tareas de forma manual normalmente y mejorar procesos que se ejecutaban en
el negocio; tambin llevar a cabo la automatizacin de los procesos para un
mejor desempeo.

vi
Introduccin

Desde la aparicin de las primeras bases de datos, centralizadas, ha habido una


evolucin hacia la descentralizacin, paralela al desarrollo de redes informticas,
dando lugar a arquitecturas como cliente-servidor, bases de datos paralelas, y
bases de datos distribuidas. De hecho, esta estructura de organizacin de la
informacin empresarial imita a la propia estructura organizativa de la empresa,
que est estructurada en unidades como divisiones, departamentos, etc. cada
una de las cuales mantiene sus propios datos operacionales. Los sistemas
gestores de bases de datos distribuidos se han diseado para cubrir dos
objetivos; la comparticin de los datos y la eficiencia de acceso a ellos, ubicando
la informacin en aquellos nodos donde se acceda con ms frecuencia, pero
hacindola a la vez disponible al resto de los nodos. Esta nueva filosofa de
arquitectura de bases de datos nos ayuda a resolver el problema de las islas de
Informacin, nombre bajo el cual se han considerado a las bases de datos, por
estar situadas en lugares remotos e incomunicados.

vii
Se considera una BDD (base de datos distribuida) a una coleccin lgicamente
interrelacionada de datos compartidos (junto con una descripcin de estos datos)
fsicamente distribuidas por una red informtica.
Se considera un SGBDD (sistema gestor de base de datos distribuido) a un
sistema software que permite gestionar la base de datos distribuida y hace que
dicha distribucin sea transparente para los usuarios.
Un SGBDD se compone de una nica base de datos lgica, que fsicamente est
dividida en fragmentos ubicados en nodos distintos e interconectados mediante
una red de comunicaciones. As, existirn aplicaciones locales, que solo
accedern a los datos almacenados en el mismo nodo, y aplicaciones globales,
que accedern a datos de varios nodos. El SGBDD ejecutar as las funciones
requeridas para dar servicio a este ltimo tipo de aplicaciones.
Adems de la fragmentacin, en el contexto de BDD tambin se habla de
replicacin, que consiste en mantener rplicas de fragmentos en varios nodos,
segn una poltica de replicacin que va desde una replicacin mnima (un
fragmento replicado en otro nodo) a una replicacin total (todos los fragmentos
son replicados). Nuevamente el SGBDD debe garantizar la consistencia de los
fragmentos que estn replicados (una actualizacin en un fragmento debe
provocar la actualizacin en todas sus rplicas).

Los sistemas de base de datos distribuidos al encontrarse en diferentes sitios


deben ser enlazados mediante el uso de redes de rea local o redes de rea
extendida para los casos que lo ameriten

El objetivo principal de este documento es presentar una propuesta para la


administracin de un restaurante, donde el motor de bases de datos a utilizar en
este desarrollo es SQL Server 2008 y cuyo lenguaje de programacin es C# de
Visual Studio 2008.

viii
En la actualidad el Restaurante lleva el control de los insumos, planillas y mens
de forma manual, lo cual conlleva a no tener un control eficiente de todos los
datos o informacin.

El objeto del trabajo est centrado en resolver la forma de administrar los


insumos, las planillas, mens del restaurante y a su vez crear un sistema seguro,
tolerante a fallos donde no se pierda la informacin con la ayuda de la
replicacin en los sistemas de base de datos distribuida.

ix
Marco Terico

La replicacin de datos permite que ciertos datos de la base de datos sean


almacenados en ms de un sitio, y su principal utilidad es que permite aumentar
la disponibilidad de los datos y mejora el funcionamiento de las consultas
globales a la base de datos. [1]
La replicacin en SQL Server consiste, en el transporte de datos entre dos o
ms instancias de servidores. Para ello SQL Server brinda un conjunto de
soluciones que permite copiar, distribuir y posiblemente modificar datos de toda
la organizacin. Se incluyen, adems, varios mtodos y opciones para el diseo,
implementacin, supervisin y administracin de la replicacin, que le ofrecen la
funcionalidad y flexibilidad necesarias para distribuir datos y mantener su
coherencia

En la replicacin se utiliza una metfora de la industria de la publicacin para


representar los componentes y procesos de una topologa de replicacin. De
esta forma el modelo se compone, bsicamente, de los siguientes elementos:
publicador, distribuidor, suscriptores, publicaciones, artculos y
suscripciones.

Componentes del modelo de replicacin

Para representar los componentes y procesos de una topologa de replicacin se


utilizan metforas de la industria de la publicacin. El modelo se compone de los
siguientes objetos: el publicador, el distribuidor, el suscriptor, la publicacin, el
artculo y la suscripcin; as como de varios agentes, que son los procesos
responsabilizados de copiar los datos entre el publicador y el suscriptor.

La replicacin de datos es un asunto exclusivamente entre servidores de datos,


en nuestro caso hablamos de servidores SQL Server. Los servidores SQL Server
pueden desempear uno o varios de los siguientes roles: publicador, distribuidor
o suscriptor.

1
El publicador es un servidor que pone los datos a disposicin de otros
servidores para poder replicarlos. El distribuidor es un servidor que aloja la
base de datos de distribucin y almacena los datos histricos, transacciones y
metadatos. Los suscriptores reciben los datos replicados.

Una publicacin es un conjunto de artculos (este concepto: "artculo de una


publicacin", es diferente del concepto "artculo o registro de una base de
datos", como explicaremos ms adelante) de una base de datos. Esta
agrupacin de varios artculos facilita especificar un conjunto de datos
relacionados lgicamente y los objetos de bases de datos que desea replicar
conjuntamente. Un artculo de una publicacin puede ser una tabla de datos la
cual puede contar con todas las filas o algunas (filtrado horizontal) y
simultneamente contar de todas las columnas o algunas (filtrado vertical), un
procedimiento almacenado, una definicin de vista, la ejecucin de un
procedimiento almacenado, una vista, una vista indizada o una funcin definida
por el usuario.

Una suscripcin es una peticin de copia de datos o de objetos de base de


datos para replicar. Una suscripcin define qu publicacin se recibir, dnde y
cundo. Las suscripciones pueden ser de insercin o de extraccin; y una
publicacin puede admitir una combinacin de suscripciones de insercin y
extraccin. El publicador (en las suscripciones de insercin) o el suscriptor (en
las suscripciones de extraccin) solicitan la sincronizacin o distribucin de
datos de una suscripcin.

El publicador puede disponer de una o ms publicaciones, de las cuales los


suscriptores se suscriben a las publicaciones que necesitan, nunca a artculos
individuales de una publicacin. El publicador, adems, detecta qu datos han
cambiado durante la replicacin transaccional y mantiene informacin acerca de
todas las publicaciones del sitio.

2
La funcin del distribuidor vara segn la metodologa de replicacin
implementada. En ocasiones se configura como distribuidor el mismo publicador
y se le denomina distribuidor local. En el resto de los casos el distribuidor ser
remoto, pudiendo coincidir en algn caso con un suscriptor.

Los suscriptores adems de obtener sus suscripciones, en dependencia del tipo


y opciones de replicacin elegidas, pueden devolver datos modificados al
publicador. Adems puede tener sus propias publicaciones

Escenarios tpicos de la replicacin

En una solucin de replicacin pudiera ser necesario utilizar varias publicaciones


en una combinacin de metodologas y opciones. En la replicacin los datos o
transacciones fluyen del publicador al suscriptor pasando por el distribuidor.

Por lo tanto en su configuracin mnima una topologa de replicacin se


compone de al menos dos o tres servidores SQL Server que desempean los
tres roles mencionados.
Variando la ubicacin del servidor distribuidor podramos contar con las
siguientes variantes:

1. El rol de distribuidor desempeado por el publicador.


2. El rol de distribuidor desempeado por el suscriptor.
3. Un servidor de distribucin, independiente del publicador y del suscriptor.

3
En la mayora de las configuraciones, el peso fundamental de la replicacin
recae, sobre el servidor de distribucin. Por tanto ste puede ser un criterio para
determinar su ubicacin, teniendo en cuenta las configuraciones (posibilidades
fsicas) de los servidores, as como otras responsabilidades que pueden estar
desempeando (servidor de dominio, servidor de pginas web entre otras).

Tipos de replicacin

Los tipos bsicos de replicacin son:

replicacin de instantneas

replicacin transaccional

replicacin de mezcla

Para ajustarse an ms a los requerimientos de los usuarios se incorporan


opciones como son la actualizacin inmediata en el suscriptor, la actualizacin
en cola y la transformacin de datos replicados

Replicacin de instantneas
En la replicacin de instantneas los datos se copian tal y como aparecen
exactamente en un momento determinado. Por consiguiente, no requiere un
control continuo de los cambios. Las publicaciones de instantneas se suelen
replicar con menos frecuencia que otros tipos de publicaciones.

Puede llevar ms tiempo propagar las modificaciones de datos a los


suscriptores. Se recomienda utilizar: cuando la mayora de los datos no cambian
con frecuencia; se replican pequeas cantidades de datos; los sitios con
frecuencia estn desconectados y es aceptable un periodo de latencia largo (la
cantidad de tiempo que transcurre entre la actualizacin de los datos en un sitio
y en otro.

4
Replicacin transaccional
En este caso se propaga una instantnea inicial de datos a los suscriptores, y
despus, cuando se efectan las modificaciones en el publicador, las
transacciones individuales se propagan a los suscriptores.

Replicacin de mezcla
Permite que varios sitios funcionen en lnea o desconectados de manera
autnoma, y mezclar ms adelante las modificaciones de datos realizadas en un
resultado nico y uniforme. La instantnea inicial se aplica a los suscriptores; a
continuacin SQL Server hace un seguimiento de los cambios realizados en los
datos publicados en el publicador y en los suscriptores. Los datos se sincronizan
entre los servidores a una hora programada o a peticin.

Fases generales para implementar y supervisar la replicacin


A pesar de que existen varias formas de implementar y supervisar la replicacin,
y el proceso de replicacin es diferente segn el tipo y las opciones elegidas, en
general, la replicacin se compone de las siguientes fases:

configuracin de la replicacin
generacin y aplicacin de instantnea
inicial
modificacin de los datos replicados
sincronizacin y propagacin de los
datos.

I. Anlisis del Sistema

5
1.1 Descripcin del negocio

El Restaurante Coclesano Actualmente establecido en la ciudad de Penonom,


Provincia de Cocl, tambin con sucursales en Aguadulce y Nata. Se ha
dedicado a la venta de comida en los ltimos 20 aos con excelentes mens;
caracterizndose por brindar un servicio de calidad en la atencin de sus
clientes. El deseo familiar por emprender su propio negocio, con mucha
dedicacin, esfuerzo, y suerte en el negocio de venta de comida ha hecho que
sea exitosa hasta la actualidad.

1.2 Descripcin de la situacin actual

Recursos humanos maneja los datos de sus colaboradores como nombre,


apellido, fecha de nacimiento, sexo, salario, horas de entradas y salida del

6
colaborador entre otros de forma manual, propensos a que se pierda informacin
valiosa que pudieran afectar a la empresa o al colaborador.

Los colaboradores del restaurante manejan el inventario de insumos de manera


manual por medio de hojas o cuadernos de apuntes donde registran las
cantidades actual de insumos, las entradas de insumos, salidas de insumos,
cantidad de insumos utilizados en el da.

En labor diaria del restaurante se identifican las siguientes deficientes.

Control de marcacin: actualmente no se lleva un registro ordenado de


la asistencia del colaborador que sea fcil de generar por reporte, horas
trabajadas semanalmente, entrada y salida del trabajo, das que no asiste
y las razones de ausencias.
Manejo de inventario: actualmente no se administra por informe cantidad
de insumos en el inventario como: cantidad disponible, cantidad agotada,
fecha de entrada del pedido, fecha de salida del pedido, cantidad de
insumo que se utiliza por da, semana, ao, entre otros.
Visualizacin detallada del men: actualmente el vendedor registra la
orden por medio de una caja registradora; no posee de manera visual la
lista de men y el clculo de la orden no es automtico.

7
El problema de Generar informes del estado del inventario.

Control de asistencia para el colaborador.

Administracin del estado del inventario.

Visualizacin de mens del restaurante.

Afecta a La Gerencia

Colaboradores

Recursos Humanos

Clientes

Una solucin Implementar el sistema de administracin para


exitosa sera restaurante, con diferentes mdulos que solventen
esta situacin.

8
1.3 Levantamiento de Requerimientos

Se desarrollar un sistema para la administracin del restaurante Coclesano, el


mismo contar con los siguientes mdulos:
1- Administracin de inventario del restaurante, donde se
administrar la entrada y salida de productos y las cantidad
existentes.
2- Manejo de los empleados del restaurante, se llevar un control
de la entrada y las salidas de los empleados, los das que falten y
los salarios correspondientes.
3- Men del restaurante: esta seccin manejar lo que son las
ventas diarias del restaurante. Aqu entrara una seccin para la
facturacin del restaurante.

9
1.4 Descripcin del Problema

La forma en que se lleva a cabo la administracin del inventario, planillas, forma


de mostrar el men es muy tradicional y en ocasiones provoca prdida de la
informacin valiosa del negocio, esto ha llevado a la decisin de tomar medidas
al respecto. La gerencia toma la decisin de buscar una solucin a corto plazo;
en este caso comprar un software que les facilite las tareas en el da a da para
beneficio del negocio y mayor comodidad de los clientes.

10
1.5 Objetivos

1.5.1 Objetivo General


Implementar un sistema administrativo para mejorar la gestin de inventarios,
planilla y formas de mostrar el men al colaborador.

1.5.2 Objetivos Especficos


Registrar, modificar los datos generales del Colaborador.
Controlar la entrada y salida del colaborador.
Registrar las entradas de insumos al restaurante.
Registrar las salidas de insumos utilizadas en el restaurante.
Controlar cantidad de insumos a utilizar en el da.
Generar reportes de insumos disponibles en el inventario.
Generar informe del men seleccionado por el cliente.
Calcular el total de la orden del cliente.
Crear, eliminar, y modificar mens.

11
II. Diseo del Sistema

2.1 Modelo de datos

El Modelo de Datos seleccionado en nuestro proyecto es el modelo de


Entidad Relacin (E-R) [4].
Qu es el modelo Entidad-Relacin?
Este modelo se obtiene en tiempo de diseo de la base de datos. Fue propuesto
por Peter Chen en 1976 y desde entonces se viene utilizando de una forma muy
global.
Se caracteriza por utilizar una serie de smbolos y reglas para representar los
datos y sus relaciones.
Con este modelo conseguimos representar de manera grfica la estructura
lgica de una base de datos.Este modelo habitualmente, adems de disponer de
un diagrama que ayuda a entender los datos y como se relacionan entre ellos,
debe de ser completado con un pequeo resumen con la lista de los atributos y
las relaciones de cada elemento.
Elementos del modelo entidad-relacin

Entidad
Las entidades representan cosas u objetos (ya sean reales o abstractos), que se
diferencian claramente entre s.
Atributos
Los atributos definen o identifican las caractersticas de entidad (es el contenido
de esta entidad). Cada entidad contiene distintos atributos, que dan informacin
sobre esta entidad. Estos atributos pueden ser de distintos tipos (numricos,
texto, fecha).

12
Relacin
Es un vnculo que nos permite definir una dependencia entre varias entidades,
es decir, nos permite exigir que varias entidades compartan ciertos atributos de
forma indispensable.

Relaciones de cardinalidad
Uno a uno: Una entidad se relaciona nicamente con otra y viceversa.
Uno a varios o varios a uno: determina que un registro de una entidad puede
estar relacionado con varios de otra entidad, pero en esta entidad existir solo una
vez.
Varios a varios: determina que una entidad puede relacionarse con otra con
ninguno o varios registros y viceversa.

Claves
Es el atributo de una entidad, al que le aplicamos una restriccin que lo distingue
de los dems registros (no permitiendo que el atributo especfico se repita en la
entidad) o le aplica un vnculo (exactamente como comentbamos en las
relaciones). Estos son los distintos tipos:
Superclave: aplica una clave o restriccin a varios atributos de la entidad, para
as asegurarse que en su conjunto no se repitan varias veces y as no poder
entrar en dudas al querer identificar un registro.
Clave primaria: identifica inequvocamente un solo atributo no permitiendo que
se repita en la misma entidad.
Clave externa o clave fornea: este campo tiene que estar estrictamente
relacionado con la clave primaria de otra entidad, para as exigir que exista
previamente ese clave.

Elegimos el modelo de E-R porque:


Es de gran ayuda cuando se desea ver las distintas relaciones que
guardan las tablas de una Base de datos por ejemplo las llaves primarias.

13
Son fciles de generar en el gestor de la base de datos.

2.2 Cuadro preliminar del Modelo E-R de la solucin

14
15
2.3 Especificacin de requerimientos funcionales

En nuestro proyecto utilizaremos once tablas que son: CatalogoMenu,


CatalogoPotres,CatalogoRefrescos,CatalogoTipo,Consecutivo,
DetallesVentas,Horarios,Inventarios,ManejoEmpleados,Marcaciones.
CatalogoMenu: esta tabla contiene los tipos de comidas que se vendern
en el restaurante y sern identificados por un Id nico.
CatalogoRefrescos: esta tabla contiene los tipos de refrescos que vender
el retaurante y ser identificado por un id nico.
CatalogoPostres: esta tabla contiene los tipos de postres que ofrecer el
restaurante y ser identificado por un id nico.
CatalogoTipo: esta tabla se utiliza para almacenar el tipo de medidas de
los productos; libras, paquetes, botellas, otros.

16
Consecutivo: se utiliza para generar el nmero de orden, al momento de
realizar una venta:
DetallesVentas: aqu se almacena las rdenes de compra de cada cliente.
Horarios: se utiliza para almacenar los horarios de los empleados
Inventarios: esta tabla almacena los productos existentes en inventario.
ManejoEmpleados:esta tabla se encarga de almacenar informacin
general del empleado.
Marcaciones: se encarga de almacenar los registros de marcaciones de
los empleados, registra su hora de entrada y salida y de su hora de salida
de almuerzo y hora de entrada de almuerzo.

2.4 Diseo lgico


1. CatalogoMenu

17
2.CatalogoPostres

3.CatalogoRefrescos

18
4.CatalogoTipo

19
5. Consecutivo

6. DetallesVentas

7. Horarios

20
8. Inventario

9. ManejoEmpleado

21
10. Marcaciones

Scrip de Store Procedure utilizados:


USE [AdmRestaurant]
GO
/****** Object: StoredProcedure [dbo].[Actualizar_Productos] Script
Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================

22
-- Author: <Angel Marinez>
-- Create date: <20/5/2015>
-- Description: <sp para actualizar productos>
-- =============================================
CREATE PROCEDURE [dbo].[Actualizar_Productos]
@IdProducto int, @Cantidad int, @precio decimal(10,2)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;

UPDATE Inventario set


CantidadExitente=CantidadExitente+@Cantidad,PrecioUnitario=@
precio,PrecioTotal=PrecioTotal +(@precio*@Cantidad)
WHERE IdProducto=@IdProducto
END
GO
/****** Object: StoredProcedure [dbo].
[SP_ACTUALIZA_EMPLEADO] Script Date: 06/28/2015 21:02:49
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Hernando Quijada>
-- Create date: <2015-05-30>
-- Description: <SP que actualiza los empleados>
-- =============================================
CREATE PROCEDURE [dbo].[SP_ACTUALIZA_EMPLEADO]
(
@ID int ,
@NOMBRE NVARCHAR(50),
@APELLIDO NVARCHAR(50),
@CEDULA NVARCHAR(20),
@DIRECCION NVARCHAR(200),
@TELEFONO NVARCHAR(15),
@CELULAR NVARCHAR(30),
@EMAIL NVARCHAR(30),
@FECHANAC NVARCHAR(30),
@FECHAINI NVARCHAR(30),

23
@FECHAFINAL NVARCHAR(30),
@SALAINI NVARCHAR(30),
@SALAACT NVARCHAR(30),
@SEXO NVARCHAR(10),
@ESTADOCIVIL NVARCHAR (10),
--@EmpleadoActivo BIT,
@FilasAfectadas bit output,
@msg varchar(max)OUTPUT

)
AS

--IF(SELECT COUNT(*) FROM ManejoEmpleados WHERE


Apellido=@APELLIDO and Nombre=@NOMBRE)<>0
--BEGIN
--PRINT 'EL EMPLEAOD CON ESE NOMBRE NO EXISTE'
--END
--ELSE
BEGIN

BEGIN TRY
UPDATE ManejoEmpleados SET

[Nombre]=@NOMBRE,
[Apellido]=@APELLIDO,
[Cedula]=@CEDULA,
[Direccion]=@DIRECCION,
[Telefono]=@TELEFONO,
[Celular]=@CELULAR,
[Email]=@EMAIL,
[FechaNac]=@FECHANAC,
[FechaInicio]=@FECHAINI,
[FechaFin]=@FECHAFINAL,
[SalarioInicial]=@SALAINI,
[SalarioActual]=@SALAACT,
[Sexo]=@SEXO,
[EstadoCivil]=@ESTADOCIVIL
where EmpleadoID=@ID
--[EmpleadoActivo]=@EmpleadoActivo
SET @FilasAfectadas = @@ROWCOUNT

if @FilasAfectadas>0

24
Set @FilasAfectadas=1

END TRY

BEGIN CATCH

SET @FilasAfectadas =0
SET @msg=@@ERROR
END CATCH
END
GO
/****** Object: StoredProcedure [dbo].[Obtener_Cantidad]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[Obtener_Cantidad]
@IdProducto varchar(10)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT CantidadExitente from dbo.Inventario
WHERE IdProducto=@IdProducto
END
GO
/****** Object: StoredProcedure [dbo].[SP_INSERTA_EMPLEADO]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Hernando Quijada>

25
-- Create date: <2015-05-30>
-- Description: <SP que inserta los empleado>
-- =============================================
CREATE PROCEDURE [dbo].[SP_INSERTA_EMPLEADO]
(

@NOMBRE NVARCHAR(50),
@APELLIDO NVARCHAR(50),
@CEDULA NVARCHAR(20),
@DIRECCION NVARCHAR(200),
@TELEFONO NVARCHAR(15),
@CELULAR NVARCHAR(15),
@EMAIL NVARCHAR(30),
@FECHANAC NVARCHAR (30),
@FECHAINI NVARCHAR(30),
@FECHAFINAL NVARCHAR(30),
@SALAINI NVARCHAR(30),
@SALAACT NVARCHAR(30),
@SEXO NVARCHAR(10),
@ESTADOCIVIL NVARCHAR (10),
@FilasAfectadas bit output,
@msg varchar(max)OUTPUT
--@EmpleadoActivo BIT,

)
AS

BEGIN

BEGIN TRY
INSERT INTO ManejoEmpleados
(
[Nombre],
[Apellido],
[Cedula],
[Direccion],
[Telefono],
[Celular],
[Email],
[FechaNac],
[FechaInicio],
[FechaFin],
[SalarioInicial],

26
[SalarioActual],
[Sexo],
[EstadoCivil]
--[EmpleadoActivo]
)
Values
(

@NOMBRE,
@APELLIDO,
@CEDULA,
@DIRECCION,
@TELEFONO,
@CELULAR,
@EMAIL,
@FECHANAC,
@FECHAINI,
@FECHAFINAL,
@SALAINI,
@SALAACT,
@SEXO,
@ESTADOCIVIL)
--@EmpleadoActivo
SET @FilasAfectadas = @@ROWCOUNT

if @FilasAfectadas>0
Set @FilasAfectadas=1

END TRY

BEGIN CATCH

SET @FilasAfectadas =0
SET @msg=@@ERROR
END CATCH
END
GO
/****** Object: StoredProcedure [dbo].[SP_I_InsertarVenta]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

27
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_I_InsertarVenta]
@IdVenta int,@idMenu int, @cantidad int,@precio
varchar(50),@Idcatalogo varchar(50),@nombreMenu varchar(50)

AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;

INSERT into dbo.DetallesVentas


(IdVenta,IdMenu,Cantidad,precio,FechaCompra,IdCatalago,Nombr
eMenu)
values(@IdVenta,@idMenu,@cantidad,CAST(@precio AS
DECIMAL(10,2)),getdate(),@Idcatalogo,@nombreMenu)
END
GO
/****** Object: StoredProcedure [dbo].[SP_D_EliminarVenta]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_D_EliminarVenta]
@IdVenta INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;

28
DELETE FROM dbo.DetallesVentas
WHERE IdVenta=@IdVenta
END
GO
/****** Object: StoredProcedure [dbo].
[SP_U_RestarProductos] Script Date: 06/28/2015 21:02:49
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_U_RestarProductos]
@cantidadRestante int

AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;

UPDATE dbo.Inventario SET CantidadExitente=


CantidadExitente -@cantidadRestante
END
GO
/****** Object: StoredProcedure [dbo].[SP_U_Consecutiva]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_U_Consecutiva]
@consecutivos int=0,

29
@con int=0
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select @consecutivos = Consecutivo from
dbo.Consecutivo
set @con = @consecutivos +1
update dbo.Consecutivo set Consecutivo=@con

SELECT Consecutivo from dbo.Consecutivo

END
GO
/****** Object: StoredProcedure [dbo].
[SP_S_ObtenerRefresco] Script Date: 06/28/2015 21:02:49
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_S_ObtenerRefresco]
@idrefresco int
AS
BEGIN

select Precio,Descripcion from dbo.CatalogoRefrescos


where IdMenu=@idrefresco

END
GO
/****** Object: StoredProcedure [dbo].[SP_S_ObtenerPostre]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON

30
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_S_ObtenerPostre]
@idpostre int
AS
BEGIN

select Precio,Descripcion from dbo.CatalogoPostres


where IdMenu=@idpostre

END
GO
/****** Object: StoredProcedure [dbo].[SP_S_ObtenerMenu]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_S_ObtenerMenu]
@idmenu int
AS
BEGIN

SET NOCOUNT ON;

select Precio,Descripcion from dbo.CatalogoMenu


where IdMenu=@idmenu
END
GO
/****** Object: StoredProcedure [dbo].
[SP_S_ObtenerInventario] Script Date: 06/28/2015 21:02:49
******/
SET ANSI_NULLS ON
GO

31
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_S_ObtenerInventario]

AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;

SELECT [NombreProducto]as [Nombre Producto] ,


[PrecioUnitario]as [Precio Unitario],
[PrecioTotal] as [Precio Total],[CantidadExitente] as
[Cantidad Existente],Tipo ,[CantidadMinima]as [Cantidad
Minima]
FROM [Inventario]
END
GO
/****** Object: StoredProcedure [dbo].[SP_S_ObtenerFactura]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_S_ObtenerFactura]
@IdVenta int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;

32
select NombreMenu,Cantidad,(precio * Cantidad) as precios,
(SELECT cast (SUM(precio * Cantidad) as DECIMAL(10, 2)) FROM
DetallesVentas where IdVenta=@IdVenta ) as Total
from DetallesVentas
where IdVenta=@IdVenta
group by NombreMenu,Cantidad,precio

END
GO
/****** Object: StoredProcedure [dbo].
[SP_S_ObtenerDescripcion] Script Date: 06/28/2015
21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_S_ObtenerDescripcion]
@idmenu int
AS
BEGIN

SET NOCOUNT ON;

select Descripcion from dbo.CatalogoMenu


where IdMenu=@idmenu
END
GO
/****** Object: StoredProcedure [dbo].[SP_O_Consecutivo]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>

33
-- =============================================
CREATE PROCEDURE [dbo].[SP_O_Consecutivo]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.

select Consecutivo from dbo.Consecutivo

END
GO
/****** Object: StoredProcedure [dbo].[SP_OBTIENE_EMPLEADO]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Hernando Quijada>
-- Create date: <2015-05-31>
-- Description: <Description,,>
-- =============================================
create PROCEDURE [dbo].[SP_OBTIENE_EMPLEADO]
@IdEmpleado int
AS
BEGIN

SET NOCOUNT ON;

SELECT*FROM dbo.ManejoEmpleados
WHERE EmpleadoID=@IdEmpleado

END
GO
/****** Object: StoredProcedure [dbo].
[SP_ObtenerNombreEmpleados] Script Date: 06/28/2015
21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

34
-- =============================================
-- Author: <Hernando Quijada>
-- Create date: <2015-06-02>
-- Description: <obtiene los empleados de la empresa>
-- =============================================
CREATE PROCEDURE [dbo].[SP_ObtenerNombreEmpleados]

AS
BEGIN

SET NOCOUNT ON;

select EmpleadoID,Nombre
from dbo.ManejoEmpleados

END
GO
/****** Object: StoredProcedure [dbo].[SP_ObtenerHorarios]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[SP_ObtenerHorarios]
@ID int
AS
BEGIN

SET NOCOUNT ON;

SELECT*FROM Horarios
WHERE EmpleadoID=@ID
END
GO
/****** Object: StoredProcedure [dbo].
[SP_InsertarMarcacion] Script Date: 06/28/2015 21:02:49
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Hernando Quijada>

35
-- Create date: <2015-06-11>
-- Description: <Inserta las marcaciones de los empleados>
-- =============================================
CREATE PROCEDURE [dbo].[SP_InsertarMarcacion]
@IdEmpleado int ,
@Explicacion varchar(max),
@FilasAfectadas bit output,
@msg varchar(max)OUTPUT

AS
BEGIN

BEGIN TRY
declare @Fecha varchar(50)
declare @Hora1 varchar(50)

SET NOCOUNT ON;

SET @Fecha= CONVERT(varchar(11),getdate(),103)


SET @Hora1 =CONVERT(varchar(15), CAST(GETDATE() AS
TIME), 100)

if(SELECT COUNT(*) FROM Marcaciones WHERE Fecha=@Fecha


and EmpleadoID=@IdEmpleado)>0
begin
select @msg='Cada Marcacion se realiza solo una vez';

end
else
begin
INSERT INTO Marcaciones
(
EmpleadoID,
Fecha,
Hora1,
Explicacion
)
Values
(
@IdEmpleado,
@Fecha,
@Hora1,
@Explicacion

36
)
--@EmpleadoActivo
SET @FilasAfectadas = @@ROWCOUNT

if @FilasAfectadas>0
Set @FilasAfectadas=1

end

END TRY

BEGIN CATCH
SET @msg=@@ERROR
SET @FilasAfectadas =0

END CATCH

END
GO
/****** Object: StoredProcedure [dbo].[SP_InsertaHorario]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Hernando Quijada C>
-- Create date: <2015-06-06>
-- Description: <Inserta los horarios de los empleados>
-- =============================================
CREATE PROCEDURE [dbo].[SP_InsertaHorario]

@IdEmpleado int,
@HoraEntrada varchar(20),
@HoraAlmuerzo1 varchar(20),
@HoraAlmuerzo2 varchar(20),
@HoraSalidas varchar(20),
@FilasAfectadas bit output,
@msg varchar(max)OUTPUT
AS
BEGIN

37
SET NOCOUNT ON;

BEGIN TRY

INSERT INTO
dbo.Horarios(EmpleadoID,Entrada,AlmIN,AlmOUT,Salida)
VALUES
(@IdEmpleado,@HoraEntrada,@HoraAlmuerzo1,@HoraAlmuerzo2,@Hor
aSalidas)

SET @FilasAfectadas = @@ROWCOUNT

if @FilasAfectadas>0
Set @FilasAfectadas=1

END TRY

BEGIN CATCH

SET @FilasAfectadas =0
SET @msg=@@ERROR

END CATCH

END
GO
/****** Object: StoredProcedure [dbo].
[SP_ObtienerTardanzas] Script Date: 06/28/2015 21:02:49
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_ObtienerTardanzas]
@IdEmpleado varchar(max),
@FechaInio varchar(max),
@FechaFIn varchar(max)

38
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;

SELECT ME.EmpleadoID
,(ME.Nombre+' '+ME.Apellido)AS'Nombre'
,MA.Fecha
,HO.Entrada+' - '+MA.Hora1 AS 'Entrada'
,DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)MIN1
,HO.AlmIN+' - '+MA.Hora2 AS 'Almuerzo'
,DATEDIFF(MINUTE,HO.AlmIN,MA.Hora2) MIN2
,HO.AlmOUT+' - '+MA.Hora3 AS 'ENTRADA_ALMUERZO'
,DATEDIFF(MINUTE,HO.AlmOUT,MA.Hora3) MIN3
,HO.Salida+' - '+MA.Hora4 AS 'SALIDA'
,DATEDIFF(MINUTE,HO.Salida,MA.Hora4) MIN4
,
(DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)+DATEDIFF(MINUTE,HO.Alm
IN,MA.Hora2)+DATEDIFF(MINUTE,HO.AlmOUT,MA.Hora3)+DATEDIFF(MI
NUTE,HO.Salida,MA.Hora4)) TOTAL
,
dbo.f_FechaMinuto(DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)+DATED
IFF(MINUTE,HO.AlmIN,MA.Hora2)+DATEDIFF(MINUTE,HO.AlmOUT,MA.H
ora3)+DATEDIFF(MINUTE,HO.Salida,MA.Hora4))as
'Total_En_Horas'

FROM

ManejoEmpleados ME
INNER JOIN Horarios HO ON ME.EmpleadoID=HO.EmpleadoID
INNER JOIN Marcaciones MA ON MA.EmpleadoID=ME.EmpleadoID
WHERE ME.EmpleadoID=@IdEmpleado
AND MA.Fecha >= @FechaInio
AND MA.Fecha <= @FechaFIn

END

39
--SELECT ME.EmpleadoID
--,SUM(DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)+DATEDIFF(MINUTE,
HO.AlmIN,MA.Hora2)+DATEDIFF(MINUTE,HO.AlmOUT,MA.Hora3)+DATED
IFF(MINUTE,HO.Salida,MA.Hora4))/60 AS' TOTAL'

--FROM
--ManejoEmpleados ME
--INNER JOIN Horarios HO ON ME.EmpleadoID=HO.EmpleadoID
--INNER JOIN Marcaciones MA ON MA.EmpleadoID=ME.EmpleadoID
--WHERE ME.EmpleadoID=1
--GROUP BY ME.EmpleadoID
GO
/****** Object: StoredProcedure [dbo].
[SP_ObtienerTaranzasPorFecha] Script Date: 06/28/2015
21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SP_ObtienerTaranzasPorFecha]

@FechaInio varchar(max),
@FechaFIn varchar(max)

AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets
from
-- interfering with SELECT statements.
SET NOCOUNT ON;

SELECT ME.EmpleadoID

40
,(ME.Nombre+' '+ME.Apellido)AS'Nombre'
,MA.Fecha
,HO.Entrada+' - '+MA.Hora1 AS 'Entrada'
,DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)MIN1
,HO.AlmIN+' - '+MA.Hora2 AS 'Almuerzo'
,DATEDIFF(MINUTE,HO.AlmIN,MA.Hora2) MIN2
,HO.AlmOUT+' - '+MA.Hora3 AS 'ENTRADA_ALMUERZO'
,DATEDIFF(MINUTE,HO.AlmOUT,MA.Hora3) MIN3
,HO.Salida+' - '+MA.Hora4 AS 'SALIDA'
,DATEDIFF(MINUTE,HO.Salida,MA.Hora4) MIN4
,
(DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)+DATEDIFF(MINUTE,HO.Alm
IN,MA.Hora2)+DATEDIFF(MINUTE,HO.AlmOUT,MA.Hora3)+DATEDIFF(MI
NUTE,HO.Salida,MA.Hora4)) TOTAL
,
dbo.f_FechaMinuto(DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)+DATED
IFF(MINUTE,HO.AlmIN,MA.Hora2)+DATEDIFF(MINUTE,HO.AlmOUT,MA.H
ora3)+DATEDIFF(MINUTE,HO.Salida,MA.Hora4))as 'Total en
horas'

into #TblTardanzas
FROM

ManejoEmpleados ME
INNER JOIN Horarios HO ON ME.EmpleadoID=HO.EmpleadoID
INNER JOIN Marcaciones MA ON MA.EmpleadoID=ME.EmpleadoID
WHERE
convert(date,MA.Fecha) >= @FechaInio
AND convert(date,MA.Fecha) <= @FechaFIn

END

select *from #TblTardanzas

--SELECT ME.EmpleadoID
--,SUM(DATEDIFF(MINUTE,HO.Entrada,MA.Hora1)+DATEDIFF(MINUTE,
HO.AlmIN,MA.Hora2)+DATEDIFF(MINUTE,HO.AlmOUT,MA.Hora3)+DATED
IFF(MINUTE,HO.Salida,MA.Hora4))/60 AS' TOTAL'

--FROM

41
--ManejoEmpleados ME
--INNER JOIN Horarios HO ON ME.EmpleadoID=HO.EmpleadoID
--INNER JOIN Marcaciones MA ON MA.EmpleadoID=ME.EmpleadoID
--WHERE ME.EmpleadoID=1
--GROUP BY ME.EmpleadoID
GO
/****** Object: StoredProcedure [dbo].
[SP_ActualizaMarcacion] Script Date: 06/28/2015 21:02:49
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[SP_ActualizaMarcacion]
@IdEmpleado int ,
@Explicacion varchar(max),
@Indicador varchar(2),
@FilasAfectadas bit output,
@msg varchar(max)OUTPUT

AS
BEGIN

declare @Fecha varchar(50)


declare @Hora varchar(50)

SET NOCOUNT ON;


--Validaciones...

SELECT @Hora= CONVERT(varchar(15),


CAST(GETDATE() AS TIME), 100)
SET @Fecha= CONVERT(varchar(11),getdate(),103)

BEGIN TRY
if @Indicador=2
BEGIN
update Marcaciones set Hora2=@Hora , Explicacion=
@Explicacion
where EmpleadoID=@IdEmpleado and Fecha=@Fecha
and Hora2 IS NULL

42
SET @FilasAfectadas = @@ROWCOUNT
if @FilasAfectadas>0
Set @FilasAfectadas=1
END
ELSE
BEGIN

set @msg='Cada Marcacion se Realiza Solo una Vez'


END

if @Indicador=3
BEGIN
update Marcaciones set Hora3=@Hora, Explicacion=
@Explicacion
where EmpleadoID=@IdEmpleado and Fecha=@Fecha
and Hora3 IS NULL

SET @FilasAfectadas = @@ROWCOUNT


if @FilasAfectadas>0
Set @FilasAfectadas=1
END
ELSE
BEGIN

set @msg='Cada Marcacion se Realiza Solo una Vez'


END

if @Indicador=4
BEGIN
update Marcaciones set Hora4=@Hora , Explicacion=
@Explicacion
where EmpleadoID=@IdEmpleado and Fecha=@Fecha
and Hora4 IS NULL

SET @FilasAfectadas = @@ROWCOUNT


if @FilasAfectadas>0
Set @FilasAfectadas=1
END

ELSE
BEGIN

43
set @msg='Cada Marcacion se Realiza Solo una Vez'
END

--select*from Marcaciones

END TRY

BEGIN CATCH

SET @FilasAfectadas =0
SET @msg=@@ERROR
END CATCH

end
GO
/****** Object: StoredProcedure [dbo].[Sp_ActualizaHorario]
Script Date: 06/28/2015 21:02:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[Sp_ActualizaHorario]
@IdEmpleado int,
@HoraEntrada varchar(20),
@HoraAlmuerzo1 varchar(20),
@HoraAlmuerzo2 varchar(20),
@HoraSalidas varchar(20),
@FilasAfectadas bit output,
@msg varchar(max)OUTPUT

AS
BEGIN

SET NOCOUNT ON;

BEGIN TRY

UPDATE Horarios SET

44
EmpleadoID=@IdEmpleado
,Entrada=@HoraEntrada
,AlmIN=@HoraAlmuerzo1
,AlmOUT=@HoraAlmuerzo2
,Salida=@HoraSalidas
WHERE EmpleadoID=@IdEmpleado
SET @FilasAfectadas = @@ROWCOUNT

if @FilasAfectadas>0
Set @FilasAfectadas=1

END TRY

BEGIN CATCH

SET @FilasAfectadas =0
SET @msg=@@ERROR

END CATCH

END
GO

2.5 Diseo fsico


Caractersticas fsicas de la BD
Por la caractersticas del Sistema propuesto de rplica tipo mezcla, cada
restaurante posee una copia replicada del sistema por lo que no se
requiere de utilizar algn nivel de RAID.
La BD se levantara por medio de Internet Information Services (IIS) en
cada servidor.
El espacio en disco inicial de la Base de Datos es de 5GB
El espacio total disponible que debe tener la base de datos es de 30 GB

45
2.6 Configuracin de los servidores, configuracin de los
clientes

Especificacin del Cliente


Thin client Wyse Dx0D
Procesador Dual-Core 1.4GHZ
Memoria Ram de 4GB
Windows Embedded Standard 7
20 GB o ms en disco duro
Tarjeta de Red
Tarjeta de Sonido

Especificacin de Servidores
Especificaciones Servidor de Replicacin (Publicador).

Dell Servidor PowerEdge T420 1.3


Procesador
Tipo de CPU: Intel Xeon E5-2407 de 2.4GHz
Ncleos 4:
Subprocesos: 4
Memoria cach: 10MB
Caractersticas de la CPU: 80W
Soporte Mximo de procesadores: 2
Tarjeta Madre
Chipset: Series Intel C600
Memoria
Tamao instalado memoria: 8GB
Tipo de memoria: DDR3 1600

46
Disco duro
2 x 1 TB, 7,2 K RPM SATA 3
Capacidad de 2 TB
HDD Interface: SATA / SAS
Unidades de medios: DVD ROM, 16x, Serial ATA
Caractersticas potencia: 550W fuente de alimentacin no
redundante

Especificaciones Servidor de Replicacin (suscriptor).

Dell Servidor PowerEdge T420 1.3


Procesador
Tipo de CPU: Intel Xeon E5-2407 de 2.4GHz
Ncleos 4:
Subprocesos: 4
Memoria cach: 10MB
Caractersticas de la CPU: 80W
Soporte Mximo de procesadores: 2
Tarjeta Madre
Chipset: Series Intel C600
Memoria
Tamao instalado memoria: 8GB
Tipo de memoria: DDR3 1600
Disco duro
2 x 1 TB, 7,2 K RPM SATA 3
Capacidad de 2 TB
HDD Interface: SATA / SAS
Unidades de medios: DVD ROM, 16x, Serial ATA

47
Caractersticas potencia: 550W fuente de alimentacin no
redundante

2.7 Solucin Front End

La solucin para Front End elegida es la IDE Visual Studio 2010 Ultimate en el
lenguaje de Programacin C# (Sharp). Elegido por su amplio uso en el mercado
actual; Adems de ser el lenguaje de mayor conocimiento para el grupo de
desarrolladores. [2]
El Visual Studio (VS) es un entorno de desarrollo de software integrado, que
permite programar en los lenguajes C++, C#, J#, y VB.NET. Entre las
funcionalidades que se incluyen en la versin 2010 de Visual Studio y que estn
relacionadas con la gestin de las pruebas dentro del ciclo de vida de la
aplicacin, estn:
Mejoramiento de los esfuerzos de pruebas con herramientas para una mejor
documentacin de los escenarios de prueba y de las colecciones de datos de
prueba.
Identificacin y ejecucin de slo aquellos casos de prueba que fueron
impactados por un cambio en el cdigo.
Capacidades aumentadas de control de versiones, incluyendo check-in
cerrado, visualizacin de los branchs, y flujo de compilacin.

Visual Studio 2010 evoluciona la gestin del ciclo de vida de una aplicacin
mediante:
La construccin de calidad en el ciclo de vida.
a. Eliminando los defectos no-reproducibles.
b. Asegurando compilaciones (builds) de alta calidad.
c. Incorporando rendimiento en el ciclo de vida.
El impulso a la eficiencia en el esfuerzo de pruebas.
a. Eliminando tareas tediosas.

48
b. Mejorando la instalacin, configuracin y despliegue de las pruebas.
c. Escogiendo las pruebas adecuadas.
La garanta de mayor completitud de las pruebas.
a. Planeando las pruebas y monitoreando su progreso.
b. Encontrando brechas en las pruebas y solucionndolas.
c. Asegurando que los cambios son probados apropiadamente.

Fig. API Visual Studio 2010

49
2.8 Solucin Back End

El sistema gestor de bases de datos utilizado es el MS SQL Server 2008.


Microsoft SQL Server[3]. Es un sistema para la gestin de bases de datos creado
por Microsoft, el mismo se basa en el modelo relacional. Herramienta la cual es
utilizada para organizar, gestionar y recuperar datos almacenados en una base
de datos, permite la administracin de bases de datos relacionales, la creacin
de tablas independientes, manejo de formularios, reportes y consultas.

Dentro de sus caractersticas fundamentales se encuentran:

Soporte de transacciones.
Escalabilidad, estabilidad y seguridad.
Soporta procedimientos almacenados.
Incluye tambin un potente entorno grfico de administracin, que
permite el uso de comandos DDL y DML grficamente.
Permite trabajar en modo cliente-servidor, donde la informacin y
datos se alojan en el servidor y los terminales o clientes de la red slo
acceden a la informacin.
Adems permite administrar informacin de otros servidores de datos.

50
Fig. API SQL Server 2008

2.9 Solucin LAN

La Localizacin del Servidor estar en Penonom en el restaurante Coclesano y


los servidores suscritores estarn en las dems sucursales del restaurante
coclesano.

Hemos decido usar una red de estructura tipo Cliente-Servidor.

Se tendr un servidor dedicado. Un servidor dedicado es aquel que funciona slo


como servidor, y no se utiliza como cliente o estacin, Los servidores se llaman
dedicados porque no son clientes, y porque estn optimizados para dar servicio
con rapidez a peticiones de clientes de la red, y garantizar la seguridad de los

51
archivos y directorios. Las redes basadas en servidor se han convertido en el
modelo estndar para la definicin de redes.
A medida que la red incremente su tamao y el nmero de equipos conectados y
la distancia fsica y el trfico entre ellas crece, se necesitara ms de un servidor.
La divisin de las tareas de la red entre varios servidores asegura que cada
tarea ser realizada de la forma ms eficiente posible.

La topologa que utilizaremos para nuestro proyecto es la de Estrella.


La topologa en estrella tiene un nodo central desde el que se irradian todos los
enlaces hacia los dems nodos. Por el nodo central, generalmente ocupado por
un switch, pasa toda la informacin que circula por la red.
Este mtodo de topologa permite aadir o quitar mquinas fcilmente y si se
produce un fallo en alguna de las estaciones, no repercutir en el funcionamiento
general de la red.

En el Restaurante Coclesano ubicado en Penonom se utilizaran 3 terminales


Wyse y un servidor, dos mquina estarn ubicada en el mostrador y la otra en la
gerencia, el servidor estar ubicado en un cuarto especial aislado del personal.

52
La red ser 200.20.20.0/28 con 5 host disponibles, Gateway ser 200.20.20.1, el
servidor estar en la Vlan 2, y las terminales Wyse de los mostradores en la
Vlan 3.

Dispositivo Configuracin
Servidor Gateway: 200.20.20.1
IP: 200.20.20.2
Vlan 2
Wyse1 Gateway: 200.10.10.1
Caja 1 IP: 200.20.20.3
Vlan 3
Wyse 2 Gateway: 200.10.10.1
Caja 2 IP: 200.20.20.4
Vlan 3
Wyse 3 Gateway: 200.20.20.1
Gerencia IP: 200.20.20.5
Vlan 3

En el Restaurante Coclesano ubicado en Aguadulce se utilizaran 3 terminales


Wyse y un servidor, dos mquina estarn ubicada en el mostrador y la otra en la
gerencia, el servidor estar ubicado en un cuarto especial aislado del personal.

53
La red ser 200.30.30.0/28 con 5 host disponibles, Gateway ser 200.30.30.1, el
servidor estar en la Vlan 2 y las terminales Wyse de los mostradores en la Vlan
3.

Dispositivo Configuracin
Servidor Gateway: 200.30.30.1
IP: 200.30.30.2
Vlan 2
Wyse1 Gateway: 200.30.30.1
Caja 1 IP: 200.30.30.3
Vlan 3
Wyse 2 Gateway: 200.30.30.1
Caja 2 IP: 200.30.30.4
Vlan 3
Wyse 3 Gateway: 200.30.30.1
Gerencia IP: 200.30.30.5
Vlan 3

En el Restaurante Coclesano ubicado en Nata se utilizaran 3 terminales Wyse y


un servidor, dos mquina estarn ubicada en el mostrador y la otra en la
gerencia, el servidor estar ubicado en un cuarto especial aislado del personal.
La red ser 200.40.40.0/28 con 5 host disponibles, Gateway ser 200.40.40.1, el
servidor estar en la Vlan 2 y las terminales Wyse de los mostradores en la Vlan
3.

54
Dispositivo Configuracin
Servidor Gateway: 200.30.30.1
IP: 200.30.30.2
Vlan 2
Wyse1 Gateway: 200.30.30.1
Caja 1 IP: 200.30.30.3
Vlan 3
Wyse 2 Gateway: 200.30.30.1
Caja 2 IP: 200.30.30.4
Vlan 3
Wyse 3 Gateway: 200.30.30.1
Gerencia IP: 200.30.30.5
Vlan 3

2.10 Solucin WAN

Nuestro proyecto consta de una solucin WAN. El tipo de enlace que


utilizaremos es el Frame Relay.
Descripcin general
El servicio Frame Relay aprovecha una caracterstica del trfico de datos
(transmisin de datos en rfagas) para optimizar los recursos utilizados por las
empresas y reducir sus costos de comunicacin. Se constituye por lo tanto en
una herramienta fundamental para mejorar la productividad y rentabilidad de las
empresas.

55
Incluye el suministro de la Unidad de Terminacin de Datos en el domicilio del
cliente.
El Servicio dispone de supervisin centralizada de todos sus enlaces alcanzando
la misma hasta el propio terminal del cliente.
La operacin y mantenimiento que se realiza las 24 horas del da los 365 das
del ao permite ofrecer una asistencia permanente al cliente y una excelente
calidad de servicio.

Ventajas
Frame Relay ofrece la opcin de configurar "redes a medida". Cuando se debe
implementar una Red para interconectar varios puntos de caractersticas
diferentes, la facilidad de habilitar circuitos virtuales permanentes (PVC's) entre
estos puntos y la disponibilidad de una amplia gama de velocidades (desde 16
Kbps en adelante) permiten optimizar sensiblemente el diseo.
Debido a que el protocolo Frame Relay fue especialmente diseado para prestar
servicio a los sistemas que transmiten datos en forma de rfagas, permite
optimizar el ancho de banda contratado traducindose esto en menores costos.
Capacidad de reconfiguracin de los enlaces en forma rpida y flexible.

56
Servicio de mantenimiento las 24 horas, los 365 das del ao.

Aplicaciones
Interconexin de redes de rea local (LAN)
Comunicacin "en lnea" (tiempo real) de todos los locales del cliente
dentro del territorio nacional.
Concentracin de varios puntos remotos en un punto principal a travs de
un nico enlace, lo que se refleja en la disminucin de inversiones en
equipos de comunicaciones
Compartir archivos, grficas y documentos.
Transferir archivos con informaciones varias tales como: pago de salarios,
ingreso de rdenes de trabajo, trabajo en grupo.
Acceder en forma remota a bases de datos.
Correo electrnico, transmisin de voz y datos en la red privada del
cliente.

Los sitios que enlazaremos sern los tres restaurantes, uno ubicado Penonom,
el otro en aguadulce y el otro en Nat

2.11 Estimacin de costos

Producto Precio Unitario Precio Total


3 Servidores Dell PowerEdge 1,500.00 4,500.00
9 Thin Client Wyse 200.00 1,800.00
3 Switches 150.00 450.00
3 Routers Linksys 100.00 300.00
Cableado 200.00 200.00
3 Licencia SQL Server 2008 2,000.00 6,000.00
Cada una.
Programacin de la aplicacin 2,000.00 2,000.00
Subtotal 15,250.00

57
Total 15,250.00

2.12 Matriz de Riesgo

Define el Probabilidad de Nivel de


#id Mitigacin/Contingencia
Riesgo ocurrencia Impacto
1 Virus Alta Medio Antivirus
Inacceso al Reiniciar el servicio
2 Media Alta
IIS Configurar el servicio
Modificar
configuracin
3 Baja Medio Filtros de escritura
bsicas del
computador
Perdida de
4 conexin Alta Alta Replicacin.
Local
Falta de
5 fluido Alta Alta
Planta generadora de
electricidad.
elctrico

2.13 Replicacin

Para replicar nuestros datos utilizaremos la replicacin Mezcla por SQL server
porque permite que varios sitios funcionen en lnea o desconectados de manera
autnoma, y mezclar ms adelante las modificaciones de datos realizadas en un
resultado nico y uniforme. La instantnea inicial se aplica a los suscriptores; a
continuacin SQL Server hace un seguimiento de los cambios realizados en los
datos publicados en el publicador y en los suscriptores. Los datos se sincronizan
entre los servidores a una hora programada o a peticin.

58
2.13 Cuadro de diseo de la red

2.14 Cuadro general de actividades del proyecto

59
Conclusiones

60
Para realizar un software que cumpla con todos los requisitos
del cliente se debe conocer los procesos del negocio, para que
cuando se realice la implementacin no se encuentren con
deficiencias del software.
Utilizar la replicacin de datos ayuda a tener un sistema
actualizado aunque uno de los servidores quede fuera de
servicio, gracias a que existen dems servidores de respaldo.
Crear sistemas de base de datos distribuidos con lleva a invertir
una buen capital; y esto es un inconveniente muy serio para las
empresas PYMES que no cuentan con este. Por eso
actualmente las empresas con un tiempo de servicio amplio o
un capital amplio son las que pueden beneficiarse de este tipo
de base de datos distribuidas.

Recomendaciones

61
Realizar mantenimiento a los servidores y equipos que utilizan
la aplicacin.
Adquirir cortafuegos; Adems encriptacin de los datos para
una mayor seguridad a los ataques de usuarios no registrado.
Capacitar a los nuevos colaboradores con manuales de uso
para familiarizarlo con la aplicacin.

Bibliografa

62
http://leonelmartinez.udem.edu.ni/wp-
content/uploads/2015/01/REPLICAS-Y-TRANSACCIONES.pdf.[1]
http://www.kerwa.ucr.ac.cr/bitstream/handle/10669/740/Reporte
%20Tecnico%20sobre%20VS2010.FINAL.pdf?sequence=1 [2]
http://www.ecured.cu/index.php/Microsoft_SQL_Server[3]
http://www.genbetadev.com/bases-de-datos/fundamento-de-las-bases-de-
datos-modelo-entidad-relacion[4]
http://www.desarrolloweb.com/articulos/modelo-entidad-relacion.html[5]
https://www.antel.com.uy/antel/empresas/datos-e-internet/servicios/redes-
privadas-atm/Frame-Relay/[6]

ANEXO

1- Pantalla de inicio

63
Mdulo de Recursos humanos
2- Pantalla que inserta empleados nuevos.

3- Pantalla que actualiza Empleados

64
4- Pantalla que ingresa los horarios por empleados

5- Pantalla que registra las marcaciones de los colaboradores

65
- Mdulo de Inventario y Caja

6- Caja

7- Pantalla de Mantenimiento de Catlogos

66
8- Pantalla para agregar Productos al inventario

67
9- Pantalla que resta productos de inventario

68