diff --git a/docs/customer-invoices/split-proformas-issued-invoices-migration.md b/docs/customer-invoices/split-proformas-issued-invoices-migration.md index 461e44bc..e515015f 100644 --- a/docs/customer-invoices/split-proformas-issued-invoices-migration.md +++ b/docs/customer-invoices/split-proformas-issued-invoices-migration.md @@ -183,14 +183,6 @@ INSERT INTO proformas ( language_code, currency_code, customer_id, - customer_tin, - customer_name, - customer_street, - customer_street2, - customer_city, - customer_province, - customer_postal_code, - customer_country, payment_method_id, payment_term_id, tax_regime_code, @@ -237,14 +229,6 @@ SELECT language_code, currency_code, customer_id, - customer_tin, - customer_name, - customer_street, - customer_street2, - customer_city, - customer_province, - customer_postal_code, - customer_country, payment_method_id, NULL AS payment_term_id, tax_regime_code, @@ -368,8 +352,8 @@ SELECT NULL AS payment_term_name, NULL AS payment_term_description, NULL AS payment_term_snapshot_json, - tax_regime_code, - COALESCE(tax_regime_description, tax_regime_code), + COALESCE(tax_regime_code, "01"), + COALESCE(tax_regime_description, "01: Operación de régimen general."), subtotal_amount_value, subtotal_amount_scale, items_discount_amount_value, @@ -443,7 +427,9 @@ INSERT INTO proforma_items ( taxes_amount_value, taxes_amount_scale, total_amount_value, - total_amount_scale + total_amount_scale, + created_at, + updated_at ) SELECT i.item_id, @@ -486,13 +472,105 @@ SELECT i.taxes_amount_value, i.taxes_amount_scale, i.total_amount_value, - i.total_amount_scale + i.total_amount_scale, + now(), + now() FROM customer_invoice_items i JOIN customer_invoices ci ON ci.id = i.invoice_id WHERE ci.is_proforma = 1; -INSERT INTO issued_invoice_items (...) -SELECT ... + + + +INSERT INTO issued_invoice_items ( + item_id, + issued_invoice_id, + position, + description, + quantity_value, + quantity_scale, + unit_amount_value, + unit_amount_scale, + subtotal_amount_value, + subtotal_amount_scale, + item_discount_percentage_value, + item_discount_percentage_scale, + item_discount_amount_value, + item_discount_amount_scale, + global_discount_percentage_value, + global_discount_percentage_scale, + global_discount_amount_value, + global_discount_amount_scale, + total_discount_amount_value, + total_discount_amount_scale, + taxable_amount_value, + taxable_amount_scale, + iva_code, + iva_percentage_value, + iva_percentage_scale, + iva_amount_value, + iva_amount_scale, + rec_code, + rec_percentage_value, + rec_percentage_scale, + rec_amount_value, + rec_amount_scale, + retention_code, + retention_percentage_value, + retention_percentage_scale, + retention_amount_value, + retention_amount_scale, + taxes_amount_value, + taxes_amount_scale, + total_amount_value, + total_amount_scale, + created_at, + updated_at + ) +SELECT + i.item_id, + i.invoice_id, + i.position, + i.description, + i.quantity_value, + i.quantity_scale, + i.unit_amount_value, + i.unit_amount_scale, + i.subtotal_amount_value, + i.subtotal_amount_scale, + i.item_discount_percentage_value, + i.item_discount_percentage_scale, + i.item_discount_amount_value, + i.item_discount_amount_scale, + i.global_discount_percentage_value, + i.global_discount_percentage_scale, + i.global_discount_amount_value, + i.global_discount_amount_scale, + i.total_discount_amount_value, + i.total_discount_amount_scale, + i.taxable_amount_value, + i.taxable_amount_scale, + i.iva_code, + i.iva_percentage_value, + i.iva_percentage_scale, + i.iva_amount_value, + i.iva_amount_scale, + i.rec_code, + i.rec_percentage_value, + i.rec_percentage_scale, + i.rec_amount_value, + i.rec_amount_scale, + i.retention_code, + i.retention_percentage_value, + i.retention_percentage_scale, + i.retention_amount_value, + i.retention_amount_scale, + i.taxes_amount_value, + i.taxes_amount_scale, + i.total_amount_value, + i.total_amount_scale, + now(), + now() FROM customer_invoice_items i JOIN customer_invoices ci ON ci.id = i.invoice_id WHERE ci.is_proforma = 0; @@ -522,7 +600,9 @@ INSERT INTO proforma_taxes ( retention_amount_value, retention_amount_scale, taxes_amount_value, - taxes_amount_scale + taxes_amount_scale, + created_at, + updated_at ) SELECT t.tax_id, @@ -545,13 +625,60 @@ SELECT t.retention_amount_value, t.retention_amount_scale, t.taxes_amount_value, - t.taxes_amount_scale + t.taxes_amount_scale, + now(), + now() FROM customer_invoice_taxes t JOIN customer_invoices ci ON ci.id = t.invoice_id WHERE ci.is_proforma = 1; -INSERT INTO issued_invoice_taxes (...) -SELECT ... +INSERT INTO issued_invoice_taxes (tax_id, + issued_invoice_id, + taxable_amount_value, + taxable_amount_scale, + iva_code, + iva_percentage_value, + iva_percentage_scale, + iva_amount_value, + iva_amount_scale, + rec_code, + rec_percentage_value, + rec_percentage_scale, + rec_amount_value, + rec_amount_scale, + retention_code, + retention_percentage_value, + retention_percentage_scale, + retention_amount_value, + retention_amount_scale, + taxes_amount_value, + taxes_amount_scale, + created_at, + updated_at) + SELECT + t.tax_id, + t.invoice_id, + t.taxable_amount_value, + t.taxable_amount_scale, + t.iva_code, + t.iva_percentage_value, + t.iva_percentage_scale, + t.iva_amount_value, + t.iva_amount_scale, + t.rec_code, + t.rec_percentage_value, + t.rec_percentage_scale, + t.rec_amount_value, + t.rec_amount_scale, + t.retention_code, + t.retention_percentage_value, + t.retention_percentage_scale, + t.retention_amount_value, + t.retention_amount_scale, + t.taxes_amount_value, + t.taxes_amount_scale, + now(), + now() FROM customer_invoice_taxes t JOIN customer_invoices ci ON ci.id = t.invoice_id WHERE ci.is_proforma = 0; diff --git a/modules/customer-invoices/src/api/infrastructure/common/persistence/sequelize/models/sequelize-issued-invoice.model.ts b/modules/customer-invoices/src/api/infrastructure/common/persistence/sequelize/models/sequelize-issued-invoice.model.ts index 32d5b5b0..6198a268 100644 --- a/modules/customer-invoices/src/api/infrastructure/common/persistence/sequelize/models/sequelize-issued-invoice.model.ts +++ b/modules/customer-invoices/src/api/infrastructure/common/persistence/sequelize/models/sequelize-issued-invoice.model.ts @@ -512,6 +512,14 @@ export default (database: Sequelize) => { fields: ["source_proforma_id"], unique: true, }, + + // Quiksearch => "CriteriaToSequelizeConverter" construye la sentencia SQL de búsqueda FULLTEXT + // a partir de este índice. Las columnas deben coincidir con los campos de búsqueda rápida definidos en el repositorio. + { + name: "idx_qs_issued_invoices", + type: "FULLTEXT", + fields: ["invoice_number", "reference", "description"], + }, ], whereMergeStrategy: "and", defaultScope: {}, diff --git a/modules/customer-invoices/src/api/infrastructure/common/persistence/sequelize/models/sequelize-proforma.model.ts b/modules/customer-invoices/src/api/infrastructure/common/persistence/sequelize/models/sequelize-proforma.model.ts index 790b38f3..ce9f0b04 100644 --- a/modules/customer-invoices/src/api/infrastructure/common/persistence/sequelize/models/sequelize-proforma.model.ts +++ b/modules/customer-invoices/src/api/infrastructure/common/persistence/sequelize/models/sequelize-proforma.model.ts @@ -419,6 +419,14 @@ export default (database: Sequelize) => { fields: ["company_id", "proforma_reference"], unique: true, }, + + // Quiksearch => "CriteriaToSequelizeConverter" construye la sentencia SQL de búsqueda FULLTEXT + // a partir de este índice. Las columnas deben coincidir con los campos de búsqueda rápida definidos en el repositorio. + { + name: "idx_qs_proformas", + type: "FULLTEXT", + fields: ["proforma_reference", "reference", "description"], + }, ], whereMergeStrategy: "and", defaultScope: {}, diff --git a/modules/customer-invoices/src/api/infrastructure/issued-invoices/di/index.ts b/modules/customer-invoices/src/api/infrastructure/issued-invoices/di/index.ts index 5f934686..1cd9e029 100644 --- a/modules/customer-invoices/src/api/infrastructure/issued-invoices/di/index.ts +++ b/modules/customer-invoices/src/api/infrastructure/issued-invoices/di/index.ts @@ -1,7 +1,7 @@ -export * from "./issued-invoice-public-services"; export * from "./issued-invoice-persistence.di"; export * from "./issued-invoice-persistence-mappers-v2.di"; -export * from "./issued-invoice-persistence-mappers.di"; +export * from "./issued-invoice-public-services"; +//export * from "./issued-invoice-persistence-mappers.di"; export * from "./issued-invoice-repositories-v2.di"; -export * from "./issued-invoice-repositories.di"; +//export * from "./issued-invoice-repositories.di"; export * from "./issued-invoices.di"; diff --git a/modules/customer-invoices/src/api/infrastructure/issued-invoices/persistence/sequelize/mappers/domain/index.ts b/modules/customer-invoices/src/api/infrastructure/issued-invoices/persistence/sequelize/mappers/domain/index.ts index b3a7af10..42de88d1 100644 --- a/modules/customer-invoices/src/api/infrastructure/issued-invoices/persistence/sequelize/mappers/domain/index.ts +++ b/modules/customer-invoices/src/api/infrastructure/issued-invoices/persistence/sequelize/mappers/domain/index.ts @@ -1,6 +1,5 @@ export * from "./sequelize-issued-invoice-v2-domain.mapper"; -/*export * from "./sequelize-issued-invoice-v2-item-domain.mapper"; +export * from "./sequelize-issued-invoice-v2-item-domain.mapper"; export * from "./sequelize-issued-invoice-v2-recipient-domain.mapper"; export * from "./sequelize-issued-invoice-v2-taxes-domain.mapper"; export * from "./sequelize-issued-invoice-v2-verifactu-domain.mapper"; -*/ diff --git a/tools/fastreportcli-net-core-skia/FastReportCliGenerator/publish/linux/FastReportCliGenerator b/tools/fastreportcli-net-core-skia/FastReportCliGenerator/publish/linux/FastReportCliGenerator index c3660fc4..4d92da44 100755 Binary files a/tools/fastreportcli-net-core-skia/FastReportCliGenerator/publish/linux/FastReportCliGenerator and b/tools/fastreportcli-net-core-skia/FastReportCliGenerator/publish/linux/FastReportCliGenerator differ diff --git a/tools/fastreportcli-net-core-skia/FastReportCliGenerator/publish/windows/FastReportCliGenerator.exe b/tools/fastreportcli-net-core-skia/FastReportCliGenerator/publish/windows/FastReportCliGenerator.exe index 1950a07e..67c69374 100755 Binary files a/tools/fastreportcli-net-core-skia/FastReportCliGenerator/publish/windows/FastReportCliGenerator.exe and b/tools/fastreportcli-net-core-skia/FastReportCliGenerator/publish/windows/FastReportCliGenerator.exe differ