İçereği Atla
Menü
Bu soru işaretlendi
2 Cevaplar
2130 Görünümler

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

Avatar
Vazgeç
En İyi Yanıt

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

Avatar
Vazgeç
Üretici

Thank you!

En İyi Yanıt

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,

Avatar
Vazgeç
İlgili Gönderiler Cevaplar Görünümler Aktivite
2
Tem 24
1584
2
Oca 21
5970
1
Tem 19
6578
3
Haz 15
5619
0
Şub 21
3847