Generador de Código QR






// ⬛ AGREGAR PAQUETE ⬛ function agregarPaquete(data) { var emailC = obtenerEmail(); var email = emailC.split('@')[0]; const sheet = SpreadsheetApp.openById(DOCUMENTO_ID).getSheetByName('Entradas'); const secuencia = obtenerSecuencia(data.sucursal); const now = new Date(); const dia = String(now.getDate()).padStart(2, '0'); const mes = String(now.getMonth() + 1).padStart(2, '0'); const anio = String(now.getFullYear()).slice(-2); // Obtener los últimos 2 dígitos del año const hora = String(now.getHours()).padStart(2, '0'); const minutos = String(now.getMinutes()).padStart(2, '0'); // Combinar todos los elementos const fecha = `${dia}-${mes}-${anio} ${hora}:${minutos}`; const estado = "Recibido"; const fcorta = `${dia}${mes}${anio}`; const codigoPaquete = `${data.sucursal.replace(/\s+/g, '')}-${fcorta.replace(/\s+/g, '')}-${data.categoriaPaquete.replace(/\s+/g, '')}-${data.tipoPaquete.replace(/\s+/g, '')}-${secuencia.replace(/\s+/g, '')}-${data.provincia.replace(/\s+/g, '')}-${data.municipio.replace(/\s+/g, '')}`; const fila = [ codigoPaquete, data.idCliente, data.idDestinatario, data.sucursal, fecha, data.categoriaPaquete, data.tipoPaquete, secuencia, data.provincia, data.municipio, data.pesoPaquete, calcularImporteTotal(data), data.metodoPagoE, formatearContenido(data.contenido), formatearDescuento(data.descuento), formatearAumento(data.aumento), estado, email ]; // Verificar y gestionar bloqueo en la celda A1 const maxEspera = 10000; // 10 segundos const intervalo = 500; // 0.5 segundos const inicio = Date.now(); while (sheet.getRange('A1').getValue() === "Ocupado") { if (Date.now() - inicio > maxEspera) { throw new Error('La celda A1 estuvo ocupada por demasiado tiempo. Inténtelo de nuevo más tarde.'); } Utilities.sleep(intervalo); } // Bloquear la celda A1 sheet.getRange('A1').setValue("Ocupado"); try { // Insertar la fila sheet.insertRowBefore(2); sheet.getRange(2, 1, 1, fila.length).setValues([fila]); } finally { // Liberar la celda A1 sheet.getRange('A1').setValue("Libre"); } const mensaje = 'Paquete agregado con éxito'; return { mensaje: mensaje, codigoPaquete: codigoPaquete }; } function agregarPaquete(data) { var emailC = obtenerEmail(); var email = emailC.split('@')[0]; const sheet = SpreadsheetApp.openById(DOCUMENTO_ID).getSheetByName('Entradas'); const secuencia = obtenerSecuencia(data.sucursal); const now = new Date(); const dia = String(now.getDate()).padStart(2, '0'); const mes = String(now.getMonth() + 1).padStart(2, '0'); // Los meses empiezan desde 0 const anio = String(now.getFullYear()).slice(-2); // Obtener los últimos 2 dígitos del año const hora = String(now.getHours()).padStart(2, '0'); const minutos = String(now.getMinutes()).padStart(2, '0'); // Combinar todos los elementos const fecha = `${dia}-${mes}-${anio} ${hora}:${minutos}`; const estado = "Recibido" const fcorta = `${dia}${mes}${anio}`; const codigoPaquete = `${data.sucursal.replace(/\s+/g, '')}-${fcorta.replace(/\s+/g, '')}-${data.categoriaPaquete.replace(/\s+/g, '')}-${data.tipoPaquete.replace(/\s+/g, '')}-${secuencia.replace(/\s+/g, '')}-${data.provincia.replace(/\s+/g, '')}-${data.municipio.replace(/\s+/g, '')}`; const fila = [ codigoPaquete, data.idCliente, data.idDestinatario, data.sucursal, fecha, data.categoriaPaquete, data.tipoPaquete, secuencia, data.provincia, data.municipio, data.pesoPaquete, calcularImporteTotal(data), data.metodoPagoE, formatearContenido(data.contenido), formatearDescuento(data.descuento), formatearAumento(data.aumento), estado, email ]; sheet.insertRowBefore(2); sheet.getRange(2, 1, 1, fila.length).setValues([fila]); const mensaje = 'Paquete agregado con éxito'; return { mensaje: mensaje, codigoPaquete: codigoPaquete }; } // ⬛ AGREGAR CLIENTE ⬛ function agregarCliente(datos) { const hojaClientes = SpreadsheetApp.openById(DOCUMENTO_ID).getSheetByName('Clientes'); hojaClientes.insertRowBefore(2); // Inserta una fila nueva en la fila 2 hojaClientes.getRange(2, 1, 1, 3).setValues([[datos.id, datos.nombre, datos.telefono]]); return datos; // Retorna los datos del cliente agregado }