Initial commit: OCA Technical packages (595 packages)

This commit is contained in:
Ernad Husremovic 2025-08-29 15:43:03 +02:00
commit 2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions

View file

@ -0,0 +1,45 @@
# Lead Line Product
Odoo addon: crm_lead_product
## Installation
```bash
pip install odoo-bringout-oca-crm-crm_lead_product
```
## Dependencies
This addon depends on:
- crm
- product
## Manifest Information
- **Name**: Lead Line Product
- **Version**: 16.0.1.0.0
- **Category**: Customer Relationship Management
- **License**: LGPL-3
- **Installable**: True
## Source
Based on [OCA/crm](https://github.com/OCA/crm) branch 16.0, addon `crm_lead_product`.
## License
This package maintains the original LGPL-3 license from the upstream Odoo project.
## Documentation
- Overview: doc/OVERVIEW.md
- Architecture: doc/ARCHITECTURE.md
- Models: doc/MODELS.md
- Controllers: doc/CONTROLLERS.md
- Wizards: doc/WIZARDS.md
- Install: doc/INSTALL.md
- Usage: doc/USAGE.md
- Configuration: doc/CONFIGURATION.md
- Dependencies: doc/DEPENDENCIES.md
- Troubleshooting: doc/TROUBLESHOOTING.md
- FAQ: doc/FAQ.md

View file

@ -0,0 +1,104 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association
=================
Lead Line Product
=================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:073a15253b5be2d34a56f392ffd7344952fb867bf9d311c83fe734ee87cbd465
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-LGPL--3-blue.png
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github
:target: https://github.com/OCA/crm/tree/16.0/crm_lead_product
:alt: OCA/crm
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/crm-16-0/crm-16-0-crm_lead_product
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/crm&target_branch=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
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 planned revenue and expected revenue. On one hand, the
planned revenue is computed as the selling price times the quantity. On the other hand, the expected 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 planned or expected revenue for that product.
**Table of contents**
.. contents::
:local:
Configuration
=============
To configure this module to be available for the Leads the user needs to activate the Leads option in CRM settings
Usage
=====
* Go to menu **CRM > Lead** and create or edit a Lead adding all the products associated to it.
* Go to menu **CRM > My Pipeline** and create or edit an Opportunity adding all the products associated to it.
* Go to menu **CRM > Reporting > Pipeline by Product** to run the report that relates product to planned and expected revenue per stage
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/crm/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/crm/issues/new?body=module:%20crm_lead_product%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
~~~~~~~
* ForgeFlow
Contributors
~~~~~~~~~~~~
* Adria Gil Sorribes <adria.gil@forgeflow.com>
* Adria Palleja Bove <adria.palleja@coopdevs.org>
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
This module is part of the `OCA/crm <https://github.com/OCA/crm/tree/16.0/crm_lead_product>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View file

@ -0,0 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import models
from . import report

View file

@ -0,0 +1,21 @@
# Copyright (C) 2017-19 ForgeFlow S.L. (https://www.forgeflow.com).
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
{
"name": "Lead Line Product",
"version": "16.0.1.0.0",
"category": "Customer Relationship Management",
"license": "LGPL-3",
"summary": "Adds a lead line in the lead/opportunity model " "in odoo",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/crm",
"depends": ["crm", "product"],
"data": [
"security/ir.model.access.csv",
"views/crm_lead_views.xml",
"views/crm_lead_line_views.xml",
"report/crm_product_report_views.xml",
],
"installable": True,
"auto_install": False,
}

View file

@ -0,0 +1,356 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_lead_product
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__active
msgid "Active"
msgstr "Aktivan"
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_product_report
msgid "CRM Pipeline by Product Analysis"
msgstr "CRM analiza prodajnog procesa po proizvodima"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__campaign_id
msgid "Campaing"
msgstr "Kampanja"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__category_id
msgid "Category"
msgstr "Kategorija"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_closed
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Closed Date"
msgstr "Datum zatvaranja"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__company_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Company"
msgstr "Preduzeće"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__partner_name
msgid "Contact Name"
msgstr "Ime kontakta"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_conversion
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Conversion Date"
msgstr "Datum prelaska"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Conversion Date from Lead to Opportunity"
msgstr "Datum prelaska iz potencijala u priliku"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__country_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Country"
msgstr "Država"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__create_date
msgid "Create Date"
msgstr "Kreiraj datum"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__create_uid
msgid "Created by"
msgstr "Kreirao"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__create_date
msgid "Created on"
msgstr "Kreirano"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Creation Date"
msgstr "Datum kreiranja"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Date Closed"
msgstr "Datum zatvaranja"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_deadline
msgid "Deadline Date"
msgstr "Datum krajnjeg roka"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__name
msgid "Description"
msgstr "Opis"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__display_name
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__display_name
msgid "Display Name"
msgstr "Prikazani naziv"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Expected Closing"
msgstr "Očekivano zatvaranje"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__expected_revenue
msgid "Expected Revenue"
msgstr "Očekivani prihod"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__expected_revenue
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Expected revenue"
msgstr "Očekivani prihod"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Extended Filters"
msgstr "Prošireni filteri"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Group By"
msgstr "Grupiši po"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__id
msgid "ID"
msgstr "ID"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line____last_update
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report____last_update
msgid "Last Modified on"
msgstr "Zadnje mijenjano"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__write_uid
msgid "Last Updated by"
msgstr "Zadnji ažurirao"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__write_date
msgid "Last Updated on"
msgstr "Zadnje ažurirano"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__lead_id
#: model:ir.model.fields.selection,name:crm_lead_product.selection__crm_product_report__type__lead
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lead"
msgstr "Potencijal"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead__lead_line_ids
msgid "Lead Lines"
msgstr "Linije potencijalnih klijenata"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__name
msgid "Lead Name"
msgstr "Naziv potencijalnog klijenta"
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_lead
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__lead_id
msgid "Lead/Opportunity"
msgstr "Potencijal/Prilika"
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_lead_line
msgid "Line in CRM Lead"
msgstr "Linija u CRM potencijalnom klijentu"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lost"
msgstr "Izgubljeno"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__lost_reason
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lost Reason"
msgstr "Razlog gubljenja"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "My Opportunities"
msgstr "Moje prilike"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Open"
msgstr "Otvori"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_open
msgid "Open Date"
msgstr "Datum otvaranja"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Opportunities Analysis"
msgstr "Analiza prilika"
#. module: crm_lead_product
#: model:ir.model.fields.selection,name:crm_lead_product.selection__crm_product_report__type__opportunity
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Opportunity"
msgstr "Prilika"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__partner_id
msgid "Partner/Customer"
msgstr "Partner/Kupac"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_graph
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_pivot
msgid "Pipeline Analysis"
msgstr "Analiza mogućnosti"
#. module: crm_lead_product
#: model_terms:ir.actions.act_window,help:crm_lead_product.crm_product_report_action
msgid ""
"Pipeline Analysis gives you an instant access to\n"
"your opportunities with information such as the expected revenue, planned cost,\n"
"missed deadlines or the number of interactions per opportunity. This report is\n"
"mainly used by the sales manager in order to do the periodic review with the\n"
"teams of the sales pipeline."
msgstr ""
#. module: crm_lead_product
#: model:ir.actions.act_window,name:crm_lead_product.crm_product_report_action
msgid "Pipeline by Product Analysis"
msgstr "Analiza prodajnog procesa po proizvodima"
#. module: crm_lead_product
#: model:ir.ui.menu,name:crm_lead_product.crm_product_report_menu
msgid "Pipeline by product"
msgstr "Prodajni proces po proizvodu"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__planned_revenue
msgid "Planned Revenue"
msgstr "Planirani prihod"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__planned_revenue
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Planned revenue"
msgstr "Planirani prihod"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__price_unit
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Price Unit"
msgstr "Jedinica cijene"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__probability
msgid "Probability"
msgstr "Vjerovatnoća"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_id
msgid "Product"
msgstr "Artikal"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__category_id
msgid "Product Category"
msgstr "Kategorija proizvoda"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_qty
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_qty
msgid "Product Quantity"
msgstr "Količina proizvoda"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_tmpl_id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_tmpl_id
msgid "Product Template"
msgstr "Predložak artikla"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_lead_view_form
msgid "Products"
msgstr "Artikli"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Quantity"
msgstr "Količina"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__team_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Sales Team"
msgstr "Prodajni tim"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__user_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Salesperson"
msgstr "Referent prodaje"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Show only lead"
msgstr "Prikaži samo potencijal"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Show only opportunity"
msgstr "Prikaži samo prilike"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__stage_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Stage"
msgstr "Faza"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__type
msgid "Type"
msgstr "Tip"
#. module: crm_lead_product
#: model:ir.model.fields,help:crm_lead_product.field_crm_product_report__type
msgid "Type is used to separate Leads and Opportunities"
msgstr "Tip se koristi za razlikovanje potencijala od prilika."
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__uom_id
msgid "Unit of Measure"
msgstr "Jedinica mjere"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Won"
msgstr "Ostvareno"

View file

@ -0,0 +1,366 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_lead_product
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2019-12-27 14:13+0000\n"
"Last-Translator: Carles Antoli <carlesantoli@hotmail.com>\n"
"Language-Team: none\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10\n"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__active
msgid "Active"
msgstr "Actiu"
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_product_report
msgid "CRM Pipeline by Product Analysis"
msgstr "CRM Flux per Analísis de producte"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__campaign_id
msgid "Campaing"
msgstr "Campanya"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__category_id
msgid "Category"
msgstr "Categoria"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_closed
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Closed Date"
msgstr "Data de tancament"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__company_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Company"
msgstr "Companyia"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__partner_name
msgid "Contact Name"
msgstr "Nom del contacte"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_conversion
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Conversion Date"
msgstr "Data de conversió"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Conversion Date from Lead to Opportunity"
msgstr "Data de conversió d'Iniciativa a Oportunitat"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__country_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Country"
msgstr "País"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__create_date
msgid "Create Date"
msgstr "Data creació"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__create_uid
msgid "Created by"
msgstr "Creat per"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__create_date
msgid "Created on"
msgstr "Creat el"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Creation Date"
msgstr "Data de creació"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Date Closed"
msgstr "Data de tancament"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_deadline
msgid "Deadline Date"
msgstr "Data límit"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__name
msgid "Description"
msgstr "Descripció"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__display_name
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__display_name
msgid "Display Name"
msgstr "Nom a visualitzar"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Expected Closing"
msgstr "Tancament esperat"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__expected_revenue
msgid "Expected Revenue"
msgstr "Ingressos esperats"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__expected_revenue
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Expected revenue"
msgstr "Ingressos esperats"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Extended Filters"
msgstr "Filtres estesos"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Group By"
msgstr "Agrupar per"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__id
msgid "ID"
msgstr "ID"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line____last_update
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report____last_update
msgid "Last Modified on"
msgstr "Darrera modificació el"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__write_uid
msgid "Last Updated by"
msgstr "Darrera modificació per"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__write_date
msgid "Last Updated on"
msgstr "Darrera modificació en"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__lead_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lead"
msgstr "Iniciativa"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead__lead_line_ids
msgid "Lead Lines"
msgstr "Línies Iniciativa"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__name
msgid "Lead Name"
msgstr "Nom iniciativa"
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_lead
msgid "Lead/Opportunity"
msgstr "Iniciativa/Oportunitat"
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_lead_line
msgid "Line in CRM Lead"
msgstr "Línia a Iniciativa CRM"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lost"
msgstr "Perdut"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__lost_reason
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lost Reason"
msgstr "Raó perdua"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "My Opportunities"
msgstr "Les meves oportunitats"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Open"
msgstr "Obert"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_open
msgid "Open Date"
msgstr "Data d'apertura"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Opportunities Analysis"
msgstr "Anàlisi d'oportunitats"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Opportunity"
msgstr "Oportunitat"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__partner_id
msgid "Partner/Customer"
msgstr "Empresa/Client"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_graph
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_pivot
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_tree
msgid "Pipeline Analysis"
msgstr "Anàlisi Flux"
#. module: crm_lead_product
#: model_terms:ir.actions.act_window,help:crm_lead_product.crm_product_report_action
msgid ""
"Pipeline Analysis gives you an instant access to\n"
"your opportunities with information such as the expected revenue, planned "
"cost,\n"
"missed deadlines or the number of interactions per opportunity. This report "
"is\n"
"mainly used by the sales manager in order to do the periodic review with "
"the\n"
"teams of the sales pipeline."
msgstr ""
"L'anàlisi del Flux proporciona en temps real accés a les teves oportunitats "
"amb informació com els ingressos esperats, cost previst, el nombre "
"d'interaccions per oportunitat o dates límit incomplertes. Aquest informe és "
"utilitzat principalment pel gerent de vendes per tal de realitzar la revisió "
"periòdica amb els equips de canalització de vendes."
#. module: crm_lead_product
#: model:ir.actions.act_window,name:crm_lead_product.crm_product_report_action
msgid "Pipeline by Product Analysis"
msgstr "Flux per Anàlisi de producte"
#. module: crm_lead_product
#: model:ir.ui.menu,name:crm_lead_product.crm_product_report_menu
msgid "Pipeline by product"
msgstr "Flux per producte"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__planned_revenue
msgid "Planned Revenue"
msgstr "Ingressos previstos"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__planned_revenue
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Planned revenue"
msgstr "Ingressos previstos"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__price_unit
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Price Unit"
msgstr "Preu unitari"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__probability
msgid "Probability"
msgstr "Probabilitat"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_id
msgid "Product"
msgstr "Producte"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__category_id
msgid "Product Category"
msgstr "Categoria de producte"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_qty
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_qty
msgid "Product Quantity"
msgstr "Quantitat de producte"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_tmpl_id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_tmpl_id
msgid "Product Template"
msgstr "Plantilla de producte"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_lead_view_form
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Products"
msgstr "Productes"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Quantity"
msgstr "Quantitat"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__team_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Sales Team"
msgstr "Equips de venda"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__user_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Salesperson"
msgstr "Comercial"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Show only lead"
msgstr "Mostra només iniciativa"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Show only opportunity"
msgstr "Mostra només oportunitat"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__stage_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Stage"
msgstr "Etapa"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__type
msgid "Type"
msgstr "Tipus"
#. module: crm_lead_product
#: model:ir.model.fields,help:crm_lead_product.field_crm_product_report__type
msgid "Type is used to separate Leads and Opportunities"
msgstr "El tipus s'utilitza per separar les Iniciatives i les Oportunitats"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__uom_id
msgid "Unit of Measure"
msgstr "Unitat de mesura"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Won"
msgstr "Guanyat"

View file

@ -0,0 +1,359 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_lead_product
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ca_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__active
msgid "Active"
msgstr ""
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_product_report
msgid "CRM Pipeline by Product Analysis"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__campaign_id
msgid "Campaing"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__category_id
msgid "Category"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_closed
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Closed Date"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__company_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Company"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__partner_name
msgid "Contact Name"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_conversion
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Conversion Date"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Conversion Date from Lead to Opportunity"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__country_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Country"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__create_date
msgid "Create Date"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__create_uid
msgid "Created by"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__create_date
msgid "Created on"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Creation Date"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Date Closed"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_deadline
msgid "Deadline Date"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__name
msgid "Description"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__display_name
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__display_name
msgid "Display Name"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Expected Closing"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__expected_revenue
msgid "Expected Revenue"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__expected_revenue
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Expected revenue"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Extended Filters"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Group By"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__id
msgid "ID"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line____last_update
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report____last_update
msgid "Last Modified on"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__write_uid
msgid "Last Updated by"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__write_date
msgid "Last Updated on"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__lead_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lead"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead__lead_line_ids
msgid "Lead Lines"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__name
msgid "Lead Name"
msgstr ""
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_lead
msgid "Lead/Opportunity"
msgstr ""
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_lead_line
msgid "Line in CRM Lead"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lost"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__lost_reason
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lost Reason"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "My Opportunities"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Open"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_open
msgid "Open Date"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Opportunities Analysis"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Opportunity"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__partner_id
msgid "Partner/Customer"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_graph
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_pivot
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_tree
msgid "Pipeline Analysis"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.actions.act_window,help:crm_lead_product.crm_product_report_action
msgid ""
"Pipeline Analysis gives you an instant access to\n"
"your opportunities with information such as the expected revenue, planned "
"cost,\n"
"missed deadlines or the number of interactions per opportunity. This report "
"is\n"
"mainly used by the sales manager in order to do the periodic review with "
"the\n"
"teams of the sales pipeline."
msgstr ""
#. module: crm_lead_product
#: model:ir.actions.act_window,name:crm_lead_product.crm_product_report_action
msgid "Pipeline by Product Analysis"
msgstr ""
#. module: crm_lead_product
#: model:ir.ui.menu,name:crm_lead_product.crm_product_report_menu
msgid "Pipeline by product"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__planned_revenue
msgid "Planned Revenue"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__planned_revenue
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Planned revenue"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__price_unit
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Price Unit"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__probability
msgid "Probability"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_id
msgid "Product"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__category_id
msgid "Product Category"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_qty
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_qty
msgid "Product Quantity"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_tmpl_id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_tmpl_id
msgid "Product Template"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_lead_view_form
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Products"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Quantity"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__team_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Sales Team"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__user_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Salesperson"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Show only lead"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Show only opportunity"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__stage_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Stage"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__type
msgid "Type"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,help:crm_lead_product.field_crm_product_report__type
msgid "Type is used to separate Leads and Opportunities"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__uom_id
msgid "Unit of Measure"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Won"
msgstr ""

View file

@ -0,0 +1,356 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_lead_product
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__active
msgid "Active"
msgstr ""
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_product_report
msgid "CRM Pipeline by Product Analysis"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__campaign_id
msgid "Campaing"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__category_id
msgid "Category"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_closed
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Closed Date"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__company_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Company"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__partner_name
msgid "Contact Name"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_conversion
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Conversion Date"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Conversion Date from Lead to Opportunity"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__country_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Country"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__create_date
msgid "Create Date"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__create_uid
msgid "Created by"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__create_date
msgid "Created on"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Creation Date"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Date Closed"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_deadline
msgid "Deadline Date"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__name
msgid "Description"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__display_name
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__display_name
msgid "Display Name"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Expected Closing"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__expected_revenue
msgid "Expected Revenue"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__expected_revenue
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Expected revenue"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Extended Filters"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Group By"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__id
msgid "ID"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line____last_update
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report____last_update
msgid "Last Modified on"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__write_uid
msgid "Last Updated by"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__write_date
msgid "Last Updated on"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__lead_id
#: model:ir.model.fields.selection,name:crm_lead_product.selection__crm_product_report__type__lead
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lead"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead__lead_line_ids
msgid "Lead Lines"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__name
msgid "Lead Name"
msgstr ""
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_lead
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__lead_id
msgid "Lead/Opportunity"
msgstr ""
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_lead_line
msgid "Line in CRM Lead"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lost"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__lost_reason
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lost Reason"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "My Opportunities"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Open"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_open
msgid "Open Date"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Opportunities Analysis"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields.selection,name:crm_lead_product.selection__crm_product_report__type__opportunity
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Opportunity"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__partner_id
msgid "Partner/Customer"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_graph
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_pivot
msgid "Pipeline Analysis"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.actions.act_window,help:crm_lead_product.crm_product_report_action
msgid ""
"Pipeline Analysis gives you an instant access to\n"
"your opportunities with information such as the expected revenue, planned cost,\n"
"missed deadlines or the number of interactions per opportunity. This report is\n"
"mainly used by the sales manager in order to do the periodic review with the\n"
"teams of the sales pipeline."
msgstr ""
#. module: crm_lead_product
#: model:ir.actions.act_window,name:crm_lead_product.crm_product_report_action
msgid "Pipeline by Product Analysis"
msgstr ""
#. module: crm_lead_product
#: model:ir.ui.menu,name:crm_lead_product.crm_product_report_menu
msgid "Pipeline by product"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__planned_revenue
msgid "Planned Revenue"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__planned_revenue
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Planned revenue"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__price_unit
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Price Unit"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__probability
msgid "Probability"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_id
msgid "Product"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__category_id
msgid "Product Category"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_qty
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_qty
msgid "Product Quantity"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_tmpl_id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_tmpl_id
msgid "Product Template"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_lead_view_form
msgid "Products"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Quantity"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__team_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Sales Team"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__user_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Salesperson"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Show only lead"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Show only opportunity"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__stage_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Stage"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__type
msgid "Type"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,help:crm_lead_product.field_crm_product_report__type
msgid "Type is used to separate Leads and Opportunities"
msgstr ""
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__uom_id
msgid "Unit of Measure"
msgstr ""
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Won"
msgstr ""

View file

@ -0,0 +1,366 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_lead_product
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2019-02-04 19:50+0000\n"
"Last-Translator: Marta Vázquez Rodríguez <vazrodmar@gmail.com>\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.4\n"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__active
msgid "Active"
msgstr "Activo"
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_product_report
msgid "CRM Pipeline by Product Analysis"
msgstr "CRM Pipeline por Analísis de producto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__campaign_id
msgid "Campaing"
msgstr "Campaña"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__category_id
msgid "Category"
msgstr "Categoría"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_closed
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Closed Date"
msgstr "Fecha de cierre"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__company_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Company"
msgstr "Compañía"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__partner_name
msgid "Contact Name"
msgstr "Nombre Contacto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_conversion
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Conversion Date"
msgstr "Fecha de Conversión"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Conversion Date from Lead to Opportunity"
msgstr "Fecha de Conversión de Iniciativa a Oportunidad"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__country_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Country"
msgstr "País"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__create_date
msgid "Create Date"
msgstr "Fecha Creación"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__create_date
msgid "Created on"
msgstr "Creado el"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Creation Date"
msgstr "Fecha de creación"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Date Closed"
msgstr "Fecha de cierre"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_deadline
msgid "Deadline Date"
msgstr "Fecha límite"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__name
msgid "Description"
msgstr "Descripción"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__display_name
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__display_name
msgid "Display Name"
msgstr "Nombre a mostrar"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Expected Closing"
msgstr "Cierre esperado"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__expected_revenue
msgid "Expected Revenue"
msgstr "Ingresos esperados"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__expected_revenue
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Expected revenue"
msgstr "Ingresos esperados"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Extended Filters"
msgstr "Filtros extendidos"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Group By"
msgstr "Agrupar por"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__id
msgid "ID"
msgstr "ID"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line____last_update
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report____last_update
msgid "Last Modified on"
msgstr "Última modificación el"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__write_uid
msgid "Last Updated by"
msgstr "Última modificación por"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__write_date
msgid "Last Updated on"
msgstr "Última modificación en"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__lead_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lead"
msgstr "Iniciativa"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead__lead_line_ids
msgid "Lead Lines"
msgstr "Líneas Iniciativa"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__name
msgid "Lead Name"
msgstr "Nombre iniciativa"
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_lead
msgid "Lead/Opportunity"
msgstr "Iniciativa/Oportunidad"
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_lead_line
msgid "Line in CRM Lead"
msgstr "Línea en Iniciativa CRM"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lost"
msgstr "Perdido"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__lost_reason
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lost Reason"
msgstr "Razón Perdida"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "My Opportunities"
msgstr "Mis Oportunidades"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Open"
msgstr "Abierto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_open
msgid "Open Date"
msgstr "Fecha de apertura"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Opportunities Analysis"
msgstr "Análisis de oportunidades"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Opportunity"
msgstr "Oportunidad"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__partner_id
msgid "Partner/Customer"
msgstr "Empresa/Cliente"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_graph
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_pivot
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_tree
msgid "Pipeline Analysis"
msgstr "Análisis Pipeline"
#. module: crm_lead_product
#: model_terms:ir.actions.act_window,help:crm_lead_product.crm_product_report_action
msgid ""
"Pipeline Analysis gives you an instant access to\n"
"your opportunities with information such as the expected revenue, planned "
"cost,\n"
"missed deadlines or the number of interactions per opportunity. This report "
"is\n"
"mainly used by the sales manager in order to do the periodic review with "
"the\n"
"teams of the sales pipeline."
msgstr ""
"El análisis Pipeline proporciona en tiempo real acceso a tus oportunidades "
"con información como los ingresos esperados, coste previsto, el número de "
"interacciones por oportunidad o fechas límite incumplidas. Este informe es "
"utilizado principalmente por el Gerente de ventas con el fin de realizar la "
"revisión periódica con los equipos de canalización de ventas."
#. module: crm_lead_product
#: model:ir.actions.act_window,name:crm_lead_product.crm_product_report_action
msgid "Pipeline by Product Analysis"
msgstr "Pipeline por Análisis de producto"
#. module: crm_lead_product
#: model:ir.ui.menu,name:crm_lead_product.crm_product_report_menu
msgid "Pipeline by product"
msgstr "Pipeline por producto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__planned_revenue
msgid "Planned Revenue"
msgstr "Ingresos previstos"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__planned_revenue
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Planned revenue"
msgstr "Ingresos previstos"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__price_unit
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Price Unit"
msgstr "Precio unitario"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__probability
msgid "Probability"
msgstr "Probabilidad"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_id
msgid "Product"
msgstr "Producto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__category_id
msgid "Product Category"
msgstr "Categoría de producto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_qty
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_qty
msgid "Product Quantity"
msgstr "Cantidad de producto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_tmpl_id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_tmpl_id
msgid "Product Template"
msgstr "Plantilla de producto"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_lead_view_form
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Products"
msgstr "Productos"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Quantity"
msgstr "Cantidad"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__team_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Sales Team"
msgstr "Equipos de Venta"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__user_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Salesperson"
msgstr "Comercial"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Show only lead"
msgstr "Mostrar sólo iniciativa"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Show only opportunity"
msgstr "Mostrar sólo Oportunidad"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__stage_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Stage"
msgstr "Etapa"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__type
msgid "Type"
msgstr "Tipo"
#. module: crm_lead_product
#: model:ir.model.fields,help:crm_lead_product.field_crm_product_report__type
msgid "Type is used to separate Leads and Opportunities"
msgstr "El tipo se utiliza para separar las Iniciativas y las Oportunidades"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__uom_id
msgid "Unit of Measure"
msgstr "Unidad de Medida"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Won"
msgstr "Ganado"

View file

@ -0,0 +1,369 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_lead_product
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-06-21 11:09+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__active
msgid "Active"
msgstr "Attivo"
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_product_report
msgid "CRM Pipeline by Product Analysis"
msgstr "Flusso per analisi prodotto CRM"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__campaign_id
msgid "Campaing"
msgstr "Campagna"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__category_id
msgid "Category"
msgstr "Categoria"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_closed
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Closed Date"
msgstr "Data chiusura"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__company_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Company"
msgstr "Azienda"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__partner_name
msgid "Contact Name"
msgstr "Nome contatto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_conversion
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Conversion Date"
msgstr "Data conversione"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Conversion Date from Lead to Opportunity"
msgstr "Data conversione da contatto a opportunità"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__country_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Country"
msgstr "Nazione"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__create_date
msgid "Create Date"
msgstr "Data creazione"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__create_uid
msgid "Created by"
msgstr "Creato da"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__create_date
msgid "Created on"
msgstr "Creato il"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Creation Date"
msgstr "Data creazione"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Date Closed"
msgstr "Data chiusura"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_deadline
msgid "Deadline Date"
msgstr "Data scadenza"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__name
msgid "Description"
msgstr "Descrizione"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__display_name
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__display_name
msgid "Display Name"
msgstr "Nome visualizzato"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Expected Closing"
msgstr "Chiusura prevista"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__expected_revenue
msgid "Expected Revenue"
msgstr "Ricavi previsti"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__expected_revenue
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Expected revenue"
msgstr "Ricavi previsti"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Extended Filters"
msgstr "Filtri estesi"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Group By"
msgstr "Raggruppa per"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__id
msgid "ID"
msgstr "ID"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line____last_update
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report____last_update
msgid "Last Modified on"
msgstr "Ultima modifica il"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__write_uid
msgid "Last Updated by"
msgstr "Ultimo aggiornamento di"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__write_date
msgid "Last Updated on"
msgstr "Ultimo aggiornamento il"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__lead_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lead"
msgstr "Contatto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead__lead_line_ids
msgid "Lead Lines"
msgstr "Righe contatto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__name
msgid "Lead Name"
msgstr "Nome contatto"
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_lead
msgid "Lead/Opportunity"
msgstr "Contatto/Opportunità"
#. module: crm_lead_product
#: model:ir.model,name:crm_lead_product.model_crm_lead_line
msgid "Line in CRM Lead"
msgstr "Riga contatto CRM"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lost"
msgstr "Persa"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__lost_reason
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Lost Reason"
msgstr "Motivo dell'insuccesso"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "My Opportunities"
msgstr "Le mie opportunità"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Open"
msgstr "Apri"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__date_open
msgid "Open Date"
msgstr "Data apertura"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Opportunities Analysis"
msgstr "Analisi opportunità"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Opportunity"
msgstr "Opportunità"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__partner_id
msgid "Partner/Customer"
msgstr "Partner/Cliente"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_graph
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_pivot
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_tree
msgid "Pipeline Analysis"
msgstr "Analisi flusso"
#. module: crm_lead_product
#: model_terms:ir.actions.act_window,help:crm_lead_product.crm_product_report_action
msgid ""
"Pipeline Analysis gives you an instant access to\n"
"your opportunities with information such as the expected revenue, planned "
"cost,\n"
"missed deadlines or the number of interactions per opportunity. This report "
"is\n"
"mainly used by the sales manager in order to do the periodic review with "
"the\n"
"teams of the sales pipeline."
msgstr ""
"L'analisi del flusso consente un accesso istantaneo\n"
"alle proprie opportunità con informazioni come il ricavo previsto, costi "
"pianificati,\n"
"scadenze superate o il numero delle interazioni per opportunità. Questo "
"resoconto\n"
"è usato principalmente dal responsabile vendite per effettuare la revisione "
"periodica\n"
"con il team del flusso delle vendite."
#. module: crm_lead_product
#: model:ir.actions.act_window,name:crm_lead_product.crm_product_report_action
msgid "Pipeline by Product Analysis"
msgstr "Flusso per analisi prodotto"
#. module: crm_lead_product
#: model:ir.ui.menu,name:crm_lead_product.crm_product_report_menu
msgid "Pipeline by product"
msgstr "Flusso per prodotto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__planned_revenue
msgid "Planned Revenue"
msgstr "Ricavi pianificati"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__planned_revenue
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Planned revenue"
msgstr "Ricavi pianificati"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__price_unit
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Price Unit"
msgstr "Prezzo unitario"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__probability
msgid "Probability"
msgstr "Probabilità"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_id
msgid "Product"
msgstr "Prodotto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__category_id
msgid "Product Category"
msgstr "Categoria prodotto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_qty
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_qty
msgid "Product Quantity"
msgstr "Quantità prodotto"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__product_tmpl_id
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__product_tmpl_id
msgid "Product Template"
msgstr "Modello prodotto"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_lead_view_form
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Products"
msgstr "Prodotti"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.view_tree_lead_line
msgid "Quantity"
msgstr "Quantità"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__team_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Sales Team"
msgstr "Team di vendita"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__user_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Salesperson"
msgstr "Addetto vendite"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Show only lead"
msgstr "Mostra solo contatti"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Show only opportunity"
msgstr "Mostra solo opportunità"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__stage_id
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Stage"
msgstr "Fase"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_product_report__type
msgid "Type"
msgstr "Tipo"
#. module: crm_lead_product
#: model:ir.model.fields,help:crm_lead_product.field_crm_product_report__type
msgid "Type is used to separate Leads and Opportunities"
msgstr "Il tipo è utilizzato per separare contatti da opportunità"
#. module: crm_lead_product
#: model:ir.model.fields,field_description:crm_lead_product.field_crm_lead_line__uom_id
msgid "Unit of Measure"
msgstr "Unità di misura"
#. module: crm_lead_product
#: model_terms:ir.ui.view,arch_db:crm_lead_product.crm_opportunity_report_view_search
msgid "Won"
msgstr "Vinta"

View file

@ -0,0 +1,4 @@
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
from . import crm_lead_line
from . import crm_lead

View file

@ -0,0 +1,32 @@
# Copyright (C) 2017-19 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class CrmLead(models.Model):
_inherit = "crm.lead"
lead_line_ids = fields.One2many(
comodel_name="crm.lead.line", inverse_name="lead_id", string="Lead Lines"
)
@api.onchange("lead_line_ids")
def _onchange_lead_line_ids(self):
planned_revenue = 0
for lead_line in self.lead_line_ids:
if lead_line.planned_revenue != 0:
planned_revenue += lead_line.planned_revenue
self.expected_revenue = planned_revenue
def _convert_opportunity_data(self, customer, team_id=False):
res = super(CrmLead, self)._convert_opportunity_data(customer, team_id)
# Update planned_revenue
planned_revenue = 0
for lead_line in self.lead_line_ids:
planned_revenue += lead_line.planned_revenue
res["expected_revenue"] = planned_revenue
return res

View file

@ -0,0 +1,135 @@
# Copyright (C) 2017-19 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class CrmLeadLine(models.Model):
_name = "crm.lead.line"
_description = "Line in CRM Lead"
@api.depends("price_unit", "product_qty")
def _compute_planned_revenue(self):
for rec in self:
rec.planned_revenue = rec.product_qty * rec.price_unit
@api.depends("lead_id.probability", "planned_revenue")
def _compute_expected_revenue(self):
for rec in self:
if rec.lead_id and rec.lead_id.type != "lead":
rec.expected_revenue = (
rec.planned_revenue * rec.lead_id.probability * (1 / 100)
)
lead_id = fields.Many2one("crm.lead", string="Lead")
name = fields.Char("Description", required=True, translate=True)
product_id = fields.Many2one("product.product", string="Product", index=True)
category_id = fields.Many2one(
"product.category", string="Product Category", index=True
)
product_tmpl_id = fields.Many2one(
"product.template", string="Product Template", index=True
)
product_qty = fields.Integer(string="Product Quantity", default=1, required=True)
uom_id = fields.Many2one("uom.uom", string="Unit of Measure", readonly=True)
price_unit = fields.Float()
planned_revenue = fields.Float(
compute="_compute_planned_revenue",
string="Planned revenue",
compute_sudo=True,
store=True,
)
expected_revenue = fields.Float(
compute="_compute_expected_revenue",
string="Expected revenue",
compute_sudo=True,
store=True,
)
@api.onchange("product_id")
def _onchange_product_id(self):
domain = {}
if not self.lead_id:
return
if not self.product_id:
self.price_unit = 0.0
domain["uom_id"] = []
if self.name and self.name != self.category_id.name:
self.name = ""
else:
product = self.product_id
self.category_id = product.categ_id.id
self.product_tmpl_id = product.product_tmpl_id.id
self.price_unit = product.list_price
if product.name:
self.name = product.name
if (
not self.uom_id
or product.uom_id.category_id.id != self.uom_id.category_id.id
):
self.uom_id = product.uom_id.id
domain["uom_id"] = [("category_id", "=", product.uom_id.category_id.id)]
if self.uom_id and self.uom_id.id != product.uom_id.id:
self.price_unit = product.uom_id._compute_price(
self.price_unit, self.uom_id
)
return {"domain": domain}
@api.onchange("category_id")
def _onchange_category_id(self):
domain = {}
if not self.lead_id:
return
if self.category_id:
categ_id = self.category_id
if categ_id.name and not self.name:
self.name = categ_id.name
# Check if there are already defined product and product template
# and remove them if categories do not match
if self.product_id and self.product_id.categ_id != categ_id:
self.product_id = None
self.name = categ_id.name
if self.product_tmpl_id and self.product_tmpl_id.categ_id != categ_id:
self.product_tmpl_id = None
return {"domain": domain}
@api.onchange("product_tmpl_id")
def _onchange_product_tmpl_id(self):
domain = {}
if not self.lead_id:
return
if self.product_tmpl_id:
product_tmpl = self.product_tmpl_id
if product_tmpl.name and not self.name:
self.name = product_tmpl.name
self.category_id = product_tmpl.categ_id
if self.product_id:
# Check if there are already defined product and remove
# if it does not match
if self.product_id.product_tmpl_id != product_tmpl:
self.product_id = None
self.name = product_tmpl.name
return {"domain": domain}
@api.onchange("uom_id")
def _onchange_uom_id(self):
result = {}
if not self.uom_id:
self.price_unit = 0.0
if self.product_id and self.uom_id:
price_unit = self.product_id.list_price
self.price_unit = self.product_id.uom_id._compute_price(
price_unit, self.uom_id
)
return result

View file

@ -0,0 +1,2 @@
To configure this module to be available for the Leads the user needs to activate the Leads option in CRM settings

View file

@ -0,0 +1,3 @@
* Adria Gil Sorribes <adria.gil@forgeflow.com>
* Adria Palleja Bove <adria.palleja@coopdevs.org>

View file

@ -0,0 +1,9 @@
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 planned revenue and expected revenue. On one hand, the
planned revenue is computed as the selling price times the quantity. On the other hand, the expected 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 planned or expected revenue for that product.

View file

@ -0,0 +1,4 @@
* Go to menu **CRM > Lead** and create or edit a Lead adding all the products associated to it.
* Go to menu **CRM > My Pipeline** and create or edit an Opportunity adding all the products associated to it.
* Go to menu **CRM > Reporting > Pipeline by Product** to run the report that relates product to planned and expected revenue per stage

View file

@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import crm_product_report

View file

@ -0,0 +1,105 @@
# Copyright (C) 2017-19 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from psycopg2.extensions import AsIs
from odoo import fields, models, tools
class ActivityReport(models.Model):
"""CRM Lead Analysis"""
_name = "crm.product.report"
_auto = False
_description = "CRM Pipeline by Product Analysis"
_rec_name = "id"
active = fields.Boolean(readonly=True)
lead_id = fields.Many2one("crm.lead", "Lead/Opportunity", readonly=True)
campaign_id = fields.Many2one("utm.campaign", "Campaing", readonly=True)
country_id = fields.Many2one("res.country", "Country", readonly=True)
company_id = fields.Many2one("res.company", "Company", readonly=True)
create_date = fields.Datetime(readonly=True)
date_closed = fields.Datetime("Closed Date", readonly=True)
date_conversion = fields.Datetime("Conversion Date", readonly=True)
date_deadline = fields.Datetime("Deadline Date", readonly=True)
date_open = fields.Datetime("Open Date", readonly=True)
lost_reason = fields.Many2one("crm.lost.reason", readonly=True)
name = fields.Char("Lead Name", readonly=True)
partner_id = fields.Many2one("res.partner", "Partner/Customer", readonly=True)
partner_name = fields.Char("Contact Name", readonly=True)
probability = fields.Float(group_operator="avg", readonly=True)
stage_id = fields.Many2one("crm.stage", "Stage", readonly=True)
team_id = fields.Many2one("crm.team", "Sales Team", readonly=True)
type = fields.Selection(
selection=[("lead", "Lead"), ("opportunity", "Opportunity")],
help="Type is used to separate Leads and Opportunities",
)
user_id = fields.Many2one("res.users", "Salesperson", readonly=True)
category_id = fields.Many2one("product.category", "Category", readonly=True)
expected_revenue = fields.Float(readonly=True)
planned_revenue = fields.Float(readonly=True)
product_id = fields.Many2one("product.product", "Product", readonly=True)
product_qty = fields.Integer("Product Quantity", readonly=True)
product_tmpl_id = fields.Many2one(
"product.template", "Product Template", readonly=True
)
def _select(self):
return """
SELECT
ll.id,
l.id as lead_id,
l.active,
l.campaign_id,
l.country_id,
l.company_id,
l.create_date,
l.date_closed,
l.date_conversion,
l.date_deadline,
l.date_open,
l.lost_reason_id as lost_reason,
l.name,
l.partner_id,
l.partner_name,
l.probability,
l.type,
l.stage_id,
l.team_id,
l.user_id,
ll.category_id,
ll.expected_revenue,
ll.planned_revenue,
ll.product_id,
ll.product_qty,
ll.product_tmpl_id
"""
def _from(self):
return """
FROM crm_lead AS l
"""
def _join(self):
return """
JOIN crm_lead_line AS ll ON l.id = ll.lead_id
"""
def init(self):
tools.drop_view_if_exists(self._cr, self._table)
self._cr.execute(
"""
CREATE OR REPLACE VIEW %s AS (
%s
%s
%s
)
""",
(
AsIs(self._table),
AsIs(self._select()),
AsIs(self._from()),
AsIs(self._join()),
),
)

View file

@ -0,0 +1,210 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<!-- Opportunities by user and team pivot View -->
<record id="crm_opportunity_report_view_pivot" model="ir.ui.view">
<field name="name">crm.opportunity.report.pivot</field>
<field name="model">crm.product.report</field>
<field name="priority">60</field>
<field name="arch" type="xml">
<pivot string="Pipeline Analysis">
<field name="stage_id" type="col" />
<field name="product_id" type="row" />
<field name="planned_revenue" type="measure" />
</pivot>
</field>
</record>
<!-- Opportunities by user and team Graph View -->
<record id="crm_opportunity_report_view_graph" model="ir.ui.view">
<field name="name">crm.opportunity.report.graph</field>
<field name="model">crm.product.report</field>
<field name="arch" type="xml">
<graph string="Pipeline Analysis" stacked="True">
<field name="product_id" type="row" />
<field name="stage_id" type="row" />
<field name="expected_revenue" type="measure" />
</graph>
</field>
</record>
<!-- Opportunities by user and team Tree View -->
<record id="crm_opportunity_report_view_tree" model="ir.ui.view">
<field name="name">crm.opportunity.report.list</field>
<field name="model">crm.product.report</field>
<field name="arch" type="xml">
<tree>
<field name="create_date" />
<field name="product_id" />
<field name="product_qty" />
<field name="category_id" />
<field name="product_tmpl_id" />
<field name="name" />
<field name="partner_name" />
<field name="country_id" />
<field name="stage_id" />
<field name="expected_revenue" />
<field name="team_id" />
</tree>
</field>
</record>
<!-- Opportunities by user and team Search View -->
<record id="crm_opportunity_report_view_search" model="ir.ui.view">
<field name="name">crm.lead.search</field>
<field name="model">crm.product.report</field>
<field name="priority">32</field>
<field name="arch" type="xml">
<search string="Opportunities Analysis">
<filter
string="My Opportunities"
name="my"
domain="[('user_id', '=', uid)]"
/>
<separator />
<filter
name="lead"
string="Lead"
domain="[('type','=', 'lead')]"
help="Show only lead"
/>
<filter
name="opportunity"
string="Opportunity"
domain="[('type','=','opportunity')]"
help="Show only opportunity"
/>
<separator />
<filter
string="Open"
name="open"
domain="['&amp;',('probability', '!=', 100), ('active', '=', True)]"
/>
<filter string="Won" name="won" domain="[('probability', '=', 100)]" />
<filter
string="Lost"
name="lost"
domain="[('probability', '=', 0), ('active', '=', False)]"
/>
<field name="team_id" context="{'invisible_team': False}" />
<field name="user_id" string="Salesperson" />
<separator />
<filter
string="Creation Date"
name="filter_create_date"
date="create_date"
/>
<filter
string="Expected Closing"
name="filter_date_deadline"
date="date_deadline"
/>
<filter
string="Date Closed"
name="date_closed_filter"
date="date_closed"
/>
<group expand="0" string="Extended Filters">
<field
name="partner_id"
filter_domain="[('partner_id','child_of',self)]"
/>
<field
name="stage_id"
widget="selection"
domain="['|', ('team_id', '=', False), ('team_id', '=', 'team_id')]"
/>
<field name="campaign_id" widget="selection" />
<field
name="company_id"
options="{'no_create': True}"
groups="base.group_multi_company"
/>
<newline />
<field name="create_date" />
<field name="date_open" />
<field name="date_closed" />
</group>
<group expand="1" string="Group By">
<filter
string="Salesperson"
name="salesperson"
context="{'group_by':'user_id'}"
/>
<filter
string="Sales Team"
name="saleschannel"
context="{'group_by':'team_id'}"
/>
<filter
string="Country"
name="country"
context="{'group_by':'country_id'}"
/>
<filter
string="Company"
name="company"
context="{'group_by':'company_id'}"
groups="base.group_multi_company"
/>
<filter
string="Stage"
name="stage"
context="{'group_by':'stage_id'}"
/>
<separator orientation="vertical" />
<filter
string="Creation Date"
context="{'group_by':'create_date:month'}"
name="month"
/>
<filter
string="Conversion Date"
context="{'group_by':'date_conversion:month'}"
name="conversion_date"
help="Conversion Date from Lead to Opportunity"
/>
<filter
string="Expected Closing"
context="{'group_by':'date_deadline:month'}"
name="date_deadline"
/>
<filter
string="Closed Date"
context="{'group_by':'date_closed'}"
name="date_closed_groupby"
/>
<filter
string="Lost Reason"
name="lostreason"
context="{'group_by':'lost_reason'}"
/>
</group>
</search>
</field>
</record>
<record id="crm_product_report_action" model="ir.actions.act_window">
<field name="name">Pipeline by Product Analysis</field>
<field name="res_model">crm.product.report</field>
<field name="view_mode">pivot,graph,tree,form</field>
<field name="search_view_id" ref="crm_opportunity_report_view_search" />
<field
name="context"
>{'search_default_opportunity': True, 'search_default_current': True}</field>
<field
name="view_ids"
eval="[(5, 0, 0),
(0, 0, {'view_mode': 'pivot', 'view_id': ref('crm_opportunity_report_view_pivot')}),
(0, 0, {'view_mode': 'graph', 'view_id': ref('crm_opportunity_report_view_graph')}),
(0, 0, {'view_mode': 'tree', 'view_id': ref('crm_opportunity_report_view_tree')})]"
/>
<field name="help">Pipeline Analysis gives you an instant access to
your opportunities with information such as the expected revenue, planned cost,
missed deadlines or the number of interactions per opportunity. This report is
mainly used by the sales manager in order to do the periodic review with the
teams of the sales pipeline.</field>
</record>
<menuitem
id="crm_product_report_menu"
name="Pipeline by product"
parent="crm.crm_menu_report"
action="crm_product_report_action"
sequence="2"
/>
</odoo>

View file

@ -0,0 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_crm_lead_line_group_user,crm.lead.line,model_crm_lead_line,base.group_user,1,1,1,1
access_crm_product_report_user,crm.product.report.user,model_crm_product_report,base.group_user,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_crm_lead_line_group_user crm.lead.line model_crm_lead_line base.group_user 1 1 1 1
3 access_crm_product_report_user crm.product.report.user model_crm_product_report base.group_user 1 0 0 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View file

@ -0,0 +1,450 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>README.rst</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic, pre.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document">
<a class="reference external image-reference" href="https://odoo-community.org/get-involved?utm_source=readme">
<img alt="Odoo Community Association" src="https://odoo-community.org/readme-banner-image" />
</a>
<div class="section" id="lead-line-product">
<h1>Lead Line Product</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:073a15253b5be2d34a56f392ffd7344952fb867bf9d311c83fe734ee87cbd465
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/license-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/crm/tree/16.0/crm_lead_product"><img alt="OCA/crm" src="https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/crm-16-0/crm-16-0-crm_lead_product"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/crm&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>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 planned revenue and expected revenue. On one hand, the
planned revenue is computed as the selling price times the quantity. On the other hand, the expected revenue takes into account
the probability of the opportunity and is computed as the planned revenue times the probability.</p>
<p>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 planned or expected revenue for that product.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#configuration" id="toc-entry-1">Configuration</a></li>
<li><a class="reference internal" href="#usage" id="toc-entry-2">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-3">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-4">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-5">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-6">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-7">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="configuration">
<h2><a class="toc-backref" href="#toc-entry-1">Configuration</a></h2>
<p>To configure this module to be available for the Leads the user needs to activate the Leads option in CRM settings</p>
</div>
<div class="section" id="usage">
<h2><a class="toc-backref" href="#toc-entry-2">Usage</a></h2>
<ul class="simple">
<li>Go to menu <strong>CRM &gt; Lead</strong> and create or edit a Lead adding all the products associated to it.</li>
<li>Go to menu <strong>CRM &gt; My Pipeline</strong> and create or edit an Opportunity adding all the products associated to it.</li>
<li>Go to menu <strong>CRM &gt; Reporting &gt; Pipeline by Product</strong> to run the report that relates product to planned and expected revenue per stage</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h2><a class="toc-backref" href="#toc-entry-3">Bug Tracker</a></h2>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/crm/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/crm/issues/new?body=module:%20crm_lead_product%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h2><a class="toc-backref" href="#toc-entry-4">Credits</a></h2>
<div class="section" id="authors">
<h3><a class="toc-backref" href="#toc-entry-5">Authors</a></h3>
<ul class="simple">
<li>ForgeFlow</li>
</ul>
</div>
<div class="section" id="contributors">
<h3><a class="toc-backref" href="#toc-entry-6">Contributors</a></h3>
<ul class="simple">
<li>Adria Gil Sorribes &lt;<a class="reference external" href="mailto:adria.gil&#64;forgeflow.com">adria.gil&#64;forgeflow.com</a>&gt;</li>
<li>Adria Palleja Bove &lt;<a class="reference external" href="mailto:adria.palleja&#64;coopdevs.org">adria.palleja&#64;coopdevs.org</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
<h3><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h3>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/crm/tree/16.0/crm_lead_product">OCA/crm</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,3 @@
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
from . import test_crm_lead_line

View file

@ -0,0 +1,217 @@
# Copyright 2017-19 ForgeFlow S.L. (https://www.forgeflow.com)
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html)
from odoo.tests import tagged
from odoo.addons.base.tests.common import BaseCommon
@tagged("-at_install", "post_install")
class TestCrmLeadLine(BaseCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.product_obj = cls.env["product.product"]
cls.lead_line_obj = cls.env["crm.lead.line"]
cls.lead = cls.env["crm.lead"].create(
{
"type": "lead",
"name": "Test lead new",
"partner_id": cls.env.ref("base.res_partner_1").id,
"description": "This is the description of the test new lead.",
"team_id": cls.env.ref("sales_team.team_sales_department").id,
}
)
# Products
cls.product_1 = cls.product_obj.create(
{
"name": "Product 1",
"categ_id": cls.env.ref("product.product_category_1").id,
}
)
cls.product_2 = cls.product_obj.create(
{
"name": "Product 2",
"categ_id": cls.env.ref("product.product_category_2").id,
}
)
cls.product_3 = cls.product_obj.create(
{
"name": "Product 3",
"categ_id": cls.env.ref("product.product_category_3").id,
}
)
cls.product_4 = cls.env.ref("product.product_product_25")
def test_01_lead_lines(self):
"""Tests for Crm Lead Line"""
# Create new lead line with product id
self.lead_line_1 = self.lead_line_obj.create(
{
"lead_id": self.lead.id,
"name": self.product_1.name,
"product_id": self.product_1.id,
"uom_id": self.product_1.uom_id.id,
"price_unit": self.product_1.get_contextual_price(),
}
)
# Create new lead line with category id
self.lead_line_2 = self.lead_line_obj.create(
{
"lead_id": self.lead.id,
"name": self.product_2.categ_id.name,
"category_id": self.product_2.categ_id.id,
}
)
# Create new lead line with product template
self.lead_line_3 = self.lead_line_obj.create(
{
"lead_id": self.lead.id,
"name": self.product_3.product_tmpl_id.name,
"product_tmpl_id": self.product_3.product_tmpl_id.id,
}
)
self.lead_line_1._onchange_product_id()
self.lead_line_2._onchange_category_id()
self.lead_line_2._onchange_uom_id()
self.lead_line_3._onchange_product_tmpl_id()
self.lead_line_3._onchange_product_id()
# Check values have been introduced correctly
self.assertEqual(
self.lead_line_1.category_id,
self.product_1.categ_id,
"Lead line category should be equal to product 1" "category",
)
self.assertEqual(
self.lead_line_1.product_tmpl_id,
self.product_1.product_tmpl_id,
"Lead line product template should be equal to " "product 1 template",
)
self.assertEqual(
self.lead_line_3.category_id,
self.product_3.categ_id,
"Lead line category should be equal to product 3" "category",
)
lead_line_4 = self.lead_line_obj.create(
{
"lead_id": self.lead.id,
"name": self.product_1.name,
"product_id": self.product_1.id,
}
)
lead_line_4._onchange_product_id()
# Change category and check that product and template are now None
lead_line_4.write({"category_id": self.product_2.categ_id.id})
lead_line_4._onchange_category_id()
self.assertNotEqual(
lead_line_4.product_id,
self.product_1,
"Lead line product should be equal to None",
)
self.assertNotEqual(
lead_line_4.product_tmpl_id,
self.product_1.product_tmpl_id,
"Lead line product template should be equal " "to None",
)
# Don't define lead id and shouldn't be defined product template neither
lead_line_5 = self.lead_line_obj.create(
{
"name": self.product_1.name,
"product_id": self.product_1.id,
"uom_id": self.product_1.uom_id.id,
}
)
lead_line_5._onchange_product_id()
lead_line_5._onchange_product_tmpl_id()
lead_line_5._onchange_category_id()
lead_line_5._onchange_uom_id()
self.assertNotEqual(
lead_line_5.product_tmpl_id,
self.product_1.product_tmpl_id,
"Lead line product template should be equal to None",
)
# Computes lead line price unit
computed_price = self.product_1.uom_id._compute_price(
self.product_1.list_price, self.product_1.uom_id
)
self.assertEqual(
lead_line_5.price_unit,
computed_price,
"Lead line price unit should be equal to computed price",
)
lead_line_6 = self.lead_line_obj.create(
{
"lead_id": self.lead.id,
"name": "",
"category_id": self.product_3.categ_id.id,
"product_id": self.product_2.id,
"product_tmpl_id": self.product_1.product_tmpl_id.id,
}
)
lead_line_6._onchange_product_tmpl_id()
# Check if there are already defined product and remove if it does not match
self.assertEqual(
lead_line_6.product_id.id,
False,
"Lead line product id should be equal to None",
)
def test_02_lead_to_opportunity(self):
# Write one lead line to CRM Lead
self.lead.write(
{
"lead_line_ids": [
(
0,
0,
{
"lead_id": self.lead.id,
"name": self.product_4.name,
"product_id": self.product_4.id,
"category_id": self.product_4.categ_id.id,
"price_unit": self.product_4.list_price,
},
)
]
}
)
self.lead._onchange_lead_line_ids()
# Check if planned revenue is correctly set for lead line 1
self.assertEqual(
self.lead.lead_line_ids[0].planned_revenue,
self.product_4.list_price,
"Planned revenue should be equal " "to the product standard price",
)
self.lead.convert_opportunity(self.env.ref("base.res_partner_1"))
lead_line_1 = self.lead.lead_line_ids[0]
self.assertEqual(
lead_line_1.expected_revenue,
lead_line_1.planned_revenue * self.lead.probability * (1 / 100),
"Expected revenue should be planned " "revenue times the probability",
)
self.lead.write({"probability": 30})
self.assertEqual(
lead_line_1.expected_revenue,
round(lead_line_1.planned_revenue * self.lead.probability * (1 / 100), 5),
"Expected revenue should be planned " "revenue times the probability",
)

View file

@ -0,0 +1,19 @@
<?xml version="1.0" ?>
<odoo>
<record id="view_tree_lead_line" model="ir.ui.view">
<field name="name">crm.lead.form.lead</field>
<field name="model">crm.lead.line</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="product_id" />
<field name="category_id" />
<field name="product_tmpl_id" />
<field name="name" widget="section_and_note_text" />
<field name="product_qty" string="Quantity" />
<field name="price_unit" string="Price Unit" />
<field name="planned_revenue" string="Planned revenue" />
<field name="expected_revenue" string="Expected revenue" />
</tree>
</field>
</record>
</odoo>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" ?>
<odoo>
<record id="crm_lead_view_form" model="ir.ui.view">
<field name="name">crm.lead.form.lead</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.crm_lead_view_form" />
<field name="arch" type="xml">
<page name="extra" position="before">
<page name="products" string="Products">
<field name="lead_line_ids" />
</page>
</page>
</field>
</record>
</odoo>

View file

@ -0,0 +1,32 @@
# Architecture
```mermaid
flowchart TD
U[Users] -->|HTTP| V[Views and QWeb Templates]
V --> C[Controllers]
V --> W[Wizards Transient Models]
C --> M[Models and ORM]
W --> M
M --> R[Reports]
DX[Data XML] --> M
S[Security ACLs and Groups] -. enforces .-> M
subgraph Crm_lead_product Module - crm_lead_product
direction LR
M:::layer
W:::layer
C:::layer
V:::layer
R:::layer
S:::layer
DX:::layer
end
classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px
```
Notes
- Views include tree/form/kanban templates and report templates.
- Controllers provide website/portal routes when present.
- Wizards are UI flows implemented with `models.TransientModel`.
- Data XML loads data/demo records; Security defines groups and access.

View file

@ -0,0 +1,3 @@
# Configuration
Refer to Odoo settings for crm_lead_product. Configure related models, access rights, and options as needed.

View file

@ -0,0 +1,3 @@
# Controllers
This module does not define custom HTTP controllers.

View file

@ -0,0 +1,6 @@
# Dependencies
This addon depends on:
- [crm](../../odoo-bringout-oca-ocb-crm)
- [product](../../odoo-bringout-oca-ocb-product)

View file

@ -0,0 +1,4 @@
# FAQ
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
- Q: How to enable? A: Start server with --addon crm_lead_product or install in UI.

View file

@ -0,0 +1,7 @@
# Install
```bash
pip install odoo-bringout-oca-crm-crm_lead_product"
# or
uv pip install odoo-bringout-oca-crm-crm_lead_product"
```

View file

@ -0,0 +1,13 @@
# Models
Detected core models and extensions in crm_lead_product.
```mermaid
classDiagram
class crm_lead_line
class crm_lead
```
Notes
- Classes show model technical names; fields omitted for brevity.
- Items listed under _inherit are extensions of existing models.

View file

@ -0,0 +1,6 @@
# Overview
Packaged Odoo addon: crm_lead_product. Provides features documented in upstream Odoo 16 under this addon.
- Source: OCA/OCB 16.0, addon crm_lead_product
- License: LGPL-3

View file

@ -0,0 +1,27 @@
# Reports
Report definitions and templates in crm_lead_product.
```mermaid
classDiagram
class ActivityReport
Model <|-- ActivityReport
```
## Available Reports
### Analytical/Dashboard Reports
- **Pipeline by Product Analysis** (Analysis/Dashboard)
## Report Files
- **crm_product_report.py** (Python logic)
- **crm_product_report_views.xml** (XML template/definition)
- **__init__.py** (Python logic)
## Notes
- Named reports above are accessible through Odoo's reporting menu
- Python files define report logic and data processing
- XML files contain report templates, definitions, and formatting
- Reports are integrated with Odoo's printing and email systems

View file

@ -0,0 +1,34 @@
# Security
Access control and security definitions in crm_lead_product.
## Access Control Lists (ACLs)
Model access permissions defined in:
- **[ir.model.access.csv](../crm_lead_product/security/ir.model.access.csv)**
- 2 model access rules
## Record Rules
Row-level security rules defined in:
```mermaid
graph TB
subgraph "Security Layers"
A[Users] --> B[Groups]
B --> C[Access Control Lists]
C --> D[Models]
B --> E[Record Rules]
E --> F[Individual Records]
end
```
Security files overview:
- **[ir.model.access.csv](../crm_lead_product/security/ir.model.access.csv)**
- Model access permissions (CRUD rights)
Notes
- Access Control Lists define which groups can access which models
- Record Rules provide row-level security (filter records by user/group)
- Security groups organize users and define permission sets
- All security is enforced at the ORM level by Odoo

View file

@ -0,0 +1,5 @@
# Troubleshooting
- Ensure Python and Odoo environment matches repo guidance.
- Check database connectivity and logs if startup fails.
- Validate that dependent addons listed in DEPENDENCIES.md are installed.

View file

@ -0,0 +1,7 @@
# Usage
Start Odoo including this addon (from repo root):
```bash
python3 scripts/nix_odoo_web_server.py --db-name mydb --addon crm_lead_product
```

View file

@ -0,0 +1,3 @@
# Wizards
This module does not include UI wizards.

View file

@ -0,0 +1,43 @@
[project]
name = "odoo-bringout-oca-crm-crm_lead_product"
version = "16.0.0"
description = "Lead Line Product - Adds a lead line in the lead/opportunity model in odoo"
authors = [
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
]
dependencies = [
"odoo-bringout-oca-ocb-crm>=16.0.0",
"odoo-bringout-oca-ocb-product>=16.0.0",
"requests>=2.25.1"
]
readme = "README.md"
requires-python = ">= 3.11"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Office/Business",
]
[project.urls]
homepage = "https://github.com/bringout/0"
repository = "https://github.com/bringout/0"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.wheel]
packages = ["crm_lead_product"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]