account: add multi company to partner balance report
bzr revid: ced-4ced091928f76125f35c01c26b5b7a8681915d80
This commit is contained in:
parent
8efc139282
commit
e6eb14b7d1
|
@ -42,12 +42,18 @@ class partner_balance(report_sxw.rml_parse):
|
|||
'sum_scredit': self._sum_scredit,
|
||||
'solde_debit': self._solde_balance_debit,
|
||||
'solde_credit': self._solde_balance_credit,
|
||||
'get_company': self._get_company,
|
||||
'get_currency': self._get_currency,
|
||||
})
|
||||
|
||||
def preprocess(self, objects, data, ids):
|
||||
self.cr.execute('select distinct partner_id from account_move_line where partner_id is not null and date>=%s and date<=%s and period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d)', (data['form']['date1'], data['form']['date2'], data['form']['fiscalyear']))
|
||||
self.cr.execute('select distinct line.partner_id \
|
||||
from account_move_line AS line, account_account AS account \
|
||||
where line.partner_id is not null and line.date>=%s and line.date<=%s \
|
||||
and line.period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d) \
|
||||
AND line.account_id = account.id AND account.company_id = %d', (data['form']['date1'], data['form']['date2'], data['form']['fiscalyear'], data['form']['company_id']))
|
||||
new_ids = [id for (id,) in self.cr.fetchall()]
|
||||
self.cr.execute("SELECT a.id FROM account_account a LEFT JOIN account_account_type t ON (a.type=t.code) WHERE t.partner_account=TRUE")
|
||||
self.cr.execute("SELECT a.id FROM account_account a LEFT JOIN account_account_type t ON (a.type=t.code) WHERE t.partner_account=TRUE AND a.company_id = %d", (data['form']['company_id'],))
|
||||
self.account_ids = ','.join([str(a) for (a,) in self.cr.fetchall()])
|
||||
self.partner_ids = ','.join(map(str, new_ids))
|
||||
objects = self.pool.get('res.partner').browse(self.cr, self.uid, new_ids)
|
||||
|
@ -168,6 +174,12 @@ class partner_balance(report_sxw.rml_parse):
|
|||
def _solde_balance_credit(self):
|
||||
debit, credit = self._sum_debit(), self._sum_credit()
|
||||
return credit > debit and credit - debit
|
||||
|
||||
report_sxw.report_sxw('report.account.partner.balance', 'res.partner', 'addons/account/report/partner_balance.rml',parser=partner_balance)
|
||||
|
||||
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.partner.balance', 'res.partner', 'addons/account/report/partner_balance.rml',parser=partner_balance, header=False)
|
||||
|
||||
|
|
|
@ -44,18 +44,18 @@
|
|||
</initialize>
|
||||
<paraStyle name="P1" fontName="Times-Roman" fontSize="20.0" leading="25" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<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="P6" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P7" fontName="Times-Roman" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P8" rightIndent="17.0" leftIndent="-0.0" fontName="Times-Bold" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P9" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P10" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P11" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P12" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P13" fontName="Times-Roman" fontSize="8.0" leading="10"/>
|
||||
<paraStyle name="P14" fontName="Times-Roman" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P3" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P4" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P5" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P6" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P7" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P8" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P9" fontName="Times-Roman" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P10" fontName="Times-Roman" alignment="CENTER"/>
|
||||
<paraStyle name="P11" fontName="Times-Roman" fontSize="8.0" leading="10"/>
|
||||
<paraStyle name="P12" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P13" fontName="Times-Roman" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P14" rightIndent="17.0" leftIndent="-0.0" fontName="Times-Bold" fontSize="8.0" leading="10" 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"/>
|
||||
<paraStyle name="List" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
|
@ -76,101 +76,101 @@
|
|||
<para style="P1">Third party balance</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P2"><i>From</i> [[ data['form']['date1'] ]]</para>
|
||||
<para style="P2"><i>to</i> [[ data['form']['date2'] ]]</para>
|
||||
<para style="P2"><font face="Times-Roman">From</font> [[ data['form']['date1'] ]]</para>
|
||||
<para style="P2"><font face="Times-Roman">to</font> [[ data['form']['date2'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="Table Contents">[[ company.name ]]</para>
|
||||
<para style="Table Contents">[[ get_company(data['form']) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">
|
||||
<para style="P5">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P4"><i>Currency:</i> [[ company.currency_id.name ]]</para>
|
||||
<para style="P6"><font face="Times-Roman">Currency:</font> [[ get_currency(data['form']) ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P5"><i>Printing date:</i> [[ time.strftime('%Y-%m-%d') ]] <i>at</i> [[ time.strftime('%H:%M:%S') ]]</para>
|
||||
<para style="P5">
|
||||
<para style="P10"><font face="Times-Roman">Printing date:</font> [[ time.strftime('%Y-%m-%d') ]] <font face="Times-Roman">at</font> [[ time.strftime('%H:%M:%S') ]]</para>
|
||||
<para style="P10">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="60.0,137.0,118.0,109.0,58.0" repeatRows="1" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P6">Account number</para>
|
||||
<para style="P12">Account number</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">Account name</para>
|
||||
<para style="P12">Account name</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">Transactions</para>
|
||||
<para style="P12">Transactions</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">Balances</para>
|
||||
<para style="P12">Balances</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">In dispute</para>
|
||||
<para style="P12">In dispute</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="197.0,60.0,58.0,55.0,54.0,58.0" repeatRows="1" style="Table2">
|
||||
<blockTable colWidths="197.0,60.0,58.0,56.0,54.0,58.0" repeatRows="1" style="Table2">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P6">
|
||||
<para style="P12">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">Debit</para>
|
||||
<para style="P12">Debit</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">Credit</para>
|
||||
<para style="P12">Credit</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">Debit</para>
|
||||
<para style="P12">Debit</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">Credit</para>
|
||||
<para style="P12">Credit</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">
|
||||
<para style="P12">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P7">
|
||||
<para style="P13">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="61.0,137.0,60.0,58.0,55.0,54.0,57.0" style="Table3">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P8">[[ repeatIn(lines(), 'a') ]]<font face="Times-Roman">[[ a['ref'] ]]</font></para>
|
||||
<para style="P14">[[ repeatIn(lines(), 'a') ]]<font face="Times-Roman">[[ a['ref'] ]]</font></para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P9">[[ a['name'] ]]</para>
|
||||
<para style="P3">[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P10">[[ '%.2f' % a['debit'] ]]</para>
|
||||
<para style="P4">[[ '%.2f' % a['debit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P10">[[ '%.2f' % a['credit'] ]]</para>
|
||||
<para style="P4">[[ '%.2f' % a['credit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P10">[[ '%.2f' % a['sdebit'] ]]</para>
|
||||
<para style="P4">[[ '%.2f' % a['sdebit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P10">[[ '%.2f' % a['scredit'] ]]</para>
|
||||
<para style="P4">[[ '%.2f' % a['scredit'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P10">[[ '%.2f' % (a['enlitige'] or 0.0) ]]</para>
|
||||
<para style="P4">[[ '%.2f' % (a['enlitige'] or 0.0) ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
@ -180,53 +180,53 @@
|
|||
<blockTable colWidths="198.0,60.0,58.0,56.0,53.0,57.0" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P11">Grand total</para>
|
||||
<para style="P7">Grand total</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P12">[[ '%.2f' % sum_debit() ]]</para>
|
||||
<para style="P8">[[ '%.2f' % sum_debit() ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P12">[[ '%.2f' % sum_credit() ]]</para>
|
||||
<para style="P8">[[ '%.2f' % sum_credit() ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P12">[[ '%.2f' % sum_sdebit() ]]</para>
|
||||
<para style="P8">[[ '%.2f' % sum_sdebit() ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P12">[[ '%.2f' % sum_scredit() ]]</para>
|
||||
<para style="P8">[[ '%.2f' % sum_scredit() ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P12">[[ '%.2f' % sum_litige() ]]</para>
|
||||
<para style="P8">[[ '%.2f' % sum_litige() ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P11">Balance</para>
|
||||
<para style="P7">Balance</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P12">
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P12">
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P12">[[ '%.2f' % solde_debit() ]]</para>
|
||||
<para style="P8">[[ '%.2f' % solde_debit() ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P12">[[ '%.2f' % solde_credit() ]]</para>
|
||||
<para style="P8">[[ '%.2f' % solde_credit() ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P12">
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P13"/>
|
||||
<para style="P14">
|
||||
<para style="P11"/>
|
||||
<para style="P9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
|
|
|
@ -31,13 +31,16 @@ import pooler
|
|||
|
||||
dates_form = '''<?xml version="1.0"?>
|
||||
<form string="Select period">
|
||||
<field name="fiscalyear"/>
|
||||
<field name="company_id" colspan="4"/>
|
||||
<newline/>
|
||||
<field name="fiscalyear" colspan="4"/>
|
||||
<newline/>
|
||||
<field name="date1"/>
|
||||
<field name="date2"/>
|
||||
</form>'''
|
||||
|
||||
dates_fields = {
|
||||
'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True},
|
||||
'fiscalyear': {'string': 'Fiscal year', 'type': 'many2one', 'relation': 'account.fiscalyear', 'required': True},
|
||||
'date1': {'string':'Start of period', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-01-01')},
|
||||
'date2': {'string':'End of period', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')},
|
||||
|
@ -47,6 +50,14 @@ 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 = {
|
||||
|
|
Loading…
Reference in New Issue