обновить поля из cron odoo - PullRequest
       6

обновить поля из cron odoo

0 голосов
/ 17 сентября 2018

Я хочу обновить поле другой моделью поля

, например, когда я выбираю сотрудника, я хочу обновить его координаты в (hr.employee)

class hr_employee(models.Model):
    _name = 'hr.employee.transfer'
    _rec_name = 'employee_id'




    def _cron_transfert(self):
        current_date = datetime.now() 
        transfer = self.env['hr.employee.transfer'].search([('date_transfer' ,'>', current_date.strftime('%Y-%m-%d')),('state','=','done')])
        for employee in transfer: 
            employee.address_id = transfer.address_id_new 
            employee.job_id = transfer.job_id_new
            print '-------------------',transfer.job_id_new    


    date_cration = fields.Date(string='Date order', required=True, default=datetime.today())
    date_transfer = fields.Date(string='Date of actual transfer' ,required=True)
    employee_id = fields.Many2one('hr.employee',string='Employee', required=True)
    country_work_id = fields.Many2one('res.country',string='Country', required=True)
    country_id = fields.Many2one('res.country',string='Nationality',  required=True)   
    job_id = fields.Many2one('hr.job',string='Job title',  required=True) 
    state_work_id = fields.Many2one('res.country.state',string='Fed. State', domain="[('country_id', '=', country_work_id)]",  required=True)   
    working_address = fields.Many2one('res.partner',string='Working Address',  required=True)   

    job_id_new = fields.Many2one('hr.job',string='Job title',  required=True) 
    address_id_new = fields.Many2one('res.partner', string='Working Address new',  required=True)




    state = fields.Selection([
        ('draft', 'Draft'),
        ('accept', 'Director Manager'),
        ('done', 'Done'),
        ('cancel', 'Cancel'),
    ], string='Order Status', readonly=True, copy=False, store=True, default='draft')

Я хочуизмените поле address_id (в 'hr.employee) этим address_id_new и поле job_id (в' hr.employee) этим job_id_new

я добавляю функцию _cron_transfert в Cron (XML), но если, когда я нажимаю «Запустить вручную», эта ошибка исчезает (ValueError: Ожидаемый singleton: hr.employee.transfer (37, 38)

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Спасибо всем, что нашел решение и оно

def _cron_emp(self):
    current_date = datetime.now() 
    record= self.env['hr.employee.transfer'].search([('date_transfer' ,'<=', current_date.strftime('%Y-%m-%d')),('state','=','done')])
    for rec in record: 
        rec.employee_id.job_id= transfer.job_id_new
        rec.employee_id.address_id = transfer.address_id_new 
0 голосов
/ 18 сентября 2018

Измените свою функцию следующим образом

    def _cron_transfert(self):
        current_date = datetime.now() 
        transfer = self.env['hr.employee.transfer'].search([('date_transfer' ,'>', current_date.strftime('%Y-%m-%d')),('state','=','done')])
        for employee in transfer: 
            employee.address_id = employee.address_id_new.id 
            employee.job_id = employee.job_id_new.id
            print '-------------------',transfer.job_id_new  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...