You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

61 lines
2.6 KiB

# © 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import http, _
from odoo.http import request
from odoo.addons.website_sale.controllers.main import WebsiteSale
from odoo.addons.website_sale_delivery.controllers.main import WebsiteSaleDelivery
class VracoopWebsiteSaleDelivery(WebsiteSale):
@http.route(['/shop/update_retrait'], type='json', auth='public', methods=['POST'], website=True, csrf=False)
def update_eshop_retrait(self, **post):
results = {}
if hasattr(self, '_update_website_sale_retrait'):
results.update(self._update_website_sale_retrait(**post))
return results
def _get_shop_payment_values(self, order, **kwargs):
values = super(VracoopWebsiteSaleDelivery, self)._get_shop_payment_values(order, **kwargs)
points_retrait = request.env['vracoop.point.retrait'].sudo().search([('website_published', '=', True)])
values['points_retrait'] = points_retrait
return values
def _update_website_sale_retrait(self, **post):
order = request.website.sale_get_order()
if order:
if 'vracoop_point_retrait_id' in post:
vracoop_point_retrait_id = int(post['vracoop_point_retrait_id'])
order._check_retrait(force_retrait_id=vracoop_point_retrait_id)
if 'day_retrait' in post:
day_retrait = post['day_retrait']
order._update_day(day_retrait=day_retrait)
if 'hour_retrait' in post:
hour_retrait = post['hour_retrait']
order._update_hour(hour_retrait=hour_retrait)
return self._update_website_sale_retrait_return(order, **post)
def _update_website_sale_retrait_return(self, order, **post):
if 'vracoop_point_retrait_id' in post:
vracoop_point_retrait_id = int(post['vracoop_point_retrait_id'])
else:
vracoop_point_retrait_id = ''
if 'day_retrait' in post:
day_retrait = post['day_retrait']
else:
day_retrait = ''
if 'hour_retrait' in post:
hour_retrait = post['hour_retrait']
else:
hour_retrait = ''
if order:
return {'status': order.delivery_rating_success,
'error_message': order.delivery_message,
'vracoop_point_retrait_id': vracoop_point_retrait_id,
'day_retrait': day_retrait,
'hour_retrait': hour_retrait
}
return {}