**********************************************************
* Ce programme sert  gnrer un fichier pour SOLEM
* Il extrait des donnes des aids.
*
* Grgory - 17/02/04 - Cration du prog
**********************************************************

SUBROUTINE EXTRACTAIDESOLEM(RETURNVAL, ARGUMENTS, OUTPUTSOLEM)
EXECUTE 'ECLTYPE "P"'
EXECUTE 'DATE.FORMAT'

* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE PRINT "OUVERTURE ASSOCIATION" ;* en lecture
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE PRINT "OUVERTURE ACTIVITESAIDE" ;* en lecture
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "OUVERTURE CIVILAIDE" ;* en lecture
OPEN "","FUSION" TO F.FUSION ELSE PRINT "OUVERTURE FUSION" ;* en lecture
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE PRINT "OUVERTURE COMPTEUR" ;* en lecture
OPEN "","TLGACTIVITES" TO F.TLGACTIVITES ELSE PRINT "OUVERTURE TLGACTIVITES" ;* en lecture

*********************************************************
* initialisation des variables
ENR_ACTIVITESAIDE=""
ENR_CIVILAIDE=""
ENR_FUSION=""

W_Tableau=""
I=1
J=1
K=1
W_Aide=""
W_Cle=""

W_Nb=0
NomFichier=""

W_RequeteExtractAide=""
*********************************************************
* 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

	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 200

	ENR_FUSION=""
	W_SauveAide=""

	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_RequeteExtractAide'
	EXECUTE "LISTE W_RequeteExtractAide" RETURNING MSGCODE

	IF MSGCODE<1> # 209 THEN
		SELECT F.CIVILAIDE TO W_RequeteExtractAide
		W_Fini = "FAUX"
		LOOP
			READNEXT W_Cle FROM W_RequeteExtractAide ELSE W_Fini = "VRAI"
		WHILE W_Fini = "FAUX" DO
			W_Aide=W_Cle
			GOSUB 100
		REPEAT
	END


	IF ENR_FUSION<1>#"" THEN	

		NomFichier="AIDE.TXT"
*		IF W_Type="S" THEN
*			BEGIN CASE
*				CASE W_TypeSelect="S" 
*					NomFichier=NomFichier:"-":W_Select
*				CASE W_TypeSelect="C" 
*					NomFichier=NomFichier:"-":W_CodeCommune
*			END CASE
*		END
*
*		NomFichier=NomFichier:"-":TIMEDATE()[19,2]
*		BEGIN CASE
*			CASE TIMEDATE()[13,3] MATCHES "Jan"
*				NomFichier=NomFichier:"01"
*			CASE TIMEDATE()[13,3] MATCHES "Feb"
*				NomFichier=NomFichier:"02"
*			CASE TIMEDATE()[13,3] MATCHES "Mar"
*				NomFichier=NomFichier:"03"
*			CASE TIMEDATE()[13,3] MATCHES "Apr"
*				NomFichier=NomFichier:"04"
*			CASE TIMEDATE()[13,3] MATCHES "May"
*				NomFichier=NomFichier:"05"
*			CASE TIMEDATE()[13,3] MATCHES "Jun"
*				NomFichier=NomFichier:"06"
*			CASE TIMEDATE()[13,3] MATCHES "Jul"
*				NomFichier=NomFichier:"07"
*			CASE TIMEDATE()[13,3] MATCHES "Aug"
*				NomFichier=NomFichier:"08"
*			CASE TIMEDATE()[13,3] MATCHES "Sep"
*				NomFichier=NomFichier:"09"
*			CASE TIMEDATE()[13,3] MATCHES "Oct"
*				NomFichier=NomFichier:"10"
*			CASE TIMEDATE()[13,3] MATCHES "Nov"
*				NomFichier=NomFichier:"11"
*			CASE TIMEDATE()[13,3] MATCHES "Dec"
*				NomFichier=NomFichier:"12"
*		END CASE
*		NomFichier=NomFichier:TIMEDATE()[10,2]:"-":TIMEDATE()[1,2]:TIMEDATE()[4,2]:".txt"

		WRITE ENR_FUSION ON F.FUSION,NomFichier
	END

	ENR_COMPTEUR<20>=W_SauveAide

	WRITE ENR_COMPTEUR ON F.COMPTEUR,"999"

	OUTPUTSOLEM=NomFichier
RETURN

**************************************************
100

	READ ENR_CIVILAIDE FROM F.CIVILAIDE, W_Aide THEN
		CreerLigne="NON"
		ActiviteOK="NON"
		READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_Aide THEN
			K=0
			W_Service="00000000000000000000000000000000"
			
			LOOP
				K=K+1
			WHILE ENR_ACTIVITESAIDE<1,K>#"" DO
				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 iAct=1 TO DCOUNT(ENR_TLGACTIVITES<3>,CHAR(253))
							IF ENR_TLGACTIVITES<3,iAct> = ENR_ACTIVITESAIDE<1,K> THEN
								READ ENR_ASSOCIATION FROM F.ASSOCIATION,ENR_ACTIVITESAIDE<1,K>[1,3] ELSE ENR_ASSOCIATION=""							
								W_Service[ENR_TLGACTIVITES<1,iAct>,1]="1"
								ActiviteOK="OUI"								
							END
						NEXT iAct
					END
					CreerLigne="NON"
				END
			REPEAT
		END
		
		IF ActiviteOK="OUI" THEN
			ENR_FUSION<J>=ENR_CIVILAIDE<2>[1,40]:SPACE(40-LEN(ENR_CIVILAIDE<2>[1,40])):ENR_CIVILAIDE<3>[1,40]:SPACE(40-LEN(ENR_CIVILAIDE<3>[1,40]))
			ENR_CIVILAIDE<18>=CONVERT(" ","",ENR_CIVILAIDE<18>)
			IF LEN(ENR_CIVILAIDE<18>:ENR_CIVILAIDE<19>) > 15 THEN
				ENR_FUSION<J>=ENR_FUSION<J>:SPACE(15)
			END ELSE
				ENR_FUSION<J>=ENR_FUSION<J>:ENR_CIVILAIDE<18>:ENR_CIVILAIDE<19>:SPACE(15-LEN(ENR_CIVILAIDE<18>:ENR_CIVILAIDE<19>))
			END
			ENR_FUSION<J>=ENR_FUSION<J>:ENR_CIVILAIDE<5>[1,4]:" ":ENR_CIVILAIDE<6>[1,6]:" ":ENR_CIVILAIDE<7>[1,3]:" ":ENR_CIVILAIDE<8>[1,23]:SPACE(40-LEN(ENR_CIVILAIDE<5>[1,4]:" ":ENR_CIVILAIDE<6>[1,6]:" ":ENR_CIVILAIDE<7>[1,3]:" ":ENR_CIVILAIDE<8>[1,23]))
			ENR_FUSION<J>=ENR_FUSION<J>:ENR_CIVILAIDE<9>[1,40]:SPACE(40-LEN(ENR_CIVILAIDE<9>[1,40]))
			ENR_FUSION<J>=ENR_FUSION<J>:ENR_CIVILAIDE<10>[1,5]:ENR_CIVILAIDE<11>[40]:SPACE(40-LEN(ENR_CIVILAIDE<11>[1,40]))
			ENR_FUSION<J>=ENR_FUSION<J>:ICONV(ENR_CIVILAIDE<14>,"MCN"):SPACE(40-LEN(ICONV(ENR_CIVILAIDE<14>,"MCN"))):ICONV(ENR_CIVILAIDE<16>,"MCN"):SPACE(40-LEN(ICONV(ENR_CIVILAIDE<16>,"MCN")))
			ENR_FUSION<J>=ENR_FUSION<J>:SPACE(40):SPACE(80)
			ENR_FUSION<J>=ENR_FUSION<J>:W_Aide:"     "
			ENR_FUSION<J>=ENR_FUSION<J>:ENR_ASSOCIATION<39>:SPACE(10-LEN(ENR_ASSOCIATION<39>))
			ENR_FUSION<J>=ENR_FUSION<J>:W_Service
			IF ENR_CIVILAIDE<43>#"" THEN
				ENR_FUSION<J>=ENR_FUSION<J>:OCONV(ENR_CIVILAIDE<43>,"D4/")[1,2]:OCONV(ENR_CIVILAIDE<43>,"D4/")[4,2]:OCONV(ENR_CIVILAIDE<43>,"D4/")[7,4]
			END ELSE
				ENR_FUSION<J>=ENR_FUSION<J>:SPACE(8)
			END
			J=J+1

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

RETURN

************************************************************************
* REQUETE ASSOCIATION
200

	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
