# Casos de Uso — Módulo de Importaciones

**Sistema:** Anexo76 · SCAII
**Módulo:** `imports/`
**Versión:** 1.0 · Marzo 2026

---

## Contexto general

El módulo de importaciones gestiona el ciclo completo de una factura de importación dentro del sistema: desde que el usuario la captura hasta que queda registrada como procesada. También permite revertirla si hubo un error.

La importación es el punto de partida de todo el inventario de materiales. Cuando una empresa maquiladora importa insumos, el sistema registra cuánto entró, con qué valor y bajo qué régimen. Ese registro es lo que después permite a las exportaciones descargar saldos. Sin importaciones procesadas, no hay inventario que exportar.

Toda factura de importación pasa por uno de dos momentos: **procesarla** (actualizarla) o **revertirla** (desactualizarla).

---

## Los tipos de factura de importación

Cada tipo representa un escenario aduanero diferente con reglas y efectos distintos sobre el inventario:

| Tipo | ¿Qué representa en la práctica? | ¿Genera saldo de inventario? | ¿Calcula IVA por partida? |
|------|--------------------------------|:----------------------------:|:-------------------------:|
| **TEM** | Material que entra al país temporalmente para ser procesado y exportado | Sí | No |
| **DEF** | Material que entra al país de forma definitiva, pagando impuestos completos | No | Sí |
| **MEX** | Compra de material a proveedores mexicanos | No | Sí |

La distinción más importante del módulo: **solo las importaciones temporales (TEM) generan saldo de inventario**. Las definitivas y las compras mexicanas simplemente registran la entrada y calculan el IVA, pero no alimentan el ledger que las exportaciones van a consumir.

---

## CU-IMP-001 · Procesar una factura TEM (Importación Temporal)

### Descripción

El usuario procesa una factura de importación temporal. El material registrado en esta factura entra al país sin pagar impuestos definitivos, bajo el compromiso de que será exportado después de ser transformado o ensamblado.

### Por qué existe

El régimen de importación temporal es el corazón de la operación maquiladora. Las empresas necesitan registrar exactamente qué entró, cuánto y con qué valor, porque ese registro es el inventario del que después se nutren las exportaciones. Sin este caso de uso, no existirían los saldos que el módulo de exportaciones descarga.

### Quién lo usa

El usuario de captura de importaciones, al presionar **"Actualizar Factura"** en una factura de tipo TEM.

### Qué necesita estar listo antes

- La factura debe estar en estado **Pendiente**.
- Debe tener al menos una partida capturada.
- Todos los campos del encabezado deben estar completos: fecha, proveedor, destinatario, agente aduanal, tipo de cambio, moneda y pedimento.
- El tipo de cambio del día debe estar registrado en el catálogo — a diferencia de exportaciones, aquí es obligatorio que exista; si no existe, el sistema lanza un error (no solo una advertencia).
- Las clases y fracciones arancelarias de cada partida deben ser válidas.
- Cada partida principal debe tener costo unitario mayor a cero.
- Si la empresa tiene programa PROSEC y alguna partida usa Regla Octava, el permiso correspondiente debe estar activo y con cupo disponible.

### Qué hace el sistema

Primero valida los campos del encabezado y carga las partidas. Luego verifica que las clases y fracciones arancelarias sean correctas, que el tipo de cambio coincida con el catálogo y que los pesos declarados cuadren con las cantidades.

Después calcula los valores monetarios de cada partida: costo unitario en pesos, en dólares y en moneda de cuenta, usando el tipo de cambio del día. Para TEM **no se calcula IVA** — ese cálculo solo aplica a DEF y MEX.

Por cada partida también valida que la unidad de medida tenga una equivalencia con la unidad de aduana mexicana, para poder registrar la cantidad correcta ante la autoridad aduanera.

Si la empresa tiene programa PROSEC y alguna partida tiene permiso de Regla Octava, el sistema verifica que ese permiso exista, que esté vigente, que la fracción arancelaria coincida y que haya cupo suficiente. Si todo está bien, descuenta ese cupo del permiso.

Finalmente calcula los totales de la factura, agrega los incrementables (flete, seguro, embalaje) y genera en el ledger de inventario **un registro de entrada por cada partida principal**. Esos registros son los saldos que las exportaciones futuras van a consumir.

### Qué queda guardado

La factura queda en estado **Procesada** con sus totales calculados. En el ledger de saldos quedan registrados **movimientos de entrada** por cada partida, listos para ser consumidos por exportaciones. Si había Regla Octava, los cupos del permiso quedan descontados y el saldo queda registrado en la tabla de saldos PROSEC.

### Qué puede fallar

| Situación | Qué hace el sistema |
|-----------|---------------------|
| La factura ya estaba procesada | La rechaza de inmediato |
| El tipo de cambio del día no está en el catálogo | Error — a diferencia de exportaciones, aquí no es opcional |
| El tipo de cambio capturado difiere del catálogo | Error indicando la diferencia |
| Una fracción arancelaria no existe en el catálogo oficial | Reporta qué partida tiene la fracción inválida |
| Una clase arancelaria está desactivada | Reporta qué partida está afectada |
| Un número de parte está desactivado | Reporta qué partida está afectada |
| La cantidad y el peso neto no coinciden (en partidas KGS o LBS) | Indica qué partida tiene la diferencia |
| Una partida tiene costo en cero | Indica qué partida no tiene precio |
| La partida tiene series activadas pero no hay series registradas | Indica qué partida le faltan series |
| La partida usa Regla Octava pero la empresa no tiene PROSEC | Rechaza el uso del permiso |
| El permiso de Regla Octava no existe o está vencido | Indica qué permiso tiene el problema |
| El cupo del permiso de Regla Octava ya está agotado | Indica que no hay cupo disponible |
| La unidad de medida no tiene equivalencia con la unidad de aduana | Indica qué partida tiene el problema de unidades |

---

## CU-IMP-002 · Procesar una factura DEF (Importación Definitiva)

### Descripción

El usuario procesa una factura de importación definitiva. El material entra al país pagando todos los impuestos correspondientes — es una compra permanente, no temporal.

### Por qué existe

No todos los materiales que usan las maquiladoras entran al país de forma temporal. Algunos insumos, herramientas o componentes se adquieren de forma definitiva. El sistema necesita registrar esa entrada, calcular el IVA que corresponde y dejar constancia del valor total de la importación para efectos contables y aduaneros.

### Quién lo usa

El usuario de captura de importaciones para facturas de importación definitiva.

### Qué necesita estar listo antes

Igual que TEM, con la diferencia de que el `iva_factor` debe estar configurado en la factura para que el sistema pueda calcular el IVA por partida.

### Qué hace el sistema

Ejecuta las mismas validaciones que TEM (encabezado, clases, fracciones, tipo de cambio, pesos, costo unitario, series, UMA). La diferencia está en el cálculo de valores: para DEF el sistema calcula **subtotal + IVA = total** por cada partida, en pesos, dólares y moneda de cuenta. El IVA se calcula como porcentaje del valor de cada partida.

Al terminar, actualiza los totales del encabezado incluyendo los totales de IVA.

**La diferencia crítica con TEM:** no genera ningún movimiento en el ledger de inventario. La importación definitiva no alimenta los saldos que las exportaciones consumen — ese material llegó para quedarse en México, no para ser reexportado bajo régimen temporal.

### Qué queda guardado

La factura queda **Procesada** con sus valores y totales de IVA calculados. El ledger de inventario no se modifica.

### Qué puede fallar

Las mismas situaciones que TEM, excepto lo relacionado con Regla Octava (que no aplica para DEF).

---

## CU-IMP-003 · Procesar una factura MEX (Compra Mexicana)

### Descripción

El usuario procesa una factura de compra a un proveedor mexicano. El material proviene de dentro del país — no hay una importación aduanera real — pero el sistema igualmente registra la entrada y calcula el IVA correspondiente.

### Por qué existe

Las maquiladoras también compran materiales a proveedores locales mexicanos. Aunque no hay un trámite aduanero formal, la empresa igualmente necesita registrar ese costo, el IVA pagado y el valor de lo que adquirió, por razones contables y de control interno.

### Quién lo usa

El usuario de captura de importaciones para facturas de compras nacionales.

### Qué necesita estar listo antes

Igual que DEF. A diferencia de otros tipos, MEX no requiere `document_type` — al ser una compra nacional no hay régimen aduanero que declarar.

### Qué hace el sistema

Idéntico a DEF: valida el encabezado, calcula valores con IVA por partida y actualiza totales. No genera saldos en el ledger.

### Qué queda guardado

Igual que DEF — la factura queda **Procesada** con valores e IVA calculados, sin movimientos en el ledger de inventario.

### Qué puede fallar

Las mismas situaciones que DEF.

---

## CU-IMP-004 · Procesar una factura TEM con Regla Octava (PROSEC)

### Descripción

Es una variante del caso TEM. Ocurre cuando la empresa tiene un **programa PROSEC** activo y alguna o todas sus partidas están amparadas bajo un **permiso de Regla Octava**, que le permite importar ciertos materiales con arancel preferencial.

### Por qué existe

La Regla Octava es un beneficio arancelario del gobierno mexicano para empresas del sector productivo. Las empresas PROSEC pueden importar materias primas con aranceles reducidos, pero a cambio deben consumir esos materiales dentro de cuotas autorizadas. El sistema lleva la cuenta de cuánto cupo ha sido usado y cuánto queda disponible por permiso.

### Quién lo usa

Empresas con programa PROSEC activo, al procesar facturas TEM donde alguna partida tiene un permiso de Regla Octava capturado.

### Qué necesita estar listo antes

Todo lo de TEM, más:

- La empresa debe tener `prosec = True` en su configuración.
- El permiso de Regla Octava debe existir en el catálogo, estar vigente (dentro de las fechas del permiso) y tener cupo disponible.
- La fracción arancelaria de la partida debe coincidir con la fracción registrada en el permiso — o debe existir en el historial de fracciones anteriores si el permiso es previo a mayo de 2010.
- El país de origen de la partida debe estar registrado dentro del permiso.
- La unidad de medida del permiso debe ser compatible con la de la partida.

### Qué hace el sistema

Igual que TEM en todo, más un bloque adicional de validación y descuento de cupos:

Para cada partida con permiso de Regla Octava, el sistema arma dos listas: una con lo que se quiere importar (cantidades y valores por permiso y línea) y otra con el cupo disponible por permiso. Luego cruza ambas listas para verificar que el cupo alcance. Si alcanza, descuenta ese cupo del permiso y registra en la tabla de saldos PROSEC cuánto se consumió de cada permiso por factura.

### Qué queda guardado

Igual que TEM, más: el cupo del permiso de Regla Octava queda reducido en la cantidad importada, y existe un registro en la tabla de saldos PROSEC vinculando esta factura con el permiso utilizado. Ese registro es el que se elimina si la factura se revierte.

### Qué puede fallar

Todo lo de TEM, más las situaciones específicas de Regla Octava descritas en ese caso.

---

## CU-IMP-005 · Revertir una factura TEM

### Descripción

El usuario deshace el procesamiento de una factura de importación temporal — porque hubo un error de captura, los datos cambiaron, o necesita corregirla.

### Por qué existe

Una factura TEM procesada tiene efectos en el inventario: generó saldos que las exportaciones pueden estar usando. Revertirla no es solo cambiar un estado — hay que deshacer todos esos efectos de forma controlada para que el inventario quede consistente.

### Qué hace el sistema

Primero verifica que ninguna exportación activa esté consumiendo los saldos de esta importación. Si las hay, bloquea completamente la reversión — ver CU-IMP-007.

Si no hay bloqueos, ejecuta cuatro acciones en orden:

**1. Revierte los cupos de Regla Octava.** Si la factura usó permisos PROSEC, devuelve el cupo consumido a cada permiso y elimina los registros de saldo PROSEC que se habían creado al procesar.

**2. Reinicia los totales del encabezado.** Pone todos los valores financieros en cero (cantidad, peso, valor en pesos, en dólares, IVA, incrementables) y regresa la factura a estado **Pendiente**.

**3. Reinicia los contadores de cada partida.** Limpia los valores de retorno y de IVA utilizado que se habían calculado en las partidas.

**4. Anula los saldos en el ledger de inventario.** El ledger nunca se borra. En su lugar, el sistema inserta nuevos movimientos de tipo **Anulación de Entrada** que compensan exactamente las **Entradas** originales. El saldo neto de cada lote queda en cero — las exportaciones ya no pueden consumirlo.

### Qué necesita estar listo antes

La factura debe estar en estado **Procesada**. Si no lo está, el sistema rechaza la reversión.

### Qué queda guardado

La factura queda en estado **Pendiente** con todos los valores en cero. En el ledger quedan los movimientos originales de Entrada más los nuevos de Anulación que los neutralizan — el historial queda completo y auditable. Si había Regla Octava, los cupos quedan restaurados y los registros de saldo PROSEC quedan eliminados.

### Qué puede fallar

| Situación | Qué hace el sistema |
|-----------|---------------------|
| Una partida está siendo descargada por una exportación activa | Bloquea toda la reversión — ver CU-IMP-007 |
| La factura no estaba procesada | La rechaza indicando que no puede revertirse |
| Error al actualizar el permiso de Regla Octava | Registra el error como no bloqueante y continúa — la reversión avanza de todas formas |

---

## CU-IMP-006 · Revertir una factura DEF o MEX

### Descripción

El usuario deshace el procesamiento de una factura de importación definitiva o de una compra mexicana.

### Por qué existe

Aunque DEF y MEX no generan saldos de inventario, sí tienen totales calculados y estado procesado que pueden necesitar corrección. La reversión les permite volver a estado pendiente para ser corregidas.

### Qué hace el sistema

Es la más simple de las reversiones de importación porque DEF y MEX nunca generaron saldos en el ledger. El sistema verifica que no haya exportaciones activas usando esa importación (por consistencia, aunque en la práctica DEF y MEX no alimentan el ledger que exportaciones consume), reinicia los totales del encabezado a cero y regresa la factura a **Pendiente**.

No hay cupos de Regla Octava que restaurar ni entradas de ledger que anular.

### Qué queda guardado

La factura queda en estado **Pendiente** con todos los valores en cero, lista para ser corregida y reprocesada.

### Qué puede fallar

| Situación | Qué hace el sistema |
|-----------|---------------------|
| La factura no estaba procesada | La rechaza indicando que no puede revertirse |

---

## CU-IMP-007 · Reversión bloqueada por exportaciones activas

### Descripción

El usuario intenta revertir una factura de importación TEM, pero el sistema detecta que alguna de sus partidas está siendo **consumida actualmente por una exportación que sigue procesada**. El sistema bloquea completamente la reversión.

### Por qué existe este bloqueo

Los saldos de inventario de una importación temporal pueden estar siendo usados por varias exportaciones al mismo tiempo. Si se permitiera revertir la importación mientras esas exportaciones siguen activas, el inventario quedaría en un estado imposible: habría exportaciones que dicen haber consumido saldos de una importación que ya no existe. El bloqueo garantiza que el orden sea siempre el correcto: primero se deshacen las exportaciones y luego la importación.

### Qué hace el sistema

Recorre cada partida de la factura. Por cada una, busca si existe algún registro de descarga activo vinculado a una exportación procesada. Si encuentra aunque sea uno, detiene todo el proceso y muestra un mensaje por cada exportación activa involucrada, indicando exactamente qué factura de exportación y qué línea está usando el saldo.

### Cómo lo resuelve el usuario

Debe ir a cada factura de exportación indicada en el mensaje de error y revertirla primero. Una vez que todas las exportaciones que consumían esos saldos estén revertidas, puede revertir la importación sin problemas.

### Qué queda guardado

Nada — el sistema no modifica ningún dato cuando bloquea la reversión. Todo queda exactamente igual que antes del intento.

---

## Resumen de los siete casos

| # | Caso de uso | Tipo | Genera saldo inventario | Calcula IVA | Regla Octava |
|---|-------------|------|:-----------------------:|:-----------:|:------------:|
| CU-IMP-001 | Procesar TEM | Proceso | Sí | No | Opcional |
| CU-IMP-002 | Procesar DEF | Proceso | No | Sí | No |
| CU-IMP-003 | Procesar MEX | Proceso | No | Sí | No |
| CU-IMP-004 | Procesar TEM con PROSEC | Proceso | Sí | No | Sí — descuenta cupo |
| CU-IMP-005 | Revertir TEM | Reversión | Anula saldos | No | Restaura cupo |
| CU-IMP-006 | Revertir DEF o MEX | Reversión | No aplica | No | No |
| CU-IMP-007 | Reversión bloqueada por exportaciones activas | Bloqueo | No (bloqueado) | No | No |

---

## Relación con el módulo de exportaciones

Las importaciones y exportaciones están directamente conectadas a través del ledger de inventario:

Una factura TEM procesada **crea** saldos. Esos saldos son los que las exportaciones AFIJO, DONAC, SCRAP, REEXP y VEMEX **consumen** al procesarse. Si una exportación consume saldos de una TEM y después esa TEM necesita revertirse, primero hay que revertir la exportación — de ahí viene el bloqueo del CU-IMP-007.

Las facturas DEF y MEX no participan en este ciclo desde el lado de la importación, pero sí pueden ser el origen del material en una exportación de tipo REEXP o VEMEX, donde la procedencia requerida es justamente DEF.
