From 4ae08b322a122b471d09e44285f7f1891b48a6ed Mon Sep 17 00:00:00 2001 From: Thibault Francois Date: Sat, 13 Feb 2016 03:59:48 +0100 Subject: [PATCH] [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