[ADD][balance_full_4_cols_journal_ledger] add boolean field " journal ledger" and its report
parent
069a36c65f
commit
ad65abc6db
|
@ -89,6 +89,20 @@
|
||||||
alignment="LEFT"
|
alignment="LEFT"
|
||||||
spaceBefore="0.0"
|
spaceBefore="0.0"
|
||||||
spaceAfter="0.0"/>
|
spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="TITLES_NEW_P"
|
||||||
|
fontName="Helvetica-Bold"
|
||||||
|
fontSize="6.0"
|
||||||
|
leading="10"
|
||||||
|
alignment="LEFT"
|
||||||
|
spaceBefore="0.0"
|
||||||
|
spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="TITLES_NEW_RIGHT"
|
||||||
|
fontName="Courier"
|
||||||
|
fontSize="7.0"
|
||||||
|
leading="10"
|
||||||
|
alignment="RIGHT"
|
||||||
|
spaceBefore="0.0"
|
||||||
|
spaceAfter="0.0"/>
|
||||||
<paraStyle
|
<paraStyle
|
||||||
name="TITLE_LEFT_ALIGN"
|
name="TITLE_LEFT_ALIGN"
|
||||||
fontName="Helvetica-Bold"
|
fontName="Helvetica-Bold"
|
||||||
|
@ -122,7 +136,7 @@
|
||||||
<para>[[setLang(user.lang)]]</para>
|
<para>[[setLang(user.lang)]]</para>
|
||||||
|
|
||||||
<blockTable colWidths="2.5cm,13.5cm,2.5cm,2.5cm,2.5cm,2.5cm" style="BODY" repeatRows="0">
|
<blockTable colWidths="2.5cm,13.5cm,2.5cm,2.5cm,2.5cm,2.5cm" style="BODY" repeatRows="0">
|
||||||
<tr noRowsplits="0">
|
<tr noRowsplits="0">
|
||||||
<td>
|
<td>
|
||||||
<para style="TITLE_LEFT_ALIGN">
|
<para style="TITLE_LEFT_ALIGN">
|
||||||
<font>CODE</font>
|
<font>CODE</font>
|
||||||
|
@ -145,8 +159,7 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</blockTable>
|
</blockTable>
|
||||||
|
<blockTable colWidths="6.0cm,3.0cm,3.0cm,2.5cm,4.0cm,2.5cm,2.5cm,2.5cm" style="BODY_LINE" repeatRows="0">
|
||||||
<blockTable colWidths="2.25cm,2.0cm,7.75cm,2.5cm,4.0cm,2.5cm,2.5cm,2.5cm" style="BODY_LINE" repeatRows="1">
|
|
||||||
<!--
|
<!--
|
||||||
[[ (a['type'] <> 'view') or removeParentNode('blockTable') ]]
|
[[ (a['type'] <> 'view') or removeParentNode('blockTable') ]]
|
||||||
-->
|
-->
|
||||||
|
@ -161,14 +174,14 @@
|
||||||
<font>PERIOD</font>
|
<font>PERIOD</font>
|
||||||
</para>
|
</para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
|
||||||
<para style="TITLES_NEW">REFERENCE</para>
|
|
||||||
</td>
|
|
||||||
<td>
|
<td>
|
||||||
<para style="TITLES_NEW">JOURNAL ENTRY</para>
|
<para style="TITLES_NEW">JOURNAL ENTRY</para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="TITLES_NEW">PARTNER</para>
|
<para style="TITLE_LEFT_ALIGN"></para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="TITLE_LEFT_ALIGN"></para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="TITLE_LEFT_ALIGN"></para>
|
<para style="TITLE_LEFT_ALIGN"></para>
|
||||||
|
@ -181,11 +194,6 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</blockTable>
|
</blockTable>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<para>[[ repeatIn([x for x in lines(data['form']) if x['type'] != 'view'], 'a') ]]</para>
|
<para>[[ repeatIn([x for x in lines(data['form']) if x['type'] != 'view'], 'a') ]]</para>
|
||||||
<blockTable colWidths="2.5cm,13.5cm,2.5cm,2.5cm,2.5cm,2.5cm" style="BODY" repeatRows="0">
|
<blockTable colWidths="2.5cm,13.5cm,2.5cm,2.5cm,2.5cm,2.5cm" style="BODY" repeatRows="0">
|
||||||
|
@ -230,62 +238,103 @@
|
||||||
</blockTable>
|
</blockTable>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<para>[[ repeatIn(a['mayor'], 'm') ]]</para>
|
<para>[[ repeatIn(a['journal'], 'j') ]]</para>
|
||||||
<blockTable colWidths="2.25cm,2.0cm,7.75cm,2.5cm,4.0cm,2.5cm,2.5cm,2.5cm" style="BODY_LINE" repeatRows="1">
|
<blockTable colWidths="6.0cm,3.0cm,3.0cm,2.5cm,4.0cm,2.5cm,2.5cm,2.5cm" style="BODY_LINE" repeatRows="1">
|
||||||
<!--
|
<!--
|
||||||
[[ (a['type'] <> 'view') or removeParentNode('blockTable') ]]
|
[[ (a['type'] <> 'view') or removeParentNode('blockTable') ]]
|
||||||
-->
|
-->
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<para style="TITLES_NEW">
|
<para style="TITLES_NEW_P">
|
||||||
<font> [[ formatLang( m['date'], date=True) ]]</font>
|
<font> [[ formatLang( j['date'], date=True) ]]</font>
|
||||||
</para>
|
</para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="TITLES_NEW">
|
<para style="TITLES_NEW_P">
|
||||||
<font>[[ m['period'] ]]</font>
|
<font>[[ j['period'] ]]</font>
|
||||||
</para>
|
</para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="TITLES_NEW">
|
<para style="TITLES_NEW_P">
|
||||||
<font>[[ m['name'] ]] [[ m['ref'] and (' - Ref %s'%m['ref']) or '' ]] </font>
|
<font>[[ j['name'] ]] </font>
|
||||||
</para>
|
</para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="TITLES_NEW">
|
<para style="TITLES_NEW_">
|
||||||
<font>[[ m['entry'] ]]</font>
|
<font></font>
|
||||||
</para>
|
</para>
|
||||||
<!--
|
|
||||||
<para style="TITLES_NEW">
|
|
||||||
<font>[[ m['journal'] ]]</font>
|
|
||||||
</para>
|
|
||||||
-->
|
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="TITLES_NEW">
|
<para style="TITLES_NEW">
|
||||||
<font>[[ m['partner'] ]]</font>
|
<font></font>
|
||||||
</para>
|
</para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="TITLE_LEFT_ALIGN">
|
<para style="TITLE_LEFT_ALIGN">
|
||||||
<font>[[ a['type']<>'view' and setTag('para','para',{'fontName':"Courier"}) or removeParentNode('font') ]]</font>
|
|
||||||
<font>[[ (a['total']==True) and formatLang(m['debit'], digits=2, grouping=True) or '']]</font>
|
|
||||||
</para>
|
</para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="TITLE_LEFT_ALIGN">
|
<para style="TITLE_LEFT_ALIGN">
|
||||||
<font>[[ a['type']<>'view' and setTag('para','para',{'fontName':"Courier"}) or removeParentNode('font') ]]</font>
|
|
||||||
<font>[[ (a['total']==True) and formatLang(m['credit'], digits=2, grouping=True) or '']]</font>
|
|
||||||
</para>
|
</para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="TITLE_LEFT_ALIGN">
|
<para style="TITLE_LEFT_ALIGN">
|
||||||
<font>[[ a['type']<>'view' and setTag('para','para',{'fontName':"Courier"}) or removeParentNode('font') ]]</font>
|
|
||||||
<font>[[ (a['total']==True) and formatLang(m['balance'] and m['balance'] * a.get('change_sign',1.0) or 0.0, digits=2, grouping=True) or '']]</font>
|
|
||||||
</para>
|
</para>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</blockTable>
|
</blockTable>
|
||||||
|
<section>
|
||||||
|
<para>[[ repeatIn(j.get('obj').line_id, 'k') ]]</para>
|
||||||
|
<blockTable colWidths="6.0cm,3.0cm,3.0cm,1.5cm,5.0cm,2.5cm,2.5cm,2.5cm" style="BODY_LINE" repeatRows="1">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="TITLES_NEW">
|
||||||
|
<font> [[ k.name ]]</font>
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="TITLES_NEW">
|
||||||
|
<font>[[ k.ref and k.ref or '']]</font>
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="TITLES_NEW">
|
||||||
|
<font>[[ k.partner_id and k.partner_id.name or '']]</font>
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="TITLES_NEW">
|
||||||
|
<font>[[ k.account_id and k.account_id.code or '']]</font>
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="TITLES_NEW">
|
||||||
|
<font>[[ k.account_id and k.account_id.name or '']]</font>
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="TITLES_NEW_RIGHT">
|
||||||
|
<font>[[ k.type<>'view' and setTag('para','para',{'fontName':"Courier"}) or removeParentNode('font') ]]</font>
|
||||||
|
<font>[[ k.debit and formatLang(k.debit, digits=2, grouping=True) or '' ]] </font>
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="TITLES_NEW_RIGHT">
|
||||||
|
<font>[[ k.type<>'view' and setTag('para','para',{'fontName':"Courier"}) or removeParentNode('font') ]]</font>
|
||||||
|
<font>[[ k.credit and formatLang(k.credit, digits=2, grouping=True) or '' ]] </font>
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="TITLES_NEW_RIGHT">
|
||||||
|
<font>[[ k.type<>'view' and setTag('para','para',{'fontName':"Courier"}) or removeParentNode('font') ]]</font>
|
||||||
|
<font>[[ k.reconcile_id and k.reconcile_id.name or k.reconcile_partial_id and k.reconcile_partial_id.name or '']]</font>
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
<spacer length="1.5mm"/>
|
||||||
</section>
|
</section>
|
||||||
<spacer length="2.5mm"/>
|
<spacer length="2.5mm"/>
|
||||||
</section>
|
</section>
|
|
@ -220,6 +220,46 @@ class account_balance(report_sxw.rml_parse):
|
||||||
})
|
})
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
def _get_journal_ledger(self, account, ctx={}):
|
||||||
|
res = []
|
||||||
|
am_obj = self.pool.get('account.move')
|
||||||
|
print 'AM OBJ ', am_obj
|
||||||
|
if account['type'] in ('other', 'liquidity', 'receivable', 'payable'):
|
||||||
|
#~ TODO: CUANDO EL PERIODO ESTE VACIO LLENARLO CON LOS PERIODOS DEL EJERCICIO
|
||||||
|
#~ FISCAL, SIN LOS PERIODOS ESPECIALES
|
||||||
|
periods = ', '.join([str(i) for i in ctx['periods']])
|
||||||
|
#~ periods = str(tuple(ctx['periods']))
|
||||||
|
where = """where aml.period_id in (%s) and aa.id = %s and aml.state <> 'draft'""" % (
|
||||||
|
periods, account['id'])
|
||||||
|
if ctx.get('state','posted')=='posted':
|
||||||
|
where += "AND am.state = 'posted'"
|
||||||
|
sql_detalle = """SELECT
|
||||||
|
DISTINCT am.id as am_id,
|
||||||
|
aj.name as diario,
|
||||||
|
am.name as name,
|
||||||
|
am.date as date,
|
||||||
|
ap.name as periodo
|
||||||
|
from account_move_line aml
|
||||||
|
inner join account_journal aj on aj.id = aml.journal_id
|
||||||
|
inner join account_account aa on aa.id = aml.account_id
|
||||||
|
inner join account_period ap on ap.id = aml.period_id
|
||||||
|
inner join account_move am on am.id = aml.move_id """ + where +\
|
||||||
|
""" order by date, am.name"""
|
||||||
|
|
||||||
|
self.cr.execute(sql_detalle)
|
||||||
|
resultat = self.cr.dictfetchall()
|
||||||
|
for det in resultat:
|
||||||
|
res.append({
|
||||||
|
'am_id': det['am_id'],
|
||||||
|
'journal': det['diario'],
|
||||||
|
'name': det['name'],
|
||||||
|
'date': det['date'],
|
||||||
|
'period': det['periodo'],
|
||||||
|
'obj': am_obj.browse(self.cr,self.uid,det['am_id'])
|
||||||
|
})
|
||||||
|
print 'ACCOUNT NAME', am_obj.browse(self.cr,self.uid,det['am_id']).name
|
||||||
|
return res
|
||||||
|
|
||||||
def lines(self, form, level=0):
|
def lines(self, form, level=0):
|
||||||
"""
|
"""
|
||||||
Returns all the data needed for the report lines
|
Returns all the data needed for the report lines
|
||||||
|
@ -766,6 +806,8 @@ class account_balance(report_sxw.rml_parse):
|
||||||
#~ ANALYTIC LEDGER
|
#~ ANALYTIC LEDGER
|
||||||
if to_include and form['analytic_ledger'] and form['columns'] == 'four' and form['inf_type'] == 'BS' and res['type'] in ('other', 'liquidity', 'receivable', 'payable'):
|
if to_include and form['analytic_ledger'] and form['columns'] == 'four' and form['inf_type'] == 'BS' and res['type'] in ('other', 'liquidity', 'receivable', 'payable'):
|
||||||
res['mayor'] = self._get_analytic_ledger(res, ctx=ctx_end)
|
res['mayor'] = self._get_analytic_ledger(res, ctx=ctx_end)
|
||||||
|
elif to_include and form['journal_ledger'] and form['columns'] == 'four' and form['inf_type'] == 'BS' and res['type'] in ('other', 'liquidity', 'receivable', 'payable'):
|
||||||
|
res['journal'] = self._get_journal_ledger(res, ctx=ctx_end)
|
||||||
else:
|
else:
|
||||||
res['mayor'] = []
|
res['mayor'] = []
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,6 @@
|
||||||
/>
|
/>
|
||||||
<field name="journal_ledger"
|
<field name="journal_ledger"
|
||||||
attrs="{'readonly':['|',('columns','!=','four'),('inf_type','!=','BS')],}"
|
attrs="{'readonly':['|',('columns','!=','four'),('inf_type','!=','BS')],}"
|
||||||
on_change='onchange_journal_ledger(company_id,journal_ledger)'
|
|
||||||
/>
|
/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
|
|
Loading…
Reference in New Issue