********************************************************
* PROGRAMME DE TRAITEMENT DES STAT AIDANTS NB DOSSIERS *
*                                                      *
*  ALAIN                                  MARS 2002    *
********************************************************

***************************
* Ouvertures des fichiers *
***************************
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE PRINT "ASSOCIATION"
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "CIVILAIDANT"
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "CIVILAIDE"
OPEN "","CONTRAT" TO F.CONTRAT ELSE PRINT "CONTRAT"
OPEN "","ETABLISSEMENT" TO F.ETABLISSEMENT ELSE PRINT "ETABLISSEMENT"
OPEN "","SECTEUR" TO F.SECTEUR ELSE PRINT "SECTEUR"
OPEN "","STATAIDANT" TO F.STATAIDANT ELSE PRINT "STATAIDANT"
OPEN "","TABLES" TO F.TABLES ELSE PRINT "TABLES"
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "TEMPO"
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"

******************************
* Recuperation des arguments *
******************************
PROCREAD ARGUMENTS ELSE PRINT "Procread"

W_ASSOC=FIELD(ARGUMENTS,"|",2)
W_TYPEACTIVITE=FIELD(ARGUMENTS,"|",3)
W_TYPEPERS=FIELD(ARGUMENTS,"|",4)
W_TYPESELECTION=FIELD(ARGUMENTS,"|",5)
W_CODESELECTION=FIELD(ARGUMENTS,"|",6)
W_TYPEDATE=FIELD(ARGUMENTS,"|",7)
W_DEBUT=FIELD(ARGUMENTS,"|",8)
W_FIN=FIELD(ARGUMENTS,"|",9)
W_TYPEECLAT=FIELD(ARGUMENTS,"|",10)
W_TYPEEDITION=FIELD(ARGUMENTS,"|",11)
W_UTILISATEUR=FIELD(ARGUMENTS,"|",12)


*********************
* TRAITEMENT GLOBAL *
*********************
W_RESULTAT = ""
ENR_STAT = ""
W_DEBUTPERIODE=W_DEBUT
W_FINPERIODE=W_FIN
W_CODASSOCIATION=W_ASSOC
IF W_TYPEEDITION = "L" THEN
	LIMP = 49
END ELSE
	LIMP = 30
END

*EXECUTE 'COMO ON STATTEXTE'

W_DEBUT=ICONV("01/":W_DEBUT[5,2]:"/":W_DEBUT[1,4],"D4/")


W_MOISFIN = W_FIN[5,2] + 1
W_ANNEEFIN = W_FIN[1,4]
IF W_MOISFIN = "13" THEN
	W_MOISFIN = "01"
	W_ANNEEFIN = W_ANNEEFIN + 1
END

W_FIN=ICONV("01/":W_MOISFIN:"/":W_ANNEEFIN,"D4/")
W_FIN=W_FIN-1

W_REQUETE = ""
W_SELECTION=""

IF W_TYPEDATE = "A" THEN
	W_REQUETE = 'AVEC 7 <= "':W_FIN:'" AND AVEC 8 >= "':W_DEBUT:'" OR = ""'
END ELSE
	IF W_TYPEDATE = "D" THEN
		W_REQUETE = 'AVEC 7 <= "':W_FIN:'" AND AVEC 7 >= "':W_DEBUT:'"'
	END ELSE
		W_REQUETE = 'AVEC 8 <= "':W_FIN:'" AND AVEC 8 >= "':W_DEBUT:'"'
	END
END

W_REQUETE = W_REQUETE:' AND AVEC 2 = "':W_ASSOC:'" AND AVEC 65 <> "O"'

IF W_TYPEACTIVITE = "M" THEN
	W_REQUETE = W_REQUETE:' AND AVEC 1 = "02"'
	IF W_TYPEDATE = "D" THEN
		W_REQUETE = W_REQUETE:' AND AVEC DateEntreMand => "':W_DEBUT:'" AND AVEC DateEntreMand <= "':W_FIN:'"'
	END ELSE
		IF W_TYPEDATE = "F" THEN
			W_REQUETE = W_REQUETE:' AND AVEC DateSortieFichier => "':W_DEBUT:'" AND AVEC DateSortieFichier <= "':W_FIN:'"'
		END
	END
END ELSE
	W_REQUETE = W_REQUETE:' AND AVEC 1 # "02"'
END

IF W_CODESELECTION # "" THEN
	IF W_TYPESELECTION = "S" THEN
		W_REQUETE = W_REQUETE:' AND AVEC SecteurContrat = "':W_CODESELECTION:'"'
	END ELSE
		IF W_TYPESELECTION = "C" THEN
			W_REQUETE = W_REQUETE:' AND AVEC LibCommuneAidant = "':W_CODESELECTION:'"'
		END ELSE
			IF W_TYPESELECTION = "Q" THEN
				W_REQUETE = W_REQUETE:' AND AVEC DernQualifProf = "':W_CODESELECTION:'"'
			END
		END
	END
END

IF W_TYPEACTIVITE = "I" THEN
	W_REQUETE = W_REQUETE:' AND AVEC TypeActivite = "I"'
	IF W_TYPEPERS = "A" THEN
		W_REQUETE = W_REQUETE:' AND AVEC 6 = "A"'
	END ELSE
		IF W_TYPEPERS = "P" THEN
			W_REQUETE = W_REQUETE:' AND AVEC 6 = "P"'
		END
	END
END ELSE
	IF W_TYPEACTIVITE = "S" THEN
		IF W_TYPEPERS = "A" THEN
			W_REQUETE = W_REQUETE:' AND AVEC 6 = "A" AND AVEC TypeActivite1 = "S"'
		END ELSE
			IF W_TYPEPERS = "P" THEN
				W_REQUETE = W_REQUETE:' AND AVEC 6 = "P" AND AVEC TypeActivite = "S"'
			END ELSE
				W_REQUETE = W_REQUETE:' AND AVEC 6 = "P" AND AVEC TypeActivite = "S" OR ':W_REQUETE:' AND AVEC 6 = "A" AND AVEC TypeActivite1 = "S"'
			END
		END
	END ELSE
		IF W_TYPEACTIVITE = "P" THEN
			IF W_TYPEPERS = "A" THEN
				W_REQUETE = W_REQUETE:' AND AVEC 6 = "A" AND AVEC TypeActivite1 = "P"'
			END ELSE
				IF W_TYPEPERS = "P" THEN
					W_REQUETE = W_REQUETE:' AND AVEC 6 = "P" AND AVEC TypeActivite = "P"'
				END ELSE
					W_REQUETE = W_REQUETE:' AND AVEC 6 = "P" AND AVEC TypeActivite = "P" OR ':W_REQUETE:' AND AVEC 6 = "A" AND AVEC TypeActivite1 = "P"'
				END
			END
		END ELSE
			IF W_TYPEPERS = "A" THEN
				W_REQUETE = W_REQUETE:' AND AVEC 6 = "A"'
			END ELSE
				IF W_TYPEPERS = "P" THEN
					W_REQUETE = W_REQUETE:' AND AVEC 6 = "P"'
				END
			END
		END
	END
END

W_REQUETE = 'SSELECT CONTRAT ':W_REQUETE

IF W_TYPESELECTION = "S" THEN
	W_REQUETE = W_REQUETE:' PAR LibSecteurContrat'
END ELSE
	IF W_TYPESELECTION = "C" THEN
		W_REQUETE = W_REQUETE:' PAR LibCommuneAidant'
	END
END

W_REQUETE = W_REQUETE:' PAR NomPrenomAidantContrat PAR CodeAidant'

IF W_TYPEDATE = "F" THEN
	W_REQUETE = W_REQUETE:' PAR-DECR 8'
END ELSE
	IF W_TYPEDATE = "D" AND W_TYPEACTIVITE # "M" THEN
		W_REQUETE = W_REQUETE:' PAR 7'
	END ELSE
		W_REQUETE = W_REQUETE:' PAR-DECR 7'
	END
END

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


IF MSGCODE<1> # 209 THEN
	SELECT F.CONTRAT TO W_RESULTAT
	
	IF W_TYPEEDITION # "L" THEN
		GOSUB 100
	END ELSE
		GOSUB 200
	END
	
END ELSE
	ENR_FINAL<1> = "VIDE"
	WRITE ENR_FINAL TO F.TEMPO,'STATNBAIDANT':W_UTILISATEUR
	STOP
END

20

IF W_TYPESELECTION = "Q" AND W_TYPEEDITION = "L" THEN
	GOSUB 400
END

IF W_TYPEEDITION # "L" AND W_TYPESELECTION # "T" THEN
	IENR = DCOUNT(ENR_STAT,CHAR(254))
	ITAB = DCOUNT(ENR_STAT<1>,CHAR(253))
	GOSUB 700
END

IF W_TYPEEDITION # "L" AND W_TYPEECLAT = "P" THEN
	GOSUB 800
END

IF ENR_STAT<2> = "" THEN
	ENR_STAT<1> = "VIDE"
END ELSE
	IF W_TYPEEDITION = "S" AND W_TYPESELECTION = "T" THEN
		ENR_STAT<3> = "FIN"
	END ELSE
		IF W_TYPEEDITION # "G" THEN
			ENR_STAT<IENR> = "FIN"
		END
	END
END

IF W_TYPEEDITION # "G" THEN
	WRITE ENR_STAT TO F.TEMPO,'STATNBAIDANT':W_UTILISATEUR
END ELSE
	GOSUB 600
	IF ENR_FINAL<1> # "VIDE" THEN
		WRITE ENR_GRAPH TO F.STATAIDANT,W_CLEFIC
	END
	WRITE ENR_FINAL TO F.TEMPO,'STATNBAIDANT':W_UTILISATEUR
END
*EXECUTE 'COMO OFF'

STOP

********************************************
* GESTION EDITION STATISTIQUE ET GRAPHIQUE *
********************************************
100

READ ENR_FINCONT FROM F.TABLES,'FINCONTRAT' ELSE ENR_FINCONT = ""
W_AIDANT = ""
W_ANCAIDANT = ""
W_TRI = ""
W_TRIANC = ""
W_FINI="FAUX"

GOSUB 999

IENR = 1
LOOP
	READNEXT W_CLE FROM W_RESULTAT ELSE W_FINI="VRAI"
	W_AIDANT = W_CLE[1,5]

WHILE W_FINI="FAUX" DO
10

	IF W_AIDANT # W_ANCAIDANT THEN
		GOSUB 500
	END
	W_ANCAIDANT = W_AIDANT	
REPEAT

RETURN

*************************
* GESTION EDITION LISTE *
*************************
200

READ ENR_FINCONT FROM F.TABLES,'FINCONTRAT' ELSE ENR_FINCONT = ""
IQUALIF = ""
ENR_TEMPQUALIF = ""
W_AIDANT = ""
W_ANCAIDANT = ""
W_TRI = ""
W_TRIANC = ""
W_FINI="FAUX"
ENR_TEMPOLIST = ""
W_ENR = ""

IENR = 1
LOOP
	READNEXT W_CLE FROM W_RESULTAT ELSE W_FINI="VRAI"
	W_AIDANT = W_CLE[1,5]
WHILE W_FINI="FAUX" DO
	IF W_AIDANT # W_ANCAIDANT THEN
		IF W_ANCAIDANT # "" THEN
			GOSUB 300
		END
		ENR_TEMPOLIST = ""
		ITEMP = 1
		W_ANCAIDANT = W_AIDANT
		READ ENR_CONTRAT FROM F.CONTRAT,W_CLE ELSE ENR_CONTRAT = ""
		IF W_TYPEACTIVITE # "M" AND W_TYPEDATE = "D" THEN
		END ELSE
			GOSUB 990
		END
	END

	READ ENR_CONTRAT FROM F.CONTRAT,W_CLE ELSE ENR_CONTRAT = ""
	READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_AIDANT ELSE ENR_CIVILAIDANT = ""
	IF W_TYPEACTIVITE = "M" THEN
		READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE = ""
		W_NOMPRENOM = ENR_CIVILAIDE<2>:' ':ENR_CIVILAIDE<3>
		W_NOMPRENOM = W_NOMPRENOM[1,24]
		W_EMP = W_NOMPRENOM
	END ELSE
		READ ENR_ETAB FROM F.ETABLISSEMENT,ENR_CONTRAT<3> ELSE ENR_ETAB = ""
		W_EMP = ENR_ETAB<1>[1,24]
	END

	W_NOMPRENOM = ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>
	W_NOMPRENOM = W_NOMPRENOM[1,30]

	W_ENR = W_AIDANT:' ':W_NOMPRENOM:SPACE(31-(LEN(W_NOMPRENOM))):W_EMP:SPACE(25-(LEN(W_EMP)))
	IF W_TYPEECLAT = "P" THEN
		W_DATE = OCONV(ENR_CONTRAT<7>,"D4/")
	END ELSE
		GOSUB 991
		GOSUB 994
	END

	W_ENR = W_ENR:W_DATE:SPACE(15-(LEN(W_DATE)))
	W_DATE = OCONV(ENR_CONTRAT<8>,"D4/")
	W_ENR = W_ENR:W_DATE

	IF W_TYPEACTIVITE # "M" AND W_TYPEDATE = "D" THEN
		ENR_TEMPOLIST<1,ITEMP> = W_ENR
	END ELSE
		ENR_TEMPOLIST = INSERT(ENR_TEMPOLIST,1,1;W_ENR)
	END
	ITEMP = ITEMP + 1
	
REPEAT

IF W_ANCAIDANT # "" THEN
	GOSUB 300
END

RETURN

******************************************
* ENREGISTREMENT DES DONNEES DE LA LISTE *
******************************************
300

IF W_TYPEACTIVITE # "M" AND W_TYPEDATE = "D" THEN
	GOSUB 990
END

IF W_TYPESELECTION # "Q" THEN

	IF W_TYPESELECTION = "T" THEN

		IF IENR = 1 THEN
			ENR_STAT = "DEBUT"
			IENR = IENR + 1
			IPAGE = 1
		END

	END ELSE

		IF W_TYPESELECTION = "C" THEN
			W_TRI = ENR_CIVILAIDANT<11>
		END ELSE
			READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR = ""
			W_TRI = ENR_SECTEUR<1>
		END
		
		IF IENR = 1 THEN
			ENR_STAT<IENR,1> = "DEBUT"
			ENR_STAT<IENR,2> = W_TRI
			IENR = IENR + 1
			IPAGE = 1
			W_TRIANC = W_TRI
		END

		IF W_TRI # W_TRIANC THEN
			ENR_STAT<IENR,1> = "STPAGE"
			ENR_STAT<IENR,2> = W_TRI
			IENR = IENR + 1
			IPAGE = 1
			W_TRIANC = W_TRI
		END
	END

	IREMP = 1
	LOOP
	WHILE ENR_TEMPOLIST<1,IREMP> # "" DO
		ENR_STAT<IENR> = ENR_TEMPOLIST<1,IREMP>
		IENR = IENR + 1
		IPAGE = IPAGE + 1
		W_STPAGE = IPAGE / LIMP

		IF W_STPAGE > 1 THEN
			IF W_TYPESELECTION = "T" THEN
				ENR_STAT<IENR> = "STPAGE"
			END ELSE
				ENR_STAT<IENR,1> = "STPAGE"
				ENR_STAT<IENR,2> = W_TRI
			END
			IPAGE = 1
			IENR = IENR + 1
		END

		IREMP = IREMP + 1
	REPEAT

END ELSE

	IF IQUALIF = "" THEN
		ENR_TEMPQUALIF<1,1> = W_TRI
		IQUALIF = 1
		IREMP = 2
		W_TRI = W_TRIANC
	END ELSE

		IF W_TRI # W_TRIANC THEN
			IQUALIF = 1
			W_TROUV = "FAUX"

			LOOP
			WHILE ENR_TEMPQUALIF<IQUALIF,1> # "" AND W_TROUV = "FAUX" DO

				IF ENR_TEMPQUALIF<IQUALIF,1> = W_TRI THEN
					W_TROUV = "VRAI"
				END

				IQUALIF = IQUALIF + 1
			REPEAT

			IF W_TROUV = "FAUX" THEN
				ENR_TEMPQUALIF<IQUALIF,1> = W_TRI
				IREMP = 2
			END ELSE
				IQUALIF = IQUALIF - 1
				IREMP = DCOUNT(EXTRACT(ENR_TEMPQUALIF,IQUALIF),CHAR(253))
				IREMP = IREMP + 1
			END

			W_TRIANC = W_TRI
		END
	END
	
	ITEMP = 1

	LOOP
	WHILE ENR_TEMPOLIST<1,ITEMP> # "" DO
		ENR_TEMPQUALIF<IQUALIF,IREMP> = ENR_TEMPOLIST<1,ITEMP>
		IREMP = IREMP + 1
		ITEMP = ITEMP + 1
	REPEAT

END

RETURN

***************************************************
* MISE EN FORME DE LA LISTE SI TYPE EDITION LISTE *
***************************************************
400

IF ENR_TEMPQUALIF # "" THEN
	IQUALIF = 1
	IENR = 1	

	LOOP
	WHILE	ENR_TEMPQUALIF<IQUALIF> # "" DO

		IF IENR = 1 THEN
			ENR_STAT<IENR,1> = "DEBUT"
		END ELSE
			ENR_STAT<IENR,1> = "STPAGE"
		END

		ENR_STAT<IENR,2> = ENR_TEMPQUALIF<IQUALIF,1>
		W_TRI = ENR_TEMPQUALIF<IQUALIF,1>
		IREMP = 2
		IPAGE = 1
		IENR = IENR + 1

		LOOP
		WHILE ENR_TEMPQUALIF<IQUALIF,IREMP> # "" DO
			ENR_STAT<IENR> = ENR_TEMPQUALIF<IQUALIF,IREMP>
			IENR = IENR + 1
			IPAGE = IPAGE + 1
			IREMP = IREMP + 1
			W_STPAGE = IPAGE / LIMP
			IF W_STPAGE > 1 THEN
				IF W_TYPESELECTION = "T" THEN
					ENR_STAT<IENR> = "STPAGE"
				END ELSE
					ENR_STAT<IENR,1> = "STPAGE"
					ENR_STAT<IENR,2> = W_TRI
				END
				IPAGE = 1
				IENR = IENR + 1
			END
		REPEAT

		IQUALIF = IQUALIF + 1

	REPEAT

END ELSE
	ENR_STAT = ""
END

RETURN

********************************
* COMPTABILISATION DES DONNEES *
********************************
500

READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_AIDANT ELSE ENR_CIVILAIDANT = ""
READ ENR_CONTRAT FROM F.CONTRAT,W_CLE ELSE ENR_CONTRAT = ""

IF W_TYPESELECTION # "Q" AND W_TYPESELECTION # "T" THEN
	IF W_TYPESELECTION = "S" THEN
		READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR = ""
		W_TRI = ENR_SECTEUR<1>
	END ELSE
		W_TRI = ENR_CIVILAIDANT<11>
	END

	IF W_TRI # W_TRIANC THEN
		IF W_TRIANC # "" THEN
			IENR = IENR + 1
			ENR_STAT<IENR,1> = W_TRI
		END ELSE
			IENR = 2
			ENR_STAT<IENR,1> = W_TRI
		END
		W_TRIANC = W_TRI
	END
END ELSE
	IF W_TYPESELECTION = "Q" THEN
		GOSUB 990
		IF W_TRI # W_TRIANC THEN
			IQUAL = 2
			LOOP
			WHILE ENR_STAT<IQUAL> # "" AND ENR_STAT<IQUAL,1> # W_TRI DO
				IQUAL = IQUAL + 1
			REPEAT
			IF ENR_STAT<IQUAL,1> # W_TRI THEN
				IF W_TYPESELECTION = "S" THEN
					READ ENR_SECTEUR FROM F.SECTEUR,W_TRI ELSE ENR_SECTEUR = ""
					ENR_STAT<IQUAL,1> = ENR_SECTEUR<1>
				END ELSE
					ENR_STAT<IQUAL,1> = W_TRI
				END
			END

			IENR = IQUAL
			W_TRIANC = W_TRI
		END
	END ELSE
		ENR_STAT<2,1> = "TOTALITE"
		IENR = 2
	END
END

IF W_TYPEDATE # "A" THEN
	IF W_TYPEDATE = "D" THEN
		GOSUB 510
	END ELSE
		GOSUB 520
	END
END ELSE
	GOSUB 530
END

RETURN

***********************
* TRAITEMENT DEBUTANT *
***********************
510

IF W_TYPEACTIVITE = "M" THEN
	W_DATE = ENR_CIVILAIDANT<40>
END ELSE
	W_DATE = ENR_CONTRAT<7>
	LOOP
		READNEXT W_CLE FROM W_RESULTAT ELSE W_FINI="VRAI"
	WHILE W_AIDANT = W_CLE[1,5] DO
		READ ENR_CONTRAT FROM F.CONTRAT,W_CLE ELSE ENR_CONTRAT = ""
	REPEAT
	IF W_TYPESELECTION = "Q" THEN
		GOSUB 990
		IF W_TRI # W_TRIANC THEN
			IQUAL = 2
			LOOP
			WHILE ENR_STAT<IQUAL> # "" AND ENR_STAT<IQUAL,1> # W_TRI DO
				IQUAL = IQUAL + 1
			REPEAT
			IF ENR_STAT<IQUAL,1> # W_TRI THEN
				ENR_STAT<IQUAL,1> = W_TRI
			END
			IENR = IQUAL
			W_TRIANC = W_TRI
		END
	END
END

W_DATE = OCONV(W_DATE,"D4/")
W_DATE = W_DATE[9,2]:W_DATE[4,2]

IF ENR_STAT<IENR,LSTAT> = "" THEN
	ENR_STAT<IENR,LSTAT> = 1
END ELSE
	ENR_STAT<IENR,LSTAT> = ENR_STAT<IENR,LSTAT> + 1
END

IRECH = 2
LOOP
WHILE ENR_STAT<1,IRECH> # W_DATE DO
	IRECH = IRECH + 1
REPEAT

IF ENR_STAT<IENR,IRECH> = "" THEN
	ENR_STAT<IENR,IRECH> = 1
END ELSE
	ENR_STAT<IENR,IRECH> = ENR_STAT<IENR,IRECH> + 1
END

IF W_TYPEACTIVITE # "M" THEN
	IF W_FINI # "VRAI" THEN
		W_AIDANT = W_CLE[1,5]
		GOSUB 10
	END ELSE
		GOSUB 20
	END
END

RETURN

***************************
* TRAITEMENT DU FINISSANT *
***************************
520

IF W_TYPEECLAT = "M" THEN

	GOSUB 991

	IF ENR_STAT<IENR,LSTAT> = "" THEN
		ENR_STAT<IENR,LSTAT> = 1
	END ELSE
		ENR_STAT<IENR,LSTAT> = ENR_STAT<IENR,LSTAT> + 1
	END

	IRECH = 2
	LOOP
	WHILE ENR_STAT<1,IRECH> # W_MOTIF DO
		IRECH = IRECH + 1
	REPEAT

	IF ENR_STAT<IENR,IRECH> = "" THEN
		ENR_STAT<IENR,IRECH> = 1
	END ELSE
		ENR_STAT<IENR,IRECH> = ENR_STAT<IENR,IRECH> + 1
	END	

END ELSE

	IF W_TYPEACTIVITE = "M" THEN
		W_DATE = ENR_CIVILAIDANT<36>
	END ELSE
		W_DATE = ENR_CONTRAT<8>
	END

	W_DATE = OCONV(W_DATE,"D4/")
	W_DATE = W_DATE[9,2]:W_DATE[4,2]

	IF ENR_STAT<IENR,LSTAT> = "" THEN
		ENR_STAT<IENR,LSTAT> = 1
	END ELSE
		ENR_STAT<IENR,LSTAT> = ENR_STAT<IENR,LSTAT> + 1
	END

	IRECH = 2
	LOOP
	WHILE ENR_STAT<1,IRECH> # W_DATE DO
		IRECH = IRECH + 1
	REPEAT

	IF ENR_STAT<IENR,IRECH> = "" THEN
		ENR_STAT<IENR,IRECH> = 1
	END ELSE
		ENR_STAT<IENR,IRECH> = ENR_STAT<IENR,IRECH> + 1
	END

END

RETURN

*************************
* TRAITEMENT DES ACTIFS *
*************************

530

GOSUB 992

W_DATE = ENR_CONTRAT<7>
W_DATE = OCONV(W_DATE,"D4/")
W_DATE = W_DATE[7,4]:W_DATE[4,2]

IF ENR_CONTRAT<8> # "" THEN
	W_DATEFIN = ENR_CONTRAT<8>
	W_DATEFIN = OCONV(W_DATEFIN,"D4/")
	W_DATEFIN = W_DATEFIN[7,4]:W_DATEFIN[4,2]
END ELSE
	W_DATEFIN = W_FINPERIODE
END

IF W_DATEFIN > W_FINPERIODE THEN
	W_DATEFIN = W_FINPERIODE
END

IF W_DATE < W_DEBUTPERIODE THEN
	W_DATE = W_DEBUTPERIODE[3,4]
END ELSE
	W_DATE = W_DATE[3,4]
END

W_PERIODE = W_DATE
W_DATEFIN = W_DATEFIN[3,4]

LOOP
WHILE W_PERIODE <= W_DATEFIN DO
	IRECH = 1
	W_REMP = "FAUX"
	LOOP
	WHILE W_REMP = "FAUX" DO
		IF ENR_TAMPON<1,IRECH> = W_PERIODE THEN
			IF ENR_TAMPON<2,IRECH> # 1 THEN
				ENR_TAMPON<2,IRECH> = 1
			END
			W_REMP = "VRAI"
		END
		IRECH = IRECH + 1
	REPEAT
	
	W_PERIODE = W_PERIODE + 1
	W_PERIODE = W_PERIODE "R(%4)"
	IF W_PERIODE[3,2] = "13" THEN
		IF W_PERIODE[1,2] = "99" THEN
			W_PERIODE = "0001"
		END ELSE
			W_ANNEE = W_PERIODE[1,2]+1
			W_PERIODE = W_ANNEE:'01'
			W_PERIODE = W_PERIODE "R(%4)"
		END
	END
	W_PERIODE = W_PERIODE "R(%4)"
REPEAT

ENR_TAMPON<2,LTAMPON> = 1

LOOP
	READNEXT W_CLE FROM W_RESULTAT ELSE W_FINI="VRAI"
WHILE W_AIDANT = W_CLE[1,5] DO
	READ ENR_CONTRAT FROM F.CONTRAT,W_CLE ELSE ENR_CONTRAT = ""
	GOSUB 993
REPEAT

IREMP = 1

LOOP
WHILE ENR_TAMPON<2,IREMP> # "" DO
	IF ENR_STAT<IENR,(IREMP+1)> = "" THEN
		ENR_STAT<IENR,(IREMP+1)> = ENR_TAMPON<2,IREMP>
	END ELSE
		ENR_STAT<IENR,(IREMP+1)> = ENR_STAT<IENR,(IREMP+1)> + ENR_TAMPON<2,IREMP>
	END
	IREMP = IREMP + 1
REPEAT

IF W_FINI # "VRAI" THEN
	W_AIDANT = W_CLE[1,5]
	GOSUB 10
END ELSE
	GOSUB 20
END

RETURN

**************************************
* MISE EN FORME DU FICHIER GRAPHIQUE *
**************************************
600

ENR_FINAL = ""
ENR_GRAPH = ""
IGRAPH = 0

LOOP
	IGRAPH = IGRAPH + 1
WHILE ENR_STAT<IGRAPH> # "" DO
	FOR K=1 TO (LSTAT-1)
		IF ENR_STAT<IGRAPH,K> = "" THEN
			ENR_STAT<IGRAPH,K> = 0
		END
		ENR_GRAPH<IGRAPH> = ENR_GRAPH<IGRAPH>:ENR_STAT<IGRAPH,K>:';'
	NEXT K
	IF ENR_STAT<IGRAPH,LSTAT> = "" THEN
		ENR_STAT<IGRAPH,LSTAT> = 0
	END
	ENR_GRAPH<IGRAPH> = ENR_GRAPH<IGRAPH>:ENR_STAT<IGRAPH,LSTAT>
REPEAT

IF ENR_GRAPH<1> # "" THEN
	ENR_TEMPO = ""
	W_DATE = OCONV(DATE(),"D4/")
	CONVERT "/" TO "" IN W_DATE
	W_NUMORDRE = 1
	W_CLEFIC = 'NombreSalaries-':W_ASSOC:'-':W_DATE:'-':W_NUMORDRE:'.csv'
	READ ENR_TEMPO FROM F.STATAIDANT,W_CLEFIC ELSE ENR_TEMPO = ""
	LOOP
	WHILE ENR_TEMPO # "" DO
		W_NUMORDRE = W_NUMORDRE + 1
		W_CLEFIC = 'NombreSalaries-':W_ASSOC:'-':W_DATE:'-':W_NUMORDRE:'.csv'
		READ ENR_TEMPO FROM F.STATAIDANT,W_CLEFIC ELSE ENR_TEMPO = ""
	REPEAT
	ENR_FINAL<1> = W_CLEFIC
END ELSE
	ENR_FINAL<1> = "VIDE"
END

RETURN

****************************
* MISE EN PLACE DES TOTAUX *
****************************
700

ITOT = 2
IGEN = 2
IENR = IENR + 1

LOOP
WHILE ITAB => IGEN DO

	TOTALLIG = 0

	LOOP
	WHILE IENR > ITOT DO
		IF ENR_STAT<ITOT,IGEN> # "" THEN
			TOTALLIG = TOTALLIG + ENR_STAT<ITOT,IGEN>
		END
		ITOT = ITOT + 1
REPEAT

	ENR_STAT<IENR,IGEN> = TOTALLIG
	ITOT = 2
	IGEN = IGEN + 1

REPEAT

ENR_STAT<IENR,1> = "TOTAL"
IENR = IENR + 1
RETURN

******************************
* MISE EN FORME DES PERIODES *
******************************
800

IPER = 2

LOOP
WHILE ENR_STAT<1,IPER> # "TOTAL" DO

	IF LEN(ENR_STAT<1,IPER>) = 4 THEN
		ENR_STAT<1,IPER> = ENR_STAT<1,IPER>[1,2]:'/':ENR_STAT<1,IPER>[3,2]
	END ELSE
		IF LEN(ENR_STAT<1,IPER>) = 3 THEN
			ENR_STAT<1,IPER> = '0':ENR_STAT<1,IPER>[1,1]:'/':ENR_STAT<1,IPER>[2,2]
		END ELSE
			IF LEN(ENR_STAT<1,IPER>) = 2 THEN
				ENR_STAT<1,IPER> = '00/':ENR_STAT<1,IPER>
			END ELSE
				IF LEN(ENR_STAT<1,IPER>) = 1 THEN
					ENR_STAT<1,IPER> = '00/0':ENR_STAT<1,IPER>
				END
			END
		END
	END

	IPER = IPER + 1

REPEAT

RETURN

********************
* RECHERCHE QUALIF *
********************
990
	W_TRI = ""
	K = 1
	LOOP
	WHILE ENR_CONTRAT<16,K> # "" DO
		K = K + 1
	REPEAT
	K = K - 1
	W_TRI = ENR_CONTRAT<16,K>

RETURN

*****************************
* RECHERCHE MOTIF DE SORTIE *
*****************************
991

W_MOTIF = ENR_CONTRAT<49>
IMOT = 1

LOOP
WHILE ENR_FINCONT<2,IMOT> # W_MOTIF AND ENR_FINCONT<2,IMOT> # "" DO
	IMOT = IMOT + 1
REPEAT

IF ENR_FINCONT<4,IMOT> # "" THEN
	W_MOTIF = ENR_FINCONT<4,IMOT>
END ELSE
	W_MOTIF = "AU"
END

RETURN

******************************************
* CONSTITUTION ENREGISTREMENT TEMPORAIRE *
******************************************
992

ENR_TAMPON = ""
LTAMPON = 1
W_PERIODE = W_DEBUTPERIODE[3,4]
W_PERIODE = W_PERIODE "R(%4)"

LOOP
WHILE W_PERIODE <= W_FINPERIODE[3,4] DO
	ENR_TAMPON<1,LTAMPON> = W_PERIODE
	ENR_TAMPON<2,LTAMPON> = 0
	W_PERIODE = W_PERIODE + 1
	W_PERIODE = W_PERIODE "R(%4)"
	IF W_PERIODE[3,2] = "13" THEN
		IF W_PERIODE[1,2] = "99" THEN
			W_PERIODE = "0001"
		END ELSE
			W_ANNEE = W_PERIODE[1,2]+1
			W_ANNEE = W_ANNEE "R%2"
			W_PERIODE = W_ANNEE:'01'
			W_PERIODE = W_PERIODE "R(%4)"
		END
	END
	LTAMPON = LTAMPON + 1
	W_PERIODE = W_PERIODE "R(%4)"
REPEAT
ENR_TAMPON<1,LTAMPON> = "TOTAL"
ENR_TAMPON<1,LTAMPON> = 0

RETURN

*************************
* REMPLISSAGE DU TAMPON *
*************************
993

W_DATE = ENR_CONTRAT<7>
W_DATE = OCONV(W_DATE,"D4/")
W_DATE = W_DATE[7,4]:W_DATE[4,2]

IF ENR_CONTRAT<8> # "" THEN
	W_DATEFIN = ENR_CONTRAT<8>
	W_DATEFIN = OCONV(W_DATEFIN,"D4/")
	W_DATEFIN = W_DATEFIN[7,4]:W_DATEFIN[4,2]
END ELSE
	W_DATEFIN = W_FINPERIODE
END

IF W_DATEFIN > W_FINPERIODE THEN
	W_DATEFIN = W_FINPERIODE
END

IF W_DATE < W_DEBUTPERIODE THEN
	W_DATE = W_DEBUTPERIODE[3,4]
END ELSE
	W_DATE = W_DATE[3,4]
END

W_PERIODE = W_DATE
W_DATEFIN = W_DATEFIN[3,4]

LOOP
WHILE W_PERIODE <= W_DATEFIN DO
	IRECH = 1
	W_REMP = "FAUX"
	LOOP
	WHILE W_REMP = "FAUX" DO
		IF ENR_TAMPON<1,IRECH> = W_PERIODE THEN
			IF ENR_TAMPON<2,IRECH> # 1 THEN
				ENR_TAMPON<2,IRECH> = 1
			END
			W_REMP = "VRAI"
		END
		IRECH = IRECH + 1
	REPEAT
	
	W_PERIODE = W_PERIODE + 1
	W_PERIODE = W_PERIODE "R(%4)"
	IF W_PERIODE[3,2] = "13" THEN
		IF W_PERIODE[1,2] = "99" THEN
			W_PERIODE = "0001"
		END ELSE
			W_ANNEE = W_PERIODE[1,2]+1
			W_ANNEE = W_ANNEE "R%2"
			W_PERIODE = W_ANNEE:'01'
			W_PERIODE = W_PERIODE "R(%4)"
		END
	END
	W_PERIODE = W_PERIODE "R(%4)"
REPEAT

RETURN

*************************************
* RECHERCHE LIBELLE MOTIF DE SORTIE *
*************************************
994

BEGIN CASE
	CASE W_MOTIF MATCHES "TS"
		W_DATE = "Transfert etbs"
 	CASE W_MOTIF MATCHES "LE"
		W_DATE = "L.economique"
	CASE W_MOTIF MATCHES "LA"
		W_DATE = "L.autre"
	CASE W_MOTIF MATCHES "FD"
		W_DATE = "Fin CDD"
	CASE W_MOTIF MATCHES "RT"
		W_DATE = "Retraite"
	CASE W_MOTIF MATCHES "ES"
		W_DATE = "Fin essai"
	CASE W_MOTIF MATCHES "DM"
		W_DATE = "Demission"
	CASE W_MOTIF MATCHES "AU"
		W_DATE = "Autre (deces)"
END CASE

RETURN

********************************
* CONSTITUTION ENRERGISTREMENT *
********************************
999

ENR_STAT = ""

IF W_TYPESELECTION = "T" THEN
	ENR_STAT<1,1> = "Totalite"
END ELSE
	IF W_TYPESELECTION = "S" THEN
		ENR_STAT<1,1> = "Secteur"
	END ELSE
		IF W_TYPESELECTION = "C" THEN
			ENR_STAT<1,1> = "Commune"
		END ELSE
			ENR_STAT<1,1> = "Qualification professionnelle"
		END
	END
END

IF W_TYPEECLAT = "P" THEN
	LSTAT = 2
	W_PERIODE = W_DEBUTPERIODE[3,4]
	W_PERIODE = W_PERIODE "R(%4)"
	LOOP
	WHILE W_PERIODE <= W_FINPERIODE[3,4] DO
		ENR_STAT<1,LSTAT> = W_PERIODE
		W_PERIODE = W_PERIODE + 1
		W_PERIODE = W_PERIODE "R(%4)"

		IF W_PERIODE[3,2] = "13" THEN
			IF W_PERIODE[1,2] = "99" THEN
				W_PERIODE = "0001"
			END ELSE
				W_ANNEE = W_PERIODE[1,2]+1
				W_PERIODE = W_ANNEE:'01'
				W_PERIODE = W_PERIODE "R(%4)"
			END
		END
		LSTAT = LSTAT + 1
	REPEAT
	
	ENR_STAT<1,LSTAT> = "TOTAL"
	W_PERIODE = W_PERIODE "R(%4)"
END ELSE
	ENR_STAT<1,2> = "TS"
	ENR_STAT<1,3> = "LE"
	ENR_STAT<1,4> = "LA"
	ENR_STAT<1,5> = "FD"
	ENR_STAT<1,6> = "RT"
	ENR_STAT<1,7> = "ES"
	ENR_STAT<1,8> = "DM"
	ENR_STAT<1,9> = "AU"
	ENR_STAT<1,10> = "TOTAL"
	LSTAT = 10
END

RETURN
