*****************************************************
*
* MOULINETTE DE TRANSFERT DES GARDES VERS CIVILAIDANT
*
* PREVOIR DESC. NOM SUR ATT.2 DE CIVILAIDANT
*
* OCTOBRE 98                                  GILBERT
*****************************************************
CCN="02"
LOCOMOTION="5"
ANTENNE="001001"
**********
* INITIALISATIONS
**********
VIDE=""
B1=" "
B2="  "
**********
* OUVERTURE DES FICHIERS
**********
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","GAD" TO F.GAD ELSE GOSUB 999
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE GOSUB 999
OPEN "","BLOCNOTAIDANT" TO F.BLOCNOTAIDANT ELSE GOSUB 999
OPEN "","PAYS" TO F.PAYS ELSE GOSUB 999
OPEN "","ETRANGER" TO F.ETRANGER ELSE GOSUB 999
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE GOSUB 999
**********
* ENVOI DES ERREURS SUR IMPRIMANTE
**********
PRINTER ON
**********
* RECUP DU COMPTEUR
**********
READ ENRCOMPTEUR FROM F.COMPTEUR,"999" ELSE ENRCOMPTEUR=""
COMPTEUR=EXTRACT(ENRCOMPTEUR,8)
IF COMPTEUR="" THEN COMPTEUR=0
**********
* SELECTION DES GAD
**********
EXECUTE "TSELECT GAD"
10 READNEXT CODE.GAD ELSE
  COMPTEUR=COMPTEUR "R0(%5)"
  ENRCOMPTEUR=REPLACE(ENRCOMPTEUR,8;COMPTEUR)
  WRITE ENRCOMPTEUR ON F.COMPTEUR,"999"
  STOP
END
READ ENRGAD FROM F.GAD,CODE.GAD ELSE GOTO 10
TNP=TRIM(EXTRACT(ENRGAD,1))
TNP="MME ":TNP
NIR.B1=TRIM(EXTRACT(ENRGAD,9))
NIR15=NIR.B1
CLE.NIR=NIR15[14,2]
NIR13=NIR15[1,13]
IF NIR13[8,3]="000" OR NIR13[11,3]="000" THEN
   PRINT CODE.GAD:" --> REVOIR ":TNP:" NIR INCOMPLET : ":NIR.B1
   NIR13=""
   CLE.NIR=""
   NIR15=""
   NIR.B1=""
END
COMPTEUR=COMPTEUR+1
CODE.CIVILAIDANT=COMPTEUR "R0(%5)"
NOM=FIELD(TNP,B1,2)
ENRCIVILAIDANT=VIDE
   * ETAT-CIVIL
GOSUB 100
   * TRAVAIL DES ADRESSES
GOSUB 200
WRITE ENRCIVILAIDANT ON F.CIVILAIDANT,CODE.CIVILAIDANT
OBS=EXTRACT(ENRGAD,18)
IF OBS#"" THEN
 ENRBLOCNOTAIDANT=""
 ENRBLOCNOTAIDANT=REPLACE(ENRBLOCNOTAIDANT,1;OBS)
 WRITE ENRBLOCNOTAIDANT ON F.BLOCNOTAIDANT,CODE.CIVILAIDANT
END
ENRGAD=REPLACE(ENRGAD,60;CODE.CIVILAIDANT)
WRITE ENRGAD ON F.GAD,CODE.GAD
GOTO 10
**********
* ETAT-CIVIL
**********
100 ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,2;NOM)
CLE.ATTENDU=97-MOD(NIR13,97)
IF CLE.ATTENDU <> CLE.NIR THEN
   PRINT CODE.GAD:" --> ":CODE.CIVILAIDANT:" PROBLEME DANS LE NIR , CLE = ":CLE.NIR:" ET CLE ATTENDU = ":CLE.ATTENDU
   CLE.NIR=CLE.ATTENDU
END
IF NIR13="" THEN CLE.NIR=""
NIR.B1=NIR13[1,1]:" ":NIR13[2,2]:" ":NIR13[4,2]:" ":NIR13[6,2]:" ":NIR13[8,3]:" ":NIR13[11,3]
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,17;NIR.B1)
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,18;CLE.NIR)
TITRE=FIELD(TNP,B1,1)
SEXE="F"
IF NIR13[1,1]=1 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" ELSE TITRE="MME"
END
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,1;TITRE)
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,16;SEXE)
PRENOM=FIELD(TNP,B1,3)
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,3;PRENOM)
TROPLONG=TRIM(FIELD(TNP,B1,4))
IF TROPLONG <> VIDE THEN
   PRENOM=PRENOM:B1:TROPLONG
   PRINT CODE.GAD:" --> ":CODE.CIVILAIDANT:" TROP DE CHAMP DANS TNP : ":TNP
END
PATRO=TRIM(EXTRACT(ENRGAD,2))
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,4;PATRO)
DDN=TRIM(EXTRACT(ENRGAD,8))
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,26;DDN)
LIEU.NAIS=TRIM(EXTRACT(ENRGAD,13))
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,27;LIEU.NAIS)
DEPT.NAIS=NIR15[6,2]
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,28;DEPT.NAIS)
IF DEPT.NAIS <> "99" THEN
   CODE.PAYSNAIS="000000"
   LIBELLE.PAYSNAIS="FRANCE"
END ELSE
   CODE.PAYSNAIS="99":NIR15[8,3]:"0"
   READ LIBELLE.PAYSNAIS FROM F.PAYS,CODE.PAYSNAIS ELSE
      PRINT CODE.GAD:" --> ":CODE.CIVILAIDANT:B1:TNP:" PROBLEME LIBELLE PAYS NAISSANCE POUR ":CODE.PAYSNAIS
   END
END
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,29;CODE.PAYSNAIS)
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,30;LIBELLE.PAYSNAIS)
NATION=TRIM(EXTRACT(ENRGAD,10))
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"FRANCE")  
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"000000")
IF NATION[1,1]#"F" THEN
 IF NATION[1,5]="IVOIR" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"COTE D'IVOIRE")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993260")
 END
 IF NATION[1,5]="HAITI" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"HAITI")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"994100")
 END  
 IF NATION[1,4]="ZAIR" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"ZAIRE")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993120")
 END
 IF NATION[1,5]="GABON" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"GABON")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993280")
 END
 IF NATION[1,5]="ALGER" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"ALGERIE")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993520")
 END
 IF NATION[1,5]="SENEG" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"SENEGAL")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993410")
 END
 IF NATION[1,5]="MAROC" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"MAROC")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993500")
 END
 IF NATION[1,5]="CAMER" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"CAMEROUN")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993220")
 END
 IF NATION[1,5]="CENTR" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"REPUBLIQUE CENTRAFICAINE")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993230")
 END
 IF NATION[1,4]="MALI" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"MALI")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993350")
 END
 IF NATION[1,5]="SOUDA" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"SOUDAN")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993430")
 END
 IF NATION[1,5]="ESPAG" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"ESPAGNE")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"991340")
 END
 IF NATION[1,5]="COMOR" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"COMORES")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993970")
 END
 IF NATION[1,5]="TOGOL" OR NATION[1,6]="TONGOL" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"TOGO")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993450")
 END
 IF NATION[1,5]="TUNIS" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"TUNISIE")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993510")
 END
 IF NATION[1,5]="POLON" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"POLOGNE")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"991220")
 END
 IF NATION[1,5]="ANGOL" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"ANGOLA")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993950")
 END
 IF NATION[1,5]="MALGA" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"MADAGASCAR")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993330")
 END
 IF NATION[1,5]="ITALI" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"ITALIE")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"991270")
 END
 IF NATION[1,5]="PORTU" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"PORTUGAL")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"991390")
 END
 IF NATION[1,5]="ALLEM" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"ALLEMAGNE")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"991090")
 END
 IF NATION[1,5]="MAURI" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"MAURICE")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993900")
 END
 IF NATION[1,5]="CONGO" THEN
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,19;"CONGO")  
  ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,20;"993240")
 END
 IF ENRCIVILAIDANT<19>="FRANCE" THEN
  PRINT CODE.GAD:" --> ":CODE.CIVILAIDANT:B1:TNP:" SALARIE ETRANGER, NATIONALITE A PRECISER "
 END ELSE
  ENRETRANGER=""
  ENRETRANGER=REPLACE(ENRETRANGER,1;"01")
  CARTE=EXTRACT(ENRGAD,26)
  ENRETRANGER=REPLACE(ENRETRANGER,3;CARTE)
  FINVALID=EXTRACT(ENRGAD,27)
  ENRETRANGER=REPLACE(ENRETRANGER,4;FINVALID)
  WRITE ENRETRANGER ON F.ETRANGER,CODE.CIVILAIDANT
 END 
END
SITFAM=TRIM(EXTRACT(ENRGAD,11))
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
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,21;SITFAM)
TEL=TRIM(EXTRACT(ENRGAD,39))
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
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,12;TEL)
TEL=TRIM(EXTRACT(ENRGAD,40))
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
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,14;TEL)
SOUSSECTEUR="01"
QUARTIER="01"
SECTEUR=EXTRACT(ENRGAD,19)
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 SECTEUR[1,2]="27" OR SECTEUR[1,2]="28"
  SECTEUR="011"
 CASE SECTEUR[1,2]="89"
  SECTEUR="012"
 CASE 1
  PRINT CODE.GAD:" --> ":CODE.CIVILAIDANT:B1:TNP:" SECTEUR INCONNU"
  SECTEUR="001"
END CASE
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,31;SECTEUR)
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,32;SOUSSECTEUR)
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,33;QUARTIER)
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,34;LOCOMOTION)
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,35;ANTENNE)
RETURN
*********
* TRAVAIL DES ADRESSES
*********
200 ADRESSE1=EXTRACT(ENRGAD,4)
ADRESSE2=EXTRACT(ENRGAD,5)
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
   ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,5;NUMVOIE)
   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
   ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,6;COMPL.NUMVOIE)
   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="BLD" OR CHAMP="BOULEVARD" OR CHAMP="Boulevard"
         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"
   ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,7;NATUREVOIE)
END
IF TROUVE = "OUI" THEN
   POS=INDEX(ADRESSE1,B1,RANG)
   CHAMP=ADRESSE1[POS+1,LEN(ADRESSE1)-POS]
   ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,8;CHAMP)
END ELSE
   IF ADRESSE2 = VIDE OR ADRESSE2 = B1 THEN
      ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,9;ADRESSE1)
   END ELSE
      ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,8;ADRESSE1)
   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)
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,9;ADRESSE2)
RETURN
**********
* CP ET VILLE
**********
230 CP=TRIM(EXTRACT(ENRGAD,6))
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,10;CP)
VILLE=TRIM(EXTRACT(ENRGAD,7))
ENRCIVILAIDANT=REPLACE(ENRCIVILAIDANT,11;VILLE)
RETURN
**********
* PROBLEME OUVERTURE FICHIER
**********
999 PRINT "PROBLEME OUVERTURE FICHIER "
INPUT RETOUR
STOP
RETURN
