From 2dfa7cd597980338fa5db4809d7b4bda07a2417c Mon Sep 17 00:00:00 2001 From: "Antoine Prieels (ANP)" Date: Tue, 23 Oct 2018 07:32:20 +0000 Subject: [PATCH 1/5] [IMP] snailmail: Add form and tree views for snailmail.letter Add new form and tree views for snailmail.letter available in Accounting > Configuration > Management > Snailmail Letters Add a many2one field to snailmail.letter to link to a mail.activity in case of an error with snailmail Task #1892473 --- addons/snailmail/i18n/snailmail.pot | 27 ++++++++++++--- addons/snailmail/models/snailmail_letter.py | 34 ++++++++++++++++--- addons/snailmail/views/snailmail_views.xml | 33 ++++++++++-------- addons/snailmail_account/__manifest__.py | 1 + .../views/snailmail_views.xml | 16 +++++++++ 5 files changed, 87 insertions(+), 24 deletions(-) create mode 100644 addons/snailmail_account/views/snailmail_views.xml diff --git a/addons/snailmail/i18n/snailmail.pot b/addons/snailmail/i18n/snailmail.pot index abe2e48530c..9fe6b510e64 100644 --- a/addons/snailmail/i18n/snailmail.pot +++ b/addons/snailmail/i18n/snailmail.pot @@ -18,7 +18,7 @@ msgstr "" #. module: snailmail #: code:addons/snailmail/models/snailmail_letter.py:249 #, python-format -msgid "An error occured when sending the document by post.
Error: %s" +msgid "An error occured when sending the document by post.
Error: %s
Go to 'Configuration > Management > Snailmail Letters' to see all letters awaiting dispatch to Snailmail." msgstr "" #. module: snailmail @@ -28,7 +28,9 @@ msgid "An unknown error happened. Please contact the support." msgstr "" #. module: snailmail +#: code:addons/snailmail/models/snailmail_letter.py:343 #: model:ir.model.fields,field_description:snailmail.field_snailmail_letter__attachment_id +#, python-format msgid "Attachment" msgstr "" @@ -103,6 +105,12 @@ msgstr "" msgid "Display Name" msgstr "" +#. module: snailmail +#: model_terms:ir.ui.view,arch_db:snailmail.snailmail_letter_form +#: model_terms:ir.ui.view,arch_db:snailmail.snailmail_letter_list +msgid "Document" +msgstr "" + #. module: snailmail #: model:ir.model.fields,field_description:snailmail.field_snailmail_letter__res_id msgid "Document ID" @@ -149,8 +157,6 @@ msgid "Last Updated on" msgstr "" #. module: snailmail -#: model:ir.actions.act_window,name:snailmail.action_mail_letters -#: model:ir.ui.menu,name:snailmail.menu_snailmail_letters #: model_terms:ir.ui.view,arch_db:snailmail.snailmail_letter_list msgid "Letters" msgstr "" @@ -217,11 +223,22 @@ msgstr "" msgid "Sent" msgstr "" +#. module: snailmail +#: model:ir.model.fields,field_description:snailmail.field_snailmail_letter__user_id +msgid "Sent by" +msgstr "" + #. module: snailmail #: model:ir.model,name:snailmail.model_snailmail_letter msgid "Snailmail Letter" msgstr "" +#. module: snailmail +#: model:ir.actions.act_window,name:snailmail.action_mail_letters +#: model:ir.ui.menu,name:snailmail.menu_snailmail_letters +msgid "Snailmail Letters" +msgstr "" + #. module: snailmail #: model:ir.actions.server,name:snailmail.snailmail_print_ir_actions_server #: model:ir.cron,cron_name:snailmail.snailmail_print @@ -253,8 +270,8 @@ msgid "The document was correctly sent by post.
The tracking id is %ssend_id" msgstr "" #. module: snailmail -#: model:ir.model.fields,field_description:snailmail.field_snailmail_letter__user_id -msgid "User sending the letter" +#: model:ir.model.fields,field_description:snailmail.field_snailmail_letter__title +msgid "Title" msgstr "" #. module: snailmail diff --git a/addons/snailmail/models/snailmail_letter.py b/addons/snailmail/models/snailmail_letter.py index 2b57ff70a5a..1524b26ab1e 100644 --- a/addons/snailmail/models/snailmail_letter.py +++ b/addons/snailmail/models/snailmail_letter.py @@ -18,7 +18,7 @@ class SnailmailLetter(models.Model): _name = 'snailmail.letter' _description = 'Snailmail Letter' - user_id = fields.Many2one('res.users', 'User sending the letter') + user_id = fields.Many2one('res.users', 'Sent by') model = fields.Char('Model', required=True) res_id = fields.Integer('Document ID', required=True) partner_id = fields.Many2one('res.partner', string='Recipient', required=True) @@ -27,6 +27,9 @@ class SnailmailLetter(models.Model): report_template = fields.Many2one('ir.actions.report', 'Optional report to print and attach') attachment_id = fields.Many2one('ir.attachment', string='Attachment', ondelete='cascade') + attachment_datas = fields.Binary('Document', related='attachment_id.datas') + attachment_fname = fields.Char('Attachment Filename', related='attachment_id.datas_fname') + activity_id = fields.Many2one('mail.activity', string='Activity') color = fields.Boolean(string='Color', default=lambda self: self.env.user.company_id.snailmail_color) duplex = fields.Boolean(string='Both side', default=lambda self: self.env.user.company_id.snailmail_duplex) state = fields.Selection([ @@ -40,7 +43,23 @@ class SnailmailLetter(models.Model): "If the letter is correctly sent, the status goes in 'Sent',\n" "If not, it will got in state 'Error' and the error message will be displayed in the field 'Error Message'.") info_msg = fields.Char('Information') + display_name = fields.Char('Display Name', compute="_compute_display_name") + reference = fields.Char(string='Related Record', compute='_compute_reference', readonly=True, store=False) + + @api.depends('reference', 'partner_id') + def _compute_display_name(self): + for letter in self: + if letter.attachment_id: + letter.display_name = "%s - %s" % (letter.attachment_id.name, letter.partner_id.name) + else: + letter.display_name = letter.partner_id.name + + @api.depends('model', 'res_id') + def _compute_reference(self): + for res in self: + res.reference = "%s,%s" % (res.model, res.res_id) + @api.multi def _fetch_attachment(self): """ @@ -245,7 +264,7 @@ class SnailmailLetter(models.Model): else: # look for existing activities related to snailmail to update or create a new one. # TODO: in following versions, Add a link to a specifc activity on the letter - note = _('An error occured when sending the document by post.
Error: %s' % \ + note = _('An error occured when sending the document by post.
Error: %s
Go to \'Configuration > Management > Snailmail Letters\' to see all letters awaiting dispatch to Snailmail.' % \ self._get_error_message(doc['error'] if response['request_code'] == 200 else response['reason'])) domain = [ @@ -254,8 +273,7 @@ class SnailmailLetter(models.Model): ('res_model_id', '=', self.env['ir.model']._get(letter.model).id), ('activity_type_id', '=', self.env.ref('mail.mail_activity_data_warning').id), ] - MailActivity = self.env['mail.activity'] - activity = MailActivity.search(domain, limit=1) + activity = letter.activity_id activity_data = { 'activity_type_id': self.env.ref('mail.mail_activity_data_warning').id, @@ -271,7 +289,8 @@ class SnailmailLetter(models.Model): 'res_id': letter.res_id, 'res_model_id': self.env['ir.model']._get(letter.model).id, }) - MailActivity.create(activity_data) + activity = self.env['mail.activity'].create(activity_data) + letter.write({'activity_id': activity.id}) letter.write({'info_msg': note, 'state': 'error'}) @@ -285,6 +304,11 @@ class SnailmailLetter(models.Model): def cancel(self): self.write({'state': 'canceled'}) + @api.multi + def unlink(self): + self.mapped('activity_id').unlink() + super(SnailmailLetter, self).unlink() + @api.multi def _snailmail_estimate(self): """ diff --git a/addons/snailmail/views/snailmail_views.xml b/addons/snailmail/views/snailmail_views.xml index 7a230c2f706..0462b1b70ee 100644 --- a/addons/snailmail/views/snailmail_views.xml +++ b/addons/snailmail/views/snailmail_views.xml @@ -5,11 +5,10 @@ snailmail.letter - - - - - + + + + @@ -26,16 +25,22 @@ +
+

+
- - - - - - - + + + + + - + + + + + +
@@ -43,7 +48,7 @@ - Letters + Snailmail Letters snailmail.letter form form,tree diff --git a/addons/snailmail_account/__manifest__.py b/addons/snailmail_account/__manifest__.py index 5f71dd9eacf..685cdbbb427 100644 --- a/addons/snailmail_account/__manifest__.py +++ b/addons/snailmail_account/__manifest__.py @@ -10,6 +10,7 @@ Allows users to send invoices by post 'depends': ['account', 'snailmail'], 'data': [ 'views/res_config_settings_views.xml', + 'views/snailmail_views.xml', 'wizard/account_invoice_send_views.xml', ], 'auto_install': True, diff --git a/addons/snailmail_account/views/snailmail_views.xml b/addons/snailmail_account/views/snailmail_views.xml new file mode 100644 index 00000000000..21880755771 --- /dev/null +++ b/addons/snailmail_account/views/snailmail_views.xml @@ -0,0 +1,16 @@ + + + + + Snailmail Letters + snailmail.letter + form + form,tree + [('state', '!=', 'draft'), ('model','=','account.invoice')] + + + + + + \ No newline at end of file From d5ca268438fb60cd825c1b2545670d1ed5d3d0f7 Mon Sep 17 00:00:00 2001 From: "Antoine Prieels (ANP)" Date: Tue, 23 Oct 2018 08:37:03 +0000 Subject: [PATCH 2/5] [IMP] snailmail: Change order of settings and default values Task #1892473 --- addons/snailmail/models/res_company.py | 2 +- addons/snailmail_account/models/res_config_settings.py | 2 +- .../snailmail_account/views/res_config_settings_views.xml | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/snailmail/models/res_company.py b/addons/snailmail/models/res_company.py index b51147b2ef1..25e694968da 100644 --- a/addons/snailmail/models/res_company.py +++ b/addons/snailmail/models/res_company.py @@ -6,5 +6,5 @@ from odoo import fields, models class Company(models.Model): _inherit = "res.company" - snailmail_color = fields.Boolean(string='Color', default=False) + snailmail_color = fields.Boolean(string='Color', default=True) snailmail_duplex = fields.Boolean(string='Both sides', default=False) diff --git a/addons/snailmail_account/models/res_config_settings.py b/addons/snailmail_account/models/res_config_settings.py index bab192ef4e1..d4608ac1d3d 100644 --- a/addons/snailmail_account/models/res_config_settings.py +++ b/addons/snailmail_account/models/res_config_settings.py @@ -7,4 +7,4 @@ from odoo import fields, models class ResConfigSettings(models.TransientModel): _inherit = 'res.config.settings' - invoice_is_snailmail = fields.Boolean(string='Send by Post', related='company_id.invoice_is_snailmail', readonly=False) + invoice_is_snailmail = fields.Boolean(string='Send by Post with Snailmail', related='company_id.invoice_is_snailmail', readonly=False) diff --git a/addons/snailmail_account/views/res_config_settings_views.xml b/addons/snailmail_account/views/res_config_settings_views.xml index 53572a7c23d..2bb518f5f10 100644 --- a/addons/snailmail_account/views/res_config_settings_views.xml +++ b/addons/snailmail_account/views/res_config_settings_views.xml @@ -16,12 +16,12 @@
- -
- -
From f68df47ddf3d4dfd78950dba56f84f11631bfba0 Mon Sep 17 00:00:00 2001 From: "Antoine Prieels (ANP)" Date: Mon, 29 Oct 2018 12:03:18 +0000 Subject: [PATCH 3/5] [IMP] snailmail: Show the price in terms of stamps - The price of sending a letter was displayed in the currency of the company, now we express the price in terms of stamps - Show a different message in the modal depending on the validity of the address --- addons/snailmail/models/snailmail_letter.py | 4 +- .../wizard/account_invoice_send.py | 7 ++- .../wizard/account_invoice_send_views.xml | 51 ++++++++++++++----- 3 files changed, 45 insertions(+), 17 deletions(-) diff --git a/addons/snailmail/models/snailmail_letter.py b/addons/snailmail/models/snailmail_letter.py index 1524b26ab1e..1f8abe12ad2 100644 --- a/addons/snailmail/models/snailmail_letter.py +++ b/addons/snailmail/models/snailmail_letter.py @@ -211,7 +211,7 @@ class SnailmailLetter(models.Model): 'options': { 'color': self and self[0].color, 'duplex': self and self[0].duplex, - 'currency_name': self and self[0].company_id.currency_id.name, + 'currency_name': 'EUR', }, # this will not raise the InsufficientCreditError which is the behaviour we want for now 'batch': True, @@ -307,7 +307,7 @@ class SnailmailLetter(models.Model): @api.multi def unlink(self): self.mapped('activity_id').unlink() - super(SnailmailLetter, self).unlink() + return super(SnailmailLetter, self).unlink() @api.multi def _snailmail_estimate(self): diff --git a/addons/snailmail_account/wizard/account_invoice_send.py b/addons/snailmail_account/wizard/account_invoice_send.py index 4db249c3b5b..ff6581dae7e 100644 --- a/addons/snailmail_account/wizard/account_invoice_send.py +++ b/addons/snailmail_account/wizard/account_invoice_send.py @@ -12,8 +12,13 @@ class AccountInvoiceSend(models.TransientModel): partner_id = fields.Many2one('res.partner', compute='_get_partner', string='Partner') snailmail_is_letter = fields.Boolean('Send by Post', help='Allows to send the document by snail mail (coventional posting delivery service)', default=lambda self: self.env.user.company_id.invoice_is_snailmail) snailmail_cost = fields.Float(string='Stamp(s)', compute='_snailmail_estimate', store=True, readonly=True) - currency_id = fields.Many2one('res.currency', compute='_get_invoice_currency', string="Currency") letter_ids = fields.Many2many('snailmail.letter', 'snailmail_letter_account_invoice_send_rel', ondelete='cascade') + invalid_addresses = fields.Integer('Invalid Addresses', compute='_compute_invalid_addresses') + + @api.depends('snailmail_cost', 'letter_ids') + def _compute_invalid_addresses(self): + for wizard in self: + wizard.invalid_addresses = len(wizard.letter_ids) - wizard.snailmail_cost @api.multi @api.onchange('invoice_ids') diff --git a/addons/snailmail_account/wizard/account_invoice_send_views.xml b/addons/snailmail_account/wizard/account_invoice_send_views.xml index 5fd58f436e6..b33a83d2f9c 100644 --- a/addons/snailmail_account/wizard/account_invoice_send_views.xml +++ b/addons/snailmail_account/wizard/account_invoice_send_views.xml @@ -9,25 +9,48 @@
+
-
- ( - - - -
-
- to: - -
+ +
+ + Incomplete address for + + +
+
+ + + + + Only of the selected invoices have a valid address. + + + + None of the selected invoices have a valid address + + +
From 8573b4647bfa6869c4205e86abb771a09fb6dd53 Mon Sep 17 00:00:00 2001 From: "Antoine Prieels (ANP)" Date: Mon, 19 Nov 2018 10:47:14 +0000 Subject: [PATCH 4/5] [IMP] snailmail_account: Deal with invalid addresses - Raise UserError when sending an invoice with an invalid address - Notify when sending letters in batch mode with invalid addresses --- addons/snailmail_account/__manifest__.py | 1 + .../snailmail_account_notification_manager.js | 35 +++++++++++++++++++ addons/snailmail_account/views/assets.xml | 8 +++++ .../wizard/account_invoice_send.py | 26 ++++++++++++-- .../wizard/account_invoice_send_views.xml | 14 +++----- 5 files changed, 72 insertions(+), 12 deletions(-) create mode 100644 addons/snailmail_account/static/src/js/snailmail_account_notification_manager.js create mode 100644 addons/snailmail_account/views/assets.xml diff --git a/addons/snailmail_account/__manifest__.py b/addons/snailmail_account/__manifest__.py index 685cdbbb427..67049f8dada 100644 --- a/addons/snailmail_account/__manifest__.py +++ b/addons/snailmail_account/__manifest__.py @@ -11,6 +11,7 @@ Allows users to send invoices by post 'data': [ 'views/res_config_settings_views.xml', 'views/snailmail_views.xml', + 'views/assets.xml', 'wizard/account_invoice_send_views.xml', ], 'auto_install': True, diff --git a/addons/snailmail_account/static/src/js/snailmail_account_notification_manager.js b/addons/snailmail_account/static/src/js/snailmail_account_notification_manager.js new file mode 100644 index 00000000000..8c42b17c6be --- /dev/null +++ b/addons/snailmail_account/static/src/js/snailmail_account_notification_manager.js @@ -0,0 +1,35 @@ +odoo.define('snailmail_account.NotificationManager', function (require) { +"use strict"; + +var AbstractService = require('web.AbstractService'); +var core = require("web.core"); + +var SnailmailNotificationManager = AbstractService.extend({ + dependencies: ['bus_service'], + + /** + * @override + */ + start: function () { + this._super.apply(this, arguments); + this.call('bus_service', 'onNotification', this, this._onNotification); + }, + + _onNotification: function (notifs) { + var self = this; + _.each(notifs, function (notif) { + var model = notif[0][1]; + var type = notif[1].type; + if (model === 'res.partner' && type === 'snailmail_invalid_address') { + self.do_warn(notif[1].title, notif[1].message); + } + }); + } + +}); + +core.serviceRegistry.add('snailmail_notification_service', SnailmailNotificationManager); + +return SnailmailNotificationManager; + +}); diff --git a/addons/snailmail_account/views/assets.xml b/addons/snailmail_account/views/assets.xml new file mode 100644 index 00000000000..529d22849b1 --- /dev/null +++ b/addons/snailmail_account/views/assets.xml @@ -0,0 +1,8 @@ + + + + diff --git a/addons/snailmail_account/wizard/account_invoice_send.py b/addons/snailmail_account/wizard/account_invoice_send.py index ff6581dae7e..87c87a390a2 100644 --- a/addons/snailmail_account/wizard/account_invoice_send.py +++ b/addons/snailmail_account/wizard/account_invoice_send.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import api, fields, models +from odoo import api, fields, models, _ +from odoo.exceptions import UserError class AccountInvoiceSend(models.TransientModel): @@ -17,8 +18,15 @@ class AccountInvoiceSend(models.TransientModel): @api.depends('snailmail_cost', 'letter_ids') def _compute_invalid_addresses(self): - for wizard in self: - wizard.invalid_addresses = len(wizard.letter_ids) - wizard.snailmail_cost + for wizard in self: + count_invalid_addresses = 0 + required_fields = ['street', 'city', 'zip', 'country_id'] + for letter in wizard.letter_ids: + for field in required_fields: + if not letter.partner_id[field]: + count_invalid_addresses += 1 + break + wizard.invalid_addresses = count_invalid_addresses @api.multi @api.onchange('invoice_ids') @@ -77,6 +85,18 @@ class AccountInvoiceSend(models.TransientModel): @api.multi def send_and_print_action(self): + if self.snailmail_is_letter and self.invalid_addresses: + if self.composition_mode == "mass_mail": + self.env['bus.bus'].sendone( + (self._cr.dbname, 'res.partner', self.env.user.partner_id.id), + {'type': 'snailmail_invalid_address', 'title': _("Invalid Addresses"), + 'message': _("%s of the selected invoice(s) had an invalid address and were not sent") % self.invalid_addresses} + ) + else: + raise UserError(_( + '''Cannot send by post to an incomplete address. + Please update the customer's address or uncheck \'Send by Post\'.''' + )) res = super(AccountInvoiceSend, self).send_and_print_action() if self.snailmail_is_letter: self.snailmail_print_action() diff --git a/addons/snailmail_account/wizard/account_invoice_send_views.xml b/addons/snailmail_account/wizard/account_invoice_send_views.xml index b33a83d2f9c..f771712c36a 100644 --- a/addons/snailmail_account/wizard/account_invoice_send_views.xml +++ b/addons/snailmail_account/wizard/account_invoice_send_views.xml @@ -28,27 +28,23 @@
to: - +
- - Incomplete address for - + + Incomplete customer address
- - Only of the selected invoices have a valid address. + + invoice(s) do not have a complete customer address - - None of the selected invoices have a valid address - From a08cb50e7ec2054bf446184946cf8d43d51bd985 Mon Sep 17 00:00:00 2001 From: "Antoine Prieels (ANP)" Date: Mon, 12 Nov 2018 15:11:39 +0000 Subject: [PATCH 5/5] [I18N] snailmail,snailmail_account: Update translation files --- addons/snailmail/i18n/snailmail.pot | 49 ++++++++++------- .../i18n/snailmail_account.pot | 52 ++++++++++++++++--- 2 files changed, 74 insertions(+), 27 deletions(-) diff --git a/addons/snailmail/i18n/snailmail.pot b/addons/snailmail/i18n/snailmail.pot index 9fe6b510e64..548292bf5e2 100644 --- a/addons/snailmail/i18n/snailmail.pot +++ b/addons/snailmail/i18n/snailmail.pot @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.0alpha1+e\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-10-30 12:25+0000\n" -"PO-Revision-Date: 2018-10-30 12:25+0000\n" +"POT-Creation-Date: 2018-11-20 14:10+0000\n" +"PO-Revision-Date: 2018-11-20 14:10+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -16,24 +16,32 @@ msgstr "" "Plural-Forms: \n" #. module: snailmail -#: code:addons/snailmail/models/snailmail_letter.py:249 +#: model:ir.model.fields,field_description:snailmail.field_snailmail_letter__activity_id +msgid "Activity" +msgstr "" + +#. module: snailmail +#: code:addons/snailmail/models/snailmail_letter.py:268 #, python-format msgid "An error occured when sending the document by post.
Error: %s
Go to 'Configuration > Management > Snailmail Letters' to see all letters awaiting dispatch to Snailmail." msgstr "" #. module: snailmail -#: code:addons/snailmail/models/snailmail_letter.py:215 +#: code:addons/snailmail/models/snailmail_letter.py:234 #, python-format msgid "An unknown error happened. Please contact the support." msgstr "" #. module: snailmail -#: code:addons/snailmail/models/snailmail_letter.py:343 #: model:ir.model.fields,field_description:snailmail.field_snailmail_letter__attachment_id -#, python-format msgid "Attachment" msgstr "" +#. module: snailmail +#: model:ir.model.fields,field_description:snailmail.field_snailmail_letter__attachment_fname +msgid "Attachment Filename" +msgstr "" + #. module: snailmail #: model:ir.model.fields,field_description:snailmail.field_snailmail_letter__duplex msgid "Both side" @@ -106,7 +114,7 @@ msgid "Display Name" msgstr "" #. module: snailmail -#: model_terms:ir.ui.view,arch_db:snailmail.snailmail_letter_form +#: model:ir.model.fields,field_description:snailmail.field_snailmail_letter__attachment_datas #: model_terms:ir.ui.view,arch_db:snailmail.snailmail_letter_list msgid "Document" msgstr "" @@ -167,7 +175,7 @@ msgid "Model" msgstr "" #. module: snailmail -#: code:addons/snailmail/models/snailmail_letter.py:211 +#: code:addons/snailmail/models/snailmail_letter.py:230 #, python-format msgid "One or more required fields are empty." msgstr "" @@ -178,7 +186,7 @@ msgid "Optional report to print and attach" msgstr "" #. module: snailmail -#: code:addons/snailmail/models/snailmail_letter.py:264 +#: code:addons/snailmail/models/snailmail_letter.py:280 #, python-format msgid "Post letter: an error occured." msgstr "" @@ -208,6 +216,11 @@ msgstr "" msgid "Recipient" msgstr "" +#. module: snailmail +#: model:ir.model.fields,field_description:snailmail.field_snailmail_letter__reference +msgid "Related Record" +msgstr "" + #. module: snailmail #: model:ir.model,name:snailmail.model_ir_actions_report msgid "Report Action" @@ -252,28 +265,23 @@ msgid "Status" msgstr "" #. module: snailmail -#: code:addons/snailmail/models/snailmail_letter.py:213 +#: code:addons/snailmail/models/snailmail_letter.py:232 #, python-format msgid "The attachment of the letter could not be sent. Please check its content and contact the support if the problem persists." msgstr "" #. module: snailmail -#: code:addons/snailmail/models/snailmail_letter.py:209 +#: code:addons/snailmail/models/snailmail_letter.py:228 #, python-format msgid "The country of the partner is not covered by Snailmail." msgstr "" #. module: snailmail -#: code:addons/snailmail/models/snailmail_letter.py:242 +#: code:addons/snailmail/models/snailmail_letter.py:261 #, python-format msgid "The document was correctly sent by post.
The tracking id is %ssend_id" msgstr "" -#. module: snailmail -#: model:ir.model.fields,field_description:snailmail.field_snailmail_letter__title -msgid "Title" -msgstr "" - #. module: snailmail #: model:ir.model.fields,help:snailmail.field_snailmail_letter__state msgid "When a letter is created, the status is 'Draft'.\n" @@ -282,13 +290,14 @@ msgid "When a letter is created, the status is 'Draft'.\n" msgstr "" #. module: snailmail -#: code:addons/snailmail/models/snailmail_letter.py:207 +#: code:addons/snailmail/models/snailmail_letter.py:226 #, python-format msgid "You don't have an IAP account registered for this service.
Please go to iap.odoo.com to claim your free credits." msgstr "" #. module: snailmail -#: code:addons/snailmail/models/snailmail_letter.py:204 +#: code:addons/snailmail/models/snailmail_letter.py:223 #, python-format msgid "You don't have enough credits to perform this operation.
Please go to your iap account." msgstr "" + diff --git a/addons/snailmail_account/i18n/snailmail_account.pot b/addons/snailmail_account/i18n/snailmail_account.pot index 5f808e44312..4f5cdb05296 100644 --- a/addons/snailmail_account/i18n/snailmail_account.pot +++ b/addons/snailmail_account/i18n/snailmail_account.pot @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.0alpha1+e\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-11-05 09:29+0000\n" -"PO-Revision-Date: 2018-11-05 09:29+0000\n" +"POT-Creation-Date: 2018-11-20 14:11+0000\n" +"PO-Revision-Date: 2018-11-20 14:11+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -15,6 +15,19 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: snailmail_account +#: code:addons/snailmail_account/wizard/account_invoice_send.py:86 +#, python-format +msgid "%s of the selected invoice(s) had an invalid address and were not sent" +msgstr "" + +#. module: snailmail_account +#: model_terms:ir.ui.view,arch_db:snailmail_account.account_invoice_send_inherit_account_wizard_form +msgid "\n" +" Incomplete customer address\n" +" " +msgstr "" + #. module: snailmail_account #: model_terms:ir.ui.view,arch_db:snailmail_account.account_invoice_send_inherit_account_wizard_form msgid " to: " @@ -30,6 +43,13 @@ msgstr "" msgid "Allows to send the document by snail mail (coventional posting delivery service)" msgstr "" +#. module: snailmail_account +#: code:addons/snailmail_account/wizard/account_invoice_send.py:89 +#, python-format +msgid "Cannot send by post to an incomplete address.\n" +" Please update the customer's address or uncheck 'Send by Post'." +msgstr "" + #. module: snailmail_account #: model:ir.model,name:snailmail_account.model_res_company msgid "Companies" @@ -41,8 +61,10 @@ msgid "Config Settings" msgstr "" #. module: snailmail_account -#: model:ir.model.fields,field_description:snailmail_account.field_account_invoice_send__currency_id -msgid "Currency" +#: code:addons/snailmail_account/wizard/account_invoice_send.py:85 +#: model:ir.model.fields,field_description:snailmail_account.field_account_invoice_send__invalid_addresses +#, python-format +msgid "Invalid Addresses" msgstr "" #. module: snailmail_account @@ -57,7 +79,7 @@ msgstr "" #. module: snailmail_account #: model_terms:ir.ui.view,arch_db:snailmail_account.res_config_settings_view_form -msgid "Print In Color" +msgid "Print in Color" msgstr "" #. module: snailmail_account @@ -72,11 +94,27 @@ msgstr "" #. module: snailmail_account #: model:ir.model.fields,field_description:snailmail_account.field_account_invoice_send__snailmail_is_letter -#: model:ir.model.fields,field_description:snailmail_account.field_res_config_settings__invoice_is_snailmail msgid "Send by Post" msgstr "" +#. module: snailmail_account +#: model:ir.model.fields,field_description:snailmail_account.field_res_config_settings__invoice_is_snailmail +msgid "Send by Post with Snailmail" +msgstr "" + +#. module: snailmail_account +#: model:ir.actions.act_window,name:snailmail_account.action_mail_invoice_letters +#: model:ir.ui.menu,name:snailmail_account.menu_snailmail_invoice_letters +msgid "Snailmail Letters" +msgstr "" + #. module: snailmail_account #: model:ir.model.fields,field_description:snailmail_account.field_account_invoice_send__snailmail_cost msgid "Stamp(s)" msgstr "" + +#. module: snailmail_account +#: model_terms:ir.ui.view,arch_db:snailmail_account.account_invoice_send_inherit_account_wizard_form +msgid "invoice(s) do not have a complete customer address" +msgstr "" +