<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#160;">
]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns="http://projets.admisource.gouv.fr/xemelios/namespaces#anomally"
 xmlns:n="http://projets.admisource.gouv.fr/xemelios/namespaces#anomally"
 xmlns:added="http://projets.admisource.gouv.fr/xemelios/namespaces#added"
 xmlns:ano="http://projets.admisource.gouv.fr/xemelios/namespaces#anomally"
 xmlns:conf="http://projets.admisource.gouv.fr/xemelios/namespaces#config"
 xmlns:datetime="http://exslt.org/dates-and-times" version="2.0">
 <xsl:param name="encoding" select="iso-8859-1"/>
 <xsl:output method="xhtml" indent="yes"/>
 <xsl:output encoding="iso-8859-1"/>

 <xsl:template match="*"> </xsl:template>

 <xsl:param name="language" select="'fr'"/>
 <xsl:param name="affichage" select="''"/>
 <xsl:param name="affichageParam" select="''"/>
 <xsl:param name="ancre" select="''"/>
 <xsl:param name="elementId" select="''"/>
 <xsl:param name="idControle" select="''"/>
 <xsl:param name="config"/>

 <xsl:template match="/n:DocumentRapport">
  <xsl:variable name="messageRapport" select="./n:Message/text()"/>
  <xsl:variable name="docid" select="./n:DocId/@n:V"/>
  <xsl:variable name="collectivite" select="./n:Collectivite/n:Siret/@n:V"/>
  <xsl:variable name="budget" select="./n:Budget/n:Code/@n:V"/>
  <xsl:variable name="idrapport" select="./n:DonneesRapport/n:Rapport/n:Id/@n:V"/>
  <html>
   <head>
    <style type="text/css" media="all">
     body {
         font-family: verdana, sans-serif;
         font-size: 14px;
         width: 29cm;
          
     }
     h1 {
         text-align: center;
         font-size: 18px;
         font-weight:bold;
          
     }
     #cache {
         display: none;
     }
     tr td {
         border: solid 1px #000000;
     }
     :link {
         color: #00c;
          background: transparent 
     }
     :visited {
         color: #609;
          background: transparent 
     }
     a:active {
         color: #c00;
          background: transparent 
     }
     a:link img, a:visited img {
          border-style: none 
     }
     .red {
         color: red;
          background: transparent 
     }
     .warning {
         font-weight: bold;
         text-decoration: underline;
          
     }</style>
    <style type="text/css" media="print">
     @page {
         size: 297mm 210mm;
         margins: 10mm 10mm 10mm 10mm;
     }
     tr {
         page-break-inside: avoid;
          
     }</style>
    <title>Rapport d'analyse</title>
   </head>
   <body>
    <!--div>
     <p>
      <ul>
       <li><b>language: </b><xsl:value-of select="$language"/></li>
       <li><b>affichage: </b><xsl:value-of select="$affichage"/></li>
       <li><b>affichageParam: </b><xsl:value-of select="$affichageParam"/></li>
       <li><b>ancre: </b><xsl:value-of select="$ancre"/></li>
       <li><b>elementId: </b><xsl:value-of select="$elementId"/></li>
       <li><b>idControle: </b><xsl:value-of select="$idControle"/></li>
       <li><b>config: </b><xsl:value-of select="$config"/></li>
       </ul>
     </p>
    </div-->
    <!--div style="width: 100%;"-->

    <table>
     <tr>
      <td style="border: 0px;">
       <h1>Rapport d'analyse</h1>
      </td>
     </tr>
     <br/>
     <xsl:if test="./n:TropAnos/@n:V='true'">
      <h2 style="color: red; ">ATTENTION!<br/>Comme le flux comporte trop d'anomalies, toutes les
       anomalies ne figurent pas dans ce rapport.</h2>
     </xsl:if>
     <br/>
     <h2 style="color: red; ">
      <xsl:value-of select="./n:Message/text()"/>
     </h2>
     <br/>
     <xsl:if test="n:AllAnos/@n:V='true'">
      <tr>
       <td style="border: 0px;" class="red">
        <b>Toutes les anomalies ne figurent pas dans le rapport car elles sont trop nombreuses.</b>
       </td>
      </tr>
     </xsl:if>
     <tr>
      <td style="border: 0px;">
       <b>Fichier analys&#233; :
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <xsl:choose>
         <xsl:when test="exists(n:NomFichier/@n:host)"><a><xsl:attribute name="href"
             >xemelios:/showSrc?host=<xsl:value-of select="n:NomFichier/@n:host"
             />&amp;url=<xsl:value-of select="n:NomFichier/@n:fullPath"
            /></xsl:attribute><xsl:value-of select="n:NomFichier/@n:V"/></a></xsl:when>
         <xsl:otherwise><xsl:value-of select="n:NomFichier/@n:V"/></xsl:otherwise>
        </xsl:choose>
       </b>
      </td>
     </tr>
     <tr>
      <td style="border: 0px;">
       <b>Domaine(s) analys&#233;(s) : <!--xsl:for-each select="./n:Domaines/n:Domaine">
           <xsl:variable name="domaineId" select="./@n:V"/>
           <xsl:value-of select="$config/conf:documents/conf:document[@id=$docid]/conf:etat[@id=$domaineId]/@libelle"/>,&#160;
           </xsl:for-each-->
        <xsl:value-of select="n:Domaines/n:Domaine/@n:V"/>
       </b>
      </td>
     </tr>
    </table>
    <br/>

    <xsl:choose>
     <xsl:when test="$affichageParam = ''">
      <xsl:element name="a">
       <xsl:attribute name="href"
         >xemelios:/query?docId=DocumentRapport&amp;etatId=DonneesRapport&amp;elementId=Rapport&amp;collectivite=<xsl:value-of
         select="$collectivite"/>&amp;budget=<xsl:value-of select="$budget"
         />&amp;path=[n:Id/@n:V='<xsl:value-of select="$idrapport"
         />']&amp;xsl:param=(affichage,<xsl:value-of select="$affichage"
         />)&amp;xsl:param=(idControle,<xsl:value-of select="$idControle"
         />)&amp;xsl:param=(ancre,<xsl:value-of select="$ancre"/>)<xsl:choose><xsl:when
          test="$affichageParam = ''"
          >&amp;xsl:param=(affichageParam,1)</xsl:when><xsl:otherwise>&amp;xsl:param=(affichageParam,)</xsl:otherwise></xsl:choose><xsl:if
         test="$ancre != ''">#<xsl:value-of select="$ancre"/></xsl:if></xsl:attribute>
       <h3>Param&#232;tres <![CDATA[<]]></h3>
      </xsl:element>
      <table>
       <xsl:for-each select="./n:Params/n:Param">
        <tr>
         <td style="border: 0px;">
          <b>
           <xsl:value-of select="./@n:Name"/>
          </b>
         </td>
         <td width="60%" style="border: 0px;">
          <xsl:value-of select="./@n:Value"/>
         </td>
        </tr>
       </xsl:for-each>
      </table>
      <br/>
     </xsl:when>
     <xsl:otherwise>
      <xsl:element name="a">
       <xsl:attribute name="href"
         >xemelios:/query?docId=DocumentRapport&amp;etatId=DonneesRapport&amp;elementId=Rapport&amp;collectivite=<xsl:value-of
         select="$collectivite"/>&amp;budget=<xsl:value-of select="$budget"
         />&amp;path=[n:Id/@n:V='<xsl:value-of select="$idrapport"
         />']&amp;xsl:param=(affichage,<xsl:value-of select="$affichage"
         />)&amp;xsl:param=(idControle,<xsl:value-of select="$idControle"
         />)&amp;xsl:param=(ancre,<xsl:value-of select="$ancre"/>)<xsl:choose><xsl:when
          test="$affichageParam = ''"
          >&amp;xsl:param=(affichageParam,1)</xsl:when><xsl:otherwise>&amp;xsl:param=(affichageParam,)</xsl:otherwise></xsl:choose><xsl:if
         test="$ancre != ''">#<xsl:value-of select="$ancre"/></xsl:if></xsl:attribute>
       <h3>Param&#232;tres <![CDATA[>]]></h3>
      </xsl:element>
     </xsl:otherwise>
    </xsl:choose>

    <hr/>
    <br/>
    <br/>
    <b>Validation Technique : <xsl:choose>
      <xsl:when
       test="count(n:DonneesRapport/n:Rapport/n:Anomalie[starts-with(n:IdCtrl/@n:V,'TECH')]) &gt; 0">KO<br/>
       <xsl:choose>
        <xsl:when test="count(./n:DonneesRapport/n:Rapport/n:Anomalie[starts-with(n:IdCtrl/@n:V,'TECH') and n:Severity/@n:V='BLOQUANT'])!=0"> Validation Fonctionnelle non effectuée</xsl:when>
        <xsl:when test="count(./n:DonneesRapport/n:Rapport/n:Anomalie[not(starts-with(n:IdCtrl/@n:V,'TECH'))]) &gt; 0"> Validation Fonctionnelle : KO<br/>
        </xsl:when>
        <xsl:otherwise> Validation Fonctionnelle : OK<br/>
        </xsl:otherwise>
       </xsl:choose></xsl:when>
      <xsl:otherwise> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OK<br/><br/>
       <xsl:choose>
        <xsl:when test="count(./n:DonneesRapport/n:Rapport/n:Anomalie)!=0"> Validation Fonctionnelle : KO<br/>
        </xsl:when>
        <xsl:otherwise> Validation Fonctionnelle : OK<br/>
        </xsl:otherwise>
       </xsl:choose>
      </xsl:otherwise>
     </xsl:choose>
     <br/><hr/>
    </b>
    <br/>
    <br/>
    <xsl:if test="count(./n:DonneesRapport/n:Rapport/n:Anomalie)!=0">
     <xsl:apply-templates>
      <xsl:with-param name="docid" select="$docid"/>
      <xsl:with-param name="collectivite" select="$collectivite"/>
      <xsl:with-param name="budget" select="$budget"/>
     </xsl:apply-templates>
    </xsl:if>
    <!--/div-->
   </body>
  </html>
 </xsl:template>

 <xsl:template match="n:DonneesRapport">
  <xsl:param name="docid"/>
  <xsl:param name="collectivite"/>
  <xsl:param name="budget"/>
  <xsl:apply-templates>
   <xsl:with-param name="docid" select="$docid"/>
   <xsl:with-param name="collectivite" select="$collectivite"/>
   <xsl:with-param name="budget" select="$budget"/>
  </xsl:apply-templates>
 </xsl:template>

 <xsl:template match="n:Rapport">
  <xsl:param name="docid"/>
  <xsl:param name="collectivite"/>
  <xsl:param name="budget"/>
  <xsl:variable name="idRapport" select="./n:Id/@n:V"/>
  <table>
   <tr>
    <td style="border: 0px;" width="100%">
     <!-- Affichage <xsl:if test="$affichage!='2'">par Contrôle Unitaire</xsl:if><xsl:if test="$affichage='2'">par Bordereau</xsl:if><br/>-->
     <xsl:choose>
      <xsl:when test="starts-with(./n:Anomalie[1]/n:IdCtrl/@n:V,'TECH')"/>
      <xsl:otherwise>
       <xsl:element name="a">
        <xsl:attribute name="href"
          >xemelios:/query?docId=DocumentRapport&amp;etatId=DonneesRapport&amp;elementId=Rapport&amp;collectivite=<xsl:value-of
          select="$collectivite"/>&amp;budget=<xsl:value-of select="$budget"
          />&amp;path=[n:Id/@n:V='<xsl:value-of select="./n:Id/@n:V"
          />']&amp;xsl:param=(affichage,<xsl:if test="$affichage!='2'">2</xsl:if><xsl:if
          test="$affichage='2'"/>)&amp;xsl:param=(affichageParam,<xsl:value-of
          select="$affichageParam"/>)</xsl:attribute>
        <xsl:if test="$affichage!='2'">Trier par
         <!--xsl:value-of select="./n:Anomalie[1]/n:ElementImportable/@n:V"/-->&#233;l&#233;ment</xsl:if>
        <xsl:if test="$affichage='2'">Trier par contrôle</xsl:if>
       </xsl:element>
      </xsl:otherwise>
     </xsl:choose>
    </td>
   </tr>
  </table>

  <table style="text-align: left; width: 99%;" border="0">
   <!-- Affichage par Contrôle -->
   <xsl:if test="$affichage!='2'">
    <br/>
    <br/>
    <u>Anomalies Rencontr&#233;es :</u>
    <br/>
    <br/>
    <xsl:variable name="anos" select="./*"/>

    <xsl:for-each select="distinct-values(./n:Anomalie/n:IdCtrl/@n:V)">
     <br/>
     <br/>
     <xsl:variable name="ctrlId" select="."/>
     <xsl:variable name="ctrl"
      select="distinct-values($anos[n:IdCtrl/@n:V=$ctrlId]/n:LibelleCtrl/@n:V)"/>
     <xsl:variable name="idCtrl" select="$anos[n:IdCtrl/@n:V=$ctrlId]"/>
     <xsl:variable name="idCtrlBis" select="distinct-values($idCtrl/n:IdCtrl/@n:V)"/>
     <tr>
      <td><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <xsl:element name="a">
         <!--xsl:attribute name="name" select="$ctrl"/-->
         <xsl:attribute name="name" select="$idCtrlBis"/>
         <xsl:attribute name="href"
           >xemelios:/query?docId=DocumentRapport&amp;etatId=DonneesRapport&amp;elementId=Rapport&amp;collectivite=<xsl:value-of
           select="$collectivite"/>&amp;budget=<xsl:value-of select="$budget"
           />&amp;path=[n:Id/@n:V='<xsl:value-of select="$idRapport"
           />']&amp;xsl:param=(affichage,1)&amp;xsl:param=(affichageParam,<xsl:value-of
           select="$affichageParam"/>)<xsl:choose><xsl:when test="$idControle!=$idCtrlBis"
             >&amp;xsl:param=(ancre,<xsl:value-of select="$idCtrlBis"
             />)&amp;xsl:param=(idControle,<xsl:value-of select="$idCtrlBis"/>)#<xsl:value-of
             select="$idCtrlBis"
            /></xsl:when><xsl:otherwise>&amp;xsl:param=(ancre,)&amp;xsl:param=(idControle,)</xsl:otherwise></xsl:choose></xsl:attribute>
         <xsl:value-of select="$ctrl"/> (<xsl:value-of select="distinct-values($idCtrlBis)"
           />)<xsl:choose><xsl:when test="$idControle!=$ctrl"
           >&nbsp;&nbsp;&nbsp;></xsl:when><xsl:otherwise>&nbsp;&nbsp;&nbsp;<![CDATA[<]]></xsl:otherwise></xsl:choose></xsl:element></b>
        &nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;<xsl:value-of
        select="count($idCtrl)"/>
        erreur(s)&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;S&#233;v&#233;rit&#233;&nbsp;&nbsp;&nbsp;<xsl:value-of
        select="distinct-values($idCtrl/n:Severity/@n:V)"/>
       <br/><br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<xsl:value-of
        select="$idCtrl[1]/n:Regle/text()" disable-output-escaping="yes"/>
      </td>
     </tr>
     <xsl:if test="$idControle=$idCtrlBis">
      <xsl:for-each select="$idCtrl">
       <xsl:sort select="n:IdCtrl/@n:V" order="ascending"/>
       <tr>
        <td style="border: 0px;">
         <xsl:choose>
          <xsl:when
           test="starts-with(./n:IdCtrl/@n:V,'TECH') or not(./n:XPath) or string-length(./n:XPath/@n:V)=0">
           <xsl:value-of select="./n:Message/text()" disable-output-escaping="yes"/>
           <br/>
          </xsl:when>
          <xsl:otherwise>
           <xsl:choose>
            <xsl:when
             test="upper-case(./n:EtatId/@n:V) = 'PES_PJ' or upper-case(./n:EtatId/@n:V) = 'PES_ALLER' or upper-case(./n:EtatId/@n:V) = 'SIGNATURE'">
             <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<xsl:value-of
              select="./n:Message/text()" disable-output-escaping="yes"/>
            </xsl:when>
            <xsl:otherwise>
             <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<xsl:element
              name="a">
              <xsl:attribute name="href">xemelios:/query?docId=<xsl:value-of select="$docid"
                />&amp;etatId=<xsl:value-of select="./n:EtatId/@n:V"
                />&amp;elementId=<xsl:value-of select="./n:ElementImportable/@n:V"
                />&amp;collectivite=<xsl:value-of select="$collectivite"
                />&amp;budget=<xsl:value-of select="$budget"/>&amp;path=[<xsl:value-of
                select="./n:XPath/@n:V"/>]<xsl:for-each select="./n:XslParam"
                 >&amp;xsl:param=(<xsl:value-of select="./n:Key/@n:V"/>,<xsl:value-of
                 select="./n:Value/@n:V"/>)</xsl:for-each><xsl:if test="$docid='DocEtatsFrais'"
                 >&amp;xsl:param=(siret,<xsl:value-of
                 select="//ano:Collectivite/ano:Siret/@ano:V"/>)</xsl:if><xsl:if
                test="$docid='DocEtatsFrais'">&amp;xsl:param=(budg,<xsl:value-of
                 select="//ano:Budget/ano:Code/@ano:V"
               />)</xsl:if><!--#AnoId_<xsl:value-of select="./n:XslParam[n:Key/@n:V='anoId']/n:Value/@n:V"/--></xsl:attribute>
              <xsl:value-of select="./n:Message/text()" disable-output-escaping="yes"
              /></xsl:element>
            </xsl:otherwise>
           </xsl:choose>
          </xsl:otherwise>
         </xsl:choose>
        </td>
       </tr>
      </xsl:for-each>
     </xsl:if>
    </xsl:for-each>
   </xsl:if>

   <!-- Affichage par Element en anomalie -->
   <xsl:if test="$affichage='2'">
    <br/>
    <br/>
    <u>Elements en anomalie :</u>
    <br/>
    <br/>
    <xsl:variable name="anos" select="./*"/>
    <xsl:variable name="elmImport" select="distinct-values($anos/n:ElementImportable/@n:V)"/>
    <xsl:for-each select="distinct-values(./n:Anomalie/n:IdElementImportable/@n:V)">
     <xsl:variable name="id" select="."/>
     <xsl:variable name="etatId" select="$anos[n:IdElementImportable/@n:V=$id][1]/n:EtatId/@n:V"/>
     <tr>
      <td><b>
        <xsl:element name="a">
         <xsl:attribute name="name" select="$id"/>
         <xsl:attribute name="href"
           >xemelios:/query?docId=DocumentRapport&amp;etatId=DonneesRapport&amp;elementId=Rapport&amp;collectivite=<xsl:value-of
           select="$collectivite"/>&amp;budget=<xsl:value-of select="$budget"
           />&amp;path=[n:Id/@n:V='<xsl:value-of select="$idRapport"
           />']&amp;xsl:param=(affichage,2)&amp;xsl:param=(affichageParam,<xsl:value-of
           select="$affichageParam"/>)<xsl:choose><xsl:when test="$elementId!=$id"
             >&amp;xsl:param=(ancre,<xsl:value-of select="$id"
             />)&amp;xsl:param=(elementId,<xsl:value-of select="$id"/>)#<xsl:value-of
             select="$id"
            /></xsl:when><xsl:otherwise>&amp;xsl:param=(ancre,)&amp;xsl:param=($elementId,)</xsl:otherwise></xsl:choose></xsl:attribute>
         <xsl:value-of
          select="$config/conf:documents/conf:document[@id=$docid]/conf:etat[@id=$etatId]/conf:element[@id=$elmImport]/@libelle"
          />&nbsp;n°&nbsp;<xsl:value-of select="$id" disable-output-escaping="yes"
           /><xsl:choose><xsl:when test="$elementId!=$id"
           >&nbsp;&nbsp;&nbsp;></xsl:when><xsl:otherwise>&nbsp;&nbsp;&nbsp;<![CDATA[<]]></xsl:otherwise></xsl:choose>
        </xsl:element></b> - <xsl:value-of select="count($anos/n:IdElementImportable[@n:V=$id])"/>
       anomalie(s) </td>
     </tr>
     <br/>
     <xsl:if test="$elementId=$id">
      <xsl:for-each select="distinct-values($anos/n:LibelleCtrl/@n:V)">
       <xsl:variable name="thisCtrl" select="."/>
       <xsl:variable name="anosForThisId" select="$anos[n:IdElementImportable/@n:V=$id]"/>
       <xsl:variable name="anosForThisCtrl" select="$anosForThisId[n:LibelleCtrl/@n:V=$thisCtrl]"/>
       <xsl:if test="distinct-values($anosForThisCtrl/n:LibelleCtrl/@n:V)!=''">
        <tr>
         <td><b>&nbsp;&nbsp;&nbsp;<xsl:value-of
            select="distinct-values($anosForThisCtrl/n:LibelleCtrl/@n:V)"
            />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<xsl:value-of
            select="distinct-values($anosForThisCtrl/n:IdCtrl/@n:V)"
            />)&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;S&#233;v&#233;rit&#233;&nbsp;&nbsp;&nbsp;<xsl:value-of
            select="distinct-values($anosForThisCtrl/n:Severity/@n:V)"/></b><br/>
           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<xsl:value-of
           select="distinct-values($anosForThisCtrl/n:Regle/text())" disable-output-escaping="yes"/>
         </td>
        </tr>
       </xsl:if>
       <xsl:for-each select="$anosForThisCtrl">
        <xsl:variable name="thisAno" select="."/>
        <xsl:if test="./n:IdElementImportable/@n:V=$elementId">
         <xsl:if test="$thisAno/n:LibelleCtrl/@n:V=$thisCtrl">
          <tr>
           <td style="border: 0px;">
            <xsl:element name="a">
             <xsl:attribute name="href">xemelios:/query?docId=<xsl:value-of select="$docid"
               />&amp;etatId=<xsl:value-of select="$thisAno/n:EtatId/@n:V"
               />&amp;elementId=<xsl:value-of select="$thisAno/n:ElementImportable/@n:V"
               />&amp;collectivite=<xsl:value-of select="$collectivite"
               />&amp;budget=<xsl:value-of select="$budget"/>&amp;path=[<xsl:value-of
               select="$thisAno/n:XPath/@n:V"/>]<xsl:for-each select="$thisAno/n:XslParam"
                >&amp;xsl:param=(<xsl:value-of select="./n:Key/@n:V"/>,<xsl:value-of
                select="./n:Value/@n:V"/>)</xsl:for-each></xsl:attribute>
             <xsl:value-of select="$thisAno/n:Message/text()" disable-output-escaping="yes"/>
            </xsl:element>
           </td>
          </tr>
          <br/>
         </xsl:if>
        </xsl:if>
       </xsl:for-each>
      </xsl:for-each>
     </xsl:if>
    </xsl:for-each>
   </xsl:if>
  </table>
 </xsl:template>
</xsl:stylesheet>
