Search 1.9 billion lines of Odoo code on GitHub

project_task_analytic_lines

Author: Numigi
License: LGPL-3
Branch: 12.0
Repository: Numigi/odoo-project-addons
Dependencies: account, analytic, and hr_timesheet
Languages: PO File (80, 9.1%), Python (577, 65.6%), XML (157, 17.8%), and reStructuredText (66, 7.5%)
Other branches: 11.0, 14.0, 452, TA#42546, TA#43556, TA#44075---manage_project_budget_using_milestone, TA#44076---Update-dockerfile, TA#44215---project_task_kanban_view_partner, TA#445738---project_outsourcing_timesheet_manage_contacts, TA#45451---add_project_milestone_week_duration, TA#45451---fix_after_test, TA#45452, TA#45459---project_milestone_timeline_dynamic, TA#45464---project_manager_access_right, TA#45526, TA#45528, TA#45902---analytic_line_revenue_v14, TA#45902---project_cost_smart_button_migration, TA#45902-analytic_line_employee_migration, TA#46088---project_timesheet_time_control_employee_pin, TA#46412---project_default_task_stage, TA#46412---project_stage_no_quick_create, TA#46412---project_task_date_planned, TA#46412---project_type, TA#46412--project_task_full_text_search, TA#47760---correctif#6, TA#47906, TA#48575, TA#51167, TumbaoJu-patch-1, abenzbiria-patch-1, jbreard-patch-2, and timesheet_analytic_update

<h1 class="title">Project Task Analytic Lines</h1> <div class="contents topic" id="table-of-contents"> <p class="topic-title">Table of Contents</p> <ul class="simple"> <li><a class="reference internal" href="#odoo-context" id="id1">Odoo Context</a></li> <li><a class="reference internal" href="#summary" id="id2">Summary</a></li> <li><a class="reference internal" href="#journal-entries" id="id3">Journal Entries</a></li> <li><a class="reference internal" href="#supplier-invoices" id="id4">Supplier Invoices</a><ul> <li><a class="reference internal" href="#taxes-included-in-cost" id="id5">Taxes Included In Cost</a></li> </ul> </li> <li><a class="reference internal" href="#list-views-filters" id="id6">List Views Filters</a><ul> <li><a class="reference internal" href="#analytic-lines" id="id7">Analytic Lines</a></li> <li><a class="reference internal" href="#journal-items" id="id8">Journal Items</a></li> </ul> </li> <li><a class="reference internal" href="#constraints" id="id9">Constraints</a></li> <li><a class="reference internal" href="#limits" id="id10">Limits</a><ul> <li><a class="reference internal" href="#purchase-orders" id="id11">Purchase Orders</a></li> <li><a class="reference internal" href="#stockable-products" id="id12">Stockable Products</a></li> </ul> </li> <li><a class="reference internal" href="#contributors" id="id13">Contributors</a></li> </ul> </div> <a name="odoo-context"></a> <h2><a class="toc-backref" href="#id1">Odoo Context</a></h2> <p>In vanilla Odoo, analytic lines can not be grouped or filtered by task, except for timesheet lines.</p> <p>Therefore, if you need to generate a cost report, only the timesheet lines will be shown per task.</p> <a name="summary"></a> <h2><a class="toc-backref" href="#id2">Summary</a></h2> <p>This module adds a <cite>Task</cite> field on supplier invoice lines and journal entries.</p> <p>The task is propagated:</p> <ol class="arabic simple"> <li>from invoice lines to journal entries</li> <li>from journal entries to analytic lines</li> </ol> <p>Then, the analytic lines can be filtered and grouped by task.</p> <a name="journal-entries"></a> <h2><a class="toc-backref" href="#id3">Journal Entries</a></h2> <p>As member of the group <cite>Accounting / Billing</cite>, on a draft journal entry, I find a new field <cite>Task</cite>.</p> <img alt="static/description/journal_entry_task.png" src="static/description/journal_entry_task.png" /> <p>The field is readonly if the analytic account is not filled.</p> <img alt="static/description/journal_entry_task_readonly.png" src="static/description/journal_entry_task_readonly.png" /> <p>If an analytic account is selected, I am able to select a task related to project of the analytic account.</p> <img alt="static/description/journal_entry_task_selected.png" src="static/description/journal_entry_task_selected.png" /> <p>I post the journal entry.</p> <img alt="static/description/journal_entry_posted.png" src="static/description/journal_entry_posted.png" /> <p>In the list of analytic lines, I notice that the task was propagated.</p> <img alt="static/description/journal_entry_analytic_lines.png" src="static/description/journal_entry_analytic_lines.png" /> <a name="supplier-invoices"></a> <h2><a class="toc-backref" href="#id4">Supplier Invoices</a></h2> <p>As member of the group <cite>Accounting / Billing</cite>, on a draft supplier invoice, I find a new field <cite>Task</cite>.</p> <img alt="static/description/supplier_invoice_form.png" src="static/description/supplier_invoice_form.png" /> <p>The field is readonly if the analytic account is not filled.</p> <img alt="static/description/supplier_invoice_task_readonly.png" src="static/description/supplier_invoice_task_readonly.png" /> <p>If an analytic account is selected, I am able to select a task related to project of the analytic account.</p> <img alt="static/description/supplier_invoice_task_selected.png" src="static/description/supplier_invoice_task_selected.png" /> <p>I validate the invoice.</p> <img alt="static/description/supplier_invoice_validated.png" src="static/description/supplier_invoice_validated.png" /> <p>On the journal entry, I notice that the task was propagated to the expense line.</p> <img alt="static/description/supplier_invoice_move.png" src="static/description/supplier_invoice_move.png" /> <p>In the list of analytic lines, I notice that the task was propagated.</p> <img alt="static/description/supplier_invoice_analytic_lines.png" src="static/description/supplier_invoice_analytic_lines.png" /> <a name="taxes-included-in-cost"></a> <h3><a class="toc-backref" href="#id5">Taxes Included In Cost</a></h3> <p>The module supports taxes included in the analytic cost.</p> <p>In the form view of a tax, I check the field &quot;Included in Analytic Cost&quot;.</p> <img alt="static/description/tax_with_analytic.png" src="static/description/tax_with_analytic.png" /> <p>On the invoice, when selecting the tax, the task is propagated along with the analytic account.</p> <img alt="static/description/supplier_invoice_with_tax.png" src="static/description/supplier_invoice_with_tax.png" /> <p>On the journal entry, the task is propagated from the invoice tax.</p> <img alt="static/description/supplier_invoice_with_tax_move.png" src="static/description/supplier_invoice_with_tax_move.png" /> <a name="list-views-filters"></a> <h2><a class="toc-backref" href="#id6">List Views Filters</a></h2> <a name="analytic-lines"></a> <h3><a class="toc-backref" href="#id7">Analytic Lines</a></h3> <p>In the list of analytic lines, I see a new field <cite>Task</cite>.</p> <blockquote> <p>A new technical field (origin_task_id) was added because the field task_id available in vanilla Odoo could not be used.</p> <p>The field task_id is used by Odoo for timesheet lines. If task_id was used for any other purpose, some standard functionalities would be broken.</p> </blockquote> <img alt="static/description/analytic_lines_origin_task_column.png" src="static/description/analytic_lines_origin_task_column.png" /> <p>I am able to search by task:</p> <img alt="static/description/analytic_lines_search.png" src="static/description/analytic_lines_search.png" /> <p>I am able to group by task:</p> <img alt="static/description/analytic_lines_group.png" src="static/description/analytic_lines_group.png" /> <a name="journal-items"></a> <h3><a class="toc-backref" href="#id8">Journal Items</a></h3> <p>In the list view of journal items, I see a new field <cite>Task</cite>.</p> <img alt="static/description/journal_items_task_column.png" src="static/description/journal_items_task_column.png" /> <p>I am able to search by task:</p> <img alt="static/description/journal_items_search.png" src="static/description/journal_items_search.png" /> <p>I am able to group by task:</p> <img alt="static/description/journal_items_group.png" src="static/description/journal_items_group.png" /> <a name="constraints"></a> <h2><a class="toc-backref" href="#id9">Constraints</a></h2> <p>Once a task is selected on an invoice or a journal entry, it is not possible to move the task to another project.</p> <p>Otherwise, when changing the project on the task, a blocking message is displayed.</p> <img alt="static/description/task_change_project_constraint.png" src="static/description/task_change_project_constraint.png" /> <a name="limits"></a> <h2><a class="toc-backref" href="#id10">Limits</a></h2> <a name="purchase-orders"></a> <h3><a class="toc-backref" href="#id11">Purchase Orders</a></h3> <p>This module does not define how tasks are propagated from a purchase order to a supplier invoice.</p> <p>The module <cite>project_wip_outsourcing</cite> inherits this module and adds the business logic related to outsourcing. For now, outsourcing is the only known case where defining a task on a PO is relevant.</p> <a name="stockable-products"></a> <h3><a class="toc-backref" href="#id12">Stockable Products</a></h3> <p>An analytic account and a task should not be set on a supplier invoice for stockable products. The expense for a stockable product is recognized in Odoo at the customer invoice validation.</p> <p>The module is intended for services (or even consummable products).</p> <p>However, the module does not constrain on which type of product a task can be used.</p> <a name="contributors"></a> <h2><a class="toc-backref" href="#id13">Contributors</a></h2> <ul class="simple"> <li>Numigi (tm) and all its contributors (<a class="reference external" href="https://bit.ly/numigiens">https://bit.ly/numigiens</a>)</li> </ul>