Ir al contenido
Menú
Se marcó esta pregunta
2 Respuestas
2109 Vistas

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
Descartar
Mejor respuesta

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
Descartar
Autor

Thank you!

Mejor respuesta

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
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
2
jul 24
1575
2
ene 21
5959
1
jul 19
6571
3
jun 15
5610
0
feb 21
3837