Skip to Content
Menu
This question has been flagged
1 Reply
1681 Views

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
Discard
Best Answer

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
Discard
Author

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

Related Posts Replies Views Activity
3
Feb 25
1839
1
Nov 24
1512
1
Apr 21
7065
6
Jan 24
14639
1
Jul 16
3572