Proyecto Punto de Venta

Especificación de requisitos de software Proyecto: TPVXpress (sistema de punto de venta) Revisión 2.0 Diciembre 2017

Views 122 Downloads 1 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Especificación de requisitos de software Proyecto: TPVXpress (sistema de punto de venta) Revisión 2.0

Diciembre 2017

Ficha del documento Fecha 13 de diciembre

Revisión

1

Autor

Verificado dep. calidad.

Juan Carlos Barrios Ramirez Fco. Javier Navarro Valdez Yael Santiago Peralta Mario Arturo Morales Luquez

Documento validado por las partes en fecha: 3 Diciembre de 2017 Por el cliente

Por la empresa suministradora

PredatorSoft

Fdo. D./ Dña

Fdo. D./Dña

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 4

Contenido Contenido FICHA DEL DOCUMENTO........................................................................................................... 3 CONTENIDO ................................................................................................................................. 4 1

INTRODUCCIÓN .................................................................................................................. 6

1.1

Propósito ......................................................................................................................... 6

1.2

Alcance ............................................................................................................................ 6

1.3

Personal involucrado ..................................................................................................... 6

1.4

Definiciones, acrónimos y abreviaturas ...................................................................... 7

1.5

Referencias ..................................................................................................................... 7

1.6

Resumen ......................................................................................................................... 7

2

DESCRIPCIÓN GENERAL .................................................................................................. 7

2.1

Perspectiva del producto .............................................................................................. 7

2.2

Funcionalidad del producto .......................................................................................... 8

2.3

Características de los usuarios .................................................................................... 8

2.4

Restricciones .................................................................................................................. 9

2.5

Suposiciones y dependencias ...................................................................................... 9

2.6

Evolución previsible del sistema .................................................................................. 9

3

REQUISITOS ESPECÍFICOS .............................................................................................. 9

3.1 Requisitos comunes de los interfaces ....................................................................... 13 3.1.1 Interfaces de usuario ................................................................................................. 13 3.1.2 Interfaces de hardware .............................................................................................. 13 3.1.3 Interfaces de software ................................................................................................ 13 3.1.4 Interfaces de comunicación ....................................................................................... 13 3.2 Requisitos funcionales ................................................................................................ 13 3.2.1 Requisito funcional clientes ....................................................................................... 13 3.2.2 Requisito funcional 2 .................................................................................................. 14 3.2.3 Requisito funcional 3 .................................................................................................. 16 3.2.4 Requisito funcional 4 .................................................................................................. 17 3.2.5 Requisito funcional 5 .................................................................................................. 18 3.2.6 Requisito funcional 6 .................................................................................................. 20 Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

3.2.7 4

Rev. 1.0 Pág. 5

Requisito funcional 8 .................................................................................................. 22

REQUISITO FUNCIONAL .................................................................................................. 24

4.1 Requisitos no funcionales........................................................................................... 24 4.1.1 Requisitos de rendimiento ......................................................................................... 24 4.1.2 Seguridad ................................................................................................................... 24 4.1.3 Fiabilidad .................................................................................................................... 24 4.1.4 Disponibilidad ............................................................................................................. 25 4.1.5 Mantenibilidad ............................................................................................................ 25 4.1.6 Portabilidad ................................................................................................................ 25 4.2

Otros requisitos ............................................................................................................ 25

5

APÉNDICES ....................................................................................................................... 25

6

ESQUEMA RELACIONAL ................................................................................................. 26

7

ESQUEMA ENTIDAD-RELACIÓN .................................................................................... 27

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 6

1 Introducción La presente especificación de requerimientos de software (SRS) del sistema a construir, surge para ser un conjunto de información necesaria que ayuda a los desarrolladores del software a analizar y entender todos los requisitos y requerimientos que el cliente desea. Se describirá en forma detallada las interfaces de usuario de software, así como de los requerimientos del cliente y atributos del sistema, entre otras cosas. Sirviendo como base para futuras modificaciones.

1.1

Propósito

El propósito de este documento es proporcionar al administrador del sistema información que le puede ser útil y necesaria, así como en un futuro poder ser la base para modificaciones. Este programa se encarga de llevar un control de inventario y todo lo relacionado a ventas. Así como proporcionarle al desarrollador la información del sistema, como son los requisitos y las especificaciones.

1.2

Alcance

TPVExpress será un sistema que funcionará en un entorno web, que nos permitirá administrar, consultar y controlar la información de los productos, clientes, empleados y principalmente ventas, que se realizarán en un abarrote, así como la realización de facturas. Este sistema dará apoyo a estas actividades:  Minimizar el tiempo al momento de captura de información de ventas realizadas.  Gestión de usuarios del sistema.  Reportes de ventas al día.

1.3

Personal involucrado

Nombre Rol Categoría profesional Responsabilidades Información de contacto Nombre Rol Categoría profesional Responsabilidades Información de contacto Nombre Rol Categoría profesional Responsabilidades

Juan Carlos Barrios Ramírez Analista y programador Ingeniero en Telemática y sistemas  Jefe de proyecto  Programación de distintos módulos del sistema [email protected] Yael Santiago Peralta Analista y programador Ingeniero en Telemática y sistemas  Análisis y especificación de requerimientos.  Programación de distintos módulos del sistema. [email protected]

Información de contacto

Francisco Javier Navarro Valdez Analista y programador Ingeniero en Telemática y sistemas  Análisis y especificación de requerimientos.  Programación de distintos módulos del sistema [email protected]

Nombre Rol Categoría profesional

Mario Arturo Morales Luquez Analista y programador Ingeniero en Telemática y sistemas Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Responsabilidades Información de contacto

Rev. 1.0 Pág. 7

 Análisis y especificación de requerimientos.  Programación de distintos módulos del sistema [email protected]

.

1.4

Definiciones, acrónimos y abreviaturas

SQL: es un gestor de base de satos, que se utiliza para consultar, ´base de datos manejar. SRS: Software requeriments specification en español es la especificación de requerimientos de software.

1.5

Referencias

Referencia R1

1.6

Titulo Documento IEEE

Resumen

Este documento muestra la información necesaria para el desarrollo del sistema punto de ventas, se presentan pantallas de cómo el sistema será utilizado. El SRS está compuesto de la siguiente manera:  Introducción: en esta sección se detallaran los objetivos que posee el SRS y del sistema.  Descripción general: Se describe una representación general del sistema a desarrollar, así como su funcionalidad, características de usuario y las limitaciones que se podrá tener.  Requerimientos específicos: muestra a detalle todos los requerimientos que el usuario desea en el producto final. Para el cuál se ha utilizado el formato de documentación de requerimientos con el prototipo del estándar IEEE 830-1998.

2 Descripción general 2.1

Perspectiva del producto

El sistema TPVXpress es un software de punto de venta muy sencillo de utilizar enfocado a pequeños y medianos negocios, que ayudará a reducir el tiempo en el que se atiende a sus clientes, así como a manejar todos los productos de su negocio y aumentar sus ventas, enfocado a que se dedique a vender mientras que el programa lleva a cabo el control de sus productos y ventas.

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

2.2

Funcionalidad del producto

2.3

Características de los usuarios

Rev. 1.0 Pág. 8

Tipo de usuario Formación Habilidades Actividades

Vendedor Conocimientos básicos de informática. Manejo de computadoras Hacer corte, agregar, eliminar, modificar productos, iniciar sesión, realizar ventas.

Tipo de usuario Formación Habilidades Actividades

Administrador Conocimientos básicos de informática. Manejo de computadoras Hacer corte de caja, agregar, modificar, eliminar productos, clientes, empleados, iniciar sesión, realizar ventas.

Tipo de usuario Formación Habilidades Actividades

Almacenista Conocimientos básicos de informática. Manejo de computadoras Agregar, modificar, eliminar productos, iniciar sesión.

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

2.4

Rev. 1.0 Pág. 9

Restricciones

La gestión de la base de datos será mediante SQL 2017, El sistema TPVXpress será desarrollado en Microsoft Visual Studio 2017en la plataforma .NET, para el cual será necesario contar con un sistema operativo ya instalado el cual se recomienda sea Microsoft Windows XP o Windows 7, este sistema no emitirá facturas.

2.5

Suposiciones y dependencias

Para este sistema será necesario contar con una computadora para la instalación del mismo, el cual lo realizará un ingeniero de la empresa.

2.6

Evolución previsible del sistema

Mas adelante se pretende dar mejoras al sistema, ya sea en cambiar el diseño, mejoras en algunas de las características con las que cuenta y así tener una mayor competencia en el mercado contra los sistemas similares que ya tienen tiempo funcionando.

3 Requisitos específicos Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF10 Alta de usuarios. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Baja/ Opcional El administrador podrá dar de alta a los nuevos usuarios.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF11 Alta de usuarios. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Un vendedor no podrá dar de alta a un usuario.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF12 Baja de usuarios Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Baja/ Opcional

Descripción

Baja/ Opcional El administrador podrá dar de baja a algún usuario.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF13 Baja de usuarios. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Baja/ Opcional El vendedor no podrá dar de baja a los usuarios. Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito Descripción

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito Descripción

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF14 Modificación de usuarios. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Baja/ Opcional El administrador podrá modificar cualquier usuario que se encuentre en el sistema. RF15 Modificación de usuarios. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Baja/ Opcional El vendedor no podrá modificar ningún usuario que ya exista en el sistema. RF16 Alta de productos. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Baja/ Opcional El administrador podrá dar de alta los nuevos productos.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF17 Alta de productos. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Baja/ Opcional El vendedor no podrá dar de alta los nuevos productos.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF18 Baja de productos. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Baja/ Opcional El administrador podrá dar de baja los productos.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF19 Baja de productos. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Rev. 1.0 Pág. 10

Baja/ Opcional El vendedor no podrá dar de baja los productos.

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

Rev. 1.0 Pág. 11

RF20 Elaborar reportes. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Baja/ Opcional El administrador podrá elaborar los reportes correspondientes.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF21 Elaboración de reportes. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Baja/ Opcional El vendedor no podrá realizar ninguno de los reportes.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF22 Alta de proveedores. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Baja/ Opcional El administrador podrá dar de alta a los nuevos proveedores.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF23 Alta de proveedores. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Baja/ Opcional El cajero no podrá dar de alta a los nuevos proveedores.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF24 Modificación de proveedores. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito Descripción

Número de requisito Nombre de requisito

Baja/ Opcional El supervisor podrá modificar los proveedores ya existentes en el sistema. RF25 Modificación de proveedores. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Baja/ Opcional El cajero no podrá modificar ninguno de los proveedores que ya estén en el sistema. RF26 Baja de proveedores. Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Tipo Fuente del requisito Prioridad del requisito

Rev. 1.0 Pág. 12

Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Baja/ Opcional El supervisor podrá dar de baja a los proveedores.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF27 Baja de proveedores. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Baja/ Opcional El cajero no podrá dar de baja a los proveedores.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF28 Cortes de caja Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

El supervisor podrá realizar los cortes de caja.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF29 Cortes de caja. Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

El cajero no podrá realizar los cortes de caja.

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito

RF30 Login Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado

Descripción

Baja/ Opcional

Baja/ Opcional

Baja/ Opcional Para poder ingresar al sistema será necesario que el usuario este dado de alta y cuente con algún correo y contraseña para poder tener acceso a este.

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

3.1

Rev. 1.0 Pág. 13

Requisitos comunes de los interfaces

Las interfaces de usuario deben de permitir ingresar información y mostrarla cada vez que esta sea solicitada.

3.1.1 Interfaces de usuario El usuario podrá acceder al sistema para realizar su trabajo en su horario, iniciando sesión por lo que no podrá acceder cualquier otra persona que no sea trabajador de ese negocio. Donde el usuario podrá manipular la información, la cuál será realizada por el mouse y el teclado.

3.1.2 Interfaces de hardware Monitor: La información se mostrará a través del monitor con el que contará el usuario para usar el sistema. Mouse: El sistema podrá ser manipulado también con el mouse que servirá para activar nuestros botones y algunos otros campos. Teclado: Este dispositivo servirá para que el usuario pueda introducir la mayor parte de la información que almacenará nuestro sistema, como son los nombres, precios, códigos, contraseñas, nombres de usuario, etc.

3.1.3 Interfaces de software Este sistema es capaz de realizar operaciones con el objetivo de sumar el precio de cada uno de los productos que el usuario ingrese a la copra, como también, será capaz de llevar un control de inventario para un mejor manejo de los productos, así como la elaboración de un ticket que muestre la compra que realizo el cliente junto con algunos datos del negocio.

3.1.4 Interfaces de comunicación El sistema TPVXpress no contará con interfaces de comunicación ya que este no va a establecer cambio de información con algún otro sistema existente con el cuál poder interactuar entre sí.

3.2

Requisitos funcionales

En términos generales el sistema mostrará una pantalla en la que el usuario deberá iniciar sesión con alguna cuenta que se le asignó, para así, poder realizar su trabajo en el negocio.

3.2.1 Requisito funcional clientes Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito Descripción

RF1 Alta de clientes Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado Baja/ Opcional El alta de clientes se realizara con los campos de formulario Nombre de 50 caracteres, Apellido de 50 caracteres, Dirección de 40 caracteres de tipo dirección, RFC de 13 caracteres, Email de 50 caracteres de tipo correo, Número de teléfono de 10 dígitos.

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito Descripción

Rev. 1.0 Pág. 14

RF2 Alta de usuarios Requisito Restricción Funcionalidad básica sistema Alta/Esencial Media/Deseado Baja/ Opcional El alta de usuarios se realizara con los campos de formulario Nombre de 50 caracteres, Apellido de 50 caracteres, Tipo seleccionara obligatoriamente una categoría, Dirección de 40 caracteres de tipo dirección, Email de 50 caracteres de tipo correo, Número de teléfono de 10 dígitos, Usuario se debe ingresar algún nombre de usuario para su cuenta, Contraseña de mínimo 8 caracteres.

5 Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito Descripción

RF3 Validación campo Requisito Restricción Validación a campos del sistema Alta/Esencial Media/Deseado No se permite campos en blanco No se permite caracteres especiales …

Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito Descripción

RF4 Validación de correo Requisito Restricción Validación a campos del sistema Alta/Esencial Media/Deseado Baja/ Opcional No se permite campos en blanco Debe de ser del tipo correo(tiene que contener un @ en la dirección) …

Baja/ Opcional

3.2.2 Requisito funcional 2 Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito Descripción y diseño

RF2 Alta, baja y editar usuario Requisito Restricción Funcionalidad básica sistema Alta/Esencial

Media/Deseado

Baja/ Opcional

Esta opción solo se podrá realizar por alguna cuenta con privilegios de administrador, el cuál dará de alta al usuario que se contratará en el negocio. Pero en el usuario administrador si solo se cuenta con uno no se podrá Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 15

eliminar.

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 16

3.2.3 Requisito funcional 3 Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito Descripción y diseño

RF3 Login Requisito Funcionalidad básica sistema Alta/Esencial

Restricción

Media/Deseado

Baja/ Opcional

El usuario deberá iniciar sesión para poder utilizar el sistema

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 17

3.2.4 Requisito funcional 4 Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito Descripción y diseño

RF4 Alta, baja y editar categoría. Requisito Funcionalidad básica sistema Alta/Esencial

Restricción

Media/Deseado

Baja/ Opcional

Esta opción solo se podrá realizar por alguna cuenta con privilegios de administrador.

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 18

3.2.5 Requisito funcional 5 Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito Descripción y diseño

RF6 Alta, baja y editar productos. Requisito Funcionalidad básica sistema Alta/Esencial

Restricción

Media/Deseado

Baja/ Opcional

Esta opción solo se podrá realizar por alguna cuenta con privilegios de administrador.

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 19

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 20

3.2.6 Requisito funcional 6 Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito Descripción y diseño

RF7 Alta, baja y editar proveedores Requisito Funcionalidad básica sistema Alta/Esencial

Restricción

Media/Deseado

Baja/ Opcional

Esta opción solo se podrá realizar por alguna cuenta con privilegios de administrador.

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 21

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 22

3.2.7 Requisito funcional 8 Número de requisito Nombre de requisito Tipo Fuente del requisito Prioridad del requisito Descripción y diseño

RF8 Alta, baja y editar clientes Requisito Funcionalidad básica sistema Alta/Esencial

Restricción

Media/Deseado

Baja/ Opcional

Esta opción solo se podrá realizar por alguna cuenta con privilegios de administrador.

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 23

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 24

4 Requisito funcional 4.1

Requisitos no funcionales 4.1.1 Requisitos de rendimiento Este sistema está diseñado para soportar que varios usuarios se puedan conectar simultáneamente: ADMINISTRADOR: será capaz de hacer todas las opciones en el sistema como altas, bajas, modificaciones de cualquier tipo. ALMACENISTA: solo podrá realizar altas, bajas y modificaciones de productos. VENDEDOR: este tipo de usuario solo será capaza de realizar ventas y llevar a cabo cortes de caja.

4.1.2 Seguridad Todos los usuarios deberán autenticarse y dependiendo su nivel podrán realizar distintas operaciones dentro del sistema, las contraseñas estarán encriptadas para brindar tanto al sistema, como a la información la seguridad que estos necesitan tener.

4.1.3 Fiabilidad Es uno de los factores que dará confianza al cliente, el sistema será confiable para así poder brindarle lo que esté necesite al momento que lo ocupe, tendrá el mínimo margen de error posible.

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 25

4.1.4 Disponibilidad El sistema estará disponible para el usuario, tomando en cuenta las necesidades, los requisitos, reglas y objetivos de este mismo. Por lo que se encontrará 100 % disponible cada vez que el usuario desee utilizarlo, es decir las 24 horas del día.

4.1.5 Mantenibilidad El TPVExpress cuenta con características adaptables, lo que permitirá futuros mantenimientos. Es decir cada 6 meses se le realizará un mantenimiento preventivo que se llevará a cabo por un técnico asignado.

4.1.6 Portabilidad El sistema TPVXpress no podrá ser movido a alguna otra plataforma sin la autorización de algún ingeniero en sistemas de la empresa Predators. Será un sistema web 100% portable.

4.2

Otros requisitos

El sistema será diseñado como proyecto final de la materia desarrollo de sistemas

5 Apéndices Se otorga el permiso para reproducir totalmente este documento en cualquier lugar que lo desee, siempre y cuando los autores del mismo estén de acuerdo, por lo que cualquier movimiento o edición a este documento tendrá que ser autorizado por los autores de este.

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 26

6 Esquema Relacional

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 27

7 Esquema Entidad-Relación

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 28

8 Codigo MODELOS USUARIO using TPVE.Enum; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations.Schema; namespace TPVE.Models { public class User { [Key] public int UserId { get; set; } [Display(Name = "NOMBRE")] public string Name { get; set; } [Display(Name = "APELLIDO")] public string LastName { get; set; } [Display(Name = "TIPO")] public TypeUser TypeUser { get; set; } [Display(Name = "DIRECCION")] public string Address { get; set; } [Display(Name = "TELEFONO")] public string PhoneNumber { get; set; } [Display(Name = "EMAIL")] public string email { get; set; } [Display(Name = "USUARIO")] public string UserName { get; set; } [Required(ErrorMessage = "Requiere {0}")] [DataType(DataType.Password)] [Display(Name = "CONTRASEÑA")] public string Password { get; set; } [NotMapped] public string FullName { get { return string.Format("{0} {1}", Name, LastName); } set { } }

} } Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 29

PROVEEDOR using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web; namespace TPVE.Models { public class Supplier { [Key] public int SupplierId{ get; set; } [Display(Name = "PROVEEDOR")] public string CompanyName { get; set; } [Display(Name = "DIRECCION")] public string Addres { get; set; } [DataType(DataType.PhoneNumber)] [Required(ErrorMessage = "El campo {0} es requerido")] [MaxLength(16)] [Display(Name = "TELEFONO")] [RegularExpression(@"^\(?([0-9]{3})\)?([ .-]?)([0-9]{3})\2([0-9]{4})$", ErrorMessage = "Telefono no válido")] ///\(?([0-9]{3})\)?([ .-]?)([0-9]{3})\2([0-9]{4})/ public string PhoneNumber { get; set; } [Display(Name = "EMAIL")] [Required(ErrorMessage = "El campo no puede estar vacio")] [DataType(DataType.EmailAddress, ErrorMessage = "Correo no valido")] public string Email { get; set; } public virtual ICollection Products { get; set; } } }

DETALLE DE VENTA using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Web; namespace TPVE.Models { public class SaleDetail { public int SaleDetailID { get; set; } public int SaleId { get; set; } public int ProductId { get; set; } public float Quantity { get; set; } public string ProductName { get; set; } public decimal UnitPrice { get; set; } Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 30

[NotMapped] public decimal Amount { get { return UnitPrice * (decimal)Quantity; } } public virtual Customer Customers { get; set; } public virtual Product Product { get; set; } } } VENTA using using using using using

TPVE.Enum; System; System.Collections.Generic; System.Linq; System.Web;

namespace TPVE.Models { public class Sale { public int SaleId { get; set; } public int ? UserId { get; set; } public int ? CustomerId { get; set; } public DateTime SaleDate { get; set; } public PaymentType PaymentType { get; set; }

// Modelos que public virtual public virtual // public virtual

ocupamos aqui User User { get; set; } Customer Customer { get; set; } ICollection SaleDetails { get; set; }

} } PRODUCTO using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web; namespace TPVE.Models { public class Product { [Key] public int ProductId { get; set; } [Display(Name = "CODIGO")] public string BarCode { get; set; } [Display(Name = "PRODUCTO")] public string ProductName { get; set; } Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 31

[Display(Name = "PROVEEDOR")] public int ? SupplierId { get; set; } [Display(Name = "CATEGORIA")] public int? CategoryId { get; set; } [Display(Name = "PRECIO UNITARIO")] public decimal UnitPrice { get; set; } [Display(Name = "DISPONIBLES")] public float Stock { get; set; } public virtual Supplier Supplier { get; set; } public virtual Category Category { get; set; } public virtual ICollection SaleDetail { get; set; } }

} CLIENTE using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Web; namespace TPVE.Models { public class Customer { [Key] public int CustomerId { get; set; } [StringLength(30, ErrorMessage = "El campo {0} es de {2} a {1} caracteres", MinimumLength = 2)] [Required(ErrorMessage = "El campo {0} es requerido")] [MaxLength(31)] [Display(Name = "NOMBRE")] public string Name { get; set; } [StringLength(40, ErrorMessage = "El campo {0} es de {2} a {1} caracteres", MinimumLength = 2)] [Required(ErrorMessage = "El campo {0} es requerido")] [MaxLength(41)] [Display(Name = "APELLIDO")] public string LastName { get; set; }

[StringLength(13, ErrorMessage = "El campo {0} es de {2} a {1} caracteres", MinimumLength = 9)] [Required(ErrorMessage = "El campo {0} es requerido")] [MaxLength(14)] [Display(Name = "RFC")] public string RFC { get; set; }

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 32

[StringLength(40, ErrorMessage = "El campo {0} es de {2} a {1} caracteres", MinimumLength = 2)] [Required(ErrorMessage = "El campo {0} es requerido")] [MaxLength(41)] [Display(Name = "DIRECCION")] public string Address { get; set; } [DataType(DataType.PhoneNumber)] [Required(ErrorMessage = "El campo {0} es requerido")] [MaxLength(16)] [Display(Name = "TELEFONO")] [RegularExpression(@"^\(?([0-9]{3})\)?([ .-]?)([0-9]{3})\2([0-9]{4})$", ErrorMessage = "Telefono no válido")] ///\(?([0-9]{3})\)?([ .-]?)([0-9]{3})\2([0-9]{4})/ public string PhoneNumber { get; set; } [Display(Name = "CREDITO")] public float Credit { get; set; } [NotMapped] public string FullName { get { return "RFC: "+string.Format("{2} {1} {0}", Name, LastName, RFC); } set { } } } } CATEGORIA using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web; namespace TPVE.Models { public class Category { [Key] public int CategoryId { get; set; } [Display(Name = "CATEGORIA")] public string CategoryName { get; set; } [Display(Name = "DESCRIPCION")] public string Description { get; set; } public virtual ICollection Products { get; set; } } }

CONTROLADORES USUARIO using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Linq; Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

using using using using using

Rev. 1.0 Pág. 33

System.Net; System.Web; System.Web.Mvc; TPVE.Context; TPVE.Models;

namespace TPVE.Controllers { public class UsersController : Controller { private TPVEContext db = new TPVEContext(); // GET: Users public ActionResult Index() { return View(db.Users.ToList()); } // GET: Users/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } User user = db.Users.Find(id); if (user == null) { return HttpNotFound(); } return View(user); } // GET: Users/Create public ActionResult Create() { return View(); } // POST: Users/Create // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener // más información vea https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "UserId,Name,LastName,TypeUser,Address,PhoneNumber,email,UserName,Password")] User user) { if (ModelState.IsValid) { db.Users.Add(user); db.SaveChanges(); return RedirectToAction("Index"); } return View(user); Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 34

} // GET: Users/Edit/5 public ActionResult Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } User user = db.Users.Find(id); if (user == null) { return HttpNotFound(); } return View(user); } // POST: Users/Edit/5 // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener // más información vea https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit([Bind(Include = "UserId,Name,LastName,TypeUser,Address,PhoneNumber,email,UserName,Password")] User user) { if (ModelState.IsValid) { db.Entry(user).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(user); } // GET: Users/Delete/5 public ActionResult Delete(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } User user = db.Users.Find(id); if (user == null) { return HttpNotFound(); } return View(user); } // POST: Users/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(int id) { User user = db.Users.Find(id); db.Users.Remove(user); try Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 35

{ db.SaveChanges(); } catch { } return RedirectToAction("Index"); }

public ActionResult Logout() { Session.Abandon();

return RedirectToAction("Index", "Home"); }

protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } }

PROVEEDOR using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Linq; using System.Net; using System.Web; using System.Web.Mvc; using TPVE.Context; using TPVE.Models; namespace TPVE.Controllers { public class SuppliersController : Controller { private TPVEContext db = new TPVEContext(); // GET: Suppliers public ActionResult Index() { return View(db.Suppliers.ToList()); }

public ActionResult Logout() { Session.Abandon(); Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 36

return RedirectToAction("Index", "Home"); } // GET: Suppliers/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Supplier supplier = db.Suppliers.Find(id); if (supplier == null) { return HttpNotFound(); } return View(supplier); } // GET: Suppliers/Create public ActionResult Create() { return View(); } // POST: Suppliers/Create // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener // más información vea https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "SupplierId,CompanyName,Addres,PhoneNumber,Email")] Supplier supplier) { if (ModelState.IsValid) { db.Suppliers.Add(supplier); db.SaveChanges(); return RedirectToAction("Index"); } return View(supplier); } // GET: Suppliers/Edit/5 public ActionResult Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Supplier supplier = db.Suppliers.Find(id); if (supplier == null) { return HttpNotFound(); } return View(supplier); } Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 37

// POST: Suppliers/Edit/5 // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener // más información vea https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit([Bind(Include = "SupplierId,CompanyName,Addres,PhoneNumber,Email")] Supplier supplier) { if (ModelState.IsValid) { db.Entry(supplier).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(supplier); } // GET: Suppliers/Delete/5 public ActionResult Delete(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Supplier supplier = db.Suppliers.Find(id); if (supplier == null) { return HttpNotFound(); } return View(supplier); } // POST: Suppliers/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(int id) { Supplier supplier = db.Suppliers.Find(id); db.Suppliers.Remove(supplier); db.SaveChanges(); return RedirectToAction("Index"); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } }

VENTA using TPVE.Context; Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 38

using TPVE.Models; using TPVE.ViewModels; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; using System.Web.Mvc; namespace TPVE.Controllers { public class SaleController : Controller { TPVEContext db = new TPVEContext(); public ActionResult Index() { List list = db.SaleDetails.ToList(); Session["Detalles"] = list; var sales = db.Sales.Include(y => y.Customer).Include(y => y.User); return View(sales.ToList()); } // GET: Sale public ActionResult NewSale() { var SaleView = new SaleView(); SaleView.Customer = new Customer(); SaleView.Products = new List(); Session["SaleView"] = SaleView; var list = db.Customers.ToList(); list.Add(new Customer { CustomerId = 0, Name = "[Seleccione un Cliente]" }); list = list.OrderBy(x => x.Name).ToList(); ViewBag.CustomerVB = new SelectList(list, "CustomerID", "FullName"); return View(SaleView); } // POST: Orders [HttpPost] public ActionResult NewSale(SaleView saleView) { saleView = Session["SaleView"] as SaleView; int customerId = int.Parse(Request["CustomerVB"]); int UserId = int.Parse(Session["LogedUserID"].ToString()); var listCustomer = db.Customers.ToList(); if (customerId == 0) { TempData["Error"] = "ESCOJA UN CLIENTE "; listCustomer.Add(new Customer { CustomerId = 0, Name = "[Seleccione un cliente]" }); listCustomer = listCustomer.OrderBy(x => x.FullName).ToList(); ViewBag.CustomerVB = new SelectList(listCustomer, "CustomerID", "FullName"); ViewBag.ProductID = new SelectList(listCustomer, "ProductId", "ProductName"); //orderView.Products = new List(); return View(saleView); Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 39

} var customer = db.Customers.Find(customerId); if (customer == null) { TempData["Error"] = "ESCOJA UN CLIENTE"; listCustomer.Add(new Customer { CustomerId = 0, Name = "[Seleccione un cliente]" }); listCustomer = listCustomer.OrderBy(x => x.FullName).ToList(); ViewBag.CustomerVB = new SelectList(listCustomer, "CustomerId", "FullName"); ViewBag.ProductId = new SelectList(listCustomer, "ProductId", "ProductName"); saleView.Products = new List(); return View(saleView); } int quantProduct = saleView.Products.Count(); if (quantProduct < 1) { //ModelState.AddModelError("ProductId", "Seleccione cliente"); //mandar mensaje TempData["Error"] = "AGREGUE PRODUCTOS PARA PODER REALIZAR UNA COMPRA"; listCustomer.Add(new Customer { CustomerId = 0, Name = "[Seleccione un cliente]" }); listCustomer = listCustomer.OrderBy(x => x.FullName).ToList(); ViewBag.CustomerVB = new SelectList(listCustomer, "CustomerId", "FullName"); ViewBag.ProductId = new SelectList(listCustomer, "ProductId", "ProductName"); return View(saleView); } using (var transaccion = db.Database.BeginTransaction()) { try { Sale Sale = new Sale { CustomerId = customerId, SaleDate = DateTime.Now, PaymentType = Enum.PaymentType.Efectivo, UserId = UserId }; db.Sales.Add(Sale); db.SaveChanges(); var SaleId = db.Sales.ToList().Select(o => o.SaleId).Max(); foreach (var item in saleView.Products) { SaleDetail SaleDetail = new SaleDetail() { SaleId = SaleId, ProductId = item.ProductId, Quantity = item.Quantity, ProductName = item.ProductName, UnitPrice = item.UnitPrice Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 40

}; db.SaleDetails.Add(SaleDetail); db.SaveChanges(); //Math.Sqrt(-25); } TempData["Error"] = "VENTA"+SaleId + " REALIZADA"; transaccion.Commit(); return RedirectToAction("NewSale"); } catch (Exception) { transaccion.Rollback(); TempData["Error"] = "Ya bailo Berta"; } }

return RedirectToAction("NewSale"); }

public ActionResult Delete(int id) { var ses = ((SaleView)(Session["SaleView"])); try { foreach (var item in ses.Products) { if (item.ProductId == id) { ses.Products.Remove(item); } } } catch { } var saleView=Session["SaleView"]; var listC = db.Customers.ToList(); listC.Add(new Customer { CustomerId = 0, Name = "[Seleccione un cliente]" }); listC = listC.OrderBy(x => x.FullName).ToList(); ViewBag.CustomerVB = new SelectList(listC, "CustomerID", "FullName"); return View("NewSale", saleView);

}

public ActionResult Logout() { Session.Abandon();

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 41

return RedirectToAction("Index", "Home"); }

public ActionResult AddProduct() { var list = db.Products.ToList(); list.Add(new Product { ProductId = 0, ProductName = "[Seleccione un producto]" }); list = list.OrderBy(x => x.ProductName).ToList(); ViewBag.ProductID = new SelectList(list, "ProductId", "ProductName"); return View(); }

[HttpPost] public ActionResult AddProduct(ProductSale productOrder) { var saleView = Session["SaleView"] as SaleView; //cantidad, nombre, precio, importe var productId = int.Parse(Request["ProductId"]); var list = db.Products.ToList(); if (productId == 0) { list.Add(new Product { ProductId = 0, ProductName = "[Seleccione un producto]" }); list = list.OrderBy(x => x.ProductName).ToList(); ViewBag.ProductId = new SelectList(list, "ProductId", "ProductName");

ViewBag.Error = "ESCOGA PRODUCTO VB"; ModelState.AddModelError("ProductI", "ESCOGA PRODUCTO MSAME");

TempData["Error"] = "ESCOGA PRODUCTO TD"; return View(productOrder); } var product = db.Products.Find(productId); if (product == null) { list.Add(new Product { ProductId = 0, ProductName = "[Seleccione un producto]" }); list = list.OrderBy(x => x.ProductName).ToList(); ViewBag.ProductId = new SelectList(list, "ProductId", "ProductName");

ViewBag.Error = "NO EXISTE PRODUCTO VB"; ModelState.AddModelError("ProductID", "NO EXISTE PRODUCTO MSAME");

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 42

TempData["Error"] = "NO EXISTE PRODUCTO TD"; return View(productOrder); }

bool juan=false; foreach (var item in saleView.Products) { if (item.ProductId == productId) { item.Quantity += productOrder.Quantity; juan = true; } } if (!juan) { var productSale = new ProductSale { ProductId = product.ProductId, Quantity = float.Parse(Request["Quantity"]), ProductName = product.ProductName, UnitPrice = product.UnitPrice }; var aux = productSale; saleView.productSale = null; saleView.Products.Add(aux); aux = null; }

var listC = db.Customers.ToList(); listC.Add(new Customer { CustomerId = 0, Name = "[Seleccione un cliente]" }); listC = listC.OrderBy(x => x.FullName).ToList(); ViewBag.CustomerVB = new SelectList(listC, "CustomerID", "FullName"); return View("NewSale", saleView); }

public ActionResult DeleteSale(int id) { Sale sale = db.Sales.Find(id); db.Sales.Remove(sale); foreach (var item in db.SaleDetails) { if (item.SaleId == id) { db.SaleDetails.Remove(item); } } db.SaveChanges(); return RedirectToAction("Index"); } Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 43

[HttpPost] public ActionResult DetailSale(int id2) { int id = int.Parse(Request["Id"]); var list = db.SaleDetails.Include(p => p.ProductName); List list2 = new List(); foreach (var item in list) { if (item.SaleId==id) { list2.Add(item); } } return View(list2.ToList()); } } }

PRODUCTO using using using using using using using using using using

System; System.Collections.Generic; System.Data; System.Data.Entity; System.Linq; System.Net; System.Web; System.Web.Mvc; TPVE.Context; TPVE.Models;

namespace TPVE.Controllers { public class ProductsController : Controller { private TPVEContext db = new TPVEContext(); public ActionResult Logout() { Session.Abandon();

return RedirectToAction("Index", "Home"); }

[HttpPost] public ActionResult Search() { string prod = Request["Buscar"].ToString(); var products = db.Products.Include(p => p.Category).Include(p => p.Supplier); List products2 = new List(); Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 44

foreach (var item in products) { if (prod!=null && (prod == item.BarCode || item.ProductName.Contains(prod)==true)){ products2.Add(item); } } return View("Index",products2.ToList()); }

// GET: Products public ActionResult Index() { if (Session["LogedUserID"] == null) { return RedirectToAction("Index", "Home"); }

var products = db.Products.Include(p => p.Category).Include(p => p.Supplier); return View(products.ToList()); } // GET: Products/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Product product = db.Products.Find(id); if (product == null) { return HttpNotFound(); } return View(product); } // GET: Products/Create public ActionResult Create() {

Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 45

ViewBag.CategoryId = new SelectList(db.Categories, "CategoryId", "CategoryName"); ViewBag.SupplierId = new SelectList(db.Suppliers, "SupplierId", "CompanyName"); return View(); } // POST: Products/Create // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener // más información vea https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "ProductId,BarCode,ProductName,SupplierId,CategoryId,UnitPrice,Stock")] Product product) { if (ModelState.IsValid) { db.Products.Add(product); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.CategoryId = new SelectList(db.Categories, "CategoryId", "CategoryName", product.CategoryId); ViewBag.SupplierId = new SelectList(db.Suppliers, "SupplierId", "CompanyName", product.SupplierId); return View(product); } // GET: Products/Edit/5 public ActionResult Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Product product = db.Products.Find(id); if (product == null) { return HttpNotFound(); } ViewBag.CategoryId = new SelectList(db.Categories, "CategoryId", "CategoryName", product.CategoryId); ViewBag.SupplierId = new SelectList(db.Suppliers, "SupplierId", "CompanyName", product.SupplierId); return View(product); } // POST: Products/Edit/5 // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener // más información vea https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit([Bind(Include = "ProductId,BarCode,ProductName,SupplierId,CategoryId,UnitPrice,Stock")] Product product) Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 46

{ if (ModelState.IsValid) { db.Entry(product).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.CategoryId = new SelectList(db.Categories, "CategoryId", "CategoryName", product.CategoryId); ViewBag.SupplierId = new SelectList(db.Suppliers, "SupplierId", "CompanyName", product.SupplierId); return View(product); } // GET: Products/Delete/5 public ActionResult Delete(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Product product = db.Products.Find(id); if (product == null) { return HttpNotFound(); } return View(product); } // POST: Products/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(int id) { Product product = db.Products.Find(id); db.Products.Remove(product); db.SaveChanges(); return RedirectToAction("Index"); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } }

CLIENTE using using using using using

System; System.Collections.Generic; System.Data; System.Data.Entity; System.Linq; Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

using using using using using

Rev. 1.0 Pág. 47

System.Net; System.Web; System.Web.Mvc; TPVE.Context; TPVE.Models;

namespace TPVE.Controllers {

public class CustomersController : Controller { private TPVEContext db = new TPVEContext(); // GET: Customers public ActionResult Index() { if (Session["LogedUserID"]==null) { return RedirectToAction("Index", "Home"); } return View(db.Customers.ToList()); }

public ActionResult Logout() { Session.Abandon();

return RedirectToAction("Index", "Home"); } // GET: Customers/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Customer customer = db.Customers.Find(id); if (customer == null) { return HttpNotFound(); } return View(customer); } // GET: Customers/Create public ActionResult Create() { return View(); } Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 48

// POST: Customers/Create // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener // más información vea https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "CustomerId,Name,LastName,RFC,Address,PhoneNumber,Credit")] Customer customer) { if (ModelState.IsValid) { db.Customers.Add(customer); db.SaveChanges(); return RedirectToAction("Index"); } return View(customer); } // GET: Customers/Edit/5 public ActionResult Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Customer customer = db.Customers.Find(id); if (customer == null) { return HttpNotFound(); } return View(customer); } // POST: Customers/Edit/5 // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener // más información vea https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit([Bind(Include = "CustomerId,Name,LastName,RFC,Address,PhoneNumber,Credit")] Customer customer) { if (ModelState.IsValid) { db.Entry(customer).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(customer); } // GET: Customers/Delete/5 public ActionResult Delete(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 49

} Customer customer = db.Customers.Find(id); if (customer == null) { return HttpNotFound(); } return View(customer); } // POST: Customers/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(int id) { Customer customer = db.Customers.Find(id); db.Customers.Remove(customer); db.SaveChanges(); return RedirectToAction("Index"); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } }

CATEGORIA using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Linq; using System.Net; using System.Web; using System.Web.Mvc; using TPVE.Context; using TPVE.Models; namespace TPVE.Controllers { public class CategoriesController : Controller { private TPVEContext db = new TPVEContext(); // GET: Categories public ActionResult Index() { return View(db.Categories.ToList()); }

public ActionResult Logout() { Session.Abandon(); Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 50

return RedirectToAction("Index", "Home"); } // GET: Categories/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Category category = db.Categories.Find(id); if (category == null) { return HttpNotFound(); } return View(category); } // GET: Categories/Create public ActionResult Create() { return View(); } // POST: Categories/Create // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener // más información vea https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "CategoryId,CategoryName,Description")] Category category) { if (ModelState.IsValid) { db.Categories.Add(category); db.SaveChanges(); return RedirectToAction("Index"); } return View(category); } // GET: Categories/Edit/5 public ActionResult Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Category category = db.Categories.Find(id); if (category == null) { return HttpNotFound(); } return View(category); } Descripción de requisitos del software

TPVExpress Especificación de requisitos de software

Rev. 1.0 Pág. 51

// POST: Categories/Edit/5 // Para protegerse de ataques de publicación excesiva, habilite las propiedades específicas a las que desea enlazarse. Para obtener // más información vea https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit([Bind(Include = "CategoryId,CategoryName,Description")] Category category) { if (ModelState.IsValid) { db.Entry(category).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(category); } // GET: Categories/Delete/5 public ActionResult Delete(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Category category = db.Categories.Find(id); if (category == null) { return HttpNotFound(); } return View(category); } // POST: Categories/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(int id) { Category category = db.Categories.Find(id); db.Categories.Remove(category); db.SaveChanges(); return RedirectToAction("Index"); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } }

Descripción de requisitos del software