odex25_standard/odex25_donation/ensan_sale_management/controllers/controllers.py

36 lines
1.8 KiB
Python

from datetime import datetime
from odoo.http import request, route
from odoo.addons.payment.controllers.portal import PaymentProcessing
from odoo.addons.website_sale.controllers.main import WebsiteSale
class WebsiteSaleInherit(WebsiteSale):
def update_affiliate_visit_cookies(self, sale_order_id, result):
"""update affiliate.visit from cokkies data i.e created in product and shop method"""
res = super().update_affiliate_visit_cookies(sale_order_id, result)
cookies = dict(request.httprequest.cookies)
visit = request.env['affiliate.visit'].sudo()
affiliate_key = cookies.get('affkey')
if affiliate_key:
partner_id = request.env['res.partner'].sudo().search([('res_affiliate_key', '=', affiliate_key), ('is_affiliate', '=', True)])
sale_order_id.partner_id.sudo().write({'affiliate_id': partner_id.id})
elif sale_order_id.partner_id.sudo().affiliate_id:
partner_id = sale_order_id.partner_id.sudo().affiliate_id
for s in sale_order_id.order_line:
visit.create({
'affiliate_method': 'pps',
'affiliate_key': affiliate_key or partner_id.res_affiliate_key,
'affiliate_partner_id': partner_id.id,
'url': "",
'ip_address': request.httprequest.environ['REMOTE_ADDR'],
'type_id': s.product_id.product_tmpl_id.id,
'affiliate_type': 'product',
'type_name': s.product_id.id,
'sales_order_line_id': s.id,
'convert_date': datetime.now(),
'affiliate_program_id': partner_id.affiliate_program_id.id,
'product_quantity': s.product_uom_qty,
'is_converted': True
})
return res