Quién está operando ahora y cuánto tiempo llevan trabajando hoy. Solo lo ves tú.
📦 Espacio del archivo
Toda la información vive en un solo archivo en la nube, y ese archivo tiene un tope. Aquí ves cuánto llevas.
📦 Archivar meses viejos — fase 1: escribir y verificar
Escribe un mes completo en la nube (Storage) y lo vuelve a leer para comprobar que
coincide con el documento: mismos movimientos y mismas sumas al centavo.
Esta fase no quita nada. Sirve para verificar que el archivo se puede escribir y
leer bien antes de que, más adelante, se use para aligerar el documento.
🛟 Respaldos
Cada día se guarda solo una copia de toda la información, en cuanto alguien entra a la app. Se conservan los últimos 30 días. Descarga un archivo de vez en cuando y guárdalo fuera de la computadora: es la única copia que sobrevive si se pierde el proyecto de Firebase entero.
🗜️ Mantenimiento
Mueve las imágenes de facturas viejas que todavía viven dentro del estado hacia Firebase Storage. Aligera la app y baja el uso de memoria. Es seguro y puedes correrlo cuando quieras.
👁 Actividad de usuarios operativos
Quién está operando ahora y cuánto llevan trabajando. Solo lo ves tú.
Cargando…
◤
💬Chat CICSA
Cargando mensajes…
CICSA
Control de Egresos
📅 Seleccionar semana
➕ Nueva semana — elige el rango en el calendario
Nombre: —
Resumen
Semana: —
🎯 Presupuesto de la semana
📊 Gastos por categoría
⚠️ Requiere atención
🕘 Últimos movimientos
Fecha
Proveedor
Categoría
Forma de pago
Importe
Aún no hay capturas en esta semana guardada.
📦 Espacio del archivo
Toda la información vive en un solo archivo en la nube, y ese archivo tiene un tope. Cuando se llene, la app deja de poder guardar.
Verificando servidor…
📷 Sube el documento
🧾
Haz clic o arrastra la factura, recibo o ticket
PNG · JPG · PDF — foto, captura, factura digital
La IA extrae proveedor, monto, fecha y número de factura automáticamente.
✏️ Confirma y clasifica el gasto
📋 Esta factura quedará como pendiente de pago.
Podrás subir el comprobante cuando la pagues desde la pestaña 💳 Pagos.
⚠ Posible duplicado detectado — ya existe una factura similar:
Puedes guardarla de todas formas si es un gasto diferente.
✍️ Captura manual ▼ mostrar
📋 Gastos del periodo
📥 Importar respaldo ExcelSube el Excel exportado anteriormente para restaurar tus datos
💵 Total efectivo: $0.00Total semana: $0.00
Respaldo
Fecha
Proveedor
Categoría
No. Factura
Forma de pago
Importe
Acciones
🧾
No hay gastos registrados esta semana. Ve a Capturar para agregar el primero.
🎯 Presupuesto semanal por categoría
Edita el presupuesto asignado para cada categoría. Se compara contra el gasto real (por fecha de factura) del periodo seleccionado arriba.
Puedes alternar Tema claro / Tema oscuro desde el menú lateral. Solo cambia la presentación; no los importes ni los archivos exportados.
🎯 Presupuesto asignado semanal ($)
Suma de categorías
$0.00
Por asignar: $0.00
💸 Total gastado
$0.00
🔒 Solo un administrador puede modificar el presupuesto y las categorías. Lo estás viendo en modo lectura.
🔒 Edición bloqueada. Para cambiar presupuestos o categorías, confirma tu contraseña.
🔓
⚖️ Balance operativo
¿Entró más de lo que salió? Compara lo facturado al cliente y las ventas en efectivo contra los egresos capturados. Información reservada.
📧 Facturas desde Gmail
El programa revisa tu Gmail y descarga automáticamente los adjuntos
(PDF e imágenes) de correos que contengan facturas, recibos o comprobantes.
Verificando conexión con Gmail…
📬 Adjuntos encontrados
Haz clic en Leer con IA para procesar cada documento, o en Eliminar para descartarlo.
⚙️ Configuración inicial (una sola vez)
Para conectar Gmail necesitas crear credenciales en Google Cloud. Sigue estos pasos:
1
Ve a Google Cloud Console
console.cloud.google.com → Crea un proyecto nuevo → Llámalo "CICSA"
APIs & Services → Credentials → Create Credentials → OAuth Client ID → Desktop App → Descarga el JSON
4
Genera el token con generar_token_gmail.py
Guarda el JSON descargado como gmail_credentials.json junto a ese script (en el repo) y corre python3 generar_token_gmail.py — abre el navegador para autorizar y crea gmail_token.json con el resultado.
5
Configura la variable en Railway
Copia el contenido completo de gmail_token.json a la variable GMAIL_TOKEN en Railway → Variables → Guardar. Railway redeploya solo y Gmail queda conectado.
🧹 Limpieza de datos — qué le falta al balance para ser real
👯 El mismo registro guardado en dos semanas
No son dos capturas parecidas: es el mismo registro, con el mismo id, guardado
en más de una semana. Cuenta doble en todo —presupuesto, saldo, conciliación— y hasta ahora era
invisible, porque ninguna pantalla mostraba en qué semana vive cada renglón: en la lista se ven
dos filas idénticas y parecen dos capturas distintas.
Ábrelo en Gastos y borra la copia sobrante; queda una sola.
Fecha
Proveedor
No. Factura
Semanas donde está
Importe
De más
💲 Importes que no cuadran con el CFDI
El folio del gasto casa con un comprobante timbrado, pero el importe capturado es otro.
Suele ser que se tomó el subtotal en vez del total, o que la lectura leyó mal una cifra. El del CFDI es el bueno.
🚫 Complementos de pago registrados como gasto
Un complemento de pago no es un gasto: es el acuse de que se pagaron facturas que ya estaban registradas.
Capturarlo cuenta el mismo dinero dos veces. El PDF engaña porque muestra un monto grande en “Monto de pago”, aunque el comprobante va con Subtotal 0 y Total 0.
📅 Gastos con fecha dudosa
El presupuesto se reparte por fecha, así que un gasto mal fechado descuadra dos semanas: le sobra a una y le falta a la otra.
Aquí salen los que casi seguro quedaron con la fecha equivocada. Escribe la fecha correcta en la última columna y aprieta Guardar: el gasto se va solo a la semana que le toca.
Cuando el campo viene en verde, ya trae la fecha buena tomada del CFDI y solo hay que confirmarla.
📈 Auditoría por período y proveedor
📊 Por categoría
🏪 Por proveedor
#
Proveedor
Facturas
Categoría principal
Total gastado
📋 Detalle completo
Fecha
Proveedor
Categoría
No. Factura
Forma de pago
Importe
Ir a corregir
📈
No hay gastos en el período seleccionado.
🏛 Conciliación SAT vs CICSA
Sube los XML de CFDI del periodo (o el Excel de la Consulta SAT) y se comparan contra los gastos registrados en CICSA para detectar facturas omitidas. El XML y el Excel no gastan tokens. Puedes arrastrar y soltar los archivos en cualquier parte de esta pantalla: se acomodan solos según su tipo.
Excluye las facturas que tú emites (son ingresos, no gastos).
⭐ Mejor opción — XML de CFDI · Sin IA
Sube los archivos XML de los CFDIs (puedes seleccionar varios a la vez). Se leen directo del comprobante, sin gastar tokens.
o arrastra aquí los XML (o la carpeta completa)
Opción — Excel de la Consulta · Sin IA
Descarga la Consulta SAT como Excel/CSV (o convierte el PDF con Adobe Acrobat Online) y súbela aquí. No gasta tokens.
o arrastra aquí el Excel
Alternativa — PDF · Usa IA (gasta tokens)
Solo si no tienes XML ni Excel. La IA extrae los CFDIs del PDF en 2 llamadas (~60 seg).
o arrastra aquí el PDF
☁️ CFDIs guardados en la nube
—
Los XML que subes se guardan aquí (mes completo). Elige un mes y concilia el periodo que quieras sin volver a subir.
Puedes subir todos los meses que quieras: se guardan todos a la vez. El selector solo elige cuál conciliar — no hace falta borrar un mes para subir otro,
y el balance usa todos los meses guardados, sin importar cuál esté seleccionado aquí.
🚫 CFDI descartados de la conciliación
Alguien dijo que esto no es un gasto, así que no aparece como pendiente, ni en el
balance, ni en ningún lado — y volver a subir el XML no lo revive. Si alguno se
descartó por error, devuélvelo aquí.
⚠ Algunos perdieron sus datos. Se descartaron con una versión anterior
que, en vez de marcarlos, reemplazaba el comprobante por la marca. De esos solo queda el
UUID. Vuelve a subir los XML de esos meses y recuperan fecha, proveedor,
RFC e importe; el descarte se respeta, no reviven solos. Mientras tanto quedan fuera de
la conciliación, para que un importe ausente no descuadre el total del periodo.
💲 Precios desde los CFDI · Sin IA
Cada renglón del CFDI trae su valor unitario exacto — es dato fiscal, no una lectura que se pueda equivocar. Aquí se compara contra el catálogo: lo que ya se sabe identificar se actualiza con un clic, y lo que no, queda como lista de trabajo.
👷 Nómina timbrada · Sin IA
Los recibos de nómina no son gastos por capturar (los emites tú), así que la conciliación los omite — pero el costo sí es real.
Aquí se agrupan por corrida y se registran con su bruto (percepciones): las retenciones también salen de tu caja, solo que hacia el SAT.
🚨 Gastos con el importe de una factura TUYA
El importe de estos gastos es idéntico al total de un comprobante que emitió tu empresa, o sea un ingreso. Un número así no llegó solo: salió de esa factura. Revisa cada uno contra su documento — si el gasto es real, su importe tendría que ser otro. Coincidir de importe no es prueba por sí sola; por eso se muestra de cuál factura salió.
Fecha
Proveedor del gasto
Folio
Importe
Factura TUYA con ese total
📄 Gastos sin comprobante fiscal
La pregunta inversa: gastos capturados en el periodo que ningún CFDI ampara. Hasta ahora el cruce solo preguntaba lo contrario, y por eso un gasto sin documento detrás no aparecía en ninguna tarjeta. Lo de caja y efectivo se lista aparte y casi nunca es un hallazgo: una compra con ticket no tiene comprobante timbrado.
Fecha
Proveedor
Categoría
Folio
Importe
Por qué aparece
❌ En SAT pero NO en CICSA
Folio Fiscal
Proveedor (SAT)
RFC
Fecha
Total SAT
Acción
🔁 El mismo comprobante, contado más de una vez
Estos NO son diferencias contra el SAT: el comprobante está bien. Son varios registros con el mismo proveedor, fecha y folio, así que la misma compra está contada de más — también en el presupuesto y en los reportes, no solo aquí. Consolídalos para dejar una sola factura con su desglose.
Proveedor
Folio
Fecha
Total SAT
Capturado
De más
Qué pasó
Acción
⚠️ Diferencias de monto
Aquí sí hay que comparar contra el comprobante: lo capturado no coincide con lo que dice el CFDI. La columna Folio muestra el del SAT y el que se tecleó, para ver de un vistazo si casan.
Proveedor
Folio SAT / CICSA
Fecha
Total SAT
Monto CICSA
Diferencia
✅ Conciliadas correctamente
Proveedor
RFC
Fecha
Total SAT
🏪 Catálogo de proveedores
Homologa nombres: fusiona variantes del mismo proveedor bajo un nombre oficial.
📦 Catálogo de Productos Comerciales
Banco histórico de productos vistos en facturas. Los nuevos llegan como pendiente — clasifícalos
(presentación, contenido, unidad base) antes de que se puedan usar para costeo. Los ✅ Validados se pueden
sincronizar en bloque a CICSA Menú con el botón de abajo.
Producto
Proveedor
Presentación
Precio / unidad
Unidad base
Estado
Última factura
Acciones
📦
No hay productos con este filtro.
🔀 Editar división por categoría
🧹 Revisar facturas duplicadas
Estas facturas parecen estar contadas dos veces: el formato viejo de divididas guardaba la factura padre "Dividida" y además cada categoría como gasto aparte, y también hay capturas repetidas. El registro marcado en naranja es el que se sugiere borrar. Revisa cada grupo antes de borrar — nada se borra solo.
🧹 Revisar alias sospechosos
Estos aliases parecen ser de otro producto (fusiones erróneas del emparejado difuso viejo). Quitar un alias hace que, la próxima vez que leas esa factura, ese producto se registre por sí solo. Revisa cada uno — quita solo los que de verdad no correspondan.
📦 Producto comercial
① Qué es
Escribe un solo nombre principal, sin comas ni puntos separando variantes. Es la palabra con la que Menú conecta este precio a tus recetas. Si pegas varios nombres, Egresos moverá los demás a “Otras formas” al guardar. Déjalo vacío si este producto no va a Menú.
Plurales o variantes con calificativo: “tortillas de maíz”, “Ajo picado”. Cada una conecta con este mismo precio. Mayúsculas y acentos no hace falta ponerlos — esos ya se conectan solos.
② Cuánto costó
El total del paquete/bolsa completo, no por unidad. Normalmente se llena solo al procesar la factura.
Un precio provisional sirve para costear mientras no llega la factura, pero envejece.
Sin decir de dónde salió y cuándo, nadie va a poder juzgarlo después — por eso los dos
campos son obligatorios para poder validarlo. En cuanto llegue una factura de este
producto, la factura lo reemplaza sola, aunque sea más vieja.
Si lo dejas vacío son 60 días desde la consulta. Acórtalo para lo que cambia rápido.
③ Cómo se costea en Menú
Suma todo lo que trae la presentación. Ej: una caja de 16 botellas de 1 litro son 16 lt.
No hace falta el peso — algo que se cuenta por pieza (pan, huevo) no lo necesita.
% que se desperdicia (hueso, cáscara, descongelado)
💡 Precio que verá Menú
Última factura: —
⚠ Este producto tiene un factor_conversion antiguo () de una versión anterior — ya no se usa. Elige "¿cómo se usa?" arriba en su lugar.
🔗 Faltantes de Menú
Sube el CSV que exporta Menú con los ingredientes que se quedaron sin precio. Muchos ya
tienen precio en el catálogo con otro nombre —«Aceite» existe como «Aceite
vegetal»— y eso se arregla agregando el sinónimo, sin capturar ningún precio nuevo.
🍽️ Sincronizar validados a Menú
Cada producto se envía como precio por kg (o litro), ya descontando su % de merma — CICSA Menú
no aplica ningún ajuste propio, así que este es el precio final que va a usar para costear recetas.
💳 Cuentas por Pagar
Periodo:→
Fecha
Proveedor
Método de Pago
Estado
Vencimiento
Importe
Comprobante
Acciones
💳
No hay registros con este filtro.
✅ Registrar pago
—
—
📎 Toca para subir comprobante (opcional)
✂️ Dividir gasto por categoría
Revisa cada producto. Se guarda una sola factura con su desglose por categoría.
Congelados se distingue de frutas y verduras frescas. Marca Recordar para usar tu clasificación en las siguientes compras del mismo producto y proveedor. Si hay código del proveedor, se usa ese código; si no, la descripción completa. Desmarca una regla aplicada para dejar de recordarla. Los cambios se guardan al guardar esta factura, no al cancelar.
Proveedor
—
Fecha
—
Factura
—
Total Doc.
—
Categoría / Descripción
Importe
Diferencia con total del documento:$0.00
⚠ La suma de partidas no coincide con el total del documento.
🔒 Ajustar saldo inicial de caja
El monto se fija como saldo inicial del periodo consultado (por su fecha de inicio). Se sincroniza a todos los dispositivos.
Total conteo
$0.00
Saldo del sistema
$0.00
Diferencia
$0.00
💰 Caja de Cortes
Registro de efectivo recaudado y gastos pagados de caja. Cortes: miércoles y sábados.
➕ Registrar corte de efectivo
➖ Registrar retiro de efectivo
Un retiro NO es un gasto — es efectivo que sale de la caja (ej. depósito a banco). Nunca aparece en Reporte, Presupuesto ni Pagos, solo se resta aquí.
📥 Importar corte de Manejo de Cortes
Arrastra el archivo .json que exporta la app de cortes. Los ingresos de caja entran solos; cada egreso lo clasificas como gasto, retiro o «ya facturado». No se duplica lo que ya importaste antes.