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