Purchase Alternative
purchase_alternative · odoo/odoo
Health
75/100
good
-
Security25/25No findings
-
Activity25/25Last human commit 2 months ago
-
Required by20/252 modules depend on it
-
Maturity5/25In 1 Odoo series since 20.0
Heuristic over the facts below, not an audit · How it's computed
Required by
2
Modules depending on it
External deps
0 pip · 0 bin
Python packages / system binaries
License
LGPL-3
No conflicts with its dependencies
Folder size
0.68 MB
Module directory on disk
Code analysis
0 migration notes
5 models
4 views
0 HTTP endpoints
Description
This module allows you to manage your Purchase Alternative.
It helps users compare product lines across RFQs and decide to order specific products from different vendors, enabling more flexible and cost-effective purchasing decisions. create a call for tender by adding alternative requests for quotation to different vendors. Make your choice by selecting the best combination of lead time, OTD and/or total amount. By comparing product lines you can also decide to order some products from one vendor and others from another vendor.
Dependencies
Code analysis
Extracted from the source by best-effort static analysis (no code is executed); details may be incomplete.
Views touched 4
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
purchase_alternative_create_form |
Create Alternative | purchase.alternative.create | form | New |
purchase_alternative_warning_form |
Alternative Warning | purchase.alternative.warning | form | New |
purchase_order_form |
purchase.order.form.inherit.purchase.alternative | purchase.order | form | Inherits purchase.purchase_order_form |
purchase_order_line_view_compare_list |
purchase.order.line.view.compare.list | purchase.order.line | list | New |
HTTP endpoints 0
No HTTP endpoints found for this module.
Models touched 5
New fields (4)
-
copy_productsBooleandefault=Truehelp='If this is checked, the product quantities of the original PO will be copied' args: 'Copy Products' -
origin_po_idMany2one → purchase.orderhelp='The original PO that this alternative PO is being created for.' args: 'purchase.order' -
partner_idsMany2many → res.partnerhelp='Choose a vendor for alternative PO'required=Truestring='Vendor' args: 'res.partner' -
purchase_warn_msgTextcompute='_compute_purchase_warn_msg'groups='purchase.group_warning_purchase' args: 'Warning Messages'
-
action_create_alternative(self)
New fields (2)
-
alternative_po_idsMany2many → purchase.orderstring='Alternative POs' args: 'purchase.order', 'warning_purchase_order_alternative_rel' -
po_idsMany2many → purchase.orderstring='POs to Confirm' args: 'purchase.order', 'warning_purchase_order_rel'
-
action_cancel_alternatives(self) -
action_keep_alternatives(self)
New fields (2)
-
alternative_po_idsOne2many → purchase.ordercheck_company=Truedomain="[('id', '!=', id), ('state', 'in', ['draft', 'sent', 'to approve'])]"help='Other potential purchase orders for purchasing products'readonly=Falserelated='purchase_group_id.order_ids'string='Alternative POs' args: 'purchase.order' -
purchase_group_idMany2one → purchase.order.groupindex='btree_not_null' args: 'purchase.order.group'
-
action_compare_alternative_lines(self) -
action_create_alternative(self) -
button_confirm(self) -
create(self, vals_list)@api.model_create_multi -
get_tender_best_lines(self) -
write(self, vals)
New fields (1)
-
order_idsOne2many → purchase.orderargs: 'purchase.order', 'purchase_group_id'
-
write(self, vals)
New fields (2)
-
company_currency_idMany2onerelated='company_id.currency_id'string='Company Currency' -
price_total_ccMonetarycompute='_compute_price_total_cc'currency_field='company_currency_id'store=Truestring='Company Subtotal'
-
action_choose(self) -
action_clear_quantities(self)