FactuGES_ERP/docs/README.md
david cf07de4836 feat: add proforma customer change evaluation utility
- Implemented `evaluateProformaCustomerChange` function to assess changes in customer details for proforma invoices.
- Introduced types for customer change details, blockers, field differences, and fiscal targets.
- Added utility functions for normalizing text and formatting recipient information.

test: add unit tests for customer payment resolver

- Created tests for `CustomerPaymentResolver` to validate payment term retrieval and handling of inactive terms.
- Ensured proper behavior when clearing payment terms and handling non-existent terms.

test: add unit tests for customer default payment term resolver

- Developed tests for `CustomerDefaultPaymentTermResolver` to verify default payment term resolution logic.
- Included scenarios for creating customers with and without explicit payment term IDs.

feat: implement customer default payment term resolver

- Created `CustomerDefaultPaymentTermResolver` to manage default payment term resolution during customer creation.
- Integrated with company finder and payment resolver services.

test: add unit tests for create customer use case

- Implemented tests for `CreateCustomerUseCase` to ensure correct handling of payment term IDs during customer creation.
- Validated behavior when no explicit payment term ID is provided.

test: add unit tests for update customer use case

- Developed tests for `UpdateCustomerUseCase` to verify payment term handling during customer updates.
- Ensured that inactive payment terms are not assigned and that explicit null values are respected.

feat: add dependency injection for customer company services

- Implemented DI for customer company dependencies to facilitate service resolution.

test: add tests for customer create data utility

- Created tests for `buildCustomerCreateData` to validate payment term handling based on user input.
2026-08-17 11:25:34 +02:00

91 lines
4.4 KiB
Markdown

# ERP Docs
Este directorio reúne la documentación técnica, operativa y de apoyo del ERP.
## Cómo leer esta documentación
- Empieza por este índice si necesitas orientarte.
- Usa los documentos en subdirectorios temáticos como fuente de verdad operativa.
- Trata los documentos marcados como históricos o legacy como contexto, no como contrato vigente.
## Estructura documental
### Documentación vigente
#### Arquitectura y runtime
- [Arquitectura general](./architecture/README.md)
- [Contexto tenant y `X-Company-Id`](./architecture/tenant-context.md)
- [Tratamiento de errores HTTP en frontend](./architecture/http-error-handling-frontend.md)
- [API de autenticación de `identity`](./architecture/identity-auth-api.md)
- [Relación entre `identity` y `companies`](./architecture/identity-and-companies.md)
- [Estado de migración a `identity`](./architecture/identity-migration-status.md)
#### Frontend
- [Flujo de auth y selección de empresa](./frontend/auth-and-company-selection.md)
- [Sistema modular de Settings](./settings/frontend-erp-settings-system-design.md)
- [Integración de módulos con Settings](./settings/frontend-erp-settings-module-integration-design.md)
- [README de `apps/web`](../apps/web/README.md)
#### Customer invoices y proformas
- [Índice de `customer-invoices`](./customer-invoices/README.md)
- [Plazos de pago](./catalogs/payment-terms.md)
- [Diseño backend del perfil VeriFactu empresarial](./customer-invoices/settings/verifactu-company-profile-backend-design.md)
- [Diseño frontend de Settings para VeriFactu](./customer-invoices/settings/frontend-erp-settings-verifactu-design.md)
- [Contrato de series de proformas](./customer-invoices/proforma-series-contract.md)
- [Contrato de create de proformas](./customer-invoices/proforma-create-contract.md)
- [Configuración fiscal persistida en proformas](./customer-invoices/proforma-tax-config.md)
- [Reports de proformas](./customer-invoices/proformas-reports.md)
#### Document series
- [README de `document-series`](./document-series/README.md)
- [Diseño de `document-series`](./document-series/document-series-design.md)
- [Validación manual de `document-series`](./document-series/manual-validation.md)
- [Validación manual de concurrencia](./document-series/manual-concurrency-validation.md)
#### Módulos y runtime local
- [README de `modules/identity`](../modules/identity/README.md)
- [README de `modules/companies`](../modules/companies/README.md)
- [README de `modules/auth`](../modules/auth/README.md)
- [API pública de selección y alta rápida de clientes](./customers/customer-selection-and-quick-create.md)
#### Guías y estándares
- [Guía de diseño de DTOs](./DTOS - GUÍA DE DISEÑO.md)
- [Convención de nombres de schemas DTO](./CONVENCION NOMBRADO DE ESQUEMAS DTO.md)
#### SQL operativos y runbooks
- [SQL de `customer-invoices`](./customer-invoices/sql/README.md)
- [Validación de migración a `document-series`](./document-series/sql/validate-document-series-migration.sql)
- [Seed local de admin](./dev/seed-local-admin.sql)
### Material auxiliar
- [Base común para prompts backend](./backend-prompt-base.md)
- [Prompt de auth](./prompt-auth.md)
- [Prompt de customer invoices](./prompt-customer-invoices.md)
- [Plantilla auxiliar](./TEMPLATE.md)
### Histórico, transicional o de descubrimiento
Estos documentos se conservan por trazabilidad, auditoría o contexto de decisiones. No deben usarse como fuente de verdad del runtime actual sin contrastarlos con la documentación vigente.
- [Borrador legacy de API](./API.md)
- [Requisitos generales históricos](./REQUISITOS GENERALES.md)
- [Requisitos históricos del módulo de clientes](./REQUISITOS CLIENTES.md)
- [Notas históricas de facturas de cliente](./FACTURAS DE CLIENTE.md)
- [Split histórico Proforma / IssuedInvoice](./customer-invoices/split-proformas-issued-invoices-migration.md)
- [Migración desde `customer_invoice_series`](./document-series/migration-from-customer-invoice-series.md)
- [InvoiceSeries legacy](./customer-invoices/invoice-series.md)
## Regla práctica de mantenimiento
- Los documentos operativos vigentes deben vivir en subdirectorios temáticos y tener una responsabilidad clara.
- Los documentos raíz en mayúsculas o con naming heredado deben considerarse legacy o auxiliares salvo que este índice los declare explícitamente vigentes.
- Si una regla ya tiene fuente canónica, los demás documentos deben resumirla y enlazarla, no copiarla.