TIP: You can type at any time to perform a new search.
Purchase Blanket Orders
purchase_blanket_order · OCA/purchase-workflow
- Repository
- OCA/purchase-workflow · module folder · Try on Runboat
- Module version
- 1.0.2
- Category
- Purchase
- Folder size
- 0.48 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/purchase-workflow
- Last tracking update
- 2026-08-07 08:42:59
- Authors
- Odoo Community Association (OCA), ForgeFlow
- Maintainers
- Odoo Community Association (OCA), ForgeFlow
- Committers
- JordiMForgeFlow, Weblate, OCA-git-bot, oca-ci, Fernando, Ugne Sinkeviciene
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- l10n_br_purchase_blanket_order
- Description
A purchase blanket order is a pre-agreement to purchase a certain number of quantities of products at a specific price. From a confirmed blanket order, the users can create new purchase orders at such price, until the blanket order expires due to reaching the validity date.
Code Analysis ⓘ
Views touched (12)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
purchase_blanket_order_line_form |
purchase.blanket.order.line.form | purchase.blanket.order.line | form | New |
purchase_blanket_order_line_search |
purchase.blanket.order.line.search | purchase.blanket.order.line | search | New |
purchase_blanket_order_line_tree |
purchase.blanket.order.line.tree | purchase.blanket.order.line | list | New |
purchase_config_settings_form_view |
res.config.settings.form (in purchase_blanket_order) | res.config.settings | form | Inherits purchase.res_config_settings_view_form_purchase |
purchase_order_form |
purchase.order.from.blanket.form | purchase.order | form | Inherits purchase.purchase_order_form |
purchase_order_form_disable_adding_lines |
purchase.order.from.blanket.form - disable adding lines | purchase.order | form | Inherits purchase.purchase_order_form |
report_blanketorder |
report_blanketorder | ir.ui.view | qweb | New |
report_blanketorder_document |
report_blanketorder_document | ir.ui.view | qweb | New |
view_create_purchase_order |
Create Purchase Order | purchase.blanket.order.wizard | form | New |
view_purchase_blanket_order_form |
purchase.blanket.order.form | purchase.blanket.order | form | New |
view_purchase_blanket_order_search |
purchase.blanket.order.search | purchase.blanket.order | search | New |
view_purchase_blanket_order_tree |
purchase.blanket.order.tree | purchase.blanket.order | list | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (7)
New fields (26)
-
amount_taxMonetarycompute='_compute_amount_all'readonly=Truestore=Truestring='Taxes' -
amount_totalMonetarycompute='_compute_amount_all'readonly=Truestore=Truestring='Total' -
amount_untaxedMonetarycompute='_compute_amount_all'readonly=Truestore=Truestring='Untaxed Amount'tracking=True -
cancelledBooleancopy=False -
company_idMany2one → res.companydefault=<expr>readonly=Truestring='Company' args: 'res.company' -
confirmedBooleancopy=False -
currency_idMany2one → res.currencydefault=<expr>required=True args: 'res.currency' -
date_startDatetimedefault=fields.Datetime.nowhelp='Blanket Order starting date.'readonly=Truerequired=Truestring='Start Date' -
fiscal_position_idMany2one → account.fiscal.positionstring='Fiscal Position' args: 'account.fiscal.position' -
invoiced_uom_qtyFloatcompute='_compute_uom_qty'search='_search_invoiced_uom_qty'string='Invoiced quantity' -
line_countIntegercompute='_compute_line_count'readonly=Truestring='Purchase Blanket Order Line count' -
line_idsOne2many → purchase.blanket.order.linecopy=Truestring='Order lines'tracking=True args: 'purchase.blanket.order.line', 'order_id' -
nameChardefault='Draft'readonly=True -
noteTextreadonly=True -
ordered_uom_qtyFloatcompute='_compute_uom_qty'search='_search_ordered_uom_qty'string='Ordered quantity' -
original_uom_qtyFloatcompute='_compute_uom_qty'search='_search_original_uom_qty'string='Original quantity' -
partner_idMany2one → res.partnerreadonly=Truestring='Vendor'tracking=True args: 'res.partner' -
partner_refCharcopy=Falsestring='Vendor Reference' -
payment_term_idMany2one → account.payment.termreadonly=Truestring='Payment Terms' args: 'account.payment.term' -
product_idMany2one → product.productrelated='line_ids.product_id'string='Product' args: 'product.product' -
purchase_countIntegercompute='_compute_purchase_count' -
received_uom_qtyFloatcompute='_compute_uom_qty'search='_search_received_uom_qty'string='Received quantity' -
remaining_uom_qtyFloatcompute='_compute_uom_qty'search='_search_remaining_uom_qty'string='Remaining quantity' -
stateSelectioncompute='_compute_state'copy=Falseselection=[('draft', 'Draft'), ('open', 'Open'), ('done', 'Done'), ('expired', 'Expired')]store=Truetracking=True -
user_idMany2one → res.usersdefault=<expr>readonly=Truestring='Responsible' args: 'res.users' -
validity_dateDatehelp='Date until which the blanket order will be valid, after this date the blanket order will be marked as expired'readonly=Truetracking=True
-
action_cancel(self) -
action_confirm(self) -
action_view_purchase_blanket_order_line(self) -
action_view_purchase_orders(self) -
compute_warnings(self)@api.modelBase function to create activity warnings -
copy_data(self, default=None) -
expire_orders(self)@api.model -
onchange_partner_id(self)@api.onchange('partner_id')Update the following fields when the partner is changed: - Payment term -
set_to_draft(self) -
unlink(self)
New fields (23)
-
company_idMany2one → res.companyreadonly=Truerelated='order_id.company_id'store=True args: 'res.company' -
currency_idMany2one → res.currencyreadonly=Truerelated='order_id.currency_id' args: 'res.currency' -
date_scheduleDatestring='Scheduled Date' -
invoiced_uom_qtyFloatcompute='_compute_quantities'digits='Product Unit of Measure'store=Truestring='Invoiced quantity' -
nameCharstring='Description'tracking=True -
order_idMany2one → purchase.blanket.orderondelete='cascade'required=True args: 'purchase.blanket.order' -
ordered_uom_qtyFloatcompute='_compute_quantities'digits='Product Unit of Measure'store=Truestring='Ordered quantity' -
original_uom_qtyFloatdefault=1.0digits='Product Unit of Measure'required=Truestring='Original quantity' -
partner_idMany2onereadonly=Truerelated='order_id.partner_id'string='Vendor' -
payment_term_idMany2onereadonly=Truerelated='order_id.payment_term_id'string='Payment Terms' -
price_subtotalMonetarycompute='_compute_amount'store=Truestring='Subtotal' -
price_taxFloatcompute='_compute_amount'store=Truestring='Tax' -
price_totalMonetarycompute='_compute_amount'store=Truestring='Total' -
price_unitFloatdigits='Product Price'required=Truestring='Price' -
product_idMany2one → product.productdomain=[('purchase_ok', '=', True)]required=Truestring='Product' args: 'product.product' -
product_uomMany2one → uom.uomcompute='_compute_product_uom'precompute=Truereadonly=Falserequired=Truestore=Truestring='Unit of Measure' args: 'uom.uom' -
purchase_linesOne2many → purchase.order.linecomodel_name='purchase.order.line'copy=Falseinverse_name='blanket_order_line'readonly=Truestring='Purchase Order Lines' -
received_uom_qtyFloatcompute='_compute_quantities'digits='Product Unit of Measure'store=Truestring='Received quantity' -
remaining_qtyFloatcompute='_compute_quantities'digits='Product Unit of Measure'store=Truestring='Remaining quantity in base UoM' -
remaining_uom_qtyFloatcompute='_compute_quantities'digits='Product Unit of Measure'store=Truestring='Remaining quantity' -
sequenceInteger -
taxes_idMany2many → account.taxdomain=['|', ('active', '=', False), ('active', '=', True)]string='Taxes' args: 'account.tax' -
user_idMany2onereadonly=Truerelated='order_id.user_id'string='Responsible'
-
onchange_product(self)@api.onchange('product_id', 'original_uom_qty')
New fields (3)
-
blanket_order_idMany2one → purchase.blanket.orderdefault=_default_orderreadonly=True args: 'purchase.blanket.order' -
line_idsOne2many → purchase.blanket.order.wizard.linedefault=_default_linesstring='Lines' args: 'purchase.blanket.order.wizard.line', 'wizard_id' -
purchase_order_idMany2one → purchase.orderdomain=[('state', '=', 'draft')]string='Purchase Order' args: 'purchase.order'
-
create_purchase_order(self)
New fields (11)
-
blanket_line_idMany2one → purchase.blanket.order.lineargs: 'purchase.blanket.order.line' -
currency_idMany2one → res.currencyrelated='blanket_line_id.currency_id' args: 'res.currency' -
date_scheduleDatereadonly=Truerelated='blanket_line_id.date_schedule' -
partner_idMany2one → res.partnerreadonly=Truerelated='blanket_line_id.partner_id'string='Vendor' args: 'res.partner' -
price_unitFloatreadonly=Truerelated='blanket_line_id.price_unit' -
product_idMany2one → product.productreadonly=Truerelated='blanket_line_id.product_id'string='Product' args: 'product.product' -
product_uomMany2one → uom.uomreadonly=Truerelated='blanket_line_id.product_uom'string='Unit of Measure' args: 'uom.uom' -
qtyFloatrequired=Truestring='Quantity to Order' -
remaining_uom_qtyFloatreadonly=Truerelated='blanket_line_id.remaining_uom_qty' -
taxes_idMany2many → account.taxreadonly=Truerelated='blanket_line_id.taxes_id' args: 'account.tax' -
wizard_idMany2one → purchase.blanket.order.wizardargs: 'purchase.blanket.order.wizard'
No public methods.
New fields (1)
-
blanket_order_idMany2one → purchase.blanket.orderreadonly=Truerelated='order_line.blanket_order_line.order_id'string='Origin blanket order' args: 'purchase.blanket.order'
-
button_confirm(self) -
check_currency(self)@api.constrains('currency_id') -
check_partner_id(self)@api.constrains('partner_id')
New fields (1)
-
blanket_order_lineMany2one → purchase.blanket.order.linecomodel_name='purchase.blanket.order.line'copy=Falsedomain="[('product_id', '=', product_id)]"
-
check_currency(self)@api.constrains('currency_id') -
check_date_planned(self)@api.constrains('date_planned') -
create(self, vals_list)@api.model_create_multi -
get_assigned_bo_line(self) -
onchange_blanket_order_line(self)@api.onchange('blanket_order_line') -
onchange_product_id(self)@api.onchange('product_id', 'partner_id')
New fields (1)
-
group_purchase_blanket_disable_adding_linesBooleanimplied_group='purchase_blanket_order.purchase_blanket_orders_disable_adding_lines'string='Disable adding more lines to POs'
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
- Status
- Open migration PR — not merged yet for this version
- CI status
- checks failing
- Open since
- 50 days ago
- Last activity
- 23 days ago
- Repository
- OCA/purchase-workflow
- Pull request
- [19.0] [MIG] purchase_blanket_order: Migration to 19.0 (#3118)