Merge lp:~therp-nl/banking-addons/6.1-lp1066826-matching_wizard_on_manual_statements into lp:banking-addons/6.1

Proposed by Stefan Rijnhart (Opener)
Status: Merged
Merged at revision: 145
Proposed branch: lp:~therp-nl/banking-addons/6.1-lp1066826-matching_wizard_on_manual_statements
Merge into: lp:banking-addons/6.1
Diff against target: 113 lines (+65/-4)
2 files modified
account_banking/banking_import_transaction.py (+53/-4)
account_banking/wizard/banking_transaction_wizard.py (+12/-0)
To merge this branch: bzr merge lp:~therp-nl/banking-addons/6.1-lp1066826-matching_wizard_on_manual_statements
Reviewer Review Type Date Requested Status
Guewen Baconnier @ Camptocamp Approve
Review via email: mp+137400@code.launchpad.net
To post a comment you must log in.
142. By Stefan Rijnhart (Opener)

[FIX] Check for context is None

Revision history for this message
Guewen Baconnier @ Camptocamp (gbaconnier-c2c) wrote :

Hi,

One error here:
70 + if context = None:
Should be: if context is None

The rest seems fine to me.

143. By Stefan Rijnhart (Opener)

[FIX] Fix context comparison with None

Revision history for this message
Guewen Baconnier @ Camptocamp (gbaconnier-c2c) wrote :

Looks good to me

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'account_banking/banking_import_transaction.py'
--- account_banking/banking_import_transaction.py 2012-05-07 11:38:26 +0000
+++ account_banking/banking_import_transaction.py 2012-12-10 09:35:23 +0000
@@ -606,7 +606,7 @@
606 payment_line_obj.write(606 payment_line_obj.write(
607 cr, uid, transaction.payment_line_id.id, {607 cr, uid, transaction.payment_line_id.id, {
608 'export_state': 'done',608 'export_state': 'done',
609 'date_done': transaction.effective_date,609 'date_done': transaction.statement_line_id.date,
610 }610 }
611 )611 )
612 self._confirm_move(cr, uid, transaction_id, context=context)612 self._confirm_move(cr, uid, transaction_id, context=context)
@@ -961,9 +961,14 @@
961 ]961 ]
962962
963 def create(self, cr, uid, vals, context=None):963 def create(self, cr, uid, vals, context=None):
964 """
965 Search for duplicates of the newly created transaction
966 and mark them as such unless a context key
967 'transaction_no_duplicate_search' is defined and true.
968 """
964 res = super(banking_import_transaction, self).create(969 res = super(banking_import_transaction, self).create(
965 cr, uid, vals, context)970 cr, uid, vals, context)
966 if res:971 if res and not context.get('transaction_no_duplicate_search'):
967 me = self.browse(cr, uid, res, context)972 me = self.browse(cr, uid, res, context)
968 search_vals = [(key, '=', me[key]) 973 search_vals = [(key, '=', me[key])
969 for key in self.signal_duplicate_keys]974 for key in self.signal_duplicate_keys]
@@ -1556,8 +1561,16 @@
15561561
1557 if transaction.move_line_id:1562 if transaction.move_line_id:
1558 move_line_amount = transaction.move_line_id.amount_residual_currency1563 move_line_amount = transaction.move_line_id.amount_residual_currency
1559 to_curr_id = transaction.statement_id.journal_id.currency and transaction.statement_id.journal_id.currency.id or transaction.statement_line_id.statement_id.company_id.currency_id.id1564 to_curr_id = (
1560 from_curr_id = transaction.move_line_id.currency_id and transaction.move_line_id.currency_id.id or transaction.statement_id.company_id.currency_id.id1565 transaction.statement_line_id.statement_id.journal_id.currency
1566 and transaction.statement_line_id.statement_id.journal_id.currency.id
1567 or transaction.statement_line_id.statement_id.company_id.currency_id.id
1568 )
1569 from_curr_id = (
1570 transaction.move_line_id.currency_id
1571 and transaction.move_line_id.currency_id.id
1572 or transaction.statement_line_id.statement_id.company_id.currency_id.id
1573 )
1561 if from_curr_id != to_curr_id:1574 if from_curr_id != to_curr_id:
1562 amount_currency = stline_pool._convert_currency(cr, uid, from_curr_id, to_curr_id, move_line_amount, round=True,1575 amount_currency = stline_pool._convert_currency(cr, uid, from_curr_id, to_curr_id, move_line_amount, round=True,
1563 date=time.strftime('%Y-%m-%d'), context=context)1576 date=time.strftime('%Y-%m-%d'), context=context)
@@ -1871,6 +1884,42 @@
1871 return super(account_bank_statement_line, self).unlink(1884 return super(account_bank_statement_line, self).unlink(
1872 cr, uid, ids, context=context)1885 cr, uid, ids, context=context)
18731886
1887 def create_instant_transaction(
1888 self, cr, uid, ids, context=None):
1889 """
1890 Check for existance of import transaction on the
1891 bank statement lines. Create instant items if appropriate.
1892
1893 This way, the matching wizard works on manually
1894 encoded statements.
1895
1896 The transaction is only filled with the most basic
1897 information. The use of the transaction at this point
1898 is rather to store matching data rather than to
1899 provide data about the transaction which have all been
1900 transferred to the bank statement line.
1901 """
1902 import_transaction_pool = self.pool.get('banking.import.transaction')
1903 if ids and isinstance(ids, (int, long)):
1904 ids = [ids]
1905 if context is None:
1906 context = {}
1907 localcontext = context.copy()
1908 localcontext['transaction_no_duplicate_search'] = True
1909 for line in self.browse(
1910 cr, uid, ids, context=context):
1911 if line.state != 'confirmed' and not line.import_transaction_id:
1912 res = import_transaction_pool.create(
1913 cr, uid, {
1914 'company_id': line.statement_id.company_id.id,
1915 'statement_line_id': line.id,
1916 },
1917 context=localcontext)
1918 self.write(
1919 cr, uid, line.id, {
1920 'import_transaction_id': res},
1921 context=context)
1922
1874account_bank_statement_line()1923account_bank_statement_line()
18751924
1876class account_bank_statement(osv.osv):1925class account_bank_statement(osv.osv):
18771926
=== modified file 'account_banking/wizard/banking_transaction_wizard.py'
--- account_banking/wizard/banking_transaction_wizard.py 2012-05-02 09:29:06 +0000
+++ account_banking/wizard/banking_transaction_wizard.py 2012-12-10 09:35:23 +0000
@@ -35,6 +35,18 @@
35 _name = 'banking.transaction.wizard'35 _name = 'banking.transaction.wizard'
36 _description = 'Match transaction'36 _description = 'Match transaction'
3737
38 def create(self, cr, uid, vals, context=None):
39 """
40 Make sure that the statement line has an import transaction
41 """
42 res = super(banking_transaction_wizard, self).create(
43 cr, uid, vals, context=context)
44 if res and vals.get('statement_line_id'):
45 line_pool = self.pool.get('account.bank.statement.line')
46 line_pool.create_instant_transaction(
47 cr, uid, vals['statement_line_id'], context=context)
48 return res
49
38 def create_act_window(self, cr, uid, ids, nodestroy=True, context=None):50 def create_act_window(self, cr, uid, ids, nodestroy=True, context=None):
39 """ 51 """
40 Return a popup window for this model52 Return a popup window for this model

Subscribers

People subscribed via source and target branches