# Análisis: Tipo de impuesto (código), cuenta contable y base gravable

## Objetivo

Asegurar que:
1. **Cada impuesto** tenga el **código de tipo de impuesto** correcto en el plano SIIGO.
2. La **cuenta contable** de cada línea sea la que corresponde a ese tipo (según BASE PROVEEDORES).
3. Cuando el tipo lo exija, se cargue la **base gravable** correspondiente en "Base gravable libro compras/ventas".

---

## Columnas en el plano SIIGO

En **ESTRUCTURA PLANO SIIGO** y **EJEMPLO ARCHIVO DE COMPRAS**:

| Columna en el plano | Uso |
|--------------------|-----|
| **Código impuesto** | Código numérico que identifica el *tipo* de impuesto en SIIGO. Cada línea de impuesto debe llevar el código que corresponde a ese impuesto. |
| **Código cuenta contable** | Cuenta que debe coincidir con el tipo: la misma que está parametrizada en SIIGO para ese código de impuesto (y la que traemos de BASE PROVEEDORES para ese impuesto). |
| **Base gravable libro compras/ventas** | Base sobre la que se calcula el impuesto. No todos los tipos la usan; cuando SIIGO lo requiere, hay que cargarla. |

---

## Códigos de impuesto observados en el EJEMPLO

Del archivo **EJEMPLO ARCHIVO DE COMPRAS** se extrajo qué códigos aparecen y si en esas líneas se usa base gravable:

| Código impuesto (SIIGO) | Cuenta contable en el ejemplo | ¿Lleva base gravable? |
|------------------------|-------------------------------|------------------------|
| **1**  | 24081001 | **Sí** (54 filas con base) |
| 3  | 2365150102 | No |
| 7  | 23654001 | No |
| 8  | 23680501 | No |
| 10 | 23680505 | No |
| **14** | 23680513 | No (en el ejemplo no se llenó; si en tu SIIGO el tipo 14 exige base, habría que cargarla) |
| **16** | 24950103 | **Sí** (1 fila con base) |
| **17** | 246403 | **Sí** (2 filas con base) |
| 20 | 23657001 | No |
| 33 | 23680539 | No |
| 40 | 2365300101 | No |
| **41** | 24081501 | **Sí** (3 filas con base) |
| 42 | 23654006 | No |
| 45 | 236901 | No |
| 46 | 23652003 | No |

Conclusión: en el ejemplo, **solo los códigos 1, 16, 17 y 41** tienen "Base gravable libro compras/ventas" distinta de vacío. El resto no la usan en las filas revisadas.

---

## Relación con BASE PROVEEDORES y COMPRAS

- **COMPRAS (Orlando)** tiene una columna de monto por impuesto: IVA, ICA, IC, INC, Timbre, INC Bolsas, ICL, Rete IVA, Rete Renta, Rete ICA, etc., y **una sola columna BASE** (base gravable general del documento).
- **BASE PROVEEDORES** tiene, por cada proveedor, una columna por impuesto con el **código de cuenta contable** que se debe usar para ese impuesto (IVA, ICA, IC, INC, Timbre, ICL, Rete IVA, Rete Renta, Rete ICA, Fedepapa, etc.).

Para cada línea de impuesto que generemos:

1. **Tipo de impuesto (código)**  
   Debemos usar una **tabla fija** que relacione:
   - Columna de COMPRAS (ej. IVA, ICA, IC, ICL, Rete Renta…)  
   - con el **código impuesto** que usa SIIGO (1, 14, 16, 17, 41, 42, etc.).

2. **Cuenta contable**  
   Debe ser la de BASE PROVEEDORES para ese mismo impuesto (misma columna que el monto en COMPRAS). Así la cuenta queda alineada con el tipo de impuesto.

3. **Base gravable**  
   - Si el **código impuesto** es uno de los que en el ejemplo sí llevan base (1, 16, 17, 41), cargar en "Base gravable libro compras/ventas" el valor que corresponda.  
   - Hoy en COMPRAS solo existe **BASE** (una sola). Lo coherente es usar **BASE** para todos los que pidan base (sobre todo IVA código 1). Si en tu SIIGO algún otro tipo exige base y ustedes la tienen en otra columna, se puede ampliar luego.

---

## Tabla de mapeo propuesta (a validar con tu SIIGO)

Objetivo: para cada impuesto que vayas a cargar, tener **código impuesto**, **columna de cuenta en BASE PROVEEDORES** y **si lleva base gravable**.

| Código impuesto | Nombre / uso típico | Columna COMPRAS (monto) | Columna BASE PROVEEDORES (cuenta) | ¿Cargar base gravable? |
|-----------------|---------------------|--------------------------|------------------------------------|-------------------------|
| 1  | IVA | IVA | IVA | **Sí** (col. BASE) |
| 14 | ICA | ICA | ICA | Revisar en SIIGO; si pide base, usar BASE |
| 16 | IC  | IC  | IC  | **Sí** (en ejemplo sí) |
| 17 | ICL | ICL | ICL | **Sí** (en ejemplo sí) |
| 41 | (ej. otro gravamen con base) | — | Ver en SIIGO qué impuesto es | **Sí** (en ejemplo sí) |
| 42 | Rete Renta | Rete Renta | Rete Renta | No en ejemplo |
| 45 | Fedepapa | — | Fedepapa | No en ejemplo |
| 3, 7, 8, 10, 20, 33, 40, 46 | Otros | Según nomenclatura COMPRAS/BASE | Según BASE PROVEEDORES | No en ejemplo |

Los códigos 3, 7, 8, 10, 14, 20, 33, 40, 42, 45, 46 habría que **asignarlos con tu lista oficial** de tipos de impuesto en SIIGO (Parametrización o manual) para saber exactamente qué columna de COMPRAS y de BASE PROVEEDORES corresponde a cada uno.

### Mapeo inferido (cuenta del ejemplo → columna en BASE PROVEEDORES)

Cruzando las **cuentas** que aparecen en el EJEMPLO para cada código con las columnas de BASE PROVEEDORES donde sale esa misma cuenta:

| Código impuesto | Cuenta en ejemplo | Columna(s) BASE PROVEEDORES donde aparece esa cuenta |
|-----------------|-------------------|------------------------------------------------------|
| 1  | 24081001 | **IVA** |
| 3  | 2365150102 | Rete Renta |
| 7  | 23654001 | Rete Renta |
| 8  | 23680501 | Rete ICA |
| 10 | 23680505 | Rete ICA |
| 14 | 23680513 | **Rete ICA** |
| 16 | 24950103 | **IC**, INC, INC Bolsas |
| 17 | 246403 | **ICL** |
| 20 | 23657001 | Rete Renta |
| 33 | 23680539 | Rete ICA |
| 40 | 2365300101 | Rete Renta |
| 41 | 24081501 | IVA (otro uso de cuenta IVA) |
| 42 | 23654006 | **Rete Renta** |
| 45 | 236901 | **Fedepapa** |
| 46 | 23652003 | Rete Renta |

Así se garantiza que la **cuenta contable** que pongamos en el plano sea la que ya tienen parametrizada por proveedor para ese tipo de impuesto. Falta solo fijar en SIIGO qué código (1, 14, 16, 17, 41, etc.) corresponde a cada columna de COMPRAS (IVA, ICA, IC, ICL, Rete Renta, Rete ICA, Fedepapa) y cuáles exigen base gravable.

---

## Reglas para la implementación

1. **Tabla código impuesto ↔ impuesto**  
   Crear en el código una tabla (o archivo de configuración) que defina, para cada tipo que vayan a usar:
   - Código impuesto (SIIGO).
   - Nombre de la columna en COMPRAS donde está el monto.
   - Nombre de la columna en BASE PROVEEDORES donde está la cuenta.
   - Si ese tipo lleva "Base gravable libro compras/ventas" (sí/no y de dónde tomarla).

2. **Por cada factura (COMPRAS)**  
   - Por cada impuesto con monto &gt; 0:
     - Obtener la **cuenta** del proveedor desde BASE PROVEEDORES (columna que corresponda al impuesto).
     - Asignar el **Código impuesto** según la tabla.
     - Si ese código debe llevar base gravable, llenar "Base gravable libro compras/ventas" (por ahora con la columna **BASE** de COMPRAS, salvo que definan otra regla).

3. **Validación**  
   - Comprobar que no se use un mismo código de impuesto con una cuenta que no sea la parametrizada para ese código en SIIGO (es decir, que la cuenta de BASE PROVEEDORES sea la correcta para ese tipo).
   - Revisar en SIIGO qué códigos exigen base gravable y ajustar la tabla/reglas si alguno no coincide con el ejemplo.

---

## Cómo obtener los códigos exactos en tu SIIGO

Para que la tabla quede definitiva:

1. En SIIGO, en **Parametrización / Impuestos** (o equivalente), revisar la lista de tipos de impuesto y el **código** de cada uno (el que va en "Código impuesto" del plano).
2. Confirmar para cada código si debe ir "Base gravable libro compras/ventas" y con qué criterio (misma base para todos, base por tipo, etc.).
3. Cruzar con las columnas de **BASE PROVEEDORES** (IVA, ICA, IC, ICL, Rete IVA, Rete Renta, Rete ICA, etc.) para dejar fijado: código impuesto → columna de cuenta en BASE PROVEEDORES.

Con eso se puede implementar el generador del plano respetando tipo de impuesto, cuenta correspondiente y base gravable por tipo.
