TIP: You can type at any time to perform a new search.
DDMRP Product Replace
ddmrp_product_replace · OCA/ddmrp
- Repository
- OCA/ddmrp · module folder · Try on Runboat
- Module version
- 1.1.0
- Category
- Warehouse Management
- Folder size
- 0.11 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/ddmrp
- Last tracking update
- 2026-08-07 08:43:06
- Authors
- Odoo Community Association (OCA), ForgeFlow
- Maintainers
- Odoo Community Association (OCA), ForgeFlow
- Committers
- Weblate, ThiagoMForgeFlow, OCA-git-bot, oca-ci, DavidJForgeFlow
- Odoo dependencies
- Python dependencies
- bokeh==3.6.3
- System dependencies
- None
- Required by
- ddmrp_packaging_product_replace
- Description
Provides a tool for product replacement.
Code Analysis ⓘ
Views touched (5)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
stock_buffer_search |
stock.buffer.search - ddmrp_product_replace | stock.buffer | search | Inherits ddmrp.stock_buffer_search |
stock_buffer_view_form |
stock.buffer.form - ddmrp_product_replace | stock.buffer | form | Inherits ddmrp.stock_buffer_view_form |
stock_buffer_view_tree |
stock.buffer.tree - ddmrp_product_replace | stock.buffer | tree | Inherits ddmrp.stock_buffer_view_tree |
view_ddmrp_adjustment_sheet_wizard_form |
ddmrp.product.replace.form | ddmrp.product.replace | form | New |
view_make_procurement_buffer_wizard |
Request Procurement | make.procurement.buffer | Inherits ddmrp.view_make_procurement_buffer_wizard |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (4)
New fields (14)
-
buffer_idsMany2many → stock.buffercomodel_name='stock.buffer'compute='_compute_buffer_ids'readonly=Falsestore=Truestring='Affected Buffers' -
consider_past_demandBooleandefault=Truehelp='Consider Old product moves as demand for new product'string='Consider Old Product Demand' -
copy_packagingBoolean -
copy_putawayBooleanstring='Copy Put Away Strategy' -
copy_routeBooleanstring='Copy Routes' -
is_already_replacedBooleancompute='_compute_is_already_replaced' -
modeSelectiondefault='new_buffer'required=Trueselection=[('new_buffer', 'Create a new buffer for the replacing product.'), ('use_existing', 'Replace product in existing buffers')] -
multi_productBooleancompute='_compute_multi_product' -
new_product_default_codeCharstring='New Product Internal Ref.' -
new_product_idMany2one → product.productcomodel_name='product.product'help='Product that is going to replace the other one.'string='Substitute Product' -
new_product_nameChar -
old_product_idsMany2many → product.productcomodel_name='product.product'help='Product to be replaced.'ondelete='cascade'required=Truestring='Replaced Products' -
primary_old_product_idMany2one → product.productcomodel_name='product.product'compute='_compute_primary_old_product_id'domain="[('id', 'in', old_product_ids)]"readonly=Falsestore=Truestring='Primary Replaced Product' -
use_existingSelectionrequired=Trueselection=[('existing', 'Use Existing Product'), ('new', 'Create New Product')]string='Use Existing/New Product'
-
button_validate(self)
New fields (2)
-
has_replaced_buffersBooleancompute='_compute_replaced_by_alert_text' -
replaced_by_alert_textTextcompute='_compute_replaced_by_alert_text'
No public methods.
New fields (7)
-
demand_product_idsMany2many → product.productcomodel_name='product.product'copy=Falsehelp='This field is used for a correct product replacement within a DDMRP buffer.'string='Considered As Demand' -
is_replacement_productBooleancompute='_compute_is_replacement_product'help='The product of this buffer is replacing another product'store=Truestring='Replacement Product' -
replaced_by_alert_textCharcompute='_compute_replaced_by_alert_text' -
replaced_by_idMany2one → stock.buffercomodel_name='stock.buffer'help='The product in this buffer is replaced by the product of selected buffer. When you replace another buffer:\n - Past Demand of the replacement buffer will include the past demand of this product\n - Several buffers can be replaced in chained and coexist at the same time: A replaces B that replaces C, then A aggregates both B and C where B only aggregates C'readonly=Truestring='Replaced by'tracking=True -
replacement_for_countIntegercompute='_compute_replacement_for_count' -
replacement_for_idsOne2many → stock.buffercomodel_name='stock.buffer'inverse_name='replaced_by_id'string='Replaces' -
use_replacement_for_buffer_statusBooleancompute='_compute_use_replacement_for_buffer_status'copy=Falsehelp='If you tick this option, the buffer will consider the incoming and on-hand of all products it replaces and this will impact its NFP.'readonly=Falsestore=Truestring='Include Incoming & On-Hands of replaced products'
-
action_view_buffers_replaced(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…