Sunteți pe pagina 1din 222

Dedicatoria El presente proyecto de grado est dedicado a mi familia por el apoyo brindado a lo largo de la carrera, ya que han sido

la mayor motivacin para el desarrollo de este trabajo.

Agradecimientos Les agradezco a todas las personas que colaboraron en la elaboracin de este proyecto de grado, brindando la sabidura necesaria y siendo los mismos una fuente de informacin importante para el desarrollo del presente trabajo.

Titulo: Autor: Publicacin: Palabras Claves: Descripcin:

Sistema de Informacin para la compra y venta de artculos del Centro de Consumo Mucha Cosa. Borda Villa, Mariela Santa Cruz. UTEPSA 2009 (Proyecto de Grado).

Unidad Patrocinante: Universidad Tecnolgica Privada de Santa Cruz. El presente proyecto muestra las falencias en cuanto al manejo de la informacin de las compras y ventas de artculos, en el Centro de Consumo Mucha Cosa. Debido a dicha situacin se requiere el desarrollo de un sistema de informacin para la optimizacin del manejo de la informacin. Fuentes: Resumen: El manejo del registro de las compras y ventas de una empresa son escenciales para controlar y asegurar la informacin financiera y de recursos, entre otros datos que logran tener un impacto en el buen desenvolvimiento de la misma. Por medio de estos registros se conoce si la empresa se encuentra obteniendo los beneficios esperados. Un sistema de informacin semi-automatizado para el control de estos registros ayuda a disminuir la prdida de informacin, facilitando y asegurando el trabajo que implica el almacenamiento de estos datos. De igual manera permite obtener informacin de manera rpida, sobre los productos existentes, la cantidad y los precios de los mismos.

INDICE DE CONTENIDO
1. Aspectos Metodolgicos ........................................................................................................... 11 1.1. 1.2.1. 1.3. 1.4. Antecedentes.......................................................................................................... 11 Formulacin del Problema................................................................................... 14 Justificacin ............................................................................................................ 15 Objetivos................................................................................................................. 15 Objetivo General ..................................................................................................... 15 Objetivos Especficos .......................................................................................... 15 Delimitacin ............................................................................................................ 16 Delimitacin Espacial .............................................................................................. 16 Delimitacin Temporal ............................................................................................ 16 Delimitacin de Contenido...................................................................................... 16 Tipo de investigacin .............................................................................................. 18 Proceso Metodolgico o Metodologa utilizada.................................................... 18 Mtodo ..................................................................................................................... 19 Tcnicas ................................................................................................................... 19 Fuentes de informacin .......................................................................................... 19 Herramientas Utilizadas:......................................................................................... 20 Estimacin de Costo Beneficio del proyecto........................................................ 21 Planificacin Temporal ........................................................................................ 29 Visin Del Software ............................................................................................. 32 Propsito .............................................................................................................. 32 Alcance ................................................................................................................. 32 Funcionalidad Bsica del Sistema ..................................................................... 33 Descripcin de Usuarios.-................................................................................... 34

1.4.1. 1.4.2 1.5 1.5.1 1.5.2 1.6.1 1.6

Diseo Metodolgico .............................................................................................. 18

1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.7.

Planificacin de Proyecto ...................................................................................................... 21

1.7.1. 1.7.2. 1.7.3.

1.7.3.1. 1.7.3.2. 1.7.3.3. 1.7.3.4.

Resumen de Usuarios Potenciales del Sistema .................................................................. 34 Ambiente de Usuario.............................................................................................................. 34 Necesidades Claves de los Usuarios ................................................................................... 35 1.7.3.5. Descripcin General del Sistema ....................................................................... 36 4

Perspectiva del Producto ....................................................................................................... 36 Resumen de Funcionalidades ............................................................................................... 37 1.7.3.6. Otros requerimientos del Sistema...................................................................... 37 Requerimientos del Sistema.................................................................................................. 37 Requerimientos de Performance .......................................................................................... 38 Requerimientos del Entorno .................................................................................................. 38 Otros Requisitos ..................................................................................................................... 38 2. Marco Referencial.- ................................................................................................................... 39 2.1. 2.1.1. 2.1.3. Marco Terico......................................................................................................... 40 El Proceso Unificado de Desarrollo (PUD) .......................................................... 40 Lenguaje Unificado de Modelado (UML)............................................................... 42

Actor.................................................................................................................................. 44 Caso de uso ...................................................................................................................... 44 Modelo .............................................................................................................................. 44 Iteracin ............................................................................................................................ 44 .Net Framework ...................................................................................................................... 44 2.1.4. 2.2. 2.2.1. 2.2.2. 2.2.3. 2.2.4. 2.2.5. 2.2.6. 2.2.7. 3. SQL Server 2005..................................................................................................... 48 Concepto de Sistema.- ........................................................................................ 49 Sistema de Informacin.-..................................................................................... 49 Compras ............................................................................................................. 50 Ventas................................................................................................................. 51 Devolucin .......................................................................................................... 51 Flujo De Caja ...................................................................................................... 52 Apertura de Caja ................................................................................................. 52 Marco Conceptual del Desarrollo ............................................................................ 49

MODELO DE NEGOCIO .............................................................................................................. 53 3.1. 3.2. Listado de Participantes.......................................................................................... 53 Procesos de Negocio.............................................................................................. 53

4.

Modelo de Requisitos................................................................................................................ 62 4.1. 4.2. Documentacin de los requisitos en base a la norma IEEE-830 ............................. 62 Especificacin Complementaria .............................................................................. 69

Requerimientos Funcionales. ................................................................................................ 69 5

Requerimientos No Funcionales. .......................................................................................... 70 4.3. 4.4. Actores y Clasificacin ............................................................................................ 70 Diagrama de Casos de Uso .................................................................................... 72

Requerimientos de Reportes del Sistema ............................................................................ 73 Requerimientos Administrativos del Sistema....................................................................... 73 5. MODELO DE ANLISIS:............................................................................................................. 74 5.1. 5.2. 5.3. Modelo de Comportamiento .................................................................................... 74 Modelo de Clases en Vista de Anlisis ................................................................. 101 Modelo Dinmico .................................................................................................. 102 Diagramas de Estado ........................................................................................... 102

5.3.1. 6.

MODELO DE DISEO............................................................................................................... 105 6.1. 6.2. 6.3. 6.4. Modelo de Comportamiento .................................................................................. 105 Diagrama de Clases Persistente........................................................................... 135 Diseo Lgico de la Base de Datos ...................................................................... 136 Diseo Fsico (Mapeo de Tablas) ......................................................................... 137

Tablas-Procedimientos Almacenados Triggers...................................................................... 144 7. Modelo de Implementacin.................................................................................................. 184 7.1. 7.2. 7.3. 8. 9. 10. 11. 12. Diagrama de Componentes del Software.............................................................. 184 Diagrama de Despliegue ...................................................................................... 184 Implementacin de las Clases de Software .......................................................... 187

Modelo de Pruebas .............................................................................................................. 202 Conclusiones.- ...................................................................................................................... 215 Recomendaciones.-.......................................................................................................... 216 Bibliografa ........................................................................................................................ 217 Anexos ................................................................................................................................ 218

INDICE DE FIGURAS
Figura 1.- Mapa Mental -Fuente Propia ............................................................................................. 12 Figura 2.- Diagrama Causa Efecto ................................................................................................... 13 Figura 3.- Planificacin Temporal - Fuente Propia .............................................................................. 29 Figura 4.- Proceso de Desarrollo de Software .................................................................................... 40 Figura 5. - Ciclo de Vida del Desarrollo de Software ........................................................................... 42 Figura 6. - Arquitectura de .NET Framework ...................................................................................... 45 Figura 7.- Componentes Bsicos de SQL Server 2005 ....................... Error! Marcador no definido.49 Figura 8.- Diagrama de Actividades Vender Producto ........................................................................ 55 Figura 9. - Diagarama de Actividades Cobrar Venta en Efectivo ......................................................... 57 Figura 10 .- Diagrama de Actividades Comprar Producto ................................................................... 58 Figura 11.- Diagrama de Actividades - Pedido a Inventario ................................................................ 59 Figura 12.- Diagrama de Actividades - Realizar Devolucin de Compra .............................................. 60 Figura 13 .- Diagrama General de Casos de Uso ................................................................................. 72 Figura 14.- Diagrama de Casos De Uso - Reportes del Sistema ........................................................... 73 Figura 15.- Diagrama de Caso de Uso de Requerimientos Administrativos del Sistema ...................... 73 Figura 16.- Diagrama de Caso de Uso Registrar Venta ....................................................................... 76 Figura 17.- Diagrama de Clases del Caso de Uso Registrar Venta ....................................................... 76 Figura 18.- Diagrama de Colaboracin Registrar Venta ...................................................................... 77 Figura 19.- Diagrama de Caso de Uso Registrar Compra .................................................................... 79 Figura 20.- Diagrama de Clases Registrar Compra.............................................................................. 79 Figura 21.- Diagrama de Colaboracion Registrar Compra ................................................................... 80 Figura 22.- Diagrama de Caso de Uso Gestionar Cliente .................................................................... 82 Figura 23.- Diagrama de Clases Gestionar Cliente .............................................................................. 82 Figura 24.- Diagrama de Colaboracin Gestionar Cliente ................................................................... 83 Figura 25.- Diagrama de Caso de Uso Gestionar Proveedor ............................................................... 85 Figura 26.- Diagrama de Clases Gestionar Proveedor ........................................................................ 85 Figura 27.- Diagrama de Colaboracion Gestionar Proveedor.............................................................. 86 Figura 28.- Diagrama de Caso de Uso Registrar Pedidos al Dpto de Inventarios ................................. 88 Figura 29.- Diagrama de Clases Registrar Pedidos al Dpto de Inventarios........................................... 88 Figura 30.- Diagrama de Colaboracion Registrar Pedidos al Dpto de Inventarios ................................ 89 Figura 31.- Diagrama de Caso de Uso Registrar Devoluciones al Dpto de Inventarios ......................... 91 Figura 32.- Diagrama de Clases Registrar Devoluciones al Dpto de Inventarios .................................. 91 Figura 33.-Diagrama de colaboracin Registrar Devoluciones al Dpto de Inventarios ........................ 92 Figura 34.- Diagrama de Caso de Uso Aperturar Cajas ....................................................................... 94 Figura 35.- Diagrama de Clases Aperturar Cajas................................................................................. 94 Figura 36.- Diagrama de Colaboracin Aperturar Cajas...................................................................... 95 Figura 37.- Diagrama de Caso de Uso Registrar Pedidos a Proveedores ............................................. 96 Figura 38.- Diagrama de Clases Registrar Pedidos a Proveedores....................................................... 97 Figura 39.- Diagrama de colaboracin Registrar Pedidos a Proveedor ............................................... 97 Figura 40.- Diagrama de Caso de Uso Registrar Devoluciones a Proveedores..................................... 99 Figura 41.- Diagrama de Clases Registrar Devolucion a Proveedores ................................................. 99 Figura 42.-Diagrama de Colaboracin Registrar Devoluciones a Proveedores .................................. 100 Figura 43.- Diagrama de Clases en Vista de Anlisis ......................................................................... 101 Figura 44. - Diagrama de Estado - Caja ............................................................................................ 102 Figura 45. - Diagrama de Estado - Venta .......................................................................................... 102 Figura 46.- Diagrama de Estado - Compra........................................................................................ 103 7

Figura 47.- Diagrama de Estado - Devolucion Compra ..................................................................... 103 Figura 48.- Diagrama de Estado - Pedido a Inventario...................................................................... 104 Figura 49.- Diagrama de Estado - Devolucion a Inventario ............................................................... 104 Figura 50.- Diagrama de Clases - Registrar Venta ............................................................................. 108 Figura 51.- Diagrama de Secuencia - Registrar Venta ....................................................................... 109 Figura 52.- Diagrama de Clases - Registrar Compra.......................................................................... 112 Figura 53.- Diagrama de Secuencia - Registrar Compra.................................................................... 113 Figura 54.- Diagrama de Clases - Gestionar Cliente .......................................................................... 116 Figura 55.-Diagrama de Secuencia - Gestionar Cliente ..................................................................... 117 Figura 56.- Diagrama de Clases - Gestionar Proveedor .................................................................... 119 Figura 57.- Diagrama de Secuencia - Gestionar Proveedor............................................................... 120 Figura 58.- Diagrama de Clases Registrar-Pedidos al Dpto de Inventarios ........................................ 122 Figura 59.- Diagrama de Secuencia - Registrar Pedidos a Inventario ................................................ 123 Figura 60.- Diagrama de Clases - Registrar Devoluciones al Dpto de Inventarios .............................. 125 Figura 61.- Digrama de Secuencia - Registrar Devoluciones al Dpto de Inventarios ......................... 126 Figura 62.- Diagrama de Clases - Gestionar Apertura Caja ............................................................... 128 Figura 63.- Diagrama de Secuencia - Aperturar Caja ........................................................................ 128 Figura 64.- Diagrama de Clases - Registrar Pedidos a Proveedores................................................... 130 Figura 65.- Diagrama de Secuencia - Registrar Pedidos a Proveedores............................................. 131 Figura 66.- Diagrama de Clases - Registrar Devolucin a Proveedor................................................. 133 Figura 67.- Diagrama de Secuencia - Registrar Devolucin a Proveedor ........................................... 134 Figura 68.- Diagrama de Clases Persistente ..................................................................................... 135 Figura 69.- Diseo Lgico de la Base de Datos ................................................................................. 136 Figura 70.- Diagrama de Componentes del Software ....................................................................... 184 Figura 71.- Diagrama de Despliegue ................................................................................................ 184 Figura 72. - Interface Gestin de Venta ........................................................................................... 203 Figura 73.- Interface Registrar Venta ............................................................................................... 203 Figura 74. - Interface Busqueda de Productos ................................................................................. 204 Figura 75.- Interface Gestionar Compra........................................................................................... 206 Figura 76.- Interface Registrar una Nota de Compra ........................................................................ 206 Figura 77. - Interface Bsqueda de Productos ................................................................................. 207 Figura 78.- Interface Gestionar PedidoInventario ............................................................................ 209 Figura 79.- Interface Registrar Pedido a Almacn ............................................................................ 209 Figura 80. - Interface Busqueda de Productos ................................................................................. 210 Figura 81.- Interface Gestionar Pedido a Proveedor ........................................................................ 212 Figura 82.- Interface Registrar Pedido a Proveedor.......................................................................... 212 Figura 83. - Interface Busqueda de Productos ................................................................................. 213

Indice de Tablas Tabla 1. - Usuarios Potenciales Del Sistema ........................................................... 34 Tabla 2.- Necesidades Claves de los Usuarios ......................................................... 36 Tabla 3.- Resumen de Funcionalidades .................................................................... 37

Introduccin El enfoque del proyecto se lo efectuar sobre la empresa Centro de Consumo Mucha Cosa que se dedica a la compra y venta de artculos como ser electrodomsticos, material de oficina o cualquier otro tipo de productos. El Centro de Consumo Mucha Cosa cuenta con el respaldo financiero de la cooperativa Nuestra Seora de Cotoca. Al ser una empresa comercial que compite con muchas del mismo tipo en el mercado, debe contar con un correcto manejo de la informacin que le permita realizar sus operaciones de manera gil. Actualmente Mucha Cosa presenta algunas falencias en dicho aspecto, ya que la forma de almacenar dicha informacin no le permite verificar los registros de una manera eficiente. Es por esto que el proyecto elaborado est dirigido a un rea muy importante de la empresa, el cual es el manejo de las compras y ventas, siendo esto un gran determinante de lo que el negocio necesita para su correcto funcionamiento.

10

Captulo 1

Aspectos Metodolgicos

1. Aspectos Metodolgicos

1.1. Antecedentes La empresa Centro de Consumo Mucha Cosa inicia sus actividades por el ao 2002, el mismo que se dedica a la venta de artculos electrnicos, para uso del hogar o para equipamiento de oficinas. Se encuentra ubicada en la Calle Potos casi esquina Ballivin. En la actualidad la empresa cuenta con 2 funcionarios que trabajan en la misma, esto incluyendo al gerente general. Dicha empresa realiza ventas de manera directa (en efectivo) o a crdito. Las ventas al crdito son financiadas por medio de la Cooperativa Nuestra Seora de Cotoca, es por esto que la mayor parte de sus ventas las realizan con esta modalidad. La empresa Mucha Cosa, se limita a la venta de los productos, dejando a la Cooperativa encargada de todo lo que se refiere al financiamiento, cobros de cuotas, intereses y multas, la misma que directamente desembolsa el dinero en la cuenta del Centro de Consumo.

11

Captulo 1

Aspectos Metodolgicos

1.2. PLANTEAMIENTO DEL PROBLEMA Mapa Mental

Figura 1.- Mapa Mental -Fuente Propia

12

Captulo 1

Aspectos Metodolgicos

Diagrama Causa Efecto

Figura 2.- Diagrama Causa Efecto Fuente: Elaboracin Propia

Dificultad en la Gestin de Compras y Ventas de Artculos en la empresa Centro de Consumo Mucha Cosa. En el Diagrama Causa Efecto se puede evidenciar que cuentan con un deficiente manejo de planillas para registrar las compras y ventas, ocasionando la prdida de informacin detallada de cada transaccin realizada. De igual forma al no contar con un listado detallado de cada cliente, proveedor, producto y empleados, ocasionan la difcil bsqueda, la inconsistencia y la duplicacin de datos de los mismos. No se realiza un registro adecuado de los cobros de ventas en la empresa, ocasionando un difcil control del ingreso del dinero.

13

Captulo 1

Aspectos Metodolgicos

1.2.1. Formulacin del Problema Al no contar con una herramienta que facilite el proceso de registro de las compras y ventas, el Centro de consumo Mucha Cosa presenta dificultades al almacenar los datos de los productos, clientes y proveedores que interactan en estos procesos, como as tambien el control de las fechas, los cobros y pagos realizados. Presenta dificultad en la gestin de productos ya que no cuenta con un listado detallado de las caractersticas de estos, en donde se especifique el precio de compra, el precio de venta, tomando en cuenta un porcentaje de utilidad o ganancia que se espera con la venta del producto. Uno de los problemas ms notables dentro de la empresa es la dificultad en el control de la caja donde ingresa el dinero, como consecuencia no se tiene un debido seguimiento de los montos de la misma. En lo que se refiere a la gestin de compras, no llevan un registro detallado en donde se especifique qu productos se compr, el precio de compra, el encargado de la compra, fecha en la que se realiz la compra y la cantidad de productos comprados. Actualmente en las planillas que utiliza la empresa para almacenar informacin, slo se limitan a especificar el producto vendido, el precio, la persona a la que se le vendi y la cantidad, lo mismo que muchas veces es olvidado registrar por el funcionario, siendo esto un problema notorio por no representar informacin durable y persistente a travs del tiempo.

14

Captulo 1

Aspectos Metodolgicos

1.3. Justificacin El presente proyecto se desarrolla para obtener un producto software que facilite y ayude a la empresa a mejorar el manejo de la informacin de la compra y venta de productos, tomando en cuenta todos los aspectos del modelo de negocio (especificado en el Captulo 3). El proyecto beneficiar en gran magnitud a los funcionarios, ayudando a

agilizar el trabajo cotidiano, solucionando problemas y necesidades del Centro de consumo Mucha Cosa.

1.4. Objetivos

1.4.1. Objetivo General o Desarrollar un Sistema de Informacin para la compra y venta de artculos del Centro de Consumo Mucha Cosa.

1.4.2 Objetivos Especficos o Identificar los requisitos funcionales y no funcionales de los procesos de compras y ventas. o Realizar el anlisis de los requerimientos de los procesos de compras y ventas. o Definir el diseo del software para los requerimientos del sistema. o Implementar los modelos diseados para la futura ejecucin del sistema de informacin. o Realizar las pruebas de los artefactos construidos en cada uno de los modelos.

15

Captulo 1

Aspectos Metodolgicos

1.5 Delimitacin 1.5.1 Delimitacin Espacial Para reunir la suficiente informacin y entender los procesos de negocio de la empresa se recurri a las instalaciones de la misma, que se encuentra ubicada en la Calle Potos casi esquina Ballivin de la ciudad de Santa Cruz de la Sierra.

1.5.2 Delimitacin Temporal El presente proyecto comienza en el mes de marzo del 2009 y culmina el mes de Diciembre del 2009. (Ver Planificacin Temporal pg.29). 1.6.1 Delimitacin de Contenido

El proyecto de grado est delimitado especficamente a las mejoras en el sistema de compra y venta de artculos de la empresa. Clientes: Gestin de informacin del cliente, con datos de importancia para la empresa. El cliente podr ser natural o jurdico, en donde se detallar su nombre completo, Ci, direccin, en caso de ser jurdico se especificar la razn social y Nit. Empleados: Gestin de datos del empleado como ser su Nombre, direccin, telfono, fecha de Contrato y cargo que ocupa. Cobranzas: Administrar todo lo que respecta las actividades que tienen que realizarse en una caja como ser la habilitacin de una caja, el monto de dinero con el cual se apertura una caja, el cierre de la caja y cobros por ventas realizadas en efectivo.
16

Captulo 1

Aspectos Metodolgicos

Ventas: Gestin de informacin de las ventas realizadas, como ser: el producto que se est vendiendo con su marca, el precio, la cantidad, el encargado de realizar la venta, la caja en donde se deposita el dinero de la venta, la fecha de la venta y el monto total de la venta. Compras: Gestin de la informacin detallada de una compra como ser: el producto que se compr, el proveedor del producto, el encargado de la compra, la fecha de compra, la cantidad de productos comprados y los montos totales. Seguridad: Otorgar a cada funcionario de la empresa claves de acuerdo al nivel de requerimientos de los funcionarios. Pedidos al Dpto de Almacen: Los pedidos al Dpto de Almacn se efectan cuando no existe algn producto que se requiera para una venta en el muestrario de la tienda central. Devoluciones al Dpto de Almacen: Se realizan en el caso de que la venta de un producto haya quedado inconclusa por cualquier motivo. Producto: Gestin de todos los artculos con datos especficos en lo que al producto se refiere como ser: la marca, descripcin, el proveedor que ofrece dicho producto. Proveedor: En la gestin de proveedores se maneja informacin especfica de un proveedor como ser su direccin, telfono, nit, en caso de ser natural su nombre completo, ci y en caso de ser jurdico su razon social.

17

Captulo 1

Aspectos Metodolgicos

Devoluciones a Proveedores: Las devoluciones a los proveedores se realizan en caso de que algn producto presente fallas o desperfectos posteriores a una compra. Pedidos a Proveedores: Los pedidos a proveedores se reflejan en el sistema como una nota en donde se especifica el producto a pedir, la fecha, la cantidad y la persona encargada del pedido.

1.6 Diseo Metodolgico 1.6.1 Tipo de investigacin

En el presente proyecto se realiza una investigacin Descriptiva de modo que se describirn los mdulos que forman parte del sistema, en donde se establece la estructura y comportamiento de cada uno de ellos, determinando de esta manera el grado de relacin existente entre las variables identificadas a lo largo de la investigacin. 1.6.2 Proceso Metodolgico o Metodologa utilizada

Para la elaboracin del proyecto se emplear como metodologa el Proceso Unificado de Desarrollo de Software, el mismo que se describe en base a los siguientes principios: Iterativo e incremental, dirigido por Casos de Uso y centrado en la arquitectura. Para la representacin de dichos procesos se utilizar como herramienta a UML (Lenguaje Unificado de Modelado), ya que es un aliado muy preciso al momento de realizar la especificacin de los procesos que conllevarn el desarrollo del proyecto. Por medio de ste se lograrn plasmar los flujos de trabajos que se emplean, los mismos que son: Requerimientos, Anlisis, Diseo, Implementacin y Prueba.
18

Captulo 1

Aspectos Metodolgicos

1.6.3

Mtodo

El mtodo a emplearse en el presente trabajo final de grado ser de Anlisis y Sntesis. Se emplea el de anlisis debido a que el sistema se descompondr en componentes pequeos que son identificados para clasificarlos segn sus causas y efectos con sus respectivas entradas y salidas. De igual forma es de Sntesis, debido a que dichos componentes son interrelacionados para poder llegar a un profundo estudio desde elementos o variables sencillas hasta llegar a las variables complejas.

1.6.4 Tcnicas Las tcnicas utilizadas para el desarrollo del presente proyecto de grado son las entrevistas (ver Anexo) y las visitas que se realizaron para verificar si efectivamente lo dicho en las entrevistas era lo descrito por los funcionarios. 1.6.5 Fuentes de informacin Primarias: Como fuente de informacin primaria se obtuvo datos que fueron otorgados por los funcionarios del Centro de Consumo Mucha Cosa elaborando entrevistas que se realizaron a los mismos, incluyendo al Gerente General. As mismo otorgaron el permiso necesario para poder evidenciar la manera del manejo de la informacin, siendo sta de mucha ayuda, ya que mediante las visitas realizadas a la empresa se pudo observar cmo se maneja el proceso del negocio.

19

Captulo 1

Aspectos Metodolgicos

Secundarias: Como fuente de informacin secundaria se obtuvo la informacin de los libros citados posteriormente en la bibliografa, como tambin a ingenieros informticos que despejaron dudas a lo largo del proyecto.

1.6.6 Herramientas Utilizadas: Software: Windows Vista Ultimate 64 bits Service Pack 1. Enterprise Architect Versin 7. Microsoft Visual Studio 2005.Net. Sistema Gestor de Base de Datos: SQL Server 2005 Express Edition. MindManager X5.

Hardware: Procesador: Intel(R) Core(TM) 2 P8400 @ 2.26GHZ. Memoria RAM: 4,00GB. Disco duro: 320 GB.

20

Captulo 1

Aspectos Metodolgicos

1.7. Planificacin de Proyecto 1.7.1. Estimacin de Costo Beneficio del proyecto

CALCULO DEL PUNTO FUNCIN Puntos de Funcin sin Ajustar: IUCliente Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros IUProveedor Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros IUCargo Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6 Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6 Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6

21

Captulo 1

Aspectos Metodolgicos

IUEmpleado Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6

IUProducto Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6

IUCaja Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6

IURegistrarCompra Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6

22

Captulo 1

Aspectos Metodolgicos

IURegistrarVenta Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros IUPedidoInventario Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros IUPedidoProveedor Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6 Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6 Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6

IUDevolucinInventario Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6

23

Captulo 1

Aspectos Metodolgicos

IUDevolucinProveedor Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros IUAperturarCaja Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6 Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6

IUCostoDeReferencia Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros IUCategora Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6 Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6

24

Captulo 1

Aspectos Metodolgicos

IUMarca Complejidad Entradas 0 1 Fich. acc. 2 Ficheros acc. 3 o ms ficheros Reporte Compra Complejidad Salidas 0 1 Fich. acc. 2 o 3 Fich. acc. 4 o ms ficheros Baja 4 Baja 4 Media 5 Nro. de Campos o Atributos de la Salida 1-5 Atributos 6-19 Atributos Baja 4 Media 5 Alta 7 20 o + Atributos Media 5 Alta 7 Alta 7 Baja 3 Baja 3 Media 4 Nro. de Campos o Atributos de la Entrada 1-4 Atributos 5-15 Atributos Baja 3 Media 4 Alta 6 16 o + Atributos Media 4 Alta 6 Alta 6

Reporte Venta Complejidad Salidas 0 1 Fich. acc. 2 o 3 Fich. acc. 4 o ms ficheros Baja 4 Baja 4 Media 5 Nro. de Campos o Atributos de la Salida 1-5 Atributos 6-19 Atributos Baja 4 Media 5 Alta 7 20 o + Atributos Media 5 Alta 7 Alta 7

Reporte DevolucionInventario Complejidad Salidas 0 1 Fich. acc. 2 o 3 Fich. acc. 4 o ms ficheros Baja 4 Baja 4 Media 5 Nro. de Campos o Atributos de la Salida 1-5 Atributos 6-19 Atributos Baja 4 Media 5 Alta 7 20 o + Atributos Media 5 Alta 7 Alta 7

25

Captulo 1

Aspectos Metodolgicos

Reporte DevolucionProveedor Complejidad Salidas 0 1 Fich. acc. 2 o 3 Fich. acc. 4 o ms ficheros Baja 4 Baja 4 Media 5 Nro. de Campos o Atributos de la Salida 1-5 Atributos 6-19 Atributos Baja 4 Media 5 Alta 7 20 o + Atributos Media 5 Alta 7 Alta 7

Reporte PedidoInventario Complejidad Salidas 0 1 Fich. acc. 2 o 3 Fich. acc. 4 o ms ficheros Baja 4 Baja 4 Media 5 Nro. de Campos o Atributos de la Salida 1-5 Atributos 6-19 Atributos Baja 4 Media 5 Alta 7 20 o + Atributos Media 5 Alta 7 Alta 7

Reporte PedidoProveedor Complejidad Salidas 0 1 Fich. acc. 2 o 3 Fich. acc. 4 o ms ficheros Baja 4 Baja 4 Media 5 Nro. de Campos o Atributos de la Salida 1-5 Atributos 6-19 Atributos Baja 4 Media 5 Alta 7 20 o + Atributos Media 5 Alta 7 Alta 7

26

Captulo 1

Aspectos Metodolgicos

Computacin de Mtricas de Punto Funcin


Parametros de Medicin Nro.Entradas Usuario Nro.Salidas Usuario Nro. Consultas Usuario Nro. Arch. internos (ILF) Nro. (ELF) Cuenta Total 181 Interfaces Externos 5x 0 7x 0 10 x 0 0 Simple 3x 4x 3x 7x 9 1 3 7 Medio 4x 5x 4x 10 x 2 0 2 1 Complejo 5x 7x 6x 15 x 5 5 1 0 SubTotal 60 39 23 59

1.- Se requiere el sistema copias de seguridad y recuperacin fiables? 3 2.- Se requiere Comunicacin de Datos? 4 3.- Existen Funciones de Procesamiento Distribuido? 1 4.- Es crtico el rendimiento? 3 5.- Se ejecutar el sistema en un entorno operativo existente y muy utilizado? 5 6.- Requiere el sist. De entrada de datos interactivas? 5 7.- Requiere la entrada de datos interactiva que las transacciones se lleven a cabo sobre mltiples pantallas u operaciones? 2 8.- Se actualizan los arch. Maestros de forma interactiva? 1 9.- Son complejas las entradas, salidas, archivos o peticiones? 3 10.- Es complejo el procesamiento interno? 2 11.- Se ha diseado el cdigo para ser reutilizable? 4 12.- Est incluido en el diseo la conversin y la instalacin? 1 13.- Se ha diseado el sist. Para soportar mltiples instalaciones en diferentes organizaciones? 1 14.- Se ha diseado la aplicacin para facilitar los cambios y para ser fcilmente utilizada por el usuario? 5

Suma Fi = 40 PF = Cuenta Total X (0,65 + 0,01 x Fi) PF = 181 x (0,65 + 0,01 x 40) PF = 190,05.

27

Captulo 1

Aspectos Metodolgicos

Esfuerzo (Frmula Albrech) E = 13,39 + 0,0545 x PF E = 13,39 + 0,0545 x 190,05 E = 23,75 P/Mes Esfuerzo/Recursos = 23,75 p.mes / 1 persona = 23,75 meses.
Costo del Software (Expresado en $us.-)
Precio/u. 1.- Mano de Obra Analistas 2.- Materiales Material Escritorio 3.- Gastos Indirectos de Fabricacin Luz Agua Telfono Transporte Internet COSTO DEL SOFTWARE SIN IVA COSTO DEL SOFTWARE CON IVA 200 25 20 15 20 25 4 Cant.(meses) 24 24 24 24 24 24 24 Total 4800 600 500 375 500 600 96 ______________ 7. 471 $us. 8. 666,36 $us.

28

Captulo 1

Aspectos Metodolgicos

1.7.2. Planificacin Temporal

Figura 3.- Planificacin Temporal - Fuente Propia

29

Captulo 1

Aspectos Metodolgicos

Plan de Iteracin Fase: Inicio Primera iteracin - duracin de 15 das En esta Iteracin se analizarn los requisitos funcionales, el anlisis del modelo de negocio de la empresa y se describir el caso de uso Gestionar Cliente. Segunda iteracin - duracin de 10 das Se realizar las descripciones de los casos de usos Gestionar Venta, Cobrar Venta, en donde se analizar a fondo las necesidades de la empresa para el desarrollo de dichas gestiones. Tercera iteracin duracin de 5 das Se realizar la descripcin de los casos de uso Gestionar Pedido, Gestionar Empleado. Fase: Elaboracin Cuarta iteracin duracin 19 das En esta Iteracin se realizar los casos de uso principales, realizar los prototipos de de la Arq. Del Sistema, los paquetes de anlisis de cada CDU, especificacin de los CDU. Quinta iteracin duracin 7 das Identificacin de las Clases de Anlisis, realizacin del Diagrama de Clases de Anlisis.

30

Captulo 1

Aspectos Metodolgicos

Sexta iteracin duracin 10 das Conclusin de la identificacin de las Clases de Anlisis; realizacin de los Casos de Uso en la vista de Anlisis. Sptima iteracin duracin 8 das Se refinaran las Realizaciones de los Casos de Uso y el Anlisis de Clases; se comenzara el Anlisis de Paquetes y sus Dependencias. Octava iteracin duracin 10 das Se Realizarn las Narraciones de los Casos de Uso (Diseo), el Diseo de Clases. Se identificaran las Clases de de diseo de Cada Paquete y sus relaciones entre los mismos. Fase: Construccin Novena iteracin duracin 20 das Se comienza a trabajar en lo que es la Arquitectura del sistema, se comienza con la identificacin de las entitys del sistema como as tambin los campos de las mismas. Se identificarn las principales Interfaces del sistema. Dcima iteracin duracin 50 das Se iniciar la codificacin de los Casos de Uso, se iniciar la documentacin del diseo que tendr el sistema. Dcima Primera iteracin duracin 15 das Se Finalizar con la codificacin de todos los Casos de Uso y se iniciar la Realizacin de los Casos de Uso en vista Diseo, acompaando la interfaz usuario correspondiente, el Diagrama de Clases de Diseo de cada Caso de Uso, y Diagramas de Secuencia de los mismos.

31

Captulo 1

Aspectos Metodolgicos

Dcima Segunda iteracin duracin 7 das Se iniciar la realizacin del Diagrama de Clases de Diseo, se efectuar la realizacin del Diseo de clases persistente y Diseo Lgico de la Base de Datos. Dcima Tercera iteracin duracin 6 das Se comenzara a trabajar en la Identificacin de Componentes e Identificacin de subsistemas de Implementacin. Dcima Cuarta iteracin duracin 10 das Se iniciar la planificacin de las pruebas de software que se realizar al sistema de Comercializacin.

1.7.3. Visin Del Software 1.7.3.1. Propsito

El propsito de la visin de software es identificar las necesidades a travs de los requerimientos de los usuarios para poder desarrollar un sistema de informacin para la compra y venta de artculos. 1.7.3.2. Alcance

En la presente documentacin se tomarn en cuenta los siguientes aspectos: Los requisitos que sern desarrollados para resolver problemas de funcionalidades dentro de la empresa. Las necesidades de los usuarios que sern los que sistema. Las caractersticas y funciones que contendr el sistema. utilizarn el

32

Captulo 1

Aspectos Metodolgicos

1.7.3.3.

Funcionalidad Bsica del Sistema

El sistema para la compra y venta de artculos del centro de Centro de Consumo Mucha Cosa ser desarrollado con la finalidad de: Administrar y gestionar la Compra y Venta de artculos elaborados por funcionarios de la empresa (Encargado de Ventas - Encargado de Compras). Administrar los pedidos que se efectuarn al Departamento de Inventarios, en caso de que no exista stock de productos, como tambin los pedidos a proveedores. Administrar y gestionar las cobranzas de la venta de un producto, por medio de la habilitacin o apertura de una Caja. Controlar los productos devueltos a los almacenes. Administrar y gestionar datos de los clientes, empleados, productos y proveedores con los que cuenta la empresa, contando con informacin detallada y actualizada. Administrar y controlar la seguridad en el sistema de informacin, contando con niveles de acceso para los usuarios. Administrar las cajas para obtener un mayor control del movimiento de efectivo que se genera.

33

Captulo 1

Aspectos Metodolgicos

1.7.3.4.

Descripcin de Usuarios.-

Resumen de Usuarios Potenciales del Sistema


Nombre Usuario de Consulta Representa Realiza todo tipo de consultas sobre el sistema de informacin, como el listado actual ventas del cliente , listado actual de empleados, proveedores, productos, cargos, realizadas, compras efectuadas, pedidos y devoluciones realizados a los proveedores, pedidos efectuados al Dpto de Inventario, entre otras. Usuario de Carga Usuario Administrador Realiza el ABM de la informacin del sistema en cuestin. Otorga los permisos necesarios para el desenvolvimiento normal de una actividad en el sistema. Realizar actividades de mantenimiento en el sistema.
Tabla 1. - Usuarios Potenciales Del Sistema Fuente: Elaboracin Propia

Ambiente de Usuario El usuario del sistema es el encargado de administrar y controlar las compras, ventas, pedidos de productos al departamento de inventario, devoluciones de productos al Dpto de Inventario, las gestiones de productos, proveedores, clientes, empleados, pagos a los proveedores, los cargos y la gestin de las cajas del Centro de consumo Mucha Cosa.

34

Captulo 1

Aspectos Metodolgicos

Necesidades Claves de los Usuarios


Necesidad Que el sistema permita la gestin de clientes, empleados, productos, cargos. Prioridad Alta Preocupaciones La prdida y mezcla de datos, ocasionando la prdida de tiempo en la bsqueda. Solucin Actual Soluciones propuestas Se realiza el Que el sistema sea control de estos capaz de brindar un datos por medio almacenamiento de planillas de ordenado y a la vez fcil de acceder y realizar Excel. actualizaciones o eliminaciones de los datos necesarios. Actualmente no El sistema debe ser registran los capaz de manejar toda pedidos que se informacin detallada de realizan a los pedidos que realiza al Dpto de Inventario. Inventario. En la actualidad no se cuenta con un registro de las devoluciones de productos. Actualmente las compras y ventas se lo realizan en planillas, en donde almacenan todos los datos. El cobro del dinero de las ventas lo realiza el Gerente General. El sistema debe ser capaz de manejar el registro detallado de las devoluciones efectuadas al Dpto de Inventario. Que el sistema sea capaz de almacenar datos histricos de las compras y ventas actualizando o eliminando datos necesarios. Que el sistema maneje la gestin de una caja especificando quin es el empleado encargado de la caja, la cantidad de dinero con la que se apertura una caja y el cierre de la caja. Que el sistema sea capaz de realizar los distintos reportes mencionados. Que el sistema sea capaz de gestionar las compras que se le realizan a los proveedores almacenando datos histricos.

Que el sistema maneje la gestin de los pedidos de productos al Dpto de Inventario El sistema debe proporcionar el manejo de los registros en cuanto a devoluciones de productos se refiere. El sistema debe proporcionar datos histricos para especificar el empleado que realiz una compra o venta, el producto vendido, etc. Que el sistema permita la gestin de las cajas habilitadas dentro de la empresa.

Alta

Alta

Alta

Alta

Que se puedan generar reportes operacionales que brinden datos detallados de una compra o venta. Que el sistema permita la gestin de compras a los proveedores

Media

Difcil control y seguimiento de los productos que fueron pedidos al Dpto de Inventario. Problemas en el seguimiento y control de las devoluciones realizadas al Dpto de Inventario. Dificultad en el control de las compras y ventas, debido a que no se sabe que empleado vendi o compr un producto. En la empresa no se cuenta con una caja, que facilite el manejo del dinero en el centro de consumo Mucha Cosa. No existe una herramienta que proporcione reportes de datos operacionales. Dificultad en el control de las compras que se realizan.

Actualmente no se cuenta con ningn tipo de reportes. En la actualidad las compras que realiza la empresa no se encuentran debidamente almacenados.

Alta

35

Captulo 1

Aspectos Metodolgicos

Que el sistema permita la gestin de los proveedores.

Alta

Prdida de datos y duplicidad de los mismos ocasionando prdida de tiempo en la bsqueda.

Se registran y almacenan dichos datos en una agenda manejada por el gerente general.

Que el sistema sea capaz de brindar un almacenamiento ordenado y a la vez fcil de acceder y realizar actualizaciones o eliminaciones de los datos necesarios.

Tabla 2.- Necesidades Claves de los Usuarios Fuente: Elaboracin Propia.

1.7.3.5.

Descripcin General del Sistema

Perspectiva del Producto El Sistema de Informacin funciona dentro del mbito del Centro de Consumo Mucha Cosa, interactuando con los participantes que se mencionaron anteriormente. El Sistema remplaza al actual sistema de informacin basado en las planillas Excel, permitiendo: Administrar las compras y ventas efectuadas, contar con datos actualizados de clientes, productos y proveedores, permitir la apertura y cierre de cajas, brindar seguridad de la informacin por medio de niveles de acceso que se otorgarn a los empleados.

36

Captulo 1

Aspectos Metodolgicos

Resumen de Funcionalidades La siguiente tabla muestra informacin de funcionalidades del Sistema de informacin, enfocando sus beneficios y caractersticas de usuario.
Beneficios para el Usuario Caractersticas soportadas Brindar y facilitar la utilizacin de la Se brinda una herramienta para el informacin en el momento requerido. control y administracin para la gestin de ventas, en donde se especifica el producto vendido, el precio, la cantidad, entre otros. De igual manera para la gestin de compras, en donde se detalle el producto comprado, el precio de compra, la cantidad, el encargado de la compra, el almacen al que se destinar el producto. Reemplazar la administracin de Clculos realizados de manera ventas y compras mediante planillas automatizada y predefinida, de excel as como tambin los brindando mayor seguridad a las clculos para evitar los errores que transacciones realizadas. podra ocasionar. Implementacin de nuevos procesos Permitir el registro de datos que en la empresa. actualmente no eran contemplados por el sistema. Realizacin de la validacin de los El sistema se encargar de manera datos ingresados por el usuario al automtica de la validacin de los sistema. datos introducidos por el usuario, mostrando mensajes en caso de no cumplir con las reglas preestablecidas.
Tabla 3.- Resumen de Funcionalidades Fuente: Elaboracin Propia

1.7.3.6.

Otros requerimientos del Sistema

Requerimientos del Sistema El Sistema Gestor de Base de Datos deber ser SQL Server 2005 Express Edition, debido a que el mismo nos ofrece la licencia gratuita para su utilizacin. Las herramientas de desarrollo deben ser Microsoft Visual Studio.Net 2005.
37

Captulo 1

Aspectos Metodolgicos

Se debe establecer una poltica de respaldo de informacin (back-up). Requerimientos de Performance El sistema de Informacin a implementarse debe mantenerse dentro de los lmites aceptables de rendimiento para aplicaciones de este tipo. Requerimientos del Entorno Deber implementarse para un sistema Windows 32 o 64 bits. Es necesaria una interfaz amigable con funcionalidades fciles de reconocer por el usuario. Deber ser utilizado bajo una red LAN (Red De rea Local). Otros Requisitos El sistema debe proporcionar datos confiables, evitando la duplicacin e inconsistencia de los mismos. El sistema debe brindar informacin completa, segura y oportuna que permita un buen control de las ventas de los productos.

38

Captulo 2

Marco Referencial

2. Marco Referencial.La empresa Centro de Consumo Mucha Cosa inicia sus actividades por el ao 2002, el mismo que se dedica a la venta de artculos electrnicos, para uso del hogar o para equipamiento de oficinas. En la Actualidad las instalaciones del centro del consumo Mucha Cosa se encuentran ubicados en la Calle Potos casi esq. Ballivin. Cuenta con 2 departamentos que son: Dpto de Gerencia y el Dpto de Compras y Ventas, contando actualmente con 2 funcionarios los cuales desempean similares funciones. El centro de consumo Mucha Cosa cuenta con el respaldo financiero de la Cooperativa Nuestra Seora de Cotoca, es decir, cuando un cliente quiere solicitar un producto a crdito, la cooperativa es la mediadora para otorgar el mismo, y slo ella es la encargada de efectuar los cobros de cuotas, intereses y multas, esto quiere decir que Mucha Cosa no interviene en este proceso. La empresa Mucha Cosa, se limita a la venta de los productos, dejando a la Cooperativa encargada de todo lo que refiere al financiamiento, cobros de cuotas, intereses y multas, la misma que directamente desembolsa el dinero en la cuenta del Centro de Consumo. Misin: Comercializar Productos de alta calidad a precios competitivos de manera que se logre satisfacer las necesidades y exigencias de nuestros clientes. Visin: Convertirnos en una empresa reconocida en el mercado nacional, siendo lderes en la venta de artculos electrnicos, logrando llegar a un mayor nmero de clientes.
39

Captulo 2

Marco Terico

2.1. Marco Terico 2.1.1. El Proceso Unificado de Desarrollo (PUD) El Proceso Unificado es un proceso de desarrollo de software, de modo que es un conjunto de actividades necesarias para transformar requisitos de un usuario en un sistema software (Figura 4.), Un marco de trabajo genrico, que puede especializarse para una gran variedad de sistemas de software, para diferentes reas de aplicacin, diferentes tipos de organizaciones, diferentes niveles de aptitud y diferentes tamaos de proyecto. El Proceso Unificado est basado en componentes software interconectados a travs de interfaces. Utiliza el Lenguaje Unificado de Modelado1 (UML) para preparar los esquemas de un sistema de software.

Figura 4.- Proceso de Desarrollo de Software

Caractersticas.El Proceso Unificado de Desarrollo se caracteriza por estar dirigido por casos de uso, centrado en la arquitectura e iterativo e incremental. Dirigidos por casos de uso significa que los casos de uso se utilizan como un artefacto bsico para establecer el comportamiento deseado del sistema, para verificar y validar la arquitectura del sistema, para las pruebas y para la comunicacin entre las personas involucradas en el proyecto.

UML: Herramienta utilizada para la representacin de los distintos artefactos utilizados para el desarrollo de un sistema software.

40

Captulo 2

Marco Terico

Centrado en la arquitectura significa que la arquitectura del sistema se utiliza como un artefacto bsico para conceptualizar, construir, gestionar y hacer evolucionar el sistema en desarrollo. Un proceso iterativo es aqul que involucra la gestin de un flujo de ejecutables del sistema. Un proceso incremental es aquel que involucra la continua integracin de la arquitectura del sistema para producir esos ejecutables, donde cada nuevo ejecutable incorpora mejoras incrementales sobre los otros. En conjunto, un proceso iterativo e incremental est dirigido por el riesgo, lo que significa que cada nueva versin se encarga de atacar y reducir los riesgos ms significativos para el xito del proyecto. Este proceso dirigido por casos de uso, centrado en la arquitectura, iterativo e incremental puede descomponerse en fases. Una fase es el intervalo de tiempo entre dos hitos importantes del proceso, cuando se cumplen un conjunto de objetivos bien definidos, se completan los artefactos y se toman las decisiones sobre si pasar o no a la siguiente fase. Hay cuatro fases en el ciclo de vida del desarrollo de software (Como se muestra en la Figura 4): iniciacin, elaboracin, construccin y transicin. La iniciacin es la primera fase del proceso, cuando la idea inicial para el desarrollo se lleva al punto de estar (al menos internamente) suficientemente bien fundamentada para garantizar la entrada en la fase de elaboracin. La elaboracin es la segunda fase del proceso, cuando se definen la visin2 del producto y su arquitectura3. En esta fase se expresan con claridad los requisitos del son priorizados y se utilizan para crear una slida base arquitectnica.

2 3

Visin: Es una imagen a futuro de lo que se espera posterior al desarrollo de un sistema software. Arquitectura: Es la forma que define el diseo que se emplear para el desarrollo de un sistema.

41

Captulo 2

Marco Terico

La construccin es la tercera fase del proceso, cuando el software se lleva desde una base arquitectnica comunidad de usuarios4. La transicin es la cuarta fase del proceso, cuando el software es puesto en las manos de la comunidad de usuarios. El proceso de software raramente termina aqu, porque incluso durante esta fase el sistema es mejorado continuamente, se erradican errores de programacin, y se aaden caractersticas que no se incluan en una versin anterior. ejecutable hasta su disponibilidad para la

Figura 5. - Ciclo de Vida del Desarrollo de Software

2.1.3. Lenguaje Unificado de Modelado (UML) UML es un lenguaje estndar para escribir planos de software. UML puede utilizarse para visualizar, especificar, construir y documentar los artefactos de un sistema que involucra una gran cantidad de software.

Comunidad de Usuarios: Son las personas que interectan con el sistema desarrollado.

42

Captulo 2

Marco Terico

UML es slo un lenguaje por tanto es tan slo una parte de un mtodo de desarrollo de software. UML es independiente del proceso, aunque para utilizarlo ptimamente se debera usar en un proceso que fuese dirigido por casos de uso, centrado en la arquitectura, iterativo e incremental. Diagrama de Clases Muestra un conjunto de clases, interfaces y colaboraciones, as como sus relaciones. Grficamente, un diagrama de clases es una coleccin de nodos y arcos. Diagrama de Casos de Uso Muestra un conjunto de casos de uso y actores (un tipo especial de clases) y sus relaciones. Los diagramas de casos de uso cubren la vista de casos de uso esttica de un sistema. Estos diagramas son especialmente importantes en el modelado y organizacin del comportamiento de un sistema. Diagrama de Secuencia Es un diagrama de interaccin que resalta la ordenacin temporal de los mensajes5. Tanto los diagramas de secuencia como los diagramas de colaboracin son un tipo de diagramas de interaccin. Un diagrama de interaccin muestra una interaccin, que consta de un conjunto de objetos y sus relaciones, incluyendo los mensajes que puedan ser enviados entre ellos. Diagrama de Componentes Muestra la organizacin y las dependencias entre un conjunto de componentes. Los diagramas de componentes cubren la vista de implementacin esttica de un sistema. Se relacionan con los diagramas de clases en que un componente se corresponde, por lo comn, con una o ms clases, interfaces o colaboraciones. Diagrama de Despliegue Muestra la configuracin de nodos6 de procesamiento en tiempo de ejecucin y los componentes que residen en ellos. Los diagramas de despliegue cubren
5

Mensajes: En un diagrama de Secuencia, el mensaje es la accin que realiza el sistema y que hace que un objeto interacte con otras clases. 6 Nodos: En un diagrama de despliegue, el nodo es un artefacto-hardware (Computador) con el que interact el usuario del sistema.

43

Captulo 2

Marco Terico

la vista de despliegue esttica de una arquitectura. Se relacionan con los diagramas de componentes en que un nodo incluye, por lo comn, uno o ms componentes. Actor Un actor es el papel que el usuario juega con respecto al sistema. Un actor no tiene que ser un humano, puede ser por ejemplo otro sistema externo que pide informacin al sistema actual. Caso de uso Un caso de uso es una descripcin de la secuencia de interacciones que se producen entre un actor y el sistema, cuando el actor usa el sistema para llevar a cabo una tarea especfica. Expresa una unidad coherente de funcionalidad, y se representa en el Diagrama de Casos de Uso mediante una elipse con el nombre del caso de uso en su interior. El nombre del caso de uso debe reflejar la tarea especfica que el actor desea llevar a cabo usando el sistema. Modelo Un modelo es una abstraccin del sistema, especificando el sistema modelado desde un cierto punto de vista y en un determinado nivel de abstraccin. Cuando se modela no se debe preocupar de cmo es el sistema por dentro, sino de lo que puede hacer para sus usuarios. Iteracin Es un conjunto bien definido de actividades, con un plan y unos criterios de evaluacin bien establecidos, que acaba en una versin, bien interna o externa. .Net Framework El Framework de .Net es una infraestructura sobre la que se rene todo un conjunto de lenguajes y servicios que simplifican enormemente el desarrollo de aplicaciones. Mediante esta herramienta se ofrece un entorno de ejecucin
44

Captulo 2

Marco Terico

altamente distribuido, que permite crear aplicaciones robustas y escalables. Los principales componentes de este entorno son:

Lenguajes de compilacin Biblioteca de clases de .Net CLR (Common Language Runtime)

Figura 6. - Arquitectura de .NET Framework

Actualmente, el Framework de .Net es una plataforma no incluida en los diferentes sistemas operativos distribuidos por Microsoft, por lo que es necesaria su instalacin previa a la ejecucin de programas creados mediante .Net. El Framework se puede descargar gratuitamente desde la web oficial de Microsoft. .Net Framework soporta mltiples lenguajes de programacin y aunque cada lenguaje tiene sus caractersticas propias, es posible desarrollar cualquier tipo de aplicacin con cualquiera de estos lenguajes. Existen ms de 30 lenguajes adaptados a .Net, desde los ms conocidos como C# (C Sharp), Visual Basic o C++ hasta otros lenguajes menos conocidos como Perl o Cobol.

45

Captulo 2

Marco Terico

Common Language Runtime (CLR) El CLR es el verdadero ncleo del Framework de .Net, ya que es el entorno de ejecucin en el que se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando el conjunto de servicios que ofrece el sistema operativo estndar Win32. La herramienta de desarrollo compila el cdigo fuente de cualquiera de los lenguajes soportados por .Net en un mismo cdigo, denominado cdigo intermedio (MSIL, Microsoft Intermediate Lenguaje). Para generar dicho cdigo el compilador se basa en el Common Language Specification (CLS) que determina las reglas necesarias para crear cdigo MSIL compatible con el CLR. De esta forma, indistintamente de la herramienta de desarrollo utilizada y del lenguaje elegido, el cdigo generado es siempre el mismo, ya que el MSIL es el nico lenguaje que entiende directamente el CLR. Este cdigo es transparente al desarrollo de la aplicacin ya que lo genera automticamente el compilador. Microsoft Visual Studio.NET Microsoft Visual Studio es un entorno de desarrollo integrado (IDE) de Microsoft. Puede ser utilizado para desarrollar la consola y la interfaz grfica de usuario de aplicaciones de Windows Forms, junto con aplicaciones, sitios web, aplicaciones web, servicios web y en cdigo nativo, junto con el cdigo administrado para el apoyo de todas las plataformas Microsoft Windows, Windows Mobile, Windows CE,. NET Framework. NET Compact Framework y Microsoft Silverlight. Visual Studio incluye un editor de cdigo IntelliSense (aplicacin de autocompletar) de apoyo, as como el cdigo de refactorizacin. El depurador integrado funciona tanto como una fuente de nivel de depuracin y una mquina a nivel de depuracin. Otras herramientas incorporadas incluir un
46

Captulo 2

Marco Terico

diseador de formularios para la construccin de aplicaciones GUI7, diseador de la tela, la clase de diseo y esquema de base de datos de diseo. Permite que los plug-ins para aadir que mejoran la funcionalidad en casi todos los niveles - incluyendo la adicin de soporte para los sistemas de control de fuente (como Subversin y Visual SourceSafe) para aadir nuevas Herramientas como los editores y los diseadores visuales de dominio especfico de idiomas o para otros aspectos los toolsets del ciclo de vida de desarrollo de software (como el cliente de Team Foundation Server: Team Explorer). Visual Studio soporta los idiomas por medio de servicios de idiomas, que permiten a cualquier lenguaje de programacin que se apoya (en distintos grados) por el editor de cdigo y depuracin, a condicin de una lengua especfica de servicio ha sido el autor. Construido en idiomas incluyen C / C + + (a travs de Visual C + +), VB.NET (a travs de Visual Basic. NET), y C # (a travs de Visual C #). Soporte para otros idiomas como el cromo, M #, Python y Ruby, entre otros se ha puesto a disposicin a travs de los servicios de idiomas que se van a instalar por separado. Tambin soporta XML / XSLT, HTML / XHTML, Java Script y CSS. Idioma especfico versiones de Visual Studio tambin existen ms limitada que ofrecen los servicios de idiomas para el usuario. Estos paquetes se llaman Microsoft Visual Basic, Visual J #, Visual C # y Visual C++. Actualmente, Visual Studio 2008 y 2005, ediciones Profesional, junto con el lenguaje especfico de versiones (Visual Basic, C + +, C #, J #) de Visual Studio 2005 estn disponibles de forma gratuita a los estudiantes como a travs de descargas de Microsoft DreamSpark programa. Visual Studio 2010 se encuentra actualmente en desarrollo.

GUI: (Interfaz Grfica de Usuario) conjunto de formas y mtodos que posibilitan la interaccin de un sistema con los usuarios utilizando forma grfica e imgenes.

47

Captulo 2

Marco Terico

Lenguaje de Programacin C#.C# (pronunciado "si Sharp") es un lenguaje de programacin orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que despus fue aprobado como un estndar por la ECMA8 e ISO9. Su sintaxis bsica deriva de C/C++ y utiliza el modelo de objetos de la plataforma.NET el cual es similar al de Java aunque incluye mejoras derivadas de otros lenguajes (entre ellos Delphi). Aunque C# forma parte de la plataforma.NET, sta es una interfaz de programacin de aplicaciones; mientras que C# es un lenguaje de programacin independiente diseado para generar programas sobre dicha plataforma. Ya existe un compilador implementado que provee el Framework de DotGNU10 - Mono que no genera programas para dicha plataforma, sino para una plataforma diferente como Win32 o UNIX / Linux. 2.1.4. SQL Server 2005 Express Edition. El Structured Query Language es un lenguaje estndar de comunicacin con bases de datos. Hablamos por tanto de un lenguaje normalizado que permite trabajar con cualquier tipo de lenguaje (ASP o PHP) en combinacin con cualquier tipo de base de datos (MS Access, SQL Server, MySQL). El hecho de que sea estndar no quiere decir que sea idntico para cada base de datos. En efecto, determinadas bases de datos implementan funciones especficas que no tienen necesariamente que funcionar en otras. SQL Server Express es una versin de SQL Server 2005 diseada para ayudar a los desarrolladores a construir aplicaciones robustas y fiables
8

ECMA: Es una organizacin internacional basada en membresas de estndares para la comunicacin y la informacin. 9 ISO: Es el organismo encargado de promover el desarrollo de normas internacionales de fabricacin, comercio y comunicacin. 10 DotGNU: Es una parte del proyecto GNU con el fin de proporcionar una alternativa libre para la plataforma de desarrollo Microsoft.NET.

48

Captulo 2

Marco Terico

ofreciendo una sencilla pero potente base de datos que es adems gratuita. SQL Server 2005 Express Edition proporciona muchas nuevas funcionalidades mejoradas, como son:

Una base de datos robusta para crear aplicaciones dinmicas Fuerte soporte de XML Herramientas y caractersticas para mejorar la gestin y facilidad de uso Instalacin y setup sencillos Escalabilidad y rendimientos Gran integracin con Visual Studio 2005 Robusta seguridad

2.2. Marco Conceptual del Desarrollo 2.2.1. Concepto de Sistema.Un sistema es un grupo de elementos que se integran con el propsito comn de lograr un objetivo. Conjuntos de elementos organizados que se encuentran en interaccin, que buscan alguna meta o metas comunes, operando para ello datos o informacin sobre energa o materia u organismos en una referencia temporal para producir como salida informacin o energa o materia u organismos. 2.2.2. Sistema de Informacin.Sistema de Informacin (SI) es el conjunto formal de procesos de anlisis, que operando sobre una coleccin de datos estructurados de acuerdo a las necesidades de la empresa, recopila elabora y distribuye, la informacin necesaria para realizar las operaciones bsicas y la toma de decisin en la empresa, que sirva para desempear las funciones de negocio de la empresa de acuerdo con sus estrategias. El sistema informativo est comprendido por una serie de elementos que son los siguientes:
49

Captulo 2

Marco Terico

o Documentos: Manuales u otra informacin descriptiva que explica el uso y/o la operacin del sistema. Conjunto de datos originales que conforman el conjunto de datos. o Procedimiento: Conjunto de pasos que define el uso especifico de cada elemento del sistema o el contexto. o Bases de Datos: Es la coleccin de datos relacionados entre s la cual es accedida por el software y es el resultado de relacionar la informacin. o Personas: Individuos que son usuarios u operadores del sistema. o Hardware: Es el conjunto de dispositivos electrnicos que proporciona la capacidad de computacin y los dispositivos electromecnicos encargados de extraer o suministrar la informacin en/de los soportes magnticos. o Software: Es el conjunto de programas de computacin encargados de suministrar la informacin deseada al cliente, con la coordinacin y relacin requerida. FUNCIONES DEL SISTEMA DE INFORMACION El SI lleva a cabo una serie de funciones que se pueden agrupar en cuatro grandes grupos: Funciones de captacin y recoleccin de datos. Almacenamiento de la informacin. Tratamiento de la informacin. Distribucin de la Informacin.

2.2.3. Compras Las compras deben considerarse como una funcin vital para el xito de cualquier empresa, cuyo objetivo es adquirir las materias primas y los artculos indispensables para la fabricacin de los bienes a que se dedica, o bien de productos terminados para su venta o brindar los servicios adecuados poniendo en juego todos los elementos necesarios para conseguirlo.

50

Captulo 2

Marco Terico

Las compras son bsicas para el progreso de toda empresa, sea sta pequea, mediana o grande, comprador y vendedor ponen especial inters en las negociaciones que realizan. Las materias primas, mercancas y dems materiales deben cumplir con los requisitos elementales de una buena compra: o Precio o Calidad o Cantidad 2.2.4. Ventas La venta es un proceso interactivo por la interrelacion constate vendedorcomprador y continuo por su carcter cclico y su retroalimentacion. En este proceso nada sencillo intervienen tres factores fundamentales: el factor humano, (cliente y vendedor), y el factor objeto de intercambio (producto y precio) y el factor forma o procedimiento (tcnica de ventas). Vender es el acto de convencer a una persona respecto a las bondades, cualidades, caractersticas y beneficios de un producto o servicios, de forma tal que esa persona acceda a realizar voluntariamente, la entrega de una determinada cantidad de dinero con el propsito de lograr la posesin, uso o consumo de dicho producto por servicio y, de esa manera satisfacer determinadas necesidades personales, familiares, etc. 2.2.5. Devolucin Restitucin, entrega de lo que se haba dado o prestado: o Condiciones de entrega o Condiciones de pago o Servicio postventa

devolucin de un prstamo. Accin que se hace para corresponder a un favor o a un agravio: no espero la devolucin del favor. Reembolso, entrega de la cantidad que se pag por un objeto, de un vale o de otro objeto por parte de un comprador insatisfecho.
51

Captulo 2

Marco Terico

2.2.6. Flujo De Caja En finanzas y en economa se entiende por flujo de caja o flujo de fondos, los flujos de entradas y salidas de caja o efectivo, en un perodo dado. El estudio de los flujos de caja dentro de una empresa, puede ser utilizado para determinar:

Problemas de liquidez. El ser rentable no significa necesariamente poseer liquidez. Una compaa puede tener problemas de efectivo, aun siendo rentable. Por lo tanto permite anticipar los saldos en dinero.

Para analizar la viabilidad de proyectos de inversin, los flujos de fondos son la base de clculo del Valor actual neto y de la Tasa interna de retorno. 2.2.7. Apertura de Caja La finalidad de esta opcin es la de indicar el total de dinero existente en la caja al iniciar cada turno de trabajo. Los importes se registran segn los ingresos o egresos de efectivo, logrando al finalizar del periodo, un control del dinero con el que se deber encontrar la caja al acabar la gestin, no permitiendo la prdida de dinero.

52

Captulo 3

Modelo de Negocio

3.

MODELO DE NEGOCIO En el presente documento se especificarn los requerimientos del usuario, en donde se los identific, clasificndolos de acuerdo al grado de importancia, de manera que el documento sirva como un reflejo de la comunicacin para validar los requerimientos de parte del usuario. 3.1. Listado de Participantes 1. Administrador del Sistema: El Administrador ser el encargado de otorgar permisos a los dems usuarios del sistema con sus respectivos niveles de acceso para que los mismos puedan desenvolver sus actividades dentro de la empresa, de igual manera ser el encargado de brindar soporte al sistema. 2. Encargado de Ventas: La actividad fundamental que desempear el encargado de ventas en el sistema, ser el registro de todas las ventas que se efecten, siendo esta de gran importancia al tratarse de una de las principales actividades que desempea la empresa. De la misma forma ser el encargado de las gestiones de los pedidos, tanto al Dpto de Inventarios como las devoluciones que se efecten al mismo departamento. 3. Encargado de Compras: El encargado de compras se encargar de manejar el registro de las compras, los pedidos y devoluciones a proveedores.

3.2. Procesos de Negocio Los procesos de Negocio principales del centro de consumo Mucha Cosa son: Vender producto: En este proceso de negocio la empresa realiza la venta de productos al pblico en general, ya sea un cliente natural o un cliente jurdico. La venta del producto se lo realiza de dos formas, ya sea en efectivo o a crdito.

53

Captulo 3

Modelo de Negocio

La venta del producto a crdito se lo realiza por medio de la Cooperativa Nuestra Seora de Cotoca, ya que Mucha Cosa cuenta con el respaldo de dicha entidad financiera. La forma en que se realiza la venta al crdito es la siguiente: el cliente solicita un prstamo a la cooperativa para la compra de uno o varios productos especficos, la misma que se encarga de aprobar o no dicho prestamo. Si el crdito es aprobado, la Cooperativa realiza el desembolso del dinero a la cuenta del centro de consumo Mucha Cosa, luego la cooperativa es la que se encarga del cobro mensual (dependiendo del tipo de prstamo) al cliente, sin que interfiera el centro de consumo en los cobros de las cuotas. Para poder vender productos el cliente debe solicitar la venta, luego el encargado de ventas pide sus datos y verifica si existe el producto, en caso de no existir el producto o la cantidad requerida por el cliente, se le informa que no existen tems suficientes, brindndole como opcin el registro de su pedido para realizar la compra del mismo posteriormente, previa verificacin de la factibilidad por parte de la empresa. Lo anteriormente citado, se efectuar siempre y cuando el cliente se encuentre de acuerdo con ste proceso. En caso de no presentarse algn inconveniente, se realiza la venta de los productos existentes y se entrega la factura, la misma que es llenada manualmente por el vendedor. Otra facilidad que brinda el Centro de consumo Mucha Cosa, es que no se limita a la venta de productos con los que cuenta en stock, ya que un cliente puede solicitar a la empresa que le consiga un producto especfico que requiera. Esto se debe a que Mucha Cosa le facilita el crdito con la cooperativa Nuestra Seora de Cotoca.

54

Captulo 3

Modelo de Negocio

Actualmente la empresa no aplica ningn tipo de promocin, descuentos o campaas en cuanto a sus artculos. Para la venta de productos no clasifican a los clientes por tipo, es decir, se maneja el mismo proceso de ventas para cualquier persona natural o jurdica. Nota.- Actualmente la empresa no controla la cantidad de stock de articulos al momento de comprar o vender, tampoco maneja un registro de los productos existentes en su almacn.
Diagrama de Actividades - Vender Producto
act Diagrama de Activ idades Vender Producto Cliente Encargado de Ventas Cooperativ a Nuestra Seora de Cotoca

Solicita Venta Inicio

Solicita Datos

D sus datos

Verifica en el sistema si existe la cantidad de productos requerida

No existe

Si existe

Analiza la compra por la cantidad de productos existentes (Si hubieran algunos items requeridos) y solicita que la misma sea realizada

Informa al solicitante que no existe el producto o la cantidad requerida de tems solicitados es superior a la existente en Stock

Ingresa los datos necesarios para la v enta

No Acepta

Si Acepta Solicita Cancelacin del producto

Pagar monto

En Efectivo

Financiado

Realiza el depsito a la cuenta de Mucha Cosa

Registra la Venta

Emite Factura

Fin

Figura 7.- Diagrama de Actividades Vender Producto Fuente: Elaboracin Propia.

55

Captulo 3

Modelo de Negocio

Reglas de Negocio: a) El cliente no podr retirar el producto mientras no cancele el total en efectivo o la cooperativa Nuestra Seora de Cotoca no haga el desembolso del dinero al Centro de Consumo Mucha Cosa, ya que el mismo tendr que tener un crdito aprobado por la cooperativa. b) No se aceptan devoluciones ni cambios de productos posterior a registrar la venta. Listado de Informaciones: Venta= {fecha, monto} Producto= {marca, precio, descripcin, stock} Cliente= {nombre, apellido, telfono, direccin} Cobrar venta: En este proceso de negocio la empresa realiza el cobro de una venta en efectivo. La garanta que se otorga al cliente al venderle un producto, es un certificado que viene directamente desde fbrica. Por ejemplo: de un producto de marca sony, la garanta es el certificado que se encuentra dentro de la caja. El Centro de Consumo Mucha Cosa no se responsabiliza por desperfectos que presentara el producto posterior a la venta. En estos casos, el cliente debe apersonarse directamente a las oficinas del representante de la marca. En cuanto a la facturacin, la empresa lo realiza de manera manual por medio del llenado de las facturas pre-impresas, por este motivo no se ver reflejado en el sistema.

56

Captulo 3

Modelo de Negocio

Diagrama de Actividades - Cobrar Venta en Efectivo

act Diagrama de Activ idades Cobrar Venta

Cliente
Solicita Cobro Inicio

Encargado de Ventas

Solicita Datos

D sus datos

Verifica datos en planillas

No existe

Si existe

Registra en planillas de excel al cliente

Pedir cancelacion del monto

Pagar Monto

Registrar Pago

Llenar y entregar factura Fin

Figura 8. - Diagarama de Actividades Cobrar Venta en Efectivo Fuente: Elaboracin Propia.

Reglas de Negocio: a) En el caso que un cliente quiera adquirir un producto con financiamiento, ste ser derivado a la cooperativa Nuestra Seora de Cotoca, para que la misma se encargue de asumir y elaborar los planes del crdito. Listado de Informaciones: Venta= {fecha, monto} Producto= {marca, precio, descripcin, stock}

57

Captulo 3

Modelo de Negocio

Compra de producto: Se realiza la compra de un artculo cuando el gerente general ve la necesidad del mismo, por no contar con stock suficiente, o tiene un pedido especfico de algn cliente. Las compras se realizan a criterio del Gerente General, es decir, no se maneja un modelo de inventario para el control de artculos, esto se debe a que la empresa no se dedica a la venta de un producto especfico, ya que puede ofrecer distintos tipos de artculos en el transcurso del ao. Nota.- Actualmente la empresa no controla la cantidad de stock de articulos al momento de comprar o vender, tampoco maneja un registro de los productos existentes en su almacn.
Diagrama de Actividades Comprar Producto
act Diagrama de Activ idades Comprar producto Cliente Encargado de Compras Gerente General

Inicio

Inicio

Solicita un producto especfico

Verifica la factibilidad para la compra del mismo

Verifica falta de stock de un producto

Realiza la compra del producto

Solicita compra del producto

Ingresa el producto al Almacn

fin

Figura 9 .- Diagrama de Actividades Comprar Producto Fuente: Elaboracin Propia.

58

Captulo 3

Modelo de Negocio

Reglas de Negocio: a) Solo el Gerente General es el nico encargado de aprobar la compra de un producto luego que el mismo verifique la factibilidad para dicha compra. Listado de Informaciones: Compra= {fecha, monto} Producto= {marca, precio, descripcin, stock} Proveedor= {nombre, telfono, direccin} Realizar Pedido a Inventario: Se realiza el pedido de un artculo al Dpto. de Inventario cuando se requiere el mismo en el almacn de vitrina, ya sea para mantenerlo en muestrario o venderlo a un cliente.
Diagrama de Actividades Realizar Pedido a Inventario
act Diagrama de Activ idades Pedido a Inv entario Encargado de Ventas Inicio Dpto.Inv entario

Realizar pedido a Inv entario

Verificar si existe producto requerido

No existe

Si existe

Notificar producto No existe

Entregar producto al encargado de v entas

Recibir producto

Fin

Figura 10.- Diagrama de Actividades - Pedido a Inventario Fuente: Elaboracin Propia

59

Captulo 3

Modelo de Negocio

Reglas de Negocio: a) La entrega del producto requerido (en caso que exista) por parte del Dpto. de Inventario, se realizar inmediatamente al momento de conocerse el pedido realizado por el departamento de Ventas. Listado de Informaciones: Pedido= {fecha, cantidad} Producto= {marca, descripcin} Realizar Devolucin de Compra: Se realiza la devolucin de un artculo comprado a un proveedor, esto debido a algn desperfecto o por decisin del encargado de compras.
Diagrama de Actividades Realizar Devolucin de Compra
act Diagrama de Activ idades Dev olucion Compra Encargado de Compra Inicio Prov eedor

Requerir dev olucin de producto comprado

Analizar factibilidad o polticas para aprobar dev olucin

Si

No

Entregar Producto

Pedir producto a dev olv er

Exigir dev olucin del dinero

Entregar dinero Fin

Figura 11.- Diagrama de Actividades - Realizar Devolucin de Compra Fuente: Elaboracin Propia.

60

Captulo 3

Modelo de Negocio

Reglas de Negocio: a) Si se logra concretar la devolucin de una compra debe exigirse la devolucin del dinero y registrar el ingreso del mismo en la empresa. Listado de Informaciones: Devolucin= {fecha, cantidad,monto} Producto= {marca, descripcin}

61

Captulo 4

Modelo de Requisitos

4. Modelo de Requisitos En el modelo de requisitos se desarrollar el modelo del sistema que se va a construir, con la utilizacin de los casos de uso correspondientes. En este modelo se identificarn los requisitos funcionales que se estructuran mediante los casos de uso, de igual manera se identificarn aquellos requisitos no funcionales, que se orientan a restricciones de diseo. Se definir los actores que interactan con el sistema y luego se detallaran cules son sus casos de uso correspondientes. 4.1. Documentacin de los requisitos en base a la norma IEEE-830 Requerimientos especficos 4.1.1. Requerimientos funcionales Requerimiento funcional 1: Registrar Compra. Introduccin: Este requerimiento permite el registro de una nueva compra de artculos. Entradas: Es necesario para el registro de las compras contar con una interfaz que permita el registro del proveedor al que se le realiza la compra, el encargado de realizar la compra, la fecha de la misma, el almacn al que se ingresarn los productos comprados y el detalle de estos. Se debe contar en el men principal con una interfaz que permita el registro completo de una compra. Proceso: Una compra implica el registro de una entrada de productos en un Almacn, modificando la existencia del producto en este. Salidas: Se genera como salida los reportes de una compra requerida. Requerimiento funcional 2: Registrar Venta. Introduccin: Este requerimiento permite el registro de una nueva venta de artculos de la empresa. Entradas: Es necesario para el registro de las ventas contar con una interfaz que permita el registro del cliente al que se le realiza la venta, el encargado de realizarla, la fecha, el almacn del que se extraen los productos a vender, la caja a la que ingresar de dinero de dicha venta y el
62

Captulo 4

Modelo de Requisitos

detalle de los artculos que se venden. Se debe contar en el men principal con una interfaz que permita el registro completo de una venta. Proceso: Una venta implica el registro de una salida de productos de un Almacn, modificando la existencia del producto en este. Salidas: Se genera como salida los reportes de cada venta requerida. Requerimiento funcional 3: Registrar Pedido a Inventario. Introduccin: Este requerimiento permite el registro de un nuevo pedido al Dpto de Inventario. Entradas: Es necesario para el registro de los pedidos a inventario contar con una interfaz que permita el registro del almacn al que se le realiza el pedido, es decir, del que se extraern los artculos, y un detalle que especifique qu productos son los que se estn pidiendo, la fecha en la que se realiza el pedido y registrar el encargado de este pedido. Proceso: Un pedido a inventario implica el registro de una salida de productos de un Almacn, modificando la existencia del producto en este. Salidas: Se genera como salida los reportes de los pedidos con las especificaciones detalladas del mismo. Requerimiento funcional 4: Registrar Pedido Proveedor. Introduccin: Este requerimiento permite el registro de un nuevo pedido realizado a un proveedor. Entradas: Es necesario para el registro de los pedidos a proveedor contar con una interfaz que permita el registro del proveedor al que se realiza el pedido, la fecha, el encargado de realizar el pedido y un detalle que especifique qu productos son los que se estn requeriendo. Proceso: El proceso se registrar cada vez que se realice el pedido al proveedor y slo se refleja como una nota para controlar los pedidos realizados. Salidas: Se genera como salida los reportes de un pedido requerido. Requerimiento funcional 5: Gestionar Cliente Introduccin: Requerimiento que permite el registro de un nuevo Cliente.

63

Captulo 4

Modelo de Requisitos

Entradas: Es necesario para el registro de clientes contar con una interfaz que permita el registro de los datos como ser su nombre, apellidos, telfono, direccin, entre otros. Debe permitirse al usuario seleccionarse el tipo de cliente (Natural o Jurdico) que se est registrando. Proceso: No existe proceso relevante para destacar en esta gestin. Salidas: No existe salida. Requerimiento funcional 6: Gestionar Empleado Introduccin: Requerimiento que permite el registro de un nuevo Empleado. Entradas: Es necesario para el registro de empleados contar con una interfaz que permita el registro de los datos como ser su nombre, apellidos, telfono, direccin, fecha de contrato y cargo que ocupa entre otros. Proceso: No existe proceso secundario para destacar en esta gestin. Salidas: No existe salida. Requerimiento funcional 7: Registrar Devolucin al Dpto de Inventarios. Introduccin: Este requerimiento permite el registro de una devolucin al dpto de inventarios. Entradas: Es necesario para el registro de una devolucin contar con una interfaz que permita el registro del almacn al que se le realiza la devolucin, el producto a devolver, la fecha en la que se realiza la devolucin, el encargado. La devolucin se la realiza desde el Almacn Vitrina (Tienda Central). Proceso: Una devolucin a Inventario implica el registro de una entrada de productos al Almacn al que se est realizando la devolucin, modificando la existencia del artculo. Salidas: Se genera como salida el reporte de una devolucin especfica. Requerimiento funcional 8: Registrar Devolucin a Proveedor. Introduccin: Este requerimiento permite el registro de una devolucin a Proveedores la misma que estar directamente relacionada a una compra anteriormente realizada.

64

Captulo 4

Modelo de Requisitos

Entradas: Es necesario para el registro de una devolucin contar con una interfaz que permita buscar la compra de la cual se obtuvo el producto, con los datos necesarios de la misma, la fecha en la que se realiza la devolucin y el encargado de realizarla. Proceso: Una devolucin a Proveedor implica el registro de una salida de productos de un almacn, modificando la existencia del artculo. Salidas: Se genera como salida el reporte de una devolucin especfica. Requerimiento funcional 9: Gestionar Proveedor Introduccin: Requerimiento que permite el registro de un nuevo Proveedor. Entradas: Es necesario para el registro de proveedores contar con una interfaz que permita el registro de los datos como ser su nombre, apellidos, telfono, direccin, entre otros. Debe permitirse al usuario seleccionarse el tipo de proveedor (Natural o Jurdico) que se est registrando. Proceso: No existe proceso relevante para destacar en esta gestin. Salidas: No existe salida. Requerimiento funcional 10: Gestionar Cargo Introduccin: Requerimiento que permite el registro de un nuevo Cargo. Entradas: Es necesario para el registro de los cargos contar con una interfaz que permita el ingreso del nombre de cargo, para posteriormente poder ser asignado a cualquier empleado. Proceso: No existe proceso destacable en esta gestin. Salidas: No existe salida. Requerimiento funcional 11: Gestionar Marca de Producto Introduccin: Requerimiento que permite el registro de una marca de producto. Entradas: Es necesario para el registro de las marcas contar con una interfaz que permita el ingreso del nombre de la marca, para posteriormente poder ser asignado a cualquier producto. Proceso: No existe proceso destacable en esta gestin. Salidas: No existe salida.
65

Captulo 4

Modelo de Requisitos

Requerimiento funcional 12: Gestionar Categora del Producto Introduccin: Requerimiento que permite el registro de una categora de producto. Entradas: Es necesario para el registro de las categoras contar con una interfaz que permita el ingreso del nombre de la categora, para posteriormente poder ser asignado a cualquier producto. Proceso: No existe proceso destacable en esta gestin. Salidas: No existe salida. Requerimiento funcional 13: Gestionar Producto Introduccin: Requerimiento que permite el registro de un nuevo producto. Entradas: Es necesario para el registro de los productos contar con una interfaz que permita el registro de la marca, categora y descripcin del mismo, como as tambin asignarle un porcentaje de ganancia que se requiere al momento de realizar la venta. Tambin deber permitir colocar el precio de venta en caso de que el usuario no desee que el sistema lo calcule. Proceso: No existe proceso destacable en esta gestin. Salidas: No existe salida. Requerimiento funcional 14: Gestionar Caja Introduccin: Requerimiento que permite el registro de una nueva caja. Entradas: Es necesario para el registro de las cajas contar con una interfaz que permita el ingreso del nombre de la caja, para posteriormente poder seleccionar la caja en donde se depositar el dinero de una venta, tambin deber contar con un opcin para dejar habilitada o deshabilitada la caja. Proceso: No existe proceso destacable en esta gestin. Salidas: No existe salida. Requerimiento funcional 15: Aperturar Caja Introduccin: Requerimiento que permite la apertura de una caja.

66

Captulo 4

Modelo de Requisitos

Entradas: Es necesario para aperturar una caja contar con una interfaz que permita el registro de la caja que se aperturar con un montode dinero definido para dicha apertura. Proceso: No existe proceso destacable en esta gestin. Salidas: No existe salida. Requerimiento funcional 16: Cerrar Caja Introduccin: Requerimiento que permite cerrar una caja. Entradas: Es necesario para cerrar una caja contar con una opcin que permita el cierre de la caja al finalizar el da. Proceso: El cerrar una caja implica dejar la misma en estado Deshabiltada para que no se registren transacciones posteriores al cierre. Salidas: No existe salida. Requerimiento funcional 17: Gestionar Usuarios del Sistema Introduccin: Requerimiento que permite la gestin de nuevos usuarios en el sistema. Entradas: Es necesario para gestionar usuarios contar con una interfaz que permita asignar los distintos permisos que se le otorgarn a cada funcionario, como as tambin su nombre de usuario y contrasea. Proceso: Segn los permisos que se le otorgan a un usuario, se le deplegar un men con las actividades correspondientes del mismo. Salidas: No existe salida. Requerimiento funcional 18: Gestionar Costo de Referencia Introduccin: Requerimiento que permite la gestin de los costos de referencia de cada producto, para poder verificar a qu precio se compr cierto artculo a determinada fecha. Entradas: Es necesario para gestionar costos de referencia contar con una interfaz que permita registrar el precio en el que se compr un producto, pudindose actualizar el precio segn los montos de las ltimas compras realizadas.

67

Captulo 4

Modelo de Requisitos

Proceso: El costo de referencia de un artculo especfico ser actualizado cada vez que se realice una compra de un producto con las mismas caractersticas. Salidas: No existe salida. 4.1.2. Requerimientos de interfaces externos Realizar el proyecto para que sus interfaces sean utilizados en un ambiente de escritorio de Windows. 4.1.3. Restricciones de diseo Se utilizar como plataforma para la implementacin del sistema, el Visual Studio.net El hardware en el que trabajara el sistema deber contar minimamente con una memoria de 512 Mb, un procesador Pentium 4 y espacio disponible en el disco duro de 2 Gb. Este equipo deber contar con un sistema operativo windows server y un sistema gestor de base de datos SQL Express instalados para ser capaz de funcionar como servidor. 4.1.4. Atributos El sistema deber contar con un estricto control de seguridad para autenticar a cada usuario, por medio de nombres de usuario y contraseas. 4.1.5. Otros Requerimientos Utilizar SQL Server 2005 Express Edition como sistema gestor de base de datos, ya que nos ofrece la licencia gratuita del mismo. Realizar Reportes utilizando como herramientas Reporting Service.

68

Captulo 4

Modelo de Requisitos

4.2. Especificacin Complementaria Requerimientos Funcionales. #


RF1 RF2 RF3 RF4 RF5 RF6 RF7 RF8 RF9 RF10 RF11 RF12 RF13 RF14 RF15 RF16 RF17 RF18

Requerimiento
Registrar Venta. Registrar Compra. Gestionar Cliente. Gestionar Empleado. Registrar Pedidos al Dpto de Inventarios. Registrar Devoluciones al Dpto de Inventarios. Registrar Pedidos a Proveedores Registrar Devoluciones a Proveedores Gestionar Proveedor. Gestionar Cargo. Gestionar Producto. Gestionar Caja. Aperturar Cajas. Cerrar Cajas. Gestionar Usuarios del Sistema. Gestionar Costo de Referencia. Gestionar Marca del Producto.

Necesidad
Esencial Esencial Esencial Condicional Esencial Esencial Esencial Esencial Esencial Condicional Condicional Condicional Esencial Condicional Condicional Condicional Condicional

Estado
Cerrado Cerrado Cerrado Cerrado Cerrado Cerrado Cerrado Cerrado Cerrado Cerrado Cerrado Cerrado Cerrado Abierto Cerrado Abierto Cerrado Cerrado

Versin
3 2 2 1 2 2 2 2 2 1 1 1 2 2

1 1

Gestionar Categora del Condicional Producto.

69

Captulo 4

Modelo de Requisitos

Requerimientos No Funcionales. Requerimiento RNF1 RNF2 RNF3 RNF4 RNF5 RNF6 Descripcin Estricto control de seguridad para autenticar a cada usuario. Realizar Backups peridicamente a travs del sistema. Realizar Reportes utilizando como herramientas Reporting service. Utilizar como plataforma Visual Studio.net Utilizar SQL Server Express como sistema gestor de base de datos. Realizar el proyecto para su utilizacin en ambiente Windows.

4.3. Actores y Clasificacin Actor Administrador del Sistema Descripcin Se encarga de la Administracin General del sistema brindando un soporte en caso de presentarse fallas o se necesite apoyo del mismo. De igual manera se encarga de realizar la gestin de empleados, cargos, cajas, usuarios y sus permisos. Encargado de Ventas Tiene la funcin de vender gestionar
70

productos, acorde a la modalidad correspondiente,

Captulo 4

Modelo de Requisitos

clientes, gestionar los Pedidos al Dpto de Inventarios y Gestionar las Encargado de Compras Devoluciones la funcin cuando al de el Dpto de Inventarios. Tiene comprar Gerente productos

General lo disponga, de igual manera ser el encargado de gestionar productos, gestionar y la que proveedores, Cajero Tiene como del pedidos finalidad dinero

devoluciones a proveedores. administracin cerrar la misma.

ingresa a una caja, aperturar y

71

Captulo 4

Modelo de Requisitos

4.4. Diagrama de Casos de Uso


uc Diagrama de Casos de Usos Disgrama General de Casos de Uso

Gestionar Caj a

Gestionar Cargo Administrador del Sistema Gestionar Empleado Aperturar Caj as

Cerrar Caj as Disminuir stock Caj ero Registrar Pedidos al Dpto de Inv entarios include

Registrar Venta Encargado de Ventas Registrar Dev oluciones al Dpto de Inv entarios Gestionar Cliente Gestionar Proveedor Aumentar stock

include

Gestionar Costo de Referencia

include

Registrar Compra

Encargado de Compras

Registrar Dev oluciones a Prov eedores Gestionar Marca

Gestionar Categora

Registrar Pedidos a Prov eedores

Gestionar Producto

Figura 12 .- Diagrama General de Casos de Uso Fuente: Elaboracin Propia.

72

Captulo 4

Modelo de Requisitos

Requerimientos de Reportes del Sistema


uc Diagrama de CDU Reportes Diagram a de Caso de Uso - Reportes del Sistema

Generar Reporte de Venta Generar Reporte Pedido Inv entario Encargado de Ventas Generar Reporte De Dev olucin a Inv entario Generar Reporte de Compras

Encargado de Compras

Generar Reporte Pedido a Prov eedor

Generar Reporte Dev olucin a Prov eedor Generar Reporte de Fluj o de Caj a Caj ero

Figura 13.- Diagrama de Casos De Uso - Reportes del Sistema Fuente: Elaboracin Propia.

Requerimientos Administrativos del Sistema


uc Diagrama de CDU Administracin del Sistema Diagrama de Casos de Uso - Administracin del Sistema

Gestionar Usuarios y Permisos del sistema

Administrador del Sistema

Generar Copia de Seguridad de la Base de Datos

Figura 14.- Diagrama de Caso de Uso de Requerimientos Administrativos del Sistema Fuente: Elaboracin Propia.

73

Captulo 5

Modelo de Anlisis

5. MODELO DE ANLISIS: En ste modelo se analizan los requisitos que se detallan en la captura de requisitos, en donde se refinarn y estructurarn de manera especfica, para poder conseguir una mejor comprensin de los requisitos y poder estructurar el sistema en su integridad. 5.1. Modelo de Comportamiento Para el modelo de comportamiento se tomarn en cuenta los casos de uso considerados esenciales para el funcionamiento del sistema, los cuales estn descrito en el Captulo 4.2 (Especificacin complementario de requerimientos funcionales) es por esto que no todos los casos estn especificados a continuacin. Casos de Uso Esenciales: Registrar Venta; Registrar Compra; Gestionar Cliente; Gestionar Proveedor; Registrar Pedidos al Dpto de Inventario; Registrar Devolucin al Dpto de Inventario; Aperturar Caja; Registrar Pedidos a Proveedores; Registrar Devoluciones a Proveedores.

74

Captulo 5

Modelo de Anlisis

Descripcin de los casos de uso Esencial.Nro. Caso de Uso Nombre Caso de Uso: Tipo: Propsito: 1 Actor Principal: Registrar Venta Esencial. Registrar una venta en el sistema. Encargado Ventas. de

Resumen: En este caso de uso se realiza la venta del producto, tomando en cuenta si el tipo de modalidad de la venta es en efectivo o financiado. Precondiciones: 1) El encargado de ventas deber autenticarse en el sistema y verificar si el producto existe en stock (caso contrario se debe realizar la compra). Curso Normal Accin del Actor: Respuesta del Sistema:

1.- Inicia el proceso para registrar una 2.- El sistema muestra un formulario en venta. datos necesarios para la venta. venta. formulario. donde se debe seleccionar la caja, el artculo y el almacn del que se extraer el 5.- El sistema Valida que los datos, sean 6.- El sistema guarda los datos de la Venta con su respectivo Detalle. 7.El sistema notifica que el nuevo registro ha tenido xito. 8.- El sistema almacena dichos datos. Curso Alterno: En caso de que el cliente solicite una venta por medio de financiamiento, el mismo debe primero apersonarse por la cooperativa Nuestra Seora de Cotoca, para que sta se encargue de realizar su plan de pago para posteriormente desembolsar el dinero a Mucha Cosa. Pos condiciones: Guardar informacin en el sistema de Inventarios y disminuir stock de Inventarios. Realizar Reporte de la Venta. 3.- El actor selecciona e introduce los producto, el cliente al que se le vender el 4. Realiza la accin para registrar la producto. 9.- El Encargado de ventas cierra el correctamente ingresados.

75

Captulo 5

Modelo de Anlisis

Diagrama de Caso de Uso


uc Diagrama de caso de uso de cada uno Ventas

<<include>> Gestionar Venta include

Generar Reporte

Encargado de Ventas

Disminuir stock

Figura 15.- Diagrama de Caso de Uso Registrar Venta Fuente: Elaboracin Propia.

Diagrama de Clases Registrar Venta


class Diagrama de clases de cada caso de uso Gestionar Venta Sistema de Inventario Almacen column idalmacen nombre direccion telefono Sistema de Compras y Ventas Empleado Efectua * * 1 column IdEmpleado nombre app apm direccion fechaContrato Ci

Venta column IdVenta fechaVenta 1..*

1 Contiene 1..*

Se-Realiza

DetalleVenta column cantidad precioVenta

Caj a column idCaja nombre estado 1 Cliente column idCliente direccion telefono nit

Se realiza 1..* Se-Registra 1 Producto column idproducto descripcion porcentajeGanancia costoDeVenta

Figura 16.- Diagrama de Clases del Caso de Uso Registrar Venta Fuente: Elaboracin Propia.

76

Captulo 5

Modelo de Anlisis

Diagrama de Colaboracin Registrar Venta

sd Diagramas de colaboracion Gestionar Venta Sistema de Inventario

Almacen 1.6 CargarAlmacen ( ) 1.12 Registra Salida de Producto ( ) Sistema de Compras y Ventas 1.8 ValidarDatos 1.2 CargarCaj a ( )

IuRegistrarVenta 1.3 CargarProducto ( )

Caja

1.1 IniciaForm 1.7 IntroduceVentaYSeleccionaDatos ( ) 1.13 MostrarMensajeDeRegistro 1.14 CierraForm

1.9 Guardar ( )

1.4 CargarEmpleado ( )

Producto

1.5 CargarCliente ( ) Empleado 1.11 Guardar Detalle( ) Encargado de Ventas Cl iente DetalleVenta Venta Ctrl Venta 1.10 Guardar ( )

Figura 17.- Diagrama de Colaboracin Registrar Venta Fuente: Elaboracin Propia.

77

Captulo 5

Modelo de Anlisis

Nro. Caso de Uso: Nombre Caso de Uso: Tipo: Propsito: General lo requiera. Precondiciones:

Actor Principal: Registrar Compra Esencial.

Encargado Compras.

de

Registrar una compra en el sistema.

Resumen: En este caso de uso la compra del producto se realizar cuando el Gerente 1) El encargado de compras deber autenticarse en el sistema y Curso Normal Accin del Actor: venta. a registrar. accin necesaria para registrar la compra. compra. Respuesta del Sistema: donde se debe adicionar los productos que almacn al que se ingresarn los mismos. correctamente ingresados. 8.El sistema notifica que el nuevo

verificar si no existe stock del producto.

1.- Inicializa el proceso para registrar una 2.- El sistema muestra un formulario en 3.- El actor ingresa y selecciona los datos se estn comprando, el proveedor y el 4.- El Encargado de compras realiza la 5.- El sistema Valida que los datos sean 10.- El actor cierra el formulario de 6.- El sistema guarda los datos. registro ha tenido xito. 9.- El sistema almacena dichos datos. Curso Alterno: Si los proveedores habituales no tienen el producto requerido se deber tomar en cuenta otros posibles proveedores. Pos condiciones: Pedir al proveedor el recibo correspondiente junto con la garanta del artculo adquirido. Generar Reporte de la compra realizada. Registrar la entrada de productos en el almacn y aumentar el stock del mismo. Registrar los Costos de Referencia para actualizar el precio del producto.

78

Captulo 5

Modelo de Anlisis

Diagrama de Caso de Uso

uc Diagrama de caso de uso de cada uno Compras

Generar Reporte <<i nclude>> Gestionar Compra Encargado de Compras include Aumentar stock

Figura 18.- Diagrama de Caso de Uso Registrar Compra Fuente: Elaboracin Propia.

Diagrama de Clases Registrar Compra


class Diagrama de clases de cada caso de uso Compra Sistema de Compra y Venta Empleado Almacen column idalmacen nombre direccion telefono column IdEmpleado Extrae-Producto Real iza nombre column app 1 * 1..* 1 IdCompra apm fechaCompra direccion 1 fechaContrato Se-Efecta 1 ci Contiene 1..* Compra DetalleCompra 1..* column cantidad precioCompra 1..* Se-Registra 1 Producto column idproducto descripcion porcentajeGanancia costoDeVenta Prov eedor column idproveedor direccion telefono nit

Sistema de Inventario

Figura 19.- Diagrama de Clases Registrar Compra Fuente: Elaboracin Propia.

79

Captulo 5

Modelo de Anlisis

Diagrama de Colaboracin Registrar Compra

sd Diagramas de colaboracion Gestionar Compra Sistema de Inventari o

Al amacen 1.5 CargarAlmacen ( ) 1.11 Registra entrada de producto ( ) Sistema de Compra y Venta 1.6 ValidarDatos

1.2 CargarEmpleado ( ) IuRegistrarCompra 1.1 Inici aForm 1.5 IntroduceCompraYSel eccionaDatos 1.12 MostrarMensajeDeRegi stro 1.7 Guardar ( ) 1.13 CierraForm Empl eado 1.3 CargarProveedor ( )

1.4 CargarProducto ( ) Proveedor

Encargado de Compras

CtrlCompra

1.9 GuardarDetalle ( )

1.10 ActualizaCostodeReferencia ( ) Producto 1.8 GuardarCompra ( )

Detall eCompra

Compra

ProveedorProducto

Figura 20.- Diagrama de Colaboracion Registrar Compra Fuente: Elaboracin Propia.

80

Captulo 5

Modelo de Anlisis

Nro. Caso de Uso: Nombre Caso de Uso: Tipo: Propsito:

Actor Principal: Encargado de Ventas. Gestionar Cliente. Esencial. Registrar un cliente.

Resumen: En este caso de uso se realiza la gestin de un cliente, ya sea natural o jurdico para el registro de sus datos en el sistema. Precondiciones: 1) El encargado de Ventas debe autenticarse y verificar si el cliente no se encuentra registrado en el sistema. Curso Normal Accin del Actor: un cliente. registrar. formulario. Respuesta del Sistema: donde se deben introducir los datos y se o Jurdico. correctamente ingresados. 5.- El sistema guarda los datos. 6.-El sistema notifica que el nuevo registro ha tenido xito. Curso Alterno: Dependiendo de la seleccin de tipo (Natural o Jurdico) se 1.- Inicializa el proceso para la gestin de 2.- El sistema muestra un formulario en 3.- El actor digita y selecciona los datos a debe seleccionar el tipo de cliente: Natural 7.- El Encargado de Ventas cierra el 4.- El sistema Valida los datos, que sean

desplagarn los datos correspondientea para el llenado especfico de cada uno. Si el actor no llena correctamente todos los campos que son obligatorios, el sistema desplegar un mensaje indicando el error de insercin o los datos faltantes.
Pos condiciones: No existen pos-condiciones para este caso de uso.

81

Captulo 5

Modelo de Anlisis

Diagrama de Caso de Uso

uc Diagrama de caso de uso de cada uno Gest. Cliente

Gestionar Cliente Encargado de Ventas

Figura 21.- Diagrama de Caso de Uso Gestionar Cliente Fuente: Elaboracin Propia.

Diagrama de Clases Gestionar Cliente

class Diagrama de clases de cada caso de uso Gestionar Cliente Cliente column idCli ente direccion telefono nit

Natural column app apm nombre ci

Juridico column razonSocial

Figura 22.- Diagrama de Clases Gestionar Cliente Fuente: Elaboracin Propia.

82

Captulo 5

Modelo de Anlisis

Diagrama de Colaboracin Gestionar Cliente

sd Diagramas de colaboracion Gestionar Cliente

1.4 ValidarDatos

Dependiendo de la seleccin del Encargado de Ventas, ya sea "Natural" o "Juridico" la clase de control se encargar de guardar el registro ya sea en la entity "Natural" o "Juridico".

1.1 IniciaForm 1.2 IntroduceDatosYSeleccionaNatural-Juridico 1.3 Guardar 1.7 MostrarMensajeDeRegistro 1.8 CierraForm

IuCliente

1.5 Guardar ( ) Cliente

1.6 Guardar ( ) 2.3 ValidarDatos

2.5 Modificar ( ) 3.4 Eliminar ( )

2.1 2.2 2.7 2.8

IniciaForm ModificarDatosYGuardar MostrarmensajeDeRegistro CierraForm IuCliente

2.4 Modificar ( )

CtrlCliente 1.7 (Si Natural) GuardarNatural ( ) 1.7 (Si Juridico) Guardar Juridico

Encargado de Ventas 3.1 IniciaForm 3.2 SeleccionaClienteYElimina ( ) 3.4 CierraForm 3.3 Eliminar ( )

2.6 (Si Natural) Modificar Natural ( )

2.6 (Si Juridico) Modificar Juridico ( )

3.5 (Si Natural) Eliminar Natural ( )

IuCliente

3.5 (Si Juridico) Eliminar Juridico ( )

Juridico

Natural

Figura 23.- Diagrama de Colaboracin Gestionar Cliente Fuente: Elaboracin Propia.

83

Captulo 5

Modelo de Anlisis

Nro. Caso de Uso: Nombre Caso de Uso: Tipo: Propsito:

Actor Principal: Encargado de Compras. Gestionar Proveedor. Esencial. Registrar los proveedores.

Resumen: En este caso de uso se realiza la gestin de un proveedor, ya sea natural o jurdico para registrar sus datos en el sistema. Precondiciones: 1) El encargado de compras deber autenticarse en el sistema para posteriormente poder realizar el registro de un proveedor. Curso Normal Accin del Actor: proveedor. registrar. formulario. Respuesta del Sistema: donde se deben introducir los datos y se Natural o Jurdico. correctamente ingresados. 5.- El sistema guarda los datos. 6.El sistema notifica que el nuevo registro ha tenido xito. Curso Alterno: Dependiendo de la seleccin de tipo (Natural o Jurdico) se desplagarn los datos correspondientea para el llenado especfico de cada uno. Si el actor no llena correctamente todos los campos que son obligatorios, el sistema desplegar un mensaje indicando el error de insercin o los datos faltantes. Pos condiciones: No existen pos-condiciones. 1.- Inicializa el proceso para gestionar un 2.- El sistema muestra un formulario en 3.- El actor digita y selecciona los datos a debe seleccionar el tipo de proveedor: 7.- El encargado de compras cierra el 4.- El sistema Valida que los datos sean

84

Captulo 5

Modelo de Anlisis

Diagrama de Caso de Uso


uc Diagrama de caso de uso de cada uno Gest.Prov eedor

Gestionar Prov eedor

Encargado de Compras

Figura 24.- Diagrama de Caso de Uso Gestionar Proveedor Fuente: Elaboracin Propia.

Diagrama de Clases Gestionar Proveedor


class Diagrama de clases de cada caso de uso Gestionar Pro... Prov eedor col umn i dProveedor direccion telefono nit

Natural Juridico column nombre app apm ci column razonSocial

Figura 25.- Diagrama de Clases Gestionar Proveedor Fuente: Elaboracin Propia.

85

Captulo 5

Modelo de Anlisis

Diagrama de Colaboracin Gestionar Proveedor

sd Diagramas de colaboracion Gestionar Prov eedor 1.3 ValidarDatos Dependiendo de la seleccin del tipo, ya sea "Natural" o "Juridico" la clase de control se encargar de guardar el registro ya sea en la entity "Natural" o "Juridico". IuProveedor 1.1 1.2 1.7 1.8 IniciaForm IntroduceDatosYGuarda ( ) MostrarMensajeDeRegistro CierraForm

1.4 Guardar ( ) Proveedor

1.5 Guardar ( )

2.4 ValidarDatos 2.1 2.3 2.7 2.8 IniciaForm SeleccionaYModificaDatosProveedor ( ) MostrarMensajeDeRegistro CierraForm IuProveedor Encargado de Compras 3.1 IniciaForm 3.3 SeleccionaProveedoraEliminar ( ) 3.5 FinalizaForm

2.6 Modificar ( ) 3.5 Elim inar ( ) 2.5 Modificar ( )

CtrlProveedor

3.4 Eliminar ( ) 1.6 (Si Natural) Guardar Natural ( )

1.6 Si Juridico ( ) Guardar Juridico 2.7 (Si Juridico) Modificar Juridico ( )

2.7 (Si Natural) Modificar Natural ( )

IuProveedor

3.5 (Si Juridico) Eliminar Juridico ( )

3.5 (Si Natural) Eliminar Natural ( )

Juridico

Natural

Figura 26.- Diagrama de Colaboracion Gestionar Proveedor Fuente: Elaboracin Propia.

86

Captulo 5

Modelo de Anlisis

Nro. Caso de Uso: Nombre Caso de Uso: Tipo: Propsito:

Actor Principal: Encargado de Ventas. Registrar Pedidos al Dpto de Inventarios. Esencial. Registrar el pedido que se realiza a un almacn.

Resumen: En este caso de uso se realiza la gestin de un pedido al Dpto de inventarios, que lo realiza el encargado de ventas en caso de que se requiera el producto. Precondiciones: 1) El administrador del sistema deber autenticarse en el sistema para posteriormente poder seleccionar en el formulario inicial cualquiera de las opciones para gestionar los pedidos al Dpto de inventarios inicializando dicho formulario. Curso Normal Accin del Actor: pedido a Inventario. registrar. formulario. Respuesta del Sistema: donde se debe registrar el empleado que requerido. correctamente ingresados. 5.- El sistema guarda los datos. 6.-El sistema notifica que el nuevo registro ha tenido xito mostrando un mensaje. Curso Alterno: En caso de que no se lograra concretar el pedido, se anular el mismo. Si el Dpto de Inventarios no cuenta con el producto pedido, el Gerente debe analizar y ordenar la compra del mismo. Pos condiciones: Generar Reporte de los pedidos efectuados al Dpto. de Inventarios. Modificar la existencia de productos en el almacn al que se realiz el pedido. 1.- Inicializa el proceso para registrar el 2.- El sistema muestra un formulario en 3.- El actor digita y selecciona los datos a efecta el pedido, el almacn y el producto 7.- El Encargado de ventas cierra el 4.- El sistema Valida que los datos sean

87

Captulo 5

Modelo de Anlisis

Diagrama de Caso de Uso

uc Diagrama de caso de uso de cada uno Gest. Pedidos a Inv entario

Registrar Pedidos al Dpto de Inv entarios Encargado de Ventas

<<include>>

Generar Reporte Pedidos a Inv entario

Figura 27.- Diagrama de Caso de Uso Registrar Pedidos al Dpto de Inventarios Fuente: Elaboracin Propia.

Diagrama de Clases Registrar Pedidos al Dpto de Inventarios

class Diagrama de clases de cada caso de uso Gest.Pedidos al Dpto de Inv entarios Sistema de Compra y Venta Sistema de Inventario Empleado Almacen PedidoInv entario column idalmacen nombre direccion telefono Se-Efecta 1 1..* column idPedidoInventario fechaPedido 1 Contiene 1..* DetallePedidoInv entario column cantidad Producto column idproducto 1 descripcion porcentajeGanancia costoDeVenta Registra 1..* 1 column idEmpleado nombre app apm direccin fechaContrato ci

1..*

Figura 28.- Diagrama de Clases Registrar Pedidos al Dpto de Inventarios Fuente: Elaboracin Propia.

88

Captulo 5

Modelo de Anlisis

Diagrama de Colaboracin Registrar Pedidos al Dpto de Inventarios

sd Diagramas de colaboracion Gestionar Pedidos A Inv entarios Sistema de Inventario

Almacen 1.4 CargarAlmacen ( ) 1.10 Registrar Salida del Producto ( ) Sistema de Compra y Venta 1.6 ValidarDatos 1.2 Cargar DatosDel Empleado Encargado ( ) 1.1 IniciaForm 1.5 SeleccionaEIngresaDatos ( ) 1.11 MostrarMensajeDeRegistro 1.12 CierraForm

IuPedidoInventario 1.3 CargarProducto ( ) 1.7 Guardar ( )

Empleado

Encargado de Ventas CtrlPedidoInventario 1.9 GuardarDetallePedido( )

1.8 GuardarPedido ( )

Producto

PedidoInventario DetallePedidoInventario

Figura 29.- Diagrama de Colaboracion Registrar Pedidos al Dpto de Inventarios Fuente: Elaboracin Propia.

89

Captulo 5

Modelo de Anlisis

Nro. Caso de Uso: Nombre Caso de Uso: Tipo: Propsito:

Actor Principal: Encargado de Ventas. Registrar Inventarios. Esencial. Registrar las devoluciones que se efectan al Dpto de Inventarios. Devoluciones al Dpto de

Resumen: En este caso de uso se realiza la gestin de una devolucin de producto al Dpto de inventario que lo realiza el encargado de ventas. Precondiciones: 1) El encargado de ventas deber autenticarse en el sistema para posteriormente poder seleccionar en el formulario inicial cualquiera de las opciones para gestionar las devoluciones al Dpto de Inventarios inicializando dicho formulario. Curso Normal Accin del Actor: una devolucin a un Almacn. registrar. formulario. Respuesta del Sistema: donde se deben introducir los datos como productos, la fecha y la cantidad de los 4.- El sistema Valida que los datos sean correctamente ingresados. 5.- El sistema guarda los datos. 6.El sistema notifica que el nuevo registro ha tenido xito. Curso Alterno: En caso de que no se lograra concretar la devolucin, se realizar la anulacin del mismo. Pos condiciones: Generar Reporte de las devoluciones a Inventarios. Modificar la existencia de productos en el almacn al que se realiz el pedido. 1.- Inicializa el proceso para el registro de 2.- El sistema muestra un formulario en 3.- El actor digita y selecciona los datos a el almacn al que se devuelve los 7.- El Encargado de Ventas cierra el mismos.

90

Captulo 5

Modelo de Anlisis

Diagrama de Caso de Uso

uc Diagrama de caso de uso de cada uno Gest.Dev oluciones a Inv entario

Registrar Dev oluciones al Dpto de Inv entarios Encargado de Ventas

<<include>>

Generar Reporte Dev oluciones a Inv entario

Figura 30.- Diagrama de Caso de Uso Registrar Devoluciones al Dpto de Inventarios Fuente: Elaboracin Propia.

Diagrama de Clases Registrar Devoluciones al Dpto de Inventarios


class Diagrama de clases de cada caso de uso Gesti. Dev oluciones al Dpto de Inv entarios Sistema de Compra y Venta Sistema de Inventario Empleado Almacen column idalmacen nombre direccion telefono Se-Efecta-a 1 1..* Dev olucionInv entario column idDevolucionVenta fechaDevolucion 1 Contiene 1..* DetallePedidoInv entario:: DetalleDev olucionInv entario col umn cantidad column idEmpleado Realiza nombre app 1..* 1 apm direccion fechaContrato ci Producto Se-Registra 1..* column idProducto 1 descripcion porcentajeGanancia costoDeVenta

Figura 31.- Diagrama de Clases Registrar Devoluciones al Dpto de Inventarios Fuente: Elaboracin Propia.

91

Captulo 5

Modelo de Anlisis

Diagrama de Colaboracin Registrar Devoluciones al Dpto de Inventarios

sd Diagramas de colaboracion Dev oluciones a Inv entario Si stema de Inventario

Almacen

1.4 CargarAl macen ( ) 1.10 Regi strarEntrada De Producto ( ) Sistema de Compra y Venta 1.2 CargarEmpleado ( ) 1.6 ValidarDatos Em pl eado 1.3 CargarProducto ( ) 1.1 Ini ciaForm 1.5 IntroduceDatosaRegi strar 1.11 MostrarMensaj eDeRegistro 1.12 Final izaForm

IuDevol ucionesInventario Producto

1.7 Guardar ( ) 1.8 GuardarDevoluci on ( ) Encargado de Ventas CtrlDevoluci onInventario Devol ucionInventario 1.9 GuardarDetall eDevol ucion ( )

DetalleDevoluci onInventari o

Figura 32.-Diagrama de colaboracin Registrar Devoluciones al Dpto de Inventarios Fuente: Elaboracin Propia.

92

Captulo 5

Modelo de Anlisis

Nro. Caso de Uso: Nombre Caso de Uso: Tipo: Propsito:

Actor Principal: Cajero. Aperturar Cajas. Esencial. Registrar la apertura de una caja.

Resumen: En este caso de uso se realiza la apertura de una caja, la misma que es realizada por el cajero, tomando en cuenta el monto con el que se aperturar dicha caja y la fecha de la apertura. Precondiciones: 1) El cajero deber autenticarse en el sistema para posteriormente poder seleccionar en el formulario inicial la apertura de una caja. Curso Normal Accin del Actor: caja. registrar. 7.- El cajero cierra el formulario. Respuesta del Sistema: donde se deben introducir los datos debe seleccionar la caja que se 1.- Inicia el proceso para aperturar una 2.- El sistema muestra un formulario en 3.- El actor digita y selecciona los datos a necesarios para aperturar una caja y se aperturar. 4.- El sistema Valida que los datos sean correctamente ingresados. 5.- El sistema guarda los datos. 6.El sistema notifica que el nuevo registro ha tenido xito. Curso Alterno: En caso de no existir efectivo para aperturar una caja de igual manera se deber habilitar la misma. Pos condiciones: No existen pos-condiciones.

93

Captulo 5

Modelo de Anlisis

Diagrama de Caso de Uso

uc Diagrama de caso de uso de cada uno Aperturar Caj a

Aperturar Caj as Caj ero

Figura 33.- Diagrama de Caso de Uso Aperturar Cajas Fuente: Elaboracin Propia.

Diagrama de Clases Aperturar Cajas

class Diagrama de clases de cada caso de uso Aperturar Caj as Empleado column idempleado nombre app apm direccion fechaContrato ci 1 Real iza 1..* AperturaCaj a column idAperturaCaja fecha monto Se- Efectua 1 1 Caj a column idcaja nombre estado

Figura 34.- Diagrama de Clases Aperturar Cajas Fuente: Elaboracin Propia.

94

Captulo 5

Modelo de Anlisis

Diagrama de Colaboracin Aperturar Caja

sd Diagramas de colaboracion Aperturar Caj a

1.2.CargarEmpleado ( ) 1.5.ValidarDatos

Empl eado 1.3.CargarCaja ( )

1.1 Ini ci aForm 1.4 IntroduceDatosyGuarda 1.9 MostrarMensajeDeRegi stro 1.10 Ci erraForm

Caja 1.8 Modifi carEstado ( ) 1.6 GuardarApertura ( )

IuAperturaCaja Caj ero CtrlAperturaCaj a 1.7 GuardarApertura ( )

AperturaCaj a

Figura 35.- Diagrama de Colaboracin Aperturar Cajas Fuente: Elaboracin Propia.

Nro. Caso de Uso: Nombre Caso de Uso: Tipo: Propsito:

Actor Principal: Encargado de Compras. Registrar Pedidos a Proveedores. Esencial. Registrar los pedidos efectuados a los proveedores.

Resumen: En este caso de uso se realiza la gestin de un pedido a un proveedor, realizado por el encargado de compras. Esto se lo representa como una nota que se registra en el sistema. Precondiciones: 1) El Encargado de Compras deber autenticarse en el sistema para posteriormente seleccionar en el formulario inicial la opcin para gestionar un pedido. Curso Normal Accin del Actor: pedido. registrar. Respuesta del Sistema: donde se debe registrar el empleado que producto requerido. 1.- Inicia el proceso para registrar el 2.- El sistema muestra un formulario en 3.- El actor digita y selecciona los datos a efecta el pedido, el proveedor y el

95

Captulo 5

Modelo de Anlisis

7.- El Encargado de Compras cierra el 4.- El sistema Valida que los datos sean formulario. correctamente ingresados. 5.- El sistema guarda los datos. 6.-El sistema notifica que el nuevo registro ha tenido xito. Curso Alterno: En caso de que no se lograra concretar el pedido, se anular el mismo. Si un proveedor no cuenta con el pedido del producto requerido se debe recurrir a otros proveedores. Pos condiciones: Generar Reporte de los pedidos que se realizaron a los proveedores.

Diagrama de Caso de Uso

uc Diagrama de caso de uso de cada uno Pedido Prov eedor

Registrar Pedidos a Prov eedores Encargado de Compras

<<i nclude>>

Generar Reporte Pedidos a Prov eedores

Figura 36.- Diagrama de Caso de Uso Registrar Pedidos a Proveedores Fuente: Elaboracin Propia.

96

Captulo 5

Modelo de Anlisis

Diagrama de Clases Registrar Pedidos a Proveedores


class Diagrama de clases de cada caso de uso Gest Pedidos a Prov eedores Empleado column idempleado nombre app apm direccion Registra telefono 1 fechaContrato ci 1..* PedidoProv eedor column idPedidoProveedor * fechaPedido 1 Contiene 1..* Producto column idProducto descripcion 1 porcentajeGanancia costoDeVenta Se-Realiza-a

Prov eedor column idproveedor 1 direccion telefono nit

DetallePedidoProv eedor column cantidad 1..*

Se-Registra

Figura 37.- Diagrama de Clases Registrar Pedidos a Proveedores Fuente: Elaboracin Propia.

Diagrama de Colaboracin Registrar Pedidos a Proveedores

sd Diagramas de colaboracion Pedidos a Prov eedor 1.6 ValidarDatos 1.2 CargarEmpleado ( ) Empl eado 1.3 CargarProducto ( ) Encargado de Compras IuPedidoProveedor 1.7 Guardar ( ) 1.4 CargarProveedor ( ) Producto

1.1 IniciaForm 1.5 SeleccionaEIngresaDatos 1.10 MostrarMensajeDeRegistro 1.11 CierraForm

1.9 GuardarDetall e ( ) DetallePedidoProveedor CtrlPedi doProveedor 1.8 GuardarPedidoProveedor ( ) Proveedor

Pedi doProveedor

Figura 38.- Diagrama de colaboracin Registrar Pedidos a Proveedor Fuente: Elaboracin Propia.

97

Captulo 5

Modelo de Anlisis

Nro. Caso de Uso: Nombre Caso de Uso: Tipo: Propsito:

Actor Principal: Encargado de Compras. Registrar Devoluciones a Proveedores. Esencial. Registrar las devoluciones a los proveedores.

Resumen: En este caso de uso se realiza la devolucion de productos comprados a un Proveedor. Esto es realizado por el encargado de compras. Precondiciones: 1) El Encargado de Compras deber autenticarse en el sistema para poder seleccionar en el formulario inicial cualquiera de las opciones para gestionar devoluciones. Curso Normal Accin del Actor: devolucin al proveedor. registrar. formulario. Respuesta del Sistema: donde se deben introducir los datos como productos, la fecha y la cantidad de los 4.- El sistema Valida que los datos sean correctamente ingresados. 5.- El sistema guarda los datos. 6.-El sistema notifica que el nuevo registro ha tenido xito. Curso Alterno: En caso de que la devolucin de un producto no haya sido concretada se debe anular el registro de dicha devolucin. Pos-condiciones: Generar Reporte de las devoluciones. Disminuir el stock del producto segn la cantidad devuelta. 1.- Inicia el proceso para gestionar la 2.- El sistema muestra un formulario en 3.- El actor digita y selecciona los datos a el proveedor al que se devuelve los 7.- El encargado de compras cierra el mismos.

98

Captulo 5

Modelo de Anlisis

Diagrama de Caso de Uso

uc Diagrama de caso de uso de cada uno Dev oluciones a Prov eedores

include Registrar Dev oluciones a Prov eedores Encargado de compras include

Generar Reporte Dev oluciones a Prov eedores

Disminuir stock

Figura 39.- Diagrama de Caso de Uso Registrar Devoluciones a Proveedores Fuente: Elaboracin Propia.

Diagrama de Clases Registrar Devoluciones a Proveedores

class Diagrama de clases de cada caso de uso Gest. Dev oluciones a Prov eedores Compra 1 column idcompra fechaCompra

Se-Realiza

Empleado * Dev olucionCompra column idDevolcuionCompra 1..* fechaDevolucion Realiza column idempleado nombre app 1 apm direccion telefono fechaContrato ci

1 Contiene

1..* DetalleDev olucion column idDetalleDevolucion canti dad Se-Registra 1..*

Producto column idproducto descripcion 1 porcentajeGanancia costoDeVenta

Figura 40.- Diagrama de Clases Registrar Devolucion a Proveedores Fuente: Elaboracin Propia.

99

Captulo 5

Modelo de Anlisis

Diagrama de Colaboracin Registrar Devoluciones a Proveedores


sd Diagramas de colaboracion Dev oluciones a Prov eedor 1.7 Vali daDatos 1.2 CargarCompra ( )

IuDevolucionProveedor

1.3 CargarEmpl eado ( )

Compra

1.4 CargarProducto ( ) Empleado 1.5 CargarProveedor ( ) 1.Ini ciaForm 1.6 SeleccionaEIngresaDatos ( ) 1.11 MostrarMensajeDeRegistro 1.12 CierraForm

1.8 Guardar ( )

Producto

Proveedor

Ctrl DevolucionProveedor

Encargado de Compras 1.9 GuardarDevolucionProveedor ( ) 1.10 GuardarDetalle ( )

DetalleDevolucionCompra

DevolucionCompra

Figura 41.-Diagrama de Colaboracin Registrar Devoluciones a Proveedores Fuente: Elaboracin Propia.

100

Captulo 5

Modelo de Anlisis

5.2. Modelo de Clases en Vista de Anlisis


class Diagrama de clases en v ista analisis Sistema de Compra y Venta Realiza Registra-ingreso-a Cliente idcliente direccion telefono nit Cargo idcargo nombre 1 * 1 Pertenece 1 Empleado Natural app apm nombre ci idempleado nombre Juridico app apm razonSocial direccion fechaContrato Se-Realiza ci 1 1 1 1 Efectua Registra 1..* PedidoInv entario idPedidoInventario fechaPedido estado 1..* Venta idventa fechaVenta estado 1 1 Contiene Contiene 1..* DetalleVenta cantidad precioventa 1..* Contiene 1..* 1 1 Usuario idUsuario nombreUsuario contrasea 1 Obtiene-Producto-De 1..* DetalleDev olucionInv entario cantidad 1..* 1 Se-Registra Categoria idcategoria nombreCategoria Se-Registra * Se- Efectua 1..* * Realiza 1..* 1 Realiza Compra idcompra 1..* fechaCompra estado 1 Contiene 1..* DetalleCompra cantidad precioCompra Es-Encargado 1 1 1 Se-Realiza Registra 1 1 Caja idcaja nombre 1 estado 1..* Contiene * 1..* Se-Realiza * 1..* 1 1..* 1..* 1 Natural Juridico razonSocial nombre app apm ci 1..* Se-Registra DetalleDev olucion cantidad * 1..* Se-Registra 1 Producto Prov eedorProducto costoDeReferencia fechaActulizacion 1..* Se-Relaciona * Se-Realiza-a Se-efectua 1 Prov eedor Se-Relaciona *

Dev olucionCompra idDevolucionCompra fechaDevolucion estado

idproveedor direccion 1 telefono nit

1..*

Tiene

PedidoProv eedor Realiza idPedidoProveedor fechaPedido 1 1..* Contiene 1..* Se-Registra

1..* Dev olucionInv entario idDevolucionVenta fechaDevolucion estado 1..* 1

1 idProducto descripcion porcentajeGanancia 1 costoDeCompra 1 1..* Pertenece 1

1 1..* Tiene Marca idmarca nombre 1

DetallePedidoProv eedor cantidad Se- Registra

1..* DetallePedidoInv entario cantidad

AperturaCaj a idAperturaCaja fecha monto

Obtiene-producto-de

Sistema de Inventario

Almacen idalmacen nombre direccion telefono

Figura 42.- Diagrama de Clases en Vista de Anlisis Fuente: Elaboracin Propia

101

Captulo 5

Modelo de Anlisis

5.3. Modelo Dinmico

5.3.1. Diagramas de Estado


Diagrama de Estado Caja
stm Diagramas de Estado - Caj a Inicio [habilitar ( ) : int] Habilitada [des-habilitar ( ) : int] Estado de Transicion por el que pasa una caja: El Estado es Habilitado cuando una caja se encuentra aperturada Estado Des-habilitado es cuando una caja se encuentra cerrada

Estado = 0

Cerrada

Estado = 1

Figura 43. - Diagrama de Estado - Caja Fuente: Elaboracin Propia.

Diagrama de Estado Venta


stm Diagramas de Estado - Venta de Productos Inicio

[guardar ( ) : bool] Pendiente Estado= 0

[revisar ( ) : bool] Rev isin Estado=1 El estado "Pendiente" se ver refl ejado cuando el encargado de ventas dej e de introducir tems de productos por algn motivo, en este estado an no se real iza el registro de l a venta de un producto. El estado de "Revisin" de la venta se efectuar al momento de entregar el producto al cliente, es decir, que en este estado an no se realiza l a "Salida" fsica del producto del Almacn. La Ventas pasa al estado de "Aprobado" cuando se haya entregado el (l os) productos al cl iente y haya efectuado l a cancelacion de esta sin que se haya presentado ningn incoveniente. El estado Anulado se presenta cuando se requi ere la eliminacin lgica de una salida.

[i nsertar ( ) : bool] Aprobado Estado=2

[anular ( ) : bool] Anulado Estado=3

Figura 44. - Diagrama de Estado - Venta Fuente: Elaboracin Propia.

102

Captulo 5

Modelo de Anlisis

Diagrama de Estado Compra


stm Diagramas de Estado - compras de Productos Inicio

[guardar ( ) : bool] Pendiente [revisar ( ) : bool] Rev isin [insertar ( ) : bool] Aprobado [anular ( ) : bool] Anulado Estado=3

Estado= 0

Estado= 1

Estado= 2

El estado "Pendiente" se ver reflejado cuando el encargado de la compra deje de introducir tems de productos por algn motivo, en este estado an no se realiza el registro de la compra de un producto. El estado de "Revisin" de l a compra se efectuar al momento de que el proveedor entregue los productos al encargado de Compras, es decir, que en este estado an no se realiza la "Entrada" fsica del producto al Almacn. La Compra pasa al estado de "Aprobado" cuando se haya entregado el (los) productos a almacen y se haya efectuado la cancelacion de esta sin que se haya presentado ningn incoveniente. El estado Anulado se presenta cuando se requiere la eliminacin lgica de una compra.

Figura 45.- Diagrama de Estado - Compra Fuente: Elaboracin Propia.

Diagrama de Estado Devolucion Compra


stm Diagramas de Estado - Dev olucion Compra Inicio

[guardar ( ) : bool] Pendiente [revi sar ( ) : bool] Rev isin [insertar ( ) : bool] Aprobado Estado= 2 [anular ( ) : bool] Anulado Estado=3 Estado= 1 Estado= 0 El estado "Pendiente" se ver reflejado cuando el encargado de la compra deje de introducir tems de la devolucin por algn motivo, en este estado an no se realiza el registro de la devolucin de compra de un producto. El estado de "Revisin" de la devolucin se efectuar al momento de que el encargado de Compras entregue los productos al proveedor , es decir, que en este estado an no se realiza la "Salida" fsica del producto al Almacn. La Devolucion pasa al estado de "Aprobado" cuando se haya entregado el (los) productos al proveedor y se haya efectuado la devolucion del di nero por parte del mi smo sin que se haya presentado ningn incoveniente. El estado Anulado se presenta cuando se requiere la eliminacin lgica de una Devolucion de compra.

Figura 46.- Diagrama de Estado - Devolucion Compra Fuente: Elaboracin Propia.

103

Captulo 5

Modelo de Anlisis

Diagrama de Estado Pedido a Inventario


stm Diagramas de Estado - Dev olucion Compra Inicio

[guardar ( ) : bool] Pendiente [revisar ( ) : bool] Rev isin [insertar ( ) : bool] Aprobado Estado= 2 [anular ( ) : bool] Anulado Estado=3 Estado= 1 Estado= 0 El estado "Pendiente" se ver reflej ado cuando el encargado de ventas deje de introducir tems del pedido por algn motivo, en este estado an no se reali za el registro del pedido de un producto. El estado de "Revisin" del pedido a inventario se efectuar al momento de que el encargado de inventario entregue los productos al encargado de ventas, es decir, que en este estado an no se realiza la "Salida" fsica del producto del Almacn. El pedido a Inventario pasa al estado de "Aprobado" cuando se haya revisado el (los) productos y se registre el pedido ocasionando l a "Salida" del producto del almacn. El estado Anulado se presenta cuando se requiere la elim inacin lgica de un Pedido a Inventario.

Figura 47.- Diagrama de Estado - Pedido a Inventario

Fuente: Elaboracin Propia.

Diagrama de Estado Devolucion a Inventario


stm Diagramas de Estado - Dev olucion a inv entario Inicio

[guardar ( ) : bool] Pendiente [revisar ( ) : bool] Rev isin [insertar ( ) : bool] Aprobado Estado= 2 [anular ( ) : bool] Anulado Estado=3 Estado= 1 Estado= 0 El estado "Pendiente" se ver reflejado cuando el encargado de ventas deje de introducir tems de la devolucin de productos por algn motivo, en este estado an no se reali za el registro de la devolucin a Inventario. El estado de "Revisin" de la devolucin a inventario se efectuar al momento de que el encargado de ventas entregue los productos y el encargado de inventario revise los mi smos, es decir, que en este estado an no se reali za la "Entrada" fsica del producto del Almacn. La Devolucin a Inventario pasa al estado de "Aprobado" cuando se haya revisado el (los) productos y se registre la devolucin ocasionando la "Entrada" del productos al almacn. El estado Anulado se presenta cuando se requiere la elim inacin lgica de una devolucion a Inventario.

Figura 48.- Diagrama de Estado - Devolucion a Inventario Fuente: Elaboracin Propia.

104

Captulo 6

Modelo de Diseo

6. MODELO DE DISEO En el modelo de diseo se realizarn los diagramas de secuencia de cada caso de uso, las realizacion es de caso de uso en vista de diseo con sus descripciones textuales, de igual forma se realizar el diseo fsico y lgico de la base de datos. 6.1. Modelo de Comportamiento Para el modelo de comportamiento se tomarn en cuenta los casos de uso considerados esenciales para el funcionamiento del sistema, los cuales estn descrito en el Captulo 4.2 (Especificacin complementario de requerimientos funcionales) es por esto que no todos los casos estn especificados a continuacin. Casos de Uso Esenciales: Registrar Venta; Registrar Compra; Gestionar Cliente; Gestionar Proveedor; Registrar Pedidos al Dpto de Inventario; Registrar Devolucin al Dpto de Inventario; Aperturar Caja; Registrar Pedidos a Proveedores; Registrar Devoluciones a Proveedores.

105

Captulo 6

Modelo de Diseo

N Caso de Uso Nombre Caso Uso Tipo Propsito Referencias Resumen

Actor Principal Encargado de Ventas. Registrar Venta Esencial Gestionar una venta en donde se introduzcan todos los datos como empleado que vendi un producto, a qu cliente y qu producto entre otros. Ninguna En este caso de uso se realiza la gestin de una venta, la misma que a su vez realizara una salida de producto en el almacn. Curso Normal

Accin del Actor Respuesta del Sistema 1. Abre el formulario y elige Gestionar 2. Prepara e inicializa el formulario de la Ventas. venta. 3. Habilita los campos de texto para que el encargado de ventas introduzca los datos correspondientes: carga la fecha actual, carga los combos de caja, almacn y cliente. 4. Selecciona el almacn del 5. El sistema inserta en el detalle la comboAlmacen, el cliente del comboCliente descripcin completa del producto y la caja del comboCaja. En la grilla del incluyendo su precio de venta. Detalle pulsa click derecho para adicionar los productos a vender, la misma que desplega un formulario de bsqueda de productos. Una vez selecciona el producto, el mismo es insertado en la grilla del detalle. 6. El actor slo podr editar la cantidad del 7. El sistema calcular el total de la venta producto a vender y el dato introducido multiplicando la cantidad por el precio de deber ser un nmero entero. venta. 8. El encargado de ventas presiona el botn 9. Verifica los datos insertados de la venta. Guardar para registrar la venta. 10. Registra la venta, disminuye la cantidad de stock y muestra un mensaje indicando La Venta si ha sido registrada.

106

Captulo 6

Modelo de Diseo

Diseo de Interfaz

Consideracin de Diseo
Cdigo Descripcin El formulario deber mostrar un ID de la Venta que ser autoincrementable. Inicialmente el formulario mostrar los siguientes elementos: Id de la Venta: Campo de texto que genera un ID de la Venta automticamente ya que es autoincrementable, esto lo realiza despus de haber presionado el botn Guardar. Fecha: Campo en donde se carga la fecha actual del sistema. Caja: En este combo se selecciona la caja en la que se realiza la venta. Encargado de la Venta: Este ser registrado segn el usuario logueado. Cliente: En este combo se selecciona el cliente al que se le realiza la venta. Producto: Lista de productos con las que cuenta la empresa en stock. Al momento de seleccionar el producto, se debe insertar en un detalle en donde el formulario deber mostrar el Id del producto, la descripcin del producto, la cantidad que se desea vender y el sistema automticamente calcular el monto total de la venta. El sistema valida: Que los datos ingresados sean los correctos.

{cd1}

{cd2} {cd3}

107

Captulo 6

Modelo de Diseo

Diagrama de Clases - Registrar Venta


class Diagrama de Clases CDU Gestionar Venta Diagrama de Cl ases CDU Gestionar Venta Form boundary INTERFACES_SistemaMuchaCosa::IuVenta + + + + eliminar() : void guardar() : voi d IuVenta() modifi car() : void Se-Realiza 1 DAL.TDatosSql entity GestionarCaj a::Caj a + + + + eliminado: Int32 estado: Int32 i dcaja: Int64 montoactual: Double nombre: Int32 aBM(Uti litario.Utilitario._ABM, System.Data.SqlClient.SqlT ransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.Sql Client.SqlT ransaction) : int traer_Caja() : DataTabl e DAL.TDatosSql entity GestionarProducto::Producto + + + + costodeventa: Double descripcion: String eliminado: Int32 idcategoria: Int64 idmarca: Int64 idproducto: Int64 porcentajegananci a: Double + + + + 1..* eli minado: Int32 fechaventa: DateTime idalmacen: Int64 idcaja: Int64 idcliente: Int64 idusuario: Int64 idventa: Int64 aBM(Utilitario.Uti litario._ABM, System.Data.SqlCl ient.SqlTransaction*) : int eli minar(System.Data.SqlCli ent.Sql Transaction) : int guardar(System.Data.SqlClient.SqlT ransaction) : i nt modifi car(System.Data.SqlClient.SqlTransaction) : int traer_Venta() : DataTabl e 1 1..* contiene DAL.TDatosSql entity GestionarVenta::DetalleVenta Se-Realiza + + + + 1 DAL.TDatosSql entity GestionarCliente::Cliente + + + + di reccion: String el iminado: Int32 idcliente: Int64 ni t: String telefono: String tipo: Int32 aBM(Utili tari o.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int el iminar(System.Data.SqlCl ient.SqlTransaction) : int guardar(System.Data.SqlCli ent.Sql Transaction) : int modificar(System.Data.SqlClient.SqlT ransaction) : int traer_Cliente() : DataTable entity GestionarAlmacen::Almacen + + + + di reccionalmacen: String el iminado: Int32 idalmacen: Int64 nombrealmacen: String telefonoalmacen: String el iminar(System.Data.SqlCl ient.SqlTransaction) : int guardar(System.Data.SqlCli ent.Sql Transaction) : int modificar(System.Data.SqlClient.SqlT ransaction) : int traer_Almacen() : DataTabl e Dal.TDatosSql entity GestionarExistencia::Existencia + + + + canti dad: Int32 idalmacen: Int64 idproducto: Int64 aBM(Util itari o.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int elimi nar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlCl ient.SqlTransaction) : int modi ficar(System.Data.SqlClient.SqlT ransaction) : int traer_Exi stencia() : DataTable cantidad: Int32 eli minado: Int32 idproducto: Int64 idventa: Int64 precioventa: Double aBM(Utilitario.Uti litario._ABM, System.Data.SqlCl ient.SqlTransaction*) : int eli minar(System.Data.SqlCli ent.Sql Transaction) : int guardar(System.Data.SqlClient.SqlT ransaction) : i nt modifi car(System.Data.SqlClient.SqlTransaction) : int traer_Detalleventa() : DataTable DAL.TDatosSql * entity GestionarVenta::Venta DAL.TDatosSql + + + control GestionarVenta::CtrlVenta eliminarVenta(Negocio.GestionarVenta.Venta) : bool insertarVenta(Negocio.GestionarVenta.Venta) : bool modificarVenta(Negocio.GestionarVenta.Venta) : bool Dal .TDatosSql

Encargado de Ventas

aBM(Utilitario.Utili tario._ABM, System.Data.Sql Client.SqlT ransaction*) : i nt eliminar(System.Data.SqlClient.SqlT ransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlCli ent.Sql Transaction) : i nt traer_Producto() : DataTable

Figura 49.- Diagrama de Clases - Registrar Venta Fuente: Elaboracin Propia.

108

Captulo 6

Modelo de Diseo

Diagrama de Secuencia - Registrar Venta

sd Diagrama de Secuencia CDU Gestionar Venta

Encargado de Ventas :IuVenta IniciaForm() traer_Cliente() :DataTable traer_Almacen() :DataTable traer_Caja() :DataTable traer_Producto() :DataTable IntroduceDatos() BtnGuardar() :CtrlVenta :Venta :DetalleVenta :Cliente :Almacen :Caj a :Producto :Existencia

validar () insertarVenta(Negocio.GestionarVenta.Venta) :bool guardar(System.Data.SqlClient.SqlT ransaction) :int guardar(System.Data.SqlClient.SqlT ransaction) :int modificar(System.Data.SqlClient.SqlT ransaction) :int BtnSalir() salir()

Figura 50.- Diagrama de Secuencia - Registrar Venta Fuente: Elaboracin Propia.

109

Captulo 6

Modelo de Diseo

N Caso de Uso Nombre Caso Uso Tipo Propsito

Referencias Resumen

Actor Principal Encargado de Compras. Registrar Compra Esencial Gestionar una compra en donde se introduzcan todos los datos de la misma, especificando el empleado encargado de la compra, a qu proveedor se le compr y qu producto entre otros. Ninguna En este caso de uso se realiza la gestin de una compra, que a su vez genera una entrada a un almacn. Curso Normal

Accin del Actor Respuesta del Sistema 1. Abre el formulario y elige Gestionar 2. Prepara e inicializa el formulario de la Compras. compra. 3. Habilita los campos de texto para que el encargado de compras introduzca los datos correspondientes, carga la fecha actual, carga los combos de almacn y proveedor. 4. Selecciona el almacn del 5. El sistema inserta en el detalle la comboAlmacen, el proveedor del descripcin completa del producto. comboProveedor. En la grilla del Detalle pulsa click derecho para adicionar los productos a comprar, la misma que desplega un formulario de bsqueda de productos. Una vez seleccionado el producto el mismo es insertado en la grilla del detalle. 6. El actor slo podr editar la cantidad del 7. El sistema calcular el total de la compra producto a comprar y el precio del producto multiplicando la cantidad por el precio del a comprar los mismos que van hacer dgitos producto. numricos. 8. El encargado de compras presiona el 9. Verifica los datos de la compra botn Guardar para registrar la compra. insertados. 10. Registra la compra, aumenta la cantidad de stock y muestra un mensaje indicando que La Compra si ha sido registrada.

110

Captulo 6

Modelo de Diseo

Diseo de Interfaz

Consideracin de Diseo
Cdigo Descripcin El formulario deber mostrar un ID de la Compra que ser autoincrementable. Inicialmente el formulario mostrar los siguientes elementos: Id de la Compra: Campo que genera un ID de la Compra automticamente ya que es autoincrementable y debe asignarse una vez que el actor presiona el botn Guardar. Fecha: Campo en donde se carga la fecha actual en la que se est realizando la compra. Encargado de la Compra: Se registrar como encargado al usuario que se encuentre logueado en el sistema. Proveedor: En este campo se selecciona el proveedor. Producto: Listado general de productos para poder insertar en el detalle. Seleccin del almacn a depositar el producto: luego de haber seleccionado el producto a comprar se debe seleccionar en un combobox a qu almacn se quiere depositar dicho producto. Al momento de seleccionar un producto, el formulario deber mostrar en una grilla el Id del producto, la descripcin del producto y se ingresar la cantidad que se desea comprar para que el sistema automticamente calcule el monto total de la compra. El sistema valida: Que los datos ingresados sean los correctos.

{cd1}

{cd2} {cd3}

111

Captulo 6

Modelo de Diseo

Diagrama de Clases - Registrar Compra


class Diagrama de Clases - CDU Gestionar Compra Diagrama de Clases CDU Gestionar Compra Form boundary INTERFACES_SistemaMuchaCosa:: IuCompra + + + + guardar() : void imprimir() : void IuCompra() modificar() : void + + + control GestionarCompra::CtrlCompra eliminarCompra(Negoci o.GestionarCompra.Entrada) : bool i nsertarCompra(Negocio.GestionarCompra.Compra) : bool modificarCompra(Negocio.Gesti onarCompra.Compra) : bool DAL.TDatosSql entity GestionarCompra::Compra DAL.TDatosSql entity GestionarProv eedorProducto::Prov eedorProducto + + + + costoreferencia: Double fechaactualizacion: DateTime idproducto: Int64 idproveedor: Int64 aBM(Uti litario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Proveedorproducto() : DataTable DAL.TDatosSql entity GestionarProducto:::Producto + + + + costodeventa: Double descripcion: String eliminado: Int32 idcategoria: Int64 idmarca: Int64 idproducto: Int64 porcentajeganancia: Double entity GestionarCompra::DetalleCompra cantidad: Int32 eliminado: Int32 idcompra: Int64 idproducto: Int64 preciocompra: Double aBM(Uti litario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Detallecompra() : DataTable Dal.TDatosSql entity GestionarExistencia:::Existencia 1..* + + + + cantidad: Int32 i dalmacen: Int64 i dproducto: Int64 aBM(Uti litario.Utilitario._ABM, System.Data.Sql Client.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Existencia() : DataTable DAL.TDatosSql entity GestionarAlmacen:::Almacen + + + + direccionalmacen: String eliminado: Int32 idalmacen: Int64 nombreal macen: String telefonoalmacen: String eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.Sql Client.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Almacen() : DataTable + + + + eliminado: Int32 fechacompra: DateTime idalmacen: Int64 idcompra: Int64 idproveedor: Int64 idusuario: Int64 aBM(Utilitario.Utili tario._ABM, System.Data.SqlCl ient.Sql Transaction*) : i nt eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : i nt modificar(System.Data.Sql Client.SqlTransaction) : int traer_Compra() : DataTable 1 Contiene 1 1..* DAL.TDatosSql Dal.TDatosSql

Encargado de Compras

1..*

Se-Efectua + + aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int + eliminar(System.Data.SqlClient.SqlTransaction) : int + guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Producto() : DataT able DAL.TDatosSql entity GestionarProv eedor::Prov eedor

Se-Relaciona

+ + + +

direccionproveedor: String eliminado: Int32 idproveedor: Int64 nit: String telefonoproveedor: String tipo: Int32 aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Proveedor() : DataTable

Figura 51.- Diagrama de Clases - Registrar Compra Fuente: Elaboracin Propia.

112

Captulo 6

Modelo de Diseo

Diagrama de Secuencia - Registrar Compra

sd Diagrama de Secuencia CDU Gestionar Compra

Encargado de Compras :IuCompra IniciaForm() CargaAlmacen() CargaProductos() CargaProveedor() IntroduceDatos() guardar() :CtrlCompra :Compra :DetalleCompra :Almacen :Producto :Prov eedor :Existencia :Prov eedorProducto

vali dar ( ) insertarCompra(Negocio.GestionarCompra.Compra) :bool guardar(System.Data.SqlClient.SqlTransaction) :int guardar(System.Data.SqlCli ent.SqlTransaction) :int guardar(System.Data.SqlClient.SqlTransaction) :int modificar(System.Data.SqlClient.SqlTransaction) :int

BtnSalir()

salir()

Figura 52.- Diagrama de Secuencia - Registrar Compra Fuente: Elaboracin Propia.

113

Captulo 6

Modelo de Diseo

N Caso de Uso Nombre Caso Uso Tipo Propsito Referencias Resumen

Actor Principal Encargado de Ventas Gestionar Cliente Esencial Gestionar un cliente en donde se introduzcan todos sus datos segn el tipo de cliente, es decir si es natural o jurdico. Ninguna En este caso de uso se realiza la gestin de un cliente ya sea para insertar, modificar, eliminar los clientes. Curso Normal

Accin del Actor Respuesta del Sistema 1. Abre el formulario principal y elige 2. Prepara e inicializa el formulario del Gestionar Clientes. cliente. 3. Habilita los campos de texto para que el encargado de ventas introduzca los datos correspondientes y un combobox para que seleccione el tipo de cliente (Natural o Jurdico). 4. Selecciona el tipo de cliente a registrar y digita en los campos de texto los datos siguientes: Nombre o razon social, Apellidos, Direccin, los mismos que deben ser de tipo string. Telfono y Nit que deben ser de tipo entero. 5. El encargado de ventas presiona el botn 6. Verifica los datos del cliente insertado. Guardar para registrar el cliente. 7. Muestra un mensaje indicando que El Cliente si ha sido registrado.

Diseo de Interfaz

114

Captulo 6

Modelo de Diseo

Consideracin de Diseo
Cdigo Descripcin El formulario deber mostrar un ID Cliente que ser autoincrementable. Inicialmente el formulario mostrar los siguientes elementos: Id Cliente: Campo que genera un IdCliente automticamente ya que es autoincrementable y se genera despus de que el actor presiona el botn Guardar. Direccin: Campo de texto para ingresar la direccin del cliente. Telfono: Campo de texto para ingresar el telfono del cliente. Nit: En este campo se ingresa el nit del cliente. Se seleccionar el tipo de cliente ya sea natural o jurdico para que el sistema guarde los datos en la tabla correspondiente. En el caso de que se haya seleccionado que el cliente es natural, el formulario desplegar los siguientes elementos: Nombre: Campo en el que se introduce el nombre del cliente natural. Apellido Paterno: Campo en el que se introduce el apellido paterno del cliente. Apellido Materno: Campo en el que se introduce el apellido materno del cliente. Cdula de Identidad: Campo en el que se introduce nmero del carnet de identidad del cliente. En el caso de que se haya seleccionado que el cliente es jurdico el formulario desplegar los siguientes elementos: Razn Social: Campo en donde se introduce la razn social de la empresa o negocio. El sistema valida: Que los datos ingresados sean los correctos.

{cd1}

{cd2}

{cd3}

{cd4} {cd5}

115

Captulo 6

Modelo de Diseo

Diagrama de Clases - Gestionar Cliente

class Diagrama de Clases - CDU Gestionar Cliente Diagrama de Clases CDU Gestionar Cliente Form boundary INTERFACES_SistemaMuchaCosa:: IuCliente + + + + + eliminar() : void guardar() : void imprimir() : void IuCliente() modificar() : void Dal.TDatosSql control GestionarCliente::CtrlCliente + eliminarCliente(Negocio.GestionarCliente.Cliente, int) : bool + guardarCliente(Negocio.GestionarCliente.Cliente, int) : bool + modificarCliente(Negocio.GestionarCliente.Cliente, int) : bool

Encargado de Ventas

DAL.TDatosSql entity GestionarCliente:::Cliente + + + + direccion: String eliminado: Int32 idcliente: Int64 nit: String telefono: String tipo: Int32 aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Cliente() : DataTable

DAL.TDatosSql entity GestionarCliente::ClienteJuridico + + + + + idcliente: Int64 razonSocial: String aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Cliente() : DataTable traer_Clientejuridico() : DataTable

DAL.TDatosSql entity GestionarCliente::ClienteNatural + + + + + apm: String app: String ci: String idcliente: Int64 nombre: String aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Cliente() : DataTable traer_Clientenatural() : DataTable

Figura 53.- Diagrama de Clases - Gestionar Cliente Fuente: Elaboracin Propia.

116

Captulo 6

Modelo de Diseo

Diagrama de Secuencia - Gestionar Cliente

sd Diagrama de Secuencia CDU Gestionar Cliente

Encargado de venta :IuCliente IniciaForm() IntroduceDatos() BtnGuardar() validar () guardarCliente(Negocio.GestionarCliente.Cliente, i nt) :bool guardar(System.Data.SqlClient.SqlT ransaction) :int guardar(System.Data.SqlClient.SqlTransaction) :int guardar(System.Data.SqlClient.SqlTransaction) :int BtnSalir() Salir() :CtrlCliente :Cliente :ClienteNatural :ClienteJuridico

Figura 54.-Diagrama de Secuencia - Gestionar Cliente Fuente: Elaboracin Propia.

N Caso de Uso Nombre Caso Uso Tipo Propsito Referencias Resumen

Actor Principal Encargado de Compras Gestionar Proveedor Esencial Gestionar un proveedor en donde se introduzcan todos sus datos segn el tipo de proveedor, es decir si es natural o jurdico. Ninguna En este caso de uso se realiza la gestin de un proveedor ya sea para insertar, modificar o eliminarlo.

Curso Normal Accin del Actor Respuesta del Sistema 1. Abre el formulario principal y elige 2. Prepara e inicializa el formulario del Gestionar Proveedor. proveedor. 3. Habilita los campos de texto para que el encargado de ventas introduzca los datos correspondientes, un combobox para que seleccione el tipo de proveedor (Natural o Jurdico).

117

Captulo 6

Modelo de Diseo

4. Selecciona el tipo de proveedor a registrar y digita en los campos de texto los datos siguientes: Nombre o razon social, Apellidos, Direccin, los mismos que deben ser de tipo string. Telfono y Nit que deben ser de tipo int. 5. El encargado de compras presiona el 6. Verifica los datos del proveedor botn Guardar para registrar el proveedor. insertado. 7. Muestra un mensaje indicando que El Proveedor si ha sido registrado.

Diseo de Interfaz

Consideracin de Diseo
Cdigo Descripcin El formulario deber mostrar un ID Proveedor que ser autoincrementable. Inicialmente el formulario mostrar los siguientes elementos: IdProveedor: Campo que genera un IdProveedor automticamente ya que es autoincrementable generado despus de presionar el botn guardar. Direccin: Campo para ingresar la direccin del proveedor. Telfono: Campo para ingresar el telfono de dicho proveedor Nit: En este campo se ingresa el nit del proveedor.

{cd1}

118

Captulo 6

Modelo de Diseo
En caso de haber seleccionado un cliente Natural en el formulario se mostrarn los siguientes campos a llenar: Nombre: Campo para ingresar el nombre del cliente natural. App: Campo para ingresar el apellido paterno. Apm: Campo para ingresar el apellido materno. Ci: En el campo de Ci se debe registrar el nmero de cdula de odentidad del cliente natural. En caso de haber seleccionado un cliente Jurdico en el formulario se mostrarn los siguientes campos a llenar: Razon Social: Campo para introducir la razn social o nombre de la empresa. Se debe seleccionar el tipo de proveedor, si es natural o jurdico para que el sistema guarde los datos en la tabla correspondiente. El sistema valida: Que los datos ingresados sean los correctos.

{cd2}

{cd3} {cd4}

Diagrama de Clases - Gestionar Proveedor


class Diagrama de Clases CDU Gestionar Prov eedor

Form boundary INTERFACES_SistemaMuchaCosa:: IuProv eedor + + + + elimi nar() : void guardar() : void IuProveedor() modi ficar() : voi d control GestionarProv eedor::CtrlProv eedor + + +

Dal.TDatosSql

Encargado de Compras

eliminarProveedor(Negocio.GestionarProveedor.Proveedor, int) : bool guardarProveedor(Negocio.GestionarProveedor.Proveedor, int) : bool modificarProveedor(Negocio.GestionarProveedor.Proveedor, i nt) : bool

DAL.TDatosSql entity GestionarProv eedor:::Prov eedor + + + + direccionProveedor: String eli minado: Int32 idProveedor: Int64 nit: Stri ng tel efonoProveedor: Stri ng tipo: Int32 aBM(Uti litario.Utili tario._ABM, System.Data.SqlCli ent.SqlTransacti on*) : int eli minar(System.Data.SqlClient.SqlTransaction) : i nt guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlCli ent.SqlTransaction) : int traer_Proveedor() : DataTable

DAL.TDatosSql enti ty GestionarProv eedor::Prov eedorNatural + + + + + apmProveedor: String appProveedor: String ciProveedor: String idProveedor: Int64 nombreProveedor: String aBM (Utilitario.Utilitario._ABM, System.Data.SqlClient.Sql Transaction*) : int eliminar(System.Data.SqlClient.SqlT ransaction) : int guardar(System.Data.SqlClient.SqlT ransaction) : int modificar(System.Data.SqlClient.Sql Transaction) : int traer_Proveedor() : DataTable traer_Proveedornatural() : DataT able

DAL.TDatosSql entity GestionarProv eedor::Prov eedorJuridico + + + + + idProveedor: Int64 razonSocial: String aBM(Uti litario.Utili tario._ABM, System.Data.SqlCli ent.SqlTransacti on*) : int eli minar(System.Data.SqlClient.SqlTransaction) : i nt guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlCli ent.SqlTransaction) : int traer_Proveedor() : DataTable traer_Proveedorjuridico() : DataTable

Figura 55.- Diagrama de Clases - Gestionar Proveedor Fuente: Elaboracin Propia.

119

Captulo 6

Modelo de Diseo

Diagrama de Secuencia - Gestionar Proveedor


sd Diagrama de Secuencia CDU Gestionar Prov eedor

Encargado de Compras :IuProv eedor :CtrlProv eedor IniciaForm() IntroduceDatos() BtnGuardar() val idar () :Prov eedor :Prov eedorJuridico :Prov eedorNatural

guardarProveedor(Negocio.GestionarProveedor.Proveedor, i nt) :bool guardar(System.Data.SqlClient.SqlTransaction) :int guardar(System.Data.SqlCl ient.SqlTransaction) :i nt guardar(System.Data.SqlCl ient.SqlTransaction) :i nt BtnSalir() Salir()

Figura 56.- Diagrama de Secuencia - Gestionar Proveedor Fuente: Elaboracin propia.

N Caso de Uso Nombre Caso Uso Tipo Propsito Referencias Resumen

Actor Principal Encargado de Ventas Registrar Pedidos al Dpto de Inventarios. Esencial Gestionar los pedidos que se realizan al dpto de inventarios con sus respectivas especificaciones. Ninguna En este caso de uso se realiza la gestin de un pedido al Dpto de inventarios que lo realiza el encargado de ventas en caso de requerir un producto. Curso Normal

Accin del Actor Respuesta del Sistema 1. Abre el formulario principal y elige 2. Prepara e inicializa el formulario del Gestionar pedidos al Dpto de Inventarios. pedido al dpto de Inventarios. 3. Carga la fecha y el combo para seleccionar el almacn al que se le realizar el pedido. 4. Selecciona el almacn del 5. El sistema inserta en el detalle la comboAlmacen. En la grilla del Detalle pulsa descripcin completa del producto. click derecho para adicionar los productos a pedir, la misma que desplega un formulario de bsqueda de productos. Una vez seleccionado el producto el mismo es insertado en la grilla del detalle. 6. El actor slo podr editar la cantidad del producto a pedir que deber ser de tipo 120

Captulo 6

Modelo de Diseo

entero. 7. El encargado de ventas presiona el botn 8. Verifica los datos del pedido y valida que Guardar para registrar el pedido. exista el stock suficiente para satisfacer el pedido. 9. Registra el pedido, modifica las existencias y muestra un mensaje indicando que El pedido si ha sido registrado.

Diseo interfaz

Consideracin de Diseo
Cdigo Descripcin El formulario deber mostrar un ID PedidoInventario que ser autoincrementable. Inicialmente el formulario mostrar los siguientes elementos: IdPedidoInventario: Campo que genera un IdPedidoInventario automticamente posterior a que el actor presione el botn Guardar. fechaPedido: Campo para registrar la fecha en la que se realiz el pedido. DetalleDelPedido: Especificacin del producto y la cantidad requerida que se realizan en un pedido a Inventarios. El sistema valida: Que los datos ingresados sean los correctos.

{cd1}

{cd2}

121

Captulo 6

Modelo de Diseo

Diagrama de Clases - Registrar Pedidos al Dpto de Inventarios


class Diagrama de Clases - CDU Gestionar Pedido a Inv entario Diagrama de Clases CDU Gestionar Pedido a Inventario Form boundary INTERFACES_SistemaMuchaCosa::IuPedidoInv entario + + + + guardar() : void imprimir() : void IuPedidoInventario() modificar() : void Dal.TDatosSql control GestionarPedidoInv entario::CtrlPedidoInventario + eliminarPedidoInventario(Negocio.GestionarPedidoInventario.PedidoInventario) : bool + insertarPedidoInventario(Negocio.GestionarPedidoInventario.PedidoInventario) : bool + modificarPedidoInventario(Negocio.GestionarPedidoInventario.PedidoInventario) : bool DAL.TDatosSql entity GestionarProducto:::Producto + + + + costodeventa: Double descripcion: String eliminado: Int32 idcategoria: Int64 idmarca: Int64 idproducto: Int64 porcentajeganancia: Double aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Producto() : DataTable + + + + + + + + entity GestionarPedidoInv entario::PedidoInv entario eliminado: Int32 fechaPedido: DateTime idPedidoInventario: Int64 idUsuario: Int64 aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Pedidoinventario() : DataTable Contiene 1..* DAL.TDatosSql 1 entity GestionarPedidoInventario::DetallePedidoInv entario cantidad: Int32 eliminado: Int32 idpedidoInventario: Int64 idProducto: Int64 aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Detallepedidoinventario() : DataTable

DAL.TDatosSql

Encargado de Ventas

Figura 57.- Diagrama de Clases Registrar-Pedidos al Dpto de Inventarios Fuente: Elaboracin Propia.

122

Captulo 6

Modelo de Diseo

Diagrama de Secuencia - Registrar Pedidos al Dpto de Inventarios


sd Diagrama de Secuencia CDU Gestionar Pedido a Inv entario

Encargado de Ventas :IuPedidoInv entario :CtrlPedidoInv entario :PedidoInv entario :DetallePedidoInv entario Inici aForm() traer_Producto() :DataTable :Producto

IntroduceDatos() BtnGuardar() validar () insertarPedidoInventario(Negocio.GestionarPedidoInventario.PedidoInventario) :bool guardar(System.Data.SqlClient.SqlT ransaction) :int guardar(System.Data.SqlClient.SqlTransaction) :int BtnSalir() Salir()

Figura 58.- Diagrama de Secuencia - Registrar Pedidos a Inventario Fuente: Elaboracin Propia.

N Caso de Uso Nombre Caso Uso Tipo Propsito Referencias Resumen

Actor Principal Encargado de Ventas Registrar Devoluciones al Dpto de Inventarios. Esencial Gestionar las devoluciones que se realizan al dpto de inventarios con sus respectivas especificaciones. Ninguna En este caso de uso se realiza la gestin de una devolucin al Dpto de inventarios que lo realiza el encargado de ventas. Curso Normal

Accin del Actor Respuesta del Sistema 1. Abre el formulario principal y elige 2. Prepara e inicializa el formulario de la Registrar Devolucin al Dpto de Inventarios. Devolucin al dpto de Inventarios. 3. Carga la fecha y el combo para seleccionar el almacn al que se le realizar la devolucin. 4. Selecciona el almacn del 5. El sistema inserta en el detalle la comboAlmacen. En la grilla del Detalle pulsa descripcin completa del producto. click derecho para adicionar los productos a devolver, la misma que desplega un formulario de bsqueda de productos. Una vez seleccionado el producto, ste es insertado en la grilla del detalle. 123

Captulo 6

Modelo de Diseo

6. El actor slo podr editar la cantidad del producto a devolver que deber ser de tipo entero. 7. El encargado de ventas presiona el botn 8. Verifica los datos y valida para registrar la Guardar para registrar la Devolucin. devolucin. 9. Registra la devolucin, modifica las existencias y muestra un mensaje indicando que La devolucin si ha sido realizada.

Diseo de Interfaz

Consideracin de Diseo
Cdigo Descripcin El formulario deber mostrar un ID devolucion que ser autoincrementable. Inicialmente el formulario mostrar los siguientes elementos: IdDevolucion: Campo que genera un IdDevolucionVenta automticamente. Se asigna posterior a que el actor presione guardar. fechaDevolucion: Campo para registrar la fecha de la devolucin. El sistema valida: Que los datos ingresados sean los correctos.

{cd1}

{cd2}

124

Captulo 6

Modelo de Diseo

Diagrama de Clases - Registrar Devoluciones al Dpto de Inventarios


class Diagrama de Clases - CDU Gestionar Dev olucin Inv entario Diagrama de Cl ases del CDU Gestionar Devolucin a Inventari o

Form boundary INTERFACES_SistemaMuchaCosa:: IuDev olucionInv entario + + Encargado de Ventas + + guardar() : void imprimir() : void IuDevoluci onInventari o() modificar() : void + + + control GestionarDev olucionInv entario::CtrlDev olucionInv entario

Dal.TDatosSql

elim inarDevolucionInventario(Negocio.GestionarDevolucionInventari o.DevolucionInventario) : bool insertarDevoluci onInventario(Negocio.GestionarDevolucionInventario.DevolucionInventario) : bool modificarDevolucionInventario(Negocio.Gesti onarDevolucionInventario.Devoluci onInventari o) : bool 1..* DAL.TDatosSql Contiene 1 DAL.TDatosSql entity GestionarDev olucionInv entario::Dev olucionInv entario + + + + 1..* DAL.TDatosSql entity GestionarAlmacen:::Almacen Modifica + + + + 1 Dal .TDatosSql entity GestionarExistencia:::Existencia + + + + cantidad: Int32 i dalmacen: Int64 i dproducto: Int64 aBM(Utilitari o.Utili tario._ABM , System.Data.Sql Client.SqlT ransaction*) : int eliminar(System.Data.SqlClient.Sql Transaction) : int guardar(System.Data.SqlClient.SqlT ransaction) : int m odifi car(System.Data.SqlClient.SqlTransaction) : int traer_Existencia() : DataT able direccional macen: String elimi nado: Int32 idalm acen: Int64 nombrealm acen: String telefonoalm acen: String elimi nar(System.Data.SqlCli ent.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modi ficar(System .Data.SqlCl ient.SqlTransacti on) : int traer_Almacen() : DataTable eli minado: Int32 fechadevoluci on: DateTim e idalmacen: Int64 iddevolucioninventario: Int64 idusuario: Int64 aBM(Util itario.Utilitario._ABM, System .Data.SqlClient.SqlTransacti on*) : int eli minar(System.Data.SqlClient.SqlTransaction) : int guardar(System .Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlT ransaction) : int traer_Devoluci oninventari o() : DataTable

entity GestionarDev olucionInv entario::DetalleDev olucionInv entario + + + + cantidad: Int32 elim inado: Int32 iddevolucioninventari o: Int64 idproducto: Int64 aBM (Utilitario.Utilitari o._ABM, System.Data.SqlClient.SqlTransaction*) : int elim inar(System .Data.SqlCl ient.SqlTransacti on) : int guardar(System .Data.SqlCli ent.SqlTransaction) : int modificar(System .Data.SqlClient.SqlTransaction) : int traer_Detalledevoluci oninventario() : DataTable

DAL.TDatosSql entity GestionarProducto:::Producto + + + + costodeventa: Double descri pcion: String eliminado: Int32 idcategoria: Int64 idmarca: Int64 idproducto: Int64 porcentajeganancia: Double aBM(Utilitario.Uti litario._ABM , System.Data.SqlClient.SqlT ransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.Sql Transaction) : int modificar(System .Data.SqlCl ient.SqlTransaction) : int traer_Producto() : DataT able

Figura 59.- Diagrama de Clases - Registrar Devoluciones al Dpto de Inventarios Fuente: Elaboracin Propia.

125

Captulo 6

Modelo de Diseo

Diagrama de Secuencia - Registrar Devoluciones al Dpto de Inventarios


sd Diagrama de Secuencia CDU Gestionar Dev olucin a Inv entario

Encargado de Ventas :IuDev olucionInv entario:CtrlDev olucionInv entario:Dev olucionInv entario:DetalleDev olucionInv entario :Almacen IniciaForm() traer_Almacen() :DataT able traer_Producto() :DataT able IntroduceDatos() guardar()

:Producto

:Existencia

validar ()

InsertarDevolucionInventario(Negocio.Gesti onarDevolucionInventario.Devol ucionInventario) :bool guardar(System.Data.SqlClient.SqlT ransaction) :int guardar(System.Data.SqlClient.SqlT ransaction) :int modificar(System.Data.SqlClient.SqlT ransaction) :int BtnSalir() Salir()

Figura 60.- Digrama de Secuencia - Registrar Devoluciones al Dpto de Inventarios Fuente: Elaboracin Propia.

N Caso de Uso Nombre Caso Uso Tipo Propsito Referencias Resumen

Actor Principal Cajero Aperturar Caja. Esencial Gestionar la apertura de una caja. Ninguna En este caso de uso se realiza la apertura de una caja, realizada por Sistema, tomando en cuenta el monto aperturar dicha caja, la fecha de la encargado de la apertura. Curso Normal

gestin de la el Cajero del con el que se apertura y el

Accin del Actor Respuesta del Sistema 1. Abre el formulario y elige la opcin para 2. Prepara e inicializa el formulario de la Gestionar la Apertura de Caja. apertura. 3. Habilita los campos de texto para que el administrador del sistema introduzca los datos correspondientes. 4. El actor introduce y selecciona los datos siguientes: El nombre de la caja, el estado de la caja como abierta en un textbox, el monto con el que se apertura la caja de tipo float y la fecha en la que se realiza la apertura.

126

Captulo 6

Modelo de Diseo

5. Presiona el botn para registrar la 6. Verifica los datos de la apertura Apertura. registrada. 7. Muestra un mensaje indicando que La Apertura ha sido registrada.

Diseo de Interfaz

Consideracin de Diseo
Cdigo Descripcin El formulario deber mostrar un ID aperturaCaja que ser autoincrementable. Inicialmente el formulario mostrar los siguientes elementos: IdAperturaCaja: Campo que genera un Id automticamente, posterior a que el usuario presione el botn Guardar. fecha: Campo para registrar la fecha en la que se realiz la apertura de la caja. Monto: Campo en donde se registra el monto con el que se realiza la apertura de la caja. El sistema valida: Que los datos ingresados sean los correctos.

{cd1}

{cd2}

127

Captulo 6

Modelo de Diseo

Diagrama de Clases - Aperturar Caja


class Diagrama de Clases CDU Gestionar Apertura Caja Diagrama de Clases CDU Gestionar Apertura de Caja Form boundary INTERFACES_SistemaMuchaCosa:: IuAperturaCaj a + + + + eliminar() : void guardar() : void IuAperturaCaja() modificar() : void DAL.TDatosSql entity GestionarCaja::AperturaCaj a + + + + fechaapertura: DateTime idaperturacaja: Int64 idcaja: Int64 montoapertura: Double aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlT ransaction*) : int eliminar(System.Data.SqlClient.SqlT ransaction) : int guardar(System.Data.SqlClient.SqlT ransaction) : int modificar(System.Data.SqlClient.SqlT ransaction) : int traer_Aperturacaja() : DataT able 1 DAL.TDatosSql entity GestionarCaj a:::Caja + + + + eliminado: Int32 estado: Int32 idcaja: Int64 montoactual: Double nombre: Int32 aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlT ransaction*) : int eliminar(System.Data.SqlClient.SqlT ransaction) : int guardar(System.Data.SqlClient.SqlT ransaction) : int modificar(System.Data.SqlClient.SqlT ransaction) : int traer_Caja() : DataT able Se-Efectua

Caj ero

Figura 61.- Diagrama de Clases - Gestionar Apertura Caja Fuente: Elaboracin Propia.

Diagrama de Secuencia - Aperturar Caja


sd Diagrama de Secuencia CDU Gestionar Apertura Caj a

Cajero :IuAperturaCaj a IniciaForm() TraerCaja() IntroduceDatos() BtnGuardar() validar () :AperturaCaj a :Caj a

guardar(System.Data.SqlClient.SqlTransaction) :int BtnSalir() Salir()

Figura 62.- Diagrama de Secuencia - Aperturar Caja Fuente: Elaboracin Propia.

128

Captulo 6

Modelo de Diseo

N Caso de Uso Nombre Caso Uso Tipo Propsito Referencias Resumen

Actor Principal Encargado de Compras Registrar Pedidos a Proveedores. Esencial Gestionar los pedidos que se realizan a los proveedores con sus respectivas especificaciones. Ninguna En este caso de uso se realiza la gestin de un pedido a proveedor que lo realiza el encargado de compras. Curso Normal

Accin del Actor Respuesta del Sistema 1. Abre el formulario principal y elige 2. Prepara e inicializa el formulario del Gestionar pedidos a Proveedores. pedido a proveedores. 3. Carga la fecha y el combo para seleccionar el proveedor al que se le realizar el pedido. 4. Selecciona el proveedor del 5. El sistema inserta en el detalle la comboProveedor. En la grilla del Detalle descripcin completa del producto. pulsa click contrario para adicionar los productos a pedir, la misma que desplega un formulario de bsqueda de productos. Una vez seleccionado el producto el mismo es insertado en la grilla del detalle. 6. El actor slo podr editar la cantidad del producto a pedir que deber ser de tipo entero. 7. El encargado de compras presiona el 8. Verifica los datos del pedido. botn Guardar para registrar el pedido. 9. Registra el pedido, modifica las existencias y muestra un mensaje indicando que El pedido si ha sido realizado.

Diseo de Interfaz

129

Captulo 6

Modelo de Diseo

Consideracin de Diseo
Cdigo Descripcin El formulario deber mostrar un ID PedidoInventario que ser autoincrementable. Inicialmente el formulario mostrar los siguientes elementos: IdPedidoProveedor: Campo que genera un IdPedidoProveedor automticamente poaterior a presionar el botn Guardar. fechaPedido: Campo para registrar la fecha en la que se realiz el pedido. DetalleDelPedido: Especificacin de la cantidad de pedidos que se realizan a un proveedor. El sistema valida: Que los datos ingresados sean los correctos.

{cd1}

{cd2}

Diagrama de Clases - Registrar Pedidos a Proveedores


class Diagrama de Clases CDU Gestionar Pedido a Prov eedor Diagrama de Clases CDU Gestionar Pedido a Proveedor Form boundary INTERFACES_SistemaMuchaCosa::IuPedidoProv eedor + + + + altaPedidoProveedor_Load(object, EventArgs) : void guardar() : void imprimir() : void IuPedidoProveedor() modificar() : void control GestionarPedidoProv eedor::CtrlPedidoProv eedor + eliminarPedidoProveedor(Negocio.GestionarPedidoProveedor.PedidoProveedor) : bool + insertarPedidoProveedor(Negocio.GestionarPedidoProveedor.PedidoProveedor) : bool + modificarPedidoProveedor(Negocio.GestionarPedidoProveedor.PedidoProveedor) : bool Dal.TDatosSql

Encargado de Compras

DAL.TDatosSql DAL.TDatosSql entity GestionarPedidoProv eedor::DetallePedidoProv eedor + + + + cantidad: Int32 eliminado: Int32 idpedidoproveedor: Int64 idproducto: Int64 aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Detallepedidoproveedor() : DataTable + + + + entity GestionarPedidoProv eedor::PedidoProv eedor eliminado: Int32 fechaPedido: DateTime idPedidoProveedor: Int64 idProveedor: Int64 idUsuario: Int64 aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Pedidoproveedor() : DataTable DAL.TDatosSql entity GestionarProducto:::Producto + + + + costoDeVenta: Double descripcion: String eliminado: Int32 idCategoria: Int64 idMarca: Int64 idProducto: Int64 porcentajeGanancia: Double aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Producto() : DataTable

Contiene 1..* 1

Figura 63.- Diagrama de Clases - Registrar Pedidos a Proveedores Fuente: Elaboracin Propia.

130

Captulo 6

Modelo de Diseo

Diagrama de Secuencia - Registrar Pedidos a Proveedores


sd Diagrama de Secuencia CDU Gestionar Pedido a Prov eedor

Encargado de Compras :IuPedidoProv eedor IniciaForm() traer_Proveedor() :DataTable traer_Producto() :DataTable IntroduceDatos() guardar() validar () :CtrlPedidoProv eedor :PedidoProv eedor :DetallePedidoProv eedor :Prov eedor :Producto

insertarPedidoProveedor(Negocio.GestionarPedidoProveedor.Pedi doProveedor) :bool guardar(System.Data.Sql Client.Sql Transaction) :int guardar(System.Data.SqlClient.SqlTransaction) :int BtnSalir() Salir()

Figura 64.- Diagrama de Secuencia - Registrar Pedidos a Proveedores Fuente: Elaboracin Propia.

N Caso de Uso Nombre Caso Uso Tipo Propsito Referencias Resumen

Actor Principal Encargado de Compras Registrar Devolucion a proveedor. Esencial Gestionar las devoluciones que se realizan a proveedores con sus respectivas especificaciones. Ninguna En este caso de uso se realiza la gestin de las devoluciones a Proveedores que lo realiza el encargado de compras en caso de haber identificado alguna falla posterior a la compra. Curso Normal

Accin del Actor Respuesta del Sistema 1. Abre el formulario principal y elige 2. Prepara e inicializa el formulario de la Registrar la Devolucin a Proveedor. Devolucin a proveedor. 3. Carga la fecha de la devolucin. 4. Selecciona el botn de bsqueda para 5. El sistema carga todas las compras traer los datos de la compra de la cual se asociadas a la bsqueda del usuario. obtuvo el producto a devolver. 6. El actor selecciona la compra de la que 7. El sistema trae todos los datos de la obtuvo el producto. compra seleccionada con el detalle respectivo. 8. El encargado de compras digita la 9. Verifica los datos y valida para registrar la cantidad a devolver del producto presiona el devolucin, modifica las existencias y botn Guardar para registrar la Devolucin. muestra un mensaje indicando que La devolucin si ha sido realizada. 131

Captulo 6

Modelo de Diseo

Diseo de Interfaz

Consideracin de Diseo
Cdigo Descripcin El formulario deber mostrar un ID devolucionCompra que ser autoincrementable. Inicialmente el formulario mostrar los siguientes elementos: IdDevolucionCompra: Campo que genera un IdDevolucionVenta automticamente, posterior a que el usuario presione el botn guardar. fechaDevolucion: Campo para ingresar el registro de la fecha en la que se realiz la devolucin. DetalleDevolucion: Especificain de la cantidad de productos que se devuelven a un proveedor. El sistema valida: Que los datos ingresados sean los correctos.

{cd1}

{cd2}

132

Captulo 6

Modelo de Diseo

Diagrama de Clases - Registrar Devolucin a Proveedor


class Diagrama de Clases - CDU Gestionar Dev olucion Compra Diagrama de Clases - CDU Gestionar Devolucion Compra Form boundary INTERFACES_SistemaMuchaCosa:: IuDev olucionCompra + + + + guardar() : void imprimir() : void IuDevolucionCompra() modificar() : void Dal.TDatosSql control GestionarDev olucionCompra::CtrlDev olucionCompra + eliminarDevolucionCompra(Negocio.GestionarDevolucionCompra.DevolucionCompra) : bool + insertarDevolucionCompra(Negocio.GestionarDevolucionCompra.DevolucionCompra) : bool + modificarDevolucionCompra(Negocio.GestionarDevolucionCompra.DevolucionCompra) : bool

Encargado de Compras

DAL.TDatosSql entity GestionarDev olucionCompra::DetalleDev olucionCompra + + + + cantidad: Int32 eliminado: Int32 iddevolucioncompra: Int64 idproducto: Int64 Contiene1..* 1 + + + +

DAL.TDatosSql entity GestionarDev olucionCompra::Dev olucionCompra eliminado: Int32 fechadevolucion: DateTime idcompra: Int64 iddevolucioncompra: Int64 idusuario: Int64 aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Devolucioncompra() : DataTable Se-Realiza * 1 DAL.TDatosSql entity GestionarCompra:::Compra

aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int 1..* traer_Detalledevolucioncompra() : DataTable

DAL.TDatosSql entity GestionarAlmacen:::Almacen + + + + direccionalmacen: String eliminado: Int32 idalmacen: Int64 nombrealmacen: String telefonoalmacen: String eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Almacen() : DataTable Modifica + + + +

eliminado: Int32 fechacompra: DateTime idalmacen: Int64 idcompra: Int64 idproveedor: Int64 idusuario: Int64 aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Compra() : DataTable

1 Dal.TDatosSql entity GestionarExistencia:::Existencia + + + + cantidad: Int32 idalmacen: Int64 idproducto: Int64 aBM(Utilitario.Utilitario._ABM, System.Data.SqlClient.SqlTransaction*) : int eliminar(System.Data.SqlClient.SqlTransaction) : int guardar(System.Data.SqlClient.SqlTransaction) : int modificar(System.Data.SqlClient.SqlTransaction) : int traer_Existencia() : DataTable

Figura 65.- Diagrama de Clases - Registrar Devolucin a Proveedor Fuente: Elaboracin Propia.

133

Captulo 6

Modelo de Diseo

Diagrama de Secuecia - Registrar Devoluciones a Proveedores


sd Diagrama de Secuencia CDU Gestionar Dev olucin Compra

Encargado de Compras :IuDev olucionCompra :CtrlDev olucionCompra :Dev olucionCompra :DetalleDev olucionCompra :Prov eedor IniciaForm() SeleccionarCompra() IntroduceDatos() BtnGuardar() validar () insertarDevolucionCompra(Negocio.GestionarDevolucionCompra.DevolucionCompra) :bool guardar(System.Data.SqlClient.SqlTransaction) :int guardar(System.Data.SqlClient.SqlT ransaction) :int modificar(System.Data.SqlClient.SqlTransaction) :int BtnSalir() Salir() traer_Proveedor() :DataT able traer_Compra() :DataT able

:Compra

:Existencia

Figura 66.- Diagrama de Secuencia - Registrar Devolucin a Proveedor Fuente: Elaboracin Propia.

134

Captulo 6

Modelo de Diseo

6.2. Diagrama de Clases Persistente


clas s Diagrama de Clases - Vista de Diseo DAL.TDatosSql Reali za DAL.TDato sSql DAL.TDatosSq l entity GestionarCliente:::Cliente + + + + di reccion : Stri ng el im in ado: Int32 i dcl iente: Int64 ni t: Strin g telefono: String tipo: Int32 aBM (Util itario.Uti li tario._ABM , System.Data.SqlCl ie nt.SqlTransacti on*) : i nt el im in ar(System.Data .Sql Cli ent.SqlTransacti on) : in t guardar(System .Data.Sq lCl ient.Sql Transaction) : i nt 1 m odifi car(System .Data.Sql Cli ent.Sql Transacti on) : i nt traer_Cli ente() : DataTabl e + + + + eli mi nado: Int32 idcargo: Int64 nombrecargo: String enti ty GestionarCa rgo::Cargo entity GestionarEmpleado::Empleado 1 + + + 1 + apm emp leado: Strin g appem pl eado: Stri ng ci emp leado: Strin g di reccionem pl eado: String el im inad o: Int32 fechacontra to: DateTi me i dcarg o: Int64 i dempl eado: Int64 nom bree mpl eado: String telefonoem pleado : Stri ng aBM (Util itari o.Util i tario._ABM, Syste m.Data.SqlCl ient.Sql Tra nsaction*) : i nt el im inar(System.Data.SqlCl ien t.SqlTransactio n) : int guardar(System .Data.Sql Cli ent.Sql Transacti on) : i nt m odificar(System.Data.Sql Cli ent.SqlTransacti on) : i nt traer_Empl eado() : Data Tab le 1 DAL.TDatosSql pertenece * 1..* + + + + entity GestionarCompra:::Compra el im i nado: Int32 fechacompra: DateTi me i dal mace n: Int64 i dcom pra : Int64 i dproveedor: Int64 i dusua ri o: Int64 aBM (Util i tario.Uti li tari o._ABM , System.Data .Sql Cli ent.SqlTransacti on*) : i nt el im i nar(System .Data.Sql Cli ent.SqlTransacti on) : i nt gua rdar(System .Da ta.SqlCl ient.Sql Tran saction) : int m odi fi car(System .Data.Sql Cli ent.Sql Transacti on) : i nt trae r_Com pra() : DataTable 1 Conti ene 1 1..* DAL .TDatosSql e nti ty GestionarCompra:::Detalle Compra + + + + cantidad: In t32 eli mi nado: Int32 idco mpra: Int64 idproducto: Int64 preciocom pra: Doubl e aBM(Uti li tari o.Util itari o._ ABM , System .Data.Sql Cli ent.Sql Transacti on*) : int eli mi nar(System .Data.Sq lCl ient.Sql Transaction) : i nt guarda r(System.Data.Sql Cl i ent.SqlTransacti on) : int modi fi car(System .Data.SqlCl ient.Sql Tra nsaction) : int traer_Detal lecom pra() : DataTabl e 1..* DAL.TDatosSql entity GestionarDev olucionInv entario:::Dev olucionInv entario eli m inado: In t32 fechadevol uci on: DateTim e idal m acen: Int64 idde volucioni nventari o: Int64 idusuario: Int64 aBM(Uti li ta ri o.Util itari o._ABM , System .Data.Sq lCl ient.Sql Transaction*) : int eli m inar(System .Da ta.SqlCl ient.Sql Transaction) : int guardar(System.Data.Sql Cli ent.SqlTransacti on) : i nt mod ificar(System.Data.SqlCl ien t.SqlTransactio n) : int traer_Devolucioni nventari o() : DataTabl e Real iza 1 Contiene * 1..* DAL.TDato sSql entity GestionarDev olucionInv enta rio:::DetalleDev oluc ionInv entario + + + + cantidad: Int32 eli m inado: In t32 idde volucioni nventari o: Int64 idproducto: Int64 aBM(Uti li ta ri o.Util itari o._ABM , System .Data.Sq lCl ient.Sql Transaction*) : int eli m inar(System .Da ta.SqlCl ient.Sql Transaction) : int guardar(System.Data.Sql Cli ent.SqlTransacti on) : i nt mod ificar(System.Data.SqlCl ien t.SqlTransactio n) : int traer_Detal ledevolucioni nventari o() : DataTabl e 1..* + + + + Es-Encargado 1..* DAL.TDatosSql entity GestionarPedidoProv eedor:::DetallePedidoProv eedor canti dad: Int32 el im i nado: Int32 i dpedi dopro veedor: Int64 i dproducto: Int64 aBM (Util i tario.Uti li tari o._ABM , System.Data .Sql Cli ent.SqlTransacti on*) : i nt el im i nar(System .Data.Sql Cli ent.SqlTransacti on) : i nt gua rdar(System .Da ta.SqlCl ient.Sql Tran saction) : int m odi fi car(System .Data.Sql Cli ent.Sql Transacti on) : i nt trae r_Detall epedi doproveedor() : DataTable 1 Co nti ene 1..* 1..* DAL.TDatosSql enti ty GestionarPedidoProv eedor:::PedidoProv eedor + + + + eli mi nado: Int32 fecha Pe dido: DateTi m e idPedi doProveedor: Int64 idProveedor: Int64 idUsu ari o: Int64 aBM(Uti li tario .Util itari o._ABM , System .Data.Sql Cli ent.Sql Transacti on*) : int eli mi nar(System .Data.Sql Cli ent.Sql Transaction) : i nt guardar(System.Data.SqlCl ie nt.SqlTransacti on) : int modi fi car(System .Da ta.SqlCl ient.Sql Tran saction) : int traer_Pedi doproveedor() : Da taTabl e Se-Real i za 1 DAL.TDato sSql entity Gestiona rCaja:::Caja + + + + 1 e li mi nado: Int32 e sta do: Int32 i dcaj a: Int64 m ontoactual: Doubl e n ombre: Int32 a BM (Uti li tario.Uti li tari o._ABM , System .Data.Sql Cli ent.SqlTransacti on*) : i nt e li mi nar(System .Data.Sql Cli ent.Sql Transacti on) : i nt g uardar(Syste m.Data.SqlCl ient.Sq lTra nsaction ) : int m odi fi car(System .Data.Sq lCl ient.Sql Transaction) : i nt traer_Caj a() : Da taTabl e 1 Se-Relaci ona Se-Registra tie ne Conti ene 1..* 1..* + + + + Se-Efe ctua 1 Conti ene 1..* DAL.TDatosSql enti ty GestionarDev olucionCompra:::Detalle De volucionCompra cantidad: Int32 eli mi nado: Int32 iddevolucionco mpra: Int64 idproducto: Int64 aBM(Uti li ta ri o.Util itari o._ABM , System .Data.Sql Cli ent.Sql Transaction*) : int eli mi nar(System .Data.SqlCl ient.Sql Transaction) : i nt guard ar(System.Data .Sql Cl i ent.SqlTransacti on) : in t modi ficar(Syste m.Data.SqlCl ient.Sq lTransaction ) : int traer_ De tal ledevolucioncom pra() : DataTabl e entity Ge stionarProv eedor:::Prov eedorJuridico + + + + + i dProveedor: Int64 razonSoci al : Stri ng aBM (Util itario.Uti li tario ._ABM , System.Data.Sql Cl i ent.SqlTransacti on*) : i nt el im i nar(System.Data.Sql Cli ent.SqlTransacti on) : i nt guardar(System .Data.SqlCl ient.Sql Transaction) : i nt m odi fi car(System .Data.Sql Cli ent.Sql Transacti on) : i nt traer_Proveedor() : DataTabl e traer_Proveedorjuridi co() : DataTab le + + + + + DAL.TDatosSq l e nti ty Ges tionarProve edor:::Prov eedorNatural apmProveedor: String appProveedor: Stri ng ciProveedor: String idProveedor: Int64 nombreProveedor: Stri ng aBM(Uti li tari o.Util itari o._ ABM , System .Data.Sql Cli ent.Sql Transacti on*) : int eli mi nar(System .Data.Sq lCl ient.Sql Transaction) : i nt guarda r(System.Data.Sql Cl i ent.SqlTransacti on) : int modi fi car(System .Data.SqlCl ient.Sql Tra nsaction) : int traer_Proveedor() : DataTabl e traer_Proveedornatural () : DataTabl e DAL.TDatosSql Se-Reali za 1 * + + + + entity GestionarDev olucionCompra:::Dev olucionCompra el im i nado: Int32 fechadevolucion: DateTi me i dcom pra: Int64 i ddevol uci oncom pra: Int64 i dusuari o: Int64 aBM (Util itario.Uti li tario ._ABM , System.Data.Sql Cl i ent.SqlTransacti on*) : i nt el im i nar(System.Data.Sql Cli ent.SqlTransacti on) : i nt guardar(System .Data.SqlCl ient.Sql Transaction) : i nt m odi fi car(System .Data.Sql Cli ent.Sql Transacti on) : i nt traer_Devol uci oncom pra() : DataTable Se-Real i za 1 + + + + 1..* 1 DAL.TDatosSql enti ty GestionarProv eedor:::Prov eedor direcci onProveedor: Stri ng eli mi nado: Int32 idProveedor: Int64 nit: Stri ng tel efo noProvee dor: String ti po: Int32 aBM(Uti li ta ri o.Util itari o._ABM , System .Data.Sql Cli ent.Sql Transaction*) : int eli mi nar(System .Data.SqlCl ient.Sql Transaction) : i nt guard ar(System.Data .Sql Cl i ent.SqlTransacti on) : in t modi ficar(Syste m.Data.SqlCl ient.Sq lTransaction ) : int traer_ Proveedo r() : DataTabl e * DAL.TDa tosSql

1..*

aBM(Uti li tario.Uti l itari o._ABM , System .Data.Sql Cli ent.Sql Transa cti on*) : int 1 eli mi nar(System .Data.Sql Cli ent.Sql Transacti on) : i nt guardar(System.Data.SqlCl ien t.SqlTransactio n) : int modi fi car(System .Data.SqlCl ient.Sql Transaction) : i nt Regi stra traer_Cargo() : DataTabl e Se-Real iza

1 DAL.TDatosSql en ti ty GestionarCliente :::ClienteJuridico + + + + + idcl ie nte: Int64 razon So cial : String aBM(Uti li tario .Util itari o._ABM , System .Data.Sql Cli ent.Sql Transacti on*) : int eli mi nar(System .Data.Sql Cli ent.Sql Transaction) : i nt guardar(System.Data.SqlCl ie nt.SqlTransacti on) : int modi fi car(System .Da ta.SqlCl ient.Sql Tran saction) : int traer_Cl ien te() : DataTabl e traer_Cl ien tej uri dico() : DataTabl e 1..* DAL.TDatosSql entity GestionarPedidoInv entario:::PedidoInv entario + + + + e li mi nado: Int32 fechaPedi do: DateTi me i dPedi doInventario : Int64 i dUsua ri o: Int64 a BM (Uti li tario.Uti li tari o._ABM , System .Data.Sql Cli ent.SqlTransacti on*) : i nt e li mi nar(System .Data.Sql Cli ent.Sql Transacti on) : i nt g uardar(Syste m.Data.SqlCl ient.Sq lTra nsaction ) : int m odi fi car(System .Data.Sq lCl ient.Sql Transaction) : i nt traer_Pedi doi nventari o() : DataTabl e 1 Conti ene 1..* DAL.TDatosSq l entity GestionarPedidoInv entario:::DetallePedidoInv entario + + + + ca nti dad: Int32 el im in ado: Int32 i dpedi doInventario: Int64 i dProducto: In t64 aBM (Util itario.Uti li tario._ABM , System.Data.SqlCl ie nt.SqlTransacti on*) : i nt el im in ar(System.Data .Sql Cli ent.SqlTransacti on) : in t guardar(System .Data.Sq lCl ient.Sql Transaction) : i nt m odifi car(System .Data.Sql Cli ent.Sql Transacti on) : i nt traer_Detall epedi doinve ntario() : DataTable + + + + canti dad: Int3 2 el im ina do: Int32 i dprodu cto: In t64 i dventa: Int64 preci oventa : Doubl e aBM (Util itari o.Uti li tario._ABM, System.Data.SqlCl ient.Sq lTransaction *) : i nt el im ina r(System.Data.SqlCl ie nt.SqlTransacti on) : int guardar(System .Data.Sql Cli ent.Sql Transacti on) : i nt m odificar(System .Data.Sql Cli ent.SqlTransacti on) : i nt traer_Detal l eventa() : DataTable * entity Ge stionarVenta:::Ve nta + + + + el im ina do: Int32 fechaventa: DateTi me i dalm acen: In t64 i dcaj a: Int64 i dcli ente: Int6 4 i dusuario: Int64 i dventa: Int64 aBM (Util itari o.Uti li tario._ABM, System.Data.SqlCl ient.Sq lTransaction *) : i nt el im ina r(System.Data.SqlCl ie nt.SqlTransacti on) : int guardar(System .Data.Sql Cli ent.Sql Transacti on) : i nt m odificar(System .Data.Sql Cli ent.SqlTransacti on) : i nt traer_Venta () : DataTable 1 1 ..* DAL.TDatosSql entity GestionarVenta:::Deta lleVenta + + + + + apm : Stri ng app: String ci : Stri ng i dcli ente: Int6 4 nom bre : Stri ng aBM (Util itari o.Uti li tario._ABM, System.Data.SqlCl ient.Sq lTransaction *) : i nt el im ina r(System.Data.SqlCl ie nt.SqlTransacti on) : int guardar(System .Data.Sql Cli ent.Sql Transacti on) : i nt m odificar(System .Data.Sql Cli ent.SqlTransacti on) : i nt traer_Cli ente() : DataTable traer_Cli entenatural () : DataTable entity GestionarCliente :::ClienteNatural DAL.TDa tosSql

1 Regi strar

DAL.TDatosSql entity GestionarCate goria::Categoria + + + + el im in ado: Int3 2 i dcategori a: Int64 nom brecateg ori a: Stri ng aBM (Util itari o.Uti li tario._ABM, System.Data.SqlCl ien t.SqlTransactio n*) : i nt el im in ar(System.Data.Sql Cl i ent.SqlTransacti on) : int guardar(System .Data.Sql Cli ent.Sql Transaction) : i nt m odifi car(System .Data.Sql Cli ent.SqlTransa cti on) : i nt traer_Cate gori a() : DataTabl e 1

Real iza

1..*

1..* + + DAL.TDatosSql + +

1 1..* DAL.TDatosSql enti ty GestionarProv eedorProducto:::Prove edorProducto + + + + costoreferenci a: Do uble fechaactuali zaci on: DateTi me i dproducto: Int64 i dprove edor: Int64 aBM (Util itari o.Util itario._ABM, System .Data.SqlCl ient.Sql Tran saction*) : in t el im inar(System.Data.SqlCl ient.Sq lTransaction ) : int guardar(System .Data.Sql Cli ent.Sql Transacti on) : i nt m odificar(System.Data .Sql Cli ent.SqlTransacti on) : in t traer_Proveedorproducto() : DataTabl e 1

1..* DAL.TDatosSql

entity GestionarProducto:::Producto + + + + 1 costoDeVenta: Doubl e descripci on: String el im i nado: Int32 i dCate gori a: Int64 i dM arca: Int64 i dProd ucto: Int64 porcentaj eGana ncia: Doubl e aBM (Util i tario.Uti li tari o._ABM , System.Data .Sql Cli ent.SqlTransacti on*) : i nt el im i nar(System .Data.Sql Cli ent.SqlTransacti on) : i nt gua rdar(System .Da ta.SqlCl ient.Sql Tran saction) : int m odi fi car(System .Data.Sql Cli ent.Sql Transacti on) : i nt trae r_Producto() : DataTable 1..*

contiene

Se-Efectua

ti ene

1 DAL.TDatosSql e nti ty GestionarCaj a:::AperturaCaja + + + + fecha apertura : DateTim e idapertu racaj a: Int64 idcaj a: Int64 montoapertura: Dou ble aBM(Uti li tario .Util itari o._ABM , System .Data.Sql Cli ent.Sql Transacti on*) : int eli mi nar(System .Data.Sql Cli ent.Sql Transaction) : i nt guardar(System.Data.SqlCl ie nt.SqlTransacti on) : int modi fi car(System .Da ta.SqlCl ient.Sql Tran saction) : int traer_Aperturaca ja() : DataTabl e 1

1 DAL.TDatosSql enti ty Ges tionarM arca::M arca + + + + Contiene eli mi nado: Int32 idm arca: Int64 nombremarca: Stri ng aBM(Uti li tario.Uti l itari o._ABM , System .Data.Sql Cli ent.Sql Transa cti on*) : int eli mi nar(System .Data.Sql Cli ent.Sql Transacti on) : i nt guardar(System.Data.SqlCl ien t.SqlTransactio n) : int modi fi car(System .Data.SqlCl ient.Sql Transaction) : i nt traer_M arca() : Da taTabl e

1..*

1..* DAL.TDatosSql entity GestionarUsuario::Usuario 1 + + + + cl ave: Strin g el im in ado: Int32 i demp leado: Int64 i dnivelacceso: In t64 i dusuario : Int64 nom breusuario: Strin g aBM (Util itario.Uti li tario._ABM , System.Data.SqlCl ie nt.SqlTransacti on*) : i nt el im in ar(System.Data .Sql Cli ent.SqlTransacti on) : in t guardar(System .Data.Sq lCl ient.Sql Transaction) : i nt m odifi car(System .Data.Sql Cli ent.Sql Transacti on) : i nt traer_Usuari o() : DataTable

Se-reali za-a

Sistem a de Inventa ri o

1 Sistema de Inv entario

Figura 67.- Diagrama de Clases Persistente Fuente: Elaboracin Propia.

135

Captulo 6

Modelo de Diseo

6.3. Diseo Lgico de la Base de Datos


Sistema de Compra y Venta cliente column *PK idcliente: bigint direccion: varchar(60) telefono: varchar(60) nit: varchar(60) tipo: int eliminado: int PK + PK__cliente__31B762FC(bigint) clientej uridico column *pfK idcliente: bigint razonsocial: varchar(60) PK + PK__clientejuridico__43D61337(bigint) FK + FK__clienteju__idcli__44CA3770(bigint) cargo column *PK idcargo: bigint nombrecargo: varchar(60) eliminado: int PK + PK__cargo__1BFD2C07(bigint) proveedor column *PK idproveedor: bigint direccionproveedor: varchar(60) telefonoproveedor: varchar(60) nit: varchar(60) tipo: int eliminado: int PK + PK__proveedor__395884C4(bigint) empleado column *PK idempleado: bigint FK idcargo: bigint nombreempleado: varchar(60) appempleado: varchar(60) apmempleado: varchar(60) ciempleado: varchar(60) direccionempleado: varchar(60) telefonoempleado: varchar(60) fechacontrato: datetime eliminado: int PK + PK__empleado__34C8D9D1(bigint) FK + FK__empleado__idcarg__35BCFE0A(bigint) pedidoproveedor column *PK idpedidoproveedor: bigint FK idusuario: bigint FK idproveedor: bigint fechapedido: datetime eliminado: int PK + PK__pedidoproveedor__03BB8E22(bigint) FK + FK__pedidopro__idpro__05A3D694(bigint) + FK__pedidopro__idusu__04AFB25B(bigint) detallepedidoproveedor column *pfK idpedidoproveedor: bigint *pfK idproducto: bigint cantidad: int eliminado: int PK + pk_detallepedidoproveedor(bigint, bigint) FK + FK__detallepe__idped__09746778(bigint) + FK__detallepe__idpro__0A688BB1(bigint) prov eedornatural column *pfK idproveedor: bigint nombreproveedor: varchar(60) appproveedor: varchar(60) apmproveedor: varchar(60) ciproveedor: varchar(60) PK + PK__proveedornatural__3B40CD36(bigint) FK + FK__proveedor__idpro__3C34F16F(bigint) prov eedorproducto column *pfK idproveedor: bigint *pfK idproducto: bigint costoreferencia: float fechaactualizacion: datetime PK + pk_provprod(bigint, bigint) FK + FK__proveedor__idpro__6BE40491(bigint) + FK__proveedor__idpro__6AEFE058(bigint)

venta column *PK idventa: bigint FK idusuario: bigint FK idcliente: bigint FK idalmacen: bigint FK idcaja: bigint fechaventa: datetime eliminado: int PK + PK__venta__5D95E53A(bigint) FK + FK__venta__idalmacen__607251E5(bigint) + FK__venta__idcaja__6166761E(bigint) + FK__venta__idcliente__5F7E2DAC(bigint) + FK__venta__idusuario__5E8A0973(bigint)

clientenatural column *pfK idcliente: bigint nombre: varchar(60) app: varchar(60) apm: varchar(60) ci: varchar(60) PK + PK__clientenatural__40F9A68C(bigint) FK + FK__clientena__idcli__41EDCAC5(bigint) usuario column *PK idusuario: bigint FK idempleado: bigint nombreusuario: varchar(60) clave: varchar(60) idnivelacceso: bigint eliminado: int PK + PK__usuario__4316F928(bigint) FK + FK__usuario__idemple__440B1D61(bigint)

proveedorj uridico column *pfK idproveedor: bigint razonsocial: varchar(60) PK + PK__proveedorjuridic__3E1D39E1(bigint) FK + FK__proveedor__idpro__3F115E1A(bigint) producto column *PK idproducto: bigint FK idmarca: bigint FK idcategoria: bigint porcentajeganancia: float descripcion: varchar(60) costodeventa: float eliminado: int PK + PK__producto__239E4DCF(bigint) FK + FK__producto__idcate__25869641(bigint) + FK__producto__idmarc__24927208(bigint)

detalleventa column *pfK idventa: bigint *pfK idproducto: bigint precioventa: float cantidad: int eliminado: int PK + pk_detalleventa(bigint, bigint) FK + FK__detalleve__idpro__65370702(bigint) + FK__detalleve__idven__6442E2C9(bigint)

marca column *PK idmarca: bigint nombremarca: varchar(60) eliminado: int PK + PK__marca__1FCDBCEB(bigint)

compra column *PK idcompra: bigint FK idusuario: bigint FK idproveedor: bigint FK idalmacen: bigint fechacompra: datetime eliminado: int PK + PK__compra__46B27FE2(bigint) FK + FK__compra__idalmace__498EEC8D(bigint) + FK__compra__idprovee__489AC854(bigint) + FK__compra__idusuari__47A6A41B(bigint)

existencia devolucioninv entario column *PK iddevolucioninventario: bigint FK idusuario: bigint FK idalmacen: bigint fechadevolucion: datetime eliminado: int PK + PK__devolucioninvent__6DCC4D03(bigint) column *pfK idalmacen: bigint *pfK idproducto: bigint cantidad: int PK + pk_existencia(bigint, bigint) FK + FK__existenci__idalm__06CD04F7(bigint) + FK__existenci__idpro__07C12930(bigint) categoria column *PK idcategoria: bigint nombrecategoria: varchar(60) eliminado: int PK + PK__categoria__21B6055D(bigint)

caj a column *PK idcaja: bigint nombre: int montoactual: float estado: int eliminado: int PK + PK__caja__58D1301D(bigint)

devolucioncompra column *PK iddevolucioncompra: bigint FK idusuario: bigint FK idcompra: bigint fechadevolucion: datetime eliminado: int PK + PK__devolucioncompra__0C50D423(bigint) FK + FK__devolucio__idcom__0E391C95(bigint) + FK__devolucio__idusu__0D44F85C(bigint)

detallecompra aperturacaja column *PK idaperturacaja: bigint FK idcaja: bigint montoapertura: float fechaapertura: datetime PK + PK__aperturacaja__671F4F74(bigint) FK + FK__aperturac__idcaj__681373AD(bigint) column *pfK idcompra: bigint *pfK idproducto: bigint preciocompra: float cantidad: int eliminado: int PK + pk_detallecompra(bigint, bigint) FK + FK__detalleco__idcom__4C6B5938(bigint) + FK__detalleco__idpro__4D5F7D71(bigint)

FK + FK__devolucio__idalm__6FB49575(bigint) + FK__devolucio__idusu__6EC0713C(bigint)

detallepedidoinv entario pedidoinv entario detalledevolucioninv entario column *pfK iddevolucioninventario: bigint *pfK idproducto: bigint cantidad: int eliminado: int PK + pk_detalledevolucioninventario(bigint, bigint) FK + FK__detallede__iddev__72910220(bigint) + FK__detallede__idpro__73852659(bigint) column *PK idpedidoinventario: bigint FK idusuario: bigint fechapedido: datetime eliminado: int PK + PK__pedidoinventario__7D0E9093(bigint) FK + FK__pedidoinv__idusu__7E02B4CC(bigint) column *pfK idpedidoinventario: bigint *pfK idproducto: bigint cantidad: int eliminado: int PK + pk_detallepedidoinventario(bigint, bigint) FK + FK__detallepe__idped__00DF2177(bigint) + FK__detallepe__idpro__01D345B0(bigint)

detalledevolucioncompra column *pfK iddevolucioncompra: bigint *pfK idproducto: bigint cantidad: int eliminado: int PK + pk_detalledevolucioncompra(bigint, bigint) FK + FK__detallede__iddev__11158940(bigint) + FK__detallede__idpro__1209AD79(bigint)

Sistema de Inventario almacen column *PK idalmacen: bigint nombrealmacen: varchar(60) direccionalmacen: varchar(60) telefonoalmacen: varchar(60) eliminado: int PK + PK__almacen__7C8480AE(bigint)

Figura 68.- Diseo Lgico de la Base de Datos Fuente: Elaboracin Propia.

136

Captulo 6

Modelo de Diseo

6.4. Diseo Fsico (Mapeo de Tablas) Nombre Apertura de Caja Tipo de Llave Llave No Dato Primaria Fornea permitir valores nulos bigint bigint float datetime Caja Tipo de Llave Llave Dato Primaria Fornea bigint int float int int

idaperturacaja idcaja montoapertura fechaapertura

Nombre

idcaja nombre montoactual estado eliminado

No permitir valores nulos

Nombre

Tipo de Dato bigint varchar int

Cargo Llave Primaria

Llave Fornea

idcargo nombrecargo eliminado

No permitir valores nulos

Categora Tipo Llave Llave No de Primaria Fornea permitir Dato valores nulos idcategoria bigint nombrecategoria varchar eliminado int Nombre

137

Captulo 6

Modelo de Diseo

Nombre idcliente direccion telefono nit tipo eliminado

Tipo de Dato bigint varchar varchar varchar int int

Cliente Llave Llave Primaria Fornea

No permitir valores nulos

Nombre idcliente razonsocial

Tipo de Dato bigint varchar

Juridico Llave Llave Primaria Fornea

No permitir valores nulos

Nombre idcliente nombre app apm ci

Tipo de Dato bigint varchar varchar varchar varchar

Natural Llave Primaria

Llave Fornea

No permitir valores nulos

Nombre

Tipo de Dato bigint bigint bigint bigint datetime int

Compra Llave Primaria

Llave Fornea

idcompra idusuario idproveedor idalmacen fechacompra eliminado

No permitir valores nulos

138

Captulo 6

Modelo de Diseo

Nombre idcompra idproducto preciocompra cantidad eliminado

DetalleCompra Tipo Llave Llave de Primaria Fornea Dato bigint bigint float int int

No permitir valores nulos

DevolucionCompra Nombre Tipo de Llave Llave No Dato Primaria Fornea permitir valores nulos iddevolucioncompra bigint idusuario bigint idcompra bigint fechadevolucion datetime eliminado int DetalleDevolucionCompra Tipo Llave Llave de Primaria Fornea Dato bigint bigint int int

Nombre

iddevolucioncompra idproducto cantidad eliminado

No permitir valores nulos

Nombre

DevolucionInventario Tipo de Llave Llave Dato Primaria Fornea

iddevolucioninventario bigint idusuario bigint idalmacen bigint fechadevolucion datetime eliminado int

No permitir valores nulos

139

Captulo 6

Modelo de Diseo

Nombre

DetalleDevolucionInventario Tipo Llave Llave de Primaria Fornea Dato bigint bigint int int

iddevolucioninventario idproducto cantidad eliminado

No permitir valores nulos

Nombre

PedidoInventario Tipo de Llave Dato Primaria bigint bigint datetime int

Llave Fornea

idpedidoinventario idusuario fechapedido eliminado

No permitir valores nulos

Nombre

DetallePedidoInventario Tipo de Llave Llave Dato Primaria Fornea bigint bigint int int

idpedidoinventario idproducto cantidad eliminado

No permitir valores nulos

Nombre

PedidoProveedor Tipo de Llave Dato Primaria bigint bigint bigint datetime int

Llave Fornea

idpedidoproveedor idusuario idproveedor fechapedido eliminado

No permitir valores nulos

140

Captulo 6

Modelo de Diseo

Nombre idpedidoproveedor idproducto cantidad eliminado

DetallePedidoProveedor Tipo de Llave Llave Dato Primaria Fornea bigint bigint int int

No permitir valores nulos

Nombre

Producto Tipo de Llave Dato Primaria bigint bigint bigint float varchar float int

Llave Fornea

idproducto idmarca idcategoria porcentajeganancia descripcion costodeventa eliminado

No permitir valores nulos

Nombre

Proveedor Tipo de Llave Dato Primaria bigint varchar varchar varchar int int

Llave Fornea

idproveedor direccionproveedor telefonoproveedor nit tipo eliminado

No permitir valores nulos

Nombre

ProveedorJuridico Tipo de Llave Dato Primaria bigint varchar

Llave Fornea

idproveedor razonsocial

No permitir valores nulos

141

Captulo 6

Modelo de Diseo

Nombre idproveedor nombreproveedor appproveedor apmproveedor ciproveedor Nombre idproveedor idproducto costodereferencia fechaactualizacion

ProveedorJuridico Tipo de Llave Dato Primaria bigint varchar varchar varchar varchar

Llave Fornea

No permitir valores nulos

ProveedorProducto Tipo de Llave Dato Primaria bigint bigint float datetime

Llave Fornea

No permitir valores nulos

Nombre idusuario idempleado nombreusuario clave idnivelacceso eliminado Nombre idventa idusuario idcliente idalmacen idcaja fechaventa idnotasalida eliminado

Tipo de Dato bigint bigint varchar varchar bigint int Tipo de Dato bigint bigint bigint bigint bigint datetime bigint int

Usuario Llave Primaria

Llave Fornea

No permitir valores nulos

Venta Llave Primaria

Llave Fornea

No permitir valores nulos

142

Captulo 6

Modelo de Diseo

Nombre idventa idproducto precioventa cantidad eliminado Nombre idempleado idcargo nombreempleado appempleado apmempleado ciempleado direccionempleado telefonoempleado fechacontrato eliminado

DetalleVenta Tipo de Dato Llave Primaria bigint bigint float int int

Llave Fornea

No permitir valores nulos

Empleado Tipo de Dato Llave Primaria bigint bigint varchar varchar varchar varchar varchar varchar datetime int

Llave Fornea

No permitir valores nulos

Nombre idmarca nombremarca eliminado

Tipo de Dato bigint varchar int

Marca Llave Primaria

Llave Fornea

No permitir valores nulos

143

Captulo 6

Modelo de Diseo

Tablas-Procedimientos Almacenados Triggers TABLAS


CREATE TABLE [caja]( [idcaja] [int] IDENTITY(1,1) NOT NULL, [nombre] [varchar](150) NULL, [montoactual] [decimal](18, 2) NULL, [estado] [int] NULL, [eliminado] [int] NULL ) CREATE TABLE [proveedor]( [idproveedor] [bigint] IDENTITY(1,1) NOT NULL, [direccionproveedor] [varchar](60) NULL, [telefonoproveedor] [varchar](60) NULL, [nit] [varchar](60) NULL, [tipo] [int] NULL, [razonsocial] [varchar](60) NULL, [nombreproveedor] [varchar](60) NULL, [appproveedor] [varchar](60) NULL, [apmproveedor] [varchar](60) NULL, [ciproveedor] [varchar](60) NULL, [eliminado] [int] NULL ) CREATE TABLE [cliente]( [idcliente] [int] IDENTITY(1,1) NOT NULL, [Nombre] [nchar](10) NULL, [App] [nchar](10) NULL, [Apm] [nchar](10) NULL, [direccion] [varchar](60) NULL, [telefono] [varchar](60) NULL, [nit] [varchar](60) NULL, [eliminado] [int] NULL, [Tipo] [int] NULL, [Ci] [varchar](250) NULL, [Razon] [varchar](250) NULL ) CREATE TABLE [marca]( [idmarca] [bigint] IDENTITY(1,1) NOT NULL, [nombremarca] [varchar](60) NULL, [eliminado] [int] NULL ) CREATE TABLE [categoria]( [idcategoria] [bigint] IDENTITY(1,1) NOT NULL, [nombrecategoria] [varchar](60) NULL, [eliminado] [int] NULL ) CREATE TABLE [cargo]( [idcargo] [int] IDENTITY(1,1) NOT NULL, [nombrecargo] [varchar](60) NULL, [eliminado] [int] NULL ) CREATE TABLE [usuario]( [idusuario] [int] IDENTITY(1,1) NOT NULL, [idempleado] [int] NULL, [nombreusuario] [varchar](60) NULL, [clave] [varchar](60) NULL,

144

Captulo 6
[idnivelacceso] [bigint] NULL, [eliminado] [int] NULL

Modelo de Diseo

) CREATE TABLE [compra]( [idcompra] [bigint] IDENTITY(1,1) NOT NULL, [idusuario] [int] NULL, [idproveedor] [bigint] NULL, [idalmacen] [int] NULL, [fechacompra] [datetime] NULL, [identrada] [bigint] NULL, [eliminado] [int] NULL ) CREATE TABLE [pedidoproveedor]( [idpedidoproveedor] [bigint] IDENTITY(1,1) NOT NULL, [idusuario] [int] NULL, [idproveedor] [bigint] NULL, [fechapedido] [datetime] NULL, [eliminado] [int] NULL ) CREATE TABLE [proveedorproducto]( [Id] [bigint] IDENTITY(1,1) NOT NULL, [idproveedor] [bigint] NOT NULL, [idproducto] [int] NOT NULL, [costoreferencia] [float] NULL, [fechaactualizacion] [datetime] NULL ) CREATE TABLE [detalledevolucioncompra]( [iddevolucioncompra] [bigint] NOT NULL, [idproducto] [int] NOT NULL, [cantidad] [int] NULL, [eliminado] [int] NULL ) CREATE TABLE [aperturacaja]( [idaperturacaja] [bigint] NOT NULL, [idcaja] [int] NULL, [montoapertura] [float] NULL, [fechaapertura] [datetime] NULL ) CREATE TABLE [venta]( [idventa] [int] IDENTITY(1,1) NOT NULL, [idusuario] [int] NULL, [idcliente] [int] NULL, [idalmacen] [int] NULL, [idcaja] [int] NULL, [fechaventa] [datetime] NULL, [IdNotaSalida] [int] NULL, [eliminado] [int] NULL ) CREATE TABLE [detallecompra]( [idcompra] [bigint] NOT NULL, [idproducto] [int] NOT NULL, [preciocompra] [float] NULL, [cantidad] [int] NULL, [eliminado] [int] NULL ) CREATE TABLE [detalledevolucioninventario]( [iddevolucioninventario] [bigint] NOT NULL,

145

Captulo 6
[idproducto] [int] NOT NULL, [cantidad] [int] NULL, [eliminado] [int] NULL

Modelo de Diseo

) CREATE TABLE [existencia]( [idalmacen] [int] NOT NULL, [idproducto] [int] NOT NULL, [cantidad] [int] NULL ) CREATE TABLE [detallepedidoinventario]( [idpedidoinventario] [bigint] NOT NULL, [idproducto] [int] NOT NULL, [cantidad] [int] NULL, [eliminado] [int] NULL ) CREATE TABLE [detalleventa]( [idventa] [int] NOT NULL, [idproducto] [int] NOT NULL, [precioventa] [decimal](18, 2) NULL, [cantidad] [int] NULL, [eliminado] [int] NULL ) CREATE TABLE [detallepedidoproveedor]( [idpedidoproveedor] [bigint] NOT NULL, [idproducto] [int] NOT NULL, [cantidad] [int] NULL, [eliminado] [int] NULL ) CREATE TABLE [clientejuridico]( [idcliente] [int] NOT NULL, [razonsocial] [varchar](60) NULL ) CREATE TABLE [clientenatural]( [idcliente] [int] NOT NULL, [ci] [varchar](100) NULL ) CREATE TABLE [producto]( [idproducto] [int] IDENTITY(1,1) NOT NULL, [idmarca] [bigint] NULL, [idcategoria] [bigint] NULL, [porcentajeganancia] [float] NULL, [descripcion] [varchar](60) NULL, [costodeventa] [float] NULL, [eliminado] [int] NULL ) CREATE TABLE [devolucioninventario]( [iddevolucioninventario] [bigint] IDENTITY(1,1) NOT NULL, [idusuario] [int] NULL, [idalmacen] [int] NULL, [fechadevolucion] [datetime] NULL, [identrada] [bigint] NULL, [eliminado] [int] NULL ) CREATE TABLE [devolucioncompra]( [iddevolucioncompra] [bigint] IDENTITY(1,1) NOT NULL, [idusuario] [int] NULL, [idcompra] [bigint] NULL,

146

Captulo 6
[fechadevolucion] [datetime] NULL, [idsalida] [bigint] NULL, [eliminado] [int] NULL

Modelo de Diseo

) CREATE TABLE [pedidoinventario]( [idpedidoinventario] [bigint] IDENTITY(1,1) NOT NULL, [idusuario] [int] NULL, [fechapedido] [datetime] NULL, [eliminado] [int] NULL ) CREATE TABLE [empleado]( [idempleado] [int] IDENTITY(1,1) NOT NULL, [idcargo] [int] NULL, [nombreempleado] [varchar](60) NULL, [appempleado] [varchar](60) NULL, [apmempleado] [varchar](60) NULL, [ciempleado] [varchar](60) NULL, [direccionempleado] [varchar](60) NULL, [telefonoempleado] [varchar](60) NULL, [fechacontrato] [datetime] NULL, [eliminado] [int] NULL )

PROCEDIMIENTOS ALMACENADOS
CREATE Procedure [sp_DevolucionProveedorGetNewId] @a int output as set @a= (select ident_current('Devolucioncompra')+ident_incr('Devolucioncompra')) CREATE Procedure [sp_CompraGetNewId] @a int output as set @a= (select ident_current('Compra')+ident_incr('Compra')) CREATE Procedure [sp_CostoProducto] @tarea integer, @idproveedor bigint, @idproducto integer, @costoreferencia Float, @fechaactualizacion DateTime, @resultado integer output as if (@tarea=1) insert into Proveedorproducto values(@idproveedor,@idproducto,@costoreferencia,@fechaactualizacion) if (@tarea=2) update Proveedorproducto set costoreferencia=@costoreferencia,fechaactualizacion=@fechaactualizacion where idProveedor= @idProveedor and idproducto=@idproducto if (@tarea=3) delete from Proveedorproducto where idproveedor= @idproveedor and idproducto=@idproducto if(@@error=0) begin

147

Captulo 6
set @resultado=1 Return (1)

Modelo de Diseo

End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_CostoProductoGetById] @idproducto int, @idproveedor int AS SELECT idproveedor, idproducto, costoreferencia, fechaactualizacion FROM proveedorproducto WHERE (idproducto = @idproducto) AND (idproveedor = @idproveedor) CREATE Procedure [sp_VentaGetNewId] @a int output as set @a= (select ident_current('Venta')+ident_incr('Venta')) CREATE Procedure [sp_DevolucionInventarioGetNewId] @a int output as set @a= (select ident_current('DevolucionInventario')+ident_incr('DevolucionInventario')) CREATE Procedure [sp_PedidoInventarioGetNewId] @a int output as set @a= (select ident_current('pedidoinventario')+ident_incr('pedidoinventario')) CREATE Procedure [sp_PedidoProveedorGetNewId] @a int output as set @a= (select ident_current('pedidoproveedor')+ident_incr('pedidoproveedor')) CREATE Procedure [sp_EmpleadoGetById] @idEmpleado int AS SELECT * FROM Empleado WHERE idEmpleado=@idEmpleado and (eliminado = 0) CREATE Procedure [sp_EmpleadoAbm] @tarea integer, @idEmpleado int, @idCargo int, @nombre varchar(200), @app varchar(200), @apm varchar(200), @ci varchar(200), @direccion varchar(200), @telefono varchar(200),

148

Captulo 6
@fechaContrato datetime, @eliminado integer, @resultado integer output

Modelo de Diseo

AS declare @err1 int

if (@tarea=1) insert into Empleado values(@idCargo,@nombre,@app,@apm,@ci,@direccion,@telefono,@fechaContrato,@ eliminado) if (@tarea=2) update Empleado set idCargo=@idCargo,nombreEmpleado=@nombre,appEmpleado=@app,apmEmpleado=@apm,d ireccionEmpleado=@direccion,telefonoEmpleado=@telefono,fechaContrato=@fecha Contrato where idEmpleado= @idEmpleado if (@tarea=3) update Empleado set eliminado=1 where idEmpleado= @idEmpleado if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_EmpleadoBusqueda] @criterio as varchar(200) AS SELECT Empleado.idempleado as id ,Empleado.NombreEmpleado as nombre,Empleado.AppEmpleado as app, Empleado.ApmEmpleado as apm FROM Empleado WHERE (eliminado = 0) AND (nombreEmpleado LIKE @criterio or appEmpleado LIKE @criterio or apmEmpleado LIKE @criterio) CREATE Procedure [sp_EmpleadoGetAll] AS SELECT FROM WHERE dbo.empleado.*, dbo.cargo.nombrecargo dbo.empleado INNER JOIN dbo.cargo ON dbo.empleado.idcargo = dbo.cargo.idcargo Empleado.eliminado=0 AND cargo.eliminado=0

CREATE Procedure [sp_PedidoProveedorBusqueda] @criterio as varchar(max) AS select PP.idpedidoproveedor as id,U.nombreusuario as usuario,(Case When PO.Tipo=1 then (PO.nombreproveedor + ' ' + PO.appproveedor + ' ' + PO.apmproveedor) when PO.Tipo=2 then PO.razonsocial End) as proveedor,PP.fechapedido as fecha from pedidoProveedor PP , usuario U,Proveedor PO where PP.idusuario = U.idusuario and PP.eliminado=0 and PO.idproveedor=PP.idproveedor

149

Captulo 6

Modelo de Diseo

and (Convert(varchar(10),PP.idpedidoproveedor) like @criterio or U.nombreusuario like @criterio or ((Case When PO.Tipo=1 then PO.nombreproveedor + ' ' + PO.appproveedor + ' ' + PO.apmproveedor when PO.Tipo=2 then PO.razonsocial End) like @criterio) or (SELECT Count(*) FROM Producto P, Marca M, Categoria C, detallepedidoProveedor DC WHERE DC.idpedidoproveedor = PP.idpedidoproveedor and DC.idproducto= P.idproducto and P.idmarca = M.idmarca and P.idcategoria=C.idcategoria and P.eliminado=0 and (P.Descripcion like @criterio or M.nombremarca like @criterio or C.nombrecategoria like @criterio))>0) CREATE Procedure [sp_ProveedorGetAll_notElim] AS Select P.idproveedor as Id,(Case When P.Tipo=1 then P.nombreproveedor + ' ' + P.appproveedor + ' ' + P.apmproveedor when P.Tipo=2 then P.razonsocial End) as Nombre,P.direccionproveedor as Direccion,P.telefonoproveedor as Telefono, (Case When P.tipo=1 Then 'Natural' when P.tipo=2 then 'Juridico' END) as Tipo From Proveedor P Where P.Eliminado=0 CREATE Procedure [sp_CompraBusqueda] @criterio as varchar(max) AS select CP.idcompra as Id,U.nombreusuario as Usuario, A.nombrealmacen as Almacen,(Case When P.Tipo=1 then P.nombreproveedor + ' ' + P.appproveedor + ' ' + P.apmproveedor when P.Tipo=2 then P.razonsocial End) as Proveedor, CP.fechacompra as Fecha from Compra CP , usuario U , almacen A, Proveedor P where CP.idusuario = U.idusuario and A.idalmacen = CP.idalmacen and CP.idproveedor=P.idproveedor and CP.eliminado=0 and (Convert(varchar(10),CP.idcompra) like @criterio or U.nombreusuario like @criterio or A.nombrealmacen like @criterio or ((Case When P.Tipo=1 then P.nombreproveedor + ' ' + P.appproveedor + ' ' + P.apmproveedor when P.Tipo=2 then P.razonsocial End) like @criterio) or (SELECT Count(*) FROM Producto P, Marca M, Categoria C, DetalleCompra DC WHERE DC.idcompra = CP.idcompra and DC.idproducto= P.idproducto and P.idmarca = M.idmarca and P.idcategoria=C.idcategoria and P.eliminado=0 and (P.Descripcion like @criterio or M.nombremarca like @criterio or C.nombrecategoria like @criterio))>0) CREATE Procedure [sp_PedidoProveedorGetAllRelational] AS SELECT P.idpedidoProveedor as ID,U.nombreusuario as usuario,(Case When PO.Tipo=1 then (PO.nombreproveedor + ' ' + PO.appproveedor + ' ' + PO.apmproveedor) when PO.Tipo=2 then PO.razonsocial End) as proveedor,P.fechapedido FROM pedidoProveedor P,usuario U, Proveedor PO WHERE P.idusuario = U.idusuario and P.idproveedor = PO.idproveedor and P.eliminado=0

150

Captulo 6

Modelo de Diseo

CREATE Procedure [sp_ProveedorAbm] @tarea integer, @idproveedor bigint, @direccionproveedor varchar(250), @telefonoproveedor varchar(250), @nit varchar(250), @tipo integer, @razonsocial varchar(250), @nombreproveedor varchar(250), @appproveedor varchar(250), @apmproveedor varchar(250), @ciproveedor varchar(250), @eliminado integer, @resultado integer output as if (@tarea=1) insert into Proveedor values(@direccionproveedor,@telefonoproveedor,@nit,@tipo,@razonsocial,@nomb reproveedor,@appproveedor,@apmproveedor,@ciproveedor,@eliminado) if (@tarea=2) update Proveedor set direccionproveedor=@direccionproveedor,telefonoproveedor=@telefonoproveedor ,nit=@nit,tipo=@tipo,razonsocial=@razonsocial,nombreproveedor=@nombreprovee dor,appproveedor=@appproveedor,apmproveedor=@apmproveedor,ciproveedor=@cipr oveedor,eliminado=@eliminado where idProveedor= @idProveedor if (@tarea=3) Update Proveedor set eliminado= 1 where idProveedor= @idProveedor if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_ProveedorBusqueda] @criterio as varchar(200) AS Select P.idproveedor as Id,(Case When P.Tipo=1 then P.nombreproveedor + ' ' + P.appproveedor + ' ' + P.apmproveedor when P.Tipo=2 then P.razonsocial End) as Nombre,P.direccionproveedor as Direccion,P.telefonoproveedor as Telefono, (Case When P.tipo=1 Then 'Natural' when P.tipo=2 then 'Juridico' END) as Tipo From Proveedor P Where P.Eliminado=0 and ( Convert(varchar(10),P.idproveedor)like @criterio Or ((Case When P.Tipo=1 then P.nombreproveedor + ' ' + P.appproveedor + ' ' + P.apmproveedor when P.Tipo=2 then P.razonsocial End) like @criterio) or P.direccionproveedor like @criterio or P.telefonoproveedor like @criterio or (Case When P.tipo=1 Then 'Natural' when P.tipo=2 then 'Juridico' END) like @criterio )

151

Captulo 6

Modelo de Diseo

CREATE Procedure [sp_ProveedorGetAll] AS Select P.idproveedor as Id,(Case When P.Tipo=1 then P.nombreproveedor + ' ' + P.appproveedor + ' ' + P.apmproveedor when P.Tipo=2 then P.razonsocial End) as Nombre,P.direccionproveedor as Direccion,P.telefonoproveedor as Telefono, (Case When P.tipo=1 Then 'Natural' when P.tipo=2 then 'Juridico' END) as Tipo From Proveedor P CREATE Procedure [sp_ProveedorGetById] @idproveedor bigint AS SELECT idproveedor, direccionproveedor, telefonoproveedor, nit, tipo,razonsocial,nombreproveedor,appproveedor,apmproveedor,ciproveedor,elim inado FROM Proveedor WHERE idproveedor=@idproveedor and (eliminado = 0) CREATE Procedure [sp_ProveedorGetAllCombo] AS Select P.idproveedor as Id,(Case When P.Tipo=1 then P.nombreproveedor + ' ' + P.appproveedor + ' ' + P.apmproveedor when P.Tipo=2 then P.razonsocial End) as Nombre From Proveedor P Where P.Eliminado=0 Union Select -1 as Id,'*Seleccione Proveedor' order by Nombre CREATE Procedure [sp_CompraGetDescripcion] @idcompra bigint AS select CP.idcompra as Id,U.nombreusuario as Usuario, A.nombrealmacen as Almacen,(Case When P.Tipo=1 then P.nombreproveedor + ' ' + P.appproveedor + ' ' + P.apmproveedor when P.Tipo=2 then P.razonsocial End) as Proveedor, CP.fechacompra as Fecha from Compra CP , usuario U , almacen A, Proveedor P where CP.idcompra= @idcompra and CP.idusuario = U.idusuario and A.idalmacen = CP.idalmacen and CP.idproveedor=P.idproveedor and CP.eliminado=0 CREATE Procedure [sp_CompraGetAllRelational] AS Select C.idcompra as Id, U.nombreusuario as Usuario,(Case When P.Tipo=1 then (P.nombreproveedor + ' ' + P.appproveedor + ' ' + P.apmproveedor) when P.Tipo=2 then P.razonsocial End) as Proveedor,A.nombrealmacen as Almacen, C.fechacompra as Fecha From Compra C, Proveedor P, Almacen A, Usuario U Where C.Eliminado=0 and C.idproveedor=P.idproveedor and C.idalmacen=A.idalmacen and C.idusuario = U.idusuario CREATE Procedure [sp_DevolucionProveedorGetAllRelational] AS SELECT P.iddevolucioncompra as ID,

152

Captulo 6

Modelo de Diseo

U.nombreusuario as usuario, (Select '#' + Convert(varchar(200),CP.idcompra) + ' a ' + (Case When PR.Tipo=1 then (PR.nombreproveedor + ' ' + PR.appproveedor + ' ' + PR.apmproveedor) when PR.Tipo=2 then PR.razonsocial End) + ' el dia '+ Convert(varchar(max),CP.fechacompra,103) as Compra From Compra CP, Proveedor PR Where CP.Eliminado=0 and CP.idproveedor=PR.idproveedor and CP.idcompra=P.idcompra) as Compra, P.fechadevolucion as fecha FROM Devolucioncompra P,usuario U,Compra C WHERE P.idusuario = U.idusuario and P.idcompra = C.idcompra and P.eliminado=0 CREATE Procedure [sp_CostoProductoGetAllRelational] AS SELECT P.idproducto, PV.idproveedor,(C.nombrecategoria + ' ' + M.nombremarca + ' ' + descripcion) as Producto, (Case When PV.Tipo=1 then PV.nombreproveedor + ' ' + PV.appproveedor + ' ' + PV.apmproveedor when PV.Tipo=2 then PV.razonsocial End) as Proveedor,PP.CostoReferencia as Costo, PP.fechaactualizacion FROM producto P ,Marca M, Categoria C , Proveedor PV, proveedorproducto PP WHERE P.idmarca = M.idmarca and P.idcategoria = C.idcategoria and PP.idproducto=P.idproducto and PP.idproveedor=PV.idproveedor CREATE Procedure [sp_DevolucionProveedorGetById] @iddevolucioncompra bigint AS SELECT iddevolucioncompra,idusuario,idcompra,fechadevolucion,idsalida,elimin ado FROM Devolucioncompra WHERE iddevolucioncompra=@iddevolucioncompra and Eliminado=0 CREATE Procedure [sp_DevolucionProveedorAbm] @tarea integer, @iddevolucioncompra bigint, @idusuario integer, @idcompra bigint, @fechadevolucion DateTime, @idsalida bigint, @eliminado integer, @resultado integer output as if (@tarea=1) insert into devolucioncompra values(@idusuario,@idcompra,@fechaDevolucion,@idsalida,@eliminado) if (@tarea=2) update devolucioncompra set idusuario=@idusuario,idcompra=@idcompra,fechaDevolucion=@fechaDevolucion,el iminado=@eliminado where iddevolucioncompra= @iddevolucioncompra if (@tarea=3) update devolucioncompra set eliminado=1 where iddevolucioncompra= @iddevolucioncompra if(@@error=0) begin set @resultado=1

153

Captulo 6
Return (1) End Else begin set @resultado=0 Return (0) End

Modelo de Diseo

CREATE Procedure [sp_VentasGetAll] AS SELECT dbo.venta.idventa, dbo.venta.fechaventa, dbo.caja.nombre AS caja, dbo.almacen.nombrealmacen AS almacen, dbo.cliente.Nombre AS cliente,sum(dbo.detalleventa.precioventa) as Total,sum(dbo.detalleventa.cantidad)as cantidad FROM dbo.almacen INNER JOIN dbo.venta ON dbo.almacen.idalmacen = dbo.venta.idalmacen INNER JOIN dbo.detalleventa ON dbo.venta.idventa = dbo.detalleventa.idventa INNER JOIN dbo.cliente ON dbo.venta.idcliente = dbo.cliente.idcliente INNER JOIN dbo.caja ON dbo.venta.idcaja = dbo.caja.idcaja where venta.eliminado=0 group by dbo.venta.idventa, dbo.venta.fechaventa, dbo.caja.nombre,dbo.almacen.nombrealmacen, dbo.cliente.Nombre CREATE Procedure [sp_VentaGetAllRelational] AS SELECT dbo.venta.idventa, dbo.usuario.nombreusuario, dbo.cliente.Nombre AS nombrecliente, dbo.almacen.nombrealmacen, dbo.caja.nombre AS nombrecaja FROM dbo.venta INNER JOIN dbo.usuario ON dbo.venta.idusuario = dbo.usuario.idusuario INNER JOIN dbo.cliente ON dbo.venta.idcliente = dbo.cliente.idcliente INNER JOIN dbo.almacen ON dbo.venta.idalmacen = dbo.almacen.idalmacen INNER JOIN dbo.caja ON dbo.venta.idcaja = dbo.caja.idcaja GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE Procedure [sp_CajaAbm] @tarea integer, @idCaja integer, @nombre varchar(250), @montoActual decimal(18,2), @estado int, @eliminado integer, @resultado integer output

154

Captulo 6

Modelo de Diseo

as if (@tarea=1) insert into Caja values(@nombre,@montoActual,@estado,@eliminado) if (@tarea=2) update Caja set nombre=@nombre,montoActual=@montoActual,estado=@estado,eliminado=@eliminado where idCaja= @idCaja if (@tarea=3) update Caja set eliminado=1 where idCaja= @idCaja if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_CajaBusqueda] @criterio as varchar(200) AS SELECT idcaja as Id, nombre as nombre FROM caja WHERE (eliminado = 0) AND (nombre LIKE @criterio) CREATE Procedure [sp_CajaGetAll] AS select idcaja,nombre,montoactual, case estado when 1 then 'Habilitado' else 'Des-Habilitado' end as estado from caja WHERE Caja.eliminado=0 order by nombre asc CREATE Procedure [sp_CajaGetAllCombo] AS select idcaja,nombre from caja WHERE caja.eliminado=0 union select -1 as idcaja,'*Seleccione Caja' as nombre order by nombre asc CREATE Procedure [sp_CajaGetById] @idCaja int AS SELECT idcaja, nombre,montoactual,estado, eliminado FROM caja WHERE (idcaja = @idCaja) AND (eliminado = 0) CREATE Procedure [sp_ProductoAbm] @tarea integer, @idproducto bigint, @idmarca bigint, @idcategoria bigint, @porcentajeganancia Float, @descripcion varchar(250), @costodeventa Float, @eliminado integer,

155

Captulo 6

Modelo de Diseo

@resultado integer output AS declare @err1 int if (@tarea=1) insert into producto values(@idmarca,@idcategoria,@porcentajeganancia,@descripcion,@costodeventa ,@eliminado) if (@tarea=2) update producto set idcategoria=@idcategoria,porcentajeganancia=@porcentajeganancia,descripcion =@descripcion,costodeventa=@costodeventa,eliminado=@eliminado where idproducto= @idproducto if (@tarea=3) update producto set eliminado=1 where idproducto= @idproducto if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_ProductoGetAll] AS SELECT idproducto AS Id, idmarca AS Marca, idcategoria as Categoria, porcentajeganancia as '% Ganancia', descripcion as Descripcion, costodeventa as Precio_Venta FROM Producto CREATE Procedure [sp_ProductoGetAll_notElim] AS SELECT idproducto AS Id, idmarca AS Marca, idcategoria as Categoria, porcentajeganancia as '% Ganancia', descripcion as Descripcion, costodeventa as Precio_Venta FROM Producto WHERE eliminado=0 CREATE Procedure [sp_DevolucionProveedorBusqueda] @criterio as varchar(max) AS select DC.iddevolucioncompra as id,U.nombreusuario as usuario,DC.idcompra as compra,DC.fechadevolucion as fecha from Devolucioncompra DC, usuario U where DC.idusuario = U.idusuario and DC.eliminado=0 and (Convert(varchar(10),DC.iddevolucioncompra) like @criterio or U.nombreusuario like @criterio or (SELECT Count(*) FROM Producto P, Marca M, Categoria C, detalleDevolucioncompra DD WHERE DD.iddevolucioncompra = DC.iddevolucioncompra and DD.idproducto= P.idproducto and P.idmarca = M.idmarca and P.idcategoria=C.idcategoria and P.eliminado=0 and (P.Descripcion like @criterio or M.nombremarca like @criterio or C.nombrecategoria like @criterio))>0)

156

Captulo 6

Modelo de Diseo

CREATE Procedure [sp_PedidoInventarioBusqueda] @criterio as varchar(max) AS select PD.idpedidoinventario as Id,U.nombreusuario as Usuario,PD.fechapedido as Fecha from pedidoinventario PD , usuario U where PD.idusuario = U.idusuario and PD.eliminado=0 and (Convert(varchar(10),PD.idpedidoinventario) like @criterio or U.nombreusuario like @criterio or (SELECT Count(*) FROM Producto P, Marca M, Categoria C, detallepedidoInventario DC WHERE DC.idpedidoinventario = PD.idpedidoinventario and DC.idproducto= P.idproducto and P.idmarca = M.idmarca and P.idcategoria=C.idcategoria and P.eliminado=0 and (P.Descripcion like @criterio or M.nombremarca like @criterio or C.nombrecategoria like @criterio))>0) CREATE Procedure [sp_DetallePedidoInventarioGetAllRelational] @idpedidoinventario bigint AS SELECT P.idproducto,(C.nombrecategoria + ' ' + M.nombremarca + ' ' + P.descripcion) as Producto,DP.cantidad FROM detallepedidoinventario DP,producto P,marca M,categoria C WHERE DP.idpedidoinventario = @idpedidoinventario and DP.idproducto=P.idproducto and P.idmarca = M.idmarca and P.idcategoria = C.idcategoria and DP.eliminado=0 CREATE Procedure [sp_DetallePedidoProveedorGetAllRelational] @idpedidoproveedor bigint AS SELECT P.idproducto,(C.nombrecategoria + ' ' + M.nombremarca + ' ' + P.descripcion) as Producto,DP.cantidad FROM detallepedidoproveedor DP,producto P,marca M,categoria C WHERE DP.idpedidoproveedor = @idpedidoproveedor and DP.idproducto=P.idproducto and P.idmarca = M.idmarca and P.idcategoria = C.idcategoria and DP.eliminado=0 CREATE Procedure [sp_ProductoGetById] @idproducto bigint AS SELECT idproducto AS Id, idmarca AS Marca, idcategoria as Categoria, porcentajeganancia as Ganancia, descripcion as Descripcion, costodeventa as Precio_Venta,eliminado FROM Producto WHERE idproducto=@idproducto and eliminado = 0 CREATE Procedure [sp_GetCostoProducto] @proveedor as bigint, @producto as bigint, @a float output as set @a= (SELECT ( CASE WHEN ( SELECT avg(PP.costoreferencia)

157

Captulo 6

Modelo de Diseo

FROM proveedorproducto PP WHERE PP.idproducto=@producto and PP.idproveedor=@proveedor) is null THEN (SELECT costodeventa FROM Producto WHERE idproducto=@producto) ELSE (SELECT avg(PP.costoreferencia) FROM proveedorproducto PP WHERE PP.idproducto=@producto and PP.idproveedor=@proveedor ) END ) as Monto ) IF (@@ROWCOUNT=0) BEGIN set @a=0 END CREATE Procedure [sp_ProductoBusqueda] @criterio as varchar(200) AS SELECT P.idproducto as Id, (C.nombrecategoria + ' - ' + M.nombremarca + ' ' + P.descripcion) as Producto FROM Producto P, Marca M, Categoria C WHERE P.idmarca = M.idmarca and P.idcategoria=C.idcategoria and P.eliminado=0 and (P.Descripcion like @criterio or M.nombremarca like @criterio or C.nombrecategoria like @criterio) ORDER BY Producto CREATE Procedure [sp_ProductoGetAllRelational] AS SELECT P.idproducto AS id, (C.nombrecategoria + ' - ' + M.nombremarca + ' - ' + P.descripcion) AS Producto, (CONVERT(decimal(10,2),(CASE WHEN ( SELECT TOP 1 PP.costoreferencia FROM proveedorproducto PP WHERE PP.idproducto=P.idproducto ORDER BY PP.fechaactualizacion desc) is null THEN P.costodeventa ELSE (SELECT TOP 1 PP.costoreferencia FROM proveedorproducto PP WHERE PP.idproducto=P.idproducto ORDER BY PP.fechaactualizacion desc) END ))) as Costo, (CONVERT(decimal(10,2),((CASE WHEN ( SELECT TOP 1 PP.costoreferencia FROM proveedorproducto PP WHERE PP.idproducto=P.idproducto ORDER BY PP.fechaactualizacion desc) is null THEN P.costodeventa ELSE (SELECT TOP 1 PP.costoreferencia FROM proveedorproducto PP WHERE PP.idproducto=P.idproducto ORDER BY PP.fechaactualizacion desc) END )*((1+P.porcentajeganancia)* 1.16))))as [Precio de Venta] FROM producto AS P INNER JOIN

158

Captulo 6

Modelo de Diseo
marca AS M ON P.idmarca = M.idmarca INNER JOIN categoria AS C ON P.idcategoria = C.idcategoria (P.eliminado = 0)

WHERE

CREATE Procedure [sp_ProductoBusquedaCompraByAlmacenProveedor] @criterio as varchar(200), @idalmacen as bigint, @idProveedor bigint AS SELECT P.idproducto as id ,(C.nombrecategoria + ' - ' + M.nombremarca + ' - ' + P.descripcion) as Producto , ( CASE WHEN ( SELECT TOP 1 PP.costoreferencia FROM proveedorproducto PP WHERE PP.idproveedor=@idProveedor and PP.idproducto=P.idproducto ORDER BY PP.fechaactualizacion desc) is null THEN P.costodeventa ELSE ( SELECT TOP 1 PP.costoreferencia FROM proveedorproducto PP WHERE PP.idproveedor=@idProveedor and PP.idproducto=P.idproducto ORDER BY PP.fechaactualizacion desc ) END ) as Costo ,( SELECT isnull(SUM(cantidad),0) FROM Existencia E WHERE E.idalmacen=@idAlmacen and E.idproducto=P.idProducto) as Cantidad FROM Producto P, Marca M, Categoria C WHERE P.idmarca = M.idmarca and P.idcategoria=C.idcategoria and P.eliminado=0 and (P.Descripcion like @criterio or M.nombremarca like @criterio or C.nombrecategoria like @criterio) CREATE Procedure [sp_ProductoBusquedaByAlmacen] @criterio as varchar(200), @idalmacen as int AS SELECT dbo.producto.idproducto as Id, dbo.categoria.nombrecategoria + ' - ' + dbo.marca.nombremarca + ' - ' + dbo.producto.descripcion AS Producto ,ISNULL(dbo.existencia.cantidad, 0) AS Stock FROM dbo.categoria INNER JOIN dbo.producto ON dbo.categoria.idcategoria = dbo.producto.idcategoria INNER JOIN dbo.marca ON dbo.producto.idmarca = dbo.marca.idmarca FULL OUTER JOIN dbo.existencia ON dbo.producto.idproducto = dbo.existencia.idproducto FULL OUTER JOIN dbo.almacen ON dbo.existencia.idalmacen = dbo.almacen.idalmacen WHERE almacen.idalmacen=@idalmacen and (dbo.producto.descripcion LIKE @criterio or dbo.categoria.nombrecategoria LIKE @criterio or dbo.marca.nombremarca LIKE @criterio) ORDER BY Producto

159

Captulo 6

Modelo de Diseo

CREATE Procedure [sp_DetalleCompraGetAllRelational] @idcompra bigint AS SELECT DC.idproducto,(C.nombrecategoria + ' ' + M.nombremarca + ' ' + P.descripcion) as Producto ,DC.preciocompra as Precio,DC.cantidad as Cantidad, (DC.preciocompra * DC.cantidad) as Total FROM detallecompra DC, Producto P,Marca M , Categoria C Where DC.idcompra=@idcompra and DC.idproducto=P.idproducto and P.idmarca=M.idmarca and P.idcategoria=C.idcategoria and DC.eliminado=0 CREATE Procedure [sp_DevolucionInventarioBusqueda] @criterio as varchar(max) AS select DI.iddevolucioninventario as id,U.nombreusuario as usuario,A.nombrealmacen as Almacen,DI.fechadevolucion as fecha from devolucioninventario DI, usuario U,Almacen A where DI.idusuario = U.idusuario and DI.eliminado=0 and DI.idalmacen=A.idalmacen and (Convert(varchar(10),DI.iddevolucioninventario) like @criterio or U.nombreusuario like @criterio or A.nombrealmacen like @criterio or (SELECT Count(*) FROM Producto P, Marca M, Categoria C, detalledevolucioninventario DD WHERE DD.iddevolucioninventario = DI.iddevolucioninventario and DD.idproducto= P.idproducto and P.idmarca = M.idmarca and P.idCategoria=C.idCategoria and P.eliminado=0 and (P.Descripcion like @criterio or M.nombremarca like @criterio or C.nombrecategoria like @criterio))>0) CREATE Procedure [sp_DetalleDevolucionInventarioGetAllRelational] @iddevolucioninventario bigint AS SELECT DP.idproducto,(C.nombrecategoria + ' ' + M.nombremarca + ' ' + P.descripcion) as Producto,DP.cantidad FROM detalleDevolucioninventario DP,producto P,marca M,categoria C WHERE DP.iddevolucioninventario = @iddevolucioninventario and DP.idproducto=P.idproducto and P.idmarca = M.idmarca and P.idcategoria = C.idcategoria and DP.eliminado=0 CREATE Procedure [sp_DetalleDevolucionProveedorGetAllRelational] @iddevolucioncompra bigint AS SELECT DP.idproducto,(C.nombrecategoria + ' ' + M.nombremarca + ' ' + P.descripcion) as Producto,DP.cantidad FROM detalleDevolucioncompra DP,producto P,marca M,categoria C WHERE DP.iddevolucioncompra = @iddevolucioncompra and DP.idproducto=P.idproducto and P.idmarca = M.idmarca and P.idcategoria = C.idcategoria and DP.eliminado=0 CREATE Procedure [sp_ProductoGetAvgCosto] @idproducto bigint, @a int output

160

Captulo 6
AS set @a=(SELECT (CASE

Modelo de Diseo

WHEN (SELECT avg( PP.costoreferencia) FROM proveedorproducto PP WHERE PP.idProducto=@idproducto ) is null THEN (SELECT costodeventa FROM producto WHERE idproducto=@idproducto )

ELSE (SELECT avg( PP.costoreferencia) FROM proveedorproducto PP WHERE PP.idProducto=@idproducto ) END ) as Costo) CREATE Procedure [sp_DetalleVentaGetAllRelational] @idVenta bigint AS SELECT DV.idproducto,(C.nombrecategoria + ' ' + M.nombremarca + ' ' + P.descripcion) as Producto ,DV.precioventa as Precio,DV.cantidad as Cantidad, (DV.precioventa * DV.cantidad) as Total FROM detalleventa DV, Producto P,Marca M , Categoria C WHERE DV.idventa=@idventa and DV.idproducto=P.idproducto and P.idmarca=M.idmarca and P.idcategoria=C.idcategoria and DV.eliminado=0 CREATE Procedure [sp_VentaBusqueda] @criterio as varchar(max) AS select VT.idventa as Id,U.nombreusuario as Usuario, A.nombrealmacen as Almacen,(Case When C.Tipo=1 then C.nombre + ' ' + C.App + ' ' + C.Apm when C.Tipo=2 then C.Razon End) as Cliente, VT.fechaventa as Fecha from Venta VT , usuario U , almacen A, Cliente C where VT.idusuario = U.idusuario and A.idalmacen = VT.idalmacen and VT.idcliente = C.idcliente and VT.eliminado=0 and (Convert(varchar(10),VT.idventa) like @criterio or U.nombreusuario like @criterio or A.nombrealmacen like @criterio or ((Case When C.Tipo=1 then C.nombre + ' ' + C.App + ' ' + C.Apm when C.Tipo=2 then C.Razon End) like @criterio) or (SELECT Count(*) FROM Producto P, Marca M, Categoria C, DetalleVenta DV WHERE DV.idventa = VT.idventa and DV.idproducto= P.idproducto and P.idmarca = M.idmarca and P.idcategoria=C.idcategoria and P.eliminado=0 and (P.Descripcion like @criterio or M.nombremarca like @criterio or C.nombrecategoria like @criterio))>0) CREATE Procedure [sp_ProductoGetAvgCostobyProveedor] @idproducto bigint, @idproveedor bigint, @a int output AS set @a=(SELECT (CASE WHEN ( SELECT avg(costoreferencia) FROM proveedorproducto PP

161

Captulo 6
WHERE PP.idProducto=@idproducto and idproveedor=@idproveedor ) is null THEN (SELECT costodeventa FROM producto WHERE idproducto=@idproducto ) ELSE (SELECT avg(costoreferencia) FROM proveedorproducto PP WHERE PP.idProducto=@idproducto and idproveedor=@idproveedor) END ) as Costo)

Modelo de Diseo

CREATE Procedure [sp_ProductoGetLastCosto] @idproducto bigint, @a int output AS set @a=(SELECT (CASE WHEN ( SELECT TOP 1 PP.costoreferencia FROM proveedorproducto PP WHERE PP.idProducto=@idproducto ORDER BY PP.fechaactualizacion DESC) is null THEN (SELECT costodeventa FROM producto WHERE idproducto=@idproducto ) ELSE (SELECT TOP 1 PP.costoreferencia FROM proveedorproducto PP WHERE PP.idProducto=@idproducto ORDER BY PP.fechaactualizacion DESC) END ) as Costo) CREATE Procedure [sp_ProductoGetLastCostobyProveedor] @idproducto bigint, @idproveedor bigint, @a int output AS set @a=(SELECT (CASE WHEN ( SELECT TOP 1 PP.costoreferencia FROM proveedorproducto PP WHERE PP.idProducto=@idproducto and idproveedor=@idproveedor ORDER BY PP.fechaactualizacion DESC) is null THEN (SELECT costodeventa FROM producto WHERE idproducto=@idproducto ) ELSE (SELECT TOP 1 PP.costoreferencia FROM proveedorproducto PP WHERE PP.idProducto=@idproducto and idproveedor=@idproveedor ORDER BY PP.fechaactualizacion DESC)END) as Costo)

162

Captulo 6

Modelo de Diseo

CREATE Procedure [sp_DevolucionInventarioGetById] @iddevolucioninventario bigint AS SELECT iddevolucioninventario,idusuario,idalmacen,fechadevolucion,identrada, eliminado FROM DevolucionInventario WHERE iddevolucioninventario=@iddevolucioninventario and Eliminado=0 CREATE Procedure [sp_DevolucionInventarioGetAllRelational] AS SELECT D.iddevolucioninventario as ID, U.nombreusuario as usuario,A.nombrealmacen as Almacen, D.fechadevolucion as fecha FROM devolucioninventario D,usuario U,almacen A WHERE D.idusuario = U.idusuario and D.idalmacen=A.idalmacen and D.eliminado=0 CREATE Procedure [sp_DevolucionInventarioAbm] @tarea integer, @iddevolucioninventario bigint, @idusuario integer, @idalmacen integer, @fechadevolucion DateTime, @identrada bigint, @eliminado integer, @resultado integer output as if (@tarea=1) insert into Devolucioninventario values(@idusuario,@idalmacen,@fechadevolucion,@identrada,@eliminado) if (@tarea=2) update Devolucioninventario set idusuario=@idusuario,idalmacen=@idalmacen,fechadevolucion=@fechadevolucion, identrada=@identrada,eliminado=@eliminado where idDevolucioninventario= @idDevolucioninventario if (@tarea=3) update Devolucioninventario set eliminado=1 where idDevolucioninventario= @idDevolucioninventario if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_DetalleDevolucionInventarioGetById] @iddevolucioninventario bigint, @idproducto int AS SELECT iddevolucioninventario,idproducto,cantidad,eliminado FROM detalleDevolucioninventario

163

Captulo 6
WHERE iddevolucioninventario = @iddevolucioninventario and idproducto=@idproducto

Modelo de Diseo

CREATE Procedure [sp_DetalleDevolucionInventarioGetAll] @iddevolucioninventario bigint AS SELECT iddevolucioninventario,idproducto,cantidad,eliminado FROM detalledevolucioninventario WHERE iddevolucioninventario=@iddevolucioninventario and eliminado=0 CREATE Procedure [sp_DetalleDevolucionInventarioAbm] @tarea integer, @iddevolucioninventario bigint, @idproducto integer, @cantidad integer, @eliminado integer, @resultado integer output as if (@tarea=1) Begin Declare @Estado as integer set @Estado = (select count(*) from detalleDevolucioninventario Where iddevolucioninventario= @iddevolucioninventario and idproducto=@idproducto and eliminado =1) if (@Estado<=0) begin insert into detalleDevolucioninventario values(@iddevolucioninventario,@idproducto,@cantidad,@eliminado) end else begin update detalleDevolucioninventario set cantidad=@cantidad,eliminado=@eliminado where iddevolucioninventario= @iddevolucioninventario and idproducto=@idproducto end end if (@tarea=2) update detalleDevolucioninventario set cantidad=@cantidad,eliminado=@eliminado where iddevolucioninventario= @iddevolucioninventario and idproducto=@idproducto if (@tarea=3) update detalleDevolucioninventario set eliminado=1 where iddevolucioninventario= @iddevolucioninventario and idproducto=@idproducto if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End

164

Captulo 6

Modelo de Diseo

CREATE Procedure [sp_ClienteGetAll] AS SELECT dbo.cliente.*,-- dbo.clientejuridico.razonsocial, --dbo.clientenatural.ci, CASE WHEN dbo.cliente.Tipo = 1 THEN 'Natural' ELSE 'Jurdico' END as Tipo FROM dbo.cliente WHERE cliente.eliminado=0 CREATE Procedure [sp_ClienteGetById] @idCliente int AS SELECT * FROM Cliente WHERE idCliente=@idCliente and (eliminado = 0) CREATE Procedure [sp_ClienteAbm] @tarea integer, @idCliente int, @nombre varchar(200), @app varchar(200), @apm varchar(200), @direccion varchar(200), @telefono varchar(200), @nit varchar(200), @tipo integer, @ci varchar(200), @razon varchar(200), @eliminado integer, @resultado integer output AS declare @err1 int if (@tarea=1) insert into Cliente values(@nombre,@app,@apm,@direccion,@telefono,@nit,@eliminado,@tipo,@ci,@ra zon) if (@tarea=2) update Cliente set ci=@ci,razon=@razon,nombre=@nombre,app=@app,apm=@apm,direccion=@direccion,t elefono=@telefono,nit=@nit,tipo=@tipo where idCliente= @idCliente if (@tarea=3) update Cliente set eliminado=1 where idCliente= @idCliente if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_ClienteBusqueda] @criterio as varchar(200) AS SELECT cliente.idcliente,cliente.Nombre,cliente.App,cliente.Apm

165

Captulo 6

Modelo de Diseo

FROM cliente WHERE (eliminado = 0) AND (nombre LIKE @criterio or app LIKE @criterio or apm LIKE @criterio) CREATE Procedure [sp_DetalleCompraGetAll] @idcompra bigint AS SELECT idcompra,idproducto,preciocompra,cantidad,eliminado FROM detallecompra Where idcompra=@idcompra AND (eliminado = 0) CREATE Procedure [sp_DetalleCompraAbm] @tarea integer, @idcompra bigint, @idproducto integer, @preciocompra Float, @cantidad integer, @eliminado integer, @resultado integer output as if (@tarea=1) Begin Declare @Estado as integer set @Estado = (select count(*) from Detallecompra Where idcompra= @idcompra and idproducto=@idproducto and Eliminado =1) if (@Estado<=0) begin insert into Detallecompra values(@idcompra,@idproducto,@preciocompra,@cantidad,@eliminado) end else begin update Detallecompra set preciocompra=@preciocompra,cantidad=@cantidad,eliminado=@eliminado where idcompra= @idcompra and idproducto=@idproducto end end if (@tarea=2) update Detallecompra set preciocompra=@preciocompra,cantidad=@cantidad,eliminado=@eliminado where idcompra= @idcompra and idproducto=@idproducto if (@tarea=3) update Detallecompra set eliminado=1 where idcompra= @idcompra and idproducto=@idproducto if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End

166

Captulo 6
CREATE Procedure [sp_DetalleCompraGetById] @idcompra bigint, @idproducto int AS SELECT idcompra,idproducto,preciocompra,cantidad,eliminado FROM detallecompra WHERE idcompra = @idcompra and idproducto=@idproducto

Modelo de Diseo

CREATE Procedure [sp_VentasAbm] @tarea integer, @idVenta int, @idUsuario int, @idCliente int, @idAlmacen int, @idCaja int, @fechaVenta datetime, @idNotaSalida int, @eliminado integer, @resultado integer output as if (@tarea=1) insert into Venta values(@idUsuario,@idCliente,@idAlmacen,@idCaja,@fechaVenta,@idNotaSalida,@ eliminado) if (@tarea=2) update Venta set idusuario=@idUsuario,idcliente=@idCliente,idalmacen=@idAlmacen,idcaja=@idCa ja, fechaventa=@fechaVenta,idnotasalida=@idNotaSalida,eliminado=@eliminad o where idventa= @idventa if (@tarea=3) update Venta set eliminado=1 where idventa= @idVenta if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_VentaGetById] @idVenta int AS SELECT * FROM venta WHERE (idVenta = @idVenta) AND (eliminado = 0) CREATE Procedure [sp_MarcaBusqueda] @criterio as varchar(200) AS SELECT idMarca as Id, nombreMarca as nombre FROM Marca WHERE (eliminado = 0) AND (nombreMarca LIKE @criterio)

167

Captulo 6
CREATE Procedure [sp_MarcaGetById] @idMarca bigint AS SELECT idMarca, nombreMarca,eliminado FROM Marca WHERE idMarca=@idMarca and (eliminado = 0) CREATE Procedure [sp_MarcaAbm] @tarea integer, @idmarca bigint, @nombremarca varchar(250), @eliminado integer, @resultado integer output AS declare @err1 int

Modelo de Diseo

if (@tarea=1) insert into Marca values(@nombremarca,@eliminado) if (@tarea=2) update Marca set nombremarca=@nombremarca,eliminado=@eliminado where idMarca= @idMarca if (@tarea=3) UPDATE Marca set eliminado = 1 where idmarca= @idmarca if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE AS SELECT FROM WHERE Procedure [sp_MarcaGetAll_notElim] idMarca AS Id, nombreMarca AS Nombre Marca eliminado=0

CREATE Procedure [sp_MarcaGetAll] AS SELECT idMarca AS Id, nombreMarca AS Nombre FROM Marca CREATE Procedure [sp_MarcaGetAllCombo] AS SELECT idMarca AS Id, nombreMarca AS Nombre FROM Marca WHERE eliminado=0 Union Select -1 as Id,'*Seleccione Marca' as Nombre Order By Nombre CREATE Procedure [sp_CategoriaGetAll_notElim] AS SELECT idCategoria AS Id, nombreCategoria AS Nombre

168

Captulo 6
FROM WHERE Categoria eliminado=0

Modelo de Diseo

CREATE Procedure [sp_CategoriaGetAllCombo] AS SELECT idCategoria AS Id, nombreCategoria AS Nombre FROM Categoria WHERE eliminado=0 Union Select -1 as Id,'*Seleccione Categoria' as Nombre Order By Nombre CREATE Procedure [sp_CategoriaGetAll] AS SELECT idCategoria AS Id, nombrecategoria AS Nombre FROM categoria CREATE Procedure [sp_CategoriaGetById] @idcategoria bigint AS SELECT idcategoria, nombrecategoria,eliminado FROM categoria WHERE idcategoria=@idcategoria and (eliminado = 0) CREATE Procedure [sp_CategoriaBusqueda] @criterio as varchar(200) AS SELECT idCategoria as Id, nombrecategoria as nombre FROM categoria WHERE (eliminado = 0) AND (nombrecategoria LIKE @criterio) CREATE Procedure [sp_CategoriaAbm] @tarea integer, @idcategoria bigint, @nombrecategoria varchar(250), @eliminado integer, @resultado integer output AS declare @err1 int if (@tarea=1) insert into Categoria values(@nombrecategoria,@eliminado) if (@tarea=2) update Categoria set nombrecategoria=@nombrecategoria,eliminado=@eliminado where idCategoria= @idCategoria if (@tarea=3) update Categoria set eliminado=1 where idCategoria= @idCategoria if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End

169

Captulo 6

Modelo de Diseo

CREATE Procedure [sp_DetalleDevolucionProveedorAbm] @tarea integer, @iddevolucioncompra bigint, @idproducto integer, @cantidad integer, @eliminado integer, @resultado integer output as if (@tarea=1) Begin Declare @Estado as integer set @Estado = (select count(*) from detalleDevolucioncompra Where iddevolucioncompra= @iddevolucioncompra and idproducto=@idproducto and eliminado =1) if (@Estado<=0) begin insert into detalleDevolucioncompra values(@iddevolucioncompra,@idproducto,@cantidad,@eliminado) end else begin update detalleDevolucioncompra set cantidad=@cantidad,eliminado=@eliminado where iddevolucioncompra= @iddevolucioncompra and idproducto=@idproducto end end if (@tarea=2) update detalleDevolucioncompra set cantidad=@cantidad,eliminado=@eliminado where iddevolucioncompra= @iddevolucioncompra and idproducto=@idproducto if (@tarea=3) update detalleDevolucioncompra set eliminado=1 where iddevolucioncompra= @iddevolucioncompra and idproducto=@idproducto if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_DetalleDevolucionProveedorGetAll] @iddevolucioncompra bigint AS SELECT iddevolucioncompra,idproducto,cantidad,eliminado FROM detalledevolucioncompra WHERE iddevolucioncompra=@iddevolucioncompra and eliminado=0 CREATE Procedure [sp_DetalleDevolucionProveedorGetById] @iddevolucioncompra bigint, @idproducto int AS

170

Captulo 6

Modelo de Diseo

SELECT iddevolucioncompra,idproducto,cantidad,eliminado FROM detalleDevolucioncompra WHERE iddevolucioncompra = @iddevolucioncompra and idproducto=@idproducto CREATE Procedure [sp_PedidoInventarioGetById] @idpedidoinventario bigint AS SELECT idpedidoinventario,idusuario,fechapedido,eliminado FROM pedidoinventario Where idpedidoinventario=@idpedidoinventario and eliminado=0 CREATE Procedure [sp_PedidoInventarioAbm] @tarea integer, @idpedidoinventario bigint, @idusuario integer, @fechapedido DateTime, @eliminado integer, @resultado integer output as if (@tarea=1) insert into Pedidoinventario values(@idusuario,@fechapedido,@eliminado) if (@tarea=2) update Pedidoinventario set idusuario=@idusuario,fechapedido=@fechapedido,eliminado=@eliminado where idPedidoinventario= @idPedidoinventario if (@tarea=3) update Pedidoinventario set eliminado=1 where idPedidoinventario= @idPedidoinventario if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_PedidoInventarioGetAllRelational] AS SELECT P.idpedidoinventario as ID,U.nombreusuario as usuario,P.fechapedido FROM pedidoinventario P,usuario U WHERE P.idusuario = U.idusuario and P.eliminado=0 CREATE Procedure [sp_DetallePedidoProveedorGetAll] @idpedidoproveedor bigint AS SELECT idpedidoproveedor,idproducto,cantidad,eliminado FROM detallepedidoproveedor WHERE idpedidoproveedor=@idpedidoproveedor and eliminado=0 CREATE Procedure [sp_DetallePedidoProveedorGetById] @idpedidoproveedor bigint,

171

Captulo 6

Modelo de Diseo

@idproducto int AS SELECT idpedidoproveedor,idproducto,cantidad,eliminado FROM detallepedidoproveedor WHERE idpedidoproveedor = @idpedidoproveedor and idproducto=@idproducto CREATE Procedure [sp_DetallePedidoProveedorAbm] @tarea integer, @idpedidoproveedor bigint, @idproducto integer, @cantidad integer, @eliminado integer, @resultado integer output as if (@tarea=1) Begin Declare @Estado as integer set @Estado = (select count(*) from detallepedidoproveedor Where idpedidoproveedor= @idpedidoproveedor and idproducto=@idproducto and eliminado =1) if (@Estado<=0) begin insert into Detallepedidoproveedor values(@idpedidoproveedor,@idproducto,@cantidad,@eliminado) end else begin update Detallepedidoproveedor set cantidad=@cantidad,eliminado=@eliminado where idpedidoproveedor= @idpedidoproveedor and idproducto=@idproducto end end if (@tarea=2) update Detallepedidoproveedor set cantidad=@cantidad,eliminado=@eliminado where idpedidoproveedor= @idpedidoproveedor and idproducto=@idproducto if (@tarea=3) update Detallepedidoproveedor set eliminado=1 where idpedidoproveedor= @idpedidoproveedor and idproducto=@idproducto if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_PedidoProveedorGetById] @idpedidoproveedor bigint AS SELECT idpedidoproveedor,idusuario,idproveedor,fechapedido,eliminado FROM pedidoproveedor Where idpedidoproveedor=@idpedidoproveedor and eliminado=0

172

Captulo 6

Modelo de Diseo

CREATE Procedure [sp_PedidoProveedorAbm] @tarea integer, @idpedidoproveedor bigint, @idusuario integer, @idproveedor bigint, @fechapedido DateTime, @eliminado integer, @resultado integer output as if (@tarea=1) insert into Pedidoproveedor values(@idusuario,@idproveedor,@fechapedido,@eliminado) if (@tarea=2) update Pedidoproveedor set idusuario=@idusuario,idproveedor=@idproveedor,fechapedido=@fechapedido,elim inado=@eliminado where idPedidoproveedor= @idPedidoproveedor if (@tarea=3) update Pedidoproveedor set eliminado=1 where idPedidoproveedor= @idPedidoproveedor if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_DetallePedidoInventarioAbm] @tarea integer, @idpedidoinventario bigint, @idproducto integer, @cantidad integer, @eliminado integer, @resultado integer output as if (@tarea=1) Begin Declare @Estado as integer set @Estado = (select count(*) from detallepedidoinventario Where idpedidoinventario= @idpedidoinventario and idproducto=@idproducto and eliminado =1) if (@Estado<=0) begin insert into detallepedidoinventario values(@idpedidoinventario,@idproducto,@cantidad,@eliminado) end else begin update detallepedidoinventario set cantidad=@cantidad,eliminado=@eliminado where idpedidoinventario= @idpedidoinventario and idproducto=@idproducto end end

173

Captulo 6

Modelo de Diseo

if (@tarea=2) update detallepedidoinventario set cantidad=@cantidad,eliminado=@eliminado where idpedidoinventario= @idpedidoinventario and idproducto=@idproducto if (@tarea=3) update detallepedidoinventario set eliminado=1 where idpedidoinventario= @idpedidoinventario and idproducto=@idproducto if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_DetallePedidoInventarioGetById] @idpedidoinventario bigint, @idproducto int AS SELECT idpedidoinventario,idproducto,cantidad,eliminado FROM detallepedidoinventario WHERE idpedidoinventario = @idpedidoinventario and idproducto=@idproducto CREATE Procedure [sp_DetallePedidoInventarioGetAll] @idpedidoinventario bigint AS SELECT idpedidoinventario,idproducto,cantidad,eliminado FROM detallepedidoinventario WHERE idpedidoinventario=@idpedidoinventario and eliminado=0 CREATE Procedure [sp_DetalleVentaGetAll] @idventa bigint AS SELECT idventa, idproducto, precioventa,cantidad, eliminado FROM detalleventa WHERE (idventa=@idventa) AND (eliminado = 0) CREATE Procedure [sp_DetalleVentaAbm] @tarea integer, @idVenta int, @idproducto int, @precioVenta decimal, @cantidad integer, @eliminado integer, @resultado integer output as if (@tarea=1) Begin Declare @Estado as integer set @Estado = (select count(*) from DetalleVenta Where idVenta= @idVenta and idproducto=@idproducto and Eliminado =1) if (@Estado<=0)

174

Captulo 6
begin

Modelo de Diseo

insert into DetalleVenta values(@idVenta,@idproducto,@precioVenta,@cantidad,@eliminado) end else begin update DetalleVenta set idproducto=@idproducto,precioventa=@precioVenta,cantidad= @cantidad,eliminado=@eliminado where idVenta= @idVenta and idproducto=@idproducto end End if (@tarea=2) update DetalleVenta set idproducto=@idproducto,precioventa=@precioVenta,cantidad= @cantidad where idVenta= @idVenta and idproducto=@idproducto if (@tarea=3) update DetalleVenta set eliminado=1 where idVenta= @idVenta and idproducto=@idproducto if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_ProductoBusquedaCantidadAlmacenes] @criterio as varchar(200) AS DECLARE @CatPVT AS NVARCHAR(MAX) DECLARE @Categorias AS varchar(20) DECLARE @CatID INT SET @CatID=(SELECT MIN(idalmacen) FROM Almacen where eliminado=0) SET @Categorias = ( SELECT nombrealmacen FROM Almacen WHERE idalmacen = @CatID and eliminado=0 ) SET @CatPVT = N'' WHILE @Categorias IS NOT NULL BEGIN SET @CatPVT = @CatPVT + N',['+ @Categorias +N']' SET @Categorias = ( SELECT TOP(1) nombrealmacen FROM Almacen WHERE idalmacen > @CatID and eliminado=0 ORDER BY idalmacen ASC) SET @CatID=( SELECT MIN(idalmacen) FROM Almacen Where nombrealmacen=@Categorias)

175

Captulo 6
END print @CatPVT

Modelo de Diseo

SET @CatPVT = SUBSTRING(@CatPVT, 2, LEN(@CatPVT)) print 'ok' print @CatPVT DECLARE @sql AS nvarchar(MAX) SET @sql = N' SELECT idproducto as Id,Producto,'+@CatPVT + ' FROM ( SELECT DISTINCT dbo.producto.idproducto, dbo.categoria.nombrecategoria + '' - '' + dbo.marca.nombremarca + '' - '' + dbo.producto.descripcion AS Producto, dbo.almacen.idalmacen, dbo.almacen.eliminado, dbo.almacen.nombrealmacen, ISNULL(dbo.existencia.cantidad, 0) AS Cantidad FROM dbo.categoria INNER JOIN dbo.producto ON dbo.categoria.idcategoria = dbo.producto.idcategoria INNER JOIN dbo.marca ON dbo.producto.idmarca = dbo.marca.idmarca FULL OUTER JOIN dbo.existencia ON dbo.producto.idproducto = dbo.existencia.idproducto FULL OUTER JOIN dbo.almacen ON dbo.existencia.idalmacen = dbo.almacen.idalmacen WHERE (dbo.producto.descripcion LIKE '''+ @criterio +''' or dbo.categoria.nombrecategoria LIKE '''+ @criterio +''' or dbo.marca.nombremarca LIKE '''+ @criterio +''') ) PIV PIVOT (max(Cantidad) FOR nombrealmacen IN ('+ @CatPVT + ')) AS Child Where Producto is not null ORDER BY Producto ' CREATE Procedure [sp_ExistenciaAbm] @tarea integer, @idalmacen bigint, @idproducto bigint, @cantidad integer, @resultado integer output AS if (@tarea=1) insert into Existencia values(@idalmacen,@idproducto,@cantidad) if (@tarea=2) update Existencia set cantidad=@cantidad where idalmacen=@idalmacen and idproducto=@idproducto if (@tarea=3) delete from Existencia where idalmacen=@idalmacen and idproducto=@idproducto if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0

176

Captulo 6
Return (0) End

Modelo de Diseo

CREATE Procedure [sp_ExistenciaGetCant] @idalmacen bigint, @idproducto bigint, @a int output as set @a= (select (case when sum(cantidad) is null then 0 else sum(cantidad) end) as cantidad from existencia Where idalmacen=@idalmacen and idproducto=@idproducto) CREATE Procedure [sp_CargoGetById] @idCargo int AS SELECT idcargo, nombrecargo, eliminado FROM cargo WHERE (idcargo = @idCargo) AND (eliminado = 0) CREATE Procedure [sp_CargoBusqueda] @criterio as varchar(200) AS SELECT idcargo as Id, nombrecargo as nombre FROM cargo WHERE (eliminado = 0) AND (nombrecargo LIKE @criterio) CREATE Procedure [sp_CargoAbm] @tarea integer, @idcargo integer, @nombrecargo varchar(250), @eliminado integer, @resultado integer output as if (@tarea=1) insert into Cargo values(@nombrecargo,@eliminado) if (@tarea=2) update Cargo set nombrecargo=@nombrecargo,eliminado=@eliminado where idCargo= @idCargo if (@tarea=3) update Cargo set eliminado=1 where idCargo= @idCargo if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End CREATE Procedure [sp_CargoGetAll] AS select idcargo,nombrecargo from cargo WHERE Cargo.eliminado=0 order by nombrecargo asc

177

Captulo 6
CREATE Procedure [sp_CargoGetAllCombo] AS select idcargo,nombrecargo from cargo WHERE Cargo.eliminado=0 union select -1 as idcargo,'*Seleccione Cargo' as nombrecargo order by nombrecargo asc

Modelo de Diseo

CREATE Procedure [sp_CompraGetById] @idCompra bigint AS SELECT idcompra,idusuario,idproveedor,idalmacen,fechacompra,identrada,eliminado FROM compra Where idcompra=@idCompra and eliminado=0 CREATE Procedure [sp_CompraAbm] @tarea integer, @idcompra bigint, @idusuario integer, @idproveedor bigint, @idalmacen integer, @fechacompra DateTime, @identrada bigint, @eliminado integer, @resultado integer output as if (@tarea=1) insert into Compra values(@idusuario,@idproveedor,@idalmacen,@fechacompra,@identrada,@eliminad o) if (@tarea=2) update Compra set idusuario=@idusuario,idproveedor=@idproveedor,idalmacen=@idalmacen,fechacom pra=@fechacompra,identrada=@identrada,eliminado=@eliminado where idCompra= @idCompra if (@tarea=3) update Compra set eliminado=1 where idCompra= @idCompra if(@@error=0) begin set @resultado=1 Return (1) End Else begin set @resultado=0 Return (0) End

178

Captulo 6

Modelo de Diseo

TRIGGERS
create trigger [tg_insertEntrada] on [compra] after insert as begin Declare @idCompra as bigint set @idCompra=(select idcompra from INSERTED) insert into entrada(idusuario,idalmacen,fechaentrada,tipoentrada,eliminado) select idusuario,idalmacen,fechacompra,1,0 from INSERTED update compra set identrada=@@IDENTITY where idcompra = @idCompra end CREATE trigger [tg_updateEntrada] on [compra] after UPDATE as begin Declare @identrada as bigint Declare @idusuario as int Declare @idalmacen as int Declare @fechaentrada as datetime Declare @tipoentrada as int Declare @eliminado as int SELECT @identrada=identrada,@idusuario=idusuario,@idalmacen=idalmacen,@fechaentrad a=fechacompra,@eliminado=eliminado FROM INSERTED update entrada Set idusuario= @idusuario,idalmacen=@idalmacen,fechaentrada=@fechaentrada,eliminado=@elimi nado where identrada= @identrada end create trigger [tg_insertDetalleSalidabyDevolucionProveedor] on [detalledevolucioncompra] for insert as begin Declare @idSalida as bigint Declare @iddevolucioncompra as bigint select @iddevolucioncompra=iddevolucioncompra from INSERTED select @idSalida=idsalida from devolucioncompra Where iddevolucioncompra=@iddevolucioncompra insert into detallesalida(idsalida,idproducto,cantidad,eliminado) select @idSalida,idproducto,cantidad,eliminado from INSERTED end create trigger [tg_updateDetalleSalidabyDevolucionProveedor] [detalledevolucioncompra] after Update as begin Declare @idDevolucion as bigint Declare @idsalida as bigint Declare @idproducto as bigint Declare @cantidad as int Declare @eliminado as int on

179

Captulo 6

Modelo de Diseo

select @idDevolucion=iddevolucioncompra,@idproducto=idproducto,@cantidad=cantidad, @eliminado=eliminado from INSERTED Select @idsalida=idsalida from devolucioncompra where iddevolucioncompra=@idDevolucion update detallesalida set cantidad=@cantidad,eliminado=@eliminado Where idsalida=@idsalida and idproducto=@idproducto end create trigger [tg_insertSalida] on [venta] for insert as begin Declare @idVenta as bigint set @idVenta=(select idventa from INSERTED) insert into salida(idusuario,idalmacen,fechasalida,tiposalida,eliminado) select idusuario,idalmacen,getdate() as fechasalida,1 as tiposalida,0 as eliminado from INSERTED update venta set idnotasalida=@@IDENTITY where idventa = @idVenta end CREATE trigger [tg_updateSalida] on [venta] after UPDATE as begin Declare @idsalida as bigint Declare @idusuario as int Declare @idalmacen as int Declare @fechaventa as datetime declare @fechasalida as datetime Declare @tiposalida as int Declare @eliminado as int SELECT @idsalida=idnotasalida,@idusuario=idusuario,@idalmacen=idalmacen,@fechavent a=fechaventa,@eliminado=eliminado FROM INSERTED update salida Set idusuario= @idusuario,idalmacen=@idalmacen,fechasalida=@fechasalida,eliminado=@elimina do where idsalida= @idsalida end create trigger [tg_insertDetalleEntrada] on [detallecompra] after insert as begin Declare @idEntrada as bigint Declare @idCompra as bigint Declare @idProveedor as bigint Declare @idProducto as bigint Declare @preciocompra as float select @idCompra=idcompra,@preciocompra=preciocompra,@idProducto=idproducto from INSERTED select @idEntrada=identrada,@idProveedor=idproveedor from compra Where idcompra=@idCompra

180

Captulo 6

Modelo de Diseo

insert into detalleentrada(identrada,idproducto,cantidad,eliminado) select @idEntrada,idproducto,cantidad,eliminado from INSERTED insert into proveedorproducto(idproveedor,idproducto,costoreferencia,fechaactualizacion ) values(@idProveedor,@idProducto,@preciocompra,getdate()) end create trigger [tg_updateDetalleEntrada] on [detallecompra] after update as begin Declare @idEntrada as bigint Declare @idCompra as bigint Declare @idproducto as bigint Declare @preciocompra as float Declare @cantidad as int Declare @eliminado as int select @idCompra=idcompra,@idproducto=idproducto,@preciocompra=preciocompra,@canti dad=cantidad,@eliminado=eliminado from INSERTED set @idEntrada=(select identrada from compra Where idcompra=@idCompra) update detalleentrada set cantidad=@cantidad,eliminado=@eliminado Where identrada=@idEntrada and idproducto=@idproducto end create trigger [tg_insertDetalleEntradabyDevolucionInventario] on [detalledevolucioninventario] for insert as begin Declare @idEntrada as bigint Declare @iddevolucion as bigint select @iddevolucion=iddevolucioninventario from INSERTED select @idEntrada=identrada from devolucioninventario Where iddevolucioninventario=@iddevolucion insert into detalleentrada(identrada,idproducto,cantidad,eliminado) select @idEntrada,idproducto,cantidad,eliminado from INSERTED end create trigger [tg_updateDetalleEntradabyDevolucionInventario] on [detalledevolucioninventario] after Update as begin Declare @idDevolucion as bigint Declare @identrada as bigint Declare @idproducto as bigint Declare @cantidad as int Declare @eliminado as int select @idDevolucion=iddevolucioninventario,@idproducto=idproducto,@cantidad=canti dad,@eliminado=eliminado from INSERTED Select @identrada=identrada from devolucioninventario where iddevolucioninventario=@idDevolucion update detalleentrada set cantidad=@cantidad,eliminado=@eliminado Where identrada=@identrada and idproducto=@idproducto end

181

Captulo 6

Modelo de Diseo

create trigger [tg_insertDetalleSalida] on [detalleventa] for insert as begin Declare @idSalida as bigint Declare @idVenta as bigint Declare @idCliente as bigint Declare @idProducto as bigint Declare @preciocompra as float select @idVenta=idventa,@idProducto=idproducto from INSERTED select @idsalida=idnotasalida from venta Where idventa=@idventa insert into detallesalida(idsalida,idproducto,cantidad,eliminado) select @idsalida,idproducto,cantidad,eliminado from INSERTED create trigger [tg_insertEntradabyDevolucionInventario] on [devolucioninventario] after insert as begin Declare @idDevolucion as bigint Declare @idAlmacen as bigint Declare @idusuario as bigint Declare @fechasalida as datetime select @idDevolucion=iddevolucioninventario,@idusuario=idusuario,@idAlmacen=idalma cen,@fechasalida=fechadevolucion from INSERTED insert into entrada(idusuario,idalmacen,fechaentrada,tipoentrada,eliminado) values (@idusuario,@idAlmacen,@fechasalida,5,0) update devolucioninventario set identrada=@@IDENTITY where iddevolucioninventario = @idDevolucion end CREATE trigger [tg_updateSalidabyDevolucionInventario] on [devolucioninventario] after UPDATE as begin Declare @identrada as bigint Declare @idusuario as bigint Declare @idalmacen as bigint Declare @fechasalida as datetime Declare @eliminado as int SELECT @identrada=identrada,@idalmacen=idalmacen,@idusuario=idusuario,@fechasalida =fechadevolucion,@eliminado=eliminado FROM INSERTED update entrada Set idusuario= @idusuario,idalmacen=@idalmacen,fechaentrada=@fechasalida,eliminado=@elimin ado where identrada = @identrada end create trigger [tg_insertSalidabyDevolucionProveedor] [devolucioncompra] after insert as begin Declare @idDevolucion as bigint Declare @idCompra as bigint Declare @idAlmacen as bigint Declare @idusuario as bigint on

182

Captulo 6

Modelo de Diseo

Declare @fechasalida as datetime select @idDevolucion=iddevolucioncompra,@idCompra=idcompra,@idusuario=idusuario,@f echasalida=fechadevolucion from INSERTED Select @idAlmacen=idalmacen FROM Compra WHERE idcompra=@idCompra insert into salida(idusuario,idalmacen,fechasalida,tiposalida,eliminado) values (@idusuario,@idAlmacen,@fechasalida,6,0) update devolucioncompra set idsalida=@@IDENTITY where iddevolucioncompra = @idDevolucion end CREATE trigger [tg_updateSalidabyDevolucionProveedor] on [devolucioncompra] after UPDATE as begin Declare @idsalida as bigint Declare @idusuario as bigint Declare @idalmacen as bigint Declare @idcompra as bigint Declare @fechasalida as datetime Declare @eliminado as int SELECT @idsalida=idsalida,@idcompra=idcompra,@idusuario=idusuario,@fechasalida=fec hadevolucion,@eliminado=eliminado FROM INSERTED SELECT @idalmacen=idalmacen FROM Compra WHERE idcompra=@idcompra update salida Set idusuario= @idusuario,idalmacen=@idalmacen,fechasalida=@fechasalida,eliminado=@elimina do where idsalida= @idsalida

183

Captulo 7

Modelo de Implementacin

7. Modelo de Implementacin 7.1. Diagrama de Componentes del Software


cmp NUEVO Diagrama de Componentes

library Presentacion

access

library Negocio

access library Dal library DbSistemaMuchaCosa

library Utilitario

access

access

Figura 69.- Diagrama de Componentes del Software Fuente: Elaboracin Propia.

7.2. Diagrama de Despliegue


deployment Diagrama de Despliegue

PC Serv idor de Base de Datos y Aplicaciones

MS SQL SERVER 2005

Reporting Serv ice

Window s Serv er 2003

Intranet

Intranet

Encargado de Compras

Caj ero

Encargado de Ventas

Encargado de Inv entario

Windows XP SP2

Window s XP SP2

Window s XP SP2

Sistema Mucha Cosa

Window s XP SP2

Sistema Mucha Cosa Framew ork 2.0 Framew ork 2.0

Sistema Mucha Cosa

Framew ork 2.0

Framew ork 2.0

Sistema Mucha Cosa

Figura 70.- Diagrama de Despliegue Fuente: Elaboracin Propia.

184

Captulo 7

Modelo de Implementacin

DESCRIPCIN DE LOS NODOS PC Servidor de BD y Aplicaciones: Este nodo ser el principal elemento del Sistema en la empresa, el mismo que ser de utilidad para el administrador del sistema. Software.- En l se encontrar instalado Windows Server 2003, Reporting Service, como as tambin el MS SQL Server 2005 Express Edition. Hardware.- El equipo Servidor de Base de Datos y Aplicaciones estar conformado por una computadora con tarjeta Intel Core2 Duo, Procesador de 3.0 Ghz, y una Memoria RAM de 4 Gb, en el mismo que ser instalado el software anteriormente descrito. PC Encargado de Compras: Ser el nodo con el que interacte el Encargado de Compras, por medio de ste nodo realizar el acceso a la BD del sistema. Software: Tendr instalado el Windows XP SP2, Aplicacin Sistema Mucha Cosa y el Framework.net. Hardware: El equipo estar conformado por una computadora con tarjeta Intel Core2 Duo, Procesador de 2.0 Ghz, y una Memoria RAM de 2 Gb, en el mismo que ser instalado el software anteriormente descrito. PC Encargado de Ventas: Ser el nodo con el que interacte el Encargado de Ventas, por medio de ste nodo realizar el acceso a la BD del sistema. Software: Tendr instalado el Windows XP SP2, Aplicacin Sistema Mucha Cosa y el Framework.net. Hardware: El equipo estar conformado por una computadora con tarjeta Intel Core2 Duo, Procesador de 2.0 Ghz, y una Memoria RAM de 2 Gb, en el mismo que ser instalado el software anteriormente descrito.

185

Captulo 7

Modelo de Implementacin

PC Cajero: Ser el nodo con el que interacte el Cajero, por medio de ste nodo realizar el acceso a la BD del sistema. Software: Tendr instalado el Windows XP SP2, Aplicacin Sistema Mucha Cosa y el Framework.net. Hardware: El equipo estar conformado por una computadora con tarjeta Intel Core2 Duo, Procesador de 2.0 Ghz, y una Memoria RAM de 2 Gb, en el mismo que ser instalado el software anteriormente descrito. PC Encargado de Inventario: Ser el nodo con el que interacte el Encargado de Inventario, por medio de ste nodo realizar el acceso a la BD del sistema. Cabe destacar que el Encargado de Inventario no se encuentra contemplado en la documentacin del presente proyecto debido a que ste interacta con el Sistema de Inventario del mismo Centro de Consumo Mucha Cosa. Software: Tendr instalado el Windows XP SP2, Aplicacin Sistema Mucha Cosa y el Framework.net. Hardware: El equipo estar conformado por una computadora con tarjeta Intel Core2 Duo, Procesador de 2.0 Ghz, y una Memoria RAM de 2 Gb, en el mismo que ser instalado el software anteriormente descrito.

186

Captulo 7

Modelo de Implementacin

Modelo Estructural

7.3. Implementacin de las Clases de Software Compra Nota.- Como se puede observar en el cdigo siguiente, no existen los mtodos para actualizar los stock de productos con la cantidad comprada, ni para registrar la entrada de los mismos en los almacenes. Esto se debe a que se utilizan disparadores (triggers) que se encargan de realizar estas operaciones automticamente.
public class Compra : DAL.TDatosSql { #region atributos private private private private private private private Int64 idcompra; Int32 idusuario; Int64 idproveedor; Int32 idalmacen; DateTime fechacompra; Int64 identrada; Int32 eliminado;

#endregion

187

Captulo 7
#region propiedades public Int64 Pidcompra { set { idcompra = value; } get { return idcompra; } } public Int32 Pidusuario { set { idusuario = value; } get { return idusuario; } } public Int64 Pidproveedor { set { idproveedor = value; } get { return idproveedor; } } public Int32 Pidalmacen { set { idalmacen = value; } get { return idalmacen; } } public DateTime Pfechacompra { set { fechacompra = value; } get { return fechacompra; } } public Int64 Pidentrada { set { identrada = value; } get { return identrada; } } public Int32 Peliminado { set { eliminado = value; } get { return eliminado; } } #endregion #region Metodos

Modelo de Implementacin

private int ABM(Utilitario.tarea tarea, System.Data.SqlClient.SqlTransaction t) { int resultado = 0; System.Object[] args = new System.Object[10]; args[0] = tarea; args[1] = this.Pidcompra; args[2] = this.Pidusuario; args[3] = this.Pidproveedor;

188

Captulo 7

Modelo de Implementacin
args[4] = this.Pidalmacen; args[5] = this.Pfechacompra; args[6] = this.Pidentrada; args[7] = this.Peliminado; args[8] = resultado; resultado = this.Ejecutar("sp_CompraAbm", args, t); return resultado;

public int Guardar(System.Data.SqlClient.SqlTransaction t) { return ABM(Utilitario.tarea.Guardar, t); } public int Modificar(System.Data.SqlClient.SqlTransaction t) { return ABM(Utilitario.tarea.Modificar, t); } public int Eliminar(System.Data.SqlClient.SqlTransaction t) { return ABM(Utilitario.tarea.Eliminar, t); } public DataTable GetAllRelational() { return this.TraerDataTable("sp_CompraGetAllRelational"); } public DataTable GetAll() { return this.TraerDataTable("sp_CompraGetAll"); } public Boolean Obtener() { DataTable tmpData = new DataTable(); System.Object[] args = new System.Object[1]; args[0] = this.Pidcompra; tmpData = TraerDataTable("sp_CompraGetById", args); foreach (DataRow fila in tmpData.Rows) { Pidcompra = Convert.ToInt32(fila["idcompra"]); Pidusuario = Convert.ToInt32(fila["idusuario"]); Pidproveedor = Convert.ToInt32(fila["idproveedor"]); Pidalmacen = Convert.ToInt32(fila["idalmacen"]); Pfechacompra = Convert.ToDateTime(fila["fechacompra"]); Pidentrada = Convert.ToInt32(fila["identrada"]); Peliminado = Convert.ToInt32(fila["eliminado"]); } return tmpData.Rows.Count > 0; } public int GetnewId() { int id = 0;

189

Captulo 7

Modelo de Implementacin

System.Object[] args = new System.Object[1]; args[0] = id; return Convert.ToInt32(this.TraerValor("sp_CompraGetNewId", args)); } public DataTable Busqueda(String Criterio) { System.Object[] args = new System.Object[1]; args[0] = Criterio; return this.TraerDataTable("sp_CompraBusqueda", args); } public int GetLastId() { int id = 0; System.Object[] args = new System.Object[2]; args[0] = "compra"; args[1] = id; return Convert.ToInt32(this.TraerValor("sp_GetLastIdByTable", args)); } } #endregion

Control Compra
public class CtrlCompra : DAL.TDatosSql { public List<NEGOCIO.GestionarCompra.DetalleCompra> Detalle = new List<NEGOCIO.GestionarCompra.DetalleCompra>(); public NEGOCIO.GestionarCompra.Compra Compra = new NEGOCIO.GestionarCompra.Compra(); public bool insertarCompra() { SqlTransaction tran = IniciarTransaccion(); if (Compra.Guardar(tran) !=0) { foreach (DetalleCompra Item in Detalle) { if (Item.Guardar(tran) == 0) { tran.Rollback(); return false; } } } else { tran.Rollback(); return false; } tran.Commit();

190

Captulo 7
return true; }

Modelo de Implementacin

public bool modificarCompra() { DetalleCompra objDetalle = new DetalleCompra(); SqlTransaction tran = IniciarTransaccion(); if (Compra.Modificar(tran) != 0) { objDetalle.Pidcompra = Compra.Pidcompra; DataTable tmpDato = objDetalle.GetAll(); foreach (DataRow fila in tmpDato.Rows) { objDetalle = new DetalleCompra(); objDetalle.Pidcompra = Convert.ToInt32(fila[0]); objDetalle.Pidproducto = Convert.ToInt32(fila[1]); if (objDetalle.Eliminar(tran) == 0) { tran.Rollback(); return false; } } foreach (DetalleCompra Item in Detalle) { Item.Pidcompra = Compra.Pidcompra; if (Item.Guardar(tran) == 0) { tran.Rollback(); return false; } }

} else { tran.Rollback(); return false; } tran.Commit(); return true; }

public bool eliminarCompra() { DetalleCompra objDetalle = new DetalleCompra(); Detalle.Clear(); objDetalle.Pidcompra = Compra.Pidcompra; DataTable tmpDato = objDetalle.GetAll(); SqlTransaction tran = IniciarTransaccion(); foreach (DataRow fila in tmpDato.Rows) { objDetalle = new DetalleCompra(); objDetalle.Pidcompra = Convert.ToInt32(fila[0]); objDetalle.Pidproducto = Convert.ToInt32(fila[1]);

191

Captulo 7

Modelo de Implementacin
if (objDetalle.Eliminar(tran) == 0) { tran.Rollback(); return false; }

if (Compra.Eliminar(tran) == 0) { tran.Rollback(); return false; } tran.Commit(); return true;

public DataTable GetDetalle() { DetalleCompra Detalle = new DetalleCompra(); Detalle.Pidcompra = Compra.Pidcompra; return Detalle.GetallRelational(); } public DataTable GetCompraAll() { Compra Compra = new Compra(); return Compra.GetAllRelational(); } }

Detalle Compra
public class DetalleCompra : DAL.TDatosSql { #region atributos private Int64 idcompra; private Int32 idproducto; private Double preciocompra; private Int32 cantidad; private Int32 eliminado; #endregion #region propiedades public Int64 Pidcompra { set { idcompra = value; } get { return idcompra; } } public Int32 Pidproducto { set { idproducto = value; } get { return idproducto; } }

192

Captulo 7
public Double Ppreciocompra { set { preciocompra = value; } get { return preciocompra; } } public Int32 Pcantidad { set { cantidad = value; } get { return cantidad; } } public Int32 Peliminado { set { eliminado = value; } get { return eliminado; } } #endregion #region Metodos

Modelo de Implementacin

private int ABM(Utilitario.tarea tarea, System.Data.SqlClient.SqlTransaction t) { int resultado = 0; System.Object[] args = new System.Object[8]; args[0] = tarea; args[1] = this.Pidcompra; args[2] = this.Pidproducto; args[3] = this.Ppreciocompra; args[4] = this.Pcantidad; args[5] = this.Peliminado; args[6] = resultado; resultado = this.Ejecutar("sp_DetalleCompraAbm", args, t); return resultado; } public int Guardar(System.Data.SqlClient.SqlTransaction t) { return ABM(Utilitario.tarea.Guardar, t); } public int Modificar(System.Data.SqlClient.SqlTransaction t) { return ABM(Utilitario.tarea.Modificar, t); } public int Eliminar(System.Data.SqlClient.SqlTransaction t) { return ABM(Utilitario.tarea.Eliminar, t); } public DataTable GetallRelational() { System.Object[] args = new System.Object[1];

193

Captulo 7

Modelo de Implementacin

args[0] = this.Pidcompra; return this.TraerDataTable("sp_DetalleCompraGetAllRelational", args); } public DataTable GetAll() { System.Object[] args = new System.Object[1]; args[0] = this.Pidcompra; return this.TraerDataTable("sp_DetalleCompraGetAll", } public Boolean Obtener() { DataTable tmpData = new DataTable(); System.Object[] args = new System.Object[2]; args[0] = this.Pidcompra; args[1] = this.Pidproducto; tmpData = TraerDataTable("sp_DetalleCompraGetById",

args);

args);

foreach (DataRow fila in tmpData.Rows) { Pidcompra = Convert.ToInt32(fila["idcompra"]); Pidproducto = Convert.ToInt32(fila["idproducto"]); Ppreciocompra = Convert.ToDouble(fila["preciocompra"]); Pcantidad = Convert.ToInt32(fila["cantidad"]); Peliminado = Convert.ToInt32(fila["eliminado"]); } return tmpData.Rows.Count > 0; } } #endregion

Venta Nota.- Como se puede observar en el cdigo siguiente, no existen los mtodos para actualizar los stock de productos en inventario con la cantidad vendida, ni para registrar la salida de los mismos de los almacenes. Esto se debe a que se utilizan disparadores (triggers) que se encargan de realizar estas operaciones automticamente.
namespace NEGOCIO.GestionarVentas { public class Ventas : DAL.TDatosSql { #region atributos private int idVenta;

194

Captulo 7
private private private private private private private int idUsuario; int idCliente; int idAlmacen; int idCaja; DateTime fechaVenta; Int32 idNotaSalida; Int32 eliminado;

Modelo de Implementacin

#endregion #region propiedades public int pIdUsuario { set { idUsuario = value; } get { return idUsuario; } } public int pIdVenta { set { idVenta = value; } get { return idVenta; } } public int pIdCliente { set { idCliente = value; } get { return idCliente; } } public int pIdAlmacen { set { idAlmacen = value; } get { return idAlmacen; } } public int pIdCaja { set { idCaja = value; } get { return idCaja; } } public DateTime pFechaVenta { set { fechaVenta = value; } get { return fechaVenta; } } public Int32 pIdNotaSalida { set { idNotaSalida = value; } get { return idNotaSalida; } } public Int32 pEliminado { set { eliminado = value; } get { return eliminado; } }

195

Captulo 7

Modelo de Implementacin

#endregion #region Metodos private int ABM(Utilitario.tarea tarea, SqlTransaction t) { int resultado = 0; System.Object[] args = new System.Object[11]; args[0] = tarea; args[1] = this.pIdVenta; args[2] = this.pIdUsuario; args[3] = this.pIdCliente; args[4] = this.pIdAlmacen; args[5] = this.pIdCaja; args[6] = this.pFechaVenta; args[7] = this.pIdNotaSalida; args[8] = this.pEliminado; args[9] = resultado; resultado = this.Ejecutar("sp_VentasAbm", args,t); return resultado; } public int Guardar(SqlTransaction t) { return ABM(Utilitario.tarea.Guardar, t); } public int Modificar(SqlTransaction t) { return ABM(Utilitario.tarea.Modificar, t); } public int Eliminar(SqlTransaction t) { return ABM(Utilitario.tarea.Eliminar, t); } public Boolean Obtener() { DataTable tmpData = new DataTable(); System.Object[] args = new System.Object[1]; args[0] = this.pIdVenta; tmpData = TraerDataTable("sp_VentaGetById", args); foreach (DataRow fila in tmpData.Rows) { pIdUsuario = Convert.ToInt32(fila["idusuario"]); pIdCliente = Convert.ToInt32(fila["idcliente"]); pIdAlmacen= Convert.ToInt16( fila["idalmacen"]); pIdCaja = Convert.ToInt16(fila["idcaja"]); pFechaVenta =Convert.ToDateTime( fila["fechaventa"]); pIdNotaSalida = Convert.ToInt16(fila["IdNotaSalida"]); pEliminado = Convert.ToInt32(fila["eliminado"]); } return tmpData.Rows.Count > 0; }

196

Captulo 7

Modelo de Implementacin
public DataTable GetAll() { return this.TraerDataTable("sp_VentasGetAll"); } public DataTable GetAllRelational() { return this.TraerDataTable("sp_VentaGetAllRelational"); } public DataTable Busqueda(String Criterio) { System.Object[] args = new System.Object[1]; args[0] = Criterio ; return this.TraerDataTable("sp_VentaBusqueda", args); }

public int GetnewId() { int id = 0; System.Object[] args = new System.Object[1]; args[0] = id; return Convert.ToInt32(this.TraerValor("sp_VentaGetNewId", args)); } #endregion } }

Control Venta
namespace NEGOCIO.GestionarVentas { public class ctrlVenta : DAL.TDatosSql { public List<NEGOCIO.GestionarVentas.DetalleVenta> Detalle = new List<NEGOCIO.GestionarVentas.DetalleVenta>(); public NEGOCIO.GestionarVentas.Ventas Venta = new NEGOCIO.GestionarVentas.Ventas(); public bool insertarVenta() { SqlTransaction tran = IniciarTransaccion(); if (Venta.Guardar(tran) != 0) { foreach (DetalleVenta Item in Detalle) { if (Item.Guardar(tran) == 0) { tran.Rollback(); return false; } } } else {

197

Captulo 7
tran.Rollback(); return false;

Modelo de Implementacin

} tran.Commit(); return true;

public bool modificarVenta() { NEGOCIO.GestionarVentas.DetalleVenta objDetalle=new DetalleVenta(); SqlTransaction tran = IniciarTransaccion(); if (Venta.Modificar(tran) != 0) { objDetalle.pIdVenta = Venta.pIdVenta; DataTable tmpDato = objDetalle.GetAll(); foreach (DataRow fila in tmpDato.Rows) { objDetalle = new DetalleVenta(); objDetalle.pIdVenta = Convert.ToInt32(fila[0]); objDetalle.Pidproducto = Convert.ToInt32(fila[1]); if (objDetalle.Eliminar(tran) == 0) { tran.Rollback(); return false; } } foreach (DetalleVenta Item in Detalle) { Item.pIdVenta = Venta.pIdVenta; if (Item.Guardar(tran) == 0) { tran.Rollback(); return false; } } } tran.Commit(); return true; } public bool eliminarVenta() { DetalleVenta objDetalle = new DetalleVenta(); Detalle.Clear(); objDetalle.pIdVenta = Venta.pIdVenta; DataTable tmpDato = objDetalle.GetAll(); SqlTransaction tran = IniciarTransaccion(); foreach (DataRow fila in tmpDato.Rows) { objDetalle = new DetalleVenta(); objDetalle.pIdVenta = Convert.ToInt32(fila[0]); objDetalle.Pidproducto = Convert.ToInt32(fila[1]); if (objDetalle.Eliminar(tran) == 0) {

198

Captulo 7
tran.Rollback(); return false;

Modelo de Implementacin

} } if (Venta.Eliminar(tran) == 0) { tran.Rollback(); return false; } tran.Commit(); return true;

public DataTable GetDetalle() { DetalleVenta Detalle = new DetalleVenta(); Detalle.pIdVenta = Venta.pIdVenta; return Detalle.GetallRelational(); } public DataTable GetVentaAll() { Venta = new Ventas(); return Venta.GetAllRelational(); } } }

DetalleVenta
namespace NEGOCIO.GestionarVentas { public class DetalleVenta : DAL.TDatosSql { #region atributos private private private private private Int64 idVenta; Int64 idProducto; decimal precioVenta; Int32 cantidad; Int32 eliminado;

#endregion #region propiedades public Int64 pIdVenta { set { idVenta = value; } get { return idVenta; } } public Int64 Pidproducto { set { idProducto = value; }

199

Captulo 7
get { return idProducto; } } public decimal pPrecioVenta { set { precioVenta = value; } get { return precioVenta; } } public Int32 pCantidad { set { cantidad = value; } get { return cantidad; } } public Int32 Peliminado { set { eliminado = value; } get { return eliminado; } } #endregion #region Metodos

Modelo de Implementacin

private int ABM(Utilitario.tarea tarea, SqlTransaction t) { int resultado = 0; System.Object[] args = new System.Object[8]; args[0] = tarea; args[1] = this.pIdVenta; args[2] = this.Pidproducto; args[3] = this.pPrecioVenta; args[4] = this.pCantidad; args[5] = this.Peliminado; args[6] = resultado; resultado = this.Ejecutar("sp_DetalleVentaAbm", args, t); return resultado;

public int Guardar(System.Data.SqlClient.SqlTransaction t) { return ABM(Utilitario.tarea.Guardar, t); } public int Modificar(System.Data.SqlClient.SqlTransaction t) { return ABM(Utilitario.tarea.Modificar, t); } public int Eliminar(System.Data.SqlClient.SqlTransaction t) { return ABM(Utilitario.tarea.Eliminar, t); } public DataTable GetallRelational() {

200

Captulo 7

Modelo de Implementacin

System.Object[] args = new System.Object[1]; args[0] = this.pIdVenta; return this.TraerDataTable("sp_DetalleVentaGetAllRelational", args); } public DataTable GetAll() { System.Object[] args = new System.Object[1]; args[0] = this.pIdVenta; args); return this.TraerDataTable("sp_DetalleVentaGetAll", } public Boolean Obtener() { DataTable tmpData = new DataTable(); System.Object[] args = new System.Object[1]; args[0] = this.Pidproducto; tmpData = TraerDataTable("sp_DetalleEVentaGetById", foreach (DataRow fila in tmpData.Rows) { pIdVenta = Convert.ToInt32(fila["idventa"]); Pidproducto = Convert.ToInt32(fila["idproducto"]); pPrecioVenta = Convert.ToInt32(fila["precioventa"]); pCantidad = Convert.ToInt32(fila["cantidad"]); Peliminado = Convert.ToInt32(fila["eliminado"]); } } return tmpData.Rows.Count > 0;

args);

#endregion }

201

Modelo de Pruebas

8. Modelo de Pruebas El objetivo principal de ste apartado es la realizacin de las pruebas de software, para lograr identificar las fallas que podran presentarse cuando el sistema se encuentre en ejecucin y se le introduzcan entradas que usualmente pueden ser digitadas por el usuario del mismo. Posterior a las pruebas realizadas, se debern realizar los ajustes necesarios al sistema en caso de encontrarse problemas en el funcionamiento, para posteriormente volver a realizar otra prueba del mismo tipo y comprobar que no ocurra el mismo error ni otros similares. Como tcnica utilizada para las pruebas se utilizar las pruebas de Caja Negra para asegurar el correcto funcionamiento del sistema, enfocndose en los requerimientos funcionales. Para realizar las pruebas de Caja Negra se realizar de los casos de uso de mayor importancia como ser: Registrar Venta; Registrar Compra; Registrar Pedidos a Inventario; Registrar Pedidos a Proveedores.

202

Modelo de Pruebas

N de Caso de Prueba: 1 Caso de Prueba Actores Tipo Resumen : Registrar Venta : Encargado de Ventas (Iniciador) : Esencial : Alejandro Borda ingresa al sistema los datos de la venta que realiz

su persona, teniendo en cuenta las especificaciones del producto vendido.

Figura 71. - Interface Gestin de Venta Fuente: Elaboracin Propia.

B C

Figura 72.- Interface Registrar Venta Fuente: Elaboracin Propia.

203

Modelo de Pruebas

F1

Figura 73. - Interface Busqueda de Productos Fuente: Elaboracin Propia.

FLUJO DE EVENTOS Accin del Actor Respuesta del Sistema 1. El encargado de Ventas Alejandro 2. El sistema carga y muestra ventas Borda, ingresa al men Principal y que han sido realizadas con selecciona en el mdulo de anterioridad, muestra el botn A del Comercializacin, Gestionar Ventas. formulario que se refiere a una nueva Venta, de igual manera muestra los botones referentes a la modificacin, 3. Alejandro presiona el botn Nuevo del eliminacin, bsqueda y reportes de las control A. ventas. 4. El sistema desplega un nuevo formulario para el registro de la venta, en B carga los almacenes de donde se exttraer el producto, en C selecciona la caja a depositar el dinero de la venta, en D carga el cliente al que se le 5. Alejandro luego de haber seleccionado realizar la venta. el Almacn, el cliente y la caja (Ver Figura 68), en E presiona sobre el detalle click 6. El sistema despliega un nuevo derecho y elige la opcin Adicionar. formulario llamado Busqueda De Producto.

204

Modelo de Pruebas 7. Alejandro introduce el criterio de bsqueda en F, por ejemplo digita % en caso de que quiera ver todos los productos con los que cuenta el almacn que con anterioridad seleccion (en B Figura 68) o digita %Sony% en caso de que el actor quisiera que se le despleguen todos los productos de marca Sony. Nota.- El criterio de bsqueda puede ser ya sea por marca, o por parte de la palabra que uno desea ejemplo: %hela% y se desplegarn todos los productos que son heladeras. 8. Selecciona el o los productos a vender, en F1.Presiona botn Aceptar 11. Alejandro almacena la nueva Venta de producto haciendo click en la opcin Guardar.

9. El producto o los productos que Alejandro seleccion se le desplegarn en el detalle (Figura 68 en E) con sus respectivas especificaciones como marca, categora, descripcin,etc. 10. Genera un Id de la venta y almacena los datos que han sido ingresados en los controles del formulario.

Eventos Alternos del caso de prueba Lnea 5: No se encuentra registrado el cliente (Control D), como consecuencia el sistema no carga los datos del cliente, se debe registrar como primera instancia al cliente para posteriormente proceder a la venta. Lnea 6: Si en la bsqueda de productos (Control F) no se encuentra el producto requerido, el encargado de ventas debe seleccionar otro almacn (Control B) para verificar si existe el producto. Lnea 10: Si los datos introducidos no son correctos en algunos campos del formulario, el sistema muestra un mensaje indicando el error.

205

Modelo de Pruebas N de Caso de Prueba: 2 Caso de Prueba Actores Tipo Resumen : Registrar Compra : Encargado de Compras (Iniciador) : Esencial : Roxana Guzman ingresa al sistema los datos de la compra que

realiz su persona, teniendo en cuenta las especificaciones del producto que fue comprado.

Figura 74.- Interface Gestionar Compra. Fuente: Elaboracin Propia.

Figura 75.- Interface Registrar una Nota de Compra Fuente: Elaboracin Propia.

206

Modelo de Pruebas

E1

Figura 76. - Interface Bsqueda de Productos Fuente: Elaboracin Propia.

FLUJO DE EVENTOS Accin del Actor Respuesta del Sistema 1. El encargado de Compras Roxana 2. El sistema carga y muestra las Guzman, ingresa al men Principal y compras que han sido realizadas con selecciona en el mdulo de anterioridad, muestra el botn A del Comercializacin, Gestionar Compras. formulario que se refiere a una nueva Compra, de igual manera muestra las distintas operaciones que se pueden 3. Roxana presiona el botn Nuevo realizar como una midificacin o (control A). eliminacin. 4. El sistema desplega un nuevo formulario para el registro de la compra, en B carga los almacenes en donde se depositar el o los productos comprados, en C selecciona el proveedor al que se le realiza la 5. Roxana luego de haber seleccionado el compra, en D se cargarn todas las Almacn, el proveedor (Ver Figura 71), en especificaciones del producto. D presiona sobre el detalle click derecho 6. El sistema despliega un nuevo y elige la opcin Adicionar. formulario llamado Busqueda De Producto (Ver Figura 72).

207

Modelo de Pruebas 7. Roxana introduce el criterio de bsqueda en E, por ejemplo digita % en caso de que quiera ver todos los productos que se encuentran registrados en el sistema o digita %Sony% en caso de que el actor quisiera que se le despleguen todos los productos de marca Sony. Nota.- El criterio de bsqueda puede ser ya sea por marca, o por parte de la palabra que uno desea ejemplo: %hela% y se desplegarn todos los productos que son heladeras. 8. Selecciona el o los productos a comprar, (en E1).Presiona botn Aceptar 11. Roxana almacena la nueva Compra de producto haciendo click en la opcin Guardar.

9. El producto o los productos que Roxana seleccion, se le desplegarn en el detalle (Figura 71 en D) con sus respectivas especificaciones. Nota.- En el detalle el actor debe introducir de manera macual el precio de compra que ser siempre en Moneda Nacional bolivianos (Bs.), la cantidad que se est comprando, cabe recalcar que el sistema se encargar de sacar los totales de acuerdo al precio y a la cantidad. 10. Genera un Id de la Compra y almacena los datos que han sido ingresados en los controles del formulario.

Eventos Alternos del caso de prueba Lnea 5: No se encuentra registrado el proveedor (Control C), como consecuencia el sistema no carga los datos del proveedor, se debe registrar como primera instancia al proveedor para posteriormente proceder a la compra. Lnea 6: Si en la bsqueda de productos (Control E) no se encuentra el producto requerido, el encargado de compras debe introducir al sistema en Gestin de Productos, el nuevo tem. Lnea 10: Si los datos introducidos no son correctos en algunos campos del formulario, el sistema muestra un mensaje indicando el error.

208

Modelo de Pruebas N de Caso de Prueba: 3 Caso de Prueba Actores Tipo Resumen generar un pedido. : Registrar Pedidos a Inventario : Encargado de Ventas (Iniciador) : Esencial : Alejandro Borda ingresa al sistema los datos de los pedidos que

realiza al Dpto de Inventario, teniendo en cuenta todas las especificaciones que implica

Figura 77.- Interface Gestionar PedidoInventario Fuente: Elaboracin Propia.

B C

Figura 78.- Interface Registrar Pedido a Almacn Fuente: Elaboracin Propia.

209

Modelo de Pruebas

E1

Figura 79. - Interface Busqueda de Productos Fuente: Elaboracin Propia.

FLUJO DE EVENTOS Accin del Actor Respuesta del Sistema 1. El encargado de Ventas Alejandro 2. El sistema carga y muestra los Borda, ingresa al men Principal y pedidos que han sido realizadas con selecciona en el mdulo de anterioridad, muestra el botn A del Comercializacin, Pedido a Inventario. formulario que se refiere a un nuevo pedido, de igual manera muestra los botones referentes a la modificacin, 3. Alejandro presiona el botn Nuevo del eliminacin, bsqueda, reportes de los control A. pedidos. 4. El sistema desplega un nuevo formulario para el registro del pedido, en C muestra la fecha en la que se realiza el pedido, en D muestra el detalle en que se cargar los productos con el nuevo pedido. 5. Alejandro presiona click contrario y 6. El sistema despliega un nuevo selecciona la opcin Adicionar (Ver formulario llamado Busqueda De Figura 74 Control D). Producto.

210

Modelo de Pruebas 7. Alejandro introduce el criterio de bsqueda en E, por ejemplo digita % en caso de que quiera ver todos los productos que se encuentran en los distintos almacenes, productos que tienen stock. (en E Figura 75) o digita %Sony% en caso de que el actor quisiera que se le despleguen todos los productos de marca Sony. Nota.- El criterio de bsqueda puede ser ya sea por marca, o por parte de la palabra que uno desea ejemplo: %hela% y se desplegarn todos los productos que son heladeras. 8. Selecciona el o los productos a pedir, en E1.Presiona botn Aceptar 11. Alejandro almacena el nuevo pedido de producto haciendo click en la opcin Guardar.

9. El producto o los productos que Alejandro seleccion se le desplegarn en el detalle (Figura 74 en D) indicando el producto y la cantidad. 10. En el control B (Figura 74) genera un Id del pedido y almacena los datos que han sido ingresados en los controles del formulario.

Eventos Alternos del caso de prueba Lnea 6: En caso de no encontrarse el producto a pedir, se debe considerar la compra del mismo, ya que en el formulario de Busqueda slo se desplegarn los productos que tienen stock.

211

Modelo de Pruebas N de Caso de Prueba: 4 Caso de Prueba Actores Tipo Resumen un pedido. : Registrar Pedidos a Proveedores : Encargado de Compras (Iniciador) : Esencial : Roxana Guzman ingresa al sistema los datos de los pedidos que

realiza a los Proveedorea, teniendo en cuenta todas las especificaciones que implica generar

Figura 80.- Interface Gestionar Pedido a Proveedor Fuente: Elaboracin Propia.

B D

Figura 81.- Interface Registrar Pedido a Proveedor Fuente: Elaboracin Propia.

212

Modelo de Pruebas

F1

Figura 82. - Interface Busqueda de Productos Fuente: Elaboracin Propia.

FLUJO DE EVENTOS Accin del Actor Respuesta del Sistema 1. El encargado de Compras Roxana 2. El sistema carga y muestra los Guzman, ingresa al men Principal y pedidos que han sido realizadas con selecciona en el mdulo de anterioridad, muestra el botn A del Comercializacin, Pedido a Proveedor. formulario que se refiere a un nuevo pedido, de igual manera muestra los botones referentes a la modificacin, 3. Roxana presiona el botn Nuevo del eliminacin, bsqueda, reportes de los control A. pedidos. 4. El sistema desplega un nuevo formulario para el registro del pedido, en D muestra la fecha en la que se realiza el pedido, en E muestra el detalle en que se cargar los productos con el nuevo pedido, en el control C 5. Roxana presiona click contrario y selecciona el proveedor al que se le selecciona la opcin Adicionar (Ver realizar el pedido. Figura 77 Control E). 6. El sistema despliega un nuevo formulario llamado Busqueda De Producto. 213

Modelo de Pruebas 7. Roxana introduce el criterio de bsqueda en F, por ejemplo digita % en caso de que quiera ver todos los productos que se encuentran registrados en el sistema. (en F1 Figura 78) o digita %Tele% en caso de que el actor quisiera que se le despleguen todos los productos que pertenecen a la categora televisores. Nota.- El criterio de bsqueda puede ser ya sea por marca, o por parte de la palabra que uno desea ejemplo: %hela% y se desplegarn todos los productos que son heladeras. 8. Selecciona el o los productos a pedir, en E1.Presiona botn Aceptar 11. Roxana almacena el nuevo pedido de producto haciendo click en la opcin Guardar.

9. El producto o los productos que Roxana seleccion se le desplegarn en el detalle (Figura 77 en E) indicando el producto y la cantidad. 10. En el control B (Figura 77) genera un Id del pedido y almacena los datos que han sido ingresados en los controles del formulario.

Eventos Alternos del caso de prueba Lnea 6: En caso de no encontrarse el producto a pedir, se debe introducir en la Gestin de Productos, el nuevo producto a pedir.

214

Conclusiones

9. Conclusiones.Se concluye luego de haber finalizado el desarrollo del Sistema de Compra y Venta de artculos para la empresa Centro de Consumo Mucha Cosa lo siguiente: Los Requisitos funcionales y no funcionales, fueron identificados de manera concreta luego de haber realizado distintintos proceso como las entrevistas con el personal que ayudaron para la identificacin de las mismas. Se analiz de manera minuciosa el proceso de negocio de la empresa para poder seguir con el desarrollo del proyecto, evitando ambiguedades y confusiones entre funcionarios de la empresa y esta autora, de manera que se pudo desglosar detalladamente los procesos por los que pasa cada actividad que realiza la empresa como la compra y venta.

Se logr definir el diseo del sofware acorde a los requerimientos presentados a lo largo del proyecto.

Se implement todos los modelos que fueron diseados en la etapa de Diseo, logrando sarisfactoriamente las necesidades primordiales de la empresa, cubriendo lo requisitos previamente identificados.

Se realiz las distintas pruebas utilizando la tcnica de Caja Negra, con los usuarios finales del sistema.

215

Recomendaciones

10. Recomendaciones.Se Recomienda a la empresa la puesta en marcha del sistema de informacin, ya que ste ser de gran ayuda para el mejoramiento de los procesos de negocios que se realizan. Establecer polticas de seguridad para el acceso al sistema, definiendo para cada usuario los roles y las acciones en los procesos que pueda intervenir. Proporcionar cursos de capacitacin para los usuarios del sistema. Realizar copias de la base de datos (Backup) para prevenir cualquier inconveniente y mantener la integridad de la informacin. Se recomienda a la empresa, implementar un modelo de inventario, ya que a pesar de no ser un limitante por el modelo de negocio utilizado, no significa que en un futuro no pueda convertirse en una necesidad. Se recomienda a la empresa la implementacin de campaas y descuentos de productos segn temporadas, para de sta forma logren atraer la atencin para futuros clientes de la misma.

216

Anexos

11. Bibliografa Larman, Craig, UML y Patrones- Introduccin al Anlisis y diseo orientado a objetos. Prentice Hall, 2da. Edicin, USA, 1999. Booch G, Rumbaugh J, Jacobson I, El Lenguaje Unificado de Modelado, Addison Wesley Iberoamericana, 1era. Edicin, Madrid, 2000. Hernndez Orallo, Enrique, El Lenguaje Unificado de Modelado, 2003. Grady Booch, James Rumbaugh, Ivar Jacobson - El Proceso Unificado de Desarrollo de Software, Addison Wesley, 1era. Edicin, Madrid, 2000. Joseph Schmuller, Aprendiendo UML en 24 Horas, Prentice Hall, Edicin Digital, pas y ao desconocido. En la Web: Arquitectura bsica de la plataforma .Net. Descripcin del Framework y sus principales componentes: Lenguajes, biblioteca de clases y CLR. Por Francisco Recio y David Provencio, Fecha de publicacin: 10 de Diciembre del 2003. Disponible en URL: http://www.desarrolloweb.com/articulos/1328.php
Qu es SQL Server 2005 Express Edition?, Fecha de publicacin: 11 de Nov del 2005.

, 1era Edicin,

Disponible en URL: http://www.microsoft.com/spanish/msdn/vstudio/Express/SQL/default.mspx Desarrollo de Software Orientado a Objetos. Por Joaquin Gracia, Fecha de publicacin: 7 de Mayo del 2005. Disponible en URL: http://www.ingenierosoftware.com/analisisydiseno/uml.php es.wikipedia.org/wiki/Proceso_Unificado
217

Anexos

12. Anexos A continuacin se muestra el sistema de informacin actual que maneja el Centro de Consumo Mucha Cosa, dichas planillas se encuentran elaboradas en excel. Los funcionarios de la empresa fueron los que facilitaron el acceso de la siguiente informacin:

NOTA DE VENTA SEOR(ES ALBERTO ) : MERCADO DIRECCIO N : PLAZA CENTRAL AGENCIA TELEFON O WARNE S 923-2743
PRECI O COSTO PRECI O VENTA

CANT

DESCRIPCION

MARCA

VERIFICACION CONTROL ANTENA MANUAL GARANTIA CAJA FECHA

VERIFICACION *SEMANAL

DE LA MERCADERIA

1 1 1 1 1 1 1

TV DE 21" PANTALLA PLANA 21M40 TV DE 14"PANT/ SEMIPLANA 14PT3005 MINICOMPONENTE RG-190 RADIOGRABADORA CON MP3 LM440 DVD DVP-3142CON KARAOKE DVD DG-K-301 CON KARAOKE COCINA DE 4 HORNALLAS

LG PHILIPS SONY LG PHILPS DAEWO O LASSER

175

235 135 240 120 85 85 160

218

Anexos

219

Anexos

Entrevistas y/o Cuestionarios Entrevista Gerencia General Nombre: Jhonny Villa Sandval Fecha: 10-03-2009 1.- Con cuantas sucursales cuenta la empresa/negocio? 1 Manualmente 2 3 4 5 o ms (Planillas Excel) 2.- Cmo manejan el sistema de informacin en empresa/negocio? Computarizado 3.- Cmo es el manejo de Compras y Ventas en la empresa? Para las compras, cuando la empresa requiere de algn producto en especfico o algn cliente requiere de algn artculo en particular se procede a la compra del mismo. En las ventas, el centro de consumo Mucha Cosa slo realiza ventas en efectivo, pero si algn cliente quiere algn artculo al crdito, debe acudir a la Cooperativa Nuestra Seora de Cotoca para que le elaboren sus planes de pago, sus cuotas, entre otros, ya que el centro de consumo Mucha Cosa trabaja con el financiaminento y respaldo de la Cooperativa. 4.- Cules son sus responsabilidades dentro de la empresa? Soy el encargado de los departamentos de compras-ventas y contabilidad. Me encargo de controlar las actividades de cada funcionario dentro de la empresa. 5.- Cuntos son los funcionarios que trabajan en su empresa/negocio? Somos 2 funcionarios los que actualmente trabajamos en la empresa. 6.- Con qu tipo de manuales cuenta la empresa/negocio? Actualmente no tenemos ningn tipo de manual.

220

Anexos

7.- En qu proceso de la empresa/negocio presenta mayor problema para el manejo de la informacin? El problema se d cuando por algn descuido de un funcionario introduce mal un dato ya sea de una compra o venta o cuando registra dos veces la misma venta. De igual manera la empresa carece de un registro de datos de nuestros proveedores y clientes.

Firma.

Nro.CI

221

Anexos

Entrevista rea Compras y Ventas Nombre: Alejandro Borda Cargo: Encargado de Compras y Ventas Fecha: 10-03-2009 1.- Cuntos funcionarios trabajan en su rea de trabajo? 1 Manualmente productos? Si No 4.- Cules son las funciones que desempea dentro del rea de comercializacin? Me dedico a las compras y ventas que se realizan en la empresa, me encargo del registro de las mismas las cuales las elaboro en las planillas de excel 5.- Existe una persona dentro del rea que se encargue especficamente del manejo del sistema de informacin? No. 6.- Con qu tipo de manuales cuenta su rea de trabajo? No contamos con manuales en la empresa. 7.- En qu proceso de su rea de trabajo presentan mayor problema para el manejo de la informacin? Como encargado de las compras y ventas, se presenta problemas cuando quiero registrar una venta y me olvido de registrar datos bien especficos de esa venta como ser la cantidad o simplementa una descripcin mas detallada del producto, o en las compras cuando queremos devolver un producto por fallas, a veces no sabemos a qu proveedor se lo compramos el producto. 2 3 4 5 o ms (Planillas Excel) 2.- Cmo manejan el sistema de informacin en su rea? Computarizado 3.- En el rea de compras y ventas se realiza un manejo de inventario de

Firma.

Nro.CI

222

S-ar putea să vă placă și