*****************************************************
*
* MOULINETTE DE TRANSFERT DES EMPLOYEURS D'UN MODULE
* GARDE VERS CIVILAIDE
*
* OCTOBRE 98                                    DIDIER
*****************************************************
**********
* OUVERTURE DES FICHIERS
**********
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","EMPLOYEURS" TO F.EMPLOYEURS ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","ELTSFACTAIDE" TO F.ELTSFACTAIDE ELSE STOP
OPEN "","ELTSPARTEMP" TO F.ELTSPARTEMP ELSE STOP
OPEN "","ENVIRONAIDE" TO F.ENVIRONAIDE ELSE STOP
OPEN "","BESOINSAIDE" TO F.BESOINSAIDE ELSE STOP
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE STOP
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE STOP
CODEACTIVITE="001001"
**********
* INITIALISATIONS
**********
VIDE=""
B1=" "
B2="  "
READ ENRCOMPTEUR FROM F.COMPTEUR,"999" ELSE ENRCOMPTEUR=""
COMPT=EXTRACT(ENRCOMPTEUR,11)
IF COMPT="" THEN COMPT=0
PRINTER ON
**********
* SELECTION DES EMPLOYEURS
**********
EXECUTE "SELECT EMPLOYEURS"
10 READNEXT CODEEMPL ELSE
  ENRCOMPTEUR=REPLACE(ENRCOMPTEUR,11;COMPT)
  WRITE ENRCOMPTEUR ON F.COMPTEUR,"999"
  STOP
END
**********
* LECTURE D'UN NOUVEL EMPLOYEUR
**********
READ ENREMPLOYEURS FROM F.EMPLOYEURS,CODEEMPL ELSE GOTO 10
ENRCIVILAIDE=VIDE
COMPT=COMPT+1
IF COMPT MATCH "1N" THEN COMPT="0000":COMPT
IF COMPT MATCH "2N" THEN COMPT="000":COMPT
IF COMPT MATCH "3N" THEN COMPT="00":COMPT
IF COMPT MATCH "4N" THEN COMPT="0":COMPT
CODE.CIVILAIDE=COMPT
   * TRAVAIL DE L'ETAT-CIVIL
GOSUB 100
   *TRAVAIL DES ADRESSES
ADRESSEFACT="NON"
GOSUB 200
WRITE ENRCIVILAIDE ON F.CIVILAIDE,CODE.CIVILAIDE
IF TROPLONG <> VIDE THEN
   PRENOM=PRENOM:B1:TROPLONG
   PRINT "Pb sur Titre-Nom-Prenom Employeur ancien code : ":CODEEMPL:"   nouveau code : ":CODE.CIVILAIDE
   INPUT RETOUR
END
ENREMPLOYEURS=REPLACE(ENREMPLOYEURS,50;CODE.CIVILAIDE)
WRITE ENREMPLOYEURS ON F.EMPLOYEURS,CODEEMPL
   *TRAVAIL DES ACTIVITES
GOSUB 150
WRITE ENRACTIVITESAIDE ON F.ACTIVITESAIDE,CODE.CIVILAIDE
      *TRAVAIL ADRESSE FACTURATION ET ADRESSE BANCAIRE 
ENVOICOURRIER=TRIM(EXTRACT(ENREMPLOYEURS,22))
GOSUB 400   
WRITE ENRELTSFACTAIDE ON F.ELTSFACTAIDE,CODE.CIVILAIDE      
GOSUB 500
WRITE ENRELTSPARTEMP ON F.ELTSPARTEMP,CODE.CIVILAIDE
   *TRAVAIL PERSONNE A PREVENIR (ENVIRONNEMENT AIDE)
IF TRIM(EXTRACT(ENREMPLOYEURS,34))#"" THEN GOSUB 600
   *TRAVAIL DES BESOINS DE L'AIDE
GOSUB 700
GOTO 10
*********** ETAT-CIVIL
**********
100 TNP=TRIM(EXTRACT(ENREMPLOYEURS,2))
NOM=FIELD(TNP,B1,2)
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=NOM
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,4;PATRO)
DDN=TRIM(EXTRACT(ENREMPLOYEURS,25))
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,20;DDN)
CODE.PAYSNAIS="000000"
LIBELLE.PAYSNAIS="FRANCE"
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,23;CODE.PAYSNAIS)
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,24;LIBELLE.PAYSNAIS)
TEL=TRIM(EXTRACT(ENREMPLOYEURS,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)
RESPONSABLE="001"
SECTEUR=EXTRACT(ENREMPLOYEURS,13)
SOUSSECTEUR="01"
QUARTIER="01"
BEGIN CASE
 CASE SECTEUR[1,2]="75"
  SOUSSECTEUR=SECTEUR[4,2]
  SECTEUR="001"
 CASE SECTEUR[1,2]="93"
  SECTEUR="002"
 CASE SECTEUR[1,2]="92"
  SECTEUR="003"
 CASE SECTEUR[1,2]="94"
  SECTEUR="004"
 CASE SECTEUR[1,2]="91"
  SECTEUR="005"
 CASE SECTEUR[1,2]="95"
  SECTEUR="006"
 CASE SECTEUR[1,2]="78"
  SECTEUR="007"
 CASE SECTEUR[1,2]="60"
  SECTEUR="008"
 CASE SECTEUR[1,2]="35"
  SECTEUR="009"
 CASE SECTEUR[1,2]="77"
  SECTEUR="010"
 CASE 1
  PRINT CODEEMPL:" --> ":CODE.CIVILAIDE:B1:TNP:" SECTEUR INCONNU"
  SECTEUR="001"
END CASE
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,39;RESPONSABLE)
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,40;SECTEUR:SOUSSECTEUR:QUARTIER)
ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,41;"00000")
RETURN
*********
* TRAVAIL DES ACTIVITES
*********
150 READ ENRACTIVITESAIDE FROM F.ACTIVITESAIDE,CODE.CIVILAIDE ELSE ENRACTIVITESAIDE=""
ENTREE=EXTRACT(ENREMPLOYEURS,14)
ENRACTIVITESAIDE=REPLACE(ENRACTIVITESAIDE,1,1;CODEACTIVITE)
ENRACTIVITESAIDE=REPLACE(ENRACTIVITESAIDE,2,1;ENTREE)
ENRACTIVITESAIDE=REPLACE(ENRACTIVITESAIDE,3,1;"")
RETURN
*********
* TRAVAIL DES ADRESSES
*********
200 IF ADRESSEFACT="NON" THEN
   ADRESSE1=EXTRACT(ENREMPLOYEURS,3)
   ADRESSE2=EXTRACT(ENREMPLOYEURS,4)
END ELSE
   ADRESSE1=EXTRACT(ENREMPLOYEURS,17)
   ADRESSE2=EXTRACT(ENREMPLOYEURS,18)
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 OR 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="CITE" OR CHAMP="Cite" OR CHAMP="cite"
         NATUREVOIE="CIT"
      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(ENREMPLOYEURS,5))
   ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,10;CP)
   VILLE=TRIM(EXTRACT(ENREMPLOYEURS,6))
   ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,11;VILLE)
   ENRCIVILAIDE=REPLACE(ENRCIVILAIDE,12;"0")
END ELSE
   CP=EXTRACT(ENREMPLOYEURS,19)
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,8;CP)
   VILLE=EXTRACT(ENREMPLOYEURS,20)
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,9;VILLE)
END
RETURN
**********
* ELEMENTS DE FACTURATION (ADRESSE + DONNEES BANCAIRES)
**********
400 ENRELTSFACTAIDE=VIDE
ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,1;"M")
410 IF ENVOICOURRIER="1" THEN
   ADRESSEFACT="OUI"
   GOSUB 200
   NOMADR=TRIM(EXTRACT(ENREMPLOYEURS,16))
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,2;NOMADR)
   RELATION=TRIM(EXTRACT(ENREMPLOYEURS,15))
   ENRELTSFACTAIDE=REPLACE(ENRELTSFACTAIDE,15;RELATION)
END
RETURN
**********
* ELEMENTS PARTICULIER EMPLOYEUR
**********
500 ENRELTSPARTEMP=""
ENRELTSPARTEMP=REPLACE(ENRELTSPARTEMP,1;"01")
NUMURSSAF=TRIM(EXTRACT(ENREMPLOYEURS,23))
ENRELTSPARTEMP=REPLACE(ENRELTSPARTEMP,2;NUMURSSAF)
ENRELTSPARTEMP=REPLACE(ENRELTSPARTEMP,7;"0")
ENRELTSPARTEMP=REPLACE(ENRELTSPARTEMP,8;"0")
TYPEEXO=EXTRACT(ENREMPLOYEURS,29)
IF TYPEEXO#"N" THEN
 TYPEEXO="05"
END ELSE
 TYPEEXO="00"
END
ENRELTSPARTEMP=REPLACE(ENRELTSPARTEMP,9;TYPEEXO)
IF TYPEEXO="01" THEN
 TAUXAGED=EXTRACT(ENREMPLOYEURS,41)
 PLAFONDAGED=EXTRACT(ENREMPLOYEURS,42)
 ENRELTSPARTEMP=REPLACE(ENRELTSPARTEMP,10;TAUXAGED)
 ENRELTSPARTEMP=REPLACE(ENRELTSPARTEMP,11;PLAFONDAGED)
END
IF TYPEEXO="00" THEN
 ENRELTSPARTEMP=REPLACE(ENRELTSPARTEMP,12;"012")
END ELSE
 ENRELTSPARTEMP=REPLACE(ENRELTSPARTEMP,12;"011")
END
ENRELTSPARTEMP=REPLACE(ENRELTSPARTEMP,13;"01")
RETURN
**********
* TRAVAIL ENVIRONNEMENT DE L'AIDE
**********
600 ENRENVIRONAIDE=""
D=1
LOOP
 PERSHORSFOYER=EXTRACT(ENREMPLOYEURS,34,D)
 TELHORSFOYER=EXTRACT(ENREMPLOYEURS,35,D)
 UNTIL PERSHORSFOYER="" DO
  ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,5,D;PERSHORSFOYER)
  TEL=TELHORSFOYER
  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
  IF D=1 THEN
   ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,6,1;"0")
   ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,7,1;"0")
  END ELSE
   ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,6,D;"")
   ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,7,D;"")
  END
  ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,8,D;TEL)
  D=D+1
REPEAT
ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,6,1;"")
ENRENVIRONAIDE=REPLACE(ENRENVIRONAIDE,7,1;"")
IF ENRENVIRONAIDE#"" THEN WRITE ENRENVIRONAIDE ON F.ENVIRONAIDE,CODE.CIVILAIDE
RETURN
**********
* TRAVAIL BESOINS DE L'AIDE
**********
700 ENRBESOINSAIDE=""
LIBBESOIN=""
CODEENTREE=EXTRACT(ENREMPLOYEURS,8)
IF CODEENTREE#"" THEN LIBBESOIN="CODE ":CODEENTREE
BAT=EXTRACT(ENREMPLOYEURS,9)
IF BAT#"" THEN
 IF LIBBESOIN="" THEN
  LIBBESOIN="BATIMENT ":BAT
 END ELSE
  LIBBESOIN=LIBBESOIN:" - BATIMENT ":BAT
 END
END
ETAGE=EXTRACT(ENREMPLOYEURS,10)
IF ETAGE#"" THEN
 IF LIBBESOIN="" THEN
  LIBBESOIN="ETAGE ":ETAGE
 END ELSE
  LIBBESOIN=LIBBESOIN:" - ETAGE ":ETAGE
 END
END
PORTE=EXTRACT(ENREMPLOYEURS,11)
IF PORTE#"" THEN
 IF LIBBESOIN="" THEN
  LIBBESOIN="PORTE ":PORTE
 END ELSE
  LIBBESOIN=LIBBESOIN:" - PORTE ":PORTE
 END
END
OBS=EXTRACT(ENREMPLOYEURS,24)
IF OBS#"" THEN
 D=1
 LOOP
  OBS=EXTRACT(ENREMPLOYEURS,24,D)
  UNTIL OBS="" DO
  IF LIBBESOIN="" THEN
   LIBBESOIN=OBS
  END ELSE
   LIBBESOIN=LIBBESOIN:" - ":OBS
  END
  D=D+1
 REPEAT
END
IF LIBBESOIN#"" THEN
 ENRBESOINSAIDE=REPLACE(ENRBESOINSAIDE,5;LIBBESOIN)
 WRITE ENRBESOINSAIDE ON F.BESOINSAIDE,CODE.CIVILAIDE
END
RETURN
