**********************************************************
*  Statistique sur les activits
*  Programme chaine  partir d'un projet VB
*  Alain - MicHael
*  OCTOBRE 2005
**********************************************************

* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP ;* en lecture
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP ;* en lecture
OPEN "","INFOSAIDANT" TO F.INFOSAIDANT ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP ;* en lecture
OPEN "","STATAIDANT" TO F.STATAIDANT ELSE STOP ;* en lecture criture
OPEN "","TABLES" TO F.TABLES ELSE STOP ;* en lecture criture
OPEN "","TEMPO" TO F.TEMPO ELSE STOP ;* en lecture criture

EXECUTE 'SET-DEC ,'
EXECUTE 'DATE.FORMAT'

*********************************************************
* initialisation des variables
W_Resultat=""
W_MV=1
W_Att=1
W_TabActivite=""
W_SauveSelect=""
W_SauvePeriode=""
W_SauveAide=""
W_TabPeriode=""
W_Tab=""
W_RequeteContrat=""
W_Nb=1
*********************************************************
* Recuperation des arguments

PROCREAD ARGUMENTS ELSE STOP
W_Entite=FIELD(ARGUMENTS,"|",2)
W_DateDeb=FIELD(ARGUMENTS,"|",3)
W_DateFin=FIELD(ARGUMENTS,"|",4)
W_TypeAct=FIELD(ARGUMENTS,"|",5)
W_Selection=FIELD(ARGUMENTS,"|",6)
W_Select=FIELD(ARGUMENTS,"|",7)
W_User=FIELD(ARGUMENTS,"|",8)
W_Edition=FIELD(ARGUMENTS,"|",9)
*********************************************************
* PROGRAMME PRINCIPAL

   DELETE F.TEMPO, "STATSITAVEMB":W_User

   W_DateDebPer=W_DateDeb
   W_DateFinPer=W_DateFin

   W_DateDeb= W_DateDeb

   W_DateDeb=ICONV("01/":W_DateDebPer[5,2]:"/":W_DateDebPer[1,4],"D4/")

   W_DateFin=W_DateFinPer+1
   IF W_DateFin[5,2]="13" THEN
	W_DateFin=W_DateFin[1,4]+1:"01"
   END
   W_DateFin=ICONV("01/":W_DateFin[5,2]:"/":W_DateFin[1,4],"D4/")
   W_DateFin=W_DateFin-1

   W_Temp='SSELECT CONTRAT AVEC 65 # "O" AND AVEC 7 <= "':W_DateFin:'"'

   * entit
   W_Temp=W_Temp:' AND AVEC 2 = "':W_Entite:'"'

   * activit
   IF W_TypeAct # "M" THEN
   	W_Temp=W_Temp:' AND AVEC TypeActiviteContrat = "':W_TypeAct:'"'
   END ELSE
	W_Temp=W_Temp:' AND AVEC 1 = "02"'
   END
   * secteur, commune
   IF W_Select # 0 THEN
      BEGIN CASE
         CASE W_Selection="S"
            W_Temp=W_Temp:' AND AVEC SecteurContrat = "':W_Select:'"'
         CASE W_Selection="C"
            W_Temp=W_Temp:' AND AVEC CommunePostAidant = "':W_Select:'"'
      END CASE
   	W_Temp=W_Temp:' AND AVEC 8 >= "':W_DateDeb:'" OR = ""'
   END ELSE
   	W_Temp=W_Temp:' AND AVEC 8 >= "':W_DateDeb:'" OR = ""'
      BEGIN CASE
         CASE W_Selection="S"
            W_Temp=W_Temp:' PAR LibSecteurContrat'
         CASE W_Selection="C"
            W_Temp=W_Temp:' PAR CommunePostAidant'
      END CASE
   END

   W_Temp=W_Temp:' PAR CodeAidant'

  

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

   
   W_IndResultat = 0
   IF MSGCODE<1>=209 THEN
	W_Resultat<1> = "VIDE"
	WRITE W_Resultat ON F.TEMPO, "STATACT":W_User
      STOP
   END ELSE

      SELECT F.CONTRAT TO W_RequeteContrat

	READ ENR_TABLES FROM F.TABLES, "SITSAL" ELSE ENR_TABLES = ""

	BEGIN CASE
	  CASE W_Selection = "S"
		W_Resultat<1,1> = "Secteur"
	  CASE W_Selection = "C"
		W_Resultat<1,1> = "Commune"
	  CASE 1
		W_Resultat<1,1> = " "
	END CASE
	i = 0
	LOOP
	i = i + 1
	WHILE ENR_TABLES<2,i> # ""
		W_Resultat<1,i+1> = ENR_TABLES<3,i>
	REPEAT
	W_Resultat<1,i+1> = "Non renseign"
	W_NbTrancheFin = i+1
	W_IndResultat = W_IndResultat + 1

        W_End="FAUX"
      
	W_CodAidant = ""
	W_CodAncAidant = ""
	W_Tri = ""
	W_TriAnc = ""
      LOOP
         READNEXT W_Cle FROM W_RequeteContrat ELSE W_End = "VRAI"
      WHILE W_End = "FAUX" DO
	   W_CodAidant = W_Cle[1,5]
	   IF W_CodAidant # W_CodAncAidant THEN
		IF W_CodAncAidant # "" THEN
			GOSUB 100
		END
		W_CodAncAidant = W_CodAidant
	   END
      REPEAT
      GOSUB 100

      IF W_Selection="S" THEN
	GOSUB 600
      END

	IF W_Edition = "2" THEN
		GOSUB 800
	END
	
	WRITE W_Resultat ON F.TEMPO, "STATSITAVEMB":W_User

   END

STOP

100 ***************************************************************************
*			Dterminatioon du critre de tri					*
*******************************************************************************
READ ENR_CIVILAIDANT FROM F.CIVILAIDANT, W_CodAncAidant THEN
	BEGIN CASE
	   CASE W_Selection = "S"
		IF ENR_CIVILAIDANT<31> # W_Resultat<W_IndResultat,1> THEN
			W_IndResultat = W_IndResultat + 1
			W_Resultat<W_IndResultat,1> = ENR_CIVILAIDANT<31>
		END
	   CASE W_Selection = "C"
		IF ENR_CIVILAIDANT<11> # W_Resultat<W_IndResultat,1>  THEN
			W_IndResultat = W_IndResultat + 1
			W_Resultat<W_IndResultat,1> = ENR_CIVILAIDANT<11>
		END
	   CASE 1
		W_IndResultat = 2
	END CASE
	GOSUB 200
	
END
RETURN

200 ***************************************************************************
*			Comptabilisation par Situation					*
*******************************************************************************
W_SansSituation = "F"
READ ENR_INFOSAIDANT FROM F.INFOSAIDANT, W_CodAncAidant THEN
	IF ENR_INFOSAIDANT<8> = "" THEN
		W_SansSituation = "V"
	END ELSE
		
		i = 0
		LOOP
		i = i + 1
		WHILE ENR_TABLES<2,i> # ""
		  IF INDEX(ENR_INFOSAIDANT<8>,ENR_TABLES<2,i>,1) # 0 THEN
			W_Resultat<W_IndResultat,i+1> = W_Resultat<W_IndResultat,i+1> + 1
		  END
		REPEAT
	END
END ELSE
	W_SansSituation = "V"	
END
IF W_SansSituation = "V" THEN

	W_Resultat<W_IndResultat,W_NbTrancheFin> = W_Resultat<W_IndResultat,W_NbTrancheFin> + 1

END
RETURN

600 ***************************************************************************
*			Tri par secteur : on mets le libell				*
*******************************************************************************
W_IndResultat = DCOUNT(W_Resultat,CHAR(254))
OPEN "", "SECTEUR" TO F.TRI ELSE STOP
  FOR i = 2 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
RETURN


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

ENR = ""
ENR<1,1> = W_Resultat<1,1>
ENR<1,2> = "Situation"
ENR<1,3> = "Nombre"


W_Ind = 2
i=1
LOOP
i = i + 1
WHILE W_Resultat<i> # ""
	
	k = 1
	LOOP
	k = k + 1
	WHILE k <= W_NbTrancheFin
	   IF W_Resultat<i,k,1> # "" THEN
		ENR<W_Ind,1> = W_Resultat<i,1>
		ENR<W_Ind,2> = W_Resultat<1,k>
		ENR<W_Ind,3> = W_Resultat<i,k>
		W_Ind = W_Ind + 1
	   END
	REPEAT
	
		
REPEAT
W_Date = OCONV(DATE(),"D4/")
W_Date = W_Date[7,4]:W_Date[4,2]:W_Date[1,2]

EXECUTE 'SELECT STATAIDANT = "StatSitAvEmb-':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[27,LEN(W_Cle)-26]
	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 = "StatSitAvEmb-":W_Entite:"-":W_Date:"-":W_NumOrdre:".csv"

CONVERT "" TO ";" IN ENR
CONVERT "" TO ";" IN ENR

WRITE ENR ON F.REP, W_CleFusion

W_Resultat = ""
W_Resultat<1> = W_CleFusion
RETURN
