*************************************************************************
* MAJ fichiers ETABLISSEMENT et ASSOCIATION pour effectif physique et 	*
* temps plein pour les moins de 26 ans
*************************************************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE PRINT "OUVERTURE ASSOCIATION" ;* en lecture criture
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "OUVERTURE CIVILAIDANT" ;* en lecture
OPEN "","CONTRAT" TO F.CONTRAT ELSE PRINT "OUVERTURE CONTRAT" ;* en lecture
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE PRINT "OUVERTURE DETAILCALCUL" ;* en lecture
OPEN "","ETABLISSEMENT" TO F.ETABLISSEMENT ELSE PRINT "OUVERTURE ETABLISSEMENT" ;* en lecture criture
OPEN "","PERIODESPAIE" TO F.PERIODESPAIE ELSE PRINT "OUVERTURE PERIODESPAIE" ;* en lecture

READ ENR_PERIODESPAIE FROM F.PERIODESPAIE,"1" ELSE ENR_PERIODESPAIE=""

W_1Juin="13667"
W_Periode=ENR_PERIODESPAIE<2>
W_DateFin=ICONV("01/":W_Periode[5,2]:"/":W_Periode[1,4],"D4/")-1

W_Etab=""
W_TabHre=""
W_TabEff=""
iEtab=1
iMois=0

	EXECUTE 'SELECT CONTRAT AVEC 65 = "" AND AVEC 1 # "02" AND AVEC 7 <= "':W_DateFin:'" AND AVEC 8 >= "':W_1Juin:'" OR = "" PAR 3' 
	W_End="FAUX"

	LOOP
		READNEXT W_Cle ELSE W_End = "VRAI"
	WHILE W_End = "FAUX" DO
		READ ENR_CONTRAT FROM F.CONTRAT,W_Cle THEN

			IF W_Etab="" THEN
				W_Etab<iEtab>=ENR_CONTRAT<3>
			END ELSE
				IF W_Etab<iEtab> # ENR_CONTRAT<3> THEN
					iEtab=iEtab+1
					W_Etab<iEtab>=ENR_CONTRAT<3>
				END
			END

			READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_Cle[1,5] ELSE ENR_CIVILAIDANT=""
			iMois=0

			FOR i = 200506 TO ENR_PERIODESPAIE<1>

				iMois=iMois+1
				IF i[5,2]="13" THEN
					i=i[1,4]+1:"01"
				END
				IF W_TabHre<iEtab,iMois>="" THEN W_TabHre<iEtab,iMois>=0
				IF W_TabEff<iEtab,iMois>="" THEN W_TabEff<iEtab,iMois>=0

				IF i # ENR_PERIODESPAIE<1> OR (i=ENR_PERIODESPAIE<1> AND i=ENR_CONTRAT<63>) THEN

					GOSUB 10

					IF W_Passe26Ans=1 THEN

						READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,W_Cle:i THEN
							W_TabHre<iEtab,iMois>=W_TabHre<iEtab,iMois>+ENR_DETAILCALCUL<6>
						END

						IF ENR_CONTRAT<7> <= W_DateFinPer AND ENR_CONTRAT<8>="" THEN
							W_TabEff<iEtab,iMois>=W_TabEff<iEtab,iMois>+100

						END ELSE
							IF ENR_CONTRAT<7> <= W_DateFinPer AND ENR_CONTRAT<8> >= W_DateFinPer THEN
								W_TabEff<iEtab,iMois>=W_TabEff<iEtab,iMois>+100
							END
						END

					END
				END

			NEXT i

		END

	REPEAT

	W_SauveAsso=""

	W_Counti=DCOUNT(W_Etab,CHAR(254))
	FOR i = 1 TO W_Counti

		IF W_SauveAsso # W_Etab<i>[1,3] THEN
			IF W_SauveAsso # "" THEN
				GOSUB 20
			END

			READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_Etab<i>[1,3] ELSE ENR_ASSOCIATION=""
			W_SauveAsso = W_Etab<i>[1,3]
			W_EffTPAsso=""
			W_EffPhyAsso=""
		END

		READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,W_Etab<i> ELSE ENR_ETABLISSEMENT=""
		W_HoraireHebdo=ENR_ETABLISSEMENT<16>*52/12

		W_Countj=DCOUNT(W_TabHre<i>,CHAR(253))
		W_Periode="200505"
		FOR j=1 TO W_Countj

			IF W_EffTPAsso<j>="" THEN W_EffTPAsso<j>=0
			IF W_EffPhyAsso<j>="" THEN W_EffPhyAsso<j>=0

			W_Periode=W_Periode+1
			IF W_Periode[5,2]="13" THEN
				W_Periode=W_Periode[1,4]+1:"01"
			END

			iTemp=DCOUNT(ENR_ETABLISSEMENT<19>,CHAR(253))
			LOOP 
			UNTIL ENR_ETABLISSEMENT<19,iTemp>=W_Periode OR iTemp=0 DO
				iTemp=iTemp-1
			REPEAT

			IF iTemp # 0 THEN
				ENR_ETABLISSEMENT<32,iTemp>=W_TabEff<i,j>
				ENR_ETABLISSEMENT<33,iTemp>=INT((W_TabHre<i,j>/W_HoraireHebdo)*100+(1/2))

				W_EffTPAsso<j>=W_EffTPAsso<j>+ENR_ETABLISSEMENT<32,iTemp>
				W_EffPhyAsso<j>=W_EffPhyAsso<j>+ENR_ETABLISSEMENT<33,iTemp>

			END

		NEXT j

		WRITE ENR_ETABLISSEMENT ON F.ETABLISSEMENT,W_Etab<i>

	NEXT i

	GOSUB 20

STOP

*****************************************************************************************
* CALCULE SI - 26 ANS SUR LA PERIODE

10

	W_Mois=i[5,2]+1
	W_An=i[1,4]
	IF W_Mois="13" THEN
		W_Mois="01"
		W_An=W_An+1
	END
	W_DateFinPer=ICONV("01/":W_Mois:"/":W_An,"D4/")-1

	W_Passe26Ans=0

	W_DateNais=OCONV(ENR_CIVILAIDANT<26>,"D4/")
	W_DateNaisPer=W_DateNais[7,4]:W_DateNais[4,2]

	IF i-W_DateNaisPer < 2600 THEN
		W_Passe26Ans=1
	END

RETURN

*****************************************************************************************
* MAJ FICHIER ASSOCIATION

20

	W_Countj=DCOUNT(W_EffTPAsso,CHAR(254))
	W_Periode="200505"
	FOR j=1 TO W_Countj

		W_Periode=W_Periode+1
		IF W_Periode[5,2]="13" THEN
			W_Periode=W_Periode[1,4]+1:"01"
		END
		iTemp=DCOUNT(ENR_ASSOCIATION<29>,CHAR(253))
		LOOP 
		UNTIL ENR_ASSOCIATION<29,iTemp>=W_Periode OR iTemp=0 DO
			iTemp=iTemp-1
		REPEAT

		IF iTemp # 0 THEN
			ENR_ASSOCIATION<40,iTemp>=W_EffTPAsso<j>
			ENR_ASSOCIATION<41,iTemp>=W_EffPhyAsso<j>
		END

	NEXT j

	WRITE ENR_ASSOCIATION ON F.ASSOCIATION,W_SauveAsso

RETURN
