← Back to team overview

banking-addons-drivers team mailing list archive

[Merge] lp:~therp-nl/banking-addons/70-communication-communication2-clarify+tests+migration+no_communication2_enlarge into lp:~banking-addons-drivers/banking-addons/70-communication-communication2-clarify

 

Stefan Rijnhart (Therp) has proposed merging lp:~therp-nl/banking-addons/70-communication-communication2-clarify+tests+migration+no_communication2_enlarge into lp:~banking-addons-drivers/banking-addons/70-communication-communication2-clarify.

Commit message:
[UPD] Added tests for gathering payment line communication
[FIX] Adapt module dependencies to refactoring of payment functionality.
 The test module actually depends on account_banking integration
 with payments.
[IMP] Ensure proper migration from older versions
[RFR] Don't enlarge largely unused additional communication2 field +
        remove (now) meaningless comment in same block.

Requested reviews:
  Banking Addons Drivers (banking-addons-drivers)

For more details, see:
https://code.launchpad.net/~therp-nl/banking-addons/70-communication-communication2-clarify+tests+migration+no_communication2_enlarge/+merge/212618
-- 
https://code.launchpad.net/~therp-nl/banking-addons/70-communication-communication2-clarify+tests+migration+no_communication2_enlarge/+merge/212618
Your team Banking Addons Drivers is requested to review the proposed merge of lp:~therp-nl/banking-addons/70-communication-communication2-clarify+tests+migration+no_communication2_enlarge into lp:~banking-addons-drivers/banking-addons/70-communication-communication2-clarify.
=== modified file 'account_banking/__openerp__.py'
--- account_banking/__openerp__.py	2014-03-17 07:38:04 +0000
+++ account_banking/__openerp__.py	2014-03-25 13:56:35 +0000
@@ -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',

=== added directory 'account_banking/migrations/7.0.0.3'
=== added file 'account_banking/migrations/7.0.0.3/pre-migration.py'
--- account_banking/migrations/7.0.0.3/pre-migration.py	1970-01-01 00:00:00 +0000
+++ account_banking/migrations/7.0.0.3/pre-migration.py	2014-03-25 13:56:35 +0000
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    Copyright (C) 2014 Akretion (http://www.akretion.com/)
+#    @author: Alexis de Lattre <alexis.delattre@xxxxxxxxxxxx>
+#
+#    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/>.
+#
+##############################################################################
+
+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")

=== modified file 'account_banking_payment/model/payment_line.py'
--- account_banking_payment/model/payment_line.py	2014-03-22 00:53:03 +0000
+++ account_banking_payment/model/payment_line.py	2014-03-25 13:56:35 +0000
@@ -36,15 +36,9 @@
     '''
     _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

=== modified file 'account_banking_payment_export/migrations/7.0.0.1.165/pre-migration.py'
--- account_banking_payment_export/migrations/7.0.0.1.165/pre-migration.py	2014-03-25 06:46:32 +0000
+++ account_banking_payment_export/migrations/7.0.0.1.165/pre-migration.py	2014-03-25 13:56:35 +0000
@@ -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 @@
         "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")

=== modified file 'account_banking_tests/__openerp__.py'
--- account_banking_tests/__openerp__.py	2014-02-16 16:13:15 +0000
+++ account_banking_tests/__openerp__.py	2014-03-25 13:56:35 +0000
@@ -27,7 +27,7 @@
     'category': 'Banking addons',
     'depends': [
         'account_accountant',
-        'account_banking',
+        'account_banking_payment',
         'account_banking_sepa_credit_transfer',
         ],
     'description': '''

=== modified file 'account_banking_tests/tests/test_payment_roundtrip.py'
--- account_banking_tests/tests/test_payment_roundtrip.py	2013-09-26 17:55:00 +0000
+++ account_banking_tests/tests/test_payment_roundtrip.py	2014-03-25 13:56:35 +0000
@@ -163,6 +163,8 @@
                         '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 @@
                     })]
         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 @@
                 }, 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)


Follow ups