***********************
* genere la stat DDTE *
* 12/02/2003 ALAIN    *
***********************

***************************
* Ouvertures des fichiers *
***************************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "","COMMUNES" TO F.COMMUNES ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","DETAILINTER" TO F.DETAILINTER ELSE STOP
OPEN "","MISSIONSAIDANT" TO F.MISSIONSAIDANT ELSE STOP
OPEN "","RUBSAISIE" TO F.RUBSAISIE ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP

******************************
* Recuperation des arguments *
******************************

PROCREAD ARGUMENTS ELSE PRINT "Procread"

W_ASSOC = FIELD(ARGUMENTS,"|",2)
W_TRI = FIELD(ARGUMENTS,"|",3)
W_CODTRI = FIELD(ARGUMENTS,"|",4)
W_LIBTRI = FIELD(ARGUMENTS,"|",5)
W_PERDEB = FIELD(ARGUMENTS,"|",6)
W_PERFIN = FIELD(ARGUMENTS,"|",7)

*********************
* TRAITEMENT GLOBAL *
*********************

READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_ASSOC ELSE ENR_ASSOCIATION = ""
AGREMENT = ENR_ASSOCIATION<23>
ENR_TEMPO=""


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

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

MOIS = MOIS + 1	

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

MOIS = MOIS "R(%2)"

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

IF W_TRI = "T" THEN
   W_CODETRIRUPT=W_TRI
END ELSE
   IF W_CODTRI # "" AND W_TRI # "C" THEN
	W_CODETRIRUPT=W_TRI:W_CODTRI
   END ELSE
	W_CODETRIRUPT=W_TRI:W_LIBTRI
   END 
END

GOSUB 100

STOP

****************************
* TRAITEMENT INTERMEDIAIRE *
****************************
100

W_RESULTAT = ""

W_REQUETE = 'SELECT DETAILINTER AVEC PeriodeDetailInter => "':W_PERDEB:'" AND AVEC PeriodeDetailInter <= "':W_PERFIN:'" AND AVEC CodAssoContrat = "':W_ASSOC:'"'

IF W_TRI # "T" THEN
	IF W_TRI = "S" THEN
	   IF W_CODTRI = "" THEN
		W_REQUETE = W_REQUETE:' PAR LibSecteurAidant'
         END ELSE
		W_REQUETE = W_REQUETE:' AND AVEC SecteurInter = "':W_CODTRI:'"'
         END
	END ELSE
		IF W_TRI = "C" THEN
		   IF W_CODTRI = "" THEN
			W_REQUETE = W_REQUETE:' PAR LibCommuneAidant'
	         END ELSE
			W_REQUETE = W_REQUETE:' AND AVEC LibCommuneAidant = "':W_LIBTRI:'"'
		   END
		END ELSE
			IF W_TRI = "D" THEN
			   IF W_CODTRI = "" THEN
				W_REQUETE = W_REQUETE:' PAR DeptSecteurAidant'
		         END ELSE
				W_REQUETE = W_REQUETE:' AND AVEC DeptSecteurAidant = "':W_CODTRI:'"'
			   END
			END
		END
	END
END

W_REQUETE = W_REQUETE:' PAR NomAidant PAR PrenomAidant'

EXECUTE W_REQUETE
EXECUTE 'SAUVE-LISTE W_RESULTAT' 
EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE

IF MSGCODE<1> # 209 THEN

	W_FINI = "FAUX"	
	J = 0
	NBAIDANT = 0
	FINMOIS = "FAUX"
	W_TOTINTER = 0
	W_TOTFINMOIS = 0
	W_TOTHEURE = 0
	CLEAIDANT = ""
	ANCAIDANT = ""
	ANCTRIRUPT = ""
	CLE.DETINTER = ""

	SELECT F.DETAILINTER TO W_RESULTAT

	LOOP
		READNEXT CLE.DETINTER FROM W_RESULTAT ELSE W_FINI="VRAI"
	WHILE W_FINI = "FAUX"

		CLEAIDANT = CLE.DETINTER[1,5]

		READ ENR_DETINTER FROM F.DETAILINTER,CLE.DETINTER ELSE ENR_DETINTER = ""
		IF W_TRI # "T" AND W_CODTRI = "" THEN
		   READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,CLEAIDANT ELSE ENR_CIVILAIDANT = ""
		   BEGIN CASE
			CASE W_TRI="S"
			   READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR = ""
			   W_CODETRIRUPT=ENR_SECTEUR<1>:ENR_CIVILAIDANT<31>
			   W_CODETRIRUPT=CONVERT(" " ,"_",W_CODETRIRUPT)
			CASE W_TRI="C"
			   W_CODETRIRUPT=ENR_CIVILAIDANT<11>
			   W_CODETRIRUPT=CONVERT(" " ,"_",W_CODETRIRUPT)
			CASE W_TRI="D"
			   READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR = ""
			   W_CODETRIRUPT=ENR_SECTEUR<21>
		   END CASE		   
		   IF ANCTRIRUPT # "" THEN
		      IF W_CODETRIRUPT # ANCTRIRUPT THEN
				ENR_TEMPO<1> = W_TOTFINMOIS
				ENR_TEMPO<2> = NBAIDANT
				ENR_TEMPO<3> = W_TOTINTER
				W_TOTHEURE = W_TOTHEURE + W_NBHEURE
				W_TOTHEURE = (W_TOTHEURE/100)
				W_TOTHEURE = W_TOTHEURE "R2"
				ENR_TEMPO<4> = W_TOTHEURE
				WRITE ENR_TEMPO ON F.TEMPO,"DDTEINTER.":ANCTRIRUPT

				W_TOTFINMOIS=0
				NBAIDANT=0
				W_TOTINTER=0
				W_TOTHEURE=0
				W_NBHEURE = 0
				FINMOIS = "FAUX"
		      END
		   END
		END


		IF CLEAIDANT # ANCAIDANT THEN
		   	NBAIDANT=NBAIDANT+1
			READ ENR_MISSIONSAIDANT FROM F.MISSIONSAIDANT,CLEAIDANT ELSE ENR_MISSIONSAIDANT = ""
			I = 1
			W_INTER = 0
			FINMOIS = "FAUX"
			LOOP
			WHILE ENR_MISSIONSAIDANT<1,I> # "" DO
				IF (ENR_MISSIONSAIDANT<13,I> = W_ASSOC AND ENR_MISSIONSAIDANT<2,I> <= DATEFIN AND ENR_MISSIONSAIDANT<3,I> => DATEDEB) OR (ENR_MISSIONSAIDANT<13,I> = W_ASSOC AND ENR_MISSIONSAIDANT<2,I> <= DATEFIN AND ENR_MISSIONSAIDANT<3,I> = "") THEN
					W_INTER = W_INTER + 1
					IF ENR_MISSIONSAIDANT<3,I> > DATEFIN OR ENR_MISSIONSAIDANT<3,I> = "" THEN
						FINMOIS = "VRAI"
					END
				END
				I = I + 1
			REPEAT
			W_TOTINTER = W_TOTINTER + W_INTER
			IF FINMOIS = "VRAI" THEN
				W_TOTFINMOIS = W_TOTFINMOIS + 1
			END
			W_TOTHEURE = W_TOTHEURE + W_NBHEURE
			W_NBHEURE = 0
            END

		I = 1
		
		LOOP
		WHILE ENR_DETINTER<1,I> # "" DO
			READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETINTER<1,I> ELSE ENR_RUBSAISIE = ""
			IF ENR_RUBSAISIE<2> = "3" OR ENR_RUBSAISIE<2> = "4" THEN
				W_NBHEURE = W_NBHEURE + ENR_DETINTER<2,I>
			END
			I = I + 1
		REPEAT

		ANCAIDANT=CLEAIDANT
		ANCTRIRUPT=W_CODETRIRUPT
	REPEAT

	ENR_TEMPO<1> = W_TOTFINMOIS
	ENR_TEMPO<2> = NBAIDANT
	ENR_TEMPO<3> = W_TOTINTER
	W_TOTHEURE = W_TOTHEURE + W_NBHEURE
	W_TOTHEURE = (W_TOTHEURE/100)
	W_TOTHEURE = W_TOTHEURE "R2"
	ENR_TEMPO<4> = W_TOTHEURE
	WRITE ENR_TEMPO ON F.TEMPO,"DDTEINTER.":ANCTRIRUPT

	W_TOTFINMOIS=0
	NBAIDANT=0
	W_TOTINTER=0
	W_TOTHEURE=0
	FINMOIS = "FAUX"
	
END

RETURN


