**********************************************************
*  gnration du fichier ARCHIVEBORDCAISSE
*  Programme chaine  partir d'un projet VB
*  spcifique fdration
*  Vanessa
*  JUIN 2000
**********************************************************

* Ouvertures des fichiers

EXECUTE "DATE.FORMAT"
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en criture
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE PRINT "OUVERTURE ACTIVITES" ;* en lecture
OPEN "","ARCHIVEBORDCAISSE" TO F.ARCHIVEBORDCAISSE ELSE PRINT "OUVERTURE ARCHIVEBORDCAISSE" ;* en criture
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE PRINT "OUVERTURE ASSOCIATION" ;* en lecture
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE PRINT "OUVERTURE ORGPRISECHARGE" ;* en lecture
OPEN "","PARAMBORDORGCHG" TO F.PARAMBORDORGCHG ELSE PRINT "OUVERTURE PARAMBORDORGCHG" ;* en lecture
OPEN "","FACTURORG" TO F.FACTURORG ELSE PRINT "OUVERTURE FACTURORG" ;* en lecture criture
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "OUVERTURE CIVILAIDE";* en lecture
OPEN "","SECTEUR" TO F.SECTEUR ELSE PRINT "OUVERTURE SECTEUR";* en lecture
OPEN "","ACCORD" TO F.ACCORD ELSE PRINT "OUVERTURE ACCORD";* en lecture
OPEN "","TABLES" TO F.TABLES ELSE PRINT "OUVERTURE TABLES";* en lecture
OPEN "","FEDEASSOC" TO F.FEDEASSOC ELSE PRINT "OUVERTURE FEDEASSOC";* en lecture
OPEN "","FRAISGESTIONASSO" TO F.FRAISGESTIONASSO ELSE PRINT "OUVERTURE FRAISGESTIONASSO";* en lecture
*********************************************************
* initialisation des variables
ENR_ARCHIVEBORDCAISSE=""
W_Adresse=""
W_Matrice=""
W_RequeteFacturOrg=""
W_SousMatrice=""
W_TotalTFMR=0
w_TotalTMR=0
W_SousTotalSecteur=0
W_TotalMontant=0
W_TotalHres=0
W_Rupture="FAUX"
ENR_FRAISGESTION=""

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

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

   EXECUTE 'SSELECT FRAISGESTIONASSO AVEC CodeFedeAsso = "':W_Assoc:'" AND AVEC 0 = "[':W_PeriodeTrait:'"'
  
   W_Fini="FAUX"
   LOOP 
      READNEXT W_Cle ELSE W_Fini="VRAI"
   WHILE W_Fini="FAUX" DO
      READ ENR_FRAISGESTION FROM F.FRAISGESTIONASSO,W_Cle THEN
         DELETE F.FRAISGESTIONASSO,W_Cle
      END
   REPEAT


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

   READ ENR_TEMPO FROM F.TEMPO,"ARCHIVEBORDCAISSE":W_User ELSE ENR_TEMPO=""
   READ ENR_PARAMBORDORGCHG FROM F.PARAMBORDORGCHG,"1" ELSE ENR_PARAMBORDORGCHG=""
   READ ENR_TEMPOREQUETE FROM F.TEMPO,"REQUETEFACTURORG":W_User ELSE ENR_TEMPOREQUETE=""

   l=1
   W_TempFact=ENR_TEMPOREQUETE<1>
   LOOP 
      W_Field=FIELD(W_TempFact,"|",l)
   WHILE W_Field # "" DO
      W_RequeteFacturOrg<l>=W_Field
      l=l+1
   REPEAT

   j=1
   l=1
   READ ENR_FACTURORG FROM F.FACTURORG,W_RequeteFacturOrg<l> ELSE ENR_FACTURORG=""
   W_SauveOrga=W_RequeteFacturOrg<l>[1,3]
   READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_RequeteFacturOrg<l>[5,5] ELSE ENR_CIVILAIDE=""
   W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
   W_SauveNumFact = ENR_FACTURORG<9>
   W_SauvePeriode=W_RequeteFacturOrg<l>[13,6]

   * Entete
   READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""
   GOSUB 10

   IF W_RequeteFacturOrg<l>[1,3] # "000" THEN
      READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""
      IF ENR_ORGPRISECHARGE<39> # "M" THEN
         GOSUB 60
         GOSUB 70
      END ELSE
         W_TotalMontant=0
         W_TotalHres=0
         GOSUB 510
         GOSUB 520
      END
   END ELSE
      W_TotalMontant=0
      W_TotalHres=0
      GOSUB 610
      GOSUB 620
      W_SauveNumFact=ENR_FACTURORG<9>
   END

   W_CountFacturOrg=DCOUNT(W_RequeteFacturOrg,CHAR(254))

   FOR l = 2 TO W_CountFacturOrg
      READ ENR_FACTURORG FROM F.FACTURORG,W_RequeteFacturOrg<l> ELSE ENR_FACTURORG=""

      * Rupture sur organisme
      IF W_SauveOrga # W_RequeteFacturOrg<l>[1,3] THEN
*         WRITE ENR_FRAISGESTION ON F.FRAISGESTIONASSO,W_Assoc:W_SauveSecteur:W_SauveOrga:W_PeriodeTrait
*         ENR_FRAISGESTION=""
         W_Rupture="VRAI"
         W_SauveOrga = W_RequeteFacturOrg<l>[1,3]
         READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_RequeteFacturOrg<l>[5,5] ELSE ENR_CIVILAIDE=""

         IF W_RequeteFacturOrg<l-1>[1,3] # "000" THEN

            IF ENR_ORGPRISECHARGE<39> # "M" THEN

               GOSUB 30
               GOSUB 40
               W_Cle = W_Assoc:W_RequeteFacturOrg<l-1>[4,1]:W_RequeteFacturOrg<l-1>[1,3]:W_PeriodeTrait:W_SauveNumFact:W_SauveSecteur
               WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
               ENR_ARCHIVEBORDCAISSE=""
               ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
               j=j+1
               READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""
         W_SauveNumFact = ENR_FACTURORG<9>
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
         W_SauvePeriode=W_RequeteFacturOrg<l>[13,6]
               GOSUB 10
               IF W_RequeteFacturOrg<l>[1,3] # "000" THEN               
                  IF ENR_ORGPRISECHARGE<39> # "M" THEN
                     GOSUB 60
                     GOSUB 70
                  END ELSE
                     W_TotalMontant=0
                     W_TotalHres=0
                     GOSUB 510
                     GOSUB 520
                  END
               END ELSE
                  W_TotalMontant=0
                  W_TotalHres=0
                  GOSUB 610
                  GOSUB 620
               END

            END ELSE

               W_Rang=W_Rang+1
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#4")
               W_Rang=W_Rang+1
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;W_TotalHres)
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;W_TotalMontant)

               W_Rang = W_Rang+1
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#5")
               W_Rang=W_Rang+1
               W_Date = OCONV(DATE(), "D")
               GOSUB 300
               W_Date = W_Date[1,3]:W_Mois:" ":W_Date[8,4]
               W_Temp = ENR_ASSOCIATION<9>:", le ":W_Date
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)

               W_Cle = W_Assoc:W_RequeteFacturOrg<l-1>[4,1]:W_RequeteFacturOrg<l-1>[1,3]:W_PeriodeTrait:W_SauveNumFact:W_SauveSecteur
               WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
               ENR_ARCHIVEBORDCAISSE=""
               ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
               j=j+1
               READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""
         W_SauveNumFact = ENR_FACTURORG<9>
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
         W_SauvePeriode=W_RequeteFacturOrg<l>[13,6]              
               GOSUB 10
               IF W_RequeteFacturOrg<l>[1,3] # "000" THEN               
                  IF ENR_ORGPRISECHARGE<39> # "M" THEN
                     GOSUB 60
                     GOSUB 70
                  END ELSE
                     W_TotalMontant=0
                     W_TotalHres=0
                     GOSUB 510
                     GOSUB 520
                  END
               END ELSE
                  W_TotalMontant=0
                  W_TotalHres=0
                  GOSUB 610
                  GOSUB 620
               END

            END

         END ELSE

            W_Rang=W_Rang+1
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#4")
            W_Rang=W_Rang+1
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;W_TotalHres)
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;W_TotalMontant)

            W_Rang = W_Rang+1
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#5")
            W_Rang=W_Rang+1
            W_Date = OCONV(DATE(), "D")
            GOSUB 300
            W_Date = W_Date[1,3]:W_Mois:" ":W_Date[8,4]
            W_Temp = ENR_ASSOCIATION<9>:", le ":W_Date
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)

            W_Cle = W_Assoc:W_RequeteFacturOrg<l-1>[4,1]:W_RequeteFacturOrg<l-1>[1,3]:W_PeriodeTrait:W_SauveNumFact:W_SauveSecteur
            WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
            ENR_ARCHIVEBORDCAISSE=""
            ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
            j=j+1
            READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""
         W_SauveNumFact = ENR_FACTURORG<9>
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
         W_SauvePeriode=W_RequeteFacturOrg<l>[13,6]
            GOSUB 10
            IF W_RequeteFacturOrg<l>[1,3] # "000" THEN               
               IF ENR_ORGPRISECHARGE<39> # "M" THEN
                  GOSUB 60
                  GOSUB 70
               END ELSE
                  W_TotalMontant=0
                  W_TotalHres=0
                  GOSUB 510
                  GOSUB 520
               END
            END ELSE
               W_TotalMontant=0
               W_TotalHres=0
               GOSUB 610
               GOSUB 620
            END

         END
         W_SauveNumFact = ENR_FACTURORG<9>
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
         W_SauvePeriode=W_RequeteFacturOrg<l>[13,6]
      END

      * Rupture sur secteur
      READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_RequeteFacturOrg<l>[5,5] ELSE ENR_CIVILAIDE=""
      IF W_SauveSecteur # ENR_CIVILAIDE<40>[1,3] THEN
*         WRITE ENR_FRAISGESTION ON F.FRAISGESTIONASSO,W_Assoc:W_SauveSecteur:W_SauveOrga:W_PeriodeTrait
*         ENR_FRAISGESTION=""
         W_Rupture="VRAI"
         W_SauveOrga = W_RequeteFacturOrg<l>[1,3]

         IF W_RequeteFacturOrg<l-1>[1,3] # "000" THEN

            IF ENR_ORGPRISECHARGE<39> # "M" THEN

               GOSUB 30
               GOSUB 40
               W_Cle = W_Assoc:W_RequeteFacturOrg<l-1>[4,1]:W_RequeteFacturOrg<l-1>[1,3]:W_PeriodeTrait:W_SauveNumFact:W_SauveSecteur
               WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
               ENR_ARCHIVEBORDCAISSE=""
               ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
               j=j+1
               READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""

         W_SauveNumFact = ENR_FACTURORG<9>
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
         W_SauvePeriode=W_RequeteFacturOrg<l>[13,6]

               GOSUB 10
               IF W_RequeteFacturOrg<l>[1,3] # "000" THEN               
                  IF ENR_ORGPRISECHARGE<39> # "M" THEN
                     GOSUB 60
                     GOSUB 70
                  END ELSE
                     W_TotalMontant=0
                     W_TotalHres=0
                     GOSUB 510
                     GOSUB 520
                  END
               END ELSE
                  W_TotalMontant=0
                  W_TotalHres=0
                  GOSUB 610
                  GOSUB 620
               END

            END ELSE

               W_Rang=W_Rang+1
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#4")
               W_Rang=W_Rang+1
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;W_TotalHres)
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;W_TotalMontant)

               W_Rang = W_Rang+1
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#5")
               W_Rang=W_Rang+1
               W_Date = OCONV(DATE(), "D")
               GOSUB 300
               W_Date = W_Date[1,3]:W_Mois:" ":W_Date[8,4]
               W_Temp = ENR_ASSOCIATION<9>:", le ":W_Date
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)

               W_Cle = W_Assoc:W_RequeteFacturOrg<l-1>[4,1]:W_RequeteFacturOrg<l-1>[1,3]:W_PeriodeTrait:W_SauveNumFact:W_SauveSecteur
               WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
               ENR_ARCHIVEBORDCAISSE=""
               ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
               j=j+1
               READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""
         W_SauveNumFact = ENR_FACTURORG<9>
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
         W_SauvePeriode=W_RequeteFacturOrg<l>[13,6]
               GOSUB 10
               IF W_RequeteFacturOrg<l>[1,3] # "000" THEN               
                  IF ENR_ORGPRISECHARGE<39> # "M" THEN
                     GOSUB 60
                     GOSUB 70
                  END ELSE
                     W_TotalMontant=0
                     W_TotalHres=0
                     GOSUB 510
                     GOSUB 520
                  END
               END ELSE
                  W_TotalMontant=0
                  W_TotalHres=0
                  GOSUB 610
                  GOSUB 620
               END

            END

         END ELSE

            W_Rang=W_Rang+1
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#4")
            W_Rang=W_Rang+1
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;W_TotalHres)
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;W_TotalMontant)

            W_Rang = W_Rang+1
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#5")
            W_Rang=W_Rang+1
            W_Date = OCONV(DATE(), "D")
            GOSUB 300
            W_Date = W_Date[1,3]:W_Mois:" ":W_Date[8,4]
            W_Temp = ENR_ASSOCIATION<9>:", le ":W_Date
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)

            W_Cle = W_Assoc:W_RequeteFacturOrg<l-1>[4,1]:W_RequeteFacturOrg<l-1>[1,3]:W_PeriodeTrait:W_SauveNumFact:W_SauveSecteur
            WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
            ENR_ARCHIVEBORDCAISSE=""
            ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
            j=j+1
            READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""
         W_SauveNumFact = ENR_FACTURORG<9>
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
         W_SauvePeriode=W_RequeteFacturOrg<l>[13,6]
            GOSUB 10
            IF W_RequeteFacturOrg<l>[1,3] # "000" THEN               
               IF ENR_ORGPRISECHARGE<39> # "M" THEN
                  GOSUB 60
                  GOSUB 70
               END ELSE
                  W_TotalMontant=0
                  W_TotalHres=0
                  GOSUB 510
                  GOSUB 520
               END
            END ELSE
               W_TotalMontant=0
               W_TotalHres=0
               GOSUB 610
               GOSUB 620
            END

         END
         W_SauveNumFact = ENR_FACTURORG<9>
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
         W_SauvePeriode=W_RequeteFacturOrg<l>[13,6]

      END

      * Rupture sur numero de facture 
      * Rupture sur priode

      READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""
      IF W_SauvePeriode # W_RequeteFacturOrg<l>[13,6] AND ENR_ORGPRISECHARGE<49,1>="5" THEN
         W_Rupture="VRAI"
         W_SauveOrga = W_RequeteFacturOrg<l>[1,3]
         READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_RequeteFacturOrg<l>[5,5] ELSE ENR_CIVILAIDE=""

         IF W_RequeteFacturOrg<l-1>[1,3] # "000" THEN

            IF ENR_ORGPRISECHARGE<39> # "M" THEN

               GOSUB 30
               GOSUB 40
               W_Cle = W_Assoc:W_RequeteFacturOrg<l-1>[4,1]:W_RequeteFacturOrg<l-1>[1,3]:W_SauvePeriode:W_SauveNumFact:W_SauveSecteur
               WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
               ENR_ARCHIVEBORDCAISSE=""
               ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
               j=j+1
               READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""
         W_SauveNumFact = ENR_FACTURORG<9>
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
         W_SauvePeriode=W_RequeteFacturOrg<l>[13,6]
               GOSUB 10
               IF W_RequeteFacturOrg<l>[1,3] # "000" THEN               
                  IF ENR_ORGPRISECHARGE<39> # "M" THEN
                     GOSUB 60
                     GOSUB 70
                  END ELSE
                     W_TotalMontant=0
                     W_TotalHres=0
                     GOSUB 510
                     GOSUB 520
                  END
               END ELSE
                  W_TotalMontant=0
                  W_TotalHres=0
                  GOSUB 610
                  GOSUB 620
               END

            END ELSE

               W_Rang=W_Rang+1
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#4")
               W_Rang=W_Rang+1
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;W_TotalHres)
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;W_TotalMontant)

               W_Rang = W_Rang+1
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#5")
               W_Rang=W_Rang+1
               W_Date = OCONV(DATE(), "D")
               GOSUB 300
               W_Date = W_Date[1,3]:W_Mois:" ":W_Date[8,4]
               W_Temp = ENR_ASSOCIATION<9>:", le ":W_Date
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)

               W_Cle = W_Assoc:W_RequeteFacturOrg<l-1>[4,1]:W_RequeteFacturOrg<l-1>[1,3]:W_SauvePeriode:W_SauveNumFact:W_SauveSecteur
               WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
               ENR_ARCHIVEBORDCAISSE=""
               ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
               j=j+1
               READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""
         W_SauveNumFact = ENR_FACTURORG<9>
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
         W_SauvePeriode=W_RequeteFacturOrg<l>[13,6]
               GOSUB 10
               IF W_RequeteFacturOrg<l>[1,3] # "000" THEN               
                  IF ENR_ORGPRISECHARGE<39> # "M" THEN
                     GOSUB 60
                     GOSUB 70
                  END ELSE
                     W_TotalMontant=0
                     W_TotalHres=0
                     GOSUB 510
                     GOSUB 520
                  END
               END ELSE
                  W_TotalMontant=0
                  W_TotalHres=0
                  GOSUB 610
                  GOSUB 620
               END

            END

         END ELSE

            W_Rang=W_Rang+1
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#4")
            W_Rang=W_Rang+1
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;W_TotalHres)
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;W_TotalMontant)

            W_Rang = W_Rang+1
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#5")
            W_Rang=W_Rang+1
            W_Date = OCONV(DATE(), "D")
            GOSUB 300
            W_Date = W_Date[1,3]:W_Mois:" ":W_Date[8,4]
            W_Temp = ENR_ASSOCIATION<9>:", le ":W_Date
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)

            W_Cle = W_Assoc:W_RequeteFacturOrg<l-1>[4,1]:W_RequeteFacturOrg<l-1>[1,3]:W_SauvePeriode:W_SauveNumFact:W_SauveSecteur
            WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
            ENR_ARCHIVEBORDCAISSE=""
            ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
            j=j+1
            READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""
         W_SauveNumFact = ENR_FACTURORG<9>
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
         W_SauvePeriode=W_RequeteFacturOrg<l>[13,6]
            GOSUB 10
            IF W_RequeteFacturOrg<l>[1,3] # "000" THEN               
               IF ENR_ORGPRISECHARGE<39> # "M" THEN
                  GOSUB 60
                  GOSUB 70
               END ELSE
                  W_TotalMontant=0
                  W_TotalHres=0
                  GOSUB 510
                  GOSUB 520
               END
            END ELSE
               W_TotalMontant=0
               W_TotalHres=0
               GOSUB 610
               GOSUB 620
            END

         END
         W_SauveNumFact = ENR_FACTURORG<9>
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
         W_SauvePeriode=W_RequeteFacturOrg<l>[13,6]

      END ELSE

         IF W_Rupture # "VRAI" THEN
 
            IF W_RequeteFacturOrg<l-1>[1,3] # "000" THEN
               READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""

               IF ENR_ORGPRISECHARGE<39> = "R" OR ENR_ORGPRISECHARGE<39> = "I" THEN
		      GOSUB 70
               END ELSE
	            IF ENR_ORGPRISECHARGE<39> = "M" THEN
                     IF W_SauvePeriode = W_RequeteFacturOrg<l>[13,6] THEN
                        GOSUB 520
                     END
                  END
               END
            END ELSE
               GOSUB 620
            END 
         END

      END
      W_Rupture="FAUX"

   NEXT l

*   WRITE ENR_FRAISGESTION ON F.FRAISGESTIONASSO,W_Assoc:W_SauveSecteur:W_SauveOrga:W_PeriodeTrait
*   ENR_FRAISGESTION=""

   IF W_RequeteFacturOrg<l-1>[1,3] # "000" THEN
      IF ENR_ORGPRISECHARGE<39> # "M" THEN
         GOSUB 30
         GOSUB 40
      END ELSE
         W_Rang=W_Rang+1
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#4")
         W_Rang=W_Rang+1
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;W_TotalHres)
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;W_TotalMontant)

         W_Rang = W_Rang+1
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#5")
         W_Rang=W_Rang+1
         W_Date = OCONV(DATE(), "D")
         GOSUB 300
         W_Date = W_Date[1,3]:W_Mois:" ":W_Date[8,4]
         W_Temp = ENR_ASSOCIATION<9>:", le ":W_Date
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)
      END

   END ELSE

      W_Rang=W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#4")
      W_Rang=W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;W_TotalHres)
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;W_TotalMontant)

      W_Rang = W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#5")
      W_Rang=W_Rang+1
      W_Date = OCONV(DATE(), "D")
      GOSUB 300
      W_Date = W_Date[1,3]:W_Mois:" ":W_Date[8,4]
      W_Temp = ENR_ASSOCIATION<9>:", le ":W_Date
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)
   END

   W_Cle = W_Assoc:W_RequeteFacturOrg<l-1>[4,1]:W_RequeteFacturOrg<l-1>[1,3]:W_PeriodeTrait:W_SauveNumFact:W_SauveSecteur
   WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
   ENR_ARCHIVEBORDCAISSE=""
   ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)

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

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

STOP

*****************************************************************************
*  MAJ du fichier ARCHIVEBORDCAISSE - Entete

10

   W_Matrice=""
   W_TotalTMR=""

   * ENTETE
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,1;"#1")

   READ ENR_ASSOCIATION FROM F.ASSOCIATION,"001" ELSE ENR_ASSOCIATION=""
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,2;ENR_ASSOCIATION<2>)

   W_Rang = 2
   IF ENR_ASSOCIATION<3> # "" THEN
      W_Adresse = ENR_ASSOCIATION<3>:" "
   END
   IF ENR_ASSOCIATION<4> # "" THEN
      W_Adresse = W_Adresse:ENR_ASSOCIATION<4>:" "
   END
   IF ENR_ASSOCIATION<5> # "" THEN
      W_Adresse = W_Adresse:ENR_ASSOCIATION<5>:" "
   END
   IF ENR_ASSOCIATION<6> # "" THEN
      W_Adresse = W_Adresse:ENR_ASSOCIATION<6>:" "
   END
   IF W_Adresse # "" THEN
      W_Rang = W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Adresse)
   END
   IF ENR_ASSOCIATION<7> # "" THEN
      W_Rang = W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;ENR_ASSOCIATION<7>)
   END
   W_Rang = W_Rang+1
   W_TempAdr = ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>
   IF ENR_ASSOCIATION<10>="1" THEN
      W_TempAdr = W_TempAdr:" Cedex ":ENR_ASSOCIATION<11>
   END
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_TempAdr)
   
   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"%")
   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"ETAT DE FACTURATION PAR ASSOCIATION")

   W_Rang = W_Rang+1
   READ ENR_FEDEASSOC FROM F.FEDEASSOC,W_Assoc ELSE ENR_FEDEASSOC=""
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;"Association : ":W_Assoc:" ":ENR_FEDEASSOC<1>)
   
   IF W_RequeteFacturOrg<l>[1,3] # "000" THEN
      READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;"Organisme             : ":W_RequeteFacturOrg<l>[1,3]:" ":ENR_ORGPRISECHARGE<1>)
   END ELSE
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;"Organisme             : ":"TAUX PRESTATION")
   END

   W_Rang = W_Rang+1

   W_Adresse=""
   IF ENR_FEDEASSOC<3> # "" THEN
      W_Adresse = ENR_FEDEASSOC<3>:" "
   END
   IF ENR_FEDEASSOC<4> # "" THEN
      W_Adresse = W_Adresse:ENR_FEDEASSOC<4>:" "
   END
   IF ENR_FEDEASSOC<5> # "" THEN
      W_Adresse = W_Adresse:ENR_FEDEASSOC<5>:" "
   END
   IF ENR_FEDEASSOC<6> # "" THEN
      W_Adresse = W_Adresse:ENR_FEDEASSOC<6>:" "
   END
   IF W_Adresse # "" THEN
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;W_Adresse)
   END

   W_Adresse=""
   IF ENR_ORGPRISECHARGE<3> # "" THEN
      W_Adresse = ENR_ORGPRISECHARGE<3>:" "
   END
   IF ENR_ORGPRISECHARGE<4> # "" THEN
      W_Adresse = W_Adresse:ENR_ORGPRISECHARGE<4>:" "
   END
   IF ENR_ORGPRISECHARGE<5> # "" THEN
      W_Adresse = W_Adresse:ENR_ORGPRISECHARGE<5>:" "
   END
   IF ENR_ORGPRISECHARGE<6> # "" THEN
      W_Adresse = W_Adresse:ENR_ORGPRISECHARGE<6>:" "
   END
   IF W_Adresse # "" THEN
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;W_Adresse)
   END

   W_Rang = W_Rang+1
   IF ENR_FEDEASSOC<7> # "" THEN
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;ENR_FEDEASSOC<7>)
   END
   IF ENR_ORGPRISECHARGE<7> # "" THEN
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;ENR_ORGPRISECHARGE<7>)
   END

   W_Rang = W_Rang+1
   W_TempAdr=""
   W_TempAdr = ENR_FEDEASSOC<8>:" ":ENR_FEDEASSOC<9>
   IF ENR_FEDEASSOC<10>="1" THEN
      W_TempAdr = W_TempAdr:" Cedex ":ENR_FEDEASSOC<11>
   END
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;W_TempAdr)

   W_TempAdr=""
   W_TempAdr = ENR_ORGPRISECHARGE<8>:" ":ENR_ORGPRISECHARGE<9>
   IF ENR_ORGPRISECHARGE<10>="1" THEN
      W_TempAdr = W_TempAdr:" Cedex ":ENR_ORGPRISECHARGE<11>
   END
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;W_TempAdr)

   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"%")

   READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_RequeteFacturOrg<l>[5,5] ELSE ENR_CIVILAIDE=""
   READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEUR=""

   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;"Secteur     : ":ENR_SECTEUR<1>)

   W_Temp = ICONV("01/":W_PeriodeTrait[5,2]:"/":W_PeriodeTrait[1,4],"D4/")
   W_Date = OCONV(W_Temp, "D")
   GOSUB 300
   W_Date = W_Mois:" ":W_Date[8,4]

   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;"Periode de facturation : ":OCONV(W_Date,"MCU"))

   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"%")

RETURN

*****************************************************************************
*  MAJ du fichier ARCHIVEBORDCAISSE - Fin tableau bordereau

30

   W_CountDetail=DCOUNT(ENR_ORGPRISECHARGE<40>,CHAR(253))
   W_Total="FAUX"
   W_SousTotal="FAUX"
   W_Passe="FAUX"

   FOR i=1 TO W_CountDetail
      IF W_Matrice<i> # "" AND W_Matrice<i> # "0" THEN
         W_Total="VRAI"
         IF W_Passe="FAUX" THEN
            W_SauveX=i
            W_Passe="VRAI"
         END
      END
      IF W_SousMatrice<i> # "" AND W_SousMatrice<i> # "0" THEN
         W_SousTotal="VRAI"
      END
   NEXT i

RETURN

*****************************************************************************
*  MAJ du fichier ARCHIVEBORDCAISSE - Fin page bordereau

40

   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#5")

   W_CountDetail=DCOUNT(ENR_ORGPRISECHARGE<40>,CHAR(253))
   W_Premier="FAUX"

   IF W_Total="VRAI" THEN
      W_Rang = W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"%")
      FOR i=W_SauveX TO W_CountDetail
         IF W_Premier="FAUX" THEN
            W_Rang=W_Rang+1
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,i;"Total : ")
            W_Premier="VRAI"
         END
         IF W_TotalTMR<i> # "" AND W_TotalTMR<i> # "0" THEN
            W_Print=W_TotalTMR<i> 
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,i+1;W_Print)
         END
      NEXT i
   END

   W_Matrice=""

   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#6")

   W_Rang=W_Rang+1
   W_Date = OCONV(DATE(), "D")
   GOSUB 300
   W_Date = W_Date[1,3]:W_Mois:" ":W_Date[8,4]
   W_Temp = ENR_ASSOCIATION<9>:", le ":W_Date
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)

RETURN

*****************************************************************************
*  MAJ du fichier ARCHIVEBORDCAISSE - entete tableau bordereau facture

60

   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#2")

   W_CountDetail=DCOUNT(ENR_ORGPRISECHARGE<40>,CHAR(253))
   IF W_CountDetail # 0 THEN
      W_Rang = W_Rang+1
   END
   FOR k=1 TO W_CountDetail
      W_Temp=ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,k>,3>:SPACE(ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,k>,2>-LEN(ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,k>,3>))
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,k;W_Temp)
   NEXT k
   IF W_CountDetail # 0 THEN
      W_Rang = W_Rang+1
   END
   FOR k=1 TO W_CountDetail
      W_Temp=ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,k>,4>:SPACE(ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,k>,2>-LEN(ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,k>,4>))
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,k;W_Temp)
   NEXT k

   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#3")

RETURN

*****************************************************************************
*  MAJ du fichier ARCHIVEBORDCAISSE - Imprime dtail bordereau facture

70

   W_Att5 = "FAUX"
   W_ColDimJfPasse="FAUX"
   W_TotalDimJf="FAUX"
   ENR_FRAISGESTION=""

   READ ENR_FRAISGESTION FROM F.FRAISGESTIONASSO,W_Assoc:W_SauveSecteur:W_RequeteFacturOrg<l>[1,3]:W_PeriodeTrait ELSE ENR_FRAISGESTION=""

   * traite les MV en att. 1  4
   W_CountFact=DCOUNT(ENR_FACTURORG<1>,CHAR(253))

   FOR k=1 TO W_CountFact
      m=1
      LOOP 
      WHILE ENR_FRAISGESTION<1,m> # "" AND ENR_FRAISGESTION<1,m> < W_RequeteFacturOrg<l>[13,6] DO
         m=m+1
      REPEAT
     
      IF ENR_FRAISGESTION<1,m>=W_RequeteFacturOrg<l>[13,6] THEN
         ENR_FRAISGESTION<2,m>=ENR_FRAISGESTION<2,m> + ENR_FACTURORG<1,k>
         ENR_FRAISGESTION<3,m>=ENR_FRAISGESTION<3,m> + ENR_FACTURORG<4,k>
         ENR_FRAISGESTION<7,m>=ENR_FRAISGESTION<7,m> + INT((ENR_FACTURORG<1,k> * ENR_FACTURORG<2,k>)/100 + (1/2))
      END ELSE
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,1,m;W_RequeteFacturOrg<l>[13,6])
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,2,m;ENR_FACTURORG<1,k>)
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,3,m;ENR_FACTURORG<4,k>)
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,7,m;INT((ENR_FACTURORG<1,k> * ENR_FACTURORG<2,k>)/100 + (1/2)))
      END


      W_Rang=W_Rang+1
      W_CountDetail=DCOUNT(ENR_ORGPRISECHARGE<40>,CHAR(253))

         * traite tous les paramtres d'dition de bordereau
      FOR i=1 TO W_CountDetail
         GOSUB 200
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,i;W_Temp)
      NEXT i
   NEXT k


   * Traite les att. 5  8
   IF ENR_FACTURORG<5> # "" THEN

      m=1
      LOOP 
      WHILE ENR_FRAISGESTION<4,m> # "" AND ENR_FRAISGESTION<4,m> < W_RequeteFacturOrg<l>[13,6] DO
         m=m+1
      REPEAT
      IF ENR_FRAISGESTION<4,m>=W_RequeteFacturOrg<l>[13,6] THEN
         ENR_FRAISGESTION<5,m>=ENR_FRAISGESTION<5,m> + ENR_FACTURORG<5>
         ENR_FRAISGESTION<6,m>=ENR_FRAISGESTION<6,m> + ENR_FACTURORG<8>
         ENR_FRAISGESTION<8,m>=ENR_FRAISGESTION<8,m> + INT((ENR_FACTURORG<5> * ENR_FACTURORG<6>)/100 + (1/2))
      END ELSE
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,4,m;W_RequeteFacturOrg<l>[13,6])
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,5,m;ENR_FACTURORG<5>)
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,6,m;ENR_FACTURORG<8>)
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,8,m;INT((ENR_FACTURORG<5> * ENR_FACTURORG<6>)/100 + (1/2)))
      END

      IF W_ColDimJfPasse="FAUX" THEN

         W_Rang=W_Rang+1
         W_CountDetail=DCOUNT(ENR_ORGPRISECHARGE<40>,CHAR(253))
         W_Att5="VRAI"
         FOR i=1 TO W_CountDetail
            k=1
            GOSUB 200
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,i;W_Temp)
         NEXT i 

      END
   END


   WRITE ENR_FRAISGESTION ON F.FRAISGESTIONASSO,W_Assoc:W_SauveSecteur:W_RequeteFacturOrg<l>[1,3]:W_PeriodeTrait

RETURN

*****************************************************************************
*  Recherche information paramtrage

200

   W_FacturOrg="FAUX"
   W_Fichier = ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,5>
   W_Att=""
   W_Posit=0
   W_Temp6=""
   W_Temp7=""
   W_Temp=""
   W_Div=""
   W_Numerique="FAUX"
   W_SauveAtt=""
   W_SauveTemp6=""

   BEGIN CASE
      CASE W_Fichier="FACTURORG"
         W_Cle = W_RequeteFacturOrg<l>
         W_TabDyn=ENR_FACTURORG
         W_FacturOrg="VRAI"
      CASE W_Fichier="ACCORD"
         W_Cle = W_RequeteFacturOrg<l>[5,8]
         READ ENR_ACCORD FROM F.ACCORD,W_Cle ELSE ENR_ACCORD="" 
         W_TabDyn=ENR_ACCORD
      CASE W_Fichier="CIVILAIDE"
         W_Cle = W_RequeteFacturOrg<l>[5,5]
         READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_Cle ELSE ENR_CIVILAIDE="" 
         W_TabDyn=ENR_CIVILAIDE
      CASE W_Fichier="ORGPRISECHARGE"
         W_Cle = W_RequeteFacturOrg<l>[1,3]
         READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_Cle ELSE ENR_ORGPRISECHARGE="" 
         W_TabDyn=ENR_ORGPRISECHARGE

      CASE W_Fichier="SECTEUR"
         W_Cle = W_RequeteFacturOrg<l>[5,5]
         READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_Cle ELSE ENR_CIVILAIDE="" 
         W_Cle = ENR_CIVILAIDE<40>[1,3]
         READ ENR_SECTEUR FROM F.SECTEUR,W_Cle ELSE ENR_SECTEUR="" 
         W_TabDyn=ENR_SECTEUR
   END CASE
   
   W_Att=ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,6>
   IF INDEX(W_Att,"*",1) # 0 THEN
      W_Posit=INDEX(W_Att,"*",1)
      IF W_FacturOrg="VRAI" AND W_Att5="VRAI" AND W_Att[1,W_Posit-1] < 5 THEN
         W_Temp6=W_TabDyn<W_Att[1,W_Posit-1]+4> * W_TabDyn<W_Att[W_Posit+1]+4>
      END ELSE
         W_Temp6=W_TabDyn<W_Att[1,W_Posit-1]> * W_TabDyn<W_Att[W_Posit+1]>
      END
   END ELSE
      IF INDEX(W_Att,"-",1) # 0 THEN
         W_Posit=INDEX(W_Att,"-",1)
         IF W_FacturOrg="VRAI" AND W_Att5="VRAI" AND W_Att[1,W_Posit-1] < 5 THEN
            W_Temp6=W_TabDyn<W_Att[1,W_Posit-1]+4> - W_TabDyn<W_Att[W_Posit+1]+4>
         END ELSE
            W_Temp6=W_TabDyn<W_Att[1,W_Posit-1]> - W_TabDyn<W_Att[W_Posit+1]>
         END
      END ELSE
         IF INDEX(W_Att,"/",1) # 0 THEN
            W_Posit=INDEX(W_Att,"/",1)
            IF W_FacturOrg="VRAI" AND W_Att5="VRAI" AND W_Att[1,W_Posit-1] < 5 THEN
               W_Temp6=W_TabDyn<W_Att[1,W_Posit-1]+4> / W_TabDyn<W_Att[W_Posit+1]+4>
            END ELSE
               W_Temp6=W_TabDyn<W_Att[1,W_Posit-1]> / W_TabDyn<W_Att[W_Posit+1]>
            END
         END ELSE
            IF INDEX(W_Att,"+",1) # 0 THEN
               W_Posit=INDEX(W_Att,"+",1)
               IF W_FacturOrg="VRAI" AND W_Att5="VRAI" AND W_Att[1,W_Posit-1] < 5 THEN
                  W_Temp6=W_TabDyn<W_Att[1,W_Posit-1]+4> / W_TabDyn<W_Att[W_Posit+1]+4>
               END ELSE
                  W_Temp6=W_TabDyn<W_Att[1,W_Posit-1]> / W_TabDyn<W_Att[W_Posit+1]>
               END
	    END ELSE
               IF W_Att = "0" THEN
                  W_Temp6 = W_Cle
               END ELSE
                  IF W_FacturOrg="VRAI" AND W_Att5="VRAI" AND W_Att < "5" THEN
                     W_Temp6=W_TabDyn<W_Att+4>
                  END ELSE
                     IF W_ColDimJfPasse="VRAI" AND W_FacturOrg="VRAI" AND W_Att="4" AND W_TotalDimJf="FAUX" THEN
                        W_SauveTemp6=W_TabDyn<W_Att+4>
                        W_TotalDimJf="VRAI"
                     END ELSE
                        W_SauveTemp6=""
                     END

                     W_Temp6=W_TabDyn<W_Att>
                     IF W_Att = "5" THEN
                        W_ColDimJfPasse="VRAI"
                     END
                  END
	       END
            END
         END
      END
   END

   W_SauveAtt=W_Att
   W_Obj = W_Temp6

   * type de l'attribut
   W_Att=ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,7>
   BEGIN CASE
      CASE W_Att="S"
         W_Temp7 = W_Temp6
      CASE W_Att="MVD"
         W_Temp7=W_Obj<DCOUNT(W_Obj,CHAR(254))>
      CASE W_Att="MVC"
         W_Temp7=W_Obj<1,k>
         IF W_SauveTemp6 # "" THEN
            W_Temp7=W_Temp7+W_SauveTemp6<1,k>
         END
      CASE W_Att="MVAD"
         W_Temp7=W_Obj<DCOUNT(W_Obj,CHAR(254))-1>
         IF DCOUNT(W_Obj,CHAR(254))-1 = "0" OR DCOUNT(W_Obj,CHAR(254))-1 = "-1" THEN
            W_Temp7=0
	 END
      CASE W_Att[1,3]="MVP"
         z=1
         LOOP
            W_PeriodeDate=OCONV(W_TabDyn<W_Att[4,LEN(W_Att)-3],z>,"D4/")
            W_PeriodeDate=W_PeriodeDate[7,4]:W_PeriodeDate[4,2]
*            W_PeriodeDate1=OCONV(W_TabDyn<W_Att[4,LEN(W_Att)-3],z+1>,"D4/")
*            W_PeriodeDate1=W_PeriodeDate1[7,4]:W_PeriodeDate1[4,2]
         UNTIL W_RequeteFacturOrg<l>[13,6] >= W_PeriodeDate OR W_PeriodeDate=""
            z=z+1
         REPEAT
         IF W_TabDyn<W_Att[4,LEN(W_Att)-3],z> # "" THEN
            W_Temp7=W_Obj<1,z>
         END
      CASE W_Att[1,6]="TABLES"
         READ ENR_TABLES FROM F.TABLES,W_Att[7,LEN(W_Att)-6] ELSE ENR_TABLES="" 
         z=1
         LOOP
         UNTIL ENR_TABLES<2,z>=W_Temp6 OR ENR_TABLES<2,z>=""
            z=z+1
         REPEAT
         IF ENR_TABLES<2,z> # "" THEN
            W_Temp7=ENR_TABLES<3,z>
         END
      CASE W_Att[1,2] = "MV" AND W_Att[3,1] # "D" AND W_Att[3,1] # "P" AND W_Att[3,1] # "C" AND W_Att[3,1] # "A"
         W_Temp7 = W_Obj<W_Att[3,9]>
   END CASE

   W_Att=ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,8>
   BEGIN CASE
      CASE W_Att="D2"
         W_Temp=OCONV(W_Temp7,"D2")
      CASE W_Att="D2/"
         W_Temp=OCONV(W_Temp7,"D2/")
      CASE W_Att="D4"
         W_Temp=OCONV(W_Temp7,"D4")
      CASE W_Att="D4/"
         W_Temp=OCONV(W_Temp7,"D4/")
      CASE W_Att="D24"
         W_Temp7=OCONV(W_Temp7,"D4")
         W_Temp=W_Temp7[3,6]
      CASE W_Att="D24/"
         W_Temp7=OCONV(W_Temp7,"D4/")
         W_Temp=W_Temp7[4,7]
      CASE W_Att="D22"
         W_Temp7=OCONV(W_Temp7,"D2")
         W_Temp=W_Temp7[3,4]
      CASE W_Att="D22/"
         W_Temp7=OCONV(W_Temp7,"D2/")
         W_Temp=W_Temp7[4,5]
      CASE W_Att=""
         W_Temp=W_Temp7
      CASE W_Att[1,2]="MR" AND INDEX(W_Att,",",1) = 0 
         W_Div=1
         FOR z=1 TO W_Att[3,1]
            W_Div=W_Div:"0"
         NEXT z
         IF W_Temp7 = "" THEN
            W_Temp7=0
         END
         W_Temp=W_Temp7/W_Div
         W_Numerique="VRAI"
      CASE W_Att[1,2]="MR" AND INDEX(W_Att,",",1) # 0 
         IF W_Temp7 # "" THEN
            W_Format = ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,2>
            W_Str="R":W_Att[3,1]:W_Att[3,1]+4:",(#":W_Format:")"
            W_Temp=W_Temp7 W_Str
         END
         W_Numerique="VRAI"
      CASE W_Att[1,1] = "T" AND W_Att[2,1] # "M" AND W_Att[2,1] # "F" 
         W_Posit=INDEX(W_Att,",",1)
         W_Temp=W_Temp7[W_Att[2,W_Posit-2],W_Att[W_Posit+1,LEN(W_Att)-W_Posit]]
      CASE W_Att[1,3]="TMR" AND INDEX(W_Att,",",1)=0
         W_Div=1
         FOR z=1 TO W_Att[4,1]
            W_Div=W_Div:"0"
         NEXT z
         IF W_Temp7 = "" THEN
            W_Temp7=0
         END
         W_Temp=W_Temp7/W_Div
         IF W_Matrice<i>="" THEN
            W_Matrice<i>=0
         END
         W_Matrice=REPLACE(W_Matrice,i;W_Matrice<i>+W_Temp)
         W_TotalTMR<i> = W_Matrice<i>
         IF ENR_ORGPRISECHARGE<49,1>="1" THEN
            IF W_SousMatrice<i>="" THEN
               W_SousMatrice<i>=0
            END
            W_SousMatrice=REPLACE(W_SousMatrice,i;W_SousMatrice<i>+W_Temp)
            W_SousTotalSecteur<i>=W_SousMatrice<i>
         END
         W_Numerique="VRAI"
      CASE W_Att[1,3]="TMR" AND INDEX(W_Att,",",1)#0
         IF W_Temp7 = "" THEN
            W_Temp7=0
         END
         W_Temp=W_Temp7
         IF W_Matrice<i>="" THEN
            W_Matrice<i>=0
         END
         W_Matrice=REPLACE(W_Matrice,i;W_Matrice<i>+W_Temp)
         IF W_Temp # "" THEN W_Temp = 0
         W_Format = ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,2>
         W_Str="R":W_Att[4,1]:W_Att[4,1]+4:",(#":W_Format:")"
         W_Temp = W_Temp7 W_Str

         W_TotalTMR<i> = W_Matrice<i> W_Str
         IF ENR_ORGPRISECHARGE<49,1>="1" THEN
            IF W_SousMatrice<i>="" THEN
               W_SousMatrice<i>=0
            END
            W_SousMatrice=REPLACE(W_SousMatrice,i;W_SousMatrice<i>+W_Temp7)
            IF W_Temp # "" AND W_Temp # 0 THEN
               W_SousTotalSecteur<i> = W_SousMatrice<i> W_Str
            END   
         END
         IF W_Temp=0 THEN
            W_Temp=""
         END
         W_Numerique="VRAI"
      CASE W_Att[1,4]="TFMR" AND INDEX(W_Att,",",1)=0
         W_Div=1
         FOR z=1 TO W_Att[5,1]
            W_Div=W_Div:"0"
         NEXT z
         IF W_Temp7 = "" THEN
            W_Temp7=0
         END
         W_Temp=W_Temp7/W_Div
         IF W_Matrice<i>="" THEN
            W_Matrice<i>=0
         END
         W_Matrice=REPLACE(W_Matrice,i;W_Matrice<i>+W_Temp)
         IF ENR_ORGPRISECHARGE<49,1>="1" THEN
            IF W_SousMatrice<i>="" THEN
               W_SousMatrice<i>=0
            END
            W_SousMatrice=REPLACE(W_SousMatrice,i;W_SousMatrice<i>+W_Temp)
         END
         W_SousTotalSecteur<i>=W_SousMatrice<i>
         W_TotalTMR<i>=W_Matrice<i>/W_Div
         W_TotalTFMR=W_Matrice<i>/W_Div
         W_Numerique="VRAI"
      CASE W_Att[1,4]="TFMR" AND INDEX(W_Att,",",1)#0
         IF W_Temp7 = "" THEN
            W_Temp7=0
         END
         W_Temp=W_Temp7
         IF W_Matrice<i>="" THEN
            W_Matrice<i>=0
         END
         IF W_Temp = "" THEN W_Temp = 0

         W_Matrice=REPLACE(W_Matrice,i;W_Matrice<i>+W_Temp)
         W_Format = ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,2>
         W_Str="R":W_Att[5,1]:W_Att[5,1]+4:",(#":W_Format:")"
         W_Temp = W_Temp7 W_Str
         W_TotalTMR<i>=W_Matrice<i> W_Str
         W_TotalTFMR = W_Matrice<i> W_Str
         IF ENR_ORGPRISECHARGE<49,1>="1" THEN
            IF W_SousMatrice<i>="" THEN
               W_SousMatrice<i>=0
            END
            W_SousMatrice=REPLACE(W_SousMatrice,i;W_SousMatrice<i>+W_Temp7)
            IF W_Temp # "" AND W_Temp # 0 THEN
               W_SousTotalSecteur<i>=W_SousMatrice<i> W_Str
            END
         END
         IF W_Temp=0 THEN
            W_Temp=""
         END
         W_Numerique="VRAI"
   END CASE

   * Rcupre l'information avec la bonne longueur et le bon cadrage
   IF LEN(W_Temp) < ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,2> THEN
      IF W_Numerique= "FAUX" THEN
         W_Temp = W_Temp:SPACE(ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,2> - LEN(W_Temp))
      END ELSE
         W_Temp = SPACE(ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,2> - LEN(W_Temp)):W_Temp
      END
   END ELSE
      W_Temp=W_Temp[1,ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,2>]
   END

RETURN

*****************************************************************************
* Tables de correspondance des mois
300

   BEGIN CASE 
      CASE W_Date[4,3] = "Jan"
         W_Mois = "janvier"
      CASE W_Date[4,3] = "Feb"
         W_Mois = "fevrier"
      CASE W_Date[4,3] = "Mar"
         W_Mois = "mars"
      CASE W_Date[4,3] = "Apr"
         W_Mois = "avril"
      CASE W_Date[4,3] = "May"
         W_Mois = "mai"
      CASE W_Date[4,3] = "Jun"
         W_Mois = "juin"
      CASE W_Date[4,3] = "Jul"
         W_Mois = "juillet"
      CASE W_Date[4,3] = "Aug"
         W_Mois = "aout"
      CASE W_Date[4,3] = "Sep"
         W_Mois = "septembre"
      CASE W_Date[4,3] = "Oct"
         W_Mois = "octobre"
      CASE W_Date[4,3] = "Nov"
         W_Mois = "novembre"
      CASE W_Date[4,3] = "Dec"
         W_Mois = "decembre"
   END CASE

RETURN

*****************************************************************************
*  MAJ du fichier ARCHIVEBORDCAISSE - Entete Tableau bordereau MFP

510

   W_Rang=W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;"NOM")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;"NUMERO DOSSIER")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,3;"MOIS")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,4;"ORGANISME")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,5;"HEURES")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,6;"TAUX")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,7;"HEURES")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,8;"TOTAL")

   W_Rang=W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;"BENEFICIAIRE")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;"")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,3;"ENGAGE")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,4;"PAYEUR")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,5;"ENGAGEES")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,6;"")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,7;"EFFECT.")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,8;"")

   W_Rang=W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#3")
RETURN

*****************************************************************************
*  MAJ du fichier ARCHIVEBORDCAISSE - Edition bordereau MFP

520

   W_HreNormale="FAUX"
   ENR_FRAISGESTION = ""

   READ ENR_FRAISGESTION FROM F.FRAISGESTIONASSO,W_Assoc:W_SauveSecteur:W_RequeteFacturOrg<l>[1,3]:W_PeriodeTrait ELSE ENR_FRAISGESTION=""

   IF ENR_FACTURORG<3> # "" THEN
      m=1
      LOOP 
      WHILE ENR_FRAISGESTION<1,m> # "" AND ENR_FRAISGESTION<1,m> < W_RequeteFacturOrg<l>[13,6] DO
         m=m+1
      REPEAT
      IF ENR_FRAISGESTION<1,m>=W_RequeteFacturOrg<l>[13,6] THEN
         ENR_FRAISGESTION<2,m>=ENR_FRAISGESTION<2,m> + ENR_FACTURORG<1,1>
         ENR_FRAISGESTION<3,m>=ENR_FRAISGESTION<3,m> + ENR_FACTURORG<4,1>
         ENR_FRAISGESTION<7,m>=ENR_FRAISGESTION<7,m> + INT((ENR_FACTURORG<1,1> * ENR_FACTURORG<2,1>)/100 + (1/2))
      END ELSE
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,1,m;W_RequeteFacturOrg<l>[13,6])
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,2,m;ENR_FACTURORG<1,1>)
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,3,m;ENR_FACTURORG<4,1>)
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,7,m;INT((ENR_FACTURORG<1,1> * ENR_FACTURORG<2,1>)/100 + (1/2)))

      END
      ENR_FRAISGESTION<3,m>=ENR_FRAISGESTION<3,m> + ENR_FACTURORG<4,2>
      W_HreNormale="VRAI"
      GOSUB 530
   END

   IF ENR_FACTURORG<5> # "" THEN

      m=1
      LOOP 
      WHILE ENR_FRAISGESTION<4,m> # "" AND ENR_FRAISGESTION<4,m> < W_RequeteFacturOrg<l>[13,6] DO
         m=m+1
      REPEAT
      IF ENR_FRAISGESTION<4,m>=W_RequeteFacturOrg<l>[13,6] THEN
         ENR_FRAISGESTION<5,m>=ENR_FRAISGESTION<5,m> + ENR_FACTURORG<5>
         ENR_FRAISGESTION<6,m>=ENR_FRAISGESTION<6,m> + ENR_FACTURORG<8>
         ENR_FRAISGESTION<8,m>=ENR_FRAISGESTION<8,m> + INT((ENR_FACTURORG<5> * ENR_FACTURORG<6>)/100 + (1/2))
      END ELSE
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,4,m;W_RequeteFacturOrg<l>[13,6])
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,5,m;ENR_FACTURORG<5>)
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,6,m;ENR_FACTURORG<8>)
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,8,m;INT((ENR_FACTURORG<5> * ENR_FACTURORG<6>)/100 + (1/2)))
      END
      W_HreNormale="FAUX"
      GOSUB 530
   END

   WRITE ENR_FRAISGESTION ON F.FRAISGESTIONASSO,W_Assoc:W_SauveSecteur:W_RequeteFacturOrg<l>[1,3]:W_PeriodeTrait

RETURN

*****************************************************************************
*  MAJ du fichier ARCHIVEBORDCAISSE - Imprime detail MFP

530

   * 1re ligne dtail
   READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_RequeteFacturOrg<l,1>[5,5] ELSE ENR_CIVILAIDE=""
  
   * nom aid
   W_Rang=W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;ENR_CIVILAIDE<2>)

   * numro dossier
   READ ENR_ACCORD FROM F.ACCORD,W_RequeteFacturOrg<l,1>[5,8] ELSE ENR_ACCORD=""
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;ENR_ACCORD<2>)

   * mois engag
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,3;W_RequeteFacturOrg<l,1>[13,4]:"-":W_RequeteFacturOrg<l,1>[17,2])

   * sigle organisme
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,4;ENR_ORGPRISECHARGE<1>)

   * heures engages
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,5;ENR_ACCORD<9>)

   * taux
   IF W_HreNormale="VRAI" THEN
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,6;ENR_FACTURORG<3,1>)
      IF ENR_FACTURORG<3,1> = "" THEN
         W_Str=0
      END ELSE
         W_Str=ENR_FACTURORG<3,1>
      END
   END ELSE
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,6;ENR_FACTURORG<7,1>)
      IF ENR_FACTURORG<7,1> = "" THEN
         W_Str=0
      END ELSE
         W_Str=ENR_FACTURORG<7,1>
      END
   END

   * heures effectues
   IF W_HreNormale="VRAI" THEN
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,7;ENR_FACTURORG<1,1>)
      IF ENR_FACTURORG<1,1> = "" THEN
         ENR_FACTURORG<1,1>=0
      END
      W_TotalHres=W_TotalHres + ENR_FACTURORG<1,1>
   END ELSE
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,7;ENR_FACTURORG<5,1>)
      IF ENR_FACTURORG<5,1> = "" THEN
         ENR_FACTURORG<5,1>=0
      END
      W_TotalHres=W_TotalHres + ENR_FACTURORG<5,1>
   END

   * total
   IF W_HreNormale="VRAI" THEN
      W_Total=W_Str * ENR_FACTURORG<1,1>
   END ELSE
      W_Total=W_Str * ENR_FACTURORG<5,1>
   END
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,8;W_Total)
   W_TotalMontant=W_TotalMontant + W_Total 

   * 2me ligne dtail

   * prnom
   W_Rang=W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;ENR_CIVILAIDE<3>)

   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;"")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,3;"")

   IF W_HreNormale="VRAI" THEN

      IF ENR_FACTURORG<3,2> # "" THEN
         * sigle organisme payeur : mutuelle
         READ ENR_MUTUELLE FROM F.TABLES,"MUTUELLE" ELSE ENR_MUTUELLE=""
         y=1
         LOOP
         UNTIL ENR_MUTUELLE<2,y> = "" OR ENR_MUTUELLE <2,y> = ENR_ACCORD<4> DO
            y=y+1
         REPEAT
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,4;ENR_MUTUELLE<3,y>)
 
         * heures engages
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,5;ENR_ACCORD<9>)

         * taux
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,6;ENR_FACTURORG<3,2>)
         IF ENR_FACTURORG<3,2> = "" THEN
            W_Str=0
         END ELSE
            W_Str=ENR_FACTURORG<3,2>
         END

         * heures effectues
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,7;ENR_FACTURORG<1,2>)
         IF ENR_FACTURORG<1,2> = "" THEN
            ENR_FACTURORG<1,2>=0
         END

         * total
         W_Total=W_Str * ENR_FACTURORG<1,2>
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,8;W_Total)
         W_TotalMontant=W_TotalMontant + W_Total 

      END
   END

RETURN



*****************************************************************************
*  MAJ du fichier ARCHIVEBORDCAISSE - Entete tableau organisme 000

610

   W_Rang=W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;"CODE")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;"NOM PRENOM")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,3;"HEURES")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,4;"COUT")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,5;"MONTANT")

   W_Rang=W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;"AIDE")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;"")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,3;"")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,4;"PRESTATION")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,5;"")

   W_Rang=W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#3")

RETURN

*****************************************************************************
*  MAJ du fichier ARCHIVEBORDCAISSE - Traitement detail organisme 000

620
   
   ENR_FRAISGESTION = ""

   READ ENR_FRAISGESTION FROM F.FRAISGESTIONASSO,W_Assoc:W_SauveSecteur:W_RequeteFacturOrg<l>[1,3]:W_PeriodeTrait ELSE ENR_FRAISGESTION=""

   W_CountFact=DCOUNT(ENR_FACTURORG<1>,CHAR(253))
   FOR a=1 TO W_CountFact

      m=1
      LOOP 
      WHILE ENR_FRAISGESTION<1,m> # "" AND ENR_FRAISGESTION<1,m> < W_RequeteFacturOrg<l>[13,6] DO
         m=m+1
      REPEAT
      IF ENR_FRAISGESTION<1,m>=W_RequeteFacturOrg<l>[13,6] THEN
         ENR_FRAISGESTION<2,m>=ENR_FRAISGESTION<2,m> + ENR_FACTURORG<1,a>
*         ENR_FRAISGESTION<3,m>=ENR_FRAISGESTION<3,m> + INT((ENR_FACTURORG<1,a> * ENR_FACTURORG<2,a>)/100 + (1/2))
         ENR_FRAISGESTION<3,m>=0
         ENR_FRAISGESTION<7,m>=ENR_FRAISGESTION<7,m> + INT((ENR_FACTURORG<1,a> * ENR_FACTURORG<2,a>)/100 + (1/2))
      END ELSE
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,1,m;W_RequeteFacturOrg<l>[13,6])
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,2,m;ENR_FACTURORG<1,a>)
*         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,3,m;INT((ENR_FACTURORG<1,a> * ENR_FACTURORG<2,a>)/100 + (1/2)))
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,3,m;"0")
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,7,m;INT((ENR_FACTURORG<1,a> * ENR_FACTURORG<2,a>)/100 + (1/2)))

      END

      W_Att1="VRAI"
      GOSUB 630
   NEXT a

   IF ENR_FACTURORG<5> # "" THEN

      m=1
      LOOP 
      WHILE ENR_FRAISGESTION<4,m> # "" AND ENR_FRAISGESTION<4,m> < W_RequeteFacturOrg<l>[13,6] DO
         m=m+1
      REPEAT
      IF ENR_FRAISGESTION<4,m>=W_RequeteFacturOrg<l>[13,6] THEN
         ENR_FRAISGESTION<5,m>=ENR_FRAISGESTION<5,m> + ENR_FACTURORG<5>
*         ENR_FRAISGESTION<6,m>=ENR_FRAISGESTION<6,m> + INT((ENR_FACTURORG<5> * ENR_FACTURORG<6>)/100 + (1/2))
         ENR_FRAISGESTION<6,m>=0
         ENR_FRAISGESTION<8,m>=ENR_FRAISGESTION<8,m> + INT((ENR_FACTURORG<5> * ENR_FACTURORG<6>)/100 + (1/2))
      END ELSE
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,4,m;W_RequeteFacturOrg<l>[13,6])
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,5,m;ENR_FACTURORG<5>)
*         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,6,m;INT((ENR_FACTURORG<5> * ENR_FACTURORG<6>)/100 + (1/2)))
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,6,m;"0")
         ENR_FRAISGESTION=INSERT(ENR_FRAISGESTION,8,m;INT((ENR_FACTURORG<5> * ENR_FACTURORG<6>)/100 + (1/2)))
      END

      a=1
      W_Att1="FAUX"
      GOSUB 630
   END

   WRITE ENR_FRAISGESTION ON F.FRAISGESTIONASSO,W_Assoc:W_SauveSecteur:W_RequeteFacturOrg<l>[1,3]:W_PeriodeTrait

RETURN

*****************************************************************************
*  MAJ du fichier ARCHIVEBORDCAISSE - Traitement detail organisme 000

630

   READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_RequeteFacturOrg<l,1>[5,5] ELSE ENR_CIVILAIDE=""

   W_Rang=W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;W_RequeteFacturOrg<l,1>[5,5])
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>)

   IF W_Att1="VRAI" THEN
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,3;ENR_FACTURORG<1,a>)
      W_TotalHres=W_TotalHres + ENR_FACTURORG<1,a>
   END ELSE
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,3;ENR_FACTURORG<5,a>)
      W_TotalHres=W_TotalHres + ENR_FACTURORG<5,a>
   END

   IF W_Att1="VRAI" THEN
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,4;ENR_FACTURORG<2,a>)
*      W_TotalHres=W_TotalHres + ENR_FACTURORG<2,a>
   END ELSE
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,4;ENR_FACTURORG<6,a>)
*      W_TotalHres=W_TotalHres + ENR_FACTURORG<6,a>
   END

   IF W_Att1="VRAI" THEN
      IF ENR_FACTURORG<1,a> # "" AND ENR_FACTURORG<2,a> # "" THEN
         W_Str=ENR_FACTURORG<1,a> * ENR_FACTURORG<2,a>
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,5;W_Str)
         W_TotalMontant=W_TotalMontant + W_Str
      END
   END ELSE
      IF ENR_FACTURORG<5,a> # "" AND ENR_FACTURORG<6,a> # "" THEN
         W_Str=ENR_FACTURORG<5,a> * ENR_FACTURORG<6,a>
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,5;W_Str)
         W_TotalMontant=W_TotalMontant + W_Str
      END
   END

RETURN
