Está en la página 1de 58

UN IV E R S ID A D A UTÓ N O M A DE NUEVO LEÓN

F A C UL TA D DE IN G E N IE R ÍA M E CÁ NIC A Y E L É C TR ICA

TALLER DE PROGRAMACIÒN ORIENTADA A OBJETOS

PUNTO DE VENTA

ALUMNO MATRICULA

ANA PAOLA SERRATO 2035780


VALLEJO

CESAR AMAURY RODRIGUEZ 1898255

CANTU

FRANCISCO RUBEN CRUZ 1914988

CHAVEZ

JOSE RODOLFO RODRIGUEZ 1987169

MARTINEZ

ARTURO TAMEZ HERRERA 1895740

SAUL DAVID MORENO 1901085

FRANZUA
INDICE

• Requerimiento u objetivo del proyecto

• Diseño del diagrama UML

1.caso uso
2.modelo entidad-relación
3.clases
4.secuencias
5.actividades

• Diccionario de datos
• Español estructurado
• Pantallas de entrada y salida
• Grafica de Gantt
• Manual técnico
FASE 1. Área de oportunidad

Mi equipo y yo estamos en busca de un local/negocio que no cuente con un sistema administrativo


para brindarle una oportunidad que se basa en hacerle un sistema que se adapte a las necesidades
requeridas por el dueño/administrador del local o negocio y todo esto completamente gratis, esto es
con la finalidad aplicar todo lo aprendido e enriquecernos un poco más de conocimientos en el área
de trabajo, también será de mucha utilidad para el dueño de cierto local/negocio, ¿de qué manera?,
será mucho más práctico todo a la hora de cuestiones administrativas y especialmente en el área de
ventas.
Nos dimos a la tarea de salir a buscar diferentes negocios y por diferentes circunstancias elegimos
una tiendita llamada la cuál aceptó dicha propuesta que ofrecimos, detallando todo de buena manera
ofrecimos al local un sistema completamente gratis. Aceptada la propuesta nos dimos a una nueva
tarea de conversar un poco con el dueño para comprender mejor desde un diferente punto de vista las
necesidades que tiene para su local, en tre platica nos comentó que necesitaba tener una
administración de sus diferentes productos, tener un control de cuanta mercancía tiene, de dicha
información creamos el primer aspecto llamado "Inventario", dada esa información haremos altas,
bajas, informes y consultas de la mercancía que maneja el negocio. También nos comentó que no
quería algo tan laborioso ya que no son personas que le sepan mucho a la tecnología por lo cual
hicimos todo junto dar de alta el producto. Inventario y precio, este programa solo contara con tres
apartados, productos, vender(caja) y ventas registras, el cliente pidió que arrojara un ticket, al terminar
la venta podremos arrojar un ticket, Terminando la conversación con el usuario recalcamos que todo
era completamente gratis y agradecimos su disponibilidad para este proyecto.

FASE 1. Revisión y autorización

Nuestro cliente revisó nuestra elaboración de los aspectos de nuestro proyecto y nos
dijo que estaba todo bien, que sí le parecía la información que le proporcionamos, le
mencionamos la idea que traíamos del proyecto que fuera algo sencillo de manejar para
él y su familia, sin más que decir quedo de acuerdo con lo que íbamos a realizar.

FASE 1. Modelado
El proyecto consiste en que debe agregar productos con un código de barra o un numero de un solo
digito, así mismo agregar una descripción, inventario, precio del producto y precio a venta al cliente.
Tener también una función que sea como caja y así mismo agregar los productos que vaya llevando
el cliente y la cantidad de productos que lleva, al último arrojar el total de ese producto, al finalizar el
registro de los productos a llevar hay que poner un nombre del cliente, con ese nombre se arrojara el
ticket, los nombres no se guardaran en la base de datos, en otro apartado se registran las ventas de
ese día, en ese apartado es donde se imprime el ticket, sin más es un proyecto sencillo pero adaptado
a las necesidades del cliente.

FASE 1. Factibilidad Técnica

Usuario
cuenta con equipo propio menciona que tiene instalado el paquete Office así que nosotros nos
ofrecimos a instalarle el programa y cualquier cosa que ocupe para la ejecución del sistema.

Factibilidad Económica.
Cuando visitamos al usuario nos comentó que sí tenía el equipo necesario y que estaba en buenas
condiciones y en caso de ocupar una nueva tenía facilidad de comprarla.

Factibilidad Operativa.
El programa será usado por cualquier persona que este encargado de caja, ninguno puso oposición y
estuvieron de acuerdo con la capacitación que les daremos.
FASE 1. Validar Información

Volvimos a visitar a nuestro cliente para que volviera a checar o revisar todo nuevamente la información
que ya nos había proporcionado y nos dijera sí todo estaba en orden, sí algo estaba mal, o sí deseaba
agregar algo, otras cosas etc.ya sean aspectos de quién manejará el sistema y cosas por el esti lo, dijo
que no quería editar nada que por el momento todo estaba bien, estaba en orden y él nos mencionó
que cuando él tuviera algo de información que agregar o se le ocurriera algo él nos marcaba para ir o
por teléfono hacernos llegar la información, nuestro cliente nos mencionó que a veces él no podría
atendernos, y que ese programa que nosotros le estaríamos entregando también será u tilizado por
cualquier empleado de la tiendita, y que quería que si también podemos asesorar a todos los
empleados, para así poder todos saber sobre el programa y que también nosotros podemos
comunicarnos con sus empleados y que todo estaba bien con la información y lo que estamos
haciendo.

Requerimiento del sistema

Estos son los requerimientos que se necesitan para la instalación del sistema:
Requerimiento recomendado:
• Procesador Intel Pentium ¡5 con 3.5GHz de velocidad o AMD A10 con 3.4 (mínimo) de velocidad.
• Sistema: Windows (xp), (7), (8.1), (10) x64 bits.
• Memoria RAM: 16GB (como mínimo).
• Espacio de disco duro: 8GB de espacio disponible.
• Tarjeta gráfica: Gigabyte nidia geforce gt 740 2GB o amd Radeon RX 460 2GB.
• Compatibilidad: Directx 11.0 o superior, Windows Service Pack 2 o superior.

Diseño de salida

Al cliente se le entregara el manual de usuario en una USB, al igual impreso para más facilidad del usuario
Organizational data system

.
2. Descripción general.
2.1 Perspectiva del producto.
El software es un sistema independiente de otros softwares, sin embargo; depende de marcas que
vendan productos de consumo humano ya que se maneja un sistema de inventario para la tien da,
Se necesita el uso externo de una persona para poder manejar el sistema de software del inventario
ya que sin este sería totalmente inútil.
2.2 Funciones del producto.
En el menú principal de inventario se puede observar la ID del producto, el nombre del producto con
su descripción , el precio de compra, precio de venta, producto en existencia y las opciones de editar
y eliminar.
En el menú principal donde se muestran los productos estos se pueden editar haciendo clic en su
respectiva casilla en donde el usuario tendrá que hacer los cambios necesarios que requiera, una vez
realizados los cambios deberá hacer clic en “Guardar” para realizar los cambios o en su defecto hacer
clic en “cancelar” para no guardar los cambios.
El software soporta cantidades significativas de inventario agregando productos en la sección “Nuevos”
en productos donde se puede agregar el código de barras, descripción, precio de venta, precio de
compra además de la existencia del producto en la tienda.
En la sección de vender funciona ingresando el código de barras y el nombre del cliente.
En la opción de ventas hay un historial de ventas en donde se podrá imprimir el ticket de venta o
eliminar el historial.
2.3 Características de los usuarios.
El usuario deberá tener como mínimo la secundaria terminada para poder hacer uso del sistema, no
se requiere experiencia ya sea de cajero a saber de administración de inventarios para poder hacer
uso correcto del sistema, en cuestión de conocimientos técnicos no se requieren muchos ya que es
bastante intuitivo, sin embargo; deberá conocer acerca de cómo funcionan diferentes sistemas de
inventario y ventas.

2.4 Restricciones
Políticas de empresa
Las políticas de empresa dependerán de quienes adquieran los derechos del sistema.

Limitaciones del hardware.


No se maneja un hardware en especifico para este sistema de software.
Interfaces con otras aplicaciones.
No se pude utilizar en pc/laptops con sistema operativo Windows 7 o inferior.
Operaciones paralelas.
Se puede ejecutar en diferentes laptops/pc a la vez, siempre y cuando se estén en la misma tienda y
manejen la misma base de datos.
Funciones de auditoría.
Se recomienda tener una persona designada y un supervisor para evitar fallos futuros.
Funciones de control.
Se recomienda tener una persona designada y un supervisor para evitar fallos futuros.
Lenguajes de programación.
Cualquier lenguaje de programación que no sea Php, html, css y sql.
Protocolos de comunicación.
Se necesita estar conectado a una conexión de internet para poder funcionar, el software no ofrece un
“chat” así que es necesario comunicarse con la persona directamente.
Requisitos de habilidad.
Se debe tener como mínimo la secundaria terminada y una pequeña capacitación para saber usar el
software.
Criticalidad de la aplicación.
Se pueden producir errores si al momento de la compra se seleccionan productos que no están
registrados en el inventario.
Consideraciones acerca de la seguridad.
No se puede crear una cuenta así que es una vulnerabilidad ya que si alguien tiene acceso podrá
modificar los costos del producto y su ID.
2.5 Suposiciones y Dependencias.
Los factores de cambio pueden suceder si los sistemas operativos cambian y se deberá revisar la
documentación de la programación así mismo las nuevas implementaciones del nuevo sistema
operativo, ahora el software puede cambiar dependiendo de los datos ingresados en el inventario.
2.6 Requisitos futuros.
Se podría analizar la creación de un login para tener mayor seguridad, mejorar las interfaces, si los
sistemas operativos cambian y llegasen afectar al software se necesitara tener contacto con el
programador para mejoras y adaptarlo a nuevas versiones.
Diagrama UML
Diccionario de datos

Nombre del archivo: Ventas


Fecha de Creación: 20/11/2022
Descripción: Archivo que contiene la información de las ventas que se han realizado
de cada producto.
Campo Tipo Tamaño Descripción
Numero Entero 15 Número del producto
Fecha Date 30 Fecha en la que se realizó la venta
Cliente Carácter 25 Nombre del comprador

Productos Entero 50 Productos que van hacer vendidos


vendidos
Total Float 30 Cantidad de la suma de los productos
vendidos
Ticket Carácter 60 Documento que se entrega por hacer la
compra
Eliminar Carácter 20 Para eliminar un producto

Nombre del archivo: Nuevo


Fecha de Creación: 20/11/2022
Descripción: Archivo donde puedes agregar un nuevo producto
Campo Tipo Tamaño Descripción
Código Entero 15 Código del producto
Descripción Date 30 Nombre del producto que se va agregar
Precio de Float 25 Precio de cuanto lo vamos a vender
venta
Precio de Float 30 Precio de en cuanto compramos el
compra producto
Existencia Float 30 Precio de la cantidad del total de mercancía
del producto

Nombre del archivo: Vender


Fecha de Creación: 20/11/2022
Descripción: Archivo que contiene la información de los productos que se van a
comprar.
Campo Tipo Tamaño Descripción
ID Entero 15 Clave del Producto
Código Entero 15 Código del producto
Descripción Carácter 25 Nombre del producto

Precio de Float 50 Precio del que se vende el producto


venta
Cantidad Entero 30 Cantidad del total de productos que van a
comprar
Total Float 60 Cantidad de la suma de los productos que
se compraran
Quitar Carácter 20 Para quitar el producto que ya no quieras
comprar

Nombre del archivo: Ticket


Fecha de Creación: 20/11/2022
Descripción: Archivo que contiene la información del documento que se entrega
después de realizar una compra
Campo Tipo Tamaño Descripción
Logo Carácter 15 Símbolo de la tienda
Fecha Date 30 Fecha en la que se realizó la venta
Cliente Carácter 25 Nombre del comprador

Cantidad Entero 50 Total de productos que van hacer


comprados
Productos Carácter 30 Producto que se van a vender
Precio Float 50 Precio del producto
Total Float 30 Precio de la suma de los productos que se
vendieron

Nombre del archivo: Listar


Fecha de Creación: 20/11/2022
Descripción: Archivo que contiene la lista de los productos que hay en la tienda
Campo Tipo Tamaño Descripción
ID Entero 15 Clave del producto
Código Entero 30 Código del producto
Descripción Carácter 25 Nombre del Producto

Precio de Float 50 Precio de en cuanto compramos el


compra producto
Precio de Float 30 Precio de cuanto lo vamos a vender
venta
Existencia Float 60 Precio de la cantidad del total de mercancía
del producto
Editar Carácter 20 Para editar la lista
Eliminar Carácter 20 Para eliminar un producto
Español Estructurado

En este documento veremos la explicación de la funcionalidad de cada código dentro de nuestro


proyecto, para que cualquier persona pueda entender todo lo que conlleva el código sin necesidad
de saber de programación o de el lenguaje de programación que estamos utilizando.

APARTADO DE “agregarALCarrito.php”

De la línea de código 1 a la 4: Es el inicio del “código” con una condición que te retorna cada vez que realices algo dentro
de este apartado.

De la línea de código 6 a la 10: Básicamente manda a llamar todo lo de de la base de datos en la tabla de produc tos
donde aparezca la línea “código”.

De la línea de código 12 a la 15: Explica que si no existe, se sale y lo indica.

De la línea de código 17 a la 20: Es por si no hay existencia.

De la línea de código 21 a la 29: Busca un producto dentro del carrito .

De la línea de código 31 a la 43: Lo agrega como nuevo si no llega a existir, si ya existe se agrega la cantidad, pero si al
sumarle 1 supera lo que existe, no se agrega nunca, todo esto sale de “Location ./vendephp?status=5”.

En el código de la línea 44: A la cantidad se le va sumando 1.

En el código de la línea 45: Y aquí se muestra el total que es igual a la variable “precioVenta”.

En el código de la línea 47: El header indica que eso se guarda en (“Location: ./venderphp”).

APARTADO DE “base_de_datos.php”

Todo este apartado trata de un usuario dentro del apartado de “ventas”, manda a llamar de la base de datos, el usuario,
contraseña y el nombre de la base de datos, y utiliza un try y catch para detectar y controlar una excepción generada por
código en f uncionamiento, y te mande un aviso que diga “Ocurrió algo con la base de datos”.

APARTADO DE “cambiar cantidad.php”

De la línea de código 2 a la 4: Es una pequeña condición que indica que cuando se realice la acción indique que “No hay
cantidad”.

De la línea de código 5 a la 7: Es una pequeña condición que indica que cuando se realice la acción indique que “No hay
índice”.

De la línea de código 8 a la 14: Indica que cantidad es un valor f loat e indica es un valor int, después se hace una
conducción que valide la existencia de la cantidad en el carrito.

De la línea de código 15 a la 17: Indica que la variable cantidad es igual a la cantidad del producto, y el total = a la
variable “precioVenta”, y todo eso está guardado en “Location : ./vender.php”.
APARTADO DE “cancelarVenta.php”

De la línea de código 1 a la 9: Se realiza siempre y cuando esté iniciada la sesión y todo es o almacenado en el carrito, se
manda al status 2 y se cancela.

APARTADO DE “db_shema.sql”

Básicamente este apartado es uno donde se vincula con la base de datos de venta, la primera línea de código,
declaración de que cae todas las tablas y elimina la base de datos, se crea una tabla de productos, y de venta y una
tabla de productos y venta juntas, al f inal se agrega dentro de la tabla de productos:
id
Código
Descripción
precioVenta
precioCompra
existencia
APARTADO DE “editar.php”

De la línea de código 2 a la 7: De la variable get se pide el id, se busca de la “base_de_datos.php”, se busca en la base
de datos el producto con su id.

De la línea de código 8 a la 11: Si el producto es igual a f also, se manda un mensaje “¡No existe algún producto con ese
ID!”. Además se se genera un apartado para que el usuario pueda ingresar a las distintas tablas los siguientes datos:

CÓDIGOS DE BARRAS
DESCRIPCIÓN
PRECIO DE VENTA
PRECIO DE COMPRA
EXISTENCIA

todo esto está dentro de una una pequeña ventana para que se guarde y no se junte con los demás y todo esto sale de
“pie.php”

APARTADO DE “eliminar.php”

De la línea de código 2 a la 11: Básicamente en este apartado se elimina el id del producto, y en la línea 7 se valida si el
resultado es igual a verdadero te manda un mensaje de “Algo salió mal” y no se ejecuta la eliminación.
APARTADO DE “eliminarVenta.php”

De la línea de código 2 a la 11: Básicamente en este apartado se elimina el id de la venta, y en la línea 7 se valida si el
resultado es igual a verdadero te manda un mensaje de “Algo salió mal” y no se ejecuta la eliminación de la venta.

APARTADO DE “encabezado.php”

De la línea de código 10 a la 12: Son los links que te mandan a los dif erentes apartados para hacer diseño dentro del
encabezado.

De la línea de código 14 a la 20: Es un navegador para interactuar, que cuenta con productos, ve nder y venta, incluye
una imagen del logo y todo está dentro de la base de datos.
APARTADO DE “f ormulario.php”

De la línea de código 1 a la 23: genera un f orm para poder agregar un nuevo producto mediante la base de datos, cuenta
con: CÓDIGOS DE BARRAS , DESCRIPCIÓN, PRECIO DE VENTA, PRECIO DE COMPRA y EXISTENCIA

APARTADO DE “GuardarDatosEditados.php”

De la línea de código 3 a la 11: Se genera una condición, para salir si alguno de los datos no está presente.

De la línea de código 15 a la 21: Este se ejecuta si todo va bien por parte del código.

De la línea de código 23 a la 24: Se genera la base de d atos y se guardan los datos que ingresaste antes.

De la línea de código 26 a la 30: Y valida que si el resultado es igual a verdadero se ejecuta el programa y se guardan los
datos editados, si no f unciona se envía este mensaje “Algo salió mal, Por f avor v erif ica que la tabla exista, así como el ID
del producto”
APARTADO DE “imprimirTicket.php”

De la línea de código 2 a la 4: Empieza con una condición que verif ica si no hay ID.

De la línea de código 5 a la 12: Busca en la base de datos del apartado de las ventas y se hace una pequeña que si no
existe productos manda un mensaje que dice no hay productos.

De la línea de código 14 a la 24: Habla a la base de datos de productos vendidos y genera un inner join.

De la línea de código 28 a la 83: Es puro diseños de el ticket le da f ormato para cuando se imprima se vea lo más f ormal
posible.

La última imagen muestra el código de la creación del ticket, el cual contiene la cantidad de productos, el producto y el
total de lo que es toda esa inf ormación lo saca mediante la base de datos, y además imprimimos un mensaje de “Gracias
por su compra”.

APARTADO DE “listar.php”

De la línea de código 1 a la 6: Se genera el encabezado y sale de la base de datos de productos.

De la línea de código 8 a la 43: Se genera un pequeño f ormulario con los siguientes datos:
1. ID
2. CÓDIGO
3. DESCRIPCIÓN
4. PRECIO DE COMPRA
5. PRECIO DE VENTA
6. EXISTENCIA
7. EDITAR
8. ELIMINAR
y todo esto lo sacamos de cada una de sus bases de datos.
APARTADO DE “nuevo.php”

En la línea de código 3: Se genera una condición que especif ica si, alguno de los datos ingresados no coinciden te saca.

De la línea de código 7 a la 25: En este se especif ica que si todos los datos están bien se ejecute lo siguiente, manda a
llamar a las bases de datos que son, código, descripción, precio de venta, precio de compra y si está en existencia.

Además hace una condición que se el resultado de esto es igual a verdadero Manda a hablar el apartado de “Location:
./listar.php” y si no se cumple la condición no manda a llamar nada y te manda un mensaje que dice “Algo salió mal. Por
f avor verif ica que la tabla exista”.

APARTADO DE “quitarDelCarrito.php”

De la línea de código 1 a la 8: Se hace una condición que agarra inf ormación del índice y lo retorna, además que cuando
la sesión inicia manda hablar “Location: ./listar.php”.
APARTADO DE “terminarVenta.php”

En la línea de código 2: Si ya tiene el total termina la venta.

De la línea de código 8 a la 11: Aquí manda a llamar de la base de datos al total y los clientes.

De la línea de código 17 a la 24: Manda a llamar la base de datos de ventas, con la f echa, el total y el cliente.

De la línea de código 26 a la 33: Checa de la base de datos la existencia de los productos.

De la línea de código 34 a la 38: Verif ica la base de datos del carrito y lo manda hablar con el apartado de “Location:
./listar.php”.
APARTADO DE “vender.php”

De la línea de código 11 a la 47: Son alertas de para cada acción que generes en el apartado de “VENDER”
● ¡CORRECTO!: Venta realizada correctamente
● Venta cancelada
● OK: Producto quitado de la lista
● ERROR: El producto que buscas no existe
● ERROR: El producto está agotado
● ERROR: Algo salió mal mientras se realizaba la venta

De la línea de código 52 a la 90: Habla a al apartado de “agregarCarrito” genera un f ormulario y que genera una pequeña
tabla:
● ID
● CÓDIGO
● DESCRIPCIÓN
● PRECIO DE VENTA
● CANTIDAD
● TOTAL
● QUITAR

Y lo saca de la base de datos de cada uno de los antes mencionados.

De la línea de código 94 a la 103: manda un pequeño f ormato para terminar la venta, con un botón de terminar venta y
de cancelar venta también.
En este apartado vemos todo lo utilizado por medio de sql desde productos, productos vendidos, ventas, y muchos más
cosas que utilizamos para modif icar las tablas de sql para que f uncione el proyecto f inal.
Pantalla de Entrada y salida
Agregar al carrito
Conexión de base de datos
Cambiar cantidad
Cancelar venta
Registro de venta

Editar producto
Eliminar producto

Eliminar venta
Encabezado

Formulario
Datos guardados
Imprimir el ticket
Index
Listar
Nuevo

Nombracion
Eliminar del carrito
Terminar venta

Vender
Ventas
Diagrama de gantt
Manual técnico
En este proyecto se realizo una app de un sistema de ventas en php, a continuación, se realizará una
explicación de como se llevó a cabo.

Es un simple formulario que pide la información. Sólo pide el código de barras, la descripción, el precio de
venta, de compra y la existencia.
Estamos incluyendo algunos archivos que son el encabezado y el pie.
Al enviar el formulario, los datos son recibidos en un archivo llamado nuevo.php.

Se Inserta los datos del formulario sin ninguna validación. Si todo va bien, redirija a listar.php para fingir que
los productos ya están guardados allí y agregados a la tabla.

aquí el código que dibuja la tabla:


Contiene botones que se utilizan para editar y eliminar productos que son solo enlaces a diferentes páginas.
Por cierto, también coloqué un botón para agregar un nuevo producto. También un enlace al formulario.
Cuando hacemos clic en el botón editar, nos redirige a otro archivo. En él, leemos el id utilizando $_GET. Luego,
hacemos una consulta a la base de datos en donde el id sea el que leímos.
Si el producto no existe, lo indicamos. En caso de que sí, entonces dibujamos el mismo formulario, pero ahora
lo llenamos con el atributo value de la etiqueta input. Para el textarea es diferente, pues el contenido debe ir
entre las etiquetas, no como atributo.

Hay dos botones. Uno de ellos envía el formulario; el otro es simplemente un enlace que lleva a listar.php. El
punto de todo esto es proporcionar al usuario unos botones de navegación.
Nos lleva a listar.php que se encargará de mostrar los productos, con los cambios que se hayan hecho:
Este código se utiliza para eliminar los productos de la base de datos y el programa.

Ahora se explicará el funcionamiento de vender.php:


Muestra una tabla, que será de los productos que componen la venta. También muestra el total, que al inicio es
0. Y hasta abajo 2 botones que son para terminar de vender o para cancelar la venta. Igualmente hay unos ifs
que muestran una alerta como “Producto inexistente” o cosas de esas.
Notemos que tiene un input, eso es para leer el código de barras. En realidad, es un input dentro de un
formulario. Dicho formulario, al enviarse, se va al archivo que veremos a continuación.

Agregar al carrito.
Finalmente, si vemos el
encabezado, notaremos que
declara el índice carrito en el
arreglo superglobal de
$_SESSION. Ahí es en donde
colocaremos los productos.
Comenzamos comprobando la
existencia del producto, si no
existe, regresamos a vender.php
y le pasamos el status 5 que dirá
que ya no hay existencias del
producto.
En caso de que no exista el
producto (es decir, que no exista,
no que su existencia sea 0)
mandamos el status 4.
Iniciamos sesión y recorremos el arreglo carrito para ver si ya habíamos agregado ese producto antes. En caso
de que lo hayamos agregado, entonces cambiamos solamente la cantidad.
Es decir, si ya existe “Mermelada de fresa” y vuelven a leer el código que le pertenece a ese producto, no vamos
a mostrar en la tabla ambos productos. Mejor mostramos uno e indicamos que su cantidad es 2, y así
sucesivamente.
Si no existe en el carrito entonces lo agregamos al arreglo y le ponemos su cantidad que por defecto es 1.
También, por defecto, su total será el precio de venta. No es necesario hacer multiplicaciones.
Luego, en caso de que ya exista, calculamos su total, que es el resultado de multiplicar su precio de venta por
la cantidad en el carrito.

Quitar del carrito.

Ahora veamos cómo quitar productos del carrito. Simplemente eliminamos el elemento que pertenezca al índice
que recibimos en $_GET. El código es muy fácil de entender.
Terminar venta.
Es un simple archivo que insertará en la base de datos los productos vendidos, así como la venta, su fecha y
su total. Queda así:

Restamos existencia de productos, tomamos la hora del servidor y guardamos la venta. Luego, limpiamos el
carrito.
beginTransaction y commit, es para (aunque ni se nota) agilizar el proceso. Es como hacer muchos cambios en
la base de datos, pero no guardarlos hasta que terminemos. Más información en Bajo rendimiento en sentencias
preparadas con PHP y MySQL.
Cancelar la venta

Para cancelar la venta simplemente vaciamos el arreglo y listo. Regresamos a listar con un status.
Listar.

Se utilizo un fue un group_concat, de esta manera, lo concatenamos en la consulta, pero lo “desconcatenamos”


en PHP.

Para eliminar una venta es como eliminar un producto.

También podría gustarte