* Ouvertures des fichiers
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"

OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP

PROCREAD ARGUMENTS ELSE STOP
W_Periode=FIELD(ARGUMENTS," ",2)
W_CodeAsso=FIELD(ARGUMENTS," ",3)
W_TypeAct=FIELD(ARGUMENTS," ",4)
W_TypeGestion=FIELD(ARGUMENTS," ",5)
W_ListeCodeContrat=FIELD(ARGUMENTS," ",6)

W_DebutMois="01/":W_Periode[5,2]:"/":W_Periode[1,4]
PRINT W_DebutMois
W_DebutMois=ICONV(W_DebutMois,"D4/")

W_FinMois=W_DebutMois+32
W_FinMois=OCONV(W_FinMois,"D4/")
W_FinMois="01":W_FinMois[3,8]

W_FinMois=ICONV(W_FinMois,"D4/")-1
W_Heures=""

IF W_ListeCodeContrat="" THEN

	EXECUTE 'SSELECT CONTRAT AVEC 65 # "O" AND AVEC 6 ="P" AND AVEC 2 = "':W_CodeAsso:'" AND AVEC TypeActivite = "':W_TypeAct:'" AND AVEC 7 <= "':W_FinMois:'" AND AVEC 8 >= "':W_FinMois:'" OR = "" PAR CodeAidant'
	W_Fini="FAUX"
	LOOP
        READNEXT W_CodeContrat ELSE W_Fini="VRAI"
    WHILE W_Fini="FAUX" DO
		READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,W_CodeContrat:W_Periode THEN
			* rien  faire car on a un bulletin
		END ELSE
			* Recherche du nombre d'heure
			GOSUB 10
			IF W_Heures # 0 THEN
				* Nourrir les fichiers de saisie des heures
				GOSUB 20
			END
		END
	REPEAT
END ELSE
	*i=2 car on envoi |CodeContrat|CodeContrat2 donc il n'y a rien avant le premier pipe.
	i=2
	LOOP
		W_CodeContrat=FIELD(W_ListeCodeContrat,"|",i)
	WHILE W_CodeContrat # "" DO
		READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,W_CodeContrat:W_Periode THEN
			* rien  faire car on a un bulletin
		END ELSE	
			* Recherche du nombre d'heure
			GOSUB 10
			IF W_Heures # 0 THEN
				* Nourrir les fichiers de saisie des heures
				GOSUB 20
			END			
		END
		i=i+1
	REPEAT
END

STOP

******************************************
* Recherche du nombre d'heure
10
	READ ENR_CONTRAT FROM F.CONTRAT,W_CodeContrat ELSE ENR_CONTRAT= ""
	IF ENR_CONTRAT<5> = "M" THEN
		W_DernierAvenant=DCOUNT(ENR_CONTRAT<24>,CHAR(253))
		W_DureeContrat=ENR_CONTRAT<24,W_DernierAvenant>
		W_FreqContrat=ENR_CONTRAT<25,W_DernierAvenant>
		BEGIN CASE
			CASE W_FreqContrat="1"
				*hebdo
				W_Heures=W_DureeContrat*52/260
			CASE W_FreqContrat="2"
				*quartorzaine
				W_Heures=W_DureeContrat*26/260
			CASE W_FreqContrat="3"
				*mensuelle
				W_Heures=W_DureeContrat*12/260
			CASE W_FreqContrat="4"
				*annuelle
				W_Heures=W_DureeContrat/260
		END CASE
		W_Heures=INT(W_Heures + 1/2)
	END ELSE
		CALL CalcIndLicRet(W_CodeContrat,"JS",W_Heures,W_Periode)
	END
RETURN

******************************************
* Nourrir les fichiers de saisie des heures
20

	BEGIN CASE
		CASE W_TypeAct = "P"
			OPEN "","DETAILPREST" TO F.DETAIL ELSE RETURN
			READ ENR_DETAIL FROM F.DETAIL,W_CodeContrat:W_Periode THEN
				j=1
				LOOP
				WHILE ENR_DETAIL<5,j> # "" DO
					IF ENR_DETAIL<5,j>="839" OR ENR_DETAIL<5,j>="840" OR ENR_DETAIL<5,j>="841" THEN
						ENR_DETAIL=DELETE(ENR_DETAIL,5,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,6,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,7,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,8,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,9,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,14,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,15,j)
						j=j-1
					END
					j=j+1
				REPEAT
			END ELSE 
			   ENR_DETAIL=""
			END
			IF W_TypeGestion="FRAC" THEN
				ENR_DETAIL<5,-1>="839"
				ENR_DETAIL<6,-1>=W_Heures
				ENR_DETAIL<7,-1>="0"
				ENR_DETAIL<8,-1>="0"
				ENR_DETAIL<9,-1>=ENR_CONTRAT<36,1>
				ENR_DETAIL<14,-1>="0"
				ENR_DETAIL<15,-1>=""				
			END ELSE
				ENR_DETAIL<5,-1>="840"
				ENR_DETAIL<6,-1>=W_Heures
				ENR_DETAIL<7,-1>="0"
				ENR_DETAIL<8,-1>="0"
				ENR_DETAIL<9,-1>=ENR_CONTRAT<36,1>
				ENR_DETAIL<14,-1>="0"
				ENR_DETAIL<15,-1>=""
				
				ENR_DETAIL<5,-1>="841"
				ENR_DETAIL<6,-1>=W_Heures
				ENR_DETAIL<7,-1>="0"
				ENR_DETAIL<8,-1>="0"
				ENR_DETAIL<9,-1>=ENR_CONTRAT<36,1>
				ENR_DETAIL<14,-1>="0"
				ENR_DETAIL<15,-1>=""					
			END

		CASE W_TypeAct = "M"
			OPEN "","DETAILMANDAT" TO F.DETAIL ELSE RETURN
			READ ENR_DETAIL FROM F.DETAIL,W_CodeContrat:W_Periode THEN
				j=1
				LOOP
				WHILE ENR_DETAIL<1,j> # "" DO
					IF ENR_DETAIL<1,j>="839" OR ENR_DETAIL<1,j>="840" OR ENR_DETAIL<1,j>="841" THEN
						ENR_DETAIL=DELETE(ENR_DETAIL,1,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,2,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,3,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,4,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,5,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,7,j)
						j=j-1
					END
					j=j+1
				REPEAT
			END ELSE 
				ENR_DETAIL=""
			END
			
			IF W_TypeGestion="FRAC" THEN
				ENR_DETAIL<1,-1>="839"
				ENR_DETAIL<2,-1>=W_Heures
				ENR_DETAIL<3,-1>="0"
				ENR_DETAIL<4,-1>="0"
				ENR_DETAIL<5,-1>=ENR_CONTRAT<36,1>
				ENR_DETAIL<7,-1>=""				
			END ELSE
				ENR_DETAIL<1,-1>="840"
				ENR_DETAIL<2,-1>=W_Heures
				ENR_DETAIL<3,-1>="0"
				ENR_DETAIL<4,-1>="0"
				ENR_DETAIL<5,-1>=ENR_CONTRAT<36,1>
				ENR_DETAIL<7,-1>=""	
				
				ENR_DETAIL<1,-1>="841"
				ENR_DETAIL<2,-1>=W_Heures
				ENR_DETAIL<3,-1>="0"
				ENR_DETAIL<4,-1>="0"
				ENR_DETAIL<5,-1>=ENR_CONTRAT<36,1>
				ENR_DETAIL<7,-1>=""					
			END			
		CASE W_TypeAct = "I"
			OPEN "","DETAILINTER" TO F.DETAIL ELSE RETURN
			READ ENR_DETAIL FROM F.DETAIL,W_CodeContrat:"000":W_Periode THEN
				j=1
				LOOP
				WHILE ENR_DETAIL<8,j> # "" DO
					IF ENR_DETAIL<8,j>="839" OR ENR_DETAIL<8,j>="840" OR ENR_DETAIL<8,j>="841" THEN
						ENR_DETAIL=DELETE(ENR_DETAIL,8,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,9,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,10,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,11,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,12,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,13,j)
						ENR_DETAIL=DELETE(ENR_DETAIL,14,j)
						j=j-1
					END
					j=j+1
				REPEAT
			END ELSE 
			   ENR_DETAIL=""
			END			
			IF W_TypeGestion="FRAC" THEN
				ENR_DETAIL<8,-1>="839"
				ENR_DETAIL<9,-1>=W_Heures
				ENR_DETAIL<10,-1>="0"
				ENR_DETAIL<11,-1>="0"
				ENR_DETAIL<12,-1>=ENR_CONTRAT<36,1>
				ENR_DETAIL<13,-1>=""
				ENR_DETAIL<14,-1>=" "				
			END ELSE
				ENR_DETAIL<8,-1>="840"
				ENR_DETAIL<9,-1>=W_Heures
				ENR_DETAIL<10,-1>="0"
				ENR_DETAIL<11,-1>="0"
				ENR_DETAIL<12,-1>=ENR_CONTRAT<36,1>
				ENR_DETAIL<13,-1>=""
				ENR_DETAIL<14,-1>=" "
				
				ENR_DETAIL<8,-1>="841"
				ENR_DETAIL<9,-1>=W_Heures
				ENR_DETAIL<10,-1>="0"
				ENR_DETAIL<11,-1>="0"
				ENR_DETAIL<12,-1>=ENR_CONTRAT<36,1>
				ENR_DETAIL<13,-1>=""
				ENR_DETAIL<14,-1>=" "					
			END
			W_CodeContrat=W_CodeContrat:"000"
	END CASE

	WRITE ENR_DETAIL ON F.DETAIL,W_CodeContrat:W_Periode
	
RETURN