I want to add a sequence to my sale order that addds a numerator on each line starting at 1. I'd like it to be on my sales PDF and in the view so the customer can make reference to a specific line.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Contabilidad
- Inventario
- PoS
- Project
- MRP
Se marcó esta pregunta
Part 1: (V.18) Add the sequence number for each item/product in the sales.order.line model.
- From the sales.order model go to Studio.
2. Click on the “Edit list view” button to go to the sale.order.line model
3. Add a related field to “sequence”.
4. Activate the Developer Mode
5. (Best practice) Change the label and then the technical name.
Extra tip: When you finish typing the label, type "enter", wait for studio to load and it's coppied to the technical name.
6. Go to the a Sale Order and add a product in the sale lines to see how it works.
We haven´t finished! The sequence starts with the number 10 and we need it to start from 1) Please go to the next step
7. In order to predefine the number 1 for the sequence as the default. Go to Settings / Technical / Actions / Use-defined defaults
8. Create a new User-defined Default
- Add the field: Sequence (Sales Order Line) -> You might need to search for it on the "search more" option
- Default value: 1
If you don't find the field "search more" with these values: field: sequence, model: sale.order.line
9. Go to the sale.order model and see how it works.
Note: You need to save it, in order to have a correct sequence. If you don't save it, you will always have the number 1 in the sequence field.
Once it's saved you will have the correct sequence.
Forum post part 2:
(V.18) How to add the sequence to the PDF?
- From the sale.order model go to Studio and find the reports you want to add the sequence field.
2. Insert a field
3. Change the name of the field
4. In the rectangle below Type “/” and select “field”
5. Add the native field of Sequence (integer):
6. Don´t forget to Save it
7. Print the PDF and the sequence field will be shown.
I followed the same steps but it shows 1 , 1 , 1 for the line items then when i save it shows again 10,11,12
i compare the field: sequence which you made with mine, your screenshot shows the type is Base Field but mine shows it's Custom Field.
Could that be the problem?
The Base Field is used on the pdf. It's already shown on the Form View but with a drag handle to re-sequence lines, so a new related field is added.
Probably you are trying to set the default value to 1 on the new related field, it needs to be on the Base field.
Thank you, your solution is great. I followed it, but when I save, the sequence still stays as 1, 1, 1. It only reorders automatically when I drag and drop a line. How can I make it automatically adjust the sequence numbers 1, 2, 3 when I save the SO?
when i add sequence field in report start the 0 not 1?
For those who are still struggling with these solutions, I combined both methods, and it seems to work. I used Sai's method up to the Sales Order Code. I couldn't figure out which model the Invoice code was supposed to be on. I also created the same code for the Purchase Order model.
i = 1
for line in record.order_line.sorted (key = lambda l: l.sequence):
if not line.display_type:
line.write ({'x_studio_line_number': i})
i += 1
To get it to show on the Sales Quote or Purchase RFQ pdf, I used the part 2 instructions from Orlanda. When you get to step Part 2 - Step 5, search for the Label or the Technical Name that you created from Sai's Step 1. In my case, my Label is just "Line" while the technical name is "x_studio_line_number". Once saved, it should now update the correct sequence. Replicating other reports is the same process. Go to the report, add a field, search for the field, and select the right label. You don't need to redo Sai's step.
1.Create a custom integer field on the line model (e.g., x_studio_no for sale order lines).
- Go to Studio → Sale Order → Order Lines → Add a field (Integer).
- Label it something like "Line Number" or "S.No."
2.Create an Automation Rule
- Go to: Settings → Technical → Automation → Automated Actions.
-
Create a new rule:
- Model: Sales Order
- Trigger: On Save
- Apply On Domain: leave it empty or match active orders
- Add Server Action: Execute Python Code
- Sample Code for Sale Order Lines:
- Sample Code for Invoice Lines:
Note:The sequence field will show 0 before saving.It gets updated only after you save the record, because the automation is triggered On Save.
¿Le interesa esta conversación? ¡Participe en ella!
Cree una cuenta para poder utilizar funciones exclusivas e interactuar con la comunidad.
RegistrarsePublicaciones relacionadas | Respuestas | Vistas | Actividad | |
---|---|---|---|---|
|
3
jun 25
|
7245 | ||
|
2
oct 25
|
638 | ||
|
1
ago 25
|
1053 | ||
|
2
ago 25
|
3901 | ||
|
0
ago 25
|
1200 |
Good afternoon,
Thanks a lot for all the explaination. I need it also for my order.
I have a small difference compare to the original asking, I need to start from 10 and increase each line by 10.
For example line 1 will be 10, line 2 will be 20, etc. Is it possible to make it ? I search all the day for it...
I'm on odoo sh.
Thanks for your help and have a nice day.
Jeremy