Humberto Arocha 13 years ago
parent
commit
daaa83d675
  1. 57
      account_financial_report/report/account_balance.py
  2. 65
      account_financial_report/report/account_balance_2_cols.py
  3. 59
      account_financial_report/report/account_balance_4_cols.py
  4. 2
      account_financial_report/report/balance_full.rml
  5. 2
      account_financial_report/report/balance_full_2_cols.rml
  6. 2
      account_financial_report/report/balance_full_4_cols.rml
  7. 16
      account_financial_report/wizard/account_report_wizard.xml
  8. 1
      account_financial_report/wizard/wizard_account_balance_2_report.py
  9. 1
      account_financial_report/wizard/wizard_account_balance_4_report.py
  10. 1
      account_financial_report/wizard/wizard_account_balance_report.py

57
account_financial_report/report/account_balance.py

@ -55,6 +55,7 @@ class account_balance(report_sxw.rml_parse):
'get_periods_and_date_text': self.get_periods_and_date_text, 'get_periods_and_date_text': self.get_periods_and_date_text,
'get_informe_text': self.get_informe_text, 'get_informe_text': self.get_informe_text,
'get_month':self.get_month, 'get_month':self.get_month,
'exchange_name':self.exchange_name,
}) })
self.context = context self.context = context
@ -121,20 +122,41 @@ class account_balance(report_sxw.rml_parse):
return {'periods':periods_str, 'date':dates_str} return {'periods':periods_str, 'date':dates_str}
def exchange_name(self, form):
self.from_currency_id = self.get_company_currency(form['company_id'] and type(form['company_id']) in (list,tuple) and form['company_id'][0] or form['company_id'])
if not form['currency_id']:
self.to_currency_id = self.from_currency_id
else:
self.to_currency_id = form['currency_id'] and type(form['currency_id']) in (list, tuple) and form['currency_id'][0] or form['currency_id']
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):
def lines(self, form, level=0):
""" """
Returns all the data needed for the report lines Returns all the data needed for the report lines
(account info plus debit/credit/balance in the selected period (account info plus debit/credit/balance in the selected period
and the full year) and the full year)
""" """
self.from_currency_id = self.get_company_currency(form['company_id'] and type(form['company_id']) in (list,tuple) and form['company_id'][0] or form['company_id'])
if not form['currency_id']:
self.to_currency_id = self.from_currency_id
else:
self.to_currency_id = form['currency_id'] and type(form['currency_id']) in (list, tuple) and form['currency_id'][0] or form['currency_id']
tot_check = False
tot_eje = 0.0 tot_eje = 0.0
if not ids:
ids = self.ids
if not ids:
return []
if not done:
done = {}
if form.has_key('account_list') and form['account_list']: if form.has_key('account_list') and form['account_list']:
account_ids = form['account_list'] account_ids = form['account_list']
del form['account_list'] del form['account_list']
@ -146,11 +168,12 @@ class account_balance(report_sxw.rml_parse):
fiscalyear_obj = self.pool.get('account.fiscalyear') fiscalyear_obj = self.pool.get('account.fiscalyear')
# Get the fiscal year # Get the fiscal year
fiscalyear = None
if form.get('fiscalyear'): if form.get('fiscalyear'):
fiscalyear = fiscalyear_obj.browse(self.cr, self.uid, form['fiscalyear'])
else:
fiscalyear = fiscalyear_obj.browse(self.cr, self.uid, fiscalyear_obj.find(self.cr, self.uid))
if type(form.get('fiscalyear')) in (list,tuple):
fiscalyear = form['fiscalyear'] and form['fiscalyear'][0]
elif type(form.get('fiscalyear')) in (int,):
fiscalyear = form['fiscalyear']
fiscalyear = fiscalyear_obj.browse(self.cr, self.uid, fiscalyear)
# #
# Get the accounts # Get the accounts
@ -241,11 +264,6 @@ class account_balance(report_sxw.rml_parse):
for account in accounts: for account in accounts:
account_id = account['id'] account_id = account['id']
if account_id in done:
pass
done[account_id] = 1
# #
# Calculate the account level # Calculate the account level
# #
@ -265,7 +283,7 @@ class account_balance(report_sxw.rml_parse):
'code': account['code'], 'code': account['code'],
'name': (account['total'] and not account['label']) and 'TOTAL %s'%(account['name'].upper()) or account['name'], 'name': (account['total'] and not account['label']) and 'TOTAL %s'%(account['name'].upper()) or account['name'],
'level': account['level'], 'level': account['level'],
'balance': account['balance'],
'balance': self.exchange(account['balance']),
'parent_id': account['parent_id'], 'parent_id': account['parent_id'],
'bal_type': '', 'bal_type': '',
'label': account['label'], 'label': account['label'],
@ -295,14 +313,15 @@ class account_balance(report_sxw.rml_parse):
# Include all accounts # Include all accounts
result_acc.append(res) result_acc.append(res)
if form['tot_check'] and res['type'] == 'view' and res['level'] == 1 and (res['id'] not in tot): if form['tot_check'] and res['type'] == 'view' and res['level'] == 1 and (res['id'] not in tot):
tot_check = True
tot[res['id']] = True tot[res['id']] = True
tot_eje += res['balance'] tot_eje += res['balance']
if form['tot_check']:
if tot_check:
str_label = form['lab_str'] str_label = form['lab_str']
res2 = { res2 = {
'type' : 'view', 'type' : 'view',
'name': 'TOTAL %s'%(str_label), 'name': 'TOTAL %s'%(str_label),
'balance': tot_eje,
'balance': self.exchange(tot_eje),
'label': False, 'label': False,
'total': True, 'total': True,
} }

65
account_financial_report/report/account_balance_2_cols.py

@ -55,6 +55,7 @@ class account_balance(report_sxw.rml_parse):
'get_periods_and_date_text': self.get_periods_and_date_text, 'get_periods_and_date_text': self.get_periods_and_date_text,
'get_informe_text': self.get_informe_text, 'get_informe_text': self.get_informe_text,
'get_month':self.get_month, 'get_month':self.get_month,
'exchange_name':self.exchange_name,
}) })
self.context = context self.context = context
@ -122,22 +123,46 @@ class account_balance(report_sxw.rml_parse):
return {'periods':periods_str, 'date':dates_str} return {'periods':periods_str, 'date':dates_str}
def lines(self, form, ids={}, done=None, level=0):
def exchange_name(self, form):
self.from_currency_id = self.get_company_currency(form['company_id'] and type(form['company_id']) in (list,tuple) and form['company_id'][0] or form['company_id'])
if not form['currency_id']:
self.to_currency_id = self.from_currency_id
else:
self.to_currency_id = form['currency_id'] and type(form['currency_id']) in (list, tuple) and form['currency_id'][0] or form['currency_id']
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, level=0):
""" """
Returns all the data needed for the report lines Returns all the data needed for the report lines
(account info plus debit/credit/balance in the selected period (account info plus debit/credit/balance in the selected period
and the full year) and the full year)
""" """
self.from_currency_id = self.get_company_currency(form['company_id'] and type(form['company_id']) in (list,tuple) and form['company_id'][0] or form['company_id'])
if not form['currency_id']:
self.to_currency_id = self.from_currency_id
else:
self.to_currency_id = form['currency_id'] and type(form['currency_id']) in (list, tuple) and form['currency_id'][0] or form['currency_id']
tot_check = False
tot_bin = 0.0 tot_bin = 0.0
tot_deb = 0.0 tot_deb = 0.0
tot_crd = 0.0 tot_crd = 0.0
tot_eje = 0.0 tot_eje = 0.0
if not ids:
ids = self.ids
if not ids:
return []
if not done:
done = {}
if form.has_key('account_list') and form['account_list']: if form.has_key('account_list') and form['account_list']:
account_ids = form['account_list'] account_ids = form['account_list']
@ -149,12 +174,12 @@ class account_balance(report_sxw.rml_parse):
period_obj = self.pool.get('account.period') period_obj = self.pool.get('account.period')
fiscalyear_obj = self.pool.get('account.fiscalyear') fiscalyear_obj = self.pool.get('account.fiscalyear')
fiscalyear = None
if form.get('fiscalyear'): if form.get('fiscalyear'):
fiscalyear = fiscalyear_obj.browse(self.cr, self.uid, form['fiscalyear'])
else:
fiscalyear = fiscalyear_obj.browse(self.cr, self.uid, fiscalyear_obj.find(self.cr, self.uid))
if type(form.get('fiscalyear')) in (list,tuple):
fiscalyear = form['fiscalyear'] and form['fiscalyear'][0]
elif type(form.get('fiscalyear')) in (int,):
fiscalyear = form['fiscalyear']
fiscalyear = fiscalyear_obj.browse(self.cr, self.uid, fiscalyear)
# #
# Get the accounts # Get the accounts
# #
@ -260,11 +285,6 @@ class account_balance(report_sxw.rml_parse):
for account in accounts: for account in accounts:
account_id = account['id'] account_id = account['id']
if account_id in done:
pass
done[account_id] = 1
accounts_levels[account_id] = account['level'] accounts_levels[account_id] = account['level']
# #
@ -280,10 +300,10 @@ class account_balance(report_sxw.rml_parse):
'code': account['code'], 'code': account['code'],
'name': (account['total'] and not account['label']) and 'TOTAL %s'%(account['name'].upper()) or account['name'], 'name': (account['total'] and not account['label']) and 'TOTAL %s'%(account['name'].upper()) or account['name'],
'level': account['level'], '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'], 'parent_id': account['parent_id'],
'bal_type': '', 'bal_type': '',
'label': account['label'], 'label': account['label'],
@ -312,13 +332,14 @@ class account_balance(report_sxw.rml_parse):
# Include all accounts # Include all accounts
result_acc.append(res) result_acc.append(res)
if form['tot_check'] and res['type'] == 'view' and res['level'] == 1 and (res['id'] not in tot): if form['tot_check'] and res['type'] == 'view' and res['level'] == 1 and (res['id'] not in tot):
tot_check = True
tot[res['id']] = True tot[res['id']] = True
tot_bin += res['balanceinit'] tot_bin += res['balanceinit']
tot_deb += res['debit'] tot_deb += res['debit']
tot_crd += res['credit'] tot_crd += res['credit']
tot_eje += res['balance'] tot_eje += res['balance']
if form['tot_check']:
if tot_check:
str_label = form['lab_str'] str_label = form['lab_str']
res2 = { res2 = {
'type' : 'view', 'type' : 'view',

59
account_financial_report/report/account_balance_4_cols.py

@ -55,6 +55,7 @@ class account_balance(report_sxw.rml_parse):
'get_periods_and_date_text': self.get_periods_and_date_text, 'get_periods_and_date_text': self.get_periods_and_date_text,
'get_informe_text': self.get_informe_text, 'get_informe_text': self.get_informe_text,
'get_month':self.get_month, 'get_month':self.get_month,
'exchange_name':self.exchange_name,
}) })
self.context = context self.context = context
@ -130,22 +131,41 @@ class account_balance(report_sxw.rml_parse):
return True return True
return False return False
def lines(self, form, ids={}, done=None, level=0):
def exchange_name(self, form):
self.from_currency_id = self.get_company_currency(form['company_id'] and type(form['company_id']) in (list,tuple) and form['company_id'][0] or form['company_id'])
if not form['currency_id']:
self.to_currency_id = self.from_currency_id
else:
self.to_currency_id = form['currency_id'] and type(form['currency_id']) in (list, tuple) and form['currency_id'][0] or form['currency_id']
name = self.pool.get('res.currency').browse(self.cr, self.uid, self.to_currency_id).name
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, level=0):
""" """
Returns all the data needed for the report lines Returns all the data needed for the report lines
(account info plus debit/credit/balance in the selected period (account info plus debit/credit/balance in the selected period
and the full year) and the full year)
""" """
self.from_currency_id = self.get_company_currency(form['company_id'] and type(form['company_id']) in (list,tuple) and form['company_id'][0] or form['company_id'])
if not form['currency_id']:
self.to_currency_id = self.from_currency_id
else:
self.to_currency_id = form['currency_id'] and type(form['currency_id']) in (list, tuple) and form['currency_id'][0] or form['currency_id']
tot_check = False
tot_bin = 0.0 tot_bin = 0.0
tot_deb = 0.0 tot_deb = 0.0
tot_crd = 0.0 tot_crd = 0.0
tot_eje = 0.0 tot_eje = 0.0
if not ids:
ids = self.ids
if not ids:
return []
if not done:
done = {}
if form.has_key('account_list') and form['account_list']: if form.has_key('account_list') and form['account_list']:
account_ids = form['account_list'] account_ids = form['account_list']
@ -157,11 +177,12 @@ class account_balance(report_sxw.rml_parse):
period_obj = self.pool.get('account.period') period_obj = self.pool.get('account.period')
fiscalyear_obj = self.pool.get('account.fiscalyear') fiscalyear_obj = self.pool.get('account.fiscalyear')
fiscalyear = None
if form.get('fiscalyear'): if form.get('fiscalyear'):
fiscalyear = fiscalyear_obj.browse(self.cr, self.uid, form['fiscalyear'])
else:
fiscalyear = fiscalyear_obj.browse(self.cr, self.uid, fiscalyear_obj.find(self.cr, self.uid))
if type(form.get('fiscalyear')) in (list,tuple):
fiscalyear = form['fiscalyear'] and form['fiscalyear'][0]
elif type(form.get('fiscalyear')) in (int,):
fiscalyear = form['fiscalyear']
fiscalyear = fiscalyear_obj.browse(self.cr, self.uid, fiscalyear)
# #
# Get the accounts # Get the accounts
@ -280,11 +301,6 @@ class account_balance(report_sxw.rml_parse):
for account in accounts: for account in accounts:
account_id = account['id'] account_id = account['id']
if account_id in done:
pass
done[account_id] = 1
accounts_levels[account_id] = account['level'] accounts_levels[account_id] = account['level']
# #
@ -300,10 +316,10 @@ class account_balance(report_sxw.rml_parse):
'code': account['code'], 'code': account['code'],
'name': (account['total'] and not account['label']) and 'TOTAL %s'%(account['name'].upper()) or account['name'], 'name': (account['total'] and not account['label']) and 'TOTAL %s'%(account['name'].upper()) or account['name'],
'level': account['level'], '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'], 'parent_id': account['parent_id'],
'bal_type': '', 'bal_type': '',
'label': account['label'], 'label': account['label'],
@ -332,6 +348,7 @@ class account_balance(report_sxw.rml_parse):
# Include all accounts # Include all accounts
result_acc.append(res) result_acc.append(res)
if form['tot_check'] and res['type'] == 'view' and res['level'] == 1 and (res['id'] not in tot): if form['tot_check'] and res['type'] == 'view' and res['level'] == 1 and (res['id'] not in tot):
tot_check = True
tot[res['id']] = True tot[res['id']] = True
tot_bin += res['balanceinit'] tot_bin += res['balanceinit']
tot_deb += res['debit'] tot_deb += res['debit']
@ -339,7 +356,7 @@ class account_balance(report_sxw.rml_parse):
tot_eje += res['balance'] tot_eje += res['balance']
#if (form['tot_check'] and res['type']=='view' and res['level']==1 and (res['id'] not in tot)): #if (form['tot_check'] and res['type']=='view' and res['level']==1 and (res['id'] not in tot)):
if form['tot_check']:
if tot_check:
str_label = form['lab_str'] str_label = form['lab_str']
res2 = { res2 = {
'type' : 'view', 'type' : 'view',

2
account_financial_report/report/balance_full.rml

@ -16,7 +16,7 @@
</tr> </tr>
<tr> <tr>
<td><para style="TOP_TITLE"></para></td> <td><para style="TOP_TITLE"></para></td>
<td><para style="TITLE_CENTER">[[ get_informe_text(data['form']) ]][[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>
<tr> <tr>
<td><para style="TOP_TITLE"></para></td> <td><para style="TOP_TITLE"></para></td>

2
account_financial_report/report/balance_full_2_cols.rml

@ -20,7 +20,7 @@
</tr> </tr>
<tr> <tr>
<td><para style="TOP_TITLE"></para></td> <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>
<tr> <tr>
<td><para style="TOP_TITLE"></para></td> <td><para style="TOP_TITLE"></para></td>

2
account_financial_report/report/balance_full_4_cols.rml

@ -26,7 +26,7 @@
</tr> </tr>
<tr> <tr>
<td><para style="TOP_TITLE"></para></td> <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>
<tr> <tr>
<td><para style="TOP_TITLE"></para></td> <td><para style="TOP_TITLE"></para></td>

16
account_financial_report/wizard/account_report_wizard.xml

@ -8,8 +8,11 @@
<field name="type">form</field> <field name="type">form</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="General Account Balance [ Initial | Debit | Credit | Balance ]"> <form string="General Account Balance [ Initial | Debit | Credit | Balance ]">
<group width='800' height='600'>
<group>
<field name="company_id"/> <field name="company_id"/>
<group>
<field name="currency_id"/>
</group>
<newline/> <newline/>
<group colspan="4"> <group colspan="4">
@ -75,8 +78,11 @@
<field name="type">form</field> <field name="type">form</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="General Account Balance [ Initial | Debit | Credit | Balance ]"> <form string="General Account Balance [ Initial | Debit | Credit | Balance ]">
<group width='800' height='600'>
<group>
<field name="company_id"/> <field name="company_id"/>
<group>
<field name="currency_id"/>
</group>
<newline/> <newline/>
<group colspan="4"> <group colspan="4">
<separator string="Accounts to include" colspan="4"/> <separator string="Accounts to include" colspan="4"/>
@ -138,8 +144,12 @@
<field name="type">form</field> <field name="type">form</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="General Account Balance [ Initial | Debit | Credit | Balance ]"> <form string="General Account Balance [ Initial | Debit | Credit | Balance ]">
<group width='800' height='600'>
<group>
<field name="company_id"/> <field name="company_id"/>
<group>
<field name="currency_id"/>
</group>
<newline/> <newline/>
<group colspan="4"> <group colspan="4">
<separator string="Accounts to include" colspan="4"/> <separator string="Accounts to include" colspan="4"/>

1
account_financial_report/wizard/wizard_account_balance_2_report.py

@ -48,6 +48,7 @@ class wizard_account_balance_gene_2(osv.osv_memory):
'lab_str': fields.char('Description', size= 128), 'lab_str': fields.char('Description', size= 128),
'inf_type': fields.selection([('bgen','Balance General'),('bcom','Balance Comprobacion'),('edogp','Estado Ganancias y Perdidas'),('bdl','Diario Legal')],'Tipo Informe',required=True), 'inf_type': fields.selection([('bgen','Balance General'),('bcom','Balance Comprobacion'),('edogp','Estado Ganancias y Perdidas'),('bdl','Diario 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), #~ '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 = { _defaults = {

1
account_financial_report/wizard/wizard_account_balance_4_report.py

@ -48,6 +48,7 @@ class wizard_report(osv.osv_memory):
'lab_str': fields.char('Description', size= 128), '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), '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), #~ '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 = { _defaults = {

1
account_financial_report/wizard/wizard_account_balance_report.py

@ -48,6 +48,7 @@ class wizard_account_balance_gene(osv.osv_memory):
'lab_str': fields.char('Description', size= 128), 'lab_str': fields.char('Description', size= 128),
'inf_type': fields.selection([('bgen','Balance General'),('bcom','Balance Comprobacion'),('edogp','Estado Ganancias y Perdidas')],'Tipo Informe',required=True), 'inf_type': fields.selection([('bgen','Balance General'),('bcom','Balance Comprobacion'),('edogp','Estado Ganancias y Perdidas')],'Tipo Informe',required=True),
#~ 'type_report': fields.selection([('un_col','Una Columna'),('dos_col','Dos Columnas'),('cuatro_col','Cuatro Columnas')],'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 = { _defaults = {

Loading…
Cancel
Save