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
1927 Zobrazení

I am new to odoo and I have a customer who sells different products where some products have custom fields, we need to show those fields optionally and hide them from other customers' quotations and invoices, we are using odoo 16 Community version any guidance on how to do that?

Avatar
Zrušit
Nejlepší odpověď

Hi,

You can set the condition in your xml code:

Create XML files for the views you want to customize.
views/sale_order_view.xml:


<odoo>
    <record id="view_order_form_inherit" model="ir.ui.view" style="color:rgb(56,58,66);background-color:rgb(250,250,250);font-size:11pt;">>
        <field name="name">sale.order.form.inherit</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="sale.view_order_form"/>
        <field name="arch" type="xml">
            <field name="custom_field" position="attributes">
                <attribute name="attrs">{'invisible': [('partner_id', '=', you can your domain)]}</attribute>
            </field>
        </field>
    </record>
</odoo>



n the same way, you can set up the account. move views  or you can try this method

Define Custom Fields:

from odoo import models, fields

class Product(models.Model):
_inherit = 'product.product'

custom_field_1 = fields.Char(string='Custom Field 1')
custom_field_2 = fields.Float(string='Custom Field 2')
# Add more custom fields as needed



 Define Access Rights:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_product_custom_fields,access.product.custom.fields,model_product_product,base.group_user,1,1,1,1

In this way, you can add the groups with the required conditions

from odoo import API, models

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

@api.model
def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
    result = super(SaleOrder, self).fields_view_get(
        view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu
    )

    if view_type == 'form' and self.env.user.has_group('base.group_user'):
        # Add conditions to show/hide fields based on user groups or other criteria
        result['fields']['custom_field_1']['readonly'] = True

    return result



Add Custom Fields to Quotation/Invoice Views:


<record id="view_sale_order_form_custom" model="ir.ui.view">
    <field name="name">sale.order.form.custom</field>
    <field name="model">sale.order</field>
    <field name="inherit_id" ref="sale.view_order_form"/>
    <field name="arch" type="xml">
        <!-- Add custom fields to the view -->
        <field name="custom_field_1" position="after">
            <!-- Additional fields or modifications -->
        </field>
    </field>
</record>


Hope it helps

Avatar
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
1
úno 24
2046
1
říj 25
6019
4
srp 24
2544
4
kvě 24
5664
1
dub 23
2159