Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
1 Balas
2470 Tampilan

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
Buang
Jawaban Terbai

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
Buang
Penulis

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

Post Terkait Replies Tampilan Aktivitas
3
Feb 25
2795
1
Nov 24
2558
1
Apr 21
7678
6
Jan 24
15365
1
Jul 16
4011