**************************************************************
*      Gnration rubrique HEURES ABSENCES DU 16 MAI   	 *
*										 *
*     FANNY                                 27/05/2005       *
**************************************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","TELEGESTION" TO F.TELEGESTION ELSE STOP
OPEN "","DETAILPREST" TO F.DETAILPREST ELSE STOP


**********************************************************
* Selection des contrats de travail prestataires de type *
* mensualis - production actif au 16 mai 2005		   *
**********************************************************
W_Requete = ""
W_Cle = ""
W_RequeteTelegestion = ""
W_CleTelegestion = ""
W_CumulHeures = 0
W_NbreHre = 0

W_Requete = 'SELECT DETAILPREST AVEC 5 = "109" PAR 0'


EXECUTE W_Requete
EXECUTE 'SAUVE-LISTE W_Requete'
EXECUTE 'LISTE W_Requete' RETURNING MSGCODE


IF MSGCODE<1> # "209" THEN

	SELECT F.DETAILPREST TO W_Requete
	W_Fin = "Faux"
	LOOP
	   READNEXT W_Cle FROM W_Requete ELSE W_Fin = "Vrai"
	WHILE W_Fin = "Faux" DO
	   W_ValeurJour = 0
			
	   READ ENR_DETAILPREST FROM F.DETAILPREST,W_Cle THEN

		***************************************************************
		* rcupration du nombre d'heures dans le fichier TELEGESTION *
		***************************************************************

		W_RequeteTelegestion = 'SELECT TELEGESTION AVEC CodeAidant = "':W_Cle[1,5]:'" AND AVEC DateInterv = "13651" PAR 0'


		EXECUTE W_RequeteTelegestion
		EXECUTE 'SAUVE-LISTE W_RequeteTelegestion'
		EXECUTE 'LISTE W_RequeteTelegestion ' RETURNING MSGCODE

		IF MSGCODE<1> # "209" THEN
		   SELECT F.TELEGESTION TO W_RequeteTelegestion
		   W_Terminer = "Faux"
		   LOOP
			READNEXT W_CleTelegestion FROM W_RequeteTelegestion ELSE W_Terminer = "Vrai"
		   WHILE W_Terminer="Faux" DO
			READ ENR_TELEGESTION FROM F.TELEGESTION,W_CleTelegestion THEN
			   W_NbreHre=FIELD(ENR_TELEGESTION<1>,";",8) + FIELD(ENR_TELEGESTION<1>,";",9)
			   W_CumulHeures = W_CumulHeures + W_NbreHre
			END							
		   REPEAT
		END
		W_CumulHeures = INT(W_CumulHeures * 100/60 + (1/2))

		FOR i=0 TO DCOUNT(ENR_DETAILPREST<5>,CHAR(253))
		   IF ENR_DETAILPREST<5,i> = "109" THEN
		   	IF ENR_DETAILPREST<6,i> > W_CumulHeures THEN
		         * la diffrence est gnr en MOI dans le fichier DETAILPREST *
		         ENR_DETAILPREST<5,-1> = "838"
		         ENR_DETAILPREST<6,-1> = ENR_DETAILPREST<6,i> - W_CumulHeures 
		         ENR_DETAILPREST<7,-1> = 0
		         ENR_DETAILPREST<8,-1> = 0
		         ENR_DETAILPREST<9,-1> = 001001	
		         WRITE ENR_DETAILPREST TO F.DETAILPREST, W_Cle
			   EXIT
			END
		   END 
		NEXT i

		W_CumulHeures = 0

	   END
   	REPEAT
END

STOP   
