This update introduces a comprehensive PDF generation system using Puppeteer, allowing for the rendering and downloading of document templates in various formats. Key features include the addition of preview and download routes for document templates, integration of EJS for template rendering, and utilities for converting PDFs to images. The new `TemplateManager` class manages template loading and rendering, while the `pdffactory.js` handles PDF generation. Additionally, several assets and styles for document templates have been added to enhance the visual presentation. This enhancement significantly improves the document management capabilities of the application.
This update enhances the `auditlogs.js` files by formatting the allowed filters for better clarity and refactoring the `listAuditLogsRouteHandler` function to improve code readability. Unused filter translations for Mongoose have been removed, streamlining the filtering logic. These changes contribute to cleaner code and easier future modifications.
This update introduces a new utility function, `getSort`, to validate and apply sorting based on allowed sorters across multiple routes in the inventory and management modules. The function is integrated into route handlers for invoices, payments, tax records, filament stocks, order items, part stocks, product stocks, purchase orders, shipments, and various management entities. This enhancement improves the flexibility and consistency of sorting operations throughout the application.
This update introduces new functions such as `getRefModelEntryFromPrefix`, `stripPrefixFromOperand`, and `getRefModelEntryForToken` to streamline the processing of reference models and tokens. Additionally, the `resolveRefLeaf` and `resolveRefCondition` functions have been refactored to utilize these enhancements, improving the overall efficiency and clarity of the filtering and reference resolution processes. Minor formatting adjustments were also made in orderitems.js for consistency.
This update introduces several utility functions in `utils.js` to improve the handling of ObjectId paths, schema types, and filtering logic. Key additions include `isObjectIdPath`, `getBaseProperty`, and `getFilterFieldKind`, which enhance the flexibility of property handling. Additionally, all route handlers in the finance and inventory modules have been refactored to support asynchronous operations, ensuring better performance and responsiveness when processing requests.
- Renamed and updated route handlers for sending and marking invoices to acknowledge and post invoices, respectively.
- Changed filter parameters from 'customer' to 'client' and added 'order' and 'orderType' filters for better invoice management.
- Enhanced invoice handling logic to include order items and shipments, improving the overall invoicing process.
- Updated the population fields in invoice queries to reflect new schema relationships.
- Adjusted state checks and logging for better error handling and clarity in invoice processing.
- Introduced a new 'name' field as a required attribute in the order item schema.
- Added invoicing-related fields: 'invoicedAmountWithTax', 'invoicedAmount', 'invoicedQuantity', 'invoicedAmountRemaining', 'invoicedAmountWithTaxRemaining', and 'invoicedQuantityRemaining' to track invoicing status.
- Updated route handlers to accommodate the new 'name' field in order item creation and editing processes.
- Enhanced the recalculation logic to include remaining invoiced amounts and quantities.
- Introduced a new payment schema to handle payment records, including fields for amount, vendor, client, invoice, and state.
- Implemented route handlers for CRUD operations on payments, including listing, creating, editing, and deleting payments.
- Updated application routes to include payment routes for better organization and access.
- Added statistics and history retrieval methods for payments to enhance reporting capabilities.
- Introduced new schemas for clients and sales orders.
- Implemented route handlers for CRUD operations on clients and sales orders.
- Updated the main application routes to include client and sales order routes.
- Enhanced the models to support new data structures and relationships.