***********************************************************************************
***********************************************************************************
**                                                                               **
** 		INDICATEURS ACTIVITES : DUREE MOYENNE DE PRISE EN CHARGE             **
**                                                                               **
***********************************************************************************
***********************************************************************************

SUBROUTINE SSIADSTATDUREEPC(RETURNVAL, ENTREE, SORTIE)
RETURNVAL=1000

***********************************************************************************
**                                                                               **
**                       Ouverture des fichiers                                  **
**                                                                               **
***********************************************************************************
EXECUTE "DATE.FORMAT"
EXECUTE "SET-DEC ,"
EXECUTE "SET-THOUS ."
OPEN "", "ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "", "ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE STOP
OPEN "", "CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "", "RESPONSABLE" TO F.RESPONSABLE ELSE STOP
OPEN "", "SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "", "SSIADABSENCESAIDE" TO F.SSIADABSENCESAIDE ELSE STOP
OPEN "", "SSIADACCORDS" TO F.SSIADACCORDS ELSE STOP
OPEN "", "STATAIDE" TO F.STATAIDE ELSE STOP
OPEN "", "TABLES" TO F.TABLES ELSE STOP

EXECUTE "DATE.FORMAT"
W_RequeteSsiadAccord=""


***********************************************************************************
**                                                                               **
**                      Rcupration des arguments                               **
**                                                                               **
***********************************************************************************

! le numro de l'association
W_Asso = ENTREE<1>

! le type de selection (A = activite SE= service SA= sans)
W_ChoixSelect = ENTREE<2>

! le numro de la selection
W_CodeSelect = ENTREE<3>

! le type de slection/tri (R= Responsable, S= Secteur ou C=Commune)
W_ChoixTri = ENTREE<4>

! le code de cette slection (ou le libel pour la commune)
W_CodeTri = ENTREE<5>

! le dbut de la priode de rfrence
W_Debut = ICONV(ENTREE<6>,"D4/")

! la fin   de la priode de rfrence
W_Fin = ICONV(ENTREE<7>,"D4/")

! le type de statistique (DA=Detail alphabtique, DD=Detail par date de sortie, R=Ratio) 
W_TypeStat = ENTREE<8>

! le type d'dition (F=fichier ou S=statistique)
W_Edit = ENTREE<9>

! La requte dynamique cre
W_Requete=""


W_Requete = 'SELECT SSIADACCORDS AVEC 3 ="':W_Asso:']" AND AVEC 1 <= "':W_Fin:'" AND AVEC 2 >= "':W_Debut:'"'

IF W_CodeSelect # "" THEN
	IF W_ChoixSelect="A" THEN
   		W_Requete = W_Requete:' AND AVEC 3 = "':W_Asso:W_CodeSelect:'"'
	END ELSE
		IF W_ChoixSelect="S" THEN
   			W_Requete = W_Requete:' AND AVEC CodeService = "':W_CodeSelect:'"'
		END
	END
END

IF W_ChoixTri = "R" THEN
   IF W_CodeTri # "" THEN

      W_Requete = W_Requete:' AND AVEC CodeResponsable ="':W_CodeTri:'"'
   END ELSE

      W_Requete = W_Requete:' PAR LibResponsable'
   END
END

IF W_ChoixTri = "S" THEN
   IF W_CodeTri # "" THEN

      W_Requete = W_Requete:' AND AVEC CodeSecteur ="':W_CodeTri:'"'
   END ELSE

      W_Requete = W_Requete:' PAR LibSecteur'
   END
END

IF W_ChoixTri = "C" THEN
   IF W_CodeTri # "" THEN

      W_Requete = W_Requete:' AND AVEC Commune ="':W_CodeTri:'"'

   END ELSE

      W_Requete = W_Requete:' PAR Commune'
   END
END

W_Requete = W_Requete:' PAR NomPrenomAide PAR 1'


EXECUTE W_Requete
EXECUTE 'SAUVE-LISTE W_RequeteSsiadAccord'
EXECUTE "LISTE W_RequeteSsiadAccord" RETURNING MSGCODE
IF MSGCODE<1>=209 THEN
   * Sortie de la SUBROUTINE
   RETURNVAL=2000
   RETURN
END ELSE
   SELECT F.SSIADACCORDS TO W_RequeteSsiadAccord
END

W_Fini = "Faux"
W_DernierAide = 0
W_LibellePrec = ""
* entete du tableau
   
	W_TableauGeneral =""
      BEGIN CASE
         CASE W_ChoixTri ="R"
	      W_TableauGeneral = "Responsable"
         CASE W_ChoixTri ="S"
	      W_TableauGeneral = "Secteur"
         CASE W_ChoixTri ="C"
	      W_TableauGeneral = "Commune"
	   CASE 1
	      W_TableauGeneral = "Totalit"
      END CASE
	IF W_TypeStat="R" THEN
	   W_TableauGeneral = W_TableauGeneral:";Dure prise en charge;Nombre de sorties"
	END ELSE
	   W_TableauGeneral = W_TableauGeneral:";Code;Nom prnom;Date sortie;Dure prise en charge"
   	END

W_Rang =0

LOOP

   READNEXT W_CodeSsiadAccords FROM W_RequeteSsiadAccord ELSE W_Fini = "Vrai"

WHILE W_Fini = "Faux"

   IF W_CodeSsiadAccords[1,5] = W_DernierAide AND W_Presence # 0 THEN
   END ELSE

      W_DernierAide = W_CodeSsiadAccords[1,5]

      W_EntreePrActive=""
      READ ENR_SSIADACCORDS FROM F.SSIADACCORDS,W_CodeSsiadAccords THEN
         W_EntreePrActive<1>=W_CodeSsiadAccords 
         W_EntreePrActive<2>=W_Debut
         W_EntreePrActive<3>=W_Fin
         W_EntreePrActive<4>= "E" 
	   W_EntreePrActive<5>=W_ChoixSelect
	   IF W_ChoixSelect = "A" THEN
	   	W_EntreePrActive<6>=W_Asso:W_CodeSelect
	   END ELSE
		W_EntreePrActive<6>=W_CodeSelect
	   END
      END

      ! Appel de la fonction de calcul du nombre de jour ou de la prsence (E = prsent)
      CALL SSIADPERIODEACTIVE ("",W_EntreePrActive,W_Presence)
	!l'aid est actif au moins une journe sur la selection
      IF W_Presence # 0 THEN

	   W_CodeAide=W_CodeSsiadAccords[1,5] 
	   READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CodeAide THEN
         W_Libelle = ""
         IF W_ChoixTri = "R" THEN
            READ ENR_RESPONSABLE FROM F.RESPONSABLE,ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE = ""
            W_Libelle = ENR_RESPONSABLE<1>
         END

         IF W_ChoixTri = "S" THEN
            READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEUR = ""
            W_Libelle = ENR_SECTEUR<1>
         END

         IF W_ChoixTri = "C" THEN
            W_Libelle = ENR_CIVILAIDE<11>
         END	  
		
	   IF W_LibellePrec <> W_Libelle THEN
		IF W_LibellePrec <> "" THEN

		   IF W_Rang <> 0 THEN   
			*il faut trier le tableau si detail par date de sortie 
		   	IF W_TypeStat ="DS" THEN
			   W_TableauTempo = ""
			   W_Indice = 0
			   FOR j=1 TO W_Rang
	   		   	IF W_Indice = 0 THEN
  	      	   	   W_TableauTempo<1> = W_Tableau<j>
			   	END ELSE
        		   	   IF W_TableauTempo<W_Indice,5>:W_TableauTempo<W_Indice,3> < W_Tableau<j,5>:W_Tableau<j,3> THEN
               		   	W_TableauTempo<W_Indice+1> = W_Tableau<j>    
        		         END ELSE
               		   	FOR k = 1 TO W_Indice
               		   	   IF W_Tableau<j,5>:W_Tableau<j,3> <= W_TableauTempo<k,5>:W_TableauTempo<k,3> THEN
			   		   	W_TableauTempo = INSERT(W_TableauTempo,k;W_Tableau<j>) 
			   	   	   	EXIT
                		   	   END
               		   	NEXT
				   END
	   		   	END
			   	W_Indice = W_Indice + 1
	   		   NEXT
			   W_Tableau =""
			   W_Tableau = W_TableauTempo 
			END ELSE
			   *il faut trier le tableau si detail par ordre alphabetique 
			   IF W_TypeStat ="DA" THEN
			   	W_TableauTempo = ""
			   	W_Indice = 0
			   	FOR j=1 TO W_Rang
	   		   	   IF W_Indice = 0 THEN
  	      	   	   	W_TableauTempo<1> = W_Tableau<j>
			   	   END ELSE
        		   	   	IF W_TableauTempo<W_Indice,3>:W_TableauTempo<W_Indice,5> < W_Tableau<j,3>:W_Tableau<j,5> THEN
               		   	   W_TableauTempo<W_Indice+1> = W_Tableau<j>    
        		         	END ELSE
               		   	   FOR k = 1 TO W_Indice
               		   	   	IF W_Tableau<j,3>:W_Tableau<j,5> <= W_TableauTempo<k,3>:W_TableauTempo<k,5>THEN
			   		   	   W_TableauTempo = INSERT(W_TableauTempo,k;W_Tableau<j>) 
			   	   	   	   EXIT
                		   	   	END
               		   	   NEXT
				   	END
	   		   	   END
			   	   W_Indice = W_Indice + 1
	   		   	NEXT
			      W_Tableau =""
			      W_Tableau = W_TableauTempo 
			   END
		   	END
	   		* dtermination du nombre de jour de prise en charge
		 	W_NbJour = 0
			W_Cumul = 0
		 	W_NbSortie = 0

	   		FOR i=1 TO DCOUNT(W_Tableau,CHAR(254))
			   IF W_TypeStat <> "R" THEN
		   		W_NbJour = W_Tableau<i,5> - W_Tableau<i,4> +1
		   		W_Tableau<i,4> = OCONV(W_Tableau<i,5>,"D4/") 
	         		W_Tableau<i,5> = W_NbJour 
	   		   END ELSE
		   		W_Cumul = W_Cumul + (W_Tableau<i,5> - W_Tableau<i,4> +1)
		   		W_NbSortie = W_NbSortie + 1
			   END
	   		NEXT
	   		IF W_TypeStat = "R" THEN
			   W_TempoLibelle = W_Tableau<1,1>
			   *qd type stat est ratio on a pas besoin de garder toutes les infos des aids, on garde juste les totaux
			   W_Tableau=""
			   W_Tableau<1,1> = W_TempoLibelle 
			   W_Tableau<1,2> = W_NbSortie 
			   W_Tableau<1,3> = W_Cumul   
	   		END
	   		* met dans le grand tableau
	  		 W_TableauGeneral = W_TableauGeneral:CHAR(254):W_Tableau
*	  		 W_TableauGeneral = W_TableauGeneral:"":W_Tableau

		   	W_Rang = 0
		   	W_Tableau =""

		   END 


		END
	   END

		*lecture de SSIADABSENCESAIDE
		READ ENR_SSIADABSENCESAIDE FROM F.SSIADABSENCESAIDE, W_CodeAide ELSE ENR_SSIADABSENCESAIDE =""

		* Date de la dernire entre
		READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE, W_CodeAide ELSE ENR_ACTIVITESAIDE =""
		
		FOR i=1 TO DCOUNT(ENR_ACTIVITESAIDE<1>,CHAR(253))
		   READ ENR_ACTIVITES FROM F.ACTIVITES, ENR_ACTIVITESAIDE<1,i> ELSE ENR_ACTIVITES =""
		   W_Trouve ="Faux"
		   IF ENR_ACTIVITES<12> = "S" THEN
		   	* verif si activit concerne par la selection
			IF W_ChoixSelect = "A" THEN
			   IF ENR_ACTIVITESAIDE<1,i> = W_Asso:W_CodeSelect THEN 
			     	W_Trouve="Vrai"
			   END
			END ELSE
			   IF W_ChoixSelect = "SE" THEN
			     	IF ENR_ACTIVITES<13> = W_CodeSelect THEN
			     	   W_Trouve="Vrai"	
			     	END
			   END ELSE
			     	W_Trouve="Vrai"
			   END
		      END
			
			IF W_Trouve="Vrai" THEN
			   * actif sur la priode de rfrence
			   IF ENR_ACTIVITESAIDE<2,i> <= W_Fin AND (ENR_ACTIVITESAIDE<3,i>="" OR ENR_ACTIVITESAIDE<3,i> >= W_Debut) THEN  
			   	*si date de fin d'activit sur la priode de rfrence
			   	IF ENR_ACTIVITESAIDE<3,i> >= W_Debut AND ENR_ACTIVITESAIDE<3,i> <= W_Fin THEN 
				   W_TrouveAbsence="Faux"
				   W_Passe = "Faux"
				   *parcours de MV de SSIADABSENCESAIDE pour dterminer absence la plus rcente
				   FOR j=1 TO DCOUNT(ENR_SSIADABSENCESAIDE<1>,CHAR(253))
				   	*si date de dbut d'absence comprise entre dates de dbut et de fin d'activit
				   	IF ENR_ACTIVITESAIDE<2,i> <= ENR_SSIADABSENCESAIDE<1,j> AND ENR_SSIADABSENCESAIDE<1,j> <= ENR_ACTIVITESAIDE<3,i> THEN
			         	   IF W_Debut <= ENR_SSIADABSENCESAIDE<1,j> AND ENR_SSIADABSENCESAIDE<1,j> <= W_Fin THEN
				 	      IF W_Passe = "Faux" THEN
						   W_Indice = j
						   W_Passe = "Vrai"
						END

						W_Rang = W_Rang + 1 
					      W_Tableau<W_Rang,1> = W_Libelle
					   	W_Tableau<W_Rang,2> = W_CodeAide
					   	W_Tableau<W_Rang,3> = ENR_CIVILAIDE<2> :" ":ENR_CIVILAIDE<3>
						IF ENR_SSIADABSENCESAIDE<2,j+1> # "" THEN  
					   	   W_Tableau<W_Rang,4> = ENR_SSIADABSENCESAIDE<2,j+1> +1
						END ELSE
						   W_Tableau<W_Rang,4> = ENR_ACTIVITESAIDE<2,i> 
						END 

						*W_Tableau<W_Rang,4> = ENR_SSIADABSENCESAIDE<2,j> +1
					   	
						*IF ENR_SSIADABSENCESAIDE<2,j> > ENR_ACTIVITESAIDE<3,i> THEN
						   W_Tableau<W_Rang,5> = ENR_SSIADABSENCESAIDE<1,j> -1
					   	*END ELSE
						   *W_Tableau<W_Rang,5> = ENR_ACTIVITESAIDE<3,i> 
				   	   	*END
					   	W_TrouveAbsence="Vrai"
					   END
					END
				   NEXT 
				   *si absence non trouv
				   IF W_TrouveAbsence="Faux" THEN
  		         	      W_Rang = W_Rang + 1 
					W_Tableau<W_Rang,1> = W_Libelle
					W_Tableau<W_Rang,2> = W_CodeAide
					W_Tableau<W_Rang,3> = ENR_CIVILAIDE<2> :" ":ENR_CIVILAIDE<3>
 					W_Tableau<W_Rang,4> = ENR_ACTIVITESAIDE<2,i>  
					W_Tableau<W_Rang,5> = ENR_ACTIVITESAIDE<3,i> 
				   END ELSE
  		         	      W_Rang = W_Rang + 1 
					W_Tableau<W_Rang,1> = W_Libelle
					W_Tableau<W_Rang,2> = W_CodeAide
					W_Tableau<W_Rang,3> = ENR_CIVILAIDE<2> :" ":ENR_CIVILAIDE<3>
					IF ENR_SSIADABSENCESAIDE<2,W_Indice> > ENR_ACTIVITESAIDE<3,i> THEN
					   IF ENR_SSIADABSENCESAIDE<1,W_Indice+1> # "" AND ENR_ACTIVITESAIDE<2,i> <= ENR_SSIADABSENCESAIDE<1,W_Indice+1> AND ENR_SSIADABSENCESAIDE<1,W_Indice+1> <= ENR_ACTIVITESAIDE<3,i> AND W_Debut <= ENR_SSIADABSENCESAIDE<1,W_Indice+1> AND ENR_SSIADABSENCESAIDE<1,W_Indice+1> <= W_Fin THEN
						*A TSTER SI DS ACTIVITE OU PERIODE
 					      W_Tableau<W_Rang,4> = ENR_SSIADABSENCESAIDE<2,W_Indice>+1
					   END ELSE
 					      W_Tableau<W_Rang,4> = ENR_ACTIVITESAIDE<2,i>  
  					   END
					   W_Tableau<W_Rang,5> = ENR_SSIADABSENCESAIDE<1,W_Indice> -1
					END ELSE
 					   W_Tableau<W_Rang,4> = ENR_SSIADABSENCESAIDE<2,W_Indice>+1  
					   W_Tableau<W_Rang,5> = ENR_ACTIVITESAIDE<3,i> 			
				   	END
				   END 
 
			   	END ELSE
				   FOR j=1 TO DCOUNT(ENR_SSIADABSENCESAIDE<1>,CHAR(253))
					IF ENR_SSIADABSENCESAIDE<2,j> >= ENR_ACTIVITESAIDE<2,i> THEN
					   W_Continue = "Faux"	
					   IF ENR_ACTIVITESAIDE<2,i> # "" THEN						
						IF ENR_SSIADABSENCESAIDE<2,j> < ENR_ACTIVITESAIDE<3,i>  THEN
						   W_Continue = "Vrai"
						END
					   END ELSE
						W_Continue = "Vrai"
					   END 
					   IF W_Continue = "Vrai" THEN
						IF ENR_SSIADABSENCESAIDE<1,j> < ENR_ACTIVITESAIDE<2,i> THEN
						   W_DateDebutAct = ENR_SSIADABSENCESAIDE<2,j>+1 
						END ELSE
						   W_DateDebutAct = ENR_ACTIVITESAIDE<2,i> 
						END
						*si date debut absence comprise dans periode de rfrence 
						IF W_Debut <= ENR_SSIADABSENCESAIDE<1,j> AND ENR_SSIADABSENCESAIDE<1,j> <= W_Fin THEN
						   *si MV suivante existe
						   IF ENR_SSIADABSENCESAIDE<2,j+1> # "" THEN

							IF ENR_SSIADABSENCESAIDE<2,j+1> < W_DateDebutAct AND W_Debut <= ENR_SSIADABSENCESAIDE<1,j+1> AND ENR_SSIADABSENCESAIDE<1,j+1> <= W_Fin THEN
  		         	      		   W_Rang = W_Rang + 1 
							   W_Tableau<W_Rang,1> = W_Libelle
							   W_Tableau<W_Rang,2> = W_CodeAide
							   W_Tableau<W_Rang,3> = ENR_CIVILAIDE<2> :" ":ENR_CIVILAIDE<3> 
							   W_Tableau<W_Rang,4> = W_DateDebutAct 
							   W_Tableau<W_Rang,5> = ENR_SSIADABSENCESAIDE<1,j>-1
							   EXIT
							END ELSE
  		         	      		   W_Rang = W_Rang + 1 
							   W_Tableau<W_Rang,1> = W_Libelle
							   W_Tableau<W_Rang,2> = W_CodeAide
							   W_Tableau<W_Rang,3> = ENR_CIVILAIDE<2> :" ":ENR_CIVILAIDE<3> 
							   IF W_Debut <= ENR_SSIADABSENCESAIDE<1,j+1> AND ENR_SSIADABSENCESAIDE<1,j+1> <= W_Fin THEN
							      W_Tableau<W_Rang,4> = ENR_SSIADABSENCESAIDE<2,j+1> +1
							   END ELSE
								W_Tableau<W_Rang,4> = W_DateDebutAct 
							   END 
							   W_Tableau<W_Rang,5> = ENR_SSIADABSENCESAIDE<1,j>-1			
							END
						   END ELSE
  		         	      		W_Rang = W_Rang + 1 
							W_Tableau<W_Rang,1> = W_Libelle
							W_Tableau<W_Rang,2> = W_CodeAide
							W_Tableau<W_Rang,3> = ENR_CIVILAIDE<2> :" ":ENR_CIVILAIDE<3> 
							W_Tableau<W_Rang,4> = W_DateDebutAct 
							W_Tableau<W_Rang,5> = ENR_SSIADABSENCESAIDE<1,j> -1
						   END 
						END
					   END
					END 	
				   NEXT
			   	END
			   END 
			END
               END

		NEXT 
		
	   END

	   W_LibellePrec = W_Libelle
	END

   END


REPEAT



IF W_Tableau # "" THEN   
   IF W_Rang # "" THEN
	*il faut trier le tableau si detail par date de sortie et par ordre alphabtique
	IF W_TypeStat ="DS" THEN
	   W_TableauTempo = ""
	   W_Indice = 0
	   FOR j=1 TO W_Rang
	      IF W_Indice = 0 THEN
  	     	   W_TableauTempo<1> = W_Tableau<j>
		END ELSE
               IF W_TableauTempo<W_Indice,5>:W_TableauTempo<W_Indice,3> < W_Tableau<j,5>:W_Tableau<j,3> THEN
                  W_TableauTempo<W_Indice+1> = W_Tableau<j>    
        	   END ELSE
                  FOR k = 1 TO W_Indice
                     IF W_Tableau<j,5>:W_Tableau<j,3> <= W_TableauTempo<k,5>:W_TableauTempo<k,3> THEN
			      W_TableauTempo = INSERT(W_TableauTempo,k;W_Tableau<j>) 
			      EXIT
                	   END
                  NEXT
		   END
	   	END
		W_Indice = W_Indice + 1
	   NEXT
	
	   W_Tableau = ""
	   W_Tableau = W_TableauTempo  
	END ELSE
	   IF W_TypeStat ="DA" THEN
		W_TableauTempo = ""
		W_Indice = 0
		FOR j=1 TO W_Rang
	   	   IF W_Indice = 0 THEN
  	         	W_TableauTempo<1> = W_Tableau<j>
		   END ELSE
        	   	IF W_TableauTempo<W_Indice,3>:W_TableauTempo<W_Indice,5> < W_Tableau<j,3>:W_Tableau<j,5> THEN
               	   W_TableauTempo<W_Indice+1> = W_Tableau<j>    
        	     	END ELSE
               	   FOR k = 1 TO W_Indice
               	   	IF W_Tableau<j,3>:W_Tableau<j,5> <= W_TableauTempo<k,3>:W_TableauTempo<k,5>THEN
			   	   W_TableauTempo = INSERT(W_TableauTempo,k;W_Tableau<j>) 
		   	   	   EXIT
               	   	END
               	   NEXT
		  	END
	   	   END
		   W_Indice = W_Indice + 1
	   	NEXT
		W_Tableau =""
		W_Tableau = W_TableauTempo 
	   END   	
	END 

	   * dtermination du nombre de jour de prise en charge
	   W_NbJour = 0
	   W_Cumul = 0
	   W_NbSortie = 0
	   FOR i=1 TO DCOUNT(W_Tableau,CHAR(254))
		IF W_TypeStat <> "R" THEN
		   W_NbJour = W_Tableau<i,5> - W_Tableau<i,4> +1
		   W_Tableau<i,4> = OCONV(W_Tableau<i,5>,"D4/") 
	         W_Tableau<i,5> = W_NbJour 
	   	END ELSE
		   W_Cumul = W_Cumul + (W_Tableau<i,5> - W_Tableau<i,4> +1)
		   W_NbSortie = W_NbSortie + 1
		END
	   NEXT
	   IF W_TypeStat = "R" THEN
		W_TempoLibelle = W_Tableau<1,1>
		*qd type stat est ratio on a pas besoin de garder toutes les infos des aids, on garde juste les totaux
		W_Tableau=""
		W_Tableau<1,1> = W_TempoLibelle 
		W_Tableau<1,2> = W_NbSortie 
		W_Tableau<1,3> = W_Cumul   
	   END
	   * met dans le grand tableau
	   W_TableauGeneral = W_TableauGeneral:CHAR(254):W_Tableau
*	   W_TableauGeneral = W_TableauGeneral:"":W_Tableau

   END 

END

********************************
* renvoi des informations  VB *
* ou dition d'un fichier csv  * 
********************************
W_Ordre = 0
IF W_Edit = "F" THEN

   CONVERT CHAR(253) TO ";" IN W_TableauGeneral

   W_Date = OCONV(DATE(),"D4/")
   W_Date = ICONV(W_Date,"MCN")
   W_Date=W_Date[5,4]:W_Date[3,2]:W_Date[1,2]

   W_ClefFichier = "SSIADSTATDUREEPC":"-":W_Asso:"-":W_Date:"-"

   W_Ordre = 0
   LOOP
      W_Ordre = W_Ordre + 1
      READ ENR_STATAIDE FROM F.STATAIDE,W_ClefFichier:W_Ordre:".csv" ELSE ENR_STATAIDE = ""
   UNTIL ENR_STATAIDE = ""
   REPEAT

   WRITE W_TableauGeneral TO F.STATAIDE,W_ClefFichier:W_Ordre:".csv"

END

SORTIE=W_TableauGeneral
W_Ordre= W_Ordre "R%3"
RETURNVAL=3:W_Ordre
RETURN

