<!--
//**************************************************************************
//*
//* APPLICATION ........ : XML EDI
//* CLASS .............. : Feuille de style de transformation d'un fichier 
//*                        de demande au format simplifié (CSV)
//* WRITER ............. : L. CHEVRY
//*
//* CREATION DATE ...... : 15 june 2005
//*
//* MODULE ............. :xmledi
//*
//**************************************************************************
--><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xpath-default-namespace="http://xml.sandre.eaufrance.fr/scenario/com_labo/1"><xsl:output method="text" encoding="UTF-8"/><xsl:param name="sep" select="';'"/>	
    
	<!-- ================== -->
	<!-- = FORMATAGE DATE = -->
	<!-- ================== --><xsl:template name="formatDate"><xsl:param name="date"/><xsl:if test="$date"><xsl:value-of select="substring($date, 9, 2)"/>/<xsl:value-of select="substring($date, 6, 2)"/>/<xsl:value-of select="substring($date, 1, 4)"/></xsl:if></xsl:template>

	<!-- ==================== -->
	<!-- = LIGNE D'ENTETE 1 = -->
	<!-- ==================== --><xsl:variable name="col1"/><xsl:variable name="Entete1" select="concat('&lt;CdDemandeCommanditaire&gt;', $sep, '&lt;TypeDemande&gt;', $sep,           '&lt;Commanditaire/CdIntervenant&gt;', $sep, '&lt;CommanditaireschemeAgencyID&gt;', $sep, '&lt;CdPrelevement&gt;', $sep,           '&lt;Preleveur/CdIntervenant&gt;', $sep, '&lt;PreleveurschemeAgencyID&gt;', $sep, '&lt;DatePrel&gt;', $sep,            '&lt;DelaiPrel&gt;', $sep, '&lt;CdStationPrelevement&gt;', $sep, '&lt;CdStationPrelevementschemeAgencyID&gt;', $sep,            '&lt;CdLocalPrelevement&gt;', $sep, '&lt;CdLocalPrelevementschemeAgencyID&gt;', $sep, '&lt;CdSupport&gt;', $sep,            '&lt;Laboratoire/CdIntervant&gt;', $sep, '&lt;LaboratoireschemeAgencyID&gt;', $sep, '&lt;InsituAna&gt;', $sep,            '&lt;CdParametre&gt;', $sep, '&lt;CdUnite&gt;', $sep, '&lt;CdFractionAnalysee&gt;', $sep, '&lt;CdMethode&gt;', $sep,            '&lt;FLG&gt;&#xD;&#xA;')"/>

	<!-- ==================== -->
	<!-- = LIGNE D'ENTETE 2 = -->
	<!-- ==================== --><xsl:variable name="Entete2" select="concat('Code de la demande chez le commanditaire', $sep, 'Type de demande', $sep,           'Code Intervenant commanditaire', $sep, 'Origine du code Intervenant commanditaire', $sep,            'Code du prélèvement', $sep, 'Code Intervenant preleveur', $sep,            'Origine du code Intervenant preleveur', $sep, 'Date du prélèvement à réaliser', $sep,            'Délai exprimé en jour pour réaliser le prélèvement', $sep, 'Code Station de prelevement', $sep,            'Origine du code Station de prelevement', $sep, 'Code dLocalisation de prélèvement', $sep,            'Origine du code Localisation de prélèvement', $sep, 'Code du support', $sep,            'Code Intervenant laboratoire', $sep, 'Origine du code Intervenant laboratoire', $sep,            'Type Analyse', $sep, 'Code du paramètre', $sep, 'Code Unité de référence', $sep,            'Code Fraction analysée', $sep, 'Code Méthode Analyse', $sep, 'Fin de ligne&#xD;&#xA;')"/>

	<!-- ================ -->
	<!-- = FIN DE LIGNE = -->
	<!-- ================ --><xsl:variable name="FLG" select="'FLG&#xD;&#xA;'"/>
	
	<!-- = CLE sur GroupeParametres par CdGroupeParametres  = --><xsl:key name="keyGroupeParametres" match="COM_LABO/GroupeParametres" use="CdGroupeParametres"/><xsl:template match="/COM_LABO">
		
		<!-- ==================== -->
		<!-- = AFFICHAGE ENTETE = -->
		<!-- ==================== --><xsl:value-of select="$Entete1"/><xsl:value-of select="$Entete2"/><xsl:for-each select="Demande"><xsl:variable name="cdDemande" select="substring(CdDemandeCommanditaire, 1, 100)"/><xsl:variable name="typeDemande" select="substring(TypeDemande, 1, 1)"/><xsl:variable name="cdIntCommanditaire" select="substring(Commanditaire/CdIntervenant, 1, 17)"/><xsl:variable name="orgCdIntCommanditaire" select="substring(Commanditaire/CdIntervenant/@schemeAgencyID, 1, 10)"/><xsl:variable name="dataDemande" select="concat($cdDemande, $sep, $typeDemande, $sep, $cdIntCommanditaire, $sep, $orgCdIntCommanditaire)"/><xsl:for-each select="Prelevement"><xsl:variable name="cdPrelevement" select="substring(CdPrelevement, 1, 100)"/><xsl:variable name="cdIntPreleveur" select="substring(Preleveur/CdIntervenant, 1, 17)"/><xsl:variable name="orgCdIntPreleveur" select="substring(Preleveur/CdIntervenant/@schemeAgencyID, 1, 10)"/><xsl:variable name="datePrel"><xsl:call-template name="formatDate"><xsl:with-param name="date" select="DatePrel"/></xsl:call-template></xsl:variable><xsl:variable name="delaiPrel" select="DelaiPrel"/><xsl:variable name="cdStationPrel" select="substring(StationPrelevement/CdStationPrelevement, 1, 50)"/><xsl:variable name="orgCdStationPrel" select="substring(StationPrelevement/CdStationPrelevement/@schemeAgencyID, 1, 2)"/><xsl:variable name="cdLocalPrel" select="substring(LocalPrelevement/CdLocalPrelevement, 1, 50)"/><xsl:variable name="orgCdlocalPrel" select="substring(LocalPrelevement/CdLocalPrelevement/@schemeAgencyID, 1, 2)"/><xsl:variable name="cdSupport" select="substring(Support/CdSupport, 1, 3)"/><xsl:variable name="dataPrel" select="concat($cdPrelevement, $sep, $cdIntPreleveur, $sep, $orgCdIntPreleveur, $sep, $datePrel,                      $sep, $delaiPrel, $sep, $cdStationPrel,$sep, $orgCdStationPrel,$sep, $cdLocalPrel,                      $sep, $orgCdlocalPrel, $sep, $cdSupport)"/>
				
				<!-- ============================================= -->
				<!-- = On ajoute les parametres environnementaux = -->
				<!-- ============================================= --><xsl:for-each select="MesureEnvironnementale"><xsl:variable name="typeAna" select="'1'"/><xsl:variable name="cdParam" select="substring(Parametre/CdParametre, 1, 5)"/><xsl:variable name="cdUnite" select="substring(UniteReference/CdUniteReference, 1, 5)"/><xsl:variable name="cdFraction" select="'0'"/><xsl:variable name="cdMethode" select="substring(Methode/CdMethode, 1, 5)"/>
					
					<!-- Le code laboratoire et son origine sont a ceux du préleveur --><xsl:value-of select="concat($dataDemande, $sep, $dataPrel, $sep, cdIntPreleveur, $sep, orgCdIntPreleveur, $sep,                                             $typeAna, $sep, $cdParam, $sep, $cdUnite, $sep, $cdFraction, $sep, $cdMethode,                                             $sep, $FLG)"/></xsl:for-each>
				<!-- ================================== -->
				<!-- = On itère sur les echantillons  = -->
				<!-- ================================== --><xsl:for-each select="Echantillon"><xsl:variable name="cdIntLabo" select="substring(Laboratoire/CdIntervenant, 1, 17)"/><xsl:variable name="orgCdIntLabo" select="substring(Laboratoire/Intervenant/CdIntervenant/@schemeAgencyID, 1, 10)"/>
					
					<!-- =================================================== -->
					<!-- = On ajoute les analyse des groupe de parameteres = -->
					<!-- =================================================== --><xsl:for-each select="GroupeParametres"><xsl:variable name="defGroupParams" select="key('keyGroupeParametres', CdGroupeParametres)"/><xsl:for-each select="$defGroupParams/Analyse"><xsl:variable name="typeAna" select="substring(InsituAna, 1, 1)"/><xsl:variable name="cdParam" select="substring(Parametre/CdParametre, 1, 5)"/><xsl:variable name="cdUnite" select="substring(UniteReference/CdUniteReference, 1, 5)"/><xsl:variable name="cdFraction" select="substring(FractionAnalysee/CdFractionAnalysee, 1, 3)"/><xsl:variable name="cdMethode" select="substring(Methode/CdMethode, 1, 5)"/><xsl:value-of select="concat($dataDemande, $sep, $dataPrel, $sep, $cdIntLabo, $sep, $orgCdIntLabo, $sep,                $typeAna, $sep, $cdParam, $sep, $cdUnite, $sep, $cdFraction, $sep, $cdMethode,               $sep, $FLG)"/></xsl:for-each></xsl:for-each>
					
					<!-- ==================================================== -->
					<!-- = On ajoute les analyse spécifique à l'échantillon = -->
					<!-- ==================================================== --><xsl:for-each select="Analyse"><xsl:variable name="typeAna" select="substring(InsituAna, 1, 1)"/><xsl:variable name="cdParam" select="substring(Parametre/CdParametre, 1, 5)"/><xsl:variable name="cdUnite" select="substring(UniteReference/CdUniteReference, 1, 5)"/><xsl:variable name="cdFraction" select="substring(FractionAnalysee/CdFractionAnalysee, 1, 3)"/><xsl:variable name="cdMethode" select="substring(Methode/CdMethode, 1, 5)"/><xsl:value-of select="concat($dataDemande, $sep, $dataPrel, $sep, $cdIntLabo, $sep, $orgCdIntLabo, $sep,               $typeAna, $sep, $cdParam, $sep, $cdUnite, $sep, $cdFraction, $sep, $cdMethode,               $sep, $FLG)"/></xsl:for-each></xsl:for-each></xsl:for-each></xsl:for-each></xsl:template></xsl:stylesheet>