2013-12-02 12:34:37 +00:00
|
|
|
import random
|
|
|
|
import uuid
|
|
|
|
import simplejson
|
|
|
|
|
|
|
|
import werkzeug.exceptions
|
|
|
|
|
|
|
|
from openerp import SUPERUSER_ID
|
|
|
|
from openerp.osv import osv
|
|
|
|
from openerp.addons.web import http
|
|
|
|
from openerp.addons.web.http import request
|
|
|
|
from openerp.addons.website.models import website
|
|
|
|
|
|
|
|
class sale_quote(http.Controller):
|
|
|
|
|
|
|
|
def get_quote(self, token):
|
2013-12-06 10:43:39 +00:00
|
|
|
order_pool = request.registry.get('sale.order')
|
|
|
|
order_id = order_pool.search(request.cr, SUPERUSER_ID, [('access_token', '=', token)], context=request.context)
|
|
|
|
return order_id
|
|
|
|
|
2013-12-02 12:34:37 +00:00
|
|
|
@website.route(['/quote/<token>'], type='http', auth="public")
|
|
|
|
def view(self, token=None, **post):
|
|
|
|
values = {}
|
2013-12-06 10:43:39 +00:00
|
|
|
order_pool = request.registry.get('sale.order')
|
|
|
|
quotation = order_pool.browse(request.cr, SUPERUSER_ID, self.get_quote(token))[0]
|
|
|
|
render_template = 'website_sale_quote.so_quotation'
|
2013-12-02 12:34:37 +00:00
|
|
|
values.update({
|
|
|
|
'quotation' : quotation,
|
|
|
|
})
|
2013-12-06 10:43:39 +00:00
|
|
|
return request.website.render(render_template, values)
|
2013-12-02 12:34:37 +00:00
|
|
|
|
|
|
|
@website.route(['/quote/<token>/accept'], type='http', auth="public")
|
|
|
|
def accept(self, token=None , **post):
|
|
|
|
values = {}
|
2013-12-06 10:43:39 +00:00
|
|
|
quotation = request.registry.get('sale.order').write(request.cr, SUPERUSER_ID, self.get_quote(token), {'state': 'manual'})
|
2013-12-02 12:34:37 +00:00
|
|
|
return request.redirect("/quote/%s" % token)
|
|
|
|
|
|
|
|
@website.route(['/quote/<token>/decline'], type='http', auth="public")
|
|
|
|
def decline(self, token=None , **post):
|
|
|
|
values = {}
|
2013-12-06 10:43:39 +00:00
|
|
|
quotation = request.registry.get('sale.order').write(request.cr, SUPERUSER_ID, self.get_quote(token), {'state': 'cancel'})
|
2013-12-02 12:34:37 +00:00
|
|
|
return request.redirect("/quote/%s" % token)
|
|
|
|
|
|
|
|
@website.route(['/quote/<token>/post'], type='http', auth="public")
|
|
|
|
def post(self, token=None, **post):
|
|
|
|
values = {}
|
|
|
|
if post.get('new_message'):
|
|
|
|
request.session.body = post.get('new_message')
|
|
|
|
if 'body' in request.session and request.session.body:
|
2013-12-06 10:43:39 +00:00
|
|
|
request.registry.get('sale.order').message_post(request.cr, SUPERUSER_ID, self.get_quote(token),
|
2013-12-02 12:34:37 +00:00
|
|
|
body=request.session.body,
|
2013-12-06 13:57:20 +00:00
|
|
|
type='email',
|
2013-12-02 12:34:37 +00:00
|
|
|
subtype='mt_comment',
|
|
|
|
)
|
|
|
|
request.session.body = False
|
|
|
|
return request.redirect("/quote/%s" % token)
|
|
|
|
|
2013-12-09 13:10:15 +00:00
|
|
|
@website.route(['/quote/update_line'], type='json', auth="public")
|
|
|
|
def update(self, line_id=None, qty=None, remove=False,unlink=False,**post):
|
|
|
|
if unlink:
|
|
|
|
request.registry.get('sale.order.line').unlink(request.cr, SUPERUSER_ID,[int(line_id)], context=request.context)
|
|
|
|
else:
|
|
|
|
val = self._update_order_line(line_id=int(line_id), number=(remove and -1 or 1), qty=int(qty))
|
|
|
|
# order = request.registry['website'].get_current_order(request.cr, request.uid, context=request.context)
|
|
|
|
return {}
|
|
|
|
|
|
|
|
def _update_order_line(self,line_id, number,qty):
|
|
|
|
qty += number
|
|
|
|
request.registry.get('sale.order.line').write(request.cr, SUPERUSER_ID, [int(line_id)], {'product_uom_qty':(qty)}, context=request.context)
|
|
|
|
return qty
|