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

Hello, I have this code.


class HrExpenseExtended(models.Model):

    _inherit = 'hr.expense'


    def copy_expense(self,default=None):

        default = dict(default or {})

        default['name'] = self.name + ' (Copy)'

        new_log = super(HrExpenseExtended,self).copy(default)

        return {

            # 'name': self.order_id,

            'res_model': 'hr.expense',

            'type': 'ir.actions.act_window',

            'context': {},

            'view_mode': 'form',

            'view_type': 'form',

            'res_id': new_log.id,

            'view_id': self.env.ref("hr_expense.hr_expense_view_form").id,

            'target': 'current'

        }


There is a date field in the hr.expense model, what can I do so that when the user duplicates a record, that field can be automatically increased by 1 month?

Example: If you have a record created with a date of February 10, when I duplicate it, does the duplicate record appear with March 10?

Odoo 13 community, thanks and sorry for the inconvenience.

Avatar
Discard
Best Answer

Hi 

You can import date_utlis in Python, and add one more month to the date. Here is an example 

from odoo.tools import date_utils
default['date'] = date_utils.add(self.date, months=1)

Regards




Avatar
Discard
Author

Greetings, and thanks for answering.
When I put that line of code I get this error:

psycopg2.errors.InvalidDatetimeFormat: invalid input syntax for type date: "31"
LINE 1: ... 30, (now() at time zone 'UTC'), 83, NULL, 2, 33, '31', 'Pag...

Author

False alert, I already solved the problem, thank you very much!

Related Posts Replies Views Activity
3
Aug 24
12875
2
Jul 24
422
2
May 24
385
1
Feb 24
319
2
Jun 23
3133