*complted Analytic Balance reports.

*add partner_balance with wizard...

bzr revid: patelamit2003@gmail.com-20081006094637-8rpw9qndk6o4uue0
This commit is contained in:
apa-tiny 2008-10-06 15:16:37 +05:30
parent 3f0936e6d3
commit 38f3d006b2
7 changed files with 773 additions and 548 deletions

View File

@ -31,8 +31,9 @@
import pooler
import time
from report import report_sxw
import rml_parse
class account_analytic_balance(report_sxw.rml_parse):
class account_analytic_balance(rml_parse.rml_parse):
def __init__(self, cr, uid, name, context):
super(account_analytic_balance, self).__init__(cr, uid, name, context)
self.localcontext.update( {

View File

@ -3,6 +3,37 @@
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="57.0" y1="57.0" width="481" height="728"/>
<header>
<pageGraphics>
<!--logo-->
<!--<fill color="darkblue"/>-->
<!--<stroke color="darkblue"/>-->
<!--TITLE COMPANY-->
<!-- <drawString x="4.6cm" y="28.7cm">[[ company.partner_id.name ]]</drawString> -->
<setFont name="Helvetica-Bold" size="9"/>
<!--COL 1-->
<drawString x="1.0cm" y="28.1cm">[[ company.name ]]</drawString>
<drawRightString x="20cm" y="28.1cm">Analytic Balance</drawRightString>
<!-- Header -->
<setFont name="Helvetica" size="9"/>
<drawString x="1.0cm" y="1cm"> [[ time.strftime("%Y-%m-%d %H:%M", time.localtime()) ]]</drawString>
<drawString x="19.0cm" y="1cm">Page <pageNumber/></drawString>
<!--<drawRightString x="19.8cm" y="28cm">[[ company.rml_header1 ]]</drawRightString>-->
<lineMode width="0.7"/>
<lines>1cm 27.7cm 20cm 27.7cm</lines>
<setFont name="Helvetica" size="8"/>
</pageGraphics>
</header>
</pageTemplate>
</template>
<stylesheet>
@ -10,65 +41,30 @@
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau1">
<blockAlignment value="LEFT"/>
<blockTableStyle id="Table1">
<blockValign value="TOP"/>
<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="Tableau8">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,1" stop="-1,1"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#e6e6e6" start="0,0" stop="0,0"/>
</blockTableStyle>
<blockTableStyle id="Tableau2">
<blockTableStyle id="tbl_content">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockTableStyle id="tbl_data">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<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="3,0" stop="3,0"/>
<blockBackground colorName="#e6e6e6" start="4,0" stop="4,0"/>
</blockTableStyle>
<blockTableStyle id="Tableau10">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
<lineStyle kind="LINEBELOW" colorName="#777777" start="0,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,1" stop="-1,-1"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Times-Roman" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P2" fontName="Times-Bold" fontSize="20.0" leading="25" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P3" fontName="Times-Bold" fontSize="10.0" leading="13" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P4" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P5" fontName="Times-Bold" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P6" fontName="Times-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P7" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P8" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P9" fontName="Times-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P10" fontName="Times-Roman"/>
<paraStyle name="P11" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="CENTER"/>
<paraStyle name="P12" fontName="Times-Roman" fontSize="6.0" leading="8"/>
<paraStyle name="P13" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="LEFT"/>
<paraStyle name="P14" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="LEFT"/>
<paraStyle name="P15" fontName="Times-Roman" fontSize="6.0" leading="8"/>
<paraStyle name="P16" fontName="Times-Bold" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P17" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P18" fontName="Times-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.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,152 +72,130 @@
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Caption" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Times-Roman"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="15.0" leading="19" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Footer" fontName="Times-Roman"/>
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica" fontSize="8.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica" fontSize="8.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica" fontSize="8.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_8_right_bold" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_8_bold" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<blockTable colWidths="161.0,161.0,161.0" repeatRows="1" style="Tableau1">
<tr>
<td>
<para style="P1">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P2">Analytic Balance</para>
</td>
<td>
<para style="P3">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P1">[[ company.name ]]</para>
</td>
<td>
<para style="P17">Period from [[ data['form']['date1'] ]] </para>
<para style="P17">to [[ data['form']['date2'] ]]</para>
</td>
<td>
<para style="P4">Currency: [[ company.currency_id.name ]]</para>
</td>
</tr>
</blockTable>
<para style="P10">
<font color="white"> </font>
</para>
<para style="P11">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
<para style="P11">
<font color="white"> </font>
</para>
<blockTable colWidths="57.0,227.0,50.0,50.0,50.0,49.0" style="Tableau8">
<tr>
<td>
<para style="P5">Code</para>
</td>
<td>
<para style="P5">Account Name</para>
</td>
<td>
<para style="P5">Debit </para>
</td>
<td>
<para style="P5">Credit</para>
</td>
<td>
<para style="P5">Balance</para>
</td>
<td>
<para style="P5">Quantity</para>
</td>
</tr>
</blockTable>
<para style="P15">
<font color="white"> </font>
</para>
<section>
<para style="P15">[[ repeatIn(objects,'o') ]]</para>
<blockTable colWidths="482.0" style="Table2">
<blockTable colWidths="57.0,280.0,50.0,50.0,50.0,50.0" style="Table1" repeatRows="1">
<tr>
<td>
<para style="P6">[[ o.code ]] <font face="Times-Bold" size="9.0">[[ o.complete_name ]]</font></para>
<para style="terp_tblheader_Details">Code</para>
</td>
<td>
<para style="terp_tblheader_Details">Account Name</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Debit </para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Credit</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Balance</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Quantity</para>
</td>
</tr>
<tr>
<td>
<para style="terp_tblheader_General">Total</para>
</td>
<td></td>
<td>
<para style="terp_tblheader_General_Right"><u>[[ sum_debit(objects,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
</td>
<td>
<para style="terp_tblheader_General_Right"><u>[[ sum_credit(objects,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
</td>
<td>
<para style="terp_tblheader_General_Right"><u>[[ sum_balance(objects,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
</td>
<td>
<para style="terp_tblheader_General_Right"><u>[[ sum_quantity(objects,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_8">[[ repeatIn(objects,'o') ]]</para>
<blockTable colWidths="51.0,280.0,50.0,50.0,50.0,50.0" style="tbl_data">
<tr>
<td>
<para style="terp_default_8_bold">[[ o.code ]]</para>
</td>
<td>
<para style="terp_default_8_bold">[[ o.complete_name ]]</para>
</td>
<td>
<para style="terp_default_8_right_bold"><u>[[ move_sum_debit(o.id,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
</td>
<td>
<para style="terp_default_8_right_bold"><u>[[ move_sum_credit(o.id,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
</td>
<td>
<para style="terp_default_8_right_bold"><u>[[ move_sum_balance(o.id,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
</td>
<td>
<para style="terp_default_8_right_bold"><u>[[ move_sum_quantity(o.id,data['form']['date1'],data['form']['date2']) or 0.0 ]]</u></para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_8">[[ repeatIn(lines_g(o.id,data['form']['date1'],data['form']['date2']),'move_g') ]]</para>
<para style="terp_default_8">[[ move_g['code'] ]]</para>
</td>
<td>
<para style="terp_default_8">[[ move_g['name'] ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ move_g['debit'] ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ move_g['credit'] ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ move_g['balance'] ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ (move_g['quantity'] or 0.0) ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_8">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="57.0,227.0,50.0,50.0,49.0,50.0" style="Tableau2">
<tr>
<td>
<para style="P7">[[ repeatIn(lines_g(o.id,data['form']['date1'],data['form']['date2']),'move_g') ]]</para>
<para style="P7">[[ move_g['code'] ]]</para>
</td>
<td>
<para style="P7">[[ move_g['name'] ]]</para>
</td>
<td>
<para style="P8">[[ '%.2f' % move_g['debit'] ]]</para>
</td>
<td>
<para style="P8">[[ '%.2f' % move_g['credit'] ]]</para>
</td>
<td>
<para style="P8">[[ '%.2f' % move_g['balance'] ]]</para>
</td>
<td>
<para style="P8">[[ '%.2f' % (move_g['quantity'] or 0.0) ]]</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="284.0,50.0,50.0,49.0,50.0" style="Table1">
<tr>
<td>
<para style="P9">Total ([[ o.code ]])</para>
</td>
<td>
<para style="P9">[[ '%.2f' % (move_sum_debit(o.id,data['form']['date1'],data['form']['date2']) or 0.0) ]]</para>
</td>
<td>
<para style="P9">[[ '%.2f' % (move_sum_credit(o.id,data['form']['date1'],data['form']['date2']) or 0.0 )]]</para>
</td>
<td>
<para style="P9">[[ '%.2f' % (move_sum_balance(o.id,data['form']['date1'],data['form']['date2']) or 0.0) ]]</para>
</td>
<td>
<para style="P9">[[ '%.2f' % move_sum_quantity(o.id,data['form']['date1'],data['form']['date2']) or 0.0]]</para>
</td>
</tr>
</blockTable>
<para style="P15">
<para style="terp_default_8">
<font color="white"> </font>
</para>
</section>
<para style="P12">
<font color="white"> </font>
</para>
<blockTable colWidths="284.0,50.0,50.0,50.0,49.0" style="Tableau10">
<tr>
<td>
<para style="P3">Total</para>
</td>
<td>
<para style="P3">[[ '%.2f' % (sum_debit(objects,data['form']['date1'],data['form']['date2']) or 0.0) ]]</para>
</td>
<td>
<para style="P3">[[ '%.2f' % (sum_credit(objects,data['form']['date1'],data['form']['date2']) or 0.0) ]]</para>
</td>
<td>
<para style="P3">[[ '%.2f' % (sum_balance(objects,data['form']['date1'],data['form']['date2']) or 0.0)]]</para>
</td>
<td>
<para style="P3">[[ '%.2f' % sum_quantity(objects,data['form']['date1'],data['form']['date2']) or 0.0 ]]</para>
</td>
</tr>
</blockTable>
<para style="P13">
<font color="white"> </font>
</para>
<para style="P14">
<font color="white"> </font>
</para>
</story>
</document>
</document>

View File

@ -71,7 +71,10 @@ class account_balance(report_sxw.rml_parse):
self.cr.execute("select name from account_period where id in (%s)" % (period_ids))
res=self.cr.fetchall()
for r in res:
result+=r[0]+", "
if (r == res[res.__len__()-1]):
result+=r[0]+". "
else:
result+=r[0]+", "
return str(result and result[:-1]) or ''
def lines(self, form, ids={}, done=None, level=1):
@ -118,6 +121,7 @@ class account_balance(report_sxw.rml_parse):
'credit': account.credit,
'balance': account.balance,
'leef': not bool(account.child_id),
'bal_type':'',
}
self.sum_debit += account.debit
self.sum_credit += account.credit
@ -177,6 +181,10 @@ class account_balance(report_sxw.rml_parse):
r['credit']=''
r['balance']=''
r['leef']=''
if sum > 0.0:
r['bal_type']=" Dr."
else:
r['bal_type']=" Cr."
return res or ''
def date_range(self,start,end):

View File

@ -61,15 +61,14 @@
<blockLeftPadding length="0" start="0,0" stop="-1,0"/>
</blockTableStyle>
<blockTableStyle id="TrLevel4">
<lineStyle kind="LINEBELOW" colorName="#777777" start="1,0" stop="1,0"/>
<blockLeftPadding length="0" start="0,0" stop="-1,0"/>
<blockLeftPadding length="0" start="0,0" stop="-1,0"/>
</blockTableStyle>
<blockTableStyle id="TrLevel3">
<lineStyle kind="LINEBELOW" colorName="#777777" start="1,0" stop="-1,0"/>
<blockLeftPadding length="0" start="0,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#777777" start="1,0" stop="1,0"/>
<blockLeftPadding length="0" start="0,0" stop="-1,0"/>
</blockTableStyle>
<blockTableStyle id="TrLevel2">
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBELOW" colorName="#777777" start="1,0" stop="-1,0"/>
<blockLeftPadding length="0" start="0,0" stop="1,0"/>
</blockTableStyle>
<blockTableStyle id="TrLevel1">
@ -94,7 +93,7 @@
fontSize="8.0" />
<paraStyle
name="Level3"
fontName="Helvetica-Bold"
fontName="Helvetica"
fontSize="8.0" />
<paraStyle name="Level2"
fontSize="8.0"
@ -150,14 +149,16 @@
<para style="P14">[[ setTag('para','para',{'style':('Level'+str(a['level']))}) ]]<font color="white">[[ (a['level']&lt;6 and removeParentNode('font') or '... '*(a['level']-4)) ]]</font>[[ setTag('blockTable','blockTable',{'style':'TrLevel'+str(a['level'])}) ]][[ a['name'] ]]</para>
</td>
<td>
<para style="P3">[[ formatLang(a['debit']) and '%.2f'%a['debit'] or '']]</para>
<para style="P3">[[ (a['level']&lt;4) and setTag('para','para',{'style':'P3'}) ]]<u>[[ (a['leef'] and removeParentNode('para')) or formatLang(a['debit']) and '%.2f'%a['debit'] or '0.00' ]]</u></para>
<para style="P3">[[ ((not a['leef']) and removeParentNode('para')) or formatLang(a['debit']) and '%.2f'%a['debit'] or '0.00' ]]</para>
</td>
<td>
<para style="P3">[[ formatLang(a['credit']) and '%.2f'%a['credit'] or '']]</para>
<para style="P3">[[ (a['level']&lt;4) and setTag('para','para',{'style':'P3'}) ]]<u>[[ (a['leef'] and removeParentNode('para')) or formatLang(a['credit']) and '%.2f'%a['credit'] or '0.00' ]]</u></para>
<para style="P3">[[ ((not a['leef']) and removeParentNode('para')) or formatLang(a['credit']) and '%.2f'%a['credit'] or '0.00' ]]</para>
</td>
<td>
<para style="P3">[[ (a['level']&lt;4) and setTag('para','para',{'style':'P3a'}) ]]<u>[[ (a['leef'] and removeParentNode('para')) or formatLang(a['balance']) and '%.2f'%a['balance'] or '' ]]</u></para>
<para style="P3">[[ ((not a['leef']) and removeParentNode('para')) or formatLang(a['balance']) and formatLang(a['balance']) or '' ]]</para>
<para style="P3">[[ (a['level']&lt;4) and setTag('para','para',{'style':'P3a'}) ]]<u>[[ (a['leef'] and removeParentNode('para')) or formatLang(a['balance']) and '%.2f'%a['balance'] or '0.00' ]]</u></para>
<para style="P3">[[ ((not a['leef']) and removeParentNode('para')) or formatLang(a['balance']) and formatLang(a['balance']) or '0.00' ]]</para>
</td>
</tr>
<tr>
@ -166,13 +167,13 @@
<para style="P14"><font color="white">[[ '... '*(a['level']-3) ]]</font>[[ a['lname'] ]]</para>
</td>
<td>
<para style="P3">[[ formatLang(a['debit1']) and '%.2f'%a['debit1'] or '']]</para>
<para style="P3">[[ formatLang(a['debit1']) and '%.2f'%a['debit1'] or '0.00']]</para>
</td>
<td>
<para style="P3">[[ formatLang(a['credit1']) and '%.2f'%a['credit1'] or '']]</para>
<para style="P3">[[ formatLang(a['credit1']) and '%.2f'%a['credit1'] or '0.00']]</para>
</td>
<td>
<para style="P3">[[ formatLang(a['balance1']) and '%.2f'%a['balance1'] or '']]</para>
<para style="P3">[[ formatLang(a['balance1']) and '%.2f'%a['balance1'] or '0.00' ]]</para>
</td>
</tr>
</blockTable>

View File

@ -1,9 +1,6 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2004-2008 TINY SPRL. (http://tiny.be) All Rights Reserved.
#
# $Id$
# Copyright (c) 2005-2006 TINY SPRL. (http://tiny.be) All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
@ -30,11 +27,15 @@
import pooler
import time
import re
import datetime
from report import report_sxw
class partner_balance(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(partner_balance, self).__init__(cr, uid, name, context)
self.date_lst = []
self.date_lst_string = ''
self.localcontext.update( {
'time': time,
'lines': self.lines,
@ -47,44 +48,138 @@ class partner_balance(report_sxw.rml_parse):
'solde_credit': self._solde_balance_credit,
'get_company': self._get_company,
'get_currency': self._get_currency,
'comma_me' : self.comma_me,
})
## Compute account list one time
#
# Date Management
#
def date_range(self,start,end):
start = datetime.date.fromtimestamp(time.mktime(time.strptime(start,"%Y-%m-%d")))
end = datetime.date.fromtimestamp(time.mktime(time.strptime(end,"%Y-%m-%d")))
full_str_date = []
#
r = (end+datetime.timedelta(days=1)-start).days
#
date_array = [start+datetime.timedelta(days=i) for i in range(r)]
for date in date_array:
full_str_date.append(str(date))
return full_str_date
#
def transform_period_into_date_array(self,data):
## Get All Period Date
#
# If we have no period we will take all perdio in the FiscalYear.
if not data['form']['periods'][0][2] :
periods_id = self.pool.get('account.period').search(self.cr, self.uid, [('fiscalyear_id','=',data['form']['fiscalyear'])])
else:
periods_id = data['form']['periods'][0][2]
date_array = []
for period_id in periods_id:
period_obj = self.pool.get('account.period').browse(self.cr, self.uid, period_id)
date_array = date_array + self.date_range(period_obj.date_start,period_obj.date_stop)
self.date_lst = date_array
self.date_lst.sort()
def transform_date_into_date_array(self,data):
return_array = self.date_range(data['form']['date1'],data['form']['date2'])
self.date_lst = return_array
self.date_lst.sort()
def comma_me(self,amount):
if type(amount) is float :
amount = str('%.2f'%amount)
else :
amount = str(amount)
if (amount == '0'):
return ' '
orig = amount
new = re.sub("^(-?\d+)(\d{3})", "\g<1>'\g<2>", amount)
if orig == new:
return new
else:
return self.comma_me(new)
def preprocess(self, objects, data, ids):
# Transformation des date
#
#
if data['form'].has_key('fiscalyear'):
self.transform_period_into_date_array(data)
else:
self.transform_date_into_date_array(data)
##
self.date_lst_string = '\'' + '\',\''.join(map(str,self.date_lst)) + '\''
## Compute Code
account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
line_query = account_move_line_obj._query_get(self.cr, self.uid, obj='line',
context={'fiscalyear': 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_query + ' ' \
'AND line.account_id = account.id ' \
'AND account.company_id = %d ' \
'AND account.active',
(data['form']['date1'], data['form']['date2'],
data['form']['company_id']))
new_ids = [id for (id,) in self.cr.fetchall()]
#
if (data['form']['result_selection'] == 'customer' ):
self.ACCOUNT_TYPE = "('receivable')"
elif (data['form']['result_selection'] == 'supplier'):
self.ACCOUNT_TYPE = "('payable')"
else:
self.ACCOUNT_TYPE = "('payable','receivable')"
#
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 ' \
'AND a.type IN ' + self.ACCOUNT_TYPE + " " \
'AND a.active', (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)
super(partner_balance, self).preprocess(objects, data, new_ids)
super(partner_balance, self).preprocess(objects, data, ids)
def lines(self,data):
def lines(self):
if not self.partner_ids:
return []
account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
line_query = account_move_line_obj._query_get(self.cr, self.uid, obj='l',
context={'fiscalyear': self.datas['form']['fiscalyear'],'state':self.datas['form']['state']})
full_account = []
result_tmp = 0.0
#
#
#
if data['form']['soldeinit'] :
self.cr.execute(
"SELECT p.ref, p.name,l.account_id,ac.name as account_name,ac.code as code , sum(debit) as debit, sum(credit) as credit, " \
"CASE WHEN sum(debit) > sum(credit) " \
"THEN sum(debit) - sum(credit) " \
"ELSE 0 " \
"END AS sdebit, " \
"CASE WHEN sum(debit) < sum(credit) " \
"THEN sum(credit) - sum(debit) " \
"ELSE 0 " \
"END AS scredit, " \
"(SELECT sum(debit-credit) " \
"FROM account_move_line l " \
"WHERE partner_id = p.id " \
"AND date < %s " \
"AND blocked = TRUE AND l.reconcile_id IS NULL " \
") AS enlitige " \
"FROM account_move_line l LEFT JOIN res_partner p ON (l.partner_id=p.id) " \
"JOIN account_account ac ON (l.account_id = ac.id)" \
"WHERE " \
# " account_id IN (" + self.account_ids + ") " \
"l.date < %s AND l.reconcile_id IS NULL " \
"GROUP BY p.id, p.ref, p.name,l.account_id,ac.name,ac.code " \
"ORDER BY l.account_id,p.name",
(self.date_lst[0],self.date_lst[0]))
res = self.cr.dictfetchall()
for r in res:
full_account.append(r)
#
#
#
self.cr.execute(
"SELECT p.ref, p.name, sum(debit) as debit, sum(credit) as credit, " \
"SELECT p.ref,l.account_id,ac.name as account_name,ac.code as code ,p.name, sum(debit) as debit, sum(credit) as credit, " \
"CASE WHEN sum(debit) > sum(credit) " \
"THEN sum(debit) - sum(credit) " \
"ELSE 0 " \
@ -96,129 +191,315 @@ class partner_balance(report_sxw.rml_parse):
"(SELECT sum(debit-credit) " \
"FROM account_move_line l " \
"WHERE partner_id = p.id " \
"AND date >= %s " \
"AND date <= %s " \
"AND l.date IN (" + self.date_lst_string + ") " \
"AND blocked = TRUE " \
"AND " + line_query + " " \
") AS enlitige " \
"FROM account_move_line l LEFT JOIN res_partner p ON (l.partner_id=p.id) " \
"WHERE partner_id IN (" + self.partner_ids + ") " \
"AND account_id IN (" + self.account_ids + ") " \
"AND l.date >= %s " \
"AND l.date <= %s " \
"AND " + line_query + " " \
"GROUP BY p.id, p.ref, p.name " \
"ORDER BY p.ref, p.name",
(self.datas['form']['date1'], self.datas['form']['date2'],
self.datas['form']['date1'], self.datas['form']['date2']))
"JOIN account_account ac ON (l.account_id = ac.id)" \
"WHERE " \
# " account_id IN (" + self.account_ids + ") " \
" l.date IN (" + self.date_lst_string + ") " \
"GROUP BY p.id, p.ref, p.name,l.account_id,ac.name,ac.code " \
"ORDER BY l.account_id,p.name")
res = self.cr.dictfetchall()
return res
print"=====res=====",res
for r in res:
full_account.append(r)
## We will now compute Total
return self._add_subtotal(full_account)
def _sum_debit(self):
def _add_subtotal(self,cleanarray):
i=0
completearray = []
tot_debit = 0.0
tot_credit = 0.0
tot_scredit = 0.0
tot_sdebit = 0.0
tot_enlitige = 0.0
for r in cleanarray:
# For the first element we always add the line
# type = 1 is the line is the first of the account
# type = 2 is an other line of the account
if i==0:
# We add the first as the header
#
##
new_header = {}
new_header['ref'] = ''
new_header['name'] = r['account_name']
new_header['code'] = r['code']
new_header['debit'] = 0
new_header['credit'] = 0
new_header['scredit'] = 0
new_header['sdebit'] = 0
new_header['enlitige'] = 0
new_header['balance'] = 0
new_header['type'] = 3
##
completearray.append(new_header)
#
r['type'] = 1
r['balance'] = float(r['sdebit']) - float(r['scredit'])
completearray.append(r)
#
tot_debit = r['debit']
tot_credit = r['credit']
tot_scredit = r['scredit']
tot_sdebit = r['sdebit']
tot_enlitige = (r['enlitige'] or 0.0)
#
else:
if cleanarray[i]['account_id'] <> cleanarray[i-1]['account_id']:
##
new_tot = {}
new_tot['ref'] = 'Total'
new_tot['name'] = cleanarray[i-1]['account_name']
new_tot['code'] = cleanarray[i-1]['code']
new_tot['debit'] = tot_debit
new_tot['credit'] = tot_credit
new_tot['scredit'] = tot_scredit
new_tot['sdebit'] = tot_sdebit
new_tot['enlitige'] = tot_enlitige
new_tot['balance'] = float(tot_sdebit) - float(tot_scredit)
new_tot['type'] = 3
##
completearray.append(new_tot)
# we reset the counter
tot_debit = r['debit']
tot_credit = r['credit']
tot_scredit = r['scredit']
tot_sdebit = r['sdebit']
tot_enlitige = (r['enlitige'] or 0.0)
#
##
new_header = {}
new_header['ref'] = ''
new_header['name'] = r['account_name']
new_header['code'] = r['code']
new_header['debit'] = 0
new_header['credit'] = 0
new_header['scredit'] = 0
new_header['sdebit'] = 0
new_header['enlitige'] = 0
new_header['balance'] = 0
new_header['type'] = 3
##
##
completearray.append(new_header)
##
#
r['type'] = 1
#
r['balance'] = float(r['sdebit']) - float(r['scredit'])
#
completearray.append(r)
if cleanarray[i]['account_id'] == cleanarray[i-1]['account_id']:
# we reset the counter
tot_debit = tot_debit + r['debit']
tot_credit = tot_credit + r['credit']
tot_scredit = tot_scredit + r['scredit']
tot_sdebit = tot_sdebit + r['sdebit']
tot_enlitige = tot_enlitige + (r['enlitige'] or 0.0)
#
r['type'] = 2
#
r['balance'] = float(r['sdebit']) - float(r['scredit'])
#
completearray.append(r)
i = i + 1
return completearray
def _sum_debit(self,data):
if not self.ids:
return 0.0
account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
line_query = account_move_line_obj._query_get(self.cr, self.uid,
obj='account_move_line',
context={'fiscalyear': self.datas['form']['fiscalyear'],'state':self.datas['form']['state']})
result_tmp = 0.0
#
#
if data['form']['soldeinit'] :
self.cr.execute(
'SELECT sum(debit) ' \
'FROM account_move_line AS l ' \
'WHERE ' \
# ' account_id IN (' + self.account_ids + ') ' \
' l.reconcile_id IS NULL ' \
'AND date < %s ',
(self.date_lst[0],))
result_tmp = float(self.cr.fetchone()[0] or 0.0)
#
#
self.cr.execute(
'SELECT sum(debit) ' \
'FROM account_move_line ' \
'WHERE partner_id IN (' + self.partner_ids + ') ' \
'AND account_id IN (' + self.account_ids + ') ' \
'AND date >=%s ' \
'AND date <= %s ' \
'AND ' + line_query,
(self.datas['form']['date1'], self.datas['form']['date2']))
return self.cr.fetchone()[0] or 0.0
'FROM account_move_line AS l ' \
'WHERE ' \
# ' account_id IN (' + self.account_ids + ') ' \
' l.date IN (' + self.date_lst_string + ') ' )
result_tmp = result_tmp + float(self.cr.fetchone()[0] or 0.0)
return result_tmp
def _sum_credit(self):
def _sum_credit(self,data):
if not self.ids:
return 0.0
account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
line_query = account_move_line_obj._query_get(self.cr, self.uid,
obj='account_move_line',
context={'fiscalyear': self.datas['form']['fiscalyear'],'state':self.datas['form']['state']})
result_tmp = 0.0
#
#
if data['form']['soldeinit'] :
self.cr.execute(
'SELECT sum(credit) ' \
'FROM account_move_line AS l ' \
'WHERE ' \
# ' account_id IN (' + self.account_ids + ') ' \
' l.reconcile_id IS NULL ' \
'AND date < %s ' ,
(self.date_lst[0],))
result_tmp = float(self.cr.fetchone()[0] or 0.0)
#
#
self.cr.execute(
'SELECT sum(credit) ' \
'FROM account_move_line ' \
'WHERE partner_id IN (' + self.partner_ids + ') ' \
'AND account_id IN (' + self.account_ids + ') ' \
'AND date >= %s ' \
'AND date <= %s ' \
'AND ' + line_query,
(self.datas['form']['date1'], self.datas['form']['date2']))
return self.cr.fetchone()[0] or 0.0
'FROM account_move_line AS l ' \
'WHERE ' \
# ' account_id IN (' + self.account_ids + ') ' \
' l.date IN (' + self.date_lst_string + ') ' )
result_tmp = result_tmp + float(self.cr.fetchone()[0] or 0.0)
return result_tmp
def _sum_litige(self):
def _sum_litige(self,data):
if not self.ids:
return 0.0
account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
line_query = account_move_line_obj._query_get(self.cr, self.uid,
obj='account_move_line',
context={'fiscalyear': self.datas['form']['fiscalyear'],'state':self.datas['form']['state']})
result_tmp = 0.0
#
#
if data['form']['soldeinit'] :
self.cr.execute(
'SELECT sum(debit-credit) ' \
'FROM account_move_line AS l ' \
'WHERE ' \
# ' account_id IN (' + self.account_ids + ') ' \
' l.reconcile_id IS NULL ' \
'AND date < %s ' \
'AND blocked=TRUE ' ,
(self.date_lst[0],))
result_tmp = float(self.cr.fetchone()[0] or 0.0)
#
#
self.cr.execute(
'SELECT sum(debit-credit) ' \
'FROM account_move_line ' \
'WHERE partner_id IN (' + self.partner_ids + ') ' \
'AND account_id IN (' + self.account_ids + ') ' \
'AND date >= %s ' \
'AND date <= %s ' \
'AND blocked=TRUE ' \
'AND ' + line_query,
(self.datas['form']['date1'], self.datas['form']['date2']))
return self.cr.fetchone()[0] or 0.0
'FROM account_move_line AS l ' \
'WHERE ' \
# ' account_id IN (' + self.account_ids + ') ' \
' l.date IN (' + self.date_lst_string + ') ' \
'AND blocked=TRUE ' )
result_tmp = result_tmp + float(self.cr.fetchone()[0] or 0.0)
return result_tmp
def _sum_sdebit(self):
def _sum_sdebit(self,data):
if not self.ids:
return 0.0
account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
line_query = account_move_line_obj._query_get(self.cr, self.uid,
obj='account_move_line',
context={'fiscalyear': self.datas['form']['fiscalyear'],'state':self.datas['form']['state']})
result_tmp = 0.0
#
#
if data['form']['soldeinit'] :
self.cr.execute(
'SELECT CASE WHEN sum(debit) > sum(credit) ' \
'THEN sum(debit) - sum(credit) ' \
'ELSE 0 ' \
'END ' \
'FROM account_move_line AS l ' \
'WHERE ' \
# ' account_id IN (' + self.account_ids + ') ' \
' date < %s ' \
'AND reconcile_id IS NULL ' \
'GROUP BY partner_id',
(self.date_lst[0],))
if self.cr.fetchone() != None:
result_tmp = float(self.cr.fetchone()[0])
else:
result_tmp = 0.0
#
#
self.cr.execute(
'SELECT CASE WHEN sum(debit) > sum(credit) ' \
'THEN sum(debit - credit) ' \
'THEN sum(debit) - sum(credit) ' \
'ELSE 0 ' \
'END ' \
'FROM account_move_line ' \
'WHERE partner_id IN (' + self.partner_ids + ') ' \
'AND account_id IN (' + self.account_ids + ') ' \
'AND date >= %s ' \
'AND date <= %s ' \
'AND ' + line_query + ' ' \
'GROUP BY partner_id',
(self.datas['form']['date1'], self.datas['form']['date2']))
return self.cr.fetchone()[0] or 0.0
'FROM account_move_line AS l ' \
'WHERE ' \
# ' account_id IN (' + self.account_ids + ') ' \
'l.date IN (' + self.date_lst_string + ') ' \
'GROUP BY partner_id')
if self.cr.fetchone() != None:
result_tmp = result_tmp + float(self.cr.fetchone()[0] or 0.0)
else:
result_tmp = 0.0
return result_tmp
def _sum_scredit(self):
def _sum_scredit(self,data):
if not self.ids:
return 0.0
account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
line_query = account_move_line_obj._query_get(self.cr, self.uid,
obj='account_move_line',
context={'fiscalyear': self.datas['form']['fiscalyear'],'state':self.datas['form']['state']})
result_tmp = 0.0
#
#
if data['form']['soldeinit'] :
self.cr.execute(
'SELECT CASE WHEN sum(debit) < sum(credit) ' \
'THEN sum(credit) - sum(debit) ' \
'ELSE 0 ' \
'END ' \
'FROM account_move_line AS l ' \
'WHERE ' \
# ' account_id IN (' + self.account_ids + ') ' \
' date <= %s ' \
'AND l.reconcile_id IS NULL ' \
'GROUP BY partner_id',
(self.date_lst[0],))
if self.cr.fetchone() != None:
result_tmp = float(self.cr.fetchone()[0])
else:
result_tmp = 0.0
#
#
self.cr.execute(
'SELECT CASE WHEN sum(debit) < sum(credit) ' \
'THEN sum(credit - debit) ' \
'THEN sum(credit) - sum(debit) ' \
'ELSE 0 ' \
'END ' \
'FROM account_move_line ' \
'WHERE partner_id IN (' + self.partner_ids + ') ' \
'AND account_id IN (' + self.account_ids + ') ' \
'AND date >= %s ' \
'AND date <= %s ' \
'AND ' + line_query + ' ' \
'GROUP BY partner_id',
(self.datas['form']['date1'], self.datas['form']['date2']))
return self.cr.fetchone()[0] or 0.0
def _solde_balance_debit(self):
debit, credit = self._sum_debit(), self._sum_credit()
'FROM account_move_line AS l ' \
'WHERE ' \
# ' account_id IN (' + self.account_ids + ') ' \
'l.date IN (' + self.date_lst_string + ') ' \
'GROUP BY partner_id')
if self.cr.fetchone() != None:
result_tmp = result_tmp + float(self.cr.fetchone()[0] or 0.0)
else:
result_tmp = 0.0
return result_tmp
def _solde_balance_debit(self,data):
debit, credit = self._sum_debit(data), self._sum_credit(data)
return debit > credit and debit - credit
def _solde_balance_credit(self):
debit, credit = self._sum_debit(), self._sum_credit()
def _solde_balance_credit(self,data):
debit, credit = self._sum_debit(data), self._sum_credit(data)
return credit > debit and credit - debit
def _get_company(self, form):
@ -228,9 +509,5 @@ class partner_balance(report_sxw.rml_parse):
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,
'account/report/partner_balance.rml',parser=partner_balance,
header=False)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,8 +1,37 @@
<?xml version="1.0"?>
<document filename="test.pdf">
<document filename="HipHop.pdf">
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="57.0" y1="57.0" width="481" height="728"/>
<pageGraphics>
<!--logo-->
<!--<fill color="darkblue"/>-->
<!--<stroke color="darkblue"/>-->
<!--TITLE COMPANY-->
<!-- <drawString x="4.6cm" y="28.7cm">[[ company.partner_id.name ]]</drawString> -->
<setFont name="Helvetica-Bold" size="9"/>
<!--COL 1-->
<drawString x="1.0cm" y="28.1cm">[[ company.name ]]</drawString>
<drawString x="12.7cm" y="28.1cm">Third Party Balance [[ data['form']['result_selection'] == 'customer' and '/ Débiteur' ]] [[ data['form']['result_selection'] == 'supplier' and '/ Créancier' ]] [[ data['form']['result_selection'] == 'all' and '/ Créancier et Débiteur' ]] - [[ get_currency(data['form']) ]]</drawString>
<!-- Header -->
<setFont name="Helvetica" size="9"/>
<drawString x="1.0cm" y="1cm"> [[ time.strftime("%m-%d-%y %H:%M", time.localtime()) ]]</drawString>
<drawString x="19.0cm" y="1cm">Page <pageNumber/></drawString>
<!--<drawRightString x="19.8cm" y="28cm">[[ company.rml_header1 ]]</drawRightString>-->
<lineMode width="0.7"/>
<lines>1cm 27.7cm 20cm 27.7cm</lines>
<setFont name="Helvetica" size="8"/>
</pageGraphics>
</pageTemplate>
</template>
<stylesheet>
@ -13,55 +42,24 @@
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#e6e6e6" start="0,0" stop="0,-1"/>
<blockBackground colorName="#e6e6e6" start="1,0" stop="1,-1"/>
<blockBackground colorName="#e6e6e6" start="2,0" stop="2,-1"/>
<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"/>
<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="Table6">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="4,0" stop="4,-1"/>
<lineStyle kind="LINEAFTER" colorName="#000000" start="4,0" stop="4,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
<lineStyle kind="GRID" colorName="black"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,1" stop="-1,-1"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="4,0" stop="4,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="5,0" stop="5,-1"/>
<lineStyle kind="LINEAFTER" colorName="#000000" start="5,0" stop="5,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
<blockAlignment value="RIGHT" start="2,1" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
@ -70,197 +68,63 @@
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="4,0" stop="4,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="5,0" stop="5,-1"/>
<lineStyle kind="LINEAFTER" colorName="#000000" start="5,0" stop="5,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="0,1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="1,1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="2,1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="3,1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="4,1" stop="4,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#000000" start="5,1" stop="5,-1"/>
<lineStyle kind="LINEAFTER" colorName="#000000" start="5,1" stop="5,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
<lineStyle kind="GRID" colorName="black"/>
</blockTableStyle>
<blockTableStyle id="Tableau3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" />
<lineStyle kind="OUTLINE" colorName="#e6e6e6" />
<blockBackground colorName="white" start="0,0" stop="-1,0"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</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" 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="P1" fontName="Helvetica" fontSize="8.0" leading="25" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P2" fontName="Helvetica" fontSize="10.0" leading="13" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P3" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P4" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P5" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P6" fontName="Helvetica" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P7" fontName="Helvetica" fontSize="8.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P9" fontName="Helvetica" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P9b" fontName="Helvetica-Bold" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P10" fontName="Helvetica" alignment="CENTER"/>
<paraStyle name="P11" fontName="Helvetica" fontSize="8.0" leading="10"/>
<paraStyle name="P12" fontName="Helvetica-Bold" fontSize="8.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P12a" fontName="Helvetica-Bold" fontSize="8.0" leading="14" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P13" fontName="Helvetica" 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"/>
<paraStyle name="Table Contents" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Times-Roman"/>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Contents" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
</stylesheet>
<images/>
<story>
<blockTable colWidths="145.0,186.0,151.0" repeatRows="1" style="Table1">
<tr>
<td>
<para style="Table Contents">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P1">Third party balance</para>
</td>
<td>
<para style="P2"><font face="Times-Roman">From</font> [[ formatLang(data['form']['date1'], date=True) ]]</para>
<para style="P2"><font face="Times-Roman">to</font> [[ formatLang(data['form']['date2'], date=True) ]]</para>
</td>
</tr>
<tr>
<td>
<para style="Table Contents">[[ get_company(data['form']) ]]</para>
</td>
<td>
<para style="P5">
<font color="white"> </font>
</para>
</td>
<td>
<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="P10"><font face="Times-Roman">Printing date:</font> [[ formatLang(time.strftime('%Y-%m-%d'), date=True) ]] <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="P12">Account number</para>
</td>
<td>
<para style="P12">Account name</para>
</td>
<td>
<para style="P12">Transactions</para>
</td>
<td>
<para style="P12">Balances</para>
</td>
<td>
<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">
<tr>
<td>
<para style="P12">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P12">Debit</para>
</td>
<td>
<para style="P12">Credit</para>
</td>
<td>
<para style="P12">Debit</para>
</td>
<td>
<para style="P12">Credit</para>
</td>
<td>
<para style="P12">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<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="P14">[[ repeatIn(lines(), 'a') ]]<font face="Times-Roman">[[ a['ref'] ]]</font></para>
</td>
<td>
<para style="P3">[[ a['name'] ]]</para>
</td>
<td>
<para style="P4">[[ formatLang(a['debit']) ]]</para>
</td>
<td>
<para style="P4">[[ formatLang(a['credit']) ]]</para>
</td>
<td>
<para style="P4">[[ formatLang(a['sdebit']) ]]</para>
</td>
<td>
<para style="P4">[[ formatLang(a['scredit']) ]]</para>
</td>
<td>
<para style="P4">[[ formatLang((a['enlitige'] or 0.0)) ]]</para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<blockTable colWidths="198.0,60.0,58.0,56.0,53.0,57.0" style="Table4">
<blockTable colWidths="247.0,60.0,58.0,55.0,54.0,57.0" style="Tableau3">
<tr>
<td>
<para style="P7">Grand total</para>
</td>
<td>
<para style="P8">[[ formatLang(sum_debit()) ]]</para>
<para style="P8">[[ comma_me(sum_debit(data)) ]]</para>
</td>
<td>
<para style="P8">[[ formatLang(sum_credit()) ]]</para>
<para style="P8">[[ comma_me(sum_credit(data)) ]]</para>
</td>
<td>
<para style="P8">[[ formatLang(sum_sdebit()) ]]</para>
<para style="P8">[[ comma_me(sum_sdebit(data)) ]]</para>
</td>
<td>
<para style="P8">[[ formatLang(sum_scredit()) ]]</para>
<para style="P8">[[ comma_me(sum_scredit(data)) ]]</para>
</td>
<td>
<para style="P8">[[ formatLang(sum_litige()) ]]</para>
<para style="P8">[[ comma_me(sum_litige(data)) ]]</para>
</td>
</tr>
<tr>
@ -278,10 +142,10 @@
</para>
</td>
<td>
<para style="P8">[[ formatLang(solde_debit()) ]]</para>
<para style="P8">[[ comma_me(solde_debit(data)) ]]</para>
</td>
<td>
<para style="P8">[[ formatLang(solde_credit()) ]]</para>
<para style="P8">[[ comma_me(solde_credit(data)) ]]</para>
</td>
<td>
<para style="P8">
@ -290,10 +154,55 @@
</td>
</tr>
</blockTable>
<blockTable colWidths="61.0,196.0,60.0,58.0,109.0,57.0" repeatRows="1" style="Table2">
<tr>
<td>
<para style="P12a">Code</para>
</td>
<td>
<para style="P12a">Partner name</para>
</td>
<td>
<para style="P12">Débit</para>
</td>
<td>
<para style="P12">Crédit</para>
</td>
<td>
<para style="P12">Balance</para>
</td>
<td>
<para style="P12">In dispute</para>
</td>
</tr>
<tr>
<td>
<para style="P3">[[ repeatIn(lines(data), 'a') ]]<font face="Helvetica">[[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ a['ref'] ]]</font></para>
</td>
<td>
<para style="P3">[[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ a['type']==3 and a['code'] ]] [[ a['name'] ]] </para>
</td>
<td>
<para style="P4">[[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ comma_me(a['debit']) ]]</para>
</td>
<td>
<para style="P4">[[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ comma_me(a['credit']) ]]</para>
</td>
<td>
<para style="P4">[[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ comma_me(a['balance']) ]]</para>
</td>
<td>
<para style="P4">[[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ comma_me(a['enlitige']) ]]</para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<para style="P11"/>
<para style="P9">
<font color="white"> </font>
</para>
</story>
</document>

View File

@ -1,9 +1,6 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2004-2008 TINY SPRL. (http://tiny.be) All Rights Reserved.
#
# $Id$
# Copyright (c) 2005-2006 TINY SPRL. (http://tiny.be) All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
@ -32,28 +29,51 @@ import time
import wizard
import pooler
report_type = '''<?xml version="1.0"?>
<form string="Select Report Type">
</form>'''
dates_form = '''<?xml version="1.0"?>
<form string="Select period">
<field name="company_id" colspan="4"/>
<newline/>
<field name="fiscalyear" colspan="4"/>
<label align="0.7" colspan="6" string="(If you do not select Fiscal year it will take all open fiscal year)"/>
<newline/>
<field name="date1"/>
<field name="date2"/>
<newline/>
<field name="state" colspan="4"/>
<field name="result_selection"/>
<field name="soldeinit"/>
</form>'''
dates_fields = {
'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True},
'result_selection':{'string':"Display partner ",'type':'selection','selection':[('customer','Debiteur'),('supplier','Creancier'),('all','Tous')]},
'soldeinit':{'string':"Inclure les soldes initiaux",'type':'boolean'},
'date1': {'string':'Start date', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-01-01')},
'date2': {'string':'End date', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')},
}
period_form = '''<?xml version="1.0"?>
<form string="Select period">
<field name="company_id" colspan="4"/>
<newline/>
<field name="fiscalyear" colspan="4"/>
<field name="periods" colspan="4"/>
<newline/>
<field name="result_selection"/>
<field name="soldeinit"/>
</form>'''
period_fields = {
'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True},
'fiscalyear': {'string': 'Fiscal year', 'type': 'many2one', 'relation': 'account.fiscalyear',
'help': 'Keep empty for all open fiscal year'},
'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')},
'state':{'string':'Target Moves','type':'selection','selection': [('all','All Entries'),('posted','All Posted Entries')]}
'periods': {'string': 'Periods', 'type': 'many2many', 'relation': 'account.period', 'help': 'All periods if empty'},
'result_selection':{'string':"Display partner",'type':'selection','selection':[('customer','Debiteur'),('supplier','Creancier'),('all','Tous')]},
'soldeinit':{'string':"Inclure les soldes initiaux",'type':'boolean'},
}
class wizard_report(wizard.interface):
def _get_defaults(self, cr, uid, data, context):
fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
@ -65,22 +85,57 @@ class wizard_report(wizard.interface):
else:
company_id = pooler.get_pool(cr.dbname).get('res.company').search(cr, uid, [('parent_id', '=', False)])[0]
data['form']['company_id'] = company_id
data['form']['state']='all'
data['form']['soldeinit'] = True
data['form']['result_selection'] = 'all'
return data['form']
def _get_defaults_fordate(self, cr, uid, data, context):
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
data['form']['soldeinit'] = True
data['form']['result_selection'] = 'all'
return data['form']
def _check_date(self, cr, uid, data, context):
sql = """
SELECT f.id, f.date_start, f.date_stop FROM account_fiscalyear f Where '%s' between f.date_start and f.date_stop """%(data['form']['date1'])
cr.execute(sql)
res = cr.dictfetchall()
if res:
if (data['form']['date2'] > res[0]['date_stop'] or data['form']['date2'] < res[0]['date_start']):
raise wizard.except_wizard('UserError','Date to must be set between ' + res[0]['date_start'] + " and " + res[0]['date_stop'])
else:
return 'report'
else:
raise wizard.except_wizard('UserError','Date not in a defined fiscal year')
states = {
'init': {
'actions': [_get_defaults],
'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel'),('report','Print') ]}
'actions': [],
'result': {'type':'form', 'arch':report_type,'fields':{}, 'state':[('with_period','Use with Period'),('with_date','Use with Date')]}
},
'with_period': {
'actions': [_get_defaults],
'result': {'type':'form', 'arch':period_form, 'fields':period_fields, 'state':[('end','Cancel'),('report','Print')]}
},
'with_date': {
'actions': [_get_defaults_fordate],
'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel'),('checkdate','Print')]}
},
'checkdate': {
'actions': [],
'result': {'type':'choice','next_state':_check_date}
},
'report': {
'actions': [],
'result': {'type':'print', 'report':'account.partner.balance', 'state':'end'}
}
}
wizard_report('account.partner.balance.report')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: