***********************************************************
*
* TRANSPOSITION DU FICHIER CAISSE D'UN MODULE GARDE 
* VERS FICHIER ORGPRISECHARGE
*
* OCTOBRE 1998                           DIDIER
***********************************************************
EXECUTE 'DATE.FORMAT'
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:"\CAISSE")
ENRVOC=REPLACE(ENRVOC,3;CHEMIN:"\D_CAISSE")
WRITE ENRVOC ON F.VOC,"CAISSE"
OPEN "","CAISSE" TO F.CAISSE ELSE STOP
OPEN "","PARAMASSO" TO F.PARAMASSO ELSE STOP
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE STOP
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE STOP
READ ENRPARAMASSO FROM F.PARAMASSO,"1" ELSE STOP
I=1
LOOP
 COMPTE=EXTRACT(ENRPARAMASSO,1,I)
 UNTIL COMPTE="" OR COMPTE=MODULE DO
  I=I+1
REPEAT
IF COMPTE="" THEN STOP
CODEACTIVITEM=EXTRACT(ENRPARAMASSO,2,I):EXTRACT(ENRPARAMASSO,3,I)
VIDE=""
B1=" "
READ ENRCOMPTEUR FROM F.COMPTEUR,"999" ELSE ENRCOMPTEUR=""
CLEORGCHG=EXTRACT(ENRCOMPTEUR,10)
IF CLEORGCHG="" THEN CLEORGCHG=0
*** TRAITEMENT
EXECUTE "TSELECT CAISSE"
10 READNEXT CLECAISSE ELSE
 ENRCOMPTEUR=REPLACE(ENRCOMPTEUR,10;CLEORGCHG)
 WRITE ENRCOMPTEUR ON F.COMPTEUR,"999"
 DELETE F.VOC,"CAISSE"
 STOP 
END
IF CLECAISSE="ZZ" THEN GOTO 10
READ ENRCAISSE FROM F.CAISSE,CLECAISSE ELSE ENRCAISSE=""
CLEORGCHG=CLEORGCHG+1
IF CLEORGCHG MATCH "1N" THEN CLEORGCHG="00":CLEORGCHG
IF CLEORGCHG MATCH "2N" THEN CLEORGCHG="0":CLEORGCHG
ENRORGPRISECHARGE=""
SIGLEORGCHG=TRIM(EXTRACT(ENRCAISSE,1)) 
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,1;SIGLEORGCHG)
RAISONORGCHG=TRIM(EXTRACT(ENRCAISSE,2))
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,2;RAISONORGCHG)
*** TRAVAIL DE L'ADRESSE
GOSUB 200
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,10;"0")
TELORGCHG=EXTRACT(ENRCAISSE,7)
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,12;TELORGCHG)
INTERLOC=TRIM(EXTRACT(ENRCAISSE,8))
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,15;INTERLOC)
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,17;"M")
TYPORGCHG=EXTRACT(ENRCAISSE,9)
TYPORGCHG="P"
TYPEBORDORGCHG=EXTRACT(ENRCAISSE,10)
IF TYPEBORDORGCHG="1" THEN
 TYPEBORDORGCHG="I"
END ELSE
 TYPEBORDORGCHG="R"
END
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,18;TYPORGCHG)
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,39;TYPEBORDORGCHG)
PLAFDROITORGCHG=EXTRACT(ENRCAISSE,20)
IF PLAFDROITORGCHG="N" THEN
 PLAFDROITORGCHG="3"
END ELSE
 PLAFDROITORGCHG="2"
 REPORTCREDIT=EXTRACT(ENRCAISSE,22)
 IF REPORTCREDIT="O" THEN PLAFDROITORGCHG="1"
END
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,19;PLAFDROITORGCHG)
RENOUVORGCHG=EXTRACT(ENRCAISSE,11)
IF RENOUVORGCHG="N" THEN
 RENOUVORGCHG="0"
END ELSE
 RENOUVORGCHG="1"
END
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,20;"0")
DEBITORGCHG=EXTRACT(ENRCAISSE,18)
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,22;DEBITORGCHG)
CREDITORGCHG=EXTRACT(ENRCAISSE,19)
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,23;CREDITORGCHG)
TYPEPARTICIPATION=EXTRACT(ENRCAISSE,21)
IF TYPEPARTICIPATION="H" THEN
 ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,24;"H")
END ELSE
 ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,24;"M")
END
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,40,1;"1")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,40,2;"14")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,40,3;"21")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,40,4;"16")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,40,5;"20")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,40,6;"9")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,41;"1")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,44;"1")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,45;"R")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,46;CODEACTIVITEM[1,3])
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,47;CODEACTIVITEM)
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,48;"M")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,49,1;"3")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,49,2;"2")
WRITE ENRORGPRISECHARGE ON F.ORGPRISECHARGE,CLEORGCHG
ENRCAISSE=REPLACE(ENRCAISSE,30;CLEORGCHG)
WRITE ENRCAISSE ON F.CAISSE,CLECAISSE
GOTO 10
*********
* TRAVAIL DES ADRESSES
*********
200 ADRESSE1=EXTRACT(ENRCAISSE,3)
ADRESSE2=EXTRACT(ENRCAISSE,4)
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
   ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,3;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
   ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,4;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="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"
   ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,5;NATUREVOIE)
END
IF TROUVE = "OUI" THEN
   POS=INDEX(ADRESSE1,B1,RANG)
   CHAMP=ADRESSE1[POS+1,LEN(ADRESSE1)-POS]
   ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,6;CHAMP)
END ELSE
   IF ADRESSE2 = VIDE OR ADRESSE2 = B1 THEN
      ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,7;ADRESSE1)
   END ELSE
      ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,6;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)
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,7;ADRESSE2)
RETURN
**********
* CP ET VILLE
**********
230 CP=TRIM(EXTRACT(ENRCAISSE,5))
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,8;CP)
VILLE=TRIM(EXTRACT(ENRCAISSE,6))
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,9;VILLE)
RETURN
