Está en la página 1de 60

UNIVERSITAT OBERTA DE CATALUNYA

Ingeniera informtica

PROYECTO FIN DE CARRERA

SISTEMA DE INFORMATIZACIN
INTEGRAL DE LA GESTIN
FARMACUTICA

Autor:
Consultor:

Aimen Ben Attahellah


Juan Carlos Gonzlez Martin
Junio/2013

Resumen
El presente proyecto fin de carrera tiene como objetivo informatizar todo el sistema de
gestin de farmacias con el fin de dar un servicio a los farmacuticos, ms
independiente, ms eficaz y ms sencillo.
Independiente, porque la aplicacin podr ser adaptada y personalizada para permitir su
utilizacin en cualquier tipo de farmacia de cualquier especialidad.
Eficaz, porque el almacenamiento electrnico permite localizar datos especficos al
momento sin necesidad de las tradicionales carpetas que puedan llevar a confundir o
traspapelar 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 las
funcionalidades integradas en el sistema.
El sistema permite al farmacutico de realizar todas las tareas diarias que se realizan en
todas las farmacias, como la adquisicin y venta de medicamentos o artculos en
general, gestin de stock, de clientes y proveedores, siendo stas las tareas ms
frecuentes y demandadas en este sector.
Cabe destacar, que la toma de requisitos de este proyecto est basada sobre peticiones
de 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 por
su 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.

ii

ndice general
1.

2.

3.

Introduccin .................................................................................................................. 1
1.1.

Justificacin ............................................................................................................ 1

1.2.

Objetivo .................................................................................................................. 1

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

Anlisis del sistema ...................................................................................................... 7


3.1.

3.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.
4.

Anlisis de requisitos ............................................................................................. 7

Diagrama de clases .............................................................................................. 22

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


iii

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 ventas Nueva venta ................................................................ 49

5.1.3.

Mdulo de ventas Histrico de ventas ..................................................... 50

5.1.4.

Mdulo de stock Modificar pedido .......................................................... 51

5.1.5.

Mdulo de caja Caja registradora............................................................. 52

6.

Conclusiones ............................................................................................................... 53

7.

Lneas de futuro .......................................................................................................... 53

8.

Bibliografa.................................................................................................................. 54

iv

ndice de ilustraciones
Ilustracin 1-Ciclo de vida clsico con prototipado............................................................ 2
Ilustracin 2 - Planificacin inicial Diagrama Gantt ....................................................... 5
Ilustracin 3 - Consumido real - Diagrama Gantt ............................................................... 6
Ilustracin 4 - Diagrama UC Sistema ............................................................................. 17
Ilustracin 5 - Diagrama UC Subsistemas ...................................................................... 17
Ilustracin 6 - Diagrama UC gestin administrativa ..................................................... 18
Ilustracin 7 - Diagrama UC Autentificacin ................................................................ 18
Ilustracin 8 - Diagrama UC - Gestin de ventas ............................................................. 19
Ilustracin 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 ................................................................................... 22
Ilustracin 13 Arquitectura del sistema cliente servidor ............................................ 23
Ilustracin 14 Diagrama de secuencia - autentificacin ................................................ 24
Ilustracin 15 Diagrama de secuencia alta cliente ...................................................... 25
Ilustracin 16 Diagrama de secuencia consultar cliente ............................................. 25
Ilustracin 17 Diagrama de secuencia modificar cliente ............................................ 26
Ilustracin 18 Diagrama de secuencia suprimir cliente .............................................. 26
Ilustracin 19 Diagrama de secuencia alta pedido ...................................................... 27
Ilustracin 20 Diagrama de secuencia consultar pedido ............................................ 27
Ilustracin 21 Diagrama de secuencia modificar pedido............................................ 28
Ilustracin 22 Diagrama de secuencia suprimir pedido.............................................. 28
Ilustracin 23 Diagrama de secuencia consultar inventario ....................................... 29
Ilustracin 24 Diagrama de secuencia modificar inventario stock ............................ 29
Ilustracin 25 Diagrama de secuencia nueva venta .................................................... 30
Ilustracin 26 Diagrama de secuencia histrico de ventas ......................................... 31
Ilustracin 27 Diagrama de secuencia presupuesto venta .......................................... 32
Ilustracin 28 Diagrama de secuencia imprimir presupuesto venta .......................... 32
Ilustracin 29 Diagrama de secuencia pago diferido .................................................. 33
Ilustracin 30 Diagrama de secuencia Consultar caja ................................................ 34
Ilustracin 31 Diagrama de secuencia Finalizar venta ............................................... 35
Ilustracin 32 Diagrama de secuencia jornada............................................................ 35
Ilustracin 33 Diagrama de secuencia detalle de jornada .......................................... 36
Ilustracin 34 Diagrama de entidad relacin .................................................................. 37
Ilustracin 35 prototipo nueva venta ........................................................................... 40
Ilustracin 36 prototipo recordatorio de ventas .......................................................... 41
Ilustracin 37 prototipo cliente .................................................................................... 41
Ilustracin 38 prototipo proveedor............................................................................... 42
Ilustracin 39 prototipo articulo ................................................................................... 42
v

Ilustracin 40 - Implementacin - Esquema de compilacin .NET ................................. 43


Ilustracin 41 - Implementacin - Esquema ADO.NET................................................... 44
Ilustracin 42- Implementacin - Men ............................................................................ 44
Ilustracin 43 Implementacin - Proyectos C# .............................................................. 45
Ilustracin 44 Implementacin - Capas .......................................................................... 45
Ilustracin 45 Pantalla de gestin administrativa........................................................... 48
Ilustracin 46 - Pantalla de nueva venta ............................................................................ 49
Ilustracin 47 Pantalla de histrico de ventas ................................................................ 50
Ilustracin 48 Pantalla de modificar pedido ................................................................... 51
Ilustracin 49 Pgina caja registradora ........................................................................... 52

ndice de tablas
Tabla 1 - Plantilla UC - Interaccin usuario/sistema ........................................................ 10
Tabla 2 - Plantilla UC - Crear usuarios.............................................................................. 10
Tabla 3 - Plantilla UC - Nueva venta ................................................................................. 11
Tabla 4 - Plantilla UC Histrico de venta....................................................................... 12
Tabla 5 - Plantilla UC - Caja registradora ......................................................................... 13
Tabla 6 - Plantilla UC Finalizar venta en caja registradora........................................... 13
Tabla 7 - Plantilla UC Consultar jornada de ventas ....................................................... 14
Tabla 8 - Plantilla UC Detalle de jornada de ventas ...................................................... 15
Tabla 9 - Plantilla UC Consulta de pedidos ................................................................... 15
Tabla 10 - Plantilla UC Modificar pedido ....................................................................... 16
Tabla 11 - Definicin tabla - Venta.................................................................................... 38
Tabla 12 - Definicin tabla - Cliente ................................................................................. 38
Tabla 13 - Definicin tabla - Proveedor ............................................................................ 39
Tabla 14 - Definicin tabla - Artculo................................................................................ 39
Tabla 15 - Definicin tabla Pedido ................................................................................. 39
Tabla 16 - Definicin tabla - Operador .............................................................................. 40

vi

Aimen Ben Attahellah

PFC.NET

1. Introduccin
En 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.

Justificacin

La realizacin de este proyecto final de carrera responde a la necesidad de realizar un


sistema eficaz y simple que integra todas las funcionalidades bsicas y comunes de
cualquier 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 un
importante abanico de funcionalidades donde la mayora no son de uso comn y nunca
son usadas en el mbito de la gestin farmacutica, con lo cual, se reduce la eficacia del
sistema. Otra cuestin muy importante, estos sistemas suelen ser complicados hasta para
usuarios familiarizados con aplicaciones informticas dadas sus navegaciones que
suelen ser verticales y profundas. Por ltimo la interfaz grfica, en la mayora de los
casos, suele tener varios botones y componentes grficos en general, que lo nico que
transmiten al usuario es la sensacin de no dominar el sistema, lo que puede generar un
cierto rechazo a la aplicacin.

1.2.

Objetivo

Vista la justificacin, este proyecto da una solucin a la mayora de los sistemas que
encontramos actualmente en el mercado, enfocndose en ofrecer un sistema de gestin
farmacutico eficaz, completo y sobre todo amigable y fcil de usar.
En cuanto al aspecto tcnico, la eleccin de la plataforma Microsoft .Net viene dada por
ser una plataforma potente que permite construir interfaces con componentes grficos
con mayor rapidez, eficacia y sencillez, cuando se pretende explotar al mxima las
propiedades y eventos de dichos componentes y obtener as interfaces amigables
siguiendo por supuesto los principios bsicos del diseo de interfaces grficas.

Aimen Ben Attahellah

PFC.NET

2. Gestin de proyecto
2.1.

Modelo y ciclo de vida

Se ha usado en la elaboracin de este sistema, el modelo clsico con prototipado debido


al formato de entregas de la asignatura de PFC, a pesar de tener claro que en otra
situacin, hubiera sido mejor, los modelos evolutivos o incrementales que son ms
adaptables a requisitos cambiantes como veremos a continuacin en el apartado de los
riesgos principales del proyecto.
El modelo planteado permiti presentar un prototipo a nuestro cliente, en este caso
horizontal 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 anlisis
o Identificar los requisitos bsicos del usuario conjuntamente con el cliente
o Desarrollar el prototipo horizontal inicial con presentacin al cliente
o 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

Aimen Ben Attahellah

2.2.

PFC.NET

Metodologa

En la metodologa se ha intentado basarse sobre algunos principios de las metodologas


giles gracias a la simplicidad, tolerancia a cambios, cercana con el cliente y el enfoque
ms vertical al desarrollo de un software y siendo minimalista hasta cierto punto
respecto a la documentacin del sistema, lo que se adapta al final a nuestro caso de
estudio.
Qu nos ha aportado realmente seguir esta metodologa:

Reflexionar ms a cmo ser ms efectivo respetando al mismo tiempo la calidad


del software
Construir un software de una manera rpida y eficaz trabajando directamente
con el usuario final y percibir rpidamente los cambios para poder aceptarlos o
evitarlos eficazmente.
Finalmente tener una documentacin completa y precisa, pero anteponiendo un
desarrollo de software que funciona.

2.3.

Anlisis de riegos

Los riesgos principales que se han en esta fase inicial del proyecto, se presentan de la
siguiente forma:
El autor que va a desarrollar el sistema, no tiene conocimientos avanzados de la
tecnologa que se va a utilizar, y se limitan en lo que se ha aprendido a lo largo de la
carrera, y para el desarrollo de un sistema completo desde cero, se necesita un
importante conocimiento de la arquitectura .NET como de los lenguajes C#.NET y
ADO.NET.
Destaco tambin, la naturaleza de mi actual trabajo que requiere varios desplazamientos
en toda Europa, lo cual nos llevara al segundo riesgo de no poder respetar una
dedicacin constante y rigurosa a las tareas y al desarrollo normal del sistema.

Aimen Ben Attahellah

PFC.NET

Para estos dos riesgos, se pone como plan de accin, realizar un sobreesfuerzo durante
la 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 de
estar al borde de una alerta.
El tercer riesgo, es de carcter puramente tcnico, y se refiere al uso del modo de
conexin desconectado a la base datos, esto puede tener un impacto de rendimiento
significativo. Como plan de accin se usarn los procedimientos almacenados para
ajustar 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 el
sistema. El plan de accin es convencer a los farmacuticos responsables de que el
sistema va a mejorar la gestin de su farmacia e incitarles a convencer a todos los
usuarios, de que el sistema les va a facilitar el trabajo.
El quinto y ltimo riesgo, es que los farmacuticos responsables tienen tendencia a
cambiar las funcionalidades del sistema y no se ponen de acuerdo en todas las
funcionalidades, debido a que no podemos suspender temporalmente el proyecto, como
plan de accin paliativo, sera cerrar una primera versin, y prever si es necesario, una
nueva versin del sistema una vez lo tengan ms claro.

2.4.

Planificacin y seguimiento

Se muestra abajo, en formato de diagrama de Gantt, la planificacin inicial detallando


as las actividades. Se ha previsto una tarea de previsin de riesgos, debido a los riesgos
detectados y la cual se intentar de no producir salvo si hay sobresaltos, la PPR supone
aproximadamente el 7% del propuesto global:

Aimen Ben Attahellah

PFC.NET

Ilustracin 2 - Planificacin inicial Diagrama 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 ha
excedido con creces lo que estaba planificado inicialmente sobe todo en lo referente a la toma de requisitos y prototipado. La fase de diseo
tambin ha revelado un consumido mayor que lo planificado por culpa del gran volumen de diagramas de secuencia.

Aimen Ben Attahellah

PFC.NET

Gracias a una planificacin, gestin de riesgos y planes de accin eficaces y a la buena produccin en la fase de implementacin, se ha
conseguido 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

Aimen Ben Attahellah

PFC.NET

3. Anlisis del sistema


En este apartado se pretende explicar las tareas que se han realizado en la fase de
anlisis inicial del proyecto.

3.1.

Anlisis de requisitos

Existen dos tipos de requisitos, funcionales y no funcionales:

3.1.1. No funcionales
Definen tanto propiedades como restricciones del sistema, tales como el tiempo de
respuesta o fiabilidad

Sistema operativo: Cualquier sistema operativo de la familia de Microsoft


Windows 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 768
pxeles
Tiempo de respuesta: El tiempo de respuesta a la hora de guardar los datos no
debe de superar los cinco segundos.
Uso del sistema: El deseo general del usuario es la facilidad de uso de la
herramienta.

Aimen Ben Attahellah

PFC.NET

3.1.1. Funcionales
Definen los servicios y las funcionalidades que debe proporcionar el sistema.
Los requisitos funcionales son:

Autentificacin. Cualquier usuario ya registrado, puede autentificarse y salir del


sistema cuando quiera.
o Iniciar la sesin
o Cambiar de sesin
o Salir del sistema

Administracin del sistema - Gestin de Usuarios. Todos los usuarios deben


ser correctamente identificados en el sistema. Para ello, el usuario proporciona al
administrador su nombre de usuario, contrasea y tipo de usuario del que se trata
(Farmacutico responsable, Tcnico o Administrador/a), tras lo cual el sistema
deber validar estos datos.
o Alta/consulta/modificacin/supresin de usuarios

Gestin de ventas. La gestin de ventas es el ncleo del sistema, ofrece la


creacin de una nueva venta, presupuesto de la venta para poder imprimirlo y
finalmente consultar el histrico de ventas sea por fechas, por cliente o ambos.
o Nueva venta
o Presupuesto con generacin de documentos
o Ventas realizadas por un cliente y/o en un intervalo de tiempo

Gestin de caja. Permite finalizar las ventas creadas en el apartado de Nueva


venta. Ofrece la realizacin de los pagos diferidos para que un cliente pueda
saldar 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 y
tambin el detalle de dichas ventas.
o Caja registradora
o Pago diferido
o Jornada de ventas detalle de ventas

Aimen Ben Attahellah

PFC.NET

Gestin de stock. Esta macro-funcionalidad, ofrece la posibilidad de crear o


manipular los artculos de la farmacia. Inventario y actualizar el stock de
artculos 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 artculo
o Crear/Consultar/Modificar/Suprimir pedido y sus artculos correspondientes
o 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 caso
para clientes. Un cliente slo se puede borrar, si ha saldado todos sus
crditos.
- Aadir/Consultar/Modificar/Eliminar

3.2.

Casos de uso

Los casos de uso representan requisitos funcionales del sistema y definen un conjunto
de 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 en
forma de plantillas y en forma de diagramas.
Para la realizacin de la especificacin de requisitos, se ha adoptado el modelo estndar
de ANSI/IEEE Std 830-1998 IEEE Guide to Software requirements Specifications

Aimen Ben Attahellah

PFC.NET

3.2.1. Plantillas de casos de uso


Las plantillas permiten describir los casos de uso y la forma en que se interactuar el
usuario con el sistema. Esta interaccin son acciones realizadas por el usuario y por el
sistema tras un suceso provocado por los mismos, y que representaremos como:
Acciones del usuario
Acciones del sistema
Tabla 1 - Plantilla UC - Interaccin usuario/sistema

3.2.1.1.
Identificacin
Caso de Uso:
Descripcin:
Roles Soportados:
Relacin
Hereda:
Extiende:
Incluye:
Proceso / Descripcin
Actor Primario:
Actores Secundarios:
Precondiciones:

Crear usuarios

Crear Usuario
El Administrador registra un nuevo usuario en el Sistema
Administrador

Administrador
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
pantalla
Extensiones sncronas
Si en el punto 3, los datos obligatorios no estn introducidos el sistema muestra un mensaje de error
y no avanza al punto 4.
Extensiones asncronas
En cualquier momento el Administrador puede detener la ejecucin del proceso pulsando el botn
de Cancelar.
Tabla 2 - Plantilla UC - Crear usuarios

10

Aimen Ben Attahellah

PFC.NET

La creacin o alta de clientes, proveedores y artculos es prcticamente similar a la


creacin de usuarios, salvo que el actor en este caso es el Tcnico.
3.2.1.2.

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 farmacia
Actores Secundarios:
Precondiciones:
Autentificarse. Los clientes ya estn registrados en el sistema
Post 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 artculos
7. El Tcnico de farmacia puede introducir opcionalmente el nombre del cliente o dejar el campo
vaco, para ello va filtrando mientras vaya escribiendo
8. El actor presiona 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 de
Cancelar.
Tabla 3 - Plantilla UC - Nueva venta

11

Aimen Ben Attahellah

3.2.1.3.
Identificacin
Caso de Uso:
Descripcin:
Roles Soportados:
Relacin
Hereda:
Extiende:
Incluye:
Proceso / Descripcin
Actor Primario:
Actores Secundarios:
Precondiciones:

PFC.NET

Histrico de ventas

Histrico de ventas
El actor consulta todas las ventas de un cliente y/o entre dos fechas
Tcnico de farmacia, Farmacutico

Tcnico de farmacia
Autentificacin. El cliente ya est registrado en el sistema y tiene ventas
asociadas.
Las ventas aparecen en la pantalla

Post condiciones:
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 actor presiona el botn Buscar
5. El sistema recupera todas las ventas correspondientes al cliente y/o fechas seleccionadas
Extensiones sncronas
Si en el punto 4, ninguna venta es devuelta o que el usuario no haya seleccionado ninguna opcin de bsqueda, el
sistema muestra un mensaje de error y vuelve al punto 2.
Extensiones asncronas
En cualquier momento el actor puede detener la ejecucin del proceso pulsando el botn de Cancelar.
Tabla 4 - Plantilla UC Histrico de venta

3.2.1.4.
Identificacin
Caso de Uso:
Descripcin:
Roles Soportados:
Relacin
Hereda:
Extiende:
Incluye:
Proceso / Descripcin
Actor Primario:
Actores Secundarios:

Caja registradora

Consultar caja
Consultar las ventas transmitidas a la caja
Farmacutico

Farmacutico

12

Aimen Ben Attahellah

PFC.NET

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 no
estn finalizadas
2. El farmacutico selecciona una venta de la lista
3. El sistema muestra el detalle y los artculos de la venta as como los datos del cliente en caso que sea una venta
a 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.
Tabla 5 - Plantilla UC - Caja registradora

3.2.1.5.

Finalizar venta en caja registradora

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 sncronas
Si en el punto 2, el sistema verifica que los datos de la venta son incorrectos, mostrara un mensaje de error
explicando que
la venta no es correcta y vuelve al punto 1.
Extensiones
asncronas
En cualquier momento el actor puede detener la ejecucin del proceso pulsando el botn de Cancelar.
Tabla 6 - Plantilla UC Finalizar venta en caja registradora

13

Aimen Ben Attahellah


3.2.1.6.
Identificacin
Caso de Uso:
Descripcin:

PFC.NET

Consultar jornada de ventas

Consultar jornada de ventas


El farmacutico consulta los pagos realizados en un periodo de fechas
preseleccionado

Roles Soportados:
Farmacutico
Relacin
Hereda:
Extiende:
Incluye:
Proceso / Descripcin
Actor Primario:
Farmacutico
Actores Secundarios:
Precondiciones:
Autentificacin
Post 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 sncronas
Si 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 asncronas
En cualquier momento el actor puede detener la ejecucin del proceso pulsando el botn de Cerrar.
Tabla 7 - Plantilla UC Consultar jornada de ventas

3.2.1.7.
Identificacin
Caso de Uso:
Descripcin:
Roles Soportados:
Relacin
Hereda:
Extiende:
Incluye:

Detalle de jornada de ventas

Detalle jornada de ventas


El farmacutico desea consultar el detalle de jornada de ventas mostradas
en el caso de uso de Consultar jornada de ventas
Farmacutico

Consultar jornada de ventas

14

Aimen Ben Attahellah

PFC.NET

Proceso / Descripcin
Actor Primario:
Farmacutico
Actores Secundarios:
Precondiciones:
Haber ejecutado el caso de uso Consultar jornada de ventas
Post condiciones:
Flujo de eventos
1. El actor presiona 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 la
pantalla nueva
Extensiones asncronas
Tabla 8 - Plantilla UC Detalle de jornada de ventas

3.2.1.8.
Identificacin
Caso de Uso:
Descripcin:

Consultar pedidos

Consultar pedidos
El actor consulta la lista de pedidos por proveedor y/o en un intervalo de
tiempo

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 Buscar
4.El sistema muestra la lista de pedidos con sus artculos asociados
Extensiones sncronas
Si en el punto 3, ningn pedido es devuelto por el sistema o si ninguna opcin de bsqueda est seleccionada, el
sistema muestra un mensaje de error
Extensiones asncronas
En cualquier momento el actor puede detener la ejecucin del proceso pulsando el botn de Cerrar.
Tabla 9 - Plantilla UC Consulta de pedidos

15

Aimen Ben Attahellah

3.2.1.9.

PFC.NET

Modificar 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 o
aadir 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 modificar
4.3. El actor modifica la fecha de caducidad o la cantidad de artculos asociados al albarn y presiona el botn
Modificar
4.4. El sistema modifica el artculo y actualiza la lista de pedidos con sus artculos sin llegar a registrar en el
sistema
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 sncronas
En el punto 6, si se produce un error tcnico el sistema muestra un mensaje de error por pantalla
Extensiones asncronas
En cualquier momento el actor puede detener la ejecucin del proceso pulsando el botn de Cerrar.
Tabla 10 - Plantilla UC Modificar pedido

16

Aimen Ben Attahellah

PFC.NET

3.2.2. Diagramas de casos de uso


El sistema bajo consideracin tiene tres tipos de actores: Administrador, farmacutico y
tcnico farmacutico.
En ste diagrama se presenta la vista ms externa del sistema estando incluidos
simplemente 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 farmacutico
es capaz de acceder a tres de estos subsistemas mientras que el actor farmacutico tiene
acceso a los cuatro, as que el actor Administrador accede a un solo subsistema como se
muestra en el siguiente diagrama:

Ilustracin 5 - Diagrama UC Subsistemas

17

Aimen Ben Attahellah

3.2.2.1.

PFC.NET

Subsistema de gestin administrativa

En el subsistema siguiente, se presentan los casos de uso que permiten gestionar un


usuario, y darle un rol que ser clave para la restriccin de accesos.

Ilustracin 6 - Diagrama UC gestin administrativa

3.2.2.2.

Subsistema de autentificacin

En el subsistema siguiente, se presentan los casos de uso que permiten a un usuario


dado autentificarse/cambiar de usuario o, desconectarse del sistema.

Ilustracin 7 - Diagrama UC Autentificacin

18

Aimen Ben Attahellah

3.2.2.3.

PFC.NET

Subsistema de gestin de ventas

Realizados por un tcnico o farmacutico, son los casos de uso ms usados por los
usuarios 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

19

Aimen Ben Attahellah

3.2.2.2.

PFC.NET

Subsistema de gestin de socios

Permite crear las personas fsicas y morales que interactuarn con la farmacia, y son los
clientes consumidores de los artculos, y los proveedores que ofrecen dichos artculos.

Ilustracin 10 - Diagrama UC - Gestin de socios

20

Aimen Ben Attahellah

3.2.2.3.

PFC.NET

Subsistema de gestin de stock

Casos de uso referentes a la gestin de los artculos, pedidos y el stock para el


inventario.

Ilustracin 11 - Diagrama UC - Gestin de stock

21

Aimen Ben Attahellah

3.3.

PFC.NET

Diagrama de clases

A continuacin se muestra el modelo de objetos por el que se rige el sistema con todas
sus relaciones entre clases:

Ilustracin 12 - Diagrama de clases

4. Diseo del sistema


Concluida 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 el
problema para obtener la solucin ptima.

4.1.

Arquitectura del sistema

Distinguiremos entre una arquitectura fsica hardware y una arquitectura software:

22

Aimen Ben Attahellah

PFC.NET

4.1.1. Arquitectura fsica del sistema


La arquitectura del sistema usada es la de comnmente conocida cliente / servidor
conectados en una red de rea local. Esto permite repartir la carga de computacin entre
clientes 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 tres
componentes: varios clientes, un servidor y un protocolo de comunicacin entre ambos
conocido como middleware.

Ilustracin 13 Arquitectura del sistema cliente servidor

4.1.1. Arquitectura software del sistema


La arquitectura propuesta est basada en la plataforma .NET de Microsoft y est
diseada en tres capas:

Capa de presentacin: representa los formularios de la aplicacin, y permite


visualizar por pantalla la interfaz grfica que permite interactuar con el usuario.
Para la construccin del men, se ha usado un proyecto como componente
externo. Esta capa esta interconectada con la capa de negocio.
Capa de negocio: integrada tambin en la aplicacin, permite realizar los
tratamientos de datos y acceder a la capa de persistencia mediante llamadas a
procedimientos almacenados.
Capa de persistencia: representada por un conjunto de procedimientos
almacenados previamente definidos en el sistema gestor de base de datos.
23

Aimen Ben Attahellah

4.2.

PFC.NET

Diagramas de secuencia

Los diagramas de secuencia muestran las interacciones entre los objetos en una
secuencia temporal. En particular muestra los objetos participantes en la interaccin y la
secuencia de mensajes intercambiados.
Dado el elevado nmero de diagramas de secuencia del sistema, se va a limitar en
presentar en esta memoria, nicamente los diagramas de secuencia ms relevantes.

4.2.1. Autentificacin

Ilustracin 14 Diagrama de secuencia - autentificacin

24

Aimen Ben Attahellah

PFC.NET

4.2.2. Gestin de clientes

La gestin de clientes, usuarios, proveedores y artculos es bastante similar, por lo cual


nos limitaremos en mostrar nicamente la gestin de clientes

Ilustracin 15 Diagrama de secuencia alta cliente

Ilustracin 16 Diagrama de secuencia consultar cliente

25

Aimen Ben Attahellah

PFC.NET

Ilustracin 17 Diagrama de secuencia modificar cliente

Ilustracin 18 Diagrama de secuencia suprimir cliente

26

Aimen Ben Attahellah

PFC.NET

4.2.3. Gestin de pedidos

Ilustracin 19 Diagrama de secuencia alta pedido

Ilustracin 20 Diagrama de secuencia consultar pedido

27

Aimen Ben Attahellah

PFC.NET

Ilustracin 21 Diagrama de secuencia modificar pedido

Ilustracin 22 Diagrama de secuencia suprimir pedido

28

Aimen Ben Attahellah

PFC.NET

4.2.4. Inventario

Ilustracin 23 Diagrama de secuencia consultar inventario

Ilustracin 24 Diagrama de secuencia modificar inventario stock

29

Aimen Ben Attahellah

PFC.NET

4.2.5. Gestin de ventas

Ilustracin 25 Diagrama de secuencia nueva venta

30

Aimen Ben Attahellah

PFC.NET

Ilustracin 26 Diagrama de secuencia histrico de ventas

31

Aimen Ben Attahellah

PFC.NET

Ilustracin 27 Diagrama de secuencia presupuesto venta

Ilustracin 28 Diagrama de secuencia imprimir presupuesto venta

32

Aimen Ben Attahellah

PFC.NET

4.2.6. Gestin de Caja

Ilustracin 29 Diagrama de secuencia pago diferido

33

Aimen Ben Attahellah

PFC.NET

Ilustracin 30 Diagrama de secuencia Consultar caja

34

Aimen Ben Attahellah

PFC.NET

Ilustracin 31 Diagrama de secuencia Finalizar venta

Ilustracin 32 Diagrama de secuencia jornada

35

Aimen Ben Attahellah

PFC.NET

Ilustracin 33 Diagrama de secuencia detalle de jornada

36

Aimen Ben Attahellah

4.3.

PFC.NET

Diseo de base de datos

En este apartado mostraremos el diagrama de entidad relacin y el diccionario de datos


con la definicin de las tablas.

4.3.1. Diagrama de entidad relacin

Ilustracin 34 Diagrama de entidad relacin

4.3.2. Definicin de tablas


En este apartado se presentan las tablas de la base de datos del sistema con una breve
explicacin de la misma, as como de sus atributos, el tipo de dato y las restricciones de
los mismos. Tambin se definen las relaciones entre tablas con sus claves
identificadoras y ajenas.

37

Aimen Ben Attahellah

4.3.2.1.

Columna
Columna
ID_SALE
ID_OPERATOR
ID_CLIENT
TYPE
DATE_OPENNING
DATE_CLOSING
HOUR
NUMBER_ARTICLES
STATE
AMOUNT_CASH
AMOUNT_CREDIT
AMOUNT_CHEQUE
AMOUNT_ASSET
AMOUNT_DISCOUNT
AMOUNT_DEFERRED

PFC.NET

Tabla Sale

Tipo
Long
Int
Int
Char(1)
Datetime
Datetime
Char(5)
Int
Char(1)
Float
Float
Float
Float
Float
Float

Descripcin
Identificador auto-incremental de la venta (PK)
Identificador del operador que realiza la venta (FK)
Identificador del cliente que realiza la venta (FK)
Tipo de venta
Fecha de creacin de la venta
Fecha de finalizacin de la venta
Hora de creacin o si procede finalizacin de la fecha
Nmero de artculos de la venta
Estado de la venta
Montante de pago en efectivo
Montante de compra por crdito
Montante de pago con cheque
Montante de pago por un haber o vale
Montante de descuento
Montante de venta diferida para saldar un crdito

Tabla 11 - Definicin tabla - Venta

4.3.2.2.

Columna
Columna
ID_CLIENT
FIRSTNAME
LASTNAME
BIRTHDAY
SEX
NATIONAL_ID
ADDRESSE
CITY
POSTAL_CODE
PHONE
AMOUNT_CREDIT
AMOUNT_DISCOUNT
AMOUNT_CEILING
DATE_DELETE

Tabla Cliente

Tipo
Int
Varchar(50)
Varchar(50)
Date
Char(1)
Varchar(20)
Varchar(50)
Varchar(20)
Varchar(10)
Varchar(20)
Float
Float
Float
Date time

Descripcin
Identificador del cliente (PK)
Nombre del cliente
Apellidos del cliente
Fecha de nacimiento del cliente
Sexo del cliente
Documento nacional de identidad del cliente
Direccin del cliente
Poblacin del cliente
Cdigo postal del cliente
Nmero de telfono del cliente
Montante de crdito actual del cliente
Montante de descuentos del cliente
Lmite de crdito admitido al cliente
Fecha de supresin borrado lgico

Tabla 12 - Definicin tabla - Cliente

38

Aimen Ben Attahellah

4.3.2.3.

Tabla Proveedor

Columna
Columna
ID_PROVEEDOR
NAME
ADDRESS
CITY
PHONE
FAX
MAIL
TURNOVER
REPRESENTATIVE_NAME
DELETE_DATE

4.3.2.4.

Tipo
Int
Varchar(50)
Varchar(100)
Varchar(50)
Varchar(50)
Varchar(20)
Varchar(20)
Float
Varchar(50)
Date

Descripcin
Identificador del proveedor (PK)
Nombre del proveedor
Direccin del proveedor
Poblacin del proveedor
Nmero de telfono del proveedor
Nmero de fax del proveedor
Email del proveedor
Cifra de negocio del proveedor
Nombre del representante del proveedor
Fecha de supresin Borrado lgico
Tabla 13 - Definicin tabla - Proveedor

Tabla Artculo

Columna
Columna
ID_ARTICLE
DESIGNATION
SALE_PRICE
PURCHASE_PRICE
LOCATION
STOCK
BARCODE
DATE_DELETE

4.3.2.5.

PFC.NET

Tipo
Int
Varchar(100)
Float
Float
Varchar(50)
Int
Varchar(50)
Date

Descripcin
Identificador del artculo (PK)
Nombre del artculo
Precio de venta del artculo
Precio de compra del artculo
Emplazamiento del artculo dentro de la farmacia
Nmero en stock del artculo
Cdigo de barras del artculo
Fecha de supresin Borrado lgico
Tabla 14 - Definicin tabla - Artculo

Tabla Voucher de pedidos

Columna
Columna
ID_VOUCHER
CODE
DATE_OPENNING
NUMBER_TYPE_ARTICLE
NUMBER_TOTAL_ARTICLE
AMOUNT
ID_PROVIDER
ID_OPERATOR

Tipo
Int
Varchar(50)
Date
Int
Int
Float
Int
Int

Descripcin
Identificador auto-incremental (PK)
Cdigo del pedido
Fecha de creacin
Nmero de artculos distintos
Nmero total de artculos del pedido
Precio a pagar por el pedido
Identificador del proveedor (FK)
Identificador del operador que introdujo el pedido (FK)
Tabla 15 - Definicin tabla Pedido

39

Aimen Ben Attahellah

4.3.2.6.
Columna
Columna
ID_OPERADOR
FIRSTNAME
LASTNAME
ROLE
LOGIN
PASSWORD
ADDRESSE
CITY
PHONE
DELETE_PHONE

PFC.NET

Tabla Operador
Tipo
Int
Varchar(50)
Varchar(50)
Char(1)
Varchar(10)
Varchar(20)
Varchar(50)
Varchar(20)
Varchar(20)
Date

Descripcin
Identificador del operador (PK)
Nombre del operador
Apellidos del operador
tipo del operador {tcnico, farmacutico, administrador}
Nombre de acceso del operador
Contrasea de acceso del operador
Direccin del operador
Poblacin del operador
Nmero de telfono del operador
Fecha de supresin Borrado lgico

Tabla 16 - Definicin tabla - Operador

4.4.

Diseo de interfaz de usuario

En 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 35 prototipo nueva venta

40

Aimen Ben Attahellah

PFC.NET

Ilustracin 36 prototipo recordatorio de ventas

Ilustracin 37 prototipo cliente

41

Aimen Ben Attahellah

PFC.NET

Ilustracin 38 prototipo proveedor

Ilustracin 39 prototipo articulo

42

Aimen Ben Attahellah

PFC.NET

5. Implementacin
En la implementacin de este proyecto, se ha utilizado el lenguaje C# .NET que es un
lenguaje de propsito general orientado a objetos creado por Microsoft para su
plataforma .NET. ste es un lenguaje de programacin orientado a la rpida y sencilla
creacin de aplicaciones de formularios Windows, aplicaciones Web y servicios Web
entre otros que funcionan sobre el Framework .NET y ofrece capacidades de diseo
completamente orientado a objetos, incorporando caractersticas como herencia,
sobrecarga de mtodos o manejo de excepciones estructurado. Asimismo, el lenguaje de
C# se ha optimizado, eliminando palabras clave obsoletas que se haban heredado y
mejorando 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 una
mejor interaccin con la informacin desde y hacia las bases de datos. ADO .NET
forma 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 dos
ramas principales, unas estn preparadas para trabajar con controladores OLE DB y

43

Aimen Ben Attahellah

PFC.NET

otras son especficas para trabajar con SQL Server, sta rama es la que se ha utilizado
en 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 proyecto


El 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 la
segunda la capa del negocio, y una tercera capa que est en forma de procedimientos
almacenados 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 de
los formularios.

Ilustracin 42- Implementacin - Men

44

Aimen Ben Attahellah

PFC.NET

De la misma forma y siguiendo el mismo principio, la capa


de negocio, llamada Services, respeta tambin la misma
distribucin de las principales funcionalidades del sistema.
Nota: Se ha hecho uso del proyecto TabStripControlLibrary
que es en realidad una librera que no est desarrollada en
este proyecto, sino que simplemente se hace referencia a ella
para disear el men y el submen. Con lo cual se usa como
un componente externo o una caja negra.

Ilustracin 43 Implementacin - Proyectos C#

5.2.

Ilustracin 44 Implementacin Capas

Algunos aspectos de implementacin

A continuacin se van a presentar algunos aspectos de implementacin usados en el


proyecto:

5.2.1. Auto complecin


En todos los formularios que constituyen una bsqueda, sea de clientes, proveedores o
artculos, se usa la auto complecin para guiar al usuario en su bsqueda. Esto tiene un
impacto ligeramente negativo en el rendimiento de la aplicacin pero el beneficio es
notorio, por eso se ha decidido su implantacin.
//Getting an article list from DB
listAllArticles = Program.getInstanceStockService().getAllDesignationArticle();
//Autocomplete
AutoCompleteStringCollection acsc = new AutoCompleteStringCollection();
//build data auto complete article
if (listAllArticles != null){
foreach (Article designation in listAllArticles){
acsc.Add(designation.designation);

45

Aimen Ben Attahellah

PFC.NET

}
sDesignationTB.AutoCompleteCustomSource = acsc;
}

5.2.2. Llamadas a procedimientos almacenados


El acceso a los datos de la base de datos, se hace gracias a los procedimientos
almacenados, stos estn llamados desde los servicios para consultar como para escribir
en la BBDD:
//Adding voucher into DB
decimal idVoucher = (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 afirmacin


Los mensajes que se muestran por pantalla, estn consolidados en el fichero Resources
de la aplicacin:
<data name="es_sale_ending_credit_top" xml:space="preserve">
<value>Venta no permitida, umbral de crdito alcanzado</value>
</data>
sError.Text = Resources.es_sale_ending_credit_top

5.2.4. Generacin de informes


La aplicacin ofrece al usuario generar el informe e imprimir el presupuesto de la venta
a 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 llamado
CRDataSet.xsd que contiene los datos que se van a imprimir, luego desde el formulario
46

Aimen Ben Attahellah

PFC.NET

SaleArticlePrintForm, se rellena dicho DataSet y se instancia en el informe


BudgetCrystalReport previamente creado y el que contiene el informe con el formato
de los datos a presentar en el documento:
CRDataSet crds = new CRDataSet();
//article numbers
int numberData = saleListDGV.Rows.Count;
string[] data;
for (int i = 0; i < numberData; i++)
{
data = new string[]{
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);
}
BudgetCrystalReport bcr = new BudgetCrystalReport();
//adding data source to crystal report
bcr.SetDataSource(crds);
crystalReportViewer1.ReportSource = bcr;

Crystal Report es una aplicacin muy potente, aunque tiene el inconveniente de


disminuir bastante el rendimiento de la aplicacin que se ve alterado, sobre todo, a la
hora de generar el primer informe.

5.1.

Algunos mdulos de la aplicacin

En este apartado presentamos algunos mdulos de la aplicacin seguidos de una


pequea explicacin de cmo operar, en cada mdulo:

47

Aimen Ben Attahellah

PFC.NET

5.1.1. Mdulo de administracin - Gestin de usuarios


Esta pantalla permite dar de alta, consultar, modificar y eliminar los usuarios del
sistema. Para registrar un nuevo usuario slo hay que introducir sus datos en el rea de
Datos del operador y luego pulsar el botn Aceptar
Para la modificacin, hay que introducir el apellido del operador previamente registrado
en el rea de bsqueda, esto permitir mostrar todos sus datos mientras se vayan
filtrando los usuarios y de forma sistemtica en el rea creacin y modificacin, luego
slo 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 de
usuarios.

Ilustracin 45 Pantalla de gestin administrativa

48

Aimen Ben Attahellah

PFC.NET

5.1.2. Mdulo de ventas Nueva venta


Probablemente, la pantalla ms utilizada por los tcnicos farmacuticas; permite aadir
artculos a la venta. Esta, puede ser annima o ligada a un cliente, sto permite luego
realizar crditos a los clientes previamente registrados en el sistema.
Para aadir un nuevo artculo, se tiene que introducir a mano en el rea de introduccin
de artculos, luego seleccionarlo de la lista desplegante y pulsar la tecla Intro,
finalmente introducir la cantidad deseada y pulsar de nuevo en Intro, esto permitir
aadir 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 la
venta, 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 botn
Prespuesto del submen, introducir los artculos como se explica arriba y luego pulsar
el botn Imprimir para generar el informe que se puede imprimir.

Ilustracin 46 - Pantalla de nueva venta

49

Aimen Ben Attahellah

PFC.NET

5.1.3. Mdulo de ventas Histrico de ventas


Para 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, se
pueden seleccionar las ventas de la lista lo que permitir actualizar la lista de artculos
asociados a la venta seleccionada. De la misma forma, actualizar el montante total de
la venta seleccionada en el rea de Recapitulativo.

Ilustracin 47 Pantalla de histrico de ventas

50

Aimen Ben Attahellah

PFC.NET

5.1.4. Mdulo de stock Modificar pedido


Esta 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 y
luego pulsar el botn de Buscar.
Obtenida la lista de albaranes con sus artculos correspondientes, se ofrecen varias
posibilidades:

Aadir un artculo al pedido introducindolo en el rea de modificacin


y luego pulsar el botn de Aadir artculo
Modificar un artculo del pedido haciendo clic sobre el botn de editar
artculo, luego en el rea de modificacin cambiar la fecha de caducidad
y/o cantidad, y finalmente pulsando el botn Modificar.
Borrar un artculo del pedido haciendo clic sobre el botn de borrar
artculo.
Borrar el pedido seleccionado

Ilustracin 48 Pantalla de modificar pedido

51

Aimen Ben Attahellah

PFC.NET

5.1.5. Mdulo de caja Caja registradora


Permite finalizar las ventas registradas previamente en las ltimas 48 horas, las
combinaciones de pago posibles son las siguientes:
Efectivo ntegro / Efectivo ntegro con descuento (%) / Efectivo y/o crdito para
clientes / Efectivo y/o haber / Efectivo y/o cheque
Cabe destacar que no se permite devolucin cuando se paga con un haber ya que ste no
representa un bien monetario, y que el crdito slo es posible para clientes previamente
registrados en el sistema y asociados a la venta corriente.
Todos los clientes tienen asignado un umbral de crdito que cuando se alcanza, no se
permite validar la venta a crdito.
Con lo cual para registrar una venta, hay que introducir en los campos descuento
aplicado, efectivo o crdito, haber, cheque los montantes deseados y luego pulsar
el botn Validar venta. O sino Cancelar para no registrar la venta.

Ilustracin 49 Pgina caja registradora

52

Aimen Ben Attahellah

PFC.NET

6. Conclusiones
El objetivo de este proyecto tcnico es poner en prctica algunos aspectos tericos que
se han adquirido a lo largo de la carrera de ingeniera informtica, sea en el aspecto de
gestin de proyectos en cuanto a gestin y anlisis de riegos, seguimiento y
planificacin de tareas como en mtodos, procesos y metodologas de la ingeniera del
software, 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 todo
de 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 construir
un sistema completo respetando tanto los objetivos iniciales definidos en los requisitos
funcionales y no funcionales como los hitos principales y en los plazos previstos
llegando 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, porque
habra que presentar, en un plazo muy corto de tiempo, un proyecto plagado de
funcionalidades 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 que
ha sido la gran protagonista a lo largo de proyecto, se consigui el fruto que
sembrbamos al principio convirtiendo este gran esfuerzo en una enriquecedora
experiencia.

7. Lneas de futuro
Las 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 el
uso del ratn.
Aadir alertas como por ejemplo: para los artculos caducados o a caducar
Estadsticas de ganancias netas
53

Aimen Ben Attahellah

PFC.NET

8. Bibliografa
Moving to Microsoft Visual Studio 2010
por 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 Net
Por Blanco Luis Miguel

Microsoft SQL Server 2008 Bible


Por Paul Nielsen, Mike White y Uttam Parui

54

También podría gustarte