**********************************************************
*  gnration du fichier ARCHIVEBORDCAISSE
*  Programme chaine  partir d'un projet VB
*  Vanessa
*  FEVRIER 2000
*  AOUT    2000 BUG MFP (500)
*  NOVEMBRE 2001 Modif MSA pour Lemans
*  OCTOBRE 2002 Modif Heures dj factures (HDF en dur)
**********************************************************

* Ouvertures des fichiers

EXECUTE "DATE.FORMAT"
OPEN "","ACCORD" TO F.ACCORD ELSE PRINT "OUVERTURE ACCORD";* en lecture
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE PRINT "OUVERTURE ACTIVITES" ;* en lecture

OPEN "","AGGIRAIDE" TO F.AGGIRAIDE ELSE PRINT "OUVERTURE AGGIRAIDE" ;* 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 "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "OUVERTURE CIVILAIDE";* en lecture
OPEN "","COMPTESPARTICULIERS" TO F.COMPTESPARTICULIERS ELSE PRINT "OUVERTURE COMPTESPARTICULIERS";* en lecture
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE PRINT "OUVERTURE COMPTEUR";* en lecture
OPEN "","CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE PRINT "OUVERTURE CONSTANTESPAIE";* en lecture
OPEN "","FACTURAIDE" TO F.FACTURAIDE ELSE PRINT "OUVERTURE FACTURAIDE" ;* en lecture criture
OPEN "","FACTURORG" TO F.FACTURORG ELSE PRINT "OUVERTURE FACTURORG" ;* en lecture criture
OPEN "","FEDEASSOC" TO F.FEDEASSOC ELSE PRINT "OUVERTURE FEDEASSOC" ;* en lecture
OPEN "","FLUXCOMPTABLES" TO F.FLUXCOMPTABLES ELSE PRINT "OUVERTURE FLUXCOMPTABLES" ;* en lecture criture
OPEN "","FLUXPARAM" TO F.FLUXPARAM ELSE PRINT "OUVERTURE FLUXPARAM" ;* en lecture
OPEN "","NUMEROFACT" TO F.NUMEROFACT ELSE PRINT "OUVERTURE NUMEROFACT" ;* en lecture criture
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE PRINT "OUVERTURE ORGPRISECHARGE" ;* en lecture
OPEN "","PARAMBORDORGCHG" TO F.PARAMBORDORGCHG ELSE PRINT "OUVERTURE PARAMBORDORGCHG" ;* en lecture
OPEN "","STATACTAIDE" TO F.STATACTAIDE ELSE PRINT "OUVERTURE STATACTAIDE";* en lecture
OPEN "","SECTEUR" TO F.SECTEUR ELSE PRINT "OUVERTURE SECTEUR";* en lecture
OPEN "","TABLES" TO F.TABLES ELSE PRINT "OUVERTURE TABLES";* en lecture
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en criture
*********************************************************
* initialisation des variables
ENR_ARCHIVEBORDCAISSE=""
W_Adresse=""
W_Matrice=""
W_RequeteFacturOrg=""
W_SousMatrice=""
W_TotalTFMR=0
W_TotalTMR=""
W_SousTotalSecteur=0
W_TotalMontant=0
W_TotalHres=0
W_TotalEuro=0
W_TotalTemp=0
W_TauxEuro=0
W_Col31="FAUX"
W_TotalAide="FAUX"
W_TotalTMRAide=""
W_2X="FAUX"
W_ReqFede=""
W_TabFede=""
W_ReqFactAide=""
W_NumOrdre="01"
*********************************************************
* Recuperation des arguments

PROCREAD ARGUMENTS ELSE STOP
W_User=FIELD(ARGUMENTS," ",2)
W_Entite=FIELD(ARGUMENTS," ",3)
W_PeriodeTrait=FIELD(ARGUMENTS," ",4)
*********************************************************
* PROGRAMME PRINCIPAL
   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=""
   READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE,"1" ELSE ENR_CONSTANTESPAIE=""

   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
  
   * MAJ Numro Facture
   l=1

   GOSUB 100

   IF W_RequeteFacturOrg<l>[1,3] # "000" THEN
      * si tri par secteur, imprime le secteur dans l'entte
      READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_RequeteFacturOrg<l>[1,3] ELSE ENR_ORGPRISECHARGE=""

      IF ENR_ORGPRISECHARGE<49, 1> = "1" THEN
         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_Secteur = ENR_SECTEUR<1>
      END 

      IF ENR_ORGPRISECHARGE<49, 1> = "6" THEN
         READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_RequeteFacturOrg<l>[5, 5] ELSE ENR_CIVILAIDE=""
         W_Commune = ENR_CIVILAIDE<11>
      END

      IF ENR_ORGPRISECHARGE<39> # "M" THEN
         * Entete
         GOSUB 10

         W_SauveAide = ""
         W_SauvePeriode = ""
         W_SauveSecteur = ""
         W_SauveCommune = ""
         j=1
         W_Total="FAUX"
         W_SousTotal="FAUX"

         W_CountFacturOrg = DCOUNT(W_RequeteFacturOrg,CHAR(254))

         FOR l = 1 TO W_CountFacturOrg
	    IF ENR_ORGPRISECHARGE<17> = "T" AND ENR_ORGPRISECHARGE<39> = "R" AND ENR_ORGPRISECHARGE<49,1> # "5" THEN
	       W_TotalAide="VRAI"
	    END ELSE
	       W_TotalAide="FAUX"
	    END

            GOSUB 20
         NEXT l

	   IF W_TotalAide="VRAI" AND W_2X="VRAI" THEN
            GOSUB 80
	   END

         GOSUB 30
 
         IF (ENR_ORGPRISECHARGE<49,1> = "1" OR ENR_ORGPRISECHARGE<49,1> = "6") AND ENR_ORGPRISECHARGE<39> = "R" THEN
            GOSUB 50
         END

         GOSUB 40

      END ELSE
         W_TotalAPayer=0
         j=1
         * Entete
         GOSUB 500
 
         W_Rang=W_Rang+1
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#2")
         GOSUB 510

         W_SauvePeriode = W_RequeteFacturOrg<l,1>[13,6]

         W_CountFacturOrg = DCOUNT(W_RequeteFacturOrg,CHAR(254))

         FOR l = 1 TO W_CountFacturOrg
            GOSUB 520
         NEXT l

         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;W_TotalAPayer)
      END
   END ELSE

      W_SauvePeriode=""
      W_TotalMontant=0
      W_TotalHres=0
      j=1
      W_CountFacturOrg = DCOUNT(W_RequeteFacturOrg,CHAR(254))

      FOR l = 1 TO W_CountFacturOrg
         IF W_SauvePeriode="" THEN
            W_SauvePeriode=W_RequeteFacturOrg<l,1>[13,6]
            W_TotalMontant=0
            W_TotalHres=0
            GOSUB 600
         END
         IF W_SauvePeriode # W_RequeteFacturOrg<l,1>[13,6] THEN
            W_SauvePeriode=W_RequeteFacturOrg<l,1>[13,6]
            IF W_TotalHres # 0 OR W_TotalMontant # 0 THEN
               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)
            END
            W_Cle = W_Entite:W_RequeteFacturOrg<l-1>[4,1]:W_RequeteFacturOrg<l-1>[1,3]:W_PeriodeTrait:W_NumFact
            WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
            ENR_ARCHIVEBORDCAISSE=""
            ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
            j=j+1
            GOSUB 100

            W_TotalMontant=0
            W_TotalHres=0
            GOSUB 600
         END
         GOSUB 620
      NEXT l

      IF W_TotalHres # 0 OR W_TotalMontant # 0 THEN
         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)
      END

   END

   W_Cle = W_Entite:W_RequeteFacturOrg<l-1>[4,1]:W_RequeteFacturOrg<l-1>[1,3]:W_PeriodeTrait:W_NumFact
   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

   GOSUB 700

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

STOP

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

10

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

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

   W_Rang = 2
   W_Adresse=""
   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;"BORDEREAU DE FACTURATION")

   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;"N identification : ":ENR_ORGPRISECHARGE<42>)
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;"Numero facture         : ":W_NumFact)
   
   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;"Organisme         : ":W_RequeteFacturOrg<l>[1,3]:"  ":ENR_ORGPRISECHARGE<2>)
   IF ENR_ORGPRISECHARGE<22> # "" THEN
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;"Compte client          : ":ENR_ORGPRISECHARGE<22>)
   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
      W_Rang = W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Adresse)
   END
   IF ENR_ORGPRISECHARGE<7> # "" THEN
      W_Rang = W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;ENR_ORGPRISECHARGE<7>)
   END
   W_Rang = W_Rang+1
   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,1;W_TempAdr)
   
   IF ENR_ORGPRISECHARGE<49,1>="5" THEN
      W_Temp = ICONV("01/":W_RequeteFacturOrg<l>[17,2]:"/":W_RequeteFacturOrg<l>[13,4],"D4/")
   END ELSE
      W_Temp = ICONV("01/":W_PeriodeTrait[5,2]:"/":W_PeriodeTrait[1,4],"D4/")
   END
   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"))

   IF ENR_ORGPRISECHARGE<49,1> = "1" THEN
      W_Rang = W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"Secteur           : ":W_Secteur)
   END
   IF ENR_ORGPRISECHARGE<49,1> = "6" THEN
      W_Rang = W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"Commune           : ":W_Commune)
   END

   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;"T.V.A. non applicable. Article 261-7 du C.G.I.")

   GOSUB 60

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

RETURN

*****************************************************************************
*  MAJ du fichier ARCHIVEBORDCAISSE - Rupture

20
   * Rupture sur aid
   IF ENR_ORGPRISECHARGE<39> = "I" THEN
      IF W_SauveAide = "" THEN
         W_SauveAide = W_RequeteFacturOrg<l>[5,5]
      END
      IF W_SauveAide <> W_RequeteFacturOrg<l>[5,5] THEN
         W_SauveAide = W_RequeteFacturOrg<l>[5,5]

         GOSUB 30
         GOSUB 40

         W_Cle = W_Entite:W_RequeteFacturOrg<l>[4,1]:W_RequeteFacturOrg<l>[1,3]:W_PeriodeTrait:W_NumFact
         WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
         ENR_ARCHIVEBORDCAISSE=""
         ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
         j=j+1
         GOSUB 100
         IF ENR_ORGPRISECHARGE<49,1>="1" THEN
            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_Secteur = ENR_SECTEUR<1>
         END
         IF ENR_ORGPRISECHARGE<49,1>="6" THEN
            READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_RequeteFacturOrg<l>[5, 5] ELSE ENR_CIVILAIDE=""
            W_Commune = ENR_CIVILAIDE<11>
         END

	 GOSUB 10

      END ELSE

         * Rupture sur la priode
         IF ENR_ORGPRISECHARGE<49,1>="5" THEN
            IF W_SauvePeriode="" THEN
               W_SauvePeriode = W_RequeteFacturOrg<l>[13,6]
	    END
	    IF W_SauvePeriode <> W_RequeteFacturOrg<l>[13,6] THEN
               GOSUB 30
               GOSUB 40
               W_Cle = W_Entite:W_RequeteFacturOrg<l>[4,1]:W_RequeteFacturOrg<l>[1,3]:W_PeriodeTrait:W_NumFact
               WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
               W_SauvePeriode = W_RequeteFacturOrg<l>[13,6]
               ENR_ARCHIVEBORDCAISSE=""
	       ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
	       j=j+1
               GOSUB 100
	       GOSUB 10
            END
         END ELSE
            * Rupture sur secteur
            IF ENR_ORGPRISECHARGE<49,1>="1" THEN
               READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_RequeteFacturOrg<l>[5, 5] ELSE ENR_CIVILAIDE=""
   	       IF W_SauveSecteur="" THEN
                  W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
	       END
	       IF W_SauveSecteur <> ENR_CIVILAIDE<40>[1,3] THEN
                  W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
  	          GOSUB 30
	          GOSUB 50
                  READ ENR_SECTEUR FROM F.SECTEUR,W_SauveSecteur ELSE ENR_SECTEUR=""
       		  W_Secteur=ENR_SECTEUR<1>
      		  W_Rang = W_Rang+1
      		  ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"Secteur           : ":W_Secteur)
		  GOSUB 60
	       END
	    END ELSE
            	IF ENR_ORGPRISECHARGE<49,1>="6" THEN
               		READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_RequeteFacturOrg<l>[5, 5] ELSE ENR_CIVILAIDE=""
   	       		IF W_SauveCommune="" THEN
                  		W_SauveCommune = ENR_CIVILAIDE<11>
	       		END
	       		IF W_SauveCommune <> ENR_CIVILAIDE<11> THEN
                  		W_SauveCommune = ENR_CIVILAIDE<11>
  	          		GOSUB 30
	          		GOSUB 50
				W_Commune=W_SauveCommune
      		  		W_Rang = W_Rang+1
      		  		ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"Commune           : ":W_Commune)
		  		GOSUB 60
	       		END
		END
	    END
	 END

      END
      GOSUB 70
      RETURN
   END 

   IF W_TotalAide="VRAI" THEN
      IF W_SauveAide = "" THEN
         W_SauveAide = W_RequeteFacturOrg<l>[5,5]
      END

      IF W_SauveAide <> W_RequeteFacturOrg<l>[5,5] THEN
         W_SauveAide = W_RequeteFacturOrg<l>[5,5]

         IF W_2X="VRAI" THEN
            GOSUB 80
	 END
	 W_TotalTMRAide=""

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

   	 FOR i=1 TO W_CountDetail
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,i;SPACE(ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,2>))
   	 NEXT i

         W_2X="FAUX"
      END ELSE
	 IF l # 1 THEN
            W_2X="VRAI"
	 END
      END
   END

   * Rupture sur la priode
   IF ENR_ORGPRISECHARGE<49,1>="5" THEN
      IF W_SauvePeriode="" THEN
         W_SauvePeriode = W_RequeteFacturOrg<l>[13,6]
      END
      IF W_SauvePeriode <> W_RequeteFacturOrg<l>[13,6] THEN
         GOSUB 30
         GOSUB 40
         W_Cle = W_Entite:W_RequeteFacturOrg<l>[4,1]:W_RequeteFacturOrg<l>[1,3]:W_PeriodeTrait:W_NumFact
         WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
         W_SauvePeriode = W_RequeteFacturOrg<l>[13,6]
         ENR_ARCHIVEBORDCAISSE=""
	 ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
	 j=j+1
         GOSUB 100
	 GOSUB 10
      END
      GOSUB 70
      RETURN
   END

   * Rupture sur secteur
   IF ENR_ORGPRISECHARGE<49,1>="1" THEN
      READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_RequeteFacturOrg<l>[5, 5] ELSE ENR_CIVILAIDE=""
      IF W_SauveSecteur="" THEN
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
      END
      IF W_SauveSecteur <> ENR_CIVILAIDE<40>[1,3] THEN
         W_SauveSecteur = ENR_CIVILAIDE<40>[1,3]
  	 GOSUB 30
	 GOSUB 50
         READ ENR_SECTEUR FROM F.SECTEUR,W_SauveSecteur ELSE ENR_SECTEUR=""
       	 W_Secteur=ENR_SECTEUR<1>
      	 W_Rang = W_Rang+1
      	 ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"Secteur           : ":W_Secteur)
	 GOSUB 60
      END
      GOSUB 70
      RETURN
   END

   * Rupture sur commune
   IF ENR_ORGPRISECHARGE<49,1>="6" THEN
      READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_RequeteFacturOrg<l>[5, 5] ELSE ENR_CIVILAIDE=""
      IF W_SauveCommune="" THEN
         W_SauveCommune = ENR_CIVILAIDE<11>
      END
      IF W_SauveCommune <> ENR_CIVILAIDE<11> THEN
         W_SauveCommune = ENR_CIVILAIDE<11>
  	 GOSUB 30
	 GOSUB 50
	 W_Commune=W_SauveCommune
      	 W_Rang = W_Rang+1
      	 ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"Commune           : ":W_Commune)
	 GOSUB 60
      END
      GOSUB 70
      RETURN
   END

   GOSUB 70

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

   IF W_Col31="FAUX" THEN
      IF W_TotalTFMR # "0" AND W_TotalTFMR # ""  THEN

         W_DatePer="01/":W_PeriodeTrait[5,2]:"/":W_PeriodeTrait[1,4]
         W_DatePer=ICONV(W_DatePer,"D4/")
         IF INT(W_DatePer) < INT(ENR_CONSTANTESPAIE<9>) THEN
            W_TotalTemp = OCONV(TRIM(W_TotalTFMR),"MCN")
            W_TotalEuro = W_TotalTemp / (ENR_CONSTANTESPAIE<7>/100000)
            W_TotalEuro = INT(W_TotalEuro+(1/2))
            W_Str="R26,(#10)"
            W_TotalEuro=W_TotalEuro W_Str
            W_Rang=W_Rang+1
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,W_SauveX;"Soit en euro : ")
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,W_SauveI+1;W_TotalEuro)
         END
      END
   END

   W_Matrice=""

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

   W_Rang=W_Rang+1

   READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ORGPRISECHARGE<47,1> ELSE ENR_ACTIVITES=""
   IF ENR_ACTIVITES<5>="" THEN
      W_Temp="Identit bancaire :   Code banque : ":ENR_ASSOCIATION<17>:SPACE(3):"Code guichet : ":ENR_ASSOCIATION<18>:SPACE(3):"Compte : ":ENR_ASSOCIATION<19>:" ":ENR_ASSOCIATION<20>
   END ELSE
      W_Temp="Identit bancaire :   Code banque : ":ENR_ACTIVITES<5>:SPACE(3):"Code guichet : ":ENR_ACTIVITES<6>:SPACE(3):"Compte : ":ENR_ACTIVITES<7>:" ":ENR_ACTIVITES<8>
   END
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)
   IF W_TotalTFMR # "" AND W_TotalTFMR # 0 THEN
      W_Rang = W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#7")
      W_Rang=W_Rang+1
      W_Temp = "PRESENT ETAT CERTIFIE EXACT ET CONFORME, ARRETE A LA SOMME DE : "
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)
      W_Rang=W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_TotalTFMR)
      W_TotalTFMR=0
      W_TotalTMR=""
   END

   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#8")
   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 - Sous Total

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

   IF W_SousTotal="VRAI" THEN
      W_Rang = W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#4")
      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;"Sous total : ")
            W_Premier="VRAI"
         END
         IF W_SousTotalSecteur<i> # "" AND W_SousTotalSecteur<i> # "0" THEN
		W_Print=W_SousTotalSecteur<i>
*            W_Print=SPACE(ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,k>,2> - LEN(W_SousTotalSecteur<i>)):W_SousTotalSecteur<i>
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,i+1;W_Print)
         END
      NEXT i
   END

   W_SousMatrice=""

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

RETURN

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

70
   READ ENR_FACTURORG FROM F.FACTURORG,W_RequeteFacturOrg<l> ELSE ENR_FACTURORG=""
   ENR_FACTURORG=REPLACE(ENR_FACTURORG,9;W_NumFact)
   ENR_FACTURORG=REPLACE(ENR_FACTURORG,10;W_PeriodeTrait)
   W_Att5 = "FAUX"
   W_ColDimJfPasse="FAUX"
   W_TotalDimJf="FAUX"
   W_Depense="FAUX"

   * traite les MV en att. 1  4
   W_CountFact=DCOUNT(ENR_FACTURORG<1>,CHAR(253))
   FOR k=1 TO W_CountFact
      
      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
         IF W_Depense="VRAI" AND W_SauveAtt = "14" AND W_Fichier="FACTURORG" THEN
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,i;SPACE(ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,2>))
         END ELSE
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,i;W_Temp)
         END
      NEXT i

      IF W_SauveAtt = "14" AND W_Fichier="FACTURORG" THEN
         W_Depense="VRAI"
      END
   NEXT k
   
   IF W_ColDimJfPasse="FAUX" THEN
      * Traite les att. 5  8
      IF ENR_FACTURORG<5> # "" 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
            IF W_Depense="VRAI" AND W_SauveAtt = "14" AND W_Fichier="FACTURORG" THEN
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,i;SPACE(ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,2>))
            END ELSE
               ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,i;W_Temp)
            END
         NEXT i
	 IF ENR_FACTURORG<1> # "" THEN
	    W_2X="VRAI"
	 END
      END
   END

   WRITE ENR_FACTURORG ON F.FACTURORG,W_RequeteFacturOrg<l>

RETURN

*****************************************************************************
*  SOUS-TOTAL PAR AIDE - SPECIF CAEN

80

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

   FOR i=1 TO W_CountDetail
         IF i=2 THEN
            ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,i;SPACE(ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,2>-5):"Total")
         END ELSE
         	IF W_TotalTMRAide<i> # "" AND W_TotalTMRAide<i> # "0" THEN
            		W_Print=W_TotalTMRAide<i> 
            		ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,i;W_Print)
		END ELSE
            		ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,i;SPACE(ENR_PARAMBORDORGCHG<ENR_ORGPRISECHARGE<40,i>,2>))
		END
         END
   NEXT i

RETURN

*****************************************************************************
*  MAJ du fichier NUMEROFACT

100
   READ ENR_NUMEROFACT FROM F.NUMEROFACT,W_Entite ELSE ENR_NUMEROFACT=""
   W_Act =  W_RequeteFacturOrg<l>[4,1]
   BEGIN CASE
      CASE W_Act = "P"
         IF ENR_NUMEROFACT<2> = "" THEN
            ENR_NUMEROFACT<2>=0
         END
         W_NumFact = ENR_NUMEROFACT<2>+1
      CASE W_Act = "M"
         IF ENR_NUMEROFACT<4> = "" THEN
            ENR_NUMEROFACT<4>=0
         END
         W_NumFact = ENR_NUMEROFACT<4>+1
      CASE W_Act = "I"
         IF ENR_NUMEROFACT<6> = "" THEN
            ENR_NUMEROFACT<6>=0
         END
         W_NumFact = ENR_NUMEROFACT<6>+1
   END CASE
   W_NumFact=W_NumFact "R%10"

   BEGIN CASE
      CASE W_Act = "P"   
         ENR_NUMEROFACT<2>=W_NumFact
      CASE W_Act = "M"
         ENR_NUMEROFACT<4>=W_NumFact
      CASE W_Act = "I"
         ENR_NUMEROFACT<6>=W_NumFact
   END CASE
   WRITE ENR_NUMEROFACT ON F.NUMEROFACT,W_Entite

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

   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="AGGIRAIDE"
         W_Cle = W_RequeteFacturOrg<l>[5,5]
         READ ENR_AGGIRAIDE FROM F.AGGIRAIDE,W_Cle ELSE ENR_AGGIRAIDE="" 
         W_TabDyn=ENR_AGGIRAIDE

      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="STATACTAIDE"
         W_Cle = W_RequeteFacturOrg<l>[1,3]
         READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_Cle ELSE ENR_ORGPRISECHARGE="" 
         W_Cle = W_RequeteFacturOrg<l>[5,5]:W_Entite:W_RequeteFacturOrg<l>[13,6]
         READ ENR_STATACTAIDE FROM F.STATACTAIDE,W_Cle ELSE ENR_STATACTAIDE="" 
         W_TabDyn=ENR_STATACTAIDE

      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<1,k>=W_TabDyn<W_Att[1,W_Posit-1]+4,k> * W_TabDyn<W_Att[W_Posit+1,LEN(W_Att)-W_Posit]+4,k>
      END ELSE
         W_Temp6<1,k>=W_TabDyn<W_Att[1,W_Posit-1],k> * W_TabDyn<W_Att[W_Posit+1,LEN(W_Att)-W_Posit],k>
      END
      W_Temp6<1,k>=INT((W_Temp6<1,k>/100)+(1/2))
   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,LEN(W_Att)-W_Posit]+4>
         END ELSE

            W_Temp6=W_TabDyn<W_Att[1,W_Posit-1]> - W_TabDyn<W_Att[W_Posit+1,LEN(W_Att)-W_Posit]>
         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,LEN(W_Att)-W_Posit]+4>
            END ELSE
               W_Temp6=W_TabDyn<W_Att[1,W_Posit-1]> / W_TabDyn<W_Att[W_Posit+1,LEN(W_Att)-W_Posit]>
            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,LEN(W_Att)-W_Posit]+4>
               END ELSE
                  W_Temp6=W_TabDyn<W_Att[1,W_Posit-1]> + W_TabDyn<W_Att[W_Posit+1,LEN(W_Att)-W_Posit]>
               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

                     IF W_ColDimJfPasse="FAUX" AND W_Fichier="ORGPRISECHARGE" AND W_Att="26" AND W_Att5="VRAI" THEN
                        W_Att=W_Att+1
                     END

                     W_Temp6=W_TabDyn<W_Att>

                     IF W_Att = "5" AND W_Fichier="FACTURORG" 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
* RAJOUT CHRISTOPHE
      CASE W_Att="A"
         W_Count47=DCOUNT(ENR_ORGPRISECHARGE<47>,CHAR(253))
	 IF W_Fichier="STATACTAIDE" THEN
	         W_Count2=DCOUNT(W_Obj,CHAR(253))
	 END ELSE
	         W_Count2=DCOUNT(W_Obj,CHAR(254))
    	 END
         W_Temp7 =0
         FOR iAct=1 TO W_Count47
            FOR jAct=1 TO W_Count2
               IF ENR_ORGPRISECHARGE<47,iAct> = W_TabDyn<1,jAct> THEN
                  W_Temp7 =W_Temp7 + W_TabDyn<2,jAct>
                  jAct=999
               END
            NEXT jAct
         NEXT iAct
      CASE W_Att="MSA"
         W_Temp7=W_Obj<1,k> - 300
         IF W_Temp7 < 0 THEN
            W_Temp7 = 0
         END
      CASE W_Att="MV1"
         IF ENR_ACCORD<17,1> # "" THEN
            W_Temp7=ENR_ACCORD<17,1>
         END ELSE
            * Normalement pas possible
            W_Temp7=ENR_ACCORD<9>
         END
      CASE W_Att="MV2"
         IF ENR_ACCORD<17,2> # "" THEN
            W_Temp7=ENR_ACCORD<17,2>
         END ELSE
            W_Temp7=ENR_ACCORD<9>
         END
***********
* RAJOUT VANES
      CASE W_Att="HDF"
         IF ENR_ACCORD<17,2>="" THEN
            W_Temp7=0
         END ELSE
            W_Temp7=W_Obj-ENR_ACCORD<17,2>
         END 
***********
      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

   IF ENR_ORGPRISECHARGE<40,i>="31" THEN
      W_Col31="VRAI"
      GOSUB 400
   END

   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)
         IF W_TotalTMR<i>="" THEN
            W_TotalTMR<i>=0
         END
         W_TotalTMR=REPLACE(W_TotalTMR,i;W_Matrice<i>)

	 IF W_TotalAide="VRAI" THEN
         	IF W_TotalTMRAide<i>="" THEN
            		W_TotalTMRAide<i>=0
         	END
	 	W_TotalTMRAide=REPLACE(W_TotalTMRAide,i;W_TotalTMRAide<i>+W_Temp)
	 END

         IF ENR_ORGPRISECHARGE<49,1>="1" OR ENR_ORGPRISECHARGE<49,1>="6" 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
         IF W_TotalTMR<i>="" THEN
            W_TotalTMR<i>=0
         END
         W_TotalTMR=REPLACE(W_TotalTMR,i;W_Matrice<i> W_Str)

	 IF W_TotalAide="VRAI" THEN
         	IF W_TotalTMRAide<i>="" THEN
            		W_TotalTMRAide<i>=0
		END ELSE
*         		W_Div=1
*         		FOR z=1 TO W_Att[4,1]
*            			W_Div=W_Div:"0"
*         		NEXT z
			W_TotalTMRAide<i>=OCONV(W_TotalTMRAide<i>,"MCN")
         	END
		W_TempAide=W_TotalTMRAide<i>+W_Temp7
	 	W_TotalTMRAide=REPLACE(W_TotalTMRAide,i;W_TempAide W_Str)
	 END

         IF ENR_ORGPRISECHARGE<49,1>="1" OR ENR_ORGPRISECHARGE<49,1>="6" 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" OR ENR_ORGPRISECHARGE<49,1>="6" 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>
         IF W_TotalTMR<i>="" THEN
            W_TotalTMR<i>=0
         END
         W_TotalTMR=REPLACE(W_TotalTMR,i;W_Matrice<i>)

	 IF W_TotalAide="VRAI" THEN
         	IF W_TotalTMRAide<i>="" THEN
            		W_TotalTMRAide<i>=0
         	END
	 	W_TotalTMRAide=REPLACE(W_TotalTMRAide,i;W_TotalTMRAide<i>+W_Temp)
	 END

         W_SauveI=i
         W_TotalTFMR=W_Matrice<i>
         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
         IF W_TotalTMR<i>="" THEN
            W_TotalTMR<i>=0
         END
         IF LEN(W_Matrice<i>) < 8 THEN
            W_TotalTMR=REPLACE(W_TotalTMR,i;W_Matrice<i> W_Str)
            W_SauveI=i
            W_TotalTFMR = W_Matrice<i> W_Str
         END ELSE
            W_StrBis="R26(#10)"
            W_TotalTMR=REPLACE(W_TotalTMR,i;W_Matrice<i> W_StrBis)
            W_SauveI=i
            W_TotalTFMR = W_Matrice<i> W_StrBis
         END

	 IF W_TotalAide="VRAI" THEN
         	IF W_TotalTMRAide<i>="" THEN
            		W_TotalTMRAide<i>=0
		END ELSE
*         		W_Div=1
*         		FOR z=1 TO W_Att[4,1]
*            			W_Div=W_Div:"0"
*         		NEXT z
			W_TotalTMRAide<i>=OCONV(W_TotalTMRAide<i>,"MCN")
         	END
		W_TempAide=W_TotalTMRAide<i>+W_Temp7
	 	W_TotalTMRAide=REPLACE(W_TotalTMRAide,i;W_TempAide W_Str)
	 END

         IF ENR_ORGPRISECHARGE<49,1>="1" OR ENR_ORGPRISECHARGE<49,1>="6" 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

*****************************************************************************
* CONVERSION EUROS / FRANCS

400
   W_PeriodeConstante=OCONV(ENR_CONSTANTESPAIE<9>,"D4/")[7,4]:OCONV(ENR_CONSTANTESPAIE<9>,"D4/")[4,2]

   IF W_PeriodeConstante <= W_PeriodeTrait THEN
      W_Temp7=W_Temp7 * (ENR_CONSTANTESPAIE<7>/100000)
      W_Temp7=INT(W_Temp7+(1/2))
   END ELSE
      IF W_PeriodeConstante > W_PeriodeTrait THEN
         W_Temp7=W_Temp7 / (ENR_CONSTANTESPAIE<7>/100000)
         W_Temp7=INT(W_Temp7+(1/2))
      END
   END

RETURN

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

500
   W_TauxEuro=ENR_CONSTANTESPAIE<7>

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

   W_Temp="MFP / RAMSES":SPACE(25):"Bordereau prtabli de facturation rfrence : ":W_PeriodeTrait
   W_Temp=W_Temp:SPACE(23):"Date : ":OCONV(DATE(),"D4/")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,2;W_Temp)

   W_Temp=SPACE(37):"pour organisme : ":ENR_ORGPRISECHARGE<2>
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,3;W_Temp)

   W_Temp="Section   : ":ENR_ORGPRISECHARGE<42>[1,3]:"0"
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,4;W_Temp)

   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,5;"Code tat : AAM0100-S1")

   W_Len=18 + LEN(ENR_ORGPRISECHARGE<42>)
   W_Temp="Dpart.   : ":ENR_ORGPRISECHARGE<42>[1,3]:SPACE(W_Len + 61 - LEN("Dpart.   : ":ENR_ORGPRISECHARGE<42>[1,3]))
   W_Temp=W_Temp:"Numro de facture : ":W_NumFact
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,6;W_Temp)

   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,7;"%")

   READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_Entite ELSE ENR_ASSOCIATION=""
   W_Temp="Association n ":ENR_ORGPRISECHARGE<42>:" : ":ENR_ASSOCIATION<2>:SPACE(61-LEN(ENR_ASSOCIATION<2>)):"Destinataire du paiement : "
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,8;W_Temp)

   W_Rang=8
   W_Adresse=""
   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
      W_Temp=SPACE(W_Len):W_Adresse:SPACE(61 - LEN(W_Adresse)):ENR_ASSOCIATION<1>
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)
   END

   IF ENR_ASSOCIATION<7> # "" THEN
      W_Rang = W_Rang+1
      W_Temp=SPACE(W_Len):ENR_ASSOCIATION<7>:SPACE(61 - LEN(ENR_ASSOCIATION<7>))
      IF W_Adresse # "" THEN
         W_Temp=W_Temp:"RIB : "
         READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ORGPRISECHARGE<47,1> ELSE ENR_ACTIVITES=""
         IF ENR_ACTIVITES<5> # "" THEN
            W_Temp=W_Temp:ENR_ACTIVITES<5>:" ":ENR_ACTIVITES<6>:" ":ENR_ACTIVITES<7>:" ":ENR_ACTIVITES<8>
         END ELSE
            W_Temp=W_Temp:ENR_ASSOCIATION<17>:" ":ENR_ASSOCIATION<18>:" ":ENR_ASSOCIATION<19>:" ":ENR_ASSOCIATION<20>
         END
      END ELSE
         W_Temp=W_Temp:ENR_ASSOCIATION<1>
      END
   END
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)

   W_Rang = W_Rang+1
   W_Temp=SPACE(W_Len):ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>:SPACE(61 - LEN(ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>))
   
   IF W_Adresse="" AND ENR_ASSOCIATION<7>="" THEN
      W_Temp=W_Temp:ENR_ASSOCIATION<1>
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)
      W_Rang = W_Rang+1
      W_Temp=SPACE(W_Len):SPACE(61)
      W_Temp=W_Temp:"RIB : "
      READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ORGPRISECHARGE<47,1> ELSE ENR_ACTIVITES=""
      IF ENR_ACTIVITES<5> # "" THEN
         W_Temp=W_Temp:ENR_ACTIVITES<5>:" ":ENR_ACTIVITES<6>:" ":ENR_ACTIVITES<7>:" ":ENR_ACTIVITES<8>
      END ELSE
         W_Temp=W_Temp:ENR_ASSOCIATION<17>:" ":ENR_ASSOCIATION<18>:" ":ENR_ASSOCIATION<19>:" ":ENR_ASSOCIATION<20>
      END
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)
      W_Rang=W_Rang+1

      W_Temp=SPACE(W_Len):SPACE(61):"Mode rglement : VIREMENT BANCAIRE"
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)
   END ELSE
      IF (W_Adresse # "" AND ENR_ASSOCIATION<7>="") OR (W_Adresse="" AND ENR_ASSOCIATION<7> # "") THEN
         W_Temp=W_Temp:"RIB : "
         READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ORGPRISECHARGE<47,1> ELSE ENR_ACTIVITES=""
         IF ENR_ACTIVITES<5> # "" THEN
            W_Temp=W_Temp:ENR_ACTIVITES<5>:" ":ENR_ACTIVITES<6>:" ":ENR_ACTIVITES<7>:" ":ENR_ACTIVITES<8>
         END ELSE
            W_Temp=W_Temp:ENR_ASSOCIATION<17>:" ":ENR_ASSOCIATION<18>:" ":ENR_ASSOCIATION<19>:" ":ENR_ASSOCIATION<20>
         END
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)
         W_Rang=W_Rang+1
         W_Temp=SPACE(W_Len):SPACE(61):"Mode rglement : VIREMENT BANCAIRE"
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)
      END ELSE

         W_Temp=W_Temp:"Mode rglement : VIREMENT BANCAIRE"
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;W_Temp)
      END
   END

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"

   READ ENR_FACTURORG FROM F.FACTURORG,W_RequeteFacturOrg<l,1> ELSE ENR_FACTURORG=""

   IF W_SauvePeriode # W_RequeteFacturOrg<l,1>[13,6] THEN
      W_SauvePeriode=W_RequeteFacturOrg<l,1>[13,6]
      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_TotalAPayer)

      W_Cle = W_Entite:W_RequeteFacturOrg<l-1>[4,1]:W_RequeteFacturOrg<l-1>[1,3]:W_PeriodeTrait:W_NumFact
      WRITE ENR_ARCHIVEBORDCAISSE ON F.ARCHIVEBORDCAISSE,W_Cle
      ENR_ARCHIVEBORDCAISSE=""
      ENR_TEMPO=REPLACE(ENR_TEMPO,1,j;W_Cle)
      j=j+1
      GOSUB 100
      W_TotalAPayer=0
      GOSUB 500
      W_Rang=W_Rang+1
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang;"#2")
      GOSUB 510

   END

   ENR_FACTURORG=REPLACE(ENR_FACTURORG,9;W_NumFact)
   ENR_FACTURORG=REPLACE(ENR_FACTURORG,10;W_PeriodeTrait)

   WRITE ENR_FACTURORG ON F.FACTURORG,W_RequeteFacturOrg<l,1>

   IF ENR_FACTURORG<3> # "" THEN
      W_HreNormale="VRAI"
      GOSUB 530
   END

   IF ENR_FACTURORG<5> # "" THEN
      W_HreNormale="FAUX"
      GOSUB 530
   END

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
      IF ENR_FACTURORG<3,1> = "" THEN
         W_Str=""
      END ELSE
         W_DatePer="01/":W_PeriodeTrait[5,2]:"/":W_PeriodeTrait[1,4]
         W_DatePer=ICONV(W_DatePer,"D4/")
         IF INT(W_DatePer) < INT(ENR_CONSTANTESPAIE<9>) THEN
            W_Str=ENR_FACTURORG<3,1>/(W_TauxEuro/100000)
            W_Str=INT(W_Str+(1/2))
         END ELSE
            W_Str=ENR_FACTURORG<3,1>
         END
      END
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,6;W_Str)
      IF ENR_FACTURORG<3,1> = "" THEN
         W_Str=0
      END
   END ELSE
      IF ENR_FACTURORG<7,1> = "" THEN
         W_Str=""
      END ELSE
         W_DatePer="01/":W_PeriodeTrait[5,2]:"/":W_PeriodeTrait[1,4]
         W_DatePer=ICONV(W_DatePer,"D4/")
         IF INT(W_DatePer) < INT(ENR_CONSTANTESPAIE<9>) THEN
            W_Str=ENR_FACTURORG<7,1>/(W_TauxEuro/100000)
            W_Str=INT(W_Str+(1/2))
         END ELSE
            W_Str=ENR_FACTURORG<7,1>
         END
      END
      ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,6;W_Str)
      IF ENR_FACTURORG<7,1> = "" THEN
         W_Str=0
      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
   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
   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

   * Rajout christophe
   W_Total=INT(W_Total/100 + 1/2) * 100
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,8;W_Total)
   
   W_TotalAPayer=W_TotalAPayer + 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
         IF ENR_FACTURORG<3,2> = "" THEN
            W_Str=""
         END ELSE
            W_DatePer="01/":W_PeriodeTrait[5,2]:"/":W_PeriodeTrait[1,4]
            W_DatePer=ICONV(W_DatePer,"D4/")
            IF INT(W_DatePer) < INT(ENR_CONSTANTESPAIE<9>) THEN
               W_Str=ENR_FACTURORG<3,2>/(W_TauxEuro/100000)
               W_Str=INT(W_Str+(1/2))
            END ELSE
               W_Str=ENR_FACTURORG<3,2>
            END
         END
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,6;W_Str)
         IF ENR_FACTURORG<3,2> = "" THEN
            W_Str=0
         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>

         * Rajout christophe
         W_Total=INT(W_Total/100 + 1/2) * 100
         ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,8;W_Total)
    
         W_TotalAPayer=W_TotalAPayer + W_Total

      END
   END

RETURN

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

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

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

   W_Rang = 2
   W_Adresse=""
   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;"BORDEREAU DE FACTURATION")

   W_Rang = W_Rang+1
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,1;"Organisme              : TAUX PRESTATION")
   ENR_ARCHIVEBORDCAISSE=REPLACE(ENR_ARCHIVEBORDCAISSE,W_Rang,2;"Numero facture : ":W_NumFact)
   
   W_Rang = W_Rang+1

   W_Temp = ICONV("01/":W_SauvePeriode[5,2]:"/":W_SauvePeriode[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;"Periode de facturation : ":OCONV(W_Date,"MCU"))

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

   GOSUB 610

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
   READ ENR_FACTURORG FROM F.FACTURORG,W_RequeteFacturOrg<l,1> ELSE ENR_FACTURORG=""

   ENR_FACTURORG=REPLACE(ENR_FACTURORG,9;W_NumFact)
   ENR_FACTURORG=REPLACE(ENR_FACTURORG,10;W_PeriodeTrait)

   WRITE ENR_FACTURORG ON F.FACTURORG,W_RequeteFacturOrg<l,1>

   W_CountFact=DCOUNT(ENR_FACTURORG<1>,CHAR(253))
   FOR a=1 TO W_CountFact
      W_Att1="VRAI"
      GOSUB 630
   NEXT a

   IF ENR_FACTURORG<5> # "" THEN
      a=1
      W_Att1="FAUX"
      GOSUB 630
   END

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

*****************************************************************************
*  gestion fede - flux comptables

700

   READ ENR_COMPTEUR FROM F.COMPTEUR,"999" THEN
  	IF ENR_COMPTEUR<17>#"" AND LEN(ENR_COMPTEUR<17>)=3 THEN

   		READ ENR_COMPTESPARTICULIERS FROM F.COMPTESPARTICULIERS,W_Entite ELSE ENR_COMPTESPARTICULIERS=""
   		GOSUB 705

         	W_CountFacturOrg = DCOUNT(W_RequeteFacturOrg,CHAR(254))
   		FOR l = 1 TO W_CountFacturOrg

			W_CleFact=W_RequeteFacturOrg<l>
   			READ ENR_FACTURORG FROM F.FACTURORG,W_CleFact ELSE ENR_FACTURORG=""
   			READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CleFact[5,5] ELSE ENR_CIVILAIDE=""
			READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_CleFact[1,3] ELSE ENR_ORGPRISECHARGE=""

	 		W_CountFede=DCOUNT(W_TabFede,CHAR(254))
			FOR iFede=1 TO W_CountFede
				IF W_TabFede<iFede,2>=ENR_CIVILAIDE<40>[1,3] THEN
					W_Assoc=W_TabFede<iFede,1>
					EXIT
				END
			NEXT iFede
   			READ ENR_FLUXPARAM FROM F.FLUXPARAM,W_Assoc ELSE ENR_FLUXPARAM=""

			W_Fichier=""
			W_Fichier<1>=ENR_FACTURORG<10>
			W_Fichier<2>=W_CleFact
			W_Fichier<3>=ENR_FACTURORG<9>
			W_Fichier<4>=W_CleFact[1,3]

		      * libell de l'organisme
			IF W_CleFact[1,3] # "000" THEN
				W_Fichier<5>=ENR_ORGPRISECHARGE<1>
			END ELSE
				W_Fichier<5>="TAUX PRESTATION"
			END

		      * nbre d'heures
			IF ENR_FACTURORG<1,1>="" THEN
				W_Heure=0
			END ELSE
				W_Heure=ENR_FACTURORG<1,1>
			END
			IF ENR_FACTURORG<5>#"" THEN
				W_Heure=W_Heure+ENR_FACTURORG<5>
			END
			W_Fichier<6>=W_Heure

		      * montant organisme
			IF ENR_FACTURORG<4,1>="" THEN
				W_MontOrg=0
			END ELSE
				W_MontOrg=ENR_FACTURORG<4,1>
			END
			IF ENR_FACTURORG<8>#"" THEN
				W_MontOrg=W_MontOrg+ENR_FACTURORG<8>
			END
			IF ENR_ORGPRISECHARGE<39>="M" THEN
				IF ENR_FACTURORG<4,2>#"" THEN
					W_MontOrg=W_MontOrg+ENR_FACTURORG<4,2>
				END
			END
			W_Fichier<7>=W_MontOrg

			W_Fichier<8>=ENR_FLUXPARAM<13>
			W_Fichier<9>=ENR_FLUXPARAM<12>
			IF W_CleFact[1,3] # "000" THEN
				W_Fichier<10>=ENR_ORGPRISECHARGE<22>
				W_Fichier<11>=ENR_ORGPRISECHARGE<23>
			END ELSE
				W_Fichier<10>=""
				W_Fichier<11>=ENR_COMPTESPARTICULIERS<10>
			END

			W_Fichier<12>=ENR_FLUXPARAM<6>

	 		W_CountOrg=DCOUNT(ENR_FLUXPARAM<10>,CHAR(253))
			FOR iOrg=1 TO W_CountOrg
				IF ENR_FLUXPARAM<10,iOrg>=W_CleFact[1,3] THEN	
					EXIT
				END
			NEXT iOrg
			IF iOrg > W_CountOrg THEN
				W_Fichier<13>=ENR_FLUXPARAM<9>
			END ELSE
				W_Fichier<13>=ENR_FLUXPARAM<11,iOrg>
			END

			W_NumOrdre="01"
			W_Trouve="FAUX"
   			LOOP
  			UNTIL W_Trouve#"FAUX" DO
				W_CleFlux=W_CleFact[5,5]:W_Assoc:ENR_CIVILAIDE<40>[1,3]:W_CleFact[13,6]:W_NumOrdre
   				READ ENR_FLUXCOMPTABLES FROM F.FLUXCOMPTABLES,W_CleFlux THEN
					IF W_CleFact=ENR_FLUXCOMPTABLES<2> THEN
						W_Trouve="VRAI1"
					END ELSE
						W_NumOrdre=W_NumOrdre+1 "R%2"
						W_Trouve="FAUX"
					END
				END ELSE
					W_Trouve="VRAI2"
				END
			REPEAT

			IF W_Trouve="VRAI2" THEN 
				GOSUB 710
				ENR_FLUXCOMPTABLES=""
				ENR_FLUXCOMPTABLES=W_Fichier
			END ELSE
				ENR_FLUXCOMPTABLES<1>=ENR_FACTURORG<10>
				ENR_FLUXCOMPTABLES<3>=ENR_FACTURORG<9>
			END

   			WRITE ENR_FLUXCOMPTABLES ON F.FLUXCOMPTABLES,W_CleFlux

		NEXT l

   	END
   END

RETURN

*****************************************************************************
*  REQUETE FEDEASSOC

705

   EXECUTE 'SELECT FEDEASSOC'
   EXECUTE 'SAUVE-LISTE W_ReqFede'
   EXECUTE "LISTE W_ReqFede" RETURNING MSGCODE

   IF MSGCODE<1> # 209 THEN

      SELECT F.FEDEASSOC TO W_ReqFede
  
      iFede=1
      W_Fin="FAUX"

      LOOP
         READNEXT W_CleFede FROM W_ReqFede ELSE W_Fin = "VRAI"
      WHILE W_Fin = "FAUX" DO
         READ ENR_FEDEASSOC FROM F.FEDEASSOC,W_CleFede ELSE ENR_FEDEASSOC=""

	 W_CountFede=DCOUNT(ENR_FEDEASSOC<41>,CHAR(253))
	 FOR iTemp=1 TO W_CountFede

	 	W_TabFede<iFede,1>=W_CleFede
	 	W_TabFede<iFede,2>=ENR_FEDEASSOC<41,iTemp>
		iFede=iFede+1
	 NEXT iTemp

      REPEAT
   END

RETURN

*****************************************************************************
*  REQUETE FACTURAIDE

710

   EXECUTE 'SELECT FACTURAIDE AVEC CodeAideFact = "':W_CleFact[5,5]:'" AND AVEC PeriodeCleFactAide = "':ENR_FACTURORG<10>:'" AND AVEC 15 = "':W_CleFact[5,8]:'" PAR-DECR @ID'
   EXECUTE 'SAUVE-LISTE W_ReqFactAide'
   EXECUTE "LISTE W_ReqFactAide" RETURNING MSGCODE

   IF MSGCODE<1> # 209 THEN

      SELECT F.FACTURAIDE TO W_ReqFactAide

      W_Fin="FAUX"
      W_ANCIEN=""

      LOOP
         READNEXT W_CleFactAide FROM W_ReqFactAide ELSE W_Fin = "VRAI"
      WHILE W_Fin = "FAUX" DO
	 READ ENR_FACTURAIDE FROM F.FACTURAIDE,W_CleFactAide ELSE ENR_FACTURAIDE=""

      	 IF W_ANCIEN # W_CleFactAide[1,25] THEN
		W_ANCIEN=W_CleFactAide[1,25]

	 	W_CountLigne=DCOUNT(ENR_FACTURAIDE<1>,CHAR(253))
	 	FOR iTemp=1 TO W_CountLigne
			IF ENR_FACTURAIDE<15,iTemp>=W_CleFact[5,8] AND W_CleFact[13,6] = ENR_FACTURAIDE<1,iTemp> THEN

				W_Fichier<14>=W_CleFactAide[16,10]
				W_Fichier<15>=ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
				W_Fichier<16>=ENR_FACTURAIDE<2,iTemp>
				W_Fichier<17>=ENR_FACTURAIDE<5,iTemp>
				W_Fichier<18>=W_CleFactAide[1,5]

	 			W_CountOrg=DCOUNT(ENR_FLUXPARAM<4>,CHAR(253))
				FOR iOrg=1 TO W_CountOrg
					IF ENR_FLUXPARAM<4,iOrg>=W_CleFact[1,3] THEN	
						EXIT
					END
				NEXT iOrg
				IF iOrg > W_CountOrg THEN
					W_Fichier<19>=ENR_FLUXPARAM<3>
				END ELSE
					W_Fichier<19>=ENR_FLUXPARAM<5,iOrg>
				END
				W_Fichier<36>=ENR_FACTURORG<10>
				EXIT
			END

	 	NEXT iTemp
	  END

      REPEAT
   END

RETURN