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

W_Ok = "F"
LOOP WHILE W_Ok = "F"
PRINT "Entrez le mois de debut de l'anne de dclaration (AAAAMM)"
INPUT W_MoisDeb
IF W_MoisDeb MATCHES "6N" THEN
	W_Ok = "V"
END
REPEAT

W_Ok = "F"
LOOP WHILE W_Ok = "F"
PRINT "Entrez le mois de fin de l'anne de dclaration (AAAAMM)"
INPUT W_MoisFin
IF W_MoisFin MATCHES "6N" THEN
	*IF W_MoisFin - W_MoisDeb = 11 OR W_MoisFin - W_MoisDeb = 99 THEN
		W_Ok = "V"
	*END
END
REPEAT

W_Ok = "F"
LOOP WHILE W_Ok = "F"
PRINT "Saisissez l'entit de la dclaration"
INPUT W_CodeAsso
READ ENR_ASSO FROM F.ASSOCIATION, W_CodeAsso THEN
	W_Ok = "V"
END ELSE
	PRINT "Cette association n'existe pas !"
END
REPEAT

*W_Ok = "F"
*LOOP WHILE W_Ok = "F"
*PRINT "Saisissez le code de l'aidant  vrifier"
*INPUT W_CodeAidant
*READ ENR_CIVILAIDANT FROM F.CIVILAIDANT, W_CodeAidant THEN
*	W_Ok = "V"
*END ELSE
*	PRINT "Cette rubrique n'existe pas !"
*END
*REPEAT

READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE,"1" ELSE PRINT "ENR_CONSTANTESPAIE<9>= 0"

W_DateDebPer = ICONV("01/":W_MoisDeb[5,2]:"/":W_MoisDeb[1,4],"D4/")
W_DateFinPer = W_MoisFin[5,2] + 1
IF W_DateFinPer = 13 THEN
	W_DateFinPer = ICONV("31/12/":W_MoisFin[1,4],"D4/")
END ELSE
	W_DateFinPer = ICONV("01/":W_DateFinPer:"/":W_MoisFin[1,4],"D4/")-1
END

EXECUTE 'SELECT CONTRAT AVEC 65 # "O" AND AVEC 7 <= "':W_DateFinPer:'" AND AVEC 8 >= "':W_DateDebPer:'" OR = "" AND AVEC 2 = "':W_CodeAsso:'" PAR @ID PAR-DECR 7' 
EXECUTE 'SAUVE-LISTE W_ReqCont'
EXECUTE 'LISTE W_ReqCont' RETURNING MSGCODE
IF MSGCODE # 209 THEN
SELECT F.CONTRAT TO W_ReqCont
W_FinCont = ""
W_CodeAidant = ""
LOOP
	READNEXT W_CleCont FROM W_ReqCont ELSE W_FinCont = "V"
WHILE W_FinCont # "V"
	IF W_CleCont[1,5] # W_CodeAidant THEN
		READ ENR_CONTRAT FROM F.CONTRAT,W_CleCont[1,8] THEN
		W_PROFIL=ENR_CONTRAT<26>
		W_CodeAidant = W_CleCont[1,5]
		READ ENR_CIVILAIDANT FROM F.CIVILAIDANT, W_CodeAidant ELSE ENR_CIVILAIDANT = ""

		READ ENR_PROFIL FROM F.PROFIL,W_PROFIL ELSE ENR_PROFIL=""

		W_NBHRES=0
		W_MOIS60=""
		W_BRUT=0
		W_NETIMP=0
		W_NET=0
		W_PROFIL=""
		W_CUMUL7=0
		W_NBDETAILCALCUL=0
		
		GOSUB 1000
		END
	END
REPEAT
END
STOP

100
* Impression de la rubrique
ENR_HISTORCUMUL<17,i> = W_TabCumulBull<INT(ENR_HISTORCUMUL<15,i>)>
*READ ENR_RUB FROM F.RUBCHARGE, ENR_HISTORCUMUL<15,i> ELSE ENR_RUB = ""
*PRINT ENR_HISTORCUMUL<15,i>:" ":ENR_RUB<1>"L 50":"    Declar : ":ENR_HISTORCUMUL<17,i>/100"R2 8":" Cumul : ":W_TabCumulBull<INT(ENR_HISTORCUMUL<15,i>)>/100"R2 8"
W_TabCumulBull<INT(ENR_HISTORCUMUL<15,i>)>=0
RETURN
200
* Pas de DADS
PRINT "Cet aidant n'a pas de DADS !"
RETURN
300
* Impression de la rubrique
W_CodeRub = i"R%3"
READ ENR_RUB FROM F.RUBCHARGE, W_CodeRub ELSE ENR_RUB = ""
PRINT W_CodeRub:" ":ENR_RUB<1>"L 50":"    Declar :      0,00":" Cumul : ":W_TabCumulBull<i>/100"R2 8"
W_TabCumulBull<i> = 0
RETURN

1000
W_Str =  'SELECT DETAILCALCUL AVEC @ID = "':W_CodeAidant:']" AND AVEC 1 = "P" AND AVEC CodAssoContratDetailCalcul = "':W_CodeAsso:'" AND AVEC ConvColContratDetailCalcul # "02" AND AVEC PeriodeDetailCalcul >= "':W_MoisDeb:'" AND AVEC PeriodeDetailCalcul <= "':W_MoisFin:'" PAR PeriodeDetailCalcul PAR NomPrenomAidantDetailCalcul PAR CodeAideDetailCalcul PAR @ID'

EXECUTE W_Str
*PRINTER ON
W_TamponAidant = ""
W_CumulBull = 0
W_NbAidants = 0
W_NbAidantsMod = 0


W_TabCumulBull = ""

IF W_DateFinPer > ENR_CONSTANTESPAIE<9> THEN
	W_PLAFOND = 227900
	W_Conv = "F"
END ELSE
	W_PLAFOND = 1495000
	W_Conv = "V"
END

W_Fin = "F"
LOOP
	READNEXT W_Cle ELSE W_Fin = "V"
WHILE W_Fin = "F"
	

		W_DateBull = ICONV("01/":W_Cle[13,2]:"/":W_Cle[9,4],"D4/")
		IF W_DateBull >= ENR_CONSTANTESPAIE<9> AND W_Conv = "F" THEN
			
				FOR I = 1 TO 200
		  		   W_TabCumulBull<I> = INT(W_TabCumulBull<I> / 6.55957 + 1/2)
				NEXT I	

				W_BRUT=INT(W_BRUT/6.55957 + 1/2)
				W_NETIMP=INT(W_NETIMP/6.55957 + 1/2)
				W_NET=INT(W_NET/6.55957 + 1/2)

				W_Conv = "V"
			

		END
		READ ENR_DETAILCALCUL FROM F.DETAILCALCUL, W_Cle ELSE ENR_DETAILCALCUL = ""
		W_BRUT=W_BRUT+ENR_DETAILCALCUL<7>
		i = 0
		LOOP
			i = i + 1
		WHILE ENR_DETAILCALCUL<8,i> # ""
				IF ENR_DETAILCALCUL<12,i> # "" THEN
					W_TabCumulBull<INT(ENR_DETAILCALCUL<8,i>)>= W_TabCumulBull<INT(ENR_DETAILCALCUL<8,i>)> + ENR_DETAILCALCUL<12,i>	
				END ELSE
					W_TabCumulBull<INT(ENR_DETAILCALCUL<8,i>)>= W_TabCumulBull<INT(ENR_DETAILCALCUL<8,i>)> + ENR_DETAILCALCUL<9,i>	
				END
				
		REPEAT
		
		
		W_NETIMP=W_NETIMP+ENR_DETAILCALCUL<15>
		W_NET=W_NET+ENR_DETAILCALCUL<16>

		W_NBHRES=W_NBHRES+ENR_DETAILCALCUL<6>
		IF ENR_DETAILCALCUL<6>>="6000" THEN W_MOIS60=W_Cle[9,6]
		W_NBDETAILCALCUL = W_NBDETAILCALCUL + 1

REPEAT
IF W_Conv = "F" THEN
	FOR I = 1 TO 200


		W_TabCumulBull<I> = INT(W_TabCumulBull<I> / 6.55957 + 1/2)
	
	NEXT I	
	W_BRUT=INT(W_BRUT/6.55957 + 1/2)
	W_NETIMP=INT(W_NETIMP/6.55957 + 1/2)
	W_NET=INT(W_NET/6.55957 + 1/2)


	W_Conv = "V"
END
			

READ ENR_HISTORCUMUL FROM F.HISTORCUMUL, W_CodeAidant[1,5]:W_MoisFin[1,4]:W_CodeAsso THEN

	IF ENR_HISTORCUMUL<7> - W_BRUT > 1 OR ENR_HISTORCUMUL<7> - W_BRUT < -1 THEN
		PRINT W_CodeAidant:" ":ENR_CIVILAIDANT<4>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
		PRINT "CUMUL DADS : ":ENR_HISTORCUMUL<5>/100"R2 10":" - Cumul des bruts : ":W_BRUT/100"R2 10"
		PRINT " "
	END

	GOSUB 2000

			
END ELSE
	ENR_HISTORCUMUL = ""
	PRINT W_CodeAidant:" ":ENR_CIVILAIDANT<4>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
	GOSUB 200
		PRINT "CUMUL DADS : ":ENR_HISTORCUMUL<5>/100"R2 10":" - Cumul des bruts : ":W_BRUT/100"R2 10"
		PRINT " "
	GOSUB 2000
END

RETURN

*************************************
* MAJ HISTORCUMUL				*
*************************************
2000
	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*W_PLAFOND
	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"
	

	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>=W_TabCumulBull<ENR_PROFIL<3,I>>
	     W_TabCumulBull<ENR_PROFIL<3,I>> = 0
	     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	
	DERNIER = I
	FOR I = 1 TO 200
		IF W_TabCumulBull<I> # 0 AND W_TabCumulBull<I> # "" THEN
		   READ ENR_RUBCHARGE FROM F.RUBCHARGE,I"R%3" ELSE ENR_RUBCHARGE=""	     

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



		END
	NEXT I

	WRITE ENR_HISTORCUMUL ON F.HISTORCUMUL,W_CodeAidant[1,5]:W_MoisFin[1,4]:W_CodeAsso 

RETURN
