account followup modifs on report

bzr revid: mra@tinyerp.com-20090128114254-rum76avegbr0ijqb
This commit is contained in:
mra (Open ERP) 2009-01-28 17:12:54 +05:30
parent b18a214d31
commit 65fccdb7f3
4 changed files with 137 additions and 111 deletions

View File

@ -1,28 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="demo_followup1" model="account_followup.followup">
<field name="name">Default follow-up</field>
<field name="company_id" ref="base.main_company"/>
<field name="description">First letter after 15 net days, 30 net days and 45 days end of month levels.</field>
</record>
<record id="demo_followup_line1" model="account_followup.followup.line">
<field name="name">Level 0 : 15 net days</field>
<field name="sequence">0</field>
<field name="start">days</field>
<field name="delay">15</field>
<field name="followup_id" ref="demo_followup1"/>
<field name="description">Date : %(date)s
Dear %(partner_name)s,
<field name="description">
Exception made if there was a mistake of ours, it seems that the following amount staid unpaid. Please, take appropriate measures in order to carry out this payment in the next 8 days.
Would your payment have been carried out after this mail was sent, please consider the present one as void. Do not hesitate to contact our accounting departement at (+32).10.68.94.39.
Best regards,</field>
Would your payment have been carried out after this mail was sent, please consider the present one as void. Do not hesitate to contact our accounting department at (+32).10.68.94.39.
</field>
</record>
<record id="demo_followup_line2" model="account_followup.followup.line">
@ -31,16 +27,16 @@ Best regards,</field>
<field name="start">days</field>
<field name="delay">30</field>
<field name="followup_id" ref="demo_followup1"/>
<field name="description">LEVEL 1:
Date : %(date)s
<field name="description">
We are disappointed to see that despite sending a reminder, that your account is now seriously overdue.
Dear %(partner_name)s,
It is essential that immediate payment is made, otherwise we will have to consider placing a stop on your account which means that we will no longer be able to supply your company with (goods/services).
Please, take appropriate measures in order to carry out this payment in the next 8 days
Exception made if there was a mistake of ours, it seems that the following amount staid unpaid. Please, take appropriate measures in order to carry out this payment in the next 8 days.
If there is a problem with paying invoice that we are not aware of, do not hesitate to contact our accounting department at (+32).10.68.94.39. so that we can resolve the matter quickly.
Would your payment have been carried out after this mail was sent, please consider the present one as void. Do not hesitate to contact our accounting departement at (+32).10.68.94.39.
Best regards,</field>
Details of due payments is printed below.
</field>
</record>
<record id="demo_followup_line3" model="account_followup.followup.line">
@ -49,17 +45,16 @@ Best regards,</field>
<field name="start">end_of_month</field>
<field name="delay">45</field>
<field name="followup_id" ref="demo_followup1"/>
<field name="description">LEVEL 2:
Date : %(date)s
<field name="description">
Despite several reminders, your account is still not settled.
Dear %(partner_name)s,
Unless full payment is made in next 8 days , then legal action for the recovery of the debt, will be taken without further notice.
Exception made if there was a mistake of ours, it seems that the following amount staid unpaid. Please, take appropriate measures in order to carry out this payment in the next 8 days.
I trust that this action will prove unnecessary and details of due payments is printed below.
Would your payment have been carried out after this mail was sent, please consider the present one as void. Do not hesitate to contact our accounting departement at (+32).10.68.94.39.
Best regards,</field>
In case of any queries concerning this matter, do not hesitate to contact our accounting department at (+32).10.68.94.39.
</field>
</record>
</data>
</openerp>

View File

@ -14,6 +14,10 @@
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
@ -35,26 +39,25 @@
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Times-Roman" fontSize="14.0" leading="17" alignment="CENTER"/>
<paraStyle name="P2" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P3" fontName="Times-Roman" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P4" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P5" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P6" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P1" fontName="Times-Roman" fontSize="11.0" leading="14"/>
<paraStyle name="P2" fontName="Times-Roman" fontSize="11.0" leading="14"/>
<paraStyle name="P3" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P4" fontName="Times-Roman" fontSize="6.0" leading="8" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P5" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P6" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P7" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P8" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P9" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P10" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P11" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P12" fontName="Times-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P13" fontName="Times-Roman" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P14" fontName="Times-Roman" fontSize="11.0" leading="14"/>
<paraStyle name="P15" fontName="Times-Roman" fontSize="11.0" leading="14"/>
<paraStyle name="P16" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="LEFT"/>
<paraStyle name="P9" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P10" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P11" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P12" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P13" fontName="Times-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P14" fontName="Times-Roman" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P15" fontName="Times-Roman" alignment="LEFT"/>
<paraStyle name="P16" fontName="Times-Roman" fontSize="11.0" leading="14"/>
<paraStyle name="P17" fontName="Times-Roman" fontSize="11.0" leading="14"/>
<paraStyle name="P18" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="LEFT"/>
<paraStyle name="P19" fontName="Times-Roman" alignment="LEFT"/>
<paraStyle name="P20" fontName="Times-Roman" fontSize="14.0" leading="17" alignment="LEFT"/>
<paraStyle name="P18" fontName="Times-Roman" fontSize="14.0" leading="17" alignment="CENTER"/>
<paraStyle name="P19" fontName="Times-Roman" alignment="LEFT" 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"/>
@ -64,153 +67,156 @@
<paraStyle name="Index" fontName="Times-Roman"/>
</stylesheet>
<story>
<para style="P2">[[ repeatIn(ids_to_objects(data['form']['partner_ids']),'o') ]] <font face="Times-Roman">[[ setLang(o.lang) ]]</font></para>
<para style="P3">[[ repeatIn(ids_to_objects(data['form']['partner_ids']),'o') ]] <font face="Times-Roman">[[ setLang(o.lang) ]]</font></para>
<blockTable colWidths="286.0,224.0" style="Tableau2">
<tr>
<td>
<para style="P3">
<para style="P4">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P14">[[ o.name ]]</para>
<para style="P3">[[ repeatIn(adr_get(o,'invoice'),'a' )]]</para>
<para style="P15">[[ a['name'] ]]</para>
<para style="P15">[[ a['street'] ]]</para>
<para style="P15">[[ a['zip'] ]] </para>
<para style="P15">[[ a['city'] ]]</para>
<para style="P15">[[( a['country_id'] and a['country_id'][1]) or '']]</para>
<para style="P15">
<para style="P1">[[ o.name ]]</para>
<para style="P4">[[ repeatIn(adr_get(o,'invoice'),'a' )]]</para>
<para style="P2">[[ a['name'] ]]</para>
<para style="P2">[[ a['street'] ]]</para>
<para style="P2">[[ a['zip'] ]] </para>
<para style="P2">[[ a['city'] ]]</para>
<para style="P2">[[( a['country_id'] and a['country_id'][1]) or '']]</para>
<para style="P2">
<font color="white"> </font>
</para>
<para style="P15">VAT: [[ o.vat or removeParentNode('para') ]]</para>
<para style="P2">VAT: [[ o.vat or removeParentNode('para') ]]</para>
</td>
</tr>
</blockTable>
<para style="P1">
<para style="P18">
<font color="white"> </font>
</para>
<para style="P20">
<font color="white"> </font>
</para>
<para style="P15"><font face="Times-Roman">Document</font><font face="Times-Roman">:</font> Customer account statement</para>
<para style="P15">
<para style="P2"><font face="Times-Roman">Document</font><font face="Times-Roman">:</font> Customer account statement</para>
<para style="P2">
<font face="Times-Roman">Date: </font>
<font face="Times-Roman">[[ time.strftime('%d/%m/%Y') ]]</font>
</para>
<para style="P17"><font face="Times-Roman">Customer Ref:</font> [[ o.id ]]</para>
<para style="P18">
<para style="P16"><font face="Times-Roman">Customer Ref:</font> [[ o.id ]]</para>
<para style="P16">
<font color="white"> </font>
</para>
<para style="P18">Dear Sir/Madam,</para>
<para style="P18">
<font color="white"> </font>
<para style="P16">Dear [[ a['name'] ]], </para>
<para style="Standard">
<font face="Times-Roman" size="11.0"/>
</para>
<para style="P18">According to our accounting, the following Invoices are unpaid. Could you please verify on your side, and take appropriate measures to pay the balance due in the next 8 days.</para>
<para style="P18">
<font color="white"> </font>
</para>
<para style="P18">If the payment has been very recently made i.e. as this reminder was issued, consider this reminder as void. Do not hesitate to contact our accounting department for further queries.</para>
<para style="P18">
<font color="white"> </font>
</para>
<para style="P18">Best regards.</para>
<para style="P19">
<font color="white"> </font>
</para>
<blockTable colWidths="59.0,137.0,65.0,58.0,60.0,57.0,56.0,19.0" style="Table1">
<blockTable colWidths="18.0,492.0" style="Table3">
<tr>
<td>
<para style="P4">Date</para>
<para style="P19">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P4">Description</para>
<para style="P15">
<font face="Times-Roman" size="11.0">[[ format(get_text(o)) ]]</font>
</para>
</td>
</tr>
</blockTable>
<para style="P15">
<font face="Times-Roman" size="11.0"/>
</para>
<para style="P15">
<font face="Times-Roman" size="11.0">Best Regards,</font>
</para>
<para style="P15">
<font color="white"> </font>
</para>
<blockTable colWidths="62.0,134.0,65.0,58.0,60.0,57.0,56.0,19.0" style="Table1">
<tr>
<td>
<para style="P5">Date</para>
</td>
<td>
<para style="P4">Ref</para>
<para style="P5">Description</para>
</td>
<td>
<para style="P4">Maturity date</para>
<para style="P5">Ref</para>
</td>
<td>
<para style="P5">Due</para>
<para style="P5">Maturity date</para>
</td>
<td>
<para style="P5">Paid</para>
<para style="P6">Due</para>
</td>
<td>
<para style="P5">Maturity</para>
<para style="P6">Paid</para>
</td>
<td>
<para style="P5">Li.</para>
<para style="P6">Maturity</para>
</td>
<td>
<para style="P6">Li.</para>
</td>
</tr>
<tr>
<td>
<para style="P6">
<para style="P7">
<font face="Times-Roman">[[repeatIn(getLines(o), 'line') ]]</font>
<font face="Times-Roman"> [[ line['date'] ]]</font>
</para>
</td>
<td>
<para style="P7">[[ line['name'] ]]</para>
<para style="P8">[[ line['name'] ]]</para>
</td>
<td>
<para style="P8">[[ line['ref'] ]]</para>
<para style="P9">[[ line['ref'] ]]</para>
</td>
<td>
<para style="P8">[[ line['date_maturity'] ]]</para>
<para style="P9">[[ line['date_maturity'] ]]</para>
</td>
<td>
<para style="P11">[[ line['debit'] and '%.2f' % line['debit'] or '' ]]</para>
<para style="P12">[[ line['debit'] and '%.2f' % line['debit'] or '' ]]</para>
</td>
<td>
<para style="P9">[[ line['credit'] and '%.2f' % line['credit'] or '' ]]</para>
<para style="P10">[[ line['credit'] and '%.2f' % line['credit'] or '' ]]</para>
</td>
<td>
<para style="P9">[[ (line['date_maturity'] &lt; time.strftime('%Y-%m-%d')) and (line['debit'] - line['credit']) or '' ]]</para>
<para style="P10">[[ (line['date_maturity'] &lt; time.strftime('%Y-%m-%d')) and (line['debit'] - line['credit']) or '' ]]</para>
</td>
<td>
<para style="P9">[[ line['blocked'] and 'X' or '' ]]</para>
<para style="P10">[[ line['blocked'] and 'X' or '' ]]</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="318.0,61.0,56.0,56.0,19.0" style="Table2">
<tr>
<td>
<para style="P12">Sub-Total: </para>
<para style="P13">Sub-Total: </para>
</td>
<td>
<para style="P12">[[ '%.2f' % (reduce(lambda x,y: x+y['debit'], getLines(o), 0)) ]]</para>
<para style="P13">[[ '%.2f' % (reduce(lambda x,y: x+y['debit'], getLines(o), 0)) ]]</para>
</td>
<td>
<para style="P9">
<para style="P10">
<font face="Times-Bold">[[ '%.2f' % (reduce(lambda x,y: x+y['credit'], getLines(o), 0)) ]]</font>
</para>
</td>
<td>
<para style="P11">[[ reduce(lambda x,y: x+(y['debit'] - y['credit']), filter(lambda x: x['date_maturity'] &lt; time.strftime('%Y-%m-%d'), getLines(o)), 0) ]]</para>
<para style="P12">[[ reduce(lambda x,y: x+(y['debit'] - y['credit']), filter(lambda x: x['date_maturity'] &lt; time.strftime('%Y-%m-%d'), getLines(o)), 0) ]]</para>
</td>
<td>
<para style="P13">
<para style="P14">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P12">Balance: </para>
<para style="P13">Balance: </para>
</td>
<td>
<para style="P12">[[ '%.2f' % (reduce(lambda x,y: x+(y['debit'] - y['credit']), getLines(o), 0)) ]]</para>
<para style="P13">[[ '%.2f' % (reduce(lambda x,y: x+(y['debit'] - y['credit']), getLines(o), 0)) ]]</para>
</td>
<td>
<para style="P10">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P12">
<para style="P11">
<font color="white"> </font>
</para>
</td>
@ -219,17 +225,23 @@
<font color="white"> </font>
</para>
</td>
<td>
<para style="P14">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
<para style="P2">
<font face="Times-Roman"/>
</para>
<para style="P16">
<para style="P2">
<font face="Times-Roman">Total amount due: </font>
<font face="Times-Roman">[[ '%.2f' % (reduce(lambda x,y: x+(y['debit']-y['credit']), getLines(o), 0)) ]] [[ company.currency_id.name]].</font>
</para>
<para style="P15">
<para style="P2">
<font color="white"> </font>
</para>
</story>
</document>

View File

@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
@ -34,6 +34,7 @@ class report_rappel(report_sxw.rml_parse):
'ids_to_objects': self._ids_to_objects,
'adr_get' : self._adr_get,
'getLines' : self._lines_get,
'get_text' : self._get_text
})
def _ids_to_objects(self, partners_ids):
@ -60,6 +61,24 @@ class report_rappel(report_sxw.rml_parse):
movelines = moveline_obj.read(self.cr, self.uid, movelines)
return movelines
def _get_text(self, data):
text = ""
a = {}
partner_line = pooler.get_pool(self.cr.dbname).get('account.move.line').search(self.cr, self.uid, [('partner_id','=',data.id)])
for i in pooler.get_pool(self.cr.dbname).get('account.move.line').browse(self.cr, self.uid, partner_line):
if i.followup_line_id and str(i.followup_line_id.delay)=='45':
text = i.followup_line_id.description
a['45'] = text
elif i.followup_line_id and str(i.followup_line_id.delay)=='30':
text = i.followup_line_id.description
a['30'] = text
elif i.followup_line_id and str(i.followup_line_id.delay)=='15':
text = i.followup_line_id.description
a['15'] = text
text = (a.has_key('45') and a['45']) or (a.has_key('30') and a['30']) or (a.has_key('15') and a['15'])
return text
report_sxw.report_sxw('report.account_followup.followup.print',
'res.partner', 'addons/account_followup/report/rappel.rml',
parser=report_rappel)

View File

@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#