
Documentación de Base de Datos - proyecto ORDEN
empresas - Empresas Cliente
Almacena la información de las empresas que utilizan el sistema para gestionar sus reportes fiscales ante la DGII. El sistema es multi-tenant, cada empresa tiene sus propios datos aislados.
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único de la empresa | INTEGER (PK) | ✗ |
| nombre | Razón social de la empresa | VARCHAR(255) | ✗ |
| correo | Correo electrónico de contacto principal | VARCHAR(255) | ✓ |
| telefono | Teléfono de contacto | VARCHAR(50) | ✓ |
| tipo_documento_id | Tipo de identificación (RNC, Cédula) | INTEGER (FK → tipos_documentos) | ✗ |
| numero_documento | Número de RNC o Cédula de la empresa | VARCHAR(50) | ✗ |
ciclo - Períodos Fiscales
Define los períodos fiscales (mensuales) para los cuales se generan los reportes 606 y 607. Cada ciclo representa un mes específico de reporte.
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único del ciclo | INTEGER (PK) | ✗ |
| anyo | Año del período fiscal | INTEGER | ✗ |
| mes | Mes del período fiscal (1-12) | INTEGER | ✗ |
| identificador | Identificador único del período (ej: “202501”) | VARCHAR(6) | ✗ |
tipos_documentos - Tipos de Documentos de Identificación
Catálogo de tipos de documentos de identificación válidos en República Dominicana (RNC, Cédula, Pasaporte).
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único del tipo | INTEGER (PK) | ✗ |
| nombre | Nombre del tipo de documento (ej: “RNC”, “Cédula”, “Pasaporte”) | VARCHAR(100) | ✗ |
contactos - Proveedores y Clientes
Almacena la información de terceros (proveedores y clientes) con los que las empresas realizan transacciones. Un contacto puede ser proveedor, cliente o ambos.
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único del contacto | INTEGER (PK) | ✗ |
| nombre | Nombre o razón social del contacto | VARCHAR(255) | ✗ |
| tipo_documento_id | Tipo de identificación | INTEGER (FK → tipos_documentos) | ✗ |
| numero_documento | Número de RNC, Cédula o Pasaporte | VARCHAR(50) | ✗ |
gastos - Compras y Gastos (Formulario 606)
Registra todas las compras y gastos realizados por las empresas. Estos datos alimentan el formulario 606 que se reporta mensualmente a la DGII.
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único del gasto | INTEGER (PK) | ✗ |
| empresa_id | Empresa a la que pertenece el gasto | INTEGER (FK → empresas) | ✗ |
| linea | Número de línea en el reporte 606 | INTEGER | ✓ |
| ciclo_id | Período fiscal del gasto | INTEGER (FK → ciclo) | ✗ |
| contacto_id | Proveedor del bien o servicio | INTEGER (FK → contactos) | ✗ |
| tipo_id | Tipo de documento fiscal | INTEGER (FK → tipos_documentos) | ✓ |
| tipo_bien_servicio_comprado_id | Clasificación del bien o servicio según DGII | INTEGER (FK) | ✗ |
| ncf | Número de Comprobante Fiscal | VARCHAR(50) | ✗ |
| ncf_modificado | NCF del documento que modifica (en caso de notas de crédito/débito) | VARCHAR(50) | ✓ |
| fecha_comprobante | Fecha de emisión del comprobante | DATE | ✗ |
| dia_comprobante | Día del mes del comprobante | INTEGER | ✓ |
| fecha_pago | Fecha en que se realizó el pago | DATE | ✓ |
| dia_pago | Día del mes del pago | INTEGER | ✓ |
| monto_facturado_servicios | Monto facturado en servicios (sin ITBIS) | DECIMAL(15,2) | ✓ |
| monto_facturado_bienes | Monto facturado en bienes (sin ITBIS) | DECIMAL(15,2) | ✓ |
| total_monto_facturado | Total facturado (servicios + bienes) | DECIMAL(15,2) | ✗ |
| itbis_facturado | ITBIS (impuesto) del comprobante | DECIMAL(15,2) | ✓ |
| itbis_retenido | ITBIS retenido por la empresa | DECIMAL(15,2) | ✓ |
| itbis_sujeto_proporcionalidad | ITBIS sujeto a proporcionalidad según Art. 349 | DECIMAL(15,2) | ✓ |
| itbis_llevado_costo | ITBIS que se lleva al costo (no deducible) | DECIMAL(15,2) | ✓ |
| itbis_adelantar | ITBIS por adelantar en períodos futuros | DECIMAL(15,2) | ✓ |
| itbis_percibido_compras | ITBIS percibido en la compra | DECIMAL(15,2) | ✓ |
| tipo_retencion_isr | Tipo de retención de Impuesto Sobre la Renta | VARCHAR(50) | ✓ |
| monto_retencion_renta | Monto retenido de ISR | DECIMAL(15,2) | ✓ |
| isr_compras | ISR percibido en compras | DECIMAL(15,2) | ✓ |
| impuesto_selectivo_consumo | Impuesto selectivo al consumo | DECIMAL(15,2) | ✓ |
| otros_impuestos_tasas | Otros impuestos o tasas aplicables | DECIMAL(15,2) | ✓ |
| forma_pago_id | Forma de pago utilizada | INTEGER (FK → formas_de_pago) | ✓ |
| sumatoria | Suma de todos los conceptos | DECIMAL(15,2) | ✓ |
| total_factura | Total final de la factura | DECIMAL(15,2) | ✗ |
| diferencia | Diferencia entre sumatoria y total (para validación) | DECIMAL(15,2) | ✓ |
| moneda | Código de moneda (DOP, USD, EUR, etc.) | VARCHAR(10) | ✓ |
| comercio | Indicador de tipo de comercio | VARCHAR(100) | ✓ |
| productos | Descripción de productos/servicios | TEXT | ✓ |
ingresos - Ventas e Ingresos (Formulario 607)
Registra todas las ventas e ingresos de las empresas. Estos datos alimentan el formulario 607 que se reporta mensualmente a la DGII.
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único del ingreso | INTEGER (PK) | ✗ |
| ciclo_id | Período fiscal del ingreso | INTEGER (FK → ciclo) | ✗ |
| contacto_id | Cliente que realizó la compra | INTEGER (FK → contactos) | ✗ |
| tipo_consecutivo_dgii_id | Tipo de NCF utilizado | INTEGER (FK → tipos_consecutivos_dgii) | ✗ |
| forma_de_pago_id | Forma de pago principal | INTEGER (FK → formas_de_pago) | ✓ |
| empresa_id | Empresa que realizó la venta | INTEGER (FK → empresas) | ✗ |
| fecha_comprobante | Fecha de emisión del comprobante | DATE | ✗ |
| numero_factura | Número del comprobante fiscal (NCF) | VARCHAR(50) | ✗ |
| vnd | ¿Vendedor o código interno? | VARCHAR(50) | ✓ |
| subtotal | Subtotal antes de impuestos | DECIMAL(15,2) | ✗ |
| itbis18 | ITBIS calculado al 18% | DECIMAL(15,2) | ✓ |
| itbis16 | ITBIS calculado al 16% | DECIMAL(15,2) | ✓ |
| total | Total de la factura | DECIMAL(15,2) | ✗ |
| ncf | Número de Comprobante Fiscal | VARCHAR(50) | ✗ |
| ncf_afe | NCF afectado (en caso de modificaciones) | VARCHAR(50) | ✓ |
| balance | Balance pendiente | DECIMAL(15,2) | ✓ |
| es_anulado | Indica si el comprobante fue anulado | BOOLEAN | ✓ |
| valor_exento | Valor exento de impuestos | DECIMAL(15,2) | ✓ |
| valor_gravado | Valor gravado con impuestos | DECIMAL(15,2) | ✓ |
| tipo_ingreso_id | Clasificación del tipo de ingreso según DGII | INTEGER (FK → tipos_ingreso) | ✓ |
| fecha_retencion | Fecha de retención (si aplica) | DATE | ✓ |
| monto_facturado | Monto total facturado | DECIMAL(15,2) | ✗ |
| itbis_facturado | ITBIS total facturado | DECIMAL(15,2) | ✓ |
| itbis_retenido_terceros | ITBIS retenido por terceros | DECIMAL(15,2) | ✓ |
| itbis_percibido | ITBIS percibido | DECIMAL(15,2) | ✓ |
| monto_propina_legal | Monto de propina legal (10%) | DECIMAL(15,2) | ✓ |
| efectivo | Monto pagado en efectivo | DECIMAL(15,2) | ✓ |
| cheque_transferencia_deposito | Monto pagado por cheque, transferencia o depósito | DECIMAL(15,2) | ✓ |
| tarjeta_debito_credito | Monto pagado con tarjeta | DECIMAL(15,2) | ✓ |
| venta_credito | Monto vendido a crédito | DECIMAL(15,2) | ✓ |
| otras_formas_ventas | Otras formas de pago | DECIMAL(15,2) | ✓ |
| tasa | Tasa de ITBIS aplicada | DECIMAL(5,2) | ✓ |
| valor_dolares | Valor en dólares (si aplica) | DECIMAL(15,2) | ✓ |
| linea | Número de línea en el reporte 607 | INTEGER | ✓ |
formas_de_pago - Formas de Pago
Catálogo de las formas de pago aceptadas según la clasificación de la DGII.
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único | INTEGER (PK) | ✗ |
| codigo | Código de la forma de pago según DGII | VARCHAR(2) | ✗ |
| nombre | Nombre descriptivo (ej: “Efectivo”, “Tarjeta”, “Transferencia”) | VARCHAR(100) | ✗ |
tipos_consecutivos_dgii - Tipos de NCF
Catálogo de los tipos de Números de Comprobante Fiscal (NCF) autorizados por la DGII para diferentes tipos de transacciones.
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único | INTEGER (PK) | ✗ |
| Prefijo | Prefijo del NCF (ej: “B01”, “B02”, “B14”, etc.) | VARCHAR(10) | ✗ |
| digitos | Cantidad de dígitos del número consecutivo | INTEGER | ✗ |
| descripcion | Descripción del tipo de comprobante | VARCHAR(255) | ✗ |
| nombre | Nombre corto del tipo | VARCHAR(100) | ✗ |
| formato | Formato completo del NCF (ej: “B01XXXXXXXXX”) | VARCHAR(50) | ✗ |
paquete_consecutivos_dgii - Paquetes de NCF Autorizados
Registra los paquetes de NCF autorizados por la DGII para cada empresa. Cada paquete tiene un rango de números válidos y fechas de vigencia.
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único del paquete | INTEGER (PK) | ✗ |
| tipo_consecutivo_dgii_id | Tipo de NCF del paquete | INTEGER (FK → tipos_consecutivos_dgii) | ✗ |
| desde | Número inicial del rango autorizado | INTEGER | ✗ |
| hasta | Número final del rango autorizado | INTEGER | ✗ |
| fecha_vencimiento | Fecha de vencimiento del paquete | DATE | ✗ |
| empresa_id | Empresa propietaria del paquete | INTEGER (FK → empresas) | ✗ |
contador_consecutivos - Control de NCF Utilizados
Lleva el control de los NCF que han sido utilizados por cada empresa, asegurando que no se dupliquen y que se mantengan dentro de los rangos autorizados.
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único | INTEGER (PK) | ✗ |
| numero | Último número de NCF utilizado | INTEGER | ✗ |
| tipo_consecutivo_dgii_id | Tipo de NCF | INTEGER (FK → tipos_consecutivos_dgii) | ✗ |
| empresa_id | Empresa que utiliza el consecutivo | INTEGER (FK → empresas) | ✗ |
monedas - Catálogo de Monedas
Lista de monedas utilizadas en las transacciones para manejo de conversiones y reportes multi-moneda.
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único | INTEGER (PK) | ✗ |
| nombre | Nombre de la moneda (ej: “Peso Dominicano”, “Dólar Americano”) | VARCHAR(100) | ✗ |
tasas_conversion_dgii - Tasas de Cambio Oficiales
Almacena las tasas de cambio oficiales publicadas por la DGII para la conversión de monedas extranjeras a pesos dominicanos.
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único | INTEGER (PK) | ✗ |
| fecha | Fecha de la tasa de cambio | DATE | ✗ |
| valor | Valor de la tasa de cambio | DECIMAL(10,4) | ✗ |
| moneda_id | Moneda de referencia | INTEGER (FK → monedas) | ✗ |
tipos_ingreso - Tipos de Ingresos
Catálogo de clasificación de ingresos según la DGII para el formulario 607.
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único | INTEGER (PK) | ✗ |
| nombre | Nombre del tipo de ingreso | VARCHAR(100) | ✗ |
| codigo | Código según clasificación DGII | VARCHAR(10) | ✓ |
tipos_bienes_servicios_comprados - Clasificación de Bienes y Servicios
Catálogo de clasificación de bienes y servicios comprados según la DGII para el formulario 606.
| Campo | Descripción | Tipo | Nullable |
|---|---|---|---|
| id | Identificador único | INTEGER (PK) | ✗ |
| nombre | Nombre del tipo de de bien adquirido | VARCHAR(100) | ✗ |
| codigo | Código según clasificación DGII | VARCHAR(10) | ✓ |