**********************************************************
*  Mise en forme du fichier ARCHIVEBULL
*  Vanessa
*  AVRIL 2001
**********************************************************

* Ouvertures des fichiers

EXECUTE "DATE.FORMAT"
OPEN "","ARCHIVEBULL" TO F.ARCHIVEBULL ELSE PRINT "OUVERTURE ARCHIVEBULL" ;* en lecture
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en criture 
*********************************************************
* initialisation des variables
ENR_ARCHIVEBULL=""
ENR_TEMPO=""
W_TabDyn=""
W_NumOrdre=1
W_Ligne=1
W_Pass="FAUX"
W_PrintImposable="FAUX"
W_CountDetail=0
W_DebBorne=""
W_FinBorne=""
W_RequeteArchiveBull=""

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

PROCREAD ARGUMENTS ELSE STOP
W_User=FIELD(ARGUMENTS," ",2)
W_Basic=FIELD(ARGUMENTS," ",3)
*********************************************************
* PROGRAMME PRINCIPAL

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

   IF W_Basic=1 THEN
      READ ENR_TEMPO FROM F.TEMPO,"REQUETEBULL":W_User ELSE ENR_TEMPO=""
      IF ENR_TEMPO # "" THEN
         GOSUB 100
      END
   END

   READ ENR_TEMPO FROM F.TEMPO,"ARCHIVEBULL":W_User ELSE ENR_TEMPO=""
   W_TabDyn=ENR_TEMPO<1>

   W_Count = DCOUNT(W_TabDyn,CHAR(253))
   ENR_TEMPO=""

   FOR i = 1 TO W_Count
      W_PrintImposable="FAUX"
      READ ENR_ARCHIVEBULL FROM F.ARCHIVEBULL,W_TabDyn<1,i> ELSE ENR_ARCHIVEBULL=""

      GOSUB 10
      GOSUB 20
      W_Rang = 19
      GOSUB 30
      GOSUB 40
      GOSUB 50
      GOSUB 60
      GOSUB 70
      GOSUB 80

      IF i # W_Count THEN
         LOOP
         WHILE MOD(W_Ligne,72) # 0 DO
            GOSUB 5
         REPEAT
      END

*      IF MOD(i,100)=0 THEN
*         WRITE ENR_TEMPO ON F.TEMPO,"EDITBULL":W_User:W_NumOrdre
*         W_NumOrdre=W_NumOrdre+1
*         W_Ligne=1
*         ENR_TEMPO=""
*      END
      GOSUB 5

   NEXT i

   WRITE ENR_TEMPO ON F.TEMPO,"EDITBULL":W_User:W_NumOrdre

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

STOP

*****************************************************************************
*  SAUTE UNE LIGNE
5

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

RETURN

*****************************************************************************

*  ENTETE BULLETIN
10

   ENR_TEMPO<W_Ligne>=SPACE(40):ENR_ARCHIVEBULL<2>
   W_Ligne=W_Ligne+1

   ENR_TEMPO<W_Ligne>=SPACE(40):ENR_ARCHIVEBULL<3>
   W_Ligne=W_Ligne+1
   GOSUB 5

   ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<5>
   W_Ligne=W_Ligne+1
   GOSUB 5

   * sigle
   ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<7,1>
   * siret
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(39-LEN(ENR_ARCHIVEBULL<7,1>)):ENR_ARCHIVEBULL<7,2>
   W_Ligne=W_Ligne+1

   * adresse
   ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<8,1>
   * ape
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(39-LEN(ENR_ARCHIVEBULL<8,1>)):ENR_ARCHIVEBULL<8,2>
   W_Ligne=W_Ligne+1

   * compl voie
   IF ENR_ARCHIVEBULL<9,1> # "" THEN
      ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<9,1>
   END ELSE
      ENR_TEMPO<W_Ligne>=SPACE(1)
   END
   * centre urssaf
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(39-LEN(ENR_ARCHIVEBULL<9,1>)):ENR_ARCHIVEBULL<9,2>
   W_Ligne=W_Ligne+1

   * code postal + ville
   ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<10,1>
   * n employeur
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(39-LEN(ENR_ARCHIVEBULL<10,1>)):ENR_ARCHIVEBULL<10,2>
   W_Ligne=W_Ligne+1

RETURN

*****************************************************************************

*  ENTETE BULLETIN 2
20
   
   GOSUB 5

   * matricule
   ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<12,1>
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(39-LEN(ENR_ARCHIVEBULL<12,1>)):ENR_ARCHIVEBULL<12,2>
   W_Ligne=W_Ligne+1

   * n secu
   ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<13,1>
   * titre + nom + prenom
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(39-LEN(ENR_ARCHIVEBULL<13,1>)):ENR_ARCHIVEBULL<13,2>
   W_Ligne=W_Ligne+1

   * qualification
   ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<14,1>[1,37]
   W_Ligne=W_Ligne+1

   * coefficient
   ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<15,1>[1,37]
   * adresse
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(39-LEN(ENR_ARCHIVEBULL<15,1>[1,37])):ENR_ARCHIVEBULL<15,2>
   W_Ligne=W_Ligne+1

   * anciennete
   ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<16,1>
   * compl voie
   IF ENR_ARCHIVEBULL<16,2> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(39-LEN(ENR_ARCHIVEBULL<16,1>)):ENR_ARCHIVEBULL<16,2>
   END
   W_Ligne=W_Ligne+1

   * date d'entree
   ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<17,1>
   * code postal + ville
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(39-LEN(ENR_ARCHIVEBULL<17,1>)):ENR_ARCHIVEBULL<17,2>
   W_Ligne=W_Ligne+1

RETURN

*****************************************************************************

*  REMPLIR BULLETIN BRUT
30
   
   FOR j = 1 TO 6
      GOSUB 5
   NEXT j
   
   W_CountDetail=0

   LOOP 
   UNTIL ENR_ARCHIVEBULL<W_Rang,1> = "%" DO

      * libelle rubrique
      W_LongLigne=LEN(ENR_ARCHIVEBULL<W_Rang,1>)
      IF W_LongLigne > 28 THEN
         ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<W_Rang,1>[1,28]
      END ELSE
         ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<W_Rang,1>:SPACE(28-W_LongLigne)
      END

      * base 
      IF ENR_ARCHIVEBULL<W_Rang,2> = "" THEN
         ENR_ARCHIVEBULL<W_Rang,2> = 0
      END
      IF ENR_ARCHIVEBULL<W_Rang,2> # 0 THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,2> "R26(#9)"
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
      END

      * taux
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(16)
      IF ENR_ARCHIVEBULL<W_Rang,5> # 0 AND ENR_ARCHIVEBULL<W_Rang,5> # "" THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,5> "R37(#7)"
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(7)
      END
     
      * montant
      IF ENR_ARCHIVEBULL<W_Rang,6> # "" THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,6> "R26(#9)"
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
         IF ENR_ARCHIVEBULL<W_Rang,7> # "" THEN
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ABS(ENR_ARCHIVEBULL<W_Rang,7>) "R26(#9)"
         END ELSE
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
         END
      END
      
      W_Ligne=W_Ligne+1
      W_Rang=W_Rang+1
      W_CountDetail=W_CountDetail+1

   REPEAT

   W_Rang=W_Rang+1

   GOSUB 5

   * imprime le total brut
   W_LongLigne=LEN(ENR_ARCHIVEBULL<W_Rang,1>)
   IF W_LongLigne > 28 THEN
      W_LongLigne=28
   END
   ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<W_Rang,1>:SPACE(28-W_LongLigne)

   * base 
   IF ENR_ARCHIVEBULL<W_Rang,2> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,2> "R26(#9)"
   END ELSE
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
   END
     
   * montant
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(23)
   IF ENR_ARCHIVEBULL<W_Rang,6> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,6> "R26(#9)"
   END ELSE
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
      IF ENR_ARCHIVEBULL<W_Rang,7> # "" THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ABS(ENR_ARCHIVEBULL<W_Rang,7>) "R26(#9)"
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
      END
   END

   W_CountDetail=W_CountDetail+3
   W_Ligne=W_Ligne+1
   W_Rang=W_Rang+2
  
   W_Pass = "FAUX"

RETURN

*****************************************************************************

*  REMPLIR BULLETIN CHARGE
40

   j=W_Rang
   
   IF ENR_ARCHIVEBULL<j,1> # "%" THEN
      GOSUB 5
   END

   IF ENR_ARCHIVEBULL<j,1> = "%" THEN
      GOSUB 5
   END

   LOOP 
   UNTIL ENR_ARCHIVEBULL<j,1> = "%" DO

      IF MOD(j-22,29) = 0 AND j # 22 THEN
         W_Pass="VRAI"
         LOOP
         WHILE MOD(W_Ligne,72) # 0 DO
            GOSUB 5
         REPEAT
         GOSUB 5
         GOSUB 10
         GOSUB 20
         FOR k = 1 TO 6
            GOSUB 5
         NEXT k  
         W_CountDetail=-1
      END

      IF ENR_ARCHIVEBULL<j,1> = "" OR ENR_ARCHIVEBULL<j,1> = "%" THEN
         RETURN
      END
      W_LongLigne=LEN(ENR_ARCHIVEBULL<j,1>)
      IF W_LongLigne > 28 THEN W_LongLigne = 28
      ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<j,1>[1,28]:SPACE(28-W_LongLigne)

      * base sal
      IF ENR_ARCHIVEBULL<j,2> # "" THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<j,2> "R26(#9)"
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
      END

      * taux pat
      IF ENR_ARCHIVEBULL<j,3> # 0 AND ENR_ARCHIVEBULL<j,3> # "" THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<j,3> "R37(#7)"
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(7)
      END

      * montant pat
      IF ENR_ARCHIVEBULL<j,4> # "" THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<j,4> "R26(#9)"
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
      END

      * taux sal
      IF ENR_ARCHIVEBULL<j,5> # 0 AND ENR_ARCHIVEBULL<j,5> # "" THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<j,5> "R37(#7)"
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(7)
      END

      * montant sal
      IF ENR_ARCHIVEBULL<j,6> # "" THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<j,6> "R26(#9)"
      END ELSE
         IF ENR_ARCHIVEBULL<j,7> # "" THEN
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ABS(ENR_ARCHIVEBULL<j,7>) "R26(#9)"
         END ELSE
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
         END
      END

      j=j+1
      W_Ligne=W_Ligne+1
      W_CountDetail=W_CountDetail+1

   REPEAT

   IF MOD(j-22,29) = 0 AND j # 22 THEN
      LOOP
      WHILE MOD(W_Ligne,72) # 0 DO
         GOSUB 5
      REPEAT
      GOSUB 5
      GOSUB 10
      GOSUB 20
      FOR k = 1 TO 5
         GOSUB 5
      NEXT k  
      W_CountDetail=-1

   END

   W_Rang=j+1
   IF W_PrintImposable = "FAUX" THEN

      IF MOD(W_Rang-22,29) = 0 THEN

         LOOP
         WHILE MOD(W_Ligne,72) # 0 DO
            GOSUB 5
         REPEAT
         GOSUB 5
         GOSUB 10
         GOSUB 20
         FOR k = 1 TO 6
            GOSUB 5
         NEXT k  
         W_CountDetail=-1

      END ELSE
         GOSUB 5
      END

      * imprime le NET IMPOSABLE
      ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<W_Rang,1>
      * base
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(15):ENR_ARCHIVEBULL<W_Rang,2> "R26(#9)"
      W_Ligne=W_Ligne+1
********
      IF ENR_ARCHIVEBULL<W_Rang+1,1> # "%" AND ENR_ARCHIVEBULL<W_Rang+1,1> # "#6" THEN
         W_Rang=W_Rang+1

         IF MOD(W_Rang-22,29) = 0 THEN
            LOOP
            WHILE MOD(W_Ligne,72) # 0 DO
               GOSUB 5
            REPEAT
            GOSUB 5
            GOSUB 10
            GOSUB 20
            FOR k = 1 TO 6
               GOSUB 5
            NEXT k  
            W_CountDetail=-2

         END

   	 * imprime le total net
   	 W_LongLigne=LEN(ENR_ARCHIVEBULL<W_Rang,1>)
   	 IF W_LongLigne > 28 THEN
      	    W_LongLigne=28
  	 END
   	 ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<W_Rang,1>:SPACE(28-W_LongLigne)

     	 ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
     
   	 * montant
   	 ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(23)
   	 IF ENR_ARCHIVEBULL<W_Rang,6> # "" THEN
      	    ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,6> "R26(#9)"
   	 END ELSE
  	    ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
   	    IF ENR_ARCHIVEBULL<W_Rang,7> # "" THEN
               ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ABS(ENR_ARCHIVEBULL<W_Rang,7>) "R26(#9)"
            END ELSE
               ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
            END
	 END
         W_Ligne=W_Ligne+1
         W_CountDetail=W_CountDetail+1

      END
*********
      IF ENR_ARCHIVEBULL<W_Rang+1,1> # "#6" AND ENR_ARCHIVEBULL<W_Rang+1,1> # "*" THEN
         W_Rang=W_Rang+1

         IF MOD(W_Rang-22,29) = 0 THEN

            LOOP
            WHILE MOD(W_Ligne,72) # 0 DO
               GOSUB 5
            REPEAT
            GOSUB 5
            GOSUB 10
            GOSUB 20
            FOR k = 1 TO 6
               GOSUB 5
            NEXT k  
            W_CountDetail=-2

         END

         W_Rang=W_Rang+1

         W_CountDetail=W_CountDetail+2
         W_Ligne=W_Ligne+1
      END ELSE
         W_Rang=W_Rang+1
         W_CountDetail=W_CountDetail+3
         W_Ligne=W_Ligne+2
      END

      W_PrintImposable = "VRAI"

   END

RETURN

*****************************************************************************

*  REMPLIR BULLETIN APRES NET
50

*********
   IF ENR_ARCHIVEBULL<W_Rang,1> = "" OR ENR_ARCHIVEBULL<W_Rang,1> = "#6" THEN
      IF ENR_ARCHIVEBULL<W_Rang,1> = "#6" THEN
         W_Rang=W_Rang+1
      END 
      RETURN
   END

*   GOSUB 5


   LOOP 
   UNTIL ENR_ARCHIVEBULL<W_Rang,1> = "#6" OR ENR_ARCHIVEBULL<W_Rang,1> = "*" DO

      IF MOD(W_Rang-22,29) = 0 THEN

         LOOP
         WHILE MOD(W_Ligne,72) # 0 DO
            GOSUB 5
         REPEAT
         GOSUB 5
         GOSUB 10
         GOSUB 20
         FOR k = 1 TO 6
            GOSUB 5
         NEXT k  
         W_CountDetail=-1

      END

      * libelle rubrique
      W_LongLigne=LEN(ENR_ARCHIVEBULL<W_Rang,1>)
      IF W_LongLigne > 28 THEN W_LongLigne = 28
      ENR_TEMPO<W_Ligne>=SPACE(1):ENR_ARCHIVEBULL<W_Rang,1>[1,30]:SPACE(28-W_LongLigne)

      * base 
      IF ENR_ARCHIVEBULL<W_Rang,2> # "" THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,2> "R26(#9)"
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
      END

      * taux 
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(16)
      IF ENR_ARCHIVEBULL<W_Rang,5> # 0 AND ENR_ARCHIVEBULL<W_Rang,5> # "" THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,5> "R37(#7)"
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(7)
      END

      * montant 
      IF ENR_ARCHIVEBULL<W_Rang,6> # "" THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,6> "R26(#9)"
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
         IF ENR_ARCHIVEBULL<W_Rang,7> # "" THEN
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ABS(ENR_ARCHIVEBULL<W_Rang,7>) "R26(#9)"
         END ELSE
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
         END
      END

      W_Rang=W_Rang+1
      W_Ligne=W_Ligne+1
      W_CountDetail=W_CountDetail+1

   REPEAT

   IF ENR_ARCHIVEBULL<W_Rang> = "*" THEN
        W_Rang = W_Rang + 1

        W_Diff=30-W_CountDetail
        FOR j=1 TO W_Diff
           GOSUB 5
           W_CountDetail=W_CountDetail+1
        NEXT j

        ENR_TEMPO<W_Ligne>=" ":ENR_ARCHIVEBULL<W_Rang>
        W_Rang = W_Rang + 1
        W_Ligne=W_Ligne+1
        W_CountDetail=W_CountDetail+1
   END

   W_Rang=W_Rang+1

RETURN
*****************************************************************************

*  REMPLIR CADRE 7
60

   W_Diff=34-W_CountDetail
   FOR j=1 TO W_Diff
      GOSUB 5
   NEXT j
   * mois brut
   ENR_TEMPO<W_Ligne>=SPACE(14)
   IF ENR_ARCHIVEBULL<W_Rang,1> # 0 AND ENR_ARCHIVEBULL<W_Rang,1> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,1> "R26(#9)"
   END ELSE
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
   END

   * mois net fiscal
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(2)
   IF ENR_ARCHIVEBULL<W_Rang,2> # 0 AND ENR_ARCHIVEBULL<W_Rang,2> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,2> "R26(#9)"
   END ELSE
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
   END

   * mois heures
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(2)
   IF ENR_ARCHIVEBULL<W_Rang,3> # 0 AND ENR_ARCHIVEBULL<W_Rang,3> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,3> "R26(#9)"
   END ELSE
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
   END
 
   W_Ligne=W_Ligne+1

   * cumul brut
   ENR_TEMPO<W_Ligne>=SPACE(13)
   IF ENR_ARCHIVEBULL<W_Rang+1,1> # 0 AND ENR_ARCHIVEBULL<W_Rang+1,1> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang+1,1> "R26(#10)"
   END ELSE
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(10)
   END

   * cumul net fiscal
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(1)
   IF ENR_ARCHIVEBULL<W_Rang+1,2> # 0 AND ENR_ARCHIVEBULL<W_Rang+1,2> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang+1,2> "R26(#10)"
   END ELSE
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(10)
   END

   * cumul heures
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(3)
   IF ENR_ARCHIVEBULL<W_Rang+1,3> # 0 AND ENR_ARCHIVEBULL<W_Rang+1,3> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang+1,3> "R26(#8)"
   END ELSE
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(8)
   END

RETURN

*****************************************************************************

*  REMPLIR CADRE 8
70

   W_Rang=W_Rang+1
   * mois brut
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(7)
   IF ENR_ARCHIVEBULL<W_Rang,4> # 0 AND ENR_ARCHIVEBULL<W_Rang,4> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,4> "R26(#9)"
   END ELSE
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
   END   

   * mois net fiscal
   IF ENR_ARCHIVEBULL<W_Rang,5> # 0 AND ENR_ARCHIVEBULL<W_Rang,5> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,5> "R26(#9)"
   END ELSE
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
   END

   * mois heures
   IF ENR_ARCHIVEBULL<W_Rang,6> # 0 AND ENR_ARCHIVEBULL<W_Rang,6> # "" THEN
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ABS(ENR_ARCHIVEBULL<W_Rang,6>) "R26(#9)"
   END ELSE
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(9)
   END

   W_Ligne=W_Ligne+1
   W_Rang=W_Rang+2

RETURN
*****************************************************************************

*  REMPLIR CADRE 10
80

   GOSUB 5
   GOSUB 5
   GOSUB 5

   * net  payer francs
   IF ENR_ARCHIVEBULL<W_Rang,1> # "" THEN

      ENR_TEMPO<W_Ligne>=SPACE(70-LEN(ENR_ARCHIVEBULL<W_Rang,1> "R26(#8)"))
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,1> "R26(#8)"
      IF ENR_ARCHIVEBULL<W_Rang,2> = "" OR ENR_ARCHIVEBULL<W_Rang,2> = "F" THEN
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:"  Francs"
      END ELSE
         ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:"  Euros"
      END
      W_Ligne=W_Ligne+1
   END ELSE
      GOSUB 5
   END
   W_Rang=W_Rang+1

   GOSUB 90

   IF ENR_ARCHIVEBULL<W_Rang,5> = "" THEN
      W_Ligne=W_Ligne+1
*      GOSUB 5
   END ELSE
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(16)
      ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:ENR_ARCHIVEBULL<W_Rang,5> "R26(#9)"

      IF ENR_ARCHIVEBULL<W_Rang,7> = "E" THEN
         IF ENR_ARCHIVEBULL<W_Rang-1,2> = "E" THEN
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:""
         END ELSE
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:"  Euros"
         END
      END ELSE
         IF ENR_ARCHIVEBULL<W_Rang,7> = "F" THEN
            ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:"  Francs"
         END ELSE
            IF ENR_ARCHIVEBULL<W_Rang,7> = "" THEN
               ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:"  Euros"
            END
         END 
      END

      W_Ligne=W_Ligne+1
   END

   GOSUB 5
   ENR_TEMPO<W_Ligne>=ENR_ARCHIVEBULL<W_Rang,6> [1,78]
   W_Ligne = W_Ligne+1

RETURN

*****************************************************************************

*  REMPLIR CADRE 9
90

   * CP heures
   W_Temp = ENR_ARCHIVEBULL<W_Rang,1> "R26(#8)"
   W_Long = LEN(W_Temp)
   ENR_TEMPO<W_Ligne>=SPACE(12-W_Long)
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:W_Temp

   * CP montant
   W_Temp = ENR_ARCHIVEBULL<W_Rang,2> "R26(#8)"
   W_Long = LEN(W_Temp)
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(11-W_Long)
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:W_Temp

   * CA heures
   W_Temp = ENR_ARCHIVEBULL<W_Rang,3> "R26(#8)"
   W_Long = LEN(W_Temp)
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(11-W_Long)
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:W_Temp

   * CA montant
   W_Temp = ENR_ARCHIVEBULL<W_Rang,4> "R26(#8)"
   W_Long = LEN(W_Temp)
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:SPACE(11-W_Long)
   ENR_TEMPO<W_Ligne>=ENR_TEMPO<W_Ligne>:W_Temp

RETURN

*****************************************************************************
*  REQUETE ARCHIVEBULL
100

   * periode + association
   W_Temp='SSELECT ARCHIVEBULL'
   IF ENR_TEMPO<4> # "M" THEN
      W_Temp=W_Temp:' AVEC @ID = "[':ENR_TEMPO<2>:ENR_TEMPO<1>:'"'
   END ELSE
      W_Temp=W_Temp:' AVEC PeriodeArchive = "[':ENR_TEMPO<2>:']"'
      W_Temp=W_Temp:' AND AVEC Association = "':ENR_TEMPO<1>:'"'
   END
 
   * activite
   IF ENR_TEMPO<3> # "A" THEN
      W_Temp=W_Temp:' AND AVEC TypeActivite = "':ENR_TEMPO<4>:'"'
   END

   * secteur
   IF ENR_TEMPO<8> = "Empl" THEN
      W_Temp=W_Temp:' AND AVEC SecteurAide = "':ENR_TEMPO<5,1>:'"'
   END ELSE
      IF ENR_TEMPO<8> = "Aidant" THEN
         W_Temp=W_Temp:' AND AVEC Secteur = "':ENR_TEMPO<5,1>:'"'
      END
   END
   
   FOR i = 2 TO DCOUNT(ENR_TEMPO<5>,CHAR(253))
      W_Temp=W_Temp:' OR = "':ENR_TEMPO<5,i>:'"'
   NEXT i

   * type personnel
   IF ENR_TEMPO<3> = "P" THEN
      W_Temp=W_Temp:' AND AVEC TypePersonnel = "P"'
   END ELSE
      IF ENR_TEMPO<3> = "A" THEN
         W_Temp=W_Temp:' AND AVEC TypePersonnel = "A"'
      END
   END

   * bornage
   IF ENR_TEMPO<9> # "" THEN
      W_DebBorne=ENR_TEMPO<9>
   END ELSE
      W_DebBorne="A"
   END
   IF ENR_TEMPO<10> # "" THEN
      W_FinBorne=ENR_TEMPO<10>
   END ELSE
      W_FinBorne="ZZ"
   END

   IF ENR_TEMPO<8>="Aidant" THEN
      W_Temp=W_Temp:' AND AVEC Aidant >= "':W_DebBorne:']"'
      W_Temp=W_Temp:' AND AVEC Aidant <= "':W_FinBorne:']"'
   END ELSE
      IF ENR_TEMPO<8>="Empl" THEN
         W_Temp=W_Temp:' AND AVEC Employeur >= "':W_DebBorne:']"'
         W_Temp=W_Temp:' AND AVEC Employeur <= "':W_FinBorne:']"'
      END
   END

   * date dition
   IF ENR_TEMPO<11> # "" THEN
      W_Temp=W_Temp:' AND AVEC DateEdition = "':ENR_TEMPO<11>:'"'
   END

   * tri
   IF ENR_TEMPO<6>="1" THEN
      IF ENR_TEMPO<8>="Empl" THEN
         IF ENR_TEMPO<7>="1" THEN
            W_Temp=W_Temp:' PAR SecteurAide PAR CommuneAideArchive PAR Employeur PAR PrenomEmployeur'
         END ELSE
            W_Temp=W_Temp:' PAR SecteurAide PAR Employeur PAR PrenomEmployeur'
         END
      END ELSE
         IF ENR_TEMPO<8>="Aidant" THEN
            IF ENR_TEMPO<7>="1" THEN
               W_Temp=W_Temp:' PAR Secteur PAR CommuneAidantArchive PAR Aidant PAR PrenomAidant'
            END ELSE
               W_Temp=W_Temp:' PAR Secteur PAR Aidant PAR PrenomAidant'
            END
         END 
      END
   END ELSE
      IF ENR_TEMPO<8>="Empl" THEN
         IF ENR_TEMPO<7>="1" THEN
            W_Temp=W_Temp:' PAR CommuneAideArchive PAR Employeur PAR PrenomEmployeur'
         END ELSE
            W_Temp=W_Temp:' PAR Employeur PAR PrenomEmployeur'
         END
      END ELSE
         IF ENR_TEMPO<8>="Aidant" THEN
            IF ENR_TEMPO<7>="1" THEN
               W_Temp=W_Temp:' PAR CommuneAidantArchive PAR Aidant PAR PrenomAidant'
            END ELSE
               W_Temp=W_Temp:' PAR Aidant PAR PrenomAidant'
            END
         END 
      END
   END

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

   IF MSGCODE<1>=209 THEN
      STOP
   END ELSE
      SELECT F.ARCHIVEBULL TO W_RequeteArchiveBull

      ENR_TEMPO=""
      W_End="FAUX"
      i=1

      LOOP
         READNEXT W_Cle FROM W_RequeteArchiveBull ELSE W_End = "VRAI"
      WHILE W_End = "FAUX" DO

         ENR_TEMPO<1,i>=W_Cle
         i=i+1

      REPEAT
   END

   WRITE ENR_TEMPO ON F.TEMPO,"ARCHIVEBULL":W_User

RETURN
