From 4ae08b322a122b471d09e44285f7f1891b48a6ed Mon Sep 17 00:00:00 2001 From: Thibault Francois Date: Sat, 13 Feb 2016 03:59:48 +0100 Subject: [PATCH 1/3] [WIP] Ticket by mail --- beescoop_pos/data/email.xml | 22 +++++++++++++++++++ beescoop_pos/static/src/js/beescoop.js | 26 +++++++++++++++++++++++ beescoop_pos/static/src/xml/templates.xml | 10 +++++++++ beesdoo_pos/__openerp__.py | 2 ++ beesdoo_pos/models/beesdoo_pos.py | 17 +++++++++++++-- beesdoo_pos/views/beesdoo_pos.xml | 6 ++++++ 6 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 beescoop_pos/data/email.xml create mode 100644 beescoop_pos/static/src/js/beescoop.js create mode 100644 beescoop_pos/static/src/xml/templates.xml diff --git a/beescoop_pos/data/email.xml b/beescoop_pos/data/email.xml new file mode 100644 index 0000000..b1cd16a --- /dev/null +++ b/beescoop_pos/data/email.xml @@ -0,0 +1,22 @@ + + + + + + + Envoyer Reçu + ${(object.user_id.email and '%s <%s>' % (object.user_id.name, object.user_id.email) or '')|safe} + ${object.pos_reference} + ${object.partner_id.id} + + + + Ticket ${object.pos_reference} + ${object.partner_id.lang} + + + + + \ No newline at end of file diff --git a/beescoop_pos/static/src/js/beescoop.js b/beescoop_pos/static/src/js/beescoop.js new file mode 100644 index 0000000..055c594 --- /dev/null +++ b/beescoop_pos/static/src/js/beescoop.js @@ -0,0 +1,26 @@ +odoo.define('beescoop.pos', function (require) { + "use strict"; + var module = require("point_of_sale.screens"); + var Model = require('web.DataModel'); + + module.ReceiptScreenWidget = module.ReceiptScreenWidget.include({ + send : function() { + var order = this.pos.get_order().name; + var records = new Model('pos.order').call('send_order', [order], {}); + records.then(function(result){ + console.log(result) + },function(err){ + loaded.reject(err); + }); + }, + renderElement: function() { + var self = this; + this._super(); + this.$('.button.send').click(function(){ + if (!self._locked) { + self.send(); + } + }); + }, + }) +}); \ No newline at end of file diff --git a/beescoop_pos/static/src/xml/templates.xml b/beescoop_pos/static/src/xml/templates.xml new file mode 100644 index 0000000..2c3946c --- /dev/null +++ b/beescoop_pos/static/src/xml/templates.xml @@ -0,0 +1,10 @@ + + + + +
+ Send Receipt By Mail +
+
+
+
\ No newline at end of file diff --git a/beesdoo_pos/__openerp__.py b/beesdoo_pos/__openerp__.py index e33cbb9..3753249 100644 --- a/beesdoo_pos/__openerp__.py +++ b/beesdoo_pos/__openerp__.py @@ -26,7 +26,9 @@ 'data': [ 'security/ir.model.access.csv', 'views/beesdoo_pos.xml', + 'data/email.xml', ], + 'qweb': ['static/src/xml/templates.xml'], # only loaded in demonstration mode } diff --git a/beesdoo_pos/models/beesdoo_pos.py b/beesdoo_pos/models/beesdoo_pos.py index d076c67..3e9f15f 100644 --- a/beesdoo_pos/models/beesdoo_pos.py +++ b/beesdoo_pos/models/beesdoo_pos.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from openerp import models, fields +from openerp import models, fields, api class BeesPOS(models.Model): _inherit = 'pos.config' @@ -23,4 +23,17 @@ class BeesAccountBankStatement(models.Model): pos_session_rec = self.env['pos.session'].browse(self.env.context['active_id']) return [(0, 0, {'coin_value' : bill_value_rec.name}) for bill_value_rec in pos_session_rec.config_id.bill_value] - cashbox_lines_ids = fields.One2many(default=_get_default_line) \ No newline at end of file + cashbox_lines_ids = fields.One2many(default=_get_default_line) + +class BeescoopPosOrder(models.Model): + + _inherit = 'pos.order' + + @api.model + def send_order(self, receipt_name): + order = self.search([('pos_reference', '=', receipt_name)]) + if not order.partner_id.email: + return False + mail_template = self.env.ref("beescoop_pos.email_send_ticket") + mail_template.send_mail(order.id) + return True \ No newline at end of file diff --git a/beesdoo_pos/views/beesdoo_pos.xml b/beesdoo_pos/views/beesdoo_pos.xml index 51ecd71..70050b8 100644 --- a/beesdoo_pos/views/beesdoo_pos.xml +++ b/beesdoo_pos/views/beesdoo_pos.xml @@ -15,5 +15,11 @@ + + \ No newline at end of file From 0176c1fa3095c2658bd4097bf6078050e785b2da Mon Sep 17 00:00:00 2001 From: Thibault Francois Date: Sat, 13 Feb 2016 14:08:17 +0100 Subject: [PATCH 2/3] [ADD] feedback on the screen --- beescoop_pos/static/src/css/beescoop.css | 4 ++++ beescoop_pos/static/src/js/beescoop.js | 10 +++++++++- beescoop_pos/static/src/xml/templates.xml | 3 +++ beesdoo_pos/models/beesdoo_pos.py | 8 +++++--- beesdoo_pos/views/beesdoo_pos.xml | 1 + 5 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 beescoop_pos/static/src/css/beescoop.css diff --git a/beescoop_pos/static/src/css/beescoop.css b/beescoop_pos/static/src/css/beescoop.css new file mode 100644 index 0000000..a68e1ed --- /dev/null +++ b/beescoop_pos/static/src/css/beescoop.css @@ -0,0 +1,4 @@ +.message-send { + margin: 16px; + text-align: center; +} \ No newline at end of file diff --git a/beescoop_pos/static/src/js/beescoop.js b/beescoop_pos/static/src/js/beescoop.js index 055c594..79b6161 100644 --- a/beescoop_pos/static/src/js/beescoop.js +++ b/beescoop_pos/static/src/js/beescoop.js @@ -5,10 +5,13 @@ odoo.define('beescoop.pos', function (require) { module.ReceiptScreenWidget = module.ReceiptScreenWidget.include({ send : function() { + var self = this; var order = this.pos.get_order().name; var records = new Model('pos.order').call('send_order', [order], {}); records.then(function(result){ - console.log(result) + var el = self.$('.message-send') + el.empty(); + el.append('

' + result + '

'); },function(err){ loaded.reject(err); }); @@ -22,5 +25,10 @@ odoo.define('beescoop.pos', function (require) { } }); }, + show: function(){ + this._super(); + var self = this; + this.$('.message-send').empty(); + }, }) }); \ No newline at end of file diff --git a/beescoop_pos/static/src/xml/templates.xml b/beescoop_pos/static/src/xml/templates.xml index 2c3946c..e9b3391 100644 --- a/beescoop_pos/static/src/xml/templates.xml +++ b/beescoop_pos/static/src/xml/templates.xml @@ -5,6 +5,9 @@
Send Receipt By Mail
+
+ +
\ No newline at end of file diff --git a/beesdoo_pos/models/beesdoo_pos.py b/beesdoo_pos/models/beesdoo_pos.py index 3e9f15f..75de9e6 100644 --- a/beesdoo_pos/models/beesdoo_pos.py +++ b/beesdoo_pos/models/beesdoo_pos.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from openerp import models, fields, api +from openerp import models, fields, api, _ class BeesPOS(models.Model): _inherit = 'pos.config' @@ -32,8 +32,10 @@ class BeescoopPosOrder(models.Model): @api.model def send_order(self, receipt_name): order = self.search([('pos_reference', '=', receipt_name)]) + if not order: + return _('Error: no order found') if not order.partner_id.email: - return False + return _('Cannot send the ticket, no email address found on the client') mail_template = self.env.ref("beescoop_pos.email_send_ticket") mail_template.send_mail(order.id) - return True \ No newline at end of file + return _("Ticket sent") \ No newline at end of file diff --git a/beesdoo_pos/views/beesdoo_pos.xml b/beesdoo_pos/views/beesdoo_pos.xml index 70050b8..80d65ff 100644 --- a/beesdoo_pos/views/beesdoo_pos.xml +++ b/beesdoo_pos/views/beesdoo_pos.xml @@ -19,6 +19,7 @@ From fc68659c603b6b5cbbd902647548b8d59edaa854 Mon Sep 17 00:00:00 2001 From: Thibault Francois Date: Fri, 4 Mar 2016 20:13:37 +0100 Subject: [PATCH 3/3] [CLEAN] move file after rebase --- {beescoop_pos => beesdoo_pos}/data/email.xml | 0 {beescoop_pos => beesdoo_pos}/static/src/css/beescoop.css | 0 {beescoop_pos => beesdoo_pos}/static/src/js/beescoop.js | 0 {beescoop_pos => beesdoo_pos}/static/src/xml/templates.xml | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename {beescoop_pos => beesdoo_pos}/data/email.xml (100%) rename {beescoop_pos => beesdoo_pos}/static/src/css/beescoop.css (100%) rename {beescoop_pos => beesdoo_pos}/static/src/js/beescoop.js (100%) rename {beescoop_pos => beesdoo_pos}/static/src/xml/templates.xml (100%) diff --git a/beescoop_pos/data/email.xml b/beesdoo_pos/data/email.xml similarity index 100% rename from beescoop_pos/data/email.xml rename to beesdoo_pos/data/email.xml diff --git a/beescoop_pos/static/src/css/beescoop.css b/beesdoo_pos/static/src/css/beescoop.css similarity index 100% rename from beescoop_pos/static/src/css/beescoop.css rename to beesdoo_pos/static/src/css/beescoop.css diff --git a/beescoop_pos/static/src/js/beescoop.js b/beesdoo_pos/static/src/js/beescoop.js similarity index 100% rename from beescoop_pos/static/src/js/beescoop.js rename to beesdoo_pos/static/src/js/beescoop.js diff --git a/beescoop_pos/static/src/xml/templates.xml b/beesdoo_pos/static/src/xml/templates.xml similarity index 100% rename from beescoop_pos/static/src/xml/templates.xml rename to beesdoo_pos/static/src/xml/templates.xml