diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py index 7045f5c069c..e01dbc70f07 100644 --- a/addons/account/__openerp__.py +++ b/addons/account/__openerp__.py @@ -104,6 +104,7 @@ module named account_voucher. 'account_invoice_view.xml', 'partner_view.xml', 'data/account_data.xml', + 'data/data_financial_report.xml', 'data/data_account_type.xml', 'account_invoice_workflow.xml', 'project/project_view.xml', @@ -122,8 +123,6 @@ module named account_voucher. 'ir_sequence_view.xml', 'company_view.xml', 'board_account_view.xml', - "wizard/account_report_profit_loss_view.xml", - "wizard/account_report_balance_sheet_view.xml", "edi/invoice_action_data.xml", "account_bank_view.xml", "account_pre_install.yml" diff --git a/addons/account/account.py b/addons/account/account.py index fd8a0506d01..e923080f9ad 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -130,6 +130,43 @@ account_payment_term_line() class account_account_type(osv.osv): _name = "account.account.type" _description = "Account Type" + + def _get_current_report_type(self, cr, uid, ids, name, arg, context=None): + obj_data = self.pool.get('ir.model.data') + obj_financial_report = self.pool.get('account.financial.report') + res = {} + financial_report_ref = { + 'asset': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_assets0')[1], context=context), + 'liability': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_liability0')[1], context=context), + 'income': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_income0')[1], context=context), + 'expense': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_expense0')[1], context=context), + } + for record in self.browse(cr, uid, ids, context=context): + res[record.id] = 'none' + for key, financial_report in financial_report_ref.items(): + list_ids = [x.id for x in financial_report.account_type_ids] + if record.id in list_ids: + res[record.id] = key + return res + + def _save_report_type(self, cr, uid, account_type_id, field_name, field_value, arg, context=None): + obj_data = self.pool.get('ir.model.data') + obj_financial_report = self.pool.get('account.financial.report') + #unlink if it exists somewhere in the financial reports related to BS or PL + financial_report_ref = { + 'asset': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_assets0')[1], context=context), + 'liability': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_liability0')[1], context=context), + 'income': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_income0')[1], context=context), + 'expense': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_expense0')[1], context=context), + } + for key, financial_report in financial_report_ref.items(): + list_ids = [x.id for x in financial_report.account_type_ids] + if account_type_id in list_ids: + obj_financial_report.write(cr, uid, [financial_report.id], {'account_type_ids': [(3, account_type_id)]}) + #write it in the good place + if field_value != 'none': + return obj_financial_report.write(cr, uid, [financial_report_ref[field_value].id], {'account_type_ids': [(4, account_type_id)]}) + _columns = { 'name': fields.char('Account Type', size=64, required=True, translate=True), 'code': fields.char('Code', size=32, required=True), @@ -139,19 +176,16 @@ class account_account_type(osv.osv): 'Balance' will generally be used for cash accounts. 'Detail' will copy each existing journal item of the previous year, even the reconciled ones. 'Unreconciled' will copy only the journal items that were unreconciled on the first day of the new fiscal year."""), - 'sign': fields.selection([(-1, 'Reverse balance sign'), (1, 'Preserve balance sign')], 'Sign on Reports', required=True, help='For accounts that are typically more debited than credited and that you would like to print as negative amounts in your reports, you should reverse the sign of the balance; e.g.: Expense account. The same applies for accounts that are typically more credited than debited and that you would like to print as positive amounts in your reports; e.g.: Income account.'), - 'report_type':fields.selection([ - ('none','/'), - ('income','Profit & Loss (Income Accounts)'), - ('expense','Profit & Loss (Expense Accounts)'), - ('asset','Balance Sheet (Asset Accounts)'), - ('liability','Balance Sheet (Liability Accounts)') - ],'P&L / BS Category', select=True, readonly=False, help="This field is used to generate legal reports: profit and loss, balance sheet.", required=True), + 'report_type': fields.function(_get_current_report_type, fnct_inv=_save_report_type, type='selection', string='P&L / BS Category', + selection= [('none','/'), + ('income', _('Profit & Loss (Income account)')), + ('expense', _('Profit & Loss (Expense account)')), + ('asset', _('Balance Sheet (Asset account)')), + ('liability', _('Balance Sheet (Liability account)'))], help="This field is used to generate legal reports: profit and loss, balance sheet.", required=True), 'note': fields.text('Description'), } _defaults = { 'close_method': 'none', - 'sign': 1, 'report_type': 'none', } _order = "code" @@ -2912,6 +2946,7 @@ class account_financial_report(osv.osv): return res def _get_balance(self, cr, uid, ids, name, args, context=None): + account_obj = self.pool.get('account.account') res = {} res_all = {} for report in self.browse(cr, uid, ids, context=context): @@ -2922,6 +2957,12 @@ class account_financial_report(osv.osv): # it's the sum of balance of the linked accounts for a in report.account_ids: balance += a.balance + elif report.type == 'account_type': + # it's the sum of balance of the leaf accounts with such an account type + report_types = [x.id for x in report.account_type_ids] + account_ids = account_obj.search(cr, uid, [('user_type','in', report_types), ('type','!=','view')], context=context) + for a in account_obj.browse(cr, uid, account_ids, context=context): + balance += a.balance elif report.type == 'account_report' and report.account_report_id: # it's the amount of the linked report res2 = self._get_balance(cr, uid, [report.account_report_id.id], 'balance', False, context=context) @@ -2944,7 +2985,6 @@ class account_financial_report(osv.osv): 'parent_id': fields.many2one('account.financial.report', 'Parent'), 'children_ids': fields.one2many('account.financial.report', 'parent_id', 'Account Report'), 'sequence': fields.integer('Sequence'), - 'note': fields.text('Notes'), 'balance': fields.function(_get_balance, 'Balance'), 'level': fields.function(_get_level, string='Level', store=True, type='integer'), 'type': fields.selection([ @@ -2954,13 +2994,20 @@ class account_financial_report(osv.osv): ('account_report','Report Value'), ],'Type'), 'account_ids': fields.many2many('account.account', 'account_account_financial_report', 'report_line_id', 'account_id', 'Accounts'), - 'display_detail': fields.boolean('Display details', help='Display every account with its balance instead of the sum.'), + 'display_detail': fields.selection([ + ('no_detail','No detail'), + ('detail_flat','Display children flat'), + ('detail_with_hierarchy','Display children with hierarchy') + ], 'Display details'), 'account_report_id': fields.many2one('account.financial.report', 'Report Value'), 'account_type_ids': fields.many2many('account.account.type', 'account_account_financial_report_type', 'report_id', 'account_type_id', 'Account Types'), + 'sign': fields.selection([(-1, 'Reverse balance sign'), (1, 'Preserve balance sign')], 'Sign on Reports', required=True, help='For accounts that are typically more debited than credited and that you would like to print as negative amounts in your reports, you should reverse the sign of the balance; e.g.: Expense account. The same applies for accounts that are typically more credited than debited and that you would like to print as positive amounts in your reports; e.g.: Income account.'), } _defaults = { 'type': 'sum', + 'display_detail': 'detail_flat', + 'sign': 1, } account_financial_report() diff --git a/addons/account/account_installer.xml b/addons/account/account_installer.xml index cbdb665e157..430d65e0bf9 100644 --- a/addons/account/account_installer.xml +++ b/addons/account/account_installer.xml @@ -25,7 +25,7 @@ - + diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 39cc471c2f6..bef6e68221a 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -610,15 +610,15 @@ class account_invoice(osv.osv): res[r[0]].append( r[1] ) return res - def copy(self, cr, uid, id, default={}, context=None): - if context is None: - context = {} + def copy(self, cr, uid, id, default=None, context=None): + default = default or {} default.update({ 'state':'draft', 'number':False, 'move_id':False, 'move_name':False, 'internal_number': False, + 'period_id': False, }) if 'date_invoice' not in default: default.update({ @@ -1642,12 +1642,7 @@ class res_partner(osv.osv): } def copy(self, cr, uid, id, default=None, context=None): - if default is None: - default = {} - - if context is None: - context = {} - + default = default or {} default.update({'invoice_ids' : []}) return super(res_partner, self).copy(cr, uid, id, default, context) diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index 36a87cc6459..6afdf857b96 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -787,7 +787,6 @@ - @@ -2487,6 +2486,9 @@ act_window_ids = pool.get('ir.actions.act_window').search(cr, uid,[('name', 'in', ('Accounting Chart Configuration', 'Generate Chart of Accounts from a Chart Template'))], context=context) +ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'action_account_configuration_installer') +if ref: + act_window_ids += [ref[1]] todo_ids = pool.get('ir.actions.todo').search(cr, uid, [('action_id', 'in', act_window_ids)], context=context) pool.get('ir.actions.todo').write(cr, uid, todo_ids, {'state':'open'}, context=context) action = pool.get('res.config').next(cr, uid, [], context) @@ -2778,10 +2780,14 @@ action = pool.get('res.config').next(cr, uid, [], context) + - - - + + + + + @@ -2790,9 +2796,6 @@ action = pool.get('res.config').next(cr, uid, [], context) - - - diff --git a/addons/account/configurable_account_chart.xml b/addons/account/configurable_account_chart.xml index 0ac7a51405d..fa0aa3459dd 100644 --- a/addons/account/configurable_account_chart.xml +++ b/addons/account/configurable_account_chart.xml @@ -1,26 +1,6 @@ - - Receivable - receivable - income - unreconciled - - - - Payable - payable - expense - unreconciled - - - - View - view - none - - Income View view @@ -41,78 +21,32 @@ liability liability - - - Income - income - income - none - - - - Expense - expense - expense - none - - Tax tax - expense unreconciled + expense - - - Cash - cash - asset - balance - - - - Liability - liability - liability - balance - - - - Asset - asset - asset - balance - - Equity equity + balance liability - balance - - - Bank - bank - asset - balance - - + Check check - asset balance + asset - - 0 Configurable Account Chart view - + @@ -122,7 +56,7 @@ Balance Sheet view - + @@ -162,7 +96,7 @@ Purchased Stocks other - + @@ -171,7 +105,7 @@ receivable - + @@ -179,7 +113,7 @@ Tax Paid other - + @@ -195,7 +129,7 @@ Opening Income Account other - + @@ -212,7 +146,7 @@ payable - + @@ -220,7 +154,7 @@ Tax Received other - + @@ -229,7 +163,7 @@ other - + @@ -237,7 +171,7 @@ Opening Expense Account other - + @@ -247,7 +181,7 @@ Profit and Loss view - + @@ -263,7 +197,7 @@ Product Sales other - + @@ -279,7 +213,7 @@ Cost of Goods Sold other - + @@ -295,7 +229,7 @@ Expenses other - + @@ -303,7 +237,7 @@ Salary Expenses other - + diff --git a/addons/account/data/data_account_type.xml b/addons/account/data/data_account_type.xml index ebed0ebb5de..590357ef080 100644 --- a/addons/account/data/data_account_type.xml +++ b/addons/account/data/data_account_type.xml @@ -30,21 +30,25 @@ Asset asset balance + asset Liability liability balance + liability Income income none + income Expense expense none + expense diff --git a/addons/account/data/data_financial_report.xml b/addons/account/data/data_financial_report.xml new file mode 100644 index 00000000000..18624f94749 --- /dev/null +++ b/addons/account/data/data_financial_report.xml @@ -0,0 +1,43 @@ + + + + + + Balance Sheet + sum + + + Assets + + detail_with_hierarchy + account_type + + + Liability + + detail_with_hierarchy + account_type + + + + Profit and Loss + sum + + + Income + + detail_with_hierarchy + account_type + + + Expense + + detail_with_hierarchy + account_type + + + + + diff --git a/addons/account/demo/account_minimal.xml b/addons/account/demo/account_minimal.xml index 50b597c8e49..baa94450f02 100644 --- a/addons/account/demo/account_minimal.xml +++ b/addons/account/demo/account_minimal.xml @@ -5,58 +5,11 @@ Account Type --> - - View - view - none - - - Asset - asset - asset - balance - - - Receivable - receivable - asset - unreconciled - - - Liability - liability - liability - balance - - - Payable - payable - liability - unreconciled - - - Income - income - income - none - - - Expense - expense - expense - none - Equity equity + balance liability - balance - - - Cash - cash - asset - balance @@ -78,14 +31,14 @@ Balance Sheet - (test) view - + Assets - (test) X10 view - + @@ -95,7 +48,7 @@ Fixed Assets - (test) view - + @@ -103,7 +56,7 @@ Fixed Asset Account - (test) other - + @@ -111,7 +64,7 @@ Net Current Assets - (test) view - + @@ -119,7 +72,7 @@ Current Assets - (test) view - + @@ -127,7 +80,7 @@ Purchased Stocks - (test) other - + @@ -136,7 +89,7 @@ receivable - + @@ -144,7 +97,7 @@ Output VAT - (test) other - + @@ -152,7 +105,7 @@ Bank Current Account - (test) liquidity - + @@ -160,7 +113,7 @@ Cash - (test) liquidity - + @@ -168,14 +121,14 @@ Opening Income - (test) other - + Liabilities - (test) X11 view - + @@ -185,7 +138,7 @@ Current Liabilities - (test) view - + @@ -194,7 +147,7 @@ payable - + @@ -202,7 +155,7 @@ Input VAT - (test) other - + @@ -210,7 +163,7 @@ Reserve and Profit/Loss - (test) other - + @@ -218,7 +171,7 @@ Opening Expense - (test) other - + @@ -228,14 +181,14 @@ Profit and Loss - (test) view - + Income - (test) X20 view - + @@ -244,7 +197,7 @@ Foreign Exchange Gain - (test) X201 other - + @@ -254,7 +207,7 @@ Revenue - (test) view - + @@ -262,14 +215,14 @@ Product Sales - (test) other - + Expense - (test) X21 view - + @@ -280,7 +233,7 @@ Cost of Sales - (test) view - + @@ -288,7 +241,7 @@ Cost of Goods Sold - (test) other - + @@ -296,7 +249,7 @@ Overheads - (test) view - + @@ -304,14 +257,14 @@ Expenses - (test) other - + Foreign Exchange Loss - (test) X2111 other - + @@ -321,7 +274,7 @@ Salary Expenses - (test) other - + diff --git a/addons/account/installer.py b/addons/account/installer.py index cfd434833ae..d1b19ef4319 100644 --- a/addons/account/installer.py +++ b/addons/account/installer.py @@ -24,6 +24,7 @@ import time import datetime from dateutil.relativedelta import relativedelta from operator import itemgetter +from os.path import join as opj from tools.translate import _ from osv import fields, osv @@ -111,6 +112,11 @@ class account_installer(osv.osv_memory): context = {} fy_obj = self.pool.get('account.fiscalyear') for res in self.read(cr, uid, ids, context=context): + if 'charts' in res and res['charts'] == 'configurable': + #load generic chart of account + fp = tools.file_open(opj('account', 'configurable_account_chart.xml')) + tools.convert_xml_import(cr, 'account', fp, {}, 'init', True, None) + fp.close() if 'date_start' in res and 'date_stop' in res: f_ids = fy_obj.search(cr, uid, [('date_start', '<=', res['date_start']), ('date_stop', '>=', res['date_stop']), ('company_id', '=', res['company_id'][0])], context=context) if not f_ids: diff --git a/addons/account/report/__init__.py b/addons/account/report/__init__.py index 90254c53bda..70ceb4b8f83 100644 --- a/addons/account/report/__init__.py +++ b/addons/account/report/__init__.py @@ -33,13 +33,10 @@ import account_print_overdue import account_aged_partner_balance #import tax_report import account_tax_report -import account_balance_landscape import account_invoice_report import account_report import account_entries_report import account_analytic_entries_report -import account_balance_sheet -import account_profit_loss import account_treasury_report import account_financial_report diff --git a/addons/account/report/account_balance_landscape.py b/addons/account/report/account_balance_landscape.py deleted file mode 100644 index 4e62a9777c9..00000000000 --- a/addons/account/report/account_balance_landscape.py +++ /dev/null @@ -1,393 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import time -import locale -from report import report_sxw - -parents = { - 'tr':1, - 'li':1, - 'story': 0, - 'section': 0 -} - -class account_balance_landscape(report_sxw.rml_parse): - def __init__(self, cr, uid, name, context): - super(account_balance_landscape, self).__init__(cr, uid, name, context=context) - self.flag=1 - self.dr_total= 0.00 - self.cr_total= 0.00 - self.parent_bal=0 - self.status=0 - self.done_total=0 - self.baldiv={} - self.empty_parent=0 - self.result_total = {} - self.total_for_perc=[] - self.localcontext.update({ - 'time': time, - 'lines': self.lines, - 'get_lines':self.get_lines, - 'linesForTotal': self.linesForTotal, - 'linesForYear': self.linesForYear, - 'get_years':self.get_years, - 'cal_total':self.cal_total, - 'total_dr':self.total_dr, - 'total_cr':self.total_cr - }) - self.context = context - - def linesForYear(self,form): - temp=0 - years={} - - global pattern - global show - global perc - global bal_zero - global ref_bal - - pattern=form['compare_pattern'] - - if form['show_columns']!=1: - show=0 - else: - show=form['show_columns'] - - if form['format_perc']!=1: - perc=0 - else: - perc=form['format_perc'] - - if form['account_choice']=='bal_zero': - bal_zero=0 - else: - bal_zero=1 - - ctx = self.context.copy() - - if perc==1: - if form['select_account']!=False: - ref_ac=self.pool.get('account.account').browse(self.cr, self.uid, form['select_account'], ctx.copy()) - if ref_ac.balance<>0.00: - ref_bal=ref_ac.balance - else: - ref_bal=1.00 - else: - ref_bal='nothing' - else: - ref_bal='nothing' - - - self.done_total=1 - self.total_for_perc=self.linesForTotal(form, ids={}, doneAccount={}, level=1) - self.done_total=0 - - for t1 in range(0,len(form['fiscalyear'])): - locale.setlocale(locale.LC_ALL, '') - self.result_total["sum_credit" + str(t1)]=locale.format("%.2f", self.result_total["sum_credit" + str(t1)], grouping=True) - self.result_total["sum_debit" + str(t1)]=locale.format("%.2f", self.result_total["sum_debit" + str(t1)], grouping=True) - - for temp in range(0,len(form['fiscalyear'])): - fy=self.pool.get('account.fiscalyear').name_get(self.cr, self.uid, form['fiscalyear'][temp]) - years["year"+str(temp)]=fy[0][1][12:16] - - return [years] - - - def linesForTotal(self, form, ids={}, doneAccount={}, level=1): - if not self.done_total==1: - return [self.result_total] - accounts=[] - if not ids: - ids = self.ids - if not ids: - return [] - - ctx = self.context.copy() - - for id in form['fiscalyear']: - tmp=[] - - ctx['fiscalyear'] = id - ctx['periods'] = form['periods'] - ctx['period_manner'] = form['period_manner'] - ctx['state'] = form['context'].get('state','all') - tmp = self.pool.get('account.account').browse(self.cr, self.uid, ids, ctx.copy()) - - if tmp: - accounts.append(tmp) - - merged_accounts=zip(*accounts) - # used to check for the frst record so all sum_credit and sum_debit r set to 0.00 - if level==1: - doneAccount={} - for entry in merged_accounts: - - if entry[0].id in doneAccount: - continue - doneAccount[entry[0].id] = 1 - - for k in range(0,len(entry)): - temp_credit=0.00 - temp_debit=0.00 - if entry[0].type <> 'view': - temp_credit+=entry[k].credit - temp_debit+=entry[k].debit - - if self.flag==1: - self.result_total["sum_credit" + str(k)]=0.00 - self.result_total["sum_debit" + str(k)]=0.00 - - if form['account_choice']=='bal_zero': - if temp_credit<>temp_debit: - self.result_total["sum_credit" + str(k)]+=temp_credit - self.result_total["sum_debit" + str(k)]+=temp_debit - else: - self.result_total["sum_credit" + str(k)]+=temp_credit - self.result_total["sum_debit" + str(k)]+=temp_debit - - self.flag=2 - - if entry[0].child_id: - ids2 = [(x.code,x.id) for x in entry[0].child_id] - ids2.sort() - - result_total_parent = self.linesForTotal(form, [x[1] for x in ids2], doneAccount, level+1) - - return [self.result_total] - - def lines(self, form, ids={}, done={}, level=1): - accounts=[] - if not ids: - ids = self.ids - if not ids: - return [] - result = [] - ctx = self.context.copy() - tmp1=[] - for id in form['fiscalyear']: - - ctx['fiscalyear'] = id - ctx['periods'] = form['periods'] - ctx['period_manner']=form['period_manner'] - ctx['state'] = form['context'].get('state','all') - tmp1 = self.pool.get('account.account').browse(self.cr, self.uid, ids, ctx.copy()) - - if tmp1: - accounts.append(tmp1) - - if level==1: #if parent is called,done is not empty when called again. - done={} - - def cmp_code(x, y): - return cmp(x.code, y.code) - for n in range(0,len(accounts)): - accounts[n].sort(cmp_code) - merged_accounts=zip(*accounts) - - for entry in merged_accounts: - j=0 - checked=1 - - if form['account_choice']!='all': # if checked,include empty a/c;not otherwise - checked=0 - - if entry[0].id in done: - continue - done[entry[0].id] = 1 - - if entry[0].child_id: # this is for parent account,dont check 0 for it - checked=4 - self.status=1 # for displaying it Bold - else: - self.status=0 - if checked==0: - i=0 - for i in range(0,len(entry)): - if bal_zero==0: - if entry[i].balance<>0.0: - checked=4 - break - else: - checked=3 - i=i+1 - else: - if entry[i].credit <> 0.0 or entry[i].debit <> 0.0: - checked=4 - break - else: - checked=3 - i=i+1 - - if checked==3: - # this is the point where we skip those accounts which are encountered as empty ones - continue - self.empty_parent=0 - else: - self.empty_parent=1 - res = { - 'code': entry[0].code, - 'name': entry[0].name, - 'level': level, - 'status': self.status, - } - - for j in range(0,len(entry)): - - locale.setlocale(locale.LC_ALL, '') - res["debit"+str(j)]=locale.format("%.2f", entry[j].debit, grouping=True) - res["credit"+str(j)]=locale.format("%.2f", entry[j].credit, grouping=True) - res["balance"+str(j)]=locale.format("%.2f", entry[j].balance, grouping=True) - - - if j==0: - res["bal_cash"+str(j)]="0.00" - res["bal_perc"+str(j)]="0.00%" - else: - temp_cash=entry[j].balance - entry[j-1].balance - res["bal_cash"+str(j)]=locale.format("%.2f", temp_cash, grouping=True) - if entry[j-1].balance<>0.00: - temp_perc=(entry[j].balance - entry[j-1].balance )*100/entry[j-1].balance - else: - temp_perc=(entry[j].balance) *100 - - res["bal_perc"+str(j)]=locale.format("%.2f", temp_perc) + "%" - - - if ref_bal=='nothing': - if level==1: - self.parent_bal=1 - else: - self.parent_bal=0 - - if self.parent_bal==1: - res["balance_perc"+str(j)]="/" - else: - if entry[j].balance==0.00: - if self.baldiv["baldiv"+str(level-1)+str(j)]<>0.00: - res["balance_perc"+str(j)]="0.00%" - else: - res["balance_perc"+str(j)]="/" - else: - if self.baldiv["baldiv"+str(level-1)+str(j)]<>0.00: - temp=self.baldiv["baldiv"+str(level-1)+str(j)] - temp1=(entry[j].balance * 100 )/ float(temp) - temp1=round(temp1,2) - res["balance_perc" + str(j)]=str(temp1)+"%" - else: - res["balance_perc"+str(j)]="/" - else: - res["balance_perc"+str(j)]=str( (entry[j].balance * 100 )/ float(ref_bal)) + "%" - - result.append(res) - - if entry[0].child_id: - - for q in range(0,len(form['fiscalyear'])): - self.baldiv["baldiv"+str(level)+str(q)]=entry[q].balance - - ids2 = [(x.code,x.id) for x in entry[0].child_id] - ids2.sort() - dir=[] - dir += self.lines(form, [x[1] for x in ids2], done, level+1) - if dir==[]: - for w in range(0,len(form['fiscalyear'])): - if entry[w].credit <> 0.0 or entry[w].debit <> 0.0 or entry[w].balance<>0.00: - dont_pop=1 - break - else: - dont_pop=0 - if dont_pop==1: - result +=dir - else: - result.pop(-1) # here we pop up the parent having its children as emprty accounts - else: - result +=dir - - return result - - def get_years(self, form): - result =[] - res={} - for temp in range(0, len(form['fiscalyear'])): - res={} - fy=self.pool.get('account.fiscalyear').name_get(self.cr, self.uid, form['fiscalyear'][temp]) - res['year']=fy[0][1] - res['last_str']=temp - - result.append(res) - self.linesForYear(form) - return result - - def get_lines(self, year_dict, form): - final_result = [] - res = {} - line_l = self.lines(form) - self.cal_total(year_dict) - if line_l: - for l in line_l: - res = {} - res['code'] = l['code'] - res['name'] = l['name'] - res['level'] = l['level'] - for k,v in l.items(): - if k.startswith('debit'+str(year_dict['last_str'])): - res['debit'] = v - if k.startswith('credit'+str(year_dict['last_str'])): - res['credit'] = v - if k.startswith('balance'+str(year_dict['last_str'])) and not k.startswith('balance_perc'+str(year_dict['last_str'])): - res['balance'] =v - if k.startswith('balance_perc'+str(year_dict['last_str'])) and not k.startswith('balance'+str(year_dict['last_str'])): - res['balance_perc'] = v - if form['compare_pattern'] == 'bal_perc': - if k.startswith('bal_perc'+str(year_dict['last_str'])): - res['pattern'] = v - elif form['compare_pattern'] == 'bal_cash': - if k.startswith('bal_cash'+str(year_dict['last_str'])): - res['pattern'] = v - else: - res['pattern'] = '' - final_result.append(res) - return final_result - - def cal_total(self, year_dict): - total_l = self.result_total - if total_l: - for k,v in total_l.items(): - if k.startswith('sum_debit'+str(year_dict['last_str'])): - self.dr_total = v - elif k.startswith('sum_credit'+str(year_dict['last_str'])): - self.cr_total = v - else: - continue - return True - - def total_dr(self): - return self.dr_total - - def total_cr(self): - return self.cr_total - -report_sxw.report_sxw('report.account.account.balance.landscape', 'account.account', 'addons/account/report/account_balance_landscape.rml', parser=account_balance_landscape, header="internal landscape") -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/account/report/account_balance_landscape.rml b/addons/account/report/account_balance_landscape.rml deleted file mode 100644 index d8e4881bbbe..00000000000 --- a/addons/account/report/account_balance_landscape.rml +++ /dev/null @@ -1,317 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [[ repeatIn(get_years(data['form']), 'y') ]] - - - - Account Balance - [[ company.currency_id.name ]] - - - - - - - Year : [[ y['year'] ]] - - - - [[ data['form']['show_columns'] and 'Code' or removeParentNode('blockTable') ]] - - - Account Name - - - [[ data['form']['compare_pattern']!='none' and 'C.S.Y.T.(C./P)' or removeParentNode('font') ]] - - - Debit - - - Credit - - - Balance - - - - - - - - - - [[ data['form']['show_columns'] and removeParentNode('blockTable') or 'Code' ]] - - - Account Name - - - [[ data['form']['compare_pattern']!='none' and 'C.S.Y.T.(C./P)' or removeParentNode('font') ]] - - - Balance - - - - - - -
- [[ repeatIn(get_lines(y,data['form']), 'a') ]] - - - - [[ (data['form']['format_perc'] or not data['form']['show_columns']) and removeParentNode('blockTable') ]] [[ a['code'] ]] - - - [['.....'*(a['level']-1) ]][[ a['name'] ]] - - - [[ a['pattern'] ]] - - - [[ a['debit'] ]] - - - [[ a['credit'] ]] - - - [[ a['balance'] ]] - - - - - - - - [[ (not data['form']['format_perc'] or not data['form']['show_columns']) and removeParentNode('blockTable') ]] [[ a['code'] ]] - - - [['.....'*(a['level']-1) ]] [[ a['name'] ]] - - - [[ a['pattern'] ]] - - - [[ a['debit'] ]] - - - [[ a['credit'] ]] - - - [[ a['balance'] ]] - - - [[ a['balance_perc'] ]] - - - - - - - - - - [[ (data['form']['format_perc'] or data['form']['show_columns']) and removeParentNode('blockTable') ]] [[ a['code'] ]] - - - [['.....'*(a['level']-1) ]] [[ a['name'] ]] - - - [[ a['pattern'] ]] - - - [[ a['balance'] ]] - - - - - - - - - - [[ (not data['form']['format_perc'] or data['form']['show_columns']) and removeParentNode('blockTable') ]] [[ a['code'] ]] - - - [['.....'*(a['level']-1) ]] [[ a['name'] ]] - - - [[ a['pattern'] ]] - - - [[ a['balance'] ]] - - - [[ a['balance_perc'] ]] - - - - -
- - - - - - - [[ not data['form']['show_columns'] and removeParentNode('blockTable') ]] - - - Total : - - - [[ total_dr() ]] - - - [[ total_cr() ]] - - - - - - - - - - - - [[ data['form']['compare_pattern']!='none' and "C.S.Y.T.(C./P) : Compare Selected Years In Terms of Cash/Perc" or removeParentNode('font') ]] -
-
\ No newline at end of file diff --git a/addons/account/report/account_balance_landscape_old_backup.rml b/addons/account/report/account_balance_landscape_old_backup.rml deleted file mode 100644 index 6790082f8dd..00000000000 --- a/addons/account/report/account_balance_landscape_old_backup.rml +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Account Balance - - - - - - - - - - [[ company.name ]] - - - - - - - - Currency: [[ company.currency_id.name ]] - - - - - - - Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]] - - - -
- [[repeatIn(linesForYear(data['form']),'year_header',td=len(data['form']['fiscalyear'][0][2]),width=[126],value=['year'],type=['string']) ]] - - - - Account Information - - - -
-
- [[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['Debit','Credit','Balance'],type=['lable','lable','lable']) ]] - - - - Code - - - Account Name - - - -
-
- [[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[84,42],value=['Cash','%'],type=['lable','lable']) ]] - - - - - - - -
- - - -
- [[ repeatIn(lines(data['form']),'a',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['debit','credit','balance'],type=['string','string','string']) ]] - - - - - - - [[ a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['code'] ]] - - - [['.....'*(a['level']-1) ]][[ a['status']==1 and ( setTag('font','font',{'name':'Helvetica-bold'})) ]][[ a['name'] ]] - - - -
- - - -
- [[ repeatIn(linesForTotal(data['form']),'total',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['sum_debit','sum_credit',''],type=['string','string','lable'] ) ]] - - - - Total:[[ data['form']['show_columns']==0 and removeParentNode('section')]] - - - -
- - - - -
-
diff --git a/addons/account/report/account_balance_old_backup.rml b/addons/account/report/account_balance_old_backup.rml deleted file mode 100644 index cf67cb6bc3d..00000000000 --- a/addons/account/report/account_balance_old_backup.rml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Account balance - - - - - - - - [[ company.name ]] - - - - - - Currency: [[ company.currency_id.name ]] - - - - - - - Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]] - - - -
- [[repeatIn(linesForYear(data['form']),'year_header',td=len(data['form']['fiscalyear'][0][2]),width=[126],value=['year'],type=['string']) ]] - - - - Account Information - - - -
-
- [[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['Debit','Credit','Balance'],type=['lable','lable','lable']) ]] - - - - Code - - - Account Name - - - -
-
- [[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[84,42],value=['Cash','%'],type=['lable','lable']) ]] - - - - - - - -
- - - -
- [[ repeatIn(lines(data['form']),'a',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['debit','credit','balance'],type=['string','string','string']) ]] - - - - - - - - - - [[ a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['code'] ]] - - - [['.....'*(a['level']-1) ]][[ a['status']==1 and ( setTag('font','font',{'name':'Helvetica-bold'})) ]][[ a['name'] ]] - - - -
- - - -
- [[ repeatIn(linesForTotal(data['form']),'total',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['sum_debit','sum_credit',''],type=['string','string','lable'] ) ]] - - - - Total:[[ data['form']['show_columns']==0 and removeParentNode('section')]] - - - -
- - - -
-
diff --git a/addons/account/report/account_balance_sheet.py b/addons/account/report/account_balance_sheet.py deleted file mode 100644 index ce9e3c51f06..00000000000 --- a/addons/account/report/account_balance_sheet.py +++ /dev/null @@ -1,224 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2009 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import time - -import pooler -from report import report_sxw -from account.report import account_profit_loss -from common_report_header import common_report_header -from tools.translate import _ - -class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header): - def __init__(self, cr, uid, name, context=None): - super(report_balancesheet_horizontal, self).__init__(cr, uid, name, context=context) - self.obj_pl = account_profit_loss.report_pl_account_horizontal(cr, uid, name, context=context) - self.result_sum_dr = 0.0 - self.result_sum_cr = 0.0 - self.result = {} - self.res_bl = {} - self.result_temp = [] - self.localcontext.update({ - 'time': time, - 'get_lines': self.get_lines, - 'get_lines_another': self.get_lines_another, - 'get_company': self._get_company, - 'get_currency': self._get_currency, - 'sum_dr': self.sum_dr, - 'sum_cr': self.sum_cr, - 'get_data':self.get_data, - 'get_pl_balance':self.get_pl_balance, - 'get_fiscalyear': self._get_fiscalyear, - 'get_account': self._get_account, - 'get_start_period': self.get_start_period, - 'get_end_period': self.get_end_period, - 'get_sortby': self._get_sortby, - 'get_filter': self._get_filter, - 'get_journal': self._get_journal, - 'get_start_date':self._get_start_date, - 'get_end_date':self._get_end_date, - 'get_company':self._get_company, - 'get_target_move': self._get_target_move, - }) - self.context = context - - def set_context(self, objects, data, ids, report_type=None): - new_ids = ids - if (data['model'] == 'ir.ui.menu'): - new_ids = 'chart_account_id' in data['form'] and [data['form']['chart_account_id']] or [] - objects = self.pool.get('account.account').browse(self.cr, self.uid, new_ids) - return super(report_balancesheet_horizontal, self).set_context(objects, data, new_ids, report_type=report_type) - - def sum_dr(self): - if self.res_bl['type'] == _('Net Profit'): - self.result_sum_dr += self.res_bl['balance']*-1 - return self.result_sum_dr - - def sum_cr(self): - if self.res_bl['type'] == _('Net Loss'): - self.result_sum_cr += self.res_bl['balance'] - return self.result_sum_cr - - def get_pl_balance(self): - return self.res_bl - - def get_data(self,data): - cr, uid = self.cr, self.uid - db_pool = pooler.get_pool(self.cr.dbname) - - #Getting Profit or Loss Balance from profit and Loss report - self.obj_pl.get_data(data) - self.res_bl = self.obj_pl.final_result() - - account_pool = db_pool.get('account.account') - currency_pool = db_pool.get('res.currency') - - types = [ - 'liability', - 'asset' - ] - - ctx = self.context.copy() - ctx['fiscalyear'] = data['form'].get('fiscalyear_id', False) - - if data['form']['filter'] == 'filter_period': - ctx['period_from'] = data['form'].get('period_from', False) - ctx['period_to'] = data['form'].get('period_to', False) - elif data['form']['filter'] == 'filter_date': - ctx['date_from'] = data['form'].get('date_from', False) - ctx['date_to'] = data['form'].get('date_to', False) - ctx['state'] = data['form'].get('target_move', 'all') - cal_list = {} - pl_dict = {} - account_dict = {} - account_id = data['form'].get('chart_account_id', False) - account_ids = account_pool._get_children_and_consol(cr, uid, account_id, context=ctx) - accounts = account_pool.browse(cr, uid, account_ids, context=ctx) - - if not self.res_bl: - self.res_bl['type'] = _('Net Profit') - self.res_bl['balance'] = 0.0 - - if self.res_bl['type'] == _('Net Profit'): - self.res_bl['type'] = _('Net Profit') - else: - self.res_bl['type'] = _('Net Loss') - pl_dict = { - 'code': self.res_bl['type'], - 'name': self.res_bl['type'], - 'level': False, - 'balance':self.res_bl['balance'], - } - for typ in types: - accounts_temp = [] - for account in accounts: - if (account.user_type.report_type) and (account.user_type.report_type == typ): - account_dict = { - 'id': account.id, - 'code': account.code, - 'name': account.name, - 'level': account.level, - 'balance': account.balance != 0 and account.balance * account.user_type.sign or account.balance, - 'type': account.type, - } - currency = account.currency_id and account.currency_id or account.company_id.currency_id - if typ == 'liability' and account.type <> 'view' and (account.debit <> account.credit): - self.result_sum_dr += account.balance - if typ == 'asset' and account.type <> 'view' and (account.debit <> account.credit): - self.result_sum_cr += account.balance - if data['form']['display_account'] == 'movement': - if not currency_pool.is_zero(self.cr, self.uid, currency, account.credit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.debit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.balance): - accounts_temp.append(account_dict) - elif data['form']['display_account'] == 'not_zero': - if not currency_pool.is_zero(self.cr, self.uid, currency, account.balance): - accounts_temp.append(account_dict) - else: - accounts_temp.append(account_dict) - if account.id == data['form']['reserve_account_id']: - pl_dict['level'] = account['level'] + 1 - accounts_temp.append(pl_dict) - - self.result[typ] = accounts_temp - cal_list[typ]=self.result[typ] - - if cal_list: - temp = {} - for i in range(0,max(len(cal_list['liability']),len(cal_list['asset']))): - if i < len(cal_list['liability']) and i < len(cal_list['asset']): - temp={ - 'type': cal_list['liability'][i]['type'], - 'code': cal_list['liability'][i]['code'], - 'name': cal_list['liability'][i]['name'], - 'level': cal_list['liability'][i]['level'], - 'balance':cal_list['liability'][i]['balance'], - 'type1': cal_list['asset'][i]['type'], - 'code1': cal_list['asset'][i]['code'], - 'name1': cal_list['asset'][i]['name'], - 'level1': cal_list['asset'][i]['level'], - 'balance1':cal_list['asset'][i]['balance'], - } - self.result_temp.append(temp) - else: - if i < len(cal_list['asset']): - temp={ - 'type': '', - 'code': '', - 'name': '', - 'level': False, - 'balance':False, - 'type1': cal_list['asset'][i]['type'], - 'code1': cal_list['asset'][i]['code'], - 'name1': cal_list['asset'][i]['name'], - 'level1': cal_list['asset'][i]['level'], - 'balance1':cal_list['asset'][i]['balance'], - } - self.result_temp.append(temp) - if i < len(cal_list['liability']): - temp={ - 'type': cal_list['liability'][i]['type'], - 'code': cal_list['liability'][i]['code'], - 'name': cal_list['liability'][i]['name'], - 'level': cal_list['liability'][i]['level'], - 'balance':cal_list['liability'][i]['balance'], - 'type1': '', - 'code1': '', - 'name1': '', - 'level1': False, - 'balance1':False, - } - self.result_temp.append(temp) - return None - - def get_lines(self): - return self.result_temp - - def get_lines_another(self, group): - return self.result.get(group, []) - -report_sxw.report_sxw('report.account.balancesheet.horizontal', 'account.account', - 'addons/account/report/account_balance_sheet_horizontal.rml',parser=report_balancesheet_horizontal, - header='internal landscape') - -report_sxw.report_sxw('report.account.balancesheet', 'account.account', - 'addons/account/report/account_balance_sheet.rml',parser=report_balancesheet_horizontal, - header='internal') - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/report/account_balance_sheet.rml b/addons/account/report/account_balance_sheet.rml deleted file mode 100644 index 620ec05b16a..00000000000 --- a/addons/account/report/account_balance_sheet.rml +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Balance Sheet - - - - [[ get_data(data) or removeParentNode('para') ]] - - - - - - Chart of Accounts - Fiscal Year - Filter By [[ data['form']['filter']!='filter_no' and get_filter(data) ]] - Display Account - Target Moves - - - [[ get_account(data) or removeParentNode('para') ]] - [[ get_fiscalyear(data) or '' ]] - [[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]] - [[ data['form']['filter']=='filter_date' or removeParentNode('blockTable') ]] - - Start Date - End Date - - - [[ formatLang(get_start_date(data),date=True) ]] - [[ formatLang(get_end_date(data),date=True) ]] - - - [[ data['form']['filter']=='filter_period' or removeParentNode('blockTable') ]] - - Start Period - End Period - - - [[ get_start_period(data) or removeParentNode('para') ]] - [[ get_end_period(data) or removeParentNode('para') ]] - - - - [[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']] - [[ get_target_move(data) ]] - - - - - - - - - - - - Assets - - - - - - - - - - Code - - - Account - - - Balance - - - - [[ repeatIn(get_lines_another('asset'),'a' ) ]] - [[ setTag('tr','tr',{'style': 'Table'+str(min(3,a['level']))}) ]] - [[ (a['type'] =='view' and a['level'] >= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_code'}) ]][[ a['code'] ]] - [[ (a['type'] =='view' and a['level'] >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a['level']))+'_name'}) ]][[ a['name'] ]] - [[ (a['level'] <>2) or removeParentNode('td') ]][[ (a['type'] =='view' and a['level'] >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_balance'}) ]][[ formatLang(a['balance'], currency_obj = company.currency_id) ]] - [[ a['level'] == 2 or removeParentNode('td') ]][[ formatLang(a['balance'], currency_obj = company.currency_id) ]] - - - - - - Balance: - - - [[ formatLang(sum_cr(), currency_obj = company.currency_id) ]] - - - - - - - - - - - Liabilities - - - - - - - Code - - - Account - - - Balance - - - - [[ repeatIn(get_lines_another('liability'),'a' ) ]] - [[ setTag('tr','tr',{'style': 'Table'+str(min(3,a['level']))}) ]] - [[ (a['type'] =='view' and a['level'] >= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_code'}) ]][[ a['code'] ]] - [[ (a['type'] =='view' and a['level'] >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a['level']))+'_name'}) ]][[ a['name'] ]] - [[ (a['level'] <>2) or removeParentNode('td') ]][[ (a['type'] =='view' and a['level'] >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_balance'}) ]][[ formatLang(a['balance'], currency_obj = company.currency_id) ]] - [[ a['level'] == 2 or removeParentNode('td') ]][[ formatLang(a['balance'], currency_obj = company.currency_id) ]] - - - - - - Balance: - - - [[ formatLang(sum_dr(), currency_obj = company.currency_id) ]] - - - - - - - - diff --git a/addons/account/report/account_balance_sheet_horizontal.rml b/addons/account/report/account_balance_sheet_horizontal.rml deleted file mode 100644 index b2d54e33466..00000000000 --- a/addons/account/report/account_balance_sheet_horizontal.rml +++ /dev/null @@ -1,250 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Balance Sheet - - - - [[ get_data(data) or removeParentNode('para') ]] - - - - Chart of Accounts - Fiscal Year - Filter By [[ data['form']['filter']!='filter_no' and get_filter(data) ]] - Display Account - Target Moves - - - [[ get_account(data) or removeParentNode('para') ]] - [[ get_fiscalyear(data) or '' ]] - [[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]] - [[ data['form']['filter']=='filter_date' or removeParentNode('blockTable') ]] - - Start Date - End Date - - - [[ formatLang(get_start_date(data),date=True) ]] - [[ formatLang(get_end_date(data),date=True) ]] - - - [[ data['form']['filter']=='filter_period' or removeParentNode('blockTable') ]] - - Start Period - End Period - - - [[ get_start_period(data) or removeParentNode('para') ]] - [[ get_end_period(data) or removeParentNode('para') ]] - - - - [[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']] - [[ get_target_move(data) ]] - - - - - - - - - - - - Code - - - Assets - - - Balance - - - Code - - - Liabilities - - - Balance - - - - - - [[ repeatIn(get_lines(),'a' ) ]] [[ a['code1'] ]][[ a['level1']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]] - - - - - [[ '. '*(a['level1']-1) ]][[ a['level1']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name1'] ]] - - - - - [[ a['level1']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]][[ formatLang(a['balance1'], currency_obj=company.currency_id) ]] - - - - - [[ a['code'] ]][[ ( a['level']<4 or a['name']=='Net Profit') and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]] - - - - - [[ '. '*(a['level']-1) ]] - [[ ( a['level']<4 or a['name']=='Net Profit') and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name'] ]] - - - - - [[ ( a['level']<4 or a['name']=='Net Profit') and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]] - [[(a['code'] and a['name']) and formatLang(a['balance'], currency_obj=company.currency_id) or removeParentNode('font')]] - - - - - - - - Balance: - - - [[ formatLang(sum_cr(), currency_obj=company.currency_id) ]] - - - Balance: - - - [[ formatLang(sum_dr(), currency_obj=company.currency_id) ]] - - - - - - diff --git a/addons/account/report/account_financial_report.py b/addons/account/report/account_financial_report.py index e9da0a1cd7b..c3b1f5e2e1a 100644 --- a/addons/account/report/account_financial_report.py +++ b/addons/account/report/account_financial_report.py @@ -64,29 +64,30 @@ class report_account_common(report_sxw.rml_parse, common_report_header): vals['balance_cmp'] = self.pool.get('account.financial.report').browse(self.cr, self.uid, report.id, context=data['form']['comparison_context']).balance lines.append(vals) account_ids = [] - if report.type == 'accounts' and report.display_detail and report.account_ids: + if report.type == 'accounts' and report.account_ids: account_ids = account_obj._get_children_and_consol(self.cr, self.uid, [x.id for x in report.account_ids]) elif report.type == 'account_type' and report.account_type_ids: account_ids = account_obj.search(self.cr, self.uid, [('user_type','in', [x.id for x in report.account_type_ids])]) if account_ids: for account in account_obj.browse(self.cr, self.uid, account_ids, context=data['form']['used_context']): - if account.type != 'view': - flag = False - vals = { - 'name': account.code + ' ' + account.name, - 'balance': account.balance != 0 and account.balance * account.user_type.sign or account.balance, - 'type': 'account', - 'level': 6, - 'account_type': account.type, - } - if not currency_obj.is_zero(self.cr, self.uid, account.company_id.currency_id, vals['balance']): + if report.display_detail == 'detail_flat' and account.type == 'view': + continue + flag = False + vals = { + 'name': account.code + ' ' + account.name, + 'balance': account.balance != 0 and account.balance * report.sign or account.balance, + 'type': 'account', + 'level': report.display_detail == 'detail_with_hierarchy' and min(account.level,6) or 6, + 'account_type': account.type, + } + if not currency_obj.is_zero(self.cr, self.uid, account.company_id.currency_id, vals['balance']): + flag = True + if data['form']['enable_filter']: + vals['balance_cmp'] = account_obj.browse(self.cr, self.uid, account.id, context=data['form']['comparison_context']).balance + if not currency_obj.is_zero(self.cr, self.uid, account.company_id.currency_id, vals['balance_cmp']): flag = True - if data['form']['enable_filter']: - vals['balance_cmp'] = account_obj.browse(self.cr, self.uid, account.id, context=data['form']['comparison_context']).balance - if not currency_obj.is_zero(self.cr, self.uid, account.company_id.currency_id, vals['balance_cmp']): - flag = True - if flag: - lines.append(vals) + if flag: + lines.append(vals) return lines report_sxw.report_sxw('report.account.financial.report', 'account.financial.report', diff --git a/addons/account/report/account_financial_report.rml b/addons/account/report/account_financial_report.rml index 6a94f02c719..e3b5f3663f9 100644 --- a/addons/account/report/account_financial_report.rml +++ b/addons/account/report/account_financial_report.rml @@ -130,15 +130,13 @@ - - - + + + + + - - - - - + @@ -229,13 +227,13 @@ Balance - + [[ repeatIn(get_lines(data), 'a') ]] [[ (a.get('level') <> 0) or removeParentNode('tr') ]] [[ setTag('tr','tr',{'style': 'Table'+str(min(3,'level' in a and a.get('level') or 1))}) ]] - [[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_name'}) ]] [[ a.get('name') ]] - [[ a.get('level') == 4 or removeParentNode('td') ]][[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance'))]] [[company.currency_id.symbol]] - [[ a.get('level') <> 4 or removeParentNode('td') ]][[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance'))]] [[company.currency_id.symbol]] + [[ (a.get('account_type') =='view' and a.get('level') >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.get('level')))+'_name'}) ]][[ a.get('name') ]] + [[ (a.get('level') <>2) or removeParentNode('td') ]][[ (a.get('account_type') =='view' and a.get('level') >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_balance'}) ]][[ formatLang(a.get('balance'), currency_obj = company.currency_id) ]] + [[ a.get('level') == 2 or removeParentNode('td') ]][[ formatLang(a.get('balance'), currency_obj = company.currency_id) ]] @@ -258,11 +256,11 @@ [[ repeatIn(get_lines(data), 'a') ]] [[ (a.get('level') <> 0) or removeParentNode('tr') ]] [[ setTag('tr','tr',{'style': 'Table'+str(min(3,'level' in a and a.get('level') or 1))}) ]] - [[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_name'}) ]] [[ a.get('name') ]] - [[ a.get('level') == 4 or removeParentNode('td') ]][[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance'))]] [[company.currency_id.symbol]] - [[ a.get('level') <> 4 or removeParentNode('td') ]][[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance'))]] [[company.currency_id.symbol]] - [[ a.get('level') == 4 or removeParentNode('td') ]][[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance_cmp'))]] [[company.currency_id.symbol]] - [[ a.get('level') <> 4 or removeParentNode('td') ]][[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance_cmp'))]] [[company.currency_id.symbol]] + [[ (a.get('account_type') =='view' and a.get('level') >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.get('level')))+'_name'}) ]][[ a.get('name') ]] + [[ (a.get('level') <>2) or removeParentNode('td') ]][[ (a.get('account_type') =='view' and a.get('level') >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_balance'}) ]][[ formatLang(a.get('balance'), currency_obj = company.currency_id) ]] + [[ a.get('level') == 2 or removeParentNode('td') ]][[ formatLang(a.get('balance'), currency_obj = company.currency_id) ]] + [[ (a.get('level') <>2) or removeParentNode('td') ]][[ (a.get('account_type') =='view' and a.get('level') >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_balance'}) ]][[ formatLang(a.get('balance_cmp'), currency_obj = company.currency_id) ]] + [[ a.get('level') == 2 or removeParentNode('td') ]][[ formatLang(a.get('balance_cmp'), currency_obj = company.currency_id) ]] diff --git a/addons/account/report/account_profit_horizontal.rml b/addons/account/report/account_profit_horizontal.rml deleted file mode 100644 index 0918dcb2699..00000000000 --- a/addons/account/report/account_profit_horizontal.rml +++ /dev/null @@ -1,282 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Profit And Loss - - - - - - - [[ get_data(data) or removeParentNode('para')]] - - - Chart of Accounts - Fiscal Year - Filter By [[ data['form']['filter']!='filter_no' and get_filter(data) ]] - Display Account - Target Moves - - - [[ get_account(data) or removeParentNode('para') ]] - [[ get_fiscalyear(data) or '' ]] - [[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]] - [[ data['form']['filter']=='filter_date' or removeParentNode('blockTable') ]] - - Start Date - End Date - - - [[ formatLang(get_start_date(data),date=True) ]] - [[ formatLang(get_end_date(data),date=True) ]] - - - [[ data['form']['filter']=='filter_period' or removeParentNode('blockTable') ]] - - Start Period - End Period - - - [[ get_start_period(data) or removeParentNode('para') ]] - [[ get_end_period(data) or removeParentNode('para') ]] - - - - [[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']] - [[ get_target_move(data) ]] - - - - - - - - - Code - - - Expenses - - - Balance - - - Code - - - Income - - - Balance - - - - - - - [[ repeatIn(get_lines(),'a' ) ]] [[ a['code'] ]][[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]] - - - - - [[ '. '*(a['level']-1) ]][[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name'] ]] - - - - [[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]][[ formatLang(abs(a['balance']), currency_obj=company.currency_id) ]] - - - - [[ a['code1'] ]][[ a['level1']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]] - - - - - [[ '. '*(a['level1']-1) ]][[ a['level1']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name1'] ]] - - - - [[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]][[(a['code1'] and a['name1']) and formatLang(abs(a['balance1']), currency_obj=company.currency_id) or removeParentNode('font') ]] - - - - - - - - - - [[ final_result()['type'] == 'Net Profit' and final_result()['type'] or '' ]] - - - [[ final_result()['balance'] and final_result()['type'] == 'Net Profit' and formatLang(abs(final_result()['balance']), currency_obj=company.currency_id) ]] - - - - - - [[ final_result()['type'] == 'Net Loss' and final_result()['type'] or '' ]] - - - [[ final_result()['balance'] and final_result()['type'] == 'Net Loss' and formatLang(abs(final_result()['balance']), currency_obj=company.currency_id) ]] - - - - - - - - Total: - - - [[ formatLang(abs(sum_dr()), currency_obj=company.currency_id) ]] - - - Total: - - - [[ formatLang(abs(sum_cr()), currency_obj=company.currency_id) ]] - - - - - - diff --git a/addons/account/report/account_profit_loss.py b/addons/account/report/account_profit_loss.py deleted file mode 100644 index 27182cdbd21..00000000000 --- a/addons/account/report/account_profit_loss.py +++ /dev/null @@ -1,198 +0,0 @@ -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2009 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import time -import pooler -from report import report_sxw -from common_report_header import common_report_header -from tools.translate import _ - -class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header): - - def __init__(self, cr, uid, name, context=None): - super(report_pl_account_horizontal, self).__init__(cr, uid, name, context=context) - self.result_sum_dr = 0.0 - self.result_sum_cr = 0.0 - self.res_pl = {} - self.result = {} - self.result_temp = [] - self.localcontext.update( { - 'time': time, - 'get_lines': self.get_lines, - 'get_lines_another': self.get_lines_another, - 'get_currency': self._get_currency, - 'get_data': self.get_data, - 'sum_dr': self.sum_dr, - 'sum_cr': self.sum_cr, - 'final_result': self.final_result, - 'get_fiscalyear': self._get_fiscalyear, - 'get_account': self._get_account, - 'get_start_period': self.get_start_period, - 'get_end_period': self.get_end_period, - 'get_sortby': self._get_sortby, - 'get_filter': self._get_filter, - 'get_journal': self._get_journal, - 'get_start_date':self._get_start_date, - 'get_end_date':self._get_end_date, - 'get_company':self._get_company, - 'get_target_move': self._get_target_move, - }) - self.context = context - - def set_context(self, objects, data, ids, report_type=None): - new_ids = ids - if (data['model'] == 'ir.ui.menu'): - new_ids = 'chart_account_id' in data['form'] and [data['form']['chart_account_id']] or [] - objects = self.pool.get('account.account').browse(self.cr, self.uid, new_ids) - return super(report_pl_account_horizontal, self).set_context(objects, data, new_ids, report_type=report_type) - - - def final_result(self): - return self.res_pl - - def sum_dr(self): - if self.res_pl['type'] == _('Net Profit'): - self.result_sum_dr += self.res_pl['balance'] - return self.result_sum_dr - - def sum_cr(self): - if self.res_pl['type'] == _('Net Loss'): - self.result_sum_cr += self.res_pl['balance'] - return self.result_sum_cr - - def get_data(self, data): - cr, uid = self.cr, self.uid - db_pool = pooler.get_pool(self.cr.dbname) - - account_pool = db_pool.get('account.account') - currency_pool = db_pool.get('res.currency') - - types = [ - 'expense', - 'income' - ] - - ctx = self.context.copy() - ctx['fiscalyear'] = data['form'].get('fiscalyear_id', False) - - if data['form']['filter'] == 'filter_period': - ctx['period_from'] = data['form'].get('period_from', False) - ctx['period_to'] = data['form'].get('period_to', False) - elif data['form']['filter'] == 'filter_date': - ctx['date_from'] = data['form'].get('date_from', False) - ctx['date_to'] = data['form'].get('date_to', False) - - cal_list = {} - account_id = data['form'].get('chart_account_id', False) - company_currency = account_pool.browse(self.cr, self.uid, account_id).company_id.currency_id - account_ids = account_pool._get_children_and_consol(cr, uid, account_id, context=ctx) - accounts = account_pool.browse(cr, uid, account_ids, context=ctx) - - for typ in types: - accounts_temp = [] - for account in accounts: - if (account.user_type.report_type) and (account.user_type.report_type == typ): - currency = account.currency_id and account.currency_id or account.company_id.currency_id - if typ == 'expense' and account.type <> 'view' and (account.debit <> account.credit): - self.result_sum_dr += account.debit - account.credit - if typ == 'income' and account.type <> 'view' and (account.debit <> account.credit): - self.result_sum_cr += account.credit - account.debit - if data['form']['display_account'] == 'movement': - if not currency_pool.is_zero(self.cr, self.uid, currency, account.credit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.debit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.balance): - accounts_temp.append(account) - elif data['form']['display_account'] == 'not_zero': - if not currency_pool.is_zero(self.cr, self.uid, currency, account.balance): - accounts_temp.append(account) - else: - accounts_temp.append(account) - if currency_pool.is_zero(self.cr, self.uid, company_currency, (self.result_sum_dr-self.result_sum_cr)): - self.res_pl['type'] = None - self.res_pl['balance'] = 0.0 - elif self.result_sum_dr > self.result_sum_cr: - self.res_pl['type'] = _('Net Loss') - self.res_pl['balance'] = (self.result_sum_dr - self.result_sum_cr) - else: - self.res_pl['type'] = _('Net Profit') - self.res_pl['balance'] = (self.result_sum_cr - self.result_sum_dr) - self.result[typ] = accounts_temp - cal_list[typ] = self.result[typ] - if cal_list: - temp = {} - for i in range(0,max(len(cal_list['expense']),len(cal_list['income']))): - if i < len(cal_list['expense']) and i < len(cal_list['income']): - temp={ - 'code': cal_list['expense'][i].code, - 'name': cal_list['expense'][i].name, - 'level': cal_list['expense'][i].level, - 'balance': cal_list['expense'][i].balance != 0 and \ - cal_list['expense'][i].balance * cal_list['expense'][i].user_type.sign or \ - cal_list['expense'][i].balance, - 'code1': cal_list['income'][i].code, - 'name1': cal_list['income'][i].name, - 'level1': cal_list['income'][i].level, - 'balance1': cal_list['income'][i].balance != 0 and \ - cal_list['income'][i].balance * cal_list['income'][i].user_type.sign or \ - cal_list['income'][i].balance, - } - self.result_temp.append(temp) - else: - if i < len(cal_list['income']): - temp={ - 'code': '', - 'name': '', - 'level': False, - 'balance':False, - 'code1': cal_list['income'][i].code, - 'name1': cal_list['income'][i].name, - 'level1': cal_list['income'][i].level, - 'balance1': cal_list['income'][i].balance != 0 and \ - cal_list['income'][i].balance * cal_list['income'][i].user_type.sign \ - or cal_list['income'][i].balance, - } - self.result_temp.append(temp) - if i < len(cal_list['expense']): - temp={ - 'code': cal_list['expense'][i].code, - 'name': cal_list['expense'][i].name, - 'level': cal_list['expense'][i].level, - 'balance': cal_list['expense'][i].balance != 0 and \ - cal_list['expense'][i].balance * cal_list['expense'][i].user_type.sign \ - or cal_list['expense'][i].balance, - 'code1': '', - 'name1': '', - 'level1': False, - 'balance1':False, - } - self.result_temp.append(temp) - return None - - def get_lines(self): - return self.result_temp - - def get_lines_another(self, group): - return self.result.get(group, []) - -report_sxw.report_sxw('report.pl.account.horizontal', 'account.account', - 'addons/account/report/account_profit_horizontal.rml',parser=report_pl_account_horizontal, header='internal landscape') - -report_sxw.report_sxw('report.pl.account', 'account.account', - 'addons/account/report/account_profit_loss.rml',parser=report_pl_account_horizontal, header='internal') - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/report/account_profit_loss.rml b/addons/account/report/account_profit_loss.rml deleted file mode 100644 index 28fe167aef5..00000000000 --- a/addons/account/report/account_profit_loss.rml +++ /dev/null @@ -1,314 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Profit And Loss - - - - - [[ get_data(data) or removeParentNode('para')]] - - - - - - Chart of Accounts - Fiscal Year - Filter By [[ data['form']['filter']!='filter_no' and get_filter(data) ]] - Display Account - Target Moves - - - [[ get_account(data) or removeParentNode('para') ]] - [[ get_fiscalyear(data) or '' ]] - [[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]] - [[ data['form']['filter']=='filter_date' or removeParentNode('blockTable') ]] - - Start Date - End Date - - - [[ formatLang(get_start_date(data),date=True) ]] - [[ formatLang(get_end_date(data),date=True) ]] - - - [[ data['form']['filter']=='filter_period' or removeParentNode('blockTable') ]] - - Start Period - End Period - - - [[ get_start_period(data) or removeParentNode('para') ]] - [[ get_end_period(data) or removeParentNode('para') ]] - - - - [[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']] - [[ get_target_move(data) ]] - - - - - - Expenses - - - - Code - - - Account - - - Balance - - - - [[ repeatIn(get_lines_another('expense'),'a' ) ]] - [[ setTag('tr','tr',{'style': 'Table'+str(min(3,a.level))}) ]] - [[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_code'}) ]][[ a.code ]] - [[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.level))+'_name'}) ]][[ a.name ]] - [[ (a.level <>2) or removeParentNode('td') ]][[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_balance'}) ]][[ formatLang(a.balance * a.user_type.sign, currency_obj=company.currency_id) ]] - [[ a.level == 2 or removeParentNode('td') ]][[ formatLang(a.balance * a.user_type.sign, currency_obj=company.currency_id) ]] - - - - - - - - - [[ final_result()['type'] == 'Net Profit' and final_result()['type'] or removeParentNode('blockTable') ]] - - - [[ final_result()['balance'] and final_result()['type'] == 'Net Profit' and formatLang(final_result()['balance'], currency_obj=company.currency_id) ]] - - - - - - - Total: - - - [[ formatLang(sum_dr(), currency_obj=company.currency_id) ]] - - - - - - - - Incomes - - - - Code - - - Account - - - Balance - - - - [[ repeatIn(get_lines_another('income'),'a' ) ]] - [[ setTag('tr','tr',{'style': 'Table'+str(min(3,a.level))}) ]] - [[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_code'}) ]][[ a.code ]] - [[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.level))+'_name'}) ]][[ a.name ]] - [[ (a.level <>2) or removeParentNode('td') ]][[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_balance'}) ]][[ formatLang(a.balance * a.user_type.sign, currency_obj=company.currency_id) ]] - [[ a.level == 2 or removeParentNode('td') ]][[ formatLang(a.balance * a.user_type.sign, currency_obj=company.currency_id) ]] - - - - - - - - - [[ final_result()['type'] == 'Net Loss' and final_result()['type'] or removeParentNode('blockTable') ]] - - - [[ final_result()['balance'] and final_result()['type'] == 'Net Loss' and formatLang(final_result()['balance'], currency_obj=company.currency_id) ]] - - - - - - - Total: - - - [[ formatLang(sum_cr(), currency_obj=company.currency_id) ]] - - - - - - - - - - - diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml index c928ff3c8fe..64498127dc5 100644 --- a/addons/account/security/account_security.xml +++ b/addons/account/security/account_security.xml @@ -2,14 +2,17 @@ - Accounting / Invoicing & Payments + Invoicing & Payments + - Accounting / Accountant + Accountant + - Accounting / Manager + Manager + diff --git a/addons/account/test/account_report.yml b/addons/account/test/account_report.yml index 40ba7ea7127..c2797f274e7 100644 --- a/addons/account/test/account_report.yml +++ b/addons/account/test/account_report.yml @@ -37,24 +37,15 @@ data_dict = {'chart_account_id':ref('account.chart0')} from tools import test_reports test_reports.try_report_action(cr, uid, 'action_account_aged_balance_view',wiz_data=data_dict, context=ctx, our_module='account') -- - Print the Account Balance Sheet in Horizontal mode -- - !python {model: account.account}: | - ctx={} - ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]}) - data_dict = {'chart_account_id':ref('account.chart0'),'display_type': True} - from tools import test_reports - test_reports.try_report_action(cr, uid, 'action_account_bs_report',wiz_data=data_dict, context=ctx, our_module='account') - Print the Account Balance Sheet in Normal mode - !python {model: account.account}: | ctx={} ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]}) - data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False} + data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False, 'account_report_id': ref('account_financial_report_balancesheet0')} from tools import test_reports - test_reports.try_report_action(cr, uid, 'action_account_bs_report',wiz_data=data_dict, context=ctx, our_module='account') + test_reports.try_report_action(cr, uid, 'action_account_report',wiz_data=data_dict, context=ctx, our_module='account') - Print the Account Balance Report in Normal mode through the wizard - From Account Chart - @@ -147,18 +138,9 @@ !python {model: account.account}: | ctx={} ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]}) - data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False,'target_move': 'all'} + data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False,'target_move': 'all', 'account_report_id': ref('account_financial_report_balancesheet0')} from tools import test_reports - test_reports.try_report_action(cr, uid, 'action_account_pl_report',wiz_data=data_dict, context=ctx, our_module='account') -- - Print the Profit-Loss Report in Horizontal Mode -- - !python {model: account.account}: | - ctx={} - ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]}) - data_dict = {'chart_account_id':ref('account.chart0'),'display_type': True,'target_move': 'all'} - from tools import test_reports - test_reports.try_report_action(cr, uid, 'action_account_pl_report',wiz_data=data_dict, context=ctx, our_module='account') + test_reports.try_report_action(cr, uid, 'action_account_report',wiz_data=data_dict, context=ctx, our_module='account') - Print the Analytic Balance Report through the wizard - diff --git a/addons/account/wizard/__init__.py b/addons/account/wizard/__init__.py index d82eff62142..a78cf12050b 100644 --- a/addons/account/wizard/__init__.py +++ b/addons/account/wizard/__init__.py @@ -64,8 +64,6 @@ import account_report_account_balance import account_change_currency -import account_report_balance_sheet -import account_report_profit_loss # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/wizard/account_financial_report.py b/addons/account/wizard/account_financial_report.py index de9cae3a00c..92c623a9524 100644 --- a/addons/account/wizard/account_financial_report.py +++ b/addons/account/wizard/account_financial_report.py @@ -38,9 +38,19 @@ class accounting_report(osv.osv_memory): 'date_to_cmp': fields.date("End Date"), } + def _get_account_report(self, cr, uid, context=None): + menu_obj = self.pool.get('ir.ui.menu') + report_obj = self.pool.get('account.financial.report') + report_ids = [] + if context.get('active_id'): + menu = menu_obj.browse(cr, uid, context.get('active_id')).name + report_ids = report_obj.search(cr, uid, [('name','ilike',menu)]) + return report_ids and report_ids[0] or False + _defaults = { 'filter_cmp': 'filter_no', 'target_move': 'posted', + 'account_report_id': _get_account_report, } def _build_comparison_context(self, cr, uid, ids, data, context=None): diff --git a/addons/account/wizard/account_financial_report_view.xml b/addons/account/wizard/account_financial_report_view.xml index 1472da4ba87..4be6fb5e95c 100644 --- a/addons/account/wizard/account_financial_report_view.xml +++ b/addons/account/wizard/account_financial_report_view.xml @@ -40,6 +40,24 @@ new + + + + + + ). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from osv import osv, fields -from tools.translate import _ - -class account_bs_report(osv.osv_memory): - """ - This wizard will provide the account balance sheet report by periods, between any two dates. - """ - _name = 'account.bs.report' - _inherit = "account.common.account.report" - _description = 'Account Balance Sheet Report' - - def _get_def_reserve_account(self, cr, uid, context=None): - chart_id = self._get_account(cr, uid, context=context) - res = self.onchange_chart_id(cr, uid, [], chart_id, context=context) - if not res: - return False - return res['value']['reserve_account_id'] - - _columns = { - 'display_type': fields.boolean("Landscape Mode"), - 'reserve_account_id': fields.many2one('account.account', 'Reserve & Profit/Loss Account', - help='This account is used for transferring Profit/Loss (If It is Profit: Amount will be added, Loss : Amount will be deducted.), as calculated in Profit & Loss Report', - domain = [('type','=','other')]), - 'journal_ids': fields.many2many('account.journal', 'account_bs_report_journal_rel', 'account_id', 'journal_id', 'Journals', required=True), - } - - _defaults={ - 'display_type': False, - 'journal_ids': [], - 'reserve_account_id': _get_def_reserve_account, - } - - def onchange_chart_id(self, cr, uid, ids, chart_id, context=None): - if not chart_id: - return {} - account = self.pool.get('account.account').browse(cr, uid, chart_id , context=context) - if not account.company_id.property_reserve_and_surplus_account: - return {'value': {'reserve_account_id': False}} - return {'value': {'reserve_account_id': account.company_id.property_reserve_and_surplus_account.id}} - - - def _print_report(self, cr, uid, ids, data, context=None): - if context is None: - context = {} - data['form'].update(self.read(cr, uid, ids, ['display_type','reserve_account_id'])[0]) - if not data['form']['reserve_account_id']: - raise osv.except_osv(_('Warning'),_('Please define the Reserve and Profit/Loss account for current user company !')) - data = self.pre_print_report(cr, uid, ids, data, context=context) - if data['form']['display_type']: - return { - 'type': 'ir.actions.report.xml', - 'report_name': 'account.balancesheet.horizontal', - 'datas': data, - } - else: - return { - 'type': 'ir.actions.report.xml', - 'report_name': 'account.balancesheet', - 'datas': data, - } - -account_bs_report() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/wizard/account_report_balance_sheet_view.xml b/addons/account/wizard/account_report_balance_sheet_view.xml deleted file mode 100644 index faac52388a1..00000000000 --- a/addons/account/wizard/account_report_balance_sheet_view.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - Account Balance Sheet - account.bs.report - form - - - - - - - - - - - - - - - - - - - - - - - - Balance Sheet - account.bs.report - ir.actions.act_window - form - form - - new - - - - - - diff --git a/addons/account/wizard/account_report_profit_loss.py b/addons/account/wizard/account_report_profit_loss.py deleted file mode 100644 index f4c2897bfe0..00000000000 --- a/addons/account/wizard/account_report_profit_loss.py +++ /dev/null @@ -1,62 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from osv import osv, fields - -class account_pl_report(osv.osv_memory): - """ - This wizard will provide the account profit and loss report by periods, between any two dates. - """ - _inherit = "account.common.account.report" - _name = "account.pl.report" - _description = "Account Profit And Loss Report" - - _columns = { - 'display_type': fields.boolean("Landscape Mode"), - 'journal_ids': fields.many2many('account.journal', 'account_pl_report_journal_rel', 'account_id', 'journal_id', 'Journals', required=True), - } - - _defaults = { - 'display_type': False, - 'journal_ids': [], - } - - def _print_report(self, cr, uid, ids, data, context=None): - if context is None: - context = {} - data = self.pre_print_report(cr, uid, ids, data, context=context) - data['form'].update(self.read(cr, uid, ids, ['display_type'])[0]) - if data['form']['display_type']: - return { - 'type': 'ir.actions.report.xml', - 'report_name': 'pl.account.horizontal', - 'datas': data, - } - else: - return { - 'type': 'ir.actions.report.xml', - 'report_name': 'pl.account', - 'datas': data, - } - -account_pl_report() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/wizard/account_report_profit_loss_view.xml b/addons/account/wizard/account_report_profit_loss_view.xml deleted file mode 100644 index 75b6766ff87..00000000000 --- a/addons/account/wizard/account_report_profit_loss_view.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - Profit and Loss - account.pl.report - form - - - - - - - - - - - - - - - - - - - Account Profit And Loss - account.pl.report - ir.actions.act_window - form - form - - new - - - - - - - - diff --git a/addons/account_accountant/static/src/img/icon.png b/addons/account_accountant/static/src/img/icon.png index 611053684cc..1e25fc1efaf 100644 Binary files a/addons/account_accountant/static/src/img/icon.png and b/addons/account_accountant/static/src/img/icon.png differ diff --git a/addons/account_asset/static/src/img/icon.png b/addons/account_asset/static/src/img/icon.png new file mode 100644 index 00000000000..c7ffdceadaa Binary files /dev/null and b/addons/account_asset/static/src/img/icon.png differ diff --git a/addons/account_followup/report/account_followup_report.py b/addons/account_followup/report/account_followup_report.py index c2a842cfd4c..420ca92b289 100644 --- a/addons/account_followup/report/account_followup_report.py +++ b/addons/account_followup/report/account_followup_report.py @@ -68,7 +68,7 @@ class account_followup_stat(osv.osv): cr.execute(""" create or replace view account_followup_stat as ( SELECT - l.id as id, + l.partner_id AS id, l.partner_id AS partner_id, min(l.date) AS date_move, max(l.date) AS date_move_last, diff --git a/addons/account_followup/wizard/account_followup_print.py b/addons/account_followup/wizard/account_followup_print.py index ea1083f26ff..014fa2bb326 100644 --- a/addons/account_followup/wizard/account_followup_print.py +++ b/addons/account_followup/wizard/account_followup_print.py @@ -93,7 +93,7 @@ class account_followup_stat_by_partner(osv.osv): cr.execute(""" create or replace view account_followup_stat_by_partner as ( SELECT - l.partner_id * 10000 + l.company_id as id, + l.partner_id AS id, l.partner_id AS partner_id, min(l.date) AS date_move, max(l.date) AS date_move_last, diff --git a/addons/account_payment/i18n/sr@latin.po b/addons/account_payment/i18n/sr@latin.po index 6efe331146d..13925099baf 100644 --- a/addons/account_payment/i18n/sr@latin.po +++ b/addons/account_payment/i18n/sr@latin.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2010-12-23 15:17+0000\n" -"Last-Translator: Olivier Dony (OpenERP) \n" +"PO-Revision-Date: 2011-12-13 15:21+0000\n" +"Last-Translator: Milan Milosevic \n" "Language-Team: Serbian latin \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-05 05:22+0000\n" -"X-Generator: Launchpad (build 14231)\n" +"X-Launchpad-Export-Date: 2011-12-14 04:45+0000\n" +"X-Generator: Launchpad (build 14487)\n" #. module: account_payment #: field:payment.order,date_scheduled:0 msgid "Scheduled date if fixed" -msgstr "Zakazani datum ako je fiskno" +msgstr "Zakazani datum ako je fiksiran" #. module: account_payment #: field:payment.line,currency:0 @@ -30,7 +30,7 @@ msgstr "Valuta partnera" #. module: account_payment #: view:payment.order:0 msgid "Set to draft" -msgstr "Postavi za obradu" +msgstr "Postavi kao pripremu" #. module: account_payment #: help:payment.order,mode:0 @@ -41,7 +41,7 @@ msgstr "Odaberite način plaćanja koji će biti primenjen." #: view:payment.mode:0 #: view:payment.order:0 msgid "Group By..." -msgstr "Grupirano po" +msgstr "Grupiši po..." #. module: account_payment #: model:ir.module.module,description:account_payment.module_meta_information @@ -52,6 +52,11 @@ msgid "" "* a basic mechanism to easily plug various automated payment.\n" " " msgstr "" +"\n" +"Ovaj modul omogućava:\n" +"*efikasniji način za upravljanje isplaćivanja faktura\n" +"*osnovni mehanizam za lako obrađivanje automatizovanih načina isplate\n" +" " #. module: account_payment #: field:payment.order,line_ids:0 @@ -98,7 +103,7 @@ msgstr "Zeljeni Datum" #. module: account_payment #: selection:payment.line,state:0 msgid "Free" -msgstr "slobodno" +msgstr "Slobodno" #. module: account_payment #: field:payment.order.create,entries:0 @@ -108,18 +113,18 @@ msgstr "Stavke" #. module: account_payment #: report:payment.order:0 msgid "Used Account" -msgstr "Koristeni Nalog" +msgstr "Korišteni nalog" #. module: account_payment #: field:payment.line,ml_maturity_date:0 #: field:payment.order.create,duedate:0 msgid "Due Date" -msgstr "Datum dospeća" +msgstr "Krajnji rok" #. module: account_payment #: constraint:account.move.line:0 msgid "You can not create move line on closed account." -msgstr "" +msgstr "Ne možete da napravite poteznu liniju na zatvorenim računima." #. module: account_payment #: view:account.move.line:0 @@ -135,7 +140,7 @@ msgstr "_Dodaj u nalog za plaćanje" #: model:ir.actions.act_window,name:account_payment.action_account_payment_populate_statement #: model:ir.actions.act_window,name:account_payment.action_account_populate_statement_confirm msgid "Payment Populate statement" -msgstr "Ispuna sadrzaja fakture" +msgstr "Ispunjavanje sadržaja fakture" #. module: account_payment #: report:payment.order:0 @@ -146,12 +151,12 @@ msgstr "Iznos" #. module: account_payment #: sql_constraint:account.move.line:0 msgid "Wrong credit or debit value in accounting entry !" -msgstr "" +msgstr "Pogrešna vrednost kredita ili debita u ulazu računa !" #. module: account_payment #: view:payment.order:0 msgid "Total in Company Currency" -msgstr "Ukupno u valuti preduzeca" +msgstr "Ukupno u valuti preduzeća" #. module: account_payment #: selection:payment.order,state:0 @@ -172,7 +177,7 @@ msgstr "Referenca" #. module: account_payment #: sql_constraint:payment.line:0 msgid "The payment line name must be unique!" -msgstr "" +msgstr "Red plaćanja mora biti jedinstven!" #. module: account_payment #: model:ir.actions.act_window,name:account_payment.action_payment_order_tree @@ -212,7 +217,7 @@ msgstr "Efektivni datum fakture" #. module: account_payment #: report:payment.order:0 msgid "Execution Type" -msgstr "Tip Izuzetka" +msgstr "Tip Izvršavanja" #. module: account_payment #: selection:payment.line,state:0 @@ -229,7 +234,7 @@ msgstr "Stanje" #: view:payment.line:0 #: view:payment.order:0 msgid "Transaction Information" -msgstr "Informacije Transakcije" +msgstr "Informacije o transakciji" #. module: account_payment #: model:ir.actions.act_window,name:account_payment.action_payment_mode_form @@ -257,8 +262,8 @@ msgid "" "by you.'Directly' stands for the direct execution.'Due date' stands for the " "scheduled date of execution." msgstr "" -"Odaberite opciju za nalog za plaćanje: \"Fiksno\" znači datum naveden od " -"vaše strane. \"Direktno\" znači direktno izvršenje. \"Datum odgode\" znači " +"Odaberite opciju za nalog za plaćanje: \"Fiksirano\" znači datum naveden s " +"Vaše strane. \"Direktno\" znači direktno izvršenje. \"Datum odgode\" znači " "zakazan datum izvršenja." #. module: account_payment @@ -280,12 +285,12 @@ msgstr "Datum izvršenja" #. module: account_payment #: help:payment.mode,journal:0 msgid "Bank or Cash Journal for the Payment Mode" -msgstr "" +msgstr "Dnevnik banke ili keša za način plaćanja" #. module: account_payment #: selection:payment.order,date_prefered:0 msgid "Fixed date" -msgstr "Fiksni datum" +msgstr "Fiksirani datum" #. module: account_payment #: field:payment.line,info_partner:0 @@ -301,18 +306,19 @@ msgstr "Ciljni račun" #. module: account_payment #: view:payment.order:0 msgid "Search Payment Orders" -msgstr "Pretrazi naloge za placanje" +msgstr "Pretraži naloge za plaćanje" #. module: account_payment #: constraint:account.move.line:0 msgid "" "You can not create move line on receivable/payable account without partner" msgstr "" +"Ne možete napraviti poteznu liniju na primaćem/platežnom računu bez partnera" #. module: account_payment #: field:payment.line,create_date:0 msgid "Created" -msgstr "Kreirano" +msgstr "Napravljeno" #. module: account_payment #: view:payment.order:0 @@ -327,17 +333,17 @@ msgstr "Ukupni iznos valute" #. module: account_payment #: view:payment.order:0 msgid "Make Payments" -msgstr "Napravite plaćanja" +msgstr "Izvršite plaćanja" #. module: account_payment #: field:payment.line,state:0 msgid "Communication Type" -msgstr "Tip Komunikacije" +msgstr "Tip komunikacije" #. module: account_payment #: model:ir.module.module,shortdesc:account_payment.module_meta_information msgid "Payment Management" -msgstr "Menadzment Plaćanja" +msgstr "Upravljanje plaćanjem" #. module: account_payment #: field:payment.line,bank_statement_line_id:0 @@ -347,7 +353,7 @@ msgstr "Red Izvoda iz Banke" #. module: account_payment #: selection:payment.order,date_prefered:0 msgid "Due date" -msgstr "Krajnji Rok" +msgstr "Krajnji rok" #. module: account_payment #: field:account.invoice,amount_to_pay:0 @@ -391,7 +397,7 @@ msgstr "Način plaćanja" #. module: account_payment #: report:payment.order:0 msgid "Value Date" -msgstr "Datum" +msgstr "Datum valute" #. module: account_payment #: report:payment.order:0 @@ -412,23 +418,23 @@ msgstr "Priprema" #. module: account_payment #: help:payment.line,communication2:0 msgid "The successor message of Communication." -msgstr "Nasljedna poruka komunikacije." +msgstr "Naredna poruka komunikacije." #. module: account_payment #: code:addons/account_payment/account_move_line.py:110 #, python-format msgid "No partner defined on entry line" -msgstr "Partner nije definisan" +msgstr "Partner nije definisan na redu stavke" #. module: account_payment #: help:payment.line,info_partner:0 msgid "Address of the Ordering Customer." -msgstr "Adresa kupca naručitelja." +msgstr "Adresa naručitelja." #. module: account_payment #: view:account.payment.populate.statement:0 msgid "Populate Statement:" -msgstr "Popuni sadrzaj:" +msgstr "Popuni sadržaj:" #. module: account_payment #: view:account.move.line:0 @@ -438,7 +444,7 @@ msgstr "Ukupno potražuje" #. module: account_payment #: help:payment.order,date_scheduled:0 msgid "Select a date if you have chosen Preferred Date to be fixed." -msgstr "Odaberite datum ako ste odabrali fiksni željeni datum" +msgstr "Odaberite datum ako ste odabrali fiksirani željeni datum" #. module: account_payment #: field:payment.order,user_id:0 @@ -454,12 +460,12 @@ msgstr "Redovi plaćanja" #. module: account_payment #: model:ir.model,name:account_payment.model_account_move_line msgid "Journal Items" -msgstr "Sadrzaj Dnevnika" +msgstr "Stavke dnevnika" #. module: account_payment #: constraint:account.move.line:0 msgid "Company must be same for its related account and period." -msgstr "" +msgstr "Preduzeće mora biti isto za sve vezane račune i periode." #. module: account_payment #: help:payment.line,move_line_id:0 @@ -492,12 +498,12 @@ msgstr "Ukupno:" #. module: account_payment #: field:payment.order,date_created:0 msgid "Creation date" -msgstr "Datum kreiranja" +msgstr "Datum pravljenja" #. module: account_payment #: view:account.payment.populate.statement:0 msgid "ADD" -msgstr "Dodaj" +msgstr "DODAJ" #. module: account_payment #: view:account.bank.statement:0 @@ -517,22 +523,22 @@ msgstr "Iznos u valuti preduzeca" #. module: account_payment #: help:payment.line,partner_id:0 msgid "The Ordering Customer" -msgstr "Kupac naručitelj" +msgstr "Naručitelj" #. module: account_payment #: model:ir.model,name:account_payment.model_account_payment_make_payment msgid "Account make payment" -msgstr "Izvrsi placanje naloga" +msgstr "Izvrši plaćanje naloga" #. module: account_payment #: report:payment.order:0 msgid "Invoice Ref" -msgstr "Referenca fakture" +msgstr "Ref. fakture" #. module: account_payment #: field:payment.line,name:0 msgid "Your Reference" -msgstr "Vaše veze" +msgstr "Vaš poziv na broj" #. module: account_payment #: field:payment.order,mode:0 @@ -578,7 +584,7 @@ msgstr "Otkaži" #: view:payment.line:0 #: view:payment.order:0 msgid "Information" -msgstr "Informacija" +msgstr "Informacije" #. module: account_payment #: model:ir.actions.act_window,help:account_payment.action_payment_order_tree @@ -588,6 +594,10 @@ msgid "" "that should be done, keep track of all payment orders and mention the " "invoice reference and the partner the payment should be done for." msgstr "" +"Nalog za plaćanje je zahtev za plaćanje od strane Vašeg preduzeća za isplatu " +"faktura nabavke ili kupaca. Ovde možete snimiti sve naloge za plaćanje na " +"čekanju, pratite sve naloge za plaćanje i pomenete poziv na broj za datu " +"fakturu i kom partneru treba izvršiti isplatu." #. module: account_payment #: help:payment.line,amount:0 @@ -612,12 +622,12 @@ msgstr "Komunikacija 2" #. module: account_payment #: field:payment.line,bank_id:0 msgid "Destination Bank account" -msgstr "Destinacioni bankovni račun" +msgstr "Ciljni bankovni račun" #. module: account_payment #: view:account.payment.make.payment:0 msgid "Are you sure you want to make payment?" -msgstr "Jeste li sigurni da zelite da izvrsite isplatu?" +msgstr "Jeste li sigurni da želite da izvršite isplatu?" #. module: account_payment #: view:payment.mode:0 @@ -639,7 +649,7 @@ msgstr "Potvrdi plaćanja" #: field:payment.line,company_currency:0 #: report:payment.order:0 msgid "Company Currency" -msgstr "Valuta preduzeca" +msgstr "Valuta preduzeća" #. module: account_payment #: model:ir.ui.menu,name:account_payment.menu_main_payment @@ -651,7 +661,7 @@ msgstr "Isplata" #. module: account_payment #: report:payment.order:0 msgid "Payment Order / Payment" -msgstr "Isplata Faktura / Placanje" +msgstr "Isplata Faktura / Plaćanje" #. module: account_payment #: field:payment.line,move_line_id:0 @@ -664,13 +674,13 @@ msgid "" "Used as the message between ordering customer and current company. Depicts " "'What do you want to say to the recipient about this order ?'" msgstr "" -"Koristi se kao poruka izmedju narucioca i date kompanije. Objasnjava ' Sta " -"ste to hteli reci kupcu o ovoj narudzbi?'" +"Koristi se kao poruka između naručioca i date kompanije. Prikazuje ' Šta " +"želite reći kupcu o ovoj narudžbini?'" #. module: account_payment #: field:payment.mode,name:0 msgid "Name" -msgstr "Ime" +msgstr "Naziv" #. module: account_payment #: report:payment.order:0 @@ -681,7 +691,7 @@ msgstr "Bankovni račun" #: view:payment.line:0 #: view:payment.order:0 msgid "Entry Information" -msgstr "Unos Informacije" +msgstr "Informacije o unosu" #. module: account_payment #: model:ir.model,name:account_payment.model_payment_order_create @@ -702,7 +712,7 @@ msgstr "Ukupno" #: view:account.payment.make.payment:0 #: model:ir.actions.act_window,name:account_payment.action_account_payment_make_payment msgid "Make Payment" -msgstr "Izvrsi placanje" +msgstr "Izvrši placanje" #. module: account_payment #: field:payment.line,partner_id:0 @@ -713,7 +723,7 @@ msgstr "Partner" #. module: account_payment #: model:ir.actions.act_window,name:account_payment.action_create_payment_order msgid "Populate Payment" -msgstr "Popuni Placanje" +msgstr "Popuni plaćanje" #. module: account_payment #: help:payment.mode,bank_id:0 @@ -723,7 +733,7 @@ msgstr "Bankovni račun za način plaćanja" #. module: account_payment #: constraint:account.move.line:0 msgid "You can not create move line on view account." -msgstr "" +msgstr "Ne možete napraviti poteznu liniju na računu po viđenju" #~ msgid "Invalid model name in the action definition." #~ msgstr "Pogrešno ime modela u definiciji akcije." diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py index 535f76b8d64..2b63157ef30 100644 --- a/addons/account_voucher/account_voucher.py +++ b/addons/account_voucher/account_voucher.py @@ -91,10 +91,10 @@ class account_voucher(osv.osv): return False def _get_payment_rate_currency(self, cr, uid, context=None): - ''' + """ Return the default value for field payment_rate_currency_id: the currency of the journal if there is one, otherwise the currency of the user's company - ''' + """ if context is None: context = {} journal_pool = self.pool.get('account.journal') journal_id = context.get('journal_id', False) @@ -141,20 +141,22 @@ class account_voucher(osv.osv): def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False): mod_obj = self.pool.get('ir.model.data') if context is None: context = {} - if not view_id and context.get('invoice_type', False): - if context.get('invoice_type', False) in ('out_invoice', 'out_refund'): - result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_receipt_form') - else: - result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_payment_form') - result = result and result[1] or False - view_id = result - if not view_id and view_type == 'form' and context.get('line_type', False): - if context.get('line_type', False) == 'customer': - result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_receipt_form') - else: - result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_payment_form') - result = result and result[1] or False - view_id = result + + if view_type == 'form': + if not view_id and context.get('invoice_type'): + if context.get('invoice_type') in ('out_invoice', 'out_refund'): + result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_receipt_form') + else: + result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_payment_form') + result = result and result[1] or False + view_id = result + if not view_id and context.get('line_type'): + if context.get('line_type') == 'customer': + result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_receipt_form') + else: + result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_payment_form') + result = result and result[1] or False + view_id = result res = super(account_voucher, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu) doc = etree.XML(res['arch']) diff --git a/addons/account_voucher/static/src/img/icon.png b/addons/account_voucher/static/src/img/icon.png index afad1331e2e..b66773a109e 100644 Binary files a/addons/account_voucher/static/src/img/icon.png and b/addons/account_voucher/static/src/img/icon.png differ diff --git a/addons/account_voucher/test/case1_usd_usd.yml b/addons/account_voucher/test/case1_usd_usd.yml index 3432d3cf27b..d75c386e259 100644 --- a/addons/account_voucher/test/case1_usd_usd.yml +++ b/addons/account_voucher/test/case1_usd_usd.yml @@ -51,7 +51,7 @@ name: "cash account in usd" code: "Xcash usd" type: 'liquidity' - user_type: "account.account_type_cash_moves" + user_type: "account.data_account_type_cash" - I create a bank journal with USD as currency diff --git a/addons/account_voucher/test/case4_cad_chf.yml b/addons/account_voucher/test/case4_cad_chf.yml index f31a7393a8e..ff8db125682 100644 --- a/addons/account_voucher/test/case4_cad_chf.yml +++ b/addons/account_voucher/test/case4_cad_chf.yml @@ -46,7 +46,7 @@ name: "cash account in chf" code: "Xcash chf" type: 'liquidity' - user_type: "account.account_type_cash_moves" + user_type: "account.data_account_type_cash" - I create a bank journal with CHF as currency diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml index 5cf9b42be0b..01095d2f265 100644 --- a/addons/account_voucher/voucher_payment_receipt_view.xml +++ b/addons/account_voucher/voucher_payment_receipt_view.xml @@ -205,6 +205,7 @@ + @@ -356,6 +357,7 @@ + diff --git a/addons/analytic/security/analytic_security.xml b/addons/analytic/security/analytic_security.xml index 165bb92f6b9..3f8ec1036be 100644 --- a/addons/analytic/security/analytic_security.xml +++ b/addons/analytic/security/analytic_security.xml @@ -16,6 +16,7 @@ - Useability / Analytic Accounting + Analytic Accounting + diff --git a/addons/auction/auction_demo.xml b/addons/auction/auction_demo.xml index e93cc3ea04d..5566719a56d 100644 --- a/addons/auction/auction_demo.xml +++ b/addons/auction/auction_demo.xml @@ -21,7 +21,7 @@ - + @@ -32,13 +32,13 @@ - + Auction Adjudications A7x* - + other @@ -47,7 +47,7 @@ Auction Adjudication Expenses A6x* - + other diff --git a/addons/auction/security/auction_security.xml b/addons/auction/security/auction_security.xml index 3caf93a2430..087151cb6ea 100644 --- a/addons/auction/security/auction_security.xml +++ b/addons/auction/security/auction_security.xml @@ -2,11 +2,19 @@ + + Auction + + 26 + + - Auction / User + User + - Auction / Manager + Manager + diff --git a/addons/base_contact/__openerp__.py b/addons/base_contact/__openerp__.py index 0f78103a187..27d06dc4e22 100644 --- a/addons/base_contact/__openerp__.py +++ b/addons/base_contact/__openerp__.py @@ -45,7 +45,6 @@ Pay attention that this module converts the existing addresses into "addresses + 'depends': ['base','process'], 'init_xml': [], 'update_xml': [ - 'security/base_contact_security.xml', 'security/ir.model.access.csv', 'base_contact_view.xml', 'base_contact_installer_view.xml', diff --git a/addons/base_contact/security/base_contact_security.xml b/addons/base_contact/security/base_contact_security.xml deleted file mode 100644 index 56a995c76a8..00000000000 --- a/addons/base_contact/security/base_contact_security.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - Sales / User - - - - Sales / Manager - - - - diff --git a/addons/crm/security/crm_security.xml b/addons/crm/security/crm_security.xml index 3ee9c9e242f..ed3d86bf9b8 100644 --- a/addons/crm/security/crm_security.xml +++ b/addons/crm/security/crm_security.xml @@ -3,16 +3,19 @@ - Sales / User - Own Leads Only + User - Own Leads Only + - Sales / User - All Leads + User - All Leads + - Sales / Manager + Manager + diff --git a/addons/crm/security/ir.model.access.csv b/addons/crm/security/ir.model.access.csv index c893ed6aad7..a3725b5a070 100644 --- a/addons/crm/security/ir.model.access.csv +++ b/addons/crm/security/ir.model.access.csv @@ -14,9 +14,9 @@ access_crm_case_categ,crm.case.categ,model_crm_case_categ,base.group_user,1,0,0, access_crm_meeting,crm.meeting,model_crm_meeting,base.group_sale_salesman,1,1,1,0 access_crm_meeting_all,crm.meeting_allll,model_crm_meeting,base.group_user,1,0,0,0 access_crm_lead,crm.lead,model_crm_lead,base.group_sale_salesman,1,1,1,0 -access_crm_lead.all,crm.lead.all,model_crm_lead,base.group_user,1,0,0,0 +access_crm_lead_all,crm.lead.all,model_crm_lead,base.group_user,1,0,0,0 access_crm_phonecall,crm.phonecall,model_crm_phonecall,base.group_sale_salesman,1,1,1,0 -access_crm_phonecall.all,crm.phonecall.all,model_crm_phonecall,base.group_user,1,0,0,0 +access_crm_phonecall_all,crm.phonecall.all,model_crm_phonecall,base.group_user,1,0,0,0 access_crm_case_section_user,crm.case.section.user,model_crm_case_section,base.group_sale_salesman,1,1,1,0 access_crm_case_section_manager,crm.case.section.manager,model_crm_case_section,base.group_sale_manager,1,1,1,1 access_crm_case_stage,crm.case.stage,model_crm_case_stage,base.group_user,1,0,0,0 diff --git a/addons/crm/static/src/img/icon.png b/addons/crm/static/src/img/icon.png new file mode 100644 index 00000000000..b577375d54b Binary files /dev/null and b/addons/crm/static/src/img/icon.png differ diff --git a/addons/crm_profiling/__openerp__.py b/addons/crm_profiling/__openerp__.py index 19f5615ee78..fdc85ba3d4d 100644 --- a/addons/crm_profiling/__openerp__.py +++ b/addons/crm_profiling/__openerp__.py @@ -39,7 +39,7 @@ It also has been merged with the earlier CRM & SRM segmentation tool because the 'website': 'http://www.openerp.com', 'depends': ['base', 'crm'], 'init_xml': [], - 'update_xml': ['security/ir.model.access.csv', 'crm_profiling_view.xml'], + 'update_xml': ['security/ir.model.access.csv', 'wizard/open_questionnaire_view.xml', 'crm_profiling_view.xml'], 'demo_xml': ['crm_profiling_demo.xml'], 'test': [ #'test/process/profiling.yml', #TODO:It's not debuging because problem to write data for open.questionnaire from partner section. diff --git a/addons/crm_profiling/crm_profiling.py b/addons/crm_profiling/crm_profiling.py index 59137966da0..587ddbe0b52 100644 --- a/addons/crm_profiling/crm_profiling.py +++ b/addons/crm_profiling/crm_profiling.py @@ -159,30 +159,6 @@ class questionnaire(osv.osv): _name="crm_profiling.questionnaire" _description= "Questionnaire" - def build_form(self, cr, uid, data, context=None): - """ - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param data: Get Data - @param context: A standard dictionary for contextual values """ - - query = """ - select name, id - from crm_profiling_question - where id in ( select question from profile_questionnaire_quest_rel where questionnaire = %s)""" - res = cr.execute(query, (data['form']['questionnaire_name'],)) - result = cr.fetchall() - quest_fields={} - quest_form=''' -
''' % _('Questionnaire') - for name, oid in result: - quest_form = quest_form + '' % (oid,) - quest_fields['quest_form%d' % (oid,)] = {'string': name, 'type': 'many2one', \ - 'relation': 'crm_profiling.answer', 'domain': [('question_id','=',oid)] } - quest_form = quest_form + '''''' - return quest_form, quest_fields - _columns = { 'name': fields.char("Questionnaire",size=128, required=True), 'description':fields.text("Description", required=True), @@ -210,25 +186,19 @@ class partner(osv.osv): "partner","answer","Answers"), } - def _questionnaire_compute(self, cr, uid, data, context=None): + def _questionnaire_compute(self, cr, uid, answers, context=None): """ @param self: The object pointer @param cr: the current row, from the database cursor, @param uid: the current user’s ID for security checks, @param data: Get Data @param context: A standard dictionary for contextual values """ - - temp = [] - for x in data['form']: - if x.startswith("quest_form") and data['form'][x] != 0 : - temp.append(data['form'][x]) - + partner_id = context.get('active_id') query = "select answer from partner_question_rel where partner=%s" - cr.execute(query, (data['id'],)) + cr.execute(query, (partner_id,)) for x in cr.fetchall(): - temp.append(x[0]) - - self.write(cr, uid, [data['id']], {'answers_ids':[[6, 0, temp]]}, context=context) + answers.append(x[0]) + self.write(cr, uid, [partner_id], {'answers_ids': [[6, 0, answers]]}, context=context) return {} diff --git a/addons/crm_profiling/crm_profiling_view.xml b/addons/crm_profiling/crm_profiling_view.xml index 258de2e4e2d..a54d3d4b0a9 100644 --- a/addons/crm_profiling/crm_profiling_view.xml +++ b/addons/crm_profiling/crm_profiling_view.xml @@ -2,13 +2,6 @@ - - Questionnaires crm_profiling.questionnaire @@ -140,7 +133,7 @@ + +
@@ -49,15 +50,15 @@
  • Subtotal: - 0 € + 0
  • Tax: - 0 € + 0
  • Total: - 0 € + 0
@@ -102,11 +103,11 @@ - + - +
Paid: €
Change: €
@@ -122,6 +123,16 @@ + + + + pending orders + + + + +
There are pending operations that could not be saved into the database, are you sure you want to exit?
+