*****************************************************************
* EXTRACTION DES AIDES POUR LE SYSTEME DE TELEGESTION DOMIPHONE *
*****************************************************************

SUBROUTINE AIDEDOMIPHONE(RETURNVAL, ARGUMENTS, OUTPUT)
EXECUTE 'ECLTYPE "P"'
EXECUTE 'DATE.FORMAT'

* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
OPEN "", "ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE STOP
OPEN "", "ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "", "CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "", "COMPTEUR" TO F.COMPTEUR ELSE STOP
OPEN "", "FUSION" TO F.FUSION ELSE STOP
OPEN "", "SECTEUR" TO F.SECTEUR 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

NomFichier=""
W_Cle=""
W_SauveAide=""

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

W_Mois=W_Date[4,2]
W_An=W_Date[7,4]
FOR i=1 TO 2
	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("01":"/":W_Mois:"/":W_An,"D4/")-1

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

* requete association
GOSUB 50

FOR iAsso=1 TO W_CountAsso
	ENR_FUSION=""
   	i=1
	W_RequeteAide=""

	* Requete
	GOSUB 10

	IF ENR_FUSION#"" THEN
		W_Cle="AIDE":W_ListeAsso<iAsso>
		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]:".txt"

		WRITE ENR_FUSION ON F.FUSION,W_Cle
	END

	NomFichier<DCOUNT(NomFichier,CHAR(254))+1>=W_Cle

NEXT iAsso

ENR_COMPTEUR<20>=W_SauveAide

WRITE ENR_COMPTEUR ON F.COMPTEUR,"999"

OUTPUT=NomFichier

RETURN

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

	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
		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_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE PRINT "SECTEUR":ENR_CIVILAIDE<40>[1,3]

	* 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)
	IF W_Tel="" THEN
		W_Tel="XXXXXXXXXX"
	END
*	ENR_FUSION<i>=W_Tel:";":ENR_CIVILAIDE<1>:";":ENR_CIVILAIDE<2>:";":ENR_CIVILAIDE<3>:";":OCONV(ENR_CIVILAIDE<20>,"D4/"):";":ENR_SECTEUR<1>:";":MiseEnFormeAdresse1
*	ENR_FUSION<i>=ENR_FUSION<i>:";":ENR_CIVILAIDE<9>:";":ENR_CIVILAIDE<10>:";":ENR_CIVILAIDE<11>:";":W_CleAide


	ENR_FUSION<i>=W_Tel:";":ENR_CIVILAIDE<1>:";":ENR_CIVILAIDE<2>:";":ENR_CIVILAIDE<3>:";;":ENR_SECTEUR<1>:";"
	ENR_FUSION<i>=ENR_FUSION<i>:";;;;":W_CleAide

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

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

	i=i+1

RETURN

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

	W_Asso=""
	W_ListeAsso=""

	W_Requete = 'SELECT ASSOCIATION AVEC 38 = "':W_Systeme:'" PAR 0'

	EXECUTE W_Requete
	EXECUTE 'SAUVE-LISTE W_Asso'
	EXECUTE "LISTE W_Asso" RETURNING MSGCODE

	IF MSGCODE<1> # 209 THEN
		SELECT F.ASSOCIATION TO W_Asso

   		W_Fini="FAUX"
   		LOOP
      			READNEXT W_CleAsso FROM W_Asso ELSE W_Fini="VRAI"
   		WHILE W_Fini="FAUX" DO
			W_ListeAsso<DCOUNT(W_ListeAsso,CHAR(254))+1>=W_CleAsso
		REPEAT
	END

	W_CountAsso=DCOUNT(W_ListeAsso,CHAR(254))

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
					IF W_ListeAsso<iAsso> = ENR_ACTIVITESAIDE<1,K>[1,3] THEN
						READ ENR_TLGACTIVITES FROM F.TLGACTIVITES,W_ListeAsso<iAsso> ELSE ENR_TLGACTIVITES=""
						FOR iAct=1 TO DCOUNT(ENR_TLGACTIVITES<3>,CHAR(253))
							IF ENR_TLGACTIVITES<3,iAct> = ENR_ACTIVITESAIDE<1,K> THEN
								j=1
								LOOP
								UNTIL ENR_TLGACTIVITES<2,iAct>=W_ActAide<j> OR W_ActAide<j>=""
									j=j+1
								REPEAT
								IF W_ActAide<j>="" THEN
									W_ActAide<j>=ENR_TLGACTIVITES<2,iAct>
									EXIT
								END
							END
						NEXT iAct
					END
				END
				K=K+1
			REPEAT
		END
		
		IF W_ActAide # "" THEN
			GOSUB 40
		END

	END

RETURN
