@ -0,0 +1,24 @@ |
|||
===================== |
|||
Point of Sale Logo v10 |
|||
====================== |
|||
This module helps you to set a logo for every point of sale. This will help you to |
|||
identify the point of sale easily. You can also see this logo in pos screen and pos receipt. |
|||
|
|||
Installation |
|||
============ |
|||
Just select it from available modules to install it, |
|||
there is no need to extra installations. |
|||
|
|||
|
|||
Configuration & Usage |
|||
===================== |
|||
* Go to configuration of POS. |
|||
* Add a logo to your POS. |
|||
* Ensure logo is near the resolution (width:76px;height:47px). |
|||
|
|||
Credits |
|||
======= |
|||
Developer: Nilmar Shereef @ cybrosys, shereef@cybrosys.in |
|||
Developer: Jesni Banu @ cybrosys, jesni@cybrosys.in |
|||
|
|||
|
@ -0,0 +1,24 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2017-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
|||
# Author: Nilmar Shereef(<http://www.cybrosys.com>) |
|||
# you can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# It is forbidden to publish, distribute, sublicense, or sell copies |
|||
# of the Software or modified copies of the Software. |
|||
# |
|||
# 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
import models |
|||
|
@ -0,0 +1,46 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2017-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
|||
# Author: Nilmar Shereef(<http://www.cybrosys.com>) |
|||
# you can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# It is forbidden to publish, distribute, sublicense, or sell copies |
|||
# of the Software or modified copies of the Software. |
|||
# |
|||
# 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
{ |
|||
'name': 'Point of Sale Logo', |
|||
'version': '10.0.1.0.0', |
|||
'summary': """Logo For Every Point of Sale (Screen & Receipt)""", |
|||
'description': """"This module helps you to set a logo for every point of sale. This will help you to |
|||
identify the point of sale easily. You can also see this logo in pos screen and pos receipt.""", |
|||
'category': 'Point Of Sale', |
|||
'author': 'Cybrosys Techno Solutions', |
|||
'company': 'Cybrosys Techno Solutions', |
|||
'website': "http://www.cybrosys.com", |
|||
'depends': ['base', 'point_of_sale'], |
|||
'data': [ |
|||
'views/pos_config_image_view.xml', |
|||
'views/pos_image_view.xml', |
|||
], |
|||
'qweb': ['static/src/xml/pos_ticket_view.xml', |
|||
'static/src/xml/pos_screen_image_view.xml'], |
|||
'images': ['static/description/banner.jpg'], |
|||
'license': 'AGPL-3', |
|||
'demo': [], |
|||
'installable': True, |
|||
'auto_install': False, |
|||
'application': False, |
|||
} |
@ -0,0 +1,24 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2017-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
|||
# Author: Nilmar Shereef(<http://www.cybrosys.com>) |
|||
# you can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# It is forbidden to publish, distribute, sublicense, or sell copies |
|||
# of the Software or modified copies of the Software. |
|||
# |
|||
# 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
import pos_config_image |
|||
|
@ -0,0 +1,29 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2017-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
|||
# Author: Nilmar Shereef(<http://www.cybrosys.com>) |
|||
# you can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# It is forbidden to publish, distribute, sublicense, or sell copies |
|||
# of the Software or modified copies of the Software. |
|||
# |
|||
# 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
from odoo import models, fields |
|||
|
|||
|
|||
class PosConfigImage(models.Model): |
|||
_inherit = 'pos.config' |
|||
|
|||
image = fields.Binary(string='Image') |
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 14 KiB |
@ -0,0 +1,110 @@ |
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h2 class="oe_slogan">Point of Sale Logo</h2> |
|||
<h3 class="oe_slogan">Logo For Every Point of Sale</h3> |
|||
<h4 class="oe_slogan"><a href="https://www.cybrosys.com">Cybrosys Technologies</a> </h4> |
|||
<div> |
|||
<h4><p>Features:</p></h4> |
|||
<ul> |
|||
<li style="list-style:none !important;"><span style="color:green;"> ☑</span> Logo for each point of sale.</li> |
|||
<li style="list-style:none !important;"><span style="color:green;"> ☑</span> Logo in pos screen.</li> |
|||
<li style="list-style:none !important;"><span style="color:green;"> ☑</span> Logo in pos receipt.</li> |
|||
</ul> |
|||
</div> |
|||
<div> |
|||
<p>This module helps you to set a logo for every point of sale. This will help you to |
|||
identify the point of sale easily. You can also see this logo in pos screen and pos receipt.</p> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h4 class="oe_slogan">Logo for each point of sale</h4> |
|||
<div class="oe_span12"> |
|||
<p class='oe_mt32'> |
|||
☛ Point of Sale -> Configuration -> Point of Sale<br/> |
|||
Here you can set logo for your point of sale. <br/> |
|||
Note:- Please choose the image with the dimension "width:76px;height:47px" for better output. |
|||
</p> |
|||
</div> |
|||
<div class="oe_span6"> |
|||
<div class="oe_row_img oe_centered"> |
|||
<img style="border:10px solid white;" class="oe_picture oe_screenshot" src="main.png"> |
|||
</div> |
|||
</div> |
|||
<div class="oe_span6"> |
|||
<div class="oe_row_img oe_centered"> |
|||
<img style="border:10px solid white;" class="oe_picture oe_screenshot" src="parcel_config.png"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h4 class="oe_slogan">Logo in pos screen</h4> |
|||
<div class="oe_span12"> |
|||
<p class='oe_mt32'> |
|||
☛ You can see your point of sale logo from the top left corner of pos screen<br> |
|||
</p> |
|||
</div> |
|||
<div class="oe_span6"> |
|||
<div class="oe_row_img oe_centered"> |
|||
<img style="border:10px solid white;" class="oe_picture oe_screenshot" src="pos_screen.png"> |
|||
</div> |
|||
</div> |
|||
<div class="oe_span6"> |
|||
<div class="oe_row_img oe_centered"> |
|||
<img style="border:10px solid white;" class="oe_picture oe_screenshot" src="parcel_screen.png"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h4 class="oe_slogan">Logo in pos receipt</h4> |
|||
<div class="oe_span12"> |
|||
<p class='oe_mt32'> |
|||
☛ POS receipt with point of sale logo and name<br> |
|||
</p> |
|||
</div> |
|||
<div class="oe_span6"> |
|||
<div class="oe_row_img oe_centered"> |
|||
<img style="border:10px solid white;" class="oe_picture oe_screenshot" src="recpt.png"> |
|||
</div> |
|||
</div> |
|||
<div class="oe_span6"> |
|||
<div class="oe_row_img oe_centered"> |
|||
<img style="border:10px solid white;" class="oe_picture oe_screenshot" src="parcel_rcpt.png"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container"> |
|||
<h2 class="oe_slogan" style="margin-top:20px;" >Need Any Help?</h2> |
|||
<div class="oe_slogan" style="margin-top:10px !important;"> |
|||
<div> |
|||
<a class="btn btn-primary btn-lg mt8" |
|||
style="color: #FFFFFF !important;border-radius: 0;" href="https://www.cybrosys.com"><i |
|||
class="fa fa-envelope"></i> Email </a> <a |
|||
class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" |
|||
href="https://www.cybrosys.com/contact/"><i |
|||
class="fa fa-phone"></i> Contact Us </a> <a |
|||
class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" |
|||
href="https://www.cybrosys.com/odoo-customization-and-installation/"><i |
|||
class="fa fa-check-square"></i> Request Customization </a> |
|||
</div> |
|||
<br> |
|||
<img src="cybro_logo.png" style="width: 190px; margin-bottom: 20px;" class="center-block"> |
|||
<div> |
|||
<a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;"></i></a></td> |
|||
<a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;padding-left: 3px;"></i></a></td> |
|||
<a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px;padding-left: 8px;"></i></a></td> |
|||
<a href="https://plus.google.com/106641282743045431892/about" target="_blank"><i class="fa fa-2x fa-google-plus" style="color:white;background: #c53c2c;width:35px;padding-left: 3px;"></i></a></td> |
|||
<a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;padding-left: 3px;"></i></a></td> |
|||
</div> |
|||
</div> |
|||
</section> |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 194 KiB |
After Width: | Height: | Size: 207 KiB |
After Width: | Height: | Size: 35 KiB |
@ -0,0 +1,38 @@ |
|||
odoo.define("point_of_sale_logo.image", function (require) { |
|||
"use strict"; |
|||
var PosBaseWidget = require('point_of_sale.chrome'); |
|||
var screens = require('point_of_sale.screens'); |
|||
var core = require('web.core'); |
|||
|
|||
var QWeb = core.qweb; |
|||
console.log("PosBaseWidget", PosBaseWidget) |
|||
screens.ReceiptScreenWidget.include({ |
|||
render_receipt: function () { |
|||
this._super(this); |
|||
var order = this.pos.get_order() |
|||
this.$('.pos-receipt-container').html(QWeb.render('PosTicket',{ |
|||
widget:this, |
|||
a2 : window.location.origin + '/web/image?model=pos.config&field=image&id='+this.pos.config.id, |
|||
order: order, |
|||
receipt: order.export_for_printing(), |
|||
orderlines: order.get_orderlines(), |
|||
paymentlines: order.get_paymentlines(), |
|||
})); |
|||
}, |
|||
}); |
|||
PosBaseWidget.Chrome.include({ |
|||
renderElement:function () { |
|||
|
|||
var self = this; |
|||
console.log("self:", self) |
|||
|
|||
if(self.pos.config){ |
|||
if(self.pos.config.image){ |
|||
this.flag = 1 |
|||
this.a3 = window.location.origin + '/web/image?model=pos.config&field=image&id='+self.pos.config.id; |
|||
} |
|||
} |
|||
this._super(this); |
|||
} |
|||
}); |
|||
}); |
@ -0,0 +1,22 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<templates id="point_of_sale.template" xml:space="preserve"> |
|||
<t t-extend="Chrome"> |
|||
<t t-jquery='.pos-topheader' t-operation='replace'> |
|||
<div class="pos-topheader"> |
|||
<div class="pos-branding"> |
|||
<t t-if='widget.a3'> |
|||
<img class="pos-logo" t-att-src="widget.a3" style="width:76px;height:47px"/> |
|||
</t> |
|||
<t t-if='!widget.a3'> |
|||
<img class="pos-logo" src="/point_of_sale/static/src/img/logo.png" /> |
|||
</t> |
|||
<span class="placeholder-UsernameWidget"></span> |
|||
</div> |
|||
<div class="pos-rightheader"> |
|||
<span class="placeholder-OrderSelectorWidget"></span> |
|||
<!-- here goes header buttons --> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</t> |
|||
</templates> |
@ -0,0 +1,156 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<templates id="point_of_sale.template" xml:space="preserve"> |
|||
<t t-extend="PosTicket"> |
|||
<t t-jquery='.pos-sale-ticket' t-operation='replace'> |
|||
<div class="pos-sale-ticket"> |
|||
<div> |
|||
<div style="width: 55%; float: left; padding: 20px 0px;"> |
|||
<t t-if="widget.pos.company.phone"> |
|||
Phone: <t t-esc="widget.pos.company.phone || ''"/><br /> |
|||
</t> |
|||
Cashier: <t t-esc="widget.pos.cashier ? widget.pos.cashier.name : widget.pos.user.name"/><br /> |
|||
<t t-esc="order.name"/> |
|||
<t t-esc="moment().format('L LT')"/> |
|||
</div> |
|||
<div style="width: 45%;float: left; "> |
|||
<t t-if='widget.pos.config.image'> |
|||
<img t-att-src="a2" style="width:100%"/> |
|||
</t> |
|||
<t t-if='!widget.pos.config.image'> |
|||
<img src='/web/binary/company_logo' style="width:100%"/> |
|||
</t> |
|||
</div> |
|||
</div> |
|||
<t t-if="widget.pos.config.name"> |
|||
<div style="width:100%;text-align:right;"><t t-esc="widget.pos.config.name"/></div> |
|||
</t> |
|||
<t t-if="widget.pos.company.name"> |
|||
<div style="width:100%;text-align:right;"><t t-esc="widget.pos.company.name"/></div> |
|||
</t> |
|||
<t t-if="widget.pos.company.email"> |
|||
<div style="width:100%;text-align:right;"><t t-esc="widget.pos.company.email"/></div> |
|||
</t> |
|||
<br /> |
|||
<t t-if="receipt.header"> |
|||
<div style='text-align:center'> |
|||
<t t-esc="receipt.header" /> |
|||
</div> |
|||
<br/> |
|||
</t> |
|||
<table class='receipt-orderlines'> |
|||
<colgroup> |
|||
<col width='40%' /> |
|||
<col width='15%' /> |
|||
<col width='15%' /> |
|||
<col width='30%' /> |
|||
</colgroup> |
|||
<tr style="border: 1px solid rgb(0, 0, 0);"> |
|||
<th>Name</th> |
|||
<th>Qty</th> |
|||
<th>Price</th> |
|||
<th>Value</th> |
|||
</tr> |
|||
<tr t-foreach="orderlines" t-as="orderline"> |
|||
<td> |
|||
<t t-esc="orderline.get_product().display_name"/> |
|||
<t t-if="orderline.get_discount() > 0"> |
|||
<div class="pos-disc-font"> |
|||
With a <t t-esc="orderline.get_discount()"/>% discount |
|||
</div> |
|||
</t> |
|||
</td> |
|||
<td> |
|||
<t t-esc="orderline.get_quantity_str_with_unit()"/> |
|||
</td> |
|||
<td> |
|||
<t t-set="a" t-value="orderline.quantityStr"></t> |
|||
<t t-set="b" t-value="orderline.get_display_price()"></t> |
|||
<t t-set="c" t-value="b/a"></t> |
|||
<t t-esc="c"/> |
|||
</td> |
|||
<td style='text-align:right'> |
|||
<t t-esc="widget.format_currency(orderline.get_display_price())"/> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<br /> |
|||
<table class='receipt-total'> |
|||
<colgroup> |
|||
<col width='40%' /> |
|||
<col width='30%' /> |
|||
<col width='30%' /> |
|||
</colgroup> |
|||
<tr> |
|||
<td></td> |
|||
<td>Subtotal:</td> |
|||
<td style='text-align:right'> |
|||
<t t-esc="widget.format_currency(order.get_total_without_tax())"/> |
|||
</td> |
|||
</tr> |
|||
<t t-foreach="order.get_tax_details()" t-as="taxdetail"> |
|||
<tr> |
|||
<td></td> |
|||
<td><t t-esc="taxdetail.name" /></td> |
|||
<td style='text-align:right'> |
|||
<t t-esc="widget.format_currency(taxdetail.amount)"/> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
<tr> |
|||
<td></td> |
|||
<td>Discount:</td> |
|||
<td style='text-align:right'> |
|||
<t t-esc="widget.format_currency(order.get_total_discount())"/> |
|||
</td> |
|||
</tr> |
|||
<tr class="emph"> |
|||
<td>Total:</td> |
|||
<td colspan="2" style='text-align:right'> |
|||
<t t-esc="widget.format_currency(order.get_total_with_tax())"/> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<br/> |
|||
<table class='receipt-paymentlines'> |
|||
<colgroup> |
|||
<col width='38%' /> |
|||
<col width='20%' /> |
|||
<col width='13%' /> |
|||
<col width='29%' /> |
|||
</colgroup> |
|||
<t t-foreach="paymentlines" t-as="line"> |
|||
<tr> |
|||
<td> |
|||
<t t-esc="line.name"/> |
|||
</td> |
|||
<td> |
|||
</td> |
|||
<td> |
|||
</td> |
|||
<td style='text-align:right'> |
|||
<t t-esc="widget.format_currency(line.get_amount())"/> |
|||
</td> |
|||
</tr> |
|||
</t> |
|||
</table> |
|||
<br/> |
|||
<table class='receipt-change'> |
|||
<colgroup> |
|||
<col width='40%' /> |
|||
<col width='15%' /> |
|||
<col width='15%' /> |
|||
<col width='30%' /> |
|||
</colgroup> |
|||
<tr><td>Change:</td> |
|||
<td> |
|||
</td> |
|||
<td> |
|||
</td> |
|||
<td style='text-align:right'> |
|||
<t t-esc="widget.format_currency(order.get_change())"/> |
|||
</td></tr> |
|||
</table> |
|||
</div> |
|||
</t> |
|||
</t> |
|||
</templates> |
@ -0,0 +1,15 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<record id="pos_config_inherit_form_view" model="ir.ui.view"> |
|||
<field name="name">pos.config.inherit.form</field> |
|||
<field name="model">pos.config</field> |
|||
<field name="inherit_id" ref="point_of_sale.view_pos_config_form"/> |
|||
<field name="arch" type="xml"> |
|||
<field name="name" position="before"> |
|||
<field name="image" widget='image' class="oe_avatar"/> |
|||
</field> |
|||
</field> |
|||
</record> |
|||
</data> |
|||
</odoo> |
@ -0,0 +1,10 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<template id="assets" inherit_id="point_of_sale.assets"> |
|||
<xpath expr="." position="inside"> |
|||
<script type="text/javascript" src="/point_of_sale_logo/static/src/js/pos_image_field.js"></script> |
|||
</xpath> |
|||
</template> |
|||
</data> |
|||
</odoo> |