New report system

bzr revid: pinky-5f8b8fd96a887e09d6d4b879cb3590bb3b5f1cce
This commit is contained in:
pinky 2006-12-20 05:57:18 +00:00
parent 42297e5d41
commit 3e5251aa00
7 changed files with 269 additions and 3 deletions

View File

@ -62,6 +62,7 @@ class account_invoice(osv.osv):
return cr.fetchone()[0]
def _get_currency(self, cr, uid, context):
return pooler.get_pool(cr.dbname).get('res.currency').search(cr, uid, [('rate','=',1.0)])[0]
return pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, [uid])[0].company_id.currency_id.id
def _get_journal_analytic(self, cr, uid, type_inv, context={}):

View File

@ -8,8 +8,8 @@
"category" : "Localisation/Europe",
"website": "http://www.tinyerp.com",
"depends" : ["base", "account"],
# "init_xml" : [],
"init_xml" : ["zip_code_default.xml"],
"init_xml" : [],
# "init_xml" : ["zip_code_default.xml"],
"demo_xml" : ["vaudtax_data_demo.xml","dta/dta_demo.xml"],
"update_xml" : [
"dta/dta_view.xml","dta/dta_wizard.xml",

View File

@ -29,3 +29,5 @@
import report_analytic_line
import report_analytic_planning
import report

View File

@ -8,7 +8,11 @@
"description": "A report on analytic lines, costs by products, months and accounts.",
"init_xml" : [],
"demo_xml" : [],
"update_xml" : ["report_analytic_line_view.xml", "report_analytic_planning_view.xml"],
"update_xml" : [
"report_analytic_line_view.xml",
"report_analytic_planning_view.xml",
"report_analytic_planning_report.xml"
],
"active": False,
"installable": True
}

View File

@ -0,0 +1,29 @@
##############################################################################
#
# Copyright (c) 2004-2006 TINY SPRL. (http://tiny.be) All Rights Reserved.
#
# $Id: sale.py 1005 2005-07-25 08:41:42Z nicoe $
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################

View File

@ -0,0 +1,220 @@
<?xml version="1.0"?>
<document filename="test.pdf">
<template pageSize="(612.0,792.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="57.0" y1="57.0" width="498" height="678"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<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="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="Table7">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#ffff99" start="0,0" stop="0,0"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#ffffcc" start="0,0" stop="0,0"/>
<blockBackground colorName="#ffffcc" start="1,0" stop="1,0"/>
</blockTableStyle>
<blockTableStyle id="Table6">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#ffff99" start="0,0" stop="0,0"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#ffffcc" start="0,0" stop="0,0"/>
<blockBackground colorName="#ffffcc" start="1,0" stop="1,0"/>
</blockTableStyle>
<blockTableStyle id="Table5">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#ffff99" start="0,0" stop="0,0"/>
</blockTableStyle>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#ffffcc" start="0,0" stop="0,0"/>
<blockBackground colorName="#ffffcc" start="1,0" stop="1,0"/>
<blockBackground colorName="#ffffcc" start="2,0" stop="2,0"/>
<blockBackground colorName="#ffffcc" start="3,0" stop="3,0"/>
<blockBackground colorName="#ffffcc" start="4,0" stop="4,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" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P3" fontName="Times-Roman" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P4" fontName="Times-Roman" alignment="RIGHT"/>
<paraStyle name="P5" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="CENTER"/>
<paraStyle name="P6" fontName="Helvetica-Bold" fontSize="14.0" leading="17" alignment="CENTER"/>
<paraStyle name="P7" fontName="Times-Roman" fontSize="11.0" leading="14"/>
<paraStyle name="P8" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT"/>
<paraStyle name="P9" fontName="Helvetica-Bold" fontSize="14.0" leading="17"/>
<paraStyle name="P10" fontName="Times-Roman" fontSize="11.0" leading="14" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P11" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P12" fontName="Times-Roman" fontSize="11.0" leading="14" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P13" fontName="Times-Roman" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P14" fontName="Times-Roman" fontSize="11.0" leading="14"/>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.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="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Times-Roman"/>
</stylesheet>
<story>
<para style="Standard">[[ repeatIn(objects, 'o') ]]</para>
<blockTable colWidths="154.0,199.0,146.0" repeatRows="1" style="Table1">
<tr>
<td>
<para style="Standard">[[ company.name ]]</para>
</td>
<td>
<para style="P1">HR Planning</para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="Standard">Responsible: [[ o.user_id.name ]]</para>
</td>
<td>
<para style="P3">[[ o.name]]</para>
</td>
<td>
<para style="P4">From: [[ o.date_from ]]</para>
<para style="P4">To: [[ o.date_to ]]</para>
</td>
</tr>
</blockTable>
<para style="P5">
<font color="white"> </font>
</para>
<blockTable colWidths="499.0" style="Table7">
<tr>
<td>
<para style="P6">Summary by project</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="406.0,92.0" style="Table2">
<tr>
<td>
<para style="P7">Project</para>
</td>
<td>
<para style="P8">Quantities</para>
</td>
</tr>
<tr>
<td>
<para style="P7"><font face="Times-Roman">[[ repeatIn(o.stat_account_ids , 'p') ]]</font> [ [[ p.account_id.code ]] ] [[ p.account_id.complete_name ]]</para>
</td>
<td>
<para style="P8">[[ p.quantity ]]</para>
</td>
</tr>
</blockTable>
<para style="P9">
<font color="white"> </font>
</para>
<blockTable colWidths="499.0" style="Table6">
<tr>
<td>
<para style="P6">Summary by user</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="406.0,92.0" style="Table3">
<tr>
<td>
<para style="P7">User</para>
</td>
<td>
<para style="P8">Quantities</para>
</td>
</tr>
<tr>
<td>
<para style="P7"><font face="Times-Roman">[[ repeatIn(o.stat_user_ids, 'u') ]] </font>[[ u.user_id.name ]]</para>
</td>
<td>
<para style="P8">[[ u.quantity ]]</para>
</td>
</tr>
</blockTable>
<para style="P9">
<font color="white"> </font>
</para>
<blockTable colWidths="499.0" style="Table5">
<tr>
<td>
<para style="P6">Details of user's time by projects</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="142.0,176.0,57.0,64.0,59.0" style="Table4">
<tr>
<td>
<para style="P10">User</para>
</td>
<td>
<para style="P10">Project</para>
</td>
<td>
<para style="P11">Planned</para>
</td>
<td>
<para style="P11">Tasks</para>
</td>
<td>
<para style="P11">Real</para>
</td>
</tr>
<tr>
<td>
<para style="P12"><font face="Times-Roman">[[ repeatIn(o.stat_ids, 'l') ]]</font> [[ l.user_id.name ]]</para>
</td>
<td>
<para style="P12">[ [[ l.account_id.code ]] ] [[ l.account_id.name ]]</para>
</td>
<td>
<para style="P13">[[ l.sum_amount ]]</para>
</td>
<td>
<para style="P13">[[ l.sum_amount_tasks ]]</para>
</td>
<td>
<para style="P13">[[ l.sum_amount_real ]]</para>
</td>
</tr>
</blockTable>
<para style="P14">
<font color="white"> </font>
</para>
</story>
</document>

View File

@ -29,6 +29,9 @@
from osv import fields,osv
import time
import mx.DateTime
class report_account_analytic_planning(osv.osv):
_name = "report_account_analytic.planning"
_description = "Planning"
@ -42,6 +45,12 @@ class report_account_analytic_planning(osv.osv):
'stat_user_ids': fields.one2many('report_account_analytic.planning.stat.user', 'planning_id', 'Planning by user', readonly=True),
'stat_account_ids': fields.one2many('report_account_analytic.planning.stat.account', 'planning_id', 'Planning by account', readonly=True),
}
_defaults = {
'name': lambda *a: time.strftime('%Y-%m-%d'),
'date_from': lambda *a: time.strftime('%Y-%m-01'),
'date_to': lambda *a: (mx.DateTime.now()+mx.DateTime.RelativeDateTime(months=1,day=1,days=-1)).strftime('%Y-%m-%d'),
'user_id': lambda self,cr,uid,c: uid
}
_order = 'date_from desc'
report_account_analytic_planning()
@ -125,6 +134,7 @@ class report_account_analytic_planning_stat(osv.osv):
'sum_amount_real': fields.function(_sum_amount_real, method=True, string='Work made'),
'sum_amount_tasks': fields.function(_sum_amount_tasks, method=True, string='Tasks made'),
}
_order = 'planning_id,user_id'
def init(self, cr):
cr.execute("""
create or replace view report_account_analytic_planning_stat as (