Repository
OCA/crm · module folder · Try on Runboat
Module version
1.0.1
Category
Customer Relationship Management
Folder size
0.15 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/crm
Last tracking update
2026-08-07 08:42:48
Authors
Odoo Community Association (OCA), ForgeFlow
Maintainers
Odoo Community Association (OCA), ForgeFlow
Committers
Enric Tobella, Weblate, OCA-git-bot, oca-ci, joelkm, Frédéric GRALL
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
This module allows the user to link multiple products, product
categories or product templates to a lead or an opportunity in order to
be able to do a product demand forecasting taking into account the leads
and opportunities defined in Odoo.

Included in the product line there are two computed fields, the expected
revenue and prorated revenue. On one hand, the expected revenue is
computed as the selling price times the quantity. On the other hand, the
prorated revenue takes into account the probability of the opportunity
and is computed as the planned revenue times the probability.

The module also includes a reporting section where the user can easily
see in a pivot and graph view the relationship between products, stage
of the lead/opportunity and the expected or prorated revenue for that
product.

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
crm_lead_view_form crm.lead.form - crm_lead_product crm.lead form Inherits crm.crm_lead_view_form
crm_opportunity_report_view_graph crm.opportunity.report.graph crm.product.report graph New
crm_opportunity_report_view_pivot crm.opportunity.report.pivot crm.product.report pivot New
crm_opportunity_report_view_search crm.lead.search crm.product.report search New
crm_opportunity_report_view_tree crm.opportunity.report.list crm.product.report list New
view_tree_lead_line crm.lead.line.tree - crm_lead_product crm.lead.line list New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (3)

New fields (1)
  • lead_line_ids One2many → crm.lead.line
    comodel_name='crm.lead.line' inverse_name='lead_id' string='Lead Lines'
Public methods (0)

No public methods.

New fields (11)
  • category_id Many2one → product.category
    index=True string='Product Category' args: 'product.category'
  • company_currency Many2one → res.currency
    readonly=True related='lead_id.company_currency' string='Currency' args: 'res.currency'
  • expected_revenue Monetary
    compute='_compute_expected_revenue' compute_sudo=True currency_field='company_currency' store=True string='Expected revenue'
  • lead_id Many2one → crm.lead
    string='Lead' args: 'crm.lead'
  • name Char
    required=True translate=True args: 'Description'
  • price_unit Float
    digits='Product Price'
  • product_id Many2one → product.product
    domain=[('sale_ok', '=', True)] index=True string='Product' args: 'product.product'
  • product_qty Integer
    default=1 required=True string='Product Quantity'
  • product_tmpl_id Many2one → product.template
    index=True string='Product Template' args: 'product.template'
  • prorated_revenue Monetary
    compute='_compute_prorated_revenue' compute_sudo=True currency_field='company_currency' store=True string='Prorated revenue'
  • uom_id Many2one → uom.uom
    readonly=True string='Unit of Measure' args: 'uom.uom'
Public methods (0)

No public methods.

New fields (24)
  • active Boolean
    readonly=True
  • campaign_id Many2one → utm.campaign
    readonly=True args: 'utm.campaign', 'Campaing'
  • category_id Many2one → product.category
    readonly=True args: 'product.category', 'Category'
  • company_id Many2one → res.company
    readonly=True args: 'res.company', 'Company'
  • country_id Many2one → res.country
    readonly=True args: 'res.country', 'Country'
  • create_date Datetime
    readonly=True
  • date_closed Datetime
    readonly=True args: 'Closed Date'
  • date_conversion Datetime
    readonly=True args: 'Conversion Date'
  • date_deadline Datetime
    readonly=True args: 'Deadline Date'
  • date_open Datetime
    readonly=True args: 'Open Date'
  • expected_revenue Float
    readonly=True
  • lost_reason_id Many2one → crm.lost.reason
    readonly=True args: 'crm.lost.reason'
  • name Char
    readonly=True args: 'Lead Name'
  • partner_id Many2one → res.partner
    readonly=True args: 'res.partner', 'Partner/Customer'
  • partner_name Char
    readonly=True args: 'Contact Name'
  • probability Float
    aggregator='avg' readonly=True
  • product_id Many2one → product.product
    readonly=True args: 'product.product', 'Product'
  • product_qty Integer
    readonly=True args: 'Product Quantity'
  • product_tmpl_id Many2one → product.template
    readonly=True args: 'product.template', 'Product Template'
  • prorated_revenue Float
    readonly=True
  • stage_id Many2one → crm.stage
    readonly=True args: 'crm.stage', 'Stage'
  • team_id Many2one → crm.team
    readonly=True args: 'crm.team', 'Sales Team'
  • type Selection
    help='Type is used to separate Leads and Opportunities' args: [('lead', 'Lead'), ('opportunity', 'Opportunity')]
  • user_id Many2one → res.users
    readonly=True args: 'res.users', 'Salesperson'
Public methods (1)
  • init(self)

Loading…

Loading…

Loading…

Loading…

Loading…

Status
Open migration PR — not merged yet for this version
CI status
checks failing
Open since
126 days ago
Last activity
106 days ago
Repository
OCA/crm
Pull request
[MIG] [19.0] crm_lead_product: Migration to 19.0 (#739)