account: add multi company to third party ledger report
bzr revid: ced-15f14615f0c7b315036d06c1dc53038a3b298630
This commit is contained in:
parent
e6eb14b7d1
commit
997d69a667
|
@ -38,20 +38,23 @@ class third_party_ledger(report_sxw.rml_parse):
|
|||
'sum_debit_partner': self._sum_debit_partner,
|
||||
'sum_credit_partner': self._sum_credit_partner,
|
||||
'sum_debit': self._sum_debit,
|
||||
'sum_credit': self._sum_credit
|
||||
'sum_credit': self._sum_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 state<>'draft' AND period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d)",
|
||||
(data['form']['date1'], data['form']['date2'], data['form']['fiscalyear']))
|
||||
"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.state<>'draft' 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")
|
||||
"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)
|
||||
|
@ -123,5 +126,12 @@ class third_party_ledger(report_sxw.rml_parse):
|
|||
"AND period_id in (SELECT id FROM account_period WHERE fiscalyear_id=%d)",
|
||||
(self.datas['form']['date1'], self.datas['form']['date2'], self.datas['form']['fiscalyear']))
|
||||
return self.cr.fetchone()[0] or 0.0
|
||||
report_sxw.report_sxw('report.account.third_party_ledger', 'res.partner', 'addons/account/report/third_party_ledger.rml',parser=third_party_ledger)
|
||||
|
||||
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.third_party_ledger', 'res.partner', 'addons/account/report/third_party_ledger.rml',parser=third_party_ledger, header=False)
|
||||
|
||||
|
|
|
@ -16,6 +16,9 @@
|
|||
<blockBackground colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||
<blockBackground colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||
<blockBackground colorName="#e6e6e6" start="2,0" stop="2,0"/>
|
||||
<blockBackground colorName="#e6e6e6" start="0,1" stop="0,1"/>
|
||||
<blockBackground colorName="#e6e6e6" start="1,1" stop="1,1"/>
|
||||
<blockBackground colorName="#e6e6e6" start="2,1" stop="2,1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
|
@ -40,19 +43,19 @@
|
|||
</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"/>
|
||||
<paraStyle name="P7" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P8" fontName="Times-Roman" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P9" fontName="Times-Bold" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P10" rightIndent="17.0" leftIndent="-0.0" fontName="Times-Roman" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P11" fontName="Times-Roman" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P12" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P13" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P14" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P15" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P3" fontName="Times-Roman" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P4" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P5" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT" 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" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P8" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P9" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P10" fontName="Times-Roman" alignment="CENTER"/>
|
||||
<paraStyle name="P11" fontName="Times-Roman" fontSize="11.0" leading="14"/>
|
||||
<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" fontName="Times-Bold" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="P15" rightIndent="17.0" leftIndent="-0.0" fontName="Times-Roman" 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"/>
|
||||
|
@ -73,51 +76,51 @@
|
|||
<para style="P1">Third party ledger</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">Complete</para>
|
||||
<para style="P6">Complete</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P4"><i>Currency:</i> [[ company.currency_id.name ]]</para>
|
||||
<para style="P7"><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="P6">
|
||||
<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="P11">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="45.0,36.0,50.0,145.0,69.0,72.0,64.0" repeatRows="1" style="Table2">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P7">Date</para>
|
||||
<para style="P12">Date</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">J. code</para>
|
||||
<para style="P12">J. code</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">Voucher Nb</para>
|
||||
<para style="P12">Voucher Nb</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">Entry label</para>
|
||||
<para style="P12">Entry label</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">Debit</para>
|
||||
<para style="P12">Debit</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">Credit</para>
|
||||
<para style="P12">Credit</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7">Progressive balance</para>
|
||||
<para style="P12">Progressive balance</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
@ -125,49 +128,49 @@
|
|||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P8">[[ repeatIn(objects, 'p') ]]</para>
|
||||
<para style="P9">[[ p.ref ]] [[ p.name ]]</para>
|
||||
<para style="P13">[[ repeatIn(objects, 'p') ]]</para>
|
||||
<para style="P14">[[ p.ref ]] [[ p.name ]]</para>
|
||||
<blockTable colWidths="45.0,37.0,50.0,145.0,69.0,72.0,63.0" style="Table3">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P10"><font face="Times-Roman">[[ repeatIn(lines(p), 'line') ]]</font>[[ line['date'] ]]</para>
|
||||
<para style="P15"><font face="Times-Roman">[[ repeatIn(lines(p), 'line') ]]</font>[[ line['date'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P11">[[ line['code'] ]]</para>
|
||||
<para style="P3">[[ line['code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P11">[[ line['ref'] ]]</para>
|
||||
<para style="P3">[[ line['ref'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P12">[[ line['name'] ]]</para>
|
||||
<para style="P4">[[ line['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P13">[[ line['debit'] and '%.2f' % line['debit'] or '' ]]</para>
|
||||
<para style="P5">[[ line['debit'] and '%.2f' % line['debit'] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P13">[[ line['credit'] and '%.2f' % line['credit'] or '' ]]</para>
|
||||
<para style="P5">[[ line['credit'] and '%.2f' % line['credit'] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P13">[[ line['progress'] and '%.2f' % line['progress'] or '' ]]</para>
|
||||
<para style="P5">[[ line['progress'] and '%.2f' % line['progress'] or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="277.0,69.0,72.0,63.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P14">Total for [[ p.ref ]] </para>
|
||||
<para style="P14">
|
||||
<para style="P8">Total for [[ p.ref ]] </para>
|
||||
<para style="P8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P15">[[ '%.2f' % sum_debit_partner(p) ]]</para>
|
||||
<para style="P9">[[ '%.2f' % sum_debit_partner(p) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P15">[[ '%.2f' % sum_credit_partner(p) ]]</para>
|
||||
<para style="P9">[[ '%.2f' % sum_credit_partner(p) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P15">[[ '%.2f' %(sum_debit_partner(p) - sum_credit_partner(p)) ]]</para>
|
||||
<para style="P9">[[ '%.2f' %(sum_debit_partner(p) - sum_credit_partner(p)) ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
@ -181,16 +184,16 @@
|
|||
<blockTable colWidths="277.0,69.0,72.0,63.0" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P14">Balance brought forward</para>
|
||||
<para style="P8">Balance brought forward</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P15">[[ '%.2f' % sum_debit() ]]</para>
|
||||
<para style="P9">[[ '%.2f' % sum_debit() ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P15">[[ '%.2f' % sum_credit() ]]</para>
|
||||
<para style="P9">[[ '%.2f' % sum_credit() ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P15">[[ '%.2f' %(sum_debit() - sum_credit()) ]]</para>
|
||||
<para style="P9">[[ '%.2f' %(sum_debit() - sum_credit()) ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
|
|
@ -31,13 +31,15 @@ import pooler
|
|||
|
||||
dates_form = '''<?xml version="1.0"?>
|
||||
<form string="Select period">
|
||||
<field name="fiscalyear"/>
|
||||
<field name="company_id" colspan="4"/>
|
||||
<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 +49,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