diff --git a/addons/account/report/account_tax_report.py b/addons/account/report/account_tax_report.py index c96b380868b..49a11096789 100644 --- a/addons/account/report/account_tax_report.py +++ b/addons/account/report/account_tax_report.py @@ -26,7 +26,8 @@ from report import report_sxw class tax_report(rml_parse.rml_parse): _name = 'report.account.vat.declaration' - def __init__(self, cr, uid, name, context={}): + + def __init__(self, cr, uid, name, context=None): super(tax_report, self).__init__(cr, uid, name, context=context) self.localcontext.update({ 'time': time, @@ -39,24 +40,31 @@ class tax_report(rml_parse.rml_parse): 'get_years': self.get_years, }) + def get_years(self, form): + res = {} + self.period_ids = [] + period_obj = self.pool.get('account.period') + fy_obj = self.pool.get('account.fiscalyear') + res['periods'] = '' + res['fname'] = '' - def get_years(self,form): - res={} - fiscal_year_name = self.pool.get('account.fiscalyear').name_get(self.cr,self.uid,form['fiscalyear']) - + fiscal_year_name = fy_obj.name_get(self.cr, self.uid, form['fiscalyear_id']) if fiscal_year_name: res['fname'] = fiscal_year_name[0][1] res['periods'] = '' - if form['periods']: - periods_l = self.pool.get('account.period').read(self.cr, self.uid, form['periods'], ['name']) + + if form['period_from'] and form['period_to']: + self.period_ids = period_obj.build_ctx_periods(self.cr, self.uid, form['period_from'], form['period_to']) + periods_l = period_obj.read(self.cr, self.uid, self.period_ids, ['name']) for period in periods_l: - if res['periods']=='': + if res['periods'] == '': res['periods'] = period['name'] else: res['periods'] += ", "+ period['name'] return res - def _get_lines(self, based_on, period_list, company_id=False, parent=False, level=0, context={}): + def _get_lines(self, based_on, company_id=False, parent=False, level=0, context=None): + period_list = self.period_ids res = self._get_codes(based_on, company_id, parent, level, period_list, context=context) if period_list: @@ -95,12 +103,11 @@ class tax_report(rml_parse.rml_parse): ind_general+=1 i+=1 return top_result - #return array_result def _get_period(self, period_id, context={}): return self.pool.get('account.period').browse(self.cr, self.uid, period_id, context=context).name - def _get_general(self, tax_code_id, period_list,company_id, based_on, context={}): + def _get_general(self, tax_code_id, period_list, company_id, based_on, context={}): res=[] obj_account = self.pool.get('account.account') periods_ids = tuple(period_list) @@ -232,4 +239,4 @@ class tax_report(rml_parse.rml_parse): report_sxw.report_sxw('report.account.vat.declaration', 'account.tax.code', 'addons/account/report/account_tax_report.rml', parser=tax_report, header="internal") -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/account/report/account_tax_report.rml b/addons/account/report/account_tax_report.rml index 47df92cc3bc..7079dc81ad8 100644 --- a/addons/account/report/account_tax_report.rml +++ b/addons/account/report/account_tax_report.rml @@ -108,13 +108,13 @@ - Year : [[ get_years(data['form'])['fname'] ]] + Fiscal Year : [[ get_years(data['form'])['fname'] ]] Periods : [[ get_years(data['form'])['periods'] or removeParentNode('tr')]] - + Tax Name @@ -123,7 +123,7 @@ Tax Amount - [[ repeatIn(get_lines(data['form']['based_on'],data['form']['periods'],data['form']['company_id']), 'o') ]][[ (o['level']) ]] [[ (len(o['level'])<5 and setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]][[ o['code'] ]] [[ o['name'] ]] + [[ repeatIn(get_lines(data['form']['based_on'], data['form']['company_id']), 'o') ]][[ (o['level']) ]] [[ (len(o['level'])<5 and setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]][[ o['code'] ]] [[ o['name'] ]] [[ len(o['level'])<5 and setTag('para','para',{'fontName':"Helvetica-Bold"}) or removeParentNode('font')]][[ o['type']=='view' and removeParentNode('font') ]][[ formatLang(o['debit']) ]][[ o['type']<>'view' and removeParentNode('font') ]][[ formatLang(o['debit']) ]] [[ len(o['level'])<5 and setTag('para','para',{'fontName':"Helvetica-Bold"}) or removeParentNode('font')]][[ o['type']=='view' and removeParentNode('font') ]][[ formatLang(o['credit']) ]][[ o['type']<>'view' and removeParentNode('font') ]][[ formatLang(o['credit'])]] [[ len(o['level'])<5 and setTag('para','para',{'fontName':"Helvetica-Bold"}) or removeParentNode('font')]][[ o['type']=='view' and removeParentNode('font') ]][[ formatLang(o['tax_amount']) ]] [[ company.currency_id.symbol ]][[ o['type']<>'view' and removeParentNode('font') ]][[ formatLang(o['tax_amount']) ]] [[ company.currency_id.symbol ]] diff --git a/addons/account/wizard/account_vat.py b/addons/account/wizard/account_vat.py index e464a9cddd4..8c4751d79e5 100644 --- a/addons/account/wizard/account_vat.py +++ b/addons/account/wizard/account_vat.py @@ -24,41 +24,48 @@ from osv import osv, fields class account_vat_declaration(osv.osv_memory): _name = 'account.vat.declaration' _description = 'Account Vat Declaration' - _inherit = "account.common.account.report" + _inherit = "account.common.report" _columns = { - 'based_on': fields.selection([('invoices','Invoices'), - ('payments','Payments'),], + 'based_on': fields.selection([('invoices', 'Invoices'), + ('payments', 'Payments'),], 'Based On', required=True), - 'company_id': fields.many2one('res.company', 'Company', required=True), - 'periods': fields.many2many('account.period', 'vat_period_rel', 'vat_id', 'period_id', 'Periods', help="All periods if empty"), - 'fiscalyear': fields.many2many('account.fiscalyear','vat_fiscal_rel','fiscal_id','Fiscal Year',required=True), - } +# 'company_id': fields.many2one('res.company', 'Company', required=True), + 'chart_tax_id': fields.many2one('account.tax.code', 'Chart of Tax', help='Select Charts of Taxes', required=True, domain = [('parent_id','=',False)]), + } - def _get_company(self, cr, uid, context={}): - user_obj = self.pool.get('res.users') - company_obj = self.pool.get('res.company') - user = user_obj.browse(cr, uid, uid, context=context) - if user.company_id: - return user.company_id.id - else: - return company_obj.search(cr, uid, [('parent_id', '=', False)])[0] + def _get_tax(self, cr, uid, context=None): + taxes = self.pool.get('account.tax.code').search(cr, uid, [('parent_id','=',False)], limit=1) + return taxes and taxes[0] or False + +# def _get_company(self, cr, uid, context={}): +# user_obj = self.pool.get('res.users') +# company_obj = self.pool.get('res.company') +# user = user_obj.browse(cr, uid, uid, context=context) +# if user.company_id: +# company_id = user.company_id.id +# else: +# company_id = company_obj.search(cr, uid, [('parent_id', '=', False)]) +# company_id = company_id and company_id[0] or False +# return company_id _defaults = { 'based_on': 'invoices', - 'company_id': _get_company - } + 'chart_tax_id': _get_tax + } - def create_vat(self, cr, uid, ids, context={}): + def create_vat(self, cr, uid, ids, context=None): if context is None: context = {} datas = {'ids': context.get('active_ids', [])} datas['model'] = 'account.tax.code' datas['form'] = self.read(cr, uid, ids)[0] + datas['form']['company_id'] = self.pool.get('account.tax.code').browse(cr, uid, [datas['form']['chart_tax_id']], context=context)[0].company_id.id return { 'type': 'ir.actions.report.xml', 'report_name': 'account.vat.declaration', 'datas': datas, } + account_vat_declaration() -#vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +#vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/account/wizard/account_vat_view.xml b/addons/account/wizard/account_vat_view.xml index 41c0faa2c79..c6d0307fbaa 100644 --- a/addons/account/wizard/account_vat_view.xml +++ b/addons/account/wizard/account_vat_view.xml @@ -7,15 +7,13 @@ account.vat.declaration form -
- - + + + - - - - - + + +