odoo/addons/hr_holidays/report/holidays_summary.xsl

260 lines
13 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:import href="hr_custom_default.xsl"/>
<xsl:import href="hr_custom_rml.xsl"/>
<xsl:template match="/">
<xsl:call-template name="rml" />
</xsl:template>
<xsl:template name="stylesheet">
<paraStyle name="normal" fontName="Helvetica" fontSize="6" alignment="left" />
<paraStyle name="normal-title" fontName="Helvetica" fontSize="10" alignment="center"/>
<paraStyle name="digits" fontName="Helvetica" fontSize="6" alignment="left"/>
<paraStyle name="title" fontName="Helvetica" fontSize="18" alignment="center" />
<paraStyle name="dept" fontName="Helvetica-Bold" fontSize="8" alignment="left" />
<paraStyle name="employee" fontName="Helvetica-Bold" fontSize="6" textColor="black" />
<paraStyle name="leaveid" fontName="Helvetica" fontSize="6" alignment="center" />
<paraStyle name="print-date" fontName="Helvetica" fontSize="11" alignment="right" />
<paraStyle name="sum" fontName="Helvetica-BoldOblique" fontSize="6" alignment="left" />
<paraStyle name="company" textColor="purple" fontName="Helvetica-Bold" fontSize="11" alignment="left"/>
<blockTableStyle id="header">
<blockAlignment value="LEFT" start="0,0" stop="-1,-1"/>
<blockFont name="Helvetica" size="8" start="0,0" stop="-1,-1"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="products">
<blockAlignment value="CENTER" start="1,0" stop="-1,-1"/>
<lineStyle kind="LINEABOVE" colorName="black" start="0,0" stop="-1,-1" />
<lineStyle kind="LINEBEFORE" colorName="black" start="0,0" stop="-1,-1"/>
<lineStyle kind="LINEAFTER" colorName="black" start="-1,0" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="black" start="0,-1" stop="-1,-1"/>
<blockFont name="Helvetica-Bold" size="8" start="0,-1" stop="-1,-1"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="legend">
<blockAlignment value="CENTER" start="0,0" stop="-1,-1" />
<blockFont name="Helvetica" size="7" start="0,0" stop="-1,-1"/>
<lineStyle kind="LINEABOVE" colorName="black" start="0,0" stop="-1,-1" />
<lineStyle kind="LINEBEFORE" colorName="black" start="0,0" stop="-1,-1"/>
<lineStyle kind="LINEAFTER" colorName="black" start="-1,0" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="black" start="0,-1" stop="-1,-1"/>
<blockBackground colorName="#FFFFFF" start="0,0" stop="-1,-1"/>
<xsl:for-each select="/report/legend">
<blockBackground>
<xsl:attribute name="colorName">
<xsl:value-of select="attribute::color" />
</xsl:attribute>
<xsl:attribute name="start">
<xsl:text>0,</xsl:text>
<xsl:value-of select="attribute::row" />
</xsl:attribute>
<xsl:attribute name="stop">
<xsl:text>0,</xsl:text>
<xsl:value-of select="attribute::row" />
</xsl:attribute>
</blockBackground>
</xsl:for-each>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="month">
<blockAlignment value="CENTER" start="1,0" stop="-1,-1" />
<blockFont name="Helvetica" size="5" start="0,0" stop="-1,-1"/>
<blockFont name="Helvetica-BoldOblique" size="4.5" start="-1,0" stop="-1,-1"/>
<blockBackground colorName="#FFFFFF" start="1,0" stop="-2,1"/>
<xsl:for-each select="/report/days/dayy[@name='Sat' or @name='Sun']">
<xsl:variable name="col" select="attribute::cell" />
<blockBackground>
<xsl:attribute name="colorName">lightgrey</xsl:attribute>
<xsl:attribute name="start">
<xsl:value-of select="$col" />
<xsl:text>,0</xsl:text>
</xsl:attribute>
<xsl:attribute name="stop">
<xsl:value-of select="$col" />
<xsl:text>,-1</xsl:text>
</xsl:attribute>
</blockBackground>
</xsl:for-each>
<xsl:for-each select="/report/info">
<xsl:variable name="val" select="attribute::val" />
<xsl:variable name="col" select="attribute::number" />
<xsl:variable name="row" select="attribute::id" />
<xsl:for-each select="/report/legend">
<xsl:variable name="val_id" select="attribute::id" />
<xsl:variable name="color" select="attribute::color" />
<xsl:if test="$val_id = $val ">
<blockBackground>
<xsl:attribute name="colorName"><xsl:value-of select="$color" /></xsl:attribute>
<xsl:attribute name="start">
<xsl:value-of select="$col" />
<xsl:text>,</xsl:text>
<xsl:value-of select="$row + 1" />
</xsl:attribute>
<xsl:attribute name="stop">
<xsl:value-of select="$col" />
<xsl:text>,</xsl:text>
<xsl:value-of select="$row + 1" />
</xsl:attribute>
</blockBackground>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
<xsl:for-each select="report/employee">
<xsl:variable name="dept" select="attribute::id" />
<xsl:variable name="row" select="attribute::row" />
<xsl:if test="$dept = 1">
<blockBackground>
<xsl:attribute name="colorName">lightgrey</xsl:attribute>
<xsl:attribute name="start">
<xsl:text>0,</xsl:text>
<xsl:value-of select="$row +1" />
</xsl:attribute>
<xsl:attribute name="stop">
<xsl:text>0,</xsl:text>
<xsl:value-of select="$row +1" />
</xsl:attribute>
</blockBackground>
</xsl:if>
</xsl:for-each>
<lineStyle kind="LINEABOVE" colorName="black" start="0,0" stop="-1,-1" />
<lineStyle kind="LINEBEFORE" colorName="black" start="0,0" stop="-1,-1"/>
<lineStyle kind="LINEAFTER" colorName="black" start="-1,0" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="black" start="0,-1" stop="-1,-1"/>
<blockValign value="TOP"/>
</blockTableStyle>
</xsl:template>
<xsl:template name="story">
<xsl:variable name="cols_header">
<xsl:text>13.7cm,13.7cm</xsl:text>
</xsl:variable>
<blockTable>
<xsl:attribute name="style">header</xsl:attribute>
<xsl:attribute name="colWidths"><xsl:value-of select="$cols_header"/></xsl:attribute>
<tr>
<xsl:for-each select="report/res">
<td>
<para>
</para>
</td>
<td>
<para>
</para>
</td>
</xsl:for-each>
</tr>
</blockTable>
<spacer length="1.0cm" />
<para style="title" t="1">Leaves Summary <xsl:value-of select="report/name" /></para>
<spacer length="0.5cm" />
<para style="normal-title" t="1">Analyze from <u><xsl:value-of select="report/from" /></u> to <u> <xsl:value-of select="report/to" /> </u> of the <u><xsl:value-of select="report/type" /></u> leaves. </para>
<spacer length="1.0cm" />
<xsl:variable name="cols_legend">
<xsl:text>0.7cm,5.0cm</xsl:text>
</xsl:variable>
<blockTable>
<xsl:attribute name="style">products</xsl:attribute>
<xsl:attribute name="colWidths"><xsl:value-of select="report/cols_months"/></xsl:attribute>
<tr>
<td>Month</td>
<xsl:for-each select="report/months">
<td>
<xsl:value-of select="attribute::name" />
</td>
</xsl:for-each>
<td> </td>
</tr>
</blockTable>
<blockTable>
<xsl:attribute name="style">month</xsl:attribute>
<xsl:attribute name="colWidths"><xsl:value-of select="report/cols" /></xsl:attribute>
<tr>
<td> </td>
<xsl:for-each select="report/days/dayy">
<td>
<xsl:value-of select="attribute::name" />
</td>
</xsl:for-each>
<td> </td>
</tr>
<tr>
<td><para>
<xsl:attribute name="style">employee</xsl:attribute>
Departments and Employees
</para>
</td>
<xsl:for-each select="report/days/dayy">
<td><para><xsl:attribute name="style">digits</xsl:attribute>
<xsl:value-of select="attribute::number" /></para>
</td>
</xsl:for-each>
<td>Sum</td>
</tr>
<xsl:apply-templates select="report/employee"/>
<xsl:for-each select="report/employee">
<xsl:variable name="id" select="attribute::id"/>
<xsl:variable name="rw" select="attribute::row"/>
<xsl:variable name="sum" select="attribute::sum"/>
<tr>
<td t="1">
<para>
<xsl:choose>
<xsl:when test="$id = 1">
<xsl:attribute name="style">dept</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style">normal</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="attribute::name"/>
</para>
</td>
<xsl:for-each select="//report/days/dayy">
<xsl:variable name="cell" select="attribute::cell" />
<td>
<para><xsl:attribute name="style">digits</xsl:attribute>
<xsl:value-of select="//employee[@row=$rw]/time-element[@index=$cell]"/>
</para>
</td>
</xsl:for-each>
<td><para>
<xsl:attribute name="style">sum</xsl:attribute><xsl:value-of select="attribute::sum"/></para></td>
</tr>
</xsl:for-each>
</blockTable>
<spacer length="1cm" />
<condPageBreak height="1in" />
<blockTable>
<xsl:attribute name="style">legend</xsl:attribute>
<xsl:attribute name="colWidths"><xsl:value-of select="$cols_legend"/></xsl:attribute>
<tr>
<td>Color</td>
<td>Leave Type</td>
</tr>
<xsl:for-each select="report/legend">
<tr>
<td>
<para>
<xsl:attribute name="style">digits</xsl:attribute>
</para>
</td>
<td>
<para>
<xsl:attribute name="style">normal</xsl:attribute>
<xsl:value-of select="attribute::name"/>
</para>
</td>
</tr>
</xsl:for-each>
</blockTable>
</xsl:template>
</xsl:stylesheet>