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

UNIVERSIDAD NACIONAL

“TORIBIO RODRIGUEZ DE MENDOZA DE AMAZONAS”

FACULTAD DE INGENIERÍA DE SISTEMAS Y MECÁNICA ELECTRICA


Escuela Profesional de Ingeniería de Sistemas

TÍTULO DEL PROYECTO:

ANALISIS Y DISEÑO DE UN SISTEMA DE INFORMACION PARA LA GESTION


DE COMPRAS, VENTAS Y ALMACEN DE LA BOTICA “SALUD Y VIDA” DE
LA CIUDAD DE BAGUA, MAYO DE 2019

PRESENTADO POR:
HUMAN NAVARRO, Juan Carlos

ARCE SANCHEZ, Ciro Milton

VILLEGAS DIAPIS, Max Linder

LOPEZ DEL AGUILA, Roiber Antonio

ASESOR:

Ing. CALDERÓN PEREZ, Artemio

AMAZONAS – PERÚ 2019


INDICE

1.1 PLANTEAMIENTO DEL PROBLEMA ................................................................................ 7


1.2 FORMULACION DEL PROBLEMA.................................................................................... 7
1.2.1 FORMULACIÓN DEL PROBLEMA GENERAL............................................................ 7
1.2.2 FORMULACIÓN DE PROBLEMA ESPECIFICOS ........................................................ 7
1.3 OBJETIVOS ..................................................................................................................... 7
1.3.1 Objetivo General ................................................................................................... 7
1.3.2 Objetivos específicos ............................................................................................. 8
1.4 JUSTIFICACION............................................................................................................... 8
1.5 HIPOTESIS ...................................................................................................................... 8
1.6 METODOLOGÍA DE LA INVESTIGACIÓN ......................................................................... 8
1.6.1 Tipo de Investigación............................................................................................. 8
1.6.1.1 Población y Muestra.............................................................................................. 9
1.6.2 RESULTADOS ....................................................................................................... 11
2.1 Antecedentes .............................................................................................................. 16
2.1.1 Antecedente Internacional.................................................................................. 16
2.1.1.1 Título: “Logística de Inventario y su incidencia en las ventas de la Farmacia Cruz
Azul “Internacional” de la ciudad de Ambato” AMBATO -ECUADOR 2010 ....................... 16
2.1.1.2 Título: “DESRROLLO DE UN SISTEMA DE CONTROL DE INVENTARIO PARA LA
FARMACIA DE LA UNIDAD DE SALUD ZACAMIL” noviembre 2013 ..................................... 18
2.1.1.3 Título: “PROPUESTA DE UN SISTEMA INFORMÁTICO PARA EL ALMACENAJE Y
MANEJOSDE MEDICAMENTOS EN FARMACIAS CRUZ AZUL EN LA PARROQUIA FEBRES
CORDERO DE LA CIUDAD DE GUAYAQUIL”. ECUADOR 2008. ............................................. 21
2.1.1.4 Título: “SISTEMA INFORMÁTICO DE CONSULTA Y UBICACIÓN DE
MEDICAMENTOS EN FARMACIAS DE LA EMPRESA FARMAENLACE CIA LTDA, UTILIZANDO
MULTIPLATAFORMA MÓVIL”. ............................................................................................. 22
2.1.2 ANTECEDENTE NACIONAL ................................................................................... 24
2.1.2.1 TITULO: “DESARROLLO E IMPLEMENTACIÓN DE UN SISTEMA INFORMÁTICO
PARA EL CONTROL DE EXISTENCIAS DE BODEGA CENTRAL DE FARMACIAS”. .................... 24
2.2 Marco Teórico ............................................................................................................. 26
2.2.1 ANALISIS DE SISTEMA NECESIDAD DEL ANÁLISIS Y DISEÑO DE SISTEMAS ......... 26
2.2.2 EL CICLO DE VIDA DEL DESARROLLO DE SISTEMAS ............................................. 27
2.2.3 Desarrollo y documentación del software .......................................................... 30
2.2.4 Prueba y mantenimiento del sistema ................................................................. 30
2.3 Marco Conceptual ....................................................................................................... 31
2.3.1 SISTEMA INFORMATICOCONCEPTOS .................................................................. 31
2.3.2 PROCESO DE VENTAS CONCEPTO ....................................................................... 32
3.1 Antecedentes .............................................................................................................. 34
3.1.1 Descripción general de la empresa ..................................................................... 34
3.1.2 CREACION ............................................................................................................ 34
3.1.3 SU FINALIDAD ...................................................................................................... 34
3.1.4 ETAPAS DE TRABAJO ........................................................................................... 34
3.1.5 DEFINICIÓN DE LOS PROCESOS DE NEGOCIO ..................................................... 35
3.1.6 Organigrama ........................................................................................................ 35
3.2 Objetivos ..................................................................................................................... 35
3.2.1 Objetivo General ................................................................................................. 35
3.2.2 Ovejito Secundario .............................................................................................. 35
3.3 Alcance de proyecto .................................................................................................... 35
3.4 Modelado de caso de uso del negocio ........................................................................ 36
3.4.1 Casos de uso del negocio .................................................................................... 36
3.4.2 Objetivos del negocio .......................................................................................... 36
3.4.3 Actores del Negocio ............................................................................................ 36
3.4.4 Descripción de los actores del negocio ............................................................... 37
3.4.5 DIAGRAMA GENERAL DE CASO DE USO DEL NEGOCIO....................................... 38
3.4.6 Estructura de los casos de uso de los procesos .................................................. 39
3.4.7 Especificación de los Casos de Uso del Negocio ................................................. 41
3.5 Modelo de Análisis del Negocio .................................................................................. 41
3.5.1 Trabajadores del negocio. ................................................................................... 41
3.5.2 Descripción de los trabajadores del negocio ...................................................... 41
3.5.3 Entidades del negocio ......................................................................................... 42
3.5.4 Realización de los casos de uso del negocio ....................................................... 42
3.6 Diagrama de Actividades ............................................................................................. 42
3.7 Reglas de negocio ........................................................................................................ 42
4.1 Requerimientos Funcionales ....................................................................................... 45
4.2 Requerimientos no funcionales .................................................................................. 49
4.3 Modelado de caso de uso de sistema ......................................................................... 50
4.3.1 Lista de Actores ................................................................................................... 50
4.3.2 Diagrama de paquete .......................................................................................... 50
4.3.3 Diagrama de caso de uso por paquete................................................................ 51
4.3.4 Diagrama general de caso de uso ....................................................................... 53
4.3.4.1 Diagramas de Secuencias .................................................................................... 53
4.3.4.2 Diagramas de Estado ........................................................................................... 96
4.3.5 Diagrama de Clase del Sistema ......................................................................... 106
4.4 Matriz de móldelo de negocio y modelo de sistema. ............................................... 106
4.5 Especificaciones de caso de uso de sistema. ............................................................ 107
4.5.1 Especificaciones CUS Almacén .......................................................................... 107
4.5.2 Especificaciones CUS Compra ........................................................................... 112
4.5.3 Especificaciones CUS Caja ................................................................................. 121
4.5.4 Especificaciones CUS Ventas ............................................................................. 129
5.1 Propósito del Proyecto .............................................................................................. 143
5.2 Alcance del Desarrollo del Proyecto ......................................................................... 143
5.2.1 Diagrama de desarrollo de proyecto ................................................................. 144
5.3 Definiciones, Acrónimos y Abreviaturas ................................................................... 146
5.3.1 Definiciones ....................................................................................................... 146
5.3.2 Acrónimos ......................................................................................................... 147
5.3.3 Abreviaturas ...................................................................................................... 147
5.4 Modelo de Análisis .................................................................................................... 148
5.4.1 Arquitectura del Sistema ................................................................................... 148
5.4.2 Realización de Casos de Uso – Análisis ............................................................. 151
5.5 Modelo Conceptual ................................................................................................... 151
5.6 Modelo de Diseño ..................................................................................................... 157
5.6.1 Modelo Lógico ................................................................................................... 158
5.6.2 Modelo Físico de Datos ..................................................................................... 159
5.6.3 Vista de Capas y Subsistemas ............................................................................ 160
5.6.4 Realización Modelo de Diseño .......................................................................... 161
5.6.5 Vista de Despliegue ........................................................................................... 165
5.7 Vista Implementación ............................................................................................... 170
6.1 CONCLUSIONES ......................................................................................................... 226
6.2 Recomendaciones ..................................................................................................... 226
6.3 Bibliografía ................................................................................................................ 226
INTRODUCCIÓN
En la actualidad el avanza de la tecnología es cada día más notable y abarca todas las áreas a nivel
de mercado, es por eso que las mypes y las pymes se vieron con la necesidad de adaptarse al gran
cambio
Y sumarse a la era de la tecnología dejando atrás las metodologías de márquetin ambiguos q poco
resultan ser de gran ayuda.
En el caso de la botica “salud y vida” de la ciudad de Bagua en el cual el encargado de
guiar esta pequeña empresa (administrador) opta de manera acertada por destinar recursos
para el desarrollo de un sistema informático, el cual será de mucha ayuda, por que
facilitará el manejo de datos precisos l cual generará beneficios tanto competitivo como
económicos.

El objeto del presente Proyecto es de presentar un modelo de análisis de sistema de un


sistema informático basado en el requerimiento de la misma empresa así mismo
satisfaciendo sus necesidades y solucionando posibles problemas que puedan afectar a
futuro esta empresa.
Capítulo 1
GENERALIDADES
1.1 PLANTEAMIENTO DEL PROBLEMA

En la actualidad la botica “SALUD Y VIDA” de la ciudad de Bagua capital presenta


un problema a la hora de gestionar sus datos (registro de ventas y de clientes.) esto
afecta de forma negativa a la hora de gestionar recursos ya que los datos
mencionados no están debidamente identificados.
Se comprobó q la empresa “salud y vida” ha demostrado ciertas debilidades a la
hora de gestionar compra de sus productos ya q no lleva un control adecuado
(historial) ya que dichas anotaciones se hacen a mano en un pequeño cuaderno el
cual está a fácil acceso.

1.2 FORMULACION DEL PROBLEMA

1.2.1 FORMULACIÓN DEL PROBLEMA GENERAL


¿Cómo puedo analizar y diseñar el sistema información para la gestión compras,
ventas y almacén de la botica “SALUD Y VIDA” de la ciudad de Bagua-2019?

1.2.2 FORMULACIÓN DE PROBLEMA ESPECIFICOS


 ¿De qué manera se puede mejorar la mala administración de los registros
de actividades de la Empresa?
 ¿Cómo se puede tener un control de nuestra cartera de clientes?

1.3 OBJETIVOS

1.3.1 Objetivo General


Realizar el análisis y diseño de un sistema de información para la
gestión de compras ventas y almacén de la Botica SALUD Y VIDA de la
ciudad de Bagua-2019, con la finalidad de generar mejoras en procesos
de negocio de la empresa.
1.3.2 Objetivos específicos
 Realizar el análisis del sistema de información
 Realizar el diseño
 Evaluar el diseño del sistema.
 Tener el control adecuado de la información de la empresa.

1.4 JUSTIFICACION
 Con el fin de facilitar la gestión de datos y proceso, que se realizan en la
botica SALUD Y VIDA de la ciudad de Bagua, es de suma importante la
implementación de un sistema que permita esto al personal encargado de
la administración de dicha entidad.
 Se justifica por la necesidad que la parte administrativa de contar con un
sistema de compras, ventas y almacén para la Botica SALUD Y VIDA de
la ciudad de Bagua que proporcione información ordenada, de calidad y
precisa para su debida gestión.
 El proyecto que se llevara acabó tendrá una inversión tanto económica
como de tiempo, sin embargo, se espera que dicha inversión no afecte a
la economía de la empresa y sea ventajosa para lo cual se espera que tenga
una efectividad plena.

1.5 HIPOTESIS

La implementación del análisis y diseño del sistema de información, mejorara los


procesos de compras ventas y almacén de la Botica SALUD Y VIDA de la ciudad
de Bagua-2019.

1.6 METODOLOGÍA DE LA INVESTIGACIÓN


1.6.1 Tipo de Investigación
La presente investigación se clasificó como una investigación de
diseño no experimental, de tipo documental y descriptiva, por la
razón de que mediante investigaciones realizadas por documentos se
observó la realidad del negocio con la finalidad de ampliar y
profundizar el conocimiento de la misma, ya definida la realidad del
negocio se analizó la problemática y a partir de ese punto se realizó
un análisis de los resultados obtenidos.
 Investigación documental.
De acuerdo con Martínez, S. (29), en la investigación documental se
observa y reflexiona sistemáticamente sobre las realidades teóricas y
empíricas usando diferentes tipos de documentos donde se investiga,
interpreta y presenta información sobre un tema terminado,
utilizando para ello, instrumentos y/o métodos con la finalidad de
obtener resultados que pueden ser claves para el desarrollo de la
mejora.
Galán M. (30), anuncia que el objetivo es elaborar un marco teórico
conceptual para formar un cuerpo de ideas sobre el objeto de estudio
y revelar respuestas a determinadas interrogantes a través de la
aplicación de procedimientos documentales. Esta técnica permite la
recopilación de información para enunciar las teorías que sustentan
el estudio de los procesos.
 Investigación descriptiva.
Tamayo M. (31), describe que la investigación descriptiva, como
dice el nombre “describe” de modo sistemático las características de
una situación, población o el área de interés; este tipo de
investigación busca describir situaciones; básicamente no está
interesado en comprobar explicaciones ni en probar determinadas
hipótesis. Las descripciones se hacen con mucha frecuencia con
encuestas, ya que estas también pueden servir para probar hipótesis
específicas y poner a prueba explicaciones.
De acuerdo con Alba E. Fernández A. Manchado C. Tenorio S. (32),
el objetivo de la investigación descriptiva consiste en llegar a
conocer las situaciones, costumbres y actitudes predominantes a
través de la descripción exacta de las actividades, objetos, procesos y
personas. Su meta no se limita a la recolección de datos, sino a la
predicción e identificación de las relaciones que existen entre dos o
más variables.

1.6.1.1 Población y Muestra


1.6.1.1.1 Población.
La población de investigación está constituida por los trabajadores
de la Botica Salud Y Vida.
 Cajero
 Administrador
 Farmacéutico
 almacenero

1.6.1.1.2 Técnica
 En la presente investigación se utilizó la técnica de
encuesta, el instrumento que se empleó fue una encuesta
de tipo cerrado dicotómico que deduce presentar dos
alternativas para que el encuestado elija la respuesta más
conveniente.
 Encuesta:
Según Alelú M. y Cantín S. (33), encuesta es un
instrumento de la investigación de mercados que consiste
en obtener información de las personas encuestadas
mediante el uso de cuestionarios diseñados en forma previa
para la obtención de información específica.
Complementando esta información también está definido
como el método de recojo de información cuantitativa que
consiste en interrogar a los miembros de una muestra,
sobre la base de un cuestionario perfectamente
estructurado.

1.6.1.1.3 Informantes
Los informantes q fueron entrevistados son:
 El farmacéutico.
 El administrador.
1.6.2 RESULTADOS
Resultados por preguntas

1: ¿Un sistema de información ayudaría a mejorar los procesos existentes en la


botica?
Tabla 1: ¿Un sistema de
información
ayudaría a mejorar los procesos
existentes en la farmacia?
escala Fi %
si 4 100
no 0 0
total 4 100

Fuente: Origen del instrumento aplicado a los trabajadores de la botica vida y


salud, para responder a la pregunta ¿Un sistema de información ayudaría a mejorar
los procesos existentes en la botica?
En el presente gráfico se observa que el 100% de los encuestados que laboran en
la botica respondieron que un Sistema de Información Si ayudaría a mejorar los
procesos que existen en la botica, de lo contrario, el 0 % de los encuestados
declaran que un sistema de información No ayudaría a mejorar los procesos
existentes en la tienda.

2: ¿Requiere la farmacia vida y salud la implementación de un sistema de


información?
Tabla 2: ¿Requiere la farmacia vida y
salud la
implementación de un sistema de
información?
escala Fi %
si 4 100
no 0 0
total 4 100

Fuente: Origen del instrumento aplicado a los trabajadores de la botica vida y


salud, para responder a la pregunta ¿Requiere la farmacia vida y salud la
implementación de un sistema de información?
En el presente gráfico de la interrogante 2 se observa que el 100% de encuestados
que laboran en la botica respondieron que la botica Si requiere de la
implementación de un Sistema de Información, mientras que el 0% de los
encuestados respondieron que No la requieren de la implementación.
3: ¿Se presentan fallas en los procesos que existen en la botica?

Tabla 3: ¿Se presentan fallas en los


procesos
que existen en la
farmacia?
escala Fi %
si 4 100
no 0 0
total 4 100

Fuente: Origen del instrumento aplicado a los trabajadores de la botica vida y


salud, para responder a la pregunta ¿Se presentan fallas en los procesos que
existen en la farmacia?

En el presente gráfico de la interrogante 3 se observa que el 100% de encuestados


que laboran en la tienda respondieron que Si se presentan fallas en los procesos
que existen en la tienda, así como también el otro 0% de los encuestados
respondieron que No se presentan fallas en los procesos que existen en la tienda.

4: ¿Cree usted que sería beneficioso contar con un sistema que ayude a solucionar
las fallas existentes?
Tabla 4: ¿Cree usted que sería
beneficioso
contar con un sistema que
ayude a solucionar las fallas
existentes?
escala Fi %
si 4 100
no 0 0
total 4 100

Fuente: Origen del instrumento aplicado a los trabajadores de la botica vida y


salud, para responder a la pregunta ¿Cree usted que sería beneficioso contar con
un sistema que ayude a solucionar las fallas existentes?

En el presente gráfico de la interrogante 4 se observa que el 100% de los


encuestados, de acuerdo a las fallas que existen en los procesos existentes en la
tienda, se sienten convencidos totalmente que sería beneficioso contar con un
sistema que ayude a mejorar la gestión de los procesos existentes.
5: ¿Tiene conocimiento del correcto uso computadoras?

Tabla 5: ¿Tiene conocimiento del


correcto uso
computadoras?
escala Fi %
si 4 100
no 0 0
total 4 100

Fuente: Origen del instrumento aplicado a los trabajadores de la botica vida y


salud, para responder a la pregunta ¿Tiene conocimiento del correcto uso
computadoras?

En el presente gráfico de la interrogante 5 se observa que el 100% de los


encuestados, responden que, Si tienen conocimiento del correcto uso de
computadoras, por otro lado, el 0% de los encuestados, respondieron que No
tienen conocimiento de correcto uso de las computadoras

6: ¿Existe pérdida de tiempo al realizar reportes de los procesos existentes?

Tabla 6: ¿Existe pérdida de tiempo al


realizar
reportes de los procesos
existentes?
escala Fi %
si 4 100
no 0 0
total 4 100

Fuente: Origen del instrumento aplicado a los trabajadores de la botica vida y


salud, para responder a la pregunta ¿Existe pérdida de tiempo al realizar reportes
de los procesos existentes?

En el presente gráfico de la interrogante 6 se observa que el 100% de los


encuestados responden que Si existe pérdida de tiempo al realizar reportes de los
procesos existentes.
7: ¿Existe desactualizados en la administración de datos?

Tabla 7: ¿Existe desactualizados en la


administración de datos?
escala Fi %
si 4 100
no 0 0
total 4 100

Fuente: Origen del instrumento aplicado a los trabajadores de la botica vida y


salud, para responder a la pregunta ¿Existe desactualizados en la administración
de datos?

En el presente gráfico de la interrogante 7 se observa que el 100% de los


encuestados responden que Si existen datos desactualizados en la tienda.
Capítulo 2
MARCO DE REFERENCIA
2.1 Antecedentes

2.1.1 Antecedente Internacional

2.1.1.1 Título: “Logística de Inventario y su incidencia en las ventas de la


Farmacia Cruz Azul “Internacional” de la ciudad de Ambato”
AMBATO -ECUADOR 2010
Autor: Regina de Jesús Eugenio Barrionuevo

Resumen:

El trabajo de graduación cuyo tema es logística de inventario y su


incidencia en las ventas de la farmacia Cruz Azul “Internacional” de
la ciudad de Ambato con su propuesta un sistema de control de
inventario de los productos farmacéuticas.

En el primer capítulo contiene lo relacionado con el problema como:


Tema, Planteamiento, Contextualización, análisis crítico, prognosis,
formulación del problema, y lo referente a la delimitación del objeto
de investigación, la justificación mediante este proceso se analiza el
problema de la empresa, causas, efectos; razón que se realiza la
investigación para encontrar soluciones al problema planteado y como
han evolucionado las herramientas, principios, técnicas, métodos y
procedimientos para ayudar a los diferentes departamentos de la
empresa, para plantear los objetivos que se quiere alcanzar en la
presente investigación.

En el segundo capítulo se presenta una relación generalizada de los


antecedentes investigativos, la fundamentación en la que se basa, el
investigador en forma directa, así como también la hipótesis que se
requiere comprobar y las variables. En el tercer capítulo comprende
la descripción de la metodología empleada para el desarrollo de la
investigación tanto para recabar información como para el análisis de
los datos. Así mismo, se puede observar el tipo y modalidad de la
investigación, la población, la operacionalización de variable, plan de
recolección y procesamiento de la información. En el cuarto capítulo
en esta parte de la investigación se puede observar el análisis de

las encuestas realizadas a los clientes internos y externos e interpretar


los resultados, con sus respectivas tablas y gráficos de pastel, además
explica la verificación de la hipótesis planteada. Esta verificación se
realizó aplicando la fórmula del chi cuadrada.

En el quinto capítulo se presenta las conclusiones desde el punto de


vista del autor, de esta manera proceder a emitir las recomendaciones
con el propósito que la gerencia tome la decisión de mejorar la
logística de inventario a través de un sistema de control de inventario
para incrementar las ventas de la farmacia Cruz Azul “Internacional”.

En el sexto capítulo se presenta la propuesta, a través del método ABC


que ayudará a clasificar y determinar los productos o fármacos, que
sirva para mejorar la rotación de los medicamentos en la farmacia,
también se describe el modelo operativo, los recursos.

Conclusiones de la Investigación:

 La aplicación de una logística de inventario permitirá tener una


visión clara de las adquisiciones de fármacos, el Gerente está
obligado a dar cumplimiento a los requerimientos que son el
resultado de la logística aplicada.
 La logística de inventario en la Farmacia permitirá mejorar
comercialización de fármacos y su distribución en las perchas y
bodega, permitiendo una localización oportuna de medicamentos
y productos para la venta.
 La logística del control de inventarios, permitirá mejorar la
atención al público y por ende incrementar las ventas, también
mejorará la rotación de medicamentos y productos evitando la
caducidad.
 Aplicando la logística de inventarios los vendedores serán
responsables con el manejo de los inventarios, los mismos que
deberán utilizar o aplicar estrategias de ventas para satisfacer las
necesidades de los clientes.
 Las Farmacias están en constante competencia y día a día quieren
mejorar la atención al cliente; la implementación de logística de
inventarios mejorará el control de los stocks, logrando determinar
niveles mínimos, máximos y punto de reposición de
medicamentos y productos.

2.1.1.2 Título: “DESRROLLO DE UN SISTEMA DE CONTROL DE INVENTARIO


PARA LA FARMACIA DE LA UNIDAD DE SALUD ZACAMIL” noviembre
2013
Autor: JOSÉ MAURICIO LOUCEL RECTOR

Resumen:
Este documento es el resultado del final del trabajo titulado
"DESARROLLO DEL SISTEMA DE CONTROL DE INENTARIO
DE LA FARMACIA DE LA UNIDAD DE SALUD ZACAMIL", el
cual ha sido elaborado en apoyo a las actividades y necesidades que se
desarrollan a diarios en las farmacias de la unidad de Salud. El
documento ha sido elaborado en tres capítulos ordenados de la forma
siguiente:
Capitulo I. En este capítulo en primer lugar se describe el origen del
Ministerio de Salud Pública y Asistencia Social, tomando en cuenta
aspectos importantes de su historia, el propósito de su creación, el
surgimiento de las Unidad de Salud y las
actividades que se realizan; luego se desarrollan loa ant4cedente de la
unidad de salud zacamil, dando a conocer con ello la localización
precisa de la Unidad de
Salud, sus inicios, personal con el que cuenta, horarios de consultas, los
servicios y
programas que presta a la comunidad. También se narra su situación
problemática que se ha tomado como caso práctico especificando todos
y cada uno de los problemas que existen en l farmacia de la Unidad de
Salud, la justificación de la investigación que da conocer la razón de
tratar este tema de gran importancia para la sociedad salvadoreña;
Delimitaciones y alcances, los cuales darán pauta para conocer las
etapas y desarrollo del mismo; Objetivos de la investigación, Marco
Teórico, y Conceptual que se ha elaborado para dar a conocer la teoría
que se aplicara y ayudara en la elaboración del proyecto; y el Marco
Legal en el que se establecen las normas y reglamentos que existen
dentro de las Unidades de Salud, Normas de Valuación de Inventario
y Legalización de Software.
Capitulo II. En este capítulo se presentan los resultados de la
investigación de campo la cual se realizado de la Farmacia de la Unidad
de Salud Zacamil con el objetivo de entender cada uno de los elementos
involucrados en el problema descritos en el capítulo I.
En este se presentan los resultados de la investigación en gráficos de
barra para una mejor comprensión de la situación actual y la necesidad
de los involucradas, posteriormente se dé detalla e sistema actual
describiendo cada uno de los procesos que se realizan en la farmacia
del unidad de salud zacamil, especificando quienes lo
realizan, en qué momento se realizan, para que se realizan, porque se
realizan, en fin todo lo necesario para tener una idea clara amplia del
funcionamiento del sistema actual.
Capitulo III. En este capítulo se hace una propuesta de solución a la
problemática de la farmacia de la Unidad de Salud Zacamil, atreves del
desarrollo de un sistema prototipo de información que aportara las bases
necesarias y esenciales para que la farmacia de la Unidades de Salud
Zacamil maneja en forma ágil y eficiente la información sobre el
inventario general de la farmacia. Además, se presenta el registro de
despacho de medicamentos cuales sirven de base para los posteriores
pedidos al SIBASI.
Dicho sistema ha sido desarrollado utilizando el enfoque y las
herramientas del diseño orientado a objetos. También se presentan las
pantallas de entradas, salida del sistema, así como el menú principal y
el submenú, además se muestra un diccionario de datos donde están
descritos todas las entidades involucradas en el sistema de información,
las relaciones de las talabas del sistema y los reporte que serán de suma
importancia para llevar a cabo dicho control.
También se ha formulado un conjunto de recomendaciones de dicho
sistema, un conjunto de conclusiones, y finalmente se presenta un
glosario de términos que enriquecen más los temas tratados,
bibliografía que respaldo el contenido de esta investigación y anexos
que proporciones de talles sobre la documentación de la farmacia del
Unidad de Salud.

Conclusiones de la investigación:

Se ha comprobado que los problemas planteados en la situación


problemática en cuanto al manejo del inventario de los productos
farmacéuticos tienen gran incidencia, en la calidad de atención que se
brinda a los pacientes ya que estos repercuten en las diferentes gestiones
administrativas en la farmacia; por lo tanto, se considera de suma
importancia que se tomen las medidas pertinentes para emigrar de un
sistema manual a uno mecanizado.

 Se constató el interés por parte de los involucrados en mejorar los


procesos actuales, mediante el uso de computadoras que agilicen sus
tareas.
 Si se implementa el sistema se ahorrará recurso humano, el cual podrá
reorientarse a tareas de mayor beneficio social; debido a que los
procesos se volverán más rápidos y eficientes.
 El sistema ofrece obtener al día la información, generando así el control
del inventario general de medicamentos.
 El sistema de control de inventario de productos farmacéuticos cumple
con las necesidades expresadas por los doctores y enfermeras de la
Unidad de Salud.
 El sistema de control de inventario propuesto está desarrollado de
acuerdo a las necesidades de la Unidad de Salud.

2.1.1.3 Título: “PROPUESTA DE UN SISTEMA INFORMÁTICO PARA EL


ALMACENAJE Y MANEJOSDE MEDICAMENTOS EN FARMACIAS CRUZ
AZUL EN LA PARROQUIA FEBRES CORDERO DE LA CIUDAD DE
GUAYAQUIL”. ECUADOR 2008.
Autores: JHONNY XAVIER LÓPEZ JARA, OSCAR LUIS
BERMEO COSTA

Resumen:
Hoy en día todo establecimiento comercial cuenta con un sistema
informático que realiza diversas funciones administrativas como el de
llevar toda la información que se genere diariamente en dicho local
brindando a su vez calidad en sus servicios. La ejecución del presente
trabajo investigativo tiene como objetivo primordial automatizar y
sistematizar, mediante una aplicación informática, todo el proceso de
compra, venta y control de inventarios del Almacén de ventas “Auto
Repuestos Eléctricos Marcos” ubicado en la Parroquia Posorja, Barrio
20 de Diciembre, para tal objetivo la investigación se fundamentó en la
información general del establecimiento comercial, utilizando un
lenguaje de programación en software libre como tendencia mundial en
elaboración de sistemas para el sector público y privado. La
metodología utilizada en el diseño del sistema se desarrolló en la
estructura de red de cliente servidor, utilizando formularios HTML y
lenguaje de programación PHP y Apache, la realización del sistema
constituye un hecho de gran importancia y trascendencia tanto para los
usuarios del software desarrollado en función de las facilidades que
generará el uso del mismo, así como también para la autora del mismo
en función de la grandiosa experiencia, que enriqueció profundamente
su formación profesional académica estudiantil. La conclusión del
proyecto dió como resultado la elaboración de un sistema automatizado
para el almacén, en el sector comercial y en el rendimiento del
empresario, por este motivo se recomienda la aplicación del sistema a
nivel local, regional y nacional, además del establecimiento para el cual
fue diseñado originalmente, satisfaciendo de esta manera a los clientes
del negocio de ventas.

Conclusiones de la Investigación:

En base a la información recopilada mediante encuestas y la observación


directa se concluye que:

La implementación de la propuesta tecnológica, contribuye a transmitir y


compartir información, modernizándose de esta forma el proceso de
búsqueda de medicina que permita a la comunidad de la parroquia poder
encontrar las medicinas deseadas en las diferentes farmacias Cruz Azul
que se encuentran en el sector. De acuerdo con los resultados obtenidos
se considera necesario, viable y fact

el desarrollo del proyecto, porque contribuye a la sociedad, para buscar


información de forma rápida y eficiente en cualquier tipo de mercado.

El aplicativo sería de gran ayuda para la sociedad que se encuentra en la


parroquia ya que la mayoría de ellos cuentan con servicio a internet
además de contar con un teléfono inteligente o una laptop, el cual les
facilita la búsqueda de algún medicamento bajo el aplicativo Search
Medicine.

2.1.1.4 Título: “SISTEMA INFORMÁTICO DE CONSULTA Y UBICACIÓN DE


MEDICAMENTOS EN FARMACIAS DE LA EMPRESA FARMAENLACE CIA
LTDA, UTILIZANDO MULTIPLATAFORMA MÓVIL”.
Autores: WILLIAN VLADIMIR COLLAGUAZO ZAMBRANO
Resumen:
Farmaenlace Cía. Ltda., es una empresa farmacéutica que dirige en la
actualidad más de 300 farmacias a nivel nacional, la cual día a día lucha
por lograr llegar de mejor manera a sus clientes brindándoles un
servicio de calidad, además de las innumerables promociones que se
generan con el objetivo de satisfacer las necesidades de sus clientes.
Con el avance tecnológico y considerando las nuevas generaciones es
necesario mejorar nuestros servicios, por tal razón se analizaron ciertas
falencias de parte de la empresa para con el cliente, siendo uno de los
problemas más fundamentales la falta de información.
Con el crecimiento de la empresa es cada vez más complicado para
nuestros clientes ubicar la farmacia más cercana de nuestro enlace y
además que disponga de los medicamentos de prioridad para cada uno
de ellos, causando pérdida de tiempo y por consiguiente pérdida de
clientes y ventas para nuestra entidad, razón por la cual se resuelve
hacer uso de la tecnología moderna e implementar una aplicación móvil
para la búsqueda y ubicación de medicamentos en las farmacias,
disponible para cada uno de nuestros clientes.
El software tendrá como objetivo realizar la búsqueda y dar a conocer
la localización del medicamento, como también de las farmacias de
Farmaenlace Cita. Ltda., ubicadas a nivel nacional, aplicando una
tecnología que revolucionará el mercado de desarrollo de software
móvil.

Conclusiones de la Investigación:

Una vez cumplida con la implementación de esta aplicación móvil,


Farmaenlace Cia. Ltda., ha podido visualizar las ventajas obtenidas, ya
que nuestros clientes pueden acceder a información indispensable de
forma personalizada dando lugar a una mayor rentabilidad. La
implementación de una aplicación móvil para Farmaenlace Cia. Ltda.,
trae consigo mayores ventajas y oportunidades de llegar a sus clientes,
logrando manejar de mejor manera la información de productos en
farmacias y la ubicación de cada una de estas.
La Metodología RUP, es una herramienta indispensable para la
documentación de un proyecto de tesis, porque actúa como una guía
gracias a su estructura y organización proporcionada en la creación en
la documentación de un proyecto. El Framework Alloy siendo
multiplataforma facilita la creación de aplicativos móviles tanto para
Android como para IOS, este también se acopla fácilmente a módulos
ya generados para un desarrollo mucho más ágil. Google Map´s, nos
brinda muchos servicios de geolocalización geográfica a través de sus
propios Mapas, gracias a esto el usuario puede situar más fácilmente
una determinada ubicación. Es una gran experiencia el desarrollar una
aplicación móvil, porque facilita la información a los usuarios y gracias
a su portabilidad se puede acceder desde cualquier lugar a través de su
smartphone.

2.1.2 ANTECEDENTE NACIONAL

2.1.2.1 TITULO: “DESARROLLO E IMPLEMENTACIÓN DE UN SISTEMA


INFORMÁTICO PARA EL CONTROL DE EXISTENCIAS DE BODEGA
CENTRAL DE FARMACIAS”.
Autor: NELSON DANI VINUEZA AIZAGA
Resumen:

Esta investigación está centrada en el desarrollo e implementación


de un sistema informático con entorno web con la finalidad de
mejorar el proceso de los respectivos controles de registro de
entrada, salida y búsqueda de productos, así como también la
atención a las sucursales para la provisión de mercadería y
mantener el stock apropiado de los productos.

Actualmente este proceso realiza el grupo de farmacias de forma


manual, registrando los ingresos en hoja de cálculo y los egresos
de igual manera, por ese motivo el administrador asume diferentes
tipos de riesgos en el transcurso de su actividad como son la
caducidad y obsolescencia de los productos, una previsión
incorrecta de demanda de determinados productos que conlleva a
la perdida de liquidez financiera ocasionando falencias en la toma
de decisiones por la lentitud y errores al momento de realizar
reportes manuales.

Todos estos riesgos identificados afectan al negocio, cuando se


realiza un control manual de todos los procesos involucrados en el
control de inventarios que maneja la bodega central de un grupo
de farmacias.

Conclusiones de la Investigación:

La implantación del Sistema de Control de existencias proporciona una


herramienta simplificada para el control, distribución y ubicación de
productos que ayudan a la administración a obtener información en tiempo
real de todas las sucursales, que será útil para el aprovisionamiento de
productos sin excesos ni faltantes.

 El control de existencias y caducidad de una manera


automatizada a través de un sistema integrado de información
es de gran ayuda para mantener un stock organizado que
permita minimizar los riesgos de caducidad, obsolescencia de
los productos.
 Llevar un control adecuado de existencias y caducidad permite
mejorar la toma de decisiones al contar con reportes en tiempo
real de la bodega central y todas las sucursales que forman
parte del grupo de farmacias, de esta manera se optimiza la
gestión de compras.
2.2 Marco Teórico
El desarrollo de un sistema informático es de suma importancia en una
empresa ya que este ayuda a gestionar la información que puede ser de
vital importancia para la toma de decisiones futuras.

2.2.1 ANALISIS DE SISTEMA NECESIDAD DEL ANÁLISIS Y DISEÑO DE


SISTEMAS

según KENDALL KENNETH E (2011) análisis y diseño de sistemas que


los analistas de sistemas llevan a cabo busca comprender qué necesitan los
humanos para analizar la entrada o el flujo de datos de manera sistemática,
procesar o transformar los datos, almacenarlos y producir información en el
contexto de una organización específica. Mediante un análisis detallado, los
analistas buscan identificar y resolver los problemas correctos. Además, el
análisis y diseño de sistemas se utiliza para analizar, diseñar e implementar
las mejoras en el apoyo para los usuarios y las funciones de negocios que se
puedan llevar a cabo mediante el uso de sistemas de información
computarizados. Si un sistema se instala sin una planificación apropiada, a
menudo los usuarios quedan muy insatisfechos y dejan de usar el sistema. El
análisis y diseño añade estructura a los sistemas, y constituye una actividad
costosa que de otra manera se realizaría al azar. Se puede considerar como
una serie de procesos que se llevan a cabo en forma sistemática para mejorar
una empresa mediante el uso de sistemas de información computarizados. El
análisis y diseño de sistemas implica trabajar con los usuarios actuales y
eventuales de los sistemas de información para ofrecerles soporte en su
empleo de las tecnologías en un entorno organizacional. La participación del
usuario en el proyecto de sistemas es imprescindible para el desarrollo
exitoso de los sistemas de información computarizados. Los analistas de
sistemas, cuyos roles en la organización analizaremos a continuación, son el
otro componente esencial para desarrollar sistemas de información útiles.
Los usuarios avanzan al primer plano a medida que los equipos de desarrollo
de software se internacionalizan más en cuanto a su composición. Esto
significa que hay más énfasis en trabajar con los usuarios de software; en
realizar un análisis de su empresa, sus problemas y objetivos; y en comunicar
el análisis y diseño del sistema planificado a todos los involucrados. Las
nuevas tecnologías también impulsan la necesidad del análisis de sistemas.
Ajax (JavaScript asíncrono y XML) no es un nuevo lenguaje de
programación, sino una técnica que utiliza los lenguajes existentes para
hacer que las páginas Web funcionen en forma más parecida a un programa
de aplicación de escritorio tradicional. Los analistas se enfrentarán a la tarea
de crear y rediseñar páginas Web que utilicen tecnologías Ajax. Los nuevos
lenguajes de programación, como el marco de trabajo Web de código fuente
abierto conocido como Ruby on Rails, una combinación entre lenguaje de
programación y generador de código para crear aplicaciones Web, requerirá
de más análisis

El analista de sistemas como agente de cambio

El rol más extenso y responsable del analista de sistemas es el de agente de


cambio, ya sea interno o externo, para la empresa. Como analista, usted actúa
como un agente de cambio cada vez que realiza alguna de las actividades en
el ciclo de vida del desarrollo de sistemas (que veremos en la siguiente
sección) y está presente e interactúa con los usuarios y la empresa durante
un periodo extendido (de dos semanas hasta más de un año). Podemos definir
a un agente de cambio como una persona que actúa como catalizador para el
cambio, desarrolla un plan de cambio y trabaja con otros para facilitarlo. Su
presencia en la empresa genera un cambio; como analista de sistemas debe
reconocer este hecho y utilizarlo como punto inicial para su análisis. Debe
interactuar con los usuarios y la administración (si no son lo mismo) desde
las primeras etapas del inicio de su proyecto, pues sin su ayuda usted no
podrá comprender qué necesitan para apoyar su trabajo en la organización,
y no se podrá llevar a cabo el verdadero cambio.

2.2.2 EL CICLO DE VIDA DEL DESARROLLO DE SISTEMAS


En este capítulo hemos hecho referencia a la metodología sistemática con la
que los analistas llevan a cabo el análisis y diseño de los sistemas de
información. Gran parte de ello se expresa en lo que conocemos como el
ciclo de vida del desarrollo de sistemas (SDLC). El SDLC es una
metodología en fases para el análisis y diseño, de acuerdo con la cual los
sistemas se desarrollan mejor al utilizar un ciclo específico de actividades
del analista y los usuarios. Los analistas no se han puesto de acuerdo sobre
la cantidad de fases que hay en el SDLC, pero por lo general alaban su
metodología organizada. En este libro vamos a dividir el ciclo en siete fases,
como se muestra en la figura 1.3. Aunque cada fase se presenta de manera
discreta, en realidad nunca se puede llevar a cabo como un paso separado,
sino que varias actividades pueden ocurrir al mismo tiempo, e incluso se
pueden repetir.

Análisis de las necesidades del sistema

La siguiente fase que debe llevar a cabo el analista de sistemas involucra el


análisis de las necesidades del sistema. Aquí también hay herramientas y
técnicas especiales que ayudan al analista a realizar las determinaciones de
los requerimientos. Las herramientas como los diagramas de flujo de datos
(DFD) para graficar la entrada, los procesos y la salida de las funciones de
la empresa, o los diagramas de actividad o de secuencia para mostrar la
secuencia de los eventos, sirven para ilustrar a los sistemas de una manera
estructurada y gráfica. A partir de los diagramas de flujo de datos, de
secuencia u otros tipos de diagramas se debe desarrollar un diccionario de
datos para enlistar todos los elementos de datos utilizados en el sistema, así
como sus especificaciones. Durante esta fase, el analista de sistemas también
analiza las decisiones estructuradas llevadas a cabo. Las decisiones
estructuradas son aquellas para las que se pueden determinar condiciones,
alternativas de condición, acciones y reglas de acción. Hay tres métodos
principales para el análisis de las decisiones estructuradas: inglés/ español
estructurado, tablas de decisión y árboles de decisión. En este punto del
SDLC, el analista de sistemas prepara una propuesta de sistemas en la que
sintetiza todo lo que ha averiguado sobre los usuarios, la capacidad de uso y
la utilidad de los sistemas actuales; incluye un análisis de costo-beneficio de
las alternativas y, si se requiere, hace recomendaciones. Si la administración
acepta una de las recomendaciones, el análisis continúa por esa vía. Cada
problema de sistemas es único, por lo que nunca hay sólo una solución
correcta.
Diseño del sistema recomendado

En la fase de diseño del SDLC, el analista de sistemas utiliza la información


recolectada antes para realizar el diseño lógico del sistema de información.
El analista diseña los procedimientos para ayudar a que los usuarios
introduzcan los datos con precisión, de manera que los datos que entren al
sistema de información sean los correctos. Además, el analista debe ayudar
a que los usuarios completen la entrada de datos efectiva al sistema de
información mediante el uso de las técnicas del buen diseño de formularios
y páginas Web o pantallas. Parte del diseño lógico del sistema de
información es idear la HCI. La interfaz conecta al usuario con el sistema,
por lo que es extremadamente importante. La interfaz del usuario se diseña
con ayuda de los usuarios para asegurar que el sistema sea perceptible,
legible y seguro, así como atractivo y divertido de usar. Ejemplos de
interfaces de usuario físicas son el teclado (para escribir las preguntas y
respuestas), los menús en pantalla (para obtener los comandos de los
usuarios) y varios tipos de interfaces gráficas de usuario (GUI) basadas en
un ratón o una pantalla táctil. La fase de diseño también incluye el diseño de
bases de datos que almacenarán gran parte de los datos necesarios para los
encargados de tomar las decisiones en la organización. Los usuarios se
benefician de una base de datos bien organizada que sea lógica para ellos y
se corresponda con la forma en que ven su trabajo. En esta fase, el analista
también trabaja con los usuarios para diseñar una salida (ya sea en pantalla
o impresa) que cumpla con sus necesidades de información. Por último, el
analista debe diseñar controles y procedimientos de respaldo para proteger
el sistema y los datos, y para producir paquetes de especificación de
programas para los programadores. Cada paquete debe contener los diseños
de las entradas y las salidas, las especificaciones de los archivos y los detalles
sobre el procesamiento; también puede incluir árboles o tablas de decisión,
UML o diagramas de flujo de datos, junto con los nombres y las funciones
de cualquier código previamente escrito dentro de la empresa o que utilice
código u otras bibliotecas de clases.
2.2.3 Desarrollo y documentación del software
En la quinta fase del SDLC, el analista trabaja con los programadores para
desarrollar el software original requerido. Durante ella, el analista desarrolla
junto con los usuarios una documentación efectiva para el software,
incluyendo manuales de procedimientos, ayuda en línea, sitios Web con
preguntas frecuentes (FAQ) y archivos Léame (Read Me) para incluir con el
nuevo software. Como los usuarios están involucrados desde el principio, la
fase de documentación debe lidiar con las preguntas que hicieron y
resolvieron junto con el analista. La documentación indica a los usuarios
cómo deben usar el software y qué deben hacer en caso de que ocurran
problemas. Los programadores desempeñan un rol clave en esta fase, ya que
diseñan, codifican y eliminan los errores sintácticos de los programas de
computadora. Para asegurar la calidad, un programador puede llevar a cabo
un recorrido por el diseño o por el código para explicar las porciones
complejas del programa a un equipo formado por otros programadores.

2.2.4 Prueba y mantenimiento del sistema


Antes de utilizar el sistema de información, se debe probar. Es mucho menos
costoso detectar los problemas antes de entregar el sistema a los usuarios.
Una parte del procedimiento de prueba es llevado a cabo por los
programadores solos; la otra la realizan junto con los analistas de sistemas.
Primero se completa una serie de pruebas para señalar los problemas con
datos de muestra y después se utilizan datos reales del sistema actual. A
menudo, los planes de prueba se crean en las primeras etapas del SDLC y se
refinan a medida que el proyecto progresa. El mantenimiento del sistema y
la documentación de este mantenimiento empieza en esta fase y se lleva a
cabo de manera rutinaria durante toda la vida del sistema de información.
Gran parte del trabajo rutinario del programador consiste en el
mantenimiento, por lo cual las empresas invierten una gran cantidad de
dinero en este proceso. Ciertos procedimientos de mantenimiento, como las
actualizaciones de los programas, se pueden llevar a cabo a través del sitio
Web del distribuidor. Muchos de los procedimientos sistemáticos que
emplea el analista durante el SDLC pueden ayudar a asegurar que el
mantenimiento siempre se mantenga en el nivel mínimo necesario.

Implementación y evaluación del sistema En esta última fase del desarrollo


de sistemas, el analista ayuda a implementar el sistema de información. En
esta fase hay que capacitar a los usuarios para operar el sistema. Los
distribuidores se encargan de una parte de la capacitación, pero la
supervisión de la capacitación es responsabilidad del analista de sistemas.
Además, el analista necesita planear una conversión sin problemas del
sistema antiguo al nuevo. Este proceso incluye convertir los archivos de los
formatos anteriores a los nuevos, o crear una base de datos, instalar equipo
y llevar el nuevo sistema a producción.

2.3 Marco Conceptual

2.3.1 SISTEMA INFORMATICOCONCEPTOS


Según, KENDALL KENNETH E (2011), Un sistema informático como
todo, es el conjunto de partes interrelacionadas, hardware, software y de
recurso humano (humanware) que permite almacenar y procesar
información. El hardware incluye computadoras o cualquier tipo de
dispositivo electrónico inteligente, que consisten en procesadores, memoria,
sistemas de almacenamiento externo, etc. El software incluye al sistema
operativo, firmware y aplicaciones, siendo especialmente importante los
sistemas de gestión de bases de datos. Por último, el soporte humano incluye
al personal técnico que crean y mantienen el sistema (analistas,
programadores, operarios, etc.) y a los usuarios que lo utilizan.

Según el grupo de tesis (2012) ha coincidido con el autor arriba mencionado


de un sistema informático para almacenar y procesar información que va
cumplir con todas las necesidades que va requerir la tienda Señor de Ayabaca
para mantener una forma rápida y segura manteniendo confiabilidad.
2.3.2 PROCESO DE VENTAS CONCEPTO
Según, FERNÁNDEZ BALAGUER Zaldívar (2008). El término ventas
tiene múltiples definiciones, dependiendo del contexto en el que se maneje.
Una definición general es cambio de productos y servicios por dinero. Desde
el punto de vista legal, se trata de la transferencia del derecho de posesión de
un bien, a cambio de dinero. Desde el punto de vista contable y financiero,
la venta es el monto total cobrado por productos o servicios prestados.

En cualquier caso, las ventas son el corazón de cualquier negocio, es la


actividad fundamental de cualquier aventura comercial. Se trata de reunir a
compradores y vendedores, y el trabajo de toda la organización es hacer lo
necesario para que esta reunión sea exitosa.

Según el grupo de tesis (2012) ha coincidido con el autor arriba mencionado


de un proceso de ventas que es un procedimiento que resuelve adquirir un
producto a manera de un cambio del mismo valor utilizando el dinero.
Capítulo 3
MODELADO DEL NEGOCIO
3.1 Antecedentes
Para plantear un sistema de información para la gestión de compras ventas y
almacén, antes debemos de entender cómo funciona el proceso del negocio que se
desea automatizar, para tener la certeza que nuestro sistema cumpla con su
finalidad, con el fin de lograr esto, se realizará un análisis detallado del negocio
en sí.

3.1.1 Descripción general de la empresa


La empresa “VIDA SALUD “fue creada principalmente basada en compra,
almacenaje, venta minorista de producto de farmacia, medicinas, artículos
de tocador. Ya que se trabaja un proveedor bajo las normas requeridas del
MINSA (Ministerio de salud).

3.1.2 CREACION
El fenómeno administrativo de la botica se da en toda la localidad de la
ciudad de BAGUA CHICA deseando de esta manera poder abarcar la gran
parte del mercado de la localidad para abastecer con sus productos a la
población usuaria, y por la gran demanda que existe, es por esta razón que
opto por establecer su local en un área estratégica de la ciudad.

3.1.3 SU FINALIDAD
El tanto la botica se conformó analizando todas las necesidades específicas
que podía presentarse en la ciudad de BAGUA CAPITAL ya sea en cuanto
a abastecer de medicamentos con precios no tan altos que estuvieran al
alcance de la mayoría de la población usuaria y es por esta razón que se
brinda un servicio de calidad y se está tratando de mejorar cada día.

3.1.4 ETAPAS DE TRABAJO


Una vez constituida la empresa de la botica “VIDA Y SALUD” se
distinguieron muchas etapas de trabajo, atención al público o a la clientela
también se vieron las fases y elementos que podría conformar una buena
administración del negocio que ayudaría a crecer y abarcar la gran parte de
las ventas en Esta localidad y por qué no crear una nueva sucursal en otro
punto de la localidad.
3.1.5 DEFINICIÓN DE LOS PROCESOS DE NEGOCIO
El inicio del proceso de negocio de una botica comienza con la compra o
adquisición de fármacos entre otros (pañales, cepillos, papel higiénico,
preservativos, etc.) brindar un servicio de atención al cliente consumidor de
productos farmacéuticos, también para cubrir la demanda en la localidad de
BAGUA CAPITAL ya que en nuestro medio no contamos con farmacias
totalmente implementadas con todos los productos que la población usuaria
requiere es por esto que nuestra farmacia se verá en la necesidad de crear
una nueva sucursal a futuro para abastecer la necesidad de la población y
brindar servicio de atención de primera calidad.

3.1.6 Organigrama

ADMINISTRACION

FARMACEUTICO JEFE DE CAJA

VENTAS PAGOS

DISPENSACION

3.2 Objetivos
3.2.1 Objetivo General
3.2.2 Ovejito Secundario

3.3 Alcance de proyecto


El objetivo de proyecto es la creación de un software de administración de una
farmacia que brindara a sus integrantes de la empresa con el objetivo de mejorar
la gestión interna de las farmacias.
El sistema permitirá al usuario acceder a servicios de manejo de stock, manejo de
sus clientes, manejo de ventas, compras de medicamentos como también manejo
de la facturación.

El manejo de stock permitirá al usuario ingresar nuevos productos, y modificar


cantidades y precios. Por cada venta que se hace debe existir un impacto
correspondiente en las cantidades del producto.

También deberá mantener un registro de los clientes de la farmacia, así como de


los pedidos de productos a sus proveedores. Los usuarios podrán tener diferentes
permisos sobre determinadas operaciones. Además, se deberá poder tener un
registro de estas operaciones para tener un control de los cambios realizados.

3.4 Modelado de caso de uso del negocio

3.4.1 Casos de uso del negocio


3.4.2 Objetivos del negocio
Objetivo general
 Satisfacer en gran parte la demanda de medicamentos para los
pobladores de la ciudad de Bagua.

Objetivos Específicos
 Ofrecer medicamentos a bajo costo y de calidad para el
beneficio de la población mediante su céntrico local de ventas.
 Brindar todos los medicamentos para los problemas de salud
más comunes como por ejemplo los resfríos, dolores, etc.

3.4.3 Actores del Negocio


 Administrador
 Cliente
 Químico Farmacéutico
 Almacenero
 Cajero
3.4.4 Descripción de los actores del negocio
Actores Descripción
Persona natural o jurídica
que realiza la compra de
productos farmacéuticos

Personal responsable de
atender el requerimiento del
cliente, realizar el cobro y la
entrega de su comprobante
de compra
Es el dueño de la empresa
en estudio encargado de la
administración general de la
misma a través de proceso
de planeamiento y control a
fin de lograr los objetivos
establecidos.
Personal encargado de
supervisar los procesos de
almacenamiento y
despacho de los productos,
revisando y organizando los
mismos.

Personal encargado de
realizar el cobro de los
pedidos atendidos por los
técnicos en farmacia,
implementados para
agilizar la atención de los
clientes.
3.4.5 DIAGRAMA GENERAL DE CASO DE USO DEL NEGOCIO
Se presenta en 4 procesos fundamentales en los cuales empresa se
desempeña.

PROCESOS DESCRIPCIÓN

Es el proceso por el cual la


empresa adquiere sus productos e
insumos requeridos

es el proceso por el cual se


almacena los productos comprados
y donde también se dispensa para
las ventas
es el proceso donde se realiza los
pagos de los productos adquiridos
en esta empresa

este proceso por el cual la empresa


brinda sus productos de acuerdo a
la necesidad de los cliente
mediante un pago requerido

3.4.6 Estructura de los casos de uso de los procesos

 Proceso de compras

 Proceso de ventas
 Proceso caja
 Proceso Almacén

3.4.7 Especificación de los Casos de Uso del Negocio

3.5 Modelo de Análisis del Negocio


3.5.1 Trabajadores del negocio.
La Botica “SALUD Y VIDA”, actualmente cuenta con 3
(almacenero, cajero y Químico Farmacéutico) empleados, y el dueño como
administrador

3.5.2 Descripción de los trabajadores del negocio

 Farmacéutico: se encarga de la recepción y atención de los clientes


despeja dudas atiende consultas y también suministra los medicamentos
prescritos.
 Dueño: Se encarga de hacer compras con el proveedor y contratos y en
si cumple con las diferentes tareas en la que está en su negocio.
3.5.3 Entidades del negocio

 Empleado (Almacenero/ Cajero/ Farmacéutico)


 Dueño/ Administrador
 Compras
 Ventas
 Almacén
 Cliente

3.5.4 Realización de los casos de uso del negocio

3.6 Diagrama de Actividades

3.7 Reglas de negocio


Una botica necesita un sistema informático, por ello necesita el diseño de
una base de datos, esta empresa tiene las siguientes reglas:

 se necesita llevar el control de los medicamentos, de estos se tiene un


nombre, código, descripción, fecha de vencimiento.
 los fármacos se clasifican por acción y laboratorios, es decir, cada
fármaco corresponde a un laboratorio y tiene alguna acción.
 laboratorios tienen nombre y dirección. De las acciones se tiene en
cuenta su nombre y descripción
 en las farmacias se vende los medicamentos a los clientes, estas ventas
deben ser registradas, se debe registrar que medicamento se vende el
cliente que compra, la fecha al que se vende el medicamento, la
cantidad y el precio al que se vende.
 los clientes deberán contar con una receta en la que estará descrita el
nombre del doctor, fecha, y medicamento.
 la venta tendrá que contar con comprobantes de pago (boleta o factura)
que será emitido por el empleado cajero.
 del total de empleados algunos contaran con un usuario para acceder
al sistema (administrador, farmacéutico, cajero), de ser en caso de no
contar con un usuario (por ocasiones de emergencia) se podrá acceder
al sistema con un alias, pero bajo restricciones.
 el medicamento será clasificado en medicamento comercial y
medicamento genérico con relaciones identificadas.
 el almacén contara con un inventario stock mínimo, stock máximo y
un stock total, el stock mínimo servirá de guía para que el
administrador pueda realizar la compra de productos de tocador o
medicamentos.
 el administrador será el encargado de realizar las compras de la botica
 el cliente tendrá disposición a varios créditos sujeto a evaluación
 de los clientes (nombre y dirección) también se debe tener en cuenta
el vendedor que hace una venta y se debe considerar su nombre,
dirección y teléfono.
 un empleado podrá trabajar en diferentes sucursales según sea el caso.
Capítulo 4
REQUERIMIENTOS
4.1 Requerimientos Funcionales

N° Función El sistema debe responsable

el sistema debe
permitir el acceso
al sistema
RF-01 Ingresar al sistema Administrador/Farmacéutico
previamente
registrados y
validados
Registrar datos del
usuario como:
nombres y
apellidos, teléfono,
RF-02 Registrar Usuario Coordinador del sistema
correo electrónico,
sucursal, usuario y
clave para acceder
al sistema.
el sistema debe ser
capaz de registra
los clientes
RF-03 Registrar Cliente indicados de ellos Farmacéutico
se debe saber sus
nombres, dirección,
teléfono
el sistema debe de
responder a la
RF-04 Modificar Cliente Farmacéutico
modificación de
datos
el sistema debe dar
RF-05 eliminar cliente Farmacéutico
privilegios para
eliminar el registro
de clientes
el sistema será
RF-06 Registrar Venta capaz de registrar Farmacéutico
las ventas del día
el sistema será
capaz de modificar
RF-07 Modificar Venta una venta Farmacéutico
previamente
registrada
el sistema anulara
el registro de
RF-08 Anular Venta farmacéutico
ventas previa
validación
mediante código el
sistema mostrara
RF-09 Buscar Producto características farmacéutico
cantidad y precio
del producto
mediante numero
de DNI el sistema
RF-10 Buscar cliente Mostrara Farmacéutico
información del
cliente
el sistema será
capaz de guardar
información de las
RF-11 Registrar compra Administrador/Almacenero
compras que se
efectúan para el
stock
el sistema tendrá la
RF-12 Modificar Compra opción de Administrador /Almacenero
modificar los
registros de
compras
previamente
hechos
el sistema debe ser
capaz de Anular los
RF-13 Anular Compra registros de compra Administrador
solo por privilegios
del administrador
el sistema Genera
un script detallado
de las compras
RF-14 Consultar Compra Administrador/Almacenero
hechas en una
fecha determinada
o en su totalidad
El sistema será
capaz de registrar
RF-15 Registrar Pedido los reportes de Almacenero
pedidos de
productos
el sistema será
capaz de Modificar
los datos del
RF-16 Modificar Pedido registro de pedidos Almacenero
previa
confirmación de su
código.
el sistema dará
privilegios de
anular un pedido
RF-17 Anular Pedido Almacenero
mediante
validación de
código de pedido
El sistema validara
el pago mediante
RF-18 Registrar pago un código de pago Cajero
previamente
registrado
el sistema validará
usuario
privilegiado que
RF-19 Anular Pago podrá anular un Administrador/Cajero
pago registrado
mediante código de
pago
El sistema mostrara
información
mediante un
Generar Reportes reporte de las Administrador /
RF-20
de Ventas ventas hechas ya Farmacéutico
sea diarias,
semanal o mensual
según sea el caso
el sistema mostrara
información sobre
Generar reportes todas las compras
RF-21 Administrador Almacenero
de compra adquiridas ya sea
por fecha por
monto o en total
el sistema mostrara
información sobre
generar reporte de las ganancias de las Administrador
RF-22
Pago ventas ya sea /Farmacéutico
diarias semanal o
mensual
el sistema Mostrará
Información de
todo su cliente esto
Generar Reporté Administrador /
RF-23 se dará mediante
de Clientes farmacéutico
apellidos y
nombres o por
monto consumido

4.2 Requerimientos no funcionales


N° Función el sistema debe Responsable
el sistema debe
muestra mensajes
Mostrar mensajes de errores ya sea por
Coordinador de
RNF -01 para advertir datos duplicados,
sistema
errores datos no validados o
en el mismo registro
de datos
el sistema debe de
contar con una IU
Interfaz gráfica Coordinador de
RNF-02 sencilla con menú
Sencilla sistema
despegables y de
fácil acceso
el sistema debe
Mostrar el logo de contar con la marca Coordinador de
RNF-03
la empresa de la empresa en sistema
todas sus interfaces
Garantizar la
seguridad al
tener la seguridad momento de
coordinador de
RNF-04 de ser un sistema ingresar, se requiere
sistema
eficiente y segura identificación del
usuario a través de
un usuario y
contraseña para
poder asignarles
roles de acuerdo a la
labor que
desempeña en la
empresa.

4.3 Modelado de caso de uso de sistema


4.3.1 Lista de Actores
Los actores para los casos de uso son:

 Administrador.
 Químico farmacéutico.
 Almacenero.
 Cajero.

4.3.2 Diagrama de paquete


4.3.3 Diagrama de caso de uso por paquete
Proceso almacén

Proceso Ventas
Proceso compras

Proceso caja
4.3.4 Diagrama general de caso de uso
4.3.4.1 Diagramas de Secuencias

4.3.4.1.1 Diagrama de secuencia Proceso Caja


 DS Anular Pago

 DS Generar Reporte de caja


 DS Generar Boleta

 DS Generar Factura
 DS Registrar Pago

 DS Modificar pago
4.3.4.1.2 Diagrama de Secuencia Proceso almacén
 DS Actualizar Stock

 DS Consultar Producto
 DS Eliminar Producto

 DS Listar Productos
 DS Modificar Producto

 DS Registrar Producto
4.3.4.1.3 Diagrama de Secuencia Procesos compras
 DS Anular Compras

 DS Anular pedido
 DS Generar Reporte de compra

 DS Registrar Compras
 DS Modificar Compra

 DS Modificar Pedido
 DS Registrar Pedido
4.3.4.1.4 Diagrama de secuencia del Proceso ventas

 DS Buscar Producto

4.3.4.1.5 DS Consultar Cliente


 DS Consultar ventas

 DS Eliminar cliente
 DS Eliminar venta

 DS Generar Reporte de venta


 DS Modificar cliente

 DS Modificar Venta
 DS Registrar cliente

 DS Registrar Venta
Diagramas de Actividad
4.3.4.1.6 Diagrama de Acidad de Proceso Almacén
 DA Actualizar Stock
 DA Consultar Producto
 DA Eliminar Producto
 DA Listar Producto
 DA Modificar Producto
 DA Registrar Producto
4.3.4.1.7 Diagrama de actividad Proceso Caja

 DA Anular Pago
 DA Generar Reporte de Caja
 DA Generar Boleta
 DA Generar Factura
 DA Registrar Pago
 DA Modificar Pago
4.3.4.1.8 Diagrama de actividad Proceso compras

 DA Anular Compras
 DA Anular Pedido
 DA Generar Reporte de compras
 DA Registrar Compras
 DA Modificar Compras
 DA Registrar Pedido
4.3.4.1.9 Diagrama de actividad Proceso ventas

 DA Buscar Producto
 DA Consultar Cliente
 DA Consultar Venta
 DA Eliminar Cliente
 DA Eliminar venta
 DA Generar reporte de venta
 DA Modificar Cliente
 DA Modificar Venta
 DA Registrar Cliente
 DA Registra Venta
4.3.4.2 Diagramas de Estado
 DS Clase Almacén
DS Clase Boleta
DS Clase Cliente
DS Clase Compra
DS Clase Comprobante
DS Clase Factura
DS Clase Farmacéutico
DS Clase Medicamento
DS Clase Proveedor
DS Clase Venta
4.3.5 Diagrama de Clase del Sistema

4.4 Matriz de móldelo de negocio y modelo de sistema.


4.5 Especificaciones de caso de uso de sistema.
4.5.1 Especificaciones CUS Almacén
 Stock: Actualizar Stock

Nombre del caso de uso: Actualizar Stock ID único: AS001


Área: Almacén
Actor(es): Almacenero
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El almacenero llevara un control adecuado del stock del almacén en general
mediante la actualización previa
Evento desencadenador: El almacenero Actualizara mediante el registro la nueva cantidad
entrante o saliente de productos del almacén
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
1. El almacenero verifica el stock Stock actual, descripción
actual de los medicamentos
2. El Almacenero Verifica La cantidad Cantidad Pedido
exacta de los productos pedidos.

3. El almacenero Agrega el Stock Stock Máximo


Adquirido en la compra o Stock mínimo
disminuyes por la venta
4. Realizar Actualización del Stock El almacenero actualizara el Stock cada vez que
Exitosamente se efectué la compra.
Precondiciones: El almacenero debe registrar las compras Previas / El Farmacéutico debe
registrar las ventas Previas
Postcondiciones: El almacenero realizado la actualización del Stock con éxito.
Suposiciones: El almacenero cuenta con un Kardex.
Garantía de éxito: El almacenero actualizo el stock con éxito.
Garantía mínima: El almacenero no registro la compra con éxito
Requerimientos cumplidos: El almacenero puede actualizar el Stock.
Cuestiones pendientes: ¿Cómo hacer si es que no se registró correctamente una compra?
Prioridad: Alta
Riesgo: Medio
 Producto: Consultar Producto.

Nombre del caso de uso: Consultar Producto ID único: CP001


Área: Almacén
Actor(es): Almacenero
Interesados:
Nivel:
Descripción: El Almacenero consulta los Productos existente

Evento desencadenador: El Administrador requiere un informe de los productos


Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
1. El almacenero ingresa el código del CodMeedicamento.
producto a consultar
2. Realiza la consulta Exitosa Se muestra información pedida.
Precondiciones: se requiere información de los productos.
Postcondiciones: El proveedor hace que todos los artículos comprados se han registrados.
Suposiciones:
Garantía de éxito: La consulta se dio con éxito
Garantía mínima:
Requerimientos cumplidos: Los productos deben estar correctamente registrados
Cuestiones pendientes: ¿Qué se debería hacer en caso la consulta de un error?
Prioridad: Media
Riesgo: Medio
 Producto: Registrar Producto.

Nombre del caso de uso: Registrar Producto ID único: RP001


Área: Almacén
Actor(es): Almacenero
Interesados:
Nivel:
Descripción: El Almacenero registra el producto

Evento desencadenador: El administrador registra la compra.


Tipo de desencadenador: Registrar Producto
Pasos realizados (ruta principal) Información para los pasos
3. El Almacenero Ingresa los datos del codMedicamento, descripción
producto
4. El Almacenero registrado todos codMedicamento
productos
5. Realizar del registro de los Se registró los Productos.
productos fue exitosa.
Precondiciones: El almacenero verifica todos los productos que hayan sido registrados
Postcondiciones: El administrador hace que todos los productos comprados sean registrados.
Suposiciones:
Garantía de éxito: El almacenero realizo el registro de productos con éxito
Garantía mínima:
Requerimientos cumplidos: El Almacenero registre todas las compras de los productos
Cuestiones pendientes: ¿Qué se debería hacer en caso de no registrar algún Producto?
Prioridad: Alta
Riesgo: Medio
 Producto: Modificar Producto.

Nombre del caso de uso: Modificar Producto ID único:MP001


Área: Almacén
Actor(es): Almacenero, Administrador.
Interesados:
Nivel: Modificación
Descripción: El almacenero modifica el producto ya sea por algunos defectos que, en la cual
el proveedor vende todos los productos que le pida.
Evento desencadenador: El Almacenero modifica el registro de productos, mediante una guía
remisión con el Administrador
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
1. El Almacenero verifica los CodMedicamento, descripción
Productos
2. El almacenero afirma que una parte Idcomra
de los productos adquiridos
presentan defectos
3. El administrador solicita Documentar productos defectuosos e informar
devolución de algunos Productos al proveedor
defectuosos
4. Proveedor valida la devolución de Accede a la devolución que el administrador lo
los artículos documento.
5. Realizar modificación de artículos, Se registró la realización de la modificación de
exitosa la compra atreves de un formulario.
Precondiciones: El administrador verifica todos los artículos para poder modificar la compra
Postcondiciones: El proveedor accedió a la modificación, con éxito.
Suposiciones: El proveedor cuenta con un registro para modificar cualquier Producto que el
administrador lo pida.
Garantía de éxito: El almacenero realizo la modificación de artículos con éxito.
Garantía mínima: Él almacenero pudo modificar algunas compras de Productos.
Requerimientos cumplidos: El administrador mediante un documento detallado puede
acceder al pedir la modificación de compra
Cuestiones pendientes: ¿Cómo se debe se puede modificar comprar sin tanto papeleo?
Prioridad: Alta
Riesgo: Medio
 Producto: Eliminar Producto.

Nombre del caso de uso: Eliminar Producto ID único: EP001


Área: Almacén
Actor(es): Almacenero, Administrador
Interesados:
Nivel: Producto de mala calidad.
Descripción: El almacenero elimina los productos ya sea por que el almacenamiento no
cumpla con los algunos requisitos o los productos están en mal estado.
Evento desencadenador: El almacenero elimina los productos previa supervisión del
administrador.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
1. El almacenero Elimina los codMedicamento, descripción
productos en mal estado
2. El Almacenero comunica al codMedicamento
almacenero sobre los productos en
mal estado
3. El administrador accede a eliminar valida que los productos están en mal estado
los productos
4. Realizar eliminación de productos Elimina los productos mediante supervisión.
exitosa
Precondiciones: El almacenero verifica los productos que desee eliminar para
Postcondiciones: El Administrador accede a la eliminación del producto con éxito
Suposiciones:
Garantía de éxito: El almacenero realizo la eliminación del producto con éxito.
Garantía mínima:
Requerimientos cumplidos: Productos mal estado, devolución de compra.
Cuestiones pendientes: ¿Cómo evitar que los productos caigan en mal estado?
Prioridad: Media
Riesgo: Medio
4.5.2 Especificaciones CUS Compra
 Compra: Anular compra

Nombre del caso de uso: Anular compra ID único: AC001


Área: Almacén
Actor(es): Administrador
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El administrador anulara una compra de medicamentos, ya sea por retraso en el
plazo de entrega, error compra u otros motivos.
Evento desencadenador: con la actualización del stock en almacén se observa que algunos
medicamentos presentan un stock mínimo, por lo que el administrador debe de comprar
productos a sus proveedores.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
5. El almacenero verifica el stock Stock actual, descripción
actual de los medicamentos
6. El Almacenero informa del stock Stock mínimo
actual al administrador.

7. El administrador verifica los Se realiza compra a los proveedores


productos que se requieren pedir o
comprar a los proveedores.
8. El administrador verifica errores en Se cancela la compra de los productos con éxito.
los pedidos o estos no son
realizados en el plazo establecido,
por lo que se tienen que cancelar.
Precondiciones: El almacenero debe actualizar el stock de los medicamentos para dar a
conocer a administración.
Post condiciones: El administrador cancela la compra de productos con éxito.
Suposiciones: El almacenero cuenta con un Kardex y el administrador tiene proveedores
establecidos para realizar las compras.
Garantía de éxito: El administrador cancelo la compra con éxito.
Garantía mínima: El administrador ya no pudo cancelar la compra.
Requerimientos cumplidos: El administrador es quien realiza las compras de medicamentos
en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo cancelar una compra correctamente?
Prioridad: Alta
Riesgo: Medio
 Compra: Anular pedido

Nombre del caso de uso: Anular pedido ID único: AP001


Área: Almacén
Actor(es): Administrador
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El administrador anulara un pedido de medicamentos, ya sea por contener
productos defectuosos, error en pedidos o mucho tiempo de espera para su entrega.
Evento desencadenador: con la actualización del stock en almacén se observa que algunos
productos presentan un stock mínimo, por lo que el administrador debe de realizar pedidos a
sus proveedores.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
9. El almacenero verifica el stock Stock actual, descripción
actual de los medicamentos
10. El Almacenero informa del stock Stock mínimo
actual al administrador.

11. El administrador verifica los Se realiza pedido a los proveedores


productos que se requieren pedir
para abastecer la botica.
12. El administrador verifica errores en Se cancela el pedido realizado con éxito.
los pedidos o estos no son
realizados en el plazo establecido,
por lo que se tienen que cancelar.
Precondiciones: El almacenero debe actualizar el stock de los medicamentos para dar a
conocer a administración.
Post condiciones: El administrador cancela el pedido realizado con éxito.
Suposiciones: El almacenero cuenta con un Kardex y el administrador tiene proveedores
establecidos para realizar los pedidos.
Garantía de éxito: El administrador cancelo el pedido realizado con éxito.
Garantía mínima: El pedido ya no pudo ser cancelado por ya estar ejecutado.
Requerimientos cumplidos: El administrador es quien realiza los pedidos de medicamentos
en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo cancelar un pedido correctamente?
Prioridad: Alta
Riesgo: Medio
 Compra: Generar reporte de compra

Nombre del caso de uso: Generar reporte de compra ID único: RC001


Área: Almacén
Actor(es): Administrador
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El administrador genera un reporte de compras para tener un conocimiento
detallado de las mismas, las cuales pueden realizarse en diferentes temporadas.
Evento desencadenador: cada compra que realiza el administrador se registra para luego ser
utilizada en la generación de reportes de compra.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
13. El administrador requiere de Presencia de medicamento con stock mínimo
productos para abastecer la botica.
14. El administrador realiza la compra Pedido y compra de productos
de los productos necesarios.

15. El administrador registra las Compra, detalles


compras realizadas.

16. El administrador con los datos de Se genera reporte de compra con éxito
las compras registradas puede
generar sus reportes de compra.
Precondiciones: El administrador al ser el responsable de realizar las compras en la botica,
también es el encargado de registrar las mismas.
Post condiciones: El administrador genera reporte de compra con éxito.
Suposiciones: El administrador tiene un registro donde detalla las compras realizadas.
Garantía de éxito: El administrador genera reporte de compra con éxito.
Garantía mínima: error en el registro de compras.
Requerimientos cumplidos: El administrador es quien genera el reporte de compras en la
botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo generar el reporte de compras
correctamente?
Prioridad: Alta
Riesgo: Medio
 Compra: Gestionar compras

Nombre del caso de uso: gestionar compras ID único: GC001


Área: Almacén
Actor(es): Administrador
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El administrador gestiona las compras de medicamentos de acuerdo a las
necesidades que presente la botica.
Evento desencadenador: Las ventas que se realizan además de generar ingresos generan un
deterioro en la cantidad de medicamento de almacén, por lo que se deben de realizar compras
para abastecer el stock.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
17. El almacenero verifica el stock Stock actual, descripción
actual de los medicamentos
18. El Almacenero informa del stock Stock mínimo
actual al administrador.

19. El administrador verifica los Se realiza la compra de medicamentos


productos que se requieren pedir o
comprar a los proveedores.
20. El administrador realiza la compra Se gestiona la compra con éxito
de los productos al proveedor
correspondiente, detallando la
cantidad del mismo
Precondiciones: El administrador al ser el responsable de realizar las compras en la botica,
es quien gestiona la misma para su éxito.
Post condiciones: El administrador gestiona la compra con éxito.
Suposiciones: El almacenero cuenta con un Kardex y el administrador tiene proveedores
establecidos para realizar las compras.
Garantía de éxito: El administrador gestiona la compra con éxito.
Garantía mínima: malos datos ocasionan una mala gestión en la compra.
Requerimientos cumplidos: El administrador es quien gestiona las compras en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo gestionar las compras
correctamente?
Prioridad: Alta
Riesgo: Medio
 Compra: Gestionar pedidos

Nombre del caso de uso: gestionar pedidos ID único: GP001


Área: Almacén
Actor(es): Administrador
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El administrador gestiona los pedidos de medicamentos de acuerdo a las
necesidades que presente la botica.
Evento desencadenador: Las ventas que se realizan además de generar ingresos generan un
deterioro en la cantidad de medicamento de almacén, por lo que se deben de realizar pedidos
de productos para abastecer el stock.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
21. El almacenero verifica el stock Stock actual, descripción
actual de los medicamentos
22. El Almacenero informa del stock Stock mínimo
actual al administrador.

23. El administrador verifica los Se realiza el pedido de medicamentos


productos que se requieren pedir o
comprar a los proveedores.
24. El administrador realiza el pedido Se gestiona el pedido con éxito
de los productos al proveedor
correspondiente, detallando la
cantidad del mismo
Precondiciones: El administrador al ser el responsable de realizar los pedidos en la botica, es
quien gestiona la misma para su éxito.
Post condiciones: El administrador gestiona el pedido con éxito.
Suposiciones: El almacenero cuenta con un Kardex y el administrador tiene proveedores
establecidos para realizar los pedidos.
Garantía de éxito: El administrador gestiona los pedidos con éxito.
Garantía mínima: malos datos ocasionan una mala gestión en los pedidos.
Requerimientos cumplidos: El administrador es quien gestiona los pedidos en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo gestionar los pedidos correctamente?
Prioridad: Alta
Riesgo: Medio
 Compra: insertar compra

Nombre del caso de uso: insertar compra ID único: IC001


Área: Almacén
Actor(es): Administrador
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El administrador luego de haber gestionado la compra, procederá a insertar la
misma.
Evento desencadenador: con la actualización del stock en almacén se observa que algunos
medicamentos presentan un stock mínimo, por lo que el administrador debe de insertar
compras de productos.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
25. El almacenero verifica el stock Stock actual, descripción
actual de los medicamentos
26. El Almacenero informa del stock Stock mínimo
actual al administrador.

27. El administrador verifica los Se inserta la compra de medicamentos


productos que se requieren para
abastecer el stock.
28. El administrador inserta la compra Se inserta la compra de medicamentos con
de medicamentos. éxito.
Precondiciones: El almacenero debe actualizar el stock de los medicamentos para dar a
conocer a administración.
Post condiciones: El administrador inserta la compra de medicamentos con éxito.
Suposiciones: El almacenero cuenta con un Kardex y el administrador tiene proveedores
establecidos para realizar las compras e insertarlas.
Garantía de éxito: El administrador inserto las compras con éxito.
Garantía mínima: El administrador ya no pudo insertar la compra.
Requerimientos cumplidos: El administrador es quien realiza la inserción de compras de
medicamentos en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo insertar una compra correctamente?
Prioridad: Alta
Riesgo: Medio
 Compra: modificar compra

Nombre del caso de uso: Modificar compra ID único: MC001


Área: Almacén
Actor(es): Administrador
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El administrador modificara una compra ya sea por error en la cantidad de
pedido o por otros motivos.
Evento desencadenador: con la actualización del stock en almacén se observa que algunos
medicamentos presentan un stock mínimo, por lo que el administrador debe de comprar
productos a sus proveedores.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
29. El almacenero verifica el stock Stock actual, descripción
actual de los medicamentos
30. El Almacenero informa del stock Stock mínimo
actual al administrador.

31. El administrador verifica los Se realiza compra a los proveedores


productos que se requieren comprar
a los proveedores.
32. El administrador verifica errores en Se modifica la compra de los productos con
la compra o estos no son realizados éxito.
en el plazo establecido, por lo que se
tienen que modificar.
Precondiciones: El almacenero debe actualizar el stock de los medicamentos para dar a
conocer a administración.
Post condiciones: El administrador modifica la compra de productos con éxito.
Suposiciones: El almacenero cuenta con un Kardex y el administrador tiene proveedores
establecidos para realizar las compras.
Garantía de éxito: El administrador modifica la compra con éxito.
Garantía mínima: El administrador ya no pudo modificar la compra.
Requerimientos cumplidos: El administrador es quien realiza las compras de medicamentos
en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo modificar una compra
correctamente?
Prioridad: Alta
Riesgo: Medio
 Compra: modificar pedido

Nombre del caso de uso: Modificar pedido ID único: MP001


Área: Almacén
Actor(es): Administrador
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El administrador modificara un pedido ya sea por error en la cantidad de pedido
o por otros motivos.
Evento desencadenador: con la actualización del stock en almacén se observa que algunos
medicamentos presentan un stock mínimo, por lo que el administrador debe de realizar
pedidos de productos a sus proveedores.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
33. El almacenero verifica el stock Stock actual, descripción
actual de los medicamentos
34. El Almacenero informa del stock Stock mínimo
actual al administrador.

35. El administrador verifica los Se realiza pedido a los proveedores


productos que se requieren pedir a
los proveedores.
36. El administrador verifica errores en Se modifica los pedidos de los productos con
los pedidos o estos no son éxito.
realizados en el plazo establecido,
por lo que se tienen que modificar.
Precondiciones: El almacenero debe actualizar el stock de los medicamentos para dar a
conocer a administración.
Post condiciones: El administrador modifica los pedidos de productos con éxito.
Suposiciones: El almacenero cuenta con un Kardex y el administrador tiene proveedores
establecidos para realizar los pedidos.
Garantía de éxito: El administrador modifica el pedido con éxito.
Garantía mínima: El administrador ya no pudo modificar el pedido.
Requerimientos cumplidos: El administrador es quien realiza las compras de medicamentos
en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo modificar el pedido correctamente?
Prioridad: Alta
Riesgo: Medio
 Compra: registrar pedido

Nombre del caso de uso: Modificar pedido ID único: RP001


Área: Almacén
Actor(es): Administrador
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El administrador cuando realiza un pedido o cuando lo hacen entrega de este,
tiene que registrar la información del pedido.
Evento desencadenador: con la actualización del stock en almacén se observa que algunos
medicamentos presentan un stock mínimo, por lo que el administrador debe de realizar
pedidos de productos a sus proveedores y registrar los mismos.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
37. El almacenero verifica el stock Stock actual, descripción
actual de los medicamentos
38. El Almacenero informa del stock Stock mínimo
actual al administrador.

39. El administrador verifica los Se realiza pedido a los proveedores


productos que se requieren pedir a
los proveedores.
40. El administrador registra el pedido Se registra el pedido de los productos con éxito.
que se realiza.
Precondiciones: El almacenero debe actualizar el stock de los medicamentos para dar a
conocer a administración.
Post condiciones: El administrador registra los pedidos de productos con éxito.
Suposiciones: El almacenero cuenta con un Kardex y el administrador tiene proveedores
establecidos para realizar los pedidos.
Garantía de éxito: El administrador registra el pedido con éxito.
Garantía mínima: El administrador ya no pudo registrar el pedido.
Requerimientos cumplidos: El administrador es quien realiza los pedidos de medicamentos
en la botica y registra.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo registrar el pedido correctamente?
Prioridad: Alta
Riesgo: Medio
4.5.3 Especificaciones CUS Caja
 Caja: Anular pago

Nombre del caso de uso: Anular pago ID único: AP001


Área: Venta
Actor(es): Cajero
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El cajero procede a anular un pago cuando el cliente se desanima en realizar
compra o cambia de opinión acerca de la misma, o también por algún error que puede ocurrir
en el proceso.
Evento desencadenador: El cajero es el encargado de gestionar el pago, para ello tiene la
opción de anular pagos ya que los clientes pueden cambiar de opinión en el proceso de pago.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
41. El farmacéutico realiza la venta de medicamentos, descripción
los productos a los clientes.
42. El farmacéutico envía la Monto de la venta
información de la venta al cajero.

43. El cajero revisa la información Informa del monto a pagar


obtenida de la venta.

44. El cajero en la gestión del pago Se anula el pago de los productos con éxito.
recibe la información del cliente que
quiere anular el pago, y este tiene
que proceder.
Precondiciones: El farmacéutico realiza la venta de medicamentos a los clientes.

Post condiciones: El cajero anula el pago de los productos con éxito.


Suposiciones: El farmacéutico registra la venta y dicha información es obtenida por el cajero.
Garantía de éxito: El cajero anula el pago con éxito.
Garantía mínima: El cajero ya no pudo anular el pago.
Requerimientos cumplidos: El cajero es quien gestiona el sistema de pago en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo anular el pago correctamente?
Prioridad: Alta
Riesgo: Medio
 Caja: Generar reporte de caja

Nombre del caso de uso: Generar reporte de caja ID único: GC001


Área: Venta
Actor(es): Cajero
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El cajero puede generar reporte de caja de acuerdo a todos los pagos que se han
realizado la cual se puede obtener en periodos de tiempo.
Evento desencadenador: Cada pago que se ejecute en caja debe de ser registrado en el
sistema para luego poder obtener información de ella.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
45. El farmacéutico realiza la venta de medicamentos, descripción
los productos a los clientes.
46. El cajero recibe el pago de las Monto de la venta
ventas.

47. El cajero registra y almacena dicha Registra la venta


venta.

48. El cajero ingresa a la información El cajero genera reporte de caja con éxito.
guardada acerca de las ventas para
generar su reporte.
Precondiciones: El cajero registra en la base de datos cada cobro de la venta que realiza.

Post condiciones: El cajero genera reporte de caja con éxito.


Suposiciones: El cajero registra cada pago dicha información es obtenida para generar sus
reporte.
Garantía de éxito: El cajero genera reporte con éxito.
Garantía mínima: El cajero no pudo generar su reporte con éxito.
Requerimientos cumplidos: El cajero es quien genera reporte de caja en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo generar reporte de caja
correctamente?
Prioridad: Alta
Riesgo: Medio
 Caja: Generar boleta

Nombre del caso de uso: Generar boleta ID único: GB001


Área: Venta
Actor(es): Cajero
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El cajero puede generar boleta de acuerdo a los datos obtenidos en la venta
realizada por el farmacéutico.
Evento desencadenador: Cada venta que se concluya con éxito en la botica, debe de contener
un comprobante de pago para el cliente.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
49. El farmacéutico realiza la venta de medicamentos, descripción
los productos a los clientes.
50. El cajero recibe toda la información Monto de la venta, descripción
de la venta.

51. El cajero registra y almacena dicha Registra la venta, gestiona pago


venta y realiza su gestión de pago.

52. El cajero una vez concluido el pago El cajero genera boleta con éxito.
con éxito, procede a la impresión
del comprobante de pago.
Precondiciones: El cajero es el encargado de gestionar el pago, y gestionar el comprobante
del mismo cuando concluye.
Post condiciones: El cajero genera boleta con éxito.
Suposiciones: El cajero con los datos obtenidos de la venta procede al cobro, registro de pago
y entregar un comprobante de venta al cliente.
Garantía de éxito: El cajero genera boleta con éxito.
Garantía mínima: El cajero no pudo generar boleta con éxito.
Requerimientos cumplidos: El cajero es quien genera el comprobante de pago en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo generar boleta correctamente?
Prioridad: Alta
Riesgo: Medio
 Caja: Generar factura

Nombre del caso de uso: Generar factura ID único: GF001


Área: Venta
Actor(es): Cajero
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El cajero puede generar factura de acuerdo a los datos obtenidos en la venta
realizada por el farmacéutico.
Evento desencadenador: Cada venta que se concluya con éxito en la botica, debe de contener
un comprobante de pago para el cliente.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
53. El farmacéutico realiza la venta de medicamentos, descripción
los productos a los clientes.
54. El cajero recibe toda la información Monto de la venta, descripción
de la venta.

55. El cajero registra y almacena dicha Registra la venta, gestiona pago


venta y realiza su gestión de pago.

56. El cajero una vez concluido el pago El cajero genera factura con éxito.
con éxito, procede a la impresión
del comprobante de pago.
Precondiciones: El cajero es el encargado de gestionar el pago, y gestionar el comprobante
del mismo cuando concluye.
Post condiciones: El cajero genera factura con éxito.
Suposiciones: El cajero con los datos obtenidos de la venta procede al cobro, registro de pago
y entregar un comprobante de venta al cliente.
Garantía de éxito: El cajero genera factura con éxito.
Garantía mínima: El cajero no pudo generar factura con éxito.
Requerimientos cumplidos: El cajero es quien genera el comprobante de pago en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo generar factura correctamente?
Prioridad: Alta
Riesgo: Medio
 Caja: Generar comprobante

Nombre del caso de uso: Generar comprobante ID único: GC001


Área: Venta
Actor(es): Cajero
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El cajero puede generar comprobante de acuerdo a los datos obtenidos en la
venta realizada por el farmacéutico.
Evento desencadenador: Cada venta que se concluya con éxito en la botica, debe de contener
un comprobante de pago para el cliente.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
57. El farmacéutico realiza la venta de medicamentos, descripción
los productos a los clientes.
58. El cajero recibe toda la información Monto de la venta, descripción
de la venta.

59. El cajero registra y almacena dicha Registra la venta, gestiona pago


venta y realiza su gestión de pago.

60. El cajero una vez concluido el pago El cajero genera comprobante de venta con
con éxito, procede a la impresión éxito.
del comprobante de pago.
Precondiciones: El cajero es el encargado de gestionar el pago, y gestionar el comprobante
del mismo cuando concluye.
Post condiciones: El cajero genera comprobante de pago con éxito.
Suposiciones: El cajero con los datos obtenidos de la venta procede al cobro, registro de pago
y entregar un comprobante de venta al cliente.
Garantía de éxito: El cajero genera comprobante de pago con éxito.
Garantía mínima: El cajero no pudo generar comprobante con éxito.
Requerimientos cumplidos: El cajero es quien genera el comprobante de pago en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo generar comprobante de pago
correctamente?
Prioridad: Alta
Riesgo: Medio
 Caja: Gestionar pago

Nombre del caso de uso: Gestionar pago ID único: GP001


Área: Venta
Actor(es): Cajero
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El cajero puede gestionar el pago de acuerdo a los datos obtenidos en la venta
realizada por el farmacéutico.
Evento desencadenador: Cada vez que el farmacéutico realice una venta el cajero pasa a
gestionar el pago en caja.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
61. El farmacéutico realiza la venta de medicamentos, descripción
los productos a los clientes.
62. El farmacéutico envía los datos de Monto de la venta, descripción
la venta a caja.

63. El cajero verifica los datos de venta. Registra la venta

64. El cajero una vez que ha verificado El cajero gestiona pago con éxito.
los datos de la venta, procede a
gestionar el pago dl cliente en caja.
Precondiciones: El cajero es el encargado de gestionar el pago.

Post condiciones: El cajero gestiona el pago con éxito.


Suposiciones: El cajero con los datos obtenidos de la venta realizada por el farmacéutico
procede a gestionar el pago.
Garantía de éxito: El cajero gestiona el pago con éxito.
Garantía mínima: El cajero no pudo gestionar el pago con éxito.
Requerimientos cumplidos: El cajero es quien gestiona el pago en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo gestionar el pago correctamente?
Prioridad: Alta
Riesgo: Medio
 Caja: Insertar pago

Nombre del caso de uso: Insertar pago ID único: IP001


Área: Venta
Actor(es): Cajero
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El cajero puede insertar el pago de acuerdo a los datos obtenidos en la venta
realizada por el farmacéutico.
Evento desencadenador: Cada vez que el farmacéutico realice una venta el cajero pasa a
gestionar el pago en caja y a insertar el mismo.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
65. El farmacéutico realiza la venta de medicamentos, descripción
los productos a los clientes.
66. El farmacéutico envía los datos de Monto de la venta, descripción
la venta a caja.

67. El cajero verifica los datos de venta. Registra la venta

68. El cajero una vez que ha verificado El cajero inserta el pago con éxito.
los datos de la venta, procede a
gestionar el pago e insertar el
mismo.
Precondiciones: El cajero es el encargado de gestionar el pago.

Post condiciones: El cajero inserta el pago con éxito.


Suposiciones: El cajero con los datos obtenidos de la venta realizada por el farmacéutico
procede a gestionar el pago e insertar el pago.
Garantía de éxito: El cajero inserta el pago con éxito.
Garantía mínima: El cajero no pudo insertar el pago con éxito.
Requerimientos cumplidos: El cajero es quien inserta el pago en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo insertar el pago correctamente?
Prioridad: Alta
Riesgo: Medio
 Caja: Modificar pago

Nombre del caso de uso: Modificar pago ID único: MP001


Área: Venta
Actor(es): Cajero
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El cajero puede modificar el pago de acuerdo a los datos obtenidos en la venta
realizada por el farmacéutico.
Evento desencadenador: Cada vez que el farmacéutico realice una venta el cajero pasa a
gestionar el pago en caja y a modificar el mismo.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
69. El farmacéutico realiza la venta de medicamentos, descripción
los productos a los clientes.
70. El farmacéutico envía los datos de Monto de la venta, descripción
la venta a caja.

71. El cajero verifica los datos de venta. Registra la venta

72. El cajero una vez que ha verificado El cajero modificar el pago con éxito.
los datos de la venta, procede a
gestionar el pago y modificar el
mismo de ser necesario.
Precondiciones: El cajero es el encargado de gestionar el pago.

Post condiciones: El cajero modifica el pago con éxito.


Suposiciones: El cajero con los datos obtenidos de la venta realizada por el farmacéutico
procede a gestionar el pago y modificar el pago.
Garantía de éxito: El cajero modifica el pago con éxito.
Garantía mínima: El cajero no pudo modificar el pago con éxito.
Requerimientos cumplidos: El cajero es quien modifica el pago en la botica.
Cuestiones pendientes: ¿Qué hacer si es que no se pudo modificar el pago correctamente?
Prioridad: Alta
Riesgo: Medio
4.5.4 Especificaciones CUS Ventas
 Venta: Administrar clientes

Nombre del caso de uso: Administrar clientes ID único: ADC001


Área: Venta
Actor(es): Farmacéutico
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El farmacéutico es el encargado de administrar a los clientes y realizar la
operación necesaria de sus datos según se requiera.
Evento desencadenador: para realizar una correcta administración de los clientes, el
farmacéutico debe de iniciar registrando a los mismos.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
73. El farmacéutico atiende al cliente Cliente es atendido por el farmacéutico
que ingresa a la botica
74. El cliente solicita los productos al Atención de pedido
farmacéutico.

75. El farmacéutico verifica la Stock de medicamentos


existencia del producto para
satisfacer el pedido.
76. Una vez verificado el farmacéutico Se administra los datos del cliente con éxito.
procede a administrar los datos del
cliente.
Precondiciones: El almacenero debe actualizar el stock de los medicamentos para dar a
conocer su stock y los nuevos clientes se tienen que registrar.
Post condiciones: El farmacéutico administra los datos del cliente con éxito.
Suposiciones: El almacenero cuenta con un Kardex y el farmacéutico guarda los datos del
cliente en una base de datos.
Garantía de éxito: El farmacéutico administra los datos del cliente con éxito.
Garantía mínima: El farmacéutico no pudo administrar los datos del cliente con éxito.
Requerimientos cumplidos: El farmacéutico es quien registra a los clientes y realiza las
ventas
Cuestiones pendientes: ¿Qué hacer si es que no se pudo administrar al cliente con exito?
Prioridad: Alta
Riesgo: Medio
 Venta: Administrar ventas

Nombre del caso de uso: Administrar ventas ID único: ADV001


Área: Venta
Actor(es): Farmacéutico
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El farmacéutico es el encargado de administrar a las ventas y realizar la
operación necesaria de sus datos según se requiera.
Evento desencadenador: para realizar una correcta administración de las ventas, el
farmacéutico debe de iniciar registrando a los mismos.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
77. El farmacéutico atiende al cliente Cliente es atendido por el farmacéutico
que ingresa a la botica
78. El cliente solicita los productos al Atención de pedido
farmacéutico.

79. El farmacéutico verifica la Stock de medicamentos


existencia del producto para
satisfacer el pedido.
80. Una vez verificado el farmacéutico Se administra los datos de la venta con éxito.
procede a administrar los datos de la
venta.
Precondiciones: El farmacéutico tiene que registrar todas las ventas que realice a los clientes.

Post condiciones: El farmacéutico administra los datos de las ventas con éxito.
Suposiciones: El farmacéutico guarda los datos de las ventas en una base de datos.
Garantía de éxito: El farmacéutico administra los datos de las ventas con éxito.
Garantía mínima: El farmacéutico no pudo administrar los datos de la venta con éxito.
Requerimientos cumplidos: El farmacéutico es quien registra las ventas y realiza las ventas
Cuestiones pendientes: ¿Qué hacer si es que no se pudo administrar las ventas con éxito?
Prioridad: Alta
Riesgo: Medio
 Venta: Buscar producto

Nombre del caso de uso: Buscar producto ID único:BP001


Área: Venta
Actor(es): Farmacéutico
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El farmacéutico es el encargado de buscar producto para saber si disponemos
del mismo para realizar la venta.
Evento desencadenador: El almacenero tiene que actualizar el stock de medicamentos para
brindar una información correcta al farmacéutico.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
81. El farmacéutico atiende al cliente Cliente es atendido por el farmacéutico
que ingresa a la botica
82. El cliente solicita los productos al Atención de pedido
farmacéutico.

83. El farmacéutico ingresa a la Stock de medicamentos


información brindada en almacén.

84. El farmacéutico busca el producto Se busca los productos con éxito.


que solicita el cliente y verifica si
cumple el monto solicitado.
Precondiciones: El almacenero debe tener actualizada el stock de los productos.

Post condiciones: El farmacéutico realiza búsqueda de los productos con éxito.


Suposiciones: El farmacéutico busca los productos actualizados y existentes en almacén.
Garantía de éxito: El farmacéutico realiza búsqueda de productos con éxito.
Garantía mínima: El farmacéutico no pudo realizar búsqueda con éxito.
Requerimientos cumplidos: El farmacéutico es quien busca los productos existentes para
vender
Cuestiones pendientes: ¿Qué hacer si es que no se pudo buscar los productos con éxito?
Prioridad: Alta
Riesgo: Medio
 Venta: Condición del cliente

Nombre del caso de uso: Condición del cliente ID único:CC001


Área: Venta
Actor(es): Farmacéutico
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El farmacéutico es el encargado de administrar a los clientes y verificar la
condición de cada uno con la botica.
Evento desencadenador: El farmacéutico es el encargado de registrar a los clientes y revidar
sus datos para ver la condición de cliente.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
85. El farmacéutico atiende al cliente Cliente es atendido por el farmacéutico
que ingresa a la botica
86. El cliente solicita los productos al Atención de pedido
farmacéutico.

87. El farmacéutico registra los datos Registro del cliente


del cliente.

88. El farmacéutico busca los datos Evaluación de la condición de cliente con éxito.
registrados del cliente para evaluar.
Precondiciones: El farmacéutico registra a todo los clientes a los que se realiza las ventas.

Post condiciones: El farmacéutico realiza evaluación de la condición de cliente con éxito.


Suposiciones: El farmacéutico busca los datos del cliente en su base de datos.
Garantía de éxito: El farmacéutico realiza evaluación de la condición del cliente con éxito.
Garantía mínima: El farmacéutico no pudo realizar evaluación con éxito.
Requerimientos cumplidos: El farmacéutico es quien busca los datos de los clientes
registrados
Cuestiones pendientes: ¿Qué hacer si es que no se pudo encontrar los datos con éxito?
Prioridad: Alta
Riesgo: Medio
 Venta: Consultar cliente

Nombre del caso de uso: Consultar cliente ID único:CONC001


Área: Venta
Actor(es): Farmacéutico
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El farmacéutico es el encargado de consultar cliente porque este es el encargado
de su administración.
Evento desencadenador: El farmacéutico tiene que registrar a los clientes a los que realiza
las ventas.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
89. El farmacéutico atiende al cliente Cliente es atendido por el farmacéutico
que ingresa a la botica
90. El cliente solicita los productos al Atención de pedido
farmacéutico.

91. El farmacéutico ingresa a la Stock de medicamentos


información brindada en almacén.

92. El farmacéutico realiza el registro Se consulta cliente con éxito.


del cliente al que se realiza la venta.
Precondiciones: El farmacéutico registra a los clientes a los que se realiza las ventas en la
botica.
Post condiciones: El farmacéutico realiza consulta de cliente con éxito.
Suposiciones: El farmacéutico consulta los datos del cliente registrados en la base de datos.
Garantía de éxito: El farmacéutico realiza consulta de clientes con éxito.
Garantía mínima: El farmacéutico no pudo realizar consulta con éxito.
Requerimientos cumplidos: El farmacéutico es quien busca los datos del cliente registrado
Cuestiones pendientes: ¿Qué hacer si es que no se pudo consultar al cliente con éxito?
Prioridad: Alta
Riesgo: Medio
 Venta: Consultar venta

Nombre del caso de uso: Consultar venta ID único:CONV001


Área: Venta
Actor(es): Farmacéutico
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El farmacéutico es el encargado de consultar venta porque este es el encargado
de su administración.
Evento desencadenador: El farmacéutico tiene que registrar las ventas que realiza a los
clientes.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
93. El farmacéutico atiende al cliente Cliente es atendido por el farmacéutico
que ingresa a la botica
94. El cliente solicita los productos al Atención de pedido
farmacéutico.

95. El farmacéutico ingresa a la Stock de medicamentos


información brindada en almacén.

96. El farmacéutico realiza el registro Se consulta venta con éxito.


de las ventas que realiza a los
clientes.
Precondiciones: El farmacéutico registra las ventas que se realiza a los clientes en la botica.

Post condiciones: El farmacéutico realiza consulta de venta con éxito.


Suposiciones: El farmacéutico consulta los datos de la venta registrados en la base de datos.
Garantía de éxito: El farmacéutico realiza consulta de ventas con éxito.
Garantía mínima: El farmacéutico no pudo realizar consulta con éxito.
Requerimientos cumplidos: El farmacéutico es quien busca los datos de la venta registrado
Cuestiones pendientes: ¿Qué hacer si es que no se pudo consultar la venta con éxito?
Prioridad: Alta
Riesgo: Medio
 Venta: Eliminar cliente

Nombre del caso de uso: Eliminar cliente ID único:EC001


Área: Venta
Actor(es): Farmacéutico
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El farmacéutico es el encargado de eliminar cliente porque este es el encargado
de su administración.
Evento desencadenador: El farmacéutico tiene que registrar a los clientes a los que realiza
las ventas.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
97. El farmacéutico atiende al cliente Cliente es atendido por el farmacéutico
que ingresa a la botica
98. El cliente solicita los productos al Atención de pedido
farmacéutico.

99. El farmacéutico ingresa a la Stock de medicamentos


información brindada en almacén.

100. El farmacéutico realiza el Se elimina cliente con éxito.


registro del cliente al que se realiza
la venta y posteriormente puede
eliminarlo.
Precondiciones: El farmacéutico elimina a los clientes a los que se realiza las ventas en la
botica.
Post condiciones: El farmacéutico realiza eliminación de cliente con éxito.
Suposiciones: El farmacéutico elimina los datos del cliente registrados en la base de datos.
Garantía de éxito: El farmacéutico realiza eliminación de clientes con éxito.
Garantía mínima: El farmacéutico no pudo realizar eliminación con éxito.
Requerimientos cumplidos: El farmacéutico es quien elimina los datos del cliente registrado
Cuestiones pendientes: ¿Qué hacer si es que no se pudo eliminar al cliente con éxito?
Prioridad: Alta
Riesgo: Medio
 Venta: Eliminar venta

Nombre del caso de uso: eliminar venta ID único:CONV001


Área: Venta
Actor(es): Farmacéutico
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El farmacéutico es el encargado de eliminar venta porque este es el encargado
de su administración.
Evento desencadenador: El farmacéutico tiene que registrar las ventas que realiza a los
clientes.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
101. El farmacéutico atiende al Cliente es atendido por el farmacéutico
cliente que ingresa a la botica
102. El cliente solicita los Atención de pedido
productos al farmacéutico.

103. El farmacéutico ingresa a la Stock de medicamentos


información brindada en almacén.

104. El farmacéutico realiza el Se elimina venta con éxito.


registro de las ventas que realiza a
los clientes y luego tiene la opción
de eliminarlas.
Precondiciones: El farmacéutico elimina las ventas que se realiza a los clientes en la botica.

Post condiciones: El farmacéutico realiza eliminación de venta con éxito.


Suposiciones: El farmacéutico elimina los datos de la venta registrados en la base de datos.
Garantía de éxito: El farmacéutico realiza eliminación de ventas con éxito.
Garantía mínima: El farmacéutico no pudo realizar eliminación con éxito.
Requerimientos cumplidos: El farmacéutico es quien busca los datos de la venta registrado
Cuestiones pendientes: ¿Qué hacer si es que no se pudo eliminar la venta con éxito?
Prioridad: Alta
Riesgo: Medio
 Venta: Generar reporte de venta

Nombre del caso de uso: Generar reporte de venta ID único:GRV001


Área: Venta
Actor(es): Farmacéutico
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El farmacéutico es el encargado de registrar la venta porque este es el encargado
de su administración y también con estos datos de generar reportes de venta.
Evento desencadenador: El farmacéutico tiene que registrar las ventas que realiza a los
clientes.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
105. El farmacéutico atiende al Cliente es atendido por el farmacéutico
cliente que ingresa a la botica
106. El cliente solicita los Atención de pedido
productos al farmacéutico.

107. El farmacéutico ingresa a la Stock de medicamentos


información brindada en almacén.

108. El farmacéutico realiza el Se genera reporte de venta con éxito.


registro de las ventas que realiza a
los clientes y luego con estos datos
puede generar sus reportes.
Precondiciones: El farmacéutico registra las ventas que se realiza a los clientes en la botica.

Post condiciones: El farmacéutico genera reporte de venta con éxito.


Suposiciones: El farmacéutico consulta los datos de la venta registrados en la base de datos.
Garantía de éxito: El farmacéutico genera reporte de ventas con éxito.
Garantía mínima: El farmacéutico no pudo generar reporte de ventas con éxito.
Requerimientos cumplidos: El farmacéutico es quien busca los datos de la venta registrado
Cuestiones pendientes: ¿Qué hacer si es que no se pudo generar reporte de la venta con éxito?
Prioridad: Alta
Riesgo: Medio
 Venta: Modificar cliente

Nombre del caso de uso: Modificar cliente ID único:MC001


Área: Venta
Actor(es): Farmacéutico
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El farmacéutico es el encargado de modificar cliente porque este es el encargado
de su administración.
Evento desencadenador: El farmacéutico tiene que registrar a los clientes a los que realiza
las ventas.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
109. El farmacéutico atiende al Cliente es atendido por el farmacéutico
cliente que ingresa a la botica
110. El cliente solicita los Atención de pedido
productos al farmacéutico.

111. El farmacéutico ingresa a la Stock de medicamentos


información brindada en almacén.

112. El farmacéutico realiza el Se modifica cliente con éxito.


registro del cliente al que se realiza
la venta y posteriormente puede
modificar los datos.
Precondiciones: El farmacéutico modifica a los clientes a los que se realiza las ventas en la
botica.
Post condiciones: El farmacéutico realiza modificación de cliente con éxito.
Suposiciones: El farmacéutico modifica los datos del cliente registrados en la base de datos.
Garantía de éxito: El farmacéutico realiza modificación de clientes con éxito.
Garantía mínima: El farmacéutico no pudo realizar modificación con éxito.
Requerimientos cumplidos: El farmacéutico es quien modifica los datos del cliente
registrado
Cuestiones pendientes: ¿Qué hacer si es que no se pudo modificar al cliente con éxito?
Prioridad: Alta
Riesgo: Medio
 Venta: Modificar venta

Nombre del caso de uso: modificar venta ID único:MV001


Área: Venta
Actor(es): Farmacéutico
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El farmacéutico es el encargado de modificar venta porque este es el encargado
de su administración.
Evento desencadenador: El farmacéutico tiene que registrar las ventas que realiza a los
clientes.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
113. El farmacéutico atiende al Cliente es atendido por el farmacéutico
cliente que ingresa a la botica
114. El cliente solicita los Atención de pedido
productos al farmacéutico.

115. El farmacéutico ingresa a la Stock de medicamentos


información brindada en almacén.

116. El farmacéutico realiza el Se modificar venta con éxito.


registro de las ventas que realiza a
los clientes y luego tiene la opción
de modificarlas.
Precondiciones: El farmacéutico modifica las ventas que se realiza a los clientes en la botica.

Post condiciones: El farmacéutico realiza modificación de venta con éxito.


Suposiciones: El farmacéutico modifica los datos de la venta registrados en la base de datos.
Garantía de éxito: El farmacéutico realiza modificación de ventas con éxito.
Garantía mínima: El farmacéutico no pudo realizar modificación con éxito.
Requerimientos cumplidos: El farmacéutico es quien busca los datos de la venta registrado
Cuestiones pendientes: ¿Qué hacer si es que no se pudo modificar la venta con éxito?
Prioridad: Alta
Riesgo: Medio
 Venta: Registrar cliente

Nombre del caso de uso: Registrar cliente ID único:RGC001


Área: Venta
Actor(es): Farmacéutico
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El farmacéutico es el encargado de registrar cliente porque este es el encargado
de su administración.
Evento desencadenador: El farmacéutico tiene que registrar a los clientes a los que realiza
las ventas.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
117. El farmacéutico atiende al Cliente es atendido por el farmacéutico
cliente que ingresa a la botica
118. El cliente solicita los Atención de pedido
productos al farmacéutico.

119. El farmacéutico ingresa a la Stock de medicamentos


información brindada en almacén.

120. El farmacéutico realiza el Se registra cliente con éxito.


registro del cliente.
Precondiciones: El farmacéutico registra a los clientes a los que se realiza las ventas en la
botica.
Post condiciones: El farmacéutico realiza registro de cliente con éxito.
Suposiciones: El farmacéutico registra a los clientes en la base de datos.
Garantía de éxito: El farmacéutico realiza registro de clientes con éxito.
Garantía mínima: El farmacéutico no pudo realizar registro con éxito.
Requerimientos cumplidos: El farmacéutico es quien registra los datos del cliente registrado
Cuestiones pendientes: ¿Qué hacer si es que no se pudo registrar al cliente con éxito?
Prioridad: Alta
Riesgo: Medio
 Venta: Registrar venta

Nombre del caso de uso: Registrar venta ID único:RV001


Área: Venta
Actor(es): Farmacéutico
Interesados:
Nivel: Medicamentos de buena calidad
Descripción: El farmacéutico es el encargado de registrar venta porque este es el encargado
de su administración.
Evento desencadenador: El farmacéutico tiene que registrar las ventas que realiza a los
clientes.
Tipo de desencadenador:
Pasos realizados (ruta principal) Información para los pasos
121. El farmacéutico atiende al Cliente es atendido por el farmacéutico
cliente que ingresa a la botica
122. El cliente solicita los Atención de pedido
productos al farmacéutico.

123. El farmacéutico ingresa a la Stock de medicamentos


información brindada en almacén.

124. El farmacéutico realiza el Se registra venta con éxito.


registro de las ventas.
Precondiciones: El farmacéutico registra las ventas que se realiza a los clientes en la botica.

Post condiciones: El farmacéutico realiza registro de venta con éxito.


Suposiciones: El farmacéutico registra las ventas en la base de datos.
Garantía de éxito: El farmacéutico realiza registro de ventas con éxito.
Garantía mínima: El farmacéutico no pudo realizar registro con éxito.
Requerimientos cumplidos: El farmacéutico es quien registra los datos de la venta registrado
Cuestiones pendientes: ¿Qué hacer si es que no se pudo registrar la venta con éxito?
Prioridad: Alta
Riesgo: Medio
Capítulo 5
ANALISIS Y DISEÑO DE SISTEMA
5.1 Propósito del Proyecto
El propósito del análisis y diseño de un sistema de información para la gestión de
compras, ventas y almacén de la botica “salud y vida” es poder facilitar el control de las
ventas que se generan en la botica en tiempo real, llevar un control eficaz del proceso de
caja para así poder tener información diaria de los ingresos que genera la botica, poder
tener una información confiable de las existencias de los productos que hay en almacén
y así poder realizar el abastecimiento a la botica cuando estos productos estén por
agotarse.
De esta manera poder brindar un servicio de calidad a sus clientes generando así una
mayor confianza, por lo cual será un beneficio a la botica ya que esto hará que más clientes
se apersones al establecimiento aumentando mayores ingresos y prestigio.

5.2 Alcance del Desarrollo del Proyecto


El objetivo del proyecto es la realización del análisis y diseño de un sistema de
información para la gestión de compras, ventas y almacén de la botica “salud y vida” para
mejorar la gestión interna de la botica y simplificar su interacción. El sistema podrá
manejar proveedores y ofrecerá ventajas de automatización en diferentes procesos de la
botica.
Para la ejecución y seguimiento del proyecto, se utilizará como metodología de gestión
los diagramas de Gantt.
Este sistema informático permitirá a los trabajadores de la botica el manejo de caja,
manejo de stock, poder calcular por cantidad de productos vendidos y por temporada. La
facturación consistirá como evidencia de las ventas realizadas en la botica.
El manejo del stock permitirá a los trabajadores registrar nuevos proveedores y productos,
y cambiar cantidades y precios. Por cada venta que se hace debe haber una modificación
en las cantidades del producto. También tendrá que mantener un registro de los clientes
de la botica, así como de los pedidos de productos a sus proveedores. Los trabajadores
podrán tener diferentes permisos sobre determinadas operaciones. Además, se deberá
poder tener un registro de estos procedimientos para tener un control de las
modificaciones realizadas.
5.2.1 Diagrama de desarrollo de proyecto
5.3 Definiciones, Acrónimos y Abreviaturas
5.3.1 Definiciones
 Sistema informático: Un sistema informático es un conjunto de partes o recursos
formados por el hardware, software y las personas que lo emplean, que se
relacionan entre sí para almacenar y procesar información con un objetivo en
común.
 Lenguaje unificado de modelado: El Lenguaje Unificado de Modelado (UML)
fue creado para forjar un lenguaje de modelado visual común y semántica y
sintácticamente rico para la arquitectura, el diseño y la implementación de
sistemas de software complejos, tanto en estructura como en comportamiento.
UML tiene aplicaciones más allá del desarrollo de software, p. ej., en el flujo de
procesos en la fabricación.
 Caso de uso de negocio: Describe los procesos de un negocio, vinculados al
campo de acción, y cómo se benefician e interactúan los socios y clientes en estos
procesos. Estereotipos Actor del Negocio Caso de Uso del Negocio este no costa
con un sistema.
 Caso de uso de sistema: Describe, bajo la forma de acciones y reacciones, el
comportamiento del sistema desde el punto de vista del usuario (Jacobson).
Descripciones de la funcionalidad del sistema, Descripciones de la funcionalidad
del sistema independientes de la implementación. Independientes de la
implementación. Establece un acuerdo entre clientes y desarrolladores sobre las
condiciones y posibilidades (requisitos) que debe cumplir el sistema.
 Diagramas de secuencia: El diagrama de secuencia es un tipo de diagrama de
interacción cuyo objetivo es describir el comportamiento dinámico del sistema de
información haciendo énfasis en la secuencia de los mensajes intercambiados por
los objetos.
 Diagrama de actividades: Un diagrama de actividades muestra el flujo de
actividades, siendo una actividad una ejecución general entre los objetos que se
está ejecutando en un momento dado dentro de una máquina de estados, el
resultado de una actividad es una acción que producen un cambio en el estado del
sistema o la devolución de un valor. Las acciones incluyen llamadas a otras
operaciones, envío de señales, creación o destrucción de objetos o simples
cálculos. Gráficamente un diagrama de actividades será un conjunto de arcos y
nodos. Desde un punto de vista conceptual, el diagrama de actividades muestra
cómo fluye el control de unas clases a otras con la finalidad de culminar con un
flujo de control total que se corresponde con la consecución de un proceso más
complejo.
 Diagrama de clases: Sirve para visualizar las relaciones entre las clases que
involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de
agregación, ya que una clase es una descripción de conjunto de objetos que
comparten los mismos atributos, operaciones, métodos, relaciones y semántica;
mostrando un conjunto de elementos que son estáticos, como las clases y tipos
junto con sus contenidos y relaciones. Un diagrama de clases este compuesto por
los siguientes elementos: Clase: atributos, métodos y visibilidad. Relaciones:
Herencia, Composición, Agregación, Asociación y Uso.
 Diagramas de estado: Los diagramas de estado son una técnica conocida para
describir el comportamiento de un sistema. Describen todos los estados posibles
en los que puede entrar un objeto particular y la manera en que cambia el estado
del objeto, como resultado de los eventos que llegan a él. En la mayor parte de las
técnicas Orientadas a Objetos, los diagramas de estado se dibujan para una sola
clase, mostrando el comportamiento de un solo objeto durante todo su ciclo de
vida.
 Diagrama de gantt: Un diagrama de Gantt es una herramienta útil para planificar
proyectos. Al proporcionarte una vista general de las tareas programadas, todas
las partes implicadas sabrán qué tareas tienen que completarse y en qué fecha.

5.3.2 Acrónimos
 UML: lenguaje unificado de modelado.
 CUN: caso de uso de negocio.
 CUS: caso de uso de sistema.

5.3.3 Abreviaturas
 CLIE0001: Cliente
 RECE0001: Receta
 CRE001: Crédito
 PROV01: Proveedor
 VEN001: Venta
 PROD01: Producto
 EMPL01: Empleado
 COM001: Compra
 PROD01: Producto
 CAME01: Categoría Medicamento
 CAT001: Categoría
 CAME01: Categoría Medicamento
5.4 Modelo de Análisis
5.4.1 Arquitectura del Sistema
 SISTEMA DE VENTAS:
 SISTEMA DE COMPRAS:

 COMPROBANTE DE PAGO:
 SISTEMA DE CAJA
5.4.2 Realización de Casos de Uso – Análisis

5.5 Modelo Conceptual


 MEDICAMENTO:
 CATEGORIA MEDICAMENTO:

 ALMACEN:
 VENTA:

 COMPRA:

 DETALLE VENTA:

 DETALLE COMPRA:
 EMPLEADO:

 USUARIO:

 SUCURSAL:
 TOCADOR:

 CATEGORIA:

 CLIENTE:
 RECETA:

 CREDITO:
 EMPLEADO:

5.6 Modelo de Diseño


5.6.1 Modelo Lógico
5.6.2 Modelo Físico de Datos
5.6.3 Vista de Capas y Subsistemas
5.6.4 Realización Modelo de Diseño
 ARTICULO DE INGRESO

 LOGIN
 PANEL DE CONTROL
 PERFIL

 HOME
5.6.5 Vista de Despliegue

 PANEL DE CONTROL
 PERFIL

 HOME
 JFRAME

 LOGIN
 ARTICULOS
5.7 Vista Implementación

 LOGIN

package yFrame;

import Inicio.Visual;
import Slide.sSlide;
import java.awt.Event;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class yLogin extends javax.swing.JFrame {

sSlide slide;

public yLogin() {
initComponents();
this.setLocationRelativeTo(null);

slide = new sSlide();


jpHome.setVisible(true);
JpPerfil.setVisible(false);
}

public void ControlPanelMoved() {


slide.jPanelXDerecha(-180, 0, 10, 5, jpPanelControl);
}

public void ControlPanelExited() {


slide.jPanelXIzquierda(0, -180, 10, 5, jpPanelControl);

public void LINE_ON() {


jlblLine_ON.setVisible(true);
jlblLine_ON1.setVisible(false);
jlblLine_ON2.setVisible(false);
jlblLine_ON3.setVisible(false);
jlblLine_ON4.setVisible(false);
jlblLine_ON5.setVisible(false);
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jlblMinimizar = new javax.swing.JLabel();


jlblCerrar = new javax.swing.JLabel();
jbtnPerfil = new javax.swing.JButton();
jbtnConfig = new javax.swing.JButton();
jLabel16 = new javax.swing.JLabel();
jpPanelControl = new javax.swing.JPanel();
jlblSelectedStats = new javax.swing.JLabel();
jlblSelectedCart = new javax.swing.JLabel();
jlblSelectedMouse = new javax.swing.JLabel();
jlblSelectedMonitor = new javax.swing.JLabel();
jlblSelectedKeyb = new javax.swing.JLabel();
jlblSelectedHome = new javax.swing.JLabel();
jlblLine_ON5 = new javax.swing.JLabel();
jlblLine_ON4 = new javax.swing.JLabel();
jlblLine_ON3 = new javax.swing.JLabel();
jlblLine_ON2 = new javax.swing.JLabel();
jlblLine_ON1 = new javax.swing.JLabel();
jlblLine_ON = new javax.swing.JLabel();
jlblKeyboard = new javax.swing.JLabel();
jlblEstadistic = new javax.swing.JLabel();
jlblHome = new javax.swing.JLabel();
jlblMonitor = new javax.swing.JLabel();
jlblMouse = new javax.swing.JLabel();
jlblCart = new javax.swing.JLabel();
jlblMenu = new javax.swing.JLabel();
jlblStadistics = new javax.swing.JLabel();
jlblCarts = new javax.swing.JLabel();
jlblMouses = new javax.swing.JLabel();
jlblMonitors = new javax.swing.JLabel();
jlblKeyboards = new javax.swing.JLabel();
jlblHomee = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jPanelControl = new javax.swing.JLabel();
JpPerfil = new javax.swing.JPanel();
jbtnEditarPerfíl = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jSeparator2 = new javax.swing.JSeparator();
jSeparator1 = new javax.swing.JSeparator();
jLabel14 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jLabel15 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jpHome = new javax.swing.JPanel();
jLabel34 = new javax.swing.JLabel();
jLabel35 = new javax.swing.JLabel();
jLabel36 = new javax.swing.JLabel();
jLabel37 = new javax.swing.JLabel();
jLabel38 = new javax.swing.JLabel();
jLabel33 = new javax.swing.JLabel();
jLabel32 = new javax.swing.JLabel();
jLabel30 = new javax.swing.JLabel();
jLabel19 = new javax.swing.JLabel();
jLabel31 = new javax.swing.JLabel();
jSeparator3 = new javax.swing.JSeparator();
jLabel22 = new javax.swing.JLabel();
jLabel17 = new javax.swing.JLabel();
jSeparator4 = new javax.swing.JSeparator();
jLabel18 = new javax.swing.JLabel();
jLabel20 = new javax.swing.JLabel();
jLabel21 = new javax.swing.JLabel();
jLabel24 = new javax.swing.JLabel();
jLabel25 = new javax.swing.JLabel();
jLabel26 = new javax.swing.JLabel();
jLabel27 = new javax.swing.JLabel();
jLabel28 = new javax.swing.JLabel();
jLabel29 = new javax.swing.JLabel();
jLabel23 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jpBackground = new javax.swing.JPanel();
jlblBackground = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMaximumSize(new java.awt.Dimension(1000, 500));
setMinimumSize(new java.awt.Dimension(1000, 500));
setUndecorated(true);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowOpened(java.awt.event.WindowEvent evt) {
formWindowOpened(evt);
}
});
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jlblMinimizar.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Expand_Arrow_32px.png"
))); // NOI18N
jlblMinimizar.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jlblMinimizar.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jlblMinimizarMouseClicked(evt);
}
});
getContentPane().add(jlblMinimizar, new
org.netbeans.lib.awtextra.AbsoluteConstraints(900, 10, -1, -1));

jlblCerrar.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Delete_32px.png"))); //
NOI18N
jlblCerrar.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jlblCerrar.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jlblCerrarMouseClicked(evt);
}
});
getContentPane().add(jlblCerrar, new
org.netbeans.lib.awtextra.AbsoluteConstraints(950, 10, -1, -1));

jbtnPerfil.setIcon(new javax.swing.ImageIcon(getClass().getResource("/iMage/perfil-
botton_off.png"))); // NOI18N
jbtnPerfil.setBorder(null);
jbtnPerfil.setBorderPainted(false);
jbtnPerfil.setContentAreaFilled(false);
jbtnPerfil.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jbtnPerfil.setRolloverIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/perfil-botton_on.png"))); //
NOI18N
jbtnPerfil.setRolloverSelectedIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/perfil-botton_on.png"))); //
NOI18N
jbtnPerfil.setSelectedIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/perfil-botton_on.png"))); //
NOI18N
jbtnPerfil.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jbtnPerfilMouseClicked(evt);
}
});
getContentPane().add(jbtnPerfil, new
org.netbeans.lib.awtextra.AbsoluteConstraints(958, 180, 40, 50));

jbtnConfig.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/config-botton.png"))); // NOI18N
jbtnConfig.setBorder(null);
jbtnConfig.setBorderPainted(false);
jbtnConfig.setContentAreaFilled(false);
jbtnConfig.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jbtnConfig.setRolloverIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/config-botton_on.png"))); //
NOI18N
jbtnConfig.setRolloverSelectedIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/config-botton_on.png"))); //
NOI18N
jbtnConfig.setSelectedIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/config-botton_on.png"))); //
NOI18N
getContentPane().add(jbtnConfig, new
org.netbeans.lib.awtextra.AbsoluteConstraints(958, 223, 40, 50));

jLabel16.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/botonesperf-conf.png"))); //
NOI18N
getContentPane().add(jLabel16, new
org.netbeans.lib.awtextra.AbsoluteConstraints(953, 193, -1, 70));

jpPanelControl.addMouseMotionListener(new java.awt.event.MouseMotionAdapter()
{
public void mouseDragged(java.awt.event.MouseEvent evt) {
jpPanelControlMouseDragged(evt);
}
public void mouseMoved(java.awt.event.MouseEvent evt) {
jpPanelControlMouseMoved(evt);
}
});
jpPanelControl.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseExited(java.awt.event.MouseEvent evt) {
jpPanelControlMouseExited(evt);
}
});
jpPanelControl.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jlblSelectedStats.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jlblSelectedStats.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jlblSelectedStatsMouseClicked(evt);
}
});
jpPanelControl.add(jlblSelectedStats, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 340, 230, 50));

jlblSelectedCart.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jlblSelectedCart.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jlblSelectedCartMouseClicked(evt);
}
});
jpPanelControl.add(jlblSelectedCart, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 280, 230, 60));

jlblSelectedMouse.setCursor(new
java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jlblSelectedMouse.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jlblSelectedMouseMouseClicked(evt);
}
});
jpPanelControl.add(jlblSelectedMouse, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 230, 230, 50));

jlblSelectedMonitor.setCursor(new
java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jlblSelectedMonitor.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jlblSelectedMonitorMouseClicked(evt);
}
});
jpPanelControl.add(jlblSelectedMonitor, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 170, 230, 50));

jlblSelectedKeyb.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jlblSelectedKeyb.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jlblSelectedKeybMouseClicked(evt);
}
});
jlblSelectedKeyb.addMouseMotionListener(new
java.awt.event.MouseMotionAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
jlblSelectedKeybMouseMoved(evt);
}
});
jpPanelControl.add(jlblSelectedKeyb, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 110, 230, 60));

jlblSelectedHome.setCursor(new
java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jlblSelectedHome.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jlblSelectedHomeMouseClicked(evt);
}
});
jlblSelectedHome.addMouseMotionListener(new
java.awt.event.MouseMotionAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
jlblSelectedHomeMouseMoved(evt);
}
});
jpPanelControl.add(jlblSelectedHome, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 60, 230, 50));
jlblLine_ON5.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/line2.png"))); // NOI18N
jpPanelControl.add(jlblLine_ON5, new
org.netbeans.lib.awtextra.AbsoluteConstraints(-10, 380, 180, 10));

jlblLine_ON4.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/line2.png"))); // NOI18N
jpPanelControl.add(jlblLine_ON4, new
org.netbeans.lib.awtextra.AbsoluteConstraints(-10, 320, 180, 10));

jlblLine_ON3.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/line2.png"))); // NOI18N
jpPanelControl.add(jlblLine_ON3, new
org.netbeans.lib.awtextra.AbsoluteConstraints(-10, 260, 180, 10));

jlblLine_ON2.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/line2.png"))); // NOI18N
jpPanelControl.add(jlblLine_ON2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(-10, 210, 180, 10));

jlblLine_ON1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/line2.png"))); // NOI18N
jpPanelControl.add(jlblLine_ON1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(-10, 150, 180, 10));

jlblLine_ON.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/line2.png"))); // NOI18N
jpPanelControl.add(jlblLine_ON, new org.netbeans.lib.awtextra.AbsoluteConstraints(-
10, 90, 180, 10));

jlblKeyboard.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Bar_Chart_32px.png"))); //
NOI18N
jpPanelControl.add(jlblKeyboard, new
org.netbeans.lib.awtextra.AbsoluteConstraints(190, 120, 40, 40));

jlblEstadistic.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Bar_Chart_32px.png"))); //
NOI18N
jpPanelControl.add(jlblEstadistic, new
org.netbeans.lib.awtextra.AbsoluteConstraints(190, 350, 40, 40));

jlblHome.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Home_32px.png"))); //
NOI18N
jpPanelControl.add(jlblHome, new
org.netbeans.lib.awtextra.AbsoluteConstraints(190, 60, 40, 40));

jlblMonitor.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Shopping_Cart_32px.png"
))); // NOI18N
jpPanelControl.add(jlblMonitor, new
org.netbeans.lib.awtextra.AbsoluteConstraints(190, 170, 40, 50));

jlblMouse.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Shopping_Cart_32px.png"
))); // NOI18N
jpPanelControl.add(jlblMouse, new
org.netbeans.lib.awtextra.AbsoluteConstraints(190, 230, 40, 50));

jlblCart.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Shopping_Cart_32px.png"
))); // NOI18N
jpPanelControl.add(jlblCart, new org.netbeans.lib.awtextra.AbsoluteConstraints(190,
280, 40, 60));
jlblMenu.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Menu_32px.png"))); //
NOI18N
jlblMenu.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jlblMenu.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jlblMenuMouseClicked(evt);
}
});
jpPanelControl.add(jlblMenu, new org.netbeans.lib.awtextra.AbsoluteConstraints(190,
10, 40, 40));

jlblStadistics.setFont(new java.awt.Font("Decker", 0, 18)); // NOI18N


jlblStadistics.setForeground(new java.awt.Color(111, 174, 2));
jlblStadistics.setText("Stats");
jpPanelControl.add(jlblStadistics, new
org.netbeans.lib.awtextra.AbsoluteConstraints(80, 350, 40, 40));

jlblCarts.setFont(new java.awt.Font("Decker", 0, 18)); // NOI18N


jlblCarts.setForeground(new java.awt.Color(111, 174, 2));
jlblCarts.setText("Cart");
jpPanelControl.add(jlblCarts, new org.netbeans.lib.awtextra.AbsoluteConstraints(80,
290, 60, 40));

jlblMouses.setFont(new java.awt.Font("Decker", 0, 18)); // NOI18N


jlblMouses.setForeground(new java.awt.Color(111, 174, 2));
jlblMouses.setText("Ventas");
jpPanelControl.add(jlblMouses, new
org.netbeans.lib.awtextra.AbsoluteConstraints(70, 230, 70, 40));
jlblMonitors.setFont(new java.awt.Font("Decker", 0, 18)); // NOI18N
jlblMonitors.setForeground(new java.awt.Color(111, 174, 2));
jlblMonitors.setText("Compra");
jpPanelControl.add(jlblMonitors, new
org.netbeans.lib.awtextra.AbsoluteConstraints(70, 180, 90, 40));

jlblKeyboards.setFont(new java.awt.Font("Decker", 0, 18)); // NOI18N


jlblKeyboards.setForeground(new java.awt.Color(111, 174, 2));
jlblKeyboards.setText("Almacen");
jpPanelControl.add(jlblKeyboards, new
org.netbeans.lib.awtextra.AbsoluteConstraints(60, 120, 120, 40));

jlblHomee.setFont(new java.awt.Font("Decker", 0, 18)); // NOI18N


jlblHomee.setForeground(new java.awt.Color(111, 174, 2));
jlblHomee.setText("Home");
jpPanelControl.add(jlblHomee, new org.netbeans.lib.awtextra.AbsoluteConstraints(80,
60, 60, 40));

jButton1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Sign_Out_32px.png"))); //
NOI18N
jButton1.setBorder(null);
jButton1.setBorderPainted(false);
jButton1.setContentAreaFilled(false);
jButton1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jButton1.setRolloverIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Sign_Out_32px_1.png")));
// NOI18N
jButton1.setRolloverSelectedIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Sign_Out_32px_1.png")));
// NOI18N
jButton1.setSelectedIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Sign_Out_32px_1.png")));
// NOI18N
jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jButton1MouseClicked(evt);
}
});
jpPanelControl.add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(180,
432, 50, 50));

jPanelControl.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/PANEL.png"))); // NOI18N
jpPanelControl.add(jPanelControl, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 230, 497));

getContentPane().add(jpPanelControl, new
org.netbeans.lib.awtextra.AbsoluteConstraints(-180, 1, 230, 496));

JpPerfil.setOpaque(false);
JpPerfil.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jbtnEditarPerfíl.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/edit-perf.png"))); // NOI18N
jbtnEditarPerfíl.setBorder(null);
jbtnEditarPerfíl.setBorderPainted(false);
jbtnEditarPerfíl.setContentAreaFilled(false);
jbtnEditarPerfíl.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jbtnEditarPerfíl.setRolloverIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/edit-perf_on.png"))); // NOI18N
jbtnEditarPerfíl.setRolloverSelectedIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/edit-perf_on.png"))); // NOI18N
jbtnEditarPerfíl.setSelectedIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/edit-perf_on.png"))); // NOI18N
JpPerfil.add(jbtnEditarPerfíl, new org.netbeans.lib.awtextra.AbsoluteConstraints(370,
230, 110, 20));

jLabel1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/wc.png"))); // NOI18N
JpPerfil.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 60, 130,
140));

jLabel4.setFont(new java.awt.Font("Corbel", 1, 36)); // NOI18N


jLabel4.setForeground(new java.awt.Color(255, 255, 255));
jLabel4.setText("VIDA Y SALUD");
JpPerfil.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 130, -1,
-1));

jSeparator2.setBackground(new java.awt.Color(26, 26, 26));


jSeparator2.setForeground(new java.awt.Color(26, 26, 26));
jSeparator2.setOrientation(javax.swing.SwingConstants.VERTICAL);
JpPerfil.add(jSeparator2, new org.netbeans.lib.awtextra.AbsoluteConstraints(520, 210,
20, 250));

jSeparator1.setBackground(new java.awt.Color(111, 174, 2));


jSeparator1.setForeground(new java.awt.Color(111, 174, 2));
JpPerfil.add(jSeparator1, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 200,
840, 10));

jLabel14.setFont(new java.awt.Font("Decker", 0, 14)); // NOI18N


jLabel14.setForeground(new java.awt.Color(111, 174, 2));
jLabel14.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel14.setText("Comprado Recientemente");
JpPerfil.add(jLabel14, new org.netbeans.lib.awtextra.AbsoluteConstraints(630, 210,
240, 30));

jLabel9.setFont(new java.awt.Font("Decker", 0, 14)); // NOI18N


jLabel9.setForeground(new java.awt.Color(255, 255, 255));
jLabel9.setText("4");
JpPerfil.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 60, -1, -
1));

jLabel15.setFont(new java.awt.Font("Decker", 0, 14)); // NOI18N


jLabel15.setForeground(new java.awt.Color(111, 174, 2));
jLabel15.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel15.setText("Perfíl");
JpPerfil.add(jLabel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 210,
240, 30));

jLabel11.setFont(new java.awt.Font("Decker", 0, 14)); // NOI18N


jLabel11.setForeground(new java.awt.Color(255, 255, 255));
jLabel11.setText("1106");
JpPerfil.add(jLabel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(680, 60, 40,
-1));

jLabel12.setFont(new java.awt.Font("Decker", 0, 14)); // NOI18N


jLabel12.setForeground(new java.awt.Color(255, 255, 255));
jLabel12.setText("Subscriptores");
JpPerfil.add(jLabel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(660, 30, -1,
-1));
jLabel8.setFont(new java.awt.Font("Decker", 0, 14)); // NOI18N
jLabel8.setForeground(new java.awt.Color(255, 255, 255));
jLabel8.setText("Video Subidos");
JpPerfil.add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 30, -1, -
1));

jLabel7.setBackground(new java.awt.Color(111, 135, 75));


jLabel7.setForeground(new java.awt.Color(71, 88, 76));
jLabel7.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/portada.png"))); // NOI18N
jLabel7.setOpaque(true);
JpPerfil.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 0, 949,
130));

getContentPane().add(JpPerfil, new org.netbeans.lib.awtextra.AbsoluteConstraints(0,


0, -1, -1));

jpHome.setOpaque(false);
jpHome.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel34.setBackground(new java.awt.Color(224, 224, 224));


jLabel34.setForeground(new java.awt.Color(224, 224, 224));
jLabel34.setText("Anticonseptivos");
jpHome.add(jLabel34, new org.netbeans.lib.awtextra.AbsoluteConstraints(730, 450, -
1, -1));

jLabel35.setBackground(new java.awt.Color(224, 224, 224));


jLabel35.setForeground(new java.awt.Color(224, 224, 224));
jLabel35.setText("Diclofenaco");
jpHome.add(jLabel35, new org.netbeans.lib.awtextra.AbsoluteConstraints(610, 450, -
1, -1));

jLabel36.setBackground(new java.awt.Color(224, 224, 224));


jLabel36.setForeground(new java.awt.Color(224, 224, 224));
jLabel36.setText("Ranitirina");
jpHome.add(jLabel36, new org.netbeans.lib.awtextra.AbsoluteConstraints(470, 450, -
1, -1));

jLabel37.setBackground(new java.awt.Color(224, 224, 224));


jLabel37.setForeground(new java.awt.Color(224, 224, 224));
jLabel37.setText("Penicilina");
jpHome.add(jLabel37, new org.netbeans.lib.awtextra.AbsoluteConstraints(320, 450, -
1, -1));

jLabel38.setBackground(new java.awt.Color(224, 224, 224));


jLabel38.setForeground(new java.awt.Color(224, 224, 224));
jLabel38.setText("Sildenafil");
jpHome.add(jLabel38, new org.netbeans.lib.awtextra.AbsoluteConstraints(180, 450, -
1, -1));

jLabel33.setBackground(new java.awt.Color(224, 224, 224));


jLabel33.setForeground(new java.awt.Color(224, 224, 224));
jLabel33.setText("Esteroides");
jpHome.add(jLabel33, new org.netbeans.lib.awtextra.AbsoluteConstraints(600, 250, -
1, -1));

jLabel32.setBackground(new java.awt.Color(224, 224, 224));


jLabel32.setForeground(new java.awt.Color(224, 224, 224));
jLabel32.setText("Ibuprofeno");
jpHome.add(jLabel32, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 250, -
1, -1));

jLabel30.setBackground(new java.awt.Color(224, 224, 224));


jLabel30.setForeground(new java.awt.Color(224, 224, 224));
jLabel30.setText("Morfina");
jpHome.add(jLabel30, new org.netbeans.lib.awtextra.AbsoluteConstraints(470, 250, -
1, -1));

jLabel19.setBackground(new java.awt.Color(224, 224, 224));


jLabel19.setForeground(new java.awt.Color(224, 224, 224));
jLabel19.setText("Rufilin");
jpHome.add(jLabel19, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 250, -
1, -1));

jLabel31.setBackground(new java.awt.Color(224, 224, 224));


jLabel31.setForeground(new java.awt.Color(224, 224, 224));
jLabel31.setText("Pastillas de dia Siguiente");
jpHome.add(jLabel31, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 250, -
1, -1));

jSeparator3.setBackground(new java.awt.Color(111, 174, 2));


jSeparator3.setForeground(new java.awt.Color(111, 174, 2));
jpHome.add(jSeparator3, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 320,
840, 20));

jLabel22.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/ShopImage/1.jpg"))); // NOI18N
jLabel22.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(111, 174, 2)));
jpHome.add(jLabel22, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 150,
120, 120));

jLabel17.setFont(new java.awt.Font("Decker", 0, 22)); // NOI18N


jLabel17.setForeground(new java.awt.Color(255, 255, 255));
jLabel17.setText("VISTO RECIENTEMENTE");
jpHome.add(jLabel17, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 290,
240, 30));

jSeparator4.setBackground(new java.awt.Color(111, 174, 2));


jSeparator4.setForeground(new java.awt.Color(111, 174, 2));
jpHome.add(jSeparator4, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 120,
840, 20));

jLabel18.setFont(new java.awt.Font("Decker", 0, 22)); // NOI18N


jLabel18.setForeground(new java.awt.Color(255, 255, 255));
jLabel18.setText("LO MAS VENDIDO");
jpHome.add(jLabel18, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 90, 180,
30));

jLabel20.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/ShopImage/2.jpg"))); // NOI18N
jLabel20.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(111, 174, 2)));
jpHome.add(jLabel20, new org.netbeans.lib.awtextra.AbsoluteConstraints(710, 150,
120, 120));

jLabel21.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/ShopImage/3.jpg"))); // NOI18N
jLabel21.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(111, 174, 2)));
jpHome.add(jLabel21, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 150,
120, 120));

jLabel24.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/ShopImage/5.jpg"))); // NOI18N
jLabel24.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(111, 174, 2)));
jpHome.add(jLabel24, new org.netbeans.lib.awtextra.AbsoluteConstraints(570, 150,
120, 120));

jLabel25.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/ShopImage/7.jpg"))); // NOI18N
jLabel25.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(111, 174, 2)));
jpHome.add(jLabel25, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 350,
120, 120));

jLabel26.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/ShopImage/6.jpg"))); // NOI18N
jLabel26.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(111, 174, 2)));
jpHome.add(jLabel26, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 350,
120, 120));

jLabel27.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/ShopImage/9.jpg"))); // NOI18N
jLabel27.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(111, 174, 2)));
jpHome.add(jLabel27, new org.netbeans.lib.awtextra.AbsoluteConstraints(430, 350,
120, 120));

jLabel28.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/ShopImage/10.jpg"))); // NOI18N
jLabel28.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(111, 174, 2)));
jpHome.add(jLabel28, new org.netbeans.lib.awtextra.AbsoluteConstraints(570, 350,
120, 120));

jLabel29.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/ShopImage/11.jpg"))); // NOI18N
jLabel29.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(111, 174, 2)));
jpHome.add(jLabel29, new org.netbeans.lib.awtextra.AbsoluteConstraints(710, 350,
120, 120));

jLabel23.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/ShopImage/8.jpg"))); // NOI18N
jLabel23.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(111, 174, 2)));
jpHome.add(jLabel23, new org.netbeans.lib.awtextra.AbsoluteConstraints(430, 150,
120, 120));

jLabel2.setFont(new java.awt.Font("Bebas Kai", 0, 36)); // NOI18N


jLabel2.setForeground(new java.awt.Color(255, 255, 255));
jLabel2.setText("HOME");
jpHome.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 16, 110,
50));

getContentPane().add(jpHome, new org.netbeans.lib.awtextra.AbsoluteConstraints(0,


0, -1, -1));

jpBackground.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jlblBackground.setBackground(new java.awt.Color(111, 174, 2));


jlblBackground.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/Login.png"))); // NOI18N
jlblBackground.setText("jLabel1");
jpBackground.add(jlblBackground, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 1000, 500));

getContentPane().add(jpBackground, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1));

pack();
}// </editor-fold>

private void jlblCerrarMouseClicked(java.awt.event.MouseEvent evt) {

try {
int dialogButon = JOptionPane.YES_NO_OPTION;
int result = JOptionPane.showConfirmDialog(null, "Desea Cerrar el sistema?",
"EXIT", dialogButon);
if (result == 0) {
System.exit(0);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(this, e);
}

private void jlblMinimizarMouseClicked(java.awt.event.MouseEvent evt) {


this.setState(yLogin.ICONIFIED);
}
private void jpPanelControlMouseDragged(java.awt.event.MouseEvent evt) {

private void jpPanelControlMouseExited(java.awt.event.MouseEvent evt) {

private void jpPanelControlMouseMoved(java.awt.event.MouseEvent evt) {

private void jlblSelectedHomeMouseMoved(java.awt.event.MouseEvent evt) {

private void jlblSelectedHomeMouseClicked(java.awt.event.MouseEvent evt) {


jlblLine_ON.setVisible(true);
jlblLine_ON1.setVisible(false);
jlblLine_ON2.setVisible(false);
jlblLine_ON3.setVisible(false);
jlblLine_ON4.setVisible(false);
jlblLine_ON5.setVisible(false);

jpHome.setVisible(true);
JpPerfil.setVisible(false);
}
private void jlblSelectedKeybMouseClicked(java.awt.event.MouseEvent evt) {

jlblLine_ON.setVisible(false);
jlblLine_ON1.setVisible(true);
jlblLine_ON2.setVisible(false);
jlblLine_ON3.setVisible(false);
jlblLine_ON4.setVisible(false);
jlblLine_ON5.setVisible(false);

jpHome.setVisible(false);

private void jlblSelectedMonitorMouseClicked(java.awt.event.MouseEvent evt) {


jlblLine_ON.setVisible(false);
jlblLine_ON1.setVisible(false);
jlblLine_ON2.setVisible(true);
jlblLine_ON3.setVisible(false);
jlblLine_ON4.setVisible(false);
jlblLine_ON5.setVisible(false);

private void jlblSelectedMouseMouseClicked(java.awt.event.MouseEvent evt) {


jlblLine_ON.setVisible(false);
jlblLine_ON1.setVisible(false);
jlblLine_ON2.setVisible(false);
jlblLine_ON3.setVisible(true);
jlblLine_ON4.setVisible(false);
jlblLine_ON5.setVisible(false);

private void jlblSelectedCartMouseClicked(java.awt.event.MouseEvent evt) {


jlblLine_ON.setVisible(false);
jlblLine_ON1.setVisible(false);
jlblLine_ON2.setVisible(false);
jlblLine_ON3.setVisible(false);
jlblLine_ON4.setVisible(true);
jlblLine_ON5.setVisible(false);
}

private void jlblSelectedStatsMouseClicked(java.awt.event.MouseEvent evt) {


jlblLine_ON.setVisible(false);
jlblLine_ON1.setVisible(false);
jlblLine_ON2.setVisible(false);
jlblLine_ON3.setVisible(false);
jlblLine_ON4.setVisible(false);
jlblLine_ON5.setVisible(true);

Visual v2 = new Visual();


v2.setVisible(true);
this.dispose();
}

private void jlblMenuMouseClicked(java.awt.event.MouseEvent evt) {


ControlPanelMoved();
ControlPanelExited();

private void formWindowOpened(java.awt.event.WindowEvent evt) {


jlblLine_ON.setVisible(true);
jlblLine_ON1.setVisible(false);
jlblLine_ON2.setVisible(false);
jlblLine_ON3.setVisible(false);
jlblLine_ON4.setVisible(false);
jlblLine_ON5.setVisible(false);
}

private void jbtnPerfilMouseClicked(java.awt.event.MouseEvent evt) {


JpPerfil.setVisible(true);
jpHome.setVisible(false);
}

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {

try {
int dialogButon = JOptionPane.YES_NO_OPTION;
int result = JOptionPane.showConfirmDialog(null, "Desea Cerrar el sistema?",
"EXIT", dialogButon);
if (result == 0) {
Log frmLog = new Log();
dispose();
frmLog.setVisible(true);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(this, e);
}

private void jlblSelectedKeybMouseMoved(java.awt.event.MouseEvent evt) {


// TODO add your handling code here:
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and
feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Windows".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(yLogin.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(yLogin.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(yLogin.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(yLogin.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new yLogin().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JPanel JpPerfil;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel19;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel20;
private javax.swing.JLabel jLabel21;
private javax.swing.JLabel jLabel22;
private javax.swing.JLabel jLabel23;
private javax.swing.JLabel jLabel24;
private javax.swing.JLabel jLabel25;
private javax.swing.JLabel jLabel26;
private javax.swing.JLabel jLabel27;
private javax.swing.JLabel jLabel28;
private javax.swing.JLabel jLabel29;
private javax.swing.JLabel jLabel30;
private javax.swing.JLabel jLabel31;
private javax.swing.JLabel jLabel32;
private javax.swing.JLabel jLabel33;
private javax.swing.JLabel jLabel34;
private javax.swing.JLabel jLabel35;
private javax.swing.JLabel jLabel36;
private javax.swing.JLabel jLabel37;
private javax.swing.JLabel jLabel38;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JLabel jPanelControl;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JSeparator jSeparator3;
private javax.swing.JSeparator jSeparator4;
private javax.swing.JButton jbtnConfig;
private javax.swing.JButton jbtnEditarPerfíl;
private javax.swing.JButton jbtnPerfil;
private javax.swing.JLabel jlblBackground;
private javax.swing.JLabel jlblCart;
private javax.swing.JLabel jlblCarts;
private javax.swing.JLabel jlblCerrar;
private javax.swing.JLabel jlblEstadistic;
private javax.swing.JLabel jlblHome;
private javax.swing.JLabel jlblHomee;
private javax.swing.JLabel jlblKeyboard;
private javax.swing.JLabel jlblKeyboards;
private javax.swing.JLabel jlblLine_ON;
private javax.swing.JLabel jlblLine_ON1;
private javax.swing.JLabel jlblLine_ON2;
private javax.swing.JLabel jlblLine_ON3;
private javax.swing.JLabel jlblLine_ON4;
private javax.swing.JLabel jlblLine_ON5;
private javax.swing.JLabel jlblMenu;
private javax.swing.JLabel jlblMinimizar;
private javax.swing.JLabel jlblMonitor;
private javax.swing.JLabel jlblMonitors;
private javax.swing.JLabel jlblMouse;
private javax.swing.JLabel jlblMouses;
private javax.swing.JLabel jlblSelectedCart;
private javax.swing.JLabel jlblSelectedHome;
private javax.swing.JLabel jlblSelectedKeyb;
private javax.swing.JLabel jlblSelectedMonitor;
private javax.swing.JLabel jlblSelectedMouse;
private javax.swing.JLabel jlblSelectedStats;
private javax.swing.JLabel jlblStadistics;
private javax.swing.JPanel jpBackground;
private javax.swing.JPanel jpHome;
private javax.swing.JPanel jpPanelControl;
// End of variables declaration
}

ARTICULOS
package Inicio;
import Slide.sSlide;
import java.awt.Event;
import java.awt.event.KeyEvent;
import javax.swing.JOptionPane;
import Otros.Limpiar_txt;
import Otros.imgTabla;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.table.DefaultTableModel;
import yFrame.yLogin;

/**
*
* @author David
*/
public class Visual extends javax.swing.JFrame {

/**
* Creates new form Visual
*/

Limpiar_txt lt = new Limpiar_txt();

private String ruta_txt = "mi.txt";

Producto p;
Proceso rp;

int clic_tabla;

public Visual() {
initComponents();
rp = new Proceso();
try{
cargar_txt();
listarRegistro();
}catch(Exception ex){
mensaje("No existe el archivo txt");
}
}

public void cargar_txt(){


File ruta = new File(ruta_txt);
try{

FileReader fi = new FileReader(ruta);


BufferedReader bu = new BufferedReader(fi);

String linea = null;


while((linea = bu.readLine())!=null){
StringTokenizer st = new StringTokenizer(linea, ",");
p = new Producto();
p.setCodigo(Integer.parseInt(st.nextToken()));
p.setNombre(st.nextToken());
p.setPrecio(Double.parseDouble(st.nextToken()));
p.setDescripcion(st.nextToken());
rp.agregarRegistro(p);
}
bu.close();
}catch(Exception ex){
mensaje("Error al cargar archivo: "+ex.getMessage());
System.out.println(ex.getMessage());
}
}

public void grabar_txt(){


FileWriter fw;
PrintWriter pw;
try{
fw = new FileWriter(ruta_txt);
pw = new PrintWriter(fw);

for(int i = 0; i < rp.cantidadRegistro(); i++){


p = rp.obtenerRegistro(i);
pw.println(String.valueOf(p.getCodigo()+", "+p.getNombre()+",
"+p.getPrecio()+", "+p.getDescripcion()));
}
pw.close();

}catch(Exception ex){
mensaje("Error al grabar archivo: "+ex.getMessage());
System.out.println(ex.getMessage());
}
}

public void ingresarRegistro(File ruta){


try{
if(leerCodigo() == -666)mensaje("Ingresar codigo entero");
else if(leerNombre() == null)mensaje("Ingresar Nombre");
else if(leerPrecio() == -666) mensaje("Ingresar Precio");
else if(leerDescripcion() == null)mensaje("Ingresar Descripcion");
else{
p = new Producto(leerCodigo(), leerNombre(), leerPrecio(), leerDescripcion());
if(rp.buscaCodigo(p.getCodigo())!= -1)mensaje("Este codigo ya existe");
else rp.agregarRegistro(p);

grabar_txt();
listarRegistro();
//lt.limpiar_texto(panel);
}
}catch(Exception ex){
mensaje(ex.getMessage());
}
}

public void modificarRegistro(File ruta){


try{
if(leerCodigo() == -666)mensaje("Ingresar codigo entero");
else if(leerNombre() == null)mensaje("Ingresar Nombre");
else if(leerPrecio() == -666) mensaje("Ingresar Precio");
else if(leerDescripcion() == null)mensaje("Ingresar Descripcion");
else{
int codigo = rp.buscaCodigo(leerCodigo());
p = new Producto(leerCodigo(), leerNombre(), leerPrecio(), leerDescripcion());

if(codigo == -1)rp.agregarRegistro(p);
else rp.modificarRegistro(codigo, p);

grabar_txt();
listarRegistro();
// lt.limpiar_texto(panel);
}
}catch(Exception ex){
mensaje(ex.getMessage());
}
}

public void eliminarRegistro(){


try{
if(leerCodigo() == -666) mensaje("Ingrese codigo entero");

else{
int codigo = rp.buscaCodigo(leerCodigo());
if(codigo == -1) mensaje("codigo no existe");

else{
int s = JOptionPane.showConfirmDialog(null, "Esta seguro de eliminar este
producto","Si/No",0);
if(s == 0){
rp.eliminarRegistro(codigo);

grabar_txt();
listarRegistro();
// lt.limpiar_texto(panel);
}
}

}
}catch(Exception ex){
mensaje(ex.getMessage());
}
}

public void listarRegistro(){


DefaultTableModel dt = new DefaultTableModel(){
@Override
public boolean isCellEditable(int row, int column){
return false;
}
};

dt.addColumn("Codigo");
dt.addColumn("Nombre");
dt.addColumn("Precio");
dt.addColumn("Descripcion");

tabla.setDefaultRenderer(Object.class, new imgTabla());

Object fila[] = new Object[dt.getColumnCount()];


for(int i = 0; i < rp.cantidadRegistro(); i++){
p = rp.obtenerRegistro(i);
fila[0] = p.getCodigo();
fila[1] = p.getNombre();
fila[2] = p.getPrecio();
fila[3] = p.getDescripcion();
dt.addRow(fila);
}
tabla.setModel(dt);
tabla.setRowHeight(60);
}

public int leerCodigo(){


try{
int codigo = Integer.parseInt(txtCodigo.getText().trim());
return codigo;
}catch(Exception ex){
return -666;
}
}

public String leerNombre(){


try{
String nombre = txtNombre.getText().trim().replace(" ", "_");
return nombre;
}catch(Exception ex){
return null;
}
}

public double leerPrecio(){


try{
double precio = Double.parseDouble(txtPrecio.getText().trim());
return precio;
}catch(Exception ex){
return -666;
}
}

public Object leerDescripcion(){


try{
Object descripcion = txtDescripcion.getText().trim();
return descripcion;
}catch(Exception ex){
return null;
}
}

public byte[] leerFoto(File ruta){


try{
byte[] icono = new byte[(int) ruta.length()];
InputStream input = new FileInputStream(ruta);
input.read(icono);
return icono;
}catch(Exception ex){
return null;
}
}
/*
public byte[] leerFoto2(int codigo){
p = rp.obtenerRegistro(codigo);
try{
return p.getFoto();
}catch(Exception ex){
return null;
}
}*/

public void mensaje(String texto){


JOptionPane.showMessageDialog(null, texto);
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jButton6 = new javax.swing.JButton();


jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jButton5 = new javax.swing.JButton();
lblFoto = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
tabla = new javax.swing.JTable();
jButton3 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton1 = new javax.swing.JButton();
txtDescripcion = new javax.swing.JTextField();
txtPrecio = new javax.swing.JTextField();
txtRuta = new javax.swing.JTextField();
jButton4 = new javax.swing.JButton();
txtNombre = new javax.swing.JTextField();
txtCodigo = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Base de Datos con Bloc de Notas .txt");
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jButton6.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Home_32px.png"))); //
NOI18N
jButton6.setText("HOME");
jButton6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton6ActionPerformed(evt);
}
});
getContentPane().add(jButton6, new
org.netbeans.lib.awtextra.AbsoluteConstraints(820, 250, 110, 30));
jLabel10.setFont(new java.awt.Font("Corbel", 1, 24)); // NOI18N
jLabel10.setForeground(new java.awt.Color(255, 255, 255));
jLabel10.setText("Codigo");
getContentPane().add(jLabel10, new
org.netbeans.lib.awtextra.AbsoluteConstraints(30, 80, -1, -1));

jLabel11.setFont(new java.awt.Font("Corbel", 1, 24)); // NOI18N


jLabel11.setForeground(new java.awt.Color(255, 255, 255));
jLabel11.setText("Precio");
getContentPane().add(jLabel11, new
org.netbeans.lib.awtextra.AbsoluteConstraints(30, 160, -1, -1));

jLabel12.setFont(new java.awt.Font("Corbel", 1, 24)); // NOI18N


jLabel12.setForeground(new java.awt.Color(255, 255, 255));
jLabel12.setText("Nombre");
getContentPane().add(jLabel12, new
org.netbeans.lib.awtextra.AbsoluteConstraints(30, 120, -1, -1));

jLabel13.setFont(new java.awt.Font("Corbel", 1, 24)); // NOI18N


jLabel13.setForeground(new java.awt.Color(255, 255, 255));
jLabel13.setText("Descripcion");
getContentPane().add(jLabel13, new
org.netbeans.lib.awtextra.AbsoluteConstraints(30, 200, -1, -1));

jLabel9.setFont(new java.awt.Font("Corbel", 1, 24)); // NOI18N


jLabel9.setForeground(new java.awt.Color(255, 255, 255));
jLabel9.setText("Buscar");
getContentPane().add(jLabel9, new
org.netbeans.lib.awtextra.AbsoluteConstraints(540, 80, -1, -1));
jLabel7.setFont(new java.awt.Font("Corbel", 3, 36)); // NOI18N
jLabel7.setForeground(new java.awt.Color(255, 153, 0));
jLabel7.setText("INGRESAR ARTICULO");
getContentPane().add(jLabel7, new
org.netbeans.lib.awtextra.AbsoluteConstraints(300, 20, -1, -1));

jButton5.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Iconos/limpiar.png"))); // NOI18N
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});
getContentPane().add(jButton5, new
org.netbeans.lib.awtextra.AbsoluteConstraints(690, 250, -1, -1));

lblFoto.setBackground(new java.awt.Color(204, 255, 204));


lblFoto.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
lblFoto.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
getContentPane().add(lblFoto, new
org.netbeans.lib.awtextra.AbsoluteConstraints(750, 68, 150, 120));

tabla.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Codigo", "Nombre", "Precio", "Descripcion"
}
));
tabla.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tablaMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tabla);

getContentPane().add(jScrollPane1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 290, 960, 200));

jButton3.setFont(new java.awt.Font("Arial Black", 0, 14)); // NOI18N


jButton3.setText("Eliminar");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
getContentPane().add(jButton3, new
org.netbeans.lib.awtextra.AbsoluteConstraints(540, 250, -1, -1));

jButton2.setFont(new java.awt.Font("Arial Black", 0, 14)); // NOI18N


jButton2.setText("Modificar");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
getContentPane().add(jButton2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(190, 250, -1, -1));

jButton1.setFont(new java.awt.Font("Arial Black", 0, 14)); // NOI18N


jButton1.setText("Guardar");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(380, 250, -1, -1));

txtDescripcion.setFont(new java.awt.Font("SansSerif", 0, 14)); // NOI18N


getContentPane().add(txtDescripcion, new
org.netbeans.lib.awtextra.AbsoluteConstraints(180, 200, 530, -1));

txtPrecio.setFont(new java.awt.Font("SansSerif", 0, 14)); // NOI18N


getContentPane().add(txtPrecio, new
org.netbeans.lib.awtextra.AbsoluteConstraints(180, 160, 120, -1));

txtRuta.setEditable(false);
txtRuta.setFont(new java.awt.Font("Arial", 0, 10)); // NOI18N
getContentPane().add(txtRuta, new
org.netbeans.lib.awtextra.AbsoluteConstraints(540, 120, 155, -1));

jButton4.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/icons8_Mouse_32px.png"))); //
NOI18N
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
getContentPane().add(jButton4, new
org.netbeans.lib.awtextra.AbsoluteConstraints(640, 70, 70, 40));

txtNombre.setFont(new java.awt.Font("SansSerif", 0, 14)); // NOI18N


getContentPane().add(txtNombre, new
org.netbeans.lib.awtextra.AbsoluteConstraints(180, 120, 310, -1));

txtCodigo.setFont(new java.awt.Font("SansSerif", 0, 14)); // NOI18N


txtCodigo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtCodigoActionPerformed(evt);
}
});
getContentPane().add(txtCodigo, new
org.netbeans.lib.awtextra.AbsoluteConstraints(180, 80, 120, -1));

jLabel6.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/iMage/almacen.jpg"))); // NOI18N
getContentPane().add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(0,
0, 1000, 500));

jLabel8.setFont(new java.awt.Font("Corbel", 1, 36)); // NOI18N


jLabel8.setForeground(new java.awt.Color(255, 255, 255));
jLabel8.setText("VIDA Y SALUD");
getContentPane().add(jLabel8, new
org.netbeans.lib.awtextra.AbsoluteConstraints(300, 20, -1, -1));

pack();
setLocationRelativeTo(null);
}// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {


File ruta = new File(txtRuta.getText());
this.ingresarRegistro(ruta);

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {


File ruta = new File(txtRuta.getText());
this.modificarRegistro(ruta);

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {


this.eliminarRegistro();

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {


JFileChooser jf = new JFileChooser();
FileNameExtensionFilter fil = new FileNameExtensionFilter("JPG, PNG &
GIF","jpg","png","gif");
jf.setFileFilter(fil);
jf.setCurrentDirectory(new File("Fotos"));
int el = jf.showOpenDialog(this);
if(el == JFileChooser.APPROVE_OPTION){
txtRuta.setText(jf.getSelectedFile().getAbsolutePath());
lblFoto.setIcon(new ImageIcon(txtRuta.getText()));
}
}

private void tablaMouseClicked(java.awt.event.MouseEvent evt) {

clic_tabla = tabla.rowAtPoint(evt.getPoint());

int codigo = (int)tabla.getValueAt(clic_tabla, 0);


String nombre = ""+tabla.getValueAt(clic_tabla, 1);
double precio = (double)tabla.getValueAt(clic_tabla, 2);
Object descripcion = ""+tabla.getValueAt(clic_tabla, 3);

txtCodigo.setText(String.valueOf(codigo));
txtNombre.setText(nombre);
txtPrecio.setText(String.valueOf(precio));
txtDescripcion.setText(String.valueOf(descripcion));

try{
JLabel lbl = (JLabel)tabla.getValueAt(clic_tabla, 4);
lblFoto.setIcon(lbl.getIcon());
}catch(Exception ex){
}
}

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {


/* Limpiar_txt lp = new Limpiar_txt();
lp.limpiar_texto(panel);
*/
txtCodigo.setText(null);
txtNombre.setText(null);
txtPrecio.setText(null);
txtDescripcion.setText(null);

private void txtCodigoActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
yLogin v1 = new yLogin();
v1.setVisible(true);
this.dispose();
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and
feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(Visual.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(Visual.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(Visual.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(Visual.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Visual().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel lblFoto;
private javax.swing.JTable tabla;
private javax.swing.JTextField txtCodigo;
private javax.swing.JTextField txtDescripcion;
private javax.swing.JTextField txtNombre;
private javax.swing.JTextField txtPrecio;
private javax.swing.JTextField txtRuta;
// End of variables declaration
}
CAPITULO 6
CONCLUSIONES, RECOMENDACIONES Y
BIBLIOGRAFÍA
6.1 CONCLUSIONES
En base a la información recopilada la entrevista realizada se concluye que:

La implementación de la propuesta tecnológica, contribuye a transmitir y compartir


información, modernizándose de esta forma el proceso de búsqueda de medicina que
permita a los integrantes de esta empresa (trabajadores y administrador) poder
encontrar las medicinas deseadas con gran facilidad teniendo al alcance la información
necesaria y requerida. De acuerdo con los resultados obtenidos se considera necesario,
viable y factible el desarrollo del proyecto, porque contribuye a esta pequeña empresa,
para buscar su información de forma rápida y eficiente. El aplicativo sería de gran
ayuda para la farmacia porque optimizaría el tiempo de atención en las ventas.

6.2 Recomendaciones
 Capacitar a todos y cada uno de los usuarios del sistema en cuanto a manejo de
software y hardware se refiere, para que el sistema no se vea disminuido en sus
beneficios.
 Generar respaldos de información cada semana, para evitar la pérdida de la
información por cualquier imprevisto.

 Se recomienda las empresas con el mismo giro de negocios implementen este


tipo de sistemas con el objetivo de usar sus procesos de negocio. (Kendall,
2011)

6.3 Bibliografía
Kendall, K. y. (2011). Analisi y diseño de sistemas. En K. E. Kendall, Analisi y diseño de sistemas
(pág. 660). New Jersey: Pearson Educcacion de mexico.
ANEXOS
ENCUESTA
La encuesta posee como objetivo, identificar la importancia de utilizar un sistema de
información en los procesos de la empresa, además del sinnúmero de beneficios que
brinda.

ESCALA
Nº N° ITEM
SI NO

¿Un sistema de información ayudaría a mejorar los procesos


1
existentes en la farmacia?

¿Requiere la farmacia vida y salud la


2
implementación de un sistema de información?

¿Se presentan fallas en los procesos que existen en la


3
farmacia?

¿Cree usted que sería beneficioso contar con un sistema que


4
ayude a solucionar las fallas existentes?

5 ¿Tiene conocimiento del correcto uso computadoras?

¿Existe pérdida de tiempo al realizar reportes de los procesos


6
existentes?

7 ¿Existe desactualizados en la administración de datos?

Вам также может понравиться