* COMPARAISON DES CUMUL DES DETAILCALCUL ET DES HISTORCUMULS *

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","HISTORCUMUL" TO F.HISTORCUMUL ELSE STOP
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","PROFIL" TO F.PROFIL ELSE STOP
OPEN "","RUBCHARGE" TO F.RUBCHARGE ELSE STOP

***********
* REQUETE *
***********
	EXECUTE 'SSELECT DETAILCALCUL AVEC ConvColContratDetailCalcul # "01" AND AVEC PeriodeDetailCalcul >= "200001" AND AVEC PeriodeDetailCalcul <= "200007" PAR CodeAidantDetailCalcul PAR CodEtabContrat'
	EXECUTE 'SAUVE-LISTE W_REQDETAIL'
	EXECUTE "LISTE W_REQDETAIL" RETURNING MSGCODE	

	IF MSGCODE<1>#209 THEN
		SELECT F.DETAILCALCUL TO W_REQDETAIL
		GOSUB 100
	END

STOP

*************************************************
* PARCOURS DES DETAILCALCUL ET CUMUL PAR AIDANT *
*************************************************
100
	
	W_NBDETAILCALCUL=0
	W_NBHRES=0
	W_MOIS60=""
	W_BRUT=0
	W_NETIMP=0
	W_NET=0
	W_PROFIL=""

	W_ANCIENAIDANT=""
	W_ANCIENEMPLOYEUR=""
	W_Fini="FAUX"
	LOOP
   		READNEXT W_CLE FROM W_REQDETAIL ELSE W_Fini="VRAI"
		WHILE W_Fini="FAUX" DO

		IF W_ANCIENAIDANT="" THEN
			W_ANCIENAIDANT=W_CLE[1,5]
			READ ENR_CONTRAT FROM F.CONTRAT,W_CLE[1,8] THEN
				W_ANCIENEMPLOYEUR=ENR_CONTRAT<3>
			END ELSE
				PRINT "PAS DE CONTRAT"
			END
			W_CUMUL7=0
			W_CUMUL5=0
		END

		READ ENR_CONTRAT FROM F.CONTRAT,W_CLE[1,8] ELSE PRINT "PAS DE CONTRAT"

		W_PROFIL=ENR_CONTRAT<26>

		IF W_ANCIENAIDANT=W_CLE[1,5] AND W_ANCIENEMPLOYEUR=ENR_CONTRAT<3> AND LEN(W_ANCIENEMPLOYEUR)=LEN(ENR_CONTRAT<3>) THEN
			GOSUB 300
		END ELSE
			W_NBDETAILCALCUL=0
			W_NBHRES=0
			W_MOIS60=""
			W_BRUT=0
			W_NETIMP=0
			W_NET=0
			W_PROFIL=""
	

			GOSUB 200
			W_CUMUL5=0
			W_CUMUL7=0
			W_ANCIENAIDANT=W_CLE[1,5]
			W_ANCIENEMPLOYEUR=ENR_CONTRAT<3>
			GOSUB 300
		END

	REPEAT
	GOSUB 200

RETURN

**********************************************
* RECHERCHE POUR COMPARAISON SUR HISTORCUMUL *
**********************************************
200

	W_CUMUL5=0

	IF LEN(W_ANCIENEMPLOYEUR)=6 THEN
		W_CLERECH=W_ANCIENEMPLOYEUR[1,3]
	END ELSE
		W_CLERECH=W_ANCIENEMPLOYEUR
	END

	READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,W_ANCIENAIDANT:"2000":W_CLERECH THEN
		W_CUMUL5=ENR_HISTORCUMUL<5>
		IF W_CUMUL5 # W_CUMUL7 THEN
			READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_ANCIENAIDANT THEN
				PRINT W_ANCIENAIDANT:" ":ENR_CIVILAIDANT<2>"L#25":" ":W_ANCIENEMPLOYEUR "R#6":" DIFF D-H ":W_CUMUL7-W_CUMUL5 "R#10"
			END ELSE 
				PRINT "PAS CIVILAIDANT AVEC HISTOR ":W_ANCIENAIDANT
			END
		END
	END ELSE
		READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_ANCIENAIDANT THEN
			PRINT W_ANCIENAIDANT:" PAS HISTOR ":ENR_CIVILAIDANT<2>"L#14":" ":W_ANCIENEMPLOYEUR "R#6":" DIFF D-H ":W_CUMUL7 "R#10"
		END ELSE 
			PRINT W_ANCIENAIDANT:" PAS CIVILAIDANT"
		END

	END

RETURN

**********************
* CUMUL DETAILCALCUL *
**********************
300

	IF LEN(W_ANCIENEMPLOYEUR)=6 THEN
		W_CLERECH=W_ANCIENEMPLOYEUR[1,3]
	END ELSE
		W_CLERECH=W_ANCIENEMPLOYEUR
	END

	READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,W_CLE THEN
		W_CUMUL7=W_CUMUL7+ENR_DETAILCALCUL<7>
	END ELSE
		PRINT "DETAILCALCUL"
	END

	IF ENR_DETAILCALCUL<6>>="6000" THEN W_MOIS60=W_CLE[9,6]

	W_BRUT=W_BRUT+ENR_DETAILCALCUL<7>
	W_NETIMP=W_NETIMP+ENR_DETAILCALCUL<15>
	W_NET=W_NET+ENR_DETAILCALCUL<16>

	W_NBHRES=W_NBHRES+ENR_DETAILCALCUL<6>
	W_NBDETAILCALCUL=W_NBDETAILCALCUL+1

**	GOSUB 500
RETURN

***********************
* CORRIGE HISTORCUMUL *
***********************
500

	READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,W_ANCIENAIDANT:"2000":W_CLERECH ELSE ENR_HISTORCUMUL=""

	ENR_HISTORCUMUL<15>=""
	ENR_HISTORCUMUL<16>=""
	ENR_HISTORCUMUL<17>=""
	ENR_HISTORCUMUL<18>=""
	ENR_HISTORCUMUL<19>=""

	ENR_HISTORCUMUL<1>=W_NBHRES
	ENR_HISTORCUMUL<2>=W_NBHRES

	ENR_HISTORCUMUL<3>=W_MOIS60
	ENR_HISTORCUMUL<4>=W_NBDETAILCALCUL*1470000
	ENR_HISTORCUMUL<5>=W_BRUT
	ENR_HISTORCUMUL<6>=W_NETIMP
	ENR_HISTORCUMUL<7>=W_NET
	ENR_HISTORCUMUL<8>="0"
	ENR_HISTORCUMUL<9>=""
	ENR_HISTORCUMUL<10>="0"
	
	READ ENR_PROFIL FROM F.PROFIL,W_PROFIL ELSE ENR_PROFIL=""

	I=1
	LOOP
	     UNTIL ENR_PROFIL<3,I>="" DO

	     READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_PROFIL<3,I> ELSE ENR_RUBCHARGE=""

	     ENR_HISTORCUMUL<15,I>=ENR_PROFIL<3,I>
	     IF ENR_RUBCHARGE<12><>"0" OR ENR_RUBCHARGE<12><>"" THEN
	         ENR_HISTORCUMUL<16,I>=W_BRUT*((100000-ENR_RUBCHARGE<12>)/100000)
	     END ELSE
	         ENR_HISTORCUMUL<16,I>=W_BRUT
	     END
	     ENR_HISTORCUMUL<17,I>=ENR_HISTORCUMUL<16,I>
	     ENR_HISTORCUMUL<18,I>=ENR_HISTORCUMUL<16,I>*(ENR_RUBCHARGE<10>/100000)
	     ENR_HISTORCUMUL<19,I>=ENR_HISTORCUMUL<16,I>*(ENR_RUBCHARGE<14>/100000)

	     I=I+1
	REPEAT	

	WRITE ENR_HISTORCUMUL ON F.HISTORCUMUL,W_ANCIENAIDANT:"2000":W_CLERECH
RETURN
