Commit Graph

10 Commits

Author SHA1 Message Date
52b8fcd434 feat: Implement multi-tenancy support in middleware and security layers
- Enhanced TenantMiddleware to validate tenant information from JWT tokens.
- Added LicenseValidationMiddleware to check tenant licenses before processing requests.
- Updated security utilities to extract tenant information from tokens and validate company access.
- Introduced CompanyStore to manage active company state and handle company switching in the frontend.
- Modified API routes to include company_id in requests for better resource management.
- Improved logging and error handling throughout the middleware and API layers.
- Updated frontend components to reflect changes in company management and selection.
- Added new API route for fetching user's companies with proper authentication handling.
2025-11-11 14:15:31 -06:00
870bc36590 Aplicar lógica de validación de tenant y compañía a todos los endpoints relevantes en los módulos: client_and_provider, classes, country_rule_oct, exchange_rate, fraction_rule_octave, package, parts, permission_rule_oct, seal 2025-11-09 18:13:08 -06:00
e0e38526b0 Refactor database models to include company_id and update unique constraints
- Updated PermissionRuleOct model to include company_id and modified unique constraint.
- Updated Seal model to include company_id and modified unique constraint.
- Added TYPE_CHECKING imports in reference data models for better type hinting.
- Created new models for QClasses and SClasses in the a24 module.
- Enhanced init_first_time.sh script for comprehensive system initialization, including Keycloak and PostgreSQL setup.
- Updated documentation to reflect changes in API endpoints and database relationships.
2025-11-07 18:47:41 -06:00
ef3924a41d Refactor models and services in A76 module
- Updated GBultoService to use models.Package instead of models.GBulto.
- Refactored Part model to use SQLAlchemy 2.0 style with Mapped and mapped_column.
- Added timestamps (created_at, updated_at, deleted_at) to various pedimento models.
- Improved relationships and foreign key constraints in pedimento models.
- Updated PermissionRuleOct and Seal models to use Mapped and mapped_column.
- Changed DTO configuration from orm_mode to from_attributes for better compatibility.
- Removed obsolete models (models.py and models_ped.py) from the repository.
2025-11-07 12:17:26 -06:00
2987a6c541 Merge pull request 'feauture-pedimentos' (#10) from feauture-pedimentos into development
Reviewed-on: ADUANASOFT/anexo76#10
2025-11-07 16:11:10 +00:00
29f637a5ee Refactor pedimento-related interfaces and forms to standardize date and payment fields
- Updated `PedimentoDates`, `PedimentoPayments`, `PedimentoTransportMeans`, and `PedimentoValidation` interfaces to include new fields and rename existing ones for consistency.
- Modified forms in Svelte components to reflect the updated interfaces, including new input fields for various dates and payment details.
- Enhanced status handling in the dashboard to accommodate new status options and improve user feedback.
- Implemented token validation on the server-side to ensure secure access to the dashboard.
- Cleaned up login logic to prevent redirection loops when tokens are present but potentially expired.
2025-11-07 10:08:55 -06:00
e50a86e014 Refactorización de nombres de módulos y actualizaciones:
- Creación y traducción de módulos:
  - gpaisreglaoct -> country_rule_oct
  - gpermisoreglaoct -> permission_rule_oct
  - gprecintos -> seal
  - gtipocambio -> exchange_rate
  - gfracroctava -> fraction_rule_octave
  - gbultos -> package

- Traducción de nombres de campos, clases y métodos al inglés.
- Renombrados los nombres de las tablas (__tablename__) en los modelos.
- Actualización de las importaciones en el archivo router.py para reflejar los nuevos nombres de módulos.
- Asegurada la consistencia en los nombres de clases, métodos y rutas.
- Agregado el campo tenant_id a los modelos que no lo incluían.
2025-11-06 22:05:43 -06:00
ef5c40af92 feat: Implement client and provider management service
- Added service layer for handling client and provider operations including creation, retrieval, updating, and deletion.
- Introduced DTOs for data transfer and validation.
- Implemented filtering and pagination for client/provider listing.
- Added logging for better traceability of operations.

feat: Create parts management module

- Developed a complete module for managing parts/components including creation, retrieval, updating, and deletion.
- Introduced DTOs for parts with detailed attributes and validation.
- Implemented search and filtering capabilities for parts based on various criteria.
- Added endpoints for regulatory information retrieval and parts statistics.
- Integrated logging for error handling and operational insights.
2025-11-06 20:29:18 -06:00
c1dee97092 # Reporte de Trabajo - 5 de Noviembre de 2025
## Cambios Realizados

### 1. **Modelos**
- Se actualizaron los modelos para incluir el esquema  en las tablas:
  -
  -
  -
  -
- Ajustes en relaciones y claves foráneas para garantizar consistencia con el esquema .
- Se añadieron anotaciones de tipo y mejoras en la documentación de los modelos.

### 2. **Servicios**
- Implementación de lógica de negocio en  para el módulo :
  - Creación, actualización, eliminación y búsqueda de partes.
  - Métodos para estadísticas y manejo de estados habilitado/deshabilitado.

### 3. **Migraciones**
- Creación de nuevas migraciones de Alembic para las tablas:
  -
  -
  -
  -
  - Tablas relacionadas con direcciones y programas de clientes/proveedores.

### 4. **Documentación**
- Actualización de :
  - Detalles de las nuevas funcionalidades implementadas.
  - Endpoints REST API agregados para los módulos.
  - Relaciones principales entre tablas.
- Actualización de :
  - Cambios realizados en los modelos para usar el esquema .
  - Beneficios de la separación de esquemas.
  - Próximos pasos para completar la integración.

## Próximos Pasos
1. Verificar las migraciones generadas y aplicarlas en el entorno de desarrollo.
2. Implementar pruebas unitarias para los nuevos servicios y modelos.

---

*Documento generado automáticamente el 5 de noviembre de 2025.*
2025-11-05 22:38:58 -06:00
38d86531e8 feat: Add comprehensive A76 modules with database relationships
 New Features:
- Company module: Single company management with comprehensive business info
- Client & Provider module: Manages clients/providers with address/program relationships
- GParts module: Parts/components management for SCAII, SCAF, and WINSAAI systems
- GClass module: Class classifications for SCAII and SCAF with tariff information

🔗 Database Relationships:
- GPart ↔ GClass: Composite key relationship (client_key, part_class ↔ class_code)
- GPart → Country: Foreign key to public.countries (country_of_origin)
- GPart → CurrencyType: Foreign key to public.currency_types (currency_key)
- GClass → MaterialType: Foreign key to public.material_types (material_key)

📊 API Endpoints Added:

Company Module (/company):
- POST / - Create company
- GET / - Get single company

Client & Provider Module (/clients-providers):
- POST / - Create client/provider
- GET / - List all with pagination
- GET /clients - List only clients
- GET /providers - List only providers
- GET /search/rfc/{rfc} - Search by RFC
- GET /{client_id} - Get by ID
- PUT /{client_id} - Update client/provider
- DELETE /{client_id} - Delete client/provider
- PATCH /{client_id}/toggle-status - Toggle status
- GET /{client_id}/address - Get address info
- GET /{client_id}/programs - Get programs info
- GET /{client_id}/basic - Get basic info

GParts Module (/parts):
- POST / - Create part
- GET / - List all with pagination and filters
- GET /client/{client_key} - Get parts by client
- GET /search/fraction/{fraction} - Search by tariff fraction
- GET /search/supplier/{supplier} - Search by supplier
- GET /search/country/{country_code} - Search by country
- GET /statistics - Get parts statistics
- GET /{client_key}/{part_number} - Get specific part
- PUT /{client_key}/{part_number} - Update part
- DELETE /{client_key}/{part_number} - Delete part
- PATCH /{client_key}/{part_number}/toggle-status - Toggle status
- GET /{client_key}/{part_number}/basic - Get basic info
- GET /{client_key}/{part_number}/regulatory - Get regulatory info

GClass Module (/classes):
- POST / - Create class
- GET / - List all with pagination and filters
- GET /client/{client_key} - Get classes by client
- GET /search/fraction/{fraction} - Search by tariff fraction
- GET /search/material/{material_key} - Search by material
- GET /search/unit-measure/{unit_of_measure} - Search by unit of measure
- GET /search/physical-review/{physical_review} - Search by physical review status
- GET /statistics - Get class statistics
- GET /{client_key}/{class_code} - Get specific class
- PUT /{client_key}/{class_code} - Update class
- DELETE /{client_key}/{class_code} - Delete class
- GET /{client_key}/{class_code}/basic - Get basic info
- GET /{client_key}/{class_code}/tariff - Get tariff information

🏗️ Architecture:
- Modular design with models, DTOs, services, and routes for each entity
- English field names with composite primary keys where applicable
- Comprehensive CRUD operations with specialized search endpoints
- SQLAlchemy relationships with proper foreign key constraints
- Type-safe DTOs with Pydantic validation

📝 Documentation:
- RELATIONSHIPS.md: Complete documentation of database relationships
- Detailed type hints and comprehensive service methods
- Consistent patterns across all modules for maintainability
2025-11-04 21:48:05 -06:00