**********************************************************
*  gnration du fichier ARCHIVEFACT
*  Programme chaine  partir d'un projet VB
*  Vanessa
*  SEPTEMBRE 1999
*  Matthieu
*  AVRIL     2009
*  MIKAEL	MAI 2009
**********************************************************

* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE PRINT "OUVERTURE ACTIVITES" 
OPEN "","FACTURAIDE" TO F.FACTURAIDE ELSE PRINT "OUVERTURE FACTURAIDE" ;* en lecture criture
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en criture
OPEN "","ARCHIVEFACT" TO F.ARCHIVEFACT ELSE PRINT "OUVERTURE ARCHIVEFACT" ;* en criture
OPEN "","AIDESARCHIVEFACT" TO F.AIDESARCHIVEFACT ELSE PRINT "OUVERTURE AIDESARCHIVEFACT" ;* 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 "","SECTEUR" TO F.SECTEUR ELSE PRINT "OUVERTURE SECTEUR" ;* en lecture
OPEN "","ENTETEPIEDFACT" TO F.ENTETEPIEDFACT ELSE PRINT "OUVERTURE ENTETEPIEDFACT" ;* en lecture
OPEN "","CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE PRINT "OUVERTURE CONSTANTESPAIE" ;* en lecture
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "OUVERTURE CIVILAIDANT" ;* en lecture
OPEN "","ANNOTFACT" TO F.ANNOTFACT ELSE PRINT "OUVERTURE ANNOTFACT" ;* en lecture
OPEN "","ELTSFACTAIDE" TO F.ELTSFACTAIDE ELSE PRINT "OUVERTURE ELTSFACTAIDE" ;* en lecture
OPEN "","FEDEASSOC" TO F.FEDEASSOC ELSE PRINT "OUVERTURE FEDEASSOC" ;* en lecture
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE PRINT "OUVERTURE COMPTEUR" ;* en lecture
OPEN "","NUMEROFACT" TO F.NUMEROFACT ELSE STOP ;* en lecture
OPEN "","PARAMENTITECOMPTA" TO F.PARAMENTITECOMPTA ELSE STOP ;* en lecture
OPEN "","ETABLISSEMENT" TO F.ETABLISSEMENT ELSE STOP ;* en lecture
*********************************************************
* initialisation des variables
ENR_ARCHIVEFACT=""
ENR_ETABLISSEMENT=""
W_Adresse=""
W_TotalMontant=0
W_Sauve=""
W_Mois=""
W_MoiArch=""
W_TabDyn=""
W_Fede="FAUX"
W_Devise=""
W_RequeteFact=""
W_SavDatePrelev=""
*modif jonathan le 24/07/2009
W_PlancherAct = ""
W_MontantFact = ""
NbMontant = 0
*fin modif jonathan
* modif ludo
W_MontantSoumisTVA = 0
*********************************************************
* Recuperation des arguments

PROCREAD ARGUMENTS ELSE STOP
W_User=FIELD(ARGUMENTS," ",2)
W_TypeEdition=FIELD(ARGUMENTS," ",3)
W_DatePrelev=FIELD(ARGUMENTS," ",4)
IF W_TypeEdition="T" THEN
   W_Periode=FIELD(ARGUMENTS," ",5)
   W_CodAssoc=FIELD(ARGUMENTS," ",6)
   W_Act=FIELD(ARGUMENTS," ",7)
   W_Tri=FIELD(ARGUMENTS," ",8)
   W_Select=FIELD(ARGUMENTS," ",9)
   W_RespSect=FIELD(ARGUMENTS," ",10)
   W_ParAdresse=FIELD(ARGUMENTS," ",11)
   READ ENR_PARAMENTITECOMPTA FROM F.PARAMENTITECOMPTA,W_CodAssoc ELSE ENR_PARAMENTITECOMPTA=""
	READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,W_CodAssoc:"001" ELSE ENR_ETABLISSEMENT=""
   READ ENR_NUMEROFACT FROM F.NUMEROFACT, W_CodAssoc THEN
	BEGIN CASE
	  CASE W_Act = "P"
		IF ENR_NUMEROFACT<11> = "0" THEN
			W_ImprimeNomPre = "F"
		END ELSE
			W_ImprimeNomPre = "V"
		END
		*modif jonathan le 24/27/2009
		W_PlancherAct = ENR_NUMEROFACT<14> 
		*fin modif jonathan
	  CASE W_Act = "M"
		IF ENR_NUMEROFACT<12> = "0" THEN
			W_ImprimeNomPre = "F"
		END ELSE
			W_ImprimeNomPre = "V"
		END
		*modif jonathan le 24/07/2009
		W_PlancherAct = ENR_NUMEROFACT<15> 
		*fin modif jonathan
	  CASE W_Act = "I"
		IF ENR_NUMEROFACT<13> = "0" THEN
			W_ImprimeNomPre = "F"
		END ELSE
			W_ImprimeNomPre = "V"
		END
		*modif jonathan le 24/07/2009
		W_PlancherAct = ENR_NUMEROFACT<16> 
		*fin modif jonathan
	END CASE
   END ELSE
	W_ImprimeNomPre = "V"
   END
   W_LireNumeroFact = "F"
END ELSE
   W_TempFact=FIELD(ARGUMENTS," ",5)
   W_LireNumeroFact = "V"
   
END
*********************************************************
* PROGRAMME PRINCIPAL

   READ ENR_TEMPO FROM F.TEMPO,"ARCHIVEFACT":W_User ELSE ENR_TEMPO=""
   READ ENR_COMPTEUR FROM F.COMPTEUR,"999" ELSE ENR_COMPTEUR=""
   IF ENR_COMPTEUR<17> # "000" AND ENR_COMPTEUR<17> # "" THEN
      W_Fede="VRAI"
   END ELSE
      W_Fede="FAUX"
   END

   * requete si slection totale
   IF W_TypeEdition = "T" THEN
      W_Temp = 'SSELECT FACTURAIDE AVEC PeriodeCleFactAide = "':W_Periode:'" AND AVEC CodeEntiteFact = "':W_CodAssoc:'"'
      W_Temp = W_Temp:' AND AVEC ActiviteFact = "':W_Act:'"'
      W_Temp = W_Temp:' AND AVEC 11 # "1"'

      IF W_Select = "R" THEN
         IF W_RespSect # "" THEN
            W_Temp = W_Temp:' AND AVEC CodeRespFact = "':W_RespSect:'"' 
         END
      END ELSE
         IF W_RespSect # "" THEN
            W_Temp = W_Temp:' AND AVEC CodeSecteurFact = "':W_RespSect:'"'
         END
      END

		IF W_ParAdresse = 1 THEN
			W_Temp = W_Temp:' PAR ComAdrFact PAR NomAdrFact'
		END

      IF W_Tri="Resp" THEN
         W_Temp = W_Temp:' PAR CodeRespFact'
      END ELSE
         IF W_Tri = "Sect" THEN
            W_Temp = W_Temp:' PAR CodeSecteurFact'
	   END ELSE
		IF W_Tri = "Com" THEN 
		   W_Temp = W_Temp:' PAR LibComFactAide'
		END
         END
      END

	  W_SavDatePrelev = W_DatePrelev
	  
      W_Temp = W_Temp:' PAR NomAideFact PAR PrenomAideFact PAR-DECR 0'
        
      EXECUTE W_Temp
      EXECUTE 'SAUVE-LISTE W_RequeteFact'
      EXECUTE "LISTE W_RequeteFact" RETURNING MSGCODE

      IF MSGCODE<1>=209 THEN
         STOP
      END ELSE
         SELECT F.FACTURAIDE TO W_RequeteFact
 
         W_End="FAUX"
         i=1
      
         LOOP
            READNEXT W_CleFact FROM W_RequeteFact ELSE W_End = "VRAI"
         WHILE W_End = "FAUX" DO
           READ ENR_FACTURAIDE FROM F.FACTURAIDE,W_CleFact ELSE ENR_FACTURAIDE=""

		   ***********************************************
		   *Modif Matthieu : Echeancier - 25/02/2009     *
		   ***********************************************
		   
		   READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_CleFact[1,5] ELSE ENR_ELTSFACTAIDE=""
		   
		   W_DatePrelev = W_SavDatePrelev
		   W_DateActuelle = OCONV(DATE(),"D4/")
		   
		   IF ENR_ELTSFACTAIDE<23> # "" THEN
				ENR_ELTSFACTAIDE<23> = ENR_ELTSFACTAIDE<23> "R%2"		   
				*Si on est au mois de fvrier, et que ENR_ELTSFACTAIDE est soit gal  29 ou 30, alors on le passe  28
				*pour viter la gestion des annes bisextiles
				IF W_DateActuelle[4,2] = "02" AND (ENR_ELTSFACTAIDE<23> = "30" OR ENR_ELTSFACTAIDE<23>="29") THEN
					ENR_ELTSFACTAIDE<23> = "28"
				END

				IF ICONV(W_DateActuelle,"D4/") <= ICONV(ENR_ELTSFACTAIDE<23>:"/":W_DateActuelle[4,2]:"/":W_DateActuelle[7,4],"D4/") THEN
					W_DatePrelev = ENR_ELTSFACTAIDE<23>:"/":W_DateActuelle[4,2]:"/":W_DateActuelle[7,4]
				END ELSE
					IF W_DateActuelle[4,2] = "12" THEN
						W_DatePrelev = ENR_ELTSFACTAIDE<23>:"/01/":W_DateActuelle[7,4]+1 "R%4"
					END ELSE
						W_DatePrelev = ENR_ELTSFACTAIDE<23>:"/":W_DateActuelle[4,2]+1 "R%2":"/":W_DateActuelle[7,4]
					END
				END
				
		   END ELSE
		        W_DatePrelev = W_SavDatePrelev
		   END
		   
		   IF LEN(W_DatePrelev) # 5 THEN
		       W_DatePrelev = ICONV(W_DatePrelev,"D4/")
		   END
		   
		   **********************************************
		   *Fin Modif Matthieu : Echeancier				*
		   **********************************************
			
			
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,11;"1")
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,12;W_DatePrelev)
         
            WRITE ENR_FACTURAIDE ON F.FACTURAIDE,W_CleFact
          
            IF W_Sauve # W_CleFact[1,25] THEN
               W_Sauve = W_CleFact[1,25]
               
    
                   GOSUB 10
    *Modification Jonathan le 24/07/2009
    
    			FOR NbMontant = 1 TO DCOUNT(ENR_FACTURAIDE<5>,CHAR(253))	
    				W_MontantFact = W_MontantFact + ENR_FACTURAIDE<5,NbMontant>
    			NEXT NbMontant
    			* Modif Guillaume 08/01/2010 : L'incrmentation d'un indice i ne se faisait pas dans tous les cas. De ce fait, chaque facture crasait
    			*                              la prcdente dans le fichier tempo. J'ai mis  la suite de l'attribut 1 du fichier tempo pour tre 
    			*                              sr que  y aille.    			
    			IF W_PlancherAct = "" THEN
    				ENR_TEMPO=REPLACE(ENR_TEMPO,1,-1;W_CLE)
    			END ELSE
    				IF W_MontantFact >= W_PlancherAct THEN
    					ENR_TEMPO=REPLACE(ENR_TEMPO,1,-1;W_CLE)
    					i=i+1
    				END ELSE 
    					ENR_TEMPO=REPLACE(ENR_TEMPO,1,-1;"")
    				END
    			END
    			W_MontantFact=""
    *Fin modification Jonathan
            END ELSE
               ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,11;"1")
               ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,12;W_DatePrelev)
         
               WRITE ENR_FACTURAIDE ON F.FACTURAIDE,W_CleFact
            END
         REPEAT
      END
   END ELSE
		 
		 *Mikael 15/05/2009
		 W_SavDatePrelev = W_DatePrelev

      
	  W_RequeteFactureAide=""
      l=1
      LOOP 
         W_Field=FIELD(W_TempFact,"|",l)
      WHILE W_Field # "" DO
         W_RequeteFactureAide<l>=W_Field
         l=l+1
      REPEAT
	IF W_LireNumeroFact = "V" THEN
         READ ENR_PARAMENTITECOMPTA FROM F.PARAMENTITECOMPTA,W_RequeteFactureAide<1>[6,3] ELSE ENR_PARAMENTITECOMPTA=""
		 READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,W_RequeteFactureAide<1>[6,3]:"001" ELSE ENR_ETABLISSEMENT=""
	 READ ENR_NUMEROFACT FROM F.NUMEROFACT, W_RequeteFactureAide<1>[6,3] THEN
	  BEGIN CASE
	   CASE W_RequeteFactureAide<1>[9,1] = "P"
		IF ENR_NUMEROFACT<11> = "0" THEN
			W_ImprimeNomPre = "F"
		END ELSE
			W_ImprimeNomPre = "V"
		END
		*modif jonathan le 24/27/2009
		W_PlancherAct = ENR_NUMEROFACT<14> 
		*fin modif jonathan
	   CASE W_RequeteFactureAide<1>[9,1] = "M"
		IF ENR_NUMEROFACT<12> = "0" THEN
			W_ImprimeNomPre = "F"
		END ELSE
			W_ImprimeNomPre = "V"
		END
		*modif jonathan le 24/27/2009
		W_PlancherAct = ENR_NUMEROFACT<15> 
		*fin modif jonathan		
	   CASE W_RequeteFactureAide<1>[9,1] = "I"
		IF ENR_NUMEROFACT<13> = "0" THEN
			W_ImprimeNomPre = "F"
		END ELSE
			W_ImprimeNomPre = "V"
		END
		*modif jonathan le 24/27/2009
		W_PlancherAct = ENR_NUMEROFACT<16> 
		*fin modif jonathan		
	  END CASE
       END ELSE
	  W_ImprimeNomPre = "V"
       END
	END
      W_CountFact = DCOUNT(W_RequeteFactureAide,CHAR(254))
      i=1
      FOR kUn = 1 TO W_CountFact
         READ ENR_FACTURAIDE FROM F.FACTURAIDE,W_RequeteFactureAide<kUn> ELSE ENR_FACTURAIDE=""

         W_CleFact=W_RequeteFactureAide<kUn>
		 
		   ***********************************************
		   *Modif Matthieu : Echeancier - 25/02/2009     *
		   ***********************************************

		   READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_CleFact[1,5] ELSE ENR_ELTSFACTAIDE=""
		   
		   W_DatePrelev = W_SavDatePrelev
		   W_DateActuelle = OCONV(DATE(),"D4/")
		   *Mikael 15/05/2009
		   *ENR_ELTSFACTAIDE<23> = ENR_ELTSFACTAIDE<23> "R%2"
		   
		   IF ENR_ELTSFACTAIDE<23> # "" THEN
		   		*Mikael 15/05/2009
				ENR_ELTSFACTAIDE<23> = ENR_ELTSFACTAIDE<23> "R%2"
				*Si on est au mois de fvrier, et que ENR_ELTSFACTAIDE est soit gal  29 ou 30, alors on le passe  28
				*pour viter la gestion des annes bisextiles
				IF W_DateActuelle[4,2] = "02" AND (ENR_ELTSFACTAIDE<23> = "30" OR ENR_ELTSFACTAIDE<23>="29") THEN
					ENR_ELTSFACTAIDE<23> = "28"
				END

				IF ICONV(W_DateActuelle,"D4/") <= ICONV(ENR_ELTSFACTAIDE<23>:"/":W_DateActuelle[4,2]:"/":W_DateActuelle[7,4],"D4/") THEN
					W_DatePrelev = ENR_ELTSFACTAIDE<23>:"/":W_DateActuelle[4,2]:"/":W_DateActuelle[7,4]
				END ELSE
					IF W_DateActuelle[4,2] = "12" THEN
						W_DatePrelev = ENR_ELTSFACTAIDE<23>:"/01/":W_DateActuelle[7,4]+1 "R%4"
					END ELSE
						W_DatePrelev = ENR_ELTSFACTAIDE<23>:"/":W_DateActuelle[4,2]+1 "R%2":"/":W_DateActuelle[7,4]
					END
				END
				
		   END ELSE
		        W_DatePrelev = W_SavDatePrelev
		   END
		   
		   IF LEN(W_DatePrelev) # 5 THEN
		       W_DatePrelev = ICONV(W_DatePrelev,"D4/")
		   END
		   
		   **********************************************
		   *Fin Modif Matthieu : Echeancier				*
		   **********************************************

         ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,12;W_DatePrelev)
         ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,11;"1")
         WRITE ENR_FACTURAIDE ON F.FACTURAIDE,W_CleFact
        
         IF W_Sauve # W_CleFact[1,25] THEN
            W_Sauve = W_CleFact[1,25]

            W_Periode=W_CleFact[10,6]
            
            GOSUB 10
            
*Modification Jonathan le 24/07/2009
			FOR NbMontant = 1 TO DCOUNT(ENR_FACTURAIDE<5>,CHAR(253))	
				W_MontantFact = W_MontantFact + ENR_FACTURAIDE<5,NbMontant>
			NEXT NbMontant
			
            * Modif Guillaume 08/01/2010 : L'incrmentation d'un indice i ne se faisait pas dans tous les cas. De ce fait, chaque facture crasait
			*                              la prcdente dans le fichier tempo. J'ai mis  la suite de l'attribut 1 du fichier tempo pour tre 
			*                              sr que  y aille.    			
			IF W_PlancherAct = "" THEN
				ENR_TEMPO=REPLACE(ENR_TEMPO,1,-1;W_CLE)
			END ELSE
				IF W_MontantFact >= W_PlancherAct THEN
					ENR_TEMPO=REPLACE(ENR_TEMPO,1,-1;W_CLE)
					i=i+1
				END ELSE
					ENR_TEMPO=REPLACE(ENR_TEMPO,1,-1;"")
				END
			END
			W_MontantFact=""
*Fin modification Jonathan
         END

         IF W_CleFact # W_CleFact[1,25]:"0" THEN
            READ ENR_FACTURAIDE FROM F.FACTURAIDE,W_CleFact[1,25]:"0" ELSE ENR_FACTURAIDE=""
			
		   ***********************************************
		   *Modif Matthieu : Echeancier - 25/02/2009     *
		   ***********************************************
		   
		   READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_CleFact[1,5] ELSE ENR_ELTSFACTAIDE=""
		   
		   W_DatePrelev = W_SavDatePrelev
		   W_DateActuelle = OCONV(DATE(),"D4/")
		   
		   ENR_ELTSFACTAIDE<23> = ENR_ELTSFACTAIDE<23> "R%2"
		   
		   IF ENR_ELTSFACTAIDE<23> # "" THEN
		   
				*Si on est au mois de fvrier, et que ENR_ELTSFACTAIDE est soit gal  29 ou 30, alors on le passe  28
				*pour viter la gestion des annes bisextiles
				IF W_DateActuelle[4,2] = "02" AND (ENR_ELTSFACTAIDE<23> = "30" OR ENR_ELTSFACTAIDE<23>="29") THEN
					ENR_ELTSFACTAIDE<23> = "28"
				END

				IF ICONV(W_DateActuelle,"D4/") <= ICONV(ENR_ELTSFACTAIDE<23>:"/":W_DateActuelle[4,2]:"/":W_DateActuelle[7,4],"D4/") THEN
					W_DatePrelev = ENR_ELTSFACTAIDE<23>:"/":W_DateActuelle[4,2]:"/":W_DateActuelle[7,4]
				END ELSE
					IF W_DateActuelle[4,2] = "12" THEN
						W_DatePrelev = ENR_ELTSFACTAIDE<23>:"/01/":W_DateActuelle[7,4]+1 "R%4"
					END ELSE
						W_DatePrelev = ENR_ELTSFACTAIDE<23>:"/":W_DateActuelle[4,2]+1 "R%2":"/":W_DateActuelle[7,4]
					END
				END
				
		   END ELSE
		        W_DatePrelev = W_SavDatePrelev
		   END
		   
		   IF LEN(W_DatePrelev) # 5 THEN
		       W_DatePrelev = ICONV(W_DatePrelev,"D4/")
		   END
		   
		   **********************************************
		   *Fin Modif Matthieu : Echeancier				*
		   **********************************************
			
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,12;W_DatePrelev)
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,11;"1")
            WRITE ENR_FACTURAIDE ON F.FACTURAIDE,W_CleFact[1,25]:"0"
         END

      NEXT kUn

   END
   
   IF ENR_TEMPO <> "" THEN
	WRITE ENR_TEMPO ON F.TEMPO,"ARCHIVEFACT":W_User
   END
	
STOP

*****************************************************************************
*  MAJ du fichier ARCHIVEFACT
10
   
   ENR_ARCHIVEFACT=""
   W_MoiArch=W_Periode[5,2]
   W_Arch="vrai"
   W_TotalAPayerFrs=0
   W_TotalAPayerEuro=0
   W_TotalMontant=0
   W_Devise=""
   * entete de la facture
   READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CleFact[6,3] ELSE PRINT "ASSOCIATION"


   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,1;"#1")


   W_Temp = OCONV(DATE(), "D")

   GOSUB 20

   W_Temp = W_Temp[1,3]:W_Mois:" ":W_Temp[8,4]


   IF LEN(ENR_ASSOCIATION<9>:", le ":W_Temp) > 37 THEN
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,2,1; "Le " : W_Temp)
   END ELSE
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,2,1; ENR_ASSOCIATION<9> : ", le " : W_Temp)
   END



*  ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,2,1;ENR_ASSOCIATION<9>:", le ":W_Temp)
   

 
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,3;"#2")
   READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CleFact[1,5] ELSE PRINT "CIVILAIDE"
   READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE PRINT "SECTEUR"
   IF W_Fede="FAUX" THEN

      IF ENR_SECTEUR<17> # "" THEN
         W_CountEntite=DCOUNT(ENR_SECTEUR<17>,CHAR(253))
         W_Trouve="FAUX"
         FOR j = 1 TO W_CountEntite
            IF W_CleFact[6,3] = ENR_SECTEUR<17,j> THEN
               W_Trouve="VRAI"
               EXIT
            END
         NEXT j
         IF W_Trouve="VRAI" THEN
*            W_Agrement = " ORGANISME AGREE DE SERVICES AUX PERSONNES  NUMERO ":ENR_SECTEUR<19,j>:" DU ":OCONV(ENR_SECTEUR<18,j>,"D4/")
            W_Agrement = " ORGANISME AGREE DE SERVICES AUX PERSONNES  NUMERO ":ENR_SECTEUR<19,j>
         END ELSE
            IF ENR_SECTEUR<3> = "" THEN
               IF ENR_ASSOCIATION<23> # "" THEN
					*Modification mikael le 02/08/07 DA7024
					*W_Agrement = " ORGANISME AGREE DE SERVICES AUX PERSONNES  NUMERO ":ENR_ASSOCIATION<23>:" DU ":OCONV(ENR_ASSOCIATION<24>,"D4/")
					W_Agrement = " ORGANISME AGREE DE SERVICES AUX PERSONNES  NUMERO ":ENR_ASSOCIATION<23>
			   END ELSE
                  W_Agrement = ""
               END
            END ELSE
               W_Agrement = " ORGANISME AGREE DE SERVICES AUX PERSONNES  NUMERO ":ENR_SECTEUR<3>:" DU ":OCONV(ENR_SECTEUR<4>,"D4/")
            END
         END
      END ELSE

         IF ENR_SECTEUR<3> = "" THEN
            IF ENR_ASSOCIATION<23> # "" THEN
					*Modification mikael le 02/08/07 DA7024
					*W_Agrement = " ORGANISME AGREE DE SERVICES AUX PERSONNES  NUMERO ":ENR_ASSOCIATION<23>:" DU ":OCONV(ENR_ASSOCIATION<24>,"D4/")
					W_Agrement = " ORGANISME AGREE DE SERVICES AUX PERSONNES  NUMERO ":ENR_ASSOCIATION<23>
            END ELSE
               W_Agrement = ""
            END
         END ELSE
            W_Agrement = " ORGANISME AGREE DE SERVICES AUX PERSONNES  NUMERO ":ENR_SECTEUR<3>:" DU ":OCONV(ENR_SECTEUR<4>,"D4/")
         END
      END
   END ELSE
      IF (W_Tri="Sect" OR W_Select = "S") OR W_TypeEdition="I" THEN
         W_SectFede=ENR_CIVILAIDE<40>
         W_SectFede=W_SectFede[1,3]
         EXECUTE 'SELECT FEDEASSOC AVEC 41 = "':W_SectFede:'"'
         READNEXT W_CleFede THEN
            READ ENR_FEDEASSOC FROM F.FEDEASSOC,W_CleFede ELSE ENR_FEDEASSOC=""
               IF ENR_FEDEASSOC<16> # "" THEN
					*Modification mikael le 02/08/07 DA7024
					*W_Agrement = " ORGANISME AGREE DE SERVICES AUX PERSONNES  NUMERO ":ENR_FEDEASSOC<16>:" DU ":OCONV(ENR_FEDEASSOC<17>,"D4/")
					W_Agrement = " ORGANISME AGREE DE SERVICES AUX PERSONNES  NUMERO ":ENR_FEDEASSOC<16>
			   END ELSE
                  W_Agrement = ""
               END
            END
      END ELSE
         IF ENR_ASSOCIATION<23> # "" THEN
				*Modification mikael le 02/08/07 DA7024
				*W_Agrement = " ORGANISME AGREE DE SERVICES AUX PERSONNES  NUMERO ":ENR_ASSOCIATION<23>:" DU ":OCONV(ENR_ASSOCIATION<24>,"D4/")
				W_Agrement = " ORGANISME AGREE DE SERVICES AUX PERSONNES  NUMERO ":ENR_ASSOCIATION<23>
         END ELSE
            W_Agrement = ""
         END
      END
   END

   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,4,1;W_Agrement)
        
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,5;"#3")

   IF W_Fede="FAUX" THEN
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,6,1;ENR_ASSOCIATION<1>)
      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
   END ELSE
      IF (W_Tri="Sect" OR W_Select = "S") OR W_TypeEdition="I" THEN
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,6,1;ENR_FEDEASSOC<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
      END ELSE
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,6,1;ENR_ASSOCIATION<1>)
         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
      END
   END
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,7,1;W_Adresse)

	IF W_Fede="FAUX" THEN
		IF ENR_ASSOCIATION<7>="" THEN
			ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,8,1;ENR_ASSOCIATION<7>)
		END ELSE
			W_AdresseSiret=ENR_ASSOCIATION<7>[1,42]:SPACE(43-LEN(ENR_ASSOCIATION<7>[1,42])):'N. Siret : ':ENR_ETABLISSEMENT<14>
			ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,8,1;W_AdresseSiret)
		END
		
		IF ENR_ASSOCIATION<10> = "0" THEN
			W_AdresseCodePostal=ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>
		END ELSE
			W_AdresseCodePostal=ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>:" Cedex ":ENR_ASSOCIATION<11>
		END
		IF ENR_ASSOCIATION<7>="" THEN
			W_AdresseCodePostal=W_AdresseCodePostal[1,42]:SPACE(43-LEN(W_AdresseCodePostal[1,42])):'N. Siret : ':ENR_ETABLISSEMENT<14>
		END
		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,9,1;W_AdresseCodePostal)
		
		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,6,2;"Tel : ":ENR_ASSOCIATION<12>)
		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,7,2;"Fax : ":ENR_ASSOCIATION<13>)
	END ELSE
		IF W_Tri="Sect" OR W_Select = "S" THEN
			IF ENR_FEDEASSOC<7>="" THEN
				ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,8,1;ENR_FEDEASSOC<7>)
			END ELSE
				W_AdresseSiret=ENR_FEDEASSOC<7>[1,42]:SPACE(43-LEN(ENR_FEDEASSOC<7>[1,42])):'N. Siret : ':ENR_FEDEASSOC<26>
				ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,8,1;W_AdresseSiret)
			END
			
			IF ENR_FEDEASSOC<10> = "0" THEN
				W_AdresseCodePostal=ENR_FEDEASSOC<8>:" ":ENR_FEDEASSOC<9>
			END ELSE
				W_AdresseCodePostal=ENR_FEDEASSOC<8>:" ":ENR_FEDEASSOC<9>:" Cedex ":ENR_FEDEASSOC<11>
			END
			IF ENR_FEDEASSOC<7>="" THEN
				W_AdresseCodePostal=W_AdresseCodePostal[1,42]:SPACE(43-LEN(W_AdresseCodePostal[1,42])):'N. Siret : ':ENR_FEDEASSOC<26>
			END
			ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,9,1;W_AdresseCodePostal)
			
			ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,6,2;"Tel : ":ENR_FEDEASSOC<12>)
			ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,7,2;"Fax : ":ENR_FEDEASSOC<13>)
		END ELSE
			IF ENR_ASSOCIATION<7>="" THEN
				ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,8,1;ENR_ASSOCIATION<7>)
			END ELSE
				W_AdresseSiret=ENR_ASSOCIATION<7>[1,42]:SPACE(43-LEN(ENR_ASSOCIATION<7>[1,42])):'N. Siret : ':ENR_ETABLISSEMENT<14>
				ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,8,1;W_AdresseSiret)
			END
			
			IF ENR_ASSOCIATION<10> = "0" THEN
				W_AdresseCodePostal=ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>
			END ELSE
				W_AdresseCodePostal=ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>:" Cedex ":ENR_ASSOCIATION<11>
			END
			IF ENR_ASSOCIATION<7>="" THEN
				W_AdresseCodePostal=W_AdresseCodePostal[1,42]:SPACE(43-LEN(W_AdresseCodePostal[1,42])):'N. Siret : ':ENR_ETABLISSEMENT<14>
			END
			ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,9,1;W_AdresseCodePostal)
			
			ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,6,2;"Tel : ":ENR_ASSOCIATION<12>)
			ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,7,2;"Fax : ":ENR_ASSOCIATION<13>)
		END
	END

   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,10;"#4")
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,11,1;" Identifiant : ":W_CleFact[1,5])

   READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_CleFact[1,5] ELSE ENR_ELTSFACTAIDE=""

   IF ENR_ELTSFACTAIDE<2> # "" THEN
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,11,2;" ":ENR_ELTSFACTAIDE<2>)
   END ELSE
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,11,2;" ":ENR_CIVILAIDE<1>:" ":ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>)
   END

   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,12,1;ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>)
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,12,2;"")
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,13,1;" Facture N.  : ":W_CleFact[16,10])

   W_Adresse=""
   IF ENR_ELTSFACTAIDE<2> # "" THEN
      IF ENR_ELTSFACTAIDE<3> # "" THEN
         W_Adresse=ENR_ELTSFACTAIDE<3> 
      END
      IF ENR_ELTSFACTAIDE<4> # "" THEN
         W_Adresse=W_Adresse:" ":ENR_ELTSFACTAIDE<4>
      END
      IF ENR_ELTSFACTAIDE<5> # "" THEN
         W_Adresse=W_Adresse:" ":ENR_ELTSFACTAIDE<5>
      END
      IF ENR_ELTSFACTAIDE<6> # "" THEN
         W_Adresse=W_Adresse:" ":ENR_ELTSFACTAIDE<6>
      END
   END ELSE
      IF ENR_CIVILAIDE<5> # "" THEN
         W_Adresse=ENR_CIVILAIDE<5>
      END
      IF ENR_CIVILAIDE<6> # "" THEN
         W_Adresse=W_Adresse:" ":ENR_CIVILAIDE<6>
      END
      IF ENR_CIVILAIDE<7> # "" THEN
         W_Adresse=W_Adresse:" ":ENR_CIVILAIDE<7>
      END
      IF ENR_CIVILAIDE<8> # "" THEN
         W_Adresse=W_Adresse:" ":ENR_CIVILAIDE<8>
      END
   END

   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,13,2;" ":W_Adresse)
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,14,1;"")
   IF ENR_ELTSFACTAIDE<2> # "" THEN
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,14,2;" ":ENR_ELTSFACTAIDE<7>)
   END ELSE
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,14,2;" ":ENR_CIVILAIDE<9>)
   END
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,15,1;"")
   IF ENR_ELTSFACTAIDE<2> # "" THEN
      IF ENR_ELTSFACTAIDE<10> = "0" THEN
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,15,2;" ":ENR_ELTSFACTAIDE<8>:" ":ENR_ELTSFACTAIDE<9>)
      END ELSE
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,15,2;" ":ENR_ELTSFACTAIDE<8>:" ":ENR_ELTSFACTAIDE<9>:" Cedex ":ENR_ELTSFACTAIDE<11>)
      END
   END ELSE
      IF ENR_CIVILAIDE<12> = "0" THEN
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,15,2;" ":ENR_CIVILAIDE<10>:" ":ENR_CIVILAIDE<11>)
      END ELSE
          ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,15,2;" ":ENR_CIVILAIDE<10>:" ":ENR_CIVILAIDE<11>:" Cedex ":ENR_CIVILAIDE<13>)
      END
   END

   READ ENR_ENTETEPIEDFACT FROM F.ENTETEPIEDFACT,W_CleFact[6,4] ELSE ENR_ENTETEPIEDFACT=""
    
   IF ENR_ENTETEPIEDFACT<1> # "" THEN
       ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,16;SPACE(6):ENR_ENTETEPIEDFACT<1>)
   END ELSE
       ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,16;"")
   END
    
   IF ENR_ENTETEPIEDFACT<2> # "" THEN
       ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,17;" ":ENR_ENTETEPIEDFACT<2>)
   END ELSE
       ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,17;"")
   END

   * dtail de la facture
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,18;"#5")
   W_Rang = 19
   W_Count = DCOUNT(ENR_FACTURAIDE<5>,CHAR(253))
   W_TabDyn=""
   W_MontantSoumisTVA=0
   FOR j = 1 TO W_Count
      IF W_TabDyn<1,j>="" THEN
         W_Base=ENR_FACTURAIDE<3,j>
         W_Montant=ENR_FACTURAIDE<5,j>
	 IF W_CleFact[9,1]="P" THEN
            * recherche pour regrouper lignes facture si mme priode, mme libell, mme taux
	    FOR k=j+1 TO W_Count
               IF W_TabDyn<1,k>="" THEN
                  IF ENR_FACTURAIDE<1,j>=ENR_FACTURAIDE<1,k> AND ENR_FACTURAIDE<2,j>=ENR_FACTURAIDE<2,k> AND ENR_FACTURAIDE<4,j>=ENR_FACTURAIDE<4,k> THEN
		     W_TabDyn<1,k>="1"
                     W_Base=W_Base+ENR_FACTURAIDE<3,k>
        	     W_Montant=W_Montant+ENR_FACTURAIDE<5,k>
       	          END	
               END
            NEXT k
         END

         IF ENR_FACTURAIDE<1,j> # "" THEN
            W_Temp = ICONV("01/":ENR_FACTURAIDE<1,j>[5,2]:"/":ENR_FACTURAIDE<1,j>[1,4],"D4/")
            W_Temp = OCONV(W_Temp,"D")

            GOSUB 20
            W_Temp = W_Temp[1,3]:W_Mois:" ":W_Temp[8,4]

            IF W_Temp[4,9] = "septembre" THEN
               ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,1;" SEPT. ":W_Temp[14,4])
            END ELSE
	       W_Len = LEN(W_Temp)
               ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,1;" ":W_Temp[4,W_Len-3])
            END
         END ELSE
            ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,1;"")
         END

         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;ENR_FACTURAIDE<2,j>)
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,3;W_Base) 
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,4;ENR_FACTURAIDE<4,j>) 
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,5;W_Montant) 
         W_TotalMontant=W_TotalMontant + W_Montant
		 
		 * modif ludo
		IF ENR_FACTURAIDE<16,j> = "O" THEN
			W_MontantSoumisTVA = W_MontantSoumisTVA + W_Montant
		END

         W_Rang = W_Rang + 1
         W_TabDyn<1,j>="1"
      END
   NEXT j

   * total de la facture
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"#6")
   W_Rang = W_Rang + 1
   * Modif Guillaume DA9211 07/12/2009 : Spcif Addexia
    ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"TOTAL H.T.":SPACE(16):W_TotalMontant)
	IF ENR_ASSOCIATION<8> = "36000" AND (ENR_FACTURAIDE<8> # "0" AND ENR_FACTURAIDE<8> # "") THEN
        ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;"O")
	END
   * Fin modif Guillaume DA9211   
   
   W_Rang = W_Rang + 1

   IF ENR_FACTURAIDE<8> # "0" AND ENR_FACTURAIDE<8> # "" THEN
      *W_Temp="T.V.A. A ":ENR_FACTURAIDE<8>/100:" %"
	  * modif ludo
	  W_Temp="T.V.A. : ":W_MontantSoumisTVA/100:" x ":ENR_FACTURAIDE<8>/100:" %"
   END ELSE
      W_Temp="T.V.A."
   END
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;W_Temp:SPACE(26-LEN(W_Temp)):ENR_FACTURAIDE<9>)
   W_Rang = W_Rang + 1

   READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE,"1" ELSE ENR_CONSTANTESPAIE=""

   W_TotalAPayerFrs = W_TotalMontant + ENR_FACTURAIDE<9> 

   W_Date="01/":W_Periode[5,2]:"/":W_Periode[1,4]
   W_Date=ICONV(W_Date,"D4/")

   IF INT(W_Date) < INT(ENR_CONSTANTESPAIE<9>) THEN
      W_TotalAPayerEuro = W_TotalAPayerFrs / (ENR_CONSTANTESPAIE<7>/100000)
      W_TotalAPayerEuro = INT(W_TotalAPayerEuro+(1/2))
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"TOTAL A PAYER":" EN FRANCS":SPACE(3):W_TotalAPayerFrs)
      W_MontantARegler = W_TotalAPayerFrs
      W_Rang = W_Rang + 1
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;SPACE(13):" EN EUROS":SPACE(4):W_TotalAPayerEuro)
      W_Devise=" francs"
   END ELSE
   * modif ludo
      *ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"TOTAL A PAYER":" EN EUROS":SPACE(4):W_TotalAPayerFrs)
	  ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"TOTAL A PAYER":SPACE(13):W_TotalAPayerFrs)
      IF INT(ENR_CONSTANTESPAIE<9>) < "12420" AND INT(W_Date) < "12420" THEN
         W_TotalAPayerEuro = W_TotalAPayerFrs * (ENR_CONSTANTESPAIE<7>/100000)
         W_TotalAPayerEuro = INT(W_TotalAPayerEuro+(1/2))
         W_Rang = W_Rang + 1
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;SPACE(13):" EN FRANCS":SPACE(3):W_TotalAPayerEuro)
      END
      W_MontantARegler = W_TotalAPayerFrs
      W_Devise=" euros"
   END
   W_Rang=W_Rang+1

   * liste des intervenants
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"#7")
   W_Rang = W_Rang + 1

   IF ENR_FACTURAIDE<9>="0" OR ENR_FACTURAIDE<9>="" THEN
      * pas de tva
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"T.V.A. non applicable. Article 261-7 du C.G.I.")
   END ELSE
      * tva
      IF ENR_PARAMENTITECOMPTA<15>="1" THEN
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"N. T.V.A. intracommunautaire : ":ENR_ASSOCIATION<36>:" - TVA PAYEE SUR LES ENCAISSEMENTS")
      END ELSE
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"N. T.V.A. intracommunautaire : ":ENR_ASSOCIATION<36>:" - TVA PAYEE SUR LES DEBITS")
      END
   END
   W_Rang = W_Rang + 1

   W_Count = DCOUNT(ENR_FACTURAIDE<10>,CHAR(253))
   IF W_Count > 15 THEN
      W_Count = 15
   END

   FOR j = 1 TO W_Count
	IF W_ImprimeNomPre = "F" THEN
    		IF ENR_FACTURAIDE<10,j> # "" THEN
         		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,1;ENR_FACTURAIDE<10,j>)
		END ELSE
         		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,1;"")
      	END
      	j = j + 1
      	IF ENR_FACTURAIDE<10,j> # "" THEN
         		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;ENR_FACTURAIDE<10,j>)
      	END ELSE
         		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;"")
      	END
      	j = j + 1
      	IF ENR_FACTURAIDE<10,j> # "" THEN
         		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,3;ENR_FACTURAIDE<10,j>)
      	END ELSE
         		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,3;"")
      	END

	END ELSE
    		IF ENR_FACTURAIDE<10,j> # "" THEN
         		READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,ENR_FACTURAIDE<10, j> ELSE PRINT "CIVILAIDANT"
         		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,1;ENR_FACTURAIDE<10,j>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>)
		END ELSE
         		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,1;"")
      	END
      	j = j + 1
      	IF ENR_FACTURAIDE<10,j> # "" THEN
         		READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,ENR_FACTURAIDE<10, j> ELSE PRINT "CIVILAIDANT"
         		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;ENR_FACTURAIDE<10,j>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>)
      	END ELSE
         		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;"")
      	END
      	j = j + 1
      	IF ENR_FACTURAIDE<10,j> # "" THEN
         		READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,ENR_FACTURAIDE<10, j> ELSE PRINT "CIVILAIDANT"
         		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,3;ENR_FACTURAIDE<10,j>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>)
      	END ELSE
         		ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,3;"")
      	END
	END
        
      W_Rang = W_Rang + 1
   NEXT j

   * annotation de la facture
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"#8")
   W_Rang = W_Rang + 1
   
   READ ENR_ANNOTFACT FROM F.ANNOTFACT,W_CleFact[1,9] ELSE ENR_ANNOTFACT=""
    
   FOR j = 1 TO 3
       
      IF ENR_ANNOTFACT<j> # "" THEN
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;ENR_ANNOTFACT<j>)
         W_Rang = W_Rang + 1
      END ELSE
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"")
         W_Rang = W_Rang + 1
      END
   NEXT j

   * pied de facture
   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"#9")
   W_Rang = W_Rang + 1

   IF W_TotalAPayerFrs >= 0 THEN
      READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_CleFact[1,5] ELSE ENR_ELTSFACTAIDE=""

      IF ENR_ELTSFACTAIDE<20> # "" THEN
         IF ENR_ELTSFACTAIDE<25> = "1" THEN
            FOR j = 6 TO 8
                IF ENR_ENTETEPIEDFACT<j> # "" THEN
                   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;ENR_ENTETEPIEDFACT<j>)
                END ELSE
                   ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"")
                END
                W_Rang = W_Rang + 1
            NEXT j
         END ELSE

            FOR j = 3 TO 5
               IF ENR_ENTETEPIEDFACT<j> # "" THEN
                  ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;ENR_ENTETEPIEDFACT<j>)
               END ELSE
                  ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"")
               END
               W_Rang = W_Rang + 1
            NEXT j
         END
      END ELSE
         FOR j = 6 TO 8
             IF ENR_ENTETEPIEDFACT<j> # "" THEN
                ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;ENR_ENTETEPIEDFACT<j>)
             END ELSE
                ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;"")
             END
             W_Rang = W_Rang + 1
         NEXT j
      END

* christophe modif sur le libell ASSOCIATION si plusieurs activites de mm type le 15/05/2009
	W_ActBis=W_CleFact[9,1]
	GOSUB 30
	IF W_MultiAsso="NON" THEN
      BEGIN CASE
         CASE W_CleFact[9,1] = "P"
            W_Temp = "Prestataire"
         CASE W_CleFact[9,1] = "M"
            W_Temp = "Mandataire"
         CASE W_CleFact[9,1] = "I"
            W_Temp = "Intermediaire"
      END CASE
	  
	END ELSE

      BEGIN CASE
         CASE W_CleFact[9,1] = "P"
            W_Temp = "Prest.-":ENR_ASSOCIATION<1>[1,14]
         CASE W_CleFact[9,1] = "M"
            W_Temp = "Mand. -":ENR_ASSOCIATION<1>[1,14]
         CASE W_CleFact[9,1] = "I"
            W_Temp = "Inter.-":ENR_ASSOCIATION<1>[1,14]
      END CASE
	END
	
	
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,1;"") 
      IF (ENR_ELTSFACTAIDE<20> # "" AND ENR_ELTSFACTAIDE<25>="1") OR (ENR_ELTSFACTAIDE<20> = "") THEN
      	 ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;W_Temp) 
      END ELSE
      	 ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;"") 
      END
      W_Rang = W_Rang + 1
      W_Temp = ""
    
      IF ENR_ELTSFACTAIDE<20> # "" THEN
         IF ENR_ELTSFACTAIDE<25> = "1" THEN
            W_Temp = " LE PAPILLON CI-CONTRE SERA "
         END ELSE
            W_Temp = " CETTE FACTURE SERA PRELEVEE "
         END
      END ELSE
         W_Temp = " LE PAPILLON CI-CONTRE SERA "
      END
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,1;W_Temp) 
    
      W_Temp = ""
      IF (ENR_ELTSFACTAIDE<20> # "" AND ENR_ELTSFACTAIDE<25>="1") OR (ENR_ELTSFACTAIDE<20> = "") THEN
         W_Temp = (W_CleFact[1,5]:" ":ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>)[1,22]
      END
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;W_Temp) 

      W_Rang = W_Rang + 1
      W_Temp = ""
    
      IF ENR_ELTSFACTAIDE<20> # "" THEN
         IF ENR_ELTSFACTAIDE<25> = "1" THEN
            W_Temp = " IMPERATIVEMENT A JOINDRE "
         END ELSE
            W_Temp = " AUTOMATIQUEMENT SUR VOTRE COMPTE "
         END
      END ELSE
         W_Temp = " IMPERATIVEMENT A JOINDRE "
      END
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,1;W_Temp) 
    
      W_Temp = ""
      IF (ENR_ELTSFACTAIDE<20> # "" AND ENR_ELTSFACTAIDE<25>="1") OR (ENR_ELTSFACTAIDE<20> = "") THEN
         W_Temp = W_CleFact[16,10]
      END
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;W_Temp) 
      W_Rang = W_Rang + 1
      W_Temp = ""
    
      IF ENR_ELTSFACTAIDE<20> # "" THEN
         IF ENR_ELTSFACTAIDE<25> = "1" THEN
            W_Temp = " A VOTRE REGLEMENT. "
         END ELSE
            W_Temp = OCONV(W_DatePrelev, "D")
            GOSUB 20
            W_Temp = W_Temp[1,3]:W_Mois:" ":W_Temp[8,4]
            W_Temp = " LE ":W_Temp:"."
         END
      END ELSE
         W_Temp = " A VOTRE REGLEMENT. "
      END
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,1;W_Temp) 
     
      W_Temp = ""
      IF (ENR_ELTSFACTAIDE<20> # "" AND ENR_ELTSFACTAIDE<25>="1") OR (ENR_ELTSFACTAIDE<20> = "") THEN
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;W_MontantARegler)
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,3;W_Devise)
      END ELSE
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;"")
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,3;"")
      END
      W_Rang = W_Rang + 1
      W_Temp = ""
    
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,1;"") 
      IF (ENR_ELTSFACTAIDE<20> # "" AND ENR_ELTSFACTAIDE<25>="1") OR (ENR_ELTSFACTAIDE<20> = "") THEN
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;ENR_SECTEUR<1>[1,22]) 
      END ELSE
         ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;"") 
      END
      W_Rang = W_Rang + 1
      W_Temp = ""
   
      IF (ENR_ELTSFACTAIDE<20> # "" AND ENR_ELTSFACTAIDE<25>="1") OR (ENR_ELTSFACTAIDE<20> = "") THEN
         W_Temp = OCONV(DATE(), "D")
         GOSUB 20
         W_Temp = W_Temp[1,3]:W_Mois:" ":W_Temp[8,4]
      END
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,1;"") 
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang,2;W_Temp)
   END ELSE
      W_Temp = " LE MONTANT DE CET AVOIR SERA REGULARISE"  
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;W_Temp)
      W_Rang = W_Rang + 1
      W_Temp = " SUR VOTRE PROCHAINE FACTURE."  
      ENR_ARCHIVEFACT=REPLACE(ENR_ARCHIVEFACT,W_Rang;W_Temp)
   END

*   IF ENR_FACTURAIDE<5> # "" THEN
*Modif Jonathan le 27/07/2009
	  FOR NbMontant = 1 TO DCOUNT(ENR_FACTURAIDE<5>, CHAR(253))
			W_MontantFact = W_MontantFact + ENR_FACTURAIDE<5,NbMontant>
	  NEXT NbMontant
	  IF W_PlancherAct = "" THEN
		  IF ENR_FACTURAIDE<13>="3" THEN
			 W_CLE=W_CleFact[1,25]:"3"
		  END ELSE
			 W_CLE=W_CleFact[1,25]			 
		  END
	  END ELSE
		  IF W_MontantFact >= W_PlancherAct THEN
			  IF ENR_FACTURAIDE<13>="3" THEN
				 W_CLE=W_CleFact[1,25]:"3"					 
			  END ELSE
				 W_CLE=W_CleFact[1,25]
			  END
		  END ELSE
			  IF ENR_FACTURAIDE<13>="3" THEN
				 W_CLE=W_CleFact[1,25]:"3":"1"
			  END ELSE
				 W_CLE=W_CleFact[1,25]:"01"
			  END
		  END 
	  END
*Fin modif jonathan
        WRITE ENR_ARCHIVEFACT ON F.ARCHIVEFACT,W_CLE
	W_CleArch=W_CleFact[1,5]:W_Periode[1,4]
	READ ENR_AIDESARCHIVEFACT FROM F.AIDESARCHIVEFACT,W_CleArch ELSE W_Arch="faux"
	IF W_Arch="faux" THEN
		ENR_AIDESARCHIVEFACT=""
		W_Arch="vrai"
		ENR_AIDESARCHIVEFACT<W_MoiArch,1> = W_CLE

	END ELSE
		IArch = 1
		ExistArch = "FAUX"
		LOOP
		WHILE ExistArch = "FAUX" AND ENR_AIDESARCHIVEFACT<W_MoiArch,IArch> # "" DO
			IF ENR_AIDESARCHIVEFACT<W_MoiArch,IArch> = W_CLE THEN
				ExistArch = "VRAI"
			END ELSE
				IArch = IArch + 1
			END
		REPEAT
		IF ExistArch = "FAUX" THEN
			ENR_AIDESARCHIVEFACT<W_MoiArch,-1>=W_CLE
		END
	END
	WRITE ENR_AIDESARCHIVEFACT ON F.AIDESARCHIVEFACT,W_CleArch
*   END

   RETURN

*****************************************************************************
* Tables de correspondance des mois
20
   BEGIN CASE 
      CASE W_Temp[4,3] = "Jan"
         W_Mois = "janvier"
      CASE W_Temp[4,3] = "Feb"
         W_Mois = "fvrier"
      CASE W_Temp[4,3] = "Mar"
         W_Mois = "mars"
      CASE W_Temp[4,3] = "Apr"
         W_Mois = "avril"
      CASE W_Temp[4,3] = "May"
         W_Mois = "mai"
      CASE W_Temp[4,3] = "Jun"
         W_Mois = "juin"
      CASE W_Temp[4,3] = "Jul"
         W_Mois = "juillet"
      CASE W_Temp[4,3] = "Aug"
         W_Mois = "aot"
      CASE W_Temp[4,3] = "Sep"
         W_Mois = "septembre"
      CASE W_Temp[4,3] = "Oct"
         W_Mois = "octobre"
      CASE W_Temp[4,3] = "Nov"
         W_Mois = "novembre"
      CASE W_Temp[4,3] = "Dec"
         W_Mois = "dcembre"
   END CASE

RETURN
******************************************************************************
* GESTION PAPILLON MULTI ASSO
30
      W_TempReq = 'SSELECT ACTIVITES AVEC 12 = "':W_ActBis:'" PAR 0'
	  
	  W_RequeteTempReq=""
      EXECUTE W_TempReq
      EXECUTE 'SAUVE-LISTE W_RequeteTempReq'
      EXECUTE "LISTE W_RequeteTempReq" RETURNING MSGCODETempReq

	  W_CleActTempReqAnc=""
	  W_MultiAsso="NON"
      IF MSGCODETempReq<1> <> 209 THEN
         SELECT F.ACTIVITES TO W_RequeteTempReq
         W_EndTempReq="FAUX"

         LOOP
            READNEXT W_CleActTempReq FROM W_RequeteTempReq ELSE W_EndTempReq = "VRAI"
         WHILE W_EndTempReq = "FAUX" DO             
			 IF W_CleActTempReqAnc # "" AND  W_CleActTempReq[1,3] # W_CleActTempReqAnc[1,3] THEN
				 W_MultiAsso="OUI"
				 W_EndTempReq = "VRAI"
			 END
			 W_CleActTempReqAnc=W_CleActTempReq
		 REPEAT
	  END

	  
RETURN
