35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
import json
|
|
import logging
|
|
import werkzeug.utils
|
|
|
|
from odoo import http
|
|
from odoo.http import request
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class PosController(http.Controller):
|
|
|
|
@http.route('/pos/web', type='http', auth='user')
|
|
def pos_web(self, debug=False, **k):
|
|
# if user not logged in, log him in
|
|
pos_sessions = request.env['pos.session'].search([
|
|
('state', '=', 'opened'),
|
|
('user_id', '=', request.session.uid),
|
|
('name', 'not like', '(RESCUE FOR')])
|
|
if not pos_sessions:
|
|
return werkzeug.utils.redirect('/web#action=point_of_sale.action_client_pos_menu')
|
|
pos_sessions.login()
|
|
context = {
|
|
'session_info': json.dumps(request.env['ir.http'].session_info())
|
|
}
|
|
return request.render('point_of_sale.index', qcontext=context)
|
|
|
|
@http.route('/pos/sale_details_report', type='http', auth='user')
|
|
def print_sale_details(self, date_start=False, date_stop=False, **kw):
|
|
r = request.env['report.point_of_sale.report_saledetails']
|
|
pdf = request.env['report'].with_context(date_start=date_start, date_stop=date_stop).get_pdf(r, 'point_of_sale.report_saledetails')
|
|
pdfhttpheaders = [('Content-Type', 'application/pdf'), ('Content-Length', len(pdf))]
|
|
return request.make_response(pdf, headers=pdfhttpheaders)
|