Creación de un Web App para la Gestión de Inventarios con Google Sheets y Google Script

Hoy vamos a crear un Web App para gestionar inventarios, específicamente para registrar salidas de inventario. La ventaja del Web App es que permite ingresar datos sin necesidad de acceder directamente a Google Sheets, lo cual mejora la seguridad y flexibilidad del sistema.

Video

Paso 1: Estructuración del Google Sheet

Hojas de Trabajo

  1. Productos: Contendrá la lista de productos con sus referencias, descripciones, categorías y precios.
  2. Entradas: Para registrar las entradas de inventario.
  3. Salidas: Para registrar las salidas de inventario.
  4. Inventario: Para calcular el inventario actual.

Configuración de la Hoja de Productos

  • Columnas: Referencia, Descripción, Categoría, Precio.
  • Ejemplo de productos (usado fuera de cámaras):
Referencia | Descripción        | Categoría | Precio
-----------------------------------------------------
001        | Bolígrafo Azul     | Papelería | 0.50
002        | Bolígrafo Negro    | Papelería | 0.50
003        | Cuaderno           | Papelería | 2.00
004        | Rollo de Papel     | Papelería | 3.00
005        | Resma de Papel     | Papelería | 5.00

Paso 2: Creación del Web App

Configuración Inicial

  1. Crear un nuevo Google Sheet y añadir las hojas mencionadas.
  2. Abrir el editor de Apps Script: Extensiones > Apps Script.

Código del Script

  1. Crear el archivo HTML:
<!DOCTYPE html>
<html>
  <head>
    <title>Inventarios Papelería JSG</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
  </head>
  <body>
    <div class="container">
      <h1>Gestión de Inventarios</h1>
      <form>
        <div class="form-group">
          <label for="ref">Referencia</label>
          <input type="text" class="form-control" id="ref">
        </div>
        <div class="form-group">
          <label for="cantidad">Cantidad</label>
          <input type="number" class="form-control" id="cantidad">
        </div>
        <button type="button" class="btn btn-primary" onclick="guardarDatos()">Guardar</button>
      </form>
    </div>
    <script>
      function guardarDatos() {
        var ref = document.getElementById('ref').value;
        var cantidad = document.getElementById('cantidad').value;
        google.script.run.escribirEnSheets({ ref: ref, cantidad: cantidad });
        document.getElementById('ref').value = '';
        document.getElementById('cantidad').value = '';
      }
    </script>
  </body>
</html>
  1. Crear la función doGet en el archivo Code.gs:
function doGet() {
  return HtmlService.createHtmlOutputFromFile('principal');
}
  1. Crear la función escribirEnSheets en el archivo Code.gs:
function escribirEnSheets(data) {
  var libro = SpreadsheetApp.getActiveSpreadsheet();
  var hojaSalidas = libro.getSheetByName('Salidas');
  var hojaProductos = libro.getSheetByName('Productos');

  var ref = data.ref;
  var cantidad = data.cantidad;

  var datosProductos = hojaProductos.getDataRange().getValues();
  var listaProductos = datosProductos.map(function(fila) { return fila[0]; });
  var indice = listaProductos.indexOf(ref);

  if (indice !== -1) {
    var descripcion = datosProductos[indice][1];
    var precio = datosProductos[indice][3];
    var total = precio * cantidad;
    var fecha = new Date();

    hojaSalidas.appendRow([ref, descripcion, precio, cantidad, total, fecha]);
  }
}

Implementación del Web App

  1. Implementar el Web App:
  • En el editor de Apps Script, selecciona Publicar > Implementar como aplicación web.
  • Configura Ejecutar la aplicación como tú mismo.
  • Configura Quién tiene acceso a cualquiera (o solo a usuarios específicos).
  • Guarda e implementa.

Paso 3: Verificación y Prueba del Web App

  1. Acceder al Web App usando la URL proporcionada tras la implementación.
  2. Ingresar datos de prueba:
  • Referencia: 001
  • Cantidad: 10
  • Presionar «Guardar».
  1. Verificar en la hoja de Salidas que los datos se registren correctamente.

Paso 4: Cálculo del Inventario

Fórmulas en la Hoja de Inventario

  1. Entradas: =SUMIF(Entradas!A:A, A2, Entradas!D:D)
  2. Salidas: =SUMIF(Salidas!A:A, A2, Salidas!D:D)
  3. Inventario: =B2 - C2

Con esto, tienes una versión básica funcional del Web App para gestionar salidas de inventario en Google Sheets. En la próxima parte, mejoraremos esta versión y añadiremos más funcionalidades.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

JuanSGuzman
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.