*****************************************************
*
* MOULINETTE DE TRANSFERT DES BENEFICIAIRES D'UN MODULE
* FACTURE VERS CIVILAIDE
*
* OCTOBRE 98                                    DIDIER
*****************************************************
EXECUTE 'DATE.FORMAT'
**********
* RECUPERATION DU NOM DU MODULE
**********
PROCREAD VARIABLES ELSE STOP
MODULE=FIELD(VARIABLES," ",2)
OPEN "","VOC" TO F.VOC ELSE STOP
ENRVOC=""
ENRVOC=REPLACE(ENRVOC,1;"F")
CHEMIN="D:\TRANSFERT\":MODULE
ENRVOC=REPLACE(ENRVOC,2;CHEMIN:"\P.AIDEES")
ENRVOC=REPLACE(ENRVOC,3;CHEMIN:"\D_P.AIDEES")
WRITE ENRVOC ON F.VOC,"P.AIDEES"
ENRVOC=REPLACE(ENRVOC,2;CHEMIN:"\BANQUE")
ENRVOC=REPLACE(ENRVOC,3;CHEMIN:"\D_BANQUE")
WRITE ENRVOC ON F.VOC,"BANQUE"
ENRVOC=REPLACE(ENRVOC,2;CHEMIN:"\ADRESSE")
ENRVOC=REPLACE(ENRVOC,3;CHEMIN:"\D_ADRESSE")
WRITE ENRVOC ON F.VOC,"ADRESSE"
ENRVOC=REPLACE(ENRVOC,2;CHEMIN:"\RESSOURCES")
ENRVOC=REPLACE(ENRVOC,3;CHEMIN:"\D_RESSOURCES")
WRITE ENRVOC ON F.VOC,"RESSOURCES"
**********
* OUVERTURE DES FICHIERS
**********
OPEN "","P.AIDEES" TO F.PAIDEES ELSE STOP
OPEN "","BANQUE" TO F.BANQUE ELSE STOP
OPEN "","ADRESSE" TO F.ADRESSE ELSE STOP
OPEN "","RESSOURCES" TO F.RESSOURCES ELSE STOP
OPEN "","TEMPAIDE" TO F.TEMPAIDE ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","ELTSFACTAIDE" TO F.ELTSFACTAIDE ELSE STOP
OPEN "","RESSOURCESAIDE" TO F.RESSOURCESAIDE ELSE STOP
OPEN "","ENVIRONAIDE" TO F.ENVIRONAIDE ELSE STOP
OPEN "","PAYS" TO F.PAYS ELSE STOP
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE STOP
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE STOP
OPEN "","PARAMASSO" TO F.PARAMASSO ELSE STOP
OPEN "","ERREURSMIGR" TO F.ERREURSMIGR ELSE STOP
READ ENRPARAMASSO FROM F.PARAMASSO,"1" ELSE STOP
I=1
J=0
PRESENCEMODULE=0
PRESENCEGESTEMPS=0
LOOP
 COMPTE=EXTRACT(ENRPARAMASSO,1,I)
 UNTIL COMPTE="" DO
  IF COMPTE=MODULE THEN
   PRESENCEMODULE=1
   J=I
  END
  IF COMPTE="GESTEMPS" THEN PRESENCEGESTEMPS=1
  I=I+1
REPEAT
IF PRESENCEMODULE=0 THEN STOP
I=J
CODEACTIVITE=EXTRACT(ENRPARAMASSO,2,I):EXTRACT(ENRPARAMASSO,3,I)
**********
* INITIALISATIONS
**********
VIDE=""
B1=" "
B2="  "
READ ENRCOMPTEUR FROM F.COMPTEUR,"999" ELSE ENRCOMPTEUR=""
COMPT=EXTRACT(ENRCOMPTEUR,11)
IF COMPT="" THEN COMPT=0
READ ENRERREURSMIGR FROM F.ERREURSMIGR,"1" ELSE ENRERREURSMIGR=""
ENRERREURSMIGR=REPLACE(ENRERREURSMIGR,-1;"PR1 TRANSPAIDEES")
**********
* SELECTION DES P.AIDEES
**********
EXECUTE "SELECT P.AIDEES"
10 READNEXT CODEPB ELSE
  DELETE F.VOC,"P.AIDEES"
  DELETE F.VOC,"BANQUE"
  DELETE F.VOC,"ADRESSE"
  DELETE F.VOC,"RESSOURCES"
  ENRCOMPTEUR=REPLACE(ENRCOMPTEUR,11;COMPT)
  WRITE ENRCOMPTEUR ON F.COMPTEUR,"999"
  WRITE ENRERREURSMIGR ON F.ERREURSMIGR,"1"
  STOP
END
**********
* LECTURE D'UN NOUVEAU P.AIDEES
**********
READ ENRP.AIDEES FROM F.PAIDEES,CODEPB ELSE GOTO 10
ENRCIVILAIDE=VIDE
   * TRAVAIL DE L'ETAT-CIVIL
GOSUB 100
   *TRAVAIL DES ADRESSES
ADRESSEFACT="NON"
GOSUB 200
   *RECHERCHE SI BENEFICIAIRE DEJA TRAITE
DEJATRAITE="NON"
DEJATRAITEAVANT="NON"
GOSUB 300 
IF DEJATRAITE="NON" OR DEJATRAITEAVANT="NON" THEN
   WRITE ENRCIVILAIDE ON F.CIVILAIDE,CODE.CIVILAIDE
END
IF TROPLONG <> VIDE THEN
   PRENOM=PRENOM:B1:TROPLONG
   LIBERREUR="Pb sur Titre-Nom-Prenom P.B. ancien code : ":CODEPB:"   nouveau code : ":CODE.CIVILAIDE
   ENRERREURSMIGR=REPLACE(ENRERREURSMIGR,-1;LIBERREUR)
END
ENRP.AIDEES=REPLACE(ENRP.AIDEES,50;CODE.CIVILAIDE)
WRITE ENRP.AIDEES ON F.PAIDEES,CODEPB
   *TRAVAIL DES ACTIVITES
GOSUB 150
WRITE ENRACTIVITESAIDE ON F.ACTIVITESAIDE,CODE.CIVILAIDE
   *TRAVAIL ADRESSE FACTURATION ET ADRESSE BANCAIRE 
ENVOICOURRIER=TRIM(EXTRACT(ENRP.AIDEES,21))
PRELEVEMENT=TRIM(EXTRACT(ENRP.AIDEES,22))
IF DEJATRAITEAVANT="NON" THEN
   GOSUB 400
END
   *TRAVAIL DES RESSOURCES
GOSUB 500
   *TRAVAIL PERSONNE A PREVENIR (ENVIRONNEMENT AIDE)
IF EXTRACT(ENRP.AIDEES,16)#"" THEN GOSUB 600
GOTO 10
*********** ETAT-CIVIL
**********
100 TNP=TRIM(EXTRACT(ENRP.AIDEES,2))
NOM=FIELD(TNP,B1,2)
READ ENRTEMPAIDE FROM F.TEMPAIDE,NOM ELSE ENRTEMPAIDE=""
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,2;NOM)
TITRE=FIELD(TNP,B1,1)
SEXE="F"
IF LEN(TITRE)<=2 THEN
   SEXE="M"
   TITRE="MR"
END ELSE
   IF TITRE="MLE" OR TITRE="Mle" OR TITRE="MELLE" OR TITRE="MLLE" OR TITRE="Mlle" THEN
      TITRE="MLE"
   END ELSE
      TITRE="MME"
   END
END
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,1;TITRE)
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,17;SEXE)
PRENOM=FIELD(TNP,B1,3)
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,3;PRENOM)
TROPLONG=TRIM(FIELD(TNP,B1,4))
PATRO=TRIM(EXTRACT(ENRP.AIDEES,8))
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,4;PATRO)
DDN=TRIM(EXTRACT(ENRP.AIDEES,9))
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,20;DDN)
NUMERO.B1=TRIM(EXTRACT(ENRP.AIDEES,11))
CLE=NUMERO.B1[20,2]
NUMERO.B1=NUMERO.B1[1,18]
IF NUMERO.B1 <> B1 OR NUMERO.B1 <> VIDE THEN
   NUMERO=NUMERO.B1
   NUMERO=NUMERO[1,1]:NUMERO[3,2]:NUMERO[6,2]:NUMERO[9,2]:NUMERO[12,3]:NUMERO[16,3]
END ELSE
   NUMERO="0000000000000"
   NUMERO.B1="0 00 00 00 000 000"
   CLE="00"
END
CLE.ATTENDU=97-MOD(NUMERO,97)
IF CLE.ATTENDU <> CLE THEN
   CLE="00"
END
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,18;NUMERO.B1)
IF NUMERO.B1[1,4]="0 00" THEN CLE=""
IF NUMERO.B1="" THEN CLE=""
IF CLE="00" THEN CLE=""
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,19;CLE)
DEPT.NAIS=NUMERO[6,2]
IF DEPT.NAIS#"00" THEN
   ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,22;DEPT.NAIS)
END
IF DEPT.NAIS <> "99" THEN
   CODE.PAYSNAIS="000000"
   LIBELLE.PAYSNAIS="FRANCE"
END ELSE
   CODE.PAYSNAIS="99":NUMERO[8,3]:"0"
   READ LIBELLE.PAYSNAIS FROM F.PAYS,CODE.PAYSNAIS ELSE
      CODE.PAYSNAIS="000000"
      LIBELLE.PAYSNAIS="FRANCE"
   END
END
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,23;CODE.PAYSNAIS)
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,24;LIBELLE.PAYSNAIS)
TEL=TRIM(EXTRACT(ENRP.AIDEES,7))
TEL=TEL[1,2]:TEL[4,2]:TEL[7,2]:TEL[10,2]:TEL[13,2]
IF LEN(TEL)=10 THEN
   TEL=TEL[1,2]:B1:TEL[3,2]:B1:TEL[5,2]:B1:TEL[7,2]:B1:TEL[9,2]
END ELSE
   TEL=VIDE
END
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,14;TEL)
SITFAM=TRIM(EXTRACT(ENRP.AIDEES,12))
IF SITFAM <> VIDE THEN
  BEGIN CASE
     CASE SITFAM="M"
        SITFAM="1"
     CASE SITFAM="V"
        SITFAM="3"
     CASE SITFAM="D"
        SITFAM="4"
     CASE 1
        SITFAM="2"
  END CASE
END ELSE
   SITFAM="2"
END
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,25;SITFAM)
D=1
LOOP
 PRENOMENFANT=EXTRACT(ENRP.AIDEES,42,D)
 NAISENFANT=EXTRACT(ENRP.AIDEES,43,D)
 UNTIL PRENOMENFANT="" DO
  ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,34,D;"")
  ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,35,D;PRENOMENFANT)
  ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,36,D;NAISENFANT)
  ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,37,D;"Enfant")
  ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,38,D;"Oui")
  D=D+1
REPEAT
IF PRESENCEGESTEMPS=1 THEN
 RESPONSABLE=EXTRACT(ENRP.AIDEES,13)
 RESPONSABLE="0":RESPONSABLE
 SECTEUR=EXTRACT(ENRP.AIDEES,36)
 SECTEUR="0":SECTEUR
 SOUSSECTEUR=EXTRACT(ENRP.AIDEES,37)
 QUARTIER="01"
END ELSE
 SECTEUR=EXTRACT(ENRP.AIDEES,13)
 SECTEUR="0":SECTEUR
 RESPONSABLE=SECTEUR
 SOUSSECTEUR="01"
 QUARTIER="01"
END
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,39;RESPONSABLE)
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,40;SECTEUR:SOUSSECTEUR:QUARTIER)
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,41;"00000")
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,42;"")
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,43;"")
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,44;"")
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,45;"")
RETURN
*********
* TRAVAIL DES ACTIVITES
*********
150 READ ENRACTIVITESAIDE FROM F.ACTIVITESAIDE,CODE.CIVILAIDE ELSE ENRACTIVITESAIDE=""
IF EXTRACT(ENRP.AIDEES,39)="99" THEN
 ENRACTIVITESAIDE=REPLACE(ENRACTIVITESAIDE,5;"0")
END ELSE
 ENRACTIVITESAIDE=REPLACE(ENRACTIVITESAIDE,5;"1") 
END
ENTREE=EXTRACT(ENRP.AIDEES,14)
SORTIE=EXTRACT(ENRP.AIDEES,27)
IF ENTREE="" AND SORTIE#"" THEN ENTREE=SORTIE
MOTIF=EXTRACT(ENRP.AIDEES,28)
BEGIN CASE
 CASE MOTIF="C"
  MOTIF="06"
 CASE MOTIF="D"
  MOTIF="02"
 CASE MOTIF="H"
  MOTIF="03"
 CASE MOTIF#"" AND MOTIF#" "
  MOTIF="01"
 CASE 1
  MOTIF=""
END CASE
FIN="NON"
I=1
LOOP
 ACTIVITEAIDE=EXTRACT(ENRACTIVITESAIDE,1,I)
 DEBUTACTIVITE=EXTRACT(ENRACTIVITESAIDE,2,I)
 FINACTIVITE=EXTRACT(ENRACTIVITESAIDE,3,I)
 UNTIL FIN="OUI" DO
    IF ACTIVITEAIDE="" THEN
       ENRACTIVITESAIDE=REPLACE(ENRACTIVITESAIDE,1,I;CODEACTIVITE)
       ENRACTIVITESAIDE=REPLACE(ENRACTIVITESAIDE,2,I;ENTREE)
       ENRACTIVITESAIDE=REPLACE(ENRACTIVITESAIDE,3,I;SORTIE)
       ENRACTIVITESAIDE=REPLACE(ENRACTIVITESAIDE,4,I;MOTIF)
       FIN="OUI"
    END ELSE
       IF DEBUTACTIVITE#"" AND SORTIE="" THEN
          IF DEBUTACTIVITE<=ENTREE THEN
             ENRACTIVITESAIDE=INSERT(ENRACTIVITESAIDE,1,I;CODEACTIVITE)
             ENRACTIVITESAIDE=INSERT(ENRACTIVITESAIDE,2,I;ENTREE)
             ENRACTIVITESAIDE=INSERT(ENRACTIVITESAIDE,3,I;SORTIE)
             ENRACTIVITESAIDE=INSERT(ENRACTIVITESAIDE,4,I;MOTIF)
             FIN="OUI"
          END ELSE
             IF FINACTIVITE#"" THEN
                ENRACTIVITESAIDE=INSERT(ENRACTIVITESAIDE,1,I;CODEACTIVITE)
                ENRACTIVITESAIDE=INSERT(ENRACTIVITESAIDE,2,I;ENTREE)
                ENRACTIVITESAIDE=INSERT(ENRACTIVITESAIDE,3,I;SORTIE)
                ENRACTIVITESAIDE=INSERT(ENRACTIVITESAIDE,4,I;MOTIF)
                FIN="OUI"
             END ELSE
                I=I+1
             END
          END
       END ELSE
          IF DEBUTACTIVITE#"" AND DEBUTACTIVITE<=ENTREE AND FINACTIVITE#"" AND SORTIE#"" THEN
             ENRACTIVITESAIDE=INSERT(ENRACTIVITESAIDE,1,I;CODEACTIVITE)
             ENRACTIVITESAIDE=INSERT(ENRACTIVITESAIDE,2,I;ENTREE)
             ENRACTIVITESAIDE=INSERT(ENRACTIVITESAIDE,3,I;SORTIE)
             ENRACTIVITESAIDE=INSERT(ENRACTIVITESAIDE,4,I;MOTIF)
             FIN="OUI"
          END ELSE
              I=I+1
          END
       END
    END
REPEAT
RETURN
*********
* TRAVAIL DES ADRESSES
*********
200 IF ADRESSEFACT="NON" THEN
   ADRESSE1=EXTRACT(ENRP.AIDEES,3)
   ADRESSE2=EXTRACT(ENRP.AIDEES,4)
END ELSE
   ADRESSE1=EXTRACT(ENRADRESSE,2)
   ADRESSE2=EXTRACT(ENRADRESSE,3)
END
IF ADRESSE1 = VIDE OR ADRESSE1 = B1 THEN
   IF ADRESSE2 = VIDE OR ADRESSE2 = B1 THEN
      GOSUB 230
   END ELSE
      ADRESSE1=ADRESSE2
      ADRESSE2=VIDE
      GOSUB 210
      GOSUB 230
   END
END ELSE
   GOSUB 210
   IF ADRESSE2 <> VIDE AND ADRESSE2 <> B1 THEN GOSUB 220
   GOSUB 230
END
RETURN
*********
* ADRESSE1
**********
210 RANG=1
TROUVE="NON"
NUMVOIE=VIDE
COMPL.NUMVOIE=VIDE
NATUREVOIE=VIDE
FIN=LEN(ADRESSE1)
FOR I=1 TO FIN
   CAR=ADRESSE1[I,1]
   IF CAR="," OR CAR='"' OR CAR="." OR CAR=";" OR CAR=":" THEN
      ADRESSE1=ADRESSE1[1,I-1]:B1:ADRESSE1[I+1,FIN-I]
   END
NEXT I
ADRESSE1=TRIM(ADRESSE1)
CHAMP=FIELD(ADRESSE1,B1,RANG)
IF CHAMP MATCH "0N" THEN
   TROUVE="OUI"
   NUMVOIE=CHAMP
   IF ADRESSEFACT="NON" THEN
      ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,5;NUMVOIE)
   END ELSE
      ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,3;NUMVOIE)
   END
   RANG=RANG+1
   CHAMP=FIELD(ADRESSE1,B1,RANG)
   BEGIN CASE
         CASE CHAMP="BIS" OR CHAMP="B"
            COMPL.NUMVOIE="Bis"
         CASE CHAMP="TER" OR CHAMP="T"
            COMPL.NUMVOIE="Ter"
         CASE CHAMP="QUATER" OR CHAMP="QUA" OR CHAMP="Q"
            COMPL.NUMVOIE="Quater"
         CASE CHAMP="CINQ" OR CHAMP="C"
            COMPL.NUMVOIE="Cinq"
         CASE 1
            RANG=RANG-1
   END CASE
   IF ADRESSEFACT="NON" THEN
      ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,6;COMPL.NUMVOIE)
   END ELSE
      ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,4;COMPL.NUMVOIE)
   END
   RANG=RANG+1
END
CHAMP=FIELD(ADRESSE1,B1,RANG)
BEGIN CASE
      CASE CHAMP="ALLEE" OR CHAMP="ALL" OR CHAMP="Allee"
         NATUREVOIE="ALL"
      CASE CHAMP="AV" OR CHAMP="AVENUE" OR CHAMP="Avenue"
         NATUREVOIE="AV"
      CASE CHAMP="BAT" OR CHAMP="BATIMENT" OR CHAMP="Bat"
         NATUREVOIE="BAT"
      CASE CHAMP="BVD" OR CHAMP="BOULEVARD" OR CHAMP="Boulevard" OR CHAMP="BLD"
         NATUREVOIE="BD"
      CASE CHAMP="CHE" OR CHAMP="CHEM" OR CHAMP="CHEMIN" OR CHAMP="Ch" OR CHAMP="Chemin"
         NATUREVOIE="CHE"
      CASE CHAMP="CRS" OR CHAMP="COURS" OR CHAMP="Cours"
         NATUREVOIE="CRS"
      CASE CHAMP="FG" OR CHAMP="FAUBOURG" OR CHAMP="Faubourg"
         NATUREVOIE="FG"
      CASE CHAMP="IMP" OR CHAMP="IMPASSE" OR CHAMP="Impasse"
         NATUREVOIE="IMP"
      CASE CHAMP="PAS" OR CHAMP="PASSAGE" OR CHAMP="Passage"
         NATUREVOIE="PAS"
      CASE CHAMP="PL" OR CHAMP="PLACE" OR CHAMP="Place"
         NATUREVOIE="PL"
      CASE CHAMP="QUAI" OR CHAMP="Q" OR CHAMP="Quai"
         NATUREVOIE="QU"
      CASE CHAMP="ROUTE" OR CHAMP="RTE" OR CHAMP="Rte" OR CHAMP="Route"
         NATUREVOIE="RTE"
      CASE CHAMP="RUE" OR CHAMP="R" OR CHAMP="rue" OR CHAMP="Rue"
         NATUREVOIE="RUE"
      CASE CHAMP="SQUARE" OR CHAMP="SQ" OR CHAMP="Square"
         NATUREVOIE="SQ"
      CASE 1
         RANG=RANG-1
END CASE
IF NATUREVOIE <> VIDE THEN
   TROUVE="OUI"
   IF ADRESSEFACT="NON" THEN
      ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,7;NATUREVOIE)
   END ELSE
      ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,5;NATUREVOIE)
   END
END
IF TROUVE = "OUI" THEN
   POS=INDEX(ADRESSE1,B1,RANG)
   CHAMP=ADRESSE1[POS+1,LEN(ADRESSE1)-POS]
   IF ADRESSEFACT="NON" THEN
      ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,8;CHAMP)
   END ELSE
      ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,6;CHAMP)
   END
END ELSE
   IF ADRESSE2 = VIDE OR ADRESSE2 = B1 THEN
      IF ADRESSEFACT="NON" THEN
         ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,9;ADRESSE1)
      END ELSE
         ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,7;ADRESSE1)
      END
   END ELSE
      IF ADRESSEFACT="NON" THEN
         ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,8;ADRESSE1)
      END ELSE
         ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,6;ADRESSE1)
      END
   END
END
RETURN
**********
* ADRESSE2
**********
220 FIN=LEN(ADRESSE2)
FOR I=1 TO FIN
   CAR=ADRESSE2[I,1]
   IF CAR="," OR CAR='"' OR CAR="." OR CAR=";" OR CAR=":" THEN
      ADRESSE2=ADRESSE2[1,I-1]:B1:ADRESSE2[I+1,FIN-I]
   END
NEXT I
ADRESSE2=TRIM(ADRESSE2)
IF ADRESSEFACT="NON" THEN
   ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,9;ADRESSE2)
END ELSE
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,7;ADRESSE2)
END
RETURN
**********
* CP ET VILLE
**********
230 IF ADRESSEFACT="NON" THEN
   CP=TRIM(EXTRACT(ENRP.AIDEES,5))
   ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,10;CP)
   VILLE=TRIM(EXTRACT(ENRP.AIDEES,6))
   ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,11;VILLE)
   ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,12;"0")
END ELSE
   CP=EXTRACT(ENRADRESSE,4)
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,8;CP)
   VILLE=EXTRACT(ENRADRESSE,5)
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,9;VILLE)
END
RETURN
**********
* MAJ FICHIER TEMPAIDE
**********
300 READ ENRTEMPAIDE FROM F.TEMPAIDE,NOM ELSE ENRTEMPAIDE=VIDE
ADR1=EXTRACT(ENRCIVILAIDE,5):" ":EXTRACT(ENRCIVILAIDE,6):" ":EXTRACT(ENRCIVILAIDE,7):" ":EXTRACT(ENRCIVILAIDE,8)
ADR2=EXTRACT(ENRCIVILAIDE,9)
ADR3=EXTRACT(ENRCIVILAIDE,10):" ":EXTRACT(ENRCIVILAIDE,11)
I=1
FIN="NON"
LOOP
 CODETEMPAIDE=EXTRACT(ENRTEMPAIDE,1,I)
 PRENOMTEMPAIDE=EXTRACT(ENRTEMPAIDE,2,I)
 ADR1TEMPAIDE=EXTRACT(ENRTEMPAIDE,3,I)
 ADR2TEMPAIDE=EXTRACT(ENRTEMPAIDE,4,I)
 ADR3TEMPAIDE=EXTRACT(ENRTEMPAIDE,5,I)
 UNTIL FIN="OUI" DO
    IF CODETEMPAIDE="" THEN
       COMPT=COMPT+1
       CODE.CIVILAIDE=COMPT
       IF CODE.CIVILAIDE MATCH "1N" THEN CODE.CIVILAIDE="0000":CODE.CIVILAIDE
       IF CODE.CIVILAIDE MATCH "2N" THEN CODE.CIVILAIDE="000":CODE.CIVILAIDE
       IF CODE.CIVILAIDE MATCH "3N" THEN CODE.CIVILAIDE="00":CODE.CIVILAIDE
       IF CODE.CIVILAIDE MATCH "4N" THEN CODE.CIVILAIDE="0":CODE.CIVILAIDE    
       ENRTEMPAIDE=REPLACE(ENRTEMPAIDE,1,I;CODE.CIVILAIDE)
       ENRTEMPAIDE=REPLACE(ENRTEMPAIDE,2,I;PRENOM)
       ENRTEMPAIDE=REPLACE(ENRTEMPAIDE,3,I;ADR1)
       ENRTEMPAIDE=REPLACE(ENRTEMPAIDE,4,I;ADR2)
       ENRTEMPAIDE=REPLACE(ENRTEMPAIDE,5,I;ADR3)
       ENRTEMPAIDE=REPLACE(ENRTEMPAIDE,6,I;"F":CODEPB)
       IF ENRP.AIDEES<27> = "" THEN
          ENRTEMPAIDE=REPLACE(ENRTEMPAIDE,7,I;"VRAI")
       END ELSE
          ENRTEMPAIDE=REPLACE(ENRTEMPAIDE,7,I;"FAUX")
       END
       WRITE ENRTEMPAIDE ON F.TEMPAIDE,NOM
       FIN="OUI"
    END ELSE
       IF ADR1TEMPAIDE=ADR1 AND ADR2TEMPAIDE=ADR2 AND ADR3TEMPAIDE=ADR3 AND PRENOMTEMPAIDE=PRENOM THEN
          CODE.CIVILAIDE=CODETEMPAIDE 
          ENRTEMPAIDE=REPLACE(ENRTEMPAIDE,6,I,-1;"F":CODEPB)
          IF ENRTEMPAIDE<7,I> = "FAUX" THEN
             IF ENRP.AIDEES<27> = "" THEN
                ENRTEMPAIDE=REPLACE(ENRTEMPAIDE,7,I;"VRAI")
             END   
          END ELSE
             DEJATRAITEAVANT="OUI"
          END
          WRITE ENRTEMPAIDE ON F.TEMPAIDE,NOM
          DEJATRAITE="OUI"
          FIN="OUI"
       END ELSE
          I=I+1
       END
    END
REPEAT
RETURN
**********
* ELEMENTS DE FACTURATION (ADRESSE + DONNEES BANCAIRES)
**********
400 READ ENRELTSFACTAIDE FROM F.ELTSFACTAIDE,CODE.CIVILAIDE ELSE ENRELTSFACTAIDE=VIDE
IF ENRELTSFACTAIDE="" THEN
   PERIODFACT=EXTRACT(ENRP.AIDEES,20)
   IF PERIODFACT="T" THEN
      ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,1;"T")
   END ELSE
      ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,1;"M")
   END
END
IF PRELEVEMENT="1" AND EXTRACT(ENRELTSFACTAIDE,18)="" THEN
   READ ENRBANQUE FROM F.BANQUE,CODEPB ELSE GOTO 410
   BENEF=TRIM(EXTRACT(ENRBANQUE,1))
   IF LEN(BENEF)>24 THEN BENEF=BENEF[1,24]
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,16;BENEF)
   LIBBANQUE=TRIM(EXTRACT(ENRBANQUE,2))
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,17;LIBBANQUE)
   CODEBANQUE=TRIM(EXTRACT(ENRBANQUE,3))
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,18;CODEBANQUE)
   CODEGUICHET=TRIM(EXTRACT(ENRBANQUE,4))
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,19;CODEGUICHET)
   NOCPTE=TRIM(EXTRACT(ENRBANQUE,5))
   CLERIB=NOCPTE[13,2]
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,21;CLERIB)
   NOCPTE=NOCPTE[1,11]
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,20;NOCPTE)
END
410 IF ENVOICOURRIER="1" AND EXTRACT(ENRELTSFACTAIDE,2)="" THEN
   ADRESSEFACT="OUI"
   READ ENRADRESSE FROM F.ADRESSE,CODEPB ELSE ENRADRESSE=""
   GOSUB 200
   NOMADR=TRIM(EXTRACT(ENRADRESSE,1))
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,2;NOMADR)
   RELATION=TRIM(EXTRACT(ENRADRESSE,6))
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,15;RELATION)
END
ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,10;"0")
ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,24;"")
WRITE ENRELTSFACTAIDE ON F.ELTSFACTAIDE,CODE.CIVILAIDE
RETURN
**********
* TRAVAIL DES RESSOURCES
**********
500 READ ENRRESSOURCESAIDE FROM F.RESSOURCESAIDE,CODE.CIVILAIDE THEN RETURN
ENRRESSOURCESAIDE=""
I=1
LOOP
 CODRESSOURCE=EXTRACT(ENRP.AIDEES,25,I)
 UNTIL CODRESSOURCE="" DO
    READ ENRRESSOURCES FROM F.RESSOURCES,CODRESSOURCE THEN
       LIBRESSOURCE=EXTRACT(ENRRESSOURCES,1)
       MONTRESSOURCE=EXTRACT(ENRP.AIDEES,26,I)
       NOALLOC=EXTRACT(ENRP.AIDEES,31,I)
       DROIT=EXTRACT(ENRP.AIDEES,32,I)
       IF DROIT="DD" THEN DROIT="C" ELSE DROIT="P"
       ENRRESSOURCESAIDE=REPLACE(ENRRESSOURCESAIDE,1,-1;LIBRESSOURCE)
       ENRRESSOURCESAIDE=REPLACE(ENRRESSOURCESAIDE,2,-1;"P")
       ENRRESSOURCESAIDE=REPLACE(ENRRESSOURCESAIDE,3,-1;NOALLOC)
       ENRRESSOURCESAIDE=REPLACE(ENRRESSOURCESAIDE,4,-1;DROIT)
       ENRRESSOURCESAIDE=REPLACE(ENRRESSOURCESAIDE,5,-1;MONTRESSOURCE)
    END
    I=I+1
REPEAT
IF ENRRESSOURCESAIDE#"" THEN
 WRITE ENRRESSOURCESAIDE ON F.RESSOURCESAIDE,CODE.CIVILAIDE
END
RETURN
**********
* TRAVAIL ENVIRONNEMENT DE L'AIDE
**********
600 READ ENRENVIRONAIDE FROM F.ENVIRONAIDE,CODE.CIVILAIDE THEN RETURN
ENRENVIRONAIDE=""
PERSPREV=TRIM(EXTRACT(ENRP.AIDEES,16))
IF PERSPREV#"" THEN ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,9;PERSPREV)
TELPERSPREV=EXTRACT(ENRP.AIDEES,34)
IF TELPERSPREV#"" THEN ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,10;TELPERSPREV)
LIENPERSPREV=TRIM(EXTRACT(ENRP.AIDEES,15))
VILLEPERSPREV=TRIM(EXTRACT(ENRP.AIDEES,19))
IF LIENPERSPREV="" OR LIENPERSPREV=" " THEN
   IF VILLEPERSPREV="" OR VILLEPERSPREV=" " THEN
      NULL
   END ELSE
      ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,11;VILLEPERSPREV)
   END
END ELSE
   IF VILLEPERSPREV="" OR VILLEPERSPREV=" " THEN
      ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,11;LIENPERSPREV)
   END ELSE
      OBSPERSPREV=LIENPERSPREV:" - ":VILLEPERSPREV
      ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,11;OBSPERSPREV)
   END
END
IF ENRENVIRONAIDE#"" THEN
 ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,2;"1")
 ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,17;"")
 WRITE ENRENVIRONAIDE ON F.ENVIRONAIDE,CODE.CIVILAIDE
END
RETURN

