*****************************************
* CREATION DU FICHIER DES COMPTES TIERS *
* POUR LA COMPTA CCMX / ASMAD           *
* VANESSA                               * 
* 16/12/2002			        *
*****************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE PRINT "OUVERTURE ACTIVITESAIDE" ;* en lecture
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "OUVERTURE CIVILAIDE" ;* en lecture
OPEN "","ELTSFACTAIDE" TO F.ELTSFACTAIDE ELSE PRINT "OUVERTURE ELTSFACTAIDE" ;* en lecture
OPEN "","LIENCOMPTA" TO F.LIENCOMPTA ELSE PRINT "OUVERTURE LIENCOMPTA" ;* en lecture criture
OPEN "","PARAMENTITECOMPTA" TO F.PARAMENTITECOMPTA ELSE PRINT "OUVERTURE PARAMENTITECOMPTA" ;* en lecture

****************************
* Recuperation des arguments

****************************
PROCREAD ARGUMENTS ELSE PRINT "PROCREAD"

W_Asso=FIELD(ARGUMENTS,"|",2)
W_Date=FIELD(ARGUMENTS,"|",3)
W_FichierGenere=FIELD(ARGUMENTS,"|",4)

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

   READ ENR_PARAMENTITECOMPTA FROM F.PARAMENTITECOMPTA,W_Asso ELSE ENR_PARAMENTITECOMPTA=""

   EXECUTE 'SELECT ACTIVITESAIDE AVEC 1 = "':W_Asso:']" AND AVEC 2 <= "':W_Date:'" AND AVEC 3 >= "':W_Date:'" OR = "" PAR NomPrenomAide'

   W_End="FAUX"
   W_Rang=0
   W_Tab=""
   W_Nom=""
   W_NomCourt=""
   W_NomLong=""
   W_Ind=1
   ENR_LIENCOMPTA=""


   LOOP
      READNEXT W_Cle ELSE W_End = "VRAI"
   WHILE W_End = "FAUX" DO

      READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_Cle ELSE ENR_CIVILAIDE=""

      READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_Cle ELSE ENR_ACTIVITESAIDE=""

      i=1
      LOOP

      UNTIL (ENR_ACTIVITESAIDE<1,i>[1,3]=W_Asso AND INT(ENR_ACTIVITESAIDE<2,i>) <= INT(W_Date) AND INT(ENR_ACTIVITESAIDE<3,i>) >= INT(W_Date)) OR (ENR_ACTIVITESAIDE<1,i>[1,3]=W_Asso AND INT(ENR_ACTIVITESAIDE<2,i>) <= INT(W_Date) AND ENR_ACTIVITESAIDE<3,i> = "") OR ENR_ACTIVITESAIDE<2,i>="" DO
         i=i+1
      REPEAT

      IF ENR_ACTIVITESAIDE<2,i> # "" THEN
         W_Temp=""
         W_Nom=""

         * cl
         W_Temp = W_Cle:";"
 
         * compte centralisation
         W_Temp = W_Temp:ENR_PARAMENTITECOMPTA<16>[1,9]:";"

         * nom court
         W_Nom = ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
         IF LEN(W_Nom) > 25 THEN
            W_NomCourt=W_Nom[1,25]
         END ELSE
            W_NomCourt=W_Nom
         END

         W_Temp = W_Temp:W_NomCourt:";"

         * nom long
         IF LEN(W_Nom) > 60 THEN
            W_NomLong=W_Nom[1,60]
         END ELSE
            W_NomLong=W_Nom
         END

         W_Temp = W_Temp:W_NomLong:";"

         READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_Cle ELSE ENR_ELTSFACTAIDE=""
         IF ENR_ELTSFACTAIDE<2>="" THEN
 
            * nom du tiers
            W_Nom=ENR_CIVILAIDE<1>:" ":ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
            IF LEN(W_Nom) > 32 THEN
               W_Nom=W_Nom[1,32]
            END
            W_Temp = W_Temp:W_Nom:";"
 
            * adresse
            W_Tab=ENR_CIVILAIDE
            W_Rang=5
            GOSUB 10

            W_Temp = W_Temp:W_Adresse:";"
 
            * cplment adresse
            IF LEN(ENR_CIVILAIDE<9>) > 32 THEN
               W_Nom=ENR_CIVILAIDE<9>[1,32]
            END ELSE
               W_Nom=ENR_CIVILAIDE<9>
            END
            W_Temp = W_Temp:W_Nom:";;"

            * code postal
            W_Temp = W_Temp:ENR_CIVILAIDE<10>:";"

            * ville
            IF LEN(ENR_CIVILAIDE<11>) > 25 THEN
               W_Nom=ENR_CIVILAIDE<11>[1,25]
            END ELSE
               W_Nom=ENR_CIVILAIDE<11>
            END
            W_Temp = W_Temp:W_Nom:";"

         END ELSE

            * nom du tiers
            W_Nom=ENR_ELTSFACTAIDE<2>
 
            IF LEN(W_Nom) > 32 THEN
               W_Nom=W_Nom[1,32]
            END
            W_Temp = W_Temp:W_Nom:";"

            * adresse
            W_Tab=ENR_ELTSFACTAIDE
            W_Rang=3
            GOSUB 10

            W_Temp = W_Temp:W_Adresse:";"
  
            * cplment adresse
            IF LEN(ENR_ELTSFACTAIDE<7>) > 32 THEN
               W_Nom=ENR_ELTSFACTAIDE<7>[1,32]
            END ELSE
               W_Nom=ENR_ELTSFACTAIDE<7>
            END
            W_Temp = W_Temp:W_Nom:";;"

            * code postal
            W_Temp = W_Temp:ENR_ELTSFACTAIDE<8>:";"
 
            * ville
            IF LEN(ENR_ELTSFACTAIDE<9>) > 25 THEN
               W_Nom=ENR_ELTSFACTAIDE<9>[1,25]
            END ELSE
               W_Nom=ENR_ELTSFACTAIDE<9>
            END
            W_Temp = W_Temp:W_Nom:";"

         END

         W_Temp = W_Temp:ENR_CIVILAIDE<40>[1,3]

         ENR_LIENCOMPTA<W_Ind>=W_Temp
         W_Ind=W_Ind+1

      END

   REPEAT
   
   WRITE ENR_LIENCOMPTA ON F.LIENCOMPTA,W_FichierGenere

STOP

**************************************************************
* mise en forme adresse

10

   W_Adresse = ""
   IF W_Tab<W_Rang> # "" THEN
      W_Adresse = W_Tab<W_Rang>:" "
   END
   IF W_Tab<W_Rang+1> # "" THEN
      W_Adresse = W_Adresse:W_Tab<W_Rang+1>:" "
   END
   IF W_Tab<W_Rang+2> # "" THEN
      W_Adresse = W_Adresse:W_Tab<W_Rang+2>:" "
   END
   IF W_Tab<W_Rang+3> # "" THEN
      W_Adresse = W_Adresse:W_Tab<W_Rang+3>
   END

   IF LEN(W_Adresse) > 32 THEN
      W_Adresse=W_Adresse[1,32]
   END

RETURN
