Introducción
Este ejemplo nos va servir como base para crear un punto de venta de una tiendita de
abarrotes.Sus necesidades son las siguientes:
- Creación de inventario para agregar productos y precios.
- Reporte de ventas para ver lo que se vende por día.
- Generador de código de barras para producto como el kilo de
huevo que no tiene código de barras,azúcar, etc.
- Vista o formulario donde se escanearán los productos
para su venta
- Opción de recargas telefónicas(nota:Esta tal vez no la podemos mostrar
ya que necesitaríamos permiso de proveedor para consumir su webservice.)
Requisitos
- Visual studio 2019
- mysql
- scanner de código de barras con enter
- Impresora de tickets
- Windows 10 64bits
Base de datos
Nota:La base de datos ira cambiando conforme vayamos desarrollando el proyecto.
CREATE DATABASE puntodeventadb CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE `usuario` (
`idusuario` int(11) NOT NULL AUTO_INCREMENT,
`usuario` varchar(100) DEFAULT NULL,
`password` varchar(100) DEFAULT NULL,
PRIMARY KEY (`idusuario`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO `usuario` VALUES (1,'admin','admin');
CREATE TABLE `producto` (
`idProducto` int(11) NOT NULL AUTO_INCREMENT,
`codigoBarras` varchar(100) DEFAULT NULL,
`nombre` varchar(250) NOT NULL,
`precio` decimal(30,2) DEFAULT NULL,
PRIMARY KEY (`idProducto`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT=' ';
CREATE TABLE `puntodeventadb`.`ventastotales` (
`idventa` INT NOT NULL AUTO_INCREMENT,
`llaveventa` VARCHAR(200) NULL,
`total` DECIMAL(30,2) NULL,
`fecha` DATETIME NULL,
PRIMARY KEY (`idventa`))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8;
CREATE TABLE `puntodeventadb`.`ventasdetalle` (
`idventa` INT(11) NOT NULL,
`cantidad` INT NULL,
`idProducto` INT(11) NULL,
`total` DECIMAL(30,2) NULL,
PRIMARY KEY (`idventa`))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8;
Para correr el software en tu computadora sin modificar el codigo
necesitas crear el siguiente usuario
CREATE USER 'admin'@localhost IDENTIFIED BY 'adminlara';
Le damos los privilegios
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';
Refrescamos los privilegios
FLUSH PRIVILEGES;