
***************************************************
* RATTRAPAGE SALAIRE ET REMPLISSAGE DE RATTSALANT *
* 22/06/2001 ALAIN                                *
***************************************************


***************************
* Ouvertures des fichiers *
***************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","RATTSALANT" TO F.RATTSALANT ELSE STOP
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "","PERIODESPAIE" TO F.PERIODESPAIE ELSE STOP
OPEN "","RUBSAISIE" TO F.RUBSAISIE ELSE STOP
OPEN "","CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP

*********************
* TRAITEMENT GLOBAL *
*********************
W_PRISECHGPREC = "0"
TEMP = "VRAI"

READ ENR_TEMPO FROM F.TEMPO,"RATSALANT" ELSE TEMP = "FAUX"

ENR_TEMPO = ""

READ ENR_PERIODESPAIE FROM F.PERIODESPAIE,"1" ELSE STOP
READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE,"1" ELSE ENR_CONSTANTESPAIE = ""

DATEURO = ENR_CONSTANTESPAIE<9>
W_PERIODE = ENR_PERIODESPAIE<1>

MOIS = W_PERIODE[5,2]
AN = W_PERIODE[1,4]
ANF = AN

MOISDEB = MOIS
MOISFIN = MOIS + 1

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

IF MOISFIN > 12 THEN
	MOISFIN = MOISFIN - 12
	ANF = ANF + 1
END

MOISDEB = MOISDEB "R(%2)"
MOISFIN = MOISFIN "R(%2)"	

W_DATEDEB = ICONV("01/":MOISDEB:"/":AN,"D4/")
W_DATEFIN = ICONV("01/":MOISFIN:"/":ANF,"D4/")
W_DATEFIN= W_DATEFIN - 1

EXECUTE 'SSELECT DETAILCALCUL AVEC ConvColContratDetailCalcul = "06" AND AVEC PeriodeDetailCalcul >= "200105" AND AVEC PeriodeDetailCalcul <= "200202" AND AVEC DatDebContratDetailCalcul <= "':W_DATEFIN:'" AND AVEC DatFinContratDetailCalcul >= "':W_DATEDEB:'" OR = "" PAR 0'
EXECUTE 'SAUVE-LISTE W_RESULTAT'
EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE

IF MSGCODE<1> # 209 THEN

	W_FINI = "FAUX"	

	CLEANC.CONTRAT = ""
	CUMULTOT = 0

	LOOP
		READNEXT CLE.DETAILCALCUL FROM W_RESULTAT ELSE W_FINI="VRAI"
	WHILE W_FINI = "FAUX" DO
		READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,CLE.DETAILCALCUL ELSE ENR_DETAILCALCUL = ""
		CLE.CONTRAT = CLE.DETAILCALCUL[1,8]
		PER = CLE.DETAILCALCUL[9,6]

		IF CLE.CONTRAT # CLEANC.CONTRAT THEN
		   IF CLEANC.CONTRAT # "" THEN
			IF CUMULTOT # 0 THEN
				READ ENR_RATTSALANT FROM F.RATTSALANT,CLEANC.CONTRAT ELSE ENR_RATTSALANT = ""
				IF W_PRISECHGPREC = "1" THEN
					ENR_RATTSALANT<1> = ENR_RATTSALANT<1> + CUMULTOT
				END ELSE
					ENR_RATTSALANT<1> = CUMULTOT
				END
				WRITE ENR_RATTSALANT TO F.RATTSALANT,CLEANC.CONTRAT
				ENR_TEMPO<1> = "VRAI"
				WRITE ENR_TEMPO TO F.TEMPO,"RATSALANT"
			END
			CUMULTOT = 0
		   END
		   CLEANC.CONTRAT = CLE.CONTRAT
		END
		
		CUMUL = 0

		IF PER < 200201 THEN
			CUMUL = INT((ENR_DETAILCALCUL<7>/(655957/100000))+(1/2))
		END ELSE
			CUMUL = ENR_DETAILCALCUL<7>
		END

		IF PER => 200111 THEN
			W_TAUCUM = 120
		END ELSE
			W_TAUCUM = 50
		END

		CUMULTOT = CUMULTOT + INT(((W_TAUCUM/10000) * CUMUL)+(1/2))

	REPEAT
END

IF CUMULTOT # 0 THEN
	READ ENR_RATTSALANT FROM F.RATTSALANT,CLE.CONTRAT ELSE ENR_RATTSALANT = ""
	IF W_PRISECHGPREC = "1" THEN
		ENR_RATTSALANT<1> = ENR_RATTSALANT<1> + CUMULTOT
	END ELSE
		ENR_RATTSALANT<1> = CUMULTOT
	END
	WRITE ENR_RATTSALANT TO F.RATTSALANT,CLE.CONTRAT
	ENR_TEMPO<1> = "VRAI"
	WRITE ENR_TEMPO TO F.TEMPO,"RATSALANT"
END

EXECUTE 'EFFACER-LISTE W_RESULTAT'

STOP
