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

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

Laravel: problemas con route model binding y middleware propio

En este pequeño post voy a relatar un pequeño problema que tuve con las rutas de Laravel al pasar un Model a través de la URL usando el Route Model Binding.

El problema era que yo pasaba el modelo por la URL pero al momento de recibirlo en el controlador, el mismo estaba vacío. Mejor dicho, era un arreglo vacío o un Model nuevo sin atributos.

Después de horas depurando me di cuenta de que el problema estaba causado debido a un middleware propio que yo había escrito.

(más…)

Usar Sublime POS 3 en internet (nube)

Hace tiempo liberé mi sistema de ventas para Windows totalmente gratis y fuera de línea (es decir, se accede al mismo sin internet aunque se use un navegador).

Si bien el sistema puede ser usado localmente y en la red local, a veces es necesario usarlo en internet.

Por ello es que en este post te indicaré cómo usar Sublime POS 3 en la nube, ya sea montándolo en tu servidor o rentándolo en el mío.

(más…)

Tipo de dato de una variable en JavaScript

JavaScript: función que devuelve tipo de argumento

En este post de JavaScript veremos cómo saber el tipo de un argumento de una función. Es un ejercicio de programación, ya que si queremos saber el tipo de una variable usamos typeof, pero el ejercicio dice:

Escribe una función JavaScript que acepte un argumento y devuelva el tipo.

Nota: Hay seis posibles valores que el tipo de retornos: objeto, booleano, función, número, cadena y undefined.

Veamos cómo hacer esto con JS.

(más…)

Service worker en Progressive Web App

Crear y publicar Progressive Web App – Convertir app web en PWA

Hoy voy a enseñarte cómo convertir cualquier aplicación web en una PWA o Progressive Web App.

Tú puedes programar en cualquier lenguaje y Framework, ya que las PWA no están atadas a algo más allá de JavaScript.

Así que mientras tu app conste de archivos del lado del cliente, podrás convertirla en PWA. Y con estos archivos me refiero a CSS, JS, HTML, imágenes, etcétera.

Te repito que para crear una PWA no necesitas usar un framework específico, así que puedes usar JavaScript puro, Angular, Vue, React, jQuery (bueno, jQuery no, ya es obsoleto) y cualquier otro que genere JavaScript al final.

(más…)

Leer código de barras (lector USB conectado) con JavaScript

En este post te mostraré algo muy simple pero que no todos sabemos al principio: cómo conectar un lector de código de barras a nuestra aplicación de JavaScript.

Con esto me refiero a un lector de código de barras físico, conectado a la computadora ya sea por USB o PS/2.

Vamos a leer el código de barras y saber cuando el código se ha terminado de leer. Todo esto en la web con JavaScript y un input.

Nota: recuerda que en mi blog ya te enseñé a leer códigos de barras en JavaScript con la cámara del dispositivo, pero no con un lector físico de esos que tienen “luces rojas”.

(más…)

Ajustes del sistema - Impresora y acceso a través de la LAN

Software para control de eventos, aforo y boletería

En este post te mostraré otro sistema que he realizado recientemente. Se trata de un programa para llevar el control de eventos por tiempo, en donde se cobra por el tiempo que la persona ingresa al evento.

Esto está pensado para controlar el acceso a eventos como parques, piscinas, juegos, etcétera; ya que se registra el tiempo de entrada y de salida a partir de un número de pulsera.

Cuando la persona sale del evento se realiza el cobro del mismo y se imprime un ticket. Las características del software son:

  • Control de aforo: Indica cuántas personas están dentro del establecimiento o evento
  • Registro de datos con número de pulsera para tener un identificador
  • Posibilidad de acceder desde el teléfono o cualquier dispositivo para que una persona esté en la entrada y otra en la salida del evento a través de la LAN
  • Opción para anular los tickets
  • Reporte de ventas en donde se incluyen filtros por fecha y hora, así como un reporte que indica la cantidad de tickets vendidos o anulados.
  • Reporte de ticket con mayor costo y ticket con menor costo
  • Impresión de tickets en impresora térmica

Realmente este programa fue pensado para llevar el control de eventos a donde asisten niños acompañados con sus padres (en donde dependiendo del tiempo de la estancia, se realiza el cobro) pero se puede adaptar a cualquier circunstancia.

(más…)

Solicitar firma de usuario con JavaScript y HTML en la web

Solicitar firma manuscrita con JavaScript

En este post te mostraré cómo solicitar la firma a un usuario desde la web usando JavaScript, de modo que el usuario pueda firmar como si lo hiciera en una hoja de papel.

Después podremos enviar esa firma al servidor, descargarla, colocarla en un documento, etcétera.

Documento con firma de usuario con JavaScript - Imprimir o guardar como PDF

Documento con firma de usuario con JavaScript – Imprimir o guardar como PDF

Quiero que quede claro que vamos a solicitar la firma manuscrita usando programación en la web a través de un navegador. Para ello vamos a usar el canvas.

Nota: una vez que la firma haya sido dibujada puedes enviarla a PHP, Java, Node, etcétera. En el ejemplo te mostraré cómo descargarla como imagen y colocarla en un documento.

(más…)

Cambiar color de fondo a canvas con JavaScript

En este corto post te mostraré cómo cambiar el color de fondo o background de un canvas HTML usando JavaScript.

Básicamente vamos a colorear todo el canvas o limpiar el canvas dibujando un rectángulo que tendrá las mismas dimensiones que el canvas.

Al final con lo que te mostraré aprenderás a cambiar el color de un canvas con JavaScript.

(más…)

Dibujar en canvas de JavaScript usando mouse - Prototipo de paint

Dibujar en canvas con mouse usando JavaScript

En este post sobre programación web HTML y JavaScript te mostraré cómo hacer que el usuario pueda dibujar en un canvas usando el mouse, algo así como un paint muy básico.

De esta forma vamos a permitir que el usuario pueda dibujar y pintar sobre el canvas usando el ratón.

Más adelante podrías adaptar este código para cualquier otra cosa, incluso para crear un paint completo. Aquí solo te mostraré cómo permitir que el usuario dibuje en la web con un color y grosor determinado.

(más…)

Prevenir que usuario cierre página web con JavaScript

Prevenir cierre de página web con JavaScript

En el post de hoy te mostraré cómo prevenir que el usuario navegue a otra página o pestaña, recargue la página o la cierre. Todo esto con JavaScript.

Desde ahora te digo que (si bien contradice el título del post) no es posible prevenirlo al 100 %, solo se puede mostrar una advertencia que el usuario puede ignorar.

Si bien no vamos a prevenir, te mostraré cómo mostrar un mensaje para darle al usuario la posibilidad de no cerrar la pestaña o navegar a otro lugar.

Esto funciona con Chrome y Firefox en sus últimas versiones al momento de escribir este post.

(más…)