تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
2 الردود
1962 أدوات العرض

Hello, I want to inherit the hr.expense and change the existing fields.
for example, I want the tax_ids field (Many2many) to be limited to 1. The user can only select one tax type.
Also, how can I set the default account for the expense. I want to set a particular account for expenses that I have created in the chart of accounts to be the default one for my model
Please help me on this

Thank you

الصورة الرمزية
إهمال
أفضل إجابة

Hi 

You can use api.constrains decorator, it will help to limit the tax to 1 

check the following code 

class HrExpense(models.Model):
_inherit ='hr.expense'

@api.constrains('tax_ids')
def _check_tax_ids_lines(self):
for record in self:
if len(record.tax_ids) > 1:
raise ValidationError('You can have only one tax.')



Regards

الصورة الرمزية
إهمال
الكاتب

Thank you!

أفضل إجابة

Hi,

To assign a default expense account, add a default attribute to the corresponding field, and add constraints for tax fields to prevent adding more than one tax to form.


class HrExpense(models.Model):
    _inherit ='hr.expense'
def _default_account_id(self):
    return self.env['account.account'].search([
        ('account_type', 'not in', ('asset_receivable', 'liability_payable', 'asset_cash', 'liability_credit_card')),
        ('company_id', '=', company_id)], limit=1).id

account_id = fields.Many2one( 'account.account',  compute='_compute_account_id',store=True,
    readonly=False,  precompute=True,  string='Account',   default=_default_account_id,
    domain="[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'asset_cash', 'liability_credit_card')), ('company_id', '=', company_id)]",   help="An expense account is expected" )

@api.constrains('tax_ids')
def _check_tax_ids(self):
    for record in self:
        if len(record.tax_ids) > 1:
            raise ValidationError('You can add only one tax.')

Hope it helps,

الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
2
يوليو 24
1440
2
يناير 21
5829
1
يوليو 19
6419
3
يونيو 15
5542
0
فبراير 21
3754