[ADD] Added currency_id field, so that
now it is possible to get accounting reports in another currency other than the company currency. [IMP] Given that the new field was added When no currency is selected the company currency is the default, is a different currency all the values will be expressed into that new currency. This behavior is now only available for the four (4) columns report, Will it be necessary to take into account which date rate, the actual or another date for that exchange.6.0
parent
aa375e1810
commit
21a61c6b38
|
@ -55,6 +55,7 @@ class account_balance(report_sxw.rml_parse):
|
|||
'get_periods_and_date_text': self.get_periods_and_date_text,
|
||||
'get_informe_text': self.get_informe_text,
|
||||
'get_month':self.get_month,
|
||||
'exchange_name':self.exchange_name,
|
||||
})
|
||||
self.context = context
|
||||
|
||||
|
@ -130,12 +131,36 @@ class account_balance(report_sxw.rml_parse):
|
|||
return True
|
||||
return False
|
||||
|
||||
def exchange_name(self, form):
|
||||
self.from_currency_id = self.get_company_currency(form['company_id'] and form['company_id'][0])
|
||||
if not form['currency_id']:
|
||||
self.to_currency_id = self.from_currency_id
|
||||
else:
|
||||
self.to_currency_id = form['currency_id'] and form['currency_id'][0]
|
||||
return self.pool.get('res.currency').browse(self.cr, self.uid, self.to_currency_id).name
|
||||
|
||||
def exchange(self, from_amount):
|
||||
if self.from_currency_id == self.to_currency_id:
|
||||
return from_amount
|
||||
curr_obj = self.pool.get('res.currency')
|
||||
return curr_obj.compute(self.cr, self.uid, self.from_currency_id, self.to_currency_id, from_amount)
|
||||
|
||||
def get_company_currency(self, company_id):
|
||||
rc_obj = self.pool.get('res.company')
|
||||
return rc_obj.browse(self.cr, self.uid, company_id).currency_id.id
|
||||
|
||||
def lines(self, form, ids={}, done=None, level=0):
|
||||
"""
|
||||
Returns all the data needed for the report lines
|
||||
(account info plus debit/credit/balance in the selected period
|
||||
and the full year)
|
||||
"""
|
||||
self.from_currency_id = self.get_company_currency(form['company_id'] and form['company_id'][0])
|
||||
if not form['currency_id']:
|
||||
self.to_currency_id = self.from_currency_id
|
||||
else:
|
||||
self.to_currency_id = form['currency_id'] and form['currency_id'][0]
|
||||
|
||||
tot_bin = 0.0
|
||||
tot_deb = 0.0
|
||||
tot_crd = 0.0
|
||||
|
@ -300,10 +325,10 @@ class account_balance(report_sxw.rml_parse):
|
|||
'code': account['code'],
|
||||
'name': (account['total'] and not account['label']) and 'TOTAL %s'%(account['name'].upper()) or account['name'],
|
||||
'level': account['level'],
|
||||
'balanceinit': period_balanceinit[account_id],
|
||||
'debit': account['debit'],
|
||||
'credit': account['credit'],
|
||||
'balance': period_balanceinit[account_id]+account['debit']-account['credit'],
|
||||
'balanceinit': self.exchange(period_balanceinit[account_id]),
|
||||
'debit': self.exchange(account['debit']),
|
||||
'credit': self.exchange(account['credit']),
|
||||
'balance': self.exchange(period_balanceinit[account_id]+account['debit']-account['credit']),
|
||||
'parent_id': account['parent_id'],
|
||||
'bal_type': '',
|
||||
'label': account['label'],
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td><para style="TOP_TITLE"></para></td>
|
||||
<td><para style="TITLE_CENTER">[[data['form'] and (' (Expresado en %s)'%( company.currency_id.name)) or '']]</para></td>
|
||||
<td><para style="TITLE_CENTER">[[data['form'] and (' (Expresado en %s)'%( exchange_name(data['form']))) or '']]</para></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><para style="TOP_TITLE"></para></td>
|
||||
|
|
|
@ -8,8 +8,11 @@
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="General Account Balance [ Initial | Debit | Credit | Balance ]">
|
||||
<group width='800' height='600'>
|
||||
<group>
|
||||
<field name="company_id"/>
|
||||
<group>
|
||||
<field name="currency_id"/>
|
||||
</group>
|
||||
|
||||
<newline/>
|
||||
<group colspan="4">
|
||||
|
|
|
@ -48,6 +48,7 @@ class wizard_report(osv.osv_memory):
|
|||
'lab_str': fields.char('Description', size= 128),
|
||||
'inf_type': fields.selection([('bgen','Balance General'),('bcom','Balance Comprobacion'),('edogp','Estado Ganancias y Perdidas'),('bml','Libro Mayor Legal')],'Tipo Informe',required=True),
|
||||
#~ 'type_report': fields.selection([('un_col','Una Columna'),('dos_col','Dos Columnas'),('cuatro_col','Cuatro Columnas')],'Tipo Informe',required=True),
|
||||
'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Forces all values for this report to be expressed in this secondary currency."),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
|
Loading…
Reference in New Issue