# © 2019 Le Filament () # 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 {}