****************************************************************
* programme d'extraction de donnes aid / aidant / activit...
* gnration d'un fichier pour DOMATEL
*
* vanessa - juillet 2004
* Christophe - Novembre 2004   mis en commentaire
*
* Modification priscilla le 04/12/07
*
****************************************************************

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

EXECUTE "SET-THOUS ."
OPEN "","ACCORD" TO F.ACCORD ELSE PRINT "OUVERTURE ACCORD" ;* en lecture
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE PRINT "OUVERTURE ACTIVITES" ;* en lecture
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE PRINT "OUVERTURE ACTIVITESAIDE" ;* en lecture
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE PRINT "OUVERTURE ASSOCIATION" ;* en lecture
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "OUVERTURE CIVILAIDANT" ;* en lecture
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "OUVERTURE CIVILAIDE" ;* en lecture
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE PRINT "OUVERTURE COMPTEUR" ;* en lecture criture
OPEN "","CONTRAT" TO F.CONTRAT ELSE PRINT "OUVERTURE CONTRAT" ;* en lecture
OPEN "","FUSION" TO F.FUSION ELSE PRINT "OUVERTURE FUSION" ;* en lecture criture
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE PRINT "OUVERTURE ORGPRISECHARGE" ;* en lecture

*********************************************************
* initialisation des variables

W_RequeteAsso=""
W_RequeteAct=""
W_RequeteOrg=""
W_RequeteCont=""
W_RequeteAide=""
W_RequeteAcc=""
W_RequeteMand=""
W_Activite=""
W_Asso=""
ENR_FUSION=""
W_Ind=1
W_SauveAidant=""
W_SauveAide=""
W_TypeSelect=""
W_Select=""
W_Aidant=""
W_Aide=""
*********************************************************
* 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)
END

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

	EXECUTE 'DATE.FORMAT'

	EXECUTE 'SET-DEC ,'

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

	GOSUB 100

	IF W_Type="T" OR (W_Type="S" AND W_TypeSelect="S") OR (W_Type="S" AND W_TypeSelect="C") THEN
		* ligne activit
		GOSUB 200

		* ligne organisme
		GOSUB 300
	END

	* ligne intervenant
	GOSUB 500

	* ligne usagers
	GOSUB 700

	* prise en charge - contrat type mandataire
	GOSUB 900
	GOSUB 1100

	ENR_COMPTEUR<20>=W_SauveAide
	ENR_COMPTEUR<21>=W_SauveAidant

	WRITE ENR_COMPTEUR ON F.COMPTEUR,"999"

	IF ENR_FUSION<1>#"" THEN	

		NomFichier="DCREAMOD.LOG"

		WRITE ENR_FUSION ON F.FUSION,NomFichier
	END ELSE
		NomFichier="RIEN"
	END

	OUTPUT=NomFichier

RETURN

**************************************************
* requete activit

100

	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

			EXECUTE 'SELECT ACTIVITES AVEC 0 = "':W_CleAsso:']" PAR @ID'
			EXECUTE 'SAUVE-LISTE W_RequeteAct'
			EXECUTE "LISTE W_RequeteAct" RETURNING MSGCODE

			IF MSGCODE<1> # 209 THEN
				SELECT F.ACTIVITES TO W_RequeteAct
				W_Fin = "FAUX"
				LOOP
					READNEXT W_CleAct FROM W_RequeteAct ELSE W_Fin = "VRAI"
				WHILE W_Fin = "FAUX" DO

					W_Activite<DCOUNT(W_Activite,CHAR(254))+1> = W_CleAct

				REPEAT
			END

		REPEAT
	END

RETURN

**************************************************
* enregistrement activit

200

	W_CountAct=DCOUNT(W_Activite,CHAR(254))
	FOR i = 1 TO W_CountAct
		READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_Activite<i>[1,3] ELSE ENR_ASSOCIATION=""
		READ ENR_ACTIVITES FROM F.ACTIVITES,W_Activite<i> ELSE ENR_ACTIVITES=""

		ENR_FUSION<W_Ind>=ENR_ASSOCIATION<39>:CHAR(9):"A":CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_Activite<i>:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_ACTIVITES<1>:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"N":CHAR(9)
		IF ENR_ACTIVITES<12>="P" THEN
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"O":CHAR(9)
		END ELSE
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"N":CHAR(9)
		END

		W_TypeAct=""
		BEGIN CASE
		   CASE ENR_ACTIVITES<12>="P"
			W_TypeAct="1"
		   CASE ENR_ACTIVITES<12>="M"
			W_TypeAct="2"
		   CASE ENR_ACTIVITES<12>="I"
			W_TypeAct="3"
		   CASE 1
			W_TypeAct="4"
		END CASE	
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_TypeAct
		W_Ind=W_Ind+1

	NEXT i

RETURN

**************************************************
* requete organisme

300

	W_Temp = 'SELECT ORGPRISECHARGE AVEC 18 = "P" AND AVEC 46 = "':W_Asso<1>:'"'
	W_CountAsso=DCOUNT(W_Asso,CHAR(254))
	FOR i=2 TO W_CountAsso
		W_Temp = W_Temp:' OR = "':W_Asso<i>:'"'
	NEXT i
	W_Temp = W_Temp:' PAR 1' 

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

	IF MSGCODE<1> # 209 THEN
		SELECT F.ORGPRISECHARGE TO W_RequeteOrg
		W_Fini = "FAUX"
		LOOP
			READNEXT W_CleOrg FROM W_RequeteOrg ELSE W_Fini = "VRAI"
		WHILE W_Fini = "FAUX" DO
			READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_CleOrg ELSE ENR_ORGPRISECHARGE=""
			READ ENR_ASSOCIATION FROM F.ASSOCIATION,ENR_ORGPRISECHARGE<46> ELSE ENR_ASSOCIATION=""

			ENR_FUSION<W_Ind>=ENR_ASSOCIATION<39>:CHAR(9):"O":CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_CleOrg:CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_ORGPRISECHARGE<1>[1,30]:CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_ORGPRISECHARGE<2>[1,30]:CHAR(9)
			W_Tab=ENR_ORGPRISECHARGE
			W_Att=3
			GOSUB 400
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_Adresse[1,40]:CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_ORGPRISECHARGE<7>:CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_ORGPRISECHARGE<8>:CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_ORGPRISECHARGE<9>:CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:" "
			W_Ind=W_Ind+1

		REPEAT
	END

RETURN

**************************************************
* adresse organisme

400

	W_Adresse=""
	IF W_Tab<W_Att> # "" THEN
		W_Adresse=W_Tab<W_Att>:" "
	END
	IF W_Tab<W_Att+1> # "" THEN
		W_Adresse=W_Adresse:W_Tab<W_Att+1>:" "
	END
	IF W_Tab<W_Att+2> # "" THEN
		W_Adresse=W_Adresse:W_Tab<W_Att+2>:" "
	END
	IF W_Tab<W_Att+3> # "" THEN
		W_Adresse=W_Adresse:W_Tab<W_Att+3>
	END

RETURN

**************************************************
* intervenants

500

	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/")

	IF W_Type="S" THEN
		BEGIN CASE
			CASE W_TypeSelect="S" 
				W_TempBis=' AND AVEC CodSecteurContrat = "':W_Select:'"'
			CASE W_TypeSelect="C" 
				W_TempBis=' AND AVEC CommunePostAidant = "':W_Select:'"'
			CASE W_TypeSelect="A" 
				W_TempBis=' AND AVEC CodeAidant >= "':W_Aidant:'"'
		END CASE
	END

	W_TempTer=' AND AVEC 2 = "':W_Asso<1>:'"'
	W_CountAsso=DCOUNT(W_Asso,CHAR(254))
	FOR i=2 TO W_CountAsso
		W_TempTer = W_TempTer:' OR = "':W_Asso<i>:'"'
	NEXT i
	W_TempTer = W_TempTer:' AND AVEC 65 = ""'

	W_Temp = 'SELECT CONTRAT AVEC 7 <= "':DATE():'" AND AVEC 8 >= "':DATE():'" OR = ""'
	W_Temp=W_Temp:W_TempTer
	IF W_Type="S" THEN
		W_Temp=W_Temp:W_TempBis
	END
	W_Temp = W_Temp:' OR AVEC 7 >= "':DATE():'"' 
	W_Temp=W_Temp:W_TempTer
	IF W_Type="S" THEN
		W_Temp=W_Temp:W_TempBis
	END
	*** AF / PG : 04/12/07
	W_Temp = W_Temp:' OR AVEC 8 >= "':W_Date:'"' 
	W_Temp=W_Temp:W_TempTer
	IF W_Type="S" THEN
		W_Temp=W_Temp:W_TempBis
	END
	*** FIN AF / PG

	W_Temp=W_Temp:' PAR @ID'

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

	IF MSGCODE<1> # 209 THEN
		SELECT F.CONTRAT TO W_RequeteCont
		W_Fini = "FAUX"
		W_Sauve=""
		
		LOOP
			READNEXT W_CleCont FROM W_RequeteCont ELSE W_Fini = "VRAI"
		WHILE W_Fini = "FAUX" DO
			READ ENR_CONTRAT FROM F.CONTRAT,W_CleCont ELSE ENR_CONTRAT=""
			
			IF W_Sauve[1,5] # W_CleCont[1,5] THEN

				W_Sauve=""

*				W_Sauve<1>=W_CleCont[1,5]:ENR_CONTRAT<36,1>
*				i=1
*				GOSUB 600

			END 

			W_CountAct=DCOUNT(ENR_CONTRAT<36>,CHAR(253))
			FOR i = 1 TO W_CountAct

				j=1
				LOOP
				UNTIL W_Sauve<j>=W_CleCont[1,5]:ENR_CONTRAT<36,i> OR W_Sauve<j>="" 
					j=j+1
				REPEAT
				IF W_Sauve<j> = ""  THEN
					W_Sauve<j>=W_CleCont[1,5]:ENR_CONTRAT<36,i>
					GOSUB 600
				END

			NEXT i

		REPEAT
	END

RETURN

**************************************************
* ligne intervenants

600

	READ ENR_ASSOCIATION FROM F.ASSOCIATION,ENR_CONTRAT<36,i>[1,3] ELSE ENR_ASSOCIATION=""
	READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CleCont[1,5] ELSE ENR_CIVILAIDANT=""
	IF W_SauveAidant="" THEN
		W_SauveAidant=W_CleCont[1,5] 
	END ELSE
		IF W_CleCont[1,5] > W_SauveAidant THEN
			W_SauveAidant=W_CleCont[1,5]
		END
	END

	ENR_FUSION<W_Ind>=ENR_ASSOCIATION<39>:CHAR(9):"S":CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_CleCont[1,5]:CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_CONTRAT<36,i>:CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_CIVILAIDANT<2>:CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_CIVILAIDANT<3>:CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ICONV(ENR_CIVILAIDANT<12>,"MCN"):CHAR(9)
	
	*********************
	* AF / PG : 04/12/07*
	*********************
	* Mise  vide des champs non grer
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
	ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
	IF ENR_CIVILAIDANT<36> <> "" THEN
		*inactifs
		*ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:OCONV(ENR_CIVILAIDANT<36>,"D4/")
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"1"
	END ELSE
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"0"
	END
	*********************
	* FIN AF / PG       *
	*********************
	W_Ind=W_Ind+1
RETURN

**************************************************
* usagers

700
	ENR_TABAIDEACT=""
	iTabAideAct=1
	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 800
		REPEAT
	END

RETURN

**************************************************
* ligne activit

800
      W_CodeAsso=""
	READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CleAide THEN
		CreerLigne="NON"

		READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_CleAide THEN
			K=1
			LOOP
			WHILE ENR_ACTIVITESAIDE<1,K>#"" DO

			   IF INDEX(W_Asso,ENR_ACTIVITESAIDE<1,K>[1,3],1) # 0 THEN

				IF ENR_ACTIVITESAIDE<2,K> = "" OR ENR_ACTIVITESAIDE<3,K> = "" THEN
					ENR_TABAIDEACT<iTabAideAct>=W_CleAide
					ENR_TABAIDEACT<iTabAideAct,2>=ENR_ACTIVITESAIDE<1,K>
					iTabAideAct=iTabAideAct + 1
					CreerLigne="OUI"
					W_CodeAsso=ENR_ACTIVITESAIDE<1,K>[1,3]
				END				
				IF ENR_ACTIVITESAIDE<2,K> >= DATE() THEN
					ENR_TABAIDEACT<iTabAideAct>=W_CleAide
					ENR_TABAIDEACT<iTabAideAct,2>=ENR_ACTIVITESAIDE<1,K>
					iTabAideAct=iTabAideAct + 1
					CreerLigne="OUI"
					W_CodeAsso=ENR_ACTIVITESAIDE<1,K>[1,3]
				END
				IF ENR_ACTIVITESAIDE<2,K> <= DATE() AND ENR_ACTIVITESAIDE<3,K> >= DATE() THEN
					ENR_TABAIDEACT<iTabAideAct>=W_CleAide
					ENR_TABAIDEACT<iTabAideAct,2>=ENR_ACTIVITESAIDE<1,K>
					iTabAideAct=iTabAideAct + 1
					CreerLigne="OUI"
					W_CodeAsso=ENR_ACTIVITESAIDE<1,K>[1,3]
				END
*c				IF ENR_ACTIVITESAIDE<3,K> >= DATE()-90 AND ENR_ACTIVITESAIDE<3,K> <= DATE() THEN
*c					CreerLigne="OUI"
*c				END
				
  			      K=K+1

                     END
			REPEAT

		END
		
		IF CreerLigne="OUI" THEN

			READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CodeAsso ELSE ENR_ASSOCIATION=""
			IF W_SauveAide="" THEN
				W_SauveAide=W_CleAide
			END ELSE
				IF W_CleAide > W_SauveAide THEN
					W_SauveAide=W_CleAide
				END
			END
			ENR_FUSION<W_Ind>=ENR_ASSOCIATION<39>:CHAR(9):"U":CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_CleAide:CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_CIVILAIDE<2>:CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_CIVILAIDE<3>:CHAR(9)
			W_Tab=ENR_CIVILAIDE
			W_Att=5
			GOSUB 400
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_Adresse[1,40]:CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_CIVILAIDE<9>:CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_CIVILAIDE<10>:CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_CIVILAIDE<11>:CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ICONV(ENR_CIVILAIDE<14>,"MCN"):CHAR(9)
			ENR_CIVILAIDE<18>=CONVERT(" ","",ENR_CIVILAIDE<18>)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_CIVILAIDE<18>:ENR_CIVILAIDE<19>:CHAR(9)
			
			*********************
			* AF / PG : 04/12/07*
			*********************
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
			IF ENR_CIVILAIDE<43> <> "" THEN
				*ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:OCONV(ENR_CIVILAIDE<43>,"D4/"):CHAR(9)
				ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"1":CHAR(9)
			END ELSE
				*ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"":CHAR(9)
				ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"0":CHAR(9)
			END
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ICONV(ENR_CIVILAIDE<16>,"MCN"):CHAR(9)
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_CIVILAIDE<17>
			*********************
			* FIN AF / PG       *
			*********************
	
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:""
			W_Ind=W_Ind+1
		END

	END

RETURN

**************************************************
* prise en charge 

900

	IF W_Type="S" THEN
		BEGIN CASE
			CASE W_TypeSelect="S" 
				W_TempBis=' AND AVEC CodeSecteur = "':W_Select:'"'
			CASE W_TypeSelect="C" 
				W_TempBis=' AND AVEC CommuneAide = "':W_Select:'"'
			CASE W_TypeSelect="A" 
				W_TempBis=' AND AVEC CodAideAccord >= "':W_Aide:'"'
		END CASE
	END

	W_TempTer=' AND AVEC EntiteAccord = "':W_Asso<1>:'"'
	W_CountAsso=DCOUNT(W_Asso,CHAR(254))
	FOR i=2 TO W_CountAsso
		W_TempTer = W_TempTer:' OR = "':W_Asso<i>:'"'
	NEXT i
	W_TempTer = W_TempTer:' AND AVEC 18 = ""'

	W_Temp = 'SELECT ACCORD AVEC 5 <= "':DATE():'" AND AVEC 6 >= "':DATE():'"'
	W_Temp=W_Temp:W_TempTer
	IF W_Type="S" THEN
		W_Temp=W_Temp:W_TempBis
	END
	W_Temp = W_Temp:' OR AVEC 5 >= "':DATE():'"' 
	W_Temp=W_Temp:W_TempTer
	IF W_Type="S" THEN
		W_Temp=W_Temp:W_TempBis
	END
	W_Temp = W_Temp:' OR AVEC 6 >= "':W_Date:'"' 
	W_Temp=W_Temp:W_TempTer
	IF W_Type="S" THEN
		W_Temp=W_Temp:W_TempBis
	END

	*c modif tri par rang par date de dbut et par date de fin (Idem calcul des factures)
	W_Temp = W_Temp:' PAR CodAideAccord PAR 8 PAR 5 PAR 6'

	EXECUTE W_Temp

	EXECUTE 'SAUVE-LISTE W_RequeteAcc'
	EXECUTE "LISTE W_RequeteAcc" RETURNING MSGCODE

	IF MSGCODE<1> # 209 THEN
		SELECT F.ACCORD TO W_RequeteAcc
		W_Fini = "FAUX"
		LOOP
			READNEXT W_CleAcc FROM W_RequeteAcc ELSE W_Fini = "VRAI"
		WHILE W_Fini = "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=""
			READ ENR_ASSOCIATION FROM F.ASSOCIATION,ENR_ORGPRISECHARGE<46> ELSE ENR_ASSOCIATION=""

			GOSUB 1000
		REPEAT
	END


RETURN

**************************************************
* ligne accord

1000

	W_CountAct47=DCOUNT(ENR_ORGPRISECHARGE<47>,CHAR(253))
	FOR iAct=1 TO W_CountAct47

	   IF INDEX(ENR_TABAIDEACT,W_CleAcc[1,5]:CHAR(253):ENR_ORGPRISECHARGE<47,iAct>,1) # 0 THEN

		ENR_FUSION<W_Ind>=ENR_ASSOCIATION<39>:CHAR(9):"P":CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_CleAcc:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_ORGPRISECHARGE<47,iAct>:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_CleAcc[1,5]:CHAR(9)
		W_Deb=OCONV(ENR_ACCORD<5>,"D4/")
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_Deb[7,4]:W_Deb[4,2]:W_Deb[1,2]:CHAR(9)
		W_Fin=OCONV(ENR_ACCORD<6>,"D4/")
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_Fin[7,4]:W_Fin[4,2]:W_Fin[1,2]:CHAR(9)
		IF ENR_ORGPRISECHARGE<24>="H" AND ENR_ORGPRISECHARGE<19>="2" THEN
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_ACCORD<9>/100:CHAR(9)
		END ELSE
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:CHAR(9)
		END
		IF ENR_ORGPRISECHARGE<24>="H" AND ENR_ORGPRISECHARGE<19>="3" THEN
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_ACCORD<9>/100:CHAR(9)
		END ELSE
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:CHAR(9)
		END
		IF ENR_ORGPRISECHARGE<24>="M" THEN
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_ACCORD<9>/100:CHAR(9)
		END ELSE
			ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:CHAR(9)
		END
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_ACCORD<1>:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_ACCORD<2>:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"0":CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:""
		W_Ind=W_Ind+1
	   END
	NEXT iAct

RETURN

**************************************************
* contrat type mandataire 

1100

	IF W_Type="S" THEN
		BEGIN CASE
			CASE W_TypeSelect="S" 
				W_TempBis=' AND AVEC CodSecteurContrat = "':W_Select:'"'
			CASE W_TypeSelect="C" 
				W_TempBis=' AND AVEC CommunePostAidant = "':W_Select:'"'
			CASE W_TypeSelect="A" 
				W_TempBis=' AND AVEC CodeAidant >= "':W_Aidant:'"'
		END CASE
	END

	W_TempTer=' AND AVEC 2 = "':W_Asso<1>:'"'
	W_CountAsso=DCOUNT(W_Asso,CHAR(254))
	FOR i=2 TO W_CountAsso
		W_TempTer = W_TempTer:' OR = "':W_Asso<i>:'"'
	NEXT i
	W_TempTer = W_TempTer:' AND AVEC 65 = "" AND AVEC 1 = "02"'

	W_Temp = 'SELECT CONTRAT AVEC 7 <= "':DATE():'" AND AVEC 8 >= "':DATE():'" OR = ""'
	W_Temp=W_Temp:W_TempTer
	IF W_Type="S" THEN
		W_Temp=W_Temp:W_TempBis
	END
	W_Temp = W_Temp:' OR AVEC 7 >= "':DATE():'"' 
	W_Temp=W_Temp:W_TempTer
	IF W_Type="S" THEN
		W_Temp=W_Temp:W_TempBis
	END
	W_Temp = W_Temp:' OR AVEC 8 >= "':W_Date:'"' 
	W_Temp=W_Temp:W_TempTer
	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_RequeteMand'
	EXECUTE "LISTE W_RequeteMand" RETURNING MSGCODE

	IF MSGCODE<1> # 209 THEN
		SELECT F.CONTRAT TO W_RequeteMand
		W_Fini = "FAUX"
		LOOP
			READNEXT W_CleMand FROM W_RequeteMand ELSE W_Fini = "VRAI"
		WHILE W_Fini = "FAUX" DO
			READ ENR_CONTRAT FROM F.CONTRAT,W_CleMand ELSE ENR_CONTRAT=""
			READ ENR_ASSOCIATION FROM F.ASSOCIATION,ENR_CONTRAT<2> ELSE ENR_ASSOCIATION=""

			GOSUB 1200
		REPEAT
	END

RETURN

**************************************************
* ligne contrat mandataire

1200

	W_CountAct36=DCOUNT(ENR_CONTRAT<36>,CHAR(253))
	FOR iAct=1 TO W_CountAct36
		ENR_FUSION<W_Ind>=ENR_ASSOCIATION<39>:CHAR(9):"P":CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_CleMand:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_CONTRAT<36,iAct>:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:ENR_CONTRAT<3>:CHAR(9)
		W_Deb=OCONV(ENR_CONTRAT<7>,"D4/")
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_Deb[7,4]:W_Deb[4,2]:W_Deb[1,2]:CHAR(9)
		W_Fin=OCONV(ENR_CONTRAT<8>,"D4/")
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_Fin[7,4]:W_Fin[4,2]:W_Fin[1,2]:CHAR(9)

		k=DCOUNT(ENR_CONTRAT<25>,CHAR(253))
		BEGIN CASE
			CASE ENR_CONTRAT<25,k> = "1"
				W_NbreHre = INT((ENR_CONTRAT<24,k>*52/12) + (1/2))
			CASE ENR_CONTRAT<25,k> = "2"
				W_NbreHre = INT((ENR_CONTRAT<24,k>*26/12) + (1/2))
			CASE ENR_CONTRAT<25,k> = "3"
				W_NbreHre = INT((ENR_CONTRAT<24,k>) + (1/2))
			CASE ENR_CONTRAT<25,k> = "4"
				W_NbreHre = INT((ENR_CONTRAT<24,k>/12) + (1/2))
		END CASE
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_NbreHre/100:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:"1":CHAR(9)
		ENR_FUSION<W_Ind>=ENR_FUSION<W_Ind>:W_CleMand[1,5]:CHAR(9)
		W_Ind=W_Ind+1
	NEXT iAct

RETURN
