76e31d5f7bc885f396fab428d27ed80ca1dc8fd8
Purpose ====== During the development of the task #2169100, it appeared that the synchronisation of a task's partner_id according to its project's partner_id and its parent's partner_id was not very clear. A first idea was to simplify the partner_id management: as it could be annoying for the customer to see all the task's partner_id overriden after project's partner_id modification, the idea was to just use the parent's parnter_id or the project's partner_id as default value of the task's partner_id. Then, if the partner_id of the project or of the parent is changed, there is no more impact on the task partner_id itself. The main problem of this solution is that the management of the task's partner_id is also extended in several others modules like sale_project and sale_timesheet. You can find below what seems to happen with all these task partners. Start following rules according to which module is installed. (for the record: sale_timesheet depends on sale_project which depends on project). Rules are applied in the order they are written. Rules labelled "O" only apply when changing the project through the task form view. Rules labelled "C" apply everywhere. technical: C=compute, O=onchange project C.1 If parent's partner changes and the partner is not set, then set the parent's partner C.2 Else if project's partner changes ant the partner is not set, then set the project's partner sale_project [+ project] C.1 If the project's sale order line's partner changes and the partner is not set, then set the project's sale order line's partner C.2 Else apply (project.C) rules sale_timesheet + [sale_project + project] C.1 Apply (sale_project.C) rules O.1 If the project is billed "At Project rate" or "At Employee Rate" and the partner is not set, then set the project's sale order's partner the sale order line's partner Specification =========== - If the partner changes, we ignore all current tasks and let them be. We set the new partner as default value on all new tasks. In detail, we have done this: - When the user creates a task give the customer of the default project or the task parent as default customer for the task. - When the user changes the project and no partner in the task, we take the partner of the new project (if this project has a customer). - When the user changes the customer of the project, the linked tasks are not impacted by this changes, even if some tasks have not a customer yet. - When the user changes the customerf of the parent task, the child tasks are not impacted by this changes, event if these tasks have not a customer yet. - remove the onchange rule to remain consistent. - get the display_project_id if parent is subtask. ## Miscellaneous - display commercial_partner_id in project kanban view rather than the partner_id in the kanban card of each project to be consist with task's kanban card. TaskID: 2232042 closes #51471 Signed-off-by: LTU-Odoo <IT-Ideas@users.noreply.github.com> Co-authored-by: Xavier BOL (xbo) <xbo@odoo.com>
…
…
…
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%