Browse Source

Merge pull request #300 from Tecnativa/11.0-mig-pos_ticket_logo

[MIG] pos_ticket_logo: Migration to 11.0
pull/341/head
Pedro M. Baeza 6 years ago
committed by GitHub
parent
commit
dca82cbd40
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 110
      pos_ticket_logo/README.rst
  2. 0
      pos_ticket_logo/__init__.py
  3. 21
      pos_ticket_logo/__manifest__.py
  4. 11
      pos_ticket_logo/readme/CONFIGURE.rst
  5. 6
      pos_ticket_logo/readme/CONTRIBUTORS.rst
  6. 11
      pos_ticket_logo/readme/DESCRIPTION.rst
  7. 3
      pos_ticket_logo/readme/USAGE.rst
  8. BIN
      pos_ticket_logo/static/description/icon.png
  9. 49
      pos_ticket_logo/static/src/js/models.js
  10. 13
      pos_ticket_logo/static/src/xml/pos.xml
  11. 13
      pos_ticket_logo/templates/assets.xml

110
pos_ticket_logo/README.rst

@ -0,0 +1,110 @@
===============
Pos Ticket Logo
===============
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpos-lightgray.png?logo=github
:target: https://github.com/OCA/pos/tree/11.0/pos_ticket_logo
:alt: OCA/pos
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/pos-11-0/pos-11-0-pos_ticket_logo
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/184/11.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
A different receipt template is used if the PoS ticket is printed via web or
via proxy. In the case the ticket is printed via web (through the browser) the
company logo isn't printed. This module adds it.
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/11.0/addons/point_of_sale/static/src/js/models.js#L481>`_:
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.
**Table of contents**
.. contents::
:local:
Configuration
=============
To add a logo to any given company:
#. Go to *Settings > Users & Companies > Companies*
#. Edit one and add the logo editing the top left corner image.
To configure receipt web print in the PoS (is the default setting):
#. Go to *Point of Sale > Configuration > Point of Sale*.
#. Edit the one you want to configure.
#. If the *PosBox* setting is enabled the *Receipt Printer* setting should be
disabled.
Usage
=====
#. Open a new PoS session.
#. Make an order and validate it.
#. You should see the company logo in the receipt preview.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/pos/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/pos/issues/new?body=module:%20pos_ticket_logo%0Aversion:%2011.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
~~~~~~~
* Tecnativa
Contributors
~~~~~~~~~~~~
* Endika Iglesias <endikaig@antiun.com>
* `Tecnativa <https://www.tecnativa.com>`_:
* Antonio Espinosa
* David Vidal
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
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.
This module is part of the `OCA/pos <https://github.com/OCA/pos/tree/11.0/pos_ticket_logo>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

0
pos_ticket_logo/__init__.py

21
pos_ticket_logo/__manifest__.py

@ -0,0 +1,21 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Pos Ticket Logo",
"category": "Point Of Sale",
"version": "11.0.1.0.0",
"author": "Tecnativa, "
"Odoo Community Association (OCA)",
"website": "https://github.com/OCA/pos",
"license": "AGPL-3",
"depends": [
"point_of_sale",
],
"data": [
"templates/assets.xml",
],
"qweb": [
"static/src/xml/pos.xml",
],
"installable": True,
}

11
pos_ticket_logo/readme/CONFIGURE.rst

@ -0,0 +1,11 @@
To add a logo to any given company:
#. Go to *Settings > Users & Companies > Companies*
#. Edit one and add the logo editing the top left corner image.
To configure receipt web print in the PoS (is the default setting):
#. Go to *Point of Sale > Configuration > Point of Sale*.
#. Edit the one you want to configure.
#. If the *PosBox* setting is enabled the *Receipt Printer* setting should be
disabled.

6
pos_ticket_logo/readme/CONTRIBUTORS.rst

@ -0,0 +1,6 @@
* Endika Iglesias <endikaig@antiun.com>
* `Tecnativa <https://www.tecnativa.com>`_:
* Antonio Espinosa
* David Vidal

11
pos_ticket_logo/readme/DESCRIPTION.rst

@ -0,0 +1,11 @@
A different receipt template is used if the PoS ticket is printed via web or
via proxy. In the case the ticket is printed via web (through the browser) the
company logo isn't printed. This module adds it.
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/11.0/addons/point_of_sale/static/src/js/models.js#L481>`_:
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.

3
pos_ticket_logo/readme/USAGE.rst

@ -0,0 +1,3 @@
#. Open a new PoS session.
#. Make an order and validate it.
#. You should see the company logo in the receipt preview.

BIN
pos_ticket_logo/static/description/icon.png

After

Width: 128  |  Height: 128  |  Size: 9.3 KiB

49
pos_ticket_logo/static/src/js/models.js

@ -0,0 +1,49 @@
/* License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). */
odoo.define("pos_ticket_logo.models", function (require) {
"use strict";
var models = require("point_of_sale.models");
var exports = {};
var _pictures = _.findWhere(
models.PosModel.prototype.models,
{label: "pictures"}
);
_pictures.loaded = function (self) {
self.company_logo = new Image();
var logo_loaded = new $.Deferred();
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();
logo_loaded.resolve();
};
self.company_logo.onerror = function () {
logo_loaded.reject();
};
self.company_logo.crossOrigin = "anonymous";
self.company_logo.src = '/web/binary/image?model=res.company&id=' +
self.company.id + '&field=logo';
return logo_loaded;
};
return exports;
});

13
pos_ticket_logo/static/src/xml/pos.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-extend="PosTicket">
<t t-jquery="div[class='pos-sale-ticket']" t-operation="prepend">
<div class="pos-center-align">
<img t-att-src="widget.pos.company_logo_base64"/><br />
</div>
</t>
</t>
</templates>

13
pos_ticket_logo/templates/assets.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets" inherit_id="point_of_sale.assets">
<xpath expr=".">
<script
type="text/javascript"
src="/pos_ticket_logo/static/src/js/models.js"/>
</xpath>
</template>
</odoo>
Loading…
Cancel
Save