Author: |
Numigi |
License: |
LGPL-3 |
Branch: |
abenzbiria-patch-1 |
Repository: |
Numigi/odoo-project-addons |
Dependencies: |
project,
project_task_analytic_lines,
purchase,
and
purchase_stock |
Languages: |
PO File (75, 10.4%),
Python (395, 54.9%),
XML (190, 26.4%),
and
reStructuredText (60, 8.3%) |
Other branches: |
11.0,
12.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,
jbreard-patch-2,
and
timesheet_analytic_update |
<h1 class="title">Project Outsourcing</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="#context" id="id1">Context</a></li>
<li><a class="reference internal" href="#summary" id="id2">Summary</a></li>
<li><a class="reference internal" href="#create-a-new-po" id="id3">Create A New PO</a><ul>
<li><a class="reference internal" href="#analytic-account" id="id4">Analytic Account</a></li>
</ul>
</li>
<li><a class="reference internal" href="#stockable-products" id="id5">Stockable Products</a></li>
<li><a class="reference internal" href="#list-of-purchase-lines" id="id6">List Of Purchase Lines</a></li>
<li><a class="reference internal" href="#supplier-invoice" id="id7">Supplier Invoice</a></li>
<li><a class="reference internal" href="#changing-the-project" id="id8">Changing The Project</a></li>
<li><a class="reference internal" href="#project-smart-button" id="id9">Project Smart Button</a></li>
<li><a class="reference internal" href="#contributors" id="id10">Contributors</a></li>
</ul>
</div>
<a name="context"></a>
<h2><a class="toc-backref" href="#id1">Context</a></h2>
<p>In vanilla Odoo, it is not possible to bind a purchase order with a task.</p>
<p>It is possible to set an analytic account on a purchase order line.
However, this is error prone, because there are no restrictions on how and
when to set an analytic account on a PO line.</p>
<a name="summary"></a>
<h2><a class="toc-backref" href="#id2">Summary</a></h2>
<p>This module allows to generate a purchase order from a task.</p>
<p>It adds a new tab in the form view of tasks to view purchase orders
and a smart button on the form view of project.</p>
<p>It inherits from the module project_task_analytic_lines which adds an integration between tasks and invoices.</p>
<a name="create-a-new-po"></a>
<h2><a class="toc-backref" href="#id3">Create A New PO</a></h2>
<p>As member of the groups <cite>Project / User</cite> and <cite>Purchase / User</cite>, I go to the form view of a task.</p>
<p>In the <cite>Outsourcing</cite> tab, I see a list of purchase orders.</p>
<img alt="static/description/project_task_form.png" src="static/description/project_task_form.png" />
<p>I click on the button <cite>Create PO</cite>.</p>
<p>The form view of a new PO is opened.</p>
<img alt="static/description/new_purchase_order.png" src="static/description/new_purchase_order.png" />
<p>The following fields are filled automatically.</p>
<ul class="simple">
<li>Outsourcing</li>
</ul>
<blockquote>
This box is checked to indicate that the purchase order is an Outsourcing PO.</blockquote>
<ul class="simple">
<li>Project</li>
</ul>
<blockquote>
<p>This field is visible because the <cite>Outsourcing</cite> box is checked.</p>
<p>It indicates which project is bound to the PO.</p>
<p>One outsourcing PO can not be bound to more than one project.</p>
</blockquote>
<ul class="simple">
<li>Task</li>
</ul>
<blockquote>
<p>This field is visible because the <cite>Outsourcing</cite> box is checked.</p>
<p>It indicates which task is bound to the PO.</p>
<p>It allows only to select a task from the selected project.</p>
</blockquote>
<p>I select my supplier, then I add a new line to the PO.</p>
<img alt="static/description/po_with_supplier_and_product.png" src="static/description/po_with_supplier_and_product.png" />
<a name="analytic-account"></a>
<h3><a class="toc-backref" href="#id4">Analytic Account</a></h3>
<p>I notice that the analytic account on the PO lines is invisible.
This is because the <cite>Outsourcing</cite> box is checked.</p>
<p>Behind the scene, the analytic account is automatically set based on the selected project.</p>
<a name="stockable-products"></a>
<h2><a class="toc-backref" href="#id5">Stockable Products</a></h2>
<p>Stockable (or consummable) products may not be added to an outsourcing PO.</p>
<p>This is because the accounting is very different between outsourcing and material.</p>
<p>If you need to add stockable products to a project, you will likely need the <cite>Work In Progress</cite> module
(see project_wip_material).</p>
<a name="list-of-purchase-lines"></a>
<h2><a class="toc-backref" href="#id6">List Of Purchase Lines</a></h2>
<p>Back to the task, in the outsourcing tab, I notice the new PO in the <cite>Purchase Order</cite> table and one line in the <cite>Order Lines</cite> table.</p>
<img alt="static/description/project_task_form_with_po.png" src="static/description/project_task_form_with_po.png" />
<a name="supplier-invoice"></a>
<h2><a class="toc-backref" href="#id7">Supplier Invoice</a></h2>
<p>As member of the group <cite>Accounting / Billing</cite>, I create a new vendor bill from my PO.</p>
<img alt="static/description/vendor_bill.png" src="static/description/vendor_bill.png" />
<p>I notice that the task was automatically selected on the invoice line.</p>
<a name="changing-the-project"></a>
<h2><a class="toc-backref" href="#id8">Changing The Project</a></h2>
<p>If a task is moved from a project to another, any outsourcing PO linked to the task will be moved to the destination project.</p>
<img alt="static/description/task_with_new_project.png" src="static/description/task_with_new_project.png" />
<img alt="static/description/purchase_order_with_new_project.png" src="static/description/purchase_order_with_new_project.png" />
<p>If any PO is already confirmed, a blocking message will be displayed.</p>
<img alt="static/description/task_change_project_error_message.png" src="static/description/task_change_project_error_message.png" />
<a name="project-smart-button"></a>
<h2><a class="toc-backref" href="#id9">Project Smart Button</a></h2>
<p>When confirming a purchase order, journal entries are not created.
The journal entries and analytic lines are only created when validating the supplier invoice.</p>
<p>The supplier invoice for an outsourcing task may not be received before the job is finished.
Therefore, that cost needs to be included in the customer invoice.</p>
<p>For this purpose, a smart button is added on the project.</p>
<img alt="static/description/project_smart_button.png" src="static/description/project_smart_button.png" />
<p>The button indicates the number of outsourcing purchase orders related to the project.</p>
<p>When clicking on the button, the list of purchase orders is displayed.</p>
<img alt="static/description/outsourcing_po_list.png" src="static/description/outsourcing_po_list.png" />
<p>From this list I can filter to see only the orders awaiting a vendor bill.</p>
<img alt="static/description/outsourcing_po_list_awaiting_bill.png" src="static/description/outsourcing_po_list_awaiting_bill.png" />
<a name="contributors"></a>
<h2><a class="toc-backref" href="#id10">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>