[FIX] website_event_sale: get_unit_price with event ticket
When the line is linked to an event ticket, the price must be taken on the ticket. Fixes #11521 opw:673176
This commit is contained in:
parent
b25c054c93
commit
880e951f34
|
@ -23,7 +23,7 @@ from openerp import SUPERUSER_ID
|
||||||
from openerp.addons.web import http
|
from openerp.addons.web import http
|
||||||
from openerp.addons.web.http import request
|
from openerp.addons.web.http import request
|
||||||
from openerp.addons.website_event.controllers.main import website_event
|
from openerp.addons.website_event.controllers.main import website_event
|
||||||
from openerp.addons.website_sale.controllers.main import get_pricelist
|
from openerp.addons.website_sale.controllers.main import get_pricelist, website_sale
|
||||||
from openerp.tools.translate import _
|
from openerp.tools.translate import _
|
||||||
|
|
||||||
|
|
||||||
|
@ -74,4 +74,20 @@ class website_event(website_event):
|
||||||
return super(website_event, self)._add_event(event_name, context, **kwargs)
|
return super(website_event, self)._add_event(event_name, context, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class website_sale(website_sale):
|
||||||
|
|
||||||
|
@http.route(['/shop/get_unit_price'], type='json', auth="public", methods=['POST'], website=True)
|
||||||
|
def get_unit_price(self, product_ids, add_qty, use_order_pricelist=False, **kw):
|
||||||
|
cr, uid, context, pool = request.cr, request.uid, request.context, request.registry
|
||||||
|
res_ticket = {}
|
||||||
|
if 'line_id' in kw:
|
||||||
|
line = pool['sale.order.line'].browse(cr, SUPERUSER_ID, kw['line_id'])
|
||||||
|
if line.event_ticket_id:
|
||||||
|
if line.order_id.pricelist_id:
|
||||||
|
ticket = pool['event.event.ticket'].browse(cr, SUPERUSER_ID, line.event_ticket_id.id, context=dict(context, pricelist=line.order_id.pricelist_id.id))
|
||||||
|
else:
|
||||||
|
ticket = line.event_ticket_id
|
||||||
|
res_ticket = {ticket.product_id.id: ticket.price_reduce or ticket.price}
|
||||||
|
product_ids.remove(ticket.product_id.id)
|
||||||
|
res_options = super(website_sale, self).get_unit_price(product_ids, add_qty, use_order_pricelist, **kw)
|
||||||
|
return dict(res_ticket.items() + res_options.items())
|
||||||
|
|
|
@ -69,7 +69,8 @@ $('.oe_website_sale').each(function () {
|
||||||
openerp.jsonRpc("/shop/get_unit_price", 'call', {
|
openerp.jsonRpc("/shop/get_unit_price", 'call', {
|
||||||
'product_ids': product_ids,
|
'product_ids': product_ids,
|
||||||
'add_qty': value,
|
'add_qty': value,
|
||||||
'use_order_pricelist': true})
|
'use_order_pricelist': true,
|
||||||
|
'line_id': line_id})
|
||||||
.then(function (res) {
|
.then(function (res) {
|
||||||
//basic case
|
//basic case
|
||||||
$dom.find('span.oe_currency_value').last().text(res[product_id].toFixed(2));
|
$dom.find('span.oe_currency_value').last().text(res[product_id].toFixed(2));
|
||||||
|
|
Loading…
Reference in New Issue