Skip to content
Health
75/100
good
  • Security25/25
    No findings
  • Activity25/25
    Last human commit 2 months ago
  • Required by20/25
    2 modules depend on it
  • Maturity5/25
    In 1 Odoo series since 20.0

Heuristic over the facts below, not an audit · How it's computed

Security findings
Grave / minor (static analysis)
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

Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
purchase_alternative_sale, purchase_alternative_stock

Code analysis

Extracted from the source by best-effort static analysis (no code is executed); details may be incomplete.

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)