Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
1 Rispondi
1903 Visualizzazioni

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
Abbandona
Risposta migliore

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
Abbandona
Post correlati Risposte Visualizzazioni Attività
1
feb 24
2033
1
ott 25
6013
4
ago 24
2540
4
mag 24
5661
1
apr 23
2156