# -*- coding: utf-8 -*- from odoo import models class SkeenCita(models.Model): _inherit = 'skeen.cita' def _get_visita_en_curso(self): self.ensure_one() return self.env['skeen.visita'].search([ ('cita_id', '=', self.id), ('state', '=', 'en_curso'), ], limit=1) def action_arrive(self): res = super(SkeenCita, self).action_arrive() for cita in self: # Crear la visita clĂ­nica al llegar el paciente (una por cita) if not cita._get_visita_en_curso(): self.env['skeen.visita'].create({ 'cita_id': cita.id, 'partner_id': cita.partner_id.id, 'doctor_id': cita.doctor_id.id if cita.doctor_id else False, 'servicio_id': cita.servicio_id.id if cita.servicio_id else False, 'motivo': cita.servicio_id.name if cita.servicio_id else '', }) return res def action_done(self): res = super(SkeenCita, self).action_done() for cita in self: visita = cita._get_visita_en_curso() if visita: visita.action_complete() return res def action_cancel(self): res = super(SkeenCita, self).action_cancel() for cita in self: visita = cita._get_visita_en_curso() if visita: visita.action_cancel() return res def action_no_show(self): res = super(SkeenCita, self).action_no_show() for cita in self: visita = cita._get_visita_en_curso() if visita: visita.action_cancel() return res