**********************************************************
*  Affectation provisoire en compta 
*  Programme chaine  partir d'un projet VB
*  Vanessa
*  DECEMBRE 1999
**********************************************************

* Ouvertures des fichiers
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","BROUILLARDTETE" TO F.BROUILLARDTETE ELSE PRINT "OUVERTURE BROUILLARDTETE" ;* en lecture criture
OPEN "","BROUILLARDDETAIL" TO F.BROUILLARDDETAIL ELSE PRINT "OUVERTURE BROUILLARDDETAIL" ;* en lecture criture
OPEN "","BALANCEGENETEMPO" TO F.BALANCEGENETEMPO ELSE PRINT "OUVERTURE BALANCEGENETEMPO" ;* en lecture criture
OPEN "","DETAILECRITUREGENETEMPO" TO F.DETAILECRITUREGENETEMPO ELSE PRINT "OUVERTURE DETAILECRITUREGENETEMPO" ;* en lecture criture
OPEN "","BALANCEANALTEMPO" TO F.BALANCEANALTEMPO ELSE PRINT "OUVERTURE BALANCEANALTEMPO" ;* en lecture criture
OPEN "","PARAMENTITECOMPTA" TO F.PARAMENTITECOMPTA ELSE PRINT "OUVERTURE PARAMENTITECOMPTA" ;* en lecture
OPEN "","JOURNAL" TO F.JOURNAL ELSE PRINT "OUVERTURE JOURNAL" ;* en lecture
*********************************************************
*  Rcupration des arguments

PROCREAD ARGUMENTS ELSE STOP
W_Sequence=FIELD(ARGUMENTS," ",2)
w_JOURNAL=""
*********************************************************
*  PROGRAMME PRINCIPAL

   W_CountSeq = LEN(W_Sequence)

   W_TabDyn=""
   i=1
   LOOP 
   UNTIL i >= W_CountSeq DO
      W_Matrice=""
      * extrait la cl de BROUILLARDTETE suivante
      W_CleSeq = W_Sequence[i,8]
      IF W_JOURNAL="" THEN W_JOURNAL=W_CleSeq[4,2]
      IF W_JOURNAL#W_CleSeq[4,2] THEN
         READ ENR_JOURNAL FROM F.JOURNAL,W_CleSeq[1,5] ELSE ENR_JOURNAL=""
	 W_JOURNAL=W_CleSeq[4,2]
      END
      READ ENR_BROUILLARDTETE FROM F.BROUILLARDTETE,W_CleSeq ELSE ENR_BROUILLARDTETE=""

      W_Passe="FAUX" 
      * lit chaque ligne de BROUILLARDDETAIL
      FOR j = 1 TO ENR_BROUILLARDTETE<1>
	 W_CleBrouillardDetail = W_CleSeq:j "R%5"
         READ ENR_BROUILLARDDETAIL FROM F.BROUILLARDDETAIL,W_CleBrouillardDetail THEN
            * s'il s'agit d'un code aid
            IF ENR_BROUILLARDDETAIL<3>="A" THEN
               GOSUB 10
               W_Passe = "VRAI"
            END ELSE
               GOSUB 20
            END
         END
      NEXT j

      IF W_Passe="VRAI" THEN
         GOSUB 60
      END

      i=i+9
   REPEAT

STOP

*********************************************************
*  Sauvegarde cumuls dbit/crdit mois par mois

10

   READ ENR_PARAMENTITECOMPTA FROM F.PARAMENTITECOMPTA,W_CleEcriture[1,3] ELSE ENR_PARAMENTITECOMPTA=""
   * exercice N
   IF W_CleSeq[6,2]="N0" THEN
      IF ENR_JOURNAL<4>="" THEN
         ENR_JOURNAL<4>="00001"
         W_CleEcriture=W_CleSeq[1,7]:"00001"
      END ELSE
         ENR_JOURNAL<4>=ENR_JOURNAL<4>+1 "R%5"
         W_CleEcriture=W_CleSeq[1,7]:ENR_JOURNAL<4>
      END
      W_Annee=OCONV(ENR_PARAMENTITECOMPTA<1>,"D4/")
      W_Annee=W_Annee[7,4]
   END ELSE
      * exercice N+1
      IF ENR_JOURNAL<6>="" THEN
         ENR_JOURNAL<6>="00001"
         W_CleEcriture=W_CleSeq[1,7]:"00001"
      END ELSE
         ENR_JOURNAL<6>=ENR_JOURNAL<6>+1 "R%5"
         W_CleEcriture=W_CleSeq[1,7]:ENR_JOURNAL<6>
      END
      W_Annee=OCONV(ENR_PARAMENTITECOMPTA<3>,"D4/")
      W_Annee=W_Annee[7,4]
   END

*   W_CleEcriture = W_CleBrouillardDetail[1,7]:W_CleSeq[8,1]:W_CleBrouillardDetail[9,5]

   READ ENR_DETAILECRITUREGENETEMPO FROM F.DETAILECRITUREGENETEMPO,W_CleEcriture ELSE ENR_DETAILECRITUREGENETEMPO=""

   W_Date=OCONV(ENR_BROUILLARDDETAIL<2>,"D4/")
   W_Mois=W_Date[4,2]
   IF ENR_BROUILLARDDETAIL<7> # "" THEN
      IF W_Matrice<1,W_Mois>="" THEN
         W_Matrice<1,W_Mois>=ENR_BROUILLARDDETAIL<7>
      END ELSE
         W_Matrice<1,W_Mois>=W_Matrice<1,W_Mois> + ENR_BROUILLARDDETAIL<7>
      END
   END

   IF ENR_BROUILLARDDETAIL<8> # "" THEN
      IF W_Matrice<2,W_Mois>="" THEN
         W_Matrice<2,W_Mois>=ENR_BROUILLARDDETAIL<8>
      END ELSE
         W_Matrice<2,W_Mois>=W_Matrice<2,W_Mois> + ENR_BROUILLARDDETAIL<8>
      END
   END

RETURN
*********************************************************
*  Gestion si compte comptable

20

   READ ENR_PARAMENTITECOMPTA FROM F.PARAMENTITECOMPTA,W_CleEcriture[1,3] ELSE ENR_PARAMENTITECOMPTA=""
   * exercice N
   IF W_CleSeq[6,2]="N0" THEN
      IF ENR_JOURNAL<4>="" THEN
         ENR_JOURNAL<4>="00001"
         W_CleEcriture=W_CleSeq[1,7]:"00001"
      END ELSE
         ENR_JOURNAL<4>=ENR_JOURNAL<4>+1 "R%5"
         W_CleEcriture=W_CleSeq[1,7]:ENR_JOURNAL<4>
      END
      W_Annee=OCONV(ENR_PARAMENTITECOMPTA<1>,"D4/")
      W_Annee=W_Annee[7,4]
   END ELSE
      * exercice N+1
      IF ENR_JOURNAL<6>="" THEN
         ENR_JOURNAL<6>="00001"
         W_CleEcriture=W_CleSeq[1,7]:"00001"
      END ELSE
         ENR_JOURNAL<6>=ENR_JOURNAL<6>+1 "R%5"
         W_CleEcriture=W_CleSeq[1,7]:ENR_JOURNAL<6>
      END
      W_Annee=OCONV(ENR_PARAMENTITECOMPTA<3>,"D4/")
      W_Annee=W_Annee[7,4]
   END

*   W_CleEcriture = W_CleBrouillardDetail[1,7]:W_CleSeq[8,1]:W_CleBrouillardDetail[9,5]

   READ ENR_DETAILECRITUREGENETEMPO FROM F.DETAILECRITUREGENETEMPO,W_CleEcriture ELSE ENR_DETAILECRITUREGENETEMPO=""
   GOSUB 30

   WRITE ENR_DETAILECRITUREGENETEMPO ON F.DETAILECRITUREGENETEMPO,W_CleEcriture

   * lecture et MAJ du fichier BALANCEGENETEMPO
   W_CleBalance = W_CleBrouillardDetail[6,2]:ENR_BROUILLARDDETAIL<4>

   READ ENR_BALANCEGENETEMPO FROM F.BALANCEGENETEMPO,W_CleBalance ELSE ENR_BALANCEGENETEMPO =""
   W_TabDyn=ENR_BALANCEGENETEMPO
   GOSUB 40
   ENR_BALANCEGENETEMPO=W_TabDyn
   W_TabDyn=""

   WRITE ENR_BALANCEGENETEMPO ON F.BALANCEGENETEMPO,W_CleBalance

   * lecture et MAJ du fichier BALANCEANALTEMPO
   IF ENR_BROUILLARDDETAIL<4>[4,1]="6" OR ENR_BROUILLARDDETAIL<4>[4,1]="7" THEN
      W_CleBalance = W_CleBrouillardDetail[6,2]:ENR_BROUILLARDDETAIL<4>:ENR_BROUILLARDDETAIL<11>
      READ ENR_BALANCEANALTEMPO FROM F.BALANCEANALTEMPO,W_CleBalance ELSE ENR_BALANCEANALTEMPO =""
      W_TabDyn=ENR_BALANCEANALTEMPO
      GOSUB 40
      ENR_BALANCEANALTEMPO=W_TabDyn
      W_TabDyn=""
      WRITE ENR_BALANCEANALTEMPO ON F.BALANCEANALTEMPO,W_CleBalance
   END

RETURN

*********************************************************
*  MAJ des fichiers DETAILECRITUREGENETEMPO

30

   ENR_DETAILECRITUREGENETEMPO<1>=ENR_BROUILLARDDETAIL<1>
   ENR_DETAILECRITUREGENETEMPO<2>=ENR_BROUILLARDDETAIL<2>
   ENR_DETAILECRITUREGENETEMPO<3>=ENR_BROUILLARDDETAIL<4>
   ENR_DETAILECRITUREGENETEMPO<4>=ENR_BROUILLARDDETAIL<5>
   ENR_DETAILECRITUREGENETEMPO<5>=ENR_BROUILLARDDETAIL<6>
   ENR_DETAILECRITUREGENETEMPO<6>=ENR_BROUILLARDDETAIL<7>
   ENR_DETAILECRITUREGENETEMPO<7>=ENR_BROUILLARDDETAIL<8>
   ENR_DETAILECRITUREGENETEMPO<8>=ENR_BROUILLARDDETAIL<9>
   ENR_DETAILECRITUREGENETEMPO<9>=ENR_BROUILLARDDETAIL<10>
   ENR_DETAILECRITUREGENETEMPO<10>=ENR_BROUILLARDDETAIL<11>

RETURN

*********************************************************
*  MAJ des fichiers BALANCEGENETEMPO ou BALANCEANALTEMPO

40

   * cumul dbit
   IF ENR_BROUILLARDDETAIL<7> # "" THEN
      IF W_TabDyn<1>="" THEN
         W_TabDyn<1>=ENR_BROUILLARDDETAIL<7>
      END ELSE
         W_TabDyn<1>=W_TabDyn<1> + ENR_BROUILLARDDETAIL<7>
      END
   END

   * cumul crdit
   IF ENR_BROUILLARDDETAIL<8> # "" THEN
      IF W_TabDyn<2>="" THEN
         W_TabDyn<2>=ENR_BROUILLARDDETAIL<8>
      END ELSE
         W_TabDyn<2>=W_TabDyn<2> + ENR_BROUILLARDDETAIL<8>
      END
   END

   * cumul quantit
   IF ENR_BROUILLARDDETAIL<10> # "" THEN
      IF W_TabDyn<3>="" THEN
         W_TabDyn<3>=ENR_BROUILLARDDETAIL<10>
      END ELSE
         W_TabDyn<3>=W_TabDyn<3> + ENR_BROUILLARDDETAIL<10>
      END
   END

   * recherche le mois
   W_Date = OCONV(ENR_BROUILLARDDETAIL<2>,"D4/")
   W_Mois=W_Date[4,2]
   k = 1
   LOOP
   WHILE INT(W_TabDyn<4,k>) < INT(W_Mois) AND W_TabDyn<4,k> # "" DO
      k=k+1
   REPEAT

   * dbit par mois
   IF ENR_BROUILLARDDETAIL<7> # "" THEN
      IF W_TabDyn<4,k>=W_Mois THEN
         W_TabDyn<5,k>=W_TabDyn<5,k> + ENR_BROUILLARDDETAIL<7>
      END ELSE
         W_TabDyn=INSERT(W_TabDyn,4,k;W_Mois)
         W_TabDyn=INSERT(W_TabDyn,5,k;ENR_BROUILLARDDETAIL<7>)
         W_TabDyn=INSERT(W_TabDyn,6,k;"0")
      END
   END ELSE
      IF W_TabDyn<4,k> = "" THEN
         W_TabDyn=INSERT(W_TabDyn,4,k;W_Mois)
         W_TabDyn=INSERT(W_TabDyn,5,k;"0")
      END
   END

   * crdit par mois
   IF ENR_BROUILLARDDETAIL<8> # "" THEN
      IF W_TabDyn<4,k>=W_Mois THEN
         W_TabDyn<6,k>=W_TabDyn<6,k> + ENR_BROUILLARDDETAIL<8>
      END ELSE
         W_TabDyn=INSERT(W_TabDyn,4,k;W_Mois)
         W_TabDyn=INSERT(W_TabDyn,5,k;"0")
         W_TabDyn=INSERT(W_TabDyn,6,k;ENR_BROUILLARDDETAIL<8>)
      END
   END ELSE
      IF W_TabDyn<6,k> = "" THEN
         W_TabDyn<6,k>="0"
      END
   END

   * quantit par mois
   k = 1
   LOOP
   WHILE INT(W_TabDyn<4,k>) # INT(W_Mois) AND W_TabDyn<4,k> # "" DO
      k=k+1
   REPEAT

   IF ENR_BROUILLARDDETAIL<10> # "" THEN
      IF W_TabDyn<7,k>="" THEN
         W_TabDyn<7,k>=ENR_BROUILLARDDETAIL<10>
      END ELSE
         W_TabDyn<7,k>=W_TabDyn<7,k> + ENR_BROUILLARDDETAIL<10>
      END
   END ELSE
      IF W_TabDyn<7,k>="" THEN
         W_TabDyn=INSERT(W_TabDyn,7,k;"0")
      END
   END

   * date opration
   k = 1
   LOOP
   WHILE INT(W_TabDyn<8,k>) <= INT(ENR_BROUILLARDDETAIL<2>) AND W_TabDyn<8,k> # "" DO
      k=k+1
   REPEAT
   W_TabDyn=INSERT(W_TabDyn,8,k;ENR_BROUILLARDDETAIL<2>)
   W_TabDyn=INSERT(W_TabDyn,9,k;W_CleEcriture)

RETURN

*********************************************************
*  Creation des fichiers DETAILECRITUREGENE de contre partie

60

   FOR k=1 TO 12
      FOR l=1 TO 2
         IF W_Matrice<l,k> # "" THEN
            GOSUB 70
            GOSUB 80
         END
      NEXT l
   NEXT k

RETURN

*********************************************************
*  Recherche cl DETAILECRITUREGENETEMPO

70

   READ ENR_PARAMENTITECOMPTA FROM F.PARAMENTITECOMPTA,W_CleEcriture[1,3] ELSE ENR_PARAMENTITECOMPTA=""
   * exercice N
   IF W_CleSeq[6,2]="N0" THEN
      IF ENR_JOURNAL<4>="" THEN
         ENR_JOURNAL<4>="00001"
         W_CleEcriture=W_CleSeq[1,7]:"00001"
      END ELSE
         ENR_JOURNAL<4>=ENR_JOURNAL<4>+1 "R%5"
         W_CleEcriture=W_CleSeq[1,7]:ENR_JOURNAL<4>
      END
      W_Annee=OCONV(ENR_PARAMENTITECOMPTA<1>,"D4/")
      W_Annee=W_Annee[7,4]
   END ELSE
      * exercice N+1
      IF ENR_JOURNAL<6>="" THEN
         ENR_JOURNAL<6>="00001"
         W_CleEcriture=W_CleSeq[1,7]:"00001"
      END ELSE
         ENR_JOURNAL<6>=ENR_JOURNAL<6>+1 "R%5"
         W_CleEcriture=W_CleSeq[1,7]:ENR_JOURNAL<6>
      END
      W_Annee=OCONV(ENR_PARAMENTITECOMPTA<3>,"D4/")
      W_Annee=W_Annee[7,4]
   END
   READ ENR_DETAILECRITUREGENETEMPO FROM F.DETAILECRITUREGENETEMPO,W_CleEcriture ELSE ENR_DETAILECRITUREGENETEMPO = ""

RETURN

*********************************************************
*  MAJ du fichier DETAILECRITUREGENETEMPO

80

   ENR_DETAILECRITUREGENETEMPO<1>=DATE()
   W_Mois=k+1 "R%2"
   IF W_Mois="13" THEN
      W_Mois="01"
      W_Annee=W_Annee+1
   END
   W_Date=ICONV("01/":W_Mois:"/":W_Annee,"D4/")-1
   ENR_DETAILECRITUREGENETEMPO<2>=W_Date
   IF ENR_PARAMENTITECOMPTA<16>="" THEN
      ENR_DETAILECRITUREGENETEMPO<3>=W_CleEcriture[1,3]:"4111100000"
   END ELSE
      ENR_DETAILECRITUREGENETEMPO<3>=W_CleEcriture[1,3]:ENR_PARAMENTITECOMPTA<16>
   END
   ENR_DETAILECRITUREGENETEMPO<4>="CENTRALISATION AUXILIAIRE"
   IF l=1 THEN
      ENR_DETAILECRITUREGENETEMPO<6>=W_Matrice<l,k>
   END ELSE
      ENR_DETAILECRITUREGENETEMPO<7>=W_Matrice<l,k>
   END
   WRITE ENR_DETAILECRITUREGENETEMPO ON F.DETAILECRITUREGENETEMPO,W_CleEcriture

   W_CleBalance=W_CleEcriture[6,2]:ENR_DETAILECRITUREGENETEMPO<3>
   READ ENR_BALANCEGENETEMPO FROM F.BALANCEGENETEMPO,W_CleBalance ELSE ENR_BALANCEGENETEMPO=""

   GOSUB 90

   WRITE ENR_BALANCEGENETEMPO ON F.BALANCEGENETEMPO,W_CleBalance

RETURN

*********************************************************
*  MAJ du fichier BALANCEGENETEMPO pour la centralisation

90

   * cumul dbit
   IF ENR_DETAILECRITUREGENETEMPO<6> # "" THEN
      IF ENR_BALANCEGENETEMPO<1> = "" THEN
         ENR_BALANCEGENETEMPO<1> = ENR_DETAILECRITUREGENETEMPO<6>
      END ELSE
         ENR_BALANCEGENETEMPO<1> = ENR_BALANCEGENETEMPO<1> + ENR_DETAILECRITUREGENETEMPO<6>
      END
   END

   * cumul crdit
   IF ENR_DETAILECRITUREGENETEMPO<7> # "" THEN
      IF ENR_BALANCEGENETEMPO<2> = "" THEN
         ENR_BALANCEGENETEMPO<2> = ENR_DETAILECRITUREGENETEMPO<7>
      END ELSE
         ENR_BALANCEGENETEMPO<2> = ENR_BALANCEGENETEMPO<2> + ENR_DETAILECRITUREGENETEMPO<7>
      END
   END

   * recherche le mois 
   W_Date = OCONV(ENR_DETAILECRITUREGENETEMPO<2>,"D4/")
   W_Mois=W_Date[4,2]
   m=1
   LOOP
   WHILE INT(ENR_BALANCEGENETEMPO<4,m>) < INT(W_Mois) AND ENR_BALANCEGENETEMPO<4,m> # "" DO
      m=m+1
   REPEAT

   * dbit par mois
   IF ENR_DETAILECRITUREGENETEMPO<6> # "" THEN
      IF ENR_BALANCEGENETEMPO<4,m> = W_Mois THEN
         ENR_BALANCEGENETEMPO<5,m> = ENR_BALANCEGENETEMPO<5,m> + ENR_DETAILECRITUREGENETEMPO<6>
      END ELSE
         ENR_BALANCEGENETEMPO = INSERT(ENR_BALANCEGENETEMPO,4,m;W_Mois)
         ENR_BALANCEGENETEMPO = INSERT(ENR_BALANCEGENETEMPO,5,m;ENR_DETAILECRITUREGENETEMPO<6>)
      END
   END ELSE
      IF ENR_BALANCEGENETEMPO<4,m> = "" THEN
         ENR_BALANCEGENETEMPO = INSERT(ENR_BALANCEGENETEMPO,4,m;W_Mois)
         ENR_BALANCEGENETEMPO = INSERT(ENR_BALANCEGENETEMPO,5,m;"0")
      END
   END

   * crdit par mois
   IF ENR_DETAILECRITUREGENETEMPO<7> # "" THEN
      IF ENR_BALANCEGENETEMPO<4,m> = W_Mois THEN
         ENR_BALANCEGENETEMPO<6,m> = ENR_BALANCEGENETEMPO<6,m> + ENR_DETAILECRITUREGENETEMPO<7>
      END ELSE
         ENR_BALANCEGENETEMPO = INSERT(ENR_BALANCEGENETEMPO,4,m;W_Mois)
         ENR_BALANCEGENETEMPO = INSERT(ENR_BALANCEGENETEMPO,6,m;ENR_DETAILECRITUREGENETEMPO<7>)
      END
   END ELSE
      IF ENR_BALANCEGENETEMPO<6,m> = "" THEN
         ENR_BALANCEGENETEMPO<6,m> = "0"
      END
   END

   * date opration
   m=1
   LOOP
   WHILE INT(ENR_BALANCEGENETEMPO<8,m>) <= INT(ENR_DETAILECRITUREGENETEMPO<2>) AND ENR_BALANCEGENETEMPO<8,m> # "" DO
      m=m+1
   REPEAT

   ENR_BALANCEGENETEMPO = INSERT(ENR_BALANCEGENETEMPO,8,m;ENR_DETAILECRITUREGENETEMPO<2>)
   ENR_BALANCEGENETEMPO = INSERT(ENR_BALANCEGENETEMPO,9,m;W_CleEcriture)

RETURN
