~unifield-team/unifield-wm/uf-2191

« back to all changes in this revision

Viewing changes to res_currency_functional/account_move_line_compute_currency.py

  • Committer: Olivier DOSSMANN
  • Date: 2013-09-17 14:25:29 UTC
  • mto: This revision was merged to the branch mainline in revision 1786.
  • Revision ID: od@tempo-consulting.fr-20130917142529-qua1x9wmax5b5jyc
UTP-494 [IMP] Allow reconciliation of more than 1 currency

Show diffs side-by-side

added added

removed removed

Lines of Context:
84
84
        addendum_line_credit_account_default_destination_id = journal.default_credit_account_id.default_destination_id.id
85
85
        # Create analytic distribution if this account is an expense account
86
86
        distrib_id = False
 
87
        different_currency = False
 
88
        prev_curr = False
87
89
        if journal.default_debit_account_id.user_type.code == 'expense':
88
90
            ## Browse all lines to fetch some values
89
91
            partner_id = employee_id = transfer_journal_id = False
94
96
                employee_id = (rline.employee_id and rline.employee_id.id) or False
95
97
                transfer_journal_id = (rline.transfer_journal_id and rline.transfer_journal_id.id) or False
96
98
                currency_id = (rline.currency_id and rline.currency_id.id) or False
 
99
                # Check if lines are in different currencies
 
100
                if not prev_curr:
 
101
                    prev_curr = rline.currency_id.id
 
102
                if rline.currency_id.id != prev_curr:
 
103
                    different_currency = True
 
104
                prev_curr = rline.currency_id.id
97
105
                if not oldiest_date:
98
106
                    oldiest_date = rline.date or False
99
107
                if rline.date > oldiest_date:
173
181
                'currency_id': currency_id,
174
182
                #'functional_currency_id': functional_currency_id,
175
183
            }
 
184
            # UTP-494: use functional currency as currency for addendum line
 
185
            if different_currency:
 
186
                functional_currency_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.currency_id.id
 
187
                vals.update({'currency_id': functional_currency_id})
176
188
            # Create partner line
177
189
            vals.update({'account_id': account_id, 'debit': partner_db or 0.0, 'credit': partner_cr or 0.0,})
178
190
            partner_line_id = self.create(cr, uid, vals, context=context)