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 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.