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

***************************
* Ouvertures des fichiers *
***************************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","COMMUNES" TO F.COMMUNES ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "","QUARTIER" TO F.QUARTIER ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "","SOUSSECTEUR" TO F.SOUSSECTEUR ELSE STOP
OPEN "","TABLES" TO F.TABLES 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]
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

GOSUB 200

GOSUB 300

GOSUB 400

GOSUB 500

GOSUB 600

STOP

*********************************
* TRAITEMENT PRESTATAIRE A ET C *
*********************************
100

W_RESULTAT = ""

W_REQUETE = 'SELECT DETAILCALCUL AVEC ConvColContratDetailCalcul # "02" AND AVEC PeriodeDetailCalcul => "':W_PERDEB:'" AND AVEC PeriodeDetailCalcul <= "':W_PERFIN:'" AND AVEC CodAssoContratDetailCalcul = "':W_ASSOC:'" AND AVEC TypePersonnel = "P"'

IF W_TRI # "T" THEN
	IF W_TRI = "S" THEN
	   IF W_CODTRI = "" THEN
		W_REQUETE = W_REQUETE:' PAR LibSectAidant'
         END ELSE
		W_REQUETE = W_REQUETE:' AND AVEC SecteurAidantDetailCalcul = "':W_CODTRI:'"'
         END
	END ELSE
		IF W_TRI = "C" THEN
		   IF W_CODTRI = "" THEN
			W_REQUETE = W_REQUETE:' PAR CommuneAidantDetailCalcul'
	         END ELSE
			W_REQUETE = W_REQUETE:' AND AVEC CommuneAidantDetailCalcul = "':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 NomPrenomAidantDetailCalcul'

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
	CLEAIDANT = ""
	ANCAIDANT = ""
	ANCTRIRUPT = ""
	CLE.DETCAL = ""
	ENR_DETACTIVITES = ""

	SELECT F.DETAILCALCUL TO W_RESULTAT

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

		CLEAIDANT = CLE.DETCAL[1,5]

		READ ENR_DETCALCUL FROM F.DETAILCALCUL,CLE.DETCAL ELSE ENR_DETCALCUL = ""
		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>=ENR_DETACTIVITES<1>
				ENR_TEMPO<2>=ENR_DETACTIVITES<2>
				ENR_TEMPO<3>=NBAIDANT
				WRITE ENR_TEMPO ON F.TEMPO,"DDTE.":ANCTRIRUPT

				NBAIDANT=0
				ENR_DETACTIVITES=""
		      END
		   END

		END


		IF CLEAIDANT # ANCAIDANT THEN
		   NBAIDANT=NBAIDANT+1
            END

		I = 1
		LOOP
		WHILE ENR_DETCALCUL<26,I> # ""
			J = 1
			ACT = "FAUX"
			LOOP
			WHILE ENR_DETACTIVITES<1,J> # "" AND ACT = "FAUX"
				IF ENR_DETACTIVITES<1,J> = ENR_DETCALCUL<26,I> THEN
					ENR_DETACTIVITES<2,J> = ENR_DETACTIVITES<2,J> + ENR_DETCALCUL<25,I>
					ACT = "VRAI"
				END
				J = J + 1
			REPEAT
			IF ACT = "FAUX" THEN
				ENR_DETACTIVITES<1,J> = ENR_DETCALCUL<26,I>
				ENR_DETACTIVITES<2,J> = ENR_DETCALCUL<25,I>
			END
			I = I + 1
		REPEAT

		ANCAIDANT=CLEAIDANT
		ANCTRIRUPT=W_CODETRIRUPT
	REPEAT

	ENR_TEMPO<1>=ENR_DETACTIVITES<1>
	ENR_TEMPO<2>=ENR_DETACTIVITES<2>
	ENR_TEMPO<3>=NBAIDANT
	WRITE ENR_TEMPO ON F.TEMPO,"DDTE.":W_CODETRIRUPT
	NBAIDANT=0
	ENR_DETACTIVITES=""
	
END

RETURN

****************************
* TRAITEMENT PRESTATAIRE B *
****************************
200

W_RESULTAT = ""

W_REQUETE = 'SELECT CONTRAT AVEC 65 = "" AND AVEC 2 = "':W_ASSOC:'" AND AVEC 6 = "P" AND AVEC 1 # "02"'

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

W_REQUETE = W_REQUETE:'AND AVEC 7 <= "':DATEFIN:'" AND AVEC 8 => "':DATEFIN:'" OR = ""'

IF W_TRI # "T" THEN
	IF W_TRI = "S" THEN
		W_REQUETE = W_REQUETE:' PAR LibSecteurContrat'
	END ELSE
		IF W_TRI = "C" THEN
			W_REQUETE = W_REQUETE:' PAR LibCommuneAidant'
		END ELSE
			IF W_TRI = "D" THEN
				W_REQUETE = W_REQUETE:' PAR DeptSecteurAidant'
			END
		END
	END
END

W_REQUETE = W_REQUETE:' PAR NomPrenomAidantContrat'

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

IF MSGCODE<1> # 209 THEN

	W_FINI = "FAUX"	
	ANCTRIRUPT = ""
	CLEAIDANT = ""
	ANCAIDANT = ""
	CLECONT = ""
	NBTOT = 0
	NBCDD = 0
	NBCDI = 0
	NB30 = 0
	NB50 = 0
	NBFEM = 0
	NBHOM = 0

	SELECT F.CONTRAT TO W_RESULTAT

	LOOP
		READNEXT CLECONT FROM W_RESULTAT ELSE W_FINI="VRAI"
		CLEAIDANT = CLECONT[1,5]
	WHILE W_FINI = "FAUX"
		READ ENR_CONTRAT FROM F.CONTRAT,CLECONT ELSE ENR_CONTRAT = ""
		READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,CLEAIDANT ELSE ENR_CIVILAIDANT = ""

		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
			      READ ENR_TEMPO FROM F.TEMPO,"DDTE.":ANCTRIRUPT ELSE ENR_TEMPO = ""
				ENR_TEMPO<4>=NBTOT 
				ENR_TEMPO<5>=NBCDI 
				ENR_TEMPO<6>= NBCDD
				ENR_TEMPO<7>=NB30 
				ENR_TEMPO<8>=NB50 
				ENR_TEMPO<9>=NBFEM
				ENR_TEMPO<10>=NBHOM
				WRITE ENR_TEMPO ON F.TEMPO,"DDTE.":ANCTRIRUPT
				NBTOT=0
				NBCDD=0 
				NBCDI=0 
				NB30=0 
				NB50=0 
				NBFEM=0
				NBHOM=0
		      END
		   END

		END

		IF ANCAIDANT # CLEAIDANT THEN
			NBTOT = NBTOT + 1
		END

		IF ENR_CONTRAT<4> = "D" THEN
			NBCDD = NBCDD + 1
		END ELSE
			NBCDI = NBCDI + 1
		END

		DATNAIS = ENR_CIVILAIDANT<26>
		DATJOUR = DATE()
		AGE = DATJOUR - DATNAIS
		AGE = (AGE/365)
		
		IF AGE < 30 THEN
			NB30 = NB30 + 1
		END ELSE
			IF AGE > 50 THEN
				NB50 = NB50 + 1
			END
		END

		IF ENR_CIVILAIDANT<16> = "F" THEN
			NBFEM = NBFEM + 1
		END ELSE
			NBHOM = NBHOM + 1
		END

		ANCAIDANT=CLEAIDANT
		ANCTRIRUPT=W_CODETRIRUPT

	REPEAT

      READ ENR_TEMPO FROM F.TEMPO,"DDTE.":W_CODETRIRUPT ELSE ENR_TEMPO = ""
	ENR_TEMPO<4>=NBTOT 
	ENR_TEMPO<5>=NBCDI 
	ENR_TEMPO<6>=NBCDD
	ENR_TEMPO<7>=NB30 
	ENR_TEMPO<8>=NB50 
	ENR_TEMPO<9>=NBFEM
	ENR_TEMPO<10>=NBHOM
	WRITE ENR_TEMPO ON F.TEMPO,"DDTE.":W_CODETRIRUPT
	NBTOT=0
	NBCDD=0 
	NBCDI=0 
	NB30=0 
	NB50=0 
	NBFEM=0
	NBHOM=0

END

RETURN

*********************************
* TRAITEEMENT MANDATAIRE A AT B *
*********************************
300


W_RESULTAT = ""
W_REQUETE = 'SELECT DETAILCALCUL AVEC ConvColContratDetailCalcul = "02" AND AVEC PeriodeDetailCalcul => "':W_PERDEB:'" AND AVEC PeriodeDetailCalcul <= "':W_PERFIN:'" AND AVEC CodAssoContratDetailCalcul = "':W_ASSOC:'" AND AVEC TypePersonnel = "P"'

IF W_TRI # "T" THEN
	IF W_TRI = "S" THEN
	   IF W_CODTRI = "" THEN
		W_REQUETE = W_REQUETE:' PAR NomSectDetailCalcul'
         END ELSE
		W_REQUETE = W_REQUETE:' AND AVEC SecteurAideDetailCalcul = "':W_CODTRI:'"'
         END
	END ELSE
		IF W_TRI = "C" THEN
		   IF W_CODTRI = "" THEN
			W_REQUETE = W_REQUETE:' PAR CommuneAideDetailCalcul'
	         END ELSE
			W_REQUETE = W_REQUETE:' AND AVEC CommuneAideDetailCalcul = "':W_LIBTRI:'"'
		   END
		END ELSE
			IF W_TRI = "D" THEN
			   IF W_CODTRI = "" THEN
				W_REQUETE = W_REQUETE:' PAR DeptSecteurAide'
		         END ELSE
				W_REQUETE = W_REQUETE:' AND AVEC DeptSecteurAide = "':W_CODTRI:'"'
			   END
			END
		END
	END
END

W_REQUETE = W_REQUETE:' PAR NomPrenomAideDetailCalcul'

EXECUTE W_REQUETE

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

IF MSGCODE<1> # 209 THEN

	W_FINI = "FAUX"	
	J = 0
	NBAIDE = 0
	W_CLEAIDE = ""
	ANCAIDE = ""
	CLE.DETCAL = ""
	CLECONT = ""
	ANCTRIRUPT = ""
	ENR_DETACTIVITES = ""

	SELECT F.DETAILCALCUL TO W_RESULTAT

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

		CLECONT = CLE.DETCAL[1,8]
		READ ENR_CONTRAT FROM F.CONTRAT,CLECONT ELSE ENR_CONTRAT = ""

		READ ENR_DETCALCUL FROM F.DETAILCALCUL,CLE.DETCAL ELSE ENR_DETCALCUL = ""
	      W_CLEAIDE=ENR_CONTRAT<3>

		IF W_TRI # "T" AND W_CODTRI = "" THEN
		   READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CLEAIDE ELSE ENR_CIVILAIDE = ""
               W_CODESECTEUR=ENR_CIVILAIDE<40>
		   W_CODESECTEUR=W_CODESECTEUR[1,3]
		   BEGIN CASE
			CASE W_TRI="S"
			   READ ENR_SECTEUR FROM F.SECTEUR,W_CODESECTEUR ELSE ENR_SECTEUR = ""
			   W_CODETRIRUPT=ENR_SECTEUR<1>:W_CODESECTEUR
			   W_CODETRIRUPT=CONVERT(" " ,"_",W_CODETRIRUPT)
			CASE W_TRI="C"
			   W_CODETRIRUPT=ENR_CIVILAIDE<11>
			   W_CODETRIRUPT=CONVERT(" " ,"_",W_CODETRIRUPT)
			CASE W_TRI="D"
			   READ ENR_SECTEUR FROM F.SECTEUR,W_CODESECTEUR ELSE ENR_SECTEUR = ""
			   W_CODETRIRUPT=ENR_SECTEUR<21>
		   END CASE		   
		   IF ANCTRIRUPT # "" THEN
		      IF W_CODETRIRUPT # ANCTRIRUPT THEN
			      READ ENR_TEMPO FROM F.TEMPO,"DDTE.":ANCTRIRUPT ELSE ENR_TEMPO = ""
				ENR_TEMPO<11>=ENR_DETACTIVITES<1>
				ENR_TEMPO<12>=ENR_DETACTIVITES<2>
				ENR_TEMPO<13>=NBAIDE
				WRITE ENR_TEMPO ON F.TEMPO,"DDTE.":ANCTRIRUPT

				NBAIDE=0
				ENR_DETACTIVITES=""
		      END
		   END
		END

		IF ANCAIDE # W_CLEAIDE THEN
			NBAIDE = NBAIDE + 1
		END

		I = 1
		LOOP
		WHILE ENR_DETCALCUL<25,I> # ""
			J = 1
			ACT = "FAUX"
			LOOP
			WHILE ENR_DETACTIVITES<1,J> # "" AND ACT = "FAUX"
				IF ENR_DETACTIVITES<1,J> = ENR_DETCALCUL<26,I> THEN
					ENR_DETACTIVITES<2,J> = ENR_DETACTIVITES<2,J> + ENR_DETCALCUL<25,I>
					ACT = "VRAI"
				END
				J = J + 1
			REPEAT
			IF ACT = "FAUX" THEN
				ENR_DETACTIVITES<1,J> = ENR_DETCALCUL<26,I>
				ENR_DETACTIVITES<2,J> = ENR_DETCALCUL<25,I>
			END
			I = I + 1
		REPEAT

		ANCAIDE = W_CLEAIDE
		ANCTRIRUPT=W_CODETRIRUPT
	REPEAT

      READ ENR_TEMPO FROM F.TEMPO,"DDTE.":W_CODETRIRUPT ELSE ENR_TEMPO = ""
	ENR_TEMPO<11>=ENR_DETACTIVITES<1>
	ENR_TEMPO<12>=ENR_DETACTIVITES<2>
	ENR_TEMPO<13>=NBAIDE
	WRITE ENR_TEMPO ON F.TEMPO,"DDTE.":W_CODETRIRUPT
	NBAIDE=0
	ENR_DETACTIVITES=""

END


RETURN

****************************
* TRAITEMENT MANDATAIRE C1 *
****************************
400

W_RESULTAT = ""

W_REQUETE = 'SELECT CONTRAT AVEC 65 = "" AND AVEC 2 = "':W_ASSOC:'" AND AVEC 6 = "P" AND AVEC 1 = "02"'

IF W_CODTRI # "" AND W_TRI # "T" THEN
	IF W_TRI = "S" THEN
		W_REQUETE = W_REQUETE:' AND AVEC CodSecteurContratAide = "':W_CODTRI:'"'
	END ELSE
		IF W_TRI = "C" THEN
			W_REQUETE = W_REQUETE:' AND AVEC LibCommuneAide = "':W_LIBTRI:'"'
		END ELSE
			IF W_TRI = "D" THEN
				W_REQUETE = W_REQUETE:' AND AVEC DeptSecteurAide = "':W_CODTRI:'"'
			END
		END
	END
END

W_REQUETE = W_REQUETE:'AND AVEC 7 <= "':DATEFIN:'" AND AVEC 8 => "':DATEFIN:'" OR = ""'

IF W_TRI # "T" THEN
	IF W_TRI = "S" THEN
		W_REQUETE = W_REQUETE:' PAR LibSecteurEmployeur'
	END ELSE
		IF W_TRI = "C" THEN
			W_REQUETE = W_REQUETE:' PAR LibCommuneAide'
		END ELSE
			IF W_TRI = "D" THEN
				W_REQUETE = W_REQUETE:' PAR DeptSecteurAide'
			END
		END
	END
END

W_REQUETE = W_REQUETE:' PAR NomPrenomAidantContrat'

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

IF MSGCODE<1> # 209 THEN

	W_FINI = "FAUX"	

	CLEAIDANT = ""
	ANCAIDANT = ""
	ANCTRIRUPT = ""
	CLECONT = ""
	NBTOT = 0

	SELECT F.CONTRAT TO W_RESULTAT

	LOOP
		READNEXT CLECONT FROM W_RESULTAT ELSE W_FINI="VRAI"
	WHILE W_FINI = "FAUX"

		CLEAIDANT = CLECONT[1,5]
		READ ENR_CONTRAT FROM F.CONTRAT,CLECONT ELSE ENR_CONTRAT = ""

		IF W_TRI # "T" AND W_CODTRI = "" THEN
		   W_CLEAIDE=ENR_CONTRAT<3>
		   READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CLEAIDE ELSE ENR_CIVILAIDE = ""
               W_CODESECTEUR=ENR_CIVILAIDE<40>
		   W_CODESECTEUR=W_CODESECTEUR[1,3]
		   BEGIN CASE
			CASE W_TRI="S"
			   READ ENR_SECTEUR FROM F.SECTEUR,W_CODESECTEUR ELSE ENR_SECTEUR = ""
			   W_CODETRIRUPT=ENR_SECTEUR<1>:W_CODESECTEUR
			   W_CODETRIRUPT=CONVERT(" " ,"_",W_CODETRIRUPT)
			CASE W_TRI="C"
			   W_CODETRIRUPT=ENR_CIVILAIDE<11>
			   W_CODETRIRUPT=CONVERT(" " ,"_",W_CODETRIRUPT)
			CASE W_TRI="D"
			   READ ENR_SECTEUR FROM F.SECTEUR,W_CODESECTEUR ELSE ENR_SECTEUR = ""
			   W_CODETRIRUPT=ENR_SECTEUR<21>
		   END CASE		   
		   IF ANCTRIRUPT # "" THEN
		      IF W_CODETRIRUPT # ANCTRIRUPT THEN
			      READ ENR_TEMPO FROM F.TEMPO,"DDTE.":ANCTRIRUPT ELSE ENR_TEMPO = ""
				ENR_TEMPO<14>=NBTOT
				WRITE ENR_TEMPO ON F.TEMPO,"DDTE.":ANCTRIRUPT

				NBTOT=0
		      END
		   END
		END


		IF ANCAIDANT # CLEAIDANT THEN
			NBTOT = NBTOT + 1
			ANCAIDANT = CLEAIDANT
		END
		ANCTRIRUPT=W_CODETRIRUPT

	REPEAT

      READ ENR_TEMPO FROM F.TEMPO,"DDTE.":W_CODETRIRUPT ELSE ENR_TEMPO = ""
	ENR_TEMPO<14>=NBTOT
	WRITE ENR_TEMPO ON F.TEMPO,"DDTE.":W_CODETRIRUPT
	NBTOT=0


END

RETURN

***************************
* TRAITEMENT MADATAIRE C2 *
***************************
500

W_RESULTAT = ""

W_REQUETE = 'SELECT DETAILCALCUL AVEC ConvColContratDetailCalcul = "02" AND AVEC PeriodeDetailCalcul => "':W_PERDEB:'" AND AVEC PeriodeDetailCalcul <= "':W_PERFIN:'" AND AVEC CodAssoContratDetailCalcul = "':W_ASSOC:'" AND AVEC TypePersonnel = "P"'

IF W_CODTRI = "" AND W_TRI # "T" THEN
	IF W_TRI = "S" THEN
		W_REQUETE = W_REQUETE:' PAR NomSectDetailCalcul'
	END ELSE
		IF W_TRI = "C" THEN
			W_REQUETE = W_REQUETE:' PAR CommuneAideDetailCalcul'
		END ELSE
			IF W_TRI = "D" THEN
				W_REQUETE = W_REQUETE:' PAR DeptSecteurAide'
			END
		END
	END
END ELSE
   IF W_TRI # "T" THEN
	IF W_TRI = "S" THEN
		W_REQUETE = W_REQUETE:' AND AVEC SecteurAideDetailCalcul = "':W_CODTRI:'"'
	END ELSE
		IF W_TRI = "C" THEN
			W_REQUETE = W_REQUETE:' AND AVEC CommuneAideDetailCalcul = "':W_LIBTRI:'"'
		END ELSE
			IF W_TRI = "D" THEN
				W_REQUETE = W_REQUETE:' AND AVEC DeptSecteurAide = "':W_CODTRI:'"'
			END
		END
	END
   END
END

W_REQUETE = W_REQUETE:' PAR NomPrenomAidantDetailCalcul'

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

IF MSGCODE<1> # 209 THEN

	W_FINI = "FAUX"
	CLEAIDANT = ""
	ANCAIDANT = ""
	ANCTRIRUPT = ""
	CLECONT = ""
	NBTOT = 0

	SELECT F.DETAILCALCUL TO W_RESULTAT

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

		CLECONT = CLE.DETCAL[1,8]
		READ ENR_CONTRAT FROM F.CONTRAT,CLECONT ELSE ENR_CONTRAT = ""
		CLEAIDANT=CLECONT[1,5]

		IF W_TRI # "T" AND W_CODTRI = "" THEN
		   W_CLEAIDE=ENR_CONTRAT<3>
		   READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CLEAIDE ELSE ENR_CIVILAIDE = ""
               W_CODESECTEUR=ENR_CIVILAIDE<40>
		   W_CODESECTEUR=W_CODESECTEUR[1,3]
		   BEGIN CASE
			CASE W_TRI="S"
			   READ ENR_SECTEUR FROM F.SECTEUR,W_CODESECTEUR ELSE ENR_SECTEUR = ""
			   W_CODETRIRUPT=ENR_SECTEUR<1>:W_CODESECTEUR
			   W_CODETRIRUPT=CONVERT(" " ,"_",W_CODETRIRUPT)
			CASE W_TRI="C"
			   W_CODETRIRUPT=ENR_CIVILAIDE<11>
			   W_CODETRIRUPT=CONVERT(" " ,"_",W_CODETRIRUPT)
			CASE W_TRI="D"
			   READ ENR_SECTEUR FROM F.SECTEUR,W_CODESECTEUR ELSE ENR_SECTEUR = ""
			   W_CODETRIRUPT=ENR_SECTEUR<21>
		   END CASE		   
		   IF ANCTRIRUPT # "" THEN
		      IF W_CODETRIRUPT # ANCTRIRUPT THEN
			      READ ENR_TEMPO FROM F.TEMPO,"DDTE.":ANCTRIRUPT ELSE ENR_TEMPO = ""
				ENR_TEMPO<15>=NBTOT
				WRITE ENR_TEMPO ON F.TEMPO,"DDTE.":ANCTRIRUPT

				NBTOT=0
		      END
		   END
		END

		IF ANCAIDANT # CLEAIDANT THEN
			NBTOT = NBTOT + 1
			ANCAIDANT = CLEAIDANT
		END
		ANCTRIRUPT=W_CODETRIRUPT

	REPEAT

      READ ENR_TEMPO FROM F.TEMPO,"DDTE.":W_CODETRIRUPT ELSE ENR_TEMPO = ""
	ENR_TEMPO<15>=NBTOT
	WRITE ENR_TEMPO ON F.TEMPO,"DDTE.":W_CODETRIRUPT
	NBTOT=0


END

RETURN

*********************
* TRAITEMENT GLOBAL *
*********************
600

W_RESULTAT = ""

W_REQUETE = 'SELECT DETAILCALCUL AVEC PeriodeDetailCalcul => "':W_PERDEB:'" AND AVEC PeriodeDetailCalcul <= "':W_PERFIN:'" AND AVEC CodAssoContratDetailCalcul = "':W_ASSOC:'" AND AVEC TypePersonnel = "P"'

IF W_CODTRI = "" AND W_TRI # "T" THEN
	IF W_TRI = "S" THEN
		W_REQUETE = W_REQUETE:' PAR LibSectAidant'
	END ELSE
		IF W_TRI = "C" THEN
			W_REQUETE = W_REQUETE:' PAR CommuneAidantDetailCalcul'
		END ELSE
			IF W_TRI = "D" THEN
				W_REQUETE = W_REQUETE:' PAR DeptSecteurAidant'
			END
		END
	END
END ELSE
IF W_TRI # "T" THEN
	IF W_TRI = "S" THEN
		W_REQUETE = W_REQUETE:' AND AVEC SecteurAidantDetailCalcul = "':W_CODTRI:'"'
	END ELSE
		IF W_TRI = "C" THEN
			W_REQUETE = W_REQUETE:' AND AVEC CommuneAidantDetailCalcul = "':W_LIBTRI:'"'
		END ELSE
			IF W_TRI = "D" THEN
				W_REQUETE = W_REQUETE:' AND AVEC DeptSecteurAidant = "':W_CODTRI:'"'
			END
		END
	END
END
END

W_REQUETE = W_REQUETE:' PAR NomPrenomAidantDetailCalcul'

EXECUTE W_REQUETE

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

IF MSGCODE<1> # 209 THEN

	W_FINI = "FAUX"
	CLEAIDANT = ""
	ANCAIDANT = ""
	ANCTRIRUPT = ""
	CLECONT = ""
	NBTOT = 0
	NBPREST = 0
	NBMAND = 0
	PREST = "FAUX"
	MAND = "FAUX"

	SELECT F.DETAILCALCUL TO W_RESULTAT

	LOOP
		READNEXT CLE.DETCAL FROM W_RESULTAT ELSE W_FINI="VRAI"
	WHILE W_FINI = "FAUX"
		CLEAIDANT = CLE.DETCAL[1,5]
		CLECONT = CLE.DETCAL[1,8]

		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
				IF PREST = "VRAI" AND MAND = "VRAI" THEN
					NBTOT = NBTOT + 1
				END ELSE
					IF MAND = "VRAI" THEN
						NBMAND = NBMAND + 1
					END ELSE
						IF PREST = "VRAI" THEN
							NBPREST = NBPREST + 1
						END
					END
				END

			      READ ENR_TEMPO FROM F.TEMPO,"DDTE.":ANCTRIRUPT ELSE ENR_TEMPO = ""
				ENR_TEMPO<16>=NBPREST 
				ENR_TEMPO<17>=NBMAND 
				ENR_TEMPO<18>=NBTOT 
				WRITE ENR_TEMPO ON F.TEMPO,"DDTE.":ANCTRIRUPT
				NBPREST=0
				NBMAND=0 
				NBTOT=0
				PREST = "FAUX"
				MAND = "FAUX"
		      END
		   END

		END

		IF ANCAIDANT # "" THEN
		   IF ANCAIDANT # CLEAIDANT THEN

			IF PREST = "VRAI" AND MAND = "VRAI" THEN
				NBTOT = NBTOT + 1
			END ELSE
				IF MAND = "VRAI" THEN
					NBMAND = NBMAND + 1
				END ELSE
					IF PREST = "VRAI" THEN
						NBPREST = NBPREST + 1
					END
				END
			END

			PREST = "FAUX"
			MAND = "FAUX"

		   END
		END

		READ ENR_CONTRAT FROM F.CONTRAT,CLECONT ELSE ENR_CONTRAT = ""
		IF ENR_CONTRAT<1> = "02" THEN
                MAND = "VRAI"
            END ELSE
                PREST = "VRAI"
            END

		ANCAIDANT = CLEAIDANT
		ANCTRIRUPT=W_CODETRIRUPT
		
	REPEAT

	IF PREST = "VRAI" AND MAND = "VRAI" THEN
		NBTOT = NBTOT + 1
	END ELSE
		IF MAND = "VRAI" THEN
			NBMAND = NBMAND + 1
		END ELSE
			IF PREST = "VRAI" THEN
				NBPREST = NBPREST + 1
			END
		END
	END

	READ ENR_TEMPO FROM F.TEMPO,"DDTE.":W_CODETRIRUPT ELSE ENR_TEMPO = ""
	ENR_TEMPO<16>=NBPREST 
	ENR_TEMPO<17>=NBMAND 
	ENR_TEMPO<18>=NBTOT 
	WRITE ENR_TEMPO ON F.TEMPO,"DDTE.":W_CODETRIRUPT
	NBPREST=0
	NBMAND=0 
	NBTOT=0 
	PREST = "FAUX"
	MAND = "FAUX"
END


RETURN


