* Ouverture d'un fichier
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACCORD" TO F.ACCORD ELSE STOP
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","DEMANDACC" TO F.DEMANDACC ELSE STOP
OPEN "","DETAILPREST" TO F.DETAILPREST ELSE STOP
OPEN "","HRESHISTOR" TO F.HRESHISTOR ELSE STOP

PRINT "Saisissez la priode sous la forme AAAAMM"
INPUT W_Periode

MOIS = W_Periode[5,2]
AN = W_Periode[1,4]

W_DATEDEB = ICONV("01/":MOIS:"/":AN,"D4/")

MOIS = W_Periode[5,2]
AN = W_Periode[1,4]
MOIS = MOIS + 1

IF MOIS > 12 THEN
	MOIS = MOIS - 12
	AN = AN + 1
END

W_DATEFIN = ICONV("01/":MOIS:"/":AN,"D4/")
W_DATEFIN = W_DATEFIN - 1

W_RESULTAT = ""
W_RESULTATACC = ""

EXECUTE 'COMO ON DETAILEXEC'

* Requete
EXECUTE 'SELECT HRESHISTOR AVEC 0 = "[':W_Periode:'"'
EXECUTE 'SAUVE-LISTE W_RESULTAT' 
EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE

IF MSGCODE<1> # 209 THEN

SELECT F.HRESHISTOR TO W_RESULTAT 

W_Fini="FAUX"

* Parcours de la requete
LOOP
   READNEXT W_Cle FROM W_RESULTAT ELSE W_Fini="VRAI"
WHILE W_Fini="FAUX" DO

   * Lecture
   IHIST=1
   READ ENR_HRESHISTOR FROM F.HRESHISTOR,W_Cle ELSE ENR_HRESHISTOR = ""
   LOOP
   WHILE ENR_HRESHISTOR<1,IHIST> # "" DO
	READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,ENR_HRESHISTOR<1,IHIST> ELSE ENR_CIVILAIDANT = ""

   	CONTACTIF = 0
	FOR ICONT = 1 TO ENR_CIVILAIDANT<41>
		NUMCONT = ICONT "R(%3)"
		W_CODECONT = ENR_HRESHISTOR<1,IHIST>[1,5]:NUMCONT
		READ ENR_CONTRAT FROM F.CONTRAT,W_CODECONT ELSE ENR_CONTRAT = ""
		IF ENR_CONTRAT<2> = "001" THEN
			IF ENR_CONTRAT<8> => W_DATEDEB OR ENR_CONTRAT<8> = "" THEN
				IF ENR_CONTRAT<7> <= W_DATEFIN AND ENR_CONTRAT<65> = "" THEN
					CONTACTIF = W_CODECONT
				END
			END
		END
	NEXT ICONT
	IF CONTACTIF = 0 THEN
		PRINT 'AIDANT SANS CONTRAT : ':ENR_HRESHISTOR<1,IHIST>[1,5]
	END ELSE
		PRINT 'AIDANT CONTRAT : ':CONTACTIF
		CLEDETAIL = CONTACTIF:W_Periode
		READ ENR_DETAILPREST FROM F.DETAILPREST,CLEDETAIL ELSE ENR_DETAILPREST = ""
		ENR_DETAILPREST<1,-1> = W_Cle[1,5]
		ENR_DETAILPREST<2,-1> = "019"
		ENR_DETAILPREST<3,-1> = ENR_HRESHISTOR<2,IHIST>
		ENR_DETAILPREST<4,-1> = "001001"

		READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_Cle[1,5] ELSE ENR_ACTIVITESAIDE = ""
		W_EXO = "FAUX"

		EXECUTE 'SSELECT ACCORD AVEC 0 = "':W_Cle[1,5]:']" AND AVEC TypeActOrg = "P" AND AVEC 18 = "" AND AVEC 5 <= "':W_DATEFIN:'" AND AVEC 6 => "':W_DATEDEB:'" OR = ""'
		EXECUTE 'SAUVE-LISTE W_RESULTATACC' 
		EXECUTE "LISTE W_RESULTATACC" RETURNING MSGCODEACC

		IF MSGCODEACC<1> # 209 THEN
			SELECT F.ACCORD TO W_RESULTATACC 
			W_FINACC="FAUX"

			LOOP
				READNEXT W_CleAcc FROM W_RESULTATACC ELSE W_FINACC="VRAI"
			WHILE W_FINACC="FAUX" DO
				READ ENR_ACCORD FROM F.ACCORD,W_CleAcc ELSE ENR_ACCORD = ""
				IF ENR_ACCORD<1> # "037" AND ENR_ACCORD<1> # "115" AND ENR_ACCORD<1> # "040" AND ENR_ACCORD<1> # "076" AND ENR_ACCORD<1> # "079" AND ENR_ACCORD<1> # "087" AND ENR_ACCORD<1> # "089" AND ENR_ACCORD<1> # "092" AND ENR_ACCORD<1> # "095" AND ENR_ACCORD<1> # "097" AND ENR_ACCORD<1> # "100" AND ENR_ACCORD<1> # "102" AND ENR_ACCORD<1> # "103" AND ENR_ACCORD<1> # "104" AND ENR_ACCORD<1> # "112" AND ENR_ACCORD<1> # "113" AND ENR_ACCORD<1> # "114" AND ENR_ACCORD<1> # "116" AND ENR_ACCORD<1> # "122" AND ENR_ACCORD<1> # "127" AND ENR_ACCORD<1> # "134" AND ENR_ACCORD<1> # "135" THEN
					W_EXO = "VRAI"
				END
			REPEAT

		END

		IF W_EXO = "VRAI" THEN
			IF ENR_ACTIVITESAIDE<5> # "1" THEN
				PRINT "AIDES NON EXO AU LIEU DE EXO : ":W_Cle[1,5]
				ENR_ACTIVITESAIDE<5> = "1"
			END
		END ELSE
			READ ENR_DEMANDACC FROM F.DEMANDACC,W_Cle[1,5] ELSE ENR_DEMANDACC = ""
			IDEM = 1
			LOOP
			WHILE ENR_DEMANDACC<1,IDEM> # "" DO
				IF ENR_DEMANDACC<1,IDEM> # "037" AND ENR_DEMANDACC<1,IDEM> # "115" AND ENR_DEMANDACC<1,IDEM> # "040" AND ENR_DEMANDACC<1,IDEM> # "076" AND ENR_DEMANDACC<1,IDEM> # "079" AND ENR_DEMANDACC<1,IDEM> # "087" AND ENR_DEMANDACC<1,IDEM> # "089" AND ENR_DEMANDACC<1,IDEM> # "092" AND ENR_DEMANDACC<1,IDEM> # "095" AND ENR_DEMANDACC<1,IDEM> # "097" AND ENR_DEMANDACC<1,IDEM> # "100" AND ENR_DEMANDACC<1,IDEM> # "102" AND ENR_DEMANDACC<1,IDEM> # "103" AND ENR_DEMANDACC<1,IDEM> # "104" AND ENR_DEMANDACC<1,IDEM> # "112" AND ENR_DEMANDACC<1,IDEM> # "113" AND ENR_DEMANDACC<1,IDEM> # "114" AND ENR_DEMANDACC<1,IDEM> # "116" AND ENR_DEMANDACC<1,IDEM> # "122" AND ENR_DEMANDACC<1,IDEM> # "127" AND ENR_DEMANDACC<1,IDEM> # "134" AND ENR_DEMANDACC<1,IDEM> # "135" THEN
					IF ENR_DEMANDACC<4,IDEM> => W_DATEDEB OR ENR_DEMANDACC<4,IDEM> = "" THEN
						IF ENR_DEMANDACC<3,IDEM> <= W_DATEFIN THEN
							W_EXO = "VRAI"
						END
					END
				END
				IDEM = IDEM + 1
			REPEAT
			
			IF W_EXO  = "VRAI" THEN
				IF ENR_ACTIVITESAIDE<5> # "1" THEN
					PRINT "AIDES NON EXO AU LIEU DE EXO : ":W_Cle[1,5]
					ENR_ACTIVITESAIDE<5> = "1"
				END
			END ELSE
				READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_Cle[1,5] ELSE ENR_CIVILAIDE = ""
				
				W_AGEAIDE = W_DATEFIN - ENR_CIVILAIDE<20>
				W_AGEAIDE = W_AGEAIDE / 365
				IF W_AGEAIDE > 70 THEN
					W_EXO = "VRAI"
					IF ENR_ACTIVITESAIDE<5> # "1" THEN
						PRINT "AIDES NON EXO AU LIEU DE EXO : ":W_Cle[1,5]
						ENR_ACTIVITESAIDE<5> = "1"
					END
				END				
			END
		END
		IF W_EXO = "FAUX" THEN
			IF ENR_ACTIVITESAIDE<5>= "1" THEN
				PRINT "AIDES EXO AU LIEU DE NON EXO : ":W_Cle[1,5]
				ENR_ACTIVITESAIDE<5> = "0"
			END
		END
   		WRITE ENR_ACTIVITESAIDE ON F.ACTIVITESAIDE,W_Cle[1,5]
   		WRITE ENR_DETAILPREST ON F.DETAILPREST,CLEDETAIL
	END

	IHIST=IHIST+1   
   REPEAT
REPEAT

END

EXECUTE 'COMO OFF'

STOP
