************************************************************
* Liste le personnel prestataire present a la date systeme *
* DA170-01                                                 *
* ALAIN 22/10/2003                                         *
************************************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","FUSION" TO F.FUSION ELSE STOP
OPEN "","GRILLESCC" TO F.GRILLESCC ELSE STOP
OPEN "","PERIODESPAIE" TO F.PERIODESPAIE ELSE STOP

W_RESULTAT = ""
ENR_FUSION = ""

READ ENR_PERIODE FROM F.PERIODESPAIE,"1" ELSE ENR_PERIODE = ""
W_PERIODE = ENR_PERIODE<2>
MOIS = W_PERIODE[5,2]
AN = W_PERIODE[1,4]
W_DATESEL = '01/':MOIS:"/":AN
W_DATESEL = ICONV(W_DATESEL,"D4/")
MOIS = MOIS + 1
IF MOIS > 12 THEN
	AN = AN + 1
	MOIS = "01"
END
MOIS = MOIS "R(%2)"
W_PERIODEFIN = '01/':MOIS:'/':AN
W_PERIODEFIN = (ICONV(W_PERIODEFIN,"D4/")-1)

W_PERIODE = ENR_PERIODE<1>
MOIS = W_PERIODE[5,2]
AN = W_PERIODE[1,4]
MOIS = MOIS + 1
IF MOIS > 12 THEN
	AN = AN + 1
	MOIS = "01"
END
MOIS = MOIS "R(%2)"
W_PERIODE1FIN = '01/':MOIS:'/':AN
W_PERIODE1FIN = (ICONV(W_PERIODE1FIN,"D4/")-1)

W_REQ = 'SSELECT CONTRAT AVEC 65 # "O" AND AVEC 1 = "02" AND AVEC 7 <= "':W_DATESEL:'" AND AVEC 8 => "':W_DATESEL:'" OR = "" PAR NomPrenomAidantContrat'

EXECUTE W_REQ
EXECUTE 'SAUVE-LISTE W_RESULTAT' 
EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE

IF MSGCODE<1> # 209 THEN

	W_FINI = "FAUX"
	W_AIDANT=""
	CLE.CONTRAT=""
	ENR_FUSION = ""
	I = 1
	GOSUB 10

	SELECT F.CONTRAT TO W_RESULTAT

    	LOOP
		READNEXT CLE.CONTRAT FROM W_RESULTAT ELSE W_FINI="VRAI"
	WHILE W_FINI = "FAUX" DO
		READ ENR_CONTRAT FROM F.CONTRAT,CLE.CONTRAT ELSE ENR_CONTRAT = ""

		W_FINRECH="NON"
		IRECH=DCOUNT(EXTRACT(ENR_CONTRAT,15),CHAR(253))
		W_NOAVENANT=IRECH
		LOOP
			IF IRECH=0 THEN W_FINRECH="OUI"
		UNTIL W_FINRECH="OUI" DO
			DatEffetContrat=EXTRACT(ENR_CONTRAT,15,IRECH)
			IF DatEffetContrat<=W_PERIODE1FIN THEN
				W_FINRECH="OUI"
				W_NOAVENANT=IRECH
			END ELSE
				IRECH=IRECH-1
			END
		REPEAT

		W_PARAMS=""
		W_SORTIE=""
		W_PARAMS<1>=CLE.CONTRAT
		W_PARAMS<2>=W_NOAVENANT
		W_PARAMS<3>=ENR_PERIODE<1>
		CALL CALCCOEFFTXHOR("",W_PARAMS,W_SORTIE)
		W_TAUXHOR=W_SORTIE<2>

		W_FINRECH="NON"
		IRECH=DCOUNT(EXTRACT(ENR_CONTRAT,15),CHAR(253))
		W_NOAVENANT=IRECH
		LOOP
			IF IRECH=0 THEN W_FINRECH="OUI"
		UNTIL W_FINRECH="OUI" DO
			DatEffetContrat=EXTRACT(ENR_CONTRAT,15,IRECH)
			IF DatEffetContrat<=W_PERIODEFIN THEN
				W_FINRECH="OUI"
				W_NOAVENANT=IRECH
			END ELSE
				IRECH=IRECH-1
			END
		REPEAT
		W_PARAMS=""
		W_SORTIE=""
		W_PARAMS<1>=CLE.CONTRAT
		W_PARAMS<2>=W_NOAVENANT
		W_PARAMS<3>=ENR_PERIODE<2>
		CALL CALCCOEFFTXHOR("",W_PARAMS,W_SORTIE)
		W_TAUXHORSUIV=W_SORTIE<2>

		IF W_TAUXHOR <> W_TAUXHORSUIV THEN
			I = I + 1
			W_AIDANT = CLE.CONTRAT[1,5]
			READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_AIDANT ELSE ENR_CIVILAIDANT = ""
			W_AIDE = ENR_CONTRAT<3>
			READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_AIDE ELSE ENR_CIVILAIDE = ""
			*Donnes aidant 
			GOSUB 100
			ENR_FUSION<I,1> = W_AIDANT
			ENR_FUSION<I,2> = W_Nom
			ENR_FUSION<I,3> = W_Adr1
			ENR_FUSION<I,4> = W_Adr2	
			ENR_FUSION<I,5> = W_CP
			ENR_FUSION<I,6> = W_Ville
			*Donnes aid 
			GOSUB 200
			ENR_FUSION<I,7> = W_AIDE
			ENR_FUSION<I,8> = W_Nom
			ENR_FUSION<I,9> = W_Adr1
			ENR_FUSION<I,10> = W_Adr2	
			ENR_FUSION<I,11> = W_CP
			ENR_FUSION<I,12> = W_Ville
			READ ENR_GRILLE FROM F.GRILLESCC,ENR_CONTRAT<20,W_NOAVENANT> ELSE ENR_GRILLE = ""
			ENR_FUSION<I,13> = ENR_GRILLE<1>
			ENR_FUSION<I,14> = (W_TAUXHOR/1000)
			ENR_FUSION<I,15> = (W_TAUXHORSUIV/1000)
			ENR_FUSION<I,16> = OCONV(ENR_CONTRAT<21,W_NOAVENANT>,"D4/")
			ENR_FUSION<I,17> = (ENR_CONTRAT<70>/100)
			ENR_FUSION<I,18> = OCONV((ENR_CONTRAT<21,W_NOAVENANT> + ENR_FUSION<I,17>),"D4/")
		END
		
	REPEAT

	CONVERT CHAR(253) TO ';' IN ENR_FUSION
	W_CLEFUSION = 'INFOEMPLOYEURSTH.CSV'

	WRITE ENR_FUSION TO F.FUSION,W_CLEFUSION

END ELSE

	PRINT 'AUCUNE DONNES DISPONIBLE POUR CE TYPE DE PERSONNEL'

END

STOP

10
******************************
* GENRATION LIGNE DE LIBELLE *
******************************

ENR_FUSION<I,1> = 'code aidant'
ENR_FUSION<I,2> = 'nom-prnom aidant'
ENR_FUSION<I,3> = '1ere ligne adresse aidant'
ENR_FUSION<I,4> = 'complment adresse aidant'
ENR_FUSION<I,5> = 'code postal aidant'
ENR_FUSION<I,6> = 'commune aidant'
ENR_FUSION<I,7> = 'code aid'
ENR_FUSION<I,8> = 'nom-prnom aid'
ENR_FUSION<I,9> = '1ere ligne adresse aid'
ENR_FUSION<I,10> = 'complment adresse aid'
ENR_FUSION<I,11> = 'code postal aid'
ENR_FUSION<I,12> = 'commune aid'
ENR_FUSION<I,13> = 'libell grille droulement carrire'
ENR_FUSION<I,14> = 'taux horaire actulel'
ENR_FUSION<I,15> = 'taux horaire priode+1'
ENR_FUSION<I,16> = 'date dpart calcul grille'
ENR_FUSION<I,17> = 'nombre de jours de suspension'
ENR_FUSION<I,18> = 'date d anciennet reconstitue'

RETURN
100
*************************************************
* 		Donnes aidant			      *
*************************************************
W_Nom = ""
W_Adr1 = ""
W_Adr2 = ""
W_CP = ""
W_Ville = ""

W_Nom = ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>
W_Adr1 = TRIM(ENR_CIVILAIDANT<5>:" ":ENR_CIVILAIDANT<6>:" ":ENR_CIVILAIDANT<7>:" ":ENR_CIVILAIDANT<8>)
W_Adr2 = TRIM(ENR_CIVILAIDANT<9>)
IF W_Adr1 = "" THEN
	W_Adr1 = W_Adr2
	W_Adr2 = ""
END
CONVERT ";" TO ' ' IN W_Adr1
CONVERT ";" TO ' ' IN W_Adr2

W_CP = ENR_CIVILAIDANT<10>
W_Ville = ENR_CIVILAIDANT<11>

RETURN
200
*************************************************
* 		Donnes aid			      *
*************************************************
W_Nom = ""
W_Adr1 = ""
W_Adr2 = ""
W_CP = ""
W_Ville = ""

W_Nom = ENR_CIVILAIDE<2>:' ':ENR_CIVILAIDE<3>
W_Adr1 = TRIM(ENR_CIVILAIDE<5>:" ":ENR_CIVILAIDE<6>:" ":ENR_CIVILAIDE<7>:" ":ENR_CIVILAIDE<8>)
W_Adr2 = TRIM(ENR_CIVILAIDE<9>)
IF W_Adr1 = "" THEN
	W_Adr1 = W_Adr2
	W_Adr2 = ""
END
CONVERT ";" TO ' ' IN W_Adr1
CONVERT ";" TO ' ' IN W_Adr2

W_CP = ENR_CIVILAIDE<10>
W_Ville = ENR_CIVILAIDE<11>

RETURN
