***********************************************************************************
***********************************************************************************
**                                                                               **
** Statistiques sur la periode de rfrence                                      **
**                                                                               **
**                                                                               **
** Le 12/05/05                                                  Fanny            **
**                                                                               **
***********************************************************************************
***********************************************************************************

SUBROUTINE SSIADSTATINTEXT(RETURNVAL, ENTREE, SORTIE)
RETURNVAL=1000

***********************************************************************************
**                                                                               **
**                       Ouverture des fichiers                                  **
**                                                                               **
***********************************************************************************
EXECUTE "SET-THOUS ."
OPEN "", "ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "", "CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "", "INTERVENANTEXT" TO F.INTERVENANTEXT ELSE STOP 
OPEN "", "RESPONSABLE" TO F.RESPONSABLE ELSE STOP
OPEN "", "SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "", "SSIADHISTACTINTEXT" TO F.SSIADHISTACTINTEXT ELSE STOP 
OPEN "", "STATAIDE" TO F.STATAIDE ELSE STOP
OPEN "", "TABLES" TO F.TABLES ELSE STOP



EXECUTE "DATE.FORMAT"
EXECUTE "SET-DEC ,"
W_RequeteSsiadHistAct=""

***********************************************************************************
**                                                                               **
**                      Rcupration des arguments                               **
**                                                                               **
***********************************************************************************

! le numro de l'association
W_Asso = ENTREE<1>

! le type de selection (A = activite SE= service SA= sans)
W_ChoixSelect = ENTREE<2>

! le numro de la selection
W_CodeSelect = ENTREE<3>

! le type de slection/tri (R= Responsable, S= Secteur ou C=Commune)
W_ChoixTri = ENTREE<4>

! le code de cette slection (ou le libel pour la commune)
W_CodeTri = ENTREE<5>

! le dbut de la priode de rfrence
W_Debut = ICONV(ENTREE<6>,"D4/")

! la fin   de la priode de rfrence
W_Fin = ICONV(ENTREE<7>,"D4/")

! le type de statistique (IL=Intervenants libraux) 
W_TypeStat = ENTREE<8>

! le type d'dition (F=fichier ou S=statistique)
W_Edit = ENTREE<9>

!Code de la commune
W_CodeCommune = ENTREE<10>


   W_Tableau=""
	BEGIN CASE
		CASE W_ChoixTri ="R"
			W_Tableau = "Responsable"
		CASE W_ChoixTri ="S"
			W_Tableau = "Secteur"
		CASE W_ChoixTri ="C"
			W_Tableau = "Commune"
		CASE 1
			W_Tableau = "Totalit"
	END CASE
	
	W_Tableau = W_Tableau:";"
	W_Tableau = W_Tableau:"Intervenants Libraux;Effectif;Nombre de visites effectues"
	W_Tableau = W_Tableau:";Nombre d'AMI;Nombre d'AIS;Montant des honoraires pays"
   
	W_Tableau<2,2> = "Infirmiers libraux"
	W_Tableau<3,2> = "Pdicures"
	W_Tableau<4,2> = "Autres"
		   
	W_Libelle = ""		   
	IF W_ChoixTri = "R" THEN
		READ ENR_RESPONSABLE FROM F.RESPONSABLE, W_CodeTri ELSE ENR_RESPONSABLE = ""
		W_Libelle = ENR_RESPONSABLE<1>
	   END

	   IF W_ChoixTri = "S" THEN
		  READ ENR_SECTEUR FROM F.SECTEUR, W_CodeTri ELSE ENR_SECTEUR = ""
		  W_Libelle = ENR_SECTEUR<1>
	   END

	   IF W_ChoixTri = "C" THEN
		  W_Libelle = W_CodeTri
	   END 

   W_Tableau<2,1> = W_Libelle
   W_Tableau<3,1> = W_Libelle
   W_Tableau<4,1> = W_Libelle
  	

********************************************************
* SELECTION DES ARTICLES DU FICHIER SSIADHISTACTINTEXT *
********************************************************

W_Requete = 'SELECT SSIADHISTACTINTEXT AVEC 8 <= "':W_Fin:'" AND AVEC 8 >= "':W_Debut:'" PAR 0'

IF W_CodeSelect # "" THEN
	IF W_ChoixSelect="A" THEN
   		W_Requete = W_Requete:' AND AVEC 9 = "':W_Asso:W_CodeSelect:'"'
	END
END

EXECUTE W_Requete
EXECUTE 'SAUVE-LISTE W_RequeteSsiadHistAct'
EXECUTE "LISTE W_RequeteSsiadHistAct" RETURNING MSGCODE
IF MSGCODE<1>=209 THEN
   * Sortie de la SUBROUTINE
   RETURNVAL=2000
   RETURN
END ELSE
   SELECT F.SSIADHISTACTINTEXT TO W_RequeteSsiadHistAct
END

****************************
* REMPLISSAGE DES COLONNES *
****************************

W_Fini = "Faux"
W_CleHistAct = ""
W_CodeIntervenant = ""
W_Tableau<2,3> = 0
W_Tableau<3,3> = 0
W_Tableau<4,3> = 0

W_Tableau<2,4> = 0
W_Tableau<3,4> = 0
W_Tableau<4,4> = 0

W_Tableau<2,5> = 0
W_Tableau<3,5> = 0
W_Tableau<4,5> = 0

W_Tableau<2,6> = 0
W_Tableau<3,6> = 0
W_Tableau<4,6> = 0

W_Tableau<2,7> = 0
W_Tableau<3,7> = 0
W_Tableau<4,7> = 0


LOOP

   READNEXT W_CleHistAct FROM W_RequeteSsiadHistAct ELSE W_Fini = "Vrai"

WHILE W_Fini = "Faux"

   READ ENR_SSIADHISTACTINTEXT FROM F.SSIADHISTACTINTEXT,W_CleHistAct ELSE ENR_SSIADHISTACTINTEXT = ""

   *verifie que le code de l'entit (association) est le bon
   W_Entite = "Vrai"
   IF W_Asso # "" THEN
		IF W_CleHistAct[16,3] <> W_Asso THEN
		   W_Entite = "Faux"
		END
   END
   
   READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_SSIADHISTACTINTEXT<9,1,1> ELSE ENR_ACTIVITES = ""

   *verifie que le code du service est le bon
   W_Service = "Vrai"
   IF W_CodeSelect # "" THEN
		IF W_ChoixSelect="SE" THEN
		   IF ENR_ACTIVITES<13> <> W_CodeSelect THEN 
				W_Service = "Faux"
		   END 
		END
   END

   IF W_Entite= "Vrai" AND W_Service = "Vrai"  THEN

		IF ENR_SSIADHISTACTINTEXT <> "" THEN
			READ ENR_INTERVENANTEXT FROM F.INTERVENANTEXT,W_CleHistAct[1,5]  THEN		
				READ ENR_TABLES FROM F.TABLES, "AUTRINTERVENANT" ELSE ENR_TABLES = ""
		
				FOR i= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
			        IF ENR_INTERVENANTEXT<1>=ENR_TABLES<2,i> THEN

						***********************************************************
						* REMPLISSAGE DES COLONNES POUR 04 : INFIRMIERS LIBERAUX  *
						***********************************************************
						*Modification mikael le 18/09/2006
						*IF ENR_TABLES<4,i> = "04" THEN
						IF ENR_TABLES<4,i> = "01" THEN

							W_AideTrouve = "Faux"
							FOR j=1 TO DCOUNT(ENR_SSIADHISTACTINTEXT<1>, CHAR(253))
								W_Tri = "Vrai"
								IF W_ChoixTri # "T" THEN
								   READ ENR_CIVILAIDE FROM F.CIVILAIDE, ENR_SSIADHISTACTINTEXT<1,j> ELSE ENR_CIVILAIDE="" 
								   IF W_ChoixTri = "R" THEN
										IF W_CodeTri # ENR_CIVILAIDE<39> THEN
										   W_Tri = "Faux"
										END
								   END
								   IF W_ChoixTri = "S" THEN
										IF W_CodeTri # ENR_CIVILAIDE<40>[1,3] THEN
										   W_Tri = "Faux"
										END
								   END
								   IF W_ChoixTri = "C" THEN
										IF W_CodeCommune #  ENR_CIVILAIDE<41> THEN
										   W_Tri = "Faux"
										END
								   END
								END

								IF W_Tri = "Vrai" THEN
									W_AideTrouve = "Vrai"
							        FOR k=1 TO DCOUNT(ENR_SSIADHISTACTINTEXT<3,j>, CHAR(252))
										W_Act = "Vrai"

									    IF W_ChoixSelect="A" THEN	
											IF W_Asso:W_CodeSelect <> ENR_SSIADHISTACTINTEXT<9,j,k> THEN 
											  W_Act = "Faux"
											END
									    END

										IF W_Act="Vrai" THEN
											W_Tableau<2,7> = W_Tableau<2,7> + (ENR_SSIADHISTACTINTEXT<5,j,k>/100) +(ENR_SSIADHISTACTINTEXT<6,j,k>/100)  
											IF ENR_SSIADHISTACTINTEXT<3,j,k>= "01" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "02" THEN 
												W_Tableau<2,4>= W_Tableau<2,4> + ENR_SSIADHISTACTINTEXT<2,j,k>
											END 
											IF ENR_SSIADHISTACTINTEXT<3,j,k>= "01" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "06" THEN 
												W_Tableau<2,5>= W_Tableau<2,5> + (ENR_SSIADHISTACTINTEXT<2,j,k>*(ENR_SSIADHISTACTINTEXT<4,j,k>/100))
											END
											IF ENR_SSIADHISTACTINTEXT<3,j,k>= "02" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "07" THEN 
												W_Tableau<2,6>= W_Tableau<2,6> + (ENR_SSIADHISTACTINTEXT<2,j,k>*(ENR_SSIADHISTACTINTEXT<4,j,k>/100))
											END
										END
									NEXT k

								END
							NEXT j

						   *1re colonne : effectif
						   IF W_CleHistAct[1,5] <> W_CodeIntervenant AND W_AideTrouve = "Vrai" THEN
								W_Tableau<2,3> = W_Tableau<2,3> +1
								W_CodeIntervenant = W_CleHistAct[1,5]
						   END
				 
						END ELSE 
							*****************************************************
							* REMPLISSAGE DES COLONNES POUR 07 : PEDICURES      *
							*****************************************************
							*Modification mikael le 18/09/2006
							*IF ENR_TABLES<4,i> = "07" THEN
							IF ENR_TABLES<4,i> = "02" THEN
								W_AideTrouve = "Faux"

							    FOR j=1 TO DCOUNT(ENR_SSIADHISTACTINTEXT<1>, CHAR(253))
								   W_Tri = "Vrai"
								   IF W_ChoixTri # "T" THEN
									  READ ENR_CIVILAIDE FROM F.CIVILAIDE, ENR_SSIADHISTACTINTEXT<1,j> ELSE ENR_CIVILAIDE="" 
									  IF W_ChoixTri = "R" THEN
										   IF W_CodeTri # ENR_CIVILAIDE<39> THEN
											  W_Tri = "Faux"
										   END
									  END
									  IF W_ChoixTri = "S" THEN
										   IF W_CodeTri # ENR_CIVILAIDE<40>[1,3] THEN
											  W_Tri = "Faux"
										   END
									  END
									  IF W_ChoixTri = "C" THEN
										   IF W_CodeCommune # ENR_CIVILAIDE<41> THEN
											  W_Tri = "Faux"
										   END
									  END
								   END

								   IF W_Tri = "Vrai" THEN
										W_AideTrouve = "Vrai"
										FOR k=1 TO DCOUNT(ENR_SSIADHISTACTINTEXT<3,j>, CHAR(252))
											W_Act = "Vrai"

											IF W_ChoixSelect="A" THEN	
												IF W_Asso:W_CodeSelect <> ENR_SSIADHISTACTINTEXT<9,j,k> THEN 
												 W_Act = "Faux"
												END
											END

											IF W_Act="Vrai" THEN
												W_Tableau<3,7> = W_Tableau<3,7> + (ENR_SSIADHISTACTINTEXT<5,j,k>/100) +(ENR_SSIADHISTACTINTEXT<6,j,k>/100)  
												IF ENR_SSIADHISTACTINTEXT<3,j,k>= "03" THEN 
													W_Tableau<3,4>= W_Tableau<3,4> + ENR_SSIADHISTACTINTEXT<2,j,k>
												END 
												IF ENR_SSIADHISTACTINTEXT<3,j,k>= "03" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "08" THEN 
													W_Tableau<3,5>= W_Tableau<3,5> + (ENR_SSIADHISTACTINTEXT<2,j,k>*(ENR_SSIADHISTACTINTEXT<4,j,k>/100))
												END
											END
										NEXT k

								   END
								NEXT j

								*1re colonne : effectif
								IF W_CleHistAct[1,5] <> W_CodeIntervenant AND W_AideTrouve = "Vrai" THEN
									W_Tableau<3,3> = W_Tableau<3,3> + 1
									W_CodeIntervenant = W_CleHistAct[1,5] 

								END 
					
							END ELSE
			                    *****************************************************
			                    * REMPLISSAGE DES COLONNES POUR LES AUTRES CAS      *
								*****************************************************

								W_AideTrouve = "Faux"
								FOR j=1 TO DCOUNT(ENR_SSIADHISTACTINTEXT<1>, CHAR(253))
									W_Tri = "Vrai"
								   IF W_ChoixTri # "T" THEN
										READ ENR_CIVILAIDE FROM F.CIVILAIDE, ENR_SSIADHISTACTINTEXT<1,j> ELSE ENR_CIVILAIDE="" 
										IF W_ChoixTri = "R" THEN
										   IF W_CodeTri # ENR_CIVILAIDE<39> THEN
										      W_Tri = "Faux"
										   END
										END
									    IF W_ChoixTri = "S" THEN
										   IF W_CodeTri # ENR_CIVILAIDE<40>[1,3] THEN
										      W_Tri = "Faux"
										   END
									    END
									    IF W_ChoixTri = "C" THEN
										   IF W_CodeCommune # ENR_CIVILAIDE<41> THEN
										      W_Tri = "Faux"
										   END
									    END
									END

									IF W_Tri ="Vrai" THEN

										W_AideTrouve = "Vrai"
										FOR k=1 TO DCOUNT(ENR_SSIADHISTACTINTEXT<3,j>, CHAR(252))
											W_Act = "Vrai"

									        IF W_ChoixSelect="A" THEN	
									            IF W_Asso:W_CodeSelect <> ENR_SSIADHISTACTINTEXT<9,j,k> THEN 
										         W_Act = "Faux"
									            END
									        END
											
									        IF W_Act="Vrai" THEN
									            W_Tableau<4,7> = W_Tableau<4,7> + (ENR_SSIADHISTACTINTEXT<5,j,k>/100) +(ENR_SSIADHISTACTINTEXT<6,j,k>/100)  
									            IF ENR_SSIADHISTACTINTEXT<3,j,k>= "02" THEN 
													W_Tableau<4,4>= W_Tableau<4,4> + ENR_SSIADHISTACTINTEXT<2,j,k>
									            END
												IF ENR_SSIADHISTACTINTEXT<3,j,k>= "02" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "07" THEN 
													W_Tableau<4,6>= W_Tableau<4,6> + (ENR_SSIADHISTACTINTEXT<2,j,k>*(ENR_SSIADHISTACTINTEXT<4,j,k>/100))
												END
												IF ENR_SSIADHISTACTINTEXT<3,j,k>= "01" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "03" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "04" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "05" THEN 
													W_Tableau<4,4>= W_Tableau<4,4> + ENR_SSIADHISTACTINTEXT<2,j,k>
												END
												IF ENR_SSIADHISTACTINTEXT<3,j,k>= "01" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "03" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "04" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "05" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "06" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "08" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "09" OR ENR_SSIADHISTACTINTEXT<3,j,k>= "10" THEN 
													W_Tableau<4,5>= W_Tableau<4,5> + (ENR_SSIADHISTACTINTEXT<2,j,k>*(ENR_SSIADHISTACTINTEXT<4,j,k>/100))
												END 
									        END
										NEXT k

									END
								NEXT j

								*1re colonne : effectif
							    IF W_CleHistAct[1,5] <> W_CodeIntervenant AND W_AideTrouve = "Vrai" THEN
							        W_Tableau<4,3> = W_Tableau<4,3> +1
									W_CodeIntervenant = W_CleHistAct[1,5] 
								END
							END
						END   
					END 
				NEXT i
			END

		*W_CodeIntervenant = W_CleHistAct[1,5] 
      END 
   END
REPEAT

*lorsque les effectifs sont tous  0
IF W_Tableau<2,3> = 0 AND W_Tableau<3,3> = 0 AND W_Tableau<4,3> = 0 THEN
   RETURNVAL=2000
   RETURN
END

* arrondir le montant des honoraires pays 
FOR i = 2 TO 4
   W_Tableau<i,7> = INT(W_Tableau<i,7> + 1/2)
NEXT i

   
********************************
* renvoi des informations  VB *
* ou dition d'un fichier csv  * 
********************************
W_Ordre = 0
IF W_Edit = "F" THEN

   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 = "SSIADSTATINTEXT":"-":W_Asso:"-":W_Date:"-"

   W_Ordre = 0
   LOOP
      W_Ordre = W_Ordre + 1
      READ ENR_STATAIDE FROM F.STATAIDE,W_ClefFichier:W_Ordre:".csv" ELSE ENR_STATAIDE = ""
   UNTIL ENR_STATAIDE = ""
   REPEAT

   WRITE W_Tableau TO F.STATAIDE,W_ClefFichier:W_Ordre:".csv"

END

SORTIE=W_Tableau
W_Ordre= W_Ordre "R%3"
RETURNVAL=3:W_Ordre
RETURN

