Cobro y finanzas

Finanzas y transacciones

Registra ingresos, gastos, comprobantes y cuentas por pagar.

Finanzas y Transacciones

Las Transacciones son el registro de todo el dinero que entra y sale de tu negocio. No es un sistema contable completo, pero sí te da una visión clara de tus ingresos, gastos y flujo de caja.


1. Tipos de transacciones

Calculao maneja dos tipos:

TipoDescripción
IngresoDinero que recibes: un cobro a un cliente, un pago recibido, etc.
GastoDinero que pagas: materiales, mano de obra, alquiler de herramientas, etc.

2. El Panel de Control Financiero

Al entrar a Calculao, la pantalla principal es el Panel de Control Financiero. Ahí ves:

  • Pulso de flujo de caja — ingresos vs. gastos de los últimos 30 días en un gráfico.
  • Presupuestos pendientes — los que todavía no se cobraron.
  • Próximas a vencer — cuentas por pagar con fecha de vencimiento próxima.
  • Cuentas por pagar — gastos registrados como cuentas por pagar.

Reutilizar gráficos del panel

Usa el helper chart_card cuando quieras repetir el mismo patrón de tarjeta + título + leyenda + gráfico.

<%= chart_card(
  title: t('dashboard.cashflow_pulse.title'),
  subtitle: t('dashboard.cashflow_pulse.subtitle'),
  icon: 'activity',
  chart_kind: :line_chart,
  data: @cashflow_pulse_data,
  height: '280px',
  colors: ['#2a9d99', '#0075de', '#dd5b00'],
  chart_options: { thousands: ',' },
  legend_items: [
    { label: t('dashboard.cashflow_pulse.income'), tone: :teal },
    { label: t('dashboard.cashflow_pulse.earnings'), tone: :blue },
    { label: t('dashboard.cashflow_pulse.expenses'), tone: :orange }
  ]
) %>
  • chart_kind acepta :line_chart o :column_chart.
  • chart_options pasa opciones a Chartkick.
  • library_options pasa opciones a Chart.js cuando necesites ajustar ejes o estilos.
  • card_class te deja cambiar la clase del contenedor si no quieres usar el layout del dashboard.
  • Si la vista normaliza filtros desde sesión o defaults, pasa también esos query_params al partial para que exportes y links internos conserven el estado activo.

Gráfico filtrado en transacciones

Si el gráfico debe seguir los filtros de la lista, construye las series desde la relación filtrada antes de paginarla.

<%= chart_card(
  title: t('transactions.chart.title'),
  subtitle: t('transactions.chart.subtitle'),
  icon: 'activity',
  chart_kind: :line_chart,
  data: @transactions_cashflow_data,
  colors: ['#2a9d99', '#0075de', '#dd5b00'],
  chart_options: { thousands: ',', empty: t('transactions.chart.empty') },
  legend_items: [
    { label: t('transactions.chart.income'), tone: :teal },
    { label: t('transactions.chart.earnings'), tone: :blue },
    { label: t('transactions.chart.expenses'), tone: :orange }
  ]
) %>
  • Usa @export_transactions o la relación filtrada, no @transactions paginada.
  • Así el gráfico cambia con date_mode, last_n, month, q, min_amount, max_amount, type y category.
  • No mezcles month con start_date/end_date/last_n; el controller limpia esos filtros para dejar una sola selección activa.
  • Los campos Desde y Hasta usan Air Datepicker y muestran dd/mm/yyyy, pero el controller normaliza la fecha a ISO antes de filtrar.
  • El bloque empty: evita un gráfico roto cuando no hay coincidencias.

3. Ver todas las transacciones

  1. En el menú, haz clic en Transacciones (vista general), Ingresos (solo ingresos) o Gastos (solo gastos).

  2. La pantalla se llama:

    • Todas las Transacciones — lista completa.
    • Mis Ingresos — filtrada a ingresos.
    • Mis Gastos — filtrada a gastos.
  3. Usa los filtros rápidos para encontrar transacciones específicas:

    • Últimas 15 transacciones
    • Últimas 30 transacciones
    • Últimas 50 transacciones

4. Registrar un nuevo ingreso

  1. Desde Ingresos o Transacciones, haz clic en Nuevo Ingreso.

  2. Completa el formulario:

    • Monto (requerido) — el valor recibido.
    • Descripción — de qué se trata el ingreso.
    • Fecha (Ocurrido el) — cuándo sucedió el cobro.
    • Proyecto — asocia la transacción a un proyecto específico (opcional pero recomendado).
    • Categoría — para organizar y reportar (ej: “Cobro por servicios”, “Anticipo”, etc.).
    • Nombre del banco — banco o medio de pago usado.
    • Notas — observaciones adicionales.
    • Adjuntos (plan de pago) — puedes cargar comprobantes, recibos o cualquier archivo de soporte.
  3. Haz clic en guardar.


5. Registrar un nuevo gasto

  1. Desde Gastos o Transacciones, haz clic en Nuevo Gasto.

  2. Completa el formulario (mismo esquema que el ingreso, más estos campos adicionales):

    • ¿Incluir ITBIS? — para gastos de materiales o herramientas, si el monto ya incluye ITBIS la app puede separarlo automáticamente.
    • Retención — aparece cuando la categoría es Mano de obra o Contratistas.
    • Mano de obra — si el gasto está asociado a un trabajador específico del listado de Mano de Obra, puedes vincularlo aquí.
    • Contratistas — si la categoría del gasto es Contratistas, se abre el buscador de contratistas y la retención cambia según el tipo de documento: RNC usa Incluye ITBIS o Precio final acordado; cédula agrega Incluye ITBIS (Persona física), Incluye ITBIS (Persona informal) y Precio final acordado.
    • Cuenta por pagar — marca si este gasto todavía no fue pagado (está pendiente de pago).
    • Vence el — si es cuenta por pagar, cuándo vence.
    • Pagar a — a quién se le debe pagar.
    • Nombre del negocio — empresa a quien le pagas.
    • RNC del negocio — número fiscal del proveedor (RNC o cédula, según corresponda).
  3. Guarda.


6. Editar y eliminar transacciones

Desde la lista, haz clic en la transacción para ver su detalle. Desde ahí puedes:

  • Editar — modificar cualquier campo.
  • Eliminar — borrar la transacción (con confirmación).

7. Adjuntar comprobantes

Si tienes un plan de pago, puedes adjuntar archivos a las transacciones (recibos, facturas, fotos, etc.):

  1. En la transacción (al crearla o editarla), busca la sección Adjuntos.
  2. Sube el archivo.
  3. Guarda.

Para eliminar un adjunto, haz clic en el ícono de eliminar junto al archivo y confirma.


8. Importar transacciones desde Excel

Si tienes muchas transacciones para cargar de una vez, puedes importarlas:

  1. Desde Transacciones, busca el botón de Importar (o la opción de importación masiva).
  2. Descarga la plantilla Excel si se ofrece, completa las columnas requeridas y sube el archivo.

9. Transacciones por proyecto

Cuando estás dentro de un proyecto, puedes ver y registrar transacciones filtradas a ese proyecto:

  • Ingresos del proyecto — cobros recibidos por este trabajo específico.
  • Gastos del proyecto — costos del proyecto.
  • Mano de obra — pagos al personal asociado al proyecto.
  • Contratistas — pagos a contratistas o subcontratistas, con retención según RNC o cédula: ITBIS 18% y, si aplica persona informal, 10% de ISR sobre la base.
  • Materiales — compra de materiales para el proyecto.

Para registrar, usa los botones + Nuevo Ingreso y + Nuevo Gasto dentro del proyecto.


10. Cuentas por pagar

Si registras un gasto como Cuenta por pagar, aparece en el Panel en la sección Cuentas por pagar. Esto te permite hacer seguimiento de lo que debes pagar sin perder de vista las fechas de vencimiento.


Próximos pasos

Con el registro financiero en orden, aprende a documentar tu trabajo y colaborar con tu equipo.

Continúa con 08 — Documentos y Colaboración.