*****************************************************************
* edition heures en attente                                     *
*                                                               *
* MODIF JUILLET 2000                                            *
* MODIF AOUT    2000 TROYES                                     *
* MODIF SEPTEMBRE 2009 Guillaume : DA9142-02, Gestion de la     * 
*                                  facturation anticipe        *
*****************************************************************

************
* FICHIERS *
************
* OUVERTURE DES FICHIERS UTILISES

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACCORD" TO F.ACCORD ELSE STOP
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE STOP
OPEN "","DEMANDACC" TO F.DEMANDACC ELSE STOP
OPEN "","FEDEASSOC" TO F.FEDEASSOC ELSE STOP
OPEN "","HRESATTENTE" TO F.HRESATTENTE ELSE STOP
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE STOP
OPEN "","RESPONSABLE" TO F.RESPONSABLE ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "","COMMUNES" TO F.COMMUNES ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP
OPEN "","FACTURATION" TO F.FACTURATION ELSE STOP

******************************
* Recuperation des arguments *
******************************
PROCREAD ARGUMENTS ELSE PRINT "PROCREAD"
*ARGUMENTS = 'EDITHRESATTENTE |SSELECT HRESATTENTE AVEC EntiteHresAttente = "001" AND AVEC TypeActiviteHresAttente = "P" AND AVEC CodeActiviteDetHresAttente = "001001" OR AVEC EntiteHresAttente = "001" AND AVEC TypeActiviteHresAttente = "P" AND AVEC CodeActiviteHresAttente = "001001" PAR PeriodeHresAttente PAR NomAideHresAttente PAR 0||001|001|F'
W_REQUETE=FIELD(ARGUMENTS,"|",2)
W_SELECTION=FIELD(ARGUMENTS,"|",3)
W_ACTIVITE=FIELD(ARGUMENTS,"|",4)
W_CODEASSOC=FIELD(ARGUMENTS,"|",5)
W_TYPESORTIE=FIELD(ARGUMENTS,"|",6)

*   100    ---> PARCOURS REQUETE
*   150    ---> TRAITEMENT VALEURS
*   160    ---> CONTROLE FIN SELECTION
*   170    ---> ECRITURE TOTAL SELECTION
*   200    ---> traitement gnral pour 1 aid& avec activit prcise renseigne
*   300    ---> traitement de recherche et cumul des heures pour 1 aid sans  activit precise
*   400    ---> rcupre le cout d'une activite
*   500    ---> CONVERSION MOIS
*   600    ---> TRAITEMENT RECHERCHE ORGANISME ET DEMANDE
*   650    ---> TRAITEMENT RECHERCHE ORGANISME ET DEMANDE POUR TRI ORGANISME
*   700    ---> MAJ ATT 9 DE HRESATTENTE
*   800    ---> RECHERCHE ACCORD ACTIF SI PAS DE DEMANDE ACCORD
*   900    ---> RECHERCHE DU TAUX TARIFE
*********************
* EXECUTION REQUETE *
*********************

* Modif Greg - 11/01/10. Les 2 variables de cumuls n'taient pas initialises correctement.
* Du coup quand on lanait le prog sous Telnet, on avait le message indiquant que la variable
* untel allait tre initialise  zro.
* La 3me variable sert  amliorer le traitement. Depuis la mise en place de la facturation anticipe,
* on a des colonnes indiquant les donnes concernant cette anticipation. Entre une colonne avec un montant.
* Le pb, c'est que le total de cette colonne tait toujours affiche. Donc ce n'est pas trs beau de voir
* la colonne vide et un total  zro.
W_CumulTotalFactAnt=""
W_CumulFactAntSelect=""
W_AfficheTotAnt="NON"

W_REQUETEHEURES=""
W_REQHRESATT=""
W_REQACC=""
ENR_FG = ""

*  MAJ ATT 9 DE HRESATTENTE	
GOSUB 700

ENR_TEMPO=""
W_Memo=""

EXECUTE W_REQUETE
EXECUTE 'SAUVE-LISTE W_REQUETEHEURES'
EXECUTE "LISTE W_REQUETEHEURES" RETURNING MSGCODE	

IF MSGCODE<1>#209 THEN

*TRAITEMENT SI VALEURS SELECTIONNEES
	SELECT F.HRESATTENTE TO W_REQUETEHEURES
	I_TEMP=0
	W_CumulTotalHeure=0
	W_CumulTotalAttente=0
	W_CumulHeureSelect=0
	W_CumulTotalSelect=0
	* Modif Guillaume 27/11/2009 : Gestion du total des factures anticipes
	W_CumulFactAntSelect=0
	
	GOSUB 100
	IF W_SELECTION # "" THEN
		IF W_SELECTION # "O" THEN
			GOSUB 170
		END
	END
	
    IF W_TYPESORTIE = "P" THEN
  		I_TEMP=I_TEMP+1
		
  		ENR_TEMPO<I_TEMP,1>=" TOTAL GENERAL : ":SPACE(54-LEN(TRIM(W_CumulTotalHeure "R26(#8)")))
		* Modif Greg - 11/01/10 - Le programme grait au mieux un total de maximum 999,99 heures.
		* Hors dans la pratique, ces derniers mois on a vu que ce nombre d'heures pouvait tre
		* largement depass. J'ai donc modifi le la ligne suivante, pour formater le total non pas
		* sur 6 caractres mais sur 8 (en incluant la virgule). Je gre galement le "recadrage" des espaces.
  		ENR_TEMPO<I_TEMP,2>=TRIM(W_CumulTotalHeure "R26(#8)"):" "
  		ENR_TEMPO<I_TEMP,3>="      "
  		ENR_TEMPO<I_TEMP,4>=SPACE(27-LEN(TRIM(W_CumulTotalAttente "R26(#10)")))
		* Modif Greg - 11/01/10 - Mme principe que pour le total des heures. J'ai modifi la ligne
		* suivante pour grer le montant total sur 10 caractres plutt que 8.
  		ENR_TEMPO<I_TEMP,5>=TRIM(W_CumulTotalAttente "R26(#10)"):" "
  		* Modif Guillaume 27/11/2009 : Gestion du total des heures en attente
		IF W_AfficheTotAnt="NON" THEN
			ENR_TEMPO<I_TEMP,7>=SPACE(25)
		END ELSE
			ENR_TEMPO<I_TEMP,7>=W_CumulTotalFactAnt "R26(#25)" 
		END

		* ECRITURE DES INFOS DANS LE FICHIER
  		WRITE ENR_TEMPO ON F.TEMPO,"HEURESATTENTE"
    END ELSE     
        CONVERT CHAR(253) TO ";" IN ENR_FG
		
        W_Date = OCONV(DATE(),"D4/")
        W_Date = ICONV(W_Date,"MCN")
        W_Date=W_Date[1,2]:W_Date[3,2]:W_Date[5,4]
        
        ENR_TEMPO = "HresAttente":W_Date:".csv"
        WRITE ENR_TEMPO ON F.TEMPO,"HEURESATTENTE"
        
        W_EntTete = "Code;Nom;Organisme;Responsable;Secteur;Commune;Priode;Heures;Cot;Activit;Total;N facture anticipe;Heures facture anticipe;Montant facture anticipe":CHAR(254) 
        ENR_FG = W_EntTete:ENR_FG
        WRITE ENR_FG ON F.FACTURATION,"HresAttente":W_Date:".csv" 
    END
END

STOP

********************
* parcours requete *
********************
100

W_FINI="FAUX"
LOOP
	READNEXT W_CLE FROM W_REQUETEHEURES ELSE W_FINI="VRAI"
WHILE W_FINI="FAUX" DO
	GOSUB 150
REPEAT

RETURN


*********************
* traitement valeur *
*********************
150
	
READ ENR_HRESATTENTE FROM F.HRESATTENTE,W_CLE ELSE PRINT "HEURESATTENTE"
W_CodeAide = W_CLE[1, 5]
READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CodeAide ELSE PRINT "CIVILAIDE"

IF W_SELECTION # "" THEN
	GOSUB 160
END

I_TEMP=I_TEMP+1

W_CumulHeure = 0
W_TotalAide = 0
*W_CodeAide = W_CLE[1, 5]

IF W_TYPESORTIE = "P" THEN
    * Modif Guillaume DA9142 : On met la priode au format "MM/AA"
	*GOSUB 500
	*W_Mois =W_Mois:" ":W_CLE[9,4]
	W_Mois =W_CLE[13,2]:"/":W_CLE[11,2]	
END ELSE
	W_Mois = W_CLE[9,4]:W_CLE[13,2]
END

    
*code aid
*READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CodeAide ELSE PRINT "CIVILAIDE"
ENR_TEMPO=REPLACE(ENR_TEMPO,I_TEMP,1;" ":W_CLE[1,5]:" ")
IF W_TYPESORTIE="F" THEN
	ENR_FG = REPLACE(ENR_FG,I_TEMP,1;W_CLE[1,5])
END

*nom aid
ENR_TEMPO<I_TEMP,1>=ENR_TEMPO<I_TEMP,1>:(ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>)"L#28":" "
IF W_TYPESORTIE="F" THEN
  ENR_FG<I_TEMP,2>=ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
END

* RECHERCHE SI OFFICIALISE OU PAS
IF W_SELECTION # "O" THEN
	GOSUB 600
END ELSE
	GOSUB 650
END
IF W_NbVide=0 THEN

*priode
* Modif Guillaume DA9142 : On met la priode au format MM/AA
	ENR_TEMPO<I_TEMP,1>=ENR_TEMPO<I_TEMP,1>:W_Mois"L#5":"   "
	IF W_TYPESORTIE="F" THEN
		ENR_FG<I_TEMP,7>=W_Mois
	END

*Nbres heures
*parcours des heures
	W_SaveITemp=I_TEMP
	IF W_ACTIVITE # "" THEN
	    GOSUB 200
	END ELSE
*pas d'activite renseigne precisement,
*clatement pour cout prestation diffrent
	    GOSUB 300
	END

	IF W_SELECTION # "" THEN
		ENR_TEMPO<I_TEMP,6>=W_ANCIENCODE
	END

	IF W_TYPESORTIE = "F" THEN
		* Modif Greg - 22/09/09
		* On peut avoir un aid qui a plusieurs activits sur un mois. Cela gnre plusieurs lignes
		* dans le fichier. Le soucis c'est que jusqu' prsent, on renseignait uniquement la dernire
		* ligne (en utilisant la variable I_TEMP plutt qu'en faisant une boucle).
		FOR W_SaveITemp2 = W_SaveITemp TO I_TEMP
			READ ENR_RESPONSABLE FROM F.RESPONSABLE,ENR_CIVILAIDE<39> ELSE PRINT "RESPONSABLE"
			ENR_FG<W_SaveITemp2,4>=ENR_RESPONSABLE<1>
	    
			READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE PRINT "SECTEUR"
			ENR_FG<W_SaveITemp2,5>=ENR_SECTEUR<1>
	    
			ENR_FG<W_SaveITemp2,6>=ENR_CIVILAIDE<11>
		NEXT
		* Fin modif Greg - 22/09/09
	END
      
	IF W_ACTIVITE # "" AND W_ACTIVITE # 0 THEN
		READ ENR_ACTIVITES FROM F.ACTIVITES,W_CODEASSOC:W_ACTIVITE ELSE PRINT "ACTIVITE"
	END
	ENR_FG<I_TEMP,10>=ENR_ACTIVITES<1>
	
	* Modif Greg - 29/09/09
	* On peut avoir un aid qui a plusieurs activits sur un mois. Cela gnre plusieurs lignes
	* dans le fichier. Le soucis c'est que jusqu' prsent, on modifiait les valeurs uniquement
	* de la dernire ligne (en utilisant la variable I_TEMP plutt qu'en faisant une boucle).
	FOR W_SaveITemp2 = W_SaveITemp TO I_TEMP
		ENR_FG<W_SaveITemp2,8>=ENR_FG<W_SaveITemp2,8>/100
		ENR_FG<W_SaveITemp2,9>=ENR_FG<W_SaveITemp2,9>/100
		ENR_FG<W_SaveITemp2,11>=ENR_FG<W_SaveITemp2,11>/100
	NEXT
	* Fin modif Greg
  
	* modif vanessa 28/09/09
	
	IF W_TYPESORTIE="F" THEN
		IF ENR_HRESATTENTE<10> # "" THEN
			ENR_FG<I_TEMP,12>=ENR_HRESATTENTE<12>
			ENR_FG<I_TEMP,13>=ENR_HRESATTENTE<11>/100
			ENR_FG<I_TEMP,14>=ENR_HRESATTENTE<11>*ENR_HRESATTENTE<10>/10000
		END
	END
END ELSE
	ENR_TEMPO<I_TEMP>=""
	IF W_TYPESORTIE = "F" THEN
	   ENR_FG<I_TEMP>=""
	END
	I_TEMP=I_TEMP-1
END
       
RETURN


**************************************************
* ECRITURE EVENTUEL CUMUL SECTEUR OU RESPONSABLE *
**************************************************
160
IF I_TEMP=0 THEN
	IF W_SELECTION="R" THEN
		W_ANCIENCODE = ENR_CIVILAIDE<39>
	END ELSE
		IF W_SELECTION = "S" THEN
			W_ANCIENCODE = ENR_CIVILAIDE<40>[1,3]
		END ELSE
			IF W_SELECTION="C" THEN
				W_ANCIENCODE=ENR_CIVILAIDE<11>
			END ELSE
				W_ANCIENCODE = ENR_HRESATTENTE<9>
			END
		END	
	END		
END ELSE
	IF W_SELECTION="R" THEN
		IF W_ANCIENCODE # ENR_CIVILAIDE<39> THEN
			GOSUB 170
			W_ANCIENCODE=ENR_CIVILAIDE<39>
		END
	END ELSE
		IF W_SELECTION = "S" THEN
			IF W_ANCIENCODE # ENR_CIVILAIDE<40>[1,3] THEN
				GOSUB 170
				W_ANCIENCODE=ENR_CIVILAIDE<40>[1,3]
			END
		END ELSE
			IF W_SELECTION = "C" THEN
				IF W_ANCIENCODE # ENR_CIVILAIDE<11> THEN
					GOSUB 170
					W_ANCIENCODE=ENR_CIVILAIDE<11>
				END
			END ELSE
				W_ANCIENCODE=ENR_HRESATTENTE<9>
			END
		END
	END	
		
END

RETURN


************************
* ECRITURE LIGNE TOTAL *
************************
170
IF W_TYPESORTIE # "F" THEN
  I_TEMP=I_TEMP+1
END

IF W_SELECTION="R" THEN
	ENR_TEMPO<I_TEMP,1>=" TOTAL RESPONSABLE : ":SPACE(50-LEN(TRIM(W_CumulHeureSelect "R26(#8)")))
END ELSE
	IF W_SELECTION="C" THEN
		ENR_TEMPO<I_TEMP,1>=" TOTAL COMMUNE : ":SPACE(54-LEN(TRIM(W_CumulHeureSelect "R26(#8)")))
	END ELSE
		ENR_TEMPO<I_TEMP,1>=" TOTAL SECTEUR : ":SPACE(54-LEN(TRIM(W_CumulHeureSelect "R26(#8)")))
	END
END

* Modif Guillaume 27/11/2009 : Gestion du total des factures anticipes
* Modif Greg - 11/01/10 - Le programme grait au mieux un total de maximum 999,99 heures.
* Hors dans la pratique, ces derniers mois on a vu que ce nombre d'heures pouvait tre
* largement depass. J'ai donc modifi la ligne suivante, pour formater le total non pas
* sur 6 caractres mais sur 8 (en incluant la virgule).
* Je gre galement le "recadrage" des espaces.
ENR_TEMPO<I_TEMP,2>=TRIM(W_CumulHeureSelect "R26(#8)"):" "
ENR_TEMPO<I_TEMP,3>="      "
ENR_TEMPO<I_TEMP,4>=SPACE(27-LEN(TRIM(W_CumulTotalSelect "R26(#10)")))
* Modif Greg - 11/01/10 - Mme principe que pour le total des heures. J'ai modifi la ligne
* suivante pour grer le montant total sur 10 caractres plutt que 8.
ENR_TEMPO<I_TEMP,5>=TRIM(W_CumulTotalSelect "R26(#8)")
IF W_AfficheTotAnt="NON" THEN
	ENR_TEMPO<I_TEMP,7>=SPACE(25)
END ELSE
	ENR_TEMPO<I_TEMP,7>=W_CumulFactAntSelect "R26(#25)"
END
W_CumulHeureSelect=0
W_CumulTotalSelect=0
W_CumulFactAntSelect = 0

RETURN
*******************************************************************
* traitement gnral pour 1 aid& avec activit prcise renseigne *
*******************************************************************
200

i = 1
	
LOOP
		
WHILE ENR_HRESATTENTE<1, i> # "" DO
*parcours des multi valeurs
*controle si renseign ou pas
        
	IF ENR_HRESATTENTE<4, i> # "" THEN
*si activit correspond cumul
            
		IF ENR_HRESATTENTE<4, i> = (W_CODEASSOC : W_ACTIVITE) THEN
    		W_CumulHeure = W_CumulHeure + ENR_HRESATTENTE<3, i>
		END
            
	END
        
* parcours des SOUS VALEURS
	j = 1
        
	LOOP
		
	WHILE ENR_HRESATTENTE<8, i,j> # "" DO
        	            
		IF ENR_HRESATTENTE<8, i, j> = (W_CODEASSOC : W_ACTIVITE) THEN
    		W_CumulHeure = W_CumulHeure + ENR_HRESATTENTE<7, i, j>
		END
		j = j + 1
            
	REPEAT
        
	i = i + 1
REPEAT
   
* Modif Guillaume DA9142 : Retaillage des colonnes
ENR_TEMPO<I_TEMP,2>=W_CumulHeure "R26(#6)":" "
IF W_TYPESORTIE = "F" THEN
  ENR_FG<I_TEMP,8>=W_CumulHeure  
END
W_CumulTotalHeure=W_CumulTotalHeure+W_CumulHeure
IF W_SELECTION # "" THEN
	W_CumulHeureSelect=W_CumulHeureSelect+W_CumulHeure
END

*cout prestation
IF W_Orga="FALSE" THEN
	W_CODE=W_CODEASSOC:W_ACTIVITE
	GOSUB 400
	IF W_CoutPrest = 0 THEN
		GOSUB 900
	END
END
    
*total
W_TotalAide = W_CoutPrest * W_CumulHeure / 100
* Modif Guillaume DA9142 : Retaillage des colonnes
ENR_TEMPO<I_TEMP,3>=W_CoutPrest "R26(#5)":" "
ENR_TEMPO<I_TEMP,5>=W_TotalAide "R26(#8)":" "

W_TempParticip = ""
IF ENR_HRESATTENTE<10> # "" THEN
    W_TempParticip = INT(((ENR_HRESATTENTE<10>/100) * (ENR_HRESATTENTE<11>/100))*100+ 1/2)
    ENR_TEMPO<I_TEMP,7>=ENR_HRESATTENTE<12>"R#10":" ":(ENR_HRESATTENTE<11>)"R26(#6)":" ":W_TempParticip"R26(#7)"
    * Modif Guillaume 27/11/2009 : Gestion du total des factures anticipes
	IF TRIM(W_TempParticip)<>"" THEN W_AfficheTotAnt="OUI"
    W_CumulFactAntSelect = W_CumulFactAntSelect + W_TempParticip
    W_CumulTotalFactAnt = W_CumulTotalFactAnt + W_TempParticip
END

IF W_TYPESORTIE = "F" THEN
  ENR_FG<I_TEMP,9>=W_CoutPrest
  ENR_FG<I_TEMP,11>=W_TotalAide
END
W_CumulTotalAttente=W_CumulTotalAttente+W_TotalAide
IF W_SELECTION # "" THEN
	W_CumulTotalSelect=W_CumulTotalSelect+W_TotalAide
END

IF W_SELECTION = "F" THEN
  
END

RETURN


**********************************************************************************
* traitement de recherche et cumul des heures pour 1 aid sans  activit precise *
**********************************************************************************
300
 
*W_Memo  *1 activite
*2 Nb heures
*3 libell activit 
        
i300 = 1
j300 = 0

LOOP
		
WHILE ENR_HRESATTENTE<1, i300> # ""  DO
*parcours des MULTI VALEURS
	W_Indic = "False"
         
	IF j300 # 0 THEN
        
		FOR k300 = 1 TO j300
*controle si activit dja cr
                
    		IF ENR_HRESATTENTE<4, i300> = W_Memo<k300, 1> THEN
*mise  jour valeur
    			W_Memo<k300, 2> = W_Memo<k300, 2> + ENR_HRESATTENTE<3,i300>
    			W_Indic = "True"
    			EXIT 
    		END ELSE
*si pas d'activit(case ou SOUS VALEUR ET PAS MV)
    			IF ENR_HRESATTENTE<4, i300> = "" THEN
        			W_Indic = "True"
        			EXIT 
    			END            
       		END
		NEXT k300
	END
        
*si l'activit n'a pas t trouv cration
	IF ENR_HRESATTENTE<4, i300> # "" THEN
            
		IF W_Indic = "False" THEN
    		j300 = j300 + 1
    		W_Memo<j300, 1> = ENR_HRESATTENTE<4, i300>
    		W_Memo<j300, 2> = ENR_HRESATTENTE<3, i300>
			READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_HRESATTENTE<4,i300> ELSE PRINT "ACTIVITES"
                
    		W_Memo<j300, 3> = ENR_ACTIVITES<1>
		END 
        
	END
        
*parcours des SOUS VALEURS
*meme commentaire que pour MULTI VALEURS
	l300 = 1
	
	LOOP
		
	WHILE ENR_HRESATTENTE<8, i300, l300> # "" DO
	    W_Indic = "False"
            
		FOR k300 = 1 TO j300
            
    		IF ENR_HRESATTENTE<8, i300, l300> = W_Memo<k300, 1> THEN
    			W_Memo<k300, 2> = W_Memo<k300, 2> + ENR_HRESATTENTE<7, i300, l300>
    			W_Indic = "True"
    			EXIT 
    		END
                
		NEXT k300
            
		IF W_Indic = "False" THEN
    		j300 = j300 + 1
    		W_Memo<j300, 1> = ENR_HRESATTENTE<8, i300, l300>
    		W_Memo<j300, 2> = ENR_HRESATTENTE<7, i300, l300>
			READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_HRESATTENTE<8,i300,l300> ELSE PRINT "ACTIVITES"
    		W_Memo<j300, 3> = ENR_ACTIVITES<1>
		END
            
	l300 = l300 + 1
	REPEAT
        
    i300 = i300 + 1
REPEAT
       
IF j300 = 1 THEN
        
	ENR_TEMPO<I_TEMP,2>=W_Memo<1, 2> "R26(#6)":" "
	IF W_TYPESORTIE="F" THEN
		ENR_FG<I_TEMP,8>=W_Memo<1, 2> 
	END
	W_CumulTotalHeure=W_CumulTotalHeure+W_Memo<1, 2>

	IF W_SELECTION # "" THEN
		W_CumulHeureSelect=W_CumulHeureSelect+W_Memo<1, 2>
	END

*cout prestation
	IF W_Orga="FALSE" THEN
		W_CODE=W_Memo<1, 1>
		GOSUB 400
		IF W_CoutPrest = 0 THEN
			GOSUB 900
		END
	END

    ENR_TEMPO<I_TEMP,3>=W_CoutPrest "R26(#5)":" "
*dsignation activit
    ENR_TEMPO<I_TEMP,4>=W_Memo<1, 3> "L#18":" "
*total
    W_TotalAide = W_CoutPrest * W_Memo<1, 2> / 100
    ENR_TEMPO<I_TEMP,5>=W_TotalAide "R26(#8)":" "
    
    W_TempParticip = ""
    IF ENR_HRESATTENTE<10> # "" THEN
        W_TempParticip = INT(((ENR_HRESATTENTE<10>/100) * (ENR_HRESATTENTE<11>/100))*100+ 1/2)
        ENR_TEMPO<I_TEMP,7>=ENR_HRESATTENTE<12>"R#10":" ":(ENR_HRESATTENTE<11>)"R26(#6)":" ":W_TempParticip"R26(#7)"
        * Modif Guillaume 27/11/2009 : Gestion du total des factures anticipes
		IF TRIM(W_TempParticip)<>"" THEN W_AfficheTotAnt="OUI"
        W_CumulFactAntSelect = W_CumulFactAntSelect + W_TempParticip
        W_CumulTotalFactAnt = W_CumulTotalFactAnt + W_TempParticip
    END
    
    IF W_TYPESORTIE = "F" THEN
		ENR_FG<I_TEMP,9>=W_CoutPrest   
		ENR_FG<I_TEMP,10>=W_Memo<1, 3> 
		ENR_FG<I_TEMP,11>=W_TotalAide  
    END
    W_CumulTotalAttente=W_CumulTotalAttente+W_TotalAide
	IF W_SELECTION # "" THEN
		W_CumulTotalSelect=W_CumulTotalSelect+W_TotalAide
	END

    
END ELSE
    
    W_CumulHeureTotalAide = 0
    W_CumulTotalAide = 0
    ENR_TEMPO<I_TEMP,2>=W_Memo<1, 2> "R26(#6)":" "
    IF W_TYPESORTIE = "F" THEN
		ENR_FG<I_TEMP,8>=W_Memo<1, 2> 
    END
    W_CumulTotalHeure=W_CumulTotalHeure+W_Memo<1, 2>
	IF W_SELECTION # "" THEN
		W_CumulHeureSelect=W_CumulHeureSelect+W_Memo<1, 2>
	END

*cout prestation
	IF W_Orga="FALSE" THEN
		W_CODE=W_Memo<1, 1>
		GOSUB 400
		IF W_CoutPrest = 0 THEN
			GOSUB 900
		END
	END
    ENR_TEMPO<I_TEMP,3>=W_CoutPrest "R26(#5)":" "
*dsignation activit
    ENR_TEMPO<I_TEMP,4>=W_Memo<1, 3> "L#18":" "
*total
    W_TotalAide = W_CoutPrest * W_Memo<1, 2> / 100
    ENR_TEMPO<I_TEMP,5>=W_TotalAide "R26(#8)":" "
    
    W_TempParticip = ""
    IF ENR_HRESATTENTE<10> # "" THEN
        W_TempParticip = INT(((ENR_HRESATTENTE<10>/100) * (ENR_HRESATTENTE<11>/100))*100+ 1/2)
        ENR_TEMPO<I_TEMP,7>=ENR_HRESATTENTE<12>"R#10":" ":(ENR_HRESATTENTE<11>)"R26(#6)":" ":W_TempParticip"R26(#7)"
        * Modif Guillaume 27/11/2009 : Gestion du total des factures anticipes
		IF TRIM(W_TempParticip)<>"" THEN W_AfficheTotAnt="OUI"
        W_CumulFactAntSelect = W_CumulFactAntSelect + W_TempParticip
        W_CumulTotalFactAnt = W_CumulTotalFactAnt + W_TempParticip
    END

    IF W_TYPESORTIE = "F" THEN
		ENR_FG<I_TEMP,9>=W_CoutPrest   
		ENR_FG<I_TEMP,10>=W_Memo<1, 3> 
		ENR_FG<I_TEMP,11>=W_TotalAide  
    END
	W_CumulTotalAttente=W_CumulTotalAttente+W_TotalAide
	IF W_SELECTION # "" THEN
		W_CumulTotalSelect=W_CumulTotalSelect+W_TotalAide
	END

	FOR i300 = 2 TO j300
		I_TEMP = I_TEMP + 1
		ENR_TEMPO<I_TEMP,1> = ENR_TEMPO<I_TEMP-1,1>
		ENR_TEMPO<I_TEMP,2>=W_Memo<i300 , 2> "R26(#10)" 
		IF W_TYPESORTIE = "F" THEN
			* Modif Greg - 22/09/09
			* On rcupre certaines infos pour crer la nouvelle ligne.
			ENR_FG<I_TEMP,1> = ENR_FG<I_TEMP-1,1>
			ENR_FG<I_TEMP,2> = ENR_FG<I_TEMP-1,2>
			ENR_FG<I_TEMP,3> = ENR_FG<I_TEMP-1,3>
			ENR_FG<I_TEMP,7> = ENR_FG<I_TEMP-1,7>
			
			ENR_FG<I_TEMP,8>=W_Memo<i300 , 2>
		END
        W_CumulTotalHeure=W_CumulTotalHeure + W_Memo<i300 , 2>
		
		IF W_SELECTION # "" THEN
			W_CumulHeureSelect=W_CumulHeureSelect+W_Memo<i300 , 2>
		END
		
		IF W_Orga="FALSE" THEN
			W_CODE=W_Memo<i300 , 1>
        	GOSUB 400
			IF W_CoutPrest = 0 THEN
				GOSUB 900
			END
		END
        ENR_TEMPO<I_TEMP,3>=W_CoutPrest "R26(#5)":" "
        ENR_TEMPO<I_TEMP,4>=W_Memo<i300 , 3> "L#18":" "
        W_TotalAide = W_CoutPrest * W_Memo<i300 , 2>/100
        ENR_TEMPO<I_TEMP,5>=W_TotalAide "R26(#8)":" "
        W_TempParticip = ""
        IF ENR_HRESATTENTE<10> # "" THEN
            W_TempParticip = INT(((ENR_HRESATTENTE<10>/100) * (ENR_HRESATTENTE<11>/100))*100+ 1/2)
            ENR_TEMPO<I_TEMP,7>=ENR_HRESATTENTE<12>"R#10":" ":(ENR_HRESATTENTE<11>)"R26(#6)":" ":W_TempParticip"R26(#7)"
            * Modif Guillaume 27/11/2009 : Gestion du total des factures anticipes
			IF TRIM(W_TempParticip)<>"" THEN W_AfficheTotAnt="OUI"
            W_CumulFactAntSelect = W_CumulFactAntSelect + W_TempParticip
            W_CumulTotalFactAnt = W_CumulTotalFactAnt + W_TempParticip
        END

        IF W_TYPESORTIE = "F" THEN
            ENR_FG<I_TEMP,9>=W_CoutPrest      
            ENR_FG<I_TEMP,10>=W_Memo<i300,3> 
            ENR_FG<I_TEMP,11>=W_TotalAide           
        END
        W_CumulTotalAttente=W_CumulTotalAttente + W_TotalAide
		IF W_SELECTION # "" THEN
			W_CumulTotalSelect=W_CumulTotalSelect+W_TotalAide
		END
		
    NEXT i300 
    
END
    
RETURN


***********************************
* rcupre le cout d'une activite *
***********************************
400

READ ENR_ACTIVITES FROM F.ACTIVITES,W_CODE ELSE PRINT "ACTIVITE"
Periode = ICONV("01/" :W_CLE[13, 2] : "/" : W_CLE[ 9, 4],"D4/")
    
W_Nb = DCOUNT(ENR_ACTIVITES<15>,CHAR(253))
    
FOR IACT= 1 TO W_Nb
    
    IF ENR_ACTIVITES<15, IACT> <= Periode AND ENR_ACTIVITES<20,IACT> = "1" THEN
        W_CoutPrest = ENR_ACTIVITES<14, IACT>
        EXIT 
    END
        
NEXT IACT

RETURN


*******************
* CONVERSION MOIS *
*******************
500
BEGIN CASE
	CASE W_CLE[13,2] MATCHES "01"
		W_Mois="JANVIER"
	CASE W_CLE[13,2] MATCHES "02"
		W_Mois="FEVRIER"
	CASE W_CLE[13,2] MATCHES "03"
		W_Mois="MARS"
	CASE W_CLE[13,2] MATCHES "04"
		W_Mois="AVRIL"
	CASE W_CLE[13,2] MATCHES "05"
		W_Mois="MAI"
	CASE W_CLE[13,2] MATCHES "06"
		W_Mois="JUIN"
	CASE W_CLE[13,2] MATCHES "07"
		W_Mois="JUILLET"
	CASE W_CLE[13,2] MATCHES "08"
		W_Mois="AOUT"
	CASE W_CLE[13,2] MATCHES "09"
		W_Mois="SEPTEMBRE"
	CASE W_CLE[13,2] MATCHES "10"
		W_Mois="OCTOBRE"
	CASE W_CLE[13,2] MATCHES "11"
		W_Mois="NOVEMBRE"
	CASE W_CLE[13,2] MATCHES "12"
		W_Mois="DECEMBRE"
END CASE

RETURN


*********************************************
* TRAITEMENT RECHERCHE ORGANISME ET DEMANDE *
*********************************************
600
W_Orga="FALSE"
W_NbVide=0

READ ENR_DEMANDACC FROM F.DEMANDACC,W_CLE[1,5] ELSE ENR_DEMANDACC=""
	
IF ENR_DEMANDACC<1,1> # "" THEN

	W_DebutPeriode = ICONV("01/" :W_CLE[13, 2] : "/" : W_CLE[ 9, 4],"D4/")

	W_FinPeriode=W_CLE[ 9, 6]+1
	IF W_FinPeriode[5,2]=13 THEN
		W_FinPeriode=W_FinPeriode[1,4]+1:"01"
	END
	W_FinPeriode=ICONV("01/" :W_FinPeriode[5, 2] : "/" : W_FinPeriode[ 1, 4],"D4/")-1

	W_NbDem = DCOUNT(ENR_DEMANDACC<2>,CHAR(253))

*PARCOURS DE DEMANDE ACCORD    
	FOR IDem = 1 TO W_NbDem
    
*CONTROLE SI DATE ACCORD SUR PERIODE
		IF ENR_DEMANDACC<4,IDem> >= W_DebutPeriode AND ENR_DEMANDACC<3,IDem> <= W_FinPeriode THEN

*POINTAGE SUR ORGANISME PRISE EN CHARGE
			READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_DEMANDACC<1,IDem> THEN

*CONTROLE ORGANISME TYPE PRINCIPAL
				IF ENR_ORGPRISECHARGE<18>="P" THEN

					W_NbTaux=DCOUNT(ENR_ORGPRISECHARGE<25>,CHAR(253))
						
*PARCOURS DES DATES POUR TROUVER LE TAUX
					FOR ITaux=1 TO W_NbTaux

						IF ITaux=1 THEN
			
							IF W_DebutPeriode >= ENR_ORGPRISECHARGE<25,ITaux> OR (ENR_ORGPRISECHARGE<25,ITaux> <= W_DebutPeriode AND ENR_ORGPRISECHARGE<25,ITaux> >= W_FinPeriode) THEN			
								W_CoutPrest=ENR_ORGPRISECHARGE<26,ITaux>
								W_Orga="TRUE"
								IF W_CoutPrest = 0 THEN
									GOSUB 900
								END
								EXIT
							END

						END ELSE

							IF ENR_ORGPRISECHARGE<25,ITaux> <= W_FinPeriode AND (ENR_ORGPRISECHARGE<25,ITaux-1>-1) >= W_DebutPeriode THEN
								W_CoutPrest=ENR_ORGPRISECHARGE<26,ITaux>
								W_Orga="TRUE"
								IF W_CoutPrest = 0 THEN
									GOSUB 900
								END
								EXIT
							END

						END

					NEXT ITaux

				END ELSE
*PAS DE TYPE PRINCIPAL

				END
					
			END ELSE
*ORGANISEME N'EXISTE PAS/PLUS
				W_NbVide=W_NbVide+1
					
			END

			IF W_Orga="TRUE" THEN
				EXIT
			END

		END
        
	NEXT IDem

	IF W_NbVide=W_NbDem THEN
		W_NbVide=1
	END ELSE
		W_NbVide=0
	END
	
	IF W_NbVide=0 THEN
*AUCUN ORGANISME VALIDE SELECTIONNE
		IF W_Orga="FALSE" THEN
			ENR_TEMPO<I_TEMP,1>=ENR_TEMPO<I_TEMP,1>:"ACCORD OFFICIALISE" "L#20":" "
		END ELSE
			ENR_TEMPO<I_TEMP,1>=ENR_TEMPO<I_TEMP,1>:ENR_ORGPRISECHARGE<1> "L#20":" "
		END
		IF W_TYPESORTIE = "F" THEN
    		IF W_Orga="FALSE" THEN
    			ENR_FG<I_TEMP,3>="ACCORD OFFICIALISE"
    		END ELSE
    			ENR_FG<I_TEMP,3>=ENR_ORGPRISECHARGE<1> 
    		END		
		END
	END

END ELSE
	GOSUB 800
END

RETURN

******************************************************************
*TRAITEMENT RECHERCHE DEMANDE ET ORGANISME POUR TRI PAR ORGANISME*
******************************************************************
650
W_Orga="FALSE"
W_NbVide=0

READ ENR_DEMANDACC FROM F.DEMANDACC,W_CLE[1,5] ELSE ENR_DEMANDACC=""

IF ENR_DEMANDACC<1,1> # "" THEN
	W_DebutPeriode = ICONV("01/" :W_CLE[13, 2] : "/" : W_CLE[ 9, 4],"D4/")

	W_FinPeriode=W_CLE[ 9, 6]+1
	IF W_FinPeriode[5,2]=13 THEN
		W_FinPeriode=W_FinPeriode[1,4]+1:"01"
	END
	W_FinPeriode=ICONV("01/" :W_FinPeriode[5, 2] : "/" : W_FinPeriode[ 1, 4],"D4/")-1

	W_NbDem = DCOUNT(ENR_DEMANDACC<1>,CHAR(253))
*PARCOURS DE DEMANDE ACCORD    
	FOR IDem = 1 TO W_NbDem
		IF ENR_DEMANDACC<1,IDem> = ENR_HRESATTENTE<9> THEN

*CONTROLE SI DATE ACCORD SUR PERIODE
			IF ENR_DEMANDACC<4,IDem> >= W_DebutPeriode AND ENR_DEMANDACC<3,IDem> <= W_FinPeriode THEN

*POINTAGE SUR ORGANISME PRISE EN CHARGE
				READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_DEMANDACC<1,IDem> THEN

					W_NbTaux=DCOUNT(ENR_ORGPRISECHARGE<25>,CHAR(253))
*PARCOURS DES DATES POUR TROUVER LE TAUX
					FOR ITaux=1 TO W_NbTaux

						IF ITaux=1 THEN
			
							IF W_DebutPeriode >= ENR_ORGPRISECHARGE<25,ITaux> OR (ENR_ORGPRISECHARGE<25,ITaux> <= W_DebutPeriode AND ENR_ORGPRISECHARGE<25,ITaux> >= W_FinPeriode) THEN			
								W_CoutPrest=ENR_ORGPRISECHARGE<26,ITaux>
								W_Orga="TRUE"
								IF W_CoutPrest = 0 THEN
									GOSUB 900
								END
								EXIT
							END

						END ELSE

							IF ENR_ORGPRISECHARGE<25,ITaux> <= W_FinPeriode AND (ENR_ORGPRISECHARGE<25,ITaux-1>-1) >= W_DebutPeriode THEN
								W_CoutPrest=ENR_ORGPRISECHARGE<26,ITaux>
								W_Orga="TRUE"
								IF W_CoutPrest = 0 THEN
									GOSUB 900
								END
								EXIT
							END

						END

					NEXT ITaux
		
				END ELSE
*ORGANISEME N'EXISTE PAS/PLUS
					W_NbVide=W_NbVide+1
				END

			END
			IF W_Orga="TRUE" THEN
				EXIT
			END

		END
        
	NEXT IDem

	IF W_NbVide=W_NbDem THEN
		W_NbVide=1
	END ELSE
		W_NbVide=0
	END
	
	IF W_NbVide=0 THEN
*AUCUN ORGANISME VALIDE SELECTIONNE
		IF W_Orga="FALSE" THEN
			ENR_TEMPO<I_TEMP,1>=ENR_TEMPO<I_TEMP,1>:"ACCORD OFFICIALISE" "L#20":" "
		END ELSE
			ENR_TEMPO<I_TEMP,1>=ENR_TEMPO<I_TEMP,1>:ENR_ORGPRISECHARGE<1> "L#20":" "
		END
		IF W_TYPESORTIE = "F" THEN
    		IF W_Orga="FALSE" THEN
    			ENR_FG<I_TEMP,3>="ACCORD OFFICIALISE" 
    		END ELSE
    			ENR_FG<I_TEMP,3>=ENR_ORGPRISECHARGE<1>
    		END
		END
	END

END ELSE
	GOSUB 800
END

RETURN

*****************************************************************
*  MAJ ATT 9 DE HRESATTENTE					*
*****************************************************************
700

EXECUTE 'SELECT HRESATTENTE PAR @ID'
EXECUTE 'SAUVE-LISTE W_REQHRESATT'
EXECUTE "LISTE W_REQHRESATT" RETURNING MSGCODE	
		
IF MSGCODE<1>#209 THEN

	SELECT F.HRESATTENTE TO W_REQHRESATT

	W_FINI="FAUX"
	W_Aide=""

	LOOP
		READNEXT W_CLE FROM W_REQHRESATT ELSE W_FINI="VRAI"
	WHILE W_FINI="FAUX" DO
		READ ENR_HRESATTENTE FROM F.HRESATTENTE,W_CLE ELSE ENR_HEURESATTENTE=""

		W_Date="01/":W_CLE[13,2]:"/":W_CLE[9,4]
		W_Date=ICONV(W_Date,"D4/")

		IF W_Aide="" THEN
			W_Aide=W_CLE[1,5]
			READ ENR_DEMANDACC FROM F.DEMANDACC,W_Aide ELSE ENR_DEMANDACC=""
			W_Count=DCOUNT(ENR_DEMANDACC<1>,CHAR(253))
		END ELSE
			IF W_Aide # W_CLE[1,5] THEN
				W_Aide=W_CLE[1,5]
				READ ENR_DEMANDACC FROM F.DEMANDACC,W_Aide ELSE ENR_DEMANDACC=""
				W_Count=DCOUNT(ENR_DEMANDACC<1>,CHAR(253))
			END
		END
			
		IF ENR_DEMANDACC<1> # "" THEN
			FOR i=1 TO W_Count
				READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_DEMANDACC<1,i> ELSE ENR_ORGPRISECHARGE=""
				IF ENR_ORGPRISECHARGE<18>="P" THEN
					IF ENR_DEMANDACC<3,i> <= W_Date AND ENR_DEMANDACC<4,i> >= W_Date THEN
						ENR_HRESATTENTE<9>=ENR_DEMANDACC<1,i>
						WRITE ENR_HRESATTENTE ON F.HRESATTENTE,W_CLE
						EXIT
					END
				END
			NEXT i
		END ELSE
			ENR_HRESATTENTE<9>=""
			WRITE ENR_HRESATTENTE ON F.HRESATTENTE,W_CLE
		END
	REPEAT

END

RETURN

*****************************************************************
*  RECHERCHE ACCORD ACTIF SI PAS DE DEMANDE ACCORD		*
*****************************************************************
800

W_Date="01/":W_CLE[13,2]:"/":W_CLE[9,4]
W_Date=ICONV(W_Date,"D4/")

W_DebutPeriode = ICONV("01/" :W_CLE[13, 2] : "/" : W_CLE[ 9, 4],"D4/")
W_FinPeriode=W_CLE[ 9, 6]+1
IF W_FinPeriode[5,2]=13 THEN
	W_FinPeriode=W_FinPeriode[1,4]+1:"01"
END
W_FinPeriode=ICONV("01/" :W_FinPeriode[5, 2] : "/" : W_FinPeriode[ 1, 4],"D4/")-1

* recherche accord actif
EXECUTE 'SELECT ACCORD AVEC 0 = "':W_CLE[1,5]:']" AND AVEC 18 = "" AND AVEC TypeOrg = "P" AND AVEC 5 <= "':W_Date:'" AND AVEC 6 >= "':W_Date:'" PAR @ID'
EXECUTE 'SAUVE-LISTE W_REQACC'
EXECUTE "LISTE W_REQACC" RETURNING MSGCODE	
		
IF MSGCODE<1>#209 THEN

	SELECT F.ACCORD TO W_REQACC
	W_End="FAUX"
		
	LOOP
		READNEXT W_CLEACC FROM W_REQACC ELSE W_End="VRAI"
	WHILE W_End="FAUX" DO
		READ ENR_ACCORD FROM F.ACCORD,W_CLEACC ELSE ENR_ACCORD=""
		READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE ENR_ORGPRISECHARGE=""

		ENR_TEMPO<I_TEMP,1>=ENR_TEMPO<I_TEMP,1>:"acc.":ENR_ORGPRISECHARGE<1> "L#16":" "
		IF W_TYPESORTIE = "F" THEN
		  ENR_FG<I_TEMP,3>="acc.":ENR_ORGPRISECHARGE<1>
		END
    W_End="VRAI"

		W_NbTaux=DCOUNT(ENR_ORGPRISECHARGE<25>,CHAR(253))
*PARCOURS DES DATES POUR TROUVER LE TAUX
		FOR ITaux=1 TO W_NbTaux

			IF ITaux=1 THEN
		
				IF W_DebutPeriode >= ENR_ORGPRISECHARGE<25,ITaux> OR (ENR_ORGPRISECHARGE<25,ITaux> <= W_DebutPeriode AND ENR_ORGPRISECHARGE<25,ITaux> >= W_FinPeriode) THEN			
					W_CoutPrest=ENR_ORGPRISECHARGE<26,ITaux>
					W_Orga="TRUE"
					IF W_CoutPrest = 0 THEN
						GOSUB 900
					END
					EXIT
				END
			END ELSE

				IF ENR_ORGPRISECHARGE<25,ITaux> <= W_FinPeriode AND (ENR_ORGPRISECHARGE<25,ITaux-1>-1) >= W_DebutPeriode THEN
					W_CoutPrest=ENR_ORGPRISECHARGE<26,ITaux>
					W_Orga="TRUE"
					IF W_CoutPrest = 0 THEN
						GOSUB 900
					END
					EXIT
				END
			END
		NEXT ITaux

	REPEAT
END ELSE

*PAS DE DEMANDE D'ACCORD NI ACCORD
	ENR_TEMPO<I_TEMP,1>=ENR_TEMPO<I_TEMP,1>:" " "L#20":" "
  IF W_TYPESORTIE = "F" THEN
    ENR_FG<I_TEMP,3>=""
  END	
END

RETURN

****************************
* RECHERCHE DU TAUX TARIFE *
****************************

900

READ ENR_COMPTEUR FROM F.COMPTEUR,'999' ELSE ENR_COMPTEUR=""
W_FEDE = "FAUX"

IF ENR_COMPTEUR<17> # "" THEN
	READ ENR_FEDEASSOC FROM F.FEDEASSOC,ENR_CIVILAIDE<40>[1,3] ELSE ENR_FEDEASSOC = "RIEN"
	IF ENR_FEDEASSOC = "RIEN" THEN
		READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ORGPRISECHARGE<47,1> ELSE ENR_ACTIVITES = ""
	END ELSE
		W_FEDE = "VRAI"
	END
END ELSE
	READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ORGPRISECHARGE<47,1> ELSE ENR_ACTIVITES = ""
END

IF W_FEDE = "FAUX" THEN
	W_NbTarif=DCOUNT(ENR_ACTIVITES<15>,CHAR(253))
*PARCOURS DES DATES POUR TROUVER LE TAUX
	FOR ITarif=1 TO W_NbTarif

		IF ITarif=1 THEN
		
			IF (W_DebutPeriode >= ENR_ACTIVITES<15,ITarif> AND ENR_ACTIVITES<20,ITarif> = "2") OR (ENR_ACTIVITES<15,ITarif> <= W_DebutPeriode AND ENR_ACTIVITES<15,ITarif> >= W_FinPeriode AND ENR_ACTIVITES<20,ITarif> = "2") THEN			
				W_CoutPrest=ENR_ACTIVITES<14,ITarif>
				W_Orga="TRUE"
				EXIT
			END
		END ELSE

			IF ENR_ACTIVITES<15,ITarif> <= W_FinPeriode AND ENR_ACTIVITES<20,ITarif> = "2" AND (ENR_ACTIVITES<15,ITarif-1>-1) >= W_DebutPeriode THEN
				W_CoutPrest=ENR_ACTIVITES<14,ITarif>
				W_Orga="TRUE"
				EXIT
			END
		END
	NEXT ITarif

END ELSE

	W_NbTarif=DCOUNT(ENR_FEDEASSOC<49>,CHAR(253))
*PARCOURS DES DATES POUR TROUVER LE TAUX
	FOR ITarif=1 TO W_NbTarif

		IF ITarif=1 THEN
		
			IF (W_DebutPeriode >= ENR_FEDEASSOC<49,ITarif> AND ENR_FEDEASSOC<50,ITarif> = "2") OR (ENR_FEDEASSOC<15,ITarif> <= W_DebutPeriode AND ENR_FEDEASSOC<49,ITarif> >= W_FinPeriode AND ENR_FEDEASSOC<50,ITarif> = "2") THEN
				W_CoutPrest=ENR_FEDEASSOC<51,ITarif>
				W_Orga="TRUE"
				EXIT
			END
		END ELSE

			IF ENR_FEDEASSOC<49,ITarif> <= W_FinPeriode AND ENR_FEDEASSOC<50,ITarif> = "2" AND (ENR_FEDEASSOC<49,ITarif-1>-1) >= W_DebutPeriode THEN
				W_CoutPrest=ENR_FEDEASSOC<51,ITarif>
				W_Orga="TRUE"
				EXIT
			END
		END
	NEXT ITarif

END

RETURN
