EXECUTE "SET-THOUS ."
OPEN "", "DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "", "FUSION" TO F.FUSION ELSE STOP
OPEN "", "CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "", "CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "", "ELTSPARTEMP" TO F.ELTSPARTEMP ELSE STOP
OPEN "", "TYPEEXO" TO F.TYPEEXO ELSE STOP
OPEN "","GRILLESCC" TO F.GRILLESCC ELSE STOP
OPEN "","FORMEXPAIDANT" TO F.FORMEXPAIDANT ELSE STOP
OPEN "","TABLES" TO F.TABLES ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "","DETAILPREST" TO F.DETAILPREST ELSE STOP
OPEN "","ARCHIVEBULL" TO F.ARCHIVEBULL ELSE STOP
OPEN "","AIDANTSARCHIVEBULL" TO F.AIDANTSARCHIVEBULL ELSE STOP
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
READ ENR_FORM FROM F.TABLES, "FORMPRO" ELSE ENR_TYPEEXO = ""
READ ENR_DIPL FROM F.TABLES, "DIPLOMES" ELSE ENR_DIPL = ""
W_PerDeb = ""
LOOP
PRINT "Periode debut ? (AAAAMM)"
INPUT W_PerDeb
IF W_PerDeb = "" THEN
	PRINT "Abandon."
	STOP
END
W_DateDeb = "01/":W_PerDeb[5,2]:"/":W_PerDeb[1,4]
IF ICONV(W_DateDeb,"D4/") = "" OR LEN(W_PerDeb) # 6 THEN
	PRINT "Saisie incorrecte"
	W_PerDeb = ""
END 
WHILE W_PerDeb = ""
REPEAT
W_PerFin = ""
LOOP
PRINT "Periode fin ? (AAAAMM)"
INPUT W_PerFin
IF W_PerFin = "" THEN
	PRINT "Abandon."
	STOP
END
W_DateFin = "01/":W_PerFin[5,2]:"/":W_PerFin[1,4]
IF ICONV(W_DateFin,"D4/") = "" OR LEN(W_PerFin) # 6 THEN
	PRINT "Saisie incorrecte"
	W_PerFin = ""
END 
WHILE W_PerFin = ""
REPEAT
PRINT "Code rubrique de saisie ?"
INPUT W_CodeRub
W_DateFin = ICONV(W_DateFin,"D4/") + 32
W_DateFin = OCONV(W_DateFin,"D4/")
W_DateFin = ICONV("01":W_DateFin[3,8],"D4/") - 1
Result = ""
Result<1> = "Secteur;Code;Nom aidant;Total hres forfait;Total hres reelles;Diffrence;Hres forfait x 10%;Hres a majorer;Taux horaire;Majoration de 15%;Cout majoration"
EXECUTE 'SELECT DETAILCALCUL AVEC ConvColContratDetailCalcul  # "02" AND AVEC PeriodeDetailCalcul >= "':W_PerDeb:'" AND <= "':W_PerFin:'" PAR @ID'
W_Fin = "F"
W_DernCont = ""
LOOP
READNEXT W_Cle ELSE W_Fin ="V" 
WHILE W_Fin = "F"
	IF W_Cle[1,8] # W_DernCont THEN
		IF W_DernCont # "" THEN
		   GOSUB 100
		END
		W_DernCont=W_Cle[1,8]
		W_Total = 0
		W_TotalSal = 0
	END 
	READ ENR FROM F.DETAILCALCUL, W_Cle THEN
		W_Total = W_Total + ENR<6>
		W_TotalSal = W_TotalSal + ENR<7> 
	END
REPEAT
GOSUB 100
WRITE Result ON F.FUSION, "ContratsPrest":W_PerDeb:"-":W_PerFin:".csv"
STOP
100
READ ENR_CONTRAT FROM F.CONTRAT, W_DernCont THEN
READ ENR_CIVILAIDANT FROM F.CIVILAIDANT, W_DernCont[1,5] ELSE ENR_CIVILAIDANT = ""
READ ENR_FORMEXPAIDANT FROM F.FORMEXPAIDANT, W_DernCont[1,5] ELSE ENR_FORMEXPAIDANT = ""
W_Dipl = ""
W_Form = ""
W_Exp = ""
IF ENR_FORMEXPAIDANT<2> # "" THEN
	i = 0
	LOOP
		i = i + 1
			WHILE ENR_DIPL<2,i> # ENR_FORMEXPAIDANT<2> AND ENR_DIPL<2,i> # ""
			REPEAT
			W_Dipl = ENR_DIPL<3,i>	
END
IF ENR_FORMEXPAIDANT<6> # "" THEN
    W_DateTemp = ""
	i = 0
	LOOP
		i = i + 1
			WHILE ENR_FORMEXPAIDANT<6,i> # ""
				IF ENR_FORMEXPAIDANT<5,i> > W_DateTemp THEN
					W_DateTemp = ENR_FORMEXPAIDANT<5,i>
					W_Form = ENR_FORMEXPAIDANT<6,i>
				END
			REPEAT
	i = 0
	LOOP
		i = i + 1
			WHILE ENR_FORM<2,i> # W_Form AND ENR_FORM<2,i> # ""
			REPEAT
			W_Form = ENR_FORM<3,i>	
END
W_Exp = ENR_FORMEXPAIDANT<9>
CONVERT CHAR(253) TO "/" IN W_Exp
i = 0
LOOP
i = i + 1
WHILE ENR_CONTRAT<14,i> # "" AND ENR_CONTRAT<15,i> <= W_DateFin
REPEAT
i = i - 1
IF ENR_CONTRAT<15,i> > W_DateDeb THEN
	W_Avenant = "OUI"
END ELSE
	W_Avenant = "NON"
END
BEGIN CASE
      CASE ENR_CONTRAT<25,i> = "1"
   	  W_Hres = INT((ENR_CONTRAT<24,i>*52) + (1/2))
      CASE ENR_CONTRAT<25,i> = "2"
  	  W_Hres = INT((ENR_CONTRAT<24,i>*26) + (1/2))
      CASE ENR_CONTRAT<25,i> = "3"
 	  W_Hres = INT(ENR_CONTRAT<24,i>*12 + 1/2)
      CASE ENR_CONTRAT<25,i> = "4"
   	  W_Hres = INT((ENR_CONTRAT<24,i>) + (1/2))
      CASE 1
	  W_Hres = 0
      END CASE
READ ENR_GRILLESCC FROM F.GRILLESCC, ENR_CONTRAT<20,i> THEN
	W_Grille = ENR_GRILLESCC<7>
END ELSE
	W_Grille = ""
END
W_PARAMS=""
W_SORTIE=""
W_PARAMS<1>=W_DernCont
W_PARAMS<2>="0"
W_PARAMS<3>=W_PerFin
CALL CALCCOEFFTXHOR("",W_PARAMS,W_SORTIE)
* sortie 1 = coef, sortie 2 = taux hor...
IF ENR_CONTRAT<8> = "" THEN
	W_datefin = ""
END ELSE
	W_datefin = OCONV(ENR_CONTRAT<8>,"D4/")
END
W_LibMotif = ENR_CONTRAT<9>:" - ":ENR_CONTRAT<10>
CONVERT CHAR(253) TO "/" IN W_LibMotif
k =0
W_Total = 0
W_TotalSal = 0
W_TotalRegul = 0
LOOP
k = k + 1
WHILE ENR_CONTRAT<76,k> # ""
	W_Total = W_Total + ENR_CONTRAT<77,k> - ENR_CONTRAT<78,k>
	W_TotalSal = W_TotalSal + ENR_CONTRAT<79,k>
	W_TotalRegul = W_TotalRegul + ENR_CONTRAT<100,k>
REPEAT
IF ENR_CONTRAT<68,i>= "1" THEN
	W_Lissage = "Mensualise"
END ELSE
	W_Lissage = "Horaire"
END
*W_PourCent = INT(W_Total/W_HresRef * 100 + 1/2) 
READ ENR_SECT FROM F.SECTEUR, ENR_CIVILAIDANT<31> ELSE ENR_SECT = ""
IF W_Lissage = "Mensualise" AND ENR_CONTRAT<4> = "I" AND ENR_CONTRAT<6>="P" AND (ENR_CONTRAT<8> = "" OR ENR_CONTRAT<8> >= "14489") THEN
  W_PerCent = INT(W_Total/10+1/2)
  W_Diff = W_TotalSal-W_Total
  IF W_Diff > W_PerCent THEN
	W_NbHresMaj = W_Diff - W_PerCent
  END ELSE
	W_NbHresMaj = 0
  END
  W_MajHor = INT(W_SORTIE<2>*0.15+1/2)
  W_MontantMaj = INT(W_MajHor /1000 * W_NbHresMaj + 1/2)
  IF INT(W_MontantMaj) > 0 THEN
    W_Faire = "V"
    READ ENR_DETAILCALCUL FROM F.DETAILCALCUL, W_DernCont:"200709" THEN
	  IF ENR_DETAILCALCUL<1> = "P" THEN
		W_Faire = "F"
	  END ELSE
		IF ENR_DETAILCALCUL<1> = "E" THEN
			DELETE F.ARCHIVEBULL, W_DernCont:"200709001"
			READ ENRTEMP FROM F.AIDANTSARCHIVEBULL, W_DernCont[1,5]:"2007" THEN
			ENRTEMP<9> = ""
			WRITE ENRTEMP ON F.AIDANTSARCHIVEBULL, W_DernCont[1,5]:"2007"
			END
		END
		DELETE F.DETAILCALCUL, W_DernCont:"200709"
	  END
    END
    IF W_Faire = "V" THEN
      Result<-1>= ENR_CIVILAIDANT<31>:" ":ENR_SECT<1>:";":W_DernCont:";":ENR_CIVILAIDANT<1>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>:";":OCONV(W_Total,"MR2"):";":OCONV(W_TotalSal,"MR2"):";":OCONV(W_Diff,"MR2"):";":OCONV(W_PerCent,"MR2"):";":OCONV(W_NbHresMaj,"MR2"):";":OCONV(W_SORTIE<2>,"MR3"):";":OCONV(W_MajHor,"MR3"):";":OCONV(W_MontantMaj,"MR2")
	  READ ENR_DETAILPREST FROM F.DETAILPREST, W_DernCont:"200709" THEN
		W_Count = DCOUNT(ENR_DETAILPREST<5>,CHAR(253))
		ENR_DETAILPREST<5,W_Count+1> = W_CodeRub 
		ENR_DETAILPREST<6,W_Count+1> = W_NbHresMaj 
		ENR_DETAILPREST<7,W_Count+1> = W_MajHor * 10
		ENR_DETAILPREST<8,W_Count+1> = W_MontantMaj
		ENR_DETAILPREST<9,W_Count+1> = ENR_CONTRAT<36,1>
		WRITE ENR_DETAILPREST ON F.DETAILPREST, W_DernCont:"200709"
	  END ELSE
		PRINT "Aidant : ":W_DernCont[1,5]:" pas de saisie !"
	  END
    END ELSE
		PRINT W_DernCont:" pas mis a jour ..."
    END
  END
END
END
RETURN
