***************************************************************
* programme d'extraction de donnes ACCORD
* gnration d'un fichier pour DOMIPHONE
***************************************************************

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

* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
OPEN "", "ACCORD" TO F.ACCORD ELSE STOP
OPEN "", "ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "", "ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "", "CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "", "FUSION" TO F.FUSION ELSE STOP
OPEN "", "ORGPRISECHARGE" TO F.ORGPRISECHARGE 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=""

	* requete association
	GOSUB 80

	FOR iAsso=1 TO W_CountAsso
		ENR_FUSION=""

		READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_ListeAsso<iAsso> ELSE ENR_ASSOCIATION = ""

		GOSUB 40

		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
		
		GOSUB 50
  
		IF ENR_FUSION#"" THEN
			W_Cle="ACCORD":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
			NomFichier<DCOUNT(NomFichier,CHAR(254))+1>=W_Cle

		END

	NEXT iAsso

	OUTPUT=NomFichier

	EXECUTE 'EFFACER-LISTE W_RequeteRub'
	EXECUTE 'EFFACER-LISTE W_RequeteAcc'

RETURN

********************************************************
* slection et mise en table des rubriques de saisie telegestion
40

	W_RequeteRub=""
	W_TabRub=""
	EXECUTE 'SELECT TLGACTIVITES AVEC @ID = "':W_ListeAsso<iAsso>:']"'
	EXECUTE 'SAUVE-LISTE W_RequeteRub'
	EXECUTE "LISTE W_RequeteRub" RETURNING MSGCODE

	IF MSGCODE<1> # 209 THEN

		SELECT F.TLGACTIVITES TO W_RequeteRub
		W_Fini="FAUX"
		LOOP
			READNEXT W_CleRub FROM W_RequeteRub ELSE W_Fini="VRAI"
		WHILE W_Fini="FAUX" DO
			READ ENR_TLGACTIVITES FROM F.TLGACTIVITES,W_CleRub THEN
				W_ActiviteRub=W_CleRub
				W_ActiviteRub=W_ActiviteRub[4,3]
				W_TabRub<W_ActiviteRub>=ENR_TLGACTIVITES<2>
			END
		REPEAT

	END
RETURN

********************************************************
* slection et mise en table des rubriques de saisie telegestion
50

	W_RequeteAcc=""
	ENR_FUSION=""
	iFusion=1

	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_Aidant:'"'
		END CASE
	END

	W_TempTer=' AND AVEC TypeOrg ="P" AND AVEC 18 # "O" AND AVEC EntiteAccord = "':W_ListeAsso<iAsso>:'"'

	W_Temp = 'SELECT ACCORD AVEC DateSortieAideAccord >= "':W_Date:'" OR = "" AND AVEC 5 <= "':DATE():'" AND AVEC 6 >= "':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 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

	W_Temp=W_Temp:' PAR CodAideAccord PAR 8 PAR 5 PAR-DECR 6'

	EXECUTE W_Temp

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

	IF MSGCODE1<1> # 209 THEN
   		SELECT F.ACCORD TO W_RequeteAcc

   		W_AncienAide=""

		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 THEN
				W_CodeAide=W_CleAcc[1,5]
				IF W_AncienAide # W_CodeAide THEN
					READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CodeAide THEN
						* Traitement de l'aide
						GOSUB 60
					END ELSE
						ENR_CIVILAIDE=""
					END
				END

				W_CodeOrganisme=ENR_ACCORD<1>
				READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_CodeOrganisme THEN
					* Traitement de l'accord
					GOSUB 70
				END
			END

			W_AncienAide = W_CodeAide

		REPEAT

	END

RETURN

********************************************************
* Traitement de l'aide
60

	W_Civilite=ENR_CIVILAIDE<1>
	IF W_Civilite = "" THEN
		W_Civilite="MME"
	END ELSE
		IF W_Civilite = "MLE" THEN
			W_Civilite="MLLE"
		END
	END

	W_Tel=CONVERT(" ","",ENR_CIVILAIDE<14>)
	W_Tel=CONVERT("/","",W_Tel)
	W_Tel=CONVERT(".","",W_Tel)
	IF W_Tel ="" THEN
		W_Tel="XXXXXXXXXX"
	END

RETURN

********************************************************
* Constitution du fichier resultant ACCORDSDOM.TXT
70

	W_NumDossier=CONVERT(" ","",ENR_ACCORD<2>)
	IF W_NumDossier ="" THEN
		W_NumDossier="EN COURS"
	END ELSE
		IF LEN(ENR_ACCORD<2>) > 20 THEN
			IF LEN(W_NumDossier) > 20 THEN
				W_NumDossier=W_NumDossier[1,20]
			END
		END ELSE
			W_NumDossier=ENR_ACCORD<2>
		END
	END

	W_DebAccord=OCONV(ENR_ACCORD<5>,"D4/")
	W_FinAccord=OCONV(ENR_ACCORD<6>,"D4/")

	READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ORGPRISECHARGE<47,1> THEN
		W_NaturePrestation=ENR_ACTIVITES<12>
	END ELSE
		W_NaturePrestation="P"
	END

	W_HeureMontAide = ENR_ACCORD<9> "MR2"
	W_HeureMontAide=CONVERT(",",".",W_HeureMontAide)

	IF ENR_ORGPRISECHARGE<24> = "H" THEN
		* gestion en heure

		IF ENR_ORGPRISECHARGE<51>=1 THEN
			* gestion exclu dimanche
			W_HeureMontAide=";;":W_HeureMontAide:";"
		END ELSE
			* gestion semaine ou totalite
			W_HeureMontAide=";":W_HeureMontAide:";;"
		END
	END ELSE
		* Gestion en montant
		W_HeureMontAide=";;;":W_HeureMontAide
	END

	W_CountAct = DCOUNT(ENR_ORGPRISECHARGE<47>,CHAR(253))
	FOR iActOrg = 1 TO W_CountAct
		W_ActOrg=ENR_ORGPRISECHARGE<47,iActOrg>
		IF W_ActOrg[1,3] = W_ListeAsso<iAsso> THEN
			READ ENR_TLGACTIVITES FROM F.TLGACTIVITES,W_ActOrg[1,3] ELSE ENR_TLGACTIVITES = ""
			FOR iAct2=1 TO DCOUNT(ENR_TLGACTIVITES<3>,CHAR(253))
				IF ENR_TLGACTIVITES<3,iAct2> = W_ActOrg THEN
					W_Prestation=ENR_TLGACTIVITES<2,iAct2>
					EXIT
				END
			NEXT iAct2
		
			IF W_TabRub<W_ActOrg[4,3]> # "" THEN
				ENR_FUSION<iFusion>=ENR_ASSOCIATION<39>:";":W_Tel:";":W_Civilite:";":W_CodeAide:";":W_CodeOrganisme:";"
				ENR_FUSION<iFusion>=ENR_FUSION<iFusion>:W_NumDossier:";":W_DebAccord:";":W_FinAccord:";"
				ENR_FUSION<iFusion>=ENR_FUSION<iFusion>:W_NaturePrestation:";":W_Prestation[2,2]:W_HeureMontAide
				iFusion = iFusion + 1
			END
		END
	NEXT iActOrg

RETURN

************************************************************************
* REQUETE ASSOCIATION
80

	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
