Ir al contenido
Menú
Se marcó esta pregunta
1 Responder
2218 Vistas

Hi,

I want the invoice due date to be 30 days after it is created.

for that, I created an input field in res.config as we have for sales quotation validity.

When the give invoice date according that the due date should be change as per user's input in config.
but the function which i created it not being called.
Please help with this.


res.config

class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'

invoice_validity_days = fields.Integer('Invoice Validity', default=30, readonly=False)

res.config.views.xml

acccount_move.py

class AccountMove(models.Model):
_inherit = 'account.move'

invoice_date_due = fields.Date(
string='Due Date',
compute='_compute_invoice_date_due', store=True, readonly=False,
index=True,
copy=False,
)

@api.onchange('invoice_date')
def _compute_invoice_date_due(self):
today = fields.Date.context_today(self)
print("The Days before loop----------->", today)
for date in self:
days = date.invoice_validity_days
print("The Day in loop----------->", days)
if days > 0:
date._compute_invoice_date_due = today + timedelta(days)
else:
date._compute_invoice_date_due = False




Avatar
Descartar
Mejor respuesta

Hi,

Change the _compute_invoice_date_due function
 Try this code:

class AccountMove (models.Model):
    _inherit = 'account.move'

    invoice_date_due = fields.Date(
        string='Due Date',
        compute='_compute_invoice_date_due', store=True, readonly=False,
        index=True,
        copy=False,
    )

    @api.depends('needed_terms')
    def _compute_invoice_date_due(self):
        due_date = fields.Date.context_today(self)+ timedelta(days=30)
        for move in self:
            move.invoice_date_due = move.needed_terms and max(
                (k['date_maturity'] for k in move.needed_terms.keys() if k),
                default=False,
            ) or move.invoice_date_due or due_date


Hope it helps

Avatar
Descartar
Autor

It is hardcoded but I want per-user input
If I give 15 days to setting the date should be 15 days after invoice date

Publicaciones relacionadas Respuestas Vistas Actividad
3
feb 25
2531
1
nov 24
2276
1
abr 21
7497
6
ene 24
15185
1
jul 16
3910