Está en la página 1de 127

1

INSTITUTO DE EDUCACION SUPERIOR AVANSYS

TESINA

ANÁLISIS, DESARROLLO E IMPLEMENTACION DE UNA BASE DE DATOS


ORACLE, BASADO EN UML, PARA MEJORAR EN LA PARTE OPERATIVA
(VENTAS, COMPRAS Y PRODUCCION DE REPOSTERIA) PARA LA EMPRESA
DALIDA S.A.C.

AUTORES

GOMEZ SAMUEL, Saúl

MARTINEZ HUACAÑA, Power

UMERES ALATRISTA, Bismarck

Para Optar el Título Profesional Técnico en Computación e Informática

LIMA – PERU- 2016


2

RESUMEN

El presente documento contiene el desarrollo de una base de datos en ORACLE de


Gestión de Ventas y producción de una empresa en el rubro de repostería, el cual permitirá
agilizar las ventas provenientes de una atención directa o pedido (pedido telefónico, pedido
online, pedido directo en la oficina de ventas) a nivel nacional así también las compras para
la elaboración de los productos a nivel online, el objetivo principal de este documento es que
la base de datos soporte todo tipo de aplicación en relación a las compras, ventas y
producción de repostería.

El proyecto consta de cuatro capítulos: En el primer capítulo 1 se presentan los


fundamentos teóricos, análisis el estado actual de las variables que acompañan al proceso en
estudio, organización objeto de estudio, objetivos estratégicos, visión, misión, el campo de
acción explicando los procesos de negocio claves del asunto de estudio y además, se analiza
la situación problemática a fin de definir los objetivos y beneficios a alcanzar con la solución
propuesta.

En el segundo capítulo se presenta la propuesta de solución con los objetivos del


proyecto tanto generales como específicos, también se indican los beneficios tangibles e
intangibles del proyecto a proponer. Después el análisis y comparación de la solución
propuesta con otras herramientas similares del mercado

En el tercer capítulo se presenta el modelado del negocio donde se analizan las reglas
y el “cómo” del proceso en estudio, los cuales se han desarrollado usando UML y RUP,
artefactos que nos permitieron definir los objetos de información y el flujo de actividades a
automatizar.

Finalmente, en el cuarto capítulo, se muestra la administración del proyecto donde se


describe las actividades (EDT) y la gestión del tiempo en el cronograma del proyecto.
3

TABLA DE CONTENIDO

LISTAS ESPECIALES………………………………………………….……………..…...…4
INTRODUCCIÓN………………………………………….……………………....….……...6
1. DESCRIPCION DE LA EMPRESA…...…...…………….……..……………..…...……....7
1.1.OBJETO DE ESTUDIO…...…………………………………………………..….…….....7
1.2. MISIÓN………………………...………………………………………………......…......8
1.3. VISIÓN…………………………..……………….…………………………….......….....8
1.4. OBJETIVOS ESTRATÉGICOS……………..……………………………………...…....8
1.5. ORGANIGRAMA……….…………………………………………….............................9
2. DIAGNÓSTICO DE LA SITUACIÓN ACTUAL……………………………….…….......9
2.1. CAMPO DE ACCIÓN………………………………………..………………………......9
2.2. PROCESOS DEL NEGOCIO…………………………………………………………….9
3. DEFINICIÓN DEL PROBLEMA…………………………………….…………………..16
3.1. ANÁLISIS DE LOS PROBLEMAS DE INFORMACIÓN…………………………….16
3.1.1. SITUACIÓN PROBLEMÁTICA Y PROBLEMAS A RESOLVER………………....16
4. PROPUESTA DE SOLUCIÓN…………………….…………………………..………....17
4.1. OBJETIVO GENERAL……………………..………………….…………….………....17
4.2. OBJETIVOS ESPECÍFICOS…………………..……………………………..….….......18
4.3. FUNDAMENTACION DE LOS OBJETIVOS PROPUESTOS……………..………....19
5. MARCO TEORICO…………………..………………………………………………..….23
5.1. BÚSQUEDA DE INFORMACIÓN DE TECNOLOGÍA APLICADA….……………..23
5.1.1. APLICACIONES WEB…………………………………………………..….….…….23
5.1.2. APLICACIONES MÓVILES…….……………………………………………….......23
5.1.3. BASE DE DATOS Y SUS TIPOS...…………………………………………….…….24
5.1.4. TECNOLOGÍA ORACLE..…………………………………………………………...27
5.1.5. METODOLOGÍA UML………………………………………………………………29
5.1.6. NORMALIZACIÓN DE BASE DE DATOS (FORMA NORMALES)…………..….31
5.1.7 ERWIN….……………..………………………………………………………….....…31
5.1.8. ADMINISTRACIÓN Y SEGURIDAD BASE DE DATOS….....……………………33
6. DESARROLLO DE LA PROPUESTA ELEGIDA……………………………………....41
6.1. METODOLOGÍA UML…………………….………………………………..…...…….41
6.1.1. MODELO DE CASOS DE USOS DE NEGOGIO…………………………………...42
6.1.1.1. ACTORES DEL NEGOCIO………………………………………………………...42
6.1.1.2. CASOS DE USO DE NEGOCIO…………………………………………………...42
6.1.1.3. DIAGRAMA DE CASOS DE USO DEL NEGOCIO……………………………....43
6.1.1.4. MODELO DE ANALISIS DEL NEGOGIO…………………………………....…..43
6.1.1.4.1. TRABAJADORES DEL NEGOGIO…………………………..……...…..………43
6.1.1.4.2. ENTIDADES DEL NEGOCIO……………………………………………..……..44
6.1.1.4.3. DIAGRAMA DE CLASES DEL NEGOCIO…………………………………......45
6.1.1.5. REALIZACION DE LOS CASOS DE USO DEL NEGOCIO……………………..45
6.1.1.5.1. ESPECIFICACION DE LOS CASOS DE USO DEL NEGOCIO………………..45
6.1.1.5.1.1. CUN: CUN001_Vender_Producto…..……………………………...…......…….45
6.1.1.5.1.2. CUN: CUN002_Elaborar_Producto...……………………............................…...47
6.1.1.5.1.3. CUN: CUN003_Comprar_Producto_Ingrediente…...…………………………..49
6.1.2. MODELO DE CASOS DE USO DEL SISTEMA…………….……………………...51
6.1.2.1. ESPECIFICACIÓN DE LOS ACTORES DEL SISTEMA…………………………51
6.1.2.2. DIAGRAMA DE ACTORES DEL SISTEMA……………………………………..52
4

6.1.2.3. DIAGRAMA DE PAQUETES DEL SISTEMA……………………………………52


6.1.2.4. DIAGRAMAS DE CASOS DE USO DEL SISTEMA POR PAQUETE…………..53
6.1.2.4.1. DIAGRAMA CUS PAQUETE VENTAS…....………..……………………….…53
6.1.2.4.2. DIAGRAMA CUS PAQUETE COMPRAS…………..……………………..…....53
6.1.2.4.3. DIAGRAMA CUS PAQUETE PRODUCCION...……..…………………...….....54
6.1.2.4.4. DIAGRAMA CUS PAQUETE MANTENIMIENTO ……………………………54
6.1.2.4.5. DIAGRAMA CUS PAQUETE REPORTE....…………………………………….54
6.1.2.4.6. DIAGRAMA CUS PAQUETE SEGURIDAD………..……………………….….55
6.1.3. MODELO CONCEPTUAL…..…………………………………………….……...….56
6.1.3.1. DIAGRAMA DEL MODELO CONCEPTUAL VENTAS………………………....56
6.2. NORMALIZACIÓN Y ANORMALIZACION DE LA BASE DE DATOS………...…59
6.3. MODELAMIENTO DE BASE DE DATOS ORACLE………………………………...60
6.3.1. DIAGRAMA DE BASE DE DATOS ORACLE……………………………………...60
6.3.2. DICCIONARIO DE DATOS…………………………………………………….........65
6.3.3. CREACIÓN DE TABLAS, INDICES, VISTAS, SECUENCIAS……………………77
6.3.4. CREACION DE PAQUETES, PROCEDIMIENTOS………………………………...92
6.3.5. ADMINSTRACION Y SEGURIDAD DE LA BASE DE DATOS…………………123
6.3.6. CREACION DE USUARIOS Y PERFILES………………………………………...124
7. CONCLUSIONES……………………………………………………………………….125
8. RECOMENDACIONES…………………………………………………………………126
9. AGRADECIMIENTOS………………………………………………………………….126
10.BIBLIOGRAFIA…….………………………………………………………………….126
11.ANEXOS………………………………………………………………………………..127

LISTA DE FIGURAS
Figura 1.-Organigrama – DALIDA S.AC….…………………………………….……………9
Figura 2.- Proceso de vender producto...……………………...……..…………..………..….11
Figura 3.- Proceso de comprar producto_ingredientes….……….…………..……………….13
Figura 4.- Proceso de elaborar producto……………..………………………………………15
Figura 5.-Interacción del navegador web con el servidor web…………………………..…...20
Figura 6.- Aplicación móvil……………………………………………………………....….21
Figura 7.- Base de datos dinámico…………………………………………………………...21
Figura 8.- Base de datos estatico……..………………………………………………….…...22
Figura 9.- Diagrama caso de uso negocio……………………………………………….…...40
Figura 10.-Diagrama de clases del negocio……..……………………………………………42
Figura 11.-Diagrama clases CUN Vender producto………………………………………....43
Figura 12.- Diagrama actividades CUN Vender producto………………….…………….….44
Figura 13.-Diagrama clases CUN Comprar producto_ingrediente........……………………..45
Figura 14.-Diagrama de actividades CUN Comprar producto_ingrediente....……………….46
Figura 15.-Diagrama de clases CUN Elaborar producto………………………..……….…...47
Figura 16.- Diagrama actividades CUN Elaborar producto…………….…….……………...48
Figura 17.- Diagrama de actores del sistema……………….………………………..………49
Figura 18.- Diagrama de paquetes del sistema………………..……………………………...49
Figura 19.- Diagrama de CUS PAQUETE VENTAS……………........……………………..50
Figura 20.- Diagrama de CUS PAQUETE COMPRAS...…………………...………………50
Figura 21.- Diagrama de CUS PAQUETE PRODUCCION…………………….………..….51
5

Figura 22.- Diagrama de CUS PAQUETE MANTENIMIENTO..……………..……………51


Figura 23.- Diagrama de CUS PAQUETE REPORTES……………...……………………...51
Figura 24.- Diagrama de CUS PAQUETE SEGURIDAD……………..……………………52
Figura 25.- Modelo conceptual ventas…………………...……………..……………………56
Figura 26.- Modelo conceptual compras….……………...……………..……………………57
Figura 27.- Modelo conceptual producción……………...……………..……………………58
Figura 28.- Diagrama de bd ventas………………..…………………………………………61
Figura 29.- Diagrama de bd compras….…………..…………………………………………62
Figura 30.- Diagrama de bd producción…………..………………………………….………63
Figura 31.- Logo de la empresa…………..………………………………….………….…..126
Figura 32.- Oficina principal de ventas…..………………………………….………….…..127
Figura 32.- Área de producción……………………..…………………...….………….…..127

LISTA DE TABLAS

Tabla 1.- Situación problemática del proceso vender producto……………….…..….……...16


Tabla 2.- Situación problemática del proceso comprar producto_ingrediente.…………..…..17
Tabla 3.- Situación problemática del proceso elaborar producto ……………………………17
Tabla 4.- Fundamentación de objetivos…………………...…………………………...…….19
Tabla 5.- Seguridad de accesos……….………………………………………..……...……..31
Tabla 6.- Modificar Usuario……………………. ………………………...……………..…..35
Tabla 7.- Especificación de los actores del negocio......……...…………………………..…..39
Tabla 8.- Especificación de casos de uso de negocio.……...………………………………...39
Tabla 9.- Especificación de trabajadores del negocio...………………...………………..…..41
Tabla 10.- Especificación de entidades del negocio...……...….……….…..………………...41
Tabla 11.- Especificación de los actores del sistema…..…...………………………………..48
Tabla 12.- Almacenamiento de Personas ….....……………..…………..….………………..64
Tabla 13.- Almacenamiento de Clientes. ….....……………..…………..….………………..64
Tabla 14.- Almacenamiento de Trabajador..….……………..…………..….………………..65
Tabla 15.- Almacenamiento de Usuario.. …….……………..…………..….………………..65
Tabla 16.- Almacenamiento de Ubigeo.. …….……………..…………..….…….…………..68
Tabla 17.- Almacenamiento de Valor.. …….……………..…………..….……………….....67
Tabla 18.- Almacenamiento de Empresa.. …….……………..…………….………………..67
Tabla 19.- Almacenamiento de Cargo.. …….……………..……………..…………………..68
Tabla 20.- Almacenamiento de Opciones. …….……………..…………..….………..……..68
Tabla 21.- Almacenamiento de Cargo opciones.. ……..….……………………..…………..69
Tabla 22.- Almacenamiento de Proveedor….……………..…...……..…….………………..69
Tabla 23.- Almacenamiento de Categoria …….……………..………….….………………..69
Tabla 24.- Almacenamiento de Productos….……………..…...……..….…………………..70
Tabla 25.- Almacenamiento de Equipos.. …….……………..……………..………………..71
Tabla 26.- Almacenamiento de Pedidos.. …….……………..…………..….………………..72
Tabla 27.- Almacenamiento de Detalle pedido.……………..…………..….………………..72
Tabla 28.- Almacenamiento de Elaboracion….……………..…………..….………………..73
Tabla 29.- Almacenamiento de Producto final……………..…………..….…………..……..73
Tabla 30.- Almacenamiento de Detalle _prod_final………..…………..….……...…..……..73
Tabla 31.- Almacenamiento de Compras….……………..…………..….……………….…..74
Tabla 32.- Almacenamiento de Detalle compras…………..…………..….………..………..74
Tabla 33.- Almacenamiento de Det_ingreso_prod_final..…………..….…………...…….....75
Tabla 34.- Almacenamiento de Comprobante.……………..…………..….……………..…..75
Tabla 35.- Almacenamiento de Detalle comprobante………..…………..….…………...…..76
6

INTRODUCCION

Actualmente el incremento de la actividad comercial, eventos sociales, eventos


familiares, eventos de trabajo, eventos estudiantiles, producto de los niveles de crecimiento
sostenidos en el país, ha permitido que las personas adquieran más productos de primera
necesidad y lo hagan desde casa sin necesidad de gastar el tiempo sino solo con un simple
clic debido al crecimiento acelerado de la tecnología, Por lo tanto, los productos de
repostería son cada vez más requeridos por los consumidores. La empresa DALIDA S.A.C.
desea abrir un nuevo canal de ventas y con ello espera un crecimiento adicional en sus ventas
a través de la venta móvil y web.

El presente proyecto profesional ha sido elaborado para poder ofrecer una alternativa
de solución mediante el diseño de una base de datos en ORACLE que genere valor agregado
a los procesos de ventas y producción de repostería. Para lo cual ha sido necesario realizar un
análisis de los procesos de negocio de modo que se pueda ofrecer mejoras en la
implementación y así como conocer diferentes alternativas que presenta el mercado actual.

La propuesta consiste en desarrollar una base de datos en ORACLE que permita


gestionar las ventas de los productos de la repostería provenientes de una cotización o pedido
a nivel distrital, así mismo el sistema debe permitir brindar la trazabilidad y seguimiento de
los mismos.
7

1. DESCRIPCION DE LA EMPRESA

1.1. OBJETIVO DE ESTUDIO

La repostería DALIDA.S.A.C es una empresa familiar que inició operaciones de


manera informal en el 2014 en la ciudad de Lima –cercado de lima-Jr. Gregorio paredes
N° 430. Iniciaron con la venta al menudeo de pays de queso y algunas tortas de frutas y
pasteles a los inquilinos de su edificio, caracterizados por el delicioso sabor casero. En
2015 la demanda de los productos se incrementó, ya se enviaba productos a algunas
celebraciones familiares, y esta se hacía conocida cada vez más por la zona, por lo que
dieron inicio al proceso de formalización de la empresa, y con él vino la diversificación
de los productos: pasteles, bocadillos, gelatinas y todo tipo de postres, así como la entrega
a domicilio como servicio adicional a nuestros clientes.

Actualmente la repostería DALIDA.S.A.C, con 1 año de experiencia en el


mercado, sigue manteniendo su delicioso y característico sabor casero, ofreciendo a sus
clientes la entrega de pasteles y postres a domicilio, así como un hermoso espacio con
alberca para la celebración de diferentes eventos: reuniones familiares, fiestas infantiles,
baby shower, quince años, bodas o cualquier otro evento.

DATOS DE LA EMPRESA

Ruc: 200000015 Ubicación: Jr. Gregorio paredes N° 430 cercado de lima –lima
8

1.2. MISIÓN

 Somos una empresa innovadora de repostería que produce y comercializa productos


de alta calidad.

 Estamos comprometidos en la atención a los detalles de nuestros productos y


servicios, para convertir los encuentros, las celebraciones familiares y empresariales
de nuestros clientes en momentos memorables.

1.3. VISIÓN

 En el año 2018 seremos la empresa de repostería fina preferida en la región por la alta
calidad de nuestros productos y por nuestro equipo humano comprometido con el
servicio.
Reconocidos por la innovación y por la permanente búsqueda del crecimiento
armónico para garantizar la lealtad de nuestros clientes y la solidez financiera.

1.4. OBJETIVOS ESTRATÉGICOS

 Aumentar los volúmenes de venta de repostería y elaboración de insumos.


 Lograr un mayor posicionamiento en el mercado en ventas y distribución de
repostería y elaboraciones de insumos.
 Generar compras repetitivas por parte de los clientes a través de promociones que
garanticen compras futuras.
 Incrementar nuevas líneas de productos y sabores de insumos jamás probadas.
 Lograr expansión de mercados, a través de nuevas sucursales ubicadas
geográficamente en lugares estratégicos.
 Distribuir productos de calidad y prestigio, ofreciendo garantía al cliente.
 Mantener cantidades óptimas de mercadería en inventarios con el fin de asegurar la
satisfacción de las necesidades del cliente en todo momento.
 Lograr una mayor satisfacción en los consumidores de repostería y elaboraciones de
insumos.
 Facilitar al cliente la adquisición de los productos de calidad a través de la tecnología.
 Elabora los productos de manera sencilla utilizando la tecnología.
 Realizar las compras de ingredientes de diferentes formas tecnológicas,
9

1.5. ORGANIGRAMA
En la figura 1 se observa el organigrama de la empresa DALIDA S.A.C., compuesta por 4
áreas y son: producción y Ventas. Además, cuenta con una oficina principal

Figura 1.-Organigrama – DALIDA S.AC

2. DIAGNOSTICO DE LA SITUACION ACTUAL

2.1. CAMPO DE ACCIÓN

El campo de acción se centra en los procesos del área de ventas (Vender


productos, Atender pedido), área de Producción (elaborar producto) y compras (comprar
ingredientes).

2.2. PROCESOS DEL NEGOCIO

A continuación, se detalla los procesos involucrados en el campo de acción:

AREA DE VENTAS

VENDER PRODUCTO

El proceso inicia cuando el cliente se acerca y observa los productos de repostería


existentes, con sus precios etiquetados seguidamente solicita producto(s) al colaborador
de ventas, luego el colaborador de ventas, atiende la orden del cliente. En primer lugar,
ofrecerá las variedades del producto y el cliente elige sus productos de acuerdo a sus
necesidades. Si el detalle de la orden esta correcto se despacha y verifica en el stock al
producto, sino existe el producto o no se tiene en la tienda, se comunica con el
administrador para realizar el requerimiento de los productos al área de producción, el
10

administrador valida la petición si existe el producto en su área de producción, que se


elaboran en la misma empresa los insumos como ejemplo (pastel, torta, panes, etc.) o no.
Si existe hace la entrega al colaborador y comienza a registrar la venta manualmente en
un cuadernillo: el nombre del producto(s), precio del producto(s), calcula el precio total e
informa al cliente, si el cliente acepta, el colaborador realiza el cobro efectivo y entrega el
producto(s) al cliente, si en caso no acepta el precio total; se cancela la venta. Pero qué
pasa si el cliente pide un producto diferente que al parecer la empresa carece del
producto. El administrador se contacta con el proveedor y realiza el pedido del dicho
producto y el proveedor al recibir el pedido, lleva y hace la entrega a la empresa
DALIDA SAC., los productos. Y el administrador actualiza sus productos tanto en sus
áreas de producción y oficina de venta
11

Figura 2.- Proceso de vender producto


12

AREA DE COMPRAS

PROCESO COMPRAR PRODUCTOS_INGREDIENTES

El proceso inicia cuando el personal de ventas verifica el stock de los productos y


evalúa la tienda si están en buenas condiciones los productos y de las fechas de
vencimiento de cada producto, sin embargo, la trayectoria de la revisión es complicada ya
que algunos están sin venderse o están en stock mínimo. El personal anota en un
cuadernillo todo un listo de productos no vendidos, en vencimientos y en stock mínimo.
De igual manera el colaborador de producción verifica su inventario de ingredientes, que
se elaboran los insumos comestibles que son tortas, panes, queques, etc. Que la empresa
distribuye en su localidad para la venta o pedidos por los clientes ya sea un evento u otra
actividad. Cada vez que verifica; los ingredientes están en malas condiciones como
utilizados, algunos abiertos que son embotellados, se requiere de más maquinas. El
colaborador de producción hace un informe mediante un cuadernillo y realiza un listado
que ingredientes se van a comprar y nuevos ingredientes para su elaboración de nuevos
insumos. Finalmente es entregado las listas al administrador para su evaluación, enseguida
se contacta con el proveedor para consultar los precios de cada producto que se necesita
con urgencia, después de saber los precios de cada producto los anota en un cuadernillo,
para luego comprar que cantidades de productos e ingredientes según su capital de la
empresa. Por ultimo hace pedido al proveedor todo los productos e ingredientes, mediante
el teléfono o correo electrónico. El proveedor hace la entrega todos los productos
solicitados por la empresa DALIDA SAC., en seguida le hace una factura total de los
productos, finalmente el proceso termina.
13
14

AREA DE PRODUCCION

PROCESO DE ELABORACION DE PRODUCTOS

El proceso inicia cuando el administrador verifica el orden de pedido por cliente o de


la misma, para su elaboración de insumos como pasteles, tortas, panes, etc. El colaborador
verifica el stock mínimo de los ingredientes en el área de producción, si existe lo suficiente se
realiza la preparación de acuerdo a las medidas especificadas para cada elaboración de
insumos, es importante que no debe de faltar los equipos (horno, refrigeradora, etc.) y
materias primas que son los ingredientes para su elaboración de un producto, luego se hace la
preparación por separado de acuerdo a las características de productos y se calculan las
cantidades dependiendo de las salidas de las ventas realizadas o pedidos. Su elaboración debe
estimarse el cuidado ya que es para consumir, debe tener cuidado de las contaminaciones y
contar con equipos especiales para conservarlos. La empresa cuenta con 3 cuadernillos
(pendiente, elaboración y acabado) para llevar el control de elaboración. Debe tener en cuenta
que el horno tiene un límite de espacio, las preparaciones se ponen en moldes para finalmente
hornearlos con un tiempo determinado y al finalizar se empaquetan. En fin, se indica en el
cuadernillo los procesos si están pendientes, en elaboración y acabados. Pero si no existe o se
ve que ya termino el ingrediente, esto afectaría a la empresa, para esto se toma la precaución.
El colaborador prepara el informe de ingredientes y se dirigirá al administrador para
informarle que no hay suficientes ingredientes y hace la entrega del informe. El administrador
se contactará con el proveedor para realizar su pedido de ingredientes. El proveedor al
recepcionar el pedido, realizara la entrega de producto a la empresa. Y así sucesivamente
termina el proceso de elaboración de insumos y pasa al cuadernillo finalizado.
15
16

3. DEFINICIÓN DEL PROBLEMA

3.1. ANÁLISIS DE LOS PROBLEMAS DE INFORMACIÓN

3.1.1. SITUACIÓN PROBLEMÁTICA Y PROBLEMAS A RESOLVER

PROCESO VENDER PRODUCTO


SITUACION PROBLEMÁTICA PROBLEMA
La cotización que el cliente solicita es de Se carece de un registro concretizado de las
manera verbal o presencial, las ordenes cotizaciones.
son registrados es un cuadernillo, el
personal de ventas muchas veces ha
tenido problemas en los anotes de las
órdenes del cliente o transcritos en otros
cuadernillos.
El personal de ventas no verifica sus Ausencia de información que permita
cuadernillos de anotes en ocasiones que controlar las ventas realizadas al día,
realizo ventas fiados a los clientes semanal, mensual y anual de las
caseros, por lo que se desconoce las cotizaciones y cotizaciones no pagadas.
cantidades cotizadas al día y el desorden
y mala transcripción, no se entiende la
escritura y los precios para calcular, en la
que produce perdidas de ingreso.
La cotización que el cliente ordena uno o Se carece de una organización categorizada
más productos, el personal de ventas al de los productos y los precios
buscar los productos y los precios, se automatizadas.
demora en la entrega y los clientes están
impacientes la que genera pérdida de
tiempo e ingresos.
El personal de ventas calcula los precios Se carece de una facturación automatizada
de ventas con un aparato que es de los productos despachados y el pago que
calculadora y luego hace la entrega de se asocie con la cotización.
los productos y hace el cobro totalizado.
Sucede que al realizar el cobro tiene que
entregar el vuelto haciendo el resto con
la calculadora para después entregar el
vuelto y un recibo simple en la que
detalla los productos, la cantidad, precios
y total de pago.
La cotización que se solicita al Se carece de un registro de información
proveedor por teléfono para solicitar dela cotizaciones solicitadas al proveedor.
productos e ingredientes, se realiza un
informe escrito de los productos y los
precios consultados son escritos en un
cuadernillo y en ocasiones se pierde.

Tabla 1.- Situación problemática del proceso de vender producto


17

PROCESO COMPRAR INGREDIENTES


SITUACION PROBLEMÁTICA PROBLEMA
El colaborador tiene que verificar si hay Se carece de un registro de ingredientes y
ingredientes en su área de depósito. Por productos.
la que se desconoce la existencia y en
muchos casos algunos productos e
ingredientes se pasan de su fecha de
vencimiento,
El colaborador tiene que trasladarse La empresa carece de un aplicativo web
hacia el lugar de la compra, donde se guardan los registros de
proveedores , comprobante de compra .

PROCESO ELABORAR PRODUCTO


SITUACION PROBLEMÁTICA PROBLEMA
El colaborador no verifica si hay Se carece de un registro de ingredientes y
ingredientes, si los equipos están equipos de producción.
desocupados. Por la que se desconoce la
existencia de ingredientes o si están en
buenas condiciones tanto los equipos.
Las ordenes de elaboración de insumos La empresa carece de un registro de tipo de
se realizan de acuerdo a los tipos de producción que se asocie con los pedidos
producción, que insumos se va elaborar y del cliente. Y carece de un control de la
las ordenes de pedido por cliente que programación de elaboración de insumos.
están pendientes, el colaborador tiene los
apuntes en un cuadernillo, pero en varias
ocasiones ha perdido los apuntes y
manuales de elaboración.
El administrador se contacta con Se carece de un registro de proveedores de
diferentes proveedores para realizar producción que se asocie con los pedidos e
pedido de ingredientes y para el ingredientes.
mantenimiento de equipos. Los contactos
están escritos en un cuadernillo que en
muchos casos pierde los contactos, causa
problemas y lo peor si es una
emergencia.
Tabla 3.- Situación problemática del proceso elaborar producto

4. PROPUESTA DE SOLUCIÓN

4.1. OBJETIVO GENERAL

Desarrollar una base de datos en Oracle que permita gestionar las ventas y producción
(producción compras y producción almacén) de repostería provenientes de una atención al
cliente presencial o pedido a nivel de la ciudad de lima y más, así mismo el sistema debe
permitir brindar la trazabilidad y seguimiento de los mismos.
18

4.2. OBJETIVOS ESPECÍFICOS

 Permitir registrar datos personales del cliente. Además, enviar información del cliente
al sistema existente en la empresa.
 Mostrar y configurar catálogo de repostería y pastelería.
 Permitir gestionar cotizaciones.
 Permitir gestionar pedidos del cliente.
 Permitir gestionar órdenes de despacho.
 Permitir hacer seguimiento de la cotización, pedido y orden de despacho del repuesto
o autopartes.
 Permitir registrar la confirmación de pago repostería y pastelería, además, enviar
información a facturación.
 Permitir registrar información requerida para la entrega de productos de repostería y
pastelería.
 Realizar la trazabilidad desde la solicitud de cotización o pedido hasta la entrega del
producto.
 Mantener informado a los clientes mediante el envío de notificaciones automáticas vía
correo electrónico y permitiéndoles realizar el seguimiento del servicio.
 Proporcionar reportes de gestión e indicadores que permitan evaluar el desempeño del
servicio realizado.
 Realizar un aplicativo web y móvil que permita realizar cotización y pedidos de
repostería y pastelería, así mismo permitir hacer seguimiento de los mismos.
Permitir generar pedidos en base a las cotizaciones realizadas.
19

4.3. FUNDAMENTOS DE LOS OBJETIVOS PROPUESTOS

PROBLEMA A
SISTUACION PROBLEMATICA OBJETIVO ESPECIFICO FUNDAMENTACION
RESOLVER
Permitir gestionar cotizaciones. Permitir gestionar
La cotización que el cliente solicita es de Realizar un aplicativo web y cotizaciones.
manera verbal o presencial, las ordenes son móvil que permita realizar Realizar un aplicativo web y
Se carece de un registro cotización y pedidos de repuestos móvil que permita realizar
registrados es un cuadernillo, el personal
concretizado de las o autopartes automotriz, así cotización y pedidos de
de ventas muchas veces ha tenido
cotizaciones. mismo permitir hacer repuestos
problemas en los anotes de las órdenes del
cliente o transcritos en otros cuadernillos. seguimiento de los mismos. o autopartes automotriz, así
Mostrar y configurar catálogo de mismo permitir hacer
repuestos y autopartes. seguimiento de los mismos.
Realizar la trazabilidad desde la Mostrar y configurar catálogo
solicitud de cotización o pedido de
El personal de ventas no verifica sus hasta la entrega del producto. repuestos y autopartes.
cuadernillos de anotes en ocasiones que Ausencia de información Permitir registrar la confirmación Realizar la trazabilidad desde
realizo ventas fiados a los clientes caseros, que permita controlar las de pago del repuesto o la
por lo que se desconoce las cantidades ventas realizadas al día, autopartes, además, enviar solicitud de cotización o
cotizadas al día y el desorden y mala semanal, mensual y anual información a facturación. pedido
transcripción, no se entiende la escritura y de las cotizaciones y Permitir hacer seguimiento de la hasta la entrega del producto.
los precios para calcular, en la que produce cotizaciones no pagadas. cotización, pedido. Permitir registrar la
perdidas de ingreso. Permitir registrar datos confirmación
personales del cliente. Además, de pago del repuesto o
enviar información del cliente al autopartes, además, enviar
20

sistema existente en la empresa. información a facturación.


La cotización que el cliente ordena uno o
Proporcionar reportes de gestión Permitir hacer seguimiento de
más productos, el personal de ventas al Se carece de una
e indicadores que permitan la
buscar los productos y los precios, se organización categorizada
evaluar el desempeño del servicio cotización, pedido.
demora en la entrega y los clientes están de los productos y los
realizado. Permitir registrar datos
impacientes la que genera pérdida de precios automatizadas.
personales del cliente.
tiempo e ingresos.
Además,
El personal de ventas calcula los precios de enviar información del cliente
ventas con un aparato que es calculadora y al
Se carece de una sistema existente en la
luego hace la entrega de los productos y
facturación automatizada empresa.
hace el cobro totalizado. Sucede que al
de los productos Proporcionar reportes de
realizar el cobro tiene que entregar el
despachados y el pago que gestión
vuelto haciendo el resto con la calculadora
se asocie con la e indicadores que permitan
para después entregar el vuelto y un recibo
cotización. evaluar el desempeño del
simple en la que detalla los productos, la
cantidad, precios y total de pago. servicio realizado.

La cotización que se solicita al proveedor


por teléfono para solicitar productos e Se carece de un registro
ingredientes, se realiza un informe escrito de información dela
de los productos y los precios consultados cotizaciones solicitadas al
son escritos en un cuadernillo y en proveedor.
ocasiones se pierde.
La recepción de pedidos es cuando el
cliente solicita por teléfono o correo los
Se carece de un registro Realizar un aplicativo web que Registro de los pedidos de los
productos, el personal de ventas en varia
de pedido y detalles de las permita almacenar todos los pedidos clientes.
ocasiones ha perdido los anotes y las
cotizaciones. de los clientes Delivery.
fechas de entregas acordadas para su
entrega.
21

El personal de ventas no revisa en tiempo


Ausencia de información
real el buzón de correo electrónico de la
que permita controlar la
empresa DALIDA SAC, por la que se
atención de las
desconoce la llegada de una solicitud por
recepciones de pedidos.
parte del cliente
La confirmación de pago, transferencia
Se carece de un registro
bancaria y fecha de envío proporcionados
de confirmación de pago
por los clientes por teléfono o email se
que se asocie con la
registra de manera manual en papel por lo
cotización.
que a veces se pierde o se traspapela.
El colaborador no verifica si hay
ingredientes, si los equipos están Se carece de un registro
desocupados. Por la que se desconoce la de ingredientes y equipos
existencia de ingredientes o si están en de producción.
buenas condiciones tanto los equipos.
Las ordenes de elaboración de insumos se La empresa carece de un
realizan de acuerdo a los tipos de registro de tipo de
producción, que insumos se va elaborar y producción que se asocie
las ordenes de pedido por cliente que están con los pedidos del
Crear un aplicativo que ayude a
pendientes, el colaborador tiene los cliente. Y carece de un Crear un registro de insumos,
llevar a cabo la elaboración de los
apuntes en un cuadernillo, pero en varias control de la registro de recetas
productos finales
ocasiones ha perdido los apuntes y programación de
manuales de elaboración. elaboración de insumos.
El administrador se contacta con diferentes
proveedores para realizar pedido de Se carece de un registro
ingredientes y para el mantenimiento de de proveedores de
equipos. Los contactos están escritos en un producción que se asocie
cuadernillo que en muchos casos pierde los con los pedidos e
contactos, causa problemas y lo peor si es ingredientes.
una emergencia.
22

El personal de ventas y el colaborador de Se carece de un registro


producción no verifica si existen los de control de ingredientes
ingredientes, si están en buenas y que le notifique los
condiciones, la fecha de vencimiento y que estados del producto e
productos o ingredientes comprar. ingredientes.
Las órdenes de compra de ingredientes son
Se carece de un registro
escritos a mano en un cuadernillo y de
de orden de compra y
igual manera de la tienda que son los
detalle de compra de los
productos. Pero en varias ocasiones se han
productos e ingredientes.
perdido los apuntes.
El administrador recepciona las órdenes de
compra de ingredientes y los
requerimientos de productos para la tienda, Crear un aplicativo web donde se Crear un registro de compra,
se comunica con el proveedor y consulta almacene los órdenes de compra Registro de detalle compra,
los precios y son escritos en un papel para Ausencia de información donde el proveedor pueda ver los Registro de proveedor
hacer su compra y luego poder hacer el que permita controlar el órdenes de compra
pedido. Pero muchas veces en hora de orden compra de los
hacer su compra con los precios productos e ingredientes.
establecidos son calculados con
dispositivos según la cantidad de cada
producto e ingredientes que al final pierde
el control de cálculo.
El proveedor hace la entrega de los
productos e ingredientes, la facturación es La empresa carece de un
entregada y muchas veces se han perdido registro de factura que se
las facturas de compra. Por lo que afecta a asocie con pedidos e
la empresa en hora de establecer los ingresos de los productos.
precios a los productos.
Tabla 4.- Fundamentación de objetivos
23

5. MARCO TEORICO

5.1. DE INFORMACIÓN DE TECNOLOGÍA APLICADA

5.1.1. APLICACIONES WEB

Una aplicación Web es un conjunto de páginas Web estáticas y dinámicas.

Una página Web estática es aquélla que no cambia cuando un usuario la solicita: el
servidor Web envía la página al navegador Web solicitante sin modificarla. Por el
contrario, el servidor modifica las páginas Web dinámicas antes de enviarlas al navegador
solicitante. La naturaleza cambiante de este tipo de página es la que le da el nombre de
dinámica.

En la figura 5 se ve el proceso de interacción entre el navegador web y el servidor


web y se resumen en 3 pasos:

1. El navegador Web solicita la página estática.

2. El servidor localiza la página.

3. El servidor Web envía la página al navegador solicitante.

Figura 5.-Interacción del navegador web con el servidor web

5.1.2. APLICACIONES MOVILES

Una aplicación móvil o app es una aplicación informática diseñada para ser ejecutada
en teléfonos inteligentes, tabletas y otros dispositivos móviles
24

Figura 6.- Aplicación móvil

5.1.3. BASE DE DATOS Y SUS TIPOS

5.1.3.1. ¿Qué es un Base de Datos?

Una base de datos, es un contenedor que permite almacenar la información de forma


ordenada con diferentes propósitos y usos. Por ejemplo, en una base de datos se puede
almacenar información de diferentes departamentos (Ventas, Recursos Humanos, Inventarios,
entre otros). El almacenamiento de la información por sí sola no tiene un valor, pero si
combinamos o relacionamos la información con diferentes departamentos nos puede dar
valor. Por ejemplo, combinar la información de las ventas del mes de junio del 2014 para el
producto ‘X’ en la zona norte nos da un indicativo del comportamiento de las ventas en un
periodo de tiempo [1].

5.1.3.2. Tipos de Base de Datos

a). - Base de Datos Dinámicas

Lo que significa que la información se modifica en tiempo real, es decir, se insertan, se


eliminan, se modifican y se consultan datos en línea durante la operación del sistema. Un
ejemplo es el sistema de un supermercado donde se van registrando cada uno de los artículos
que el cliente está comprando y a su vez el sistema va actualizando el Inventario.

Figura 7.- Base de datos dinámico


25

b). - Base de Datos Estáticas

Lo que significa que la información en tiempo real no es afectada, es decir, no se


insertan, no se eliminan y tampoco se modifican datos; solo se realizan consultas sobre los
datos ya existentes para el análisis y toma de decisiones. Este tipo de bases de datos son
implementadas en Business Intelligence para mejorar el desempeño de las consultas con
grandes volúmenes de información.

Figura 8.- Base de datos estático

c). - Base de Datos Jerárquicos

En este modelo los datos se organizan en una forma similar a un árbol (visto al
revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no
tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas.
Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que
manejan un gran volumen de información y datos muy compartidos permitiendo crear
estructuras estables y de gran rendimiento. Su desventaja es la redundancia de datos.

d). - Base de Datos de Red

Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es


la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres
(posibilidad no permitida en el modelo jerárquico). Fue una gran mejora con respecto al
modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de
datos; pero, aun así, la dificultad que significa administrar la información en una base de
datos de red ha significado que sea un modelo utilizado en su mayoría por programadores
más que por usuarios finales.

e). - Base de Datos Transaccionales

Son bases de datos cuyo único fin es el envío y recepción de datos a grandes
velocidades, estas bases son muy poco comunes y están dirigidas por lo general al entorno
de análisis de calidad, datos de producción e industrial, es importante entender que su fin
26

único es recolectar y recuperar los datos a la mayor velocidad posible, por lo tanto la
redundancia y duplicación de información no es un problema como con las demás bases
de datos, por lo general para poderlas aprovechar al máximo permiten algún tipo de
conectividad a bases de datos relacionales.

f). - Base de Datos Relacionales

Éste es el modelo utilizado en la actualidad para modelar problemas reales y


administrar datos dinámicamente. En este modelo, el lugar y la forma en que se
almacenen los datos no tienen relevancia (a diferencia de otros modelos como el
jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y
de utilizar para un usuario esporádico de la base de datos. La información puede ser
recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y
poder para administrar la información.

g). - Base de Datos Multidimensionales

Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como
creación de cubos olap Básicamente no se diferencian demasiado de las bases de datos
relacionales (una tabla en una base de datos relacional podría serlo también en una base de
datos multidimensional), la diferencia está más bien a nivel conceptual; en las bases de
datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o
bien representan dimensiones de la tabla, o bien representan métricas que se desean
estudiar.

h). - Bases De Datos Orientadas a Objetos

Este modelo, bastante reciente, y propio de los modelos informáticos enfocado a objetos,
trata de almacenar en la base de datos los objetos completos (estado y comportamiento).

Encapsulación - Propiedad que permite ocultar la información al resto de los objetos,


impidiendo así accesos incorrectos o conflictos.

Herencia- Propiedad a través de la cual los objetos heredan comportamiento dentro de


una jerarquía de clases.

Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a


distintos tipos de objetos.

En bases de datos orientadas a objetos, los usuarios pueden definir operaciones


sobre los datos como parte de la definición de la base de datos. Una operación (llamada
función) se especifica en dos partes. La interfaz (o signatura) de una operación incluye el
nombre de la operación y los tipos de datos de sus argumentos (o parámetros). La
implementación (o método) de la operación se especifica separadamente y puede
modificarse sin afectar la interfaz. Los programas de aplicación de los usuarios pueden
27

operar sobre los datos invocando a dichas operaciones a través de sus nombres y
argumentos, sea cual sea la forma en la que se han implementado. Esto podría
denominarse independencia entre programas y operaciones.

5.1.4. TECNOLOGÍA ORACLE

5.1.4.1. ¿Qué es Oracle?

Oracle es básicamente una herramienta cliente/servidor para la gestión de Bases de


Datos. Es un producto vendido a nivel mundial, aunque la gran potencia que tiene y su
elevado precio hace que sólo se vea en empresas muy grandes y multinacionales, por
norma general. En el desarrollo de páginas web pasa lo mismo: como es un sistema muy
caro no está tan extendido como otras bases de datos, por ejemplo, Access, MySQL, SQL
Server, etc.

Vamos ahora en centrarnos en que es Oracle exactamente y cómo funciona la


programación sobre éste. Oracle como antes he mencionado se basa en la tecnología
cliente/servidor, pues bien, para su utilización primero sería necesario la instalación de la
herramienta servidor (Oracle 8i) y posteriormente podríamos atacar a la base de datos
desde otros equipos con herramientas de desarrollo como Oracle Designer y Oracle
Developer, que son las herramientas básicas de programación sobre Oracle. Para
desarrollar en Oracle utilizamos PL/SQL un lenguaje de 5ª generación, bastante potente
para tratar y gestionar la base de datos.

5.1.4.2. Historia

Oracle surge a finales el año 1970 del nombre de Relational Software a partir de un
estudio sobre SGBD (Sistemas Gestores de Base de Datos) Computer World definió este
estudio como uno de los más completos jamás escritos sobre bases de datos. usaba la
filosofía de las bases de datos relacionales, algo que por aquella época era todavía
desconocido. La tecnología Oracle se encuentra prácticamente en todas las industrias
alrededor del mundo. Oracle es la primera compañía de software que desarrolla e
implementa software para empresas 100 por ciento activado por Internet a través de toda
su línea de productos: base de datos, aplicaciones comerciales y herramientas de
desarrollo de aplicaciones y soporte de decisiones. Oracle garantiza el funcionamiento de
sus bases de datos, que en caso de caídas del servidor compensa económicamente con
cifras cercanas a las 7 cifras.

5.1.4.3. Características de Oracle

Desarrollado sobre Oracle Database, Oracle Content Database ha sido diseñada


para que las organizaciones puedan controlar y gestionar grandes volúmenes de
contenidos no estructurados en un único repositorio con el objetivo de reducir los costes y
los riesgos asociados a la pérdida de información.

 Entorno cliente/servidor.
28

 Gestión de grandes bases de datos.

 Usuarios concurrentes.

 Alto rendimiento en transacciones.

 Sistemas de alta disponibilidad.

 Disponibilidad controlada de los datos de las aplicaciones.

 Adaptación a estándares de la industria, como SQL-92.

 Gestión de la seguridad.

 Autogestión de la integridad de los datos.

 Opción distribuida.

 Portabilidad.

 Compatibilidad.

 Conectabilidad.

 Replicación de entornos.

5.1.4.4. Estructuras de Oracle

Un BD Oracle tiene una estructura física y una estructura lógica:

La estructura física se corresponde a los ficheros del sistema operativo.

La estructura lógica está formada por los tablespace y los objetos de un esquema de BD

a). - Estructura lógica.

Se divide en unidades de almacenamiento lógicas: Tablespace. Cada BD estará


formado por uno o más tablespaces (al menos existe el tablespace SYSTEM catálogo del
sistema) Cada tablespace se corresponde con uno o más ficheros de datos. Objetos: tablas,
vistas, índices asociados a una tabla, clúster, etc.

b). - Estructura física

Una B.D. tiene uno o más ficheros de datos. Estos ficheros son de tamaño fijo y se
establecen en el momento en que se crea la base de datos o en el momento en el que se
crean tablespaces. Los datos del fichero de datos son leídos cuando se necesitan y situados
en una caché de memoria compartida para que el próximo acceso a los mismos sea más
rápido.
29

5.1.5. EL LENGUAJE UNIFICADO DE MODELADO (UML)

5.1.5.1. ¿Qué es UML?

UML es un Lenguaje de Modelado Unificado basado en una notación gráfica la


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

Este lenguaje Nació en 1994 cubriendo los aspectos principales de todos los
métodos de diseño antecesores es el resultado de la unificación de los métodos de
modelado orientados a objetos de Booch, Rumbaugh (OMT: Object Modeling Technique)
y Jacobson (OOSE: Object-Oriented Sotfware Engineering).

UML fue liberada en Enero de 1997 y ha sido utilizado con éxito en sistemas
construidos para toda clase de industrias alrededor del mundo: hospitales, bancos,
comunicaciones, aeronáutica, finanzas, etc.

5.1.5.2. Lenguaje Modelado

UML es un lenguaje para hacer modelos y es independiente de los métodos de


análisis y diseño. Existen diferencias importantes entre un método y un lenguaje de
modelado. Un método es una manera explícita de estructurar el pensamiento y las
acciones de cada individuo. Además, el método le dice al usuario qué hacer, cómo
hacerlo, cuándo hacerlo y por qué hacerlo; mientras que el lenguaje de modelado carece
de estas instrucciones. Los métodos contienen modelos y esos modelos son utilizados para
describir algo y comunicar los resultados del uso del método.

5.1.5.3. Modelo

a). -Vistas: Las vistas muestran diferentes aspectos del sistema modelado. Una vista no es
una gráfica, pero sí una abstracción que consiste en un número de diagramas y todos esos
diagramas juntos muestran una "fotografía" completa del sistema. Las vistas también ligan
el lenguaje de modelado a los métodos o procesos elegidos para el desarrollo. Las
diferentes vistas que UML tiene son:

Vista Use-Case: Una vista que muestra la funcionalidad del sistema como la perciben los
actores externos.

Vista Lógica: Muestra cómo se diseña la funcionalidad dentro del sistema, en términos de
la estructura estática y la conducta dinámica del sistema.

Vista de Componentes: Muestra la organización de los componentes de código.

Vista Concurrente: Muestra la concurrencia en el sistema, direccionando los problemas


con la comunicación y sincronización que están presentes en un sistema concurrente.
30

Vista de Distribución: muestra la distribución del sistema en la arquitectura física con


computadoras y dispositivos llamados nodos.

b). -Diagramas: Los diagramas son las gráficas que describen el contenido de una vista.
UML tiene nueve tipos de diagramas que son utilizados en combinación para proveer
todas las vistas de un sistema: diagramas de caso de uso, de clases, de objetos, de estados,
de secuencia, de colaboración, de actividad, de componentes y de distribución.

c). -Símbolos o Elementos de modelo: Los conceptos utilizados en los diagramas son los
elementos de modelo que representan conceptos comunes orientados a objetos, tales como
clases, objetos y mensajes, y las relaciones entre estos conceptos incluyendo la asociación,
dependencia y generalización. Un elemento de modelo es utilizado en varios diagramas
diferentes, pero siempre tiene el mismo significado y simbología.

d). -Reglas o Mecanismos generales: Proveen comentarios extras, información o


semántica acerca del elemento de modelo; además proveen mecanismos de extensión para
adaptar o extender UML a un método o proceso específico, organización o usuario.

5.1.5.4. FASES DEL DESARROLLO DE UN SISTEMA

Las fases del desarrollo de sistemas que soporta UML son: Análisis de requerimientos,
Análisis, Diseño, Programación y Pruebas.

1).- Análisis de Requerimientos:

UML tiene casos de uso (use-cases) para capturar los requerimientos del cliente. A
través del modelado de casos de uso, los actores externos que tienen interés en el sistema
son modelados con la funcionalidad que ellos requieren del sistema (los casos de uso). Los
actores y los casos de uso son modelados con relaciones y tienen asociaciones entre ellos
o éstas son divididas en jerarquías. Los actores y casos de uso son descritos en un
diagrama use-case. Cada use-case es descrito en texto y especifica los requerimientos del
cliente: lo que él (o ella) espera del sistema sin considerar la funcionalidad que se
implementará. Un análisis de requerimientos puede ser realizado también para procesos de
negocios, no solamente para sistemas de software.

2).- Análisis:

La fase de análisis abarca las abstracciones primarias (clases y objetos) y


mecanismos que están presentes en el dominio del problema. Las clases que se modelan
son identificadas, con sus relaciones y descritas en un diagrama de clases. Las
colaboraciones entre las clases para ejecutar los casos de uso también se consideran en
esta fase a través de los modelos dinámicos en UML. Es importante notar que sólo se
consideran clases que están en el dominio del problema (conceptos del mundo real) y
todavía no se consideran clases que definen detalles y soluciones en el sistema de
software, tales como clases para interfaces de usuario, bases de datos, comunicaciones,
concurrencia, etc.
31

3.- Diseño:

En la fase de diseño, el resultado del análisis es expandido a una solución técnica.


Se agregan nuevas clases que proveen de la infraestructura técnica: interfaces de usuario,
manejo de bases de datos para almacenar objetos en una base de datos, comunicaciones
con otros sistemas, etc. Las clases de dominio del problema del análisis son agregadas en
esta fase. El diseño resulta en especificaciones detalladas para la fase de programación.

4.- Programación:

En esta fase las clases del diseño son convertidas a código en un lenguaje de
programación orientado a objetos. Cuando se crean los modelos de análisis y diseño en
UML, lo más aconsejable es trasladar mentalmente esos modelos a código.

5.- Pruebas:

Normalmente, un sistema es tratado en pruebas de unidades, pruebas de


integración, pruebas de sistema, pruebas de aceptación, etc. Las pruebas de unidades se
realizan a clases individuales o a un grupo de clases y son típicamente ejecutadas por el
programador. Las pruebas de integración integran componentes y clases en orden para
verificar que se ejecutan como se especificó. Las pruebas de sistema ven al sistema como
una "caja negra" y validan que el sistema tenga la funcionalidad final que le usuario final
espera. Las pruebas de aceptación conducidas por el cliente verifican que el sistema
satisface los requerimientos y son similares a las pruebas de sistema.

Los principales beneficios de UML son:

 Mejores tiempos totales de desarrollo (de 50 % o más).

 Modelar sistemas (y no sólo de software) utilizando conceptos orientados a objetos.

 Establecer conceptos y artefactos ejecutables.

 Encaminar el desarrollo del escalamiento en sistemas complejos de misión crítica.

 Crear un lenguaje de modelado utilizado tanto por humanos como por máquinas.

 Mejor soporte a la planeación y al control de proyectos.

 Alta reutilización y minimización de costos.

5.1.6. NORMALIZACIÓN DE BASE DE DATOS (FORMA NORMALES)

5.1.7. ERWIN

Erwin es una herramienta que nos ayuda a diseñar y crear de manera visual una
base de datos (data model). Puede ser usado para detallar un análisis o refinarlo en otro
momento y distribuir en partes la documentación requerida por esta aplicación.
32

ERwin® Data Modeling ofrece un entorno de modelado de datos de colaboración


para administrar datos empresariales con una interfaz intuitiva y gráfica. Las partes
interesadas técnicas y de negocio pueden compartir una vista de la información en
contexto, a través de un portal basado en la web y de herramientas de diseño basadas en el
escritorio, respaldados por un repositorio de modelos de primera clase. Con una vista
centralizada de definiciones de datos clave, puede comprender mejor los datos
corporativos, que se administran de manera más eficiente y rentable.

ERwin Data Modeler ofrece diversas ediciones que ayudan a administrar los datos
empresariales.

La edición Standard Edition ofrece capacidades de diseño y modelado de escritorio que


permiten administrar un entorno complejo de datos mediante una interfaz gráfica simple.

La edición Workgroup Edition está diseñada para el modelado colaborativo realizado


por equipos de modeladores de datos.

La edición Navigator Edition proporciona un acceso de sólo lectura a los modelos de


datos de ERwin.

La edición Community Edition es una herramienta gratuita de modelado de datos de


nivel de entrada que representa un subconjunto del producto ERwin Data Modeler
Standard Edition.

Entornos admitidos:

CA ERwin Data Modeler Standard Edition puede ejecutarse en los siguientes entornos:

XP Windows

 Windows Server 2003 y 2008 SP2


 Windows Vista
 Windows 7
 Windows 8

Los entornos admitidos de bases de datos son los Siguientes:

 DB2

 IDS (Informix)

 MySQL

 ODBC

 Oracle

 Progress
33

 SAS

 Servidor SQL

 Sybase

 Sybase IQ

 Teradata

Funciones Principales de Erwin Data Modeler

1. Agilidad empresarial a través de la colaboración dirigida por modelos

2. Comunicación con el público técnico y empresarial a través de la web o de equipos de


escritorio

3. Reutilización y estándares empresariales

4. Personalización, flexibilidad y automatización

5. Integración y arquitectura abierta

6. Visualización de grandes volúmenes de datos

7. Amplia variedad de funciones de combinación y comparación

8. Control del modelo de datos

9. Compatibilidad con una amplia gama de fuentes de datos, desde bases datos
relacionales o centros de grandes datos hasta la nube

10. Solución líder del mercado y amplia comunidad de usuarios

5.1.8. ADMINISTRACIÓN Y SEGURIDAD BASE DE DATOS

La seguridad de las bases de datos es importante para evitar la fuga de información


de la empresa, además, de lograr una razonable estabilidad de la información y prevenir
futuros accesos no autorizados que interrumpan el flujo normal de la empresa.

5.1.8.1. Seguridad de Accesos

La seguridad de accesos se refiere al nivel de seguridad de los datos almacenados


en la Base de Datos para evitar alguna alteración de la información.

La política de toda empresa con respecto a la seguridad de accesos deberá


contemplar los siguientes ítems:

a). -Lo información almacenada en la Base de Dato deberá recibir un apropiado nivel de
protección.
34

b). -La información se deberá categorizar para así obtener su frecuencia de uso y grado de
protección que deberá tener.

c). -Se deberá crear un sistema para clasificar la información para así definir
apropiadamente su nivel de protección. La siguiente tabla se muestra algunos criterios
para esta clasificación:

Criterios
Criterio Código Descripción
Existencia de datos que son
Datos personales DP personales y que no deben
divulgarse.
Existirán datos que cambien poco
o existe, relativamente, un gran
Variabilidad VP lapso de tiempo antes de que se
lleguen a modificar, y a estos
habrá que darles un tratamiento
especial
Existencia de datos que deben
Confidencialidad CD permanecer secretos en la
organización
Son datos sobre estados
Datos Financieros DF financieros que no deben ser
divulgados.
Tabla 5.- Seguridad de accesos

Los niveles de protección deberán de contemplar las necesidades de la empresa:

Los informes extraídos de la Base de Datos como por ejemplo reportes deberán ser
clasificados según su valor y grado de accesibilidad. Para aplicar la seguridad de accesos,
siga el instructivo PRC03.1-INS01.

 Obtener el diagrama de la Base de Datos, en caso de que no exista proceda a crearlo.


 Aplicar los criterios de seguridad establecidos por la empresa a cada campo de las
tablas de la Base de Datos.
 Clasificar los resultados obtenidos para determinar así el nivel de acceso de la
información

 Proceda a llenar el registro PRC03.1_INS01_REG01.


Fecha de Realización:

Responsable de la revisión:

Base de datos:

Nombre del Administrador de la Base de Datos:

Observaciones generales:
35

Clasificación de la información:

Nivel:

Color:

Significado:

Firma del responsable de la Base de Datos:

Firma de revisión de la Base de Datos:

Firma del aprobador de la Base de Datos:

 Por último, se deberán crear usuarios y roles para que accedan a la información
clasificada, esto se detallará en el capítulo siguiente.

5.1.8.2. Seguridad de Usuarios

La seguridad de usuarios es usada para darles privilegios a los distintos usuarios de


una base de datos. Estos privilegios serán para ejecutar sentencias SQL, alterar el
funcionamiento de la Base de Datos o para alterar la forma de la Base de Datos.

Deberá de existir una política definida para la seguridad de usuarios y accesos de


estos a la Base de Datos.

Se deberá crear horarios de acceso para los diferentes usuarios y así registrar todo
acceso no autorizado o fuera de horario que los usuarios tengan a la Base de Datos.

Se deberán de crear roles para los distintos usuarios de la Base de Datos,


clasificarlos y catalogarlos, para su correcta asignación a los usuarios. Se deberá realizar
las siguientes actividades o procesos:

1.- Crear un usuario: Toda administración de bases de datos requerirá la creación de


usuarios para tener acceso a la información. Para crear un usuario, siga en instructivo
PRC03.2-INS01.

Crear Usuario

Obtener la petición de creación de un usuario, por parte de algún usuario autorizado.

Conectarse a la base de datos por medio del srvmgrl como un administrador de base de
datos del sistema.

Ejecutar la sentencia SQL para crear usuarios:

CREATE USER username IDENTIFIED BY password;

Dónde: username es el nombre del usuario a crear.


36

Password: Es la contraseña de este usuario.

Llenar el registro correspondiente (PRC03.2_INS01_REG01).

Crear Usuario

Solicitante de la creación del usuario:

Motivo de la creación de usuario:

Referencia a la solicitud:

Responsable de la creación del usuario:

Fecha y hora de creación:

Fecha y hora de petición:

Nombre de usuario:

Nombre del Administrador de la Base de Datos:

Observaciones generales:

Firma del responsable de la Base de Datos:

Firma de revisión de la Base de Datos:

Firma del aprobador de la Base de Datos:

2.- Eliminar o inactivar un usuario: Cuando un usuario deja de ser necesario, este
deberá ser inactivado o eliminado, para evitar el acceso a la información dentro de la Base
de Datos. Para eliminar un usuario, siga el instructivo PRC03.2-INS02.

Eliminar Usuario

Obtener la petición de eliminación de un usuario, por parte de algún usuario autorizado.

Conectarse a la base de datos por medio del srvmgrl como un administrador de base de
datos del sistema.

Ejecutar la sentencia SQL para eliminación de usuarios:

DROP USER username [CASCADE];

Dónde: username es el nombre del usuario a eliminar.

CASCADE
37

Elimina todos los objetos creados por el usuario (opcional)

Llenar el registro correspondiente (PRC03.2-INS02_REG01).

Eliminar Usuario

Solicitante de la eliminación del usuario:

Motivo de la eliminación del usuario:

Referencia a la solicitud:

Responsable de la eliminación del usuario:

Fecha y hora de eliminación:

Fecha y hora de petición:

Nombre de usuario eliminado:

Nombre del Administrador de la Base de Datos:

Observaciones generales:

Firma del responsable de la Base de Datos:

Firma de revisión de la Base de Datos:

Firma del aprobador de la Base de Datos:

3.- Modificar un perfil: Para modificar o actualizar la información del perfil seguridad de
un usuario, siga al instructivo PRC03.2-INS03.

Modificar Usuario

Obtener la petición de modificación de un usuario, por parte de algún usuario


autorizado.

Conectarse a la base de datos por medio del srvmgrl como un administrador de base de
datos del sistema.

Ejecutar la sentencia SQL para modificación de usuarios:

ALTER USER username options;

Username: Es el nombre del usuario a modificar.

Options: Son las diferentes opciones que puede llegar a modificar como:

IDENTIFIED BY password [REPLACE Cambiar la contraseña.


old_password]
38

La cuenta es externa y tiene que


IDENTIFIED EXTERNALLY ser validada con el sistema
operativo.

IDENTIFIED GLOBALLY AS external_name La cuenta se autentica globalmente

DEFAULT TABLESPACE tablespace Tablespace por defecto

TEMPORARY TABLESPACE tablespace Tablespace temporal

Asigna un espacio en megabytes o


QUOTA int {K | M} ON tablespace kilobytes en el tablespace por
defecto
Asigna un espacio ilimitado en el
QUOTA UNLIMITED ON tablespace tablespace por defecto

PROFILE profile_name Asignación de un perfil

Hace que el usuario tenga algún


DEFAULT ROLE role [,role,...] rol por defecto

Hace que el usuario tenga todos


DEFAULT ROLE ALL [EXCEPT role,...] los privilegios

Hace que el usuario no tenga rol


DEFAULT ROLE NONE por defecto

Establece que el password del


usuario expirará en forma
PASSWORD EXPIRE automática y, por lo tanto, deberá
cambiarlo al iniciar su próxima
sesión
Permite establecer si la cuenta
ACCOUNT {LOCK|UNLOCK} debe permanecer bloqueada o no.

Tabla 6.- Modificar Usuario

Llenar el registro correspondiente (PRC03.2-INS03_REG01).

Modificar Usuario

Solicitante de la modificación del usuario:

Motivo de la modificación del usuario:

Referencia a la solicitud:
39

Responsable de la modificación del usuario:

Fecha y hora de modificación:

Fecha y hora de petición:

Nombre del usuario modificado:

Nombre del Administrador de la Base de Datos:

Observaciones generales:

Firma del responsable de la Base de Datos:

Firma de revisión de la Base de Datos:

Firma del aprobador de la Base de Datos:

4.- Dar privilegios a un usuario: para que un usuario pueda trabajar sobre diversas tablas,
vistas, procedimientos y demás elementos de la Base de Datos, este deberá de poseer
privilegios para poder tener acceso a estos elementos. Para dar privilegios a un usuario,
siga el instructivo PRC03.2-INS04.

Dar privilegios a un Usuario

Obtener la petición de dar privilegios a un usuario, por parte de algún usuario


autorizado.

Conectarse a la base de datos por medio del srvmgrl como un administrador de base de
datos del sistema.

Ejecutar la sentencia SQL para dar privilegios a usuarios:

grant privileges on object to username;

Username: Es el nombre del usuario al cuál le daremos un privilegio.

Privileges: Distintos privilegios posibles.

Object: Objeto sobre el cual actúan los privilegios.

Llenar el registro correspondiente (PRC03.2_INS04_REG01).

Asignar Privilegios a un Usuario

Solicitante de la asignación de privilegios:

Motivo de la asignación de privilegios:

Referencia a la solicitud:

Responsable de la asignación de privilegios:


40

Fecha y hora de asignación:

Fecha y hora de petición:

Privilegios asignados:

Nombre del Administrador de la Base de Datos:

Observaciones generales:

Firma del responsable de la Base de Datos:

Firma de revisión de la Base de Datos:

Firma del aprobador de la Base de Datos:

5.- Quitar privilegios a un usuario: Con el transcurrir del tiempo, un usuario puede perder
privilegios sobre elementos dentro de la base de datos, y estos deberán ser eliminados de
inmediato. Para quitarle privilegios de acceso al usuario, siga el instructivo PRC03.2-
INS05.

Quitar privilegios a un Usuario

Obtener la petición de quitar privilegios a un usuario, por parte de algún usuario


autorizado.

Conectarse a la base de datos por medio del srvmgrl como un administrador de base de
datos del sistema.

Ejecutar la sentencia sql para quitar privilegios de usuarios:

revoke privileges on object to username;

Username: Es el nombre del usuario al cuál le quitaremos un privilegio.

Privileges: Distintos privilegios posibles, en Oracle existen 81 diferentes privilegios.

Object: Objeto sobre el cual actúan los privilegios.

Llenar el registro correspondiente (PRC03.2_INS05_REG01).

Remover Privilegios a un Usuario

Solicitante de la eliminación de privilegios:

Motivo de la eliminación de privilegios:

Referencia a la solicitud:

Responsable de la eliminación de privilegios:


41

Fecha y hora de eliminación:

Fecha y hora de petición:

Privilegios eliminados:

Nombre del Administrador de la Base de Datos:

Observaciones generales:

Firma del responsable de la Base de Datos:

Firma de revisión de la Base de Datos:

Firma del aprobador de la Base de Datos:

6.- Crear Roles: Al manejar varios usuarios, e incontable número de privilegios que este
puede llegar a tener, es útil manejar roles; así, podremos dar los mismos privilegios a
distintos usuarios que cumplen con el mismo rol. Para crear roles, siga el instructivo
Prc03.2-INSTR06.

7.- Modificar Roles: Un rol también puede ganar o perder privilegios a lo largo de su vida
útil. Para modificar un rol siga el instructivo Prc03.2-INSTR07.

8.- Eliminar Roles o inactivarse: Cuando un rol deja de ser útil, este debe de eliminarse.
Para eliminar un rol siga el instructivo Prc03.2-INSTR08.

9.- Asignar roles a un Usuario o a un role: Una vez creado algún rol, este no será útil hasta
que se le asigne a algún usuario. Para asignar roles a algún usuario, siga el instructivo
Prc03.2-INSTR09

5.1.9. INFORMACIÓN ADICIONAL

6. DESARROLLO DE LA PROPUESTA ELEGIDA

6.1. METODOLOGÍA UML

En este capítulo, abordaremos el modelamiento del negocio el cual nos va a


permitir comprender los principales procesos del negocio que son materia de estudio. Para
lograr el mejor entendimiento de los procesos se realizará el análisis basado en la
metodología RUP y UML.

A continuación, presentamos el modelado del negocio, describiendo las reglas de


negocio, e identificando a los actores del negocio, luego se pasará a identificar los
procesos del negocio así mismo realizar los diagramas de actividades y clases del negocio
y finalmente listar las actividades ha automatizar.

Luego se identifican los requerimientos del sistema, de manera de que se


establecen las principales características a cumplir.
42

Los requerimientos identificados se clasifican principalmente por funcionalidad y


por aspectos relevantes en cuanto a la arquitectura. Además, se identifican los casos de
uso de sistema a desarrollar y los actores que intervienen en cada caso de uso. Asimismo,
se clasifican los casos de uso de sistema identificados para establecer los ciclos de
desarrollo del sistema.

Por último, se define el modelo conceptual de la solución presentada y la


descripción de su estructura de datos.

6.1.1. MODELO DE CASOS DE USOS DE NEGOGIO

6.1.1.1. ACTORES DEL NEGOCIO

ACTOR DE NEGOCIO FUNCION

Es quien realiza la compra de productos a


través de pedidos o venta directa

Es quien provee los ingredientes a la


empresa DALIDA.SAC

Tabla 7.-Especificación de los actores del negocio

6.1.1.2. CASOS DE USO DE NEGOCIO

CASOS DE USO DE NEGOCIO FUNCION

El propósito de este caso de uso de


negocio es realizar la venta de los
productos ya sea por pedido telefónico y
venta directa.

El propósito de este caso de uso es atender


los pedidos de los clientes
43

El propósito de este caso de uso de negocio


es realizar la compra de los ingredientes que
necesita el área de producción.

El propósito de este caso de uso de negocio


es elaborar los productos en el área de
producción

Tabla 8.-Especificación de casos de uso de negocio

6.1.1.3. DIAGRAMA DE CASOS DE USO DEL NEGOCIO

Figura 9.- Diagrama caso de uso negocio

6.1.1.4. MODELO DE ANALISIS DEL NEGOGIO

6.1.1.4.1. TRABAJADORES DEL NEGOGIO

TRABAJADOR DE NEGOCIO ROL


44

Es quien se encarga de registrar las ventas


en la oficina principal.

Es quien se encarga de producir los


productos.

Es quien registra los pedidos y se encarga


de la parte administrativa

Tabla 9.-Especificación de trabajadores del negocio

6.1.1.4.2. ENTIDADES DEL NEGOCIO

ENTIDADES DE NEGOCIO CONTENIDO

Contiene la información de los productos,


precios, ingredientes, modo de preparación.

Contiene la información de los pedidos de


los clientes.

Contiene la información de la venta.

Contiene la información de la compra de


ingredientes y productos
45

Tabla 10.-Especificación de entidades del negocio

6.1.1.4.3. DIAGRAMA DE CLASES DE NEGOCIO

Figura 10.-Diagrama de clases del negocio

6.1.1.5. REALIZACION DE LOS CASOS DE USO DEL NEGOCIO

6.1.1.5.1. ESPECIFICACION DE LOS CASOS DE USO DEL NEGOCIO

6.1.1.5.1.1. CUN: Vender producto

ESPECIFICACION DEL CASO DE USO

 Actores del negocio

AN Cliente

 Propósito

El objetivo principal de este caso de uso de negocio es realizar la venta de los productos
de solicita por el cliente face to face.

 Breve descripción
46

El caso de uso del negocio comienza cuando el Cliente solicita productos de repostería.
El caso de uso finaliza cuando AN Cliente recibe una EN Boleta.

 Flujo de eventos

 Flujo básico

1. El AN Cliente solicita productos de repostería

2. El TN Colaborador de ventas registra los repuestos la venta.

3. El TN Colaborador de ventas informa el precio de venta y solicita el pago.

4. El AN Cliente paga efectivo.

5. El TN Colaborador de ventas registra la venta.

7. El TN Colaborador de ventas entrega al cliente una boleta.

 Flujos alternos

Ninguna

 Precondiciones

Ninguna.

 Poscondiciones

Ninguna

CLASES DE NEGOCIO VENDER PRODUCTO.

Figura 11.-Diagrama clases CUN Vender producto

DIAGRAMA DE ACTIVIDADES
47

Figura 12.- Diagrama actividades CUN Vender producto

6.1.1.5.1.2. CUN: Comprar productos_ingredientes

ESPECIFICACION DEL CASO DE USO

 Actores del negocio

AN Proveedor

 Propósito

El objetivo principal de este caso de uso de negocio es realizar la compra de ingredientes


para la elaboración de productos de repostería.

 Breve descripción

El caso de uso del negocio comienza cuando el TN Administrador realiza un pedido de


compra de productos de repostería. El caso de uso finaliza cuando el AN Proveedor
entrega el pedido de compra EN orden de compra.

 Flujo de eventos
48

 Flujo básico

1. El TN Administrador realiza un pedido de compras de ingredientes de repostería

2. El AN Proveedor entrega los productos del EN orden de compra .

 Flujos alternos

Ninguna

 Precondiciones

Ninguna.

 Poscondiciones

Ninguna

CLASES DE NEGOCIO COMPRAR PRODUCTOS_INGREDIENTES.

Figura 13.-Diagrama clases CUN Comprar producto_ingrediente

DIAGRAMA DE ACTIVIDADES
49

Figura 14.-Diagrama de actividades CUN Comprar producto_ingrediente

6.1.1.5.1.2. CUN: Elaborar producto

ESPECIFICACION DEL CASO DE USO

 Actores del negocio

AN Proveedor

 Propósito

El objetivo principal de este caso de uso de negocio es elaborar los productos de


repostería.

 Breve descripción
50

El caso de uso del negocio comienza cuando el TN Colaborador de producción consulta la


cantidad de productos a elaborar según los pedidos. El caso de uso finaliza cuando el TN
Colaborador de producción hace la entrega por paquete según los pedidos.

 Flujo de eventos

 Flujo básico

1. El TN Colaborador de producción consulta la cantidad de productos a elaborar según


los pedidos.

2. El TN Colaborador de producción calcula la cantidad de ingredientes según la


cantidad de productos, para cada diferente producto.

3. El TN Colaborador de producción realiza la mezcla de los ingredientes.

4. El TN Colaborador de producción ingresa los productos al horno.

5. El TN Colaborador de producción saca los productos y comienza a empaquetar.

 Flujos alternos

Ninguna

 Precondiciones

Ninguna.

 Poscondiciones

CLASES DE NEGOCIO ELABORAR PRODUCTO

Figura 15.-Diagrama de clases CUN Elaborar producto


51

DIAGRAMA DE ACTIVIDADES

Figura 16.- Diagrama actividades CUN Elaborar producto

6.1.2. MODELO DE CASOS DE USO DEL SISTEMA

6.1.2.1. ESPECIFICACIÓN DE LOS ACTORES DEL SISTEMA

ACTORES DESCRIPCION

User_Administrador Es quien se encarga de realizar las compras y


administrar la ventas y compras y producción

User_Cliente online Es quien realiza las compras a nivel online


Pude ser web y telefónico.
52

User_Colaborador de ventas Es quien registra las ventas directas en la


oficina de ventas.

User_Colaborador de producción Es quien consulta los productos a ser


producidos y empaqueta según pedido

Es quien consulta el orden de compra en la


User_Proveedor web.

Tabla 11.-Especificación de los actores del sistema

6.1.2.2. DIAGRAMA DE ACTORES DEL SISTEMA

Figura 17.- Diagrama de actores del sistema

6.1.2.3. DIAGRAMA DE PAQUETES DEL SISTEMA

Figura 18.- Diagrama de paquetes del sistema


53

6.1.2.4. DIAGRAMAS DE CASOS DE USO DEL SISTEMA POR PAQUETE

6.1.2.4.1. DIAGRAMA CUS PAQUETE VENTAS

Figura 19.- Diagrama de CUS PAQUETE VENTAS

6.1.2.4.2. DIAGRAMA CUS PAQUETE COMPRAS

Figura 20.- Diagrama de CUS PAQUETE COMPRAS


54

6.1.2.4.2. DIAGRAMA CUS PAQUETE PRODUCCION

Figura 21.- Diagrama de CUS PAQUETE PRODUCCION

6.1.2.4.3. DIAGRAMA CUS PAQUETE MANTENIMIENTO

Figura 22.- Diagrama de CUS PAQUETE MANTENIMIENTO

6.1.2.4.4. DIAGRAMA CUS PAQUETE REPORTE

Figura 23.- Diagrama de CUS PAQUETE REPORTES


55

6.1.2.4.4. DIAGRAMA CUS PAQUETE SEGURIDAD

Figura 24.- Diagrama de CUS PAQUETE SEGURIDAD


56

6.1.3. MODELO CONCEPTUAL


6.1.3.1. DIAGRAMA DEL MODELO CONCEPTUAL VENTAS

Figura 25.- Modelo conceptual ventas


57

COMPRAS

Figura 26.- Modelo conceptual compras


58

PRODUCCION

Figura 27.- Modelo conceptual producción


59

6.2. NORMALIZACIÓN Y ANORMALIZACION DE LA BASE DE DATOS


NORMALIZACION
Ejemplo de normalización de las tablas trabajador.
Primera forma normal
Tabla trabajador

IDTRABAJADOR FOTO RFC CURP TELEFONO_OFICINA TELEFONO_CASA EMAIL_CORPORATIVO


1 PMH-031297-PM2 PAMH970312HCZMHP11 645676545 987678765

NOMBRES APELLIDO_PATERNO APELLIDO_MATERNO FECNACIEMIENTO DNI FECHA_REGISTRO CELULAR


POWER HUACAÑA LOPEZ 03/12/1997 78332425 03/12/2016 6765456545

Segunda forma normal


La tabla trabajador de divide en dos tablas: trabajador y persona

IDTRABAJADOR FOTO RFC CURP TELEFONO_OFICINA TELEFONO_CASA IDPERSONA


1 PMH-031297-PM2 PAMH970312HCZMHP11 645676545 987678765 1

IDPERSONA NOMBRES APELLIDO_PATERNO APELLIDO_MATERNO FECNACIEMIENTO DNI FECHA_REGISTRO GENERO


1 POWER HUACAÑA LOPEZ 03/12/1997 78332425 03/12/2016

Tercera forma normal


La tabla persona de divide en dos tablas: persona y valor

IDPERSONA NOMBRES APELLIDO_PATERNO APELLIDO_MATERNO FECNACIEMIENTO DNI FECHA_REGISTRO IDVALOR


1 POWER HUACAÑA LOPEZ 03/12/1997 78332425 03/12/2016 1
60

IDIVALOR DESCRIPCION VALOR1 PADREID HIJOID ESTADO


1 GENERO GENERO 1
2 MASCULINO M 1 1
3 FEMENINO F 1 1

ANORMALIZACION
Ejemplo de anormalizacion de las tablas trabajador y clientes quienes comparten atributos comunes y estos atributos comunes forma otra
tabla llamada persona donde están todos los atributos en común de ambas tablas.
IDTRABAJADOR FOTO RFC CURP TELEFONO_OFICINA TELEFONO_CASA IDPERSONA
1 PMH-031297-PM2 PAMH970312HCZMHP11 645676545 987678765 1

IDCLIENTE RUC WEB PROFESION EMPRESA IDPERSONA


1 10234323456 http://corporacionliam.net23.net/ DESARROLLADOR WEB 2

IDPERSONA NOMBRES APELLIDO_PATERNO APELLIDO_MATERNO FECNACIEMIENTO DNI FECHA_REGISTRO GENERO


1 POWER HUACAÑA LOPEZ 03/12/1997 78332425 03/12/2016 MASCULINO
2 BISMARCK UMERES ALATRISTA 16/05/1996 75445779 06/12/2016 MASCULINO

6.3. MODELAMIENTO DE BASE DE DATOS ORACLE


6.3.1. DIAGRAMA DE BASE DE DATOS ORACLE

El modelamiento de la base de datos consta de 3 procesos que especificaremos de manera detallada:

Proceso de ventas

Procesos de compras

Proceso de producción
61

Figura 28.- Diagrama de bd ventas


62

Diagrama compras

Figura 29.- Diagrama de bd compras


63

Diagrama producción

Figura 30.- Diagrama de bd producción


64

Figura 31.- Diagrama General de la base de datos ReposteriaDalida


65

6.3.2. DICCIONARIO DE DATOS

Nombre de la tabla TBL_PERSONA


Contiene la información de los datos de la persona, está asociada
Descripción de la
con la tabla Ubigeo, usuario y valor. Usuario es para autenticarse
tabla
en la aplicación y los permisos
Nombre de la Únic Tipo
Descripción Tipo dato
columna o llave
IdPersona Código identificador de persona NUMERIC SI PK
Nombres Nombres de la persona VARCHAR
Apellido_Paterno Apellido paterno de la persona VARCHAR
Apellido_Materno Apellido materno de la persona VARCHAR
FecNaciemiento Fecha nacimiento de la persona DATE
Num_Documento Número de DNI de la persona VARCHAR
Fecha_Registro Fecha de registro de la persona DATE
Telefono Teléfono de la persona VARCHAR
Celular Celular de la persona VARCHAR
Email Email de la persona VARCHAR
Email2 Email de la persona VARCHAR
Dirección de vivienda de la
Direccion VARCHAR
persona
Dirección de vivienda de la
Direccion2 VARCHAR
persona
Estado de
Estado CHAR(1)
registro(0=inactivo|1=activo)
IdUbigeo Código identificador de Ubigeo NUMERIC FK
IdUsuario Código identificador de Usuario NUMERIC FK
NUMERIC
IdIvalor Código identificador de Valor FK
10
Tabla 12.- Almacenamiento de Personas

Nombre de la
tabla TBL_CLIENTE
Descripción de la Contiene la información de los clientes de la empresa, está asociada
tabla a la tabla persona.
Nombre de la Tipo
columna Descripción Tipo dato Único llave
Código identificador de
IdCliente cliente NUMERIC(10) SI PK
Numero_RUC Numero de RUC del cliente CHAR(11)
Pagina_Web Web del cliente VARCHAR2(70)
Profesion Profesión del cliente VARCHAR2(50)
Nombre de la empresa del
Empresa cliente VARCHAR2(50)
Alguna observación del VARCHAR2(200
Observacion cliente )
IdIvalor Código identificador de NUMERIC(10) FK
66

Valor
Código identificador de
IdIPersona Persona NUMERIC(10) FK
Tabla 13.- Almacenamiento de Clientes

Nombre de la
tabla TBL_TRABAJADOR
Descripción de la Contiene la información de los trabajadores de la empresa, está
tabla asociada a la tabla persona.
Nombre de la Tipo
columna Descripción Tipo dato Único llave
Código identificador del
IdTrabajador trabajador NUMERIC(10) SI PK
Foto Foto del trabajador BLOB
Registro Federal de
RFC Contribuyentes VARCHAR2(15)
Clave Única de Registro de
CURP Población VARCHAR2(20)
Teléfono de oficina del
Telefono_Oficina trabajador VARCHAR2(12)
Teléfono de casa del
Telefono_Casa trabajador VARCHAR2(12)
Email_Corporativ Email corporativo del
o trabajador NUMERIC(80)
Alguna observación del
Observaciones trabajador NUMERIC(250)
Código identificador de
IdPersona Persona NUMERIC(10) FK
Tabla 14.- almacenamiento de Trabajador

Nombre de la tabla TBL_USUARIO


Descripción de la
tabla Contiene información de los datos de Usuario
Nombre de la Únic Tipo
columna Descripción Tipo dato o llave
Código identificador de
IdUsuario usuario NUMERIC(10 SI PK
Generador de código de
Codigo usuario CHAR(6)
Usuarios Usuario único VARCHAR2(40)
Clave Clave para autenticarse VARCHAR2(30)
Fecha de registro de
Fecha_Registro usuario DATE
Estado de
registro(0=inactivo|1=acti
Estado vo) CHAR(1)
Tabla 15.- Almacenamiento de Usuario
67

Nombre de la tabla TB_UBIGEO


Descripcion de la
tabla Contiene informacion de los datos de UBIGEOS
Nombre de la
columna Descripcion Tipo dato Unico Tipo llave
Codigo identificador de
IdUbigeo ubigeo NUMERIC(10) SI PK
Departamento Nombre de Departamento VARCHAR2(100)
Provincia Nombre de Proncia VARCHAR2(100)
Distrito Nombre de Distrito VARCHAR2(100)
Tabla 16.- Almacenamiento de Ubigeo

Nombre de la
tabla TB_VALOR
Descripcion de la
tabla Contiene informacion de los datos de VALOR
Nombre de la Unic
columna Descripcion Tipo dato o Tipo llave
Codigo identificador de
dValor Valor NUMERIC(10) SI PK
Descripcion de Valor.ej.
VARCHAR2(40)
Genero
Descripcion ,
Descripcion de Valor.ej.
VARCHAR2(40)
Genero
Valor1 ,
PadreId identificador de ID genero NUMERIC(10),
HijoId identificador de ID NUMERIC(10),
Estado Activo, Desactivado CHAR(1)
Tabla 17.- Almacenamiento de Valor

Nombre de la
tabla TB_EMPRESA
Descripcion de la
tabla Contiene informacion de los datos de EMPRESA
Nombre de la Unic Tipo
columna Descripcion Tipo dato o llave
IdEmpresa Codigo identificador de Valor NUMERIC(10) SI PK
Descripcion de Valor.ej.
VARCHAR2(160
Genero
Razon_Social ),
Descripcion de Valor.ej.
Ruc Genero CHAR(11)
Fecha_Inscripcion identificador de ID genero DATE
Fecha_Inicio identificador de ID DATE
VARCHAR2(140
Direccion de la empresa
direccion )
68

Telefono Contacto dela empresa VARCHAR2(12)


Fax fax de la empresa VARCHAR2(12)
VARCHAR2(160
url de la empresa
Url )
Logo logo de la empresa BLOB
Estado Activado, Desactivado CHAR(1)
Donde se encuentra la
FK
IdUbigeo empresa distrito NUMERIC(10)
Tabla 18.- Almacenamiento de Empresa

Nombre de la
tabla TB_CARGO
Descripcion de la
tabla Contiene informacion de los datos de Cargo
Nombre de la Unic Tipo
columna Descripcion Tipo dato o llave
IdCargo Codigo identificador de Cargo NUMERIC(10) SI PK
IdUsuario Codigo identificador de usuario NUMERIC(10) FK
Descripcion de Cargo, VARCHAR2(10
descripcion administrador,vendedor 0)
Estado Activado, Desactivado CHAR(1)

Nombre de la
tabla TB_OPCIONES
Descripcion
de la tabla Contiene informacion de los datos de Cargo
Nombre de la Unic Tipo
columna Descripcion Tipo dato o llave
IdCargo Codigo identificador de OPCIONES NUMERIC(10) SI PK
VARCHAR2(7
descripcion de tipo de regitros diarios
descripcion 0)
en que carpeta se encuentar la direcion VARCHAR2(5
RutaPagina de archivos 0)
Estado Activado, Desactivado CHAR(1)
Tabla 19.- Almacenamiento de opciones

Nombre de la
tabla TB_CARGO_OPCIONES
Descripcion de
la tabla Contiene informacion de los datos de CARGO_OPCIONES
Nombre de la Unic Tipo
columna Descripcion Tipo dato o llave
IdCargo_Opcion Codigo identificador de NUMERIC(1
es CARGO_OPCIONES 0) SI PK
Identificador de ID de FOREIGN key NUMERIC(1
IdCargo de Cargo 0) FK
IdOpciones Identificador de ID de FOREIGN key NUMERIC(1 FK
69

de Opciones 0)
Tabla 20.- Almacenamiento de Cargo_opciones

Nombre de la
tabla TB_PROVEEDOR
Descripcion
de la tabla Contiene informacion de los datos de PROVEEDOR
Nombre de la Unic Tipo
columna Descripcion Tipo dato o llave
Codigo identificador de
IdProveedor PROVEEDOR NUMERIC(10) SI PK
Ruc de la empresa registrada en la
Ruc sunat CHAR(11)
VARCHAR2(10
nombre de proveedor
RazonSocial 0)
sector_comerci VARCHAR2(10
a que se dedica proveer a sus clientes
al 0)
VARCHAR2(15
direccion de proveedor
Direccion 0)
VARCHAR2(12
contacto de proveedor
Telefono )
VARCHAR2(60
email de proveedor
Email )
VARCHAR2(10
pagina de proveedor
UrlWeb 0)
Estado Activado, Desactivado CHAR(1)
Donde se encuentra el proveedor en
IdUbigeo que distrito NUMERIC(10)
Tabla 21.- Almacenamiento Proveedor

Nombre de la
tabla TB_CATEGORIA
Descripcion
de la tabla Contiene informacion de los datos de CATEGORIA
Nombre de la Unic Tipo
columna Descripcion Tipo dato o llave
Codigo identificador de
IdProveedor CATEGORIA NUMERIC(10) SI PK
VARCHAR2(100
Nombre de un producto, eje. Pan
Nombre )
VARCHAR2(300
Descripcion de producto
Descripcion )
Estado Activado, Desactivado CHAR(1)
Tabla 22.- Almacenamiento Categoria

Nombre de la
tabla TB_PRESENTACION
Descripcion
de la tabla Contiene informacion de los datos de PRESENTACION
70

Nombre de la Unic Tipo


columna Descripcion Tipo dato o llave
Codigo identificador de
IdPresentacion PRESENTACION NUMERIC(10) SI PK
Descripcion de Presentacion de VARCHAR2(5
Descripcion productos 0)
VARCHAR2(1
kilos ,gramos
Unidad 0)
VARCHAR2(1
simbolo de dekilo KG
Simbolo 0)

Nombre de la tabla TB_PRODUCTOS


Descripcion de la
tabla Contiene informacion de los datos de PRODUCTOS
Nombre de la Unic Tipo
columna Descripcion Tipo dato o llave
Codigo identificador de
IdProducto PRODUCTOS NUMERIC(10) SI PK
CodigoBarra codigo de barra de un producto NUMERIC(13)
nombre de producto VARCHAR2(1
Nombre pa,tortas,etc. 00)
VARCHAR2(1
Descripcion de producto
descripcion 00)
VARCHAR2(2
Cantidad de productos,cajas
Unidad 0)
Imagen imagen de producto BLOB
Estado Activado, Desactivado CHAR(1)
IdCategoria Identificador de categoria ID NUMERIC(10) FK
Tabla 24.- Almacenamiento Productos

Nombre de
la tabla TB_RECETAS
Descripcion
de la tabla Contiene informacion de los datos de RECETAS
Tip
o
Nombre de Unic llav
la columna Descripcion Tipo dato o e
IdReceta Codigo identificador de RECETAS NUMERIC(10) SI PK
VARCHAR2(10
Descripcion de RECETAS
descripcion 0)
Aquí se especifica la cantidad de
Cantidad preparacion de productos NUMERIC (5)
Identificador de PRODUCTO ID,que tipo
IdProducto de prodcuto se va preparar. NUMERIC(10) FK
IdPresentaci
on Identificador de PRESENTACION ID NUMERIC(10) FK
71

Nombre de
la tabla TB_EQUIPOS
Descripcio
n de la
tabla Contiene informacion de los datos de EQUIPOS
Nombre de Unic Tipo
la columna Descripcion Tipo dato o llave
IdEqupipos Codigo identificador de EQUIPOS NUMERIC(10) SI PK
VARCHAR2(100
nombre de marca de maquina
Nombre )
VARCHAR2(100
marca de maquina y sus descripcion
Descripcion )
Capacidad capacidad de horneada de productos VARCHAR2(50)
estado Activado,Descativado CHAR(1)
Tabla 25.- Almacenamiento Equipos

Nombre de la
TB_PEDIDOS
tabla
Descripcion de
Contiene informacion de los datos de PEDIDOS
la tabla
Nombre de la Uni Tipo
Descripcion Tipo dato
columna co llave
NUMERIC(
IdPedido Código identificador de PEDIDOS SI PK
10)
aquí se registra la fecha de pedido del
Fecha_Pedido DATE
cliente
aquí se hacen acuerdo cuando se va
Fecha_Entrega entregar DATE
el producto y la fecha de entrega
VARCHAR
FormaEnvio entrega a domicilio FK
2(50)
VARCHR2(
descripcion 10 tortas de leche FK
100)
NUMERIC(
IdCliente Identificador de cliente ID FK
10)
Identificador de valor, en ahí se
encuentra el padre Id
NUMERIC(
IdValor que tipo de comprobante se va entregar FK
10)
al cliente si es
factura,boleta
aquí se va saber si esta, pagado, crédito, VARCHAR
Estado
anulado 2(20)
aquí se va identificar al cliente en qué NUMERIC(
IdUbigeo FK
distrito vive 10)
Tabla 26.- Almacenamiento Pedidos

Nombre TB_DETALLE_PEDIDOS
72

de la tabla
Descripcio
n de la
tabla Contiene informacion de los datos de DETALLE_PEDIDOS
Tip
Nombre o
de la Unic llav
columna Descripcion Tipo dato o e
IdDetPedi Codigo identificador de
do DETALLE_PEDIDOS NUMERIC(10) SI PK
IdPedido identificador de pedido ID NUMERIC(10) FK
aquí se va identificar que tipo de producto
IdProducto hizo cliente NUMERIC(10) FK
Cantidad cantidad de productos pedidos NUMERIC(10)
aquí se hace descuento por cantidad de NUMERIC(7,2
Descuento pedidos de prodcuto. )
VARCHAR2(2
aquí se va saber si esta, pagado,crédito
Estado 0)
Tabla 27.- Almacenamiento Detalle pedidos

Nombre de
la tabla TB_ELABORACION
Descripcion
de la tabla Contiene informacion de los datos de ELABORACION
Tip
o
Nombre de llav
la columna Descripcion Tipo dato Unico e
IdElaboracio Codigo identificador de
n ELABORACION NUMERIC(10) SI PK
preparacion de producto en VARCHAR2(10
Cantidad agua,azucar,harina,etc. 0)

duracion de cocido de productos eje, 1 45 VARCHAR2(20


Tiempo de cocion de pan )
IdEquipos Identificador de Equipos ID NUMERIC(10) FK
Identificador de recetas que tipos de
IdReceta producto se va preparar NUMERIC(10) FK
IdTrabajador aquí se va identificar el trabajor NUMERIC(10) FK
aquí se va identificar el ID de Detalle
FK
IdDetPedido pedido NUMERIC(10)
Tabla 28.- Almacenamiento Elaboracion

Nombre de
la tabla TB_PRODUCTO_FINAL
Descripcion
de la tabla Contiene informacion de los datos de PRODUCTO_FINAL
Nombre de Unic Tip
la columna Descripcion Tipo dato o o
73

llav
e
IdProducto_f Codigo identificador de NUMERIC(10
inal PRODUCTO_FINAL ) SI PK
VARCHAR2(
Descripcion chocolates,tortas 100)
FecProduccio
n aquí se registra la fecha de producción DATE
VARCHAR2(
torta se hizo con mucho calidad
Observacion 50)
VARCHAR2(
estado producto preparado 20)
aquí se va identificar con el IDVALOR que NUMERIC(10
IdValor tipo de producto se va producir ) FK
Tabla 29.- Almacenamiento Producto final

Nombre de la
tabla TB_DET_PROD_FINAL
Descripcion de
la tabla Contiene informacion de los datos de DET_PROD_FINAL
Nombre de la Unic Tipo
columna Descripcion Tipo dato o llave
IdDetProd_fina Codigo identificador de
l DET_PROD_FINAL NUMERIC(10) SI PK
Cantidad Cantidad de Productos NUMERIC(10)
aquí se registrar cuando se va costar
Precio el producto NUMERIC(7,2)
identificacion de elaboracion y que
IdElaboracion tipo de producto fue elaborado NUMERIC(10) FK
que tipo de producto es, torta
IdProducto galletas NUMERIC(10) FK
Tabla 30.- Almacenamiento Detal_prod_final

Nombre de la
tabla TB_COMPRAS
Descripcion de
la tabla Contiene informacion de los datos de COMPRAS
Tip
o
Nombre de la Unic llav
columna Descripcion Tipo dato o e
NUMERIC(10
Codigo identificador de COMPRAS
IdCompra ) SI PK
num_comproba NUMERIC(10
nte numero de comprobante de compras )
fecha_compra fecha de compra DATE
aquí se va identificar si el comprobante VARCHAR2(
Estado esta cancelado, pendiente pago 20) FK
74

NUMERIC(10
identificador de trabajador ID
IdTrabajador ) FK
NUMERIC(10
Identificador de proveedor ID
IdProveedor ) FK
Tabla 31.- Almacenamiento Compras

Nombre de la
tabla TB_DETALLE_COMPRAS
Descripcion de
la tabla Contiene informacion de los datos de DETALLE_COMPRAS
Nombre de la Unic Tipo
columna Descripcion Tipo dato o llave
IdDetalle_compr Codigo identificador de NUMERIC(10
a DETALLE_COMPRAS ) SI PK
NUMERIC(10
Cantidad cantidad de COMPRAS )
NUMERIC(7.5
precio_Unitario precio de producto )
NUMERIC(7.5
aquí se va ver el subtotal de producto
subtotal )
NUMERIC(7.5
identificador de trabajador ID
Igv )
NUMERIC(7.5
Identificador de proveedor ID
descuento )
NUMERIC(7.5
total_Importe aquí se va saber cuando se va pagar )
NUMERIC(10
FK
IdProducto identificador de prodcuto ID )
NUMERIC(10
IdCompra identificador de compra de productos ) FK
Tabla 32.- Almacenamiento Detalle compras

Nombre de la
tabla TB_DET_INGRESO_PROD_FIN
Descripcion de
la tabla Contiene informacion de los datos de DET_INGRESO_PROD_FIN
Tip
o
Nombre de la Unic llav
columna Descripcion Tipo dato o e
Codigo identificador de NUMERIC(1
IdFinal DET_INGRESO_PROD_FIN 0) SI PK
IdDetProd_fina aquí se va identificar listado de productos NUMERIC(1
l con el ID 0) FK
Tabla 33.- Almacenamiento TB_DET_INGRESO_PROD_FIN

Nombre de la
tabla TB_COMPROBANTE
Descripcion de Contiene informacion de los datos de COMPROBANTE
75

la tabla
Nombre de la Tipo
columna Descripcion Tipo dato Unico llave
Codigo identificador de
IdComprobante Comprobante NUMERIC(10) SI PK
aquí se va registrar la fecha de
Fecha_Emision emision DATE FK
aquí se registra serie con serie de
Serie documento VARCHAR2(20)
Correlativo correlativo de documento NUMERIC(15)
identificador de valor si va ser
IdValor factura o boleta NUMERIC(10) FK
IdTrabajador identificador de trabajador NUMERIC(10) FK
IdCliente identificador de cliente NUMERIC(10) FK
IdPedido identificador de pedido NUMERIC(10) FK
VARCHAR2(100
Estado cancelado, a credito )
Tabla 34.- Almacenamiento Comprobante

Nombre de la
tabla TB_DETALLE_COMPROBANTE
Descripcion de la Contiene informacion de los datos de
tabla DETALLE_COMPROBANTE
Nombre de la Tipo
columna Descripcion Tipo dato Único llave
Codigo identificador de
IdDetaComprobant DETALLE_COMPROBANT
e E NUMERIC(10) SI PK
Precio precio de producto NUMERIC(7,2)
Cantidad cantidad de producto NUMERIC(12)
SubTotal subtotal de compra NUMERIC(7,2)
Igv igv de 18% NUMERIC(7,2)
descuento por compra cantidad
Descuento de productos NUMERIC(7,2)
Total_Importe aquí se va saber cuando pagar NUMERIC(7,2)
identificador de TIPO
FK
IdComprobante comprobante NUMERIC(10)
Tabla 35.- Almacenamiento Detalle comprobante

Nombre de la
tabla TBL_ALMACEN
Descripcion de la
Contiene la informacion de los datos de la almacen
tabla
Nombre de la Tipo
columna Descripcion Tipo dato Unico llave
Código identificador de
IdAlmacen alamacen NUMERIC(10) SI PK
Fecha de registro de la
fecha_ingreso persona DATE
76

Serie serie de documento VARCHAR2(30)


Correlativo correlativo de documento NUMERIC(10)
Igv igv de 18% NUMERIC(5,2)
VARCHAR2(100
Recididas,pendientes
Estado )
IdProducto identificador de procuto NUMERIC(10) FK
IdTrabajador identificador de trabajador NUMERIC(10) FK
identificador de
IdDetalle_compra detlla_compra NUMERIC(10) FK
identificador de producto
IdFinal final NUMERIC(10) FK
IdDetaComprobant identificador de
e detallecompra NUMERIC(10) FK
IdValor Código identificador de Valor NUMERIC(10) FK
Tabla 36.- Almacenamiento almacén

Nombre de la
tabla TBL_DETALLE_ALMACEN
Descripción de la
Contiene la información de los datos de la DETALLE_ALMACEN
tabla
Nombre de la Tipo
columna Descripcion Tipo dato Único llave
IdDetalle_Almace Código identificador de
n DETALLE_ALMACEN NUMERIC(10) SI PK
precio_compra precio de compra de producto NUMERIC(7,2)
Precio_Venta precio de venta de producto NUMERIC(7,2)
stock_incial stock inicial de producto NUMERIC(8)
stock_actual stock actual del producto NUMERIC(8)
Fecha_produccion fecha de producción DATE
identificador de fecha de
fecha_vencimiento vencimiento de producto DATE
IdAlmacen identificador de almacén NUMERIC(10) FK
Tabla 37.- Almacenamiento almacén
77

6.3.3. CREACIÓN DE TABLAS, INDICES, VISTAS, SECUENCIAS

CREATE TABLESPACE REPOSTERIA


DATAFILE 'C:\oraclexe\app\oracle\oradata\XE\REPOSTERIA_01.DBF' SIZE 300M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;

CREATE TABLE UBIGEO(


IdUbigeo NUMERIC(10),
Departamento VARCHAR2(100),
Provincia VARCHAR2(100),
Distrito VARCHAR2(100)
) TABLESPACE REPOSTERIA ;
ALTER TABLE UBIGEO ADD CONSTRAINT PK_UBIGEO PRIMARY KEY (IdUbigeo);

CREATE TABLE VALOR(


IdValor NUMERIC(10),
Descripcion VARCHAR2(40),
Valor1 VARCHAR2(40),
PadreId NUMERIC(10),
HijoId NUMERIC(10),
Estado CHAR(1)
) TABLESPACE REPOSTERIA ;
ALTER TABLE VALOR ADD CONSTRAINT PK_VALOR PRIMARY KEY (IdValor);

CREATE TABLE USUARIO(


IdUsuario NUMERIC(10),
Codigo CHAR(6),
Usuarios VARCHAR2(40),
78

Clave VARCHAR2(30),
Fecha_Registro DATE,
Estado CHAR(1)
) TABLESPACE REPOSTERIA ;
ALTER TABLE USUARIO ADD CONSTRAINT PK_USUARIO PRIMARY KEY (IdUsuario);

CREATE TABLE PERSONA(


IdPersona NUMERIC(10),
Nombres VARCHAR2(100),
Apellido_Paterno VARCHAR2(100),
Apellido_Materno VARCHAR2(100),
Fec_Nacimiento DATE,
Num_Documento VARCHAR2(15),
Fecha_Registro DATE,
Telefono VARCHAR2(10),
Celular VARCHAR(10),
Email VARCHAR2(30),
Email2 VARCHAR2(30),
Direccion VARCHAR2(100),
Direccion2 VARCHAR2(100),
Estado CHAR(1),
IdUbigeo NUMERIC(10),
IdUsuario NUMERIC(10),
IdValor NUMERIC(10)
) TABLESPACE REPOSTERIA ;
ALTER TABLE PERSONA ADD CONSTRAINT PK_PERSONA PRIMARY KEY (IdPersona);
ALTER TABLE PERSONA ADD CONSTRAINT PK_PERSONA_01 FOREIGN KEY(IdUbigeo) REFERENCES UBIGEO;
ALTER TABLE PERSONA ADD CONSTRAINT PK_PERSONA_02 FOREIGN KEY(IdUsuario) REFERENCES USUARIO;
79

ALTER TABLE PERSONA ADD CONSTRAINT PK_PERSONA_03 FOREIGN KEY(IdValor) REFERENCES VALOR;

CREATE TABLE EMPRESA(


IdEmpresa NUMERIC(10),
Razon_Social VARCHAR2(160),
Ruc CHAR(11),
Fecha_Inscripcion DATE,
Fecha_Inicio DATE,
direccion VARCHAR2(140),
Telefono VARCHAR2(12),
Fax VARCHAR2(12),
Url VARCHAR2(160),
Logo BLOB,
Estado CHAR(1),
IdUbigeo NUMERIC(10)
) TABLESPACE REPOSTERIA ;
ALTER TABLE EMPRESA ADD CONSTRAINT PK_EMPRESA PRIMARY KEY (IdEmpresa);
ALTER TABLE EMPRESA ADD CONSTRAINT PK_EMPRESA_01 FOREIGN KEY (IdUbigeo) REFERENCES UBIGEO;

CREATE TABLE CARGO(


IdCargo NUMERIC(10),
IdUsuario NUMERIC(10),
descripcion VARCHAR2(100),
Estado CHAR(1)
) TABLESPACE REPOSTERIA;
ALTER TABLE CARGO ADD CONSTRAINT PK_CARGO PRIMARY KEY (IdCargo);
ALTER TABLE CARGO ADD CONSTRAINT PK_CARGO_01 FOREIGN KEY (IdUsuario) REFERENCES USUARIO;
80

CREATE TABLE OPCIONES(


IdOpciones NUMERIC(10),
Descripcion VARCHAR2(70),
RutaPagina VARCHAR2(50),
Estado CHAR(1)
)TABLESPACE REPOSTERIA ;
ALTER TABLE OPCIONES ADD CONSTRAINT PK_OPCIONES PRIMARY KEY (IdOpciones);

CREATE TABLE CARGO_OPCIONES(


IdCargo_Opciones NUMERIC(10),
IdCargo NUMERIC(10),
IdOpciones NUMERIC(10)
)TABLESPACE REPOSTERIA ;
ALTER TABLE CARGO_OPCIONES ADD CONSTRAINT PK_CARGO_OPCIONES PRIMARY KEY (IdCargo_Opciones);
ALTER TABLE CARGO_OPCIONES ADD CONSTRAINT PK_CARGO_OPCIONES_01 FOREIGN KEY (IdCargo) REFERENCES
CARGO;
ALTER TABLE CARGO_OPCIONES ADD CONSTRAINT PK_CARGO_OPCIONES_02 FOREIGN KEY (IdOpciones)
REFERENCES OPCIONES;

CREATE TABLE PROVEEDOR(


IdProveedor NUMERIC(10),
Ruc CHAR(11),
RazonSocial VARCHAR2(100),
sector_comercial VARCHAR2(100),
Direccion VARCHAR2(150),
Telefono VARCHAR2(12),
Email VARCHAR2(60),
81

UrlWeb VARCHAR2(100),
Estado CHAR(1),
IdUbigeo NUMERIC(10)
) TABLESPACE REPOSTERIA;
ALTER TABLE PROVEEDOR ADD CONSTRAINT PK_PROVEEDOR PRIMARY KEY (IdProveedor);
ALTER TABLE PROVEEDOR ADD CONSTRAINT PK_PROVEEDOR_01 FOREIGN KEY (IdUbigeo) REFERENCES
UBIGEO;

CREATE TABLE TRABAJADOR(


IdTrabajador NUMERIC(10),
Foto BLOB,
RFC VARCHAR2(15),
CURP VARCHAR2(20),
Telefono_Oficina VARCHAR2(12),
Telefono_Casa VARCHAR2(12),
Email_Corporativo VARCHAR2(80),
Observaciones VARCHAR2(250),
IdPersona NUMERIC(10)
) TABLESPACE REPOSTERIA ;
ALTER TABLE TRABAJADOR ADD CONSTRAINT PK_TRABAJADOR PRIMARY KEY (IdTrabajador);
ALTER TABLE TRABAJADOR ADD CONSTRAINT PK_TRABAJADOR_01 FOREIGN KEY(IdPersona) REFERENCES
PERSONA;

CREATE TABLE CLIENTE(


IdCliente NUMERIC(10),
RUC CHAR(11),
Web VARCHAR2(70),
Profesion VARCHAR2(50),
82

Empresa VARCHAR2(40),
Observacion VARCHAR2(200),
IdValor NUMERIC(10),
IdPersona NUMERIC(10)
) TABLESPACE REPOSTERIA;

ALTER TABLE CLIENTE ADD CONSTRAINT PK_CLIENTE PRIMARY KEY (IdCliente);


ALTER TABLE CLIENTE ADD CONSTRAINT PK_CLIENTE_01 FOREIGN KEY (IdValor) REFERENCES VALOR;
ALTER TABLE CLIENTE ADD CONSTRAINT PK_CLIENTE_02 FOREIGN KEY (IdPersona) REFERENCES PERSONA;

CREATE TABLE CATEGORIA(


IdCategoria NUMERIC(10),
Nombre VARCHAR2(100),
descripcion VARCHAR2(350),
Estado CHAR(1)
) TABLESPACE REPOSTERIA;
ALTER TABLE CATEGORIA ADD CONSTRAINT PK_CATEGORIA PRIMARY KEY (IdCategoria);

CREATE TABLE PRESENTACION(


IdPresentacion NUMERIC(10),
Descripcion VARCHAR2(50),
Unidad VARCHAR2(10),
Simbolo VARCHAR2(10)
) TABLESPACE REPOSTERIA;

ALTER TABLE PRESENTACION ADD CONSTRAINT PK_PRESENTACION PRIMARY KEY (IdPresentacion);


83

CREATE TABLE PRODUCTOS(


IdProducto NUMERIC(10),
CodigoBarra NUMERIC(13),
Nombre VARCHAR2(100),
descripcion VARCHAR2(100),
Unidad VARCHAR2(20),
imagen BLOB,
Estado CHAR(1),
IdCategoria NUMERIC(10)
) TABLESPACE REPOSTERIA ;

ALTER TABLE PRODUCTOS ADD CONSTRAINT PK_PRODUCTOS PRIMARY KEY (IdProducto);


ALTER TABLE PRODUCTOS ADD CONSTRAINT PK_PRODUCTOS_01 FOREIGN KEY (IdCategoria) REFERENCES
CATEGORIA;

CREATE TABLE RECETAS(


IdReceta NUMERIC(10),
Descripcion VARCHAR2(100),
Cantidad NUMERIC(5),
IdProducto NUMERIC(10),
IdPresentacion NUMERIC(10)
) TABLESPACE REPOSTERIA ;

ALTER TABLE RECETAS ADD CONSTRAINT PK_RECETAS PRIMARY KEY (IdReceta);


ALTER TABLE RECETAS ADD CONSTRAINT PK_RECETAS_01 FOREIGN KEY (IdProducto) REFERENCES PRODUCTOS;
ALTER TABLE RECETAS ADD CONSTRAINT PK_RECETAS_02 FOREIGN KEY (IdPresentacion) REFERENCES
PRESENTACION;
CREATE TABLE EQUIPOS(
84

IdEquipos NUMERIC(10),
Nombre VARCHAR2(100),
descripcion VARCHAR2(250),
Capacidad VARCHAR2(50),
Estado CHAR(1)
) TABLESPACE REPOSTERIA ;

ALTER TABLE EQUIPOS ADD CONSTRAINT PK_EQUIPOS PRIMARY KEY (IdEquipos);

CREATE TABLE PEDIDOS(


IdPedido NUMERIC(10),
Fecha_Pedido DATE,
Fecha_Entrega DATE,
FormaEnvio VARCHAR2(50),
descripcion VARCHAR2(100),
IdCliente NUMERIC(10),
IdValor NUMERIC(10),
estado VARCHAR2(20)
) TABLESPACE REPOSTERIA ;

ALTER TABLE PEDIDOS ADD CONSTRAINT PK_PEDIDOS PRIMARY KEY (IdPedido);


ALTER TABLE PEDIDOS ADD CONSTRAINT PK_PEDIDOS_01 FOREIGN KEY (IdCliente) REFERENCES CLIENTE;
ALTER TABLE PEDIDOS ADD CONSTRAINT PK_PEDIDOS_02 FOREIGN KEY (IdValor) REFERENCES VALOR;

CREATE TABLE DETALLE_PEDIDOS(


IdDetPedido NUMERIC(10),
IdPedido NUMERIC(10),
85

IdProducto NUMERIC(10),
Cantidad NUMERIC(10),
Descuento NUMERIC(7,2),
estado VARCHAR2(20)
) TABLESPACE REPOSTERIA ;

ALTER TABLE DETALLE_PEDIDOS ADD CONSTRAINT PK_DETALLE_PEDIDOS PRIMARY KEY (IdDetPedido);


ALTER TABLE DETALLE_PEDIDOS ADD CONSTRAINT PK_DETALLE_PEDIDOS_01 FOREIGN KEY (IdPedido)
REFERENCES PEDIDOS;
ALTER TABLE DETALLE_PEDIDOS ADD CONSTRAINT PK_DETALLE_PEDIDOS_02 FOREIGN KEY (IdProducto)
REFERENCES PRODUCTOS;

CREATE TABLE ELABORACION(


IdElaboracion NUMERIC(10),
Cantidad VARCHAR2(100),
Tiempo VARCHAR2(20),
IdEquipos NUMERIC(10),
IdReceta NUMERIC(10),
IdTrabajador NUMERIC(10),
IdDetPedido NUMERIC(10)
) TABLESPACE REPOSTERIA ;

ALTER TABLE ELABORACION ADD CONSTRAINT PK_ELABORACION PRIMARY KEY (IdElaboracion);


ALTER TABLE ELABORACION ADD CONSTRAINT PK_ELABORACION_01 FOREIGN KEY (IdEquipos) REFERENCES
EQUIPOS;
ALTER TABLE ELABORACION ADD CONSTRAINT PK_ELABORACION_02 FOREIGN KEY (IdReceta) REFERENCES
RECETAS;
86

ALTER TABLE ELABORACION ADD CONSTRAINT PK_ELABORACION_03 FOREIGN KEY (IdTrabajador) REFERENCES
TRABAJADOR;
ALTER TABLE ELABORACION ADD CONSTRAINT PK_ELABORACION_04 FOREIGN KEY (IdDetPedido) REFERENCES
DETALLE_PEDIDOS;

CREATE TABLE PRODUCTO_FINAL(


IdProducto_final NUMERIC(10),
Descripcion VARCHAR2(100),
FecProduccion DATE,
Observacion VARCHAR2(50),
estado VARCHAR2(20),
IdValor NUMERIC(10)
) TABLESPACE REPOSTERIA ;

ALTER TABLE PRODUCTO_FINAL ADD CONSTRAINT PK_PRODUCTO_FINAL PRIMARY KEY (IdProducto_final);


ALTER TABLE PRODUCTO_FINAL ADD CONSTRAINT PK_PRODUCTO_FINAL_01 FOREIGN KEY (IdValor) REFERENCES
VALOR;

CREATE TABLE DET_PROD_FINAL(


IdDetProd_final NUMERIC(10),
Cantidad NUMERIC(10),
Precio NUMERIC(7,2),
IdElaboracion NUMERIC(10),
IdProducto NUMERIC(10),
IdProducto_final NUMERIC(10)
) TABLESPACE REPOSTERIA ;
ALTER TABLE DET_PROD_FINAL ADD CONSTRAINT PK_DET_PROD_FINAL PRIMARY KEY (IdDetProd_final);
87

ALTER TABLE DET_PROD_FINAL ADD CONSTRAINT PK_DET_PROD_FINAL_01 FOREIGN KEY (IdElaboracion)


REFERENCES ELABORACION;
ALTER TABLE DET_PROD_FINAL ADD CONSTRAINT PK_DET_PROD_FINAL_02 FOREIGN KEY (IdProducto)
REFERENCES PRODUCTOS;
ALTER TABLE DET_PROD_FINAL ADD CONSTRAINT PK_DET_PROD_FINAL_03 FOREIGN KEY (IdProducto_final)
REFERENCES PRODUCTO_FINAL;

CREATE TABLE COMPRAS(


IdCompra NUMERIC(10),
num_comprobante NUMERIC(10),
fecha_compra DATE,
estado VARCHAR2(20),
IdTrabajador NUMERIC(10),
IdProveedor NUMERIC(10)
)TABLESPACE REPOSTERIA;

ALTER TABLE COMPRAS ADD CONSTRAINT PK_COMPRAS PRIMARY KEY(IdCompra);


ALTER TABLE COMPRAS ADD CONSTRAINT PK_COMPRAS_01 FOREIGN KEY(IdTrabajador) REFERENCES TRABAJADOR;
ALTER TABLE COMPRAS ADD CONSTRAINT PK_COMPRAS_02 FOREIGN KEY(IdProveedor) REFERENCES PROVEEDOR;

CREATE TABLE DETALLE_COMPRAS(


IdDetalle_compra NUMERIC(10),
Cantidad NUMERIC(7,2),
precio_unitario NUMERIC(7,2),
SubTotal NUMERIC(7,2),
Igv NUMERIC(7,2),
Descuento NUMERIC(7,2),
88

Total_Importe NUMERIC(7,2),
IdProducto NUMERIC(10),
IdCompra NUMERIC(10)
) TABLESPACE REPOSTERIA;

ALTER TABLE DETALLE_COMPRAS ADD CONSTRAINT PK_DETALLE_COMPRAS PRIMARY KEY(IdDetalle_compra);


ALTER TABLE DETALLE_COMPRAS ADD CONSTRAINT PK_DETALLE_COMPRAS_01 FOREIGN KEY(IdProducto)
REFERENCES PRODUCTOS;
ALTER TABLE DETALLE_COMPRAS ADD CONSTRAINT PK_DETALLE_COMPRAS_02 FOREIGN KEY(IdCompra)
REFERENCES COMPRAS;

CREATE TABLE DET_INGRESO_PROD_FIN(


IdFinal NUMERIC(10),
IdDetProd_final NUMERIC(10)

) TABLESPACE REPOSTERIA;
ALTER TABLE DET_INGRESO_PROD_FIN ADD CONSTRAINT PK_DET_INGRESO_PROD_FIN PRIMARY KEY(IdFinal);
ALTER TABLE DET_INGRESO_PROD_FIN ADD CONSTRAINT PK_DET_INGRESO_PROD_FIN_02 FOREIGN
KEY(IdDetProd_final) REFERENCES DET_PROD_FINAL;

CREATE TABLE COMPROBANTE(


IdComprobante NUMERIC(10),
Fecha_Emision DATE,
Serie VARCHAR2(20),
Correlativo NUMERIC(15),
IdValor NUMERIC(10),
IdTrabajador NUMERIC(10),
89

IdCliente NUMERIC(10),
IdPedido NUMERIC(10),
Estado VARCHAR2(100)
) TABLESPACE REPOSTERIA;

ALTER TABLE COMPROBANTE ADD CONSTRAINT PK_COMPROBANTE PRIMARY KEY(IdComprobante);


ALTER TABLE COMPROBANTE ADD CONSTRAINT PK_COMPROBANTE_01 FOREIGN KEY (IdValor) REFERENCES
VALOR;
ALTER TABLE COMPROBANTE ADD CONSTRAINT PK_COMPROBANTE_02 FOREIGN KEY (IdTrabajador) REFERENCES
TRABAJADOR;
ALTER TABLE COMPROBANTE ADD CONSTRAINT PK_COMPROBANTE_03 FOREIGN KEY (IdCliente) REFERENCES
CLIENTE;
ALTER TABLE COMPROBANTE ADD CONSTRAINT PK_COMPROBANTE_04 FOREIGN KEY (IdPedido) REFERENCES
PEDIDOS;

CREATE TABLE DETALLE_COMPROBANTE(


IdDetaComprobante NUMERIC(10),
Precio NUMERIC(7,2),
Cantidad NUMERIC(12),
SubTotal NUMERIC(7,2),
Igv NUMERIC(7,2),
Descuento NUMERIC(7,2),
Total_Importe NUMERIC(7,2),
IdComprobante NUMERIC(10)
) TABLESPACE REPOSTERIA;
90

ALTER TABLE DETALLE_COMPROBANTE ADD CONSTRAINT PK_DETALLE_COMPROBANTE PRIMARY KEY


(IdDetaComprobante);
ALTER TABLE DETALLE_COMPROBANTE ADD CONSTRAINT PK_DETALLE_COMPROBANTE_01 FOREIGN KEY
(IdComprobante) REFERENCES COMPROBANTE;

CREATE TABLE ALMACEN(


IdAlmacen NUMERIC(10),
fecha_ingreso DATE,
serie VARCHAR2(30),
correlativo NUMERIC(10),
igv NUMERIC(5,2),
Estado VARCHAR2(100),
IdProducto NUMERIC(10),
IdTrabajador NUMERIC(10),
IdDetalle_compra NUMERIC(10),
IdFinal NUMERIC(10),
IdDetaComprobante NUMERIC(10),
IdValor NUMERIC(10)
) TABLESPACE REPOSTERIA ;

ALTER TABLE ALMACEN ADD CONSTRAINT PK_ALMACEN PRIMARY KEY (IdAlmacen);


ALTER TABLE ALMACEN ADD CONSTRAINT PK_ALMACEN_01 FOREIGN KEY (IdProducto) REFERENCES PRODUCTOS;
ALTER TABLE ALMACEN ADD CONSTRAINT PK_ALMACEN_02 FOREIGN KEY (IdTrabajador) REFERENCES TRABAJADOR;
ALTER TABLE ALMACEN ADD CONSTRAINT PK_ALMACEN_03 FOREIGN KEY (IdDetalle_compra) REFERENCES
DETALLE_COMPRAS;
ALTER TABLE ALMACEN ADD CONSTRAINT PK_ALMACEN_04 FOREIGN KEY (IdFinal) REFERENCES
DET_INGRESO_PROD_FIN;
91

ALTER TABLE ALMACEN ADD CONSTRAINT PK_ALMACEN_05 FOREIGN KEY (IdDetaComprobante) REFERENCES
DETALLE_COMPROBANTE;
ALTER TABLE ALMACEN ADD CONSTRAINT PK_ALMACEN_06 FOREIGN KEY (IdValor) REFERENCES VALOR;

CREATE TABLE DETALLE_ALMACEN(


IdDetalle_Almacen NUMERIC(10),
precio_compra NUMERIC(7,2),
Precio_Venta NUMERIC(7,2),
stock_incial NUMERIC(8),
stock_actual NUMERIC(8),
Fecha_produccion DATE,
fecha_vencimiento DATE,
IdAlmacen NUMERIC(10)
) TABLESPACE REPOSTERIA ;

ALTER TABLE DETALLE_ALMACEN ADD CONSTRAINT PK_DETALLE_ALMACEN PRIMARY KEY


(IdDetalle_Almacen);
ALTER TABLE DETALLE_ALMACEN ADD CONSTRAINT PK_DETALLE_ALMACEN_01 FOREIGN KEY (IdAlmacen)
REFERENCES ALMACEN;

CREATE VIEW VISTA_PEDIDOS AS


SELECT P.IDPERSONA,P.NOMBRES,P.APELLIDO_PATERNO,P.APELLIDO_MATERNO,C.EMPRESA,C.RUC,
PE.FECHA_PEDIDO,PE.FECHA_ENTREGA,PR.NOMBRE,DET_PE.CANTIDAD,DET_PE.PRECIO,DET_PE.INPORTE_TOTAL,V.D
ESCRIPCION AS TIPO_PAGO,DET_PE.ESTADO
FROM PERSONA P INNER JOIN CLIENTE C
ON C.IDPERSONA=P.IDPERSONA INNER JOIN PEDIDOS PE
ON PE.IDCLIENTE=C.IDCLIENTE INNER JOIN DETALLE_PEDIDOS DET_PE
ON DET_PE.IDPEDIDO=PE.IDPEDIDO INNER JOIN PRODUCTOS PR
92

ON DET_PE.IDPRODUCTO=PR.IDPRODUCTO INNER JOIN VALOR V


ON PE.IDVALOR=V.IDVALOR
WHERE V.IDVALOR=11
ORDER BY PE.IDPEDIDO DESC;

6.3.4. CREACION DE PAQUETES, PROCEDIMIENTOS

CREATE OR REPLACE PACKAGE PKPROVEEDOR AS


PROCEDURE INSERTAR_PROVEEDOR(VIDPROVEEDOR NUMBER,VRUC VARCHAR2,VRAZONSOCIAL
VARCHAR2,VSECTOR_COMERCIAL VARCHAR2,VDIRECCION VARCHAR2,VTELEFONO VARCHAR2,VEMAIL
VARCHAR2,VURLWEB VARCHAR2 , VESTADO CHAR,VIDUBIGEO NUMBER);
PROCEDURE ACTUALIZAR_PROVEEDOR(VIDPROVEEDOR NUMBER,VRUC VARCHAR2,VRAZONSOCIAL
VARCHAR2,VSECTOR_COMERCIAL VARCHAR2,VDIRECCION VARCHAR2,VTELEFONO VARCHAR2,VEMAIL
VARCHAR2,VURLWEB VARCHAR2 , VESTADO CHAR,VIDUBIGEO NUMBER);
PROCEDURE ELIMINAR_PROVEEDOR(VIDPROVEEDOR NUMBER );
END PKPROVEEDOR;

CREATE OR REPLACE PACKAGE BODY PKPROVEEDOR AS


PROCEDURE INSERTAR_PROVEEDOR(VIDPROVEEDOR NUMBER,VRUC VARCHAR2,VRAZONSOCIAL
VARCHAR2,VSECTOR_COMERCIAL VARCHAR2,VDIRECCION VARCHAR2,VTELEFONO VARCHAR2,VEMAIL
VARCHAR2,VURLWEB VARCHAR2 , VESTADO CHAR,VIDUBIGEO NUMBER)
IS
BEGIN
INSERT INTO PROVEEDOR VALUES (VIDPROVEEDOR ,VRUC ,VRAZONSOCIAL ,VSECTOR_COMERCIAL ,VDIRECCION
,VTELEFONO,VEMAIL ,VURLWEB , VESTADO,VIDUBIGEO );
COMMIT;
END INSERTAR_PROVEEDOR;
93

PROCEDURE ACTUALIZAR_PROVEEDOR(VIDPROVEEDOR NUMBER,VRUC VARCHAR2,VRAZONSOCIAL


VARCHAR2,VSECTOR_COMERCIAL VARCHAR2,VDIRECCION VARCHAR2,VTELEFONO VARCHAR2,VEMAIL
VARCHAR2,VURLWEB VARCHAR2 , VESTADO CHAR,VIDUBIGEO NUMBER)
IS
BEGIN
UPDATE PROVEEDOR SET RUC = VRUC , RAZONSOCIAL = VRAZONSOCIAL , SECTOR_COMERCIAL =
VSECTOR_COMERCIAL ,DIRECCION = VDIRECCION ,TELEFONO = VTELEFONO,EMAIL = VEMAIL ,URLWEB =VURLWEB
,ESTADO = VESTADO, IDUBIGEO = VIDUBIGEO
WHERE IDPROVEEDOR = VIDPROVEEDOR;
COMMIT;
END ACTUALIZAR_PROVEEDOR;

PROCEDURE ELIMINAR_PROVEEDOR( VIDPROVEEDOR NUMBER )


IS
BEGIN
DELETE FROM PROVEEDOR WHERE IDPROVEEDOR = VIDPROVEEDOR;
COMMIT;
END ELIMINAR_PROVEEDOR;
END PKPROVEEDOR;

CREATE OR REPLACE PACKAGE PKCOMPRAS AS


PROCEDURE INSERTAR_COMPRAS(VIDCOMPRA NUMBER,VNUM_COMPROVANTE NUMBER, VFECHA_COMPRA
DATE,VSECTOR_COMERCIAL VARCHAR2 , VESTADO CHAR,VIDTRABAJADOR NUMBER,VIDPORVEEDOR NUMBER);
PROCEDURE ACTUALIZAR_COMPRAS(VIDCOMPRA NUMBER,VNUM_COMPROVANTE NUMBER , VFECHA_COMPRA
DATE,VSECTOR_COMERCIAL VARCHAR2 , VESTADO CHAR,VIDTRABAJADOR NUMBER,VIDPORVEEDOR NUMBER);
PROCEDURE ELIMINAR_COMPRAS(VIDCOMPRA NUMBER );
END PKCOMPRAS;
94

CREATE OR REPLACE PACKAGE BODY PKCOMPRAS AS


PROCEDURE INSERTAR_COMPRAS(VIDCOMPRA NUMBER,VNUM_COMPROVANTE NUMBER, VFECHA_COMPRA
DATE,VSECTOR_COMERCIAL VARCHAR2 , VESTADO CHAR,VIDTRABAJADOR NUMBER,VIDPORVEEDOR NUMBER)
IS
BEGIN
INSERT INTO COMPRAS VALUES (VIDCOMPRA ,VNUM_COMPROVANTE , VFECHA_COMPRA ,VSECTOR_COMERCIAL
, VESTADO,VIDTRABAJADOR ,VIDPORVEEDOR );
COMMIT;
END INSERTAR_COMPRAS;
PROCEDURE ACTUALIZAR_COMPRAS(VIDCOMPRA NUMBER,VNUM_COMPROVANTE NUMBER , VFECHA_COMPRA
DATE,VSECTOR_COMERCIAL VARCHAR2 , VESTADO CHAR,VIDTRABAJADOR NUMBER,VIDPORVEEDOR NUMBER)
IS
BEGIN
UPDATE COMPRAS SET NUM_COMPROVANTE = VNUM_COMPROVANTE ,FECHA_COMPRA = VFECHA_COMPRA
,SECTOR_COMERCIAL =VSECTOR_COMERCIAL ,ESTADO = VESTADO, IDTRABAJADOR = VIDTRABAJADOR
,IDPORVEEDOR = VIDPORVEEDOR
WHERE IDCOMPRA = VIDCOMPRA;
COMMIT;
END ACTUALIZAR_COMPRAS;

PROCEDURE ELIMINAR_COMPRAS(VIDCOMPRA NUMBER )


IS
BEGIN
DELETE FROM PROVEEDOR WHERE IDCOMPRA = VIDCOMPRA;
COMMIT;
END ELIMINAR_COMPRAS;
END PKCOMPRAS;
95

CREATE OR REPLACE PACKAGE PKPRODUCTOS AS


PROCEDURE INSERTAR_PRODUCTOS(VIDPRODUCTO NUMBER,VCODIGOBARRA NUMBER, VNOMBRE VARCHAR2 ,
VDESCRIPCION VARCHAR2,VIGV NUMBER, VUNIDAD VARCHAR2, VIMAGEN BLOB,VESTADO CHAR,VIDCATEGORIA
NUMBER);
PROCEDURE ACTUALIZAR_PRODUCTOS(VIDPRODUCTO NUMBER,VCODIGOBARRA NUMBER, VNOMBRE VARCHAR2 ,
VDESCRIPCION VARCHAR2,VIGV NUMBER, VUNIDAD VARCHAR2, VIMAGEN BLOB,VESTADO CHAR,VIDCATEGORIA
NUMBER);
PROCEDURE ELIMINAR_PRODUCTOS(VIDPRODUCTO NUMBER );
END PKPRODUCTOS;

CREATE OR REPLACE PACKAGE BODY PKPRODUCTOS AS


PROCEDURE INSERTAR_PRODUCTOS(VIDPRODUCTO NUMBER,VCODIGOBARRA NUMBER, VNOMBRE VARCHAR2 ,
VDESCRIPCION VARCHAR2,VIGV NUMBER, VUNIDAD VARCHAR2, VIMAGEN BLOB,VESTADO CHAR,VIDCATEGORIA
NUMBER)
IS
BEGIN
INSERT INTO PRODUCTOS VALUES (VIDPRODUCTO ,VCODIGOBARRA , VNOMBRE , VDESCRIPCION ,VIGV ,
VUNIDAD , VIMAGEN ,VESTADO ,VIDCATEGORIA );
COMMIT;
END INSERTAR_COMPRAS;
PROCEDURE ACTUALIZAR_PRODUCTOS(VIDPRODUCTO NUMBER,VCODIGOBARRA NUMBER, VNOMBRE VARCHAR2 ,
VDESCRIPCION VARCHAR2,VIGV NUMBER, VUNIDAD VARCHAR2, VIMAGEN BLOB,VESTADO CHAR,VIDCATEGORIA
NUMBER)
IS
BEGIN
UPDATE PRODUCTOS SET CODIGOBARRA = VCODIGOBARRA ,NOMBRE = VNOMBRE ,DESCRIPCION = VDESCRIPCION
,IGV =VIGV , UNIDAD = VUNIDAD ,IMAGEN = VIMAGEN , ESTADO =VESTADO , IDCATEGORIA = VIDCATEGORIA
WHERE IDPRODUCTO = VIDPRODUCTO;
96

COMMIT;
END ACTUALIZAR_PRODUCTOS;

PROCEDURE ELIMINAR_PRODUCTOS(VIDPRODUCTO NUMBER )


IS
BEGIN
DELETE FROM PRODUCTOS WHERE IDPRODUCTO = VIDPRODUCTO;
COMMIT;
END ELIMINAR_PRODUCTOS;
END PKPRODUCTOS;

CREATE OR REPLACE PACKAGE PKDETALLE_COMPRAS AS


PROCEDURE INSERTAR_DETALLE_COMPRAS(VIDDETALLE_COMPRA NUMBER,VCANTIDAD NUMBER,
VPRECIO_UNITARIO NUMBER , VSUBTOTAL NUMBER , VIGV NUMBER, VDESCUENTO NUMBER, VTOTAL_IMPORTE
NUMBER,VIDPRODUCTO NUMBER,VIDCOMPRA NUMBER);
PROCEDURE INSERTAR_DETALLE_COMPRAS(VIDDETALLE_COMPRA NUMBER,VCANTIDAD NUMBER,
VPRECIO_UNITARIO NUMBER , VSUBTOTAL NUMBER , VIGV NUMBER, VDESCUENTO NUMBER, VTOTAL_IMPORTE
NUMBER,VIDPRODUCTO NUMBER,VIDCOMPRA NUMBER);
PROCEDURE ELIMINAR_DETALLE_COMPRAS(VIDDETALLE_COMPRA NUMBER );
END PKVIDDETALLE_COMPRAS;

CREATE OR REPLACE PACKAGE BODY PKDETALLE_COMPRAS AS


PROCEDURE INSERTAR_DETALLE_COMPRAS(VIDDETALLE_COMPRA NUMBER,VCANTIDAD NUMBER,
VPRECIO_UNITARIO NUMBER , VSUBTOTAL NUMBER , VIGV NUMBER, VDESCUENTO NUMBER, VTOTAL_IMPORTE
NUMBER,VIDPRODUCTO NUMBER,VIDCOMPRA NUMBER)
IS
BEGIN
97

INSERT INTO DETALLE_COMPRAS VALUES (VIDDETALLE_COMPRA ,VCANTIDAD , VPRECIO_UNITARIO ,


VSUBTOTAL , VIGV , VDESCUENTO , VTOTAL_IMPORTE ,VIDPRODUCTO ,VIDCOMPRA );
COMMIT;
END INSERTAR_DETALLE_COMPRAS;
PROCEDURE ACTUALIZAR_DETALLE_COMPRAS(VIDDETALLE_COMPRA NUMBER,VCANTIDAD NUMBER,
VPRECIO_UNITARIO NUMBER , VSUBTOTAL NUMBER , VIGV NUMBER, VDESCUENTO NUMBER, VTOTAL_IMPORTE
NUMBER,VIDPRODUCTO NUMBER,VIDCOMPRA NUMBER)
IS
BEGIN
UPDATE DETALLE_COMPRAS SET CANTIDAD = VCANTIDAD , PRECIO_UNITARIO = VPRECIO_UNITARIO ,SUBTOTAL
= VSUBTOTAL ,IGV= VIGV ,DESCUENTO = VDESCUENTO ,TOTAL_IMPORTE = VTOTAL_IMPORTE ,IDPRODUCTO =
VIDPRODUCTO ,IDCOMPRA = VIDCOMPRA
WHERE IDDETALLE_COMPRA = VIDDETALLE_COMPRA ;
COMMIT;
END ACTUALIZAR_DETALLE_COMPRAS;
PROCEDURE ELIMINAR_DETALLE_COMPRAS(VIDDETALLE_COMPRA NUMBER)
IS
BEGIN
DELETE FROM DETALLE_COMPRAS WHERE IDDETALLE_COMPRA = VIDDETALLE_COMPRA ;
COMMIT;
END ELIMINAR_DETALLE_COMPRAS;
END PKDETALLE_COMPRAS;

CREATE OR REPLACE PACKAGE PKALMACEN AS


PROCEDURE INSERTAR_ALMACEN(VIDALMACEN NUMBER,VFECHAINGRESO DATE, VESTADO VARCHAR2,
VIDPRODUCTO NUMBER , VIDTRABAJADOR NUMBER,VIDDETALLE_COMPRA NUMBER, VIDFINAL NUMBER,
VIDDETACOMPROBANTE NUMBER);
98

PROCEDURE ACTUALIZAR_ALMACEN(VIDALMACEN NUMBER,VFECHAINGRESO DATE, VESTADO VARCHAR2,


VIDPRODUCTO NUMBER , VIDTRABAJADOR NUMBER,VIDDETALLE_COMPRA NUMBER, VIDFINAL NUMBER,
VIDDETACOMPROBANTE NUMBER);
PROCEDURE ELIMINAR_ALMACEN(VIDALMACEN NUMBER );
END PKALMACEN;

CREATE OR REPLACE PACKAGE BODY PKALMACEN AS


PROCEDURE INSERTAR_ALMACEN(VIDALMACEN NUMBER,VFECHAINGRESO DATE, VESTADO VARCHAR2,
VIDPRODUCTO NUMBER , VIDTRABAJADOR NUMBER ,VIDDETALLE_COMPRA NUMBER, VIDFINAL NUMBER,
VIDDETACOMPROBANTE NUMBER);
IS
BEGIN
INSERT INTO ALMACEN VALUES (VIDALMACEN ,VFECHAINGRESO , VESTADO , VIDPRODUCTO , VIDTRABAJADOR
,VIDDETALLE_COMPRA , VIDFINAL , VIDDETACOMPROBANTE );
COMMIT;
END INSERTAR_ALMACEN;
PROCEDURE ACTUALIZAR_ALMACEN(VIDALMACEN NUMBER,VFECHAINGRESO DATE, VESTADO VARCHAR2,
VIDPRODUCTO NUMBER , VIDTRABAJADOR NUMBER,VIDDETALLE_COMPRA NUMBER, VIDFINAL NUMBER,
VIDDETACOMPROBANTE NUMBER);
IS
BEGIN
UPDATE ALMACEN SET FECHAINGRESO = VFECHAINGRESO ,ESTADO = VESTADO , IDPRODUCTO = VIDPRODUCTO ,
IDTRABAJADOR = VIDTRABAJADOR , IDDETALLE_COMPRA = VIDDETALLE_COMPRA , = IDFINAL VIDFINAL
,IDDETACOMPROBANTE = VIDDETACOMPROBANTE
WHERE IDALMACEN = VIDALMACEN ;
COMMIT;
END ACTUALIZAR_ALMACEN;
99

PROCEDURE ELIMINAR_ALMACEN(VIDALMACEN NUMBER );


IS
BEGIN
DELETE FROM ALMACEN WHERE IDALMACEN = VIDALMACEN ;
COMMIT;
END ELIMINAR_ALMACEN;
END PKALMACEN;

CREATE OR REPLACE PACKAGE PKDETALLE_ALMACEN AS


PROCEDURE INSERTAR_DETALLE_ALMACEN(VIDDETALLE_ALMACEN NUMBER,VPRECIO_COMPRA NUMBER,
VPRECIO_VENTA NUMBER, VSTOCK_INICIAL NUMBER , VSTOCK_ACTUAL NUMBER,VFECHA_PRODUCCION DATE,
VFECHA_VENCIMIENTO DATE, VIDALMACEN NUMBER);
PROCEDURE ACTUALIZAR_DETALLE_ALMACEN(VIDDETALLE_ALMACEN NUMBER,VPRECIO_COMPRA NUMBER,
VPRECIO_VENTA NUMBER, VSTOCK_INICIAL NUMBER , VSTOCK_ACTUAL NUMBER,VFECHA_PRODUCCION DATE,
VFECHA_VENCIMIENTO DATE, VIDALMACEN NUMBER);
PROCEDURE ELIMINAR_DETALLE_ALMACEN(VIDDETALLE_ALMACEN NUMBER );
END PKDETALLE_ALMACEN;

CREATE OR REPLACE PACKAGE BODY PKDETALLE_ALMACEN AS


PROCEDURE INSERTAR_DETALLE_ALMACEN(VIDDETALLE_ALMACEN NUMBER,VPRECIO_COMPRA NUMBER,
VPRECIO_VENTA NUMBER, VSTOCK_INICIAL NUMBER , VSTOCK_ACTUAL NUMBER,VFECHA_PRODUCCION DATE,
VFECHA_VENCIMIENTO DATE, VIDALMACEN NUMBER);
IS
BEGIN
INSERT INTO DETALLE_ALMACEN VALUES (VIDDETALLE_ALMACEN ,VPRECIO_COMPRA , VPRECIO_VENTA ,
VSTOCK_INICIAL , VSTOCK_ACTUAL ,VFECHA_PRODUCCION , VFECHA_VENCIMIENTO , VIDALMACEN);
COMMIT;
END INSERTAR_DETALLE_COMPRAS;
100

PROCEDURE ACTUALIZAR_DETALLE_ALMACEN(VIDDETALLE_ALMACEN NUMBER,VPRECIO_COMPRA NUMBER,


VPRECIO_VENTA NUMBER, VSTOCK_INICIAL NUMBER , VSTOCK_ACTUAL NUMBER,VFECHA_PRODUCCION DATE,
VFECHA_VENCIMIENTO DATE, VIDALMACEN NUMBER);
IS
BEGIN
UPDATE DETALLE_ALMACEN SET PRECIO_COMPRA = VPRECIO_COMPRA ,PRECIO_VENTA = VPRECIO_VENTA
,STOCK_INICIAL = VSTOCK_INICIAL ,STOCK_ACTUAL = VSTOCK_ACTUAL ,FECHA_PRODUCCION =
VFECHA_PRODUCCION ,FECHA_VENCIMIENTO = VFECHA_VENCIMIENTO ,IDALMACEN = VIDALMACEN
WHERE IDDETALLE_ALMACEN = VIDDETALLE_ALMACEN ;
COMMIT;
END ACTUALIZAR_DETALLE_ALMACEN;
PROCEDURE ELIMINAR_DETALLE_ALMACEN(VIDDETALLE_ALMACEN NUMBER );
IS
BEGIN
DELETE FROM DETALLE_ALMACEN WHERE IDDETALLE_ALMACEN = VIDDETALLE_ALMACEN ;
COMMIT;
END ELIMINAR_DETALLE_ALMACEN;
END PKDETALLE_ALMACEN;

CREATE OR REPLACE PACKAGE PKUSUARIO AS


PROCEDURE INSERTAR_USUARIO(VIDUSUARIO NUMBER,VCODIGO NUMBER, VUSUARIOS NUMBER, VCLAVE
NUMBER ,VFECHA_REGISTRO DATE, VESTADO CHAR);
PROCEDURE ACTUALIZAR_USUARIO(VIDUSUARIO NUMBER,VCODIGO NUMBER, VUSUARIOS NUMBER, VCLAVE
NUMBER ,VFECHA_REGISTRO DATE, VESTADO CHAR);
PROCEDURE ELIMINAR_USUARIO(VIDUSUARIO NUMBER );
END PKUSUARIO;

CREATE OR REPLACE PACKAGE BODY PKUSUARIO AS


101

PROCEDURE INSERTAR_USUARIO(VIDUSUARIO NUMBER,VCODIGO NUMBER, VUSUARIOS NUMBER, VCLAVE


NUMBER ,VFECHA_REGISTRO DATE, VESTADO CHAR);
IS
BEGIN
INSERT INTO USUARIO VALUES (VIDUSUARIO ,VCODIGO , VUSUARIOS, VCLAVE ,VFECHA_REGISTRO , VESTADO );
COMMIT;
END INSERTAR_USUARIO;
PROCEDURE ACTUALIZAR_USUARIO(VIDUSUARIO NUMBER,VCODIGO NUMBER, VUSUARIOS NUMBER, VCLAVE
NUMBER ,VFECHA_REGISTRO DATE, VESTADO CHAR);
IS
BEGIN
UPDATE DETALLE_ALMACEN SET CODIGO = VCODIGO ,USUARIOS = VUSUARIOS, CLAVE = VCLAVE ,
FECHA_REGISTRO = VFECHA_REGISTRO , ESTADO = VESTADO
WHERE IDUSUARIO = VIDUSUARIO;
COMMIT;
END ACTUALIZAR_USUARIO;
PROCEDURE ELIMINAR_USUARIO(VIDUSUARIO NUMBER );
IS
BEGIN
DELETE FROM USUARIO WHERE ID IDUSUARIO = VIDUSUARIO;
COMMIT;
END ELIMINAR_USUARIO;
END PKUSUARIO;

CREATE OR REPLACE PACKAGE PK_VALOR AS


PROCEDURE INSERTAR_VALOR(VIDVALOR NUMBER,VDESCRIPCION VARCHAR2,VVALOR1 VARCHAR2,VPADREID
NUMERIC,VHIJOID NUMERIC,VESTADO CHAR);
FUNCTION OBTENER_CODIGO_VALOR RETURN NUMBER
102

PROCEDURE EDITAR_VALOR(VIDVALOR NUMBER,VDESCRIPCION VARCHAR2,VVALOR1 VARCHAR2,VPADREID


NUMERIC,VHIJOID NUMERIC,VESTADO CHAR);
PROCEDURE ELIMINAR_VALOR(VIDVALOR NUMBER);
PROCEDURE MOSTRAR_VALOR;
END PK_VALOR;
CREATE OR REPLACE PACKAGE BODY PK_VALOR AS
PROCEDURE INSERTAR_VALOR(VIDVALOR NUMBER,VDESCRIPCION VARCHAR2,VVALOR1 VARCHAR2,VPADREID
NUMERIC,VHIJOID NUMERIC,VESTADO CHAR)
IS
BEGIN
INSERT INTO VALOR VALUES(VIDVALOR,VDESCRIPCION,VVALOR1,VPADREID,VHIJOID,VESTADO);
COMMIT;
END INSERTAR_VALOR;
FUNCTION OBTENER_CODIGO_VALOR RETURN NUMBER
IS
VIDVALOR NUMBER;
BEGIN
SELECT MAX(IDVALOR)+1 INTO VIDVALOR FROM VALOR;
RETURN VIDVALOR;
END OBTENER_CODIGO_VALOR;
PROCEDURE EDITAR_VALOR(VIDVALOR NUMBER,VDESCRIPCION VARCHAR2,VVALOR1 VARCHAR2,VPADREID
NUMERIC,VHIJOID NUMERIC,VESTADO CHAR)
IS
BEGIN
UPDATE VALOR SET
DESCRIPCION=VDESCRIPCION,VALOR1=VVALOR1,PADREID=VPADREID,HIJOID=VHIJOID,ESTADO=VESTADO
WHERE IDVALOR=VIDVALOR;
COMMIT;
103

END EDITAR_VALOR;
PROCEDURE ELIMINAR_VALOR(VIDVALOR NUMBER)
IS
BEGIN
DELETE FROM VALOR
WHERE IDVALOR=VIDVALOR;
COMMIT;
END ELIMINAR_VALOR;
PROCEDURE MOSTRAR_VALOR
IS
BEGIN
DECLARE
CURSOR C_VALOR IS
SELECT IDVALOR,DESCRIPCION,VALOR1,PADREID,HIJOID ,ESTADO FROM VALOR;
VIDVALOR NUMBER;
VDESCRIPCION VARCHAR2(40);
VVALOR1 VARCHAR2(40);
VPADREID NUMERIC(10);
VHIJOID NUMERIC(10);
VESTADO CHAR(1);

BEGIN
OPEN C_VALOR;
LOOP
FETCH C_VALOR INTO VIDVALOR,VDESCRIPCION,VVALOR1,VPADREID,VHIJOID,VESTADO;
IF C_VALOR%FOUND THEN
DBMS_OUTPUT.PUT_LINE(VIDVALOR || ' -' || VDESCRIPCION || ' - '|| VVALOR1 || ' - ' || VPADREID|| ' - ' || VHIJOID|| ' - ' ||
VESTADO);
104

ELSE
EXIT;
END IF;
END LOOP;
CLOSE C_VALOR;
END;
END MOSTRAR_VALOR;
END PK_VALOR;

CREATE OR REPLACE PACKAGE PK_CARGO AS


PROCEDURE INSERTAR_CARGO(VIDCARGO NUMBER,VIDUSUARIO NUMBER,VDESCRIPCION VARCHAR2,VVESTADO
CHAR);
FUNCTION OBTENER_CODIGO_CARGO RETURN NUMBER;
PROCEDURE EDITAR_CARGO(VIDCARGO NUMBER,VIDUSUARIO NUMBER,VDESCRIPCION VARCHAR2,VVESTADO
CHAR);
PROCEDURE ELIMINAR_CARGO(VIDCARGO NUMBER);
PROCEDURE MOSTRAR_CARGO;
END PK_CARGO;
CREATE OR REPLACE PACKAGE BODY PK_CARGO AS
PROCEDURE INSERTAR_CARGO(VIDCARGO NUMBER,VIDUSUARIO NUMBER,VDESCRIPCION VARCHAR2,VVESTADO
CHAR)
IS
BEGIN
INSERT INTO CARGO VALUES(VIDCARGO,VIDUSUARIO,VDESCRIPCION,VVESTADO);
COMMIT;
END INSERTAR_CARGO;
FUNCTION OBTENER_CODIGO_CARGO RETURN NUMBER
IS
105

VIDCARGO NUMBER;
BEGIN
SELECT MAX(IDCARGO)+1 INTO VIDCARGO FROM CARGO;
RETURN VIDCARGO;
END OBTENER_CODIGO_CARGO;
-------------------------------------------- EDITAR_CARGO
PROCEDURE EDITAR_CARGO(VIDCARGO NUMBER,VIDUSUARIO NUMBER,VDESCRIPCION VARCHAR2,VVESTADO
CHAR)
IS
BEGIN
UPDATE CARGO SET IDUSUARIO=VIDUSUARIO,DESCRIPCION=VDESCRIPCION,ESTADO=VVESTADO
WHERE IDCARGO=VIDCARGO;
COMMIT;
END EDITAR_CARGO;
---------------------------------------------ELIMINAR
PROCEDURE ELIMINAR_CARGO(VIDCARGO NUMBER)
IS
BEGIN
DELETE FROM CARGO
WHERE IDCARGO=VIDCARGO;
COMMIT;
END ELIMINAR_CARGO;
---------------------------------------------MOSTRAR LISTA DE CARGO
PROCEDURE MOSTRAR_CARGO
IS
BEGIN
DECLARE
CURSOR C_CARGO IS
106

SELECT C.IDCARGO,U.USUARIOS,U.IDUSUARIO,C.DESCRIPCION,C.ESTADO FROM CARGO C INNER JOIN USUARIO U


ON C.IDUSUARIO=U.IDUSUARIO;
VIDCARGO NUMBER;
VUSUARIOS VARCHAR2(40);
VIDUSUARIO NUMBER;
VDESCRIPCION VARCHAR2(100);
VESTADO CHAR(1);
BEGIN
OPEN C_CARGO;
LOOP
FETCH C_CARGO INTO VIDCARGO,VUSUARIOS,VIDUSUARIO,VDESCRIPCION,VESTADO;
IF C_CARGO%FOUND THEN
DBMS_OUTPUT.PUT_LINE(VIDCARGO||' -'||VIDUSUARIO ||' -'||VUSUARIOS || ' - '||VDESCRIPCION ||' - '||VESTADO );
ELSE
EXIT;
END IF;
END LOOP;
CLOSE C_CARGO;
END;
END MOSTRAR_CARGO;
END PK_CARGO;

CREATE OR REPLACE PACKAGE PK_OPCIONES AS


PROCEDURE INSERTAR_OPCIONES(VIDOPCIONES NUMBER,VDESCRIPCION VARCHAR2,VRUTAPAGINA
VARCHAR2,VVESTADO CHAR);
FUNCTION OBTENER_CODIGO_OPCIONES RETURN NUMBER;
PROCEDURE EDITAR_OPCIONES(VIDOPCIONES NUMBER,VDESCRIPCION VARCHAR2,VRUTAPAGINA
VARCHAR2,VVESTADO CHAR);
107

PROCEDURE ELIMINAR_OPCIONES(VIDOPCIONES NUMBER);


PROCEDURE MOSTRAR_OPCIONES;
END PK_OPCIONES;

CREATE OR REPLACE PACKAGE BODY PK_OPCIONES AS


PROCEDURE INSERTAR_OPCIONES(VIDOPCIONES NUMBER,VDESCRIPCION VARCHAR2,VRUTAPAGINA
VARCHAR2,VVESTADO CHAR)
IS
BEGIN
INSERT INTO OPCIONES VALUES(VIDOPCIONES,VDESCRIPCION,VRUTAPAGINA,VVESTADO);
COMMIT;
END INSERTAR_OPCIONES;
FUNCTION OBTENER_CODIGO_OPCIONES RETURN NUMBER
IS
VIDOPCIONES NUMBER;
BEGIN
SELECT MAX(IDOPCIONES)+1 INTO VIDOPCIONES FROM OPCIONES;
RETURN VIDOPCIONES;
END OBTENER_CODIGO_OPCIONES;
-------------------------------------------- EDITAR_OPCIONES
PROCEDURE EDITAR_OPCIONES(VIDOPCIONES NUMBER,VDESCRIPCION VARCHAR2,VRUTAPAGINA
VARCHAR2,VVESTADO CHAR)
IS
BEGIN
UPDATE OPCIONES SET DESCRIPCION=VDESCRIPCION,RUTAPAGINA=VRUTAPAGINA,ESTADO=VVESTADO
WHERE IDOPCIONES=VIDOPCIONES;
COMMIT;
END EDITAR_OPCIONES;
108

---------------------------------------------ELIMINAR
PROCEDURE ELIMINAR_OPCIONES(VIDOPCIONES NUMBER)
IS
BEGIN
DELETE FROM OPCIONES
WHERE IDOPCIONES=VIDOPCIONES;
COMMIT;
END ELIMINAR_OPCIONES;
---------------------------------------------MOSTRAR LISTA DE OPCIONES
PROCEDURE MOSTRAR_OPCIONES
IS
BEGIN
DECLARE
CURSOR C_OPCIONES IS
SELECT IDOPCIONES,DESCRIPCION,RUTAPAGINA,ESTADO FROM OPCIONES;
VIDOPCIONES NUMBER;
VDESCRIPCION VARCHAR2(70);
VRUTAPAGINA VARCHAR2(50);
VESTADO CHAR(1);
BEGIN
OPEN C_OPCIONES;
LOOP
FETCH C_OPCIONES INTO VIDOPCIONES,VDESCRIPCION,VRUTAPAGINA,VESTADO;
IF C_OPCIONES%FOUND THEN
DBMS_OUTPUT.PUT_LINE(VIDOPCIONES ||' -'||VDESCRIPCION || ' -'||VRUTAPAGINA || ' - '||VESTADO);
ELSE
EXIT;
END IF;
109

END LOOP;
CLOSE C_OPCIONES;
END;
END MOSTRAR_OPCIONES;
END PK_OPCIONES;

CREATE OR REPLACE PACKAGE PK_CARGO_OPCIONES AS


PROCEDURE MOSTRAR_CARGO_OPCIONES;
END PK_CARGO_OPCIONES;
CREATE OR REPLACE PACKAGE BODY PK_CARGO_OPCIONES AS
PROCEDURE MOSTRAR_CARGO_OPCIONES
IS
BEGIN
DECLARE
CURSOR C_CARGO_OPCIONES IS
SELECT IDCARGO_OPCIONES,IDCARGO,IDOPCIONES FROM CARGO_OPCIONES;
VIDCARGO_OPCIONES NUMBER;
VIDCARGO NUMBER;
VIDOPCIONES NUMBER;
BEGIN
OPEN C_CARGO_OPCIONES;
LOOP
FETCH C_CARGO_OPCIONES INTO VIDCARGO_OPCIONES,VIDCARGO,VIDOPCIONES;
IF C_CARGO_OPCIONES%FOUND THEN
DBMS_OUTPUT.PUT_LINE(VIDCARGO_OPCIONES ||' -'||VIDCARGO || ' -'||VIDOPCIONES);
ELSE
EXIT;
END IF;
110

END LOOP;
CLOSE C_CARGO_OPCIONES;
END;
END MOSTRAR_CARGO_OPCIONES;
END PK_CARGO_OPCIONES;

CREATE OR REPLACE PACKAGE PK_CATEGORIA AS


PROCEDURE INSERTAR_CATEGORIA(VIDCATEGORIA NUMBER,VNOMBRE VARCHAR2,VDESCRIPCION
VARCHAR2,VVESTADO CHAR);
FUNCTION OBTENER_CODIGO_CATEGORIA RETURN NUMBER;
PROCEDURE EDITAR_CATEGORIA (VIDCATEGORIA NUMBER,VNOMBRE VARCHAR2,VDESCRIPCION
VARCHAR2,VVESTADO CHAR);
PROCEDURE ELIMINAR_CATEGORIA (VIDCATEGORIA NUMBER);
PROCEDURE MOSTRAR_CATEGORIA;
END PK_CATEGORIA;

CREATE OR REPLACE PACKAGE BODY PK_CATEGORIA AS


PROCEDURE INSERTAR_CATEGORIA (VIDCATEGORIA NUMBER,VNOMBRE VARCHAR2,VDESCRIPCION
VARCHAR2,VVESTADO CHAR)
IS
BEGIN
INSERT INTO CATEGORIA VALUES(VIDCATEGORIA,VNOMBRE,VDESCRIPCION,VVESTADO);
COMMIT;
END INSERTAR_CATEGORIA ;
FUNCTION OBTENER_CODIGO_CATEGORIA RETURN NUMBER
IS
VIDCATEGORIA NUMBER;
BEGIN
111

SELECT MAX(IDCATEGORIA)+1 INTO VIDCATEGORIA FROM CATEGORIA;


RETURN VIDCATEGORIA;
END OBTENER_CODIGO_CATEGORIA ;
PROCEDURE EDITAR_CATEGORIA (VIDCATEGORIA NUMBER,VNOMBRE VARCHAR2,VDESCRIPCION
VARCHAR2,VVESTADO CHAR)
IS
BEGIN
UPDATE CATEGORIA SET NOMBRE=VNOMBRE,DESCRIPCION=VDESCRIPCION,ESTADO=VVESTADO
WHERE IDCATEGORIA=VIDCATEGORIA;
COMMIT;
END EDITAR_CATEGORIA ;
---------------------------------------------ELIMINAR
PROCEDURE ELIMINAR_CATEGORIA (VIDCATEGORIA NUMBER)
IS
BEGIN
DELETE FROM CATEGORIA
WHERE IDCATEGORIA=VIDCATEGORIA;
COMMIT;
END ELIMINAR_CATEGORIA;
PROCEDURE MOSTRAR_CATEGORIA
IS
BEGIN
DECLARE
CURSOR C_CATEGORIA IS
SELECT IDCATEGORIA,NOMBRE,DESCRIPCION,ESTADO FROM CATEGORIA ;
VIDCATEGORIA NUMBER;
VNOMBRE VARCHAR2(100);
VDESCRIPCION VARCHAR2(350);
112

VESTADO CHAR(1);
BEGIN
OPEN C_CATEGORIA ;
LOOP
FETCH C_CATEGORIA INTO VIDCATEGORIA,VNOMBRE,VDESCRIPCION,VESTADO;
IF C_CATEGORIA%FOUND THEN
DBMS_OUTPUT.PUT_LINE(VIDCATEGORIA ||' -'||VNOMBRE || ' -'||VDESCRIPCION || ' - '||VESTADO);
ELSE
EXIT;
END IF;
END LOOP;
CLOSE C_CATEGORIA ;
END;
END MOSTRAR_CATEGORIA ;
END PK_CATEGORIA ;

CREATE OR REPLACE PACKAGE PK_PRESENTACION AS


PROCEDURE INSERTAR_PRESENTACION(VIDPRESENTACION NUMBER,VDESCRIPCION VARCHAR2,VUNIDAD
VARCHAR2,VSIMBOLO VARCHAR2);
FUNCTION OBTENER_CODIGO_PRESENTACION RETURN NUMBER;
PROCEDURE EDITAR_PRESENTACION(VIDPRESENTACION NUMBER,VDESCRIPCION VARCHAR2,VUNIDAD
VARCHAR2,VSIMBOLO VARCHAR2);
PROCEDURE ELIMINAR_PRESENTACION (VIDPRESENTACION NUMBER);
PROCEDURE MOSTRAR_PRESENTACION;
END PK_PRESENTACION;

CREATE OR REPLACE PACKAGE BODY PK_PRESENTACION AS


113

PROCEDURE INSERTAR_PRESENTACION (VIDPRESENTACION NUMBER,VDESCRIPCION VARCHAR2,VUNIDAD


VARCHAR2,VSIMBOLO VARCHAR2)
IS
BEGIN
INSERT INTO PRESENTACION VALUES(VIDPRESENTACION,VDESCRIPCION,VUNIDAD,VSIMBOLO);
COMMIT;
END INSERTAR_PRESENTACION ;
FUNCTION OBTENER_CODIGO_PRESENTACION RETURN NUMBER
IS
VIDPRESENTACION NUMBER;
BEGIN
SELECT MAX(IDPRESENTACION)+1 INTO VIDPRESENTACION FROM PRESENTACION;
RETURN VIDPRESENTACION;
END OBTENER_CODIGO_PRESENTACION;
-------------------------------------------- EDITAR_CARGO
PROCEDURE EDITAR_PRESENTACION (VIDPRESENTACION NUMBER,VDESCRIPCION VARCHAR2,VUNIDAD
VARCHAR2,VSIMBOLO VARCHAR2)
IS
BEGIN
UPDATE PRESENTACION SET DESCRIPCION=VDESCRIPCION,UNIDAD=VUNIDAD,SIMBOLO=VSIMBOLO
WHERE IDPRESENTACION=VIDPRESENTACION;
COMMIT;
END EDITAR_PRESENTACION ;
---------------------------------------------ELIMINAR
PROCEDURE ELIMINAR_PRESENTACION (VIDPRESENTACION NUMBER)
IS
BEGIN
DELETE FROM PRESENTACION
114

WHERE IDPRESENTACION=VIDPRESENTACION;
COMMIT;
END ELIMINAR_PRESENTACION;
---------------------------------------------MOSTRAR LISTA DE OPCIONES
PROCEDURE MOSTRAR_PRESENTACION
IS
BEGIN
DECLARE
CURSOR C_PRESENTACION IS
SELECT IDPRESENTACION,DESCRIPCION,UNIDAD,SIMBOLO FROM PRESENTACION ;
VIDPRESENTACION NUMBER;
VDESCRIPCION VARCHAR2(50);
VUNIDAD VARCHAR2(10);
VSIMBOLO VARCHAR2(10);
BEGIN
OPEN C_PRESENTACION ;
LOOP
FETCH C_PRESENTACION INTO VIDPRESENTACION,VDESCRIPCION,VUNIDAD,VSIMBOLO;
IF C_PRESENTACION%FOUND THEN
DBMS_OUTPUT.PUT_LINE(VIDPRESENTACION ||' -'||VDESCRIPCION || ' -'||VUNIDAD || ' - '||VSIMBOLO);
ELSE
EXIT;
END IF;
END LOOP;
CLOSE C_PRESENTACION ;
END;
END MOSTRAR_PRESENTACION ;
END PK_PRESENTACION ;
115

CREATE OR REPLACE PACKAGE PK_RECETAS AS


PROCEDURE INSERTAR_RECETAS(VIDRECETA NUMBER,VDESCRIPCION VARCHAR2,VCANTIDAD
NUMERIC,VIDPRODUCTO NUMERIC,VIDPRESENTACION NUMERIC);
FUNCTION OBTENER_CODIGO_RECETAS RETURN NUMBER;
PROCEDURE EDITAR_RECETAS(VIDRECETA NUMBER,VDESCRIPCION VARCHAR2,VCANTIDAD
NUMERIC,VIDPRODUCTO NUMERIC,VIDPRESENTACION NUMERIC);
PROCEDURE ELIMINAR_RECETAS(VIDRECETA NUMBER);
PROCEDURE MOSTRAR_RECETAS;
END PK_RECETAS;

CREATE OR REPLACE PACKAGE BODY PK_RECETAS AS


PROCEDURE INSERTAR_RECETAS (VIDRECETA NUMBER,VDESCRIPCION VARCHAR2,VCANTIDAD
NUMERIC,VIDPRODUCTO NUMERIC,VIDPRESENTACION NUMERIC)
IS
BEGIN
INSERT INTO RECETAS VALUES(VIDRECETA,VDESCRIPCION ,VCANTIDAD,VIDPRODUCTO,VIDPRESENTACION);
COMMIT;
END INSERTAR_RECETAS ;
FUNCTION OBTENER_CODIGO_RECETAS RETURN NUMBER
IS
VIDRECETA NUMBER;
BEGIN
SELECT MAX(IDRECETA)+1 INTO VIDRECETA FROM RECETAS;
RETURN VIDRECETA;
END OBTENER_CODIGO_RECETAS;
PROCEDURE EDITAR_RECETAS(VIDRECETA NUMBER,VDESCRIPCION VARCHAR2,VCANTIDAD
NUMERIC,VIDPRODUCTO NUMERIC,VIDPRESENTACION NUMERIC)
116

IS
BEGIN
UPDATE RECETAS SET
DESCRIPCION=VDESCRIPCION,CANTIDAD=VCANTIDAD,IDPRODUCTO=VIDPRODUCTO,IDPRESENTACION=VIDPRESEN
TACION
WHERE IDRECETA=VIDRECETA;
COMMIT;
END EDITAR_RECETAS ;
PROCEDURE ELIMINAR_RECETAS (VIDRECETA NUMBER)
IS
BEGIN
DELETE FROM RECETAS
WHERE IDRECETA=VIDRECETA;
COMMIT;
END ELIMINAR_RECETAS;
---------------------------------------------MOSTRAR LISTA DE OPCIONES
PROCEDURE MOSTRAR_RECETAS
IS
BEGIN
DECLARE
CURSOR C_RECETAS IS
SELECT IDRECETA,DESCRIPCION,CANTIDAD,IDPRODUCTO,IDPRESENTACION FROM RECETAS ;
VIDRECETA NUMBER;
VDESCRIPCION VARCHAR2(100);
VCANTIDAD NUMERIC(5);
VIDPRODUCTO NUMERIC(10);
VIDPRESENTACION NUMERIC(10);
BEGIN
117

OPEN C_RECETAS ;
LOOP
FETCH C_RECETAS INTO VIDRECETA,VDESCRIPCION,VCANTIDAD,VIDPRODUCTO,VIDPRESENTACION;
IF C_RECETAS%FOUND THEN
DBMS_OUTPUT.PUT_LINE(VIDRECETA ||' -'||VDESCRIPCION ||' -'||VCANTIDAD ||' - '||VIDPRODUCTO||' -
'||VIDPRESENTACION);
ELSE
EXIT;
END IF;
END LOOP;
CLOSE C_RECETAS ;
END;
END MOSTRAR_RECETAS ;
END PK_RECETAS;

CREATE OR REPLACE PACKAGE PK_COMPROBANTE AS


PROCEDURE INSERTAR_COMPROBANTE(VIDCOMPROBANTE NUMBER,VFECHA_EMISION DATE,SERIE
VARCHAR2,VCORRELATIVO NUMERIC,VIDVALOR NUMERIC,VIDTRABAJADOR NUMERIC,VIDCLIENTE
NUMERIC,VIDPEDIDO NUMERIC,VESTADO VARCHAR2);
FUNCTION OBTENER_CODIGO_COMPROBANTE RETURN NUMBER;
PROCEDURE ELIMINAR_COMPROBANTE(VIDCOMPROBANTE NUMBER);
PROCEDURE MOSTRAR_COMPROBANTE;
END PK_COMPROBANTE;

CREATE OR REPLACE PACKAGE BODY PK_COMPROBANTE AS


PROCEDURE INSERTAR_COMPROBANTE (VIDCOMPROBANTE NUMBER,VFECHA_EMISION DATE,SERIE
VARCHAR2,VCORRELATIVO NUMERIC,VIDVALOR NUMERIC,VIDTRABAJADOR NUMERIC,VIDCLIENTE
NUMERIC,VIDPEDIDO NUMERIC,VESTADO VARCHAR2)
118

IS
BEGIN
INSERT INTO COMPROBANTE
VALUES(VIDCOMPROBANTE,VFECHA_EMISION,SERIE,VCORRELATIVO,VIDVALOR,VIDTRABAJADOR,VIDCLIENTE,VID
PEDIDO,VESTADO);
COMMIT;
END INSERTAR_COMPROBANTE;
FUNCTION OBTENER_CODIGO_COMPROBANTE RETURN NUMBER
IS
VIDCOMPROBANTE NUMBER;
BEGIN
SELECT MAX(IDCOMPROBANTE)+1 INTO VIDCOMPROBANTE FROM COMPROBANTE;
RETURN VIDCOMPROBANTE;
END OBTENER_CODIGO_COMPROBANTE;
PROCEDURE ELIMINAR_COMPROBANTE (VIDCOMPROBANTE NUMBER)
IS
BEGIN
DELETE FROM COMPROBANTE
WHERE IDCOMPROBANTE=VIDCOMPROBANTE;
COMMIT;
END ELIMINAR_COMPROBANTE;
---------------------------------------------MOSTRAR LISTA DE COMPROBANTE
PROCEDURE MOSTRAR_COMPROBANTE
IS
BEGIN
DECLARE
CURSOR C_COMPROBANTE IS
119

SELECT
IDCOMPROBANTE,FECHA_EMISION,SERIE,CORRELATIVO,IDVALOR,IDTRABAJADOR,IDCLIENTE,IDPEDIDO,ESTADO
FROM COMPROBANTE ;
VIDCOMPROBANTE NUMBER;
VFECHA_EMISION DATE;
VSERIE VARCHAR2(20);
VCORRELATIVO NUMERIC(15);
VIDVALOR NUMERIC(10);
VIDTRABAJADOR NUMERIC(10);
VIDCLIENTE NUMERIC(10);
VIDPEDIDO NUMERIC(10);
VESTADO VARCHAR2(100);
BEGIN
OPEN C_COMPROBANTE ;
LOOP
FETCH C_COMPROBANTE INTO
VIDCOMPROBANTE,VFECHA_EMISION,VSERIE,VCORRELATIVO,VIDVALOR,VIDTRABAJADOR,VIDCLIENTE,VIDPEDIDO
,VESTADO;
IF C_COMPROBANTE%FOUND THEN
DBMS_OUTPUT.PUT_LINE(VIDCOMPROBANTE ||' -'||VFECHA_EMISION ||' -'||VSERIE ||' - '||VCORRELATIVO||' -
'||VIDVALOR||' - '||VIDTRABAJADOR||' - '||VIDCLIENTE||' - '||VIDPEDIDO||' - '||VESTADO);
ELSE
EXIT;
END IF;
END LOOP;
CLOSE C_COMPROBANTE ;
END;
END MOSTRAR_COMPROBANTE ;
120

END PK_COMPROBANTE;

---------------------------------------------DETALLE_COMPROBANTE
CREATE OR REPLACE PACKAGE PK_DETALLE_COMPROBANTE AS
PROCEDURE INSERTAR_DETALLE_COMPROBANTE(VIDDETACOMPROBANTE NUMBER,VPRECIO
NUMERIC,VCANTIDAD NUMERIC,VSUBTOTAL NUMERIC,VIGV NUMERIC,VDESCUENTO NUMERIC,TOTAL_IMPORTE
NUMERIC,VIDCOMPROBANTE NUMERIC);
FUNCTION OBTENER_DETALLE_COMPROBANTE RETURN NUMBER;
PROCEDURE ELIMINAR_DETALLE_COMPROBANTE(VIDDETACOMPROBANTE NUMBER);
PROCEDURE MOSTRAR_DETALLE_COMPROBANTE;
END PK_DETALLE_COMPROBANTE;

CREATE OR REPLACE PACKAGE BODY PK_DETALLE_COMPROBANTE AS


PROCEDURE INSERTAR_DETALLE_COMPROBANTE (VIDDETACOMPROBANTE NUMBER,VPRECIO
NUMERIC,VCANTIDAD NUMERIC,VSUBTOTAL NUMERIC,VIGV NUMERIC,VDESCUENTO NUMERIC,TOTAL_IMPORTE
NUMERIC,VIDCOMPROBANTE NUMERIC)
IS
BEGIN
INSERT INTO DETALLE_COMPROBANTE
VALUES(VIDDETACOMPROBANTE,VPRECIO,VCANTIDAD,VSUBTOTAL,VIGV,VDESCUENTO,TOTAL_IMPORTE,VIDCOMP
ROBANTE);
COMMIT;
END INSERTAR_DETALLE_COMPROBANTE;
FUNCTION OBTENER_DETALLE_COMPROBANTE RETURN NUMBER
IS
VIDDETACOMPROBANTE NUMBER;
BEGIN
121

SELECT MAX(IDDETACOMPROBANTE)+1 INTO VIDDETACOMPROBANTE FROM DETALLE_COMPROBANTE;


RETURN VIDDETACOMPROBANTE;
END OBTENER_DETALLE_COMPROBANTE;
PROCEDURE ELIMINAR_DETALLE_COMPROBANTE (VIDDETACOMPROBANTE NUMBER)
IS
BEGIN
DELETE FROM DETALLE_COMPROBANTE
WHERE IDDETACOMPROBANTE=VIDDETACOMPROBANTE;
COMMIT;
END ELIMINAR_DETALLE_COMPROBANTE;
---------------------------------------------MOSTRAR LISTA DE DETALLE_COMPROBANTE
PROCEDURE MOSTRAR_DETALLE_COMPROBANTE
IS
BEGIN
DECLARE
CURSOR C_DETALLE_COMPROBANTE IS
SELECT
IDDETACOMPROBANTE,PRECIO,CANTIDAD,SUBTOTAL,IGV,DESCUENTO,TOTAL_IMPORTE,IDCOMPROBANTE FROM
DETALLE_COMPROBANTE;
VIDDETACOMPROBANTE NUMBER;
VPRECIO NUMERIC(7,2);
VCANTIDAD NUMERIC(12);
VSUBTOTAL NUMERIC(7,2);
VIGV NUMERIC(7,2);
VDESCUENTO NUMERIC(7,2);
VTOTAL_IMPORTE NUMERIC(7,2);
VIDCOMPROBANTE NUMERIC(10);
BEGIN
122

OPEN C_DETALLE_COMPROBANTE ;
LOOP
FETCH C_DETALLE_COMPROBANTE INTO
VIDDETACOMPROBANTE,VPRECIO,VCANTIDAD,VSUBTOTAL,VIGV,VDESCUENTO,VTOTAL_IMPORTE,VIDCOMPROBAN
TE;
IF C_DETALLE_COMPROBANTE%FOUND THEN
DBMS_OUTPUT.PUT_LINE(VIDDETACOMPROBANTE ||' -'||VPRECIO ||' -'||VCANTIDAD ||' -'||VSUBTOTAL ||' - '||VIGV||' -
'||VDESCUENTO||' - '||VTOTAL_IMPORTE||' - '||VIDCOMPROBANTE);
ELSE
EXIT;
END IF;
END LOOP;
CLOSE C_DETALLE_COMPROBANTE ;
END;
END MOSTRAR_DETALLE_COMPROBANTE ;
END PK_DETALLE_COMPROBANTE;

6.3.5. ADMINSTRACION Y SEGURIDAD DE LA BASE DE DATOS

Administración de base de datos La administración de bases de datos se realiza con un sistema llamado DBMS (Database management
system [Sistema de administración de bases de datos]). El DBMS es un conjunto de servicios (aplicaciones de software) para administrar
bases de datos.

Funciones del Administrador de B.D:

1.- Resguardar y proteger la integridad de la data.


2.- Mantener respaldos de la información.
3.- Velar por el buen funcionamiento de la B.D.
4.- Crear los lineamientos y políticas necesarias para el mejor uso de la B.D.
123

5.- Generar los controles de cambios y pases a producción.


6.- Crear usuarios, roles y privilegios de B.D.
Tipos de usuarios de B.D.

a). - Usuario Final: es la persona que utiliza los datos, esta persona ve datos convertidos en información:

b). - Desarrollador de Aplicaciones: es la persona que desarrolla los sistemas que interactúan con la Base de Datos.

c). - DBA: es la persona que asegura integridad, consistencia, redundancia, seguridad este es el Administrador de Base de Datos quien se
encarga de realizar el mantenimiento diario o periódico de los datos.

La seguridad del BD y el DBA

El administrador de bases de datos (DBA) es la autoridad central que controla un sistema de este tipo. Entre las obligaciones del DBA están
otorgar privilegios a los usuarios que necesitan usar el sistema y clasificar los usuarios y los datos de acuerdo con la política de la
organización.

1. Creación de cuentas
2. Concesión de privilegios
3. Revocación de privilegios
4. Asignación de niveles de seguridad
Tipos de privilegios discrecionales
1. El nivel de cuenta
2. El nivel de relación

Los privilegios en el nivel de cuenta se aplican a las capacidades conferidas a la cuenta misma y pueden incluir los siguientes privilegios:
124

6.3.6. CREACION DE USUARIOS Y PERFILES

CREACION DE USUARIOS CON PRIVILEGIOS

CREATE USER TBL IDENTIFIED BY "lego2016"


DEFAULT TABLESPACE "USERS"
TEMPORARY TABLESPACE "TEMP";
ROLES DE CONECTAR
GRANT "CONNECT" TO TBL;
PRIVILEGIOS
GRANT ALTER TABLESPACE TO TBL;
GRANT EXECUTE ANY PROCEDURE TO TBL
125

7. CONCLUSIONES

Las etapas de identificación de problemas, determinación de los requerimientos de


información determinaron la parte elemental en la iniciación de este proyecto, dado que
esta etapa fue crucial para el éxito final del proyecto; debido a que se realizó la
investigación que nos permitió observar de forma objetiva lo que ocurría en la empresa
Repostería DALIDA S.A.C., y posteriormente conocer las necesidades de todo el personal
de la empresa, a través del análisis de requerimientos.

Los resultados encontrados en la investigación nos llevaron a la conclusión de que


en la empresa sí existe la necesidad de automatizar los procesos de ventas, compras y
producción; por lo que, nuestra propuesta se acogerá de muy buena manera entre los
trabajadores del centro que se convertirían en los nuevos usuarios del sistema.

Actualmente la empresa no cuenta con los equipos necesarios para la


implementación del sistema de ventas, compras y control de producción, por lo que se
hace necesario la compra de los equipos que se detallan en la viabilidad técnica.

El personal o el dueño de la empresa tiene las capacidades necesarias para la


manipulación del sistema al momento que se implemente.

Con el estudio de costo – beneficio concluimos que este no es económicamente


viable por el monto de la inversión; sin embargo, es un proyecto que agregará valor a un
servicio que actualmente presta a la empresa, mejorando calidad de productos en la
empresa DALIDA S.A.C. El UML y XP nos permitió la elaboración del análisis y diseño
del sistema en donde se determinaron los requerimientos del usuario final y a partir de
estos se realizó la captura de vistas lógicas que capturaron el producto final del sistema.

El prototipo representa los aspectos del sistema que serán visibles para el
cliente/servidor en el momento de su implementación, por lo que podrá ser utilizado como
base para el desarrollo e implementación final del sistema. Este sistema será muy
amigable y no habrá dificultad entre el usuario y el sistema al momento de la
implementación. Por todo lo antes mencionado concluimos que este trabajo monográfico
será de gran aporte a programadores que deseen desarrollar un sistema con características
similares a las de la empresa Repostería DALIDA S.A.C.
126

8. RECOMENDACIONES

La implementación de este sistema será un gran aporte al proceso tecnológico


requerido para la automatización de los procesos manuales actuales del centro; por lo
tanto, recomendamos la implementación de este. En necesaria la compra de nuevos
equipos para que el sistema corra en condiciones óptimas y no se presenten problemas en
el momento de su aplicación pudiendo ser la causa el mal estado de los equipos. Todo el
personal es muy competente en el cargo que actualmente ocupan, pero recomendamos que
cuando se implemente el sistema se sometan a un proceso de capacitación que los ayude a
conocer toda la interfaz y beneficios del nuevo sistema; así como, para ambientarse con su
nueva herramienta de trabajo que los ayudará a un mejor rendimiento y desempeño de sus
funciones.

9. AGRADECIMIENTOS

Este presente trabajo agradecemos a nuestros padres y familiares porque nos


brindaron su apoyo tanto moral y económicamente para seguir estudiando y lograr el
objetivo trazado para un futuro mejor y ser orgullo para ellos y de toda la familia.

Al Instituto de Educación Superior Avansys, alma mater de la ciencia y la


tecnología porque nos está formando para un futuro como técnico en computación.

De igual manera a mis queridos formadores en especial al Docente del módulo de


programación y análisis de sistemas de la carrera de computación e informática pues ellos
fueron quienes guiaron para hacer le presente trabajo.

10. BIBLIOGRAFÍA

[1] Stanton, Etzel y Walker: Fundamentos de modelación 13va Edición, Págs. 604 al 607.

[2] Allan Reid: Las Técnicas Modernas de Venta y sus Aplicaciones, Editorial Diana,
Págs. 137 al 139 y del 221 al 228.

[3] Philip Kotler: Dirección de Mercadotecnia, 8va Edición, Págs. 704 al 707.

[4] Diario Gestión, publicación Lunes, 14 de octubre del 2013.

[5] Diario Gestión, publicación Martes, 08 de julio del 2014.


127

11.ANEXOS

Figura 31.- Logo de la empresa

Figura 32.- Oficina principal de ventas

Figura 33.-Area de producción

También podría gustarte