Google Sheets – Planilla operativa unificada + sincronización bidireccional + archivado Contexto
Budget: $250 – $750 USD
Necesito un desarrollo en Google Sheets + Apps Script para unificar y sincronizar 3 planillas existentes en una 4ta planilla operativa (vista única) para logística y cobros. Voy a adjuntar capturas de las 3 planillas y cómo se ven hoy.
Planillas existentes (fuentes)
1. “Pedidos Listos” (comercial): contiene Remito (clave), fecha del pedido, cliente, domicilio y columnas de pago:
* Columna K: Fecha/Hora de pago
* Columna L: Pagado (SI/tilde)
2. “DESPACHOS_v2_LIMPIO” (operativa de armado/ruteo): cuando un pedido está armado/listo, el remito aparece acá (hoja principal “FRACCIONADOS”). También existe pestaña “REPORTE_Transportes” donde figura el transporte/segmentación.
3. “Despachos” (despacho real): refleja la salida real, con transporte final y datos de despacho.
Objetivo
Crear una 4ta planilla (mismo Spreadsheet o uno nuevo) llamada “CONTROL_UNIFICADO” que sea la única vista que usa el equipo, con SOLO estas columnas visibles:
* Remito (clave única)
* Fecha (desde Pedidos Listos)
* Cliente (desde Pedidos Listos)
* Domicilio (desde Pedidos Listos)
* Transporte
* Despachado (tilde manual + fecha/hora automática)
* Pagado (tilde manual + fecha/hora automática)
* Observaciones (unificadas)
Reglas operativas y de sincronización (importante)
A) Alta automática del pedido en CONTROL_UNIFICADO
* Cuando entra un remito nuevo en “Pedidos Listos”, debe aparecer automáticamente en CONTROL_UNIFICADO con Fecha/Cliente/Domicilio.
B) “Listo para entregar” (no existe estado “armado”)
* Para nosotros, un pedido está “listo para entregar” cuando el remito aparece en “DESPACHOS_v2_LIMPIO”, hoja “FRACCIONADOS”.
* En CONTROL_UNIFICADO, cuando el remito aparece en DESPACHOS_v2_LIMPIO (FRACCIONADOS), toda la fila debe cambiar a color “listo para entregar” (verde).
C) Transporte (texto libre, no catálogo cerrado)
* Transporte inicial: sale de “DESPACHOS_v2_LIMPIO” → pestaña “REPORTE_Transportes”.
* Transporte definitivo: cuando exista el transporte real en “Despachos”, debe pisar/reemplazar el transporte previo en CONTROL_UNIFICADO.
* Debe permitir transportes ad-hoc (texto libre).
D) Despachado (tilde manual + timestamp)
* La columna “Despachado” en CONTROL_UNIFICADO es un checkbox manual.
* Al tildar “Despachado”, se debe escribir automáticamente fecha + hora en la misma fila (puede ser en una columna oculta auxiliar si hace falta, pero en vista se ve el check y/o la fecha según propongan).
* Además, al marcar despachado en CONTROL_UNIFICADO, debe impactar también en “DESPACHOS_v2_LIMPIO” (en el lugar correspondiente para reflejar que ya fue despachado; lo definimos según columnas reales, pero el concepto es que quede marcado en el flujo de DESPACHOS_v2_LIMPIO y su “REPORTE_Transportes”).
E) Pagado (tilde manual + timestamp) + sincronización con Pedidos Listos
* La columna “Pagado” en CONTROL_UNIFICADO es checkbox manual.
* Al tildar “Pagado”, se escribe automáticamente fecha + hora.
* Debe sincronizarse con “Pedidos Listos”:
* Setear Pagado = SI en columna L
* Escribir fecha/hora de pago en columna K
F) Observaciones (una sola, unificada)
* En CONTROL_UNIFICADO debe haber una sola columna Observaciones que unifique texto de:
* Pedidos Listos
* DESPACHOS_v2_LIMPIO
* Despachos
* Prioridad: claridad humana. Si es posible, evitar repetir textos idénticos.
Colores de filas (mínimos, basados en condiciones)
* Sin color: pedido que solo está en “Pedidos Listos” (recién ingresado).
* Verde: “Listo para entregar” (remito presente en DESPACHOS_v2_LIMPIO / FRACCIONADOS).
* Amarillo: “Despachado” (checkbox Despachado marcado).
* Celeste: “Pagado” (checkbox Pagado marcado).
* Si ambos (Despachado + Pagado) están marcados: estado final para archivado (puede ser otro color o mantener uno; lo importante es que se archive).
Archivado + cierre diario + PDF mensual
* Durante el día, los pedidos cerrados (Despachado + Pagado) se quedan visibles.
* Al final del día (trigger programado), el script revisa y mueve los registros con Despachado=SI y Pagado=SI a una hoja “HISTORICO” y los elimina de CONTROL_UNIFICADO.
* A fin de mes:
* Generar automáticamente un PDF mensual del histórico del mes y guardarlo en una carpeta fija de Google Drive (nombre estándar tipo `HISTORICO_YYYY-MM.pdf`).
* Luego “limpiar”/resetear la hoja de archivados para comenzar el mes nuevo (quedar lista para el próximo mes).
Requisitos técnicos / de trabajo
* Google Sheets + Apps Script.
* Código entregado completo, editable, con comentarios básicos y un README corto de instalación/configuración.
* Triggers (onEdit para timestamps + time-driven para cierre diario + time-driven mensual para PDF/limpieza).
* Evitar soluciones frágiles (la vista operativa tiene que ser estable para el equipo).
* No tocar cómo llegan los datos originales; solo leer/escribir en las hojas indicadas.
Entregables
* Spreadsheet funcionando con CONTROL_UNIFICADO (8 columnas visibles), formato condicional aplicado, sincronización bidireccional según reglas, histórico automático por cierre diario, y generación de PDF mensual + limpieza mensual.
* Video corto o pasos claros de instalación y cómo ajustar nombres de hojas/IDs si cambia algo.
Planillas existentes (fuentes)
1. “Pedidos Listos” (comercial): contiene Remito (clave), fecha del pedido, cliente, domicilio y columnas de pago:
* Columna K: Fecha/Hora de pago
* Columna L: Pagado (SI/tilde)
2. “DESPACHOS_v2_LIMPIO” (operativa de armado/ruteo): cuando un pedido está armado/listo, el remito aparece acá (hoja principal “FRACCIONADOS”). También existe pestaña “REPORTE_Transportes” donde figura el transporte/segmentación.
3. “Despachos” (despacho real): refleja la salida real, con transporte final y datos de despacho.
Objetivo
Crear una 4ta planilla (mismo Spreadsheet o uno nuevo) llamada “CONTROL_UNIFICADO” que sea la única vista que usa el equipo, con SOLO estas columnas visibles:
* Remito (clave única)
* Fecha (desde Pedidos Listos)
* Cliente (desde Pedidos Listos)
* Domicilio (desde Pedidos Listos)
* Transporte
* Despachado (tilde manual + fecha/hora automática)
* Pagado (tilde manual + fecha/hora automática)
* Observaciones (unificadas)
Reglas operativas y de sincronización (importante)
A) Alta automática del pedido en CONTROL_UNIFICADO
* Cuando entra un remito nuevo en “Pedidos Listos”, debe aparecer automáticamente en CONTROL_UNIFICADO con Fecha/Cliente/Domicilio.
B) “Listo para entregar” (no existe estado “armado”)
* Para nosotros, un pedido está “listo para entregar” cuando el remito aparece en “DESPACHOS_v2_LIMPIO”, hoja “FRACCIONADOS”.
* En CONTROL_UNIFICADO, cuando el remito aparece en DESPACHOS_v2_LIMPIO (FRACCIONADOS), toda la fila debe cambiar a color “listo para entregar” (verde).
C) Transporte (texto libre, no catálogo cerrado)
* Transporte inicial: sale de “DESPACHOS_v2_LIMPIO” → pestaña “REPORTE_Transportes”.
* Transporte definitivo: cuando exista el transporte real en “Despachos”, debe pisar/reemplazar el transporte previo en CONTROL_UNIFICADO.
* Debe permitir transportes ad-hoc (texto libre).
D) Despachado (tilde manual + timestamp)
* La columna “Despachado” en CONTROL_UNIFICADO es un checkbox manual.
* Al tildar “Despachado”, se debe escribir automáticamente fecha + hora en la misma fila (puede ser en una columna oculta auxiliar si hace falta, pero en vista se ve el check y/o la fecha según propongan).
* Además, al marcar despachado en CONTROL_UNIFICADO, debe impactar también en “DESPACHOS_v2_LIMPIO” (en el lugar correspondiente para reflejar que ya fue despachado; lo definimos según columnas reales, pero el concepto es que quede marcado en el flujo de DESPACHOS_v2_LIMPIO y su “REPORTE_Transportes”).
E) Pagado (tilde manual + timestamp) + sincronización con Pedidos Listos
* La columna “Pagado” en CONTROL_UNIFICADO es checkbox manual.
* Al tildar “Pagado”, se escribe automáticamente fecha + hora.
* Debe sincronizarse con “Pedidos Listos”:
* Setear Pagado = SI en columna L
* Escribir fecha/hora de pago en columna K
F) Observaciones (una sola, unificada)
* En CONTROL_UNIFICADO debe haber una sola columna Observaciones que unifique texto de:
* Pedidos Listos
* DESPACHOS_v2_LIMPIO
* Despachos
* Prioridad: claridad humana. Si es posible, evitar repetir textos idénticos.
Colores de filas (mínimos, basados en condiciones)
* Sin color: pedido que solo está en “Pedidos Listos” (recién ingresado).
* Verde: “Listo para entregar” (remito presente en DESPACHOS_v2_LIMPIO / FRACCIONADOS).
* Amarillo: “Despachado” (checkbox Despachado marcado).
* Celeste: “Pagado” (checkbox Pagado marcado).
* Si ambos (Despachado + Pagado) están marcados: estado final para archivado (puede ser otro color o mantener uno; lo importante es que se archive).
Archivado + cierre diario + PDF mensual
* Durante el día, los pedidos cerrados (Despachado + Pagado) se quedan visibles.
* Al final del día (trigger programado), el script revisa y mueve los registros con Despachado=SI y Pagado=SI a una hoja “HISTORICO” y los elimina de CONTROL_UNIFICADO.
* A fin de mes:
* Generar automáticamente un PDF mensual del histórico del mes y guardarlo en una carpeta fija de Google Drive (nombre estándar tipo `HISTORICO_YYYY-MM.pdf`).
* Luego “limpiar”/resetear la hoja de archivados para comenzar el mes nuevo (quedar lista para el próximo mes).
Requisitos técnicos / de trabajo
* Google Sheets + Apps Script.
* Código entregado completo, editable, con comentarios básicos y un README corto de instalación/configuración.
* Triggers (onEdit para timestamps + time-driven para cierre diario + time-driven mensual para PDF/limpieza).
* Evitar soluciones frágiles (la vista operativa tiene que ser estable para el equipo).
* No tocar cómo llegan los datos originales; solo leer/escribir en las hojas indicadas.
Entregables
* Spreadsheet funcionando con CONTROL_UNIFICADO (8 columnas visibles), formato condicional aplicado, sincronización bidireccional según reglas, histórico automático por cierre diario, y generación de PDF mensual + limpieza mensual.
* Video corto o pasos claros de instalación y cómo ajustar nombres de hojas/IDs si cambia algo.
Related categories:
JavaScript
Data Integration
Google Sheets
Google APIs
Automation
Google Spreadsheets
Google Apps Scripts