- Updated multiple DTO classes across various modules to replace the `Config` class with `model_config = ConfigDict(from_attributes=True)`.
- This change enhances consistency in attribute handling and aligns with the latest Pydantic practices.
- Adjusted error handling in core modules to change status codes from `HTTP_422_UNPROCESSABLE_ENTITY` to `HTTP_422_UNPROCESSABLE_CONTENT` for improved clarity in validation responses.
- Updated validation logic to restrict 'IMD' document type usage unless the invoice type is 'DEF'.
- Refactored value assignment in the main processing flow to handle 'DEF' and 'MEX' invoice types with specific IVA calculations.
- Added logging for invoice processing to improve traceability and debugging.
These changes improve the accuracy of invoice validations and processing for specific document types.
- Deleted the MovementService class, which handled movement operations for temporary imports, including methods for building query clauses and calculating exchange rates.
- This removal streamlines the codebase by eliminating unused legacy code, improving maintainability and clarity in the invoice processing logic.
- Updated the `iva_factor` field in the `InvoiceFinancials` model to use a numeric type with precision and scale.
- Adjusted related frontend components and API interfaces to reflect the new numeric type for `iva_factor`.
- Enhanced Alembic migration scripts to accommodate the schema changes, ensuring proper index management and data type conversions.
These changes improve data integrity and consistency for financial calculations in invoices.
- Updated invoice processing functions to eliminate legacy fields related to returned quantities, now relying on new balance movement and discharge records.
- Adjusted various components and services to reflect changes in quantity handling, including updates to the frontend for displaying used quantities instead of returned ones.
- Improved the logic for invoice total updates and validation processes to ensure consistency with the new data structure.
These changes aim to streamline invoice management and improve data integrity across the application.
- Updated `InvoiceService` to accurately reflect the number of line items in `party_count` for invoices.
- Modified weight calculations in the create and update validators to ensure consistent handling of weight types, now using lowercase comparison for "KGS".
- Adjusted invoice data structure in the frontend to include `total_items` and refined logistics handling.
- Improved table rendering in the invoice edit component for better sticky header behavior and item visibility.
These changes aim to improve data integrity and user experience in invoice management.
- Introduced `_proportional_qty` function to calculate prorated quantities based on consumed amounts.
- Implemented caching for line items and import invoice numbers to optimize database queries during discharge ledger registration.
- Enhanced `register_discharge_ledger` function to utilize cached data for improved performance and reduced N+1 query issues.
- Updated discharge detail creation to include denormalized fields for reporting, such as net and gross weights, and customs information.
- Added `company_id` to `ClientProviderAddress` and `ClientProviderPrograms` for better association.
- Updated `_process_with_discharge` to simplify invoice review by removing redundant parameters.
- Improved `pre_validators` to ensure address validation checks for existence before accessing country.
- Enhanced balance comparison logic in `compare_balances` by tracking consumed quantities.
- Modified `fill_available_balances` to reflect invoice status changes from 'UNPROCESSED' to 'PENDING'.
- Introduced `get_lines_with_balance` method in `ItemService` to fetch invoice lines with available balance.
- Added new API endpoint to retrieve import invoice lines with balance information.
- Updated frontend components to display available balances and improve user experience in invoice selection.
- Updated the invoice processing route to automatically detect and handle invoice types based on the operation_type.
- Introduced error handling for non-existent invoices, returning a 404 status when an invoice is not found.
- Added a new field 'serie_row' in the Serie model to accommodate additional data for export scenarios.
- Introduced `create_balance_entries` function to generate `BalanceMovement` entries for each line item of a processed import invoice, ensuring accurate inventory balance tracking.
- Implemented `void_balance_entries` function to cancel open ENTRY movements by inserting corresponding ENTRY_VOID movements, with safeguards against already consumed lots.
- Enhanced transaction handling to maintain data integrity during invoice processing and reverting operations.
- Introduced a new movement type 'ENTRY_VOID' to handle invoice reversals, ensuring net balance remains zero.
- Updated the FaLineItem DTOs to replace 'download' with 'discharge' for consistency.
- Implemented balance entry creation in the invoice processing and reverting workflows, enhancing inventory management.
- Adjusted progress tracking messages to reflect the new balance entry generation steps.
- Renamed the 'download' field to 'discharge' in the FaLineItem model and updated related services and schemas accordingly.
- Adjusted frontend components to reflect the new 'discharge' terminology.
- Ensured consistency in filtering and validation logic across the application to use the updated field name.
- Added a new route for reverting invoices in the A76 module.
- Updated the pre_validators to provide clearer error messages when processing invoices.
- Enhanced the PDF progress dialog to support step-by-step progress tracking for both invoice processing and reverting.
- Introduced a confirmation dialog for reverting invoices in the dashboard.
- Updated frontend components to handle the new revert functionality and display appropriate progress messages.
- Changed the default environment variable from 'development' to 'production' in docker-compose.prod.yml and docker-compose.yml.
- Added SITAR API credentials to the environment variables in both Docker Compose files.
- Updated the seed data for customs units of measure to include a76_unit_code.
- Refactored the UnitOfMeasureCustoms model and related DTOs to replace scaii_unit_code with a76_unit_code for consistency.
- Adjusted frontend components to reflect the updated unit of measure structure and ensure proper handling of the new a76_unit_code field.
- Removed the APP_VERSION argument from the Dockerfile and added TARGETARCH for architecture-specific wkhtmltopdf installation.
- Updated models.py to reintroduce the import of PartCountry for consistency.
- Enhanced parts.ts interface by adding new optional fields: immex_type, disable_movements, pga_program_code, non_discharge_clients, bom_items, and countries.
- Changed formType default in partForm.svelte and edit page to 'fa' for better alignment with the intended functionality.
- Improved type handling for non_discharge_clients in partForm.svelte.
- Adjusted column span logic in partForm.svelte for better rendering.
- Fixed image error handling in partForm.svelte for improved user experience.
- Updated license expiration date calculation in init_first_time.sh for compatibility with macOS.
- Changed the type of the depreciation_date field from Integer to Date in the LineItem model to enhance date accuracy and compliance with SQLAlchemy v2 standards.