diff --git a/account_banking/__openerp__.py b/account_banking/__openerp__.py index ae6f66bc1..bff6beabc 100644 --- a/account_banking/__openerp__.py +++ b/account_banking/__openerp__.py @@ -26,7 +26,7 @@ { 'name': 'Account Banking', - 'version': '0.2', + 'version': '0.3', 'license': 'AGPL-3', 'author': 'Banking addons community', 'website': 'https://launchpad.net/banking-addons', diff --git a/account_banking/migrations/7.0.0.3/pre-migration.py b/account_banking/migrations/7.0.0.3/pre-migration.py new file mode 100644 index 000000000..dfec20809 --- /dev/null +++ b/account_banking/migrations/7.0.0.3/pre-migration.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (C) 2014 Akretion (http://www.akretion.com/) +# @author: Alexis de Lattre +# +# 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 . +# +############################################################################## + +def table_exists(cr, table): + """ Check whether a certain table or view exists """ + cr.execute( + 'SELECT count(relname) FROM pg_class WHERE relname = %s', + (table,)) + return cr.fetchone()[0] == 1 + +def migrate(cr, version): + """ + Migration script for semantic changes in account_banking_payment_export. + Putting the same script in this module for users migrating from 6.1, + before the export module was refactored out. + """ + if not version or not table_exists(cr, 'payment_line'): + return + cr.execute( + "UPDATE payment_line SET communication = communication2, " + "communication2 = null " + "FROM payment_order " + "WHERE payment_line.order_id = payment_order.id " + "AND payment_order.state in ('draft', 'open') " + "AND payment_line.state = 'normal' " + "AND communication2 is not null") diff --git a/account_banking_payment/model/payment_line.py b/account_banking_payment/model/payment_line.py index a4ddc1c0d..1cf14c614 100644 --- a/account_banking_payment/model/payment_line.py +++ b/account_banking_payment/model/payment_line.py @@ -36,15 +36,9 @@ class payment_line(orm.Model): ''' _inherit = 'payment.line' _columns = { - # New fields 'msg': fields.char('Message', size=255, required=False, readonly=True), 'date_done': fields.date( 'Date Confirmed', select=True, readonly=True), - # Communication2: enlarge to 128 - 'communication2': fields.char( - 'Communication 2', size=128, - help='The successor message of Communication.', - ), 'transit_move_line_id': fields.many2one( # this line is part of the credit side of move 2a # from the documentation diff --git a/account_banking_payment_export/migrations/7.0.0.1.165/pre-migration.py b/account_banking_payment_export/migrations/7.0.0.1.165/pre-migration.py index 91839f15e..a420f05fd 100644 --- a/account_banking_payment_export/migrations/7.0.0.1.165/pre-migration.py +++ b/account_banking_payment_export/migrations/7.0.0.1.165/pre-migration.py @@ -21,6 +21,8 @@ def migrate(cr, version): + if not version: + return cr.execute( "UPDATE payment_line SET communication = communication2, " "communication2 = null " @@ -28,5 +30,4 @@ def migrate(cr, version): "WHERE payment_line.order_id = payment_order.id " "AND payment_order.state in ('draft', 'open') " "AND payment_line.state = 'normal' " - "AND communication is null" "AND communication2 is not null") diff --git a/account_banking_tests/__openerp__.py b/account_banking_tests/__openerp__.py index 04e3fdd70..47194935a 100644 --- a/account_banking_tests/__openerp__.py +++ b/account_banking_tests/__openerp__.py @@ -27,7 +27,7 @@ 'category': 'Banking addons', 'depends': [ 'account_accountant', - 'account_banking', + 'account_banking_payment', 'account_banking_sepa_credit_transfer', ], 'description': ''' diff --git a/account_banking_tests/tests/test_payment_roundtrip.py b/account_banking_tests/tests/test_payment_roundtrip.py index 8962df1c4..a3c8223f4 100644 --- a/account_banking_tests/tests/test_payment_roundtrip.py +++ b/account_banking_tests/tests/test_payment_roundtrip.py @@ -163,6 +163,8 @@ class TestPaymentRoundtrip(SingleTransactionCase): 'price_unit': 100.0, 'quantity': 1, 'account_id': expense_id,})], + 'reference_type': 'none', + 'supplier_invoice_number': 'INV1', } self.invoice_ids = [ invoice_model.create( @@ -171,7 +173,11 @@ class TestPaymentRoundtrip(SingleTransactionCase): })] values.update({ 'partner_id': supplier2, - 'name': 'Purchase 2'}) + 'name': 'Purchase 2', + 'reference_type': 'structured', + 'supplier_invoice_number': 'INV2', + 'reference': 'STR2', + }) self.invoice_ids.append( invoice_model.create( cr, uid, values, context={ @@ -247,6 +253,27 @@ class TestPaymentRoundtrip(SingleTransactionCase): }, context=context) reg('payment.order.create').create_payment( cr, uid, [self.payment_order_create_id], context=context) + + # Check if payment lines are created with the correct reference + self.assertTrue( + reg('payment.line').search( + cr, uid, [ + ('move_line_id.invoice', '=', self.invoice_ids[0]), + ('communication', '=', 'INV1'), + ('state', '=', 'normal'), + ], context=context), + 'No payment line created from invoice 1 or with the wrong ' + 'communication') + self.assertTrue( + reg('payment.line').search( + cr, uid, [ + ('move_line_id.invoice', '=', self.invoice_ids[1]), + ('communication', '=', 'STR2'), + ('state', '=', 'structured'), + ], context=context), + 'No payment line created from invoice 2 or with the wrong ' + 'communication') + wf_service = netsvc.LocalService('workflow') wf_service.trg_validate( uid, 'payment.order', self.payment_order_id, 'open', cr)