* remonte le fichier BALANCEANAL

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","DETAILECRITUREGENE" TO F.DETAILECRITUREGENE ELSE PRINT "OUVERTURE DETAILECRITUREGENE" ;* en lecture criture
OPEN "","BALANCEANAL" TO F.BALANCEANAL ELSE PRINT "OUVERTURE BALANCEANAL" ;* en lecture criture
OPEN "","JOURNAL" TO F.JOURNAL ELSE PRINT "OUVERTURE JOURNAL" ;* en lecture criture

   * supprime les sections analytiques sur les comptes autres que 6 et 7 
   EXECUTE 'SELECT DETAILECRITUREGENE AVEC 3 < "0016000000000]" AND AVEC 10 # ""'

   W_End="FAUX"

   LOOP
      READNEXT W_Cle ELSE W_End = "VRAI"
   WHILE W_End = "FAUX" DO
      READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENE,W_Cle ELSE ENR_DETAILECRITUREGENE=""

      ENR_DETAILECRITUREGENE<10> = ""
      WRITE ENR_DETAILECRITUREGENE ON F.DETAILECRITUREGENE,W_Cle

   REPEAT

   EXECUTE 'VIDER-FICHIER BALANCEANAL'

   EXECUTE 'SELECT DETAILECRITUREGENE AVEC 10 # "" PAR 10 PAR 3'

   W_End="FAUX"

   LOOP
      READNEXT W_Cle ELSE W_End = "VRAI"
   WHILE W_End = "FAUX" DO
      READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENE,W_Cle ELSE ENR_DETAILECRITUREGENE=""
          
      W_CleBalance = W_Cle[6,2]:ENR_DETAILECRITUREGENE<3>:ENR_DETAILECRITUREGENE<10>
      READ ENR_BALANCEANAL FROM F.BALANCEANAL,W_CleBalance ELSE ENR_BALANCEANAL =""
      W_TabDyn=ENR_BALANCEANAL
      GOSUB 10
      ENR_BALANCEANAL=W_TabDyn
      W_TabDyn=""
      WRITE ENR_BALANCEANAL ON F.BALANCEANAL,W_CleBalance

   REPEAT


   * enlve les 0 mis en att 6 7 10 11 de JOURNAL
   EXECUTE 'SELECT JOURNAL'

   W_End="FAUX"

   LOOP
      READNEXT W_Cle ELSE W_End = "VRAI"
   WHILE W_End = "FAUX" DO
      READ ENR_JOURNAL FROM F.JOURNAL,W_Cle ELSE ENR_JOURNAL=""

      IF ENR_JOURNAL<6>=0 THEN
         ENR_JOURNAL<6>=""
      END
      IF ENR_JOURNAL<7>=0 THEN
         ENR_JOURNAL<7>=""
      END
      IF ENR_JOURNAL<10>=0 THEN
         ENR_JOURNAL<10>=""
      END
      IF ENR_JOURNAL<11>=0 THEN
         ENR_JOURNAL<11>=""
      END

      WRITE ENR_JOURNAL ON F.JOURNAL,W_Cle

   REPEAT

STOP

*********************************************************
*  MAJ du fichier BALANCEANAL

10
   
   * cumul dbit
   IF ENR_DETAILECRITUREGENE<6> # "" THEN
      IF W_TabDyn<1>="" THEN
         W_TabDyn<1>=ENR_DETAILECRITUREGENE<6>
      END ELSE
         W_TabDyn<1>=W_TabDyn<1> + ENR_DETAILECRITUREGENE<6>
      END
   END

   * cumul crdit
   IF ENR_DETAILECRITUREGENE<7> # "" THEN
      IF W_TabDyn<2>="" THEN
         W_TabDyn<2>=ENR_DETAILECRITUREGENE<7>
      END ELSE
         W_TabDyn<2>=W_TabDyn<2> + ENR_DETAILECRITUREGENE<7>
      END
   END

   * cumul quantit
   IF ENR_DETAILECRITUREGENE<9> # "" THEN
      IF W_TabDyn<3>="" THEN
         W_TabDyn<3>=ENR_DETAILECRITUREGENE<9>
      END ELSE
         W_TabDyn<3>=W_TabDyn<3> + ENR_DETAILECRITUREGENE<9>
      END
   END

   * recherche le mois
   W_Date = OCONV(ENR_DETAILECRITUREGENE<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_DETAILECRITUREGENE<6> # "" THEN
      IF W_TabDyn<4,k>=W_Mois THEN
         W_TabDyn<5,k>=W_TabDyn<5,k> + ENR_DETAILECRITUREGENE<6>
      END ELSE
         W_TabDyn=INSERT(W_TabDyn,4,k;W_Mois)
         W_TabDyn=INSERT(W_TabDyn,5,k;ENR_DETAILECRITUREGENE<6>)
         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_DETAILECRITUREGENE<7> # "" THEN
      IF W_TabDyn<4,k>=W_Mois THEN
         W_TabDyn<6,k>=W_TabDyn<6,k> + ENR_DETAILECRITUREGENE<7>
      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_DETAILECRITUREGENE<7>)
      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_DETAILECRITUREGENE<9> # "" THEN
      IF W_TabDyn<7,k>="" THEN
         W_TabDyn<7,k>=ENR_DETAILECRITUREGENE<9>
      END ELSE
         W_TabDyn<7,k>=W_TabDyn<7,k> + ENR_DETAILECRITUREGENE<9>
      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_DETAILECRITUREGENE<2>) AND W_TabDyn<8,k>#"" DO
      k=k+1
   REPEAT

   W_TabDyn=INSERT(W_TabDyn,8,k;ENR_DETAILECRITUREGENE<2>)
   W_TabDyn=INSERT(W_TabDyn,9,k;W_Cle)

RETURN
