Skip to content

Commit 2bb537a

Browse files
author
phucph
committed
[IMP] pos_ticket_send_by_mail: pre-commit auto fixes
1 parent 0ab6d53 commit 2bb537a

16 files changed

+484
-387
lines changed

pos_ticket_send_by_mail/__manifest__.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,24 @@
44
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html
55

66
{
7-
'name': 'POS Receipt By Email',
8-
'version': '12.0.1.0.0',
9-
'category': 'Custom',
10-
'author': 'Druidoo',
11-
'website': 'https://www.druidoo.io',
12-
'license': 'AGPL-3',
13-
'depends': [
14-
'point_of_sale',
7+
"name": "POS Receipt By Email",
8+
"version": "12.0.1.0.0",
9+
"category": "Custom",
10+
"author": "Druidoo",
11+
"website": "https://github.com/OCA/pos",
12+
"license": "AGPL-3",
13+
"depends": [
14+
"point_of_sale",
1515
],
16-
'data': [
17-
'security/ir.model.access.csv',
18-
'views/report_paperformat.xml',
19-
'views/view_pos_config_settings.xml',
20-
'data/email_template_data.xml',
21-
'data/ir_cron_data.xml',
22-
'views/view_res_partner.xml',
23-
'views/report_receipt.xml',
24-
'static/src/xml/templates.xml',
16+
"data": [
17+
"security/ir.model.access.csv",
18+
"views/report_paperformat.xml",
19+
"views/view_pos_config_settings.xml",
20+
"data/email_template_data.xml",
21+
"data/ir_cron_data.xml",
22+
"views/view_res_partner.xml",
23+
"views/report_receipt.xml",
24+
"static/src/xml/templates.xml",
2525
],
26-
'installable': True,
26+
"installable": True,
2727
}

pos_ticket_send_by_mail/data/email_template_data.xml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,31 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8" ?>
22
<odoo noupdate="1">
3-
43
<!--Email template -->
54
<record id="email_send_pos_receipt" model="mail.template">
65
<field name="name">Send Received</field>
7-
<field name="email_from">ticket@${object.user_id.company_id.email.split('@')[1] or ''|safe}</field>
8-
<field name="subject">${object.user_id.company_id.name} Received ${object.pos_reference and object.pos_reference.split(' ')[1] or ''}</field>
6+
<field
7+
name="email_from"
8+
>ticket@${object.user_id.company_id.email.split('@')[1] or ''|safe}</field>
9+
<field
10+
name="subject"
11+
>${object.user_id.company_id.name} Received ${object.pos_reference and object.pos_reference.split(' ')[1] or ''}</field>
912
<field name="partner_to">${object.partner_id.id}</field>
1013
<field name="model_id" ref="point_of_sale.model_pos_order" />
1114
<field name="auto_delete" eval="True" />
12-
<field name="report_template" ref="pos_ticket_send_by_mail.action_report_pos_receipt" />
15+
<field
16+
name="report_template"
17+
ref="pos_ticket_send_by_mail.action_report_pos_receipt"
18+
/>
1319
<field name="report_name">Ticket ${object.pos_reference}</field>
1420
<field name="lang">${object.partner_id.lang}</field>
15-
<field name="body_html"><![CDATA[
21+
<field
22+
name="body_html"
23+
><![CDATA[
1624
<p>Thank you for your visit !</p>
1725
<p>You will find your receipt ${object.pos_reference and object.pos_reference.split(' ')[1] or ''} attached.<p/>
1826
<p>Sincerely,</p>
1927
<p>The team of the cooperative</p>
2028
]]>
2129
</field>
2230
</record>
23-
2431
</odoo>
25-
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8" ?>
22
<odoo noupdate="1">
3-
43
<record id="ir_cron_sent_pos_ticket" model="ir.cron">
54
<field name="name">Send Reciept via Email</field>
65
<field name="interval_number">1</field>
76
<field name="interval_type">minutes</field>
87
<field name="numbercall">-1</field>
98
<field name="doall" eval="False" />
10-
<field name="model_id" ref="point_of_sale.model_pos_order"/>
9+
<field name="model_id" ref="point_of_sale.model_pos_order" />
1110
<field name="code">model._send_order_cron()</field>
1211
<field name="state">code</field>
1312
</record>
14-
1513
</odoo>

pos_ticket_send_by_mail/models/pos_order.py

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,31 @@
33
# @author: La Louve
44
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html
55

6-
from odoo import models, fields, api
76
import logging
7+
8+
from odoo import api, fields, models
9+
810
_logger = logging.getLogger(__name__)
911

1012

1113
class PosOrder(models.Model):
12-
_inherit = 'pos.order'
14+
_inherit = "pos.order"
1315

14-
email_status = fields.Selection([
15-
('no_send', 'Do not Send'),
16-
('to_send', 'To send'),
17-
('sent', 'Sent')],
18-
default="no_send", copy=False, string="Send Status")
16+
email_status = fields.Selection(
17+
[("no_send", "Do not Send"), ("to_send", "To send"), ("sent", "Sent")],
18+
default="no_send",
19+
copy=False,
20+
string="Send Status",
21+
)
1922

2023
@api.model
2124
def _send_order_cron(self):
2225
_logger.info("------------------------------------------------------")
23-
mail_template = self.env.ref(
24-
"pos_ticket_send_by_mail.email_send_pos_receipt")
26+
mail_template = self.env.ref("pos_ticket_send_by_mail.email_send_pos_receipt")
2527
_logger.info("Start to send ticket")
26-
for order in self.search([('email_status', '=', 'to_send')]):
28+
for order in self.search([("email_status", "=", "to_send")]):
2729
mail_template.send_mail(order.id, force_send=True)
28-
order.email_status = 'sent'
30+
order.email_status = "sent"
2931
# Make sure we commit the change to not send ticket twice
3032
self.env.cr.commit()
3133

@@ -36,15 +38,18 @@ def action_pos_order_paid(self):
3638
# that we config in pos.config.settings
3739
# receipt_option = 1: Don't send e-receipt
3840
# receipt_option = 2 or 3: Send e-receipt
39-
res = super(PosOrder, self).action_pos_order_paid()
41+
res = super().action_pos_order_paid()
4042
self._set_order_to_send()
4143
return res
4244

4345
def _set_order_to_send(self):
44-
icp_sudo = self.env['ir.config_parameter'].sudo()
45-
receipt_options = icp_sudo.get_param('point_of_sale.receipt_options')
46+
icp_sudo = self.env["ir.config_parameter"].sudo()
47+
receipt_options = icp_sudo.get_param("point_of_sale.receipt_options")
4648
receipt_options = receipt_options and int(receipt_options) or False
4749
for order in self:
48-
if receipt_options in [2, 3, 4] and order.partner_id.email and \
49-
not order.partner_id.no_email_pos_receipt:
50-
order.email_status = 'to_send'
50+
if (
51+
receipt_options in [2, 3, 4]
52+
and order.partner_id.email
53+
and not order.partner_id.no_email_pos_receipt
54+
):
55+
order.email_status = "to_send"

pos_ticket_send_by_mail/models/res_config_settings.py

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,51 @@
33
# @author: La Louve
44
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html
55

6-
from odoo import models, fields, api
6+
from odoo import api, fields, models
77

88

99
class ResConfigSettings(models.TransientModel):
10-
_inherit = 'res.config.settings'
10+
_inherit = "res.config.settings"
1111

1212
receipt_options = fields.Selection(
1313
[
14-
('1', 'Do not send receipt via email'),
15-
('2', 'Email receipt and print it'),
16-
('3', 'Email receipt and print it unless configured on user that \
17-
he only receives electronically'),
18-
('4', 'Email receipt')
19-
], string="Receipt",
20-
config_parameter='point_of_sale.receipt_options'
14+
("1", "Do not send receipt via email"),
15+
("2", "Email receipt and print it"),
16+
(
17+
"3",
18+
"Email receipt and print it unless configured on user that \
19+
he only receives electronically",
20+
),
21+
("4", "Email receipt"),
22+
],
23+
string="Receipt",
24+
config_parameter="point_of_sale.receipt_options",
2125
)
2226

2327
@api.model
2428
def get_values(self):
25-
res = super(ResConfigSettings, self).get_values()
26-
icp_sudo = self.env['ir.config_parameter'].sudo()
27-
receipt_options = icp_sudo.get_param('point_of_sale.receipt_options')
28-
res.update(
29-
receipt_options=receipt_options
30-
)
29+
res = super().get_values()
30+
icp_sudo = self.env["ir.config_parameter"].sudo()
31+
receipt_options = icp_sudo.get_param("point_of_sale.receipt_options")
32+
res.update(receipt_options=receipt_options)
3133
return res
3234

3335
@api.model
3436
def get_default_receipt_options(self):
35-
receipt_options = self.env['ir.values'].get_default(
36-
'res.config.settings', 'receipt_options')
37+
receipt_options = self.env["ir.values"].get_default(
38+
"res.config.settings", "receipt_options"
39+
)
3740
return {
38-
'receipt_options': receipt_options,
41+
"receipt_options": receipt_options,
3942
}
4043

4144
@api.multi
4245
def set_default_receipt_options(self):
4346
self.ensure_one()
44-
return self.env['ir.values'].sudo().set_default(
45-
'res.config.settings', 'receipt_options',
46-
self.receipt_options or None)
47+
return (
48+
self.env["ir.values"]
49+
.sudo()
50+
.set_default(
51+
"res.config.settings", "receipt_options", self.receipt_options or None
52+
)
53+
)

pos_ticket_send_by_mail/models/res_partner.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,18 @@ class ResPartner(models.Model):
1313
string="E-receipt",
1414
default=False,
1515
help="If you tick this box and option 3 is selected for 'Receipt'\
16-
in point of sale settings, the user will only receive e-receipt ")
16+
in point of sale settings, the user will only receive e-receipt ",
17+
)
1718
no_email_pos_receipt = fields.Boolean(
1819
string="No E-receipt",
1920
default=False,
20-
help="If you tick this box, the user will not receive e-receipt ")
21-
config_receipt_options = fields.Integer(
22-
compute="_compute_config_receipt_options"
21+
help="If you tick this box, the user will not receive e-receipt ",
2322
)
23+
config_receipt_options = fields.Integer(compute="_compute_config_receipt_options")
2424

2525
def _compute_config_receipt_options(self):
26-
icp_sudo = self.env['ir.config_parameter'].sudo()
27-
receipt_options = icp_sudo.get_param('point_of_sale.receipt_options')
26+
icp_sudo = self.env["ir.config_parameter"].sudo()
27+
receipt_options = icp_sudo.get_param("point_of_sale.receipt_options")
2828
receipt_options = receipt_options and int(receipt_options) or 0
2929
for record in self:
3030
record.config_receipt_options = receipt_options
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[build-system]
2+
requires = ["whool"]
3+
build-backend = "whool.buildapi"

pos_ticket_send_by_mail/static/src/js/pos_model.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,23 @@
66
77
*/
88

9-
odoo.define('pos_ticket_send_by_mail.pos_model', function (require) {
9+
odoo.define("pos_ticket_send_by_mail.pos_model", function (require) {
1010
"use strict";
11-
var pos_model = require('point_of_sale.models');
11+
var pos_model = require("point_of_sale.models");
1212
pos_model.load_fields("res.partner", "email_pos_receipt");
13-
pos_model.load_models([{
14-
model: "res.config.settings",
15-
fields: ["receipt_options"],
16-
loaded: function(self, config_settings){
17-
const config_setting = config_settings.length > 0 ? config_settings.reduce(function(prev, current) {
18-
return (prev.id > current.id) ? prev : current
19-
}) : false; //returns object
20-
self.config_settings = config_setting;
21-
}
22-
}]);
23-
13+
pos_model.load_models([
14+
{
15+
model: "res.config.settings",
16+
fields: ["receipt_options"],
17+
loaded: function (self, config_settings) {
18+
const config_setting =
19+
config_settings.length > 0
20+
? config_settings.reduce(function (prev, current) {
21+
return prev.id > current.id ? prev : current;
22+
})
23+
: false; // Returns object
24+
self.config_settings = config_setting;
25+
},
26+
},
27+
]);
2428
});

pos_ticket_send_by_mail/static/src/js/receipt_screen_widget.js

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,41 +7,43 @@
77
88
*/
99

10-
odoo.define('pos_ticket_send_by_mail.receipt_screen_widget', function (require) {
11-
10+
odoo.define("pos_ticket_send_by_mail.receipt_screen_widget", function (require) {
1211
"use strict";
13-
var models = require('point_of_sale.models');
14-
var screens = require('point_of_sale.screens');
15-
var core = require('web.core');
16-
var gui = require('point_of_sale.gui');
12+
var models = require("point_of_sale.models");
13+
var screens = require("point_of_sale.screens");
14+
var core = require("web.core");
15+
var gui = require("point_of_sale.gui");
1716
var _t = core._t;
1817

1918
screens.ReceiptScreenWidget.include({
20-
21-
print_web: function() {
19+
print_web: function () {
2220
var client = this.pos.get_client();
23-
var email_pos_receipt = client ? client.email_pos_receipt: false;
24-
var receipt_options = this.pos.config_settings ? this.pos.config_settings.receipt_options : false;
25-
if (receipt_options && receipt_options == '3' && email_pos_receipt) {
21+
var email_pos_receipt = client ? client.email_pos_receipt : false;
22+
var receipt_options = this.pos.config_settings
23+
? this.pos.config_settings.receipt_options
24+
: false;
25+
if (receipt_options && receipt_options == "3" && email_pos_receipt) {
2626
console.log("Skip print receipt by web");
27-
return
28-
} else {
29-
console.log("1 print receipt by web");
30-
return this._super();
27+
return;
3128
}
29+
console.log("1 print receipt by web");
30+
return this._super();
31+
3232
},
3333

34-
print_xml: function() {
34+
print_xml: function () {
3535
var client = this.pos.get_client();
36-
var email_pos_receipt = client ? client.email_pos_receipt: false;
37-
var receipt_options = this.pos.config_settings ? this.pos.config_settings.receipt_options : false;
38-
if (receipt_options && receipt_options == '3' && email_pos_receipt) {
36+
var email_pos_receipt = client ? client.email_pos_receipt : false;
37+
var receipt_options = this.pos.config_settings
38+
? this.pos.config_settings.receipt_options
39+
: false;
40+
if (receipt_options && receipt_options == "3" && email_pos_receipt) {
3941
console.log("Skip print receipt by web");
40-
return
41-
} else {
42-
console.log(" print receipt by web");
43-
return this._super();
42+
return;
4443
}
44+
console.log(" print receipt by web");
45+
return this._super();
46+
4547
},
4648
});
4749
});
Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8" ?>
22
<odoo>
3-
43
<template id="assets_frontend" inherit_id="point_of_sale.assets">
54
<xpath expr="." position="inside">
6-
<script type="text/javascript"
7-
src="/pos_ticket_send_by_mail/static/src/js/pos_model.js" />
8-
<script type="text/javascript"
9-
src="/pos_ticket_send_by_mail/static/src/js/receipt_screen_widget.js" />
5+
<script
6+
type="text/javascript"
7+
src="/pos_ticket_send_by_mail/static/src/js/pos_model.js"
8+
/>
9+
<script
10+
type="text/javascript"
11+
src="/pos_ticket_send_by_mail/static/src/js/receipt_screen_widget.js"
12+
/>
1013
</xpath>
1114
</template>
12-
1315
</odoo>

0 commit comments

Comments
 (0)