*******************************************************************************
*												                                                     	*
*			Statistique sur les caractristiques des aids		                      *
*													                                                    *
* Le 30/10/01 									MICHAEL	                                      *
* Le 18/03/03											                                            *
* Description des procdures :								                                *
* 10 : Remplissage du tableau des types d'activit					                  *
* 													                                                  *
*******************************************************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "", "TABLES" TO F.TABLES ELSE STOP
OPEN "", "ACTIVITESBISAIDE" TO F.ACTIVITESBISAIDE ELSE STOP
OPEN "", "ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "", "ACCORD" TO F.ACCORD ELSE STOP
OPEN "", "ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE STOP
OPEN "", "RESSOURCESAIDE" TO F.RESSOURCESAIDE ELSE STOP
OPEN "", "CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "", "AGGIRAIDE" TO F.AGGIRAIDE ELSE STOP
OPEN "", "TEMPO" TO F.TEMPO ELSE STOP
 
PROCREAD PARAMETERS ELSE STOP

* Code entit
W_Entite = FIELD(PARAMETERS, "|", 2)

* [A]ctif, [D]ebutant ou [F]inissant
W_Traitement = FIELD(PARAMETERS, "|", 3)

* Periode dbut
W_MoisDebut = FIELD(PARAMETERS, "|", 4)

* Periode fin
W_MoisFin = FIELD(PARAMETERS, "|", 5)

* Type de statistique : [Q]uotient familial, [N]ombre d'enfants, [C]ategorie socio-professionnelle, [S]ituation familiale, [R]essources, [I] Groupe iso-ressource
W_TypeStat = FIELD(PARAMETERS, "|", 6)

* Critre de tri = [R]esponsable, [S]ecteur, [C]ommune, [O]rganisme, Regroupement Statistique [RS] ou [T]otalite
W_Tri = FIELD(PARAMETERS, "|", 7)

* Eventuelle slection dans le critre de tri
W_TriSelect = FIELD(PARAMETERS, "|", 8)

* [S]ans, [R]egroupement d'activits, ser[V]ice, [A]ctivit
W_Selection = FIELD(PARAMETERS, "|", 9)
W_CodeSel1 = FIELD(PARAMETERS, "|", 10)
W_CodeSel2 = FIELD(PARAMETERS, "|", 11)

* Stat [0] ou graphique [1]
W_Graphique = FIELD(PARAMETERS, "|", 12)
W_User = FIELD(PARAMETERS, "|", 13)

IF W_Selection = "A" THEN
	W_CodeSel1 = W_Entite:W_CodeSel1
	IF W_CodeSel2 # "" THEN
		W_CodeSel2 = W_Entite:W_CodeSel2
	END
END

* Remplissage du tableau W_TypeAct
GOSUB 10

W_DateDebInt = ICONV("01/":W_MoisDebut[5,2]:"/":W_MoisDebut[1,4],"D4/")
W_DateFinInt = W_MoisFin[5,2] + 1
IF W_DateFinInt = "13" THEN
	W_DateFinInt =  ICONV("31/12/":W_MoisFin[1,4],"D4/")
END ELSE
	W_DateFinInt = ICONV("01/":W_DateFinInt:"/":W_MoisFin[1,4],"D4/") - 1
END

W_TabCommunes = ""

W_Str = 'SELECT ACTIVITESBISAIDE AVEC CodeAssocBisAide = "':W_Entite:'"'

BEGIN CASE
	CASE W_Traitement = "A"
		W_Str = W_Str:' AND AVEC DateDebAct <= "':W_DateFinInt:'"'
		W_Str = W_Str:' AND AVEC 1 >= "':W_DateDebInt:'" OR = ""'
	CASE W_Traitement = "D"
		W_Str = W_Str:' AND AVEC DateDebAct <= "':W_DateFinInt:'"'
		W_Str = W_Str:' AND AVEC DateDebAct >= "':W_DateDebInt:'"'
	CASE W_Traitement = "F"
		W_Str = W_Str:' AND AVEC 1 <= "':W_DateFinInt:'"'
		W_Str = W_Str:' AND AVEC 1 >= "':W_DateDebInt:'"'
    W_Str = W_Str:' AND AVEC 1 # ""'
END CASE

BEGIN CASE
	CASE W_Selection = "R"
		W_Str = W_Str:' AND AVEC RegroupAct = "':W_CodeSel1:'"'
		IF W_CodeSel2 # "" THEN
			W_Str = W_Str:' OR = "':W_CodeSel2:'"'
		END
	CASE W_Selection = "V"
		W_Str = W_Str:' AND AVEC ServiceAct = "':W_CodeSel1:'"'
		IF W_CodeSel2 # "" THEN
			W_Str = W_Str:' OR = "':W_CodeSel2:'"'
		END
	CASE W_Selection = "A"
		W_Str = W_Str:' AND AVEC CodeActBisAide = "':W_CodeSel1:'"'
		IF W_CodeSel2 # "" THEN
			W_Str = W_Str:' OR = "':W_CodeSel2:'"'
		END
	CASE 1
		* sans slection
END CASE

BEGIN CASE
	CASE W_Tri = "S"
		IF W_TriSelect = "" THEN
			W_Str = W_Str:' PAR SecteurBisAide'
		END ELSE
			W_Str = W_Str:' AND AVEC CodeSecteurBisAide = "':W_TriSelect:']"'
		END
	CASE W_Tri = "R"
		IF W_TriSelect = "" THEN
			W_Str = W_Str:' PAR RespBisAide'
		END ELSE
			W_Str = W_Str:' AND AVEC CodeResponsableBisAide = "':W_TriSelect:'"'
		END
	CASE W_Tri = "C"
		IF W_TriSelect = "" THEN
			W_Str = W_Str:' PAR CommuneBisAide'
		END ELSE
			W_Str = W_Str:' AND AVEC CommuneBisAide = "':W_TriSelect:'"'
		END
	CASE 1
		* Pas de tri, ou bien tri par organisme ou regr. stat. d'organismes : 
		* Il faudra trier en fin de traitement...
END CASE 

W_Str = W_Str:' PAR CodeAide'


EXECUTE W_Str

W_ReqStatCarAide = ""

EXECUTE 'SAUVE-LISTE W_ReqStatCarAide'
EXECUTE 'LISTE W_ReqStatCarAide' RETURNING MSGCODE

ENR_TEMPO = ""

IF MSGCODE<1> = 209 THEN
	ENR_TEMPO<1> = "VIDE"
	WRITE ENR_TEMPO ON F.TEMPO, "STATCARAIDES":W_User
	STOP
END

SELECT F.ACTIVITESBISAIDE TO W_ReqStatCarAide

* Lecture des TABLES
BEGIN CASE
	CASE W_TypeStat = "Q"
		READ ENR_TRANCHES FROM F.TABLES, "QUOTIENTFAMILIAL" ELSE ENR_TRANCHES = ""		
	CASE W_TypeStat = "C"
		READ ENR_TRANCHES FROM F.TABLES, "SITSOCIOPROF" ELSE ENR_TRANCHES = ""
	CASE W_TypeStat = "N"
		READ ENR_TRANCHES FROM F.TABLES, "COMPOSITIONFAMILIALE" ELSE ENR_TRANCHES = ""
	CASE W_TypeStat = "R"
		READ ENR_TRANCHES FROM F.TABLES, "RESSOURCES" ELSE ENR_TRANCHES = ""
*	CASE W_TypeStat = "I"
	CASE 1
		* Ne fait rien
END CASE

W_FinReqStatCarAide = "F"
W_TamponAide = ""
W_Resultat = ""
W_IndResultat = 0
W_Sel1 = "F"
W_Sel2 = "F"
LOOP
	READNEXT W_CleActivitesBisAide FROM W_ReqStatCarAide ELSE W_FinReqStatCarAide = "V"
WHILE W_FinReqStatCarAide = "F"
	IF W_TamponAide # W_CleActivitesBisAide[1,5] THEN
		IF W_Sel1 = "V" AND W_Sel2 = "V" THEN
			GOSUB 50
		END
		IF W_Selection = "S" THEN
			W_Sel1 = "V" 
			W_Sel2 = "V"
		END ELSE
			IF W_CodeSel2 = "" THEN
				W_Sel2 = "V"
			END ELSE
				W_Sel2 = "F"
			END
			W_Sel1 = "F"
		END
		W_TamponAide = W_CleActivitesBisAide[1,5]
	END
	BEGIN CASE
		CASE W_Selection = "R"
			IF W_TypeAct<W_CleActivitesBisAide[6,6],3> = W_CodeSel1 THEN
				W_Sel1 = "V" 
			END 
			IF W_TypeAct<W_CleActivitesBisAide[6,6],3> = W_CodeSel2 THEN
				W_Sel2 = "V" 
			END 
		CASE W_Selection = "V"
			IF W_TypeAct<W_CleActivitesBisAide[6,6],2> = W_CodeSel1 THEN
				W_Sel1 = "V" 
			END 
			IF W_TypeAct<W_CleActivitesBisAide[6,6],2> = W_CodeSel2 THEN
				W_Sel2 = "V" 
			END 
		CASE W_Selection = "A"
			IF W_CleActivitesBisAide[6,6] = W_CodeSel1 THEN
				W_Sel1 = "V" 
			END 
			IF W_CleActivitesBisAide[6,6] = W_CodeSel2 THEN
				W_Sel2 = "V" 
			END 
		CASE 1
			* Ne fait rien
	END CASE
REPEAT

IF W_Sel1 = "V" AND W_Sel2 = "V" THEN
	GOSUB 50
END


IF W_Resultat = "" THEN
	ENR_TEMPO<1> = "VIDE"
	WRITE ENR_TEMPO ON F.TEMPO,"STATCARAIDES":W_User
END ELSE
   
   IF W_Tri # "C" THEN

	    * Mettre les libells  la place des codes
	   GOSUB 600

     IF W_Tri = "O" OR W_Tri = "RS" THEN
	      * Mettre dans l'ordre alpha
	      GOSUB 700
     END
   END

   BEGIN CASE
	 CASE W_Tri = "R"
		ENR_TEMPO<1,1> = "Responsable"
	 CASE W_Tri = "T"
		ENR_TEMPO<1,1> = " "
	 CASE W_Tri = "S"
		ENR_TEMPO<1,1> = "Secteur"
	 CASE W_Tri = "C"
		ENR_TEMPO<1,1> = "Commune"
	 CASE W_Tri = "O"
		ENR_TEMPO<1,1> = "Organisme"
	 CASE W_Tri = "RS"
		ENR_TEMPO<1,1> = "Regroupement statistique"
   END CASE
   
   IF W_TypeStat # "S" THEN
     IF W_TypeStat # "I" THEN
	      IF INDEX(ENR_TRANCHES<1,6>,"N",1) # 0 AND INDEX(ENR_TRANCHES<1,7>,"N",1) # 0 THEN
           * On a bien des tranches de valeurs => libell = De [plancher]  [plafond]
           i = 0
	         LOOP
		       i = i + 1
	         WHILE ENR_TRANCHES<4,i> # ""
		            W_NbDec3 = FIELD(ENR_TRANCHES<1,6>,"N",2)
                W_NbDec4 = FIELD(ENR_TRANCHES<1,7>,"N",2)
		            ENR_TRANCHES<3,i> = ENR_TRANCHES<3,i> / PWR(10,W_NbDec3)
		            ENR_TRANCHES<4,i> = ENR_TRANCHES<4,i> / PWR(10,W_NbDec4)
		            ENR_TEMPO<1,i+1> = "De ":ENR_TRANCHES<3,i>:"  ":ENR_TRANCHES<4,i>
          REPEAT
	        W_NbTrancheFin = i - 1
        END ELSE
          i = 0
	        LOOP
		      i = i + 1
	        WHILE ENR_TRANCHES<2,i> # ""
		            ENR_TEMPO<1,ENR_TRANCHES<2,i>+1> = ENR_TRANCHES<3,i>
         REPEAT
	       W_NbTrancheFin = i - 1
	       END
         END ELSE
	           ENR_TEMPO<1,2> = "Groupe iso-ressources 1"
	           ENR_TEMPO<1,3> = "Groupe iso-ressources 2"
	           ENR_TEMPO<1,4> = "Groupe iso-ressources 3"
	           ENR_TEMPO<1,5> = "Groupe iso-ressources 4"
	           ENR_TEMPO<1,6> = "Groupe iso-ressources 5"
	           ENR_TEMPO<1,7> = "Groupe iso-ressources 6"
	           ENR_TEMPO<1,8> = "Non renseign"
	           W_NbTrancheFin = 7
             END
         END ELSE
	           ENR_TEMPO<1,2> = "Mari"
	           ENR_TEMPO<1,3> = "Clibataire"
	           ENR_TEMPO<1,4> = "Veuf"
	           ENR_TEMPO<1,5> = "Divorc"
	           ENR_TEMPO<1,6> = "Vie maritale"
	           ENR_TEMPO<1,7> = "Spar"
	           ENR_TEMPO<1,8> = "Pacs"
	           ENR_TEMPO<1,9> = "Non renseigne"
	           W_NbTrancheFin = 8
         END	
        W_Total = ""	
        FOR i = 1 TO W_IndResultat
	          ENR_TEMPO<i+1> = W_Resultat<i>
           FOR k = 1 TO W_NbTrancheFin
		           W_Total<k> = W_Total<k> + W_Resultat<i,k+1>
           NEXT k
        NEXT i
      
      IF W_Graphique = "1" THEN
	       ENR_TEMPO<W_IndResultat+2,1> = "TOTAL"
	       FOR k = 1 TO W_NbTrancheFin
		         ENR_TEMPO<W_IndResultat+2,k+1> = W_Total<k>
         NEXT k
	       * Cration en forme fichier texte
	       GOSUB 800
      END
   WRITE ENR_TEMPO ON F.TEMPO, "STATCARAIDES":W_User
END

STOP

*Remplissage du tableau W_TypeAct, indiquant pour chaque activit si elle est prestataire, mandataire,... 
*  quel service elle appartient, et  quel regroupement d'activit
10 
EXECUTE 'SELECT ACTIVITES'
W_TypeAct = ""
W_Fin = "F"
LOOP
	READNEXT W_Cle ELSE W_Fin = "V"
WHILE W_Fin = "F"
	READ ENR_ACTIVITES FROM F.ACTIVITES, W_Cle ELSE ENR_ACTIVITES = ""
	W_TypeAct<W_Cle,1> = ENR_ACTIVITES<12>
	W_TypeAct<W_Cle,2> = ENR_ACTIVITES<13>
	W_TypeAct<W_Cle,3> = ENR_ACTIVITES<17>
REPEAT
RETURN

* Comptabilisation de l'aid
50 
READ ENR_CIVILAIDE FROM F.CIVILAIDE, W_TamponAide THEN
IF W_Tri = "O" OR W_Tri = "RS" THEN
   * Boucle sur tous les accords de l'aid...
   W_FinAccord = "F"
   W_TamponOrg = ""
   W_TamponReg  = ""
   W_NumOrdreAcc = 0
   LOOP
       W_NumOrdreAcc = W_NumOrdreAcc + 1
       W_NumOrdreAcc = W_NumOrdreAcc"R%3"
       W_CleAcc = W_TamponAide:W_NumOrdreAcc
   WHILE W_FinAccord = "F"
         READ ENR_ACCORD FROM F.ACCORD, W_CleAcc THEN
         IF (W_TriSelect # "" AND W_Tri = "O" AND ENR_ACCORD<1> = W_TriSelect) OR W_TriSelect = "" OR W_Tri = "RS" THEN
            IF ENR_ACCORD<5> <= W_DateFinInt AND ENR_ACCORD<6> >= W_DateDebInt AND ENR_ACCORD<18> # "O" THEN
	             IF INDEX(W_TamponOrg,ENR_ACCORD<1>:"|",1) = 0 THEN
	                READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE, ENR_ACCORD<1> THEN
                       IF ENR_ORGPRISECHARGE<43> = "" THEN
		                      ENR_ORGPRISECHARGE<43> = "100"
                        END
	                      IF ENR_ORGPRISECHARGE<18> = "P" THEN
	                         IF (W_TriSelect # "" AND W_Tri = "RS" AND W_TriSelect = ENR_ORGPRISECHARGE<43>) OR W_TriSelect = "" OR W_Tri = "O" THEN
	                            IF (W_Tri = "RS" AND INDEX(W_TamponReg,ENR_ORGPRISECHARGE<43>:"|",1)=0) OR W_Tri = "O" THEN		
                                W_ActTrouve = "F"
                                k=0
                                LOOP
                                k=k+1
	                              WHILE ENR_ORGPRISECHARGE<47,k> # "" AND W_ActTrouve = "F"
		                                  BEGIN CASE
			                                CASE W_Selection = "R"
				                                   IF W_TypeAct<ENR_ORGPRISECHARGE<47,k>,3> = W_CodeSel1 OR W_TypeAct<ENR_ORGPRISECHARGE<47,k>,3> = W_CodeSel2 OR W_CodeSel1 = "" THEN
					                                    W_ActTrouve = "V"
		                                       END
                                      CASE W_Selection = "V"
				                                   IF W_TypeAct<ENR_ORGPRISECHARGE<47,k>,2> = W_CodeSel1 OR W_TypeAct<ENR_ORGPRISECHARGE<47,k>,2> = W_CodeSel2 OR W_CodeSel1 = "" THEN
					                                    W_ActTrouve = "V"
		                                       END
                                      CASE W_Selection = "A"
				                                   IF ENR_ORGPRISECHARGE<47,k> = W_CodeSel1 OR ENR_ORGPRISECHARGE<47,k> = W_CodeSel2 OR W_CodeSel1 = "" THEN
					                                    W_ActTrouve = "V"
		                                       END
                                      CASE 1
										   ** LOIC LE 27/06/07 **
                                           IF ENR_ORGPRISECHARGE<46> = W_Entite THEN 
                                              W_ActTrouve = "V"   
                                           END
                                           * Pas de slection : on prends tous les organismes
                                      END CASE
                                REPEAT 
		
                                IF W_ActTrouve # "F" THEN    
	                                 IF W_Tri = "RS" THEN
		                                  W_Crit = ENR_ORGPRISECHARGE<43>
                                      GOSUB 55
                                   END ELSE
         	                            W_Crit = ENR_ACCORD<1>
			                                GOSUB 55
                                   END
                                   * On a trouve l'activit => on peut passer au regroupement suivant 
		                               * ( = ignorer les prochains organismes du regroupement...)
		                               W_TamponReg = W_TamponReg:ENR_ORGPRISECHARGE<43>:"|"
     	                          END
   	     	                      * Inutile de revenir sur l'org :
	     	                        W_TamponOrg = W_TamponOrg:ENR_ACCORD<1>:"|"
	      
                                END
                              END
                           END ELSE
		                           * Org. complmentaire = exclu
		                           W_TamponOrg = W_TamponOrg:ENR_ACCORD<1>:"|"
                           END
                        END
                    END
                  END
               END
            END ELSE
            * La lecture a chou
            W_FinAccord = "V"
         END
   REPEAT

END ELSE
    BEGIN CASE
	  CASE W_Tri = "R"
		     W_Crit = ENR_CIVILAIDE<39> 
    CASE W_Tri = "S"
		     W_Crit = ENR_CIVILAIDE<40>[1,3]
	  CASE W_Tri = "C"
		     W_Crit = ENR_CIVILAIDE<11>
	  CASE 1
		     W_Crit = 1
    END CASE
    IF W_Tri = "C" THEN
    	IF ICONV(W_Resultat<W_IndResultat,1>,"MCA") # ICONV(W_Crit,"MCA") THEN
    	   W_IndResultat = W_IndResultat + 1
	       W_Resultat<W_IndResultat,1> = W_Crit
      END
    END ELSE
	      IF W_Resultat<W_IndResultat,1> # W_Crit THEN
   	       W_IndResultat = W_IndResultat + 1
	         W_Resultat<W_IndResultat,1> = W_Crit
        END
    END
    GOSUB 60
END
END
RETURN

55
*******************************************
* Traitement par org. ou par RegStat :    *
*						                            	*
* On a le code org ou reg. stat, il reste *
*  dterminer  quelle ligne du tableau	*
* il correspond.				                 	*
*******************************************
i = 0
LOOP
	i = i + 1
WHILE W_Resultat<i,1> # W_Crit AND W_Resultat<i,1> # ""
REPEAT
W_IndResultat = i
W_Resultat<i,1> = W_Crit

GOSUB 60

RETURN

60 
*******************************************
* Rpartition suivant type de traitement	*
*******************************************
IF ENR_CIVILAIDE # "" THEN
    BEGIN CASE 
	CASE W_TypeStat = "C"
		GOSUB 100
	CASE W_TypeStat = "Q"
		GOSUB 200
	CASE W_TypeStat = "N"
		GOSUB 300
	CASE W_TypeStat = "R"
		GOSUB 400
	CASE W_TypeStat = "S"
		GOSUB 500
	CASE W_TypeStat = "I"
		GOSUB 550
    END CASE
END

RETURN

****************************************************************
* Stat sur la catgorie socio-professionnelle
100
	IF ENR_CIVILAIDE<42> # "" THEN
		W_Resultat<W_IndResultat,ENR_CIVILAIDE<42> + 1> = W_Resultat<W_IndResultat,ENR_CIVILAIDE<42> +1> + 1
	END ELSE
		* CSP pas renseigne => aid pas comptabilis !
		* Pb : on peut du coup crer un groupe (secteur, commune, org.) avec aucun aid !
	END
RETURN

****************************************************************
* Stat par quotient familial
200
READ ENR_RESSOURCESAIDE FROM F.RESSOURCESAIDE,W_TamponAide ELSE
  ENR_RESSOURCESAIDE<6> = 0	
END
IF ENR_RESSOURCESAIDE<6> = "" THEN
  ENR_RESSOURCESAIDE<6> = 0
END
W_IndTranche = 0
LOOP
    W_IndTranche = W_IndTranche+1
WHILE ENR_TRANCHES<4,W_IndTranche> =< (ENR_RESSOURCESAIDE<6>/100) AND ENR_TRANCHES<4,W_IndTranche> # ""
REPEAT
IF ENR_TRANCHES<3,W_IndTranche> > ENR_RESSOURCESAIDE<6>/100 OR ENR_TRANCHES<4,W_IndTranche> = "" THEN
	W_IndTranche = 0
END
 
IF W_IndTranche<>0 THEN
  W_Resultat<W_IndResultat,W_IndTranche+1> = W_Resultat<W_IndResultat,W_IndTranche+1> + 1
END

RETURN

****************************************************************
* Stat par nbre d'enfants
300
W_NbEnfants = 0
i=1
LOOP WHILE ENR_CIVILAIDE<37,i> # ""
   IF TRIM(ENR_CIVILAIDE<37,i>) = "Enfant" THEN
	W_NbEnfants = W_NbEnfants + 1
   END
   i=i+1  
REPEAT

W_IndTranche = 0
LOOP
   W_IndTranche = W_IndTranche+1
WHILE ENR_TRANCHES<4,W_IndTranche> =< W_NbEnfants AND ENR_TRANCHES<4,W_IndTranche> # ""
   
REPEAT
IF ENR_TRANCHES<3,W_IndTranche> > W_NbEnfants OR ENR_TRANCHES<4,W_IndTranche> = "" THEN
	W_IndTranche = 0
END
IF W_IndTranche <> 0 THEN
	W_Resultat<W_IndResultat,W_IndTranche+1> = W_Resultat<W_IndResultat,W_IndTranche+1> + 1
END

RETURN

****************************************************************
* Stat sur les ressources
400
READ ENR_RESSOURCESAIDE FROM F.RESSOURCESAIDE,W_TamponAide ELSE
	ENR_RESSOURCESAIDE = ""
END

W_Ressources = 0
i=1
LOOP WHILE ENR_RESSOURCESAIDE<1,i> # ""
   W_Ressources = W_Ressources + ENR_RESSOURCESAIDE<5,i>
   i=i+1  
REPEAT

W_Ressources = INT(W_Ressources/100 + 1/2)

W_IndTranche = 0
LOOP
   W_IndTranche = W_IndTranche+1
WHILE ENR_TRANCHES<4,W_IndTranche> =< W_Ressources AND ENR_TRANCHES<4,W_IndTranche> # ""  
REPEAT
IF ENR_TRANCHES<4,W_IndTranche> = "" OR ENR_TRANCHES<3,W_IndTranche> > W_Ressources THEN
	W_IndTranche = 0
END
IF W_IndTranche # 0 THEN
    W_Resultat<W_IndResultat,W_IndTranche+1> = W_Resultat<W_IndResultat,W_IndTranche+1> + 1
END

RETURN

****************************************************************
* Stat sur la situation familiale
500
* Nb : code en dur dans le prog...
IF ENR_CIVILAIDE<25> # "" AND ENR_CIVILAIDE<25> # "0" THEN
	W_Resultat<W_IndResultat,ENR_CIVILAIDE<25> + 1> = W_Resultat<W_IndResultat,ENR_CIVILAIDE<25> +1> + 1
END ELSE
	* Situation familiale pas renseigne = code 0
	* mais cela poserait problme ici => on considre qu'il y a "8", de toute faon c'est en dur dans les progs...
	W_Resultat<W_IndResultat,9> = W_Resultat<W_IndResultat,9> + 1
END

RETURN

****************************************************************
* Stat sur le groupe iso-ressources
550
READ ENR_AGGIRAIDE FROM F.AGGIRAIDE, W_TamponAide THEN
   * Nb : code en dur dans le prog...
   IF ENR_AGGIRAIDE<19> # "" AND ENR_AGGIRAIDE<19> # "0" THEN
         W_Resultat<W_IndResultat,ENR_AGGIRAIDE<19>+1> = W_Resultat<W_IndResultat,ENR_AGGIRAIDE<19>+1> + 1
   END ELSE
	* Groupe iso pas renseign = code 0
	* mais cela poserait problme ici => on considre qu'il y a "7", de toute faon c'est en dur dans les progs...
         W_Resultat<W_IndResultat,8> = W_Resultat<W_IndResultat,8> + 1
   END
END ELSE
	* Groupe iso pas renseign = code 0
	* mais cela poserait problme ici => on considre qu'il y a "7", de toute faon c'est en dur dans les progs...
    W_Resultat<W_IndResultat,8> = W_Resultat<W_IndResultat,8> + 1

END
RETURN


*************************************************
*    Mettre les libells  la place des codes	*
*								*
* Si tri par commune, secteur, responsable, 	*
* organisme de prise en charge, regroupement	*
* statistique						*
*************************************************
600
W_IndResultat = DCOUNT(W_Resultat,CHAR(254))

IF W_Tri # "T" AND W_Tri # "RS" THEN

  BEGIN CASE 
   CASE W_Tri = "R"
	      OPEN "", "RESPONSABLE" TO F.TRI ELSE STOP
   CASE W_Tri = "S"
	      OPEN "", "SECTEUR" TO F.TRI ELSE STOP
   CASE W_Tri = "O"
	      OPEN "", "ORGPRISECHARGE" TO F.TRI ELSE STOP
  END CASE

  FOR i = 1 TO W_IndResultat
	    READ ENR_TRI FROM F.TRI, W_Resultat<i,1> ELSE ENR_TRI<1> = "Non renseign"
	    W_Resultat<i,1> = ENR_TRI<1>
  NEXT i

END ELSE
	
	IF W_Tri = "T" THEN
		W_Resultat<1,1> = "Nombre d'aids"
	END ELSE
		READ ENR_REGSTAT FROM F.TABLES, "STATORGCHG" THEN
		  FOR i = 1 TO W_IndResultat
			    k = 0
			LOOP
				k = k +1
			WHILE ENR_REGSTAT<2,k> # W_Resultat<i,1> AND ENR_REGSTAT<2,k> # ""
			REPEAT
			IF ENR_REGSTAT<2,k> = "" THEN
				 W_Resultat<i,1> = "Non renseign"
			END ELSE
				 W_Resultat<i,1> = ENR_REGSTAT<3,k>
			END
		  NEXT i
		END
	END

END

RETURN

700
*************************************************
* Tri par org. ou par regr. stat d'org :		*
*								*
* On trie le rsultat en fin de traitement 	*
*************************************************

IF W_TriSelect = "" THEN
	* tri 
	W_Temp = ""
	i = 0
	LOOP
		i = i + 1
	WHILE i < W_IndResultat
		IF ICONV(W_Resultat<i+1,1>,"MCU") < ICONV(W_Resultat<i,1>,"MCU") THEN
		* NB : ICONV(,"MCU") => on compare en MAJUSCULES, mais on ne convertit pas les caractres non alphabtique
		* => A.P.A Prest est avant APA mand....
			k = i+1
			LOOP
				k = k - 1
			WHILE k > 0 AND ICONV(W_Resultat<i+1,1>,"MCU") < ICONV(W_Resultat<k,1>,"MCU")
			REPEAT
			W_Temp = W_Resultat<i+1>
			t = i + 1
			LOOP
				t = t - 1
			WHILE t > k
				W_Resultat<t+1> = W_Resultat<t>
			REPEAT
			W_Resultat<k+1> = W_Temp
			
		END
	REPEAT
END ELSE
	* On ne fait rien
END
RETURN

*******************************************
* Conversion en fichier Texte pour Excel	*
*******************************************
800
OPEN "","STATAIDE" TO F.REP ELSE
	EXECUTE 'CREER-FICHIER DIR STATAIDE'
	OPEN "","STATAIDE" TO F.REP ELSE 
		OPEN "","TEMPO" TO F.REP ELSE STOP
	END
END

W_Date = OCONV(DATE(),"D4/")
W_Date = W_Date[7,4]:W_Date[4,2]:W_Date[1,2]

EXECUTE 'SELECT STATAIDE = "CaractAids-':W_Entite:'-':W_Date:'-]" PAR-DECR @ID'
W_NumOrdre = 0
W_Fin = "F"
LOOP
READNEXT W_Cle ELSE W_Fin = "V"
WHILE W_Fin = "F"
	W_NumOrdreCle = W_Cle[26,LEN(W_Cle)-25]
	W_NumOrdreCle = FIELD(W_NumOrdreCle,".",1)
	IF W_NumOrdreCle > W_NumOrdre THEN
		W_NumOrdre = W_NumOrdreCle
	END
REPEAT

W_NumOrdre = W_NumOrdre + 1

W_CleFusion = "CaractAids-":W_Entite:"-":W_Date:"-":W_NumOrdre:".csv"

CONVERT "" TO ";" IN ENR_TEMPO

WRITE ENR_TEMPO ON F.REP, W_CleFusion

ENR_TEMPO = ""
ENR_TEMPO<1> = W_CleFusion
RETURN

