2012-04-13 04:17:59 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import logging
|
2012-08-13 22:16:01 +00:00
|
|
|
import simplejson
|
2012-04-23 11:04:03 +00:00
|
|
|
|
2012-04-13 04:17:59 +00:00
|
|
|
try:
|
|
|
|
import openerp.addons.web.common.http as openerpweb
|
2012-08-13 22:16:01 +00:00
|
|
|
from openerp.addons.web.controllers.main import manifest_list, module_boot, html_template
|
2012-04-13 04:17:59 +00:00
|
|
|
except ImportError:
|
|
|
|
import web.common.http as openerpweb
|
|
|
|
|
|
|
|
class PointOfSaleController(openerpweb.Controller):
|
|
|
|
_cp_path = '/pos'
|
|
|
|
|
2012-08-13 22:16:01 +00:00
|
|
|
@openerpweb.httprequest
|
|
|
|
def app(self, req, s_action=None, **kw):
|
|
|
|
js = "\n ".join('<script type="text/javascript" src="%s"></script>' % i for i in manifest_list(req, None, 'js'))
|
|
|
|
css = "\n ".join('<link rel="stylesheet" href="%s">' % i for i in manifest_list(req, None, 'css'))
|
|
|
|
|
|
|
|
cookie = req.httprequest.cookies.get("instance0|session_id")
|
|
|
|
session_id = cookie.replace("%22","")
|
|
|
|
template = html_template.replace('<html','<html manifest="/pos/manifest?session_id=%s"'%session_id)
|
|
|
|
r = template % {
|
|
|
|
'js': js,
|
|
|
|
'css': css,
|
|
|
|
'modules': simplejson.dumps(module_boot(req)),
|
|
|
|
'init': 'var wc = new s.web.WebClient();wc.appendTo($(document.body));'
|
|
|
|
}
|
|
|
|
return r
|
|
|
|
|
|
|
|
@openerpweb.httprequest
|
|
|
|
def manifest(self, req, **kwargs):
|
2012-08-17 14:24:15 +00:00
|
|
|
""" This generates a HTML5 cache manifest files that preloads the categories and products thumbnails """
|
|
|
|
|
2012-08-13 22:16:01 +00:00
|
|
|
ml = ["CACHE MANIFEST"]
|
2012-08-17 14:24:15 +00:00
|
|
|
|
|
|
|
products = req.session.model('product.product')
|
|
|
|
for p in products.search_read([('pos_categ_id','!=',False)], ['name']):
|
2012-08-13 22:16:01 +00:00
|
|
|
product_id = p['id']
|
2012-08-17 14:24:15 +00:00
|
|
|
url = "/web/binary/image?session_id=%s&model=product.product&field=image&id=%s" % (req.session_id, product_id)
|
|
|
|
ml.append(url)
|
|
|
|
|
|
|
|
categories = req.session.model('pos.category')
|
|
|
|
for c in categories.search_read([],['name']):
|
|
|
|
category_id = c['id']
|
|
|
|
url = "/web/binary/image?session_id=%s&model=pos.category&field=image&id=%s" % (req.session_id, category_id)
|
2012-08-13 22:16:01 +00:00
|
|
|
ml.append(url)
|
2012-08-17 14:24:15 +00:00
|
|
|
|
2012-08-13 22:30:32 +00:00
|
|
|
ml += ["NETWORK:","*"]
|
2012-08-13 22:16:01 +00:00
|
|
|
m = "\n".join(ml)
|
2012-08-17 14:24:15 +00:00
|
|
|
|
2012-08-13 22:16:01 +00:00
|
|
|
return m
|
|
|
|
|
2012-04-13 04:17:59 +00:00
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def dispatch(self, request, iface, **kwargs):
|
|
|
|
method = 'iface_%s' % iface
|
|
|
|
return getattr(self, method)(request, **kwargs)
|
|
|
|
|
2012-04-23 11:04:03 +00:00
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def scan_item_success(self, request):
|
|
|
|
"""
|
|
|
|
A product has been scanned with success
|
|
|
|
"""
|
2012-05-23 12:47:54 +00:00
|
|
|
print 'scan_item_success'
|
2012-05-23 13:00:11 +00:00
|
|
|
return
|
2012-04-23 11:04:03 +00:00
|
|
|
|
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def scan_item_error_unrecognized(self, request):
|
|
|
|
"""
|
|
|
|
A product has been scanned without success
|
|
|
|
"""
|
2012-05-23 12:47:54 +00:00
|
|
|
print 'scan_item_error_unrecognized'
|
|
|
|
return
|
2012-04-23 11:04:03 +00:00
|
|
|
|
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def help_needed(self, request):
|
|
|
|
"""
|
|
|
|
The user wants an help (ex: light is on)
|
|
|
|
"""
|
2012-05-23 12:47:54 +00:00
|
|
|
print "help_needed"
|
|
|
|
return
|
2012-04-23 11:04:03 +00:00
|
|
|
|
|
|
|
@openerpweb.jsonrequest
|
2012-05-23 12:47:54 +00:00
|
|
|
def help_canceled(self, request):
|
2012-04-23 11:04:03 +00:00
|
|
|
"""
|
|
|
|
The user stops the help request
|
|
|
|
"""
|
2012-05-23 12:47:54 +00:00
|
|
|
print "help_canceled"
|
|
|
|
return
|
2012-04-23 11:04:03 +00:00
|
|
|
|
2012-05-23 12:47:54 +00:00
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def weighting_start(self, request):
|
|
|
|
print "weighting_start"
|
2012-05-23 13:00:11 +00:00
|
|
|
return
|
2012-04-23 11:04:03 +00:00
|
|
|
|
2012-05-23 12:47:54 +00:00
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def weighting_read_kg(self, request):
|
|
|
|
print "weighting_read_kg"
|
|
|
|
return 0.0
|
2012-04-23 11:04:03 +00:00
|
|
|
|
2012-05-23 12:47:54 +00:00
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def weighting_end(self, request):
|
|
|
|
print "weighting_end"
|
2012-05-23 13:00:11 +00:00
|
|
|
return
|
2012-04-23 11:04:03 +00:00
|
|
|
|
2012-05-23 12:47:54 +00:00
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def payment_request(self, request, price, method, info):
|
|
|
|
"""
|
|
|
|
The PoS will activate the method payment
|
|
|
|
"""
|
2012-05-23 13:00:11 +00:00
|
|
|
print "payment_request: price:"+str(price)+" method:"+str(method)+" info:"+str(info)
|
|
|
|
return
|
2012-04-23 11:04:03 +00:00
|
|
|
|
2012-07-12 17:00:13 +00:00
|
|
|
@openerpweb.jsonrequest
|
2012-05-23 12:47:54 +00:00
|
|
|
def is_payment_accepted(self, request):
|
2012-05-23 13:00:11 +00:00
|
|
|
print "is_payment_accepted"
|
2012-07-12 17:00:13 +00:00
|
|
|
return 'waiting_for_payment'
|
2012-04-23 11:04:03 +00:00
|
|
|
|
2012-07-12 17:00:13 +00:00
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def payment_canceled(self, request):
|
|
|
|
print "payment_canceled"
|
2012-05-23 13:00:11 +00:00
|
|
|
return
|
2012-04-23 11:04:03 +00:00
|
|
|
|
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def transaction_start(self, request):
|
2012-05-23 12:47:54 +00:00
|
|
|
print 'transaction_start'
|
2012-05-23 13:00:11 +00:00
|
|
|
return
|
2012-04-23 11:04:03 +00:00
|
|
|
|
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def transaction_end(self, request):
|
2012-05-23 12:47:54 +00:00
|
|
|
print 'transaction_end'
|
2012-05-23 13:00:11 +00:00
|
|
|
return
|
2012-04-23 11:04:03 +00:00
|
|
|
|
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def cashier_mode_activated(self, request):
|
2012-05-23 12:47:54 +00:00
|
|
|
print 'cashier_mode_activated'
|
2012-05-23 13:00:11 +00:00
|
|
|
return
|
2012-04-23 11:04:03 +00:00
|
|
|
|
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def cashier_mode_deactivated(self, request):
|
2012-05-23 12:47:54 +00:00
|
|
|
print 'cashier_mode_deactivated'
|
2012-05-23 13:00:11 +00:00
|
|
|
return
|
2012-04-23 11:04:03 +00:00
|
|
|
|
2012-05-23 14:01:53 +00:00
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def open_cashbox(self, request):
|
|
|
|
print 'open_cashbox'
|
|
|
|
return
|
|
|
|
|
|
|
|
@openerpweb.jsonrequest
|
|
|
|
def print_receipt(self, request, receipt):
|
|
|
|
print 'print_receipt' + str(receipt)
|
|
|
|
return
|
|
|
|
|
2012-08-13 22:16:01 +00:00
|
|
|
|