Hi !
I wrote an @api.onchange method (ation_afaire) that detects a change in a Datetime field and calls another method (action_confirm) of the same class which among other things changes the order status to 'sale'. Everything works fine, when I make a change in the date_realization field the order state changes to sale. The problem is that when I click on save the system doesn't pick up the change and it all goes back to the previous state !
Does anybody knows why I am being unable to save this state change ?
Thank you !
Here's the code:
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class gescom_states(models.Model):
_inherit = 'sale.order'
date_realization= fields.Datetime(string='Date de réalisation', store=True)
@api.multi
def action_confirm(self):
for order in self:
order.state = 'sale'
if self.env.context.get('send_email'):
self.force_quotation_send()
order.order_line._action_procurement_create()
if self.env['ir.values'].get_default('sale.config.settings', 'auto_done_setting'):
self.action_done()
return True
@api.onchange('date_realization')
def action_afaire(self):
super (gescom_states,self).action_confirm()
do you want to call the function action_confirm while onchange of the field 'date_realization'?
do you have all fields (that you want to be saved) on the view XML ? If not needed / visible, you have to put them invisible, and so they'll get saved