Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
1 Odpowiedz
2056 Widoki

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




Awatar
Odrzuć
Najlepsza odpowiedź

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

Awatar
Odrzuć
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

Powiązane posty Odpowiedzi Widoki Czynność
3
lut 25
2384
1
lis 24
2052
1
kwi 21
7377
6
sty 24
15037
1
lip 16
3833