mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
[MERGE] with Stefan's branch lp:~therp-nl/banking-addons/70-communication-communication2-clarify+tests+migration+no_communication2_enlarge
Details :
[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.
This commit is contained in:
@@ -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',
|
||||
|
||||
44
account_banking/migrations/7.0.0.3/pre-migration.py
Normal file
44
account_banking/migrations/7.0.0.3/pre-migration.py
Normal file
@@ -0,0 +1,44 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
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")
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
'category': 'Banking addons',
|
||||
'depends': [
|
||||
'account_accountant',
|
||||
'account_banking',
|
||||
'account_banking_payment',
|
||||
'account_banking_sepa_credit_transfer',
|
||||
],
|
||||
'description': '''
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user