**********************************************************
*  CONVERSION DE LA COMPTA DE FRANC VERS EURO
*  VANESSA
*  SEPTEMBRE 2001
**********************************************************
* OUVERTURES DES FICHIERS

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

*********************************************************
* PROGRAMME PRINCIPAL

   W_SauveEntite=""
   W_SauveExer=""
   W_CumulDebit=0
   W_CumulCredit=0
   W_Montant=0
   W_Debit="FAUX"
   W_Compte=""
   W_CodeJournal=""

* rajoute la section analytique sur les comptes de classe 6 et 7 
   EXECUTE 'SELECT DETAILECRITUREGENE AVEC 3 >= "[6000000000" AND AVEC 3 <= "[7999999999" 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=""
      READ ENR_ACTIVITES FROM F.ACTIVITES,W_Cle[1,3]:"001" ELSE ENR_ACTIVITES=""
      ENR_DETAILECRITUREGENE<10> = ENR_ACTIVITES<2>
      WRITE ENR_DETAILECRITUREGENE ON F.DETAILECRITUREGENE,W_Cle

   REPEAT

   EXECUTE 'VIDER-FICHIER BALANCEGENE'
   EXECUTE 'VIDER-FICHIER BALANCEAUX'
   EXECUTE 'VIDER-FICHIER BALANCEANAL'

CUMUL6 = 0
CUMUL7 = 0
AncCpte = ""
AncLettre = ""
AncCleDet = ""

* convertit debit et credit du fichier DETAILECRITUREGENE
   EXECUTE 'SELECT DETAILECRITUREGENE PAR 3 PAR 11'

   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=""

      IF ENR_DETAILECRITUREGENE<6> # "" THEN
         ENR_DETAILECRITUREGENE<6> = ENR_DETAILECRITUREGENE<6> / 6.55957
         ENR_DETAILECRITUREGENE<6> = INT(ENR_DETAILECRITUREGENE<6> + (1/2))
      END ELSE
         IF ENR_DETAILECRITUREGENE<7> # "" THEN
            ENR_DETAILECRITUREGENE<7> = ENR_DETAILECRITUREGENE<7> / 6.55957
            ENR_DETAILECRITUREGENE<7> = INT(ENR_DETAILECRITUREGENE<7> + (1/2))
         END
      END

	IF ENR_DETAILECRITUREGENE<11> <> "" THEN
	   IF ENR_DETAILECRITUREGENE<3> <> AncCpte OR ENR_DETAILECRITUREGENE<11> <> AncLettre THEN
		IF CUMUL6 <> CUMUL7 THEN
		   READ ENR_DETAILECRITUREGENE2 FROM F.DETAILECRITUREGENE,AncCleDet ELSE ENR_DETAILECRITUREGENE2 = ""
		   IF CUMUL6 > CUMUL7 THEN
			ENR_DETAILECRITUREGENE2<7> = ENR_DETAILECRITUREGENE2<7> + (CUMUL6 - CUMUL7)
		   END ELSE
			ENR_DETAILECRITUREGENE2<6> = ENR_DETAILECRITUREGENE2<6> + (CUMUL7 - CUMUL6)
		   END
		   WRITE ENR_DETAILECRITUREGENE2 ON F.DETAILECRITUREGENE,AncCleDet
		END
		CUMUL6 = 0
		CUMUL7 = 0
		AncCpte = ENR_DETAILECRITUREGENE<3>
		AncLettre = ENR_DETAILECRITUREGENE<11>
	   END
	   CUMUL6 = CUMUL6 + ENR_DETAILECRITUREGENE<6>
	   CUMUL7 = CUMUL7 + ENR_DETAILECRITUREGENE<7>
	   AncCleDet = W_Cle
	END

      WRITE ENR_DETAILECRITUREGENE ON F.DETAILECRITUREGENE,W_Cle

      * lecture et MAJ du fichier BALANCEGENE
      W_DetailEcriture = ENR_DETAILECRITUREGENE
      W_CleBalance = W_Cle[6,2]:ENR_DETAILECRITUREGENE<3>
      READ ENR_BALANCEGENE FROM F.BALANCEGENE,W_CleBalance ELSE ENR_BALANCEGENE=""
      W_TabDyn=ENR_BALANCEGENE
      W_CleEcriture=W_Cle
      GOSUB 10
      ENR_BALANCEGENE=W_TabDyn
      W_TabDyn=""
      WRITE ENR_BALANCEGENE ON F.BALANCEGENE,W_CleBalance

      * lecture et MAJ du fichier BALANCEANAL
      IF ENR_DETAILECRITUREGENE<3>[4,1]="6" OR ENR_DETAILECRITUREGENE<3>[4,1]="7" THEN
         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
         W_CleEcriture=W_Cle
         GOSUB 10
         ENR_BALANCEANAL=W_TabDyn
         W_TabDyn=""
         WRITE ENR_BALANCEANAL ON F.BALANCEANAL,W_CleBalance
      END
    
   REPEAT

CUMUL6 = 0
CUMUL7 = 0
AncCpte = ""
AncLettre = ""
AncCleDet = ""

* convertit debit et credit du fichier DETAILECRITUREAUX
   EXECUTE 'SELECT DETAILECRITUREAUX PAR 3 PAR 11'

   W_End="FAUX"

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

      IF ENR_DETAILECRITUREAUX<6> # "" THEN
         ENR_DETAILECRITUREAUX<6> = ENR_DETAILECRITUREAUX<6> / 6.55957
         ENR_DETAILECRITUREAUX<6> = INT(ENR_DETAILECRITUREAUX<6> + (1/2))
      END ELSE
         IF ENR_DETAILECRITUREAUX<7> # "" THEN
            ENR_DETAILECRITUREAUX<7> = ENR_DETAILECRITUREAUX<7> / 6.55957
            ENR_DETAILECRITUREAUX<7> = INT(ENR_DETAILECRITUREAUX<7> + (1/2))
         END
      END

	IF ENR_DETAILECRITUREAUX<11> <> "" THEN
	   IF ENR_DETAILECRITUREAUX<3> <> AncCpte OR ENR_DETAILECRITUREAUX<11> <> AncLettre THEN
		IF CUMUL6 <> CUMUL7 THEN
		   READ ENR_DETAILECRITUREAUX2 FROM F.DETAILECRITUREAUX,AncCleDet ELSE ENR_DETAILECRITUREAUX2 = ""
		   IF CUMUL6 > CUMUL7 THEN
			ENR_DETAILECRITUREAUX2<7> = ENR_DETAILECRITUREAUX2<7> + (CUMUL6 - CUMUL7)
		   END ELSE
			ENR_DETAILECRITUREAUX2<6> = ENR_DETAILECRITUREAUX2<6> + (CUMUL7 - CUMUL6)
		   END
		   WRITE ENR_DETAILECRITUREAUX2 ON F.DETAILECRITUREAUX,AncCleDet
		END
		CUMUL6 = 0
		CUMUL7 = 0
		AncCpte = ENR_DETAILECRITUREAUX<3>
		AncLettre = ENR_DETAILECRITUREAUX<11>
	   END
	   CUMUL6 = CUMUL6 + ENR_DETAILECRITUREAUX<6>
	   CUMUL7 = CUMUL7 + ENR_DETAILECRITUREAUX<7>
	   AncCleDet = W_Cle
	END

      WRITE ENR_DETAILECRITUREAUX ON F.DETAILECRITUREAUX,W_Cle

      * lecture et MAJ du fichier BALANCEAUX
      W_DetailEcriture = ENR_DETAILECRITUREAUX
      W_CleBalance = W_Cle[6,2]:W_Cle[1,3]:ENR_DETAILECRITUREAUX<3>
      READ ENR_BALANCEAUX FROM F.BALANCEAUX,W_CleBalance ELSE ENR_BALANCEAUX=""
      W_TabDyn=ENR_BALANCEAUX
      W_CleEcriture=W_Cle
      GOSUB 10
      ENR_BALANCEAUX=W_TabDyn
      W_TabDyn=""
      WRITE ENR_BALANCEAUX ON F.BALANCEAUX,W_CleBalance

   REPEAT


* compare cumul des debits et credits de DETAILECRITUREAUX avec le BALANCEGENE du compte
* de centralisation client
   EXECUTE 'SELECT DETAILECRITUREAUX PAR EntiteDetailEcrAux PAR ExerciceDetailEcrAux'

   W_End="FAUX"

   LOOP
      READNEXT W_Cle ELSE W_End = "VRAI"
   WHILE W_End = "FAUX" DO
      READ ENR_DETAILECRITUREAUX FROM F.DETAILECRITUREAUX,W_Cle ELSE ENR_DETAILECRITUREAUX=""
      IF W_SauveEntite="" THEN
         W_SauveEntite=W_Cle[1,3]
         W_SauveExer=W_Cle[6,2]
      END
      IF W_SauveEntite # W_Cle[1,3] OR W_SauveExer # W_Cle[6,2] THEN
         READ ENR_PARAMENTITECOMPTA FROM F.PARAMENTITECOMPTA,W_SauveEntite ELSE ENR_PARAMENTITECOMPTA=""
         READ ENR_BALANCEGENE FROM F.BALANCEGENE,W_SauveExer:W_SauveEntite:ENR_PARAMENTITECOMPTA<16> ELSE ENR_BALANCEGENE=""

         W_Debit="FAUX"

         IF W_CumulDebit # ENR_BALANCEGENE<1> THEN
            W_Montant=W_CumulDebit - ENR_BALANCEGENE<1>
            W_Debit="VRAI"
            GOSUB 20
         END 

         IF W_CumulCredit # ENR_BALANCEGENE<2> THEN
            W_Montant=W_CumulCredit - ENR_BALANCEGENE<2>
            W_Debit="FAUX"
            GOSUB 20
         END

         W_SauveEntite=W_Cle[1,3]
         W_SauveExer=W_Cle[6,2]
         W_CumulDebit=0
         W_CumulCredit=0

         IF ENR_DETAILECRITUREAUX<6> # "" THEN
            W_CumulDebit=W_CumulDebit+ENR_DETAILECRITUREAUX<6>
         END ELSE
            IF ENR_DETAILECRITUREAUX<7> # "" THEN
               W_CumulCredit=W_CumulCredit+ENR_DETAILECRITUREAUX<7>
            END
         END

      END ELSE
         IF ENR_DETAILECRITUREAUX<6> # "" THEN
            W_CumulDebit=W_CumulDebit+ENR_DETAILECRITUREAUX<6>
         END ELSE
            IF ENR_DETAILECRITUREAUX<7> # "" THEN
               W_CumulCredit=W_CumulCredit+ENR_DETAILECRITUREAUX<7>
            END
         END

      END

   REPEAT

   READ ENR_PARAMENTITECOMPTA FROM F.PARAMENTITECOMPTA,W_SauveEntite ELSE ENR_PARAMENTITECOMPTA=""
   READ ENR_BALANCEGENE FROM F.BALANCEGENE,W_SauveExer:W_SauveEntite:ENR_PARAMENTITECOMPTA<16> ELSE ENR_BALANCEGENE=""

   W_Debit="FAUX"

   IF W_CumulDebit # ENR_BALANCEGENE<1> THEN
      W_Montant=W_CumulDebit - ENR_BALANCEGENE<1>
      W_Debit="VRAI"
      GOSUB 20
   END 

   IF W_CumulCredit # ENR_BALANCEGENE<2> THEN
      W_Montant=W_CumulCredit - ENR_BALANCEGENE<2>
      W_Debit="FAUX"
      GOSUB 20
   END

*   W_SauveEntite=""
   W_SauveExer=""
   W_CumulDebit=0
   W_CumulCredit=0
   W_Montant=0


* cumule les debits et credits de BALANCEGENE pour vrifier l'quilibre
   EXECUTE 'SELECT BALANCEGENE PAR EntiteBalGene PAR ExerBalGene'

   W_End="FAUX"

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

      IF W_SauveEntite="" THEN
         W_SauveEntite=W_Cle[3,3]
         W_SauveExer=W_Cle[1,2]
      END
      IF W_SauveEntite # W_Cle[3,3] OR W_SauveExer # W_Cle[1,2] THEN

         W_Compte=""

         IF W_CumulDebit > W_CumulCredit THEN
            W_Montant=W_CumulDebit-W_CumulCredit
            W_Compte="7661000000"
            GOSUB 30
         END 

         IF W_CumulDebit < W_CumulCredit THEN
            W_Montant=W_CumulCredit-W_CumulDebit
            W_Compte="6661000000"
            GOSUB 30
         END

         W_SauveEntite=W_Cle[3,3]
         W_SauveExer=W_Cle[1,2]
         W_CumulDebit=0
         W_CumulCredit=0

         READ ENR_BALANCEGENE FROM F.BALANCEGENE,W_Cle ELSE ENR_BALANCEGENE=""

         W_CumulDebit=W_CumulDebit+ENR_BALANCEGENE<1>
         W_CumulCredit=W_CumulCredit+ENR_BALANCEGENE<2>

      END ELSE

         W_CumulDebit=W_CumulDebit+ENR_BALANCEGENE<1>
         W_CumulCredit=W_CumulCredit+ENR_BALANCEGENE<2>

      END

   REPEAT

   W_Compte=""

   IF W_CumulDebit > W_CumulCredit THEN
      W_Montant=W_CumulDebit-W_CumulCredit
      W_Compte="7661000000"
      GOSUB 30
   END 

   IF W_CumulDebit < W_CumulCredit THEN
      W_Montant=W_CumulCredit-W_CumulDebit
      W_Compte="6661000000"
      GOSUB 30
   END

STOP

*********************************************************
*  MAJ des fichiers BALANCE (AUX, ANAL ou GENE)

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

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

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

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

   W_TabDyn=INSERT(W_TabDyn,8,k;W_DetailEcriture<2>)
   W_TabDyn=INSERT(W_TabDyn,9,k;W_CleEcriture)

RETURN

*********************************************************
*  CREATION ECRITURE DE REGUL DANS LE COMPTE DE CENTRALISATION

20

   ENR_DETAILECRITUREGENE=""
   
   IF W_CodeJournal[1,3] # W_SauveEntite THEN

      ENR_JOURNAL=""

      LOOP
      UNTIL ENR_JOURNAL<2> = "O" DO
         PRINT "Veuillez saisir le code du journal d'OD de l'entit ":W_SauveEntite:" (2N) : "
         INPUT W_Journal

         W_CodeJournal=W_SauveEntite:W_Journal

         READ ENR_JOURNAL FROM F.JOURNAL,W_CodeJournal ELSE ENR_JOURNAL=""

      REPEAT

   END

   IF W_SauveExer = "N0" THEN
      IF ENR_JOURNAL<4>="" THEN
         ENR_JOURNAL<4>="00001"
         W_CleEcriture=W_CodeJournal:"N0":"00001"
      END ELSE
         ENR_JOURNAL<4>=ENR_JOURNAL<4>+1 "R%5"
         W_CleEcriture=W_CodeJournal:"N0":ENR_JOURNAL<4>
      END
   END ELSE
      IF ENR_JOURNAL<6>="" THEN
         ENR_JOURNAL<6>="00001"
         W_CleEcriture=W_CodeJournal:"N1":"00001"
      END ELSE
         ENR_JOURNAL<6>=ENR_JOURNAL<6>+1 "R%5"
         W_CleEcriture=W_CodeJournal:"N1":ENR_JOURNAL<6>
      END 
   END
   WRITE ENR_JOURNAL ON F.JOURNAL,W_CodeJournal

   ENR_DETAILECRITUREGENE<1>=DATE()
   ENR_DETAILECRITUREGENE<2>=DATE()
   ENR_DETAILECRITUREGENE<3>=W_SauveEntite:ENR_PARAMENTITECOMPTA<16>
   ENR_DETAILECRITUREGENE<4>="DIFF. CONVERSION EUROS"
   ENR_DETAILECRITUREGENE<5>=""
   IF W_Debit="VRAI" THEN
      ENR_DETAILECRITUREGENE<6>=W_Montant
      ENR_DETAILECRITUREGENE<7>=""
   END ELSE
      ENR_DETAILECRITUREGENE<6>=""
      ENR_DETAILECRITUREGENE<7>=W_Montant
   END
   ENR_DETAILECRITUREGENE<8>=""
   ENR_DETAILECRITUREGENE<9>=""
   ENR_DETAILECRITUREGENE<10>=""
   ENR_DETAILECRITUREGENE<11>=""

   WRITE ENR_DETAILECRITUREGENE ON F.DETAILECRITUREGENE,W_CleEcriture

   * lecture et MAJ du fichier BALANCEGENE
   W_DetailEcriture = ENR_DETAILECRITUREGENE
   W_CleBalance = W_SauveExer:ENR_DETAILECRITUREGENE<3>
   READ ENR_BALANCEGENE FROM F.BALANCEGENE,W_CleBalance ELSE ENR_BALANCEGENE=""
   W_TabDyn=ENR_BALANCEGENE
   GOSUB 10
   ENR_BALANCEGENE=W_TabDyn
   W_TabDyn=""
   WRITE ENR_BALANCEGENE ON F.BALANCEGENE,W_CleBalance

RETURN

*********************************************************
*  CREATION ECRITURE DE REGUL DE DIFFERENCE D'ARRONDI

30

   ENR_DETAILECRITUREGENE=""

   IF W_CodeJournal[1,3] # W_SauveEntite THEN
      ENR_JOURNAL=""

      LOOP
      UNTIL ENR_JOURNAL<2> = "O" DO
         PRINT "Veuillez saisir le code du journal d'OD de l'entit ":W_SauveEntite:" (2N) : "
         INPUT W_Journal

         W_CodeJournal=W_SauveEntite:W_Journal
 
         READ ENR_JOURNAL FROM F.JOURNAL,W_CodeJournal ELSE ENR_JOURNAL=""
      REPEAT
   END

   IF W_SauveExer = "N0" THEN
      IF ENR_JOURNAL<4>="" THEN
         ENR_JOURNAL<4>="00001"
         W_CleEcriture=W_CodeJournal:"N0":"00001"
      END ELSE
         ENR_JOURNAL<4>=ENR_JOURNAL<4>+1 "R%5"
         W_CleEcriture=W_CodeJournal:"N0":ENR_JOURNAL<4>
      END
   END ELSE
      IF ENR_JOURNAL<6>="" THEN
         ENR_JOURNAL<6>="00001"
         W_CleEcriture=W_CodeJournal:"N1":"00001"
      END ELSE
         ENR_JOURNAL<6>=ENR_JOURNAL<6>+1 "R%5"
         W_CleEcriture=W_CodeJournal:"N1":ENR_JOURNAL<6>
      END 
   END

   WRITE ENR_JOURNAL ON F.JOURNAL,W_CodeJournal

   ENR_DETAILECRITUREGENE<1>=DATE()
   ENR_DETAILECRITUREGENE<2>=DATE()

   READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,W_SauveEntite:W_Compte ELSE ENR_PLANCOMPTABLE=""
   IF ENR_PLANCOMPTABLE="" THEN
      GOSUB 40
   END
   ENR_DETAILECRITUREGENE<3>=W_SauveEntite:W_Compte
   ENR_DETAILECRITUREGENE<4>="DIFF. CONVERSION COMPTA"
   ENR_DETAILECRITUREGENE<5>=""
   IF W_Compte="7661000000" THEN
      ENR_DETAILECRITUREGENE<6>=""
      ENR_DETAILECRITUREGENE<7>=W_Montant
   END ELSE
      ENR_DETAILECRITUREGENE<6>=W_Montant
      ENR_DETAILECRITUREGENE<7>=""
   END
   ENR_DETAILECRITUREGENE<8>=""
   ENR_DETAILECRITUREGENE<9>=""
   READ ENR_ACTIVITES FROM F.ACTIVITES,W_CleEcriture[1,3]:"001" ELSE ENR_ACTIVITES=""
   ENR_DETAILECRITUREGENE<10> = ENR_ACTIVITES<2>
   ENR_DETAILECRITUREGENE<11>=""

   WRITE ENR_DETAILECRITUREGENE ON F.DETAILECRITUREGENE,W_CleEcriture

   * lecture et MAJ du fichier BALANCEGENE
   W_DetailEcriture = ENR_DETAILECRITUREGENE
   W_CleBalance = W_SauveExer:ENR_DETAILECRITUREGENE<3>
   READ ENR_BALANCEGENE FROM F.BALANCEGENE,W_CleBalance ELSE ENR_BALANCEGENE=""
   W_TabDyn=ENR_BALANCEGENE
   GOSUB 10
   ENR_BALANCEGENE=W_TabDyn
   W_TabDyn=""
   WRITE ENR_BALANCEGENE ON F.BALANCEGENE,W_CleBalance

   READ ENR_BALANCEANAL FROM F.BALANCEANAL,W_CleBalance:ENR_ACTIVITES<2> ELSE ENR_BALANCEANAL=""
   W_TabDyn=ENR_BALANCEANAL
   GOSUB 10
   ENR_BALANCEANAL=W_TabDyn
   W_TabDyn=""
   WRITE ENR_BALANCEANAL ON F.BALANCEANAL,W_CleBalance:ENR_ACTIVITES<2>

RETURN

*********************************************************
*  CREATION DU COMPTE COMPTABLE S'IL N'EXISTE PAS 

40

   IF W_Compte="7661000000" THEN
      ENR_PLANCOMPTABLE<1>="GAIN DE CHANGE"
   END ELSE
      ENR_PLANCOMPTABLE<1>="PERTE DE CHANGE"
   END
   ENR_PLANCOMPTABLE<2>="0"
   ENR_PLANCOMPTABLE<3>="0"
   ENR_PLANCOMPTABLE<4>="0"
   ENR_PLANCOMPTABLE<5>=""
   ENR_PLANCOMPTABLE<6>=""
   ENR_PLANCOMPTABLE<7>="0"
   ENR_PLANCOMPTABLE<8>=""
   ENR_PLANCOMPTABLE<9>="0"
   ENR_PLANCOMPTABLE<10>=W_SauveExer
   ENR_PLANCOMPTABLE<11>="0"

   WRITE ENR_PLANCOMPTABLE ON F.PLANCOMPTABLE,W_SauveEntite:W_Compte

RETURN
