account: fix multi company in aged trial balance
bzr revid: ced-3e84eef5a9e33743baf35770a8dadd5447feb376
This commit is contained in:
parent
6c238ec856
commit
d3e7cc769a
|
@ -38,6 +38,8 @@ class aged_trial_report(report_sxw.rml_parse):
|
|||
'get_total': self._get_total,
|
||||
'get_before': self._get_before,
|
||||
'get_for_period': self._get_for_period,
|
||||
'get_company': self._get_company,
|
||||
'get_currency': self._get_currency,
|
||||
})
|
||||
|
||||
def _add_header(self, node):
|
||||
|
@ -50,25 +52,37 @@ class aged_trial_report(report_sxw.rml_parse):
|
|||
WHERE (line.account_id=account_account.id) AND (line.reconcile_id IS NULL) \
|
||||
AND (line.partner_id=res_partner.id) AND (line.state<>'draft') \
|
||||
AND (line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d))\
|
||||
ORDER BY res_partner.name" % (form['fiscalyear'],))
|
||||
AND (account_account.company_id = %d) \
|
||||
ORDER BY res_partner.name", (form['fiscalyear'], form['company_id']))
|
||||
partners = self.cr.dictfetchall()
|
||||
for partner in partners:
|
||||
values = {}
|
||||
self.cr.execute("SELECT SUM(debit-credit) FROM account_move_line AS line, account_account \
|
||||
WHERE (line.account_id=account_account.id) AND (account_account.type IN ('payable','receivable')) \
|
||||
AND (date<'%s') AND (partner_id=%d) AND (reconcile_id IS NULL) AND (line.state<>'draft') AND (line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d))" % (form['0']['start'], partner['id'], form['fiscalyear']))
|
||||
self.cr.execute("SELECT SUM(debit-credit) \
|
||||
FROM account_move_line AS line, account_account \
|
||||
WHERE (line.account_id=account_account.id) AND (account_account.type IN ('payable','receivable')) \
|
||||
AND (date<%s) AND (partner_id=%d) \
|
||||
AND (reconcile_id IS NULL) AND (line.state<>'draft') \
|
||||
AND (line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d)) \
|
||||
AND (account_account.company_id = %d)", (form['0']['start'], partner['id'], form['fiscalyear'], form['company_id']))
|
||||
before = self.cr.fetchone()
|
||||
values['before'] = before and before[0] or ""
|
||||
for i in range(5):
|
||||
self.cr.execute("SELECT SUM(debit-credit) FROM account_move_line AS line, account_account \
|
||||
WHERE (line.account_id=account_account.id) AND (account_account.type IN ('payable','receivable')) \
|
||||
AND (date>='%s') AND (date<='%s') AND (partner_id=%d) AND (reconcile_id IS NULL) AND line.state<>'draft' AND (line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d))" % (form[str(i)]['start'], form[str(i)]['stop'], partner['id'], form['fiscalyear']))
|
||||
self.cr.execute("SELECT SUM(debit-credit) \
|
||||
FROM account_move_line AS line, account_account \
|
||||
WHERE (line.account_id=account_account.id) AND (account_account.type IN ('payable','receivable')) \
|
||||
AND (date >= %s) AND (date <= %s) \
|
||||
AND (partner_id=%d) AND (reconcile_id IS NULL) \
|
||||
AND line.state<>'draft' AND (line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d)) \
|
||||
AND (account_account.company_id = %d)", (form[str(i)]['start'], form[str(i)]['stop'], partner['id'], form['fiscalyear'], form['company_id']))
|
||||
during = self.cr.fetchone()
|
||||
values[str(i)] = during and during[0] or ""
|
||||
|
||||
self.cr.execute("SELECT SUM(debit-credit) FROM account_move_line AS line, account_account \
|
||||
WHERE (line.account_id=account_account.id) AND (account_account.type IN ('payable','receivable')) \
|
||||
AND (partner_id=%d) AND (reconcile_id IS NULL) AND (line.state<>'draft') AND (line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d))" % (partner['id'], form['fiscalyear']))
|
||||
self.cr.execute("SELECT SUM(debit-credit) \
|
||||
FROM account_move_line AS line, account_account \
|
||||
WHERE (line.account_id=account_account.id) AND (account_account.type IN ('payable','receivable')) \
|
||||
AND (partner_id = %d) AND (reconcile_id IS NULL) \
|
||||
AND (line.state <> 'draft') AND (line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d)) \
|
||||
AND (account_account.company_id = %d)", (partner['id'], form['fiscalyear'], form['company_id']))
|
||||
total = self.cr.fetchone()
|
||||
values['total'] = total and total[0] or 0.0
|
||||
values['name'] = partner['name']
|
||||
|
@ -86,25 +100,44 @@ class aged_trial_report(report_sxw.rml_parse):
|
|||
totals[str(i)] += float(r[str(i)] or 0.0)
|
||||
return res
|
||||
|
||||
def _get_total(self, fiscalyear):
|
||||
self.cr.execute("SELECT SUM(debit-credit) FROM account_move_line AS line, account_account \
|
||||
WHERE (line.account_id=account_account.id) AND (account_account.type IN ('payable','receivable')) AND reconcile_id IS NULL AND (line.state<>'draft') and partner_id is not null AND (line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d))" % (fiscalyear,))
|
||||
def _get_total(self, fiscalyear, company_id):
|
||||
self.cr.execute("SELECT SUM(debit-credit) \
|
||||
FROM account_move_line AS line, account_account \
|
||||
WHERE (line.account_id=account_account.id) AND (account_account.type IN ('payable','receivable')) \
|
||||
AND reconcile_id IS NULL AND (line.state<>'draft') \
|
||||
AND partner_id is not null AND (line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d)) \
|
||||
AND (account_account.company_id = %d)", (fiscalyear, company_id))
|
||||
total = self.cr.fetchone()
|
||||
return total and total[0] or 0.0
|
||||
|
||||
def _get_before(self, date, fiscalyear):
|
||||
self.cr.execute("SELECT SUM(debit-credit) FROM account_move_line AS line, account_account \
|
||||
WHERE (line.account_id=account_account.id) AND (account_account.type IN ('payable','receivable')) AND reconcile_id IS NULL AND (date<'%s') and (line.state<>'draft') and partner_id is not null AND (line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d))" % (date, fiscalyear))
|
||||
def _get_before(self, date, fiscalyear, company_id):
|
||||
self.cr.execute("SELECT SUM(debit-credit) \
|
||||
FROM account_move_line AS line, account_account \
|
||||
WHERE (line.account_id=account_account.id) AND (account_account.type IN ('payable','receivable')) \
|
||||
AND reconcile_id IS NULL AND (date < %s) \
|
||||
AND (line.state <> 'draft') AND partner_id is not null \
|
||||
AND (line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id = %d)) \
|
||||
AND (account_account.company_id = %d)", (date, fiscalyear, company_id))
|
||||
before = self.cr.fetchone()
|
||||
return before and before[0] or 0.0
|
||||
|
||||
def _get_for_period(self, period, fiscalyear):
|
||||
self.cr.execute("SELECT SUM(debit-credit) FROM account_move_line AS line, account_account \
|
||||
WHERE (line.account_id=account_account.id) AND (account_account.type IN ('payable','receivable')) \
|
||||
AND reconcile_id IS NULL AND (date>='%s') AND (date<='%s') and (line.state<>'draft') and partner_id is not null AND (line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d))" % (period['start'], period['stop'], fiscalyear))
|
||||
def _get_for_period(self, period, fiscalyear, company_id):
|
||||
self.cr.execute("SELECT SUM(debit-credit) \
|
||||
FROM account_move_line AS line, account_account \
|
||||
WHERE (line.account_id=account_account.id) AND (account_account.type IN ('payable','receivable')) \
|
||||
AND reconcile_id IS NULL AND (date >= %s) AND (date <= %s) \
|
||||
AND (line.state<>'draft') AND partner_id is not null \
|
||||
AND (line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id = %d)) \
|
||||
AND (account_account.company_id = %d)", (period['start'], period['stop'], fiscalyear, company_id))
|
||||
period = self.cr.fetchone()
|
||||
return period and period[0] or 0.0
|
||||
|
||||
|
||||
def _get_company(self, form):
|
||||
return pooler.get_pool(self.cr.dbname).get('res.company').browse(self.cr, self.uid, form['company_id']).name
|
||||
|
||||
def _get_currency(self, form):
|
||||
return pooler.get_pool(self.cr.dbname).get('res.company').browse(self.cr, self.uid, form['company_id']).currency_id.name
|
||||
|
||||
report_sxw.report_sxw(
|
||||
'report.account.aged.trial.balance',
|
||||
'res.partner',
|
||||
|
|
|
@ -41,11 +41,11 @@
|
|||
<paraStyle name="P2" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P3" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P4" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P5" fontName="Times-Roman" alignment="CENTER"/>
|
||||
<paraStyle name="P5" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P6" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P7" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P7" fontName="Times-Roman" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P8" fontName="Times-Roman" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P9" fontName="Times-Roman" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P9" fontName="Times-Roman" alignment="CENTER"/>
|
||||
<paraStyle name="P10" fontName="Times-Roman" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Standard" fontName="Times-Roman"/>
|
||||
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
|
@ -74,7 +74,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="Table Contents">[[ company.name ]]</para>
|
||||
<para style="Table Contents">[[ get_company(data['form']) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">
|
||||
|
@ -82,42 +82,42 @@
|
|||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P4">Currency: [[ company.currency_id.name ]]</para>
|
||||
<para style="P4">Currency: [[ get_currency(data['form']) ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P5">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
|
||||
<para style="P5">
|
||||
<para style="P9">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
|
||||
<para style="P9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="218.0,71.0,71.0,71.0,71.0,71.0,71.0,85.0" style="Tableau1">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P6">Partners</para>
|
||||
<para style="P5">Partners</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">[[ data['form']['4']['name'] ]]</para>
|
||||
<para style="P6">[[ data['form']['4']['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">[[ data['form']['3']['name'] ]]</para>
|
||||
<para style="P6">[[ data['form']['3']['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">[[ data['form']['2']['name'] ]]</para>
|
||||
<para style="P6">[[ data['form']['2']['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">[[ data['form']['1']['name'] ]]</para>
|
||||
<para style="P6">[[ data['form']['1']['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">[[ data['form']['0']['name'] ]]</para>
|
||||
<para style="P6">[[ data['form']['0']['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">Before [[ data['form']['0']['start'] ]]</para>
|
||||
<para style="P6">Before [[ data['form']['0']['start'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">Total</para>
|
||||
<para style="P5">Total</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
@ -153,32 +153,32 @@
|
|||
<blockTable colWidths="218.0,71.0,71.0,71.0,71.0,71.0,71.0,85.0" style="Tableau3">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P6">Account total</para>
|
||||
<para style="P5">Account total</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P9">[[ '%.2f' % get_for_period(data['form']['4'], data['form']['fiscalyear']) ]]</para>
|
||||
<para style="P7">[[ '%.2f' % get_for_period(data['form']['4'], data['form']['fiscalyear'], data['form']['company_id']) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P9">[[ '%.2f' % get_for_period(data['form']['3'], data['form']['fiscalyear']) ]]</para>
|
||||
<para style="P7">[[ '%.2f' % get_for_period(data['form']['3'], data['form']['fiscalyear'], data['form']['company_id']) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P9">[[ '%.2f' % get_for_period(data['form']['2'], data['form']['fiscalyear']) ]]</para>
|
||||
<para style="P7">[[ '%.2f' % get_for_period(data['form']['2'], data['form']['fiscalyear'], data['form']['company_id']) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P9">[['%.2f' % get_for_period(data['form']['1'], data['form']['fiscalyear']) ]]</para>
|
||||
<para style="P7">[['%.2f' % get_for_period(data['form']['1'], data['form']['fiscalyear'], data['form']['company_id']) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P9">[[ '%.2f' % get_for_period(data['form']['0'], data['form']['fiscalyear']) ]]</para>
|
||||
<para style="P7">[[ '%.2f' % get_for_period(data['form']['0'], data['form']['fiscalyear'], data['form']['company_id']) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P9">[[ '%.2f' % get_before(data['form']['0']['start'], data['form']['fiscalyear']) ]]</para>
|
||||
<para style="P7">[[ '%.2f' % get_before(data['form']['0']['start'], data['form']['fiscalyear'], data['form']['company_id']) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P10">[[ '%.2f' % get_total( data['form']['fiscalyear']) ]]</para>
|
||||
<para style="P10">[[ '%.2f' % get_total( data['form']['fiscalyear'], data['form']['company_id']) ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P5">
|
||||
<para style="P9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
|
|
|
@ -35,13 +35,16 @@ from mx.DateTime import *
|
|||
|
||||
_aged_trial_form = """<?xml version="1.0"?>
|
||||
<form string="Aged Trial Balance">
|
||||
<field name="company_id"/>
|
||||
<newline/>
|
||||
<field name="fiscalyear"/>
|
||||
<newline/>
|
||||
<field name="period_length"/>
|
||||
</form>"""
|
||||
|
||||
_aged_trial_fields = {
|
||||
'fiscalyear': {'string': 'Fiscal year', 'type': 'many2one', 'relation': 'account.fiscalyear', 'required': True},
|
||||
'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True},
|
||||
'fiscalyear': {'string': 'Fiscal year', 'type': 'many2one', 'relation': 'account.fiscalyear', 'required': True},
|
||||
'period_length': {'string': 'Period length (days)', 'type': 'integer', 'required': True, 'default': lambda *a:30},
|
||||
}
|
||||
|
||||
|
@ -65,8 +68,17 @@ class wizard_report(wizard.interface):
|
|||
def _get_defaults(self, cr, uid, data, context):
|
||||
fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
|
||||
data['form']['fiscalyear'] = fiscalyear_obj.find(cr, uid)
|
||||
|
||||
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid, context=context)
|
||||
if user.company_id:
|
||||
company_id = user.company_id.id
|
||||
else:
|
||||
company_id = pooler.get_pool(cr.dbname).get('res.company').search(cr, uid, [('parent_id', '=', False)])[0]
|
||||
data['form']['company_id'] = company_id
|
||||
|
||||
return data['form']
|
||||
|
||||
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [_get_defaults],
|
||||
|
|
Loading…
Reference in New Issue