**********************************************************
*  Edition des journaux comptables
*  Programme chaine  partir d'un projet VB
*  Vanessa
*  mars 2002
*
**********************************************************

* Ouvertures des fichiers

EXECUTE "DATE.FORMAT"
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE PRINT "OUVERTURE ASSOCIATION" ;* en lecture
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "OUVERTURE CIVILAIDE" ;* en lecture
OPEN "","DETAILECRITUREAUX" TO F.DETAILECRITUREAUX ELSE PRINT "OUVERTURE DETAILECRITUREAUX" ;* en lecture
OPEN "","DETAILECRITUREGENE" TO F.DETAILECRITUREGENE ELSE PRINT "OUVERTURE DETAILECRITUREGENE" ;* en lecture
OPEN "","DETAILECRITUREAUXARCHIVE" TO F.DETAILECRITUREAUXARCHIVE ELSE PRINT "OUVERTURE DETAILECRITUREAUXARCHIVE" ;* en lecture
OPEN "","DETAILECRITUREGENEARCHIVE" TO F.DETAILECRITUREGENEARCHIVE ELSE PRINT "OUVERTURE DETAILECRITUREGENEARCHIVE" ;* en lecture
OPEN "","JOURNAL" TO F.JOURNAL ELSE PRINT "OUVERTURE JOURNAL" ;* en lecture
OPEN "","JOURNALARCHIVE" TO F.JOURNALARCHIVE ELSE PRINT "OUVERTURE JOURNALARCHIVE" ;* en lecture
OPEN "","JOURNALPROVISOIRE" TO F.JOURNALPROVISOIRE ELSE PRINT "OUVERTURE JOURNALPROVISOIRE" ;* en lecture
OPEN "","PARAMENTITECOMPTA" TO F.PARAMENTITECOMPTA ELSE PRINT "OUVERTURE PARAMENTITECOMPTA" ;* en lecture
OPEN "","PLANCOMPTABLE" TO F.PLANCOMPTABLE ELSE PRINT "OUVERTURE PLANCOMPTABLE" ;* en lecture
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en lecture
*********************************************************
* initialisation des variables

ENR_TEMPO=""
W_ReqTempo=""
W_NumOrdre=1
W_TabDyn=""
W_Tab=""
W_Aux="FAUX"
W_Gene="FAUX"
W_Ligne=0
W_LigneM=0
W_LigM=0
W_PageM=0
W_SauveCleM=""
W_SauveEnteteM=""
W_Exer=""
W_RESULTATECR=""

*********************************************************
* Recuperation des arguments

PROCREAD ARGUMENTS ELSE STOP
W_Imp=FIELD(ARGUMENTS,"|",2)
W_Entite=FIELD(ARGUMENTS,"|",3)
W_User=FIELD(ARGUMENTS,"|",4)
W_Traitement=FIELD(ARGUMENTS,"|",5)
W_TypeEdition=FIELD(ARGUMENTS,"|",6)
W_DebExer=FIELD(ARGUMENTS,"|",7)
W_FinExer=FIELD(ARGUMENTS,"|",8)

l=9
i=1
LOOP 
   W_Field=FIELD(ARGUMENTS,"|",l)
WHILE W_Field # "" DO
   W_Tab<i>=W_Field
   l=l+1
   i=i+1
REPEAT

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

   PRINTER ON

   EXECUTE "SET-DEC ,"
   EXECUTE "SET-THOUS ."

   EXECUTE 'SSELECT TEMPO AVEC 0 = "JOURNAL':W_User:']"'

   W_End = "FAUX"
   LOOP
      READNEXT W_Cle ELSE W_End = "VRAI"
   WHILE W_End = "FAUX" DO
      READ ENR_TEMPO FROM F.TEMPO,W_Cle ELSE ENR_TEMPO=""
      DELETE F.TEMPO,W_Cle
   REPEAT

   W_Count = DCOUNT(W_Tab,CHAR(254))   
   FOR i=1 TO W_Count
      W_Var = W_Tab<i>

      IF W_Var[4,2] = "N-" THEN
      	   READ ENR_JOURNAL FROM F.JOURNALARCHIVE,W_Entite:W_Var[1,2] ELSE ENR_JOURNAL=""   
	   W_Var=W_Var[1,3]:"N0":W_Var[6,24]
	   W_Exer="N-"
      END ELSE
	IF W_Traitement="D" THEN
      	   READ ENR_JOURNAL FROM F.JOURNAL,W_Entite:W_Var[1,2] ELSE ENR_JOURNAL=""  
      	   IF W_Var[4,2] = "N0" THEN
	   	W_Exer="N0"
	   END ELSE
	   	W_Exer="N1"
	   END
	END ELSE
      	   READ ENR_JOURNAL FROM F.JOURNALPROVISOIRE,W_Entite:W_Var[1,2] ELSE ENR_JOURNAL=""  
      	   IF W_Var[4,2] = "N0" THEN
	   	W_Var=W_Var[1,3]:"P0":W_Var[6,24]
	   	W_Exer="N0"
	   END ELSE
	   	W_Var=W_Var[1,3]:"P1":W_Var[6,24]
	   	W_Exer="N1"
	   END
	END
      END

      W_Cle=""
      W_Fin=""
      W_Deb=""
      W_Cle = W_Entite:W_Var[1,2]:W_Var[4,2]

      IF W_TypeEdition="L" THEN
      	IF W_Var[13,5] # "00000" THEN

		W_Fin = W_Var[13,5]
         	IF W_Var[7,5] = "00000" THEN
            		W_Deb = "00001"
         	END ELSE
            		W_Deb = W_Var[7,5]
            		IF W_Deb # W_Fin THEN
               			IF W_Var[4,2] = "N0" THEN
                  			IF ENR_JOURNAL<9> = W_Var[7,5] AND W_Var[7,5] # ENR_JOURNAL<5> THEN
                      				W_Deb = W_Deb + 1
                  			END
               			END ELSE
                  			IF ENR_JOURNAL<11> = W_Var[7,5] AND W_Var[7,5] # ENR_JOURNAL<7> THEN
                     				W_Deb = W_Deb + 1
                  			END
               			END
            		END
         	END
         	W_Aux = "VRAI"
         	W_Gene = "FAUX"
         	IF W_Fin # "00000" AND W_Deb # "00000" AND W_Fin # W_Deb THEN
            		GOSUB 100
            		GOSUB 500

         	END
      	END

      	IF W_Var[25,5] # "00000" THEN

         	W_Fin =  W_Var[25,5]
         	IF W_Var[19,5] = "00000" THEN
            		W_Deb = "00001"
         	END ELSE
            		W_Deb = W_Var[19,5]
            		IF W_Deb # W_Fin THEN
               			IF W_Var[4,2] = "N0" THEN
                  			IF ENR_JOURNAL<8> = W_Var[19,5] AND W_Var[19,5] # ENR_JOURNAL<4> THEN
                     				W_Deb = W_Deb + 1
                  			END
               			END ELSE
                  			IF ENR_JOURNAL<10> = W_Var[19,5] AND W_Var[19,5] # ENR_JOURNAL<6> THEN
                     				W_Deb = W_Deb + 1
                  			END
               			END
            		END
         	END
         	W_Aux = "FAUX"
         	W_Gene = "VRAI"
         	IF W_Fin # "00000" AND W_Deb # "00000" AND W_Fin # W_Deb THEN
            		GOSUB 100
            		GOSUB 500
	
         	END
      	END
      END ELSE
         	W_Aux = "VRAI"
         	W_Gene = "FAUX"
       		GOSUB 100

         	W_Aux = "FAUX"
         	W_Gene = "VRAI"
       		GOSUB 100
      END

   NEXT i

   IF W_Imp="MATRIC" THEN
	GOSUB 600
   END

   EXECUTE "SET-DEC ."
   EXECUTE "SET-THOUS ,"

   PRINTER OFF
   PRINTER CLOSE
STOP

********************************************************************************************
* Impression DETAILECRITURE

100

   W_TotalCredit = 0
   W_TotalDebit = 0
   W_NumOrdre=1
   k=0
   GOSUB 700

   IF MSGCODE<1> # 209 THEN
   	GOSUB 200


      	IF W_Aux = "VRAI" THEN
		IF W_Exer="N-" THEN
			SELECT F.DETAILECRITUREAUXARCHIVE TO W_RESULTATECR
	 	END ELSE
			SELECT F.DETAILECRITUREAUX TO W_RESULTATECR
		END
	END ELSE
		IF W_Exer="N-" THEN
			SELECT F.DETAILECRITUREGENEARCHIVE TO W_RESULTATECR
	 	END ELSE
			SELECT F.DETAILECRITUREGENE TO W_RESULTATECR
		END   
	END
	W_FINI="FAUX"
	LOOP
		READNEXT W_CleEcr FROM W_RESULTATECR ELSE W_FINI="VRAI"
	WHILE W_FINI = "FAUX"

		k=k+1

	    	IF MOD(k,5000)=0 THEN
        		IF W_Aux = "VRAI" THEN
            			WRITE ENR_TEMPO ON F.TEMPO,"JOURNAL":W_User:W_Entite:W_Var[1,2]:W_Exer:"AUX":W_NumOrdre
      		   	END ELSE
            			WRITE ENR_TEMPO ON F.TEMPO,"JOURNAL":W_User:W_Entite:W_Var[1,2]:W_Exer:"GEN":W_NumOrdre
         		END
         		W_NumOrdre=W_NumOrdre+1
       		  	W_Ligne=1

	         	ENR_TEMPO=""
      		END

	      	IF W_Aux = "VRAI" THEN
		 	IF W_Exer="N-" THEN
         			READ ENR_DETAILECRITUREAUX FROM F.DETAILECRITUREAUXARCHIVE,W_CleEcr ELSE ENR_DETAILECRITUREAUX=""   
	 		END ELSE
         			READ ENR_DETAILECRITUREAUX FROM F.DETAILECRITUREAUX,W_CleEcr ELSE ENR_DETAILECRITUREAUX=""   
	 		END  
         		W_TabDyn = ENR_DETAILECRITUREAUX
     	 	END ELSE 
		 	IF W_Exer="N-" THEN
         			READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENEARCHIVE,W_CleEcr ELSE ENR_DETAILECRITUREGENE=""  
		 	END ELSE
        	 		READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENE,W_CleEcr ELSE ENR_DETAILECRITUREGENE="" 
	 		END   
	         	W_TabDyn = ENR_DETAILECRITUREGENE
      		END
	      	W_Temp = ""
      		* ligne
	      	W_Temp = SPACE(1):W_CleEcr[8,5]:" "
	      	* date saisie
      		IF W_TabDyn<1> # "" THEN
         		W_Temp = W_Temp:OCONV(W_TabDyn<1>,"D4/"):" "
      		END ELSE
         		W_Temp = W_Temp:SPACE(11)
      		END
      		* date opration
	      	IF W_TabDyn<2> # "" THEN
        	 	W_Temp = W_Temp:OCONV(W_TabDyn<2>,"D4/"):"  "
	      	END ELSE
        	 	W_Temp = W_Temp:SPACE(12)
	      	END
      		* n compte
	      	IF LEN(W_TabDyn<3>) = 5 THEN
        	 	W_Temp = W_Temp:W_TabDyn<3>:SPACE(6)
	      	END ELSE
        	 	W_Temp = W_Temp:W_TabDyn<3>[4,10]:SPACE(1)
	      	END
      		* dsignation
	      	IF LEN(W_TabDyn<3>) = 5 THEN
        	 	READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_TabDyn<3> ELSE ENR_CIVILAIDE=""  
         		W_Str=ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>

	         	IF LEN(W_Str) > 20 THEN
        	    		W_Temp = W_Temp:W_Str[1,20]:" "
         		END ELSE
            			W_Temp = W_Temp:W_Str:SPACE(21 - LEN(W_Str))
	         	END
      		END ELSE
         		READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,W_TabDyn<3> ELSE ENR_PLANCOMPTABLE=""  
	         	IF LEN(ENR_PLANCOMPTABLE<1>) > 20 THEN
        	    		W_Temp = W_Temp:ENR_PLANCOMPTABLE<1>[1,20]:" "
        		END ELSE
            			W_Temp = W_Temp:ENR_PLANCOMPTABLE<1>:SPACE(21 - LEN(ENR_PLANCOMPTABLE<1>))
         		END
      		END
      		* libell criture
	      	IF LEN(W_TabDyn<4>) > 20 THEN
        	 	W_Temp = W_Temp:W_TabDyn<4>[1,20]:SPACE(1)
	      	END ELSE
        	 	W_Temp = W_Temp:W_TabDyn<4>:SPACE(21 - LEN(W_TabDyn<4>))
	      	END
      		* pice
	      	IF W_TabDyn<5> # "" THEN
        	 	W_Temp = W_Temp:W_TabDyn<5>:SPACE(11 - LEN(W_TabDyn<5>))
	      	END ELSE
        	 	W_Temp = W_Temp:SPACE(11)
      		END	
	      	* dbit
      		IF W_TabDyn<6> # "" THEN
	         	W_Temp = W_Temp:W_TabDyn<6> "R26#13":" "
        	 	W_TotalDebit = W_TotalDebit + W_TabDyn<6>
	      	END ELSE
        	 	W_Temp = W_Temp:SPACE(14)
      		END
      		* crdit
      		IF W_TabDyn<7> # "" THEN

	         	W_Temp = W_Temp:W_TabDyn<7> "R26#13":" "
        	 	W_TotalCredit = W_TotalCredit + W_TabDyn<7>
      		END ELSE
         		W_Temp = W_Temp:SPACE(14)
      		END
      		* analytique
      		IF W_TabDyn<10> # "" THEN
         		W_Temp = W_Temp:SPACE(2):W_TabDyn<10>
      		END
     		ENR_TEMPO<W_Ligne>=W_Temp
      		W_Ligne = W_Ligne + 1
	 	IF W_Aux = "VRAI" AND W_TabDyn<12> # "" THEN
        	 	GOSUB 400
	      	END

	REPEAT


   	* imprimer ligne total

  	ENR_TEMPO<W_Ligne>=SPACE(62):"Total :":SPACE(25):W_TotalDebit "R26#13":" ":W_TotalCredit "R26#13"
	W_Ligne = W_Ligne + 1
	IF W_Aux = "VRAI" THEN
      		WRITE ENR_TEMPO ON F.TEMPO,"JOURNAL":W_User:W_Entite:W_Var[1,2]:W_Exer:"AUX":W_NumOrdre
   	END ELSE
      		WRITE ENR_TEMPO ON F.TEMPO,"JOURNAL":W_User:W_Entite:W_Var[1,2]:W_Exer:"GEN":W_NumOrdre
   	END
   	ENR_TEMPO=""

   END

RETURN

********************************************************************************************
* Impression entete

200

   W_Temp=""
   W_Ligne = 1
   ENR_TEMPO<W_Ligne>="Date : ":OCONV(DATE(),"D4/")
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(100):"Page : " 
   W_Ligne = W_Ligne + 1

   IF W_Traitement = "D" THEN
   	IF W_Aux = "VRAI" THEN
      		ENR_TEMPO<W_Ligne>=SPACE(39):"JOURNAL AUXILIAIRE"
   	END ELSE
      		ENR_TEMPO<W_Ligne>=SPACE(39):"JOURNAL GENERAL"
   	END
   END ELSE
   	IF W_Aux = "VRAI" THEN
      		ENR_TEMPO<W_Ligne>=SPACE(33):"JOURNAL AUXILIAIRE PROVISOIRE"
   	END ELSE
      		ENR_TEMPO<W_Ligne>=SPACE(33):"JOURNAL GENERAL PROVISOIRE"
   	END
   END

   W_Ligne = W_Ligne + 1

   READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_Entite ELSE ENR_ASSOCIATION=""  
   ENR_TEMPO<W_Ligne>="Entit juridique : ":W_Entite:"   ":ENR_ASSOCIATION<1>
   W_Ligne = W_Ligne + 1

   READ ENR_JOURNAL FROM F.JOURNAL,W_Entite:W_Var[1,2] ELSE ENR_JOURNAL=""  
   ENR_TEMPO<W_Ligne>="Journal          : ":W_Var[1,2]:"    ":ENR_JOURNAL<1>
   W_Ligne = W_Ligne + 1

   IF W_TypeEdition="L" THEN
   	READ ENR_PARAMENTITECOMPTA FROM F.PARAMENTITECOMPTA,W_Entite ELSE ENR_PARAMENTITECOMPTA=""  
   	ENR_TEMPO<W_Ligne>="Exercice         : "

   	IF W_Exer = "N0" THEN
      		ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:"N":SPACE(5):"Date dbut : ":OCONV(ENR_PARAMENTITECOMPTA<1>,"D4/"):SPACE(4):"Date fin : ":OCONV(ENR_PARAMENTITECOMPTA<2>,"D4/")
   	END ELSE
   		IF W_Exer = "N1" THEN
      			ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:"N + 1":SPACE(1):"Date dbut : ":OCONV(ENR_PARAMENTITECOMPTA<3>,"D4/"):SPACE(4):"Date fin : ":OCONV(ENR_PARAMENTITECOMPTA<4>,"D4/")
		END ELSE
                	W_DateFin = OCONV(ENR_PARAMENTITECOMPTA<1> - 1,"D4/")
                	W_Mois = W_DateFin[4,2] + 1
                	IF W_Mois = "13" THEN
                    		W_Mois = "01"
                    		W_An = W_DateFin[7,4]
                	END ELSE
                    		W_An = W_DateFin[7,4] - 1
                	END
                	W_DateDeb = "01/":W_Mois "R%2":"/":W_An
     			ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:"N - 1":SPACE(1):"Date dbut : ":W_DateDeb:SPACE(4):"Date fin : ":W_DateFin
		END
   	END
   END ELSE
   	ENR_TEMPO<W_Ligne>="Exercice         : "

   	IF W_Exer = "N0" THEN
      		ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:"N":SPACE(5):"Date dbut : ":OCONV(W_DebExer,"D4/"):SPACE(4):"Date fin : ":OCONV(W_FinExer,"D4/")
   	END ELSE
   		IF W_Exer = "N1" THEN
      			ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:"N + 1":SPACE(1):"Date dbut : ":OCONV(W_DebExer,"D4/"):SPACE(4):"Date fin : ":OCONV(W_FinExer,"D4/")
		END ELSE
     			ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:"N - 1":SPACE(1):"Date dbut : ":OCONV(W_DebExer,"D4/"):SPACE(4):"Date fin : ":OCONV(W_FinExer,"D4/")
		END
   	END
   END

   W_Ligne = W_Ligne + 1

   GOSUB 300

RETURN

********************************************************************************************
* Impression Tableau

300

   ENR_TEMPO<W_Ligne>= "LIGNE   DATE      DATE       N COMPTE   DESIGNATION           LIBELLE ECRITURE     PIECE       DEBIT        CREDIT      ANAL."
   W_Ligne = W_Ligne + 1
   ENR_TEMPO<W_Ligne>= "       SAISIE    OPERATION"
   W_Ligne = W_Ligne + 1

RETURN

********************************************************************************************
* MAJ DETAILECRITUREGENE

400

   ENR_TEMPO<W_Ligne>="**********************************************************************************************************************************"
   W_Ligne = W_Ligne + 1

   W_CountAux = DCOUNT(ENR_DETAILECRITUREAUX<12>,CHAR(253))   

   FOR l = 1 TO W_CountAux
      IF W_Exer="N-" THEN
         READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENEARCHIVE,ENR_DETAILECRITUREAUX<12,l> ELSE ENR_DETAILECRITUREGENE=""   
      END ELSE
         READ ENR_DETAILECRITUREGENE FROM F.DETAILECRITUREGENE,ENR_DETAILECRITUREAUX<12,l> ELSE ENR_DETAILECRITUREGENE=""   
      END
      W_Temp = ""
      * ligne
      W_Temp = SPACE(1):ENR_DETAILECRITUREAUX<12,l>[8,5]:" "
      * date saisie
      IF ENR_DETAILECRITUREGENE<1> # "" THEN
         W_Temp = W_Temp:OCONV(ENR_DETAILECRITUREGENE<1>,"D4/"):" "
      END ELSE
         W_Temp = W_Temp:SPACE(11)
      END
      * date opration
      IF ENR_DETAILECRITUREGENE<2> # "" THEN
         W_Temp = W_Temp:OCONV(ENR_DETAILECRITUREGENE<2>,"D4/"):"  "
      END ELSE
         W_Temp = W_Temp:SPACE(12)
      END
      * n compte
      IF LEN(ENR_DETAILECRITUREGENE<3>) = 5 THEN
         W_Temp = W_Temp:ENR_DETAILECRITUREGENE<3>:SPACE(6)
      END ELSE
         W_Temp = W_Temp:ENR_DETAILECRITUREGENE<3>[4,10]:" "
      END
      * dsignation
      IF LEN(ENR_DETAILECRITUREGENE<3>) = 5 THEN

         READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_DETAILECRITUREGENE<3> ELSE ENR_CIVILAIDE=""  
         W_Str=ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>

         IF LEN(W_Str) > 20 THEN
            W_Temp = W_Temp:W_Str[1,20]:" "
         END ELSE
            W_Temp = W_Temp:W_Str:SPACE(21 - LEN(W_Str))
         END

      END ELSE

         READ ENR_PLANCOMPTABLE FROM F.PLANCOMPTABLE,ENR_DETAILECRITUREGENE<3> ELSE ENR_PLANCOMPTABLE=""  
         IF LEN(ENR_PLANCOMPTABLE<1>) > 20 THEN
            W_Temp = W_Temp:ENR_PLANCOMPTABLE<1>[1,20]:" "
         END ELSE
            W_Temp = W_Temp:ENR_PLANCOMPTABLE<1>:SPACE(21 - LEN(ENR_PLANCOMPTABLE<1>))
         END

      END
      * Libell criture
      IF LEN(ENR_DETAILECRITUREGENE<4>) > 20 THEN
         W_Temp = W_Temp:ENR_DETAILECRITUREGENE<4>[1,20]:SPACE(1)
      END ELSE
         W_Temp = W_Temp:ENR_DETAILECRITUREGENE<4>:SPACE(21 - LEN(ENR_DETAILECRITUREGENE<4>))
      END
      * pice
      IF ENR_DETAILECRITUREGENE<5> # "" THEN
         W_Temp = W_Temp:ENR_DETAILECRITUREGENE<5>:SPACE(11 - LEN(ENR_DETAILECRITUREGENE<5>))
      END ELSE
         W_Temp = W_Temp:SPACE(11)
      END
      * dbit
      IF ENR_DETAILECRITUREGENE<6> # "" THEN
         W_Temp = W_Temp:ENR_DETAILECRITUREGENE<6> "R26#13":" "
      END ELSE
         W_Temp = W_Temp:SPACE(14)
      END
      * crdit
      IF ENR_DETAILECRITUREGENE<7> # "" THEN
         W_Temp = W_Temp:ENR_DETAILECRITUREGENE<7> "R26#13":" "
      END ELSE
         W_Temp = W_Temp:SPACE(14)
      END
      * analytique
      IF ENR_DETAILECRITUREGENE<10> # "" THEN
         W_Temp = W_Temp:SPACE(2):ENR_DETAILECRITUREGENE<10>
      END
      ENR_TEMPO<W_Ligne>=W_Temp
      W_Ligne = W_Ligne + 1

   NEXT l

   ENR_TEMPO<W_Ligne>="**********************************************************************************************************************************"
   W_Ligne = W_Ligne + 1

RETURN

********************************************************************************************
* MAJ JOURNAL

500

   IF W_Traitement="D" THEN
   	IF W_Exer="N-" THEN
      		READ ENR_JOURNAL FROM F.JOURNALARCHIVE,W_Entite:W_Var[1,2] ELSE ENR_JOURNAL="" 
   	END ELSE
   		READ ENR_JOURNAL FROM F.JOURNAL,W_Entite:W_Var[1,2] ELSE ENR_JOURNAL="" 
   	END
   END ELSE
   	READ ENR_JOURNAL FROM F.JOURNALPROVISOIRE,W_Entite:W_Var[1,2] ELSE ENR_JOURNAL="" 
   END

   * si exercice N
   IF W_Var[4,2] = "N0" OR W_Var[4,2] = "P0" THEN
      * auxiliaire
      IF W_Aux = "VRAI" THEN
         IF ENR_JOURNAL<9> = "" THEN
            ENR_JOURNAL<9> = 0
         END
         IF INT(ENR_JOURNAL<9>) + 1 = INT(W_Deb) OR ENR_JOURNAL<9> >= W_Deb THEN
            ENR_JOURNAL<9> = W_Fin
         END
      END ELSE
      * gnral
         IF ENR_JOURNAL<8> = "" THEN
            ENR_JOURNAL<8> = 0
         END
         IF INT(ENR_JOURNAL<8>) + 1 = INT(W_Deb) OR ENR_JOURNAL<8> >= W_Deb THEN
            ENR_JOURNAL<8> = W_Fin
         END
      END
   END ELSE
   * si exercice N+1
      * auxiliaire
      IF W_Aux = "VRAI" THEN
         IF ENR_JOURNAL<11> = "" THEN
            ENR_JOURNAL<11> = 0
         END
         IF INT(ENR_JOURNAL<11>) + 1 = INT(W_Deb) OR ENR_JOURNAL<11> >= W_Deb THEN
            ENR_JOURNAL<11> = W_Fin
         END
      END ELSE
      * gnral
         IF ENR_JOURNAL<10> = "" THEN
            ENR_JOURNAL<10> = 0
         END
         IF INT(ENR_JOURNAL<10>) + 1 = INT(W_Deb) OR ENR_JOURNAL<10> >= W_Deb THEN
            ENR_JOURNAL<10> = W_Fin
         END
      END
   END
   IF ENR_JOURNAL<8> = "0" THEN ENR_JOURNAL<8> = ""
   IF ENR_JOURNAL<9> = "0" THEN ENR_JOURNAL<9> = ""
   IF ENR_JOURNAL<10> = "0" THEN ENR_JOURNAL<10> = ""
   IF ENR_JOURNAL<11> = "0" THEN ENR_JOURNAL<11> = ""

   IF W_Traitement="D" THEN
   	IF W_Exer="N-" THEN
   		WRITE ENR_JOURNAL ON F.JOURNALARCHIVE,W_Entite:W_Var[1,2]
   	END ELSE
   		WRITE ENR_JOURNAL ON F.JOURNAL,W_Entite:W_Var[1,2]
   	END
   END ELSE
   	WRITE ENR_JOURNAL ON F.JOURNALPROVISOIRE,W_Entite:W_Var[1,2]
   END

RETURN

******************************
* Impression matricielle     *
******************************
600

	EXECUTE 'SSELECT TEMPO AVEC 0 = "JOURNAL':W_User:']"'
	EXECUTE 'SAUVE-LISTE W_ReqTempo'
	EXECUTE "LISTE W_ReqTempo" RETURNING MSGCODE

	IF MSGCODE<1> # 209 THEN
		SELECT F.TEMPO TO W_ReqTempo
		W_Fin="FAUX"
		W_SauveCleM=""
		W_SauveEnteteM=""
		W_AncCle=""
		LOOP
			READNEXT W_CleTempo FROM W_ReqTempo ELSE W_Fin = "VRAI"
		WHILE W_Fin = "FAUX" DO
			IF W_AncCle#W_CleTempo[LEN(W_CleTempo)-10,10] THEN
				IF W_AncCle#"" THEN
					PAGE
				END
				W_AncCle=W_CleTempo[LEN(W_CleTempo)-10,10]
			END
			READ ENR_TEMPO FROM F.TEMPO, W_CleTempo ELSE ENR_TEMPO=""
			IF W_SauveCleM=W_CleTempo[LEN(W_CleTempo)-10,10] THEN
				W_LigM=1
				GOSUB 620
			END ELSE
				W_LigM=1
				I=0
				LOOP
					I=I+1
				WHILE I<=7 DO
					W_SauveEnteteM<I>=ENR_TEMPO<I>
				REPEAT
				GOSUB 610
				GOSUB 620
			END
			W_SauveCleM=W_CleTempo
			W_SauveCleM=W_SauveCleM[LEN(W_SauveCleM)-10,10]
			EXECUTE 'DELETE TEMPO ':W_CleTempo
		REPEAT
	END
RETURN

*****************************
* Impression entete         *
*****************************
610
	W_LigneM=0
	W_PageM=W_PageM+1
	PRINT " "
	PRINT W_SauveEnteteM<W_LigM>:" ": W_PageM
	W_LigM=W_LigM+1
	PRINT " "
	PRINT " "
	PRINT W_SauveEnteteM<W_LigM>
	W_LigM=W_LigM+1
	PRINT " "
	PRINT " "
	PRINT W_SauveEnteteM<W_LigM>
	W_LigM=W_LigM+1
	PRINT W_SauveEnteteM<W_LigM>
	W_LigM=W_LigM+1
	PRINT W_SauveEnteteM<W_LigM>
	W_LigM=W_LigM+1
	PRINT " "
	PRINT " "
	PRINT W_SauveEnteteM<W_LigM>
	W_LigM=W_LigM+1
	PRINT W_SauveEnteteM<W_LigM>
	W_LigM=W_LigM+1
RETURN

*****************************
* Impression dtail         *
*****************************
620
	W_LigneMaxM=45
	W_LigM=W_LigM-1
	W_SauveLigneM=0
	LOOP
		W_LigM=W_LigM+1
	WHILE ENR_TEMPO<W_LigM>#"" DO
		IF W_LigneM>W_LigneMaxM THEN
			W_SauveLigneM=W_LigM
			PAGE
			W_LigM=1
			GOSUB 610
			W_LigM=W_SauveLigneM
		END
		IF ENR_TEMPO<W_LigM>[1,5]="     " THEN
			PRINT " "
			PRINT ENR_TEMPO<W_LigM>
			W_LigneM=W_LigneM+2
		END ELSE
			IF ENR_TEMPO<W_LigM>[1,5]="*****" THEN
				PRINT " "
				PRINT "**********************************************************************************************************************************"
				PRINT " "
				W_LigneM=W_LigneM+3
			END ELSE
				PRINT ENR_TEMPO<W_LigM>
				W_LigneM=W_LigneM+1
			END
		END
	REPEAT
RETURN

********************************************************************************************
* REQUETE DETAILECRITURE

700

	W_Temp = ""
      	IF W_Aux = "VRAI" THEN
	 	IF W_Exer="N-" THEN
         		W_Temp = 'SELECT DETAILECRITUREAUXARCHIVE'
	 	END ELSE
			W_Temp = 'SELECT DETAILECRITUREAUX'
		END
	END ELSE
		IF W_Exer="N-" THEN
         		W_Temp = 'SELECT DETAILECRITUREGENEARCHIVE'
	 	END ELSE
         		W_Temp = 'SELECT DETAILECRITUREGENE'
	 	END   
      	END
	W_Temp = W_Temp:' AVEC 0 = "':W_Cle:']"'

	IF W_TypeEdition="L" THEN
		W_Deb = W_Deb "R(%5)"
		W_Fin = W_Fin "R(%5)"
		W_Temp = W_Temp:' AND AVEC 0 >= "[':W_Deb:'"'
		W_Temp = W_Temp:' AND AVEC 0 <= "[':W_Fin:'"'
		W_Temp = W_Temp:' PAR 0'
	END ELSE
		W_Temp = W_Temp:' AND AVEC 2 >= "':W_DebExer:'"'
		W_Temp = W_Temp:' AND AVEC 2 <= "':W_FinExer:'"'
		W_Temp = W_Temp:' PAR 2 PAR 0'
	END

	EXECUTE W_Temp
	EXECUTE 'SAUVE-LISTE W_RESULTATECR' 
	EXECUTE "LISTE W_RESULTATECR" RETURNING MSGCODE

RETURN
