Ir al contenido

Modelo 303 IVA

Calcula automaticamente el Modelo 303 (declaracion trimestral de IVA) con datos de facturas emitidas y recibidas.

  1. Accede a la pestana “IVA” en Informes.
  2. Sub-pestana: “Modelo 303 (IVA)”.
  3. Selecciona el ano y trimestre especifico (Q1, Q2, Q3, Q4).
  4. Revisa las casillas calculadas automaticamente.
  5. Descarga el informe en PDF o Excel para presentacion.

Seccion 1: IVA Devengado (Ventas)

CasillaDescripcionCalculo
[01]Base imponible al 21%SUM(facturas emitidas con IVA 21%)
[02]Cuota al 21%Base [01] × 0.21
[03]Base imponible al 10%SUM(facturas emitidas con IVA 10%)
[04]Cuota al 10%Base [03] × 0.10
[05]Base imponible al 4%SUM(facturas emitidas con IVA 4%)
[06]Cuota al 4%Base [05] × 0.04
[07]Base imponible operaciones exentasSUM(facturas con IVA 0%)

Seccion 2: IVA Deducible (Compras)

CasillaDescripcionCalculo
[28]Base imponible gastos 21%SUM(gastos con IVA 21%)
[29]Cuota deducible 21%Base [28] × 0.21
[30]Base imponible gastos 10%SUM(gastos con IVA 10%)
[31]Cuota deducible 10%Base [30] × 0.10

Seccion 3: Resultado

CasillaDescripcionCalculo
[46]Total IVA devengado[02] + [04] + [06]
[47]Total IVA deducible[29] + [31]
[69]RESULTADO[46] - [47]

ALERTA: Resultado positivo = a ingresar. Resultado negativo = a compensar/devolver.

Detalles técnicos

Componente: src/features/accounting/sub-modules/reporting/components/vat/VATReport.tsx

Calculo de bases por tipo de IVA:

const calculateVATBases = (invoices: Invoice[]) => {
const bases = {
iva_21: { base: 0, cuota: 0 },
iva_10: { base: 0, cuota: 0 },
iva_4: { base: 0, cuota: 0 },
iva_0: { base: 0, cuota: 0 },
};
invoices.forEach(inv => {
if (inv.tax_rate === 21) {
bases.iva_21.base += inv.subtotal;
bases.iva_21.cuota += inv.tax_amount;
} else if (inv.tax_rate === 10) {
bases.iva_10.base += inv.subtotal;
bases.iva_10.cuota += inv.tax_amount;
} else if (inv.tax_rate === 4) {
bases.iva_4.base += inv.subtotal;
bases.iva_4.cuota += inv.tax_amount;
} else {
bases.iva_0.base += inv.subtotal;
}
});
return bases;
};