Recibo de compra con PHP en ejercicio resuelto - Subtotal, IVA y total

PHP: compra de productos con formulario (ejercicio resuelto)

El día de hoy vamos a resolver un ejercicio de programación en PHP. Se trata de simular la compra de productos a través de un formulario y luego mostrar el total.

Es un ejercicio de programación para aprender más sobre este lenguaje. La solicitud dice:

Realizar una página web dinámica con PHP que simule la compra de varios productos de una tiendita a través de un formulario web.

  • Solicitar el nombre de 5 productos (cuadros de textos).
  • Solicitar la marca de cada producto (desplegables).
  • Solicitar el precio de cada producto (cuadros de número)
  • El formulario tendrá los botones de enviar y reset
  • Al presionar el botón de envío, el programa calculará la suma de los productos (subtotal), el IVA y el total de la compra (Subtotal + IVA)

Vamos a hacerlo dibujando el formulario de manera dinámica y recibiéndolo igualmente en el servidor.

(más…)

Proyecto de Laravel ejecutándose en Android con Termux

Ejecutar proyecto de Laravel en Android con Termux

En el post de hoy veremos cómo “programar” en Laravel desde Android, o dicho técnicamente, ejecutar un proyecto de Laravel (que usa PHP) dentro de un servidor Apache con PHP todo dentro de Termux corriendo sobre un dispositivo Android.

Las herramientas que necesitamos ya existen en Termux, y son php, mysql, composer y apache.

Además, no es obligatorio programar en el móvil (aunque sí posible); podemos simplemente montar un proyecto de Laravel en Android.

(más…)

Exportar base de datos de MySQL con Laravel hacia un archivo SQL

Exportar base de datos de MySQL con Laravel

En este corto post de programación con PHP, Laravel y MySQL vamos a ver cómo exportar una base de datos de MariaDB completa desde un controlador de Laravel.

Vamos a usar la herramienta mysqldump atrapando su salida en un archivo y luego vamos a servirlo al cliente para finalmente eliminarlo, es decir, usaremos mysqldump para volcar la base de datos a un archivo SQL temporal.

Nota: si quieres también puedes ver el script que usa PHP puro y adaptarlo a Laravel:

Script para respaldar una base de datos de MySQL con PHP

(más…)

Código fuente de plugin para impresoras térmicas v2

En este post te mostraré cómo instalar y compilar lo necesario para montar el código fuente del plugin de impresoras térmicas versión 2 que ya presenté anteriormente y que puedes ver en el siguiente post:

Presentando plugin para impresoras térmicas versión 2

En pocas palabras, ese plugin permite imprimir en impresoras térmicas usando una API de internet, pero al estar en un servidor web necesita una conexión estable a internet, por ello es que ya existe la versión 3.

Al tener el código fuente, tú mismo puedes vender el servicio de la API ESC POS o usarlo para ti mismo modificando los planes y brindándote un plan ilimitado.

Veamos entonces cómo instalar las herramientas necesarias para modificar el código fuente del plugin versión 2.

(más…)

Agrupar condiciones WHERE en SQL usando Laravel

En el post de hoy vamos a trabajar con Laravel, PHP y consultas SQL con WHERE. Como bien sabes, en MySQL o motores similares podemos agrupar condiciones usando paréntesis, estableciendo así un orden.

Por ejemplo, si queremos encerrar 2 condiciones y luego evaluarlas con un AND, haríamos algo así:

select * from `productos` where `id_establecimiento` = ? and (`descripcion` LIKE ? or `codigo_barras` LIKE ?) order by `descripcion` asc;

En este caso hacemos un and entre la primera comparación y el resultado de la segunda que está encerrada entre paréntesis para evaluar un or.

Esto es importante porque (para este ejemplo) si no se usaran paréntesis se podrían ver los productos de todos los establecimientos si es que el código de barras coincide.

Entonces veamos cómo agrupar y evaluar condiciones booleanas de la base de datos entre paréntesis usando el Query Builder y ORM de Laravel.

(más…)

Archivo de Excel creado con Laravel, PHP y PhpSpreadsheet

Laravel: crear archivo de Excel

En este post veremos cómo crear un archivo de Excel usando Laravel. Verás que es realmente sencillo.

Te pondré un ejemplo simple y a partir del mismo podrás crear hojas de cálculo usando los modelos de Laravel que se conectan a la base de datos o trayendo el contenido desde cualquier lugar.

Vamos a usar PhpSpreadsheet del cual ya existe un post con PHP puro, pero ahora veremos cómo usar PhpSpreadsheet con Laravel.

(más…)

Laravel: restringir acceso según rol de usuario

En el post te hoy te enseñaré a manejar algunos roles de usuario en Laravel para que se pueda acceder a ciertas áreas dependiendo del rol.

Con lo que aprenderás podrás restringir ciertos módulos solo al administrador, y otros solo para el usuario normal, cajero, empleado, etcétera. Vamos a usar controladores y middlewares.

Por cierto, con esto vamos a restringir controladores completos, y no acciones. Eso lo dejamos para otro post en donde seguramente usaremos los Requests y el método authorize.

(más…)

Validar confirmación de contraseña con Laravel - Confirmar contraseña

Laravel: validar confirmación de contraseña

En el corto post de hoy veremos cómo validar que las contraseñas que el usuario escribe sean iguales al momento de registrar un usuario, es decir, que la contraseña y la confirmación de la contraseña coincidan.

Así vas a poder mostrar el mensaje de “Las contraseñas deben coincidir” o “Vuelve a escribir tu contraseña”

Esto se puede hacer con un if o cosas complejas, pero te enseñaré a comprobar si las 2 contraseñas son iguales dentro del Request que llega al formulario, dentro de StoreUserRequest específicamente.

Por cierto, estoy suponiendo que usas la autenticación de Laravel para crear usuarios o que al menos usas un Request para enviar el formulario.

(más…)

Ticket de venta en sistema de ventas con PHP

Ticket de venta y cantidad modificable en punto de venta con PHP y MySQL

Hace tiempo publiqué en este mismo blog un sistema de ventas open source con PHP, MySQL y Bootstrap.

En los últimos días le he agregado algunas características y hago este post para informar sobre las actualizaciones a ese sistema de ventas.

Específicamente hablando he agregado un campo para modificar la cantidad al vender usando el teclado. Por otro lado ahora se puede imprimir un ticket o recibo de venta.

(más…)

Trabajando con parámetros de ruta en Laravel

Hoy vamos a hablar un poco sobre los parámetros que se pueden pasar en la URL cuando usamos el framework Laravel y sobre la importancia del nombre de la variable que los mismos deben tener.

Recuerda que cuando usas un resource de Laravel, el framework asigna un nombre dependiendo del modelo; y varias veces no es el que esperamos.

Por otro lado debemos cuidar el nombre de la variable cuando recibimos el parámetro en un controlador.

Veamos cómo funcionan los parámetros de ruta en Laravel al usar resources y controladores, además de un truco para saber el nombre de los parámetros de las rutas de Laravel.

(más…)

Registrar usuario en sistema de ventas

Punto de venta con PHP, jQuery y Bootstrap – Gratuito y open source

Hoy traigo al blog otro punto de venta gratuito y open source, pero este es especial pues fue el primer programa que hice y que fue usado por varias personas.

El punto de venta que presento es un POS web, totalmente open source y gratuito, además de simple y bonito.

Punto de venta web con PHP, MySQL, jQuery, JavaScript y Bootstrap

Punto de venta web con PHP, MySQL, jQuery, JavaScript y Bootstrap

Está hecho con PHP y JavaScript con jQuery (era el año 2016), usa MySQL/MariaDB como motor de base de datos y Bootstrap para los estilos, con varios temas.

Como ya dije anteriormente, este fue mi primer punto de venta oficial que comencé como por el 2015 (apenas iniciaba la universidad, qué tiempos) y luego terminé en el 2016.

Aunque parezca antiguo sigue funcionando como un encanto incluso con PHP 8.

En este post te mostraré los módulos del sistema y cómo puedes descargarlo e instalarlo en tu computadora o en tu hosting compartido.

El programa es totalmente responsivo y permite la impresión de tickets de manera local.

(más…)

Ver cola de espera por sector o vendedor en sistema para turnos

Sistema turnero con colas, recepcionista y clientes

En este post voy a mostrarte una actualización o modificación al sistema de turnos que ya está en mi blog desde hace algún tiempo.

Recuerda que el sistema de turnos que te mostré anteriormente permite al propio usuario solicitar su turno y el vendedor o profesional que lo atenderá.

Ahora en esta nueva versión se presentan los siguientes cambios (además de login con usuarios, responsivo, utilizable en red local, etcétera):

  • Registro de usuario por recepcionista
  • Colas de espera por distintas áreas
  • Colas de espera por vendedores o profesionales
  • Los vendedores se pueden poner como ausentes o disponibles, y se guarda el tiempo que se toma el descanso
  • Mover clientes en las colas y priorizar a algunos usando un drag and drop
  • Permisos por usuarios. El vendedor solo puede ver los clientes que él atenderá, y no puede cambiar la prioridad
  • Avisar si el cliente ya lleva esperando mucho tiempo

A lo largo de este post te mostraré los cambios de este sistema y cómo puedes obtenerlo con todo su código fuente.

(más…)

Montar y configurar proyecto existente de Laravel desde cero

En este post te describiré cómo montar un proyecto de Laravel en tu servidor de desarrollo. Lo hago para los clientes a los que les envío el código y necesitan una guía para hacerlo.

Este tutorial también sirve por si te has descargado un proyecto de Laravel y lo quieres colocar en tu servidor de desarrollo.

Por cierto, este tutorial va enfocado a usar Laravel con Apache en Windows.

(más…)

Laravel: crear primer usuario del sistema

En nuestros proyectos de Laravel podemos agregar la autenticación de usuarios de manera simple usando lo que el framework provee.

Sin embargo siempre hay un pequeño problema y es el de crear el primer usuario del sistema o el primer administrador del sistema, ya que para crearlo necesitamos estar logueados, pero para loguearnos debe existir un usuario.

Hay varias técnicas para crear un primer usuario del software en Laravel con PHP pero hoy te mostraré uno sencillo y a la manera de Laravel.

(más…)