Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
1 Odpovědět
3395 Zobrazení

How can I add sequence in sale\.order\.line\?\ let's\ say\ I\ have\ sale\.order\.line\ 1,\ 2,\ 3\.\ later\ I\ delete\ sale\.order\.line\ 2\.\ It\ should\ start\ count\ from\ sale.order.line 4. I mean It should be in a sequence 1, 3, 4. Not 1, 2, 3.

Avatar
Zrušit
Nejlepší odpověď

Hi,

You can use the following code to add sequence in the sale.order.line.


Python

from odoo import api, fields, models


class SaleOrderLine(models.Model):
"""
Inherits the sale.order.line model to add a computed field 'sequence_number'
that represents a sequential line number for each line in a sale order,
excluding optional lines like display-only types.
"""
_inherit = 'sale.order.line'

sequence_number = fields.Integer(
string='#', compute='_compute_sequence_number', help='Line Numbers')

@api.depends('sequence', 'order_id')
def _compute_sequence_number(self):
"""Computes a custom sequence number for each sale order line
in the order."""
for order in self.mapped('order_id'):
sequence_number = 1
for lines in order.order_line:
if lines.display_type:
lines.sequence_number = sequence_number
sequence_number += 0
else:
lines.sequence_number = sequence_number
sequence_number += 1

XML

<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Inherited sale order form view-->
<record id="view_order_form" model="ir.ui.view">
<field name="name">sale.order.view.form.inherit</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='order_line']//tree//field[@name='product_id']"
position="before">
<field name="sequence_number"/>
</xpath>
</field>
</record>
</odoo>

Hope it helps

Avatar
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
1
kvě 25
6185
0
led 24
1102
4
led 24
14399
0
dub 25
883
2
bře 25
3042