Total vendido agrupado por mes – SQL y reportes con gráficas

En este post vamos a ver cómo calcular el total vendido en un período de fechas agrupado por mes, ya sea para mostrar un reporte o una gráfica de barras o líneas.

Básicamente veremos el algoritmo y ejemplos de código para sacar el desglose del total vendido por mes en el año o en cualquier período de tiempo, tomando los datos de una base de datos, agrupando, ordenando, sumando, etcétera.

No importa cuál motor de base de datos utilices ni el lenguaje de programación. Veremos el algoritmo para sumar el total vendido por mes.

(más…)

Bot de Telegram con base de datos MySQL

Telegram y MySQL: conexión usando bot

En este post vamos a ver cómo realizar la conexión de Telegram con MySQL a través de un bot, de modo que podamos guardar y consultar datos de una base de datos de MySQL desde Telegram.

Telegram bot con MySQL - Listar e insertar registros a base de datos con comandos

Telegram bot con MySQL – Listar e insertar registros a base de datos con comandos

Con lo que veremos vamos a poder insertar datos en una tabla de MySQL desde Telegram y cualquier chat (siempre y cuando nuestro bot pueda leer los mensajes).

También vamos a ver cómo guardar el nombre del usuario y la fecha de envío del mensaje. Será un CRUD (sin Update) básico pero puedes partir del mismo para hacer cosas más específicas.

(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…)

Tabla de productos comprados para mostrar como JSON

SQL: obtener varias filas de subconsulta en una sola, simulando JSON para agrupar

Hace tiempo te mostré cómo “encapsular” varias filas de datos en una sola fila usando JSON con PostgreSQL y las funciones que de JSON que este motor ofrece.

Hoy te enseñaré a obtener varias filas “comprimidas” dentro de una fila simulando un JSON concatenando los resultados, por lo que será compatible con varios motores de bases de datos.

En pocas palabras ingresaremos un arreglo de filas en una fila, agrupando varias filas en una sola, o mejor dicho, colocar resultados de una subconsulta como JSON.

(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…)

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…)

Por parzibyte, hace

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…)

Por parzibyte, hace

Guardar números de teléfono en base de datos

En este post vamos a hablar sobre cómo guardar números telefónicos, teléfonos o números de teléfono en las bases de datos, enfocándonos en el tipo de dato.

Esto va a responder a la pregunta de ¿Cuál tipo de dato usar para guardar números de teléfono?.

Lo expuesto aquí es mi opinión y sugerencia, pero al final puedes hacer lo que gustes. Aunque la respuesta parezca obvia, he visto que varios usuarios preguntan esto y por eso he decidido hacer este post.

(más…)

PHP: acceso al sistema entre hora inicial y final

En el post de hoy veremos cómo podemos hacer un sistema en PHP para hacer que los usuarios entren solo en determinada hora específica, por ejemplo, desde las 10 de la mañana hasta las 2 de la tarde.

Básicamente vamos a ver cómo guardar la hora de entrada y salida, y dejar que el usuario ingrese solo si está en ese rango.

Te voy a mostrar un ejemplo de cómo guardar los datos en la base de datos y cómo comparar al momento de iniciar sesión. Te aviso desde ahora que el código será como un ejemplo para que tú puedas tomarlo y adaptarlo al tuyo.

(más…)