Skip to Content
Menu
This question has been flagged
3 Replies
126 Views

hi everyone

i'm new to odoo 19, in the sales module, i created a new field named Booking Number(x_booking_number), i also created a field named Booking Number(x_booking_number) in the project module, how can i link BO from sales order to project when performing the create project operation from the setting icon in sales order?

Avatar
Discard
Best Answer

Using Odoo Studio, you can link the same custom field between the Sales and Project modules instead of recreating a different x_booking_number field in each module.


Advantages of this method:

You only have one field in the database, shared between the two business objects.


Data consistency is ensured because it is exactly the same field.


You can manage access rights (read/write) separately in each module if necessary, by unchecking or checking read-only via Studio.


This facilitates reporting and automation, as it is a single linked field.


How to proceed in Studio:

Open the project object (project.project) in Studio.


Add a linked field (associated field) by selecting the x_booking_number field already created in the sales order (sale.order).


Then configure the access permissions for this field (read-only or editable) according to your needs in each module.


This way, each project will automatically display the booking number from the corresponding sales order.


This method is recommended if your scenario involves displaying or using the same data between the sales order and the project without duplication, thus simplifying the administration and synchronization of your business data.


Translated with DeepL.com (free version)

Avatar
Discard
Author Best Answer

thanks for your reply, unfortunately i use odoo online and i cant interfere with python code in server action, is there any way to do it by automation rule with execute code?

Avatar
Discard
Best Answer

Hi,


To automatically populate the "Booking Number" field in a new project created from a sales order in Odoo 19, customize the server action triggered by the "Create Project" option. First, identify the server action in Technical > Actions > Server Actions. Then, modify the Python code within the action to map the x_booking_number field from the sales order (record.x_booking_number) to the x_booking_number field in the new project during its creation.


Add the line 'x_booking_number': record.x_booking_number within the env['project.project'].create() method. Save the changes and clear the Odoo cache. This ensures the booking number is copied from the sales order to the project. Inheriting the action instead of directly modifying it is recommended for easier updates.


Code :-


new_project = env['project.project'].create({

    'name': record.name,

    'x_booking_number': record.x_booking_number,  # Add this line

    # Other project fields

})


Hope it helps

Avatar
Discard
Related Posts Replies Views Activity
0
Nov 25
2
0
Nov 25
4
1
Nov 25
239
5
Nov 25
396
2
Nov 25
220