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


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

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

*********************
* TRAITEMENT GLOBAL *
*********************
W_RESULTAT = ""
W_RESULTATDET = ""

EXECUTE 'SSELECT CONTRAT AVEC 1 = "01" AND AVEC 6 = "P" AND AVEC 2 = "001" AND AVEC 7 <= "13058" AND AVEC 8 >= "13058" OR = "" PAR 0'
EXECUTE 'SAUVE-LISTE W_RESULTAT'
EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE

IF MSGCODE<1> # 209 THEN

	W_FINI = "FAUX"
	CLEAIDANT = ""
	CLEAIDANTANC = ""
	CLECONTRAT = ""
	CLECONTRATANC = ""
	CUMULTOT = 0

	SELECT F.CONTRAT TO W_RESULTAT

    	LOOP
		READNEXT CLECONTRAT FROM W_RESULTAT ELSE W_FINI="VRAI"
	WHILE W_FINI = "FAUX" DO
		CLEAIDANT = CLECONTRAT[1,5]

		IF CLEAIDANT # CLEAIDANTANC THEN
			IF CLEAIDANTANC # "" THEN
				IF MONTBRUT # "0" THEN
					READ ENR_RATTSALANT FROM F.RATTSALANT,CLECONTRATANC ELSE ENR_RATTSALANT = ""
					ENR_RATTSALANT<1> = INT((MONTBRUT*(1143/10000))+(1/2))
					WRITE ENR_RATTSALANT TO F.RATTSALANT,CLECONTRATANC
					MONTBRUT = 0
				END	
			END
			CLEAIDANTANC = CLEAIDANT
			W_TRAVAIL = "VRAI"
		END ELSE
			W_TRAVAIL = "FAUX"
		END

		IF W_TRAVAIL = "VRAI" THEN

			EXECUTE 'SSELECT DETAILCALCUL AVEC 0 = "':CLEAIDANT:']" AND AVEC ConvColContratDetailCalcul = "01" AND AVEC FonctionContrat = "P" AND AVEC CodAssoContratDetailCalcul = "001" AND AVEC PeriodeDetailCalcul => "200308" AND AVEC PeriodeDetailCalcul <= "200309" PAR 0'
			EXECUTE 'SAUVE-LISTE W_RESULTATDET'
			EXECUTE "LISTE W_RESULTATDET" RETURNING MSGCODE

			IF MSGCODE<1> # 209 THEN

				W_FINIDET = "FAUX"
				CLE.DETAILCALCUL = ""
				SELECT F.DETAILCALCUL TO W_RESULTATDET

				LOOP
					READNEXT CLE.DETAILCALCUL FROM W_RESULTATDET ELSE W_FINIDET="VRAI"
				WHILE W_FINIDET = "FAUX" DO
					READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,CLE.DETAILCALCUL ELSE ENR_DETAILCALCUL = ""
					IRUB = 1
					LOOP 
					WHILE ENR_DETAILCALCUL<2,IRUB> # "" DO
						IF ENR_DETAILCALCUL<2,IRUB> # "810" THEN
							READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETAILCALCUL<2,IRUB> ELSE ENR_RUBSAISIE = ""
							IF ENR_RUBSAISIE<2> # "6" THEN
								MONTBRUT = MONTBRUT + ENR_DETAILCALCUL<5,IRUB>
							END
						END ELSE
							MONTBRUT = MONTBRUT + ENR_DETAILCALCUL<5,IRUB>
						END
						IRUB = IRUB + 1
					REPEAT
				REPEAT
			END
			EXECUTE 'EFFACER-LISTE W_RESULTATDET'
			CLECONTRATANC = CLECONTRAT
		END
	REPEAT
END

IF CLEAIDANTANC # "" THEN
	IF MONTBRUT # "0" THEN
		READ ENR_RATTSALANT FROM F.RATTSALANT,CLECONTRATANC ELSE ENR_RATTSALANT = ""
		ENR_RATTSALANT<1> = INT((MONTBRUT*(1143/10000))+(1/2))
		WRITE ENR_RATTSALANT TO F.RATTSALANT,CLECONTRATANC
	END	
END

EXECUTE 'EFFACER-LISTE W_RESULTAT'

STOP
