Add 4 new modules to handle payment type and bank accounts:

- account_payment_partner
- account_payment_sale
- account_payment_sale_stock
- account_payment_purchase

Filter the selection of invoices per payment type.
Add active field on payment.mode and payment.mode.type.
Add menu entry for Payment Types.
This commit is contained in:
Alexis de Lattre
2014-02-25 00:19:57 +01:00
committed by Thomas Binsfeld
parent 2838dd158c
commit dcad5c81e9
10 changed files with 419 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Account Payment Partner module for OpenERP
# Copyright (C) 2014 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import model

View File

@@ -0,0 +1,55 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Account Payment Partner module for OpenERP
# Copyright (C) 2014 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Account Payment Partner',
'version': '0.1',
'category': 'Banking addons',
'license': 'AGPL-3',
'summary': 'Adds payment mode on partners and invoices',
'description': """
Account Payment Partner
=======================
This module adds severals fields :
* the *Supplier Payment Mode* and *Customer Payment Mode* on Partners,
* the *Payment Mode* on Invoices.
On a Payment Order, in the wizard *Select Invoices to Pay*, the invoices will
be filtered per Payment Mode.
Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com>
for any help or question about this module.
""",
'author': 'Akretion',
'website': 'http://www.akretion.com',
'depends': ['account_banking_payment_export'],
'data': [
'view/partner.xml',
'view/account_invoice.xml',
],
'demo': ['demo/partner_demo.xml'],
'active': False,
}

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!-- Camptocamp -->
<record id="supplier_payment_mode_12" model="ir.property" forcecreate="True">
<field name="name">supplier_payment_mode_12</field>
<field name="fields_id"
search="[('model','=','res.partner'),('name','=','supplier_payment_mode')]"/>
<field name="value"
eval="'payment.mode,'+str(ref('account_banking_payment_export.payment_mode_2'))"/>
<field name="company_id" ref="base.main_company"/>
<field name="res_id" ref="base.res_partner_12"/>
</record>
<record id="customer_payment_mode_12" model="ir.property" forcecreate="True">
<field name="name">customer_payment_mode_12</field>
<field name="fields_id"
search="[('model','=','res.partner'),('name','=','customer_payment_mode')]"/>
<field name="value"
eval="'payment.mode,'+str(ref('account_banking_payment_export.payment_mode_2'))"/>
<field name="company_id" ref="base.main_company"/>
<field name="res_id" ref="base.res_partner_12"/>
</record>
<!-- Agrolait -->
<record id="customer_payment_mode_2" model="ir.property" forcecreate="True">
<field name="name">customer_payment_mode_2</field>
<field name="fields_id"
search="[('model','=','res.partner'),('name','=','customer_payment_mode')]"/>
<field name="value"
eval="'payment.mode,'+str(ref('account_banking_payment_export.payment_mode_3'))"/>
<field name="company_id" ref="base.main_company"/>
<field name="res_id" ref="base.res_partner_2"/>
</record>
<!-- Asustek -->
<record id="supplier_payment_mode_1" model="ir.property" forcecreate="True">
<field name="name">supplier_payment_mode_1</field>
<field name="fields_id"
search="[('model','=','res.partner'),('name','=','supplier_payment_mode')]"/>
<field name="value"
eval="'payment.mode,'+str(ref('account_banking_payment_export.payment_mode_2'))"/>
<field name="company_id" ref="base.main_company"/>
<field name="res_id" ref="base.res_partner_1"/>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,57 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * account_payment_partner
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-06-09 23:22+0000\n"
"PO-Revision-Date: 2014-06-09 23:22+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_payment_partner
#: field:res.partner,customer_payment_mode:0
msgid "Customer Payment Mode"
msgstr ""
#. module: account_payment_partner
#: model:ir.model,name:account_payment_partner.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: account_payment_partner
#: model:ir.model,name:account_payment_partner.model_res_partner
msgid "Partner"
msgstr ""
#. module: account_payment_partner
#: field:account.invoice,payment_mode_id:0
msgid "Payment Mode"
msgstr ""
#. module: account_payment_partner
#: help:res.partner,customer_payment_mode:0
msgid "Select the default payment mode for this customer."
msgstr ""
#. module: account_payment_partner
#: help:res.partner,supplier_payment_mode:0
msgid "Select the default payment mode for this supplier."
msgstr ""
#. module: account_payment_partner
#: field:res.partner,supplier_payment_mode:0
msgid "Supplier Payment Mode"
msgstr ""
#. module: account_payment_partner
#: model:ir.model,name:account_payment_partner.model_payment_order_create
msgid "payment.order.create"
msgstr ""

View File

@@ -0,0 +1,25 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Account Payment Partner module for OpenERP
# Copyright (C) 2014 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import partner
from . import account_invoice
from . import payment_order_create

View File

@@ -0,0 +1,56 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Account Payment Partner module for OpenERP
# Copyright (C) 2014 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.osv import orm, fields
class account_invoice(orm.Model):
_inherit = 'account.invoice'
_columns = {
'payment_mode_id': fields.many2one(
'payment.mode', 'Payment Mode'),
}
def onchange_partner_id(
self, cr, uid, ids, type, partner_id, date_invoice=False,
payment_term=False, partner_bank_id=False, company_id=False):
res = super(account_invoice, self).onchange_partner_id(
cr, uid, ids, type, partner_id, date_invoice=date_invoice,
payment_term=payment_term, partner_bank_id=partner_bank_id,
company_id=company_id)
if partner_id:
partner = self.pool['res.partner'].browse(cr, uid, partner_id)
if type == 'in_invoice':
res['value']['payment_mode_id'] = \
partner.supplier_payment_mode.id or False
elif type == 'out_invoice':
res['value'].update({
'payment_mode_id':
partner.customer_payment_mode.id or False,
'partner_bank_id':
partner.customer_payment_mode and
partner.customer_payment_mode.bank_id.id or False,
})
else:
res['value']['payment_mode_id'] = False
return res

View File

@@ -0,0 +1,44 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Account Payment Partner module for OpenERP
# Copyright (C) 2014 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.osv import orm, fields
class res_partner(orm.Model):
_inherit = 'res.partner'
_columns = {
'supplier_payment_mode': fields.property(
'payment.mode', type='many2one', relation='payment.mode',
string='Supplier Payment Mode', view_load=True,
help="Select the default payment mode for this supplier."),
'customer_payment_mode': fields.property(
'payment.mode', type='many2one', relation='payment.mode',
string='Customer Payment Mode', view_load=True,
help="Select the default payment mode for this customer."),
}
def _commercial_fields(self, cr, uid, context=None):
res = super(res_partner, self)._commercial_fields(
cr, uid, context=context)
res += ['supplier_payment_mode', 'customer_payment_mode']
return res

View File

@@ -0,0 +1,39 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Account Payment Partner module for OpenERP
# Copyright (C) 2014 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.osv import orm
class payment_order_create(orm.TransientModel):
_inherit = 'payment.order.create'
def extend_payment_order_domain(
self, cr, uid, payment_order, domain, context=None):
super(payment_order_create, self).extend_payment_order_domain(
cr, uid, payment_order, domain, context=context)
domain += [
'|', '|',
('invoice', '=', False),
('invoice.payment_mode_id', '=', False),
('invoice.payment_mode_id', '=', payment_order.mode.id)
]
return True

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2014 Akretion (http://www.akretion.com/)
@author Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="invoice_form" model="ir.ui.view">
<field name="name">account_payment_partner.invoice_form</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form" />
<field name="arch" type="xml">
<field name="partner_bank_id" position="after">
<field name="payment_mode_id"/>
</field>
</field>
</record>
<record id="invoice_supplier_form" model="ir.ui.view">
<field name="name">account_payment_partner.invoice_supplier_form</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_supplier_form" />
<field name="arch" type="xml">
<field name="partner_bank_id" position="after">
<field name="payment_mode_id"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2014 Akretion (http://www.akretion.com/)
@author Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="view_partner_property_form" model="ir.ui.view">
<field name="name">account_partner_payment.partner_form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="account.view_partner_property_form" />
<field name="arch" type="xml">
<field name="property_payment_term" position="after">
<field name="customer_payment_mode"
attrs="{'invisible': [('customer', '=', False)]}"/>
</field>
<field name="property_supplier_payment_term" position="after">
<field name="supplier_payment_mode"
attrs="{'invisible': [('supplier', '=', False)]}"/>
</field>
</field>
</record>
</data>
</openerp>