Upload
alan-ortiz-galvez
View
29
Download
0
Embed Size (px)
Citation preview
5/25/2018 Sistema Farmacia Documento
1/60
UNIVERSITAT OBERTA DE CATALUNYAIngeniera informtica
PROYECTO FIN DE CARRERA
SISTEMA DE INFORMATIZACININTEGRAL DE LA GESTIN
FARMACUTICA
Autor: Aimen Ben AttahellahConsultor: Juan Carlos Gonzlez Martin
Junio/2013
5/25/2018 Sistema Farmacia Documento
2/60
ii
Resumen
El presente proyecto fin de carrera tiene como objetivo informatizar todo el sistema degestin de farmacias con el fin de dar un servicio a los farmacuticos, msindependiente, ms eficaz y ms sencillo.
Independiente, porque la aplicacin podr ser adaptada y personalizada para permitir suutilizacin en cualquier tipo de farmacia de cualquier especialidad.
Eficaz, porque el almacenamiento electrnico permite localizar datos especficos almomento sin necesidad de las tradicionales carpetas que puedan llevar a confundir otraspapelar los datos manipulados.
Sencillo, porque el sistema ofrece una interfaz amigable y una navegacin sencilla,guiando en todo momento al usuario y ofreciendo la posibilidad de explicar lasfuncionalidades integradas en el sistema.
El sistema permite al farmacutico de realizar todas las tareas diarias que se realizan entodas las farmacias, como la adquisicin y venta de medicamentos o artculos engeneral, gestin de stock, de clientes y proveedores, siendo stas las tareas msfrecuentes y demandadas en este sector.
Cabe destacar, que la toma de requisitos de este proyecto est basada sobre peticionesde un cliente, farmacutico de profesin, con lo cual se trata de un caso de estudio real.Debido a esto, se ha tenido que seguir un modelo y una gestin de riesgos adaptados porsu puesto a este caso real.
Palabras clave: Artculo, stock, venta, clientes, proveedores, caja, modelo clsico con
prototipado, principios de metodologa gil, interfaz amigable de uso fcil y eficaz,C#.NET, ADO.NET.
5/25/2018 Sistema Farmacia Documento
3/60
iii
ndice general
1. Introduccin .................................................................................................................. 1
1.1. Justificacin ............................................................................................................ 1
1.2. Objetivo .................................................................................................................. 1
2. Gestin de proyecto ...................................................................................................... 2
2.1. Modelo y ciclo de vida .......................................................................................... 2
2.2. Metodologa............................................................................................................ 3
2.3. Anlisis de riegos ................................................................................................... 3
2.4. Planificacin y seguimiento .................................................................................. 4
3. Anlisis del sistema ...................................................................................................... 7
3.1. Anlisis de requisitos ............................................................................................. 73.1.1. No funcionales ................................................................................................ 7
3.1.1. Funcionales ..................................................................................................... 8
3.2. Casos de uso ........................................................................................................... 9
3.2.1. Plantillas de casos de uso ............................................................................. 10
3.2.2. Diagramas de casos de uso .......................................................................... 17
3.3. Diagrama de clases .............................................................................................. 22
4. Diseo del sistema ...................................................................................................... 22
4.1. Arquitectura del sistema ...................................................................................... 22
4.1.1. Arquitectura fsica del sistema .................................................................... 23
4.1.1. Arquitectura software del sistema ............................................................... 23
4.2. Diagramas de secuencia....................................................................................... 24
4.2.1. Autentificacin ............................................................................................. 24
4.2.2. Gestin de clientes ....................................................................................... 25
4.2.3. Gestin de pedidos ....................................................................................... 27
4.2.4. Inventario ...................................................................................................... 29
4.2.5. Gestin de ventas.......................................................................................... 30
4.2.6. Gestin de Caja............................................................................................. 33
4.3. Diseo de base de datos ....................................................................................... 37
4.3.1. Diagrama de entidad relacin ...................................................................... 37
4.3.2. Definicin de tablas ...................................................................................... 37
4.4. Diseo de interfaz de usuario .............................................................................. 40
5/25/2018 Sistema Farmacia Documento
4/60
iv
5. Implementacin........................................................................................................... 43
5.1. Jerarqua del proyecto .......................................................................................... 44
5.2. Algunos aspectos de implementacin ................................................................. 45
5.2.1. Auto complecin .......................................................................................... 45
5.2.2. Llamadas a procedimientos almacenados ................................................... 46
5.2.3. Mensajes de error y afirmacin ................................................................... 46
5.2.4. Generacin de informes ............................................................................... 46
5.1. Algunos mdulos de la aplicacin ...................................................................... 47
5.1.1. Mdulo de administracin - Gestin de usuarios ....................................... 48
5.1.2. Mdulo de ventasNueva venta ................................................................ 49
5.1.3. Mdulo de ventasHistrico de ventas ..................................................... 50
5.1.4. Mdulo de stockModificar pedido .......................................................... 51
5.1.5. Mdulo de cajaCaja registradora............................................................. 52
6. Conclusiones ............................................................................................................... 53
7. Lneas de futuro .......................................................................................................... 53
8. Bibliografa.................................................................................................................. 54
5/25/2018 Sistema Farmacia Documento
5/60
v
ndice de ilustraciones
Ilustracin 1-Ciclo de vida clsico con prototipado............................................................ 2 Ilustracin 2 - Planificacin inicialDiagrama Gantt ....................................................... 5
Ilustracin 3 - Consumido real - Diagrama Gantt ............................................................... 6 Ilustracin 4 - Diagrama UCSistema ............................................................................. 17Ilustracin 5 - Diagrama UCSubsistemas ...................................................................... 17Ilustracin 6 - Diagrama UCgestin administrativa ..................................................... 18Ilustracin 7 - Diagrama UCAutentificacin ................................................................ 18Ilustracin 8 - Diagrama UC - Gestin de ventas ............................................................. 19Ilustracin 9 - Diagrama UC - Caja ................................................................................... 19 Ilustracin 10 - Diagrama UC - Gestin de socios ........................................................... 20 Ilustracin 11 - Diagrama UC - Gestin de stock ............................................................. 21
Ilustracin 12 - Diagrama de clases ................................................................................... 22Ilustracin 13Arquitectura del sistemacliente servidor ............................................ 23Ilustracin 14Diagrama de secuencia - autentificacin ................................................ 24Ilustracin 15Diagrama de secuenciaalta cliente ...................................................... 25Ilustracin 16Diagrama de secuenciaconsultar cliente ............................................. 25Ilustracin 17Diagrama de secuenciamodificar cliente ............................................ 26Ilustracin 18Diagrama de secuenciasuprimir cliente .............................................. 26Ilustracin 19Diagrama de secuenciaalta pedido ...................................................... 27Ilustracin 20Diagrama de secuenciaconsultar pedido ............................................ 27Ilustracin 21Diagrama de secuenciamodificar pedido............................................ 28Ilustracin 22Diagrama de secuenciasuprimir pedido.............................................. 28Ilustracin 23Diagrama de secuenciaconsultar inventario ....................................... 29Ilustracin 24Diagrama de secuenciamodificar inventario stock ............................ 29Ilustracin 25Diagrama de secuencianueva venta .................................................... 30Ilustracin 26Diagrama de secuenciahistrico de ventas ......................................... 31Ilustracin 27Diagrama de secuenciapresupuesto venta .......................................... 32Ilustracin 28Diagrama de secuenciaimprimir presupuesto venta .......................... 32Ilustracin 29Diagrama de secuenciapago diferido .................................................. 33Ilustracin 30Diagrama de secuenciaConsultar caja ................................................ 34
Ilustracin 31Diagrama de secuenciaFinalizar venta ............................................... 35Ilustracin 32Diagrama de secuenciajornada............................................................ 35Ilustracin 33Diagrama de secuenciadetalle de jornada .......................................... 36Ilustracin 34Diagrama de entidad relacin .................................................................. 37Ilustracin 35prototiponueva venta ........................................................................... 40Ilustracin 36prototiporecordatorio de ventas .......................................................... 41Ilustracin 37prototipocliente .................................................................................... 41Ilustracin 38prototipoproveedor............................................................................... 42Ilustracin 39prototipoarticulo ................................................................................... 42
5/25/2018 Sistema Farmacia Documento
6/60
vi
Ilustracin 40 - Implementacin - Esquema de compilacin .NET ................................. 43Ilustracin 41 - Implementacin - Esquema ADO.NET................................................... 44Ilustracin 42- Implementacin - Men ............................................................................ 44Ilustracin 43Implementacin - Proyectos C# .............................................................. 45Ilustracin 44Implementacin - Capas .......................................................................... 45Ilustracin 45Pantalla de gestin administrativa........................................................... 48Ilustracin 46 - Pantalla de nueva venta ............................................................................ 49Ilustracin 47Pantalla de histrico de ventas ................................................................ 50Ilustracin 48Pantalla de modificar pedido ................................................................... 51Ilustracin 49Pgina caja registradora ........................................................................... 52
ndice de tablas
Tabla 1 - Plantilla UC - Interaccin usuario/sistema ........................................................ 10Tabla 2 - Plantilla UC - Crear usuarios.............................................................................. 10Tabla 3 - Plantilla UC - Nueva venta ................................................................................. 11 Tabla 4 - Plantilla UCHistrico de venta....................................................................... 12Tabla 5 - Plantilla UC - Caja registradora ......................................................................... 13
Tabla 6 - Plantilla UCFinalizar venta en caja registradora........................................... 13Tabla 7 - Plantilla UCConsultar jornada de ventas ....................................................... 14Tabla 8 - Plantilla UCDetalle de jornada de ventas ...................................................... 15Tabla 9 - Plantilla UCConsulta de pedidos ................................................................... 15Tabla 10 - Plantilla UCModificar pedido ....................................................................... 16Tabla 11 - Definicin tabla - Venta.................................................................................... 38Tabla 12 - Definicin tabla - Cliente ................................................................................. 38Tabla 13 - Definicin tabla - Proveedor ............................................................................ 39Tabla 14 - Definicin tabla - Artculo................................................................................ 39Tabla 15 - Definicin tablaPedido ................................................................................. 39Tabla 16 - Definicin tabla - Operador .............................................................................. 40
5/25/2018 Sistema Farmacia Documento
7/60
Aimen Ben Attahellah PFC.NET
1
1. IntroduccinEn este apartado, se pretende hacer una introduccin a este documento, en cuanto a
justificacin del proyecto, objetivos, mtodo seguido y riesgos principales del proyecto.
1.1. JustificacinLa realizacin de este proyecto final de carrera responde a la necesidad de realizar unsistema eficaz y simple que integra todas las funcionalidades bsicas y comunes decualquier farmacia y que al mismo, est utilizado por cualquier usuario sin que tenga
previos conocimientos de informtica ni est familiarizad con los sistemas de
informacin.
La mayora de los sistemas de informacin de gestin farmacutica, ofrecen unimportante abanico de funcionalidades donde la mayora no son de uso comn y nuncason usadas en el mbito de la gestin farmacutica, con lo cual, se reduce la eficacia delsistema. Otra cuestin muy importante, estos sistemas suelen ser complicados hasta parausuarios familiarizados con aplicaciones informticas dadas sus navegaciones quesuelen ser verticales y profundas. Por ltimo la interfaz grfica, en la mayora de loscasos, suele tener varios botones y componentes grficos en general, que lo nico quetransmiten al usuario es la sensacin de no dominar el sistema, lo que puede generar uncierto rechazo a la aplicacin.
1.2. ObjetivoVista la justificacin, este proyecto da una solucin a la mayora de los sistemas queencontramos actualmente en el mercado, enfocndose en ofrecer un sistema de gestinfarmacutico eficaz, completo y sobre todo amigable y fcil de usar.
En cuanto al aspecto tcnico, la eleccin de la plataforma Microsoft .Net viene dada porser una plataforma potente que permite construir interfaces con componentes grficoscon mayor rapidez, eficacia y sencillez, cuando se pretende explotar al mxima las
propiedades y eventos de dichos componentes y obtener as interfaces amigablessiguiendo por supuesto los principios bsicos del diseo de interfaces grficas.
5/25/2018 Sistema Farmacia Documento
8/60
Aimen Ben Attahellah PFC.NET
2
2. Gestin de proyecto2.1. Modelo y ciclo de vida
Se ha usado en la elaboracin de este sistema, el modelo clsico con prototipado debidoal formato de entregas de la asignatura de PFC, a pesar de tener claro que en otrasituacin, hubiera sido mejor, los modelos evolutivos o incrementales que son msadaptables a requisitos cambiantes como veremos a continuacin en el apartado de losriesgos principales del proyecto.
El modelo planteado permiti presentar un prototipo a nuestro cliente, en este casohorizontal desarrollando en parte todas las facetas de la aplicacin y basndose sobre los
prerrequisitos que se han anotado con antelacin.
Este modelo est compuesto por las siguientes fases:
Fase de anlisiso Identificar los requisitos bsicos del usuario conjuntamente con el clienteo Desarrollar el prototipo horizontal inicial con presentacin al clienteo Revisar y mejorar el prototipo aplicando los cambios sugeridos por el
usuario
Fase de diseo Fase de implementacin Fase de pruebas de integracin
Ilustracin 1-Ciclo de vida clsico con prototipado
5/25/2018 Sistema Farmacia Documento
9/60
Aimen Ben Attahellah PFC.NET
3
2.2. MetodologaEn la metodologa se ha intentado basarse sobre algunos principios de las metodologasgiles gracias a la simplicidad, tolerancia a cambios, cercana con el cliente y el enfoquems vertical al desarrollo de un software y siendo minimalista hasta cierto puntorespecto a la documentacin del sistema, lo que se adapta al final a nuestro caso deestudio.
Qu nos ha aportado realmente seguir esta metodologa:
Reflexionar ms a cmo ser ms efectivo respetando al mismo tiempo la calidaddel software
Construir un software de una manera rpida y eficaz trabajando directamentecon el usuario final y percibir rpidamente los cambios para poder aceptarlos oevitarlos eficazmente.
Finalmente tener una documentacin completa y precisa, pero anteponiendo undesarrollo de software que funciona.
2.3.
Anlisis de riegosLos riesgos principales que se han en esta fase inicial del proyecto, se presentan de lasiguiente forma:
El autor que va a desarrollar el sistema, no tiene conocimientos avanzados de latecnologa que se va a utilizar, y se limitan en lo que se ha aprendido a lo largo de lacarrera, y para el desarrollo de un sistema completo desde cero, se necesita unimportante conocimiento de la arquitectura .NET como de los lenguajes C#.NET yADO.NET.
Destaco tambin, la naturaleza de mi actual trabajo que requiere varios desplazamientosen toda Europa, lo cual nos llevara al segundo riesgo de no poder respetar unadedicacin constante y rigurosa a las tareas y al desarrollo normal del sistema.
5/25/2018 Sistema Farmacia Documento
10/60
Aimen Ben Attahellah PFC.NET
4
Para estos dos riesgos, se pone como plan de accin, realizar un sobreesfuerzo durantela fase de arranque del proyecto, para poder avanzar el mximo posible y poder
controlar ms los eventuales sobresaltos, y prever vacaciones en el trabajo en caso deestar al borde de una alerta.
El tercer riesgo, es de carcter puramente tcnico, y se refiere al uso del modo deconexin desconectado a la base datos, esto puede tener un impacto de rendimientosignificativo. Como plan de accin se usarn los procedimientos almacenados paraajustar la balanza y poder mejorar los tiempos de respuesta.
El cuarto riesgo, es a la hora de implantar el sistema, los usuarios tienen conocimientos
muy limitados de informtica y pueden ser reacios al cambio y con lo cual no aceptar elsistema. El plan de accin es convencer a los farmacuticos responsables de que elsistema va a mejorar la gestin de su farmacia e incitarles a convencer a todos losusuarios, de que el sistema les va a facilitar el trabajo.
El quinto y ltimo riesgo, es que los farmacuticos responsables tienen tendencia acambiar las funcionalidades del sistema y no se ponen de acuerdo en todas lasfuncionalidades, debido a que no podemos suspender temporalmente el proyecto, como
plan de accin paliativo, sera cerrar una primera versin, y prever si es necesario, unanueva versin del sistema una vez lo tengan ms claro.
2.4. Planificacin y seguimientoSe muestra abajo, en formato de diagrama de Gantt, la planificacin inicial detallandoas las actividades. Se ha previsto una tarea de previsin de riesgos, debido a los riesgosdetectados y la cual se intentar de no producir salvo si hay sobresaltos, la PPR suponeaproximadamente el 7% del propuesto global:
5/25/2018 Sistema Farmacia Documento
11/60
Aimen Ben Attahellah PFC.NET
5
Ilustracin 2 - Planificacin inicialDiagrama Gantt
Como se muestra en el consumido real de la ilustracin de abajo, la fase de anlisis ha sido muy costosa en cuanto a su elaboracin y se haexcedido con creces lo que estaba planificado inicialmente sobe todo en lo referente a la toma de requisitos y prototipado. La fase de diseotambin ha revelado un consumido mayor que lo planificado por culpa del gran volumen de diagramas de secuencia.
5/25/2018 Sistema Farmacia Documento
12/60
Aimen Ben Attahellah PFC.NET
6
Gracias a una planificacin, gestin de riesgos y planes de accin eficaces y a la buena produccin en la fase de implementacin, se haconseguido resolver la alerta detectada en la fase de anlisis, eso s, se ha debido producir algunos das guardados para previsin por riesgos,como se puede mostrar en el siguiente diagrama de Gantt:
Ilustracin 3 - Consumido real - Diagrama Gantt
5/25/2018 Sistema Farmacia Documento
13/60
Aimen Ben Attahellah PFC.NET
7
3.Anlisis del sistemaEn este apartado se pretende explicar las tareas que se han realizado en la fase deanlisis inicial del proyecto.
3.1. Anlisis de requisitosExisten dos tipos de requisitos, funcionales y no funcionales:
3.1.1.No funcionalesDefinen tanto propiedades como restricciones del sistema, tales como el tiempo derespuesta o fiabilidad
Sistema operativo: Cualquier sistema operativo de la familia de MicrosoftWindows a partir del XP.
Procesador / RAM cliente / RAM servidor : Mnimo 1GB / 512MB / 1GB Almacenamiento cliente / servidor:512MB / 5GB como mnimo dependiendo
del volumen de negocio de la farmacia
Monitor / Tarjeta grfica: Resolucin mnima de pantalla de 1024 x 768pxeles
Tiempo de respuesta: El tiempo de respuesta a la hora de guardar los datos nodebe de superar los cinco segundos.
Uso del sistema: El deseo general del usuario es la facilidad de uso de laherramienta.
5/25/2018 Sistema Farmacia Documento
14/60
Aimen Ben Attahellah PFC.NET
8
3.1.1.FuncionalesDefinen los servicios y las funcionalidades que debe proporcionar el sistema.
Los requisitos funcionales son:
Autentificacin. Cualquier usuario ya registrado, puede autentificarse y salir delsistema cuando quiera.o Iniciar la sesino Cambiar de sesino Salir del sistema
Administracin del sistema - Gestin de Usuarios. Todos los usuarios debenser correctamente identificados en el sistema. Para ello, el usuario proporciona aladministrador su nombre de usuario, contrasea y tipo de usuario del que se trata(Farmacutico responsable, Tcnico o Administrador/a), tras lo cual el sistemadeber validar estos datos.o Alta/consulta/modificacin/supresin de usuarios
Gestin de ventas. La gestin de ventas es el ncleo del sistema, ofrece lacreacin de una nueva venta, presupuesto de la venta para poder imprimirlo yfinalmente consultar el histrico de ventas sea por fechas, por cliente o ambos.o Nueva ventao Presupuesto con generacin de documentoso Ventas realizadas por un cliente y/o en un intervalo de tiempo
Gestin de caja. Permite finalizar las ventas creadas en el apartado de Nuevaventa. Ofrece la realizacin de los pagos diferidos para que un cliente puedasaldar parte o la totalidad de su crdito. Finalmente visualizar la jornada de ventas
realizadas por tipo de pagos: efectivo, crdito, cheque, haber, descuento y diferido ytambin el detalle de dichas ventas.o Caja registradorao Pago diferidoo Jornada de ventasdetalle de ventas
5/25/2018 Sistema Farmacia Documento
15/60
Aimen Ben Attahellah PFC.NET
9
Gestin de stock. Esta macro-funcionalidad, ofrece la posibilidad de crear omanipular los artculos de la farmacia. Inventario y actualizar el stock deartculos ya registrados asociados a un albarn de entrega. Crear, consultar y
manipular los pedidos que se han realizado a un proveedor dado.Con lo cual clasificamos las funcionalidades de la siguiente forma:o Crear/Consultar/Modificar/Suprimir artculoo Crear/Consultar/Modificar/Suprimir pedido y sus artculos correspondienteso Inventario: Consulta y modificacin del stock de artculos
Socios. Se refiere con socios a los proveedores y clientes de la farmacia.o Proveedores. Esta funcionalidad del sistema puede ser usada por cualquier
usuario. Permite agregar un nuevo proveedor o modificar uno existente
proporcionando sus datos, y tambin permite borrarlo del origen de los datos,mediante un borrado lgico.- Aadir/Consultar/Modificar/Eliminar
o Clientes. Sigue la misma lgica de gestin de proveedores, pero en este casopara clientes. Un cliente slo se puede borrar, si ha saldado todos suscrditos.
- Aadir/Consultar/Modificar/Eliminar
3.2. Casos de usoLos casos de uso representan requisitos funcionales del sistema y definen un conjuntode interaccin entre los elementos adyacentes al sistema y el propio sistema desde el
punto de vista del usuario.
En este apartado presentaremos los casos de uso ms importantes pero no todos, para no
exceder el nmero permitido de pginas. Estos casos de uso sern representados enforma de plantillas y en forma de diagramas.
Para la realizacin de la especificacin de requisitos, se ha adoptado el modelo estndarde ANSI/IEEE Std 830-1998 IEEE Guide to Software requirements Specifications
5/25/2018 Sistema Farmacia Documento
16/60
Aimen Ben Attahellah PFC.NET
10
3.2.1.Plantillas de casos de usoLas plantillas permiten describir los casos de uso y la forma en que se interactuar elusuario con el sistema. Esta interaccin son acciones realizadas por el usuario y por elsistema tras un suceso provocado por los mismos, y que representaremos como:
Acciones del usuarioAcciones del sistema
Tabla 1 - Plantilla UC - Interaccin usuario/sistema
3.2.1.1. Crear usuarios
Tabla 2 - Plantilla UC - Crear usuarios
Identificacin
Caso de Uso: Crear Usuario
Descripcin: El Administrador registra un nuevo usuario en el Sistema
Roles Soportados: Administrador
Relacin
Hereda:
Extiende:
Incluye:
Proceso / Descripcin
Actor Primario: AdministradorActores Secundarios:
Precondiciones: Autentificarse y a acceder a la pantalla de gestin administrativa
Post condiciones: El nuevo usuario es registrado en el sistema
Flujo de eventos
1. El Administrador introduce los datos del usuario
2. El Administrador presiona el botn Validar
3. El sistema comprueba la introduccin de los datos obligatorios
4. El sistema guarda el nuevo usuario en el sistema y muestra un mensaje de confirmacin por
pantallaExtensiones sncronas
Si en el punto 3, los datos obligatorios no estn introducidos el sistema muestra un mensaje de errory no avanza al punto 4.
Extensiones asncronas
En cualquier momento el Administrador puede detener la ejecucin del proceso pulsando el botnde Cancelar.
5/25/2018 Sistema Farmacia Documento
17/60
Aimen Ben Attahellah PFC.NET
11
La creacin o alta de clientes, proveedores y artculos es prcticamente similar a lacreacin de usuarios, salvo que el actor en este caso es el Tcnico.
3.2.1.2. Nueva venta
Tabla 3 - Plantilla UC - Nueva venta
Identificacin
Caso de Uso: Nueva venta
Descripcin: El Tcnico de farmacia crea una nueva venta
Roles Soportados: Tcnico de farmacia, farmacutico
Relacin
Hereda:
Extiende:
Incluye:
Proceso / Descripcin
Actor Primario: Tcnico de farmaciaActores Secundarios:
Precondiciones: Autentificarse. Los clientes ya estn registrados en el sistemaPost condiciones: La venta est registrada en el sistema
Flujo de eventos
1. El actor accede a la pantalla de nueva venta pulsando el botn de Nueva
2. El sistema devuelve la pantalla de ventas, y recupera todos los clientes y artculos del sistema
3. El actor va introduciendo y filtrando los artculos solicitados por el cliente
4. Mientras que el actor vaya filtrando los artculos, el sistema los muestra por pantalla con su detalle
5. El Tcnico escribe la cantidad de los artculos y luego valida pulsando el botn Enter del teclado
6. El sistema muestra el artculo introducido en la tabla de recapitulacin de artculos7. El Tcnico de farmacia puede introducir opcionalmente el nombre del cliente o dejar el campovaco, para ello va filtrando mientras vaya escribiendo
8. El actorpresiona el botn Validar
9. El sistema comprueba la existencia de artculos y pide confirmacin de los datos introducidos
7. El actor de farmacia acepta
8. El sistema guarda la venta en el sistema y enva un mensaje por pantalla de confirmacin
Extensiones sncronas
Extensiones asncronas
En cualquier momento el usuario puede detener la ejecucin del proceso pulsando el botn deCancelar.
5/25/2018 Sistema Farmacia Documento
18/60
Aimen Ben Attahellah PFC.NET
12
3.2.1.3. Histrico de ventas
Tabla 4 - Plantilla UCHistrico de venta
3.2.1.4. Caja registradora
Identificacin
Caso de Uso: Histrico de ventas
Descripcin: El actor consulta todas las ventas de un cliente y/o entre dos fechas
Roles Soportados: Tcnico de farmacia, Farmacutico
Relacin
Hereda:
Extiende:
Incluye:
Proceso / Descripcin
Actor Primario: Tcnico de farmacia
Actores Secundarios:Precondiciones: Autentificacin. El cliente ya est registrado en el sistema y tiene ventas
asociadas.
Post condiciones: Las ventas aparecen en la pantalla
Flujo de eventos
1. El actor presiona el botn Histrico
2. El sistema devuelve la pantalla pedida cargando el listado de todos los clientes
3. El actor selecciona un cliente de la lista y/o selecciona las fechas
4. El actorpresiona el botn Buscar
5. El sistema recupera todas las ventas correspondientes al cliente y/o fechas seleccionadas
Extensiones sncronasSi en el punto 4, ninguna venta es devuelta o que el usuario no haya seleccionado ninguna opcin de bsqueda, elsistema muestra un mensaje de error y vuelve al punto 2.
Extensiones asncronas
En cualquier momento el actorpuede detener la ejecucin del proceso pulsando el botn de Cancelar.
Identificacin
Caso de Uso: Consultar caja
Descripcin: Consultar las ventas transmitidas a la caja
Roles Soportados: Farmacutico
Relacin
Hereda:
Extiende:
Incluye:
Proceso / Descripcin
Actor Primario: Farmacutico
Actores Secundarios:
5/25/2018 Sistema Farmacia Documento
19/60
Aimen Ben Attahellah PFC.NET
13
Tabla 5 - Plantilla UC - Caja registradora
3.2.1.5. Finalizar venta en caja registradora
Tabla 6 - Plantilla UCFinalizar venta en caja registradora
Precondiciones: Autentificacin. La venta ha sido creada y est guardada en el sistema
Post condiciones:
Flujo de eventos
1. El sistema actualiza cada 5 segundos el listado de todas la ventas realizadas en los ltimos 48 horas que aun noestn finalizadas
2. El farmacutico selecciona una venta de la lista3. El sistema muestra el detalle y los artculos de la venta as como los datos del cliente en caso que sea una ventaa cliente
4. El farmacutico selecciona el o los tipos de pago
5. El farmacutico introduce el importe asociado a cada tipo de pago
Extensiones sncronas
Extensiones asncronas
En cualquier momento el actor puede detener la ejecucin del proceso pulsando el botn de Cancelar.
Identificacin
Caso de Uso: Finalizar venta
Descripcin: El farmacutico finaliza la venta
Roles Soportados: Farmacutico
Relacin
Hereda:
Extiende:Incluye: Consultar caja
Proceso / Descripcin
Actor Primario: Farmacutico
Actores Secundarios:
Precondiciones: La venta ya ha sido informada por el tcnico de farmacia
Post condiciones: La venta es modificada en el sistema en estado finalizado
Flujo de eventos
1. El farmacutico valida la venta
2. El sistema comprueba que la venta es correcta y muestra por pantalla un mensaje con los datos de la venta
Extensiones sncronasSi en el punto 2, el sistema verifica que los datos de la venta son incorrectos, mostrara un mensaje de error
Extensiones asncronasEn cualquier momento el actorpuede detener la ejecucin del proceso pulsando el botn de Cancelar.
5/25/2018 Sistema Farmacia Documento
20/60
Aimen Ben Attahellah PFC.NET
14
3.2.1.6. Consultar jornada de ventas
Tabla 7 - Plantilla UCConsultar jornada de ventas
3.2.1.7. Detalle de jornada de ventas
Identificacin
Caso de Uso: Consultar jornada de ventas
Descripcin: El farmacutico consulta los pagos realizados en un periodo de fechaspreseleccionado
Roles Soportados: Farmacutico
Relacin
Hereda:
Extiende:
Incluye:
Proceso / Descripcin
Actor Primario: Farmacutico
Actores Secundarios:
Precondiciones: AutentificacinPost condiciones:
Flujo de eventos
1. El farmacutico presiona el botn Jornada
2. El sistema muestra la pantalla deseada
3. El farmacutico selecciona un periodo de fechas de la venta y presiona el botn Buscar
4. El sistema recupera todas las ventas finalizadas comprendidas entre las fechas seleccionadas
5. El sistema calcula y muestra por pantalla la suma de ventas por tipo de pago
Extensiones sncronasSi en el punto 3, el sistema verifica no hay datos para este periodo, mostrara un mensaje de error explicndolo y se
queda en el punto 2.
Extensiones asncronasEn cualquier momento el actorpuede detener la ejecucin del proceso pulsando el botn de Cerrar.
Identificacin
Caso de Uso: Detalle jornada de ventas
Descripcin: El farmacutico desea consultar el detalle de jornada de ventas mostradasen el caso de uso de Consultar jornada de ventas
Roles Soportados: Farmacutico
Relacin
Hereda:
Extiende: Consultar jornada de ventas
Incluye:
5/25/2018 Sistema Farmacia Documento
21/60
Aimen Ben Attahellah PFC.NET
15
Tabla 8 - Plantilla UCDetalle de jornada de ventas
3.2.1.8. Consultar pedidos
Tabla 9 - Plantilla UCConsulta de pedidos
Proceso / Descripcin
Actor Primario: Farmacutico
Actores Secundarios:
Precondiciones: Haber ejecutado el caso de uso Consultar jornada de ventas
Post condiciones:
Flujo de eventos1. El actorpresiona el botn Detalle de ventas
2. El sistema recupera los artculos y clientes asociados a las ventas recuperadas con antelacin
3. El sistema muestra la pantalla con el detalle de ventas y artculos asociados
Extensiones sncronas
Si en el punto 2, el sistema verifica que los datos de la venta son incorrectos, mostrara un mensaje de error en lapantalla nueva
Extensiones asncronas
Identificacin
Caso de Uso: Consultar pedidos
Descripcin: El actor consulta la lista de pedidos por proveedor y/o en un intervalo detiempo
Roles Soportados: Tcnico de farmacia, Farmacutico
Relacin
Hereda:
Extiende:
Incluye:
Proceso / Descripcin
Actor Primario: Tcnico de farmacia
Actores Secundarios:
Precondiciones: El Pedido ha sido registrado en el sistema
Post condiciones:
Flujo de eventos
1. El actor presiona el botn Modificar pedido
2. El sistema recupera la lista de proveedores y artculos y muestra la pantalla deseada
3.El actor introduce el nombre del proveedor y/o las fechas y pulsa el botn Buscar4.El sistema muestra la lista de pedidos con sus artculos asociados
Extensiones sncronasSi en el punto 3, ningn pedido es devuelto por el sistema o si ninguna opcin de bsqueda est seleccionada, elsistema muestra un mensaje de error
Extensiones asncronas
En cualquier momento el actor puede detener la ejecucin del proceso pulsando elbotn de Cerrar.
5/25/2018 Sistema Farmacia Documento
22/60
Aimen Ben Attahellah PFC.NET
16
3.2.1.9. Modificar pedido
Tabla 10 - Plantilla UCModificar pedido
Identificacin
Caso de Uso: Modificar Pedido
Descripcin: El actor modifica un Pedido previamente registrado en el sistema
Roles Soportados: Tcnico de farmacia, Farmacutico
Relacin
Hereda:
Extiende:
Incluye:
Proceso / Descripcin
Actor Primario: Tcnico de farmacia
Actores Secundarios:Precondiciones: Consultar pedidos. El Pedido ha sido previamente registrado en el sistema
Post condiciones: El Pedido est modificado en el sistema y el stock actualizado
Flujo de eventos
1. El sistema muestra el listado de pedidos con sus artculos correspondientes
2. El actor solicita modificar el pedido mediante supresin de un artculo 3.1, modificacin de un artculo 4.1 oaadir un nuevo artculo al albarn 5.1
3.1. Para ello el actor solicita suprimir un artculo presionando la X de la lista de artculos
3.2.El sistema borra el artculo de la lista de artculos sin llegar a registrarlo en el sistema
4.1. El actor solicita modificar un artculo presionando el icono de bolgrafo de la lista de artculos
4.2. El sistema muestra por pantalla el detalle del artculo a modificar4.3. El actor modifica la fecha de caducidad o la cantidad de artculos asociados al albarn y presiona el botnModificar
4.4. El sistema modifica el artculo y actualiza la lista de pedidos con sus artculos sin llegar a registrar en elsistema
5.1. El actor va filtrando los artculos mientras vaya introduciendo el nombre y seleccionada el artculo deseado
5.2 El sistema actualiza el precio del artculo mientras se vaya filtrando
5.3.El actor introduce la cantidad y la fecha de caducidad y presiona el botn Aadir artculo
5.4.El sistema aade el nuevo artculo al albarn sin llegar a registrar en el sistema
6. El actor valida sus modificaciones pulsando el botn Validar
7. El sistema registra los cambios del albarn
Extensiones sncronasEn el punto 6, si se produce un error tcnico el sistema muestra un mensaje de error por pantalla
Extensiones asncronasEn cualquier momento el actorpuede detener la ejecucin del proceso pulsando el botn de Cerrar.
5/25/2018 Sistema Farmacia Documento
23/60
Aimen Ben Attahellah PFC.NET
17
3.2.2.Diagramas de casos de usoEl sistema bajo consideracin tiene tres tipos de actores: Administrador, farmacutico ytcnico farmacutico.
En ste diagrama se presenta la vista ms externa del sistema estando incluidossimplemente los actores del sistema y el sistema como un todo.
Ilustracin 4 - Diagrama UC Sistema
Este sistema se encuentra formado por cinco subsistemas, el actor tcnico farmacuticoes capaz de acceder a tres de estos subsistemas mientras que el actor farmacutico tieneacceso a los cuatro, as que el actor Administrador accede a un solo subsistema como semuestra en el siguiente diagrama:
Ilustracin 5 - Diagrama UCSubsistemas
5/25/2018 Sistema Farmacia Documento
24/60
Aimen Ben Attahellah PFC.NET
18
3.2.2.1. Subsistema de gestin administrativaEn el subsistema siguiente, se presentan los casos de uso que permiten gestionar unusuario, y darle un rol que ser clave para la restriccin de accesos.
Ilustracin 6 - Diagrama UC gestin administrativa
3.2.2.2. Subsistema de autentificacinEn el subsistema siguiente, se presentan los casos de uso que permiten a un usuariodado autentificarse/cambiar de usuario o, desconectarse del sistema.
Ilustracin 7 - Diagrama UC Autentificacin
5/25/2018 Sistema Farmacia Documento
25/60
Aimen Ben Attahellah PFC.NET
19
3.2.2.3. Subsistema de gestin de ventasRealizados por un tcnico o farmacutico, son los casos de uso ms usados por losusuarios y permiten crear nuevas ventas, presupuestos y recordatorio de ventas.
Ilustracin 8 - Diagrama UC - Gestin de ventas
3.2.2.1.
Subsistema de gestin de caja
Finalmente, para la gestin de caja tenemos los casos de uso siguientes:
Ilustracin 9 - Diagrama UC - Caja
5/25/2018 Sistema Farmacia Documento
26/60
Aimen Ben Attahellah PFC.NET
20
3.2.2.2. Subsistema de gestin de sociosPermite crear las personas fsicas y morales que interactuarn con la farmacia, y son losclientes consumidores de los artculos, y los proveedores que ofrecen dichos artculos.
Ilustracin 10 - Diagrama UC - Gestin de socios
5/25/2018 Sistema Farmacia Documento
27/60
Aimen Ben Attahellah PFC.NET
21
3.2.2.3. Subsistema de gestin de stockCasos de uso referentes a la gestin de los artculos, pedidos y el stock para elinventario.
Ilustracin 11 - Diagrama UC - Gestin de stock
5/25/2018 Sistema Farmacia Documento
28/60
Aimen Ben Attahellah PFC.NET
22
3.3. Diagrama de clasesA continuacin se muestra el modelo de objetos por el que se rige el sistema con todassus relaciones entre clases:
Ilustracin 12 - Diagrama de clases
4. Diseo del sistemaConcluida la fase del anlisis del sistema que responde a la pregunta de qu trata el
problema, nos introduciremos en la fase de diseo que responde a cmo se resuelve elproblema para obtener la solucin ptima.
4.1. Arquitectura del sistemaDistinguiremos entre una arquitectura fsica hardware y una arquitectura software:
5/25/2018 Sistema Farmacia Documento
29/60
Aimen Ben Attahellah PFC.NET
23
4.1.1.Arquitectura fsica del sistemaLa arquitectura del sistema usada es la de comnmente conocida cliente / servidorconectados en una red de rea local. Esto permite repartir la carga de computacin entreclientes y servidor sin que alguno tenga que hacer todo el procesamiento de datos.
La arquitectura fsica de cliente / servidor adoptada es de dos capas constituida por trescomponentes: varios clientes, un servidor y un protocolo de comunicacin entre ambosconocido como middleware.
Ilustracin 13Arquitectura del sistema cliente servidor
4.1.1.Arquitectura software del sistemaLa arquitectura propuesta est basada en la plataforma .NET de Microsoft y estdiseada en tres capas:
Capa de presentacin: representa los formularios de la aplicacin, y permitevisualizar por pantalla la interfaz grfica que permite interactuar con el usuario.Para la construccin del men, se ha usado un proyecto como componenteexterno. Esta capa esta interconectada con la capa de negocio.
Capa de negocio: integrada tambin en la aplicacin, permite realizar lostratamientos de datos y acceder a la capa de persistencia mediante llamadas a
procedimientos almacenados.
Capa de persistencia: representada por un conjunto de procedimientosalmacenados previamente definidos en el sistema gestor de base de datos.
5/25/2018 Sistema Farmacia Documento
30/60
Aimen Ben Attahellah PFC.NET
24
4.2. Diagramas de secuenciaLos diagramas de secuencia muestran las interacciones entre los objetos en unasecuencia temporal. En particular muestra los objetos participantes en la interaccin y lasecuencia de mensajes intercambiados.
Dado el elevado nmero de diagramas de secuencia del sistema, se va a limitar enpresentar en esta memoria, nicamente los diagramas de secuencia ms relevantes.
4.2.1.Autentificacin
Ilustracin 14Diagrama de secuencia - autentificacin
5/25/2018 Sistema Farmacia Documento
31/60
Aimen Ben Attahellah PFC.NET
25
4.2.2.Gestin de clientes
La gestin de clientes, usuarios, proveedores y artculos es bastante similar, por lo cualnos limitaremos en mostrar nicamente la gestin de clientes
Ilustracin 15Diagrama de secuenciaalta cliente
Ilustracin 16Diagrama de secuenciaconsultar cliente
5/25/2018 Sistema Farmacia Documento
32/60
Aimen Ben Attahellah PFC.NET
26
Ilustracin 17Diagrama de secuenciamodificar cliente
Ilustracin 18Diagrama de secuenciasuprimir cliente
5/25/2018 Sistema Farmacia Documento
33/60
Aimen Ben Attahellah PFC.NET
27
4.2.3.Gestin de pedidos
Ilustracin 19Diagrama de secuenciaalta pedido
Ilustracin 20Diagrama de secuenciaconsultar pedido
5/25/2018 Sistema Farmacia Documento
34/60
Aimen Ben Attahellah PFC.NET
28
Ilustracin 21Diagrama de secuenciamodificar pedido
Ilustracin 22Diagrama de secuenciasuprimir pedido
5/25/2018 Sistema Farmacia Documento
35/60
Aimen Ben Attahellah PFC.NET
29
4.2.4.Inventario
Ilustracin 23Diagrama de secuenciaconsultar inventario
Ilustracin 24Diagrama de secuenciamodificar inventario stock
5/25/2018 Sistema Farmacia Documento
36/60
Aimen Ben Attahellah PFC.NET
30
4.2.5.Gestin de ventas
Ilustracin 25Diagrama de secuencianueva venta
5/25/2018 Sistema Farmacia Documento
37/60
Aimen Ben Attahellah PFC.NET
31
Ilustracin 26Diagrama de secuenciahistrico de ventas
5/25/2018 Sistema Farmacia Documento
38/60
Aimen Ben Attahellah PFC.NET
32
Ilustracin 27Diagrama de secuenciapresupuesto venta
Ilustracin 28Diagrama de secuenciaimprimir presupuesto venta
5/25/2018 Sistema Farmacia Documento
39/60
Aimen Ben Attahellah PFC.NET
33
4.2.6.Gestin de Caja
Ilustracin 29Diagrama de secuenciapago diferido
5/25/2018 Sistema Farmacia Documento
40/60
Aimen Ben Attahellah PFC.NET
34
Ilustracin 30Diagrama de secuenciaConsultar caja
5/25/2018 Sistema Farmacia Documento
41/60
Aimen Ben Attahellah PFC.NET
35
Ilustracin 31Diagrama de secuenciaFinalizar venta
Ilustracin 32Diagrama de secuenciajornada
5/25/2018 Sistema Farmacia Documento
42/60
Aimen Ben Attahellah PFC.NET
36
Ilustracin 33Diagrama de secuenciadetalle de jornada
5/25/2018 Sistema Farmacia Documento
43/60
Aimen Ben Attahellah PFC.NET
37
4.3. Diseo de base de datosEn este apartado mostraremos el diagrama de entidad relacin y el diccionario de datoscon la definicin de las tablas.
4.3.1.Diagrama de entidad relacin
Ilustracin 34Diagrama de entidad relacin
4.3.2.Definicin de tablasEn este apartado se presentan las tablas de la base de datos del sistema con una breveexplicacin de la misma, as como de sus atributos, el tipo de dato y las restricciones delos mismos. Tambin se definen las relaciones entre tablas con sus clavesidentificadoras y ajenas.
5/25/2018 Sistema Farmacia Documento
44/60
Aimen Ben Attahellah PFC.NET
38
4.3.2.1. Tabla Sale
Columna Tipo DescripcinID_SALE Long Identificador auto-incremental de la venta (PK)
ID_OPERATOR Int Identificador del operador que realiza la venta (FK)
ID_CLIENT Int Identificador del cliente que realiza la venta (FK)
TYPE Char(1) Tipo de venta
DATE_OPENNING Datetime Fecha de creacin de la venta
DATE_CLOSING Datetime Fecha de finalizacin de la venta
HOUR Char(5) Hora de creacin o si procede finalizacin de la fecha
NUMBER_ARTICLES Int Nmero de artculos de la venta
STATE Char(1) Estado de la ventaAMOUNT_CASH Float Montante de pago en efectivo
AMOUNT_CREDIT Float Montante de compra por crdito
AMOUNT_CHEQUE Float Montante de pago con cheque
AMOUNT_ASSET Float Montante de pago por un haber o vale
AMOUNT_DISCOUNT Float Montante de descuento
AMOUNT_DEFERRED Float Montante de venta diferida para saldar un crdito
Tabla 11 - Definicin tabla - Venta
4.3.2.2. Tabla Cliente
Columna Tipo DescripcinID_CLIENT Int Identificador del cliente (PK)
FIRSTNAME Varchar(50) Nombre del cliente
LASTNAME Varchar(50) Apellidos del cliente
BIRTHDAY Date Fecha de nacimiento del cliente
SEX Char(1) Sexo del cliente
NATIONAL_ID Varchar(20) Documento nacional de identidad del cliente
ADDRESSE Varchar(50) Direccin del cliente
CITY Varchar(20) Poblacin del cliente
POSTAL_CODE Varchar(10) Cdigo postal del cliente
PHONE Varchar(20) Nmero de telfono del cliente
AMOUNT_CREDIT Float Montante de crdito actual del cliente
AMOUNT_DISCOUNT Float Montante de descuentos del cliente
AMOUNT_CEILING Float Lmite de crdito admitido al cliente
DATE_DELETE Date time Fecha de supresinborrado lgico
Tabla 12 - Definicin tabla - Cliente
5/25/2018 Sistema Farmacia Documento
45/60
Aimen Ben Attahellah PFC.NET
39
4.3.2.3. Tabla Proveedor
Columna Tipo DescripcinID_PROVEEDOR Int Identificador del proveedor (PK)
NAME Varchar(50) Nombre del proveedor
ADDRESS Varchar(100) Direccin del proveedor
CITY Varchar(50) Poblacin del proveedor
PHONE Varchar(50) Nmero de telfono del proveedor
FAX Varchar(20) Nmero de fax del proveedor
MAIL Varchar(20) Email del proveedor
TURNOVER Float Cifra de negocio del proveedor
REPRESENTATIVE_NAME Varchar(50) Nombre del representante del proveedorDELETE_DATE Date Fecha de supresinBorrado lgico
Tabla 13 - Definicin tabla - Proveedor
4.3.2.4. Tabla ArtculoColumna Tipo DescripcinID_ARTICLE Int Identificador del artculo (PK)
DESIGNATION Varchar(100) Nombre del artculo
SALE_PRICE Float Precio de venta del artculo
PURCHASE_PRICE Float Precio de compra del artculo
LOCATION Varchar(50) Emplazamiento del artculo dentro de la farmacia
STOCK Int Nmero en stock del artculo
BARCODE Varchar(50) Cdigo de barras del artculo
DATE_DELETE Date Fecha de supresinBorrado lgico
Tabla 14 - Definicin tabla - Artculo
4.3.2.5. Tabla Voucher de pedidosColumna Tipo DescripcinID_VOUCHER Int Identificador auto-incremental (PK)CODE Varchar(50) Cdigo del pedido
DATE_OPENNING Date Fecha de creacin
NUMBER_TYPE_ARTICLE Int Nmero de artculos distintos
NUMBER_TOTAL_ARTICLE Int Nmero total de artculos del pedido
AMOUNT Float Precio a pagar por el pedido
ID_PROVIDER Int Identificador del proveedor (FK)
ID_OPERATOR Int Identificador del operador que introdujo el pedido (FK)
Tabla 15 - Definicin tabla Pedido
5/25/2018 Sistema Farmacia Documento
46/60
Aimen Ben Attahellah PFC.NET
40
4.3.2.6. Tabla OperadorColumna Tipo DescripcinID_OPERADOR Int Identificador del operador (PK)
FIRSTNAME Varchar(50) Nombre del operador
LASTNAME Varchar(50) Apellidos del operador
ROLE Char(1) tipo del operador {tcnico, farmacutico, administrador}
LOGIN Varchar(10) Nombre de acceso del operador
PASSWORD Varchar(20) Contrasea de acceso del operador
ADDRESSE Varchar(50) Direccin del operador
CITY Varchar(20) Poblacin del operador
PHONE Varchar(20) Nmero de telfono del operador
DELETE_PHONE Date Fecha de supresin
Borrado lgicoTabla 16 - Definicin tabla - Operador
4.4. Diseo de interfaz de usuarioEn este apartado, se presenta el diseo de algunas interfaces de usuario basado sobre el
prototipo horizontal que ha sido validado con el usuario final en la fase de anlisis.
Para la implementacin de la interfaz grfica, se va a utilizar componentes ya existentes
integrados en un proyecto C#, para que sea ms amigable.
Ilustracin 35prototiponueva venta
5/25/2018 Sistema Farmacia Documento
47/60
Aimen Ben Attahellah PFC.NET
41
Ilustracin 36prototiporecordatorio de ventas
Ilustracin 37prototipocliente
5/25/2018 Sistema Farmacia Documento
48/60
Aimen Ben Attahellah PFC.NET
42
Ilustracin 38prototipoproveedor
Ilustracin 39prototipoarticulo
5/25/2018 Sistema Farmacia Documento
49/60
Aimen Ben Attahellah PFC.NET
43
5. ImplementacinEn la implementacin de este proyecto, se ha utilizado el lenguaje C# .NET que es unlenguaje de propsito general orientado a objetos creado por Microsoft para su
plataforma .NET. ste es un lenguaje de programacin orientado a la rpida y sencillacreacin de aplicaciones de formularios Windows, aplicaciones Web y servicios Webentre otros que funcionan sobre el Framework .NET y ofrece capacidades de diseocompletamente orientado a objetos, incorporando caractersticas como herencia,sobrecarga de mtodos o manejo de excepciones estructurado. Asimismo, el lenguaje deC# se ha optimizado, eliminando palabras clave obsoletas que se haban heredado ymejorando la seguridad de tipos.
Ilustracin 40 - Implementacin - Esquema de compilacin .NET
En cuanto al acceso de datos, la aplicacin utiliza ADO .NET, una evolucin de ADO(Active Data Object), con un modelo de objetos basado en XML, lo que permite unamejor interaccin con la informacin desde y hacia las bases de datos. ADO .NETforma parte integral de .NET Framework y proporciona un extenso conjunto de clases
para facilitar un acceso eficaz a los datos. Estas clases se encuentran divididas en dosramas principales, unas estn preparadas para trabajar con controladores OLE DB y
5/25/2018 Sistema Farmacia Documento
50/60
Aimen Ben Attahellah PFC.NET
44
otras son especficas para trabajar con SQL Server, sta rama es la que se ha utilizadoen la elaboracin de nuestro proyecto.
Ilustracin 41 - Implementacin - Esquema ADO.NET
En cuanto al entorno de desarrollo, lo detallamos como sigue.
RAID IDE: Microsoft Visual Studio 2010 Framework: .NET en versin 3.5 SGBD: SQL Server 2008 Generacin de informes: Crystal Report versin 13.0.5
5.1. Jerarqua del proyectoEl proyecto est constituido por tres capas, de los cuales dos estn integradas en el
proyecto PharmacilAB y representan las capas de presentacin y formularios y lasegunda la capa del negocio, y una tercera capa que est en forma de procedimientosalmacenados directamente integrada en la base de datos.
La carpeta de la capa de presentacin, llamada Forms, est distribuida por
funcionalidades como muestra el men de la aplicacin para facilitar la organizacin delos formularios.
Ilustracin 42- Implementacin - Men
5/25/2018 Sistema Farmacia Documento
51/60
Aimen Ben Attahellah PFC.NET
45
De la misma forma y siguiendo el mismo principio, la capade negocio, llamada Services, respeta tambin la mismadistribucin de las principales funcionalidades del sistema.
Nota:Se ha hecho uso del proyecto TabStripControlLibrary que es en realidad una librera que no est desarrollada eneste proyecto, sino que simplemente se hace referencia a ella
para disear el men y el submen. Con lo cual se usa comoun componente externo o una caja negra.
Ilustracin 43Implementacin - Proyectos C#Ilustracin 44Implementacin -
Capas
5.2. Algunos aspectos de implementacinA continuacin se van a presentar algunos aspectos de implementacin usados en el
proyecto:
5.2.1.Auto complecinEn todos los formularios que constituyen una bsqueda, sea de clientes, proveedores oartculos, se usa la auto complecin para guiar al usuario en su bsqueda. Esto tiene unimpacto ligeramente negativo en el rendimiento de la aplicacin pero el beneficio esnotorio, por eso se ha decidido su implantacin.
//Getting an article list from DBlistAllArticles = Program.getInstanceStockService().getAllDesignationArticle();
//Autocomplete
AutoCompleteStringCollection acsc = newAutoCompleteStringCollection ();
//build data auto complete article
if(listAllArticles != null){
foreach(Articledesignation inlistAllArticles){
acsc.Add(designation.designation);
5/25/2018 Sistema Farmacia Documento
52/60
Aimen Ben Attahellah PFC.NET
46
}
sDesignationTB.AutoCompleteCustomSource = acsc;
}
5.2.2.Llamadas a procedimientos almacenadosEl acceso a los datos de la base de datos, se hace gracias a los procedimientosalmacenados, stos estn llamados desde los servicios para consultar como para escribiren la BBDD:
//Adding voucher into DB
decimalidVoucher = (decimal)Program.getInstanceVoucherTableAdapter().
addOrder(voucher.code,
DateTime.Today, voucher.numberTypeArticle,
voucher.numberTotalArticle, voucher.amount,
voucher.idProvider, Program.theOperator.idOperator);
5.2.3.Mensajes de error y afirmacinLos mensajes que se muestran por pantalla, estn consolidados en el fichero Resources de la aplicacin:
Venta no permitida, umbral de crdito alcanzado
sError.Text = Resources.es_sale_ending_credit_top
5.2.4.Generacin de informesLa aplicacin ofrece al usuario generar el informe e imprimir el presupuesto de la ventaa realizar, para ello se ha utilizado Crystal Report que se ha integrado a nuestro IDE
para este fin.
Para generar informes con Crystal Report, se ha creado un DataSet llamadoCRDataSet.xsdque contiene los datos que se van a imprimir, luego desde el formulario
5/25/2018 Sistema Farmacia Documento
53/60
Aimen Ben Attahellah PFC.NET
47
SaleArticlePrintForm , se rellena dicho DataSet y se instancia en el informeBudgetCrystalReport previamente creado y el que contiene el informe con el formato
de los datos a presentar en el documento:
CRDataSetcrds = newCRDataSet();
//article numbers
intnumberData = saleListDGV.Rows.Count;
string[] data;
for(inti = 0; i < numberData; i++)
{
data = newstring[]{
saleListDGV[1,i].Value.ToString(),
saleListDGV[2,i].Value.ToString(),saleListDGV[3,i].Value.ToString(),
saleListDGV[4,i].Value.ToString()
};
//add data to crystal report table
crds.Tables[0].Rows.Add(data);
}
BudgetCrystalReportbcr = newBudgetCrystalReport();
//adding data source to crystal report
bcr.SetDataSource(crds);
crystalReportViewer1.ReportSource = bcr;
Crystal Report es una aplicacin muy potente, aunque tiene el inconveniente dedisminuir bastante el rendimiento de la aplicacin que se ve alterado, sobre todo, a lahora de generar el primer informe.
5.1. Algunos mdulos de la aplicacinEn este apartado presentamos algunos mdulos de la aplicacin seguidos de una
pequea explicacin de cmo operar, en cada mdulo:
5/25/2018 Sistema Farmacia Documento
54/60
Aimen Ben Attahellah PFC.NET
48
5.1.1.Mdulo de administracin - Gestin de usuariosEsta pantalla permite dar de alta, consultar, modificar y eliminar los usuarios delsistema. Para registrar un nuevo usuario slo hay que introducir sus datos en el rea deDatos del operador y luego pulsar el botn Aceptar
Para la modificacin, hay que introducir el apellido del operador previamente registradoen el rea de bsqueda, esto permitir mostrar todos sus datos mientras se vayanfiltrando los usuarios y de forma sistemtica en el rea creacin y modificacin, luegoslo faltara modificar los datos y luego validar pulsando el botn Validar.
Para borrar, hay que realizar la bsqueda y luego pulsar el botn Borrar.
Cabe destacar que la gestin de socios es prcticamente idntica a la gestin deusuarios.
Ilustracin 45Pantalla de gestin administrativa
5/25/2018 Sistema Farmacia Documento
55/60
Aimen Ben Attahellah PFC.NET
49
5.1.2.Mdulo de ventas Nueva ventaProbablemente, la pantalla ms utilizada por los tcnicos farmacuticas; permite aadirartculos a la venta. Esta, puede ser annima o ligada a un cliente, sto permite luegorealizar crditos a los clientes previamente registrados en el sistema.
Para aadir un nuevo artculo, se tiene que introducir a mano en el rea de introduccinde artculos, luego seleccionarlo de la lista desplegante y pulsar la tecla Intro,finalmente introducir la cantidad deseada y pulsar de nuevo en Intro, esto permitiraadir el artculo a la venta y con lo cual, se mostrar en la lista de artculos de la venta.
Una vez introducidos todos los artculos, pulsar el botn Validar para confirmar laventa, o sino el botn Cancelar para no registrar la venta en el sistema.
Para realizar un presupueto sin compra, slo habra que pulsar sobre el botnPrespuesto del submen, introducir los artculos como se explica arriba y luego pulsarel botn Imprimirpara generar el informe que se puede imprimir.
Ilustracin 46 - Pantalla de nueva venta
5/25/2018 Sistema Farmacia Documento
56/60
Aimen Ben Attahellah PFC.NET
50
5.1.3.Mdulo de ventas Histrico de ventasPara visualizar el histrico de ventas, se puede seleccionar una bsqueda por cliente,fechas o ambos y luego pulsar el botn Buscar.
Se muestra la lista de ventas y artculos asociados correspondientes a la bsqueda, sepueden seleccionar las ventas de la lista lo que permitir actualizar la lista de artculosasociados a la venta seleccionada. De la misma forma, actualizar el montante total dela venta seleccionada en el rea de Recapitulativo.
Ilustracin 47Pantalla de histrico de ventas
5/25/2018 Sistema Farmacia Documento
57/60
Aimen Ben Attahellah PFC.NET
51
5.1.4.Mdulo de stock Modificar pedidoEsta pantalla permite modificar y borrar pedidos previamente registrados en el sistema.Para ello, se tiene que hacer una bsqueda por nombre de proveedor, fechas o ambos yluego pulsar el botn de Buscar.
Obtenida la lista de albaranes con sus artculos correspondientes, se ofrecen variasposibilidades:
Aadir un artculo al pedido introducindolo en el rea de modificaciny luego pulsar el botn de Aadir artculo
Modificar un artculo del pedido haciendo clic sobre el botn de editarartculo, luego en el rea de modificacin cambiar la fecha de caducidady/o cantidad, y finalmente pulsando el botn Modificar.
Borrar un artculo del pedido haciendo clic sobre el botn de borrarartculo.
Borrar el pedido seleccionado
Ilustracin 48Pantalla de modificar pedido
5/25/2018 Sistema Farmacia Documento
58/60
Aimen Ben Attahellah PFC.NET
52
5.1.5.Mdulo de caja Caja registradoraPermite finalizar las ventas registradas previamente en las ltimas 48 horas, lascombinaciones de pago posibles son las siguientes:
Efectivo ntegro / Efectivo ntegro con descuento (%) / Efectivo y/o crdito paraclientes / Efectivo y/o haber / Efectivo y/o cheque
Cabe destacar que no se permite devolucin cuando se paga con un haber ya que ste norepresenta un bien monetario, y que el crdito slo es posible para clientes previamenteregistrados en el sistema y asociados a la venta corriente.
Todos los clientes tienen asignado un umbral de crdito que cuando se alcanza, no sepermite validar la venta a crdito.
Con lo cual para registrar una venta, hay que introducir en los campos descuentoaplicado, efectivo o crdito, haber, cheque los montantes deseados y luego pulsar
el botn Validar venta. O sino Cancelar para no registrar la venta.
Ilustracin 49Pgina caja registradora
5/25/2018 Sistema Farmacia Documento
59/60
Aimen Ben Attahellah PFC.NET
53
6. ConclusionesEl objetivo de este proyecto tcnico es poner en prctica algunos aspectos tericos quese han adquirido a lo largo de la carrera de ingeniera informtica, sea en el aspecto degestin de proyectos en cuanto a gestin y anlisis de riegos, seguimiento y
planificacin de tareas como en mtodos, procesos y metodologas de la ingeniera delsoftware, as como el aspecto tcnico de las fases de anlisis y diseo siguiendo
patrones de diseo y arquitectura de estndares tales como de IEEE.
Pues bien, este proyecto final de carrera es buen ejemplo de ello, tratndose sobre todode un estudio de un caso real, que abarca muchos conceptos adquiridos a lo largo de la
carrera, prueba de ello esta memoria que resume todo el trabajo realizado para construirun sistema completo respetando tanto los objetivos iniciales definidos en los requisitosfuncionales y no funcionales como los hitos principales y en los plazos previstosllegando a entregar un producto de calidad que satisface las necesidades del cliente.
Desde el punto de vista personal, el proyecto en s ha sido un gran reto para m, porquehabra que presentar, en un plazo muy corto de tiempo, un proyecto plagado defuncionalidades y con requisitos cambiantes y poco claros al principio del proyecto.Aadiendo que parta de unos humildes conocimientos sobre la tecnologa que se va a
utilizar. Gracias al gran esfuerzo personal y sobre todo a la organizacin del trabajo queha sido la gran protagonista a lo largo de proyecto, se consigui el fruto quesembrbamos al principio convirtiendo este gran esfuerzo en una enriquecedoraexperiencia.
7. Lneas de futuroLas lneas de futuro de desarrollo con las siguientes:
Internalizacin de la aplicacin adoptando el multi-idioma. Externalizar la configuracin de la aplicacin como el acceso a la base de datos. Posibilidad de parametrizar algunos datos de la aplicacin por parte de los
usuarios como emplazamiento de los artculos.
Mejorar la accesibilidad y navegacin dentro de los formularios para reducir eluso del ratn.
Aadir alertas como por ejemplo: para los artculos caducados o a caducar Estadsticas de ganancias netas
5/25/2018 Sistema Farmacia Documento
60/60
Aimen Ben Attahellah PFC.NET
54
8. BibliografaMoving to Microsoft Visual Studio 2010por Patrice Pelland, Pascal Par, y Ken Haine
Una sinfona en C#
http://leomicheloni.blogspot.com
C# Corner
http://www.c-sharpcorner.com/
The Code Project
http://www.codeproject.com/
stackoverflow
http://stackoverflow.com/
Crystal Reports Para Visual Studio NetPor Blanco Luis Miguel
Microsoft SQL Server 2008 BiblePorPaul Nielsen,Mike WhiteyUttam Parui
http://leomicheloni.blogspot.com/http://leomicheloni.blogspot.com/http://www.c-sharpcorner.com/http://www.c-sharpcorner.com/http://www.codeproject.com/http://www.codeproject.com/http://www.amazon.es/s/280-9208533-1072045?_encoding=UTF8&field-author=Paul%20Nielsen&search-alias=english-bookshttp://www.amazon.es/s/280-9208533-1072045?_encoding=UTF8&field-author=Mike%20White&search-alias=english-bookshttp://www.amazon.es/s/280-9208533-1072045?_encoding=UTF8&field-author=Uttam%20Parui&search-alias=english-bookshttp://www.amazon.es/s/280-9208533-1072045?_encoding=UTF8&field-author=Uttam%20Parui&search-alias=english-bookshttp://www.amazon.es/s/280-9208533-1072045?_encoding=UTF8&field-author=Mike%20White&search-alias=english-bookshttp://www.amazon.es/s/280-9208533-1072045?_encoding=UTF8&field-author=Paul%20Nielsen&search-alias=english-bookshttp://www.codeproject.com/http://www.c-sharpcorner.com/http://leomicheloni.blogspot.com/