OPEN "", "DETAILMANDAT" TO F.DETAILMANDAT ELSE STOP
OPEN "", "CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "", "STATACTAIDE" TO F.STATACTAIDE ELSE STOP
OPEN "", "RUBSAISIE" TO F.RUBSAISIE ELSE STOP
OPEN "", "FACTURAIDE" TO F.FACTURAIDE ELSE STOP
**************************************************************************
* Regenere StatActAide a partir de DETAILMANDAT
**************************************************************************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
PRINT "Asso ?"
INPUT Asso
PRINT "Periode (AAAAMM) ?"
INPUT Periode
EXECUTE 'SELECT ACTIVITES = "':Asso:']" AVEC 12 = "M"'
W_Fin = "F"
TabActRef = ""
LOOP
READNEXT W_Cle ELSE W_Fin = "V"
WHILE W_Fin = "F"
TabActRef<-1> = W_Cle
REPEAT
W_Total = 0
EXECUTE 'SELECT DETAILMANDAT = "[':Periode:'" AVEC AssoContratMandat = "':Asso:'" PAR CodeAide'
W_Fin= "F"
W_DernAide = ""
LOOP
READNEXT W_Cle ELSE W_Fin = "V"
W_ErrContrat = "F"
IF W_Fin = "V" THEN
    IF W_DernAide # "" THEN
	GOSUB 100
    END ELSE
	PRINT "Pasde saisie d'activit sur cette periode pour cette entit."
    END
END ELSE
	READ ENR_CONTRAT FROM F.CONTRAT, W_Cle[1,8] THEN
		IF ENR_CONTRAT<3> # W_DernAide THEN
			IF W_DernAide # "" THEN
				GOSUB 100
			END
			W_DernAide = ENR_CONTRAT<3>
			W_TabStat = ""
		END
	END ELSE
		W_ErrContrat = "V"
	END
END
WHILE W_Fin = "F"
IF W_ErrContrat = "F" THEN
   READ ENR_DETAIL FROM F.DETAILMANDAT, W_Cle THEN
	i =0
	LOOP
	i = i + 1
	WHILE ENR_DETAIL<1,i> # ""
	   READ ENR_RUBSAISIE FROM F.RUBSAISIE, ENR_DETAIL<1,i> THEN
		IF ENR_RUBSAISIE<2> = "3" OR ENR_RUBSAISIE<2> = "4" THEN
			k = 0
			LOOP
			k = k + 1
			WHILE TabActRef<k> # ENR_DETAIL<5,i> AND TabActRef<k> # ""
			REPEAT
			IF TabActRef<k> = ENR_DETAIL<5,i> THEN
			   IF W_TabStat<k> = "" THEN
				W_TabStat<k> = ENR_DETAIL<2,i>
			   END ELSE
				W_TabStat<k> = W_TabStat<k> + ENR_DETAIL<2,i>
			   END
			END
		END
	   END
	REPEAT
   END
END
REPEAT
GOSUB 200
PRINT OCONV(W_Total,"MR2"):" heures rintgres en stat."
PRINT OCONV(W_TotalFact,"MR2"):" heures factures."
STOP
100
READ ENR_STATACTAIDE FROM F.STATACTAIDE, W_DernAide:Asso:Periode ELSE ENR_STATACTAIDE = ""
ENR2 = ""
W_Ind2 = 1
i=0
LOOP
i=i+1
WHILE ENR_STATACTAIDE<1,i> # ""
IF INDEX(TabActRef,ENR_STATACTAIDE<1,i>,1) = 0 THEN
	* Act prest : on conserve ...
	ENR2<1,W_Ind2> = ENR_STATACTAIDE<1,i>	
	ENR2<2,W_Ind2> = ENR_STATACTAIDE<2,i>
	W_Ind2 = W_Ind2 + 1
END	
REPEAT
i=0
LOOP
i=i+1
WHILE TabActRef<i> # ""
IF W_TabStat<i> # "" THEN
	* Act prest : on conserve ...
	ENR2<1,W_Ind2> = TabActRef<i>
	ENR2<2,W_Ind2> = W_TabStat<i>
	W_Total = W_Total + W_TabStat<i>
	W_Ind2 = W_Ind2 + 1
END	
REPEAT
WRITE ENR2 ON F.STATACTAIDE, W_DernAide:Asso:Periode
RETURN
200
W_TotalFact = 0
EXECUTE 'SELECT FACTURAIDE AVEC @ID = "[':Asso:'M':Periode:']" PAR-DECR @ID'
	W_TamponCle = ""
	W_Fini = "Faux"
	LOOP
		READNEXT W_Cle ELSE W_Fini = "Vrai"
	WHILE W_Fini = "Faux"
		IF W_Cle[1,25] # W_TamponCle THEN
		* on ne traite pas 2 fois une facture modifiee...
			READ ENR_FACTURAIDE FROM F.FACTURAIDE, W_Cle ELSE STOP
				W_Count = DCOUNT(ENR_FACTURAIDE<2>, CHAR(253))
					FOR i = 1 TO W_Count
						W_Libelle = ENR_FACTURAIDE<2,i>
						IF W_Libelle[1,16] = "FRAIS DE GESTION" THEN
							W_TotalFact = W_TotalFact + ENR_FACTURAIDE<3,i>
						END
					NEXT i
			W_TamponCle = W_Cle[1,25]
		END
	REPEAT
RETURN

