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.

Pin It on Pinterest

Share This