TIP: You can type at any time to perform a new search.

Security findings

Repository
odoo/odoo · module folder
Module version
0.1
Category
Supply Chain/Purchase
Folder size
0.67 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
None
Last tracking update
2026-09-28 18:31:17
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Raphael Collet, Odoo Translation Bot, Géry Debongnie, svs-odoo, Tiffany Chang (tic), amdi-odoo, Dylan Kiss (dyki), Stéphane Diez, dhha-odoo, djameltouati, Michaël Mattiello, Lancelot Semal, Julien Launois (jula), Nisarg (nipl), Omar Khalil (omkha), Youssef (abyo), ELCO
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
purchase_alternative_sale, purchase_alternative_stock
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.

Code Analysis info_outline

Views touched (4)
XML IDNameModelTypeStatus
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_products Boolean
    default=True help='If this is checked, the product quantities of the original PO will be copied' args: 'Copy Products'
  • origin_po_id Many2one → purchase.order
    help='The original PO that this alternative PO is being created for.' args: 'purchase.order'
  • partner_ids Many2many → res.partner
    help='Choose a vendor for alternative PO' required=True string='Vendor' args: 'res.partner'
  • purchase_warn_msg Text
    compute='_compute_purchase_warn_msg' groups='purchase.group_warning_purchase' args: 'Warning Messages'
Public methods (1)
  • action_create_alternative(self)

New fields (2)
  • alternative_po_ids Many2many → purchase.order
    string='Alternative POs' args: 'purchase.order', 'warning_purchase_order_alternative_rel'
  • po_ids Many2many → purchase.order
    string='POs to Confirm' args: 'purchase.order', 'warning_purchase_order_rel'
Public methods (2)
  • action_cancel_alternatives(self)
  • action_keep_alternatives(self)

New fields (2)
  • alternative_po_ids One2many → purchase.order
    check_company=True domain="[('id', '!=', id), ('state', 'in', ['draft', 'sent', 'to approve'])]" help='Other potential purchase orders for purchasing products' readonly=False related='purchase_group_id.order_ids' string='Alternative POs' args: 'purchase.order'
  • purchase_group_id Many2one → purchase.order.group
    index='btree_not_null' args: 'purchase.order.group'
Public methods (6)
  • 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_ids One2many → purchase.order
    args: 'purchase.order', 'purchase_group_id'
Public methods (1)
  • write(self, vals)

New fields (2)
  • company_currency_id Many2one
    related='company_id.currency_id' string='Company Currency'
  • price_total_cc Monetary
    compute='_compute_price_total_cc' currency_field='company_currency_id' store=True string='Company Subtotal'
Public methods (2)
  • action_choose(self)
  • action_clear_quantities(self)