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

Hi ,


How i can add sale order line tree in my custom module (i.e don't want inherit) and data will be save in my own custom detail module. 

please tell me how is it possible.

Regards,

Fawad

Avatar
Discard
Best Answer

Hello

without Inheriting it's not possible, because in sale.order.line we have to keep our custom model field as many2one. 

Note: Jignesh given proper example(Check the Jignesh Mehta reply)

Avatar
Discard
Best Answer

hi sorry to reopen this topic but since 3 days i tried to add sale order line to my custom module but very complicate many error. 

Erreur:

Odoo Server Error


Traceback (most recent call last):

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\tools\convert.py", line 757, in parse

    self._tags[rec.tag](rec, de, mode=mode)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\tools\convert.py", line 662, in _tag_record

    record = model.with_context(rec_context)._load_records([data], self.mode == 'update')

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\models.py", line 3838, in _load_records

    records = self._load_records_create([data['values'] for data in to_create])

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\models.py", line 3752, in _load_records_create

    return self.create(values)

  File "<decorator-gen-32>", line 2, in create

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\api.py", line 452, in _model_create_multi

    return create(self, arg)

  File "c:\program files (x86)\odoo 12.0\server\odoo\addons\base\models\ir_ui_view.py", line 428, in create

    return super(View, self).create(vals_list)

  File "<decorator-gen-3>", line 2, in create

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\api.py", line 452, in _model_create_multi

    return create(self, arg)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\models.py", line 3533, in create

    records = self._create(data_list)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\models.py", line 3619, in _create

    col_val = field.convert_to_column(val, self, stored)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\fields.py", line 1946, in convert_to_column

    value = self.convert_to_cache(value, record)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\fields.py", line 1958, in convert_to_cache

    raise ValueError("Wrong value for %s: %r" % (self, value))

ValueError: Wrong value for ir.ui.view.type: 'field'


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\http.py", line 654, in _handle_exception

    return super(JsonRequest, self)._handle_exception(exception)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\http.py", line 312, in _handle_exception

    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\tools\pycompat.py", line 87, in reraise

    raise value

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\http.py", line 696, in dispatch

    result = self._call_function(**self.params)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\http.py", line 344, in _call_function

    return checked_call(self.db, *args, **kwargs)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\service\model.py", line 97, in wrapper

    return f(dbname, *args, **kwargs)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\http.py", line 337, in checked_call

    result = self.endpoint(*a, **kw)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\http.py", line 939, in __call__

    return self.method(*args, **kw)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\http.py", line 517, in response_wrap

    response = f(*args, **kw)

  File "c:\program files (x86)\odoo 12.0\server\odoo\addons\web\controllers\main.py", line 966, in call_button

    action = self._call_kw(model, method, args, {})

  File "c:\program files (x86)\odoo 12.0\server\odoo\addons\web\controllers\main.py", line 954, in _call_kw

    return call_kw(request.env[model], method, args, kwargs)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\api.py", line 749, in call_kw

    return _call_kw_multi(method, model, args, kwargs)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\api.py", line 736, in _call_kw_multi

    result = method(recs, *args, **kwargs)

  File "<decorator-gen-61>", line 2, in button_immediate_install

  File "c:\program files (x86)\odoo 12.0\server\odoo\addons\base\models\ir_module.py", line 73, in check_and_log

    return method(self, *args, **kwargs)

  File "c:\program files (x86)\odoo 12.0\server\odoo\addons\base\models\ir_module.py", line 444, in button_immediate_install

    return self._button_immediate_function(type(self).button_install)

  File "c:\program files (x86)\odoo 12.0\server\odoo\addons\base\models\ir_module.py", line 553, in _button_immediate_function

    modules.registry.Registry.new(self._cr.dbname, update_module=True)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\modules\registry.py", line 86, in new

    odoo.modules.load_modules(registry._db, force_demo, status, update_module)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\modules\loading.py", line 421, in load_modules

    loaded_modules, update_module, models_to_check)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\modules\loading.py", line 313, in load_marked_modules

    perform_checks=perform_checks, models_to_check=models_to_check

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\modules\loading.py", line 222, in load_module_graph

    load_data(cr, idref, mode, kind='data', package=package, report=report)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\modules\loading.py", line 68, in load_data

    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\tools\convert.py", line 801, in convert_file

    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\tools\convert.py", line 864, in convert_xml_import

    obj.parse(doc.getroot(), mode=mode)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\tools\convert.py", line 754, in parse

    self.parse(rec, mode)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\tools\convert.py", line 763, in parse

    exc_info[2]

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\tools\pycompat.py", line 86, in reraise

    raise value.with_traceback(tb)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\tools\convert.py", line 757, in parse

    self._tags[rec.tag](rec, de, mode=mode)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\tools\convert.py", line 662, in _tag_record

    record = model.with_context(rec_context)._load_records([data], self.mode == 'update')

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\models.py", line 3838, in _load_records

    records = self._load_records_create([data['values'] for data in to_create])

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\models.py", line 3752, in _load_records_create

    return self.create(values)

  File "<decorator-gen-32>", line 2, in create

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\api.py", line 452, in _model_create_multi

    return create(self, arg)

  File "c:\program files (x86)\odoo 12.0\server\odoo\addons\base\models\ir_ui_view.py", line 428, in create

    return super(View, self).create(vals_list)

  File "<decorator-gen-3>", line 2, in create

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\api.py", line 452, in _model_create_multi

    return create(self, arg)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\models.py", line 3533, in create

    records = self._create(data_list)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\models.py", line 3619, in _create

    col_val = field.convert_to_column(val, self, stored)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\fields.py", line 1946, in convert_to_column

    value = self.convert_to_cache(value, record)

  File "C:\Program Files (x86)\Odoo 12.0\server\odoo\fields.py", line 1958, in convert_to_cache

    raise ValueError("Wrong value for %s: %r" % (self, value))

odoo.tools.convert.ParseError: "Wrong value for ir.ui.view.type: 'field'" while parsing file:/c:/program files (x86)/odoo 12.0/server/odoo/addons/magazine/views/views.xml:5, near

<record id="view_magazine_rapport_tree" model="ir.ui.view">

      <field name="name">view.magazine.rapport.tree</field>

      <field name="model">magazine.rapport</field>

      <field name="arch" type="xml">

                <field name="sale_order_line_ids" nolabel="1">

                    <tree string="Rapport Magazine" editable="bottom">

                        <field name="order_partner_id"/>

                        <field name="product_id"/>

                      </tree>

                </field>

    </field>

</record>

Avatar
Discard
Best Answer

Hello Fawad Mazhar,

Try below code

custom.py :-

class CustomModel(models.Model):
    _name = 'custom.model'

    name = fields.Char('Name')
    sale_order_line_ids = fields.One2many('sale.order.line', 'custom_model_id', 'Sale Order Line')


class SaleOrderLine(models.Model):
    _inherit = 'sale.order.line'

    custom_model_id = fields.Many2one('custom.model', 'Custom Model')


custom_view.xml :-

<record id="custom_model_form_view" model="ir.ui.view">
    <field name="name">custom.model.form.view</field>
    <field name="model">custom.model</field>
    <field name="arch" type="xml">
        <form string="Custom Model">
            <group>
                <group>
                    <field name="name"/>
                </group>
                <group/>
            </group>
            <group name="custom_lines" string"Custom Lines">
                <field name="sale_order_line_ids" nolabel="1">
                    <tree editable="bottom">
                        <field name="product_id"/>
                        <field name="name"/>
                        <field name="product_uom_qty"/>
                        <field name="price_unit"/>
                        <field name="price_subtotal"/>
                    </tree>
                </field>
            </group>
        </form>
    </field>
</field>


Hope this will helps you

Thanks,

Avatar
Discard

i want to show particular sale order lines by selecting sale order id from many2one in custom module