From 9e941795da32085a771dc5b8a3dd80f670b6ef27 Mon Sep 17 00:00:00 2001 From: Antonio Espinosa Date: Mon, 22 Jun 2015 16:20:14 +0200 Subject: [PATCH] [ADD] POS ticket logo addon --- pos_ticket_logo/README.rst | 50 ++++++++++++ pos_ticket_logo/__init__.py | 24 ++++++ pos_ticket_logo/__openerp__.py | 43 +++++++++++ pos_ticket_logo/static/description/icon.png | Bin 0 -> 9553 bytes pos_ticket_logo/static/src/js/main.js | 73 ++++++++++++++++++ pos_ticket_logo/static/src/xml/pos.xml | 10 +++ pos_ticket_logo/views/pos_template.xml | 12 +++ .../pos_ticket_logo_report_receipt_report.xml | 17 ++++ 8 files changed, 229 insertions(+) create mode 100644 pos_ticket_logo/README.rst create mode 100644 pos_ticket_logo/__init__.py create mode 100644 pos_ticket_logo/__openerp__.py create mode 100644 pos_ticket_logo/static/description/icon.png create mode 100644 pos_ticket_logo/static/src/js/main.js create mode 100644 pos_ticket_logo/static/src/xml/pos.xml create mode 100644 pos_ticket_logo/views/pos_template.xml create mode 100644 pos_ticket_logo/views/pos_ticket_logo_report_receipt_report.xml diff --git a/pos_ticket_logo/README.rst b/pos_ticket_logo/README.rst new file mode 100644 index 00000000..366150d4 --- /dev/null +++ b/pos_ticket_logo/README.rst @@ -0,0 +1,50 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: AGPLv3 License + +POS Ticket logo +=============== + +Add company logo in POS ticket + + +Motivation +========== + +```XmlReceipt``` Qweb report is used when ```iface_print_via_proxy``` config is **True**: +https://github.com/odoo/odoo/blob/8.0/addons/point_of_sale/static/src/js/screens.js#L1341 + +But in the case ```iface_print_via_proxy``` config is **False**, ```PosTicket``` +Qweb report is used, and company_logo is not used: +https://github.com/odoo/odoo/blob/8.0/addons/point_of_sale/static/src/js/screens.js#L984 + +In other hand, company_logo is loaded using ```/web/binary/company_logo``` controller that returns a 150px wide logo: +https://github.com/odoo/odoo/blob/8.0/addons/point_of_sale/static/src/js/models.js#L371 +but after that logo is resized to 300px width, so a pixelled logo appears even +original logo is 300px wide. +That's why we override how company_logo is loaded. We also resized it to 260px +(not 300px) wide because appears cut in PDF: + + +Credits +======= + +Contributors +------------ + +* Antonio Espinosa +* Endika Iglesias + +Maintainer +---------- + +.. image:: http://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: http://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit http://odoo-community.org. diff --git a/pos_ticket_logo/__init__.py b/pos_ticket_logo/__init__.py new file mode 100644 index 00000000..f3ebd3ec --- /dev/null +++ b/pos_ticket_logo/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Python source code encoding : https://www.python.org/dev/peps/pep-0263/ +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright : +# (c) 2014 Antiun Ingenieria, SL (Madrid, Spain, http://www.antiun.com) +# Endika Iglesias +# Antonio Espinosa +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## diff --git a/pos_ticket_logo/__openerp__.py b/pos_ticket_logo/__openerp__.py new file mode 100644 index 00000000..e035b6ee --- /dev/null +++ b/pos_ticket_logo/__openerp__.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Python source code encoding : https://www.python.org/dev/peps/pep-0263/ +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright : +# (c) 2014 Antiun Ingenieria, SL (Madrid, Spain, http://www.antiun.com) +# Endika Iglesias +# Antonio Espinosa +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{ + 'name': 'Pos ticket logo', + 'category': 'Point Of Sale', + 'version': '1.0', + 'depends': [ + 'point_of_sale', + ], + 'data': [ + 'views/pos_ticket_logo_report_receipt_report.xml', + 'views/pos_template.xml', + ], + 'qweb': [ + 'static/src/xml/pos.xml', + ], + 'author': 'Antiun IngenierĂ­a S.L.', + 'website': 'http://www.antiun.com', + 'license': 'AGPL-3', + 'installable': True, +} diff --git a/pos_ticket_logo/static/description/icon.png b/pos_ticket_logo/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e060fb4a53a27360dd8d7c7ef6dc780c005f8832 GIT binary patch literal 9553 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

%U>@ziQ}s!5VfIQU5di$ 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 literal 0 HcmV?d00001 diff --git a/pos_ticket_logo/static/src/js/main.js b/pos_ticket_logo/static/src/js/main.js new file mode 100644 index 00000000..90903f5b --- /dev/null +++ b/pos_ticket_logo/static/src/js/main.js @@ -0,0 +1,73 @@ +/** + * # -*- coding: utf-8 -*- + * ############################################################################## + * # + * # OpenERP, Open Source Management Solution + * # This module copyright : + * # (c) 2014 Antiun Ingenieria, SL (Madrid, Spain, http://www.antiun.com) + * # Endika Iglesias + * # Antonio Espinosa + * # + * # This program is free software: you can redistribute it and/or modify + * # it under the terms of the GNU Affero General Public License as + * # published by the Free Software Foundation, either version 3 of the + * # License, or (at your option) any later version. + * # + * # This program is distributed in the hope that it will be useful, + * # but WITHOUT ANY WARRANTY; without even the implied warranty of + * # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * # GNU Affero General Public License for more details. + * # + * # You should have received a copy of the GNU Affero General Public License + * # along with this program. If not, see . + * # + * ############################################################################## + */ + +// Check jQuery available +if (typeof jQuery === 'undefined') { throw new Error('POS Ticket Logo Addon requires jQuery'); } + ++function ($) { + 'use strict'; + + openerp.pos_ticket_logo = function (instance, module) { + var _t = instance.web._t, + _lt = instance.web._lt; + var QWeb = instance.web.qweb; + + var PosModelParent = instance.point_of_sale.PosModel; + instance.point_of_sale.PosModel = instance.point_of_sale.PosModel.extend({ + load_server_data: function(){ + var self = this; + var loaded = PosModelParent.prototype.load_server_data.apply(this, arguments); + $.when(loaded).then(function(){ + self.company_logo.onload = function(){ + var img = self.company_logo; + var ratio = 1; + var targetwidth = 260; + var maxheight = 120; + if( img.width !== targetwidth ){ + ratio = targetwidth / img.width; + } + if( img.height * ratio > maxheight ){ + ratio = maxheight / img.height; + } + var width = Math.floor(img.width * ratio); + var height = Math.floor(img.height * ratio); + var c = document.createElement('canvas'); + c.width = width; + c.height = height; + var ctx = c.getContext('2d'); + ctx.drawImage(self.company_logo,0,0, width, height); + + self.company_logo_base64 = c.toDataURL(); + loaded.resolve(); + }; + self.company_logo.src = '/web/binary/image?model=res.company&id=' + self.company.id + '&field=logo'; + }); + return loaded; + } + }); + }; + +}(jQuery); diff --git a/pos_ticket_logo/static/src/xml/pos.xml b/pos_ticket_logo/static/src/xml/pos.xml new file mode 100644 index 00000000..80262d61 --- /dev/null +++ b/pos_ticket_logo/static/src/xml/pos.xml @@ -0,0 +1,10 @@ + + + + +

+
+
+ + + diff --git a/pos_ticket_logo/views/pos_template.xml b/pos_ticket_logo/views/pos_template.xml new file mode 100644 index 00000000..eb29caab --- /dev/null +++ b/pos_ticket_logo/views/pos_template.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/pos_ticket_logo/views/pos_ticket_logo_report_receipt_report.xml b/pos_ticket_logo/views/pos_ticket_logo_report_receipt_report.xml new file mode 100644 index 00000000..8f8f34e6 --- /dev/null +++ b/pos_ticket_logo/views/pos_ticket_logo_report_receipt_report.xml @@ -0,0 +1,17 @@ + + + + + +