SUBROUTINE MajGrilleCloture(W_Requete,W_Periode)
***************************************************************
* INTEGRANT LES DONNES POUR LA CCU A PARTIR DES FICHIER EXCEL *
* ALAIN LE 22/05/2003                                         *
***************************************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","CONVENTIONCOL" TO F.CONVENTIONCOL ELSE STOP
OPEN "","ETABLISSEMENT" TO F.ETABLISSEMENT ELSE STOP
OPEN "","FUSION" TO F.FUSION ELSE STOP
OPEN "","GRILLESCC" TO F.GRILLESCC ELSE STOP
OPEN "","TAMPONINF" TO F.TAMPONINF ELSE STOP

W_RESULTAT = ""
W_RESULTATCONV = ""

EXECUTE 'SELECT CONVENTIONCOL AVEC 36 = "VRAI"'
EXECUTE 'SAUVE-LISTE W_RESULTATCONV'
EXECUTE "LISTE W_RESULTATCONV" RETURNING MSGCODE

W_Fin = "FAUX"
SELECT F.CONVENTIONCOL TO W_RESULTATCONV
W_CLECONV = ""
W_CONV = ""

LOOP
	READNEXT W_CLECONV FROM W_RESULTATCONV ELSE W_Fin = "VRAI"
WHILE W_Fin = "FAUX" DO
	W_CONV = W_CONV:W_CLECONV:';'
REPEAT

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 
	W_FINI = "FAUX"
	W_ANNE = W_Periode[1,4]

	LOOP
		READNEXT W_CLECONT FROM W_RESULTAT ELSE W_FINI = "VRAI"
	WHILE W_FINI = "FAUX" DO

		READ ENR_CONTRAT FROM F.CONTRAT,W_CLECONT ELSE ENR_CONTRAT = ""

	IF INDEX(W_CONV,ENR_CONTRAT<1>:";",1) # 0 THEN
		W_AVENANT = DCOUNT(EXTRACT(ENR_CONTRAT,14),CHAR(253))
		W_DATEANC = OCONV(ENR_CONTRAT<21,W_AVENANT>,"D4/")

		W_GRILLE = ENR_CONTRAT<20,W_AVENANT>
		READ ENR_GRILLE FROM F.GRILLESCC, W_GRILLE ELSE ENR_GRILLE = ""

		IF W_ANNE = "2003" THEN
			IF W_GRILLE[3,1] = "1" THEN
				IF W_GRILLE[4,2] = "00" THEN
					W_NOUVAN = W_DATEANC[7,4] + 2
					W_DATEANC = W_DATEANC[1,6]:W_NOUVAN
				END ELSE
					W_NOUVAN = W_DATEANC[7,4] + 3
					W_DATEANC = W_DATEANC[1,6]:W_NOUVAN
				END
			END 
		END ELSE
			IF W_ANNE = "2004" THEN
				IF W_GRILLE[3,1] = "1" THEN
					IF W_GRILLE[4,2] = "00" AND ENR_CONTRAT<7> > "12966" THEN
						W_NOUVAN = W_DATEANC[7,4] + 1
						W_DATEANC = W_DATEANC[1,6]:W_NOUVAN
					END ELSE
						IF ENR_CONTRAT<7> > "12966" THEN
							W_NOUVAN = W_DATEANC[7,4] + 2
							W_DATEANC = W_DATEANC[1,6]:W_NOUVAN
						END ELSE
							IF W_GRILLE[4,2] = "00" OR  W_GRILLE[4,2] = "01" OR W_GRILLE[4,2] = "02" OR W_GRILLE[4,2] = "03" THEN
								W_NOUVAN = W_DATEANC[7,4] - 1
								W_DATEANC = W_DATEANC[1,6]:W_NOUVAN
							END
						END
					END
					W_GRILLE = W_GRILLE[1,2]:'2':W_GRILLE[4,2]
				END
			END ELSE
				IF W_ANNE = "2005" THEN
					IF W_GRILLE[3,1] = "2" THEN
						IF W_GRILLE[4,2] # "00" AND ENR_CONTRAT<7> > "13332" THEN
							W_NOUVAN = W_DATEANC[7,4] + 1
							W_DATEANC = W_DATEANC[1,6]:W_NOUVAN
						END ELSE
							IF ENR_CONTRAT<7> <= "13332" THEN
								IF W_GRILLE[4,2] = "00" OR W_GRILLE[4,2] = "01" OR W_GRILLE[4,2] = "02" OR W_GRILLE[4,2] = "03" THEN
									W_NOUVAN = W_DATEANC[7,4] - 1
									W_DATEANC = W_DATEANC[1,6]:W_NOUVAN
								END
							END
						END
						W_GRILLE = W_GRILLE[1,2]:'3':W_GRILLE[4,2]
					END
				END
			END
		END

		W_DATEANC = ICONV(W_DATEANC,"D4/")

		IF ENR_CONTRAT<70> # "" THEN
			W_DATEANC = W_DATEANC + INT(ENR_CONTRAT<70>/100)
		END

		ENR_CONTRAT<21,W_AVENANT> = W_DATEANC
		ENR_CONTRAT<20,W_AVENANT> = W_GRILLE
		ENR_CONTRAT<70> = 0
	
		WRITE ENR_CONTRAT TO F.CONTRAT,W_CLECONT

		W_PARAMS=""
		W_SORTIE=""
		W_PARAMS<1>=W_CLECONT
		W_PARAMS<2>=W_AVENANT
		W_PARAMS<3>="200307"

		CALL CALCCOEFFTXHOR("",W_PARAMS,W_SORTIE)

		W_COEFF=W_SORTIE<1>
		W_TAUXHOR=W_SORTIE<2>
		W_TAUXHORDIMJF=W_SORTIE<3>

		IF ENR_CONTRAT<20,W_AVENANT> # "" THEN
			* LECTURE FICHIER GRILLESCC
			READ ENR_GRILLESCC FROM F.GRILLESCC,ENR_CONTRAT<20,W_AVENANT> THEN

				IF W_TAUXHOR # 0 THEN
					IF ENR_GRILLESCC<5>="C" THEN
						ENR_CONTRAT<22,W_AVENANT>=W_COEFF
						ENR_CONTRAT<23,W_AVENANT>=W_TAUXHOR
					END ELSE
						ENR_CONTRAT<23,W_AVENANT>=W_TAUXHOR
					END
				END
			END
          
		END

		WRITE ENR_CONTRAT TO F.CONTRAT,W_CLECONT
	END

	REPEAT		
END

RETURN
