|
from odoo import models, fields, api
|
|
|
|
|
|
class SaleOrder(models.Model):
|
|
_inherit = 'sale.order'
|
|
|
|
|
|
def write(self,vals):
|
|
|
|
res = super(SaleOrder, self).write(vals)
|
|
|
|
if self.state=='sale':
|
|
|
|
#on recherche si le devis est lié à une booking inscription
|
|
event_registration=self.env['event.registration'].search(['|','|',('order_id','=',int(self.id)),('down_payment_order_id','=',int(self.id)),('balance_order_id','=',int(self.id))])
|
|
#event_registration=self.env['event.registration'].search([('order_id','=',int(self.id))])
|
|
|
|
if event_registration:
|
|
|
|
if event_registration.payment_status=='paid':
|
|
amount=0
|
|
for option in event_registration.option_ids:
|
|
prd=self.env['product.product'].search([('id','=',int(option.booking_option_id)),('donation','=',True)])
|
|
if prd:
|
|
#au niveau de l'événement,on recherche le montant du don en fonction du statut:
|
|
booking_option=self.env['booking.option'].search([('event_id','=',int(event_registration.event_id)),('booking_option_id','=',int(option.booking_option_id))])
|
|
if booking_option:
|
|
if event_registration.partner_id.member_status=='not member' : amount=booking_option.booking_option_price
|
|
if event_registration.partner_id.member_status=='member': amount=booking_option.booking_option_member_price
|
|
if event_registration.partner_id.member_status=='super member': amount=booking_option.booking_option_super_member_price
|
|
|
|
|
|
self.env['event.registration'].create_donation(event_registration.id,event_registration.partner_id,option.booking_option_id,amount)
|
|
|
|
|
|
|
|
|
|
|
|
|