From b25ebba7331b3c229c40052b2d148f4e0df38690 Mon Sep 17 00:00:00 2001 From: david Date: Wed, 5 Nov 2025 11:42:20 +0100 Subject: [PATCH] Campos en cliente y facturas para relacionar con FactuGES --- .../models/customer-invoice.model.ts | 24 ++++++++++++++++++- .../sequelize/models/customer.model.ts | 3 +++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/modules/customer-invoices/src/api/infrastructure/sequelize/models/customer-invoice.model.ts b/modules/customer-invoices/src/api/infrastructure/sequelize/models/customer-invoice.model.ts index ba761b65..d80f4ee0 100644 --- a/modules/customer-invoices/src/api/infrastructure/sequelize/models/customer-invoice.model.ts +++ b/modules/customer-invoices/src/api/infrastructure/sequelize/models/customer-invoice.model.ts @@ -37,8 +37,13 @@ export class CustomerInvoiceModel extends Model< declare id: string; declare company_id: string; + // status === issued <- (si is_proforma === true) => Es una proforma (histórica) + // status === issued <- (si is_proforma === false) => Factura y enviada a Veri*Factu declare is_proforma: boolean; declare status: string; + + declare proforma_id: CreationOptional; // ID de la proforma origen de la factura + declare series: CreationOptional; declare invoice_number: CreationOptional; declare invoice_date: CreationOptional; @@ -90,6 +95,9 @@ export class CustomerInvoiceModel extends Model< declare customer_postal_code: CreationOptional; declare customer_country: CreationOptional; + // FactuGES + declare factuges_id: CreationOptional; + // Relaciones declare items: NonAttribute; declare taxes: NonAttribute; @@ -111,6 +119,7 @@ export class CustomerInvoiceModel extends Model< } } + // Los modelos existen const { CustomerInvoiceModel, CustomerInvoiceItemModel, @@ -171,6 +180,12 @@ export default (database: Sequelize) => { defaultValue: true, }, + proforma_id: { + type: DataTypes.UUID, + allowNull: true, + defaultValue: true, + }, + status: { type: new DataTypes.STRING(), allowNull: false, @@ -364,6 +379,12 @@ export default (database: Sequelize) => { allowNull: true, defaultValue: null, }, + + factuges_id: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + }, }, { sequelize: database, @@ -385,7 +406,8 @@ export default (database: Sequelize) => { }, { name: "idx_invoice_date", fields: ["invoice_date"] }, // <- para ordenación { name: "idx_company_idx", fields: ["id", "company_id"], unique: true }, // <- para consulta get - + { name: "idx_proforma_id", fields: ["proforma_id"], unique: false }, + { name: "idx_factuges", fields: ["factuges_id"], unique: false }, // <- para el proceso python { name: "ft_customer_invoice", type: "FULLTEXT", diff --git a/modules/customers/src/api/infrastructure/sequelize/models/customer.model.ts b/modules/customers/src/api/infrastructure/sequelize/models/customer.model.ts index cd5c7dde..af7a0954 100644 --- a/modules/customers/src/api/infrastructure/sequelize/models/customer.model.ts +++ b/modules/customers/src/api/infrastructure/sequelize/models/customer.model.ts @@ -56,6 +56,7 @@ export class CustomerModel extends Model< declare language_code: CreationOptional; declare currency_code: CreationOptional; + // FactuGES declare factuges_id: CreationOptional; static associate(_database: Sequelize) {} @@ -238,6 +239,8 @@ export default (database: Sequelize) => { }, { name: "idx_name", fields: ["name"] }, // <- para ordenación { name: "idx_company_idx", fields: ["id", "company_id"], unique: true }, // <- para consulta get + { name: "idx_factuges", fields: ["factuges_id"], unique: true }, // <- para el proceso python + { name: "ft_customer", type: "FULLTEXT",