**********************************************************
*  comptage du nbre d'heures par poste  pouvoir
*  Vanessa
*  OCTOBRE 2005
**********************************************************

* Ouvertures des fichiers

EXECUTE "DATE.FORMAT"
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "OUVERTURE CIVILAIDANT" ;* en lecture
OPEN "","DETAILINTER" TO F.DETAILINTER ELSE PRINT "OUVERTURE DETAILINTER" ;* en lecture
OPEN "","MISSIONSAIDANT" TO F.MISSIONSAIDANT ELSE PRINT "OUVERTURE MISSIONSAIDANT" ;* en lecture
OPEN "","RUBSAISIE" TO F.RUBSAISIE ELSE PRINT "OUVERTURE RUBSAISIE" ;* en lecture
OPEN "","SECTEUR" TO F.SECTEUR ELSE PRINT "OUVERTURE SECTEUR" ;* en lecture
OPEN "","STATAIDANT" TO F.STATAIDANT ELSE PRINT "OUVERTURE STATAIDANT" ;* en criture
OPEN "","TABLES" TO F.TABLES ELSE PRINT "OUVERTURE TABLES" ;* en lecture
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en criture 
*********************************************************
* initialisation des variables

W_Ligne=1
W_NumOrdre=1
ENR_TEMPO=""
W_Poste=""
W_Tab=""
W_Heure=0
W_Rupture=""
W_RequeteInter=""
*********************************************************
* Recuperation des arguments

PROCREAD ARGUMENTS ELSE STOP
W_Entite=FIELD(ARGUMENTS,"|",2)
W_DebPeriode=FIELD(ARGUMENTS,"|",3)
W_FinPeriode=FIELD(ARGUMENTS,"|",4)
W_Selection=FIELD(ARGUMENTS,"|",5)
W_CodeSelect=FIELD(ARGUMENTS,"|",6)
W_User=FIELD(ARGUMENTS,"|",7)
W_TypeEdition=FIELD(ARGUMENTS,"|",8)

*********************************************************
* PROGRAMME PRINCIPAL

	EXECUTE 'SET-DEC ,'
	EXECUTE 'SET-THOUS .'

	W_Temp = 'SSELECT DETAILINTER AVEC PeriodeDetailInter >= "':W_DebPeriode:'" AND AVEC PeriodeDetailInter <= "':W_FinPeriode:'"'
	W_Temp = W_Temp:' AND AVEC CodAssoContrat = "':W_Entite:'"'
	IF W_Selection = "C" THEN
		IF W_CodeSelect # "0" THEN
			W_Temp = W_Temp:' AND AVEC LibCommuneAidant = "':W_CodeSelect:'"'
		END
		W_Temp = W_Temp:' PAR LibCommuneAidant'
	END ELSE
		IF W_Selection = "S" THEN
			IF W_CodeSelect # "0" THEN
				W_Temp = W_Temp:' AND AVEC SecteurInter = "':W_CodeSelect:'"'
			END
			W_Temp = W_Temp:' PAR SecteurInter'
		END
	END


	EXECUTE W_Temp
	EXECUTE 'SAUVE-LISTE W_RequeteInter'
	EXECUTE "LISTE W_RequeteInter" RETURNING MSGCODE

	IF MSGCODE<1>=209 THEN
		STOP
	END ELSE
		SELECT F.DETAILINTER TO W_RequeteInter

		W_End = "FAUX"

		LOOP
			READNEXT W_Cle FROM W_RequeteInter ELSE W_End = "VRAI"
		WHILE W_End = "FAUX" DO
			READ ENR_DETAILINTER FROM F.DETAILINTER,W_Cle ELSE ENR_DETAILINTER=""
			READ ENR_MISSIONSAIDANT FROM F.MISSIONSAIDANT,W_Cle[1,5] ELSE ENR_MISSIONSAIDANT=""
			READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_Cle[1,5] ELSE ENR_CIVILAIDANT=""

			IF W_Selection = "S" THEN
				READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR=""
				W_Rupture=ENR_SECTEUR<1>
			END ELSE
				IF W_Selection = "C" THEN
					W_Rupture=ENR_CIVILAIDANT<11>
				END
			END

			W_Heure=0
			W_Count=DCOUNT(ENR_DETAILINTER<1>,CHAR(253))
			FOR i=1 TO W_Count
				READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETAILINTER<1,i> ELSE ENR_RUBSAISIE=""
				IF ENR_RUBSAISIE<2>="3" OR ENR_RUBSAISIE<2>="4" THEN
					W_Heure=W_Heure+ENR_DETAILINTER<2,i>
				END
			NEXT i

			i=1
			LOOP
			UNTIL ENR_MISSIONSAIDANT<11,i>=W_Cle[9,3] OR ENR_MISSIONSAIDANT<11,i>=""
				i=i+1
			REPEAT
			IF ENR_MISSIONSAIDANT<11,i> # "" THEN
				W_Poste=1
				LOOP
				UNTIL (W_Tab<W_Poste,1>=ENR_MISSIONSAIDANT<7,i> AND W_Tab<W_Poste,3>=W_Rupture) OR W_Tab<W_Poste,1>=""
					W_Poste=W_Poste+1
				REPEAT
				IF W_Tab<W_Poste,1>="" THEN
					W_Tab<W_Poste,1>=ENR_MISSIONSAIDANT<7,i>
					W_Tab<W_Poste,2>=W_Heure
					W_Tab<W_Poste,3>=W_Rupture
				END ELSE
					W_Tab<W_Poste,2>=W_Tab<W_Poste,2>+W_Heure
				END

			END

		REPEAT

		GOSUB 10
	END

	EXECUTE 'SET-DEC .'
	EXECUTE 'SET-THOUS ,'

STOP

***************************************************************************************************
* REMPLIR TEMPO
10

	IF W_TypeEdition="2" THEN

		ENR_TEMPO<1>="Tri;Type Emploi;Heures"
		W_CountTab=DCOUNT(W_Tab,CHAR(254))
		FOR i=1 TO W_CountTab
			ENR_TEMPO<i+1>=W_Tab<i,3>:";":W_Tab<i,1>:";":W_Tab<i,2>/100
		NEXT i

	 	W_Ordre=1
   	 	W_Date=OCONV(DATE(),"D4/")
   	 	W_Date=ICONV(W_Date,"MCN")

		W_CleFichier="STATINTERPOSTE-":W_Entite:"-":W_Date:"-"

	 	READ ENR_STATAIDANT FROM F.STATAIDANT,W_CleFichier:W_Ordre:".csv" ELSE ENR_STATAIDANT=""

	 	LOOP
	 	UNTIL ENR_STATAIDANT=""
	    		W_Ordre=W_Ordre+1
	    		READ ENR_STATAIDANT FROM F.STATAIDANT,W_CleFichier:W_Ordre:".csv" ELSE ENR_STATAIDANT=""
	 	REPEAT

      		WRITE ENR_TEMPO ON F.STATAIDANT,W_CleFichier:W_Ordre:".csv"

	 	WRITE W_CleFichier:W_Ordre:".csv" TO F.TEMPO,"STATINTERPOSTE":W_User

	END ELSE

		ENR_TEMPO=W_Tab
	 	WRITE ENR_TEMPO TO F.TEMPO,"STATINTERPOSTE":W_User

	END
	
RETURN
