diff --git a/account_payment_partner/__init__.py b/account_payment_partner/__init__.py index 794e1a243..3845dd2da 100644 --- a/account_payment_partner/__init__.py +++ b/account_payment_partner/__init__.py @@ -3,4 +3,3 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import models -from . import wizard diff --git a/account_payment_partner/__openerp__.py b/account_payment_partner/__openerp__.py index 3683b8a33..6a5696f44 100644 --- a/account_payment_partner/__openerp__.py +++ b/account_payment_partner/__openerp__.py @@ -5,7 +5,7 @@ { 'name': 'Account Payment Partner', - 'version': '8.0.0.2.0', + 'version': '9.0.1.0.0', 'category': 'Banking addons', 'license': 'AGPL-3', 'summary': 'Adds payment mode on partners and invoices', @@ -13,15 +13,13 @@ "Serv. Tecnol. Avanzados - Pedro M. Baeza, " "Odoo Community Association (OCA)", 'website': 'https://github.com/OCA/bank-payment', - 'depends': ['account_banking_payment_export'], + 'depends': ['account_payment_mode'], 'data': [ 'views/res_partner_view.xml', 'views/account_invoice_view.xml', + 'views/account_move_line.xml', 'views/report_invoice.xml', - 'views/payment_mode.xml', - 'security/ir.model.access.csv', - 'wizard/payment_order_create_view.xml', ], - 'demo': ['demo/partner_demo.xml'], - 'installable': False, +# 'demo': ['demo/partner_demo.xml'], + 'installable': True, } diff --git a/account_payment_partner/models/__init__.py b/account_payment_partner/models/__init__.py index be3f531bb..152bb919c 100644 --- a/account_payment_partner/models/__init__.py +++ b/account_payment_partner/models/__init__.py @@ -2,4 +2,4 @@ from . import res_partner from . import account_invoice -from . import payment_mode +from . import account_move_line diff --git a/account_payment_partner/models/account_invoice.py b/account_payment_partner/models/account_invoice.py index 4c5b971c6..d67770198 100644 --- a/account_payment_partner/models/account_invoice.py +++ b/account_payment_partner/models/account_invoice.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# © 2014 Akretion - Alexis de Lattre +# © 2014-2016 Akretion - Alexis de Lattre # © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). @@ -10,27 +10,30 @@ class AccountInvoice(models.Model): _inherit = 'account.invoice' payment_mode_id = fields.Many2one( - comodel_name='payment.mode', string="Payment Mode", - domain="[('type', '=', type)]") + comodel_name='account.payment.mode', string="Payment Mode", + readonly=True, states={'draft': [('readonly', False)]}) - @api.multi - def onchange_partner_id( - self, type, partner_id, date_invoice=False, - payment_term=False, partner_bank_id=False, company_id=False): - res = super(AccountInvoice, self).onchange_partner_id( - 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.env['res.partner'].browse(partner_id) - if type == 'in_invoice': - res['value']['payment_mode_id'] = \ - partner.supplier_payment_mode.id - elif type == 'out_invoice': - res['value'].update({ - 'payment_mode_id': partner.customer_payment_mode.id, - 'partner_bank_id': partner.customer_payment_mode.bank_id.id - }) + @api.onchange('partner_id', 'company_id', 'type') + def _onchange_partner_id(self): + super(AccountInvoice, self)._onchange_partner_id() + if self.partner_id and self.type: + if self.type == 'in_invoice': + self.payment_mode_id =\ + self.partner_id.supplier_payment_mode + elif self.type == 'out_invoice': + payment_mode = self.partner_id.customer_payment_mode + self.payment_mode_id = payment_mode + if payment_mode and payment_mode.bank_account_link == 'fixed': + self.partner_bank_id = payment_mode.fixed_journal_id.\ + bank_account_id else: - res['value']['payment_mode_id'] = False + self.payment_mode_id = False + + @api.model + def line_get_convert(self, line, part): + """Copy payment mode from invoice to account move line""" + res = super(AccountInvoice, self).line_get_convert(line, part) + if line.get('type') == 'dest' and line.get('invoice_id'): + invoice = self.browse(line['invoice_id']) + res['payment_mode_id'] = invoice.payment_mode_id.id or False return res diff --git a/account_payment_partner/models/account_move_line.py b/account_payment_partner/models/account_move_line.py new file mode 100644 index 000000000..5c51fa88e --- /dev/null +++ b/account_payment_partner/models/account_move_line.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# © 2016 Akretion (http://www.akretion.com/) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp import models, fields + + +class AccountMoveLine(models.Model): + _inherit = 'account.move.line' + + payment_mode_id = fields.Many2one( + 'account.payment.mode', string='Payment Mode', + ondelete='restrict') diff --git a/account_payment_partner/models/payment_mode.py b/account_payment_partner/models/payment_mode.py deleted file mode 100644 index 6d2fa946b..000000000 --- a/account_payment_partner/models/payment_mode.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2014 Akretion - Alexis de Lattre -# © 2014 Serv. Tecnol. Avanzados - Pedro M. Baeza -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - -from openerp import models, fields - - -class PaymentMode(models.Model): - _inherit = "payment.mode" - - default_payment_mode = fields.Selection([ - ('same', 'Same'), - ('same_or_null', 'Same or empty'), - ('any', 'Any'), - ], string='Payment Mode on Invoice', default='same') diff --git a/account_payment_partner/models/res_partner.py b/account_payment_partner/models/res_partner.py index 7b6c850aa..a3b6f8302 100644 --- a/account_payment_partner/models/res_partner.py +++ b/account_payment_partner/models/res_partner.py @@ -10,12 +10,14 @@ class ResPartner(models.Model): _inherit = 'res.partner' supplier_payment_mode = fields.Many2one( - 'payment.mode', string='Supplier Payment Mode', company_dependent=True, - domain="[('purchase_ok', '=', True)]", + 'account.payment.mode', string='Supplier Payment Mode', + company_dependent=True, + domain=[('payment_type', '=', 'outbound')], help="Select the default payment mode for this supplier.") customer_payment_mode = fields.Many2one( - 'payment.mode', string='Customer Payment Mode', company_dependent=True, - domain="[('sale_ok', '=', True)]", + 'account.payment.mode', string='Customer Payment Mode', + company_dependent=True, + domain=[('payment_type', '=', 'inbound')], help="Select the default payment mode for this customer.") @api.model diff --git a/account_payment_partner/security/ir.model.access.csv b/account_payment_partner/security/ir.model.access.csv deleted file mode 100644 index ac6d96dfd..000000000 --- a/account_payment_partner/security/ir.model.access.csv +++ /dev/null @@ -1,3 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_payment_mode_read,Read access on payment.mode to Employees,account_payment.model_payment_mode,base.group_user,1,0,0,0 -access_payment_mode_type_read,Read access on payment.mode.type to Employees,account_banking_payment_export.model_payment_mode_type,base.group_user,1,0,0,0 diff --git a/account_payment_partner/views/account_invoice_view.xml b/account_payment_partner/views/account_invoice_view.xml index 895e03bf5..f0a87a704 100644 --- a/account_payment_partner/views/account_invoice_view.xml +++ b/account_payment_partner/views/account_invoice_view.xml @@ -1,7 +1,7 @@ @@ -9,13 +9,14 @@ - - account_payment_partner.invoice_filter + + account_payment_partner.account_invoice_search account.invoice - - + + @@ -28,8 +29,13 @@ + + + + + 0 @@ -42,8 +48,15 @@ + + + + 0 + + + [('partner_id', '=', commercial_partner_id)] diff --git a/account_payment_partner/views/account_move_line.xml b/account_payment_partner/views/account_move_line.xml new file mode 100644 index 000000000..b0d0ca102 --- /dev/null +++ b/account_payment_partner/views/account_move_line.xml @@ -0,0 +1,28 @@ + + + + + + + + + + account_payment_partner.move_line_form + account.move.line + + + + + + + + + + + + + diff --git a/account_payment_partner/views/payment_mode.xml b/account_payment_partner/views/payment_mode.xml deleted file mode 100644 index 120ca6970..000000000 --- a/account_payment_partner/views/payment_mode.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - account_payment_partner.payment.mode.form - payment.mode - - - - - - - - - - - diff --git a/account_payment_partner/views/report_invoice.xml b/account_payment_partner/views/report_invoice.xml index 356ec1d4d..9368238f1 100644 --- a/account_payment_partner/views/report_invoice.xml +++ b/account_payment_partner/views/report_invoice.xml @@ -2,7 +2,7 @@