*********************************************
* Objectif :                                *
*        Ratrapage du mauvais calcul du     * 
*        taux horaire en juillet (DA130-01) *
*                                           * 
* Alain -> 22/08/03 -> Cration du prog     *
*********************************************

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 "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "","RATTSALANT" TO F.RATTSALANT ELSE STOP
OPEN "","RUBSAISIE" TO F.RUBSAISIE ELSE STOP

*******************************************

W_Entite = ""
W_Conv = ""
W_Requete = ""
W_Params = ""
w_Sortie = ""
W_RESULTAT = ""

*EXECUTE 'COMO ON VERIFRAT'

EXECUTE 'SSELECT CONTRAT AVEC 1 = "02" AND AVEC 65 # "O" AND AVEC 7 < "12997" AND AVEC 8 => "12997" OR = "" PAR 0'
EXECUTE 'SAUVE-LISTE W_RESULTAT' 
EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE

IF MSGCODE<1> # 209 THEN

	W_FINI = "FAUX"	
	CLE.CONTRAT=""

	SELECT F.CONTRAT TO W_RESULTAT

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

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

		W_AVENANT = DCOUNT(EXTRACT(ENR_CONTRAT,14),CHAR(253))

		W_Params<1> = CLE.CONTRAT
		W_Params<2> = W_AVENANT
		W_Params<3> = "200307"

		CALL CALCCOEFFTXHOR("",W_Params,W_Sortie)
		IF W_Sortie<2> < "7190" THEN
			W_Sortie<2> = "7190"
		END

		READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,CLE.CONTRAT:"200307" ELSE ENR_DETAILCALCUL = "VIDE"

		IF ENR_DETAILCALCUL # "VIDE" THEN
			I = 1
			W_TROUV = "FAUX"
			ENR_RATT = ""
			LOOP
			WHILE ENR_DETAILCALCUL<2,I> # "" AND W_TROUV = "FAUX" DO
				READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETAILCALCUL<2,I> ELSE STOP
				IF ENR_RUBSAISIE<8> = "2" THEN
					W_TROUV = "VRAI"
					W_TAUXHOR = (ENR_DETAILCALCUL<4,I>*100)/(ENR_RUBSAISIE<9>/10000)
					W_TAUXHOR = INT(W_TAUXHOR/10)
				END
				I = I + 1
			REPEAT
			IF W_TROUV = "VRAI" AND W_TAUXHOR > 7190 THEN
				IF W_TAUXHOR > W_Sortie<2> THEN

					W_TAUXJUIL = W_Sortie<2>/1000
					W_TAUXHOR = W_TAUXHOR/1000
					POURCRECUP = (((W_TAUXHOR/W_TAUXJUIL)-1)*100)
					POURCRECUP = (INT((POURCRECUP*100)+(1/2)))/100
					
					IF ENR_DETAILCALCUL<5> # "" THEN
						W_BASE = 0
						W_NBRUB = DCOUNT(EXTRACT(ENR_DETAILCALCUL,5),CHAR(253))
						FOR J = 1 TO W_NBRUB
							IF ENR_DETAILCALCUL<5,J> # "" THEN
								W_BASE = W_BASE + ENR_DETAILCALCUL<5,J>
							END
						NEXT J
					END



					MONTRAT = ((W_BASE/100)*(POURCRECUP/100))*100
					MONTRAT = INT((MONTRAT*(-1))-(1/2))

					ENR_RATT<1>= MONTRAT

					WRITE ENR_RATT TO F.RATTSALANT,CLE.CONTRAT
				END
			END
		END
	REPEAT

END
*EXECUTE 'COMO OFF'
STOP
