**************************************************************
*  comptabilisation des heures prestataires par organisme    *
*  de prise en charge de type principal effectues par les   *
*  salaris en catgorie C					 	 *
*										 *
*  FANNY                                 04/07/2005          *
**************************************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACCORD" TO F.ACCORD ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","FUSION" TO F.FUSION ELSE STOP
OPEN "","GRILLESCC" TO F.GRILLESCC ELSE STOP
OPEN "","HRESHISTOR" TO F.HRESHISTOR ELSE STOP
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE STOP


PRINT "Veuillez saisir la priode de traitement (AAAAMM)"
INPUT W_Periode

W_RequeteAccord = ""
W_RequeteContrat = ""
W_AncienOrg = ""
W_Tableau = ""
W_HeuresFacturees = 0
W_HeuresCategC = 0
i = 1

***************************************************************************
* Selection des accords de prise en charge prestataires de type principal *
***************************************************************************

W_RequeteAccord = 'SELECT ACCORD AVEC TypeActOrg = "P" AND AVEC TypeOrg = "P" AND AVEC 14="':W_Periode:'" AND AVEC 18="" PAR LibOrgAccord'

EXECUTE W_RequeteAccord
EXECUTE 'SAUVE-LISTE W_RequeteAccord'
EXECUTE 'LISTE W_RequeteAccord' RETURNING MSGCODE

* entte du tableau
   W_Tableau<i,1> = "Nom organisme"
   W_Tableau<i,2> = "Heures factures"
   W_Tableau<i,3> = "Heures catgorie C"

*conversion de la date
   W_Mois=W_Periode[5,2]
   W_An=W_Periode[1,4]
   W_DateDeb = ICONV("01/":W_Mois:"/":W_An,"D4/")

   W_Mois=W_Mois+1
   IF W_Mois="13" THEN
 	W_Mois="01"
	W_An=W_An+1
   END
   W_DateFin = ICONV("01/":W_Mois:"/":W_An,"D4/")-1



IF MSGCODE<1> # "209" THEN

	SELECT F.ACCORD TO W_RequeteAccord
	W_Fin = "Faux"
	LOOP
	   READNEXT W_CodeAccord FROM W_RequeteAccord ELSE W_Fin = "Vrai"
	WHILE W_Fin = "Faux" DO

	   READ ENR_ACCORD FROM F.ACCORD ,W_CodeAccord THEN


		IF W_AncienOrg # ENR_ACCORD<1> THEN
		   i = i + 1			
		   READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE ENR_ORGPRISECHARGE = "" 
   		   W_Tableau<i,1> = ENR_ORGPRISECHARGE<1>
		   W_Tableau<i,2> = 0
		   W_Tableau<i,3> = 0
		END

		******************************
   		* cumul des heures factures *
		******************************
		j=0
		FOR j=1 TO DCOUNT(ENR_ACCORD<14>, CHAR(253))
		   IF ENR_ACCORD<14,j> = W_Periode THEN
			EXIT	   
		   END 
		NEXT j

   		IF ENR_ACCORD<16,j> # "" THEN
   	 	   W_HeuresFacturees = W_HeuresFacturees + ENR_ACCORD<16,j> 
   		END 

		********************************
  		* cumul des heures catgorie C *
		********************************
		READ ENR_HRESHISTOR FROM F.HRESHISTOR, W_CodeAccord[1,5]:ENR_ORGPRISECHARGE<46>:W_Periode THEN
		   W_HeuresCategC = 0
		   FOR k=1 TO DCOUNT(ENR_HRESHISTOR<1>,CHAR(253))
			W_RequeteContrat = 'SELECT CONTRAT AVEC CodeAidant="':ENR_HRESHISTOR<1,k>:'" AND AVEC TypeActivite = "P" AND AVEC 65 = "" AND AVEC 7 <= "':W_DateFin:'" AND AVEC 8 >= "':W_DateDeb:'" OR = ""'			
		
			EXECUTE W_RequeteContrat
			SELECT F.CONTRAT TO W_RequeteContrat
			W_Fini = "F"

			LOOP
			   READNEXT W_CleContrat FROM W_RequeteContrat ELSE W_Fini = "V"
			WHILE W_Fini = "F"
			   READ ENR_CONTRAT FROM F.CONTRAT, W_CleContrat THEN
			      FOR iContrat = DCOUNT(ENR_CONTRAT<14>,CHAR(253)) TO 1 STEP -1
		   	         IF ENR_CONTRAT<20,iContrat> # "" AND ENR_CONTRAT<15,iContrat> <= W_DateFin THEN
	  		            READ ENR_GRILLESCC FROM F.GRILLESCC, ENR_CONTRAT<20,iContrat> THEN
					   IF ENR_GRILLESCC<7> = "C" THEN
					      W_HeuresCategC = W_HeuresCategC + ENR_HRESHISTOR<2,k>
					   END
				      END
				   END 
			      NEXT iContrat
			   END
			REPEAT

		   NEXT k
		   * si le total des heures de catgorie C est suprieur aux heures factures de l'accord alors total des heures de catgorie C = heures factures de l'accord
		   IF W_HeuresCategC > W_HeuresFacturees THEN
			W_HeuresCategC = W_HeuresFacturees
		   END

		END 
	
		W_Tableau<i,2> = W_Tableau<i,2> + W_HeuresFacturees
		W_Tableau<i,3> = W_Tableau<i,3> + W_HeuresCategC 

		W_HeuresFacturees = 0
		W_HeuresCategC = 0

	      W_AncienOrg = ENR_ACCORD<1>
	   END

   	REPEAT

FOR iParcours = 2 TO i
   W_Tableau<iParcours,2> = W_Tableau<iParcours,2> *0.01 
   W_Tableau<iParcours,3> = W_Tableau<iParcours,3> *0.01  
NEXT iParcours


* ecriture dans le dossier FUSION

   CONVERT CHAR(253) TO ";" IN W_Tableau
   W_Date = OCONV(DATE(),"D4/")
   W_Date = ICONV(W_Date,"MCN")
   W_Date=W_Date[5,4]:W_Date[3,2]:W_Date[1,2]
   W_ClefFichier = "COMPTHRESCATEGC":"-":W_Periode:"-"
   W_Ordre = 0 
   LOOP
      W_Ordre = W_Ordre + 1
      READ ENR_FUSION FROM F.FUSION,W_ClefFichier:W_Ordre:".csv" ELSE ENR_FUSION = ""
   UNTIL ENR_FUSION = ""
   REPEAT
   WRITE W_Tableau TO F.FUSION,W_ClefFichier:W_Ordre:".csv"

END

PRINT "Le fichier ":W_ClefFichier:W_Ordre:".csv":" est gnr dans le rpertoire FUSION"

STOP   

