summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorAntoine Prieels (ANP) <anp@odoo.com>2018-10-29 12:03:18 +0000
committerRémi Rahir <rar@odoo.com>2018-11-22 15:38:42 +0000
commitf68df47ddf3d4dfd78950dba56f84f11631bfba0 (patch)
tree4209e3caa6b5edbcdf2a27e32e4cac4379676527 /addons
parentd5ca268438fb60cd825c1b2545670d1ed5d3d0f7 (diff)
[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
Diffstat (limited to 'addons')
-rw-r--r--addons/snailmail/models/snailmail_letter.py4
-rw-r--r--addons/snailmail_account/wizard/account_invoice_send.py7
-rw-r--r--addons/snailmail_account/wizard/account_invoice_send_views.xml51
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 @@
<xpath expr="//div[@name='option_email']" position='before'>
<div name="option_letter">
<field name="letter_ids" invisible="1"/>
+ <field name="invalid_addresses" invisible="1"/>
<div name="option" class="text-left d-inline-block">
<field name="snailmail_is_letter" />
<b><label for="snailmail_is_letter"/></b>
</div>
- <div class="text-left d-inline-block mr8" name='cost' attrs="{'invisible': [('snailmail_is_letter','=', False)]}">
- <b>(
- <span>
- <field name="snailmail_cost" options="{'digits':[0,0]}" class="mr4"/>
- <label for="snailmail_cost" class="mr4"/>
+ <span attrs="{'invisible': [('snailmail_is_letter','=', False)]}">
+ <span class="mr4" attrs="{'invisible': [('snailmail_cost', '=', 0)]}">
+ <b>(
+ <span>
+ <field name="snailmail_cost" options="{'digits':[0,0]}" class="mr4"/>
+ <label for="snailmail_cost" class="mr4"/>
+ </span>
+ <i class="fa fa-info-circle" role="img" aria-label="Warning" title="Make sure you have enough Stamps on your account."/>
+ )</b>
+ </span>
+ <span attrs="{'invisible': [('composition_mode', '=', 'mass_mail')]}">
+ <span attrs="{'invisible': [('invalid_addresses', '!=', 0)]}">
+ <div class="text-right text-muted d-inline-block" name="address">
+ <span> to: </span>
+ <field name="partner_id" readonly="1" force_save="1" context="{'show_address': not invalid_addresses, 'address_inline': 1}" options="{'always_reload': True, 'no_quick_create': True}"/>
+ </div>
</span>
- <i class="fa fa-info-circle" role="img" aria-label="Warning" title="
- The letter will be sent using the IAP service from Odoo.&#10;Make sure you have enough credits on your account or proceed to a recharge.&#10;The price is estimated based on 1 page per document.
- "/>
- )</b>
- </div>
- <div class="text-right text-muted d-inline-block" name="address" attrs="{'invisible': ['|', ('composition_mode', '=', 'mass_mail'), ('snailmail_is_letter','=', False)]}">
- <span> to: </span>
- <field name="partner_id" readonly="1" force_save="1" context="{'show_address': 1, 'address_inline': 1}" options="{'always_reload': True, 'no_quick_create': True}"/>
- </div>
+ <span attrs="{'invisible': [('invalid_addresses', '=', 0)]}">
+ <div class="text-right d-inline-block" attrs="{'invisible': [('composition_mode', '=', 'mass_mail')]}">
+ <span class="text-muted">
+ Incomplete address for
+ <field name="partner_id" readonly="1" force_save="1" context="{'show_address': not invalid_addresses, 'address_inline': 1}" options="{'always_reload': True, 'no_quick_create': True}"/>
+ </span>
+ </div>
+ </span>
+ </span>
+ <span attrs="{'invisible': [('composition_mode', '!=', 'mass_mail')]}">
+ <span attrs="{'invisible': [('snailmail_cost', '=', 0)]}">
+ <span class="text-muted" attrs="{'invisible': [('invalid_addresses', '=', 0)]}">
+ Only <field name="snailmail_cost" readonly="1" options="{'digits':[0,0]}"/> of the selected invoices have a valid address.
+ </span>
+ </span>
+ <span class="text-muted" attrs="{'invisible': [('snailmail_cost', '!=', 0)]}">
+ None of the selected invoices have a valid address
+ </span>
+ </span>
+ </span>
</div>
</xpath>
<xpath expr="//footer/button[hasclass('send_and_print')]" position='attributes'>