52 lines
1.5 KiB
Markdown
52 lines
1.5 KiB
Markdown
# ET-FIN-001: Modelo de Datos Financiero
|
|
|
|
**ID:** ET-FIN-001 | **Módulo:** MAE-014
|
|
|
|
## Schema
|
|
```sql
|
|
CREATE SCHEMA finance;
|
|
|
|
CREATE TYPE finance.transaction_type AS ENUM ('income', 'expense');
|
|
CREATE TYPE finance.payment_status AS ENUM ('pending', 'partial', 'paid', 'overdue');
|
|
|
|
CREATE TABLE finance.cash_flows (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
project_id UUID REFERENCES projects.projects(id),
|
|
type finance.transaction_type NOT NULL,
|
|
category VARCHAR(100) NOT NULL,
|
|
amount BIGINT NOT NULL,
|
|
projected_date DATE NOT NULL,
|
|
actual_date DATE,
|
|
actual_amount BIGINT,
|
|
description TEXT,
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
|
|
CREATE TABLE finance.receivables (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
project_id UUID REFERENCES projects.projects(id),
|
|
client_id UUID REFERENCES clients.clients(id),
|
|
invoice_number VARCHAR(50) UNIQUE,
|
|
amount BIGINT NOT NULL,
|
|
paid_amount BIGINT DEFAULT 0,
|
|
due_date DATE NOT NULL,
|
|
status finance.payment_status DEFAULT 'pending',
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
|
|
CREATE TABLE finance.payables (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
project_id UUID REFERENCES projects.projects(id),
|
|
vendor_id UUID REFERENCES preconstruction.vendors(id),
|
|
invoice_number VARCHAR(50),
|
|
amount BIGINT NOT NULL,
|
|
paid_amount BIGINT DEFAULT 0,
|
|
due_date DATE NOT NULL,
|
|
status finance.payment_status DEFAULT 'pending',
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
```
|
|
|
|
---
|
|
**Generado:** 2025-11-21
|