mirror of
https://github.com/efrainsosa27/cotizador-helgen.git
synced 2026-10-24 05:16:48 +00:00
- bootstrap(): una sola llamada al entrar con roles y listas según el rol; las pestañas se dibujan al instante con los roles de la última sesión (localStorage, solo interfaz). getDatosIniciales queda como alias. - CacheService por versión de colección (proyectos, contratos, cotizaciones, catálogo, requisiciones, oc, pagosCobranza, pagosProveedores): doPost sube la versión tras cada escritura (con candado); las hojas que se editan a mano se revisan por huella cada pocos minutos desde la consulta de fondo. Memoria por petición para propiedades y cachés. - sincronizar(versiones, contexto): devuelve solo lo que cambió y respeta roles; la interfaz consulta cada 20 s con la pestaña visible, al cambiar de pestaña y al abrir un buscador de proyectos; si alguien está capturando, avisa en vez de repintar. Los cambios de rol se aplican sin recargar. - Requisiciones, OC y pago a proveedores en proyectos Activos y Cerrados con o sin contrato (moneda de la aceptada o MXN); Cancelados no. Cobranza sin aceptada muestra costo de OC y "Sin contrato". Pagos de clientes siguen exigiendo contrato firmado. - Clave de proyecto (columna L): folio visible PRY-AAAA-NNNN-XXX, sugerida con el nombre y editable al crear; la llave interna sigue siendo PRY-AAAA-NNNN. asignarClavesProyectos() (vista previa) y asignarClavesProyectosAplicar() asignan clave a los existentes y renombran su carpeta principal. Buscadores por clave. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| anterior | ||
| herramientas | ||
| tests | ||
| web | ||
| .clasp.json | ||
| .claspignore | ||
| .gitignore | ||
| appsscript.json | ||
| CLAUDE.md | ||
| Code.js | ||
| GUIA.md | ||
| Index.html | ||
| Logo.js | ||
| package-lock.json | ||
| package.json | ||
| wrangler.jsonc | ||