[FIX+IMP] account_payment_partner: Fix invoice bank account assignation + show it on invoice report

* IMP: Add options to show partner bank account on invoice report
* FIX: Don't auto-assign partner bank account due to problems when you have a direct debit payment
  method with bank_account_link = 'fixed'. Bank account is shown through new mechanism.
This commit is contained in:
Carlos Dauden
2018-03-15 14:02:30 +01:00
committed by Thomas Binsfeld
parent ccfb5806a4
commit 59c0a5a3d4
13 changed files with 799 additions and 65 deletions

View File

@@ -1,65 +1,115 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:alt: License: AGPL-3
=======================
Account Payment Partner
=======================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fbank--payment-lightgray.png?logo=github
:target: https://github.com/OCA/bank-payment/tree/10.0/account_payment_partner
:alt: OCA/bank-payment
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/bank-payment-10-0/bank-payment-10-0-account_payment_partner
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/97/10.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
[ This file must be max 2-3 paragraphs, and is required. ]
This module adds severals fields :
* the *Supplier Payment Mode* and *Customer Payment Mode* on Partners,
* the *Payment Mode* on Invoices.
* the *Show bank account* on Payment Mode.
* the *# of digits for customer bank account* on Payment Mode.
* the *Bank account from journals* on Payment Mode.
On a Payment Order, in the wizard *Select Invoices to Pay*, the invoices will
be filtered per Payment Mode.
Installation
============
Allows to print in the invoice to which account number the payment
(via SEPA direct debit) is going to be charged so the customer knows that
information, but there are some customers that don't want that everyone
looking at the invoice sees the full account number (and even GDPR can say a
word about that), so that's the reason behind the several options.
This module depends on :
**Table of contents**
* account_payment_mode
This module is part of the OCA/bank-payment suite.
Configuration
=============
There is nothing to configure.
.. contents::
:local:
Usage
=====
[ This file must be present and contains the usage instructions
for end-users. As all other rst files included in the README,
it MUST NOT contain reStructuredText sections
only body text (paragraphs, lists, tables, etc). Should you need
a more elaborate structure to explain the addon, please create a
Sphinx documentation (which may include this file as a "quick start"
section). ]
You are able to add a payment mode directly on a partner.
This payment mode is automatically associated to the invoice related to the partner. This default value could be change in a draft invoice.
When you create an payment order, only invoices related to chosen payment mode are displayed.
Invoices without any payment mode are displayed to.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/173/11.0
Changelog
=========
Known issues / Roadmap
======================
[ The change log. The goal of this file is to help readers
understand changes between version. The primary audience is
end users and integrators. Purely technical changes such as
code refactoring must not be mentioned here.
* No known issues.
This file may contain ONE level of section titles, underlined
with the ~ (tilde) character. Other section markers are
forbidden and will likely break the structure of the README.rst
or other documents where this fragment is included. ]
10.0.1.2.0 (2018-05-24)
~~~~~~~~~~~~~~~~~~~~~~~
* [IMP] Add options to show partner bank account in invoice report
(`#458 <https://github.com/OCA/bank-payment/issues/458>`_)
Bug Tracker
===========
Bugs are tracked on `GitHub Issues
<https://github.com/OCA/bank-payment/issues>`_. In case of trouble, please
check there if your issue has already been reported. If you spotted it first,
help us smashing it by providing a detailed and welcomed feedback.
Bugs are tracked on `GitHub Issues <https://github.com/OCA/bank-payment/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/bank-payment/issues/new?body=module:%20account_payment_partner%0Aversion:%2010.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Contributors
------------
Authors
~~~~~~~
* Akretion
* Tecnativa
Contributors
~~~~~~~~~~~~
* Pedro M. Baeza
* Alexis de Lattre <alexis.delattre@akretion.com>
* Raphaël Valyi
* Stefan Rijnhart (Therp)
@@ -67,16 +117,24 @@ Contributors
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
* Danimar Ribeiro
* Angel Moya <angel.moya@domatix.com>
* `Tecnativa <https://www.tecnativa.com>`_:
Maintainer
----------
* Pedro M. Baeza
* Carlos Dauden
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
This module is part of the `OCA/bank-payment <https://github.com/OCA/bank-payment/tree/10.0/account_payment_partner>`_ project on GitHub.
To contribute to this module, please visit https://odoo-community.org.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -1,11 +1,11 @@
# -*- coding: utf-8 -*-
# © 2014 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# © 2014 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
# Copyright 2014 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# Copyright 2014 Tecnativa - Pedro M. Baeza
# Copyright 2018 Tecnativa - Carlos Dauden
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': 'Account Payment Partner',
'version': '11.0.1.2.1',
'version': '11.0.1.3.0',
'category': 'Banking addons',
'license': 'AGPL-3',
'summary': 'Adds payment mode on partners and invoices',
@@ -18,6 +18,7 @@
'views/res_partner_view.xml',
'views/account_invoice_view.xml',
'views/account_move_line.xml',
'views/account_payment_mode.xml',
'views/report_invoice.xml',
],
'demo': ['demo/partner_demo.xml'],

View File

@@ -19,6 +19,11 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.0.1\n"
#. module: account_payment_partner
#: model:ir.ui.view,arch_db:account_payment_partner.account_payment_mode_form
msgid "# of chars"
msgstr "Nº de caracteres"
#. module: account_payment_partner
#: model:ir.ui.view,arch_db:account_payment_partner.report_invoice_payment_mode
msgid "<strong>Bank Account:</strong>"
@@ -31,12 +36,8 @@ msgstr "<strong>Modo de pago:</strong>"
#. module: account_payment_partner
#: model:ir.model.fields,help:account_payment_partner.field_account_invoice_bank_account_required
msgid ""
"Activate this option if this payment method requires you to know the bank "
"account number of your customer or supplier."
msgstr ""
"Activa esta opción si este método de pago debe requerirte informar el número "
"de cuenta bancaria de tu cliente o proveedor"
msgid "Activate this option if this payment method requires you to know the bank account number of your customer or supplier."
msgstr "Activa esta opción si este método de pago debe requerirte informar el número de cuenta bancaria de tu cliente o proveedor"
#. module: account_payment_partner
#: model:ir.model.fields,field_description:account_payment_partner.field_account_invoice_bank_account_required
@@ -48,12 +49,26 @@ msgstr "Cuenta bancaria requerida"
msgid "Contact"
msgstr "Contacto"
#: model:ir.model.fields,field_description:account_payment_partner.field_account_payment_mode_show_bank_account_from_journal
msgid "Bank account from journals"
msgstr "Cuenta bancaria de los diarios"
#. module: account_payment_partner
#: model:ir.model.fields,field_description:account_payment_partner.field_res_partner_customer_payment_mode_id
#: model:ir.model.fields,field_description:account_payment_partner.field_res_users_customer_payment_mode_id
msgid "Customer Payment Mode"
msgstr "Modo de pago de cliente"
#. module: account_payment_partner
#: selection:account.payment.mode,show_bank_account:0
msgid "First n chars"
msgstr "Primeros n caracteres"
#. module: account_payment_partner
#: selection:account.payment.mode,show_bank_account:0
msgid "Full"
msgstr "Completo"
#. module: account_payment_partner
#: model:ir.model,name:account_payment_partner.model_account_invoice
msgid "Invoice"
@@ -70,6 +85,31 @@ msgstr "Apunte contable"
msgid "No Chart of Account Template has been defined !"
msgstr "No se ha definido un Plan Contable!"
#. module: account_payment_partner
#: selection:account.payment.mode,show_bank_account:0
msgid "Last n chars"
msgstr "Últimos n caracteres"
#. module: account_payment_partner
#: selection:account.payment.mode,show_bank_account:0
msgid "No"
msgstr "No"
#. module: account_payment_partner
#: model:ir.model.fields,field_description:account_payment_partner.field_account_payment_mode_show_bank_account_chars
msgid "# of digits for customer bank account"
msgstr "Nº de dígitos de cuenta bancaria del cliente"
#. module: account_payment_partner
#: model:ir.model,name:account_payment_partner.model_res_partner
msgid "Partner"
msgstr "Empresa"
#. module: account_payment_partner
#: model:ir.model,name:account_payment_partner.model_account_payment_method
msgid "Payment Methods"
msgstr "Métodos de pago"
#. module: account_payment_partner
#: model:ir.model.fields,field_description:account_payment_partner.field_account_invoice_payment_mode_id
#: model:ir.model.fields,field_description:account_payment_partner.field_account_move_line_payment_mode_id
@@ -89,19 +129,29 @@ msgstr "Pagos"
#. module: account_payment_partner
#: model:ir.model.fields,help:account_payment_partner.field_res_partner_customer_payment_mode_id
#: model:ir.model.fields,help:account_payment_partner.field_res_users_customer_payment_mode_id
msgid "Select the default payment mode for this customer."
msgstr ""
"Seleccione el modo de pago por defecto cuando esta empresa actúa como "
"cliente."
msgstr "Seleccione el modo de pago por defecto cuando esta empresa actúa como cliente."
#. module: account_payment_partner
#: model:ir.model.fields,help:account_payment_partner.field_res_partner_supplier_payment_mode_id
#: model:ir.model.fields,help:account_payment_partner.field_res_users_supplier_payment_mode_id
msgid "Select the default payment mode for this supplier."
msgstr ""
"Seleccione el modo de pago por defecto cuando esta empresa actúa como "
"proveedor."
msgstr "Seleccione el modo de pago por defecto cuando esta empresa actúa como proveedor."
#. module: account_payment_partner
#: model:ir.model.fields,field_description:account_payment_partner.field_account_payment_mode_show_bank_account
msgid "Show bank account"
msgstr "Mostrar cuenta bancaria"
#. module: account_payment_partner
#: model:ir.ui.view,arch_db:account_payment_partner.account_payment_mode_form
msgid "Show bank account in invoice report"
msgstr "Mostrar cuenta bancaria en informe factura"
#. module: account_payment_partner
#: model:ir.model.fields,help:account_payment_partner.field_account_payment_mode_show_bank_account
msgid "Show in invoices partial or full bank account number"
msgstr "Mostrar en facturas nº de cuenta bancaria parcial o completo"
#. module: account_payment_partner
#: model:ir.model.fields,field_description:account_payment_partner.field_res_partner_supplier_payment_mode_id

View File

@@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Carlos Dauden - Tecnativa <carlos.dauden@tecnativa.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
def migrate(cr, version):
"""Update database from previous versions, after updating module."""
cr.execute(
"UPDATE account_payment_mode "
"SET show_bank_account_from_journal = true "
"WHERE bank_account_link = 'fixed'"
)

View File

@@ -42,13 +42,10 @@ class AccountInvoice(models.Model):
self.partner_bank_id = False
elif self.type == 'out_invoice':
pay_mode = self.with_context(
force_company=self.company_id.id
).partner_id.customer_payment_mode_id
self.payment_mode_id = pay_mode
if pay_mode and pay_mode.bank_account_link == 'fixed':
self.partner_bank_id = pay_mode.fixed_journal_id. \
bank_account_id
# No bank account assignation is done here as this is only
# needed for printing purposes and it can conflict with
# SEPA direct debit payments. Current report prints it.
self.payment_mode_id = self.partner_id.customer_payment_mode_id
else:
self.payment_mode_id = False
if self.type == 'in_invoice':
@@ -118,3 +115,19 @@ class AccountInvoice(models.Model):
raise ValidationError(
_("The company of the invoice %s does not match "
"with that of the payment mode") % rec.name)
def partner_banks_to_show(self):
self.ensure_one()
if self.partner_bank_id:
return self.partner_bank_id
if self.payment_mode_id.show_bank_account_from_journal:
if self.payment_mode_id.bank_account_link:
return self.payment_mode_id.fixed_journal_id.bank_account_id
else:
return self.payment_mode_id.variable_journal_ids.mapped(
'bank_account_id')
if self.payment_mode_id.payment_method_id.code == 'sepa_direct_debit':
return (self.mandate_id.partner_bank_id or
self.partner_id.valid_mandate_id.partner_bank_id)
# Return this as empty recordset
return self.partner_bank_id

View File

@@ -1,13 +1,31 @@
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# Copyright 2018 Carlos Dauden - Tecnativa <carlos.dauden@tecnativa.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
from odoo import models, api, _
from odoo import api, fields, models, _
from odoo.exceptions import ValidationError
class AccountPaymentMode(models.Model):
_inherit = "account.payment.mode"
show_bank_account = fields.Selection(
selection=[
('full', 'Full'),
('first', 'First n chars'),
('last', 'Last n chars'),
('no', 'No'),
],
string='Show bank account',
default='full',
help="Show in invoices partial or full bank account number")
show_bank_account_from_journal = fields.Boolean(
string='Bank account from journals'
)
show_bank_account_chars = fields.Integer(
string="# of digits for customer bank account",
)
@api.constrains('company_id')
def account_invoice_company_constrains(self):
for mode in self:

View File

@@ -0,0 +1,11 @@
* Alexis de Lattre <alexis.delattre@akretion.com>
* Raphaël Valyi
* Stefan Rijnhart (Therp)
* Alexandre Fayolle
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
* Danimar Ribeiro
* Angel Moya <angel.moya@domatix.com>
* `Tecnativa <https://www.tecnativa.com>`_:
* Pedro M. Baeza
* Carlos Dauden

View File

@@ -0,0 +1,22 @@
[ This file must be max 2-3 paragraphs, and is required. ]
This module adds severals fields :
* the *Supplier Payment Mode* and *Customer Payment Mode* on Partners,
* the *Payment Mode* on Invoices.
* the *Show bank account* on Payment Mode.
* the *# of digits for customer bank account* on Payment Mode.
* the *Bank account from journals* on Payment Mode.
On a Payment Order, in the wizard *Select Invoices to Pay*, the invoices will
be filtered per Payment Mode.
Allows to print in the invoice to which account number the payment
(via SEPA direct debit) is going to be charged so the customer knows that
information, but there are some customers that don't want that everyone
looking at the invoice sees the full account number (and even GDPR can say a
word about that), so that's the reason behind the several options.

View File

@@ -0,0 +1,15 @@
[ The change log. The goal of this file is to help readers
understand changes between version. The primary audience is
end users and integrators. Purely technical changes such as
code refactoring must not be mentioned here.
This file may contain ONE level of section titles, underlined
with the ~ (tilde) character. Other section markers are
forbidden and will likely break the structure of the README.rst
or other documents where this fragment is included. ]
10.0.1.2.0 (2018-05-24)
~~~~~~~~~~~~~~~~~~~~~~~
* [IMP] Add options to show partner bank account in invoice report
(`#458 <https://github.com/OCA/bank-payment/issues/458>`_)

View File

@@ -0,0 +1,12 @@
[ This file must be present and contains the usage instructions
for end-users. As all other rst files included in the README,
it MUST NOT contain reStructuredText sections
only body text (paragraphs, lists, tables, etc). Should you need
a more elaborate structure to explain the addon, please create a
Sphinx documentation (which may include this file as a "quick start"
section). ]
You are able to add a payment mode directly on a partner.
This payment mode is automatically associated to the invoice related to the partner. This default value could be change in a draft invoice.
When you create an payment order, only invoices related to chosen payment mode are displayed.
Invoices without any payment mode are displayed to.

View File

@@ -0,0 +1,488 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.14: http://docutils.sourceforge.net/" />
<title>Account Payment Partner</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="account-payment-partner">
<h1 class="title">Account Payment Partner</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/bank-payment/tree/10.0/account_payment_partner"><img alt="OCA/bank-payment" src="https://img.shields.io/badge/github-OCA%2Fbank--payment-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/bank-payment-10-0/bank-payment-10-0-account_payment_partner"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/97/10.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>[ This file must be max 2-3 paragraphs, and is required. ]</p>
<p>This module adds severals fields :</p>
<ul class="simple">
<li>the <em>Supplier Payment Mode</em> and <em>Customer Payment Mode</em> on Partners,</li>
<li>the <em>Payment Mode</em> on Invoices.</li>
<li>the <em>Show bank account</em> on Payment Mode.</li>
<li>the <em># of digits for customer bank account</em> on Payment Mode.</li>
<li>the <em>Bank account from journals</em> on Payment Mode.</li>
</ul>
<p>On a Payment Order, in the wizard <em>Select Invoices to Pay</em>, the invoices will
be filtered per Payment Mode.</p>
<p>Allows to print in the invoice to which account number the payment
(via SEPA direct debit) is going to be charged so the customer knows that
information, but there are some customers that dont want that everyone
looking at the invoice sees the full account number (and even GDPR can say a
word about that), so thats the reason behind the several options.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#usage" id="id3">Usage</a></li>
<li><a class="reference internal" href="#changelog" id="id4">Changelog</a><ul>
<li><a class="reference internal" href="#id1" id="id5">10.0.1.2.0 (2018-05-24)</a></li>
</ul>
</li>
<li><a class="reference internal" href="#bug-tracker" id="id6">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id7">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id8">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id9">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="id10">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#id3">Usage</a></h1>
<dl class="docutils">
<dt>[ This file must be present and contains the usage instructions</dt>
<dd>for end-users. As all other rst files included in the README,
it MUST NOT contain reStructuredText sections
only body text (paragraphs, lists, tables, etc). Should you need
a more elaborate structure to explain the addon, please create a
Sphinx documentation (which may include this file as a “quick start”
section). ]</dd>
</dl>
<p>You are able to add a payment mode directly on a partner.
This payment mode is automatically associated to the invoice related to the partner. This default value could be change in a draft invoice.
When you create an payment order, only invoices related to chosen payment mode are displayed.
Invoices without any payment mode are displayed to.</p>
</div>
<div class="section" id="changelog">
<h1><a class="toc-backref" href="#id4">Changelog</a></h1>
<dl class="docutils">
<dt>[ The change log. The goal of this file is to help readers</dt>
<dd><p class="first">understand changes between version. The primary audience is
end users and integrators. Purely technical changes such as
code refactoring must not be mentioned here.</p>
<p class="last">This file may contain ONE level of section titles, underlined
with the ~ (tilde) character. Other section markers are
forbidden and will likely break the structure of the README.rst
or other documents where this fragment is included. ]</p>
</dd>
</dl>
<div class="section" id="id1">
<h2><a class="toc-backref" href="#id5">10.0.1.2.0 (2018-05-24)</a></h2>
<ul class="simple">
<li>[IMP] Add options to show partner bank account in invoice report
(<a class="reference external" href="https://github.com/OCA/bank-payment/issues/458">#458</a>)</li>
</ul>
</div>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id6">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/bank-payment/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/bank-payment/issues/new?body=module:%20account_payment_partner%0Aversion:%2010.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#id7">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#id8">Authors</a></h2>
<ul class="simple">
<li>Akretion</li>
<li>Tecnativa</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#id9">Contributors</a></h2>
<ul class="simple">
<li>Alexis de Lattre &lt;<a class="reference external" href="mailto:alexis.delattre&#64;akretion.com">alexis.delattre&#64;akretion.com</a>&gt;</li>
<li>Raphaël Valyi</li>
<li>Stefan Rijnhart (Therp)</li>
<li>Alexandre Fayolle</li>
<li>Stéphane Bidoul &lt;<a class="reference external" href="mailto:stephane.bidoul&#64;acsone.eu">stephane.bidoul&#64;acsone.eu</a>&gt;</li>
<li>Danimar Ribeiro</li>
<li>Angel Moya &lt;<a class="reference external" href="mailto:angel.moya&#64;domatix.com">angel.moya&#64;domatix.com</a>&gt;</li>
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
<li>Pedro M. Baeza</li>
<li>Carlos Dauden</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id10">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/bank-payment/tree/10.0/account_payment_partner">OCA/bank-payment</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2018 Carlos Dauden - Tecnativa <carlos.dauden@tecnativa.com>
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="account_payment_mode_form" model="ir.ui.view">
<field name="model">account.payment.mode</field>
<field name="inherit_id" ref="account_payment_mode.account_payment_mode_form"/>
<field name="arch" type="xml">
<group name="note" position="before">
<group string="Show bank account in invoice report">
<group>
<field name="show_bank_account"/>
<field name="show_bank_account_from_journal"
attrs="{'invisible': [('show_bank_account', '=', 'no')]}"/>
<field name="show_bank_account_chars" string="# of chars"
attrs="{'invisible': [('show_bank_account', 'not in', ['first', 'last'])]}"/>
</group>
</group>
</group>
</field>
</record>
</odoo>

View File

@@ -7,13 +7,23 @@
<strong>Payment Mode:</strong>
<span t-field="o.payment_mode_id.note" />
</p>
<p t-if="o.partner_bank_id">
<strong>Bank Account:</strong>
<t t-if="o.partner_bank_id.bank_id">
<t t-esc="o.partner_bank_id.bank_id.name + ('' if not o.partner_bank_id.bank_id.bic else ' (' + o.partner_bank_id.bank_id.bic + ')')" />
</t>
<span t-field="o.partner_bank_id.acc_number" />
</p>
<t t-if="o.payment_mode_id and o.payment_mode_id.show_bank_account != 'no'">
<p t-foreach="o.partner_banks_to_show()" t-as="partner_bank">
<strong>Bank Account:</strong>
<t t-if="partner_bank.bank_id">
<t t-esc="partner_bank.bank_id.name + ('' if not partner_bank.bank_id.bic else ' (' + partner_bank.bank_id.bic + ')')" />
</t>
<t t-if="o.payment_mode_id.show_bank_account == 'full'">
<span t-field="partner_bank.acc_number"/>
</t>
<t t-elif="o.payment_mode_id.show_bank_account == 'first'">
<span t-esc="partner_bank.acc_number[:o.payment_mode_id.show_bank_account_chars] + '*' * (len(partner_bank.acc_number) - o.payment_mode_id.show_bank_account_chars)"/>
</t>
<t t-elif="o.payment_mode_id.show_bank_account == 'last'">
<span t-esc="'*' * (len(partner_bank.acc_number) - o.payment_mode_id.show_bank_account_chars) + partner_bank.acc_number[o.payment_mode_id.show_bank_account_chars:]"/>
</t>
</p>
</t>
</xpath>
</template>