***************************************************************
* programme d'extraction de donnes aid
* gnration d'un fichier pour DIR INFO
***************************************************************

SUBROUTINE AIDEDIRINFO(RETURNVAL, ARGUMENTS, OUTPUT)
* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
OPEN "", "ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "", "ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE STOP
OPEN "", "CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "", "COMPTEUR" TO F.COMPTEUR ELSE STOP
OPEN "", "FUSION" TO F.FUSION ELSE STOP
OPEN "", "RESPONSABLE" TO F.RESPONSABLE ELSE STOP
OPEN "", "SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "", "SOUSSECTEUR" TO F.SOUSSECTEUR ELSE STOP
OPEN "", "QUARTIER" TO F.QUARTIER ELSE STOP
OPEN "", "TLGACTIVITES" TO F.TLGACTIVITES ELSE STOP

*********************************************************
* Recuperation des arguments

W_Systeme=FIELD(ARGUMENTS,"|",1)
W_Type=FIELD(ARGUMENTS,"|",2)
IF W_Type="S" THEN
	W_TypeSelect=FIELD(ARGUMENTS,"|",3)
	W_Select=FIELD(ARGUMENTS,"|",4)
	W_Aidant=FIELD(ARGUMENTS,"|",5)
	W_Aide=FIELD(ARGUMENTS,"|",6)
	W_CodeCommune=FIELD(ARGUMENTS,"|",7)
END

*********************************************************
* PROGRAMME PRINCIPAL

EXECUTE 'DATE.FORMAT'
EXECUTE 'SET-DEC ,'

W_Date=OCONV(DATE(),"D4/")

W_Mois=W_Date[4,2]
W_An=W_Date[7,4]
FOR i=1 TO 3
	W_Mois=W_Mois-1
	IF INT(W_Mois) = 0 THEN
		W_Mois="12"
		W_An=W_An-1
	END
NEXT i
W_Date=ICONV(W_Date[1,2]:"/":W_Mois:"/":W_An,"D4/")

READ ENR_COMPTEUR FROM F.COMPTEUR,"999" ELSE ENR_COMPTEUR=""

* requete association
GOSUB 50

ENR_FUSION=""
W_SauveAide=""
W_Cle=""

W_ListeReq=""
* Requete
GOSUB 10

IF ENR_FUSION # "" THEN
	W_Cle="AIDE"
	IF W_Type="S" THEN
		BEGIN CASE
			CASE W_TypeSelect="S" 
				W_Cle=W_Cle:"-":W_Select
			CASE W_TypeSelect="C" 
				W_Cle=W_Cle:"-":W_CodeCommune
		END CASE
	END

	W_Cle=W_Cle:"-":TIMEDATE()[19,2]
	BEGIN CASE
		CASE TIMEDATE()[13,3] = "Jan"
			W_Cle=W_Cle:"01"
		CASE TIMEDATE()[13,3] = "Feb"
			W_Cle=W_Cle:"02"
		CASE TIMEDATE()[13,3] = "Mar"
			W_Cle=W_Cle:"03"
		CASE TIMEDATE()[13,3] = "Apr"
			W_Cle=W_Cle:"04"
		CASE TIMEDATE()[13,3] = "May"
			W_Cle=W_Cle:"05"
		CASE TIMEDATE()[13,3] = "Jun"
			W_Cle=W_Cle:"06"
		CASE TIMEDATE()[13,3] = "Jul"
			W_Cle=W_Cle:"07"
		CASE TIMEDATE()[13,3] = "Aug"
			W_Cle=W_Cle:"08"
		CASE TIMEDATE()[13,3] = "Sep"
			W_Cle=W_Cle:"09"
		CASE TIMEDATE()[13,3] = "Oct"
			W_Cle=W_Cle:"10"
		CASE TIMEDATE()[13,3] = "Nov"
			W_Cle=W_Cle:"11"
		CASE TIMEDATE()[13,3] = "Dec"
			W_Cle=W_Cle:"12"
	END CASE
	W_Cle=W_Cle:TIMEDATE()[10,2]:"-":TIMEDATE()[1,2]:TIMEDATE()[4,2]:".csv"

	WRITE ENR_FUSION ON F.FUSION,W_Cle
END

ENR_COMPTEUR<20>=W_SauveAide

WRITE ENR_COMPTEUR ON F.COMPTEUR,"999"

OUTPUT=W_Cle

RETURN

*********************************************************************************
* Requete
10

	W_RequeteAide=""
	IF W_Type="S" THEN
		BEGIN CASE
			CASE W_TypeSelect="S" 
				W_TempBis=' AVEC CodeSecteurAide = "':W_Select:'"'
			CASE W_TypeSelect="C" 
				W_TempBis=' AVEC 11 = "':W_Select:'"'
			CASE W_TypeSelect="A" 
				W_TempBis=' AVEC 0 >= "':W_Aide:'"'
		END CASE
	END

	W_Temp='SELECT CIVILAIDE'
	IF W_Type="S" THEN
		W_Temp=W_Temp:W_TempBis
	END
	W_Temp=W_Temp:' PAR @ID'

	EXECUTE W_Temp
	EXECUTE 'SAUVE-LISTE W_RequeteAide'
	EXECUTE "LISTE W_RequeteAide" RETURNING MSGCODE

	IF MSGCODE<1> # 209 THEN

		W_Entete="Nom;Prenom;NumSecu;Adresse1;Adresse2;CP;Ville;Tel;Secteur;SousSecteur;Quartier;Code;DateFin;DateNais;Sexe;Titre;NomResponsable;Act1;Act2"

		ENR_FUSION<1>=W_Entete
		i=2

		SELECT F.CIVILAIDE TO W_RequeteAide
		W_Fini = "FAUX"
		LOOP
			READNEXT W_CleAide FROM W_RequeteAide ELSE W_Fini = "VRAI"
		WHILE W_Fini = "FAUX" DO
			GOSUB 60
		REPEAT
	END

RETURN

************************************************************************
* Mise en forme adresse 1
30
    MiseEnFormeAdresse1 = ""

    IF Tableau<Indice> # "" THEN
        MiseEnFormeAdresse1 = Tableau<Indice>:" "
    END
    
    IF Tableau<Indice + 1> # "" THEN
        MiseEnFormeAdresse1 = MiseEnFormeAdresse1:Tableau<Indice + 1> :" "
    END
    
    IF Tableau<Indice + 2> # "" THEN
        MiseEnFormeAdresse1 = MiseEnFormeAdresse1:Tableau<Indice + 2> :" "
    END
    
    IF Tableau<Indice + 3> # "" THEN
        MiseEnFormeAdresse1 = MiseEnFormeAdresse1:Tableau<Indice + 3>
    END
RETURN

*******************************************************************************
* Ecriture de l'aide
40

	READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CleAide ELSE ENR_CIVILAIDE=""
	READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEUR=""
	READ ENR_SOUSSECTEUR FROM F.SOUSSECTEUR,ENR_CIVILAIDE<40>[1,5] ELSE ENR_SOUSSECTEUR=""
	READ ENR_QUARTIER FROM F.QUARTIER,ENR_CIVILAIDE<40> ELSE ENR_QUARTIER=""
	READ ENR_RESPONSABLE FROM F.RESPONSABLE,ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE = ""

	* Mise en forme adresse 1
	Indice=5
	Tableau=ENR_CIVILAIDE
	GOSUB 30

	W_Tel=CONVERT(" ","",ENR_CIVILAIDE<14>)
	W_Tel=CONVERT("/","",W_Tel)
	W_Tel=CONVERT(".","",W_Tel)
	W_Tel=CONVERT("-","",W_Tel)

	W_NumSecu=ENR_CIVILAIDE<18>:ENR_CIVILAIDE<19>
	W_NumSecu=CONVERT(" ","",W_NumSecu)

	ENR_FUSION<i>=ENR_CIVILAIDE<2>:";":ENR_CIVILAIDE<3>:";":W_NumSecu:";":MiseEnFormeAdresse1
	ENR_FUSION<i>=ENR_FUSION<i>:";":ENR_CIVILAIDE<9>:";":ENR_CIVILAIDE<10>:";":ENR_CIVILAIDE<11>:";":W_Tel
	ENR_FUSION<i>=ENR_FUSION<i>:";":ENR_SECTEUR<1>:";":ENR_SOUSSECTEUR<1>:";":ENR_QUARTIER<1>

	ENR_FUSION<i>=ENR_FUSION<i>:";":W_CleAide:";":OCONV(ENR_CIVILAIDE<43>,"D4/")
	ENR_FUSION<i>=ENR_FUSION<i>:";":OCONV(ENR_CIVILAIDE<20>,"D4/"):";":ENR_CIVILAIDE<17>:";":ENR_CIVILAIDE<1>:";":ENR_RESPONSABLE<1>

	W_CountAct=DCOUNT(W_ActAide,CHAR(254))
	FOR iAct=1 TO W_CountAct
		ENR_FUSION<i>=ENR_FUSION<i>:";":W_ActAide<iAct>
	NEXT iAct

	IF W_SauveAide="" THEN
		W_SauveAide=W_CleAide
	END ELSE
		IF W_CleAide > W_SauveAide THEN
			W_SauveAide=W_CleAide
		END
	END

	i=i+1

RETURN

************************************************************************
* REQUETE ASSOCIATION
50

	W_RequeteAsso=""
	W_Asso=""

	EXECUTE 'SELECT ASSOCIATION AVEC 38 = "':W_Systeme:'" PAR @ID'
	EXECUTE 'SAUVE-LISTE W_RequeteAsso'
	EXECUTE "LISTE W_RequeteAsso" RETURNING MSGCODE

	IF MSGCODE<1> # 209 THEN
		SELECT F.ASSOCIATION TO W_RequeteAsso
		W_Fini = "FAUX"
		LOOP
			READNEXT W_CleAsso FROM W_RequeteAsso ELSE W_Fini = "VRAI"
		WHILE W_Fini = "FAUX" DO

			W_Asso<DCOUNT(W_Asso,CHAR(254))+1> = W_CleAsso

		REPEAT
	END

RETURN

**************************************************
* ligne activit
60

	READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CleAide THEN
		W_ActAide=""
		READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_CleAide THEN

			K=1

			LOOP
			WHILE ENR_ACTIVITESAIDE<1,K> # "" DO
				CreerLigne="NON"
				IF ENR_ACTIVITESAIDE<2,K> = "" OR ENR_ACTIVITESAIDE<3,K> = "" THEN
					CreerLigne="OUI"
				END				
				IF ENR_ACTIVITESAIDE<2,K> >= DATE() THEN
					CreerLigne="OUI"
				END
				IF ENR_ACTIVITESAIDE<2,K> <= DATE() AND ENR_ACTIVITESAIDE<3,K> >= DATE() THEN
					CreerLigne="OUI"
				END
				IF ENR_ACTIVITESAIDE<3,K> >= W_Date THEN
					CreerLigne="OUI"
				END
				
				IF CreerLigne="OUI" THEN
					L=1
					LOOP
					UNTIL W_Asso<L> = ENR_ACTIVITESAIDE<1,K>[1,3] OR W_Asso<L>="" DO
						L=L+1
					REPEAT
					IF W_Asso<L> # "" THEN
						READ ENR_TLGACTIVITES FROM F.TLGACTIVITES,ENR_ACTIVITESAIDE<1,K>[1,3] ELSE ENR_TLGACTIVITES=""
						FOR jTlg=1 TO DCOUNT(ENR_TLGACTIVITES<3>,CHAR(253))
							IF ENR_ACTIVITESAIDE<1,K> = ENR_TLGACTIVITES<3,jTlg> THEN
								j=1
								LOOP
								UNTIL ENR_TLGACTIVITES<2,jTlg>=W_ActAide<j> OR W_ActAide<j>=""
									j=j+1
								REPEAT
								IF W_ActAide<j>="" THEN
									W_ActAide<j>=ENR_TLGACTIVITES<2,jTlg>
								END
							END 
						NEXT jTlg
					
						READ ENR_TLGACTIVITES FROM F.TLGACTIVITES,ENR_ACTIVITESAIDE<1,K> ELSE ENR_TLGACTIVITES=""
						j=1
						LOOP
						UNTIL ENR_TLGACTIVITES<2>=W_ActAide<j> OR W_ActAide<j>=""
							j=j+1
						REPEAT
						IF W_ActAide<j>="" THEN
							W_ActAide<j>=ENR_TLGACTIVITES<2>
						END
					END
				END
				K=K+1
			REPEAT
		END
		
		IF W_ActAide # "" THEN
			GOSUB 40
		END

	END

RETURN
