***********************************************************
*
* TRANSPOSITION DU FICHIER CAISSE D'UN MODULE FACTURE
* 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 "","COMPTEUR" TO F.COMPTEUR ELSE STOP
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE STOP
OPEN "","PARAMASSO" TO F.PARAMASSO 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
CODEACTIVITEP=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)
TYPEBORDORGCHG=EXTRACT(ENRCAISSE,10)
IF TYPEBORDORGCHG="1" THEN
 TYPEBORDORGCHG="I"
END ELSE
 TYPEBORDORGCHG="R"
END
IF TYPORGCHG="S" THEN TYPEBORDORGCHG="M"
IF TYPORGCHG#"C" THEN TYPORGCHG="P"
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,18;TYPORGCHG)
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,39;TYPEBORDORGCHG)
PLAFDROITORGCHG=EXTRACT(ENRCAISSE,20)
IF PLAFDROITORGCHG="N" THEN
 PLAFDROITORGCHG="3"
END ELSE
 PLAFDROITORGCHG="2"
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)
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,24;"H")
DATEFFET1=EXTRACT(ENRCAISSE,12)
TAUX1=EXTRACT(ENRCAISSE,13)
PRESTSERV1=EXTRACT(ENRCAISSE,22)
IF PRESTSERV1="" THEN PRESTSERV1=0
IF NUM(PRESTSERV1)=0 THEN PRESTSERV1=0
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,25,1;DATEFFET1)
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,26,1;TAUX1)
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,27,1;TAUX1)
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,28,1;PRESTSERV1)
DATEFFET2=EXTRACT(ENRCAISSE,14)
TAUX2=EXTRACT(ENRCAISSE,15)
PRESTSERV2=EXTRACT(ENRCAISSE,23)
IF PRESTSERV2="" THEN PRESTSERV2=0
IF NUM(PRESTSERV2)=0 THEN PRESTSERV2=0
IF DATEFFET2#"" THEN
 ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,25,2;DATEFFET2)
 ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,26,2;TAUX2)
 ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,27,2;TAUX2)
 ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,28,2;PRESTSERV2)
 DATEFFET3=EXTRACT(ENRCAISSE,16)
 TAUX3=EXTRACT(ENRCAISSE,17)
 PRESTSERV3=EXTRACT(ENRCAISSE,24)
 IF PRESTSERV3="" THEN PRESTSERV3=0
 IF NUM(PRESTSERV3)=0 THEN PRESTSERV3=0
 IF DATEFFET3#"" THEN
  ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,25,3;DATEFFET3)
  ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,26,3;TAUX3)
  ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,27,3;TAUX3)
  ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,28,3;PRESTSERV3)
 END
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;"7")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,40,7;"19")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,40,8;"9")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,41;"1")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,44;"1")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,45;"R")
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,46;CODEACTIVITEP[1,3])
ENRORGPRISECHARGE=REPLACE(ENRORGPRISECHARGE,47;CODEACTIVITEP)
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
