154 lines
4.9 KiB
Markdown
154 lines
4.9 KiB
Markdown
# Quality Check Lot Preserve
|
|
|
|
## Overview
|
|
|
|
This module modifies the standard Odoo 18 quality check behavior for receipt operations to preserve quality check states when lot numbers are assigned after quality checks have been completed.
|
|
|
|
## Problem Statement
|
|
|
|
In standard Odoo, when a quality check is completed before a lot number is assigned, the quality check automatically resets to "Todo" state when the lot number is later assigned. This creates inefficiency in warehouse operations where:
|
|
|
|
1. Quality checks are performed immediately upon receipt
|
|
2. Lot numbers are generated or assigned later in the process
|
|
3. Quality checks must be re-done unnecessarily
|
|
|
|
## Solution
|
|
|
|
This module provides the following functionality:
|
|
|
|
### 1. State Preservation
|
|
- Quality check states (Pass, Fail, In Progress) are preserved when lot numbers are assigned
|
|
- Applies only to receipt operations (incoming shipments)
|
|
- Other operation types (manufacturing, internal transfers, delivery) continue with standard Odoo behavior
|
|
|
|
### 2. Automatic Lot Number Synchronization
|
|
- Lot numbers assigned to stock move lines are automatically copied to related quality checks
|
|
- Lot number changes are synchronized in real-time
|
|
- Maintains traceability between inventory and quality records
|
|
|
|
### 3. Selective Application
|
|
- Custom behavior applies only to receipt operations
|
|
- Standard Odoo workflows remain unchanged for other operation types
|
|
- Seamless integration with existing quality control processes
|
|
|
|
## Installation
|
|
|
|
1. Copy this module to your Odoo addons directory (e.g., `customaddons/quality_check_lot_preserve`)
|
|
2. Update the apps list in Odoo
|
|
3. Install the "Quality Check Lot Preserve" module
|
|
|
|
## Dependencies
|
|
|
|
- `stock` - Odoo Inventory Management
|
|
- `quality_control` - Odoo Quality Control (Enterprise module)
|
|
|
|
**Note:** This module requires Odoo Enterprise edition as it depends on the `quality_control` module.
|
|
|
|
## Usage
|
|
|
|
### Typical Workflow
|
|
|
|
1. **Receive Products**: Create a purchase order and validate the receipt
|
|
2. **Perform Quality Checks**: Complete quality checks immediately upon receipt (before lot assignment)
|
|
3. **Assign Lot Numbers**: Generate or manually assign lot numbers to the stock move lines
|
|
4. **Result**: Quality check states remain unchanged, and lot numbers are automatically copied to quality checks
|
|
|
|
### Example Scenario
|
|
|
|
**Before this module:**
|
|
- Receive 100 units of Product A
|
|
- Complete quality check → Status: "Pass"
|
|
- Assign lot number "LOT001"
|
|
- Quality check resets → Status: "Todo" ❌
|
|
- Must re-do quality check
|
|
|
|
**With this module:**
|
|
- Receive 100 units of Product A
|
|
- Complete quality check → Status: "Pass"
|
|
- Assign lot number "LOT001"
|
|
- Quality check remains → Status: "Pass" ✓
|
|
- Lot number automatically copied to quality check ✓
|
|
|
|
## Technical Details
|
|
|
|
### Extended Models
|
|
|
|
#### stock.move.line
|
|
- Monitors `lot_id` and `lot_name` field changes
|
|
- Identifies related quality checks for receipt operations
|
|
- Triggers quality check lot number updates
|
|
|
|
#### quality.check
|
|
- Prevents state resets during lot assignment for receipt operations
|
|
- Accepts lot number updates from stock move lines
|
|
- Maintains standard behavior for non-receipt operations
|
|
|
|
### Operation Type Detection
|
|
|
|
The module identifies receipt operations by checking:
|
|
- `picking_type_code == 'incoming'`
|
|
- Fallback to `picking_id.picking_type_id.code`
|
|
|
|
### Data Flow
|
|
|
|
```
|
|
Stock Move Line (Lot Assigned)
|
|
↓
|
|
Detect Change (write method)
|
|
↓
|
|
Find Related Quality Checks
|
|
↓
|
|
Check Operation Type (Receipt?)
|
|
↓ Yes
|
|
Copy Lot Number + Preserve State
|
|
↓
|
|
Update Quality Check
|
|
```
|
|
|
|
### Security and Access Rights
|
|
|
|
This module extends existing Odoo models (`stock.move.line` and `quality.check`) without creating new models or data structures. Therefore:
|
|
|
|
- **No new access rights are required**
|
|
- Access rights are inherited from the base modules (`stock` and `quality_control`)
|
|
- Users with existing quality control and inventory permissions can use this module
|
|
- The `security/ir.model.access.csv` file is present but empty (only contains the header row)
|
|
|
|
The module respects all existing Odoo security rules and group permissions.
|
|
|
|
## Configuration
|
|
|
|
No additional configuration is required. The module works automatically once installed.
|
|
|
|
## Compatibility
|
|
|
|
- **Odoo Version**: 18.0
|
|
- **Edition**: Enterprise (requires quality_control module)
|
|
- **Database**: PostgreSQL
|
|
|
|
## Limitations
|
|
|
|
- Only applies to receipt operations (incoming shipments)
|
|
- Requires the quality_control Enterprise module
|
|
- Does not modify historical quality check records
|
|
|
|
## Support
|
|
|
|
For issues, questions, or feature requests, please contact your Odoo implementation partner or system administrator.
|
|
|
|
## License
|
|
|
|
LGPL-3
|
|
|
|
## Author
|
|
|
|
Your Company
|
|
|
|
## Version History
|
|
|
|
### 1.0.0 (Initial Release)
|
|
- State preservation for quality checks during lot assignment
|
|
- Automatic lot number synchronization
|
|
- Receipt operation filtering
|
|
- Full integration with standard Odoo quality control workflows
|