Corrects API endpoints for creating, processing with, and processing without backorder confirmations.
Adds a new `isBackorder` getter to stock picking records for identifying backordered items, and improves the robustness of the `isDone` getter.
Integrates backorder detection into the reception validation process, prompting a dedicated confirmation dialog when a backorder is present.
Introduces new state management and methods (`withBackorder`, `withoutBackorder`) in the reception details model to handle the backorder confirmation logic.
Enhances the primary button component with a `backgroundColor` property for greater customization.
Refactors the reception process to provide clearer control over data synchronization and validation.
- Replaces the `isDraft` property with `synchronized` in `StockPickingRecordEntity` to accurately represent the local data's sync status with the backend.
- Introduces a new API endpoint and corresponding logic for `validateStockPicking`, allowing finalization of receptions.
- Splits the "Save" action into "Synchronize data" and "Validate reception" on the details page. "Validate" now implicitly performs a synchronization first.
- Updates UI elements (cards, quick actions) to reflect the new synchronization state and expose the new actions.
- Corrects a typo in the `updateAllMoveLineOnStockPicking` API method name.
- Improves local data update logic for scanned items, marking them as unsynchronized.
Introduces an `isDraft` property to `StockPickingRecordEntity` to mark receptions with local modifications.
Automatically sets a reception to draft status when a product's quantity is incremented via scanning. Displays a 'Brouillon' chip on reception cards to provide visual feedback for draft operations.
Ensures reception details are refreshed after scanning to reflect the updated draft status and provides immediate error feedback when no product is found during a scan.
Moves product lookup from external API calls to a local ObjectBox database. This improves performance and enables offline product identification during scanning.
Removes the standalone scanner page, consolidating barcode scanning functionality directly into the reception flow for a more streamlined user experience.
Updates ObjectBox entity fields by removing `final` modifiers, allowing the database to manage and update persisted data effectively. Introduces new methods in the reception scan model to support local product checks, retrieval, and quantity increment for scanned items.
Enables offline capabilities and improved data access for stock picking records.
API calls now prioritize local ObjectBox storage when offline and persist fetched data upon successful remote retrieval.
Introduces comprehensive model-to-entity conversion logic for stock picking data and its related models.
Updates UI components and state management to directly consume ObjectBox entities, optimizing data display and interaction.
Adjusts ObjectBox entity schema for improved flexibility and adds utility getters.
Introduces a comprehensive set of ObjectBox entities to support local storage and management of stock picking data.
This includes:
* `StockPickingRecordEntity`: The primary entity for stock picking records, encompassing various attributes and relations.
* Related entities: `StockPickingCompanyEntity`, `StockPickingPartnerEntity`, `StockPickingLocationEntity`, and `StockPickingTypeEntity` for associated data.
* Move entities: `MoveLineWithoutPackageEntity` and `MoveWithoutPackageEntity` for detailed product movements within a picking record, including relations to product data.
These entities enable efficient local data persistence and querying for stock picking operations.
Moves `StockPickingCompanyModel`, `StockPickingPartnerModel`,
`StockPickingLocationModel`, and `StockPickingTypeModel` to
`stock_picking_record_model.dart`. This consolidates related schema
definitions for improved organization and clarity.
Enables the floating action button on the reception details page
to navigate to the scanner route, streamlining the workflow.