EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
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
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
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> = "Code;Nom aidant;Date naissance;Sexe;Employeur;Type contrat;Type personnel;Nature;Date debut;Date fin;Nb hres total;Salaire total;Categorie;Qualification professionnelle;Pourcentage tx plein;Diplome;Formation;Experience;MotifCDD;Taux horaire;Solde modulation"
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
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
W_HresRef = 182000
IF ENR_CONTRAT<7> > W_DateDeb THEN
	IF W_datefin # "" AND ICONV(W_datefin,"D4/") < W_DateFin THEN
		W_NbJours = ICONV(W_datefin,"D4/") - ENR_CONTRAT<7> + 1
		W_HresRef = INT(W_HresRef * W_NbJours /365 + 1/2)
	END ELSE
		W_NbJours = W_DateFin - ENR_CONTRAT<7> + 1
		W_HresRef = INT(W_HresRef * W_NbJours /365 + 1/2)
	END
END ELSE
	IF W_datefin # "" AND W_datefin < W_DateFin THEN
		W_NbJours = ICONV(W_datefin,"D4/") - ICONV(W_DateDeb,"D4/") + 1
		W_HresRef = INT(W_HresRef * W_NbJours /365 + 1/2)
	END
END
W_SoldeModul = 0
i = 0
LOOP
i = i + 1
WHILE ENR_CONTRAT<76,i> # ""
	W_SoldeModul = W_SoldeModul + ENR_CONTRAT<80,i> - ENR_CONTRAT<100,i>
REPEAT
W_PourCent = INT(W_Total/W_HresRef * 100 + 1/2) 
Result<-1>= W_DernCont[1,5]:";":ENR_CIVILAIDANT<1>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>:";":OCONV(ENR_CIVILAIDANT<26>,"D4/"):";":ENR_CIVILAIDANT<16>:";":ENR_CONTRAT<3>:";":ENR_CONTRAT<4>:";":ENR_CONTRAT<6>:";":ENR_CONTRAT<13>:";":OCONV(ENR_CONTRAT<7>,"D4/"):";":W_datefin:";":OCONV(W_Total,"MR2"):";":OCONV(W_TotalSal,"MR2"):";":W_Grille:";":ENR_CONTRAT<16,i>:";":OCONV(W_PourCent,"MR2"):";":W_Dipl:";":W_Form:";":W_Exp:";":W_LibMotif:";":OCONV(W_SORTIE<2>,"MR3"):";":OCONV(W_SoldeModul,"MR2")
END
RETURN
