diff --git a/1introduccion.tex b/1introduccion.tex index 17b6788..82c9112 100644 --- a/1introduccion.tex +++ b/1introduccion.tex @@ -6,14 +6,25 @@ \chapter{Introducción} \section{Presentación} Este documento contiene la especificación de los requerimientos del usuario y del sistema a desarrollar. -Tiene como objetivo establecer la naturaleza y funciones del sistema para su evaluacion al final del semestre. +Tiene como objetivo establecer la naturaleza y funciones del sistema para su evaluación al final del semestre. Este documento debe ser aprobado por los principales responsables del proyecto. Este documento es el Documento de Análisis del proyecto “Fran Farmacias”. +Este proyecto se realiza para la solución de los multiples problemas que presenta la Franqucia de Farmacias "Fran Farmacias" los cuales son: Problemas de inventario por multiples perdidas de existencias en el almacen cuya causa es desconocida, Un balance financiero deficiente ya que los saldos de las sucursales tienen variaciones con respecto a las correspondientes, Un control no muy útil sobre los multiples empleados que operan en las sucursales asi como la distribución de medicamentos por parte de los proveedores. \section{para qué sirve.} +Este documento sirve para un manejo optimo del sistema, presentamos y describimos la completa operación del sistema asi como sus posibles errores y soluciones.\\ +En este documento solo hacemos referencia a la Franquicia de Farmacias “Fran Farmacias”. \section{Que contiene.} +En este documento se encuentra el análisis completo del sistema, así como los diagramas UML requeridos para el análisis, y las demás tecnologías para este análisis en particular así como políticas propias de la farmacia, \section{Organización} -\section{Aplicabilidad} +Este documento esta dividido por capítulos:\\ +2-.Modelo Del Negocio: Presentamos un pequeño contexto del ámbito que representa la Franquicia de Farmacias ``Fran Farmacias'', Los términos del negocio a especificar para evitar problemas con los términos utilizados, El modelo del dominio del problema asi como las reglas presentes del negocio junto con sus procesos.\\ +3-.Identificación de requerimientos: Describiremos las necesidades que debe cumplir nuestro sistema así como post y pre-condiciones junto con los comportamientos del sistema.\\ +4-.Modelo Dinámico Y Casos de uso: Definimos y especificamos los distintos Actores que tendrán interacción con nuestro sistema así como los distintos y múltiples Casos de uso.\\ +5-.Modelo de interacción:Se específican las interfaces de usuario que se ocuparan para realizar el sistema. +mismas que se ocupan para ayudar a especificar formularios y pantallas en la seccion 4, en la parte de casos de uso. +También sirven para fácilitar la explicación del funcionamiento del sistema.\\ +6-.Bitácora de Mensajes: Especificamos y definimos los errores o fallas que llega a presentar el sistema; mostramos la pantalla donde se produce tal falla y sus posibles razones.\\ \section{Notación, Simbolos y Convenciones Utilizadas} Los requerimientos funcionales utilizan una clave RFX, donde:\\ diff --git a/2modelonegocio.tex b/2modelonegocio.tex index 934bad1..4d907e8 100644 --- a/2modelonegocio.tex +++ b/2modelonegocio.tex @@ -9,7 +9,6 @@ \section{Términos del Negocio} Cliente Preferente: Se refiere a todas aquellas personas físicas y morales que Compran medicamentos y que están registrados en el sistema, estos clientes cuentan con un monedero electrónico - Dosis: Cantidad a ingerir o suministrar expresado en unidades de volumen o peso(gramos) por unidad de un Medicamento.\\ Dueño: Es propietario de la farmacia y de todas sus sucursales, se encarga de la contratación de todos los Empleados, es el Empleado con mayor rango en “Fran Farmacias”.\\ @@ -26,9 +25,16 @@ \section{Términos del Negocio} Medicamento: Producto que sirve para curar, prevenir una enfermedad, para reducir sus efectos sobre el organismo o para aliviar un dolor físico.\\ +Monedero electrónico: Dinero abonado por una devolución a la cuenta del cliente preferente.\\ + Paquete De Descuento: Son paquetes que añade el dueño cuando se esta por caducar un medicamento, o es temporada en la que un medicamento tiene un rango de venta mayor que otros y se aprovecha para hacer un descuento de esos medicamentos, al conjunto de medicamentos que se van a poner en descuento es un: paquete de Descuento.\\ -Sucursal: Una extension de la farmacia donde se opera como la farmacia original. +Presentación Del Medicamento: Es el tipo de Presentación del medicamento, los cuales son:\\ +1.-Presentación Solida: Polvos, Cápsulas, Tabletas o Comprimidos, Píldoras, Grageas, Supositorios, Óvulos\\ +2.-Presentaciones Semisolidas: Pomadas o Cremas\\ +3.-Presentaciones Liquidas: Soluciones, Jarabes, Colirios, Lociones, Linimentos, Elixir, Enemas, Inhalaciones, Aerosoles\\ + +Sucursal: Una extensión de la farmacia donde se opera como la farmacia original. Esta Sucursal tiene nombre Único \\ Supervisor: (es un tipo de Empleado) Es un empleado con mayor Jerarquía que Empleado pero menor que Dueño.\\ @@ -36,14 +42,626 @@ \section{Términos del Negocio} Venta: Son los datos que se guardan de una venta de medicamento realizada.\\ Vía de Administración: Es la forma en la que el cliente se tiene que aplicar el medicamento.entre estas están: Vía Digestiva, Vía Oral, Vía Sublingual, Gastroenteritis, Vía Rectal, Vía Parental, Vía Respiratoria, Vía Tópica, Vía Oftálmica, Vía Ótica, Vía Transdérmica.\\ +\newpage +\section{Modelo de Dominio del problema} + El modelo del dominio del problema se muestra en la figura~\ref{fig:modeloDeDominio}, a continuación se describen cada una de las entidades y sus relaciones. + +\begin{figure}[htbp!] + \begin{center} + \includegraphics[width=.9\textwidth]{images/diagramaRelacional1} + \caption{Modelo del dominio del problema} + \label{fig:modeloDeDominio} + \end{center} +\end{figure} + +\begin{figure}[htbp!] + \begin{center} + \includegraphics[width=.9\textwidth]{images/diagramaRelacional2} + \caption{Modelo del dominio del problema} + \label{fig:modeloDeDominio} + \end{center} +\end{figure} +\newpage +%---------------------detalle de las entidades + +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\newenvironment{cdtEntidad}[2]{% + \def \varBusinessEntityId{#2}% + \hypertarget{#1}{\hspace{1pt}}% + \newline% + \noindent{\includegraphics[width=\textwidth]{images/uc/classRule}}% + \vspace{-25pt}% + \subsection{Entidad: #2}% + \noindent\begin{longtable}{|p{.2\textwidth}| p{.15\textwidth} | p{.46\textwidth} |p{.08\textwidth} |}% + \hline% + \multicolumn{4}{|c|}{{\cellcolor{colorSecundario}\color{white}Atributos}}\\ \hline% + {\cellcolor{colorAgua}Nombre} &% + {\cellcolor{colorAgua}Tipo} &% + {\cellcolor{colorAgua}Descripción} &% + {\cellcolor{colorAgua}Requerido}% + \\ \hline% + \endhead% +}{% + \end{longtable}% +} + +\newcommand{\brAttr}[5]{% + {\bf\hypertarget{\varBusinessEntityId:#1}{#2}} & {\em{#3}} & {#4} & #5 \\\hline +} + +\newcommand{\cdtEntityRelSection}{% + \multicolumn{4}{|c|}{{\cellcolor{colorSecundario}\color{white}Relaciones}}\\ \hline% + {\cellcolor{colorAgua}Tipo de relación} &% + {\cellcolor{colorAgua}Entidad} &% + \multicolumn{2}{|c|}{{\cellcolor{colorAgua}Rol}} + \\ \hline% +} + +\newcommand{\brRelComposition}{{\color{colorPrincipal}$\Diamondblack$\hspace{-1pt}---Composición}} +\newcommand{\brRelAgregation}{{\color{colorPrincipal}$\Diamond$\hspace{-1pt}---Agregación}} +\newcommand{\brRelGeneralization}{{\color{colorPrincipal}$\lhd$\hspace{-1pt}---Generalización}} + +\newcommand{\brRel}[3]{% + {\em{#1}} & {\bf{#2}} & \multicolumn{2}{|l|}{#3}\\\hline +} +\newpage + + +%- - - - - ------------------------------------------------- +\begin{cdtEntidad}{Dueño}{Dueño} +\brAttr{ID}{ID}{int}{Número de registro utilizado para identificar al Dueño}{Sí} + \brAttr{nombre}{Nombre}{String} + {Nombre o nombres del Dueño.}{Sí} + + \brAttr{ApellidoPaterno}{Apellido Paterno}{String} + {Apellido Paterno del Dueño.}{Sí} + + \brAttr{ApellidoMaterno}{ApellidoMaterno}{String} + {Apellido Materno del Dueño.}{No} + + \brAttr{Email}{Email}{String} + {Correo del Dueño para enviar información Laboral y entrar al sistema junto con su Clave.}{Sí} + + \brAttr{Clave}{Clave}{String} + {Forma de permitir al Dueño ingresar en el sistema junto con su correo.}{Sí} + +\end{cdtEntidad} + +%- - - - - ------------------------------------------------- +\begin{cdtEntidad}{Supervisor}{Supervisor} +\brAttr{registro}{Registro}{int}{Número de registro utilizado para identificar al supervisor}{Sí} + \brAttr{nombre}{Nombre}{String} + {Nombre o nombres del Supervisor.}{Sí} + + \brAttr{primerApellido}{Primer apellido}{String} + {Apellido Paterno del Supervisor.}{Sí} + + \brAttr{segundoApellido}{Segundo apellido}{String} + {Apellido Materno del Supervisor.}{No} + + \brAttr{Email}{Email}{String} + {Correo del Empleado para enviar información Laboral y identificar al Supervisor en el sistema con sus respectivos permisos.}{Sí} + + \brAttr{telefono}{Teléfono}{int} + {Teléfono para contactar al Supervisor.}{Sí} + + \brAttr{Contraseña}{Contraseña}{String} + {Forma de permitir al Supervisor ingresar en el sistema junto con su correo.}{Sí} + + \brAttr{Estado}{Estado}{TINYINT} + {Estado del supervisor, puede estar activado o desactivado (un tipo de dato TINYINT representa un carácter , por razones de eficiencia se utiliza este tipo de dato en vez de un booleano).}{Sí} + + \brAttr{Sucursal}{Sucursal}{Sucursal} + {Sucursal de la que esta a cargo el supervisor.}{Sí} + + \cdtEntityRelSection + \brRel{\brRelAgregation}{Sucursal}{Muchos Supervisores trabajan en muchas Sucursales} +\end{cdtEntidad} + + + +%- - - - - ------------------------------------------------- +\begin{cdtEntidad}{Cajero}{Cajero} +\brAttr{ID}{ID}{int}{Número de registro utilizado para identificar al Cajero}{Sí} + \brAttr{nombre}{Nombre}{String} + {Nombre o nombres del Cajero.}{Sí} + + \brAttr{ApellidoPaterno}{Apellido Paterno}{String} + {Apellido Paterno del Cajero.}{Sí} + + \brAttr{ApellidoMaterno}{ApellidoMaterno}{String} + {Apellido Materno del Cajero.}{No} + + \brAttr{Salaro}{Salariol}{Float} + {Salario a que cobra el cajero.}{Sí} + + \brAttr{telefono}{Teléfono}{String} + {Teléfono para contactar al Cajero.}{Sí} + + \brAttr{Email}{Email}{String} + {Correo del Cajero para enviar información Laboral y entrar al sistema junto con su Clave.}{Sí} + + \brAttr{Clave}{Clave}{String} + {Forma de permitir al Cajero ingresar en el sistema junto con su correo.}{Sí} + + \brAttr{Estado}{Estado}{TINYINT} + {Estado del cajero, puede estar activado o desactivado (un tipo de dato TINYINT representa un carácter , por razones de eficiencia se utiliza este tipo de dato en vez de un booleano).}{Sí} + + \brAttr{Sucursal}{Sucursal}{Sucursal} + {Sucursal de la que esta a cargo el supervisor.}{Sí} + + \cdtEntityRelSection + \brRel{\brRelAgregation}{Horario}{El Cajero tiene un horario} + \brRel{\brRelAgregation}{Cliente}{Un Cajero atiende a muchos clientes} + \brRel{\brRelAgregation}{Venta}{Un Cajero realiza muchas ventas} + \brRel{\brRelComposition}{Sucursal}{Una sucursal se compone de muchos cajeros} +\end{cdtEntidad} + +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\begin{cdtEntidad}{Cliente}{Cliente} + \brAttr{ID}{ID}{int}{Número de registro utilizado para identificar al Cliente}{Sí} + \brAttr{nombre}{Nombre}{String} + {Nombre o nombres del Cliente.}{Sí} + + \brAttr{ApellidoPaterno}{Apellido Paterno}{String} + {Apellido Paterno del Cliente.}{Sí} + + \brAttr{ApellidoMaterno}{ApellidoMaterno}{String} + {Apellido Materno del Cliente.}{No} + + \brAttr{Email}{Email}{String} + {Correo del cliente para enviar información sobre promociones.}{Sí} + + \brAttr{telefono}{Teléfono}{String} + {Teléfono para contactar al Cliente.}{Sí} + + \brAttr{Tarjeta}{Tarjeta}{int} + {forma única de hacer devoluciones sobre compras hechas a los clientes.}{si} + + \brAttr{Estado}{Estado}{TINYINT} + {Estado del Cliente, puede estar activado o desactivado (un tipo de dato TINYINT representa un carácter , por razones de eficiencia se utiliza este tipo de dato en vez de un booleano).}{Sí} + + \cdtEntityRelSection + \brRel{\brRelAgregation}{Cliente}{El Cliente Compra en Sucursal} +\end{cdtEntidad} +%--------------------------------------------------------- + +\begin{cdtEntidad}{Medicamento}{Medicamento} + \brAttr{ID}{ID}{Int}{Identificador del Medicamento.}{Sí} + + \brAttr{IDViaAdministracion}{IDViaAdministracion}{Int}{Identificador de la vía de Administración del Medicamento.}{Sí} + + \brAttr{IDPaqueteDescuento}{IDPaqueteDescuento}{Int}{Identificador del paquete de descuento al que pertenece el Medicamento.}{Sí} + + \brAttr{IDPresentacion}{IDPresentaicon}{Int}{Identificador del tipo de presentación del Medicamento.}{Sí} + + \brAttr{Nombre}{Nombre}{String}{Nombre del Medicamento.}{Sí} + + \brAttr{Marca}{Marca}{String}{Marca del medicamento}{Sí} + + \brAttr{FechaCaducidad}{FechaCaducidad}{DATE}{La fecha de caducidad del medicamento}{si} + + \brAttr{Lote}{Lote}{Int}{el numero de lote del medicamento}{Sí} + + \brAttr{ViaDeAdministracion}{ViaDeAdministracion}{String} + {Indica la forma en la que el medicamento debe ser ingerido}{si} + + \brAttr{Advertencias}{Advertencias}{string} + {Las precauciones que se deben tomar en cuenta con el medicamento}{si} + + \brAttr{PrecioPublico}{PrecioPublico}{int} + {El precio al que se le vende al cliente.}{si} + + \brAttr{PrecioCompra}{PrecioCompra}{Int} + {El precio al que se compra el medicamento al proveedor}{si} + + \brAttr{noIngedientesActivos}{noIngredientesActivos}{int} + {número de ingredientes activos que contiene el medicamento}{si} + + \cdtEntityRelSection + \brRel{\brRelComposition}{Medicamento}{El Medicamento Esta compuesto por IngredienteActivo} + \brRel{\brRelComposition}{Medicamento}{El Medicamento tiene una Presentacion} + \brRel{\brRelComposition}{Medicamento}{El Medicamento tiene una viaAdministracion} + \brRel{\brRelComposition}{Medicamento}{El Medicamento tiene un Lote} + \brRel{\brRelAgregation}{Medicamento}{El Medicamento se agrega a un paquete de descuento} +\end{cdtEntidad} +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\begin{cdtEntidad}{IngredienteActivo}{IngredienteActivo} + \brAttr{ID}{ID}{Int} + {El identificador al que pertenece el ingrediente activo}{Sí} + \brAttr{Nombre}{Nombre}{String} + {El Nombre del ingrediente activo}{Sí} + \brAttr{Cantidad}{Cantidad}{String} + {La cantidad del ingrediente activo presente en el Medicamento}{Sí} + +\end{cdtEntidad} +%--------------------------------------------------------- + +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\begin{cdtEntidad}{Presentación}{Presentación} + \brAttr{ID}{ID}{Int} + {El identificador al que pertenece la Presentación Del Medicamento}{Sí} + \brAttr{Nombre}{Nombre}{String} + {El Nombre del tipo de presentación}{Sí} + +\end{cdtEntidad} + +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\begin{cdtEntidad}{ViaAdministracion}{ViaAdministracion} + \brAttr{ID}{ID}{Int} + {El identificador al que pertenece a la Vía de Administración}{Sí} + \brAttr{Nombre}{Nombre}{String} + {El Nombre del tipo de Vía de Administración}{Sí} + +\end{cdtEntidad} + +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\begin{cdtEntidad}{Lote}{Lote} + \brAttr{ID}{ID}{Int} + {El identificador al que pertenece el Lote}{Sí} + \brAttr{Nombre}{Nombre}{String} + {El Nombre compuesto del lote}{Sí} + \brAttr{FechaCaducidad}{FechaCaducidad}{DATE} + {Fecha en la que el medicamento caduca}{Sí} + \brAttr{PrecioCompra}{PrecioCompra}{DATE} + {Precio en el que se compro el Lote de medicamento}{Sí} + \brAttr{Cantidad}{Cantidad}{DATE} + {Cantidad de medicamento que se registro por lote}{Sí} +\end{cdtEntidad} + +%------------------------------------------------------------ +\begin{cdtEntidad}{PaqueteDescuento}{PaqueteDescuento} + \brAttr{ID}{ID}{Int} + {Identificador del descuento.}{Sí} + \brAttr{porcentajeDescuento}{porcentajeDescuento}{Int} + {Descuento de porcentaje(\%) a aplicar sobre los medicamentos}{si} + \brAttr{FechaInicio}{FechaInicio}{DATE} + {La fecha en la que se empieza a aplicar el descuento}{si} + \brAttr{FechaFin}{FechaFin}{DATE} + {Fecha limite para aplicar Descuento}{Sí} +\end{cdtEntidad} + +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\begin{cdtEntidad}{Venta}{Venta} + + \brAttr{idVenta}{idVenta}{int} + {Identificador del la venta}{si} + + \brAttr{IDCliente}{IDCliente}{Int} + {Cliente al que se le vendió si es que este esta registrado en el sistema.}{si} + + \brAttr{IDSucursal}{IDSucursal}{Int} + {Sucursal en la que se realizó la venta}{si} + + \brAttr{IDEmpleado}{IDEmpleado}{Int} + {Empleado que realizó la venta}{si} + + \brAttr{Condición}{Condición}{TINYINT} + {Estado de la venta, puede estar activa o cancelada (un tipo de dato TINYINT representa un carácter , por razones de eficiencia se utiliza este tipo de dato en vez de un booleano).}{Sí} + + \brAttr{Comprobante}{Comprobante}{String} + {Comprobante de la venta}{si} + + \brAttr{noComprobante}{noComprobante}{String} + {Identificador de Comprobante de la venta}{si} + + \brAttr{Impuesto}{Impuesto}{Float} + {Impuesto de la venta}{si} + + \brAttr{TotalVenta}{TotalVenta}{Float} + {Costo total de la venta realizada}{si} + + \cdtEntityRelSection + + \brRel{\brRelComposition}{DetalleVenta}{Una Venta tiene muchos detalles de venta} + +\end{cdtEntidad} +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\begin{cdtEntidad}{DetalleVenta}{DetalleVenta} + + \brAttr{idDetalleVen}{idDetalleVen}{int} + {Identificador del Detalle de la venta}{si} + + \brAttr{IDVenta}{IDVenta}{Int} + {Identificador de la Venta}{si} + + \brAttr{PrecioVenta}{PrecioVenta}{Int} + {Precio de la venta realizada}{si} + + \brAttr{Cantidad}{Cantidad}{Int} + {Cantidad por la cual se realizó la venta}{si} + + \brAttr{Descuento}{Descuento}{Float} + {Descuento aplicado sobre la venta.}{Sí} + +\end{cdtEntidad} +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +%- - - - - ------------------------------------------------- +\begin{cdtEntidad}{Proveedor}{Proveedor} +\brAttr{ID}{ID}{int}{Número de registro utilizado para identificar al proveedor}{Sí} + \brAttr{nombre}{Nombre}{String} + {Nombre o nombres del proveedor.}{Sí} + + \brAttr{ApellidoPaterno}{Apellido Paterno}{String} + {Apellido Paterno del proveedor.}{Sí} + + \brAttr{ApellidoMaterno}{ApellidoMaterno}{String} + {Apellido Materno del proveedor.}{No} + + \brAttr{Email}{Email}{String} + {Correo del proveedor para poder contactar con el.}{Sí} + + \brAttr{telefono}{Teléfono}{String} + {Teléfono para contactar al proveedor.}{Sí} + + \brAttr{RFC}{RFC}{String} + {RFC del proveedor.}{Sí} + + \brAttr{Estado}{Estado}{TINYINT} + {Estado del proveedor, puede estar activado o desactivado (un tipo de dato TINYINT representa un carácter , por razones de eficiencia se utiliza este tipo de dato en vez de un booleano).}{Sí} +\end{cdtEntidad} + +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +\begin{cdtEntidad}{Ingreso}{Ingreso} +\brAttr{ID}{ID}{int}{Número de registro utilizado para identificar el ingreso}{Sí} + \brAttr{FechaHora}{FechaHora}{DATETIME} + {Fecha y Hora del ingreso.}{Sí} + + \brAttr{TotalCompra}{TotalCompra}{Int} + {Cantidad total de la compra a ingresar.}{Sí} + + \brAttr{Condición}{Condición}{TINYINT} + {Condición de la compra a ingresar.}{No} + + \brAttr{Impuesto}{Impuesto}{Double} + {Impuesto Aplicado sobre la compra a ingresar.}{Sí} + + \brAttr{Comprobante}{Comprobante}{String} + {Comprobante de la compra realizada.}{Sí} + + \brAttr{RFC}{RFC}{String} + {RFC del proveedor.}{Sí} + + \brAttr{Estado}{Estado}{TINYINT} + {Estado del proveedor, puede estar activado o desactivado (un tipo de dato TINYINT representa un carácter , por razones de eficiencia se utiliza este tipo de dato en vez de un booleano).}{Sí} + + \cdtEntityRelSection + \brRel{\brRelComposition}{Lote}{El Ingreso tiene un Lote} + \brRel{\brRelComposition}{Proveedor}{El Ingreso tiene muchos proveedores} + \brRel{\brRelComposition}{Proveedor}{El Ingreso tiene muchos proveedores} + \brRel{\brRelComposition}{Cajero}{El Ingreso lo registra un cajero} + \brRel{\brRelComposition}{Sucursal}{El Ingreso se realiza en una Sucursal} +\end{cdtEntidad} + + + + + + + + +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\begin{cdtEntidad}{Sucursal}{Sucursal} + + \brAttr{idSucursal}{idSucursal}{Int} + {Identificador único de la sucursal}{Sí} + + \brAttr{Nombre}{Nombre}{String} + {Nombre de la sucursal.}{Sí} + + \brAttr{Dirección}{Dirección}{String} + {Localización de la sucursal.}{Sí} + + \brAttr{Teléfono}{Teléfono}{String} + {Teléfono de contacto de la sucursal.}{Sí} + + \brAttr{EstadoRepublica}{EstadoRepublica}{String} + {Estado de la República donde esta ubicada la sucursal.}{Sí} + + \brAttr{noComprobante}{noComprobante}{String} + {Identificador del Comprobante sobre la compra realizada.}{Sí} +\cdtEntityRelSection + \brRel{\brRelComposition}{Lote}{La sucursal tiene muchos Ingresos de medicamentos} + \brRel{\brRelComposition}{Lote}{La sucursal tiene muchas ventas de medicamentos} + +\end{cdtEntidad} +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +\begin{cdtEntidad}{Horarios}{Horarios} + + \brAttr{ID}{ID}{Int} + {Identificador único del Horario}{Sí} + + \brAttr{Nombre}{Nombre}{String} + {Nombre del Horario.}{Sí} + + \brAttr{HoraInicio}{HoraInicio}{DATETIME} + {Hora de Inicio del Turno.}{Sí} + + \brAttr{HoraFinal}{HoraFinal}{DATETIME} + {Hora de Fin del Turno.}{Sí} + +\end{cdtEntidad} +%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +%------------------------------------------------------ +\newpage +\section{Reglas del Negocio} +%----------------------------------------------------------------------------------------- +\begin{BussinesRule}{BR1}{Desactivar Estado del empleado.} + \BRitem[Tipo:] Regla de Autorización. + \BRitem[Clase:] Habilitadora. + \BRitem[Nivel:] Control. % Otras opciones para nivel: Control, Influencia. + \BRitem[Descripción:] Si el empleado renuncia al trabajo O decide no renovar su contrato con nosotros simplemente se le desactivara su cuenta, así podemos checar todas las operaciones que este Empleado reviso durante su estadía en la sucursal o sucursales que operaba + \BRitem[Motivación:] Evitar el acceso a todas las personas que no están registradas en el sistema o que no tienen un estado activado + \BRitem[Ejemplo positivo:] + \BRitem[Ejemplo negativo:] +\end{BussinesRule} + +%----------------------------------------------------------------------------------------- +\begin{BussinesRule}{BR2}{Caducidad del Medicamento.} + \BRitem[Tipo:] Regla de condición. + \BRitem[Clase:] Cronometrada. + \BRitem[Nivel:] Control. % Otras opciones para nivel: Control, Influencia. + \BRitem[Descripción:] Un medicamento esta caduco cuando la fecha del medicamento es menor que la fecha actual + \BRitem[Motivación:] Evitar venta de medicamento caducado + \BRitem[Ejemplo positivo:] CaducidadMedicamentoFechaActual +\end{BussinesRule} +%----------------------------------------------------------------------------------------- +\begin{BussinesRule}{BR3}{Reporte Mensual de Mes.} + \BRitem[Tipo:] Cronometrada. + \BRitem[Clase:] Condicional. + \BRitem[Nivel:] Control. % Otras opciones para nivel: Control, Influencia. + \BRitem[Descripción:] La fecha limite para Presentar el reporte de venta mensual de la sucursal sera los Dias 28 de cada Mes. + \BRitem[Motivación:] Control Económico de la sucursal rápido y eficaz. + \BRitem[Ejemplo positivo:] + \BRitem[Ejemplo negativo:] +\end{BussinesRule} +%----------------------------------------------------------------------------------------- +\begin{BussinesRule}{BR4}{Cancelar una Venta.} + \BRitem[Tipo:] Habilitador. + \BRitem[Clase:] Autorización. + \BRitem[Nivel:] Control. % Otras opciones para nivel: Control, Influencia. + \BRitem[Descripción:] En dado caso de que el cliente cancele su compra, el Supervisor debe de cancelar la operación de venta. + \BRitem[Motivación:] Control sobre las acciones que puede realizar cada empleado + \BRitem[Ejemplo positivo:] + \BRitem[Ejemplo negativo:] +\end{BussinesRule} +%----------------------------------------------------------------------------------------- +\begin{BussinesRule}{BR5}{Cancelar una Venta.} + \BRitem[Tipo:] Habilitador. + \BRitem[Clase:] Autorización. + \BRitem[Nivel:] Control. % Otras opciones para nivel: Control, Influencia. + \BRitem[Descripción:] En dado caso de que el cliente cancele su compra, el Supervisor debe de cancelar la operación de venta. + \BRitem[Motivación:] Control sobre las acciones que puede realizar cada empleado + \BRitem[Ejemplo positivo:] + \BRitem[Ejemplo negativo:] +\end{BussinesRule} +%----------------------------------------------------------------------------------------- +\begin{BussinesRule}{BR6}{Cantidad Máxima de venta a mostrador.} + \BRitem[Tipo:] Habilitador. + \BRitem[Clase:] Integridad Referencial. + \BRitem[Nivel:] Cronometrada. % Otras opciones para nivel: Control, Influencia. + \BRitem[Descripción:] La cantidad de medicamentos máxima que el cajero puede realizar es de 20 + \BRitem[Motivación:] Control sobre las acciones que puede realizar cada empleado + \BRitem[Ejemplo positivo:] Venta Al Mostrador<20. + \BRitem[Ejemplo negativo:] Venta al Mostrador>20. +\end{BussinesRule} +%----------------------------------------------------------------------------------------- +\begin{BussinesRule}{BR7}{Cantidad Excedente de venta a mostrador.} + \BRitem[Tipo:] Habilitador. + \BRitem[Clase:] Integridad Referencial. + \BRitem[Nivel:] Ejecutiva. % Otras opciones para nivel: Control, Influencia. + \BRitem[Descripción:] Si la cantidad a vender excede la cantidad de 20 , esta requiere autorización por parte del supervisor + \BRitem[Motivación:] Control sobre las acciones que puede realizar cada empleado + \BRitem[Ejemplo positivo:] Venta Al Mostrador>20. + \BRitem[Ejemplo negativo:] Venta al Mostrador<20. +\end{BussinesRule} +%------------------------------------------------------------------------------------------- +\begin{BussinesRule}{BR8}{Compra del Medicamento.} + \BRitem[Tipo:] Regla de condición. + \BRitem[Clase:] Cronometrada. + \BRitem[Nivel:] Control. % Otras opciones para nivel: Control, Influencia. + \BRitem[Descripción:] Los medicamentos que compramos a nuestros proveedores deben de tener una fecha de caducidad mayor a 2 años + \BRitem[Motivación:] Evitar venta de medicamento caducado + \BRitem[Ejemplo positivo:] CaducidadMedicamento>FechaActual + \BRitem[Ejemplo negativo:] CaducidadMedicamento14:00; Turno Vespertino 14:00->22:00; Turno Nocturno 22:00->6:00 + \BRitem[Motivación:] Sacar el máximo provecho de las operaciones diarias de las sucursales + \BRitem[Ejemplo positivo:] + \BRitem[Ejemplo negativo:] +\end{BussinesRule} +%----------------------------------------------------------------------------------------- + + +\begin{BussinesRule}{BR11}{Jornadas Laborales.} + \BRitem[Tipo:] Regla de condición. + \BRitem[Clase:] Cronometrada. + \BRitem[Nivel:] Control. % Otras opciones para nivel: Control, Influencia. + \BRitem[Descripción:] La jornada Laboral de cada turno sera no mayor a 8 horas, entendiéndose que tenemos 3 turnos laborales; Turno Matutino 6:00 ->14:00; Turno Vespertino 14:00->22:00; Turno Nocturno 22:00->6:00 + \BRitem[Motivación:] Sacar el máximo provecho de las operaciones diarias de las sucursales + \BRitem[Ejemplo positivo:] + \BRitem[Ejemplo negativo:] +\end{BussinesRule} +%----------------------------------------------------------------------------------------- + + +\begin{BussinesRule}{BR12}{Apertura de caja.} + \BRitem[Tipo:] Regla de condición. + \BRitem[Clase:] Cronometrada. + \BRitem[Nivel:] Control. % Otras opciones para nivel: Control, Influencia. + \BRitem[Descripción:] Al inicio de cada turno la caja debe de contar con un mínimo de \$1,500 pesos en cambio en caja. + \BRitem[Motivación:] Evitar problemas con dinero en cambio. + \BRitem[Ejemplo positivo:] + \BRitem[Ejemplo negativo:] +\end{BussinesRule} +%----------------------------------------------------------------------------------------- + + + +\newpage -Monedero electrónico: Dinero abonado por una devolución a la cuenta del cliente preferente. -\section{Hechos y términos del Negocio} -\section{Modelo de Dominio del problema} -\section{Reglas del Negocio} \section{Procesos del Negocio} +En esta sección se describen los procesos a mejorar con el sistema. + +\input{proc/proc01.tex} +\input{proc/proc02.tex} +\input{proc/proc03.tex} +%--------------------------------------------------------- +\section{Modelo de procesos TO-BE} + +Los nuevos procesos se presentan en esta sección, el mapa de procesos de se muestra en la figura~\ref{fig:mapaProc}. + +\begin{figure}[htbp] + \begin{center} + \includegraphics[width=.8\textwidth]{images/procMap} + \caption{Mapa de procesos} + \label{fig:mapaProc} + \end{center} +\end{figure} + +\input{proc/proc-m01.tex} +\input{proc/proc-m02.tex} +\input{proc/proc-m03.tex} + diff --git a/3Identificacionrequerimientos.tex b/3Identificacionrequerimientos.tex index d8d342c..3a6ac90 100644 --- a/3Identificacionrequerimientos.tex +++ b/3Identificacionrequerimientos.tex @@ -1,8 +1,163 @@ -\chapter{Identificación de Requerimientos} -\section{Objetivo General} -Objetivos especificos. -\section{Requerimientos Funcionales} -id,nombre,descripción,prioridad. -\section{Requerimientos de Plataforma} -\section{Interacción con el Usuario} -\section{Propiedades del software} +\chapter{Identificación de requerimientos} +\label{cap:reqUsr} + + En este capítulo se modela el alcance del sistema. + + +%--------------------------------------------------------- +\section{Objetivo General Del Proyecto} +Llevar el control completo de la farmacia, mediante un único sistema conectado y utilizado por todos los empleados en las diferentes sucursales de la franquicia. +\section{Objetivos Específicos} +\begin{itemize} +\item Resolver los problemas que surjan en el entendimiento del negocio. + +\item Reducir los problemas de inventario con base a las salidas y entradas de medicamento. + +\item Tener una visión en general sobre el ámbito laboral de las múltiples sucursales como de los empleados que operan en ellas. + +\end{itemize} + +\section{Requerimientos del Usuario} +\begin{itemize} + +\item RU1 Registrar Medicamentos\\ +Descripción: El dueño necesita registrar los nuevos medicamentos que se venderán en la farmacia.\\ +\item RU2 Registrar entregas de proveedores\\ +Descripción: El cajero necesita registrar los medicamentos que llegarón de un proveedor, de la misma forma necesita información del proveedor que hace la entrega ,requiere la hora y fecha en que se realizó la entrega, y un comprobante de parte del proveedor.\\ + +\item RU3 Consultar Medicamento por cada Sucursal\\ +Descripción:El usuario necesita conocer el medicamento que se maneja así como la cantidad de cada uno de estos medicamentos por cada una de las sucursales.\\ + +\item RU4 Registrar Empleados\\ +Descripción:El dueño necesita tener una forma para registrar la información de los nuevo trabajadores que laboran en la franquicia de la farmacia, de la misma manera necesita asignarles sucursal para laborar; en caso de que sea supervisor asignarle un máximo de 3 y un mínimo de 1.\\ + +\item RU5 Control de la caja. +Descripción: El dueño necesita que alguien monitorice el dinero con el que se empieza cada turno (matutino, vespertino, nocturno) así como al final de estos.\\ + +\item RU6 Realizar una Venta\\ +Descripción: El cajero requiere registrar nombre,costo y unidades de cada medicamento en la venta.\\ + +\item RU7 Registrar Sucursal\\ +Descripción: El dueño requiere registrar información de cada nueva sucursal( dirección,el nombre y teléfono).\\ + +\item RU8 Consultar Ventas por día\\ +Descripción: El supervisor necesita conocer las ventas que se realizaron durante la hora de atención de la farmacia(9:00am A 12:00pm) para tener una visión de las ventas.\\ + +\item RU9 Registrar Proveedor +Descripción: El dueño Necesita Registrar a los proveedores que le surten de medicamentos.\\ + +\item RU10 Consultar Proveedores +Descripción: El dueño necesita consultar a los proveedores para hacer algún pedido, +o en su defecto aclarar algún inconveniente.\\ + +\item RU11 Recibir Medicamentos\\ +Descripción: El cajero necesita modificar las existencias de los medicamentos que se venderán en la farmacia conforme a entregas de los proveedores.\\ +\end{itemize} +\newpage +\section{Requerimientos funcionales} +RF1 Registrar Medicamento\\ +Descripcion: El sistema Guarda la información de forma estructurada de los campos de importancia de un medicamento, que son: su nombre, ingredientes Activos con su dosificación, Precios de compra y venta, caducidad, presentación, vía de administración, laboratorio,lote,advertencias y existencias.\\ +Prioridad: MA\\ +RU:RU1.\\ +\\ +RF2 Registrar Entregas +Descripcion: El sistema guarda la información de las entregas realizadas por el proveedor tales como fecha, hora, nombre del proveedor, y todos los campos mencionados en la entidad ``Ingreso" y también en la entidad ``Lote" En la Sección ``Modelo del dominio del problema" en el Capitulo anterior.\\ +Prioridad:A\\ +RU:RU2.\\ +\\ +RF3 Registrar Clientes\\ +Descripcion:El Sistema Guarda información de un cliente, los campos que Guarda del Cliente están Especificados en la entidad ``Cliente" En la Sección ``Modelo del dominio del problema" en el Capitulo anterior.\\ +Prioridad:M\\ +RU:RU3\\ +\\ +RF4 Registrar Empleados\\ +Descripcion: El sistema guarda la información de un empleado, este Empleado puede ser un Cajero o un Supervisor, la información que guarda de cada uno de estos se encuentra Especificada en las Entidades ``Cajero" y ``Supervisor" En la Sección ``Modelo del dominio del problema" en el Capitulo anterior.\\ +Prioridad:A\\ +RU:RU4\\ +\\ +RF5 Abrir Caja\\ +Descripcion:El sistema Permite Que el usuario pueda Abrir la Caja la cual contara con 1500\$ como base para operar de forma adecuada.\\ +\\ +Prioridad:A\\ +RU:RU5 +\\ +RF6 Cerrar caja\\ +Descripcion: El sistema va a calcular las ganancias del turno que se cerrará y se marcará que en caja solo quedán 1500\$ y una vez realizado esto permite cerrar la caja.\\ +Prioridad:A\\ +RU:RU5\\ +\\ +RF7\\ +Nombre: Realizar Una Venta\\ +Descripcion:El sistema cuando se realiza una venta Guarda todos los datos especificados en la entidad ``Venta" y la entidad ``detalle Venta" En la Sección ``Modelo del dominio del problema" en el Capitulo anterior, Aparte en el mismo proceso reduce las existencias del medicamento que se vendió e imprime un comprobante con la información de ``Venta" junto con el nombre de los medicamentos comprados, la cantidad adquirida y su precio desde una impresora.\\ +Prioridad:MA\\ +RU:RU6\\ +\\ +RF8 Consultar Medicamento Local\\ +Descripcion: El sistema Mostrará una tabla con los medicamentos que se tienen en la sucursal y datos esenciales como su nombre, precio, Existencias y proporciona al usuario un botón para que pueda visualizar la demás información del medicamento.\\ +Prioridad:M\\ +RU:RU7\\ +\\ +RF9 Registrar Sucursal\\ +Descripcion: El sistema Guarda la información de una sucursal la cual se especifica en la entidad ``Sucursal" En la Sección ``Modelo del dominio del problema" en el Capitulo anterior. \ +Prioridad:A\\\ +RU:RU8\\ +\\ +RF 9 Consultar Ventas Por día\\ +Descripcion: Genera una reporte en formato .pdf con los productos vendidos, su cantidad y precio y con los ingresos totales de la sucursal.\\ +Prioridad: MA\\ +RU:RU9\\ +\\ +RF13 Registrar Proveedor +Descripcion: El sistema guarda la Información del proveedor La Cual se especifica en la entidad ``Proveedor" En la Sección ``Modelo del dominio del problema" en el Capitulo anterior.\\ +Prioridad: A\\ +RU:RU10\\ +\\ +RF14 Consultar Proveedor\\ +Descripcion: El sistema muestra una tabla que enlista a los proveedores que están registrados en el sistema junto con sus datos que son nombre del proveedor, email, teléfono, RFC y estado. +Prioridad: M\\ +RU:RU11\\ +\newpage + +%--------------------------------------------------------- +\section{Especificación de plataforma} + +\begin{description} + + \item[Tipo de sistema:] Web. + \item[Software requerido:]Apache, Maria-DB,google-chrome,firefox,edge. + \item[OS:] Arch Linux x86\_64. + \item[Kernel Release:] 4.14.47-1-MANJARO. + \item[RAM:] 2006 MB / 3835 MB + \item[Processor Type:] Intel(R) Celeron(R) CPU B830 @ 1.80GHz. + \item[servicios:] servicios del servidor de base de datos 10.1.33-MariaDB MariaDB Server.\\También se Ocupan servicios del serve API Apache 2.0 Handler +Con la Version de Apache: Apache/2.4.33 (Unix) PHP/7.2.6. + \item[Mysql Support:] mysqlnd 5.0.12-dev - 20150407. + \item[Hosting:]Se Compra un servidor dedicado con el proveedor ``Go Daddy". + Se compra un servidor dedicado, para que se pueda dar soporte a todos los empleados en todas las sucursales, tal vez al principio se tendrá espacio y servidor de sobra, pero de esta forma aumenta la productividad y se quitan los riesgos de tráfico en el servidor. + \item[servidor Hosting:]4 núcleos de CPU @ 3.1 GHz +Memoria de 4 GB +1 TB de almacenamiento (RAID-1)\^ +Ancho de banda sin medición(El proveedor no limita el ancho de banda) +3 IP dedicadas +Certificado SSL gratis durante 1 año. + \item[Dominio:] Se Compra el dominio ``www.Farmacias.francs.com"\\ con el mismo proveedor a un precio muy razonable con contrato de un año al igual que el servicio de hosting. + \item[Seguridad web:]El mismo proveedor de hosting ofrece seguridad SSL + con las siguientes Características:Asegura un sitio web +Sólido cifrado SHA2 y encriptación de 2048 bits\\ +Disponible en Certificados SSL DV, OV y EV.\\ +El SSL EV hace que la barra del navegador se ponga verde +Incrementa el posicionamiento de tu sitio en Google.\\ +Marca confiable McAfee SECURE.\\ +\end{description} +\begin{figure}[htbp!] + \begin{center} + \fbox{\includegraphics[width=18cm, height=20cm]{images/arquitectura}} + \caption{Arquitectura del sistema.} + \label{fig:arquitectura} + \end{center} +\end{figure} + +En la figura~\ref{fig:arquitectura} se describe la estructura del sistema, en ella se detallan los servicios de base de datos que se necesitan, las conexiones al servidor apache, así como las especificaciones que necesita el CPU de la sucursal en la que se monta el sistema de la farmacia. + + + diff --git a/cu/cu1.tex b/cu/cu0.tex similarity index 53% rename from cu/cu1.tex rename to cu/cu0.tex index d1b9447..11016e8 100644 --- a/cu/cu1.tex +++ b/cu/cu0.tex @@ -1,58 +1,58 @@ - \begin{UseCase}{CU1}{Control de Acceso}{ - Operacion inicia para poder acceder al sistema. De éste Caso de uso se extiende a todos los demás casos de uso. - } - \UCitem{Versión}{\color{Gray}0.1} - \UCitem{Autor}{\color{Gray}Aguilera Rosas Landa Enrique} - \UCitem{Supervisa}{\color{Gray}.} - \UCitem{Actor}{Cajero,Supervisor,Dueño} - \UCitem{Propósito}{Ingresar al Sistema para poder Realizar Transacciones diarias de la farmacia} - \UCitem{Entradas}{Direccion URL de la pagina web de la farmacia,Contraseña y Correo Electrónico} - \UCitem{Origen}{Teclado} - \UCitem{Salidas}{Pantalla principal Dependiendo del tipo de Usuario \IUref{IU1}{Pantalla Principal Dueño}\IUref{IU2}{Pantalla Principal Supervisor}\IUref{IU3}{Pantalla Principal Cajero}} - \UCitem{Destino}{Pantalla} - \UCitem{Precondiciones}{Se debe introducir la direccion de la pagina en el navegador de internet } - \UCitem{Postcondiciones}{El Empleado,Supervisor o Dueño podrá hacer transacciones de su índole} - \UCitem{Errores}{Que la pagina no este disponible por razones tales de: Error de conexion, Mantenimiento de los servidores, Que no exista el usuario,Que la contraseña este Incorrecta,Que no exista el correo electrónico} - \UCitem{Observaciones}{} - \UCitem{Estado}{En revision} - \end{UseCase} -%-------------------------------------- - \begin{UCtrayectoria}{Principal} - \UCpaso[\UCactor] Ingresa a la pagina web escribiendo la URL en un navegador. - \UCpaso Genera Y despliega la Pantalla \IUref{IU0}{Login} - \UCpaso [\UCactor] Ingresa su Correo Electronico y Contraseña y presiona el boton Aceptar - \UCpaso Verifica que el [\UCactor] haya haya proporcionado los datos requeridos en la pantalla \IUref{IU0}{Login} - \UCpaso Verifica que el correo proporcionado cumpla con el formato XXXX@XXX.XXX \Trayref{A} - \UCpaso Busca la cuenta asociada al correo ingresado. \Trayref{B} - \UCpaso Verifica que dicha cuenta este activa. \Trayref{C} - \UCpaso Verifica que la contraseña ingresada coincida con la contraseña asociada a la cuenta.\Trayref{F} - \UCpaso Otorga el acceso al sistema - \UCpaso Muestra la pantalla correspondiente al tipo de cuenta. - \UCpaso [\UCactor] Usa el sistema. - \UCpaso [\UCactor] Solicita cerrar sesión. - \UCpaso Revoca el acceso. - \UCpaso Muestra \IUref{IU1}{Login} - \end{UCtrayectoria} - -%-------------------------------------- - \begin{UCtrayectoriaA}{A}{El Correo no esta Correcto} - \UCpaso Muestra el Mensaje {\bf MSG03-}`` [{\em correo con formato incorrecto}] Introduzca un correo con el formato xxx@xx.xx .''. - \UCpaso Continúa en el paso 3 del \UCref{CU1}. - \end{UCtrayectoriaA} -%---------------------------------------- - \begin{UCtrayectoriaA}{B}{El \UCactor no esta registrado} - \UCpaso Muestra el Mensaje {\bf MSG01-}``Error [{\em Usuario no Encontrado}] El usuario y/o contraseña no existen .''. - \UCpaso[\UCactor] Oprime el botón \IUbutton{Aceptar}. - \UCpaso[] Continua en el paso 3 del \UCref{CU1}. - \end{UCtrayectoriaA} -%-------------------------------------- - \begin{UCtrayectoriaA}{C}{La cuenta a la que intenta acceder no esta activa} - \UCpaso Muestra el Mensaje {\bf MSG02-}``Error [{\em Cuenta Desactivada}] Contacta con el Dueño para resolver el problema .''. - \UCpaso[\UCactor] Oprime el botón \IUbutton{Aceptar} - \UCpaso Continua en el paso 3 del \UCref{CU1}. - \end{UCtrayectoriaA} -%-------------------------------------- - \begin{UCtrayectoriaA}{F}{La Contraseña es incorrecta} - \UCpaso Muestra el Mensaje {\bf MSG06-}`` [{\em Contraseña invalida}] La contraseña ingresada no coincide con la cuenta.''. - \UCpaso Continúa en el paso 2 del \UCref{CU1}. - \end{UCtrayectoriaA} + \begin{UseCase}{CU0}{Control de Acceso}{ + Operación inicial para poder acceder al sistema. De éste Caso de uso se extiende a todos los demás casos de uso. + } + \UCitem{Versión}{\color{Gray}0.1} + \UCitem{Autor}{\color{Gray}Aguilera Rosas Landa Enrique} + \UCitem{Supervisa}{\color{Gray}.} + \UCitem{Actor}{Cajero,Supervisor,Dueño} + \UCitem{Propósito}{Ingresar al Sistema para poder Realizar Transacciones diarias de la farmacia} + \UCitem{Entradas}{Dirección URL de la pagina web de la farmacia,Contraseña y Correo Electrónico} + \UCitem{Origen}{Teclado} + \UCitem{Salidas}{Pantalla principal \IUref{IU1}{Pantalla Principal}} + \UCitem{Destino}{Pantalla} + \UCitem{Precondiciones}{Se debe introducir la dirección de la pagina en el navegador de internet } + \UCitem{Postcondiciones}{El Empleado,Supervisor o Dueño podrá hacer transacciones de su índole} + \UCitem{Errores}{Que la pagina no este disponible por razones tales de: Error de conexión, Mantenimiento de los servidores, Que no exista el usuario,Que la contraseña este Incorrecta,Que no exista el correo electrónico} + \UCitem{Observaciones}{} + \UCitem{Estado}{En revision} + \end{UseCase} +%-------------------------------------- + \begin{UCtrayectoria}{Principal} + \UCpaso[\UCactor] Ingresa a la pagina web escribiendo la URL en un navegador. + \UCpaso Genera Y despliega la Pantalla \IUref{IU0}{Login} + \UCpaso [\UCactor] Ingresa su Correo Electrónico y Contraseña y presiona el botón Aceptar + \UCpaso Verifica que el [\UCactor] haya haya proporcionado los datos requeridos en la pantalla \IUref{IU0}{Login} + \UCpaso Verifica que el correo proporcionado cumpla con el formato ``Ejemplo@ejemplo.com'' \Trayref{A} + \UCpaso Busca la cuenta asociada al correo ingresado. \Trayref{B} + \UCpaso Verifica que dicha cuenta este activa. \Trayref{C} + \UCpaso Verifica que la contraseña ingresada coincida con la contraseña asociada a la cuenta.\Trayref{F} + \UCpaso Otorga el acceso al sistema + \UCpaso Muestra la pantalla \IUref{01}{Pantalla Principal}. + \UCpaso [\UCactor] Usa el sistema. + \UCpaso [\UCactor] Solicita cerrar sesión. + \UCpaso Revoca el acceso. + \UCpaso Muestra \IUref{IU0}{Login} + \end{UCtrayectoria} + +%-------------------------------------- + \begin{UCtrayectoriaA}{A}{El Correo no esta Correcto} + \UCpaso Muestra el Mensaje en la \IUref{IU0}{Login} {\bf MSG01-}`` Error en la Operación[{\em correo con formato }] Introduzca un correo con el formato Ejemplo@ejemplo.com.''. + \UCpaso Continúa en el paso 3 del \UCref{CU0}. + \end{UCtrayectoriaA} +%---------------------------------------- + \begin{UCtrayectoriaA}{B}{El \UCactor no esta registrado} + \UCpaso Muestra el Mensaje en la \IUref{IU0}{Login} {\bf MSG01-}``Error en la operación [{\em Usuario no Encontrado}] El usuario y/o contraseña no existen .''. + \UCpaso[\UCactor] Oprime el botón \IUbutton{Aceptar}. + \UCpaso[] Continua en el paso 3 del \UCref{CU0}. + \end{UCtrayectoriaA} +%-------------------------------------- + \begin{UCtrayectoriaA}{C}{La cuenta a la que intenta acceder no esta activa} + \UCpaso Muestra el Mensaje en la \IUref{IU0}{Login} {\bf MSG01-}``Error en la operación [{\em Cuenta Desactivada}] Contacta con el Dueño para resolver el problema .''. + \UCpaso[\UCactor] Oprime el botón \IUbutton{Aceptar} + \UCpaso Continua en el paso 3 del \UCref{CU0}. + \end{UCtrayectoriaA} +%-------------------------------------- + \begin{UCtrayectoriaA}{F}{La Contraseña es incorrecta} + \UCpaso Muestra el Mensaje en la \IUref{IU0}{Login} {\bf MSG01-}``Error en la Operación [{\em Contraseña invalida}] La contraseña ingresada no coincide con la cuenta.''. + \UCpaso Continúa en el paso 2 del \UCref{CU0}. + \end{UCtrayectoriaA} diff --git a/cu/cu13.tex b/cu/cu13.tex new file mode 100644 index 0000000..3caa79f --- /dev/null +++ b/cu/cu13.tex @@ -0,0 +1,48 @@ +\begin{UseCase}{CU13}{Consultar Proveedor}{ + La farmacia consta con múltiples proveedores que nos surten medicamentos, y para poder checar los datos de todos los proveedores que nos venden medicamentos necesitamos un listado de los proveedores con sus datos correspondientes, la consulta del proveedor se realizara mediante una barra de búsqueda la cual estará en la \IUref{15}{Tabla Proveedores} en la que se introduce ya sea el nombre, Identificador o el correo electrónico del proveedor que deseamos buscar y una vez que presionamos el botón buscar se desplegara una tabla con los datos del proveedor. + } + \UCitem{Versión}{\color{Gray}0.8} + \UCitem{Autor}{\color{Gray}Aguilera Rosas Landa Enrique} + \UCitem{Supervisa}{\color{Gray} Zamora Gachuz Felipe Jesús} + \UCitem{Actor}{Dueño} + \UCitem{Propósito}{Control rápido y eficaz sobre los múltiples proveedores de la Farmacia.} + \UCitem{Entradas}{Nombre del Proveedor, Correo Electrónico del Proveedor,RFC} + \UCitem{Origen}{Teclado} + \UCitem{Salidas}{ Nombre del Proveedor, Correo Electrónico del Proveedor, Teléfono, RFC, Estado.} + \UCitem{Destino}{Pantalla} + \UCitem{Precondiciones}{El proveedor debe de estar registrado en el sistema.} + \UCitem{Postcondiciones}{No Aplica.} + \UCitem{Errores}{La pagina sea inaccesible por el momento debido a fallas con los servidores, Que el empleado tenga su cuenta no este registrado} + \UCitem{Observaciones}{} + \UCitem{Estado}{Revisión} + \UCitem{Viene de}{CU0} + \end{UseCase} +%-------------------------------------- + \begin{UCtrayectoria}{Principal} + \UCpaso Incluye el caso de uso \UCref{CU0} + \UCpaso[\UCactor] Selecciona La opción compras en la \IUref{01}{Pantalla Principal} presionando el botón \IUbutton{Compras}. + \UCpaso verifica que los permisos de usuario sean permisos de Dueño. \Trayref{A} + \UCpaso Despliega las opciones de Compras \IUref{01} + \UCpaso [\UCactor] Selecciona La opción Proveedores en la \IUref{01}{Pantalla Principal} presionando el botón \IUbutton{Proveedores}. + \UCpaso Genera la lista de opciones de búsqueda de proveedor las cuales son: Nombre, RFC y correo + \UCpaso Genera y Despliega la \IUref{15}{Tabla Proveedores} con el listado de los proveedores con su Nombre , Correo Electrónico , Teléfono, RFC, Estado. + \UCpaso[\UCactor] Selecciona la opción con la cual buscara al proveedor en la lista desplegable que se genera junto al campo de búsqueda. + \UCpaso[\UCactor] Introduce el Nombre ó Correo ó RFC del proveedor a buscar en el campo de Búsqueda y Presiona el \IUbutton{Buscar} en la \IUref{15}{Tabla Proveedores}. + \UCpaso Filtra y Despliega una lista que coincida con la búsqueda realizada en la \IUref{15}{Tabla Proveedores}. según el campo seleccionado \Trayref{B} + \UCpaso [\UCactor] Presiona la opción Escritorio en la \IUref{15}{Tabla Proveedores}. + \UCpaso Redirige al [\UCactor] a la \IUref{01}{Pantalla Principal}. + \end{UCtrayectoria} + +%------------------------------------------------------------------------- +\begin{UCtrayectoriaA}{A}{Permiso denegado.} + \UCpaso Muestra el Mensaje {\bf MSG04-}``Cancelado [{\em Permiso Denegado}] No cuentas con los permisos necesarios.''. + \UCpaso Redirige al [\UCactor] a la \IUref{01}{Pantalla Principal}. + \end{UCtrayectoriaA} +%------------------------------------------------------------------------- + +%------------------------------------------------------------------------- +\begin{UCtrayectoriaA}{B}{Proveedor no encontrado.} + \UCpaso Muestra el Mensaje {\bf MSG01-}``Error en la Operación [{\em Proveedor no encontrado}] \IUref{15}{Tabla Proveedores}.''. + \UCpaso Continúa en el paso 4 del \UCref{CU13}. + \end{UCtrayectoriaA} +%------------------------------------------------------------------------- diff --git a/cu/cu14.tex b/cu/cu14.tex new file mode 100644 index 0000000..aa898e1 --- /dev/null +++ b/cu/cu14.tex @@ -0,0 +1,61 @@ +\begin{UseCase}{CU14}{Recibir Medicamento}{ + Si el proveedor llega con un nuevo lote de medicamentos el cajero debe de tener una opción para poder ingresar esos medicamentos, Los medicamentos que recibe el cajero se registraran seleccionando la opción de ingresos en la \IUref{01}{Pantalla Principal}. lo cual nos desplegara la \IUref{20}{Formulario Ingreso} y en esta pantalla ingresaremos los datos del Medicamento que recibimos, las unidades que se reciben y el lote del medicamento + } + \UCitem{Versión}{\color{Gray}0.8} + \UCitem{Autor}{\color{Gray}Aguilera Rosas Landa Enrique} + \UCitem{Supervisa}{\color{Gray}Zamora Gachuz Jesús Felipe} + \UCitem{Actor}{Cajero} + \UCitem{Propósito}{Control rápido y eficaz sobre el inventario de la farmacia.} + \UCitem{Entradas}{Lote, Proveedor, Nombre del Medicamento, Unidades a Recibir del Medicamento, Precio de compra del medicamento, Precio de venta del medicamento} + \UCitem{Origen}{Teclado, Lector de Código de Barras} + \UCitem{Salidas}{Lote, ID del Cajero, Nombre de la Sucursal, Fecha y Hora, ID del Medicamento, Unidades recibidas del Medicamento, Total a Pagar.} + \UCitem{Destino}{Pantalla} + \UCitem{Precondiciones}{El Medicamento debe estar registrado en el sistema.} + \UCitem{Postcondiciones}{Las unidades del Medicamento deben de aumentar de acuerdo a las unidades ingresadas en la sucursal actual.} + \UCitem{Errores}{La pagina sea inaccesible por el momento debido a fallas con los servidores, Que el empleado tenga su cuenta no este registrado} + \UCitem{Observaciones}{} + \UCitem{Estado}{Revisión} + \UCitem{Viene de}{CU0} + \end{UseCase} +%-------------------------------------- + \begin{UCtrayectoria}{Principal} + \UCpaso Incluye el caso de uso \UCref{CU0} + \UCpaso[\UCactor] Selecciona La opción Compras en la \IUref{01}{Pantalla Principal} presionando el botón \IUbutton{Compras}. + \UCpaso Despliega las opciones de Compras en la \IUref{01} + \UCpaso [\UCactor] Selecciona La opción Ingresos en la \IUref{01}{Pantalla Principal} presionando el botón \IUbutton{Ingresos}. + \UCpaso Llena el campo ID del cajero con el ID del cajero actualmente en sesión. + \UCpaso Llena el campo Nombre de la Sucursal con el Nombre de la sucursal actualmente en sesión. + \UCpaso Llena el campo Fecha y Hora con la fecha y hora actual del sistema. + \UCpaso Genera una lista de los proveedores actualmente registrados en el sistema, sera mostrado mostrado en el campo de Proveedor. + \UCpaso Genera y Despliega la \IUref{20}{Formulario Ingreso} con los campos especificados anteriormente llenos. + \UCpaso[\UCactor] Selecciona el proveedor de la lista generada en el campo proveedor. \Trayref{A} + \UCpaso[\UCactor] Introduce el Lote del medicamento que recibe, Código de barras del medicamento, unidades que recibe del medicamento. \Trayref{B} + \UCpaso Llena el campo de Precio Compra, Precio Venta del medicamento recién capturado por el lector de código de barras. + \UCpaso [\UCactor] Modifica el precio de compra y precio de venta dependiendo de la especificación del proveedor. + \UCpaso Calcula el total a pagar mediante la cantidad de unidades que se reciben del medicamento multiplicado por el precio de compra del medicamento + \UCpaso[\UCactor] Confirma la operación presionando el botón \IUbutton{Guardar} + \UCpaso Verifica que el Nombre del medicamento Ingresado Exista en la lista de medicamentos registrados actualmente en el sistema. + \UCpaso Genera y despliega la ventana. \IUref{MSG0}{Operación Realizada Con Éxito} \Trayref{C} + \UCpaso [\UCactor] Cierra la ventana presionando el \IUbutton{OK}. + \UCpaso Aumenta las unidades de medicamento que acaba de recibir en el sistema conforme a las unidades que se ingresaron. + \UCpaso Actualiza el precio de compra y venta del medicamento existente con el que acaba de ingresar. + \UCpaso Redirige al [\UCactor] a la \IUref{01}{Pantalla Principal}. + \end{UCtrayectoria} + + +%------------------------------------------------------------------------- +\begin{UCtrayectoriaA}{A}{Proveedor no encontrado.} + \UCpaso Muestra el Mensaje {\bf MSG01-}``Error en la Operación [{\em Proveedor no encontrado}] El proveedor que buscas no esta registrado en el sistema \IUref{20}{Formulario Ingreso}.''. + \UCpaso Continúa en el paso 10 del \UCref{CU14}. + \end{UCtrayectoriaA} +%------------------------------------------------------------------------- +\begin{UCtrayectoriaA}{B}{Medicamento no encontrado.} + \UCpaso Muestra el Mensaje {\bf MSG01-}``Error en la Operación [{\em Error en Operación}] El medicamento Ingresado no existe en el inventario del sistema \IUref{20}{Formulario Ingreso}.''. + \UCpaso Continúa en el paso 11 del \UCref{CU14}. + \end{UCtrayectoriaA} + +%------------------------------------------------------------------------- +\begin{UCtrayectoriaA}{C}{Error al guardar los datos.} + \UCpaso Muestra el Mensaje {\bf MSG1-}`` [{\em Error en la operación}] Hubo un error al intentar guardar los datos \IUref{IU3}{Formulario Sucursal}.''. + \UCpaso Continúa en el paso 6 del \UCref{CU15}. + \end{UCtrayectoriaA} diff --git a/cu/cu15.tex b/cu/cu15.tex new file mode 100644 index 0000000..ae9c953 --- /dev/null +++ b/cu/cu15.tex @@ -0,0 +1,100 @@ +\begin{UseCase}{CU15}{Agregar nueva sucursal}{ + Se requiere una forma para agregar una nueva sucursal en el sistema. Para esto el Dueño selecciona la opción de sucursales en la \IUref{01}{Pantalla Principal} lo cual nos lleva a \IUref{14}{Tabla Sucursales} y en esta pantalla se seleccionara la opción de +Nuevo y nos despliega la \IUref{IU3}{Formulario Sucursal} en la cual damos de alta los datos de la nueva sucursal que queremos agregar en el sistema; Una vez que damos de alta la nueva sucursal, aparecerá registrada en el sistema la próxima vez que ingresemos a la \IUref{14}{Tabla Sucursales} + } + \UCitem{Versión}{\color{Gray}0.8} + \UCitem{Autor}{\color{Gray}Aguilera Rosas Landa Enrique} + \UCitem{Supervisa}{\color{Gray} Correa Medina Carlos Miguel} + \UCitem{Actor}{\hyperlink{Alumno}{Dueño}} + \UCitem{Propósito}{Tener el control de una nueva sucursal y que este disponible para operar.} + \UCitem{Entradas}{Nombre de la sucursal, Dirección de la sucursal,Teléfono de la sucursal, Estado República} + \UCitem{Origen}{Teclado} + \UCitem{Salidas}{Nombre de la sucursal, Dirección de la sucursal,Teléfono de la sucursal, Estado de la sucursal.} + \UCitem{Destino}{Pantalla} + \UCitem{Precondiciones}{Debe haber una sucursal nueva física, que aun no este registrada en el sistema.} + \UCitem{Postcondiciones}{Aparecerá una nueva sucursal en el sistema.} + \UCitem{Errores}{La pagina sea inaccesible por el momento debido a fallas con los servidores.} + \UCitem{Observaciones}{.} + \UCitem{Estado}{Aprobado} + \UCitem{Viene de}{CU0} + \end{UseCase} + + +%-------------------------------------- + + + \begin{UCtrayectoria}{Principal} + \UCpaso Se incluye el caso de uso \UCref{CU0} + \UCpaso[\UCactor] Selecciona la opción Sucursales en la \IUref{01}{Pantalla Principal} + \UCpaso verifica que los permisos de usuario sean permisos de Dueño. \Trayref{A} + \UCpaso Genera y Despliega la \IUref{14}{Tabla Sucursales} + \UCpaso[\UCactor] Selecciona la opción para registrar una nueva sucursal presionando el botón \IUbutton{+Nuevo} en la \IUref{14}{Tabla Sucursales}. + \UCpaso Genera y despliega la \IUref{IU3}{Formulario Sucursal} con los campos vacíos y listos para llenar. + \UCpaso Genera una lista de los Estados de la República y los muestra en una lista desplegable en el campo de Estado República. + \UCpaso[\UCactor] Introduce el nombre de la sucursal, Dirección de la forma: Estado,Av,Calle y número; el teléfono de la nueva sucursal y el Estado de la República en la que se encuentra la sucursal en la \IUref{IU3}{Formulario Sucursal}, de manera que cada dato corresponda con la información que se pide y presiona el botón \IUbutton{Guardar} . + \UCpaso Verifica que el campo de nombre sea llenado una cadena de caracteres no mayor a una longitud de de 30. \Trayref{B} + \UCpaso Verifica que el campo de nombre no se repita con uno de las sucursales existentes en el sistema. \Trayref{C} + \UCpaso Verifica que el campo de Dirección sea llenado con una cadena de caracteres no mayor a una longitud de 200. \Trayref{D} + \UCpaso Verifica que el campo de Dirección no se repita con uno de las sucursales existentes en el sistema. \Trayref{E} + \UCpaso Verifica que el campo de Teléfono sea llenado con una cadena de caracteres no mayor a una longitud de 40. \Trayref{F} + \UCpaso Verifica que el campo de Teléfono no se repita con el teléfono de otra sucursal existentes en el sistema. \Trayref{G} + \UCpaso Verifica que la dirección sea una dirección valida buscando en google maps. \Trayref{H} + \UCpaso Guarda los datos de la nueva sucursal en el Sistema y se mostrara la siguiente vez que se acceda a la \IUref{14}{Tabla Sucursales}.. \Trayref{I} + \UCpaso Genera y despliega la ventana. \IUref{MSG0}{Operación Realizada Con Éxito} + \UCpaso [\UCactor] Cierra la ventana presionando el \IUbutton{OK}. + \UCpaso Redirige al [\UCactor] a la \IUref{14}{Tabla Sucursales}. + \end{UCtrayectoria} + + + + +%------------------------------------------------------------------------- +\begin{UCtrayectoriaA}{A}{Permiso denegado.} + \UCpaso Muestra el Mensaje {\bf MSG04-}``Cancelado [{\em Permiso Denegado}] No cuentas con los permisos necesarios.''. + \UCpaso Redirige al [\UCactor] a la \IUref{01}{Pantalla Principal}. + \end{UCtrayectoriaA} +%------------------------------------------------------------------------- + +%------------------------------------------------------------------------- + + +\begin{UCtrayectoriaA}{B}{El campo Nombre no cumple con los requerimientos.} + \UCpaso Muestra el Mensaje {\bf MSG1-}`` [{\em Error en la operación}]Verifique que el nombre sea una cadena de texto no mayor a una longitud de 30 caracteres \IUref{IU3}{Formulario Sucursal}.''. + \UCpaso Continúa en el paso 6 del \UCref{CU15}. + \end{UCtrayectoriaA} +%------------------------------------------------------------------------- +\begin{UCtrayectoriaA}{C}{El campo Nombre contiene un nombre que ya existe en el sistema.} + \UCpaso Muestra el Mensaje {\bf MSG1-}`` [{\em Error en la operación}] El nombre ingresado existe ya en otra sucursal registrada en el sistema \IUref{IU3}{Formulario Sucursal}.''. + \UCpaso Continúa en el paso 6 del \UCref{CU15}. + \end{UCtrayectoriaA} +%------------------------------------------------------------------------- + +\begin{UCtrayectoriaA}{D}{El campo Dirección no cumple con los requerimientos.} + \UCpaso Muestra el Mensaje {\bf MSG1-}`` [{\em Error en la operación}]Verifique que la Dirección sea una cadena de texto no mayor a una longitud de 200 caracteres \IUref{IU3}{Formulario Sucursal}.''. + \UCpaso Continúa en el paso 6 del \UCref{CU15}. + \end{UCtrayectoriaA} +%------------------------------------------------------------------------- +\begin{UCtrayectoriaA}{E}{El campo Dirección contiene una Dirección que ya existe en el sistema.} + \UCpaso Muestra el Mensaje {\bf MSG1-}`` [{\em Error en la operación}] La dirección ingresada existe ya en otra sucursal registrada en el sistema \IUref{IU3}{Formulario Sucursal}.''. + \UCpaso Continúa en el paso 6 del \UCref{CU15}. + \end{UCtrayectoriaA} +%------------------------------------------------------------------------- +\begin{UCtrayectoriaA}{F}{El campo Teléfono no cumple con los requerimientos.} + \UCpaso Muestra el Mensaje {\bf MSG1-}`` [{\em Error en la operación}]Verifique que el teléfono sea una cadena de texto no mayor a una longitud de 40 caracteres \IUref{IU3}{Formulario Sucursal}.''. + \UCpaso Continúa en el paso 6 del \UCref{CU15}. + \end{UCtrayectoriaA} +%------------------------------------------------------------------------- +\begin{UCtrayectoriaA}{G}{El campo Teléfono contiene un teléfono que ya existe en el sistema.} + \UCpaso Muestra el Mensaje {\bf MSG1-}`` [{\em Error en la operación}] El teléfono ingresado existe ya esta asignado a otra sucursal en el sistema \IUref{IU3}{Formulario Sucursal}.''. + \UCpaso Continúa en el paso 6 del \UCref{CU15}. + \end{UCtrayectoriaA} +%------------------------------------------------------------------------- + +\begin{UCtrayectoriaA}{H}{Dirección Invalida.} + \UCpaso Muestra el Mensaje {\bf MSG1-}`` [{\em Error en la operación}] La dirección ingresada no es una dirección valida \IUref{IU3}{Formulario Sucursal}.''. + \UCpaso Continúa en el paso 6 del \UCref{CU15}. + \end{UCtrayectoriaA} +%------------------------------------------------------------------------- +\begin{UCtrayectoriaA}{I}{Error al guardar los datos.} + \UCpaso Muestra el Mensaje {\bf MSG1-}`` [{\em Error en la operación}] Hubo un error al intentar guardar los datos \IUref{IU3}{Formulario Sucursal}.''. + \UCpaso Continúa en el paso 6 del \UCref{CU15}. + \end{UCtrayectoriaA} diff --git a/cu/cu2.tex b/cu/cu2.tex deleted file mode 100644 index 3ff8a22..0000000 --- a/cu/cu2.tex +++ /dev/null @@ -1,60 +0,0 @@ -\begin{UseCase}{CU2}{Recuperar Contraseña}{ - El empleado puede cometer la equivocacion de perder la contraseña asociada a la cuenta con la que ingresa al sistema, por lo cual se requiere de una forma para poder recuperar la contraseña. La recuperacion de realizara mediante un correo electronico el cual se le enviara al empleado con la posibilidad de reasignar una nueva contraseña - } - \UCitem{Versión}{\color{Gray}0.1} - \UCitem{Autor}{\color{Gray}Enrique Aguilera Rosas Landa} - \UCitem{Supervisa}{\color{Gray}} - \UCitem{Actor}{\hyperlink{Empleado}{Dueño}} - \UCitem{Propósito}{Conceder el acceso al sistema de nuevo mediante la recuperacion de la contraseña.} - \UCitem{Entradas}{Correo Electronico.} - \UCitem{Origen}{Teclado} - \UCitem{Salidas}{Contraseña Asociada con la cuenta.} - \UCitem{Destino}{Pantalla} - \UCitem{Precondiciones}{El empleado debe estar registrado en el sistema y que no recuerde su contraseña asociada .} - \UCitem{Postcondiciones}{El empleado recuperara su contraseña y su acceso al sistema.} - \UCitem{Errores}{Que el acceso a la pagina sea incorrecto debido a razones de Errores De conexion o Mantenimiento de los Servidores, Que el usuario no este registrado en el sistema} - \UCitem{Tipo}{Caso de uso primario} - \UCitem{Observaciones}{} - \UCitem{Estado}{En revision} - \end{UseCase} -%-------------------------------------- - \begin{UCtrayectoria}{Principal} - \UCpaso Se extiende del caso de uso \UCref{CU0} paso 10. - \UCpaso[\UCactor] Selecciona la Opcion de Recuperacion de contraseña dando click en el boton \IUbutton{Recuperar Contraseña}. - - \UCpaso Genera y despliega la pantalla \IUref(04){Recuperación de Contraseña} - \UCpaso [\UCactor] Proporciona su Correo Electronico asociado a la contraseña perdida y Confirma la operación presionando el botón \IUbutton{Aceptar}. - \UCpaso Verifica que el correo proporcionado cumpla con el formato XXXX@XXX.XXX \Trayref{A} - \UCpaso Busca la cuenta asociada al correo ingresado. \Trayref{B} - \UCpaso Verifica que dicha cuenta este activa. \Trayref{C}. - \UCpaso Envia un correo electronico al correo proporcionado; el cual contara con un link para asignar una nueva contraseña. \Trayref{D}. - \UCpaso Redirecciona al \UCactor a la \IUref{IU1}{Pantalla Principal Dueño}. - \end{UCtrayectoria} - -%-------------------------------------- - \begin{UCtrayectoriaA}{A}{El Correo no esta Correcto} - \UCpaso Muestra el Mensaje {\bf MSG03-}`` [{\em correo con formato incorrecto}] Introduzca un correo con el formato xxx@xx.xx .''. - \UCpaso Continúa en el paso 3 del \UCref{CU2}. - \end{UCtrayectoriaA} -%---------------------------------------- - \begin{UCtrayectoriaA}{B}{El \UCactor no esta registrado} - \UCpaso Muestra el Mensaje {\bf MSG01-}``Error [{\em Usuario no Encontrado}] El usuario y/o contraseña no existen .''. - \UCpaso[\UCactor] Oprime el botón \IUbutton{Aceptar}. - \UCpaso[] Continua en el paso 3 del \UCref{CU2}. - \end{UCtrayectoriaA} -%-------------------------------------- - \begin{UCtrayectoriaA}{C}{La cuenta a la que intenta acceder no esta activa} - \UCpaso Muestra el Mensaje {\bf MSG02-}``Error [{\em Cuenta Desactivada}] Contacta con el Dueño para resolver el problema .''. - \UCpaso[\UCactor] Oprime el botón \IUbutton{Aceptar} - \UCpaso Continua en el paso 3 del \UCref{CU2}. - \end{UCtrayectoriaA} -%-------------------------------------- - \begin{UCtrayectoriaA}{D}{Correo Electronico de recuperación de contraseña no se envio} - \UCpaso Muestra el Mensaje {\bf MSG04-}``Error [{\em Correo no enviado}] Revisa tu conexión y vuelve a enviar el mensaje .''. - \UCpaso[\UCactor] Oprime el botón \IUbutton{Aceptar} - \UCpaso Continua en el paso 7 del \UCref{CU2}. - \end{UCtrayectoriaA} -%-------------------------------------- - - - diff --git a/cu/cu3.tex b/cu/cu3.tex deleted file mode 100644 index cab208d..0000000 --- a/cu/cu3.tex +++ /dev/null @@ -1,47 +0,0 @@ -\begin{UseCase}{CU3}{Modificar datos de Empleado}{ - Los datos del empleado se tienen que modificar, por inconsistencia en los datos registrados en el sistema con sus datos actuales - } - \UCitem{Versión}{\color{Gray}0.1.2} - \UCitem{Autor}{\color{Gray}Aguilera Rosas Landa Enrique} - \UCitem{Supervisa}{\color{Gray}Correa Medina Carlos Miguel} - \UCitem{Actor}{\hyperlink{Alumno}{Dueño}} - \UCitem{Propósito}{Evitar problemas con los empleados por datos erroneos guardados en el sistema.} - \UCitem{Entradas}{Nombre completo del solicitante, Edad, Direccion, Curp, RFC, Expreiencia Laboral, Puesto , Sucursa} - \UCitem{Origen}{Teclado} - \UCitem{Salidas}{No Aplica.} - \UCitem{Destino}{Pantalla} - \UCitem{Precondiciones}{El empleado debe de estar dado de alta en el sistema.} - \UCitem{Postcondiciones}{Los datos del empleado seran diferentes.} - \UCitem{Errores}{Exista algun duplicado en los datos del empleado, sus cambios no sean guardados} - \UCitem{Tipo}{Caso de uso primario} - \UCitem{Observaciones}{} - \UCitem{Estado}{En revision} - \end{UseCase} -%-------------------------------------- - \begin{UCtrayectoria}{Principal} - \UCpaso Se extiende del caso de uso \UCref{CU0} paso 11 - \UCpaso[\UCactor] Selecciona La opcion de ver Lista de Empleados presionando el boton \IUbutton{Ver Lista de Empleado}. - \UCpaso Incluye el caso de uso \UCref{CU5}. - \UCpaso[\UCactor] Introduce el Nombre del empleado a buscar en el campo de Busqueda \Trayref{A} . - \UCpaso Genera y Despliega una lista que coincida con la busqueda realizada - \UCpaso[\UCactor] Selecciona la opcion modificar datos Del empleado Deseado presionando\IUbutton{Modificar Datos}. - \UCpaso Genera y despliega una tabla con los datos actuales del empleado. - \UCpaso Genera el formulario Datos del empleado y los despliega. - \UCpaso[\UCactor] Cambia los datos que el empleado necesita modificar y guarda los cambios presionando el boton \IUbutton{Aceptar y Guardar} \Trayref{B}. - \end{UCtrayectoria} - - -%------------------------------------------------------------------------- - - -\begin{UCtrayectoriaA}{A}{Empleado no encontrado.} - \UCpaso Muestra el Mensaje {\bf MSG8-}`` [{\em Empleado no encontrado}] revisa que los campos sean llenados correctamente.''. - \UCpaso Continúa en el paso \ref{CU7Bus} del \UCref{CU3}. - \end{UCtrayectoriaA} -%------------------------------------------------------------------------- - - -\begin{UCtrayectoriaA}{B}{Algun campo del Empleado tiene un error.} - \UCpaso Muestra el Mensaje {\bf MSG7-}`` [{\em Error en un dato del Empleado}] revisa que los campos sean llenados correctamente.''. - \UCpaso Continúa en el paso 9 del \UCref{CU3}. - \end{UCtrayectoriaA} diff --git a/cu/cu4.tex b/cu/cu4.tex deleted file mode 100644 index 900e7be..0000000 --- a/cu/cu4.tex +++ /dev/null @@ -1,47 +0,0 @@ -\begin{UseCase}{CU4}{Desactivar estado de Empleado}{ - Por razones laborales, es mejor desactivar el estado de un empleado que eliminarlo y revocarle el acceso al sistema - } - \UCitem{Versión}{\color{Gray}0.1.2} - \UCitem{Autor}{\color{Gray}Aguilera Rosas Landa Enrique} - \UCitem{Supervisa}{\color{Gray}} - \UCitem{Actor}{\hyperlink{Alumno}{Dueño}} - \UCitem{Propósito}{Revocar acceso al sistema del empleado.} - \UCitem{Entradas}{Nombre del Empleado, Id de Empleado} - \UCitem{Origen}{Teclado} - \UCitem{Salidas}{No Aplica.} - \UCitem{Destino}{Pantalla} - \UCitem{Precondiciones}{El empleado debe de estar registrado en el sistema y con un estado activo.} - \UCitem{Postcondiciones}{El empleado perdera su acceso al sistema y su estado cambiara a desactivado .} - \UCitem{Errores}{La pagina sea inaccedible por el momento debido a fallas con los servidores, Que el empleado tenga su cuenta desactivada} - \UCitem{Tipo}{Caso de uso primario} - \UCitem{Observaciones}{} - \UCitem{Estado}{En revision} - \end{UseCase} -%-------------------------------------- - \begin{UCtrayectoria}{Principal} - \UCpaso Se extiende del caso de uso \UCref{CU0} paso 11 - \UCpaso[\UCactor] Selecciona La opcion de ver Lista de Empleados presionando el boton \IUbutton{Ver Lista de Empleado}. - \UCpaso Incluye el caso de uso \UCref{CU5}. - \UCpaso[\UCactor] Introduce el Nombre del empleado a buscar en el campo de Busqueda \Trayref{A} . - \UCpaso Genera y Despliega una lista que coincida con la busqueda realizada - \UCpaso[\UCactor] Presiona el boton\IUbutton{Desactivar Cuenta} del empleado seleccionado. - \UCpaso Genera y despliega una ventana emergente para confirmar la operación de desactivar la cuenta seleccionada. - \UCpaso [\UCactor] Confirma la operación presionando el \IUbutton{Aceptar} - \UCpaso Redirige al [\UCactor] a la \IUref{01}{Pantalla Principal de Dueno}. - \end{UCtrayectoria} - - -%------------------------------------------------------------------------- - - -\begin{UCtrayectoriaA}{A}{Empleado no encontrado.} - \UCpaso Muestra el Mensaje {\bf MSG8-}`` [{\em Empleado no encontrado}] revisa que los campos sean llenados correctamente.''. - \UCpaso Continúa en el paso \ref{CU7Bus} del \UCref{CU3}. - \end{UCtrayectoriaA} -%------------------------------------------------------------------------- - - -\begin{UCtrayectoriaA}{B}{Algun campo del Empleado tiene un error.} - \UCpaso Muestra el Mensaje {\bf MSG7-}`` [{\em Error en un dato del Empleado}] revisa que los campos sean llenados correctamente.''. - \UCpaso Continúa en el paso 9 del \UCref{CU3}. - \end{UCtrayectoriaA} diff --git a/cu/cus.tex b/cu/cus.tex index 545935c..9452c23 100644 --- a/cu/cus.tex +++ b/cu/cus.tex @@ -1,10 +1,8 @@ -\input{cu/cu1} % control de acceso -\input{cu/cu2.tex} % Recuperar Contaseña -\input{cu/cu3.tex} % Cambiar datos de empleado -\input{cu/cu4.tex} % Desactivar el estado del empleado -%\input{cu/cu5} % Listar Empleados y sus datos -%\input{cu/cu6} % Reasignar Sucursales a supervisor -%\input{cu/cu7} % Activar estado de empleado +\input{cu/cu0} % control de acceso +\input{cu/cu13} % Consultar Proveedor +\input{cu/cu14} % Recibir medicamentol +\input{cu/cu15} % Agregar Sucursal + diff --git a/images/AS-TOprocVenta.png b/images/AS-TOprocVenta.png new file mode 100644 index 0000000..62547ae Binary files /dev/null and b/images/AS-TOprocVenta.png differ diff --git a/images/AS-toprocContratacion.png b/images/AS-toprocContratacion.png new file mode 100644 index 0000000..9a9b8ae Binary files /dev/null and b/images/AS-toprocContratacion.png differ diff --git a/images/TOBERealizarVenta.png b/images/TOBERealizarVenta.png new file mode 100644 index 0000000..de7603a Binary files /dev/null and b/images/TOBERealizarVenta.png differ diff --git a/images/TOBEprocContratacion.png b/images/TOBEprocContratacion.png new file mode 100644 index 0000000..5e5960d Binary files /dev/null and b/images/TOBEprocContratacion.png differ diff --git a/images/ToBEAgregarMedc.png b/images/ToBEAgregarMedc.png new file mode 100644 index 0000000..19f1930 Binary files /dev/null and b/images/ToBEAgregarMedc.png differ diff --git a/images/as-toprocAgreMedic.png b/images/as-toprocAgreMedic.png new file mode 100644 index 0000000..872403b Binary files /dev/null and b/images/as-toprocAgreMedic.png differ diff --git a/images/casosDeUso.png b/images/casosDeUso.png new file mode 100644 index 0000000..3d7ed9e Binary files /dev/null and b/images/casosDeUso.png differ diff --git a/images/casosDeUsoDetalle.png b/images/casosDeUsoDetalle.png new file mode 100644 index 0000000..60bf0f7 Binary files /dev/null and b/images/casosDeUsoDetalle.png differ diff --git a/images/diagramaRelacional.png b/images/diagramaRelacional.png index dafebc5..4663f84 100644 Binary files a/images/diagramaRelacional.png and b/images/diagramaRelacional.png differ diff --git a/images/diagramaRelacional1.png b/images/diagramaRelacional1.png new file mode 100644 index 0000000..ff2f7ea Binary files /dev/null and b/images/diagramaRelacional1.png differ diff --git a/images/diagramaRelacional2.png b/images/diagramaRelacional2.png new file mode 100644 index 0000000..e2ed6e3 Binary files /dev/null and b/images/diagramaRelacional2.png differ diff --git a/images/mapa.jpg b/images/mapa.jpg new file mode 100644 index 0000000..725a5d7 Binary files /dev/null and b/images/mapa.jpg differ diff --git a/images/procMap.png b/images/procMap.png new file mode 100644 index 0000000..7f56306 Binary files /dev/null and b/images/procMap.png differ diff --git a/proc/proc-m01.tex b/proc/proc-m01.tex new file mode 100644 index 0000000..11fd5ae --- /dev/null +++ b/proc/proc-m01.tex @@ -0,0 +1,26 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\subsection{PROCM-01 Realizar una venta} + +\begin{figure}[htbp] + \begin{center} + \includegraphics[width=.8\textwidth]{images/TOBERealizarVenta} + \caption{PROCM-01 Realizar una venta} + \label{fig:proceso3} + \end{center} +\end{figure} + +\begin{description} + \item[Descripción:] Ahora con el sistema en función, cuando un cliente venga buscando un medicamento, se le podrá brindar de forma más rápida información de dicho medicamento. + \item[Entradas:] \cdtEmpty + \begin{itemize} + \item nombre del medicamento + \item ingredientes activos del medicamento. + \item código de barras del medicamento. + \end{itemize} + \item[Salidas:] \cdtEmpty + \begin{itemize} + \item Datos del medicamento. + \end{itemize} + \item[Mejoras esperadas:]se ahorra tiempo para la venta, lo cual le conviene al cliente y a la farmacia. + \item[Casos de uso:] CU 39 Realizar una venta, CU 12 Listar medicamentos, CU33 Listar Clientes, CU 36 Registrar Clientes, CU35 Cambiar datos del cliente, CU 32 Hacer devolución al cliente, CU31 Darle crédito a un cliente, CU30 Aplcar credito de un cliente, CU29 Registrar una venta como devolución, CU25 Reporte de Ventas Por empleado. +\end{description} diff --git a/proc/proc-m02.tex b/proc/proc-m02.tex new file mode 100644 index 0000000..b40b2eb --- /dev/null +++ b/proc/proc-m02.tex @@ -0,0 +1,24 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\subsection{PROCM-02 Contratar Nuevo Personal} + +\begin{figure}[htbp] + \begin{center} + \includegraphics[width=.8\textwidth]{images/TOBEprocContratacion} + \caption{PROCM-02 Contratar Nuevo Personal} + \label{fig:proceso3} + \end{center} +\end{figure} + +\begin{description} + \item[Descripción:]Cuando se abre una nueva sucursal o simplemente se esta escaso de personal, se procede a la contratación del nuevo, dicha contratación es llevada a cabo por el dueño, con el sistema en funcionamiento se espera que se tenga un mejor manejo de los nuevos empleados en la sucursal, así como facilitar la asignación del personal en una sucursal. + \item[Entradas:] \cdtEmpty + \begin{itemize} + \item Datos del nuevo empleado + \end{itemize} + \item[Salidas:] \cdtEmpty + \begin{itemize} + \item Contrato + \end{itemize} + \item[Mejoras esperadas:] se espera que ahora se pueda tener un mejor control de los empleados.. + \item[Casos de uso:]CU 8 Agregar Empleado. +\end{description} diff --git a/proc/proc-m03.tex b/proc/proc-m03.tex new file mode 100644 index 0000000..391048a --- /dev/null +++ b/proc/proc-m03.tex @@ -0,0 +1,25 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\subsection{PROCM-03 Registrar medicamento del proveedor} + +\begin{figure}[htbp] + \begin{center} + \includegraphics[width=.8\textwidth]{images/ToBEAgregarMedc} + \caption{PROCM-03 Registrar medicamento del proveedor} + \label{fig:proceso3} + \end{center} +\end{figure} + +\begin{description} + \item[Descripción:] Cuando se llega un proveedor con un pedido de medicamento, + este se tiene que revisar y registrar en el sistema. + \item[Entradas:] \cdtEmpty + \begin{itemize} + \item Datos del medicamento + \end{itemize} + \item[Salidas:] \cdtEmpty + \begin{itemize} + \item Dinero + \end{itemize} + \item[Mejoras esperadas:] Este proceso es más lento que el anterior, pero ayuda a que existan menos incongruencias con los medicamentos en existencia, aparte de que ayuda a verificar de mejor forma los medicamentos que llegan del proveedor. + \item[Casos de uso:] {CU 38 Registrar medicamentos del proveedor}, {CU 12 Listar medicamentos}. +\end{description} diff --git a/proc/proc01.tex b/proc/proc01.tex new file mode 100644 index 0000000..3b3113e --- /dev/null +++ b/proc/proc01.tex @@ -0,0 +1,24 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\subsection{PROC-01 Realización de una venta al cliente} + +\begin{figure}[htbp] + \begin{center} + \includegraphics[width=.7\textwidth]{images/AS-TOprocVenta} + \caption{PROC-01 Realización de una venta al cliente} + \label{fig:proceso1} + \end{center} +\end{figure} + +\begin{description} + \item[Descripción:] Ocurre cuando llega un cliente a la farmacia en busca de un medicamento que quiere comprar, el empleado de planta se tarda aproximadamente 7min en buscar un medicamento,una vez que este se encuentra se le muestra al cliente y se vende. + \item[Entradas:] \cdtEmpty + \begin{itemize} + \item Cliente + \item Dinero + \end{itemize} + \item[Salidas:] \cdtEmpty + \begin{itemize} + \item Medicamento + \end{itemize} + \item[Áreas de oportunidad:]la búsqueda del medicamento será mucho más rápida y eficiente, lo cual le ahorra tiempo al cliente y a la farmacia aparte de tener mejor guardados los datos de una venta. +\end{description} diff --git a/proc/proc02.tex b/proc/proc02.tex new file mode 100644 index 0000000..410715d --- /dev/null +++ b/proc/proc02.tex @@ -0,0 +1,25 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\subsection{PROC-02 Contratar a nuevo personal} + +\begin{figure}[htbp] + \begin{center} + \includegraphics[width=.8\textwidth]{images/AS-toprocContratacion} + \caption{PROC-02 Contratar a nuevo personal} + \label{fig:proceso2} + \end{center} +\end{figure} + +\begin{description} + \item[Descripción:] Cuando se abre una sucursal o simplemente hace falta personal, se procede a contratar a nuevo ya sea supervisor o solo empleado de planta. El Dueño es el que se encarga de la entrevista y de todo el proceso de la contratación. + \item[Entradas:] \cdtEmpty + \begin{itemize} + \item Datos del prospecto a empleado + \item Un nuevo empleado + \end{itemize} + \item[Salidas:] \cdtEmpty + \begin{itemize} + \item Contrato + \end{itemize} + \item[Áreas de oportunidad:] Con el sistema funcionando, se facilitará la asignación de una sucursal a un empleado así como guardar los datos del empleado, y también ayudara al dueño a conocer y controlar de mejor forma a su personal. +\end{description} + diff --git a/proc/proc03.tex b/proc/proc03.tex new file mode 100644 index 0000000..d0bd0d9 --- /dev/null +++ b/proc/proc03.tex @@ -0,0 +1,26 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - +\subsection{PROC-03 Agregar medicamento del proveedor} + +\begin{figure}[htbp] + \begin{center} + \includegraphics[width=.7\textwidth]{images/as-toprocAgreMedic} + \caption{PROC-03 Agregar medicamento del proveedor} + \label{fig:proceso1} + \end{center} +\end{figure} + +\begin{description} + \item[Descripción:] Son Acciones realizadas por el empleado de planta en la farmacia, sucede cuando un proveedor trae una entrega, el empleado tiene que verificar que los medicamentos son los que se pidieron y procede a Firmar,pagar y acomodar los medicamentos en su estante + \item[Entradas:] \cdtEmpty + \begin{itemize} + \item Medicamentos. + \item Nota de recibido. + \end{itemize} + \item[Salidas:] \cdtEmpty + \begin{itemize} + \item Dinero + \item Medicamentos caducados + \end{itemize} + \item[Áreas de oportunidad:] Con el sistema le sera más fácil controlar + El ingreso de medicamentos por un proveedor, si bien se tendrá que hacer un proceso más largo, este ayudara al empleado a entregar cuentas al supervisor de la sucursal. + \end{description}