***************************************************************
* Generation du fichier DetailPrestInv a partir de DetailPrest*
* Programme chaine a partir d'un projet VB					  *
* Moulin christophe											  *
* Grgory -> 27/01/04 : correction du bug pour la priode     *
*    en att. 9 de COMPLFACT (si priode 200312, mettre        *
*    200401 et non 200313)                                    *
* Matthieu -> 24/02/09 : Modif Blocage cotisation			  *
* Mikael-> 10/07/2009 : Moification pour les avoirs avec TVA  *
* au lieu d'ajouter on deduit la TVA						  *
***************************************************************

* Ouvertures des fichiers
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACCORD" TO F.ACCORD ELSE PRINT "FICHIER ACCORD"
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE PRINT "FICHIER ACTIVITES"
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE PRINT "FICHIER ACTIVITESAIDE"
OPEN "","ACTIVITESBISAIDE" TO F.ACTIVITESBISAIDE ELSE PRINT "FICHIER ACTIVITESBISAIDE"
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE PRINT "FICHIER ASSOCIATION "
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "FICHIER CIVILAIDANT "
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "FICHIER CIVILAIDE "
OPEN "","COMPLFACT" TO F.COMPLFACT ELSE PRINT "FICHIER COMPLFACT "
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE PRINT "FICHIER COMPTEUR "
OPEN "","COTISANAIDE" TO F.COTISANAIDE ELSE PRINT "FICHIER COTISANAIDE "
OPEN "","DEMANDACC" TO F.DEMANDACC ELSE PRINT "FICHIER DEMANDACC "
OPEN "","DETAILPREST" TO F.DETAILPREST ELSE PRINT "FICHIER DETAILPREST "
OPEN "","DETAILPRESTINV" TO F.DETAILPRESTINV ELSE PRINT "FICHIER DETAILPRESTINV "
OPEN "","ELTSFACTAIDE" TO F.ELTSFACTAIDE ELSE PRINT "FICHIER ELTSFACTAIDE "
OPEN "","FACTURAIDE" TO F.FACTURAIDE ELSE PRINT "FICHIER FACTURAIDE "
OPEN "","FACTURAIDETRIM" TO F.FACTURAIDETRIM ELSE PRINT "FICHIER FACTURAIDETRIM "
OPEN "","FACTURORG" TO F.FACTURORG ELSE PRINT "FICHIER FACTURORG "
OPEN "","FEDEASSOC" TO F.FEDEASSOC ELSE PRINT "FICHIER FEDEASSOC "
OPEN "","HRESATTENTE" TO F.HRESATTENTE ELSE PRINT "FICHIER HRESATTENTE "
OPEN "","HRESHISTOR" TO F.HRESHISTOR ELSE PRINT "FICHIER HRESHISTOR "
OPEN "","NUMEROFACT" TO F.NUMEROFACT ELSE PRINT "FICHIER NUMEROFACT "
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE PRINT "FICHIER ORGPRISECHARGE "
OPEN "","RUBSAISIE" TO F.RUBSAISIE ELSE PRINT "FICHIER RUBSAISIE "
OPEN "","STATACTAIDE" TO F.STATACTAIDE ELSE PRINT "FICHIER STATACTAIDE "
OPEN "","TABLES" TO F.TABLES ELSE PRINT "FICHIER TABLES "
OPEN "","TEMPFACTURAIDE" TO F.TEMPFACTURAIDE ELSE PRINT "FICHIER TEMPFACTURAIDE "
OPEN "","TEMPMONTANTFACT" TO F.TEMPMONTANTFACT ELSE PRINT "FICHIER TEMPMONTANTFACT "
W_ExistCompta="VRAI"
OPEN "","COMPTESPARTICULIERS" TO F.COMPTESPARTICULIERS ELSE W_ExistCompta="FAUX"

*********************************************************
* Recuperation des arguments
PROCREAD ARGUMENTS ELSE PRINT "RECUP ARGUMENTS"
W_CodAssoc=FIELD(ARGUMENTS," ",2)
W_CodeSectResp=FIELD(ARGUMENTS," ",3)
W_CboAnneeMois=FIELD(ARGUMENTS," ",4)
W_ListeActivites=FIELD(ARGUMENTS," ",5)
W_NbActivites=FIELD(ARGUMENTS," ",6)
W_CodeAide=FIELD(ARGUMENTS," ",7)
W_CodeService=FIELD(ARGUMENTS," ",8)
********************************************************************
* Prog Principal

* initialisation des requetes.
W_ReqFedeAssoc=""
W_ReqFede=""
W_RequeteAccord=""
W_RequeteAccordComp=""
W_RequeteHres=""
W_RequeteInv=""
W_RequetePrest=""
W_RequeteRub=""
W_RequeteTempFacturAide=""
W_ReqActivitesBisAideFactPrest = ""
W_CodeOrg=""
W_NOrdre=0
W_NomCle=""
W_GestionTVA="FAUX"

    * Modif Guillaume DA12006 15/02/2012 - On a besoin de la table ds le dbut
    READ ENR_TAUXTVA FROM F.TABLES,"TAUXTVA" ELSE PRINT "TAUXTVA"

   READ ENR_COMPTEUR FROM F.COMPTEUR,"999" ELSE PRINT "COMPTEUR 999"
   IF ENR_COMPTEUR<17>="" OR ENR_COMPTEUR<17>="000" THEN
      W_GestionFede="FAUX"
      W_TabFedeAssoc=""
   END ELSE
      W_GestionFede="VRAI"
      GOSUB 900
   END

   IF W_CodeSectResp # "VIDE" THEN
      W_RespSect=W_CodeSectResp[4,1]
      W_CodeSectResp=W_CodeSectResp[1,3]
   END ELSE
      W_RespSect=""
   END

   IF W_CodeAide="R" OR W_CodeAide="S" OR W_CodeAide="A" THEN
      W_Tri=W_CodeAide
      W_CodeAide=""
   END ELSE
      W_Tri=""
   END

   W_ActHresComp=""
   W_Activites=""
   W_ActivitesAide=""
   W_SectionAnal=""
   W_FacturOrgAbatt=""
   W_DemandeAcc=""
   W_HresAttSemDim=""

   IF W_CboAnneeMois[5,2] = "03" OR W_CboAnneeMois[5,2] = "06" OR W_CboAnneeMois[5,2] = "09" OR W_CboAnneeMois[5,2] = "12" THEN
      W_FinTrimestre="VRAI"      
   END ELSE
      W_FinTrimestre="FAUX"
   END

   IF W_CboAnneeMois[5,2] >= "10" THEN
      W_PeriodeDebTri=W_CboAnneeMois[1,4]:"10"
   END ELSE
      IF W_CboAnneeMois[5,2] >= "07" THEN
         W_PeriodeDebTri=W_CboAnneeMois[1,4]:"07"
      END ELSE
         IF W_CboAnneeMois[5,2] >= "04" THEN
            W_PeriodeDebTri=W_CboAnneeMois[1,4]:"04"
         END ELSE
            W_PeriodeDebTri=W_CboAnneeMois[1,4]:"01"
         END
      END
   END
   
   * modif vanessa 09/09/10
	W_DateDebPeriode="01/":W_CboAnneeMois[5,2]:"/":W_CboAnneeMois[1,4]
	W_DateDebPeriode=ICONV(W_DateDebPeriode,"D4/")
	W_DateFinPeriode=W_DateDebPeriode+32
	W_DateFinPeriode=OCONV(W_DateFinPeriode,"D4/")
	W_DateFinPeriode="01/":W_DateFinPeriode[4,7]
	W_DateFinPeriode=ICONV(W_DateFinPeriode,"D4/")-1  
   IF W_NbActivites # 1 THEN
      FOR i=1 TO W_NbActivites
         W_Activites=REPLACE(W_Activites,i;FIELD(W_ListeActivites,"|",i))
         READ ENR_ACTIVITES FROM F.ACTIVITES,W_Activites<i> ELSE PRINT "ACTIVITES 1"
         W_Activites<i,2>=ENR_ACTIVITES<2>
         j=1
         jTrouve="FAUX"
         LOOP
         WHILE W_SectionAnal<j> # "" AND jTrouve#"VRAI" DO
            IF W_SectionAnal<j,1>=ENR_ACTIVITES<2> THEN
               jTrouve="VRAI"
            END ELSE
               j=j+1
            END
         REPEAT
         IF jTrouve#"VRAI" THEN
            W_SectionAnal<j>=ENR_ACTIVITES<2>
            W_SectionAnal<j,2>=0
            W_SectionAnal<j,3>=W_Activites<i,1>
         END ELSE
            W_CountSectAnal=DCOUNT(W_SectionAnal<j,3>,CHAR(252))+1
            W_SectionAnal<j,3,W_CountSectAnal>=W_Activites<i,1>            
         END
		 * modif vanes 17/11/08
		 * Modif Guillaume DA12006 15/02/2012		 
		 IF ENR_ACTIVITES<11> # "1" THEN
			W_GestionTVA="VRAI"
		 END

		 ***************
      NEXT i
   END ELSE
      W_Activites=REPLACE(W_Activites,1;W_ListeActivites)
      READ ENR_ACTIVITES FROM F.ACTIVITES,W_Activites<1> ELSE PRINT "ACTIVITES 2"
      W_Activites<1,2>=ENR_ACTIVITES<2>
      W_SectionAnal<1>=ENR_ACTIVITES<2>
      W_SectionAnal<1,2>=0
      W_SectionAnal<1,3>=W_Activites<1,1>
		* modif vanes 17/11/08
		 * Modif Guillaume DA12006 15/02/2012		 
		 IF ENR_ACTIVITES<11> # "1" THEN
			W_GestionTVA="VRAI"
		 END
		**************
   END

   W_TypeAct=ENR_ACTIVITES<12>

   ENR_TEMPFACTURAIDE=""
   ENR_FACTURORG=""

   READ ENR_MUTUELLE FROM F.TABLES,"MUTUELLE" ELSE PRINT "MUTUELLE"
   READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CodAssoc ELSE PRINT "ASSOCIATION 1"

   W_CodeComptaPrest=""
   W_CodeComptaCoti=""
   IF W_ExistCompta="VRAI" THEN
      READ ENR_COMPTESPARTICULIERS FROM F.COMPTESPARTICULIERS,W_CodAssoc THEN
         W_CodeComptaPrest=ENR_COMPTESPARTICULIERS<1>
         IF ENR_COMPTESPARTICULIERS<2>#"" THEN
             W_CodeComptaCoti=ENR_COMPTESPARTICULIERS<2>
         END ELSE
             W_CodeComptaCoti=ENR_COMPTESPARTICULIERS<9>
         END
      END
   END ELSE
	ENR_COMPTESPARTICULIERS=""
   END

   * Listage des rubriques de saisie dim Jf
   GOSUB 150

   * Traitement des heures en attente
   GOSUB 300

   IF W_GestionFede="FAUX" THEN

      W_PARAMS=""
      W_SORTIE=""
      W_PARAMS<1>=W_CodAssoc
      W_PARAMS<2>=W_CboAnneeMois
      W_PARAMS<3>=W_CodeAide
      W_PARAMS<4>=W_NbActivites
      W_PARAMS<5>=W_Activites

      CALL GENEREDETAILPRESTINV(W_PARAMS,W_SORTIE)

   END

   * Gestion de DetailPrestInv
   GOSUB 400

* christophe 22/03/2007
* il se peut qu'il n'y ait que des heures en attente   
*   IF W_RienSelect="FAUX" THEN
      * Transformation de TEMPFACTURAIDE EN FACTURAIDE
      GOSUB 500

      EXECUTE 'EFFACER-LISTE W_RequeteRub'
      EXECUTE 'EFFACER-LISTE W_RequeteHres'
      EXECUTE 'EFFACER-LISTE W_RequeteInv'
      EXECUTE 'EFFACER-LISTE W_RequeteAccord'
      EXECUTE 'EFFACER-LISTE W_RequeteAccordComp'

*   END 

   UNLOCK 0

STOP

******************************************
* Teste si la rubrique est dim et Jf
120 

   W_FiniRub="FAUX"
   W_ResRub=3
   LOOP
      READNEXT W_CleRub FROM W_RequeteRub ELSE W_FiniRub="VRAI"
   WHILE W_FiniRub#"VRAI" DO
      IF W_CleRub=W_Rub THEN
         W_ResRub=4
         W_FiniRub="VRAI"
      END
   REPEAT

   EXECUTE "LISTE W_RequeteRub" RETURNING MSGCODE
   IF MSGCODE<1>=209 THEN
      W_RequeteRub=""
   END ELSE
      SELECT F.RUBSAISIE TO W_RequeteRub
   END

RETURN

********************************************************************
* Listage des rubriques dim Jf
150 

   EXECUTE 'SSELECT RUBSAISIE AVEC 2 = "4" PAR 2'
   EXECUTE 'SAUVE-LISTE W_RequeteRub'
   EXECUTE "LISTE W_RequeteRub" RETURNING MSGCODE
   IF MSGCODE<1>=209 THEN
      W_RequeteRub=""
   END ELSE
      SELECT F.RUBSAISIE TO W_RequeteRub
   END

RETURN

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

***************************************************************************
* Traitement des heures en attente                                        *
***************************************************************************

* Requete des heures en attentes.
300 W_Vide = "FAUX"
    W_Temp='SSELECT HRESATTENTE AVEC EntiteHresAttente = "':W_CodAssoc:'"'

    IF W_CodeService # "0" THEN
       W_Temp=W_Temp:' AND AVEC ServiceAide  = "':W_CodeService:'"'
    END

    IF W_CodeSectResp # "VIDE" THEN
       IF W_RespSect="R" THEN
          W_TempBis=' AND AVEC CodeRespHresAttente = "':W_CodeSectResp:'"'
       END ELSE
          W_TempBis=' AND AVEC CodeSectHresAttente = "':W_CodeSectResp:']"'
       END
    END ELSE
       W_TempBis=''
    END

    IF W_CodeAide = "" THEN
       W_Temp=W_Temp:W_TempBis:' PAR @ID'
    END ELSE
       W_Temp=W_Temp:W_TempBis:' AND AVEC @ID = "':W_CodeAide:']" PAR @ID'
    END
    EXECUTE W_Temp
    EXECUTE 'SAUVE-LISTE W_RequeteHres'
    EXECUTE "LISTE W_RequeteHres" RETURNING MSGCODE
    IF MSGCODE<1> # 209 THEN
       SELECT F.ACCORD TO W_RequeteHres
    END ELSE
      W_Vide="VRAI"
    END

    IF W_Vide = "FAUX" THEN
       * Parcours de la requete des heures en attente
       GOSUB 310
    END

RETURN

**********************************************************************
* Affectation des heures aux sections analytiques
305
  W_TAnal="F"
  iAnal=1
  LOOP 
  WHILE W_SectionAnal<iAnal,1> # "" AND W_TAnal="F" DO
     jAnal=1
     LOOP
     WHILE W_SectionAnal<iAnal,3,jAnal> # "" AND W_TAnal="F" DO
        IF W_ActAnal=W_SectionAnal<iAnal,3,jAnal> THEN
           W_TAnal=iAnal
        END
        jAnal=jAnal+1
     REPEAT
     iAnal=iAnal+1
  REPEAT
  IF W_TAnal# "F" THEN
     W_SectionAnal<W_TAnal,2>=W_SectionAnal<W_TAnal,2>+W_NbrHAnal
  END

RETURN

**********************************************************************
* Parcours de la requete des heures en attente
310 
 W_Fini="FAUX"
 W_CleHresAtt=""
W_CleHresAttAnc=""
 W_SurHresAtt="VRAI"

 LOOP
    READNEXT W_CleHresAtt FROM W_RequeteHres ELSE W_Fini="VRAI"
	* christophe 22/03/2007
	IF W_CleHresAttAnc # "" THEN

		IF W_CleHresAtt[1,5] # W_CleHresAttAnc[1,5] OR W_Fini="VRAI" THEN
		
			W_Aide=W_CleHresAttAnc[1,5]
			READ ENR_TEMPFACTURAIDE FROM F.TEMPFACTURAIDE,W_Aide THEN
				* MODIF VANESSA 09/09/10 - gestion hres en attente sur les accords complmentaires
	            *IF W_AccTrouve="VRAI" THEN
	            *   GOSUB 460
				*   IF W_ReqAccComp # "" THEN
				*		* christophe le 09/09/2011 pour gestion effet rtroactif  partir de STATACTAIDE
				*		GOSUB 471
				*		*GOSUB 470
				*   END
	            *   *GOSUB 461
				*   *IF W_ReqAccComp # "" THEN
				*   *	GOSUB 470
				*   *END
	            *   GOSUB 464
	            *   GOSUB 466
	            *   *GOSUB 465
	            *   *GOSUB 466
	            *   W_ActHresComp=""
	            *END ELSE
	               GOSUB 460	   
				   IF W_ReqAccComp # "" THEN
						* christophe le 09/09/2011 pour gestion effet rtroactif  partir de STATACTAIDE
						GOSUB 471				   
						*GOSUB 470
				   END
				   GOSUB 464
	               GOSUB 466		
				   W_ActHresComp=""
				   
	            *END	
				DELETE F.TEMPMONTANTFACT,W_Aide
				WRITE ENR_TEMPFACTURAIDE ON F.TEMPFACTURAIDE,W_Aide
				
*				GOSUB 460
*				
*				IF W_ReqAccComp # "" THEN
*					GOSUB 470
*				END
**				
*				GOSUB 464
*				GOSUB 466		
*				W_ActHresComp=""	
*				
*				DELETE F.TEMPMONTANTFACT,W_Aide
*				WRITE ENR_TEMPFACTURAIDE ON F.TEMPFACTURAIDE,W_Aide
			END
		END
	END
 WHILE W_Fini="FAUX" DO

   W_Aide=W_CleHresAtt[1,5]
   READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_Aide THEN
      IF ENR_ELTSFACTAIDE<1> # "" THEN
         IF ENR_ELTSFACTAIDE<24,W_CodAssoc> # W_CboAnneeMois THEN
            * Gestion des heures en attente
            GOSUB 311
         END
      END ELSE
         * Gestion des heures en attente
         WRITEV "M" ON F.ELTSFACTAIDE,W_Aide,1
         GOSUB 311
      END
   END ELSE
       * Gestion des heures en attente
       WRITEV "M" ON F.ELTSFACTAIDE,W_Aide,1
       GOSUB 311
   END
   W_CleHresAttAnc=W_CleHresAtt  

 REPEAT 
   * Change d'article de la requete Heures Attente
RETURN

*********************************************************************
* Gestion des heures en attente
311

         iAnal=1
         LOOP 
         WHILE W_SectionAnal<iAnal,1> # "" DO
            W_SectionAnal<iAnal,2>=0
            iAnal=iAnal+1
         REPEAT

         W_Periode=W_CleHresAtt[9,6]
	 
         W_DatDebHres=W_CleHresAtt[13,2]:"/":W_CleHresAtt[9,4]
         W_DatDebHres=ICONV("01/":W_DatDebHres,"D4/")
         W_DatePeriode=W_DatDebHres+32
         W_DatePeriode=OCONV(W_DatePeriode,"D4/")
         W_DatePeriode="01/":W_DatePeriode[4,7]
         W_DatePeriode=ICONV(W_DatePeriode,"D4/")-1

         W_DatFinHres=W_DatDebHres+32
         W_DatFinHres=OCONV(W_DatFinHres,"D4/")
         W_DatFinHres="01/":W_DatFinHres[4,7]
         W_DatFinHres=ICONV(W_DatFinHres,"D4/")-1

         W_DemandeAcc=""
         READ ENR_DEMANDACC FROM F.DEMANDACC,W_Aide THEN

           * Preparation des demandes d'accord
           i=1
           LOOP
           WHILE ENR_DEMANDACC<1,i>#"" DO
             W_DemAccInactif="FAUX"
             IF ENR_DEMANDACC<3,i> <= W_DatFinHres THEN
                IF ENR_DEMANDACC<4,i> >= W_DatDebHres THEN
                   * Compris dans la periode
                   READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_DEMANDACC<1,i> ELSE PRINT "ORGPRISECHARGE 1"
					W_CodeOrg=ENR_DEMANDACC<1,i>
					
                   IF ENR_ORGPRISECHARGE<18>="P" AND ENR_ORGPRISECHARGE<24>="H" THEN
                      j=1
                      l=0
                      LOOP
                         W_ActOrg=ENR_ORGPRISECHARGE<47,j>
                      WHILE W_ActOrg#"" DO
                         FOR k=1 TO W_NbActivites
                            IF W_Activites<k,1>=W_ActOrg THEN
                               l=l+1
                               W_DemandeAcc<1,i,l>=W_ActOrg
                               W_DemAccInactif="VRAI"
                            END
                         NEXT k
                         j=j+1
                      REPEAT
						IF ENR_ORGPRISECHARGE<51> = "" THEN
							ENR_ORGPRISECHARGE<51> = "0"
						END
						W_DemandeAcc<2,i>=ENR_ORGPRISECHARGE<51>
						* modif vanessa 17/12/09
						W_DemandeAcc<3,i>=ENR_DEMANDACC<6,i>
						W_DemandeAcc<4,i>=ENR_DEMANDACC<1,i>
						W_DemandeAcc<5,i>=ENR_ORGPRISECHARGE<57>	
                   END
                END
             END
             IF W_DemAccInactif="FAUX" THEN
*                ENR_DEMANDACC<7,i,1>=0
                W_DemandeAcc<1,i,1>=0
             END
             i=i+1
           REPEAT
         END ELSE
            ENR_DEMANDACC=""
            W_DemandeAcc=""
         END
        * Recherche des demandes d'accord pour l'activite
         READ ENR_HRESATTENTE FROM F.HRESATTENTE,W_CleHresAtt ELSE PRINT "HRESATTENTE 1"
         GOSUB 800

      IF W_GestionFede="FAUX" THEN
         READ ENR_TEMPFACTURAIDE FROM F.TEMPFACTURAIDE,W_Aide THEN
            iCivilAidant=1
            LOOP
            WHILE ENR_TEMPFACTURAIDE<10,iCivilAidant> # "" DO
               READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,ENR_TEMPFACTURAIDE<10,iCivilAidant> ELSE ENR_CIVILAIDANT=""
               ENR_TEMPFACTURAIDE<13,iCivilAidant>=ENR_CIVILAIDANT<2>:ENR_CIVILAIDANT<3>
               iCivilAidant=iCivilAidant+1
            REPEAT
         END ELSE
            ENR_TEMPFACTURAIDE=""
         END
      END ELSE
         READ ENR_TEMPFACTURAIDE FROM F.TEMPFACTURAIDE,W_Aide ELSE ENR_TEMPFACTURAIDE=""
      END

         i=1
         LOOP
         WHILE ENR_HRESATTENTE<1,i> # "" DO
            IF ENR_HRESATTENTE<4,i> # "" THEN
     	       IF INDEX(W_Activites,ENR_HRESATTENTE<4,i>,1) # 0 THEN

		  W_RubSaisie=ENR_HRESATTENTE<2,i>

                  W_Rub=W_RubSaisie
                  GOSUB 120
                  IF W_ResRub=4 THEN
                     W_HresAttSemDim="1"
                  END ELSE
                     W_HresAttSemDim="2"
                  END

                  * Traitement des Mv
                  W_ExistActDem="FAUX"

                  W_Count7DemHres=DCOUNT(W_DemandeAcc<1>,CHAR(253))
                  FOR j=1 TO W_Count7DemHres
                     k=1 
                     LOOP
                     WHILE W_DemandeAcc<1,j,k> # "" DO
                        IF (W_DemandeAcc<1,j,k>=ENR_HRESATTENTE<4,i> AND W_DemandeAcc<2,j> = "0") OR (W_DemandeAcc<1,j,k>=ENR_HRESATTENTE<4,i> AND W_DemandeAcc<2,j> # "0" AND W_DemandeAcc<2,j>=W_HresAttSemDim) THEN
                           j=999
                           W_ExistActDem="VRAI"  
                        END
                        k=k+1
                     REPEAT
                  NEXT j

                  IF W_ExistActDem="FAUX" THEN
                     * si pas de demande alors recherche d'accord
                     W_Mv="VRAI"
                     NbrHeuresAtt=ENR_HRESATTENTE<3,i>
                     W_ActHres=ENR_HRESATTENTE<4,i>
 
                     READ ENR_ACTIVITES FROM F.ACTIVITES,W_ActHres ELSE PRINT "ACTIVITES 3"
                  
                     W_CodeAidant=ENR_HRESATTENTE<1,i>
                     GOSUB 320
                     * Delete de la Mv ou Ms d'HresAttente car pas de demandes d'accord
                     GOSUB 325
					 
					 * MODIF VANESSA 23/09/09
			         *GOSUB 312
					 ******					 
                  END
               END
            END ELSE
               GOSUB 315
            END
            i=i+1
         REPEAT
      
		* modif christophe le 29/10/2009, il faut le faire aprs avoir parcouru toutes les lignes des heures en attente de la priode.
		GOSUB 312
	  
         * Si abattement alors affectation
         IF W_FacturOrgAbatt#"" THEN
            GOSUB 380
            W_FacturOrgAbatt=""
         END
	 
         * Ecriture d'activitesaide
         GOSUB 495
*         ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,13)
         IF ENR_TEMPFACTURAIDE # "" THEN
            ENR_TEMPFACTURAIDE<13>=""
            WRITE ENR_TEMPFACTURAIDE ON F.TEMPFACTURAIDE,W_Aide
         END
		 
         IF ENR_HRESATTENTE<1>="" THEN
            DELETE F.HRESATTENTE,W_CleHresAtt
         END ELSE
            WRITE ENR_HRESATTENTE ON F.HRESATTENTE,W_CleHresAtt
         END
		
        * W_CleHresAttAnc=W_CleHresAtt

RETURN

*********************************************************************
312
* MODIF VANESSA 23/09/09 - GESTION FACTURATION AVANCE
	W_PassePeriodeAtt="False"

	IF ENR_HRESATTENTE<10> # "" AND ENR_HRESATTENTE<10> # "0" THEN
		W_CountFact=DCOUNT(ENR_TEMPFACTURAIDE<1>,CHAR(253))
		W_CumMontFact=0
		
		FOR iFact312=1 TO W_CountFact
			IF ENR_TEMPFACTURAIDE<1,iFact312>=W_Periode THEN
				W_CumMontFact=W_CumMontFact+ENR_TEMPFACTURAIDE<5,iFact312>
				W_PassePeriodeAtt="True"	;* christophe le 30/10/2009
			END
		NEXT iFact312
		
		W_CumHreAtt=(ENR_HRESATTENTE<11>*ENR_HRESATTENTE<10>)/100
		W_CumHreAtt=INT(W_CumHreAtt+(1/2))
		
		IF W_PassePeriodeAtt="True" THEN
		
			* modif vanessa 17/12/09 - DA 9194-01 - GESTION FEDE
			IF W_CumMontFact=W_CumHreAtt AND W_GestionFede="FAUX" THEN
				FOR iFact312=W_CountFact TO 1 STEP -1
					IF ENR_TEMPFACTURAIDE<1,iFact312>=W_Periode THEN
						ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,1,iFact312)
						ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,2,iFact312)
						ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,3,iFact312)
						ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,4,iFact312)
						ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,5,iFact312)
						ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,6,iFact312)
						ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,7,iFact312)
						ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,14,iFact312)
						ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,15,iFact312)
						ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,16,iFact312)
					END
				NEXT iFact312
			END ELSE
				ENR_TEMPFACTURAIDE<1,iFact312>=W_Periode
				ENR_TEMPFACTURAIDE<2,iFact312>="AVOIR FACTURE ":ENR_HRESATTENTE<12>
				ENR_TEMPFACTURAIDE<3,iFact312>=ENR_HRESATTENTE<11>*(-1)
				ENR_TEMPFACTURAIDE<4,iFact312>=ENR_HRESATTENTE<10>
				W_CumHreAtt=(ENR_TEMPFACTURAIDE<3,iFact312>*ENR_TEMPFACTURAIDE<4,iFact312>)/100
				W_CumHreAtt=INT(W_CumHreAtt-(1/2))
				ENR_TEMPFACTURAIDE<5,iFact312>=W_CumHreAtt
				ENR_TEMPFACTURAIDE<6,iFact312>=W_CodeComptaPrest
				ENR_TEMPFACTURAIDE<7,iFact312>=ENR_ACTIVITES<2>
				ENR_TEMPFACTURAIDE<14,iFact312>=ENR_ORGPRISECHARGE<50>
				* modif vanessa 16/04/12 - da 12032
				ENR_TEMPFACTURAIDE<15,iFact312>="A":ENR_HRESATTENTE<9>
				* Modif Guillaume DA12006 15/02/2012
*                 IF W_GestionTVA="VRAI" THEN
* 					ENR_TEMPFACTURAIDE<16,iFact312>="O"
* 				END ELSE
* 					ENR_TEMPFACTURAIDE<16,iFact312>="N"					
* 				END
                ENR_TEMPFACTURAIDE<16,iFact312> = ENR_ACTIVITES<11>	
			END
			
			WRITE ENR_TEMPFACTURAIDE ON F.TEMPFACTURAIDE,W_Aide
		END
	END
	
RETURN

*********************************************************************
315
            * Traitement des Ms
            j=1
            LOOP
            WHILE ENR_HRESATTENTE<8,i,j> # "" AND i # 0 DO

     	       IF INDEX(W_Activites,ENR_HRESATTENTE<8,i,j>,1) # 0 THEN

                  W_RubSaisie=ENR_HRESATTENTE<6,i,j>

                  W_Rub=W_RubSaisie
                  GOSUB 120
                  IF W_ResRub=4 THEN
                     W_HresAttSemDim="1"
                  END ELSE
                     W_HresAttSemDim="2" 
                  END

                  k=1
                  W_ExistActDem="FAUX"
                  LOOP
                  WHILE W_DemandeAcc<1,k> # "" DO
                     l=1 
                     LOOP
                     WHILE W_DemandeAcc<1,k,l> # "" DO
                        IF (W_DemandeAcc<1,k,l>=ENR_HRESATTENTE<8,i,j> AND W_DemandeAcc<2,k> = "0") OR (W_DemandeAcc<1,k,l>=ENR_HRESATTENTE<8,i,j> AND W_DemandeAcc<2,k> # "0" AND W_DemandeAcc<2,k>=W_HresAttSemDim) THEN
                           k=999
                           j=999
                           W_ExistActDem="VRAI"
                        END
                        l=l+1
                     REPEAT
                     k=k+1
                  REPEAT
                  IF W_ExistActDem="FAUX" THEN
                     * si pas de demande alors recherche d'accord
                     W_Mv="FAUX"
                     NbrHeuresAtt=ENR_HRESATTENTE<7,i,j>
                     W_CodeAidant=ENR_HRESATTENTE<1,i>
                     W_ActHres=ENR_HRESATTENTE<8,i,j>
                     READ ENR_ACTIVITES FROM F.ACTIVITES,W_ActHres ELSE PRINT "ACTIVITES 4"
                     W_DateJour=ENR_HRESATTENTE<5,i,j>:"/":W_CleHresAtt[13,2]:"/":W_CleHresAtt[9,4]
                     W_DateJour=ICONV(W_DateJour,"D4/")

                     GOSUB 320
                     * Delete de la Mv d'HresAttente car pas de demandes d'accord
                     GOSUB 325
                  END
               END

               j=j+1
            REPEAT

RETURN 

*********************************************************************
* Parcours des accords et affectation des heures en attente.
320
   * Requete et preparation des Accords
   W_ReqAcc=""
   GOSUB 330

   W_Count=DCOUNT(W_ReqAcc,CHAR(254))
   HeuresPrisAcc=0
	W_AccTrouve="FAUX"
	
 IF W_ReqAcc # "" THEN
	W_AccTrouve="VRAI"
   * parcours les accords
   FOR k=1 TO W_Count
    IF NbrHeuresAtt > 0 THEN
      W_MontHistOrg=0   
      l=1
      W_Pass="FAUX"
      W_CleAcc=W_ReqAcc<k,1>

      READ ENR_ACCORD FROM F.ACCORD,W_CleAcc ELSE PRINT "ACCORD 1"
      IF W_Mv="FAUX" THEN
         IF ENR_ACCORD<5> <= W_DateJour AND ENR_ACCORD<6> >= W_DateJour THEN
            W_Pass="VRAI"
         END
      END ELSE
          W_Pass="VRAI"
      END           

      IF W_Pass="VRAI" THEN

         LOOP
         WHILE W_ReqAcc<k,2,l> # "" DO


               IF (W_ActHres = W_ReqAcc<k,2,l> AND W_ReqAcc<k,4> = "0") OR (W_ActHres = W_ReqAcc<k,2,l> AND W_ReqAcc<k,4> # "0" AND W_ReqAcc<k,4>=W_HresAttSemDim) THEN

			   
				 * Christophe le 24/01/2013 Gestion du montant max du CG
				 W_MontantMaxCG=W_ReqAcc<k,5>			   
			   
                  NbrHeuresAcc=W_ReqAcc<k,3>-NbrHeuresAtt

                  IF NbrHeuresAcc > 0 THEN
                     HeuresPrisAcc=NbrHeuresAtt
                     W_ReqAcc<k,3>=NbrHeuresAcc
                     NbrHeuresAtt=0
                     NbrHeuresAcc=0
                     l=999
                     k=999
                  END ELSE
                     HeuresPrisAcc=W_ReqAcc<k,3>
                     W_ReqAcc=DELETE(W_ReqAcc,k)
                     W_Count=W_Count-1
                     k=k-1
                     NbrHeuresAtt=ABS(NbrHeuresAcc)
                     l=999
                  END

                  W_ActAnal=W_ActHres
                  W_NbrHAnal=HeuresPrisAcc
                  GOSUB 305

                  * TEMPFACTURAIDE et FACTURORG             
                  GOSUB 340

                  * Gestion du tableau tampon d'ActivitesAide
                  GOSUB 490

                  *Mise a jour de l'historique
                  GOSUB 390
              END
              l=l+1
          REPEAT
      END
    END
   NEXT k
 END

   IF NbrHeuresAtt > 0 THEN
      * il y a des heures non affectes = Facturation  taux plein
      HeuresPrisAcc=0
      GOSUB 360
   END

RETURN

**********************************************************************
* Delete de la Mv d'HresAttente car pas de demandes d'accord
325

   W_Suppi="VRAI"
   IF W_Mv="FAUX" THEN
      IF ENR_HRESATTENTE<5,i,j+1> = "" THEN
         ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,1,i)
         ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,2,i)
         ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,3,i)
         ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,4,i)
         ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,5,i)
         ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,6,i)
         ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,7,i)
         ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,8,i)
      END ELSE
         W_Suppi="FAUX"
         ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,5,i,j)
         ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,6,i,j)
         ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,7,i,j)
         ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,8,i,j)
      END
      j=j-1
   END ELSE
      ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,1,i)
      ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,2,i)
      ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,3,i)
      ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,4,i)
   END

   IF W_Suppi="VRAI" THEN
      i=i-1
   END

RETURN

**********************************************************************
* Requete Accord
330
   W_FiniAcc="FAUX"
   W_Vide="FAUX"
   *IF W_CodeService=0 THEN
    W_Temp='SSELECT ACCORD AVEC @ID = "':W_Aide:']" AND AVEC 18 <> "O" AND AVEC NotifOrg = "H" AND AVEC TypeOrg = "P" AND AVEC TypeActOrg = "P"'
   *END ELSE
    *W_Temp='SSELECT ACCORD AVEC @ID = "':W_Aide:']" AND AVEC 18 <> "O" AND AVEC NotifOrg = "H" AND AVEC TypeOrg = "P" AND AVEC ActivitesOrg = "':EXTRACT(W_Activites,1,1):'"'
    *FOR k=2 TO W_NbActivites
    *  W_Temp=W_Temp:' OR = "':W_Activites<k,1>:'"'
    *NEXT i
   *END
   W_Temp=W_Temp:' PAR 8 PAR 5 PAR 6'
   EXECUTE W_Temp
   EXECUTE 'SAUVE-LISTE W_RequeteAccord'
   EXECUTE "LISTE W_RequeteAccord" RETURNING MSGCODE
   IF MSGCODE<1>=209 THEN
      W_Vide="VRAI"
   END ELSE
      SELECT F.ACCORD TO W_RequeteAccord
   END

   IF W_Vide#"VRAI" THEN
      W_ReqAcc=""
      W_IndReqAcc=0
      LOOP
         READNEXT W_CleAcc FROM W_RequeteAccord ELSE W_FiniAcc="VRAI"
      WHILE W_FiniAcc="FAUX" DO
         READ ENR_ACCORD FROM F.ACCORD,W_CleAcc ELSE PRINT "ACCORD 2"
         IF ENR_ACCORD<5> <= W_DatFinHres THEN
            IF ENR_ACCORD<6> >= W_DatDebHres THEN
               * Compris dans la periode
                READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE PRINT "ORGPRISECHARGE 2"
				W_CodeOrg=ENR_ACCORD<1>
                k=1
                m=0
                LOOP
                   W_ActOrg=ENR_ORGPRISECHARGE<47,k>
                WHILE W_ActOrg#"" DO
                    FOR l=1 TO W_NbActivites
                        IF W_Activites<l,1>=W_ActOrg THEN
							IF m=0 THEN
								W_HeuresReste=0
								
								* Modif Greg - 06/03/12 - DA12006 - Gestion des priodes manquantes dans l'historique de l'accord.
								W_Periode1000=W_Periode
								GOSUB 1000
								* Fin modif Greg - 06/03/12
								
								IF ENR_ORGPRISECHARGE<19>=2 THEN
									iAccHresHisto=1
									LOOP
									WHILE W_Periode < ENR_ACCORD<14,iAccHresHisto> AND ENR_ACCORD<14,iAccHresHisto> # "" DO
										iAccHresHisto=iAccHresHisto+1
									REPEAT
									* Modif Guillaume DA10260 : L'attribut 22 n'est plus utilis pour a
* 									IF ENR_ACCORD<22> # "" THEN
* 										W_HresAllouees=ENR_ACCORD<22>
* 									END ELSE
*										W_HresAllouees=ENR_ACCORD<9>
* 									END
		                            IF ENR_ACCORD<22> # "" THEN
										IF ENR_ACCORD<22> > ENR_ACCORD<9> THEN
											W_HresAllouees=ENR_ACCORD<22>
										END ELSE
											W_HresAllouees=ENR_ACCORD<9>
										END
									END ELSE
										W_HresAllouees=ENR_ACCORD<9>
									END

									IF ENR_ACCORD<14,iAccHresHisto> = W_Periode THEN
										W_HeuresReste=W_HresAllouees-ENR_ACCORD<16,iAccHresHisto>
									END ELSE
										W_HeuresReste=W_HresAllouees
									END
								END ELSE
									IF ENR_ACCORD<17,1>="" THEN
										W_HeuresReste=ENR_ACCORD<9> 
									END ELSE
										IF ENR_ORGPRISECHARGE<19>=1 THEN
											* MODIF VANESSA 08/09/10 
											iAccHresHisto=1
											LOOP
											UNTIL W_Periode > ENR_ACCORD<14,iAccHresHisto> OR ENR_ACCORD<14,iAccHresHisto> = "" DO
												iAccHresHisto=iAccHresHisto+1
											REPEAT									
											W_HeuresReste=ENR_ACCORD<17,iAccHresHisto> + ENR_ACCORD<9>
										END ELSE
											W_HeuresReste=ENR_ACCORD<17,1>
										END
									END
								END
								IF W_HeuresReste > 0 THEN	;* #
									W_IndReqAcc=W_IndReqAcc+1
									W_ReqAcc=REPLACE(W_ReqAcc,W_IndReqAcc,3;W_HeuresReste)
									W_ReqAcc=REPLACE(W_ReqAcc,W_IndReqAcc,1;W_CleAcc)
									IF ENR_ORGPRISECHARGE<51> = "" THEN
										ENR_ORGPRISECHARGE<51> = "0"
									END
									W_ReqAcc=REPLACE(W_ReqAcc,W_IndReqAcc,4;ENR_ORGPRISECHARGE<51>)
									* Christophe le 24/01/2013 apa cg36
									W_ReqAcc=REPLACE(W_ReqAcc,W_IndReqAcc,5;ENR_ACCORD<23>)									
								END
							END
							IF W_HeuresReste > 0 THEN		;* #
								m=m+1
								W_ReqAcc<W_IndReqAcc,2,m>=W_ActOrg
							END
                        END
                    NEXT l
					k=k+1
                REPEAT
            END
         END

      REPEAT
   END

RETURN

**********************************************************************
* Rempli les fichiers TEMPFACTURAIDE et FACTURORG
340
    * Remplissage de TempFacturAide
	
    READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE PRINT "ORGPRISECHARGE 3"
	W_ColonneDimJf=INDEX(ENR_ORGPRISECHARGE<40>,"26",1)
	
    W_CodeOrg=ENR_ACCORD<1>
	*Anthony 06/06/11
	IF ENR_ORGPRISECHARGE<59> = "" THEN
		W_LibOrg=ENR_ORGPRISECHARGE<1>
	END ELSE
		W_LibOrg=ENR_ORGPRISECHARGE<59>
	END
	*Fin Anthony
	
    * Recherche du taux normal de l'organisme
    GOSUB 350
    * Recherche du taux majore de l'organisme
    GOSUB 345

    IF W_DatePeriode >= ENR_ACCORD<11,1> THEN
       iTaux=1
       W_Taux=ENR_ACCORD<13,1>
       W_TauxMutuelle=ENR_ACCORD<12,1>
    END ELSE
       iTaux=2
       LOOP
       WHILE W_DatePeriode < ENR_ACCORD<11,iTaux> AND ENR_ACCORD<11,iTaux> # "" DO
          iTaux=iTaux+1
       REPEAT
       IF ENR_ACCORD<11,iTaux> # "" THEN 
          W_Taux=ENR_ACCORD<13,iTaux>
          W_TauxMutuelle=ENR_ACCORD<12,iTaux>
       END ELSE
          W_Taux=0
          W_TauxMutuelle=0
       END
    END
    IF W_TauxMutuelle="" THEN
       W_TauxMutuelle=0
    END

    READ ENR_RUBSAISIE FROM F.RUBSAISIE,W_RubSaisie ELSE PRINT "RUBSAISIE"

    IF ENR_ORGPRISECHARGE<48> = "%" THEN
	IF ENR_RUBSAISIE<2>=4 THEN
          W_Taux=INT(ENR_ACCORD<10,iTaux> * W_TauxRembOrgMaj / 10000 + 1/2)
	END ELSE
          W_Taux=INT(ENR_ACCORD<10,iTaux> * W_TauxRembOrg / 10000 + 1/2)
	END
*       IF W_Taux # 0 THEN
*       END
    END

    * Recherche et affecte dans TempFacturAide
    iFact=1
	W_MAJ="FAUX"
    IF ENR_RUBSAISIE<2>=4 THEN
       W_TauxOrg=W_TauxRembOrgMaj
       W_TauxTarife=W_TauxTarifeMaj
	   * modif vanes 12/02/09
	   W_MAJ="VRAI"
    END ELSE
       W_TauxOrg=W_TauxRembOrg
	   * modif vanes 12/02/09
	   W_MAJ="FAUX"
    END


	* Christophe le 23/02/2011 - Mis en commentaire  : Si taux dimanche = taux semaine ne plus transformer les heures dimanches en semaines.
	* rajout le 20/05/2011 - si pas de colonne dim JF alors on considre quand mme les heures en semaine.
	IF W_ColonneDimJf = 0 THEN
		IF ENR_RUBSAISIE<2>=4 THEN
		   IF W_TauxRembOrg=W_TauxRembOrgMaj THEN
			  ENR_RUBSAISIE<2>=3
		   END
		END
	END
*
	* modif vanessa 15/05/09
	*IF (ENR_ORGPRISECHARGE<55>="1" AND ENR_ORGPRISECHARGE<51>= "0") OR (ENR_ORGPRISECHARGE<55>="1" AND ENR_ORGPRISECHARGE<51>= "") THEN
	IF ENR_ORGPRISECHARGE<55>="1"  THEN

		IF ENR_RUBSAISIE<2>=3 THEN
			* modif ludo 24/11/08
			*IF W_TauxRembOrgMaj # W_TauxRembOrg THEN
				*W_LibOrg="COUT INTERVENTION SEMAINE"
			*END ELSE
				*W_LibOrg="COUT INTERVENTION"				
			*END
			W_LibOrg="COUT INTERVENTION"
			
			W_TauxTest=W_TauxRembOrg
		END ELSE
			W_LibOrg="COUT INTERVENTION DIMANCHE ET JF"
			W_TauxTest=W_TauxRembOrgMaj		
		END	
	END ELSE
		W_TauxTest=W_Taux
	END
	
    GOSUB 370

******************
* pave suplementaire

    READ W_ActHresComp FROM F.TEMPMONTANTFACT,W_CleAcc[1,5] ELSE W_ActHresComp = ""

    W_AHComp="FAUX"
    iAHComp=1
    LOOP
    WHILE W_ActHresComp<iAHComp> # "" AND W_AHComp = "FAUX" DO
       IF W_ActHres=W_ActHresComp<iAHComp,1> AND W_ActHresComp<iAHComp,4> = W_Periode THEN
          W_ActHresComp<iAHComp,2>=W_ActHresComp<iAHComp,2> + HeuresPrisAcc
          W_ActHresComp<iAHComp,3>=W_ActHresComp<iAHComp,3> + INT(W_Taux*HeuresPrisAcc/100+1/2)
* Ajout au 19/04/2005
* erreur si ++ accords principaux	    
*	    IF W_ActHresComp<iAHComp,3> > ENR_TEMPFACTURAIDE<5,iFact> THEN
*		 W_ActHresComp<iAHComp,3> = ENR_TEMPFACTURAIDE<5,iFact>
*         END

          W_AHComp = "VRAI"
       END
       
       iAHComp=iAHComp+1
    REPEAT

    IF W_AHComp = "FAUX" THEN
       W_ActHresComp<iAHComp,1>=W_ActHres
       W_ActHresComp<iAHComp,2>=HeuresPrisAcc
       W_ActHresComp<iAHComp,3>=ENR_TEMPFACTURAIDE<5,iFact>
       W_ActHresComp<iAHComp,4>=W_Periode
    END
   WRITE W_ActHresComp ON F.TEMPMONTANTFACT,W_CleAcc[1,5]

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

    * Positionnement sur l'article de FacturOrg
    W_CleFacturOrg=ENR_ACCORD<1>:"P":W_CleAcc:W_Periode
    W_NumOrdre="01"
    iCleFact=1
    LOOP
       READ ENR_FACTURORG FROM F.FACTURORG,W_CleFacturOrg:W_NumOrdre ELSE ENR_FACTURORG = ""
    WHILE ENR_FACTURORG<9> # "" DO
       iCleFact=iCleFact+1
       W_NumOrdre=iCleFact "R%2"
    REPEAT
	

    W_Mfp="FAUX"
    IF ENR_RUBSAISIE<2>=3 THEN
       * main d'oeuvre directe
       * MFP
       IF ENR_ORGPRISECHARGE<39> = "M" THEN
          IF ENR_FACTURORG<1> = "" THEN
             ENR_FACTURORG<1>=HeuresPrisAcc                
             ENR_FACTURORG<2>=W_Taux
             ENR_FACTURORG<3>=W_TauxRembOrg-W_Taux-W_TauxMutuelle
			****** modif du 03/10/07 vanes 
             * ENR_FACTURORG<4>=INT(ENR_FACTURORG<3> * HeuresPrisAcc/100+1/2)
			 W_MontTemp=INT((ENR_FACTURORG<2>+ENR_FACTURORG<3>) * HeuresPrisAcc/100+1/2)
			 W_MontTemp=W_MontTemp-INT(ENR_FACTURORG<2> * HeuresPrisAcc/100+1/2)
             ENR_FACTURORG<4>=W_MontTemp
			******* fin  modif
             W_MontHistOrg=W_MontHistOrg+INT(ENR_FACTURORG<2> * HeuresPrisAcc/100+1/2)
             W_TauxOrgAnal=ENR_FACTURORG<3>
             GOSUB 341
          END ELSE
		* travailler uniquement sur la 1ere MV.08/05/2004
             W_MontHistOrg=W_MontHistOrg-INT(ENR_FACTURORG<2,1> * ENR_FACTURORG<1,1>/100+1/2)
             ENR_FACTURORG<1,1>=ENR_FACTURORG<1,1> + HeuresPrisAcc
			****** modif du 03/10/07 vanes 
             * ENR_FACTURORG<4,1>=INT(ENR_FACTURORG<3,1> * ENR_FACTURORG<1,1>/100+1/2)
			 W_MontTemp=INT((ENR_FACTURORG<2,1>+ENR_FACTURORG<3,1>) * ENR_FACTURORG<1,1>/100+1/2)
			 W_MontTemp=W_MontTemp-INT(ENR_FACTURORG<2,1> * ENR_FACTURORG<1,1>/100+1/2)
			 ENR_FACTURORG<4,1>=W_MontTemp	
			******* fin  modif			 
             W_MontHistOrg=W_MontHistOrg+INT(ENR_FACTURORG<2,1> * ENR_FACTURORG<1,1>/100+1/2)
             W_TauxOrgAnal=ENR_FACTURORG<3,1>
             GOSUB 341
          END
          IF W_TauxMutuelle # 0 THEN
             IF ENR_FACTURORG<1,2> = "" THEN
                ENR_FACTURORG<1,2>=HeuresPrisAcc                
                ENR_FACTURORG<2,2>=W_Taux
                ENR_FACTURORG<3,2>=W_TauxMutuelle
				****** modif du 03/10/07 vanes 				
                * ENR_FACTURORG<4,2>=INT(ENR_FACTURORG<3,2> * HeuresPrisAcc/100+1/2)
				W_MontTemp=INT((ENR_FACTURORG<2,2>+ENR_FACTURORG<3,2>) * HeuresPrisAcc/100+1/2)
				W_MontTemp=W_MontTemp-INT(ENR_FACTURORG<2,2> * HeuresPrisAcc/100+1/2)
				ENR_FACTURORG<4,2>=W_MontTemp
				******* fin  modif				
                W_TauxOrgAnal=W_TauxMutuelle
                W_Mfp="VRAI"
                GOSUB 341

             END ELSE
* Partie mutuelle ne joue pas sur le montant bnficiaire
*                W_MontHistOrg=W_MontHistOrg-INT(ENR_FACTURORG<3,2> * ENR_FACTURORG<1>/100+1/2)
                ENR_FACTURORG<1,2>=ENR_FACTURORG<1,2> + HeuresPrisAcc
				****** modif du 03/10/07 vanes
                * ENR_FACTURORG<4,2>=INT(ENR_FACTURORG<3,2> * ENR_FACTURORG<1,2>/100 +1/2)
				W_MontTemp=INT((ENR_FACTURORG<2,2>+ENR_FACTURORG<3,2>) * ENR_FACTURORG<1,2>/100+1/2)
				W_MontTemp=W_MontTemp-INT(ENR_FACTURORG<2,2> * ENR_FACTURORG<1,2>/100+1/2)
				ENR_FACTURORG<4,2>=W_MontTemp
				******* fin  modif
                W_TauxOrgAnal=ENR_FACTURORG<3,2>
                W_Mfp="VRAI"
                GOSUB 341

             END
          END          
         * FIN MFP
       END ELSE

		  IF ENR_FACTURORG<1> = "" THEN
             ENR_FACTURORG<1>=HeuresPrisAcc
             ENR_FACTURORG<2>=W_Taux
             ENR_FACTURORG<3>=W_TauxRembOrg - W_Taux
			****** modif du 03/10/07 vanes
             * ENR_FACTURORG<4>=INT(ENR_FACTURORG<3> * HeuresPrisAcc/100+1/2)
			 W_MontTemp=INT((ENR_FACTURORG<2>+ENR_FACTURORG<3>) * HeuresPrisAcc/100+1/2)
			 W_MontTemp=W_MontTemp-INT(ENR_FACTURORG<2> * HeuresPrisAcc/100+1/2)
			 
			 *christophe le 24/01/2013 cg36
			 *ENR_FACTURORG<4>=W_MontTemp
			 
			 IF W_MontantMaxCG="" THEN
				* pas de gestion des montants financeurs
				ENR_FACTURORG<4>=W_MontTemp
			 END ELSE
				 IF W_MontTemp > W_MontantMaxCG THEN
					ENR_FACTURORG<4>=W_MontantMaxCG
				 END ELSE			
					* nb heures * tarif cg
					W_MontTemp=W_TauxRembOrg*ENR_FACTURORG<1> /100
					* Moins pourcentage du bnficiaire appliqu  ce tarif
					W_MontTemp=W_MontTemp - (W_MontTemp * ENR_ACCORD<10,iTaux> /10000)
					ENR_FACTURORG<4>=INT(W_MontTemp + 1/2)
				 END			 
			 END			 
			 *fin modif 24/01/2013
             W_MontHistOrg=W_MontHistOrg+INT(ENR_FACTURORG<2> * HeuresPrisAcc/100+1/2)
             W_TauxOrgAnal=ENR_FACTURORG<3>
             GOSUB 341
             ENR_FACTURORG<15>=INT(HeuresPrisAcc * W_TauxPsOrg / 100 + 1/2)
             W_PartOrgSsPs=ENR_FACTURORG<3>-W_TauxPsOrg
			 ****** modif du 03/10/07 vanes
             * ENR_FACTURORG<16>=INT(HeuresPrisAcc * W_PartOrgSsPs / 100 + 1/2)
			 IF ENR_FACTURORG<15>=0 THEN
				ENR_FACTURORG<16>=ENR_FACTURORG<4>
			 END ELSE
				ENR_FACTURORG<16>=ENR_FACTURORG<4>-ENR_FACTURORG<15>
			 END
			 ******* fin  modif
             ENR_FACTURORG<17>=W_PartOrgSsPs
          END ELSE
             W_MontHistOrg=W_MontHistOrg-INT(ENR_FACTURORG<2> * ENR_FACTURORG<1>/100+1/2)
             ENR_FACTURORG<1>=ENR_FACTURORG<1> + HeuresPrisAcc
			****** modif du 03/10/07 vanes
             * ENR_FACTURORG<4>=INT(ENR_FACTURORG<3> * ENR_FACTURORG<1>/100+1/2)
			 W_MontTemp=INT((ENR_FACTURORG<2>+ENR_FACTURORG<3>) * ENR_FACTURORG<1>/100+1/2)
			 W_MontTemp=W_MontTemp-INT(ENR_FACTURORG<2> * ENR_FACTURORG<1>/100+1/2)
			 
			 *christophe le 24/01/2013 cg36
			 *ENR_FACTURORG<4>=W_MontTemp
			 
			 IF W_MontantMaxCG="" THEN
				* pas de gestion des montants financeurs
				ENR_FACTURORG<4>=W_MontTemp
			 END ELSE
				 IF W_MontTemp > W_MontantMaxCG THEN
					ENR_FACTURORG<4>=W_MontantMaxCG
				 END ELSE			
					* nb heures * tarif cg
					W_MontTemp=W_TauxRembOrg*ENR_FACTURORG<1> /100
					* Moins pourcentage du bnficiaire appliqu  ce tarif
					W_MontTemp=W_MontTemp - (W_MontTemp * ENR_ACCORD<10,iTaux> /10000)						
					ENR_FACTURORG<4>=INT(W_MontTemp+1/2)
				 END			 
			 END			 
			 *fin modif 24/01/2013
			 
			******* fin  modif
             W_MontHistOrg=W_MontHistOrg+INT(ENR_FACTURORG<2> * ENR_FACTURORG<1>/100+1/2)
             W_TauxOrgAnal=ENR_FACTURORG<3>
             GOSUB 341
             W_PartOrgSsPs=ENR_FACTURORG<3>-W_TauxPsOrg
             ENR_FACTURORG<15>=ENR_FACTURORG<15> + INT(HeuresPrisAcc * W_TauxPsOrg / 100 + 1/2)
			 ****** modif du 03/10/07 vanes
             * ENR_FACTURORG<16>=ENR_FACTURORG<16> + INT(HeuresPrisAcc * W_PartOrgSsPs / 100 + 1/2)
			 IF ENR_FACTURORG<15>=0 THEN
				ENR_FACTURORG<16>=ENR_FACTURORG<4>
			 END ELSE
				ENR_FACTURORG<16>=(ENR_FACTURORG<4>-ENR_FACTURORG<15>)
			 END
			 ******* fin  modif
             
          END
          IF ENR_FACTURORG<4> # ENR_FACTURORG<15>+ENR_FACTURORG<16> THEN
             W_Diff = ENR_FACTURORG<15> - (ENR_FACTURORG<4>-ENR_FACTURORG<16>)
             ENR_FACTURORG<15>=ENR_FACTURORG<15>-W_Diff
          END
       END
    END ELSE
       IF ENR_FACTURORG<5>="" THEN
          ENR_FACTURORG<5>=HeuresPrisAcc
          ENR_FACTURORG<6>=W_Taux
          ENR_FACTURORG<7>=W_TauxRembOrgMaj-W_Taux
		  ****** modif du 03/10/07 vanes 			  
          * ENR_FACTURORG<8>=INT(ENR_FACTURORG<7> * HeuresPrisAcc/100+1/2)
		  W_MontTemp=INT((ENR_FACTURORG<6>+ENR_FACTURORG<7>) * HeuresPrisAcc/100+1/2)
		  W_MontTemp=W_MontTemp-INT(ENR_FACTURORG<6> * HeuresPrisAcc/100+1/2)
		  
		 *christophe le 24/01/2013 cg36
		 *ENR_FACTURORG<8>=W_MontTemp
		 
		 IF W_MontantMaxCG="" THEN
			* pas de gestion des montants financeurs
			ENR_FACTURORG<8>=W_MontTemp
		 END ELSE
			 IF W_MontTemp > W_MontantMaxCG THEN
				ENR_FACTURORG<8>=W_MontantMaxCG
			 END ELSE			
				* nb heures * tarif cg
				W_MontTemp=W_TauxRembOrgMaj*ENR_FACTURORG<5> /100
				* Moins pourcentage du bnficiaire appliqu  ce tarif
				W_MontTemp=W_MontTemp - (W_MontTemp * ENR_ACCORD<10,iTaux> /10000)
				ENR_FACTURORG<8>=INT(W_MontTemp + 1/2)
			 END			 
		 END			 
		 *fin modif 24/01/2013		  
		  
		  
		  ******* fin  modif
          W_MontHistOrg=W_MontHistOrg+INT(ENR_FACTURORG<6> * HeuresPrisAcc/100+1/2)
          W_TauxOrgAnal=ENR_FACTURORG<7>
          GOSUB 341
       END ELSE
          W_MontHistOrg=W_MontHistOrg-INT(ENR_FACTURORG<6> * ENR_FACTURORG<5>/100+1/2)
          ENR_FACTURORG<5>=ENR_FACTURORG<5>+HeuresPrisAcc
		  ****** modif du 03/10/07 vanes 
          * ENR_FACTURORG<8>=INT(ENR_FACTURORG<7> * ENR_FACTURORG<5>/100+1/2)
		  W_MontTemp=INT((ENR_FACTURORG<6>+ENR_FACTURORG<7>) * ENR_FACTURORG<5>/100+1/2)
		  W_MontTemp=W_MontTemp-INT(ENR_FACTURORG<6> * ENR_FACTURORG<5>/100+1/2)
		  
		 *christophe le 24/01/2013 cg36
		 *ENR_FACTURORG<8>=W_MontTemp
		 
		 IF W_MontantMaxCG="" THEN
			* pas de gestion des montants financeurs
			ENR_FACTURORG<8>=W_MontTemp
		 END ELSE
			 IF W_MontTemp > W_MontantMaxCG THEN
				ENR_FACTURORG<8>=W_MontantMaxCG
			 END ELSE			
				* nb heures * tarif cg
				W_MontTemp=W_TauxRembOrgMaj*ENR_FACTURORG<5> /100
				* Moins pourcentage du bnficiaire appliqu  ce tarif
				W_MontTemp=W_MontTemp - (W_MontTemp * ENR_ACCORD<10,iTaux> /10000) 
				ENR_FACTURORG<8>=INT(W_MontTemp + 1/2)
			 END			 
		 END			 
		 *fin modif 24/01/2013
		 
		  ******* fin  modif
          W_MontHistOrg=W_MontHistOrg+INT(ENR_FACTURORG<6> * ENR_FACTURORG<5>/100+1/2)
          W_TauxOrgAnal=ENR_FACTURORG<7>
          GOSUB 341
       END
    END

    IF ENR_ORGPRISECHARGE<29,1> # "" THEN
       iFacturOrgAbatt=1
       LOOP
       WHILE W_FacturOrgAbatt<iFacturOrgAbatt> # "" DO
          IF W_FacturOrgAbatt<iFacturOrgAbatt>=W_CleFacturOrg:W_NumOrdre THEN
             iFacturOrgAbatt=999
          END  
          iFacturOrgAbatt=iFacturOrgAbatt+1
       REPEAT
       IF iFacturOrgAbatt#1000 THEN
          W_FacturOrgAbatt=REPLACE(W_FacturOrgAbatt,-1;W_CleFacturOrg:W_NumOrdre)
       END
    END

    * Test de la plus grande section analytique pour affecter la diffrence.
    W_MontDimJf=ENR_FACTURORG<8>
    IF W_MontDimJf="" THEN
       W_MontDimJf=0
    END

    W_CountDiff=DCOUNT(ENR_FACTURORG<12>,CHAR(253))
    W_MaxDiff=1
    W_TotalDiff=ENR_FACTURORG<12,1>
    FOR iDiff = 2 TO W_CountDiff
        IF ENR_FACTURORG<12,1> < ENR_FACTURORG<12,iDiff> THEN
           W_MaxDiff=iDiff
        END
        W_TotalDiff=W_TotalDiff + ENR_FACTURORG<12,iDiff>
    NEXT iDiff
   W_TotalFactOrg48=SUM(ENR_FACTURORG<4>)+ W_MontDimJf
   IF W_TotalDiff # W_TotalFactOrg48 THEN
      ENR_FACTURORG<12,W_MaxDiff>=ENR_FACTURORG<12,W_MaxDiff> + (W_TotalFactOrg48 - W_TotalDiff)
   END   

*   ENR_FACTURORG<14>=W_TotalFactOrg48

   IF ENR_ORGPRISECHARGE<39> = "M" THEN
     * MFP, on ne travaille que sur la 1ere MV
      ENR_FACTURORG<14>=INT(((ENR_FACTURORG<1,1> * W_TauxRembOrg)+(ENR_FACTURORG<5> * W_TauxRembOrgMaj))/100 + 1/2)
   END ELSE
      ENR_FACTURORG<14>=INT(((SUM(ENR_FACTURORG<1>) * W_TauxRembOrg)+(ENR_FACTURORG<5> * W_TauxRembOrgMaj))/100 + 1/2)
   END
   WRITE ENR_FACTURORG ON F.FACTURORG,W_CleFacturOrg:W_NumOrdre


RETURN

************************************************************************
* Rempli les att 11,12,13 de FACTURORG
341
   IF ENR_FACTURORG<11> # "" THEN
      iFactOrgAnal=1
      W_Cumul11Fait="FAUX"
      LOOP
      WHILE ENR_FACTURORG<11,iFactOrgAnal> # "" DO
         IF ENR_FACTURORG<11,iFactOrgAnal> = ENR_ACTIVITES<2> THEN
            ENR_FACTURORG<12,iFactOrgAnal>=ENR_FACTURORG<12,iFactOrgAnal> + INT(W_TauxOrgAnal * HeuresPrisAcc/100+1/2)
            IF W_Mfp="FAUX" THEN
               ENR_FACTURORG<13,iFactOrgAnal>=ENR_FACTURORG<13,iFactOrgAnal> + HeuresPrisAcc
            END
            W_Cumul11Fait="VRAI"
         END
         iFactOrgAnal=iFactOrgAnal+1
      REPEAT
      IF W_Cumul11Fait="FAUX" THEN
         ENR_FACTURORG<11,iFactOrgAnal>=ENR_ACTIVITES<2>
         ENR_FACTURORG<12,iFactOrgAnal>=ENR_FACTURORG<12,iFactOrgAnal> + INT(W_TauxOrgAnal * HeuresPrisAcc/100+1/2)
         IF W_Mfp="FAUX" THEN
            ENR_FACTURORG<13,iFactOrgAnal>=ENR_FACTURORG<13,iFactOrgAnal> + HeuresPrisAcc
         END
      END
   END ELSE
      ENR_FACTURORG<11>=ENR_ACTIVITES<2>
      ENR_FACTURORG<12>=INT(W_TauxOrgAnal * HeuresPrisAcc/100+1/2)
      ENR_FACTURORG<13>=HeuresPrisAcc
   END

RETURN

************************************************************************
* Recherche le taux de remboursement de l'organisme majore
345

 GOSUB 356

 iTauxPlein=1
 LOOP
 UNTIL (W_DatePeriode >= W_TabAct<2,iTauxPlein> AND W_TabAct<3,iTauxPlein>="2") OR W_TabAct<2,iTauxPlein> = "" DO
     iTauxPlein=iTauxPlein+1
 REPEAT
 IF W_TabAct<2,iTauxPlein> # "" THEN
     W_TauxTarife=W_TabAct<4,iTauxPlein>
     W_TauxTarifeMaj=W_TabAct<5,iTauxPlein>
 END ELSE
     W_TauxTarife=0
     W_TauxTarifeMaj=0
     IF W_TabFedeAssoc # "" THEN
	* si taux tarif pas trouv dans le fichier FEDEASSOC
	W_TabAct<1>=ENR_ACTIVITES<1>
	W_TabAct<2>=ENR_ACTIVITES<15>
	W_TabAct<3>=ENR_ACTIVITES<20>
	W_TabAct<4>=ENR_ACTIVITES<14>
	W_TabAct<5>=ENR_ACTIVITES<16>
	W_TabAct<6>=ENR_ACTIVITES<21>
    	iTauxPlein=1
    	LOOP
    	UNTIL (W_DatePeriode >= W_TabAct<2,iTauxPlein> AND W_TabAct<3,iTauxPlein>="2") OR W_TabAct<2,iTauxPlein> = "" DO
        	iTauxPlein=iTauxPlein+1
    	REPEAT
    	IF W_TabAct<2,iTauxPlein> # "" THEN
        	W_TauxTarife=W_TabAct<4,iTauxPlein>
     		W_TauxTarifeMaj=W_TabAct<5,iTauxPlein>
   	END ELSE
        	W_TauxTarife=0
     		W_TauxTarifeMaj=0
	END

     END

 END
 IF W_TauxTarifeMaj=0 OR W_TauxTarifeMaj="" THEN
     W_TauxTarifeMaj=W_TauxTarife
 END

 W_TauxRembOrgMaj=""
 IF ENR_ORGPRISECHARGE<27,1> # "" THEN
    IF W_DatePeriode >= ENR_ORGPRISECHARGE<25,1> THEN
       IF ENR_ORGPRISECHARGE<27,1>=0 THEN
	  W_TauxRembOrgMaj=W_TauxTarifeMaj
       END ELSE
       	  W_TauxRembOrgMaj=ENR_ORGPRISECHARGE<27,1>
       END
    END ELSE
       iTaux=1
       LOOP
       WHILE W_DatePeriode < ENR_ORGPRISECHARGE<25,iTaux> AND ENR_ORGPRISECHARGE<25,iTaux> # "" DO
          iTaux=iTaux+1
       REPEAT
       IF ENR_ORGPRISECHARGE<25,iTaux> # "" THEN
          IF ENR_ORGPRISECHARGE<27,iTaux>=0 THEN
	     W_TauxRembOrgMaj=W_TauxTarifeMaj
          END ELSE
       	     W_TauxRembOrgMaj=ENR_ORGPRISECHARGE<27,iTaux>
          END
       END ELSE
          W_TauxRembOrgMaj=0
       END
    END
 END ELSE
    * a Voir
    IF W_TauxRembOrg # 0 THEN
       W_TauxRembOrgMaj=W_TauxRembOrg
    END
 END

RETURN
          
************************************************************************
* Recherche le taux de remboursement de l'organisme
350

    GOSUB 356

    iTauxPlein=1
    LOOP
    UNTIL (W_DatePeriode >= W_TabAct<2,iTauxPlein> AND W_TabAct<3,iTauxPlein>="2") OR W_TabAct<2,iTauxPlein> = "" DO
        iTauxPlein=iTauxPlein+1
    REPEAT
    IF W_TabAct<2,iTauxPlein> # "" THEN
        W_TauxTarife=W_TabAct<4,iTauxPlein>
     	W_TauxTarifeMaj=W_TabAct<5,iTauxPlein>
    END ELSE
        W_TauxTarife=0
     	W_TauxTarifeMaj=0
	IF W_TabFedeAssoc # "" THEN
		* si taux tarif pas trouv dans le fichier FEDEASSOC
		W_TabAct<1>=ENR_ACTIVITES<1>
		W_TabAct<2>=ENR_ACTIVITES<15>
		W_TabAct<3>=ENR_ACTIVITES<20>
		W_TabAct<4>=ENR_ACTIVITES<14>
		W_TabAct<5>=ENR_ACTIVITES<16>
		W_TabAct<6>=ENR_ACTIVITES<21>
    		iTauxPlein=1
    		LOOP
    		UNTIL (W_DatePeriode >= W_TabAct<2,iTauxPlein> AND W_TabAct<3,iTauxPlein>="2") OR W_TabAct<2,iTauxPlein> = "" DO
        		iTauxPlein=iTauxPlein+1
    		REPEAT
    		IF W_TabAct<2,iTauxPlein> # "" THEN
        		W_TauxTarife=W_TabAct<4,iTauxPlein>
     			W_TauxTarifeMaj=W_TabAct<5,iTauxPlein>
   		END ELSE
        		W_TauxTarife=0
     			W_TauxTarifeMaj=0

		END
	END
    END

    W_TauxRembOrg=0
    W_TauxPsOrg=0
    IF W_DatePeriode >= ENR_ORGPRISECHARGE<25,1> THEN

       IF ENR_ORGPRISECHARGE<26,1>=0 THEN
	  W_TauxRembOrg=W_TauxTarife
       END ELSE
       	  W_TauxRembOrg=ENR_ORGPRISECHARGE<26,1>
       END

       W_TauxPsOrg=ENR_ORGPRISECHARGE<28,1>
    END ELSE
       iTaux=1
       LOOP
       WHILE W_DatePeriode < ENR_ORGPRISECHARGE<25,iTaux> AND ENR_ORGPRISECHARGE<25,iTaux> # "" DO
          iTaux=iTaux+1
       REPEAT
       IF ENR_ORGPRISECHARGE<25,iTaux> # "" THEN
          IF ENR_ORGPRISECHARGE<26,iTaux>=0 THEN
	     W_TauxRembOrg=W_TauxTarife
          END ELSE
       	     W_TauxRembOrg=ENR_ORGPRISECHARGE<26,iTaux>
          END
          W_TauxPsOrg=ENR_ORGPRISECHARGE<28,iTaux>
       END
    END
    IF W_TauxPsOrg = "" THEN
       W_TauxPsOrg=0
    END

RETURN

************************************************************************
* Recherche l'emplacement du code aidant dans TempFacturAide
355

IF W_GestionFede="FAUX" THEN
   iAidant=1
   READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CodeAidant ELSE PRINT "CIVILAIDANT 1"
   W_NomPrenomAidant=ENR_CIVILAIDANT<2>:ENR_CIVILAIDANT<3>
   LOOP
   WHILE ENR_TEMPFACTURAIDE<10,iAidant> # "" AND W_NomPrenomAidant > ENR_TEMPFACTURAIDE<13,iAidant> DO
      iAidant=iAidant+1
   REPEAT
   IF ENR_TEMPFACTURAIDE<10,iAidant> = "" THEN
      ENR_TEMPFACTURAIDE<10,iAidant>=W_CodeAidant
      ENR_TEMPFACTURAIDE<13,iAidant>=W_NomPrenomAidant
   END ELSE
      IF ENR_TEMPFACTURAIDE<13,iAidant> > W_NomPrenomAidant THEN
         ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,10,iAidant;W_CodeAidant)
         ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,13,iAidant;W_NomPrenomAidant)
      END
   END
END

RETURN

************************************************************************
* remplit la variable W_TabAct pour avoir les taux
356

    W_TabAct=""
    IF W_TabFedeAssoc="" THEN
	W_TabAct<1>=ENR_ACTIVITES<1>
	W_TabAct<2>=ENR_ACTIVITES<15>
	W_TabAct<3>=ENR_ACTIVITES<20>
	W_TabAct<4>=ENR_ACTIVITES<14>
	W_TabAct<5>=ENR_ACTIVITES<16>
	W_TabAct<6>=ENR_ACTIVITES<21>
    END ELSE
   	READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_Aide ELSE PRINT "CIVILAIDE 1"
	W_Sect=ENR_CIVILAIDE<40>[1,3]
	iFede=1
	LOOP
	UNTIL W_TabFedeAssoc<iFede,1>=W_Sect OR W_TabFedeAssoc<iFede,1>="" DO
		iFede=iFede+1
	REPEAT
   	READ ENR_FEDEASSOC FROM F.FEDEASSOC,W_TabFedeAssoc<iFede,2> ELSE PRINT "FEDEASSOC 3"
	W_TabAct<1>=ENR_FEDEASSOC<1>
	W_TabAct<2>=ENR_FEDEASSOC<49>
	W_TabAct<3>=ENR_FEDEASSOC<50>
	W_TabAct<4>=ENR_FEDEASSOC<51>
	W_TabAct<5>=ENR_FEDEASSOC<52>
	W_TabAct<6>=ENR_FEDEASSOC<53>
    END

RETURN

******************************************
* Facturation a taux plein
360
	W_CleAcc="00000000"
    GOSUB 356

    ENR_ORGPRISECHARGE=""

    * Remplissage de TempFacturAide
    W_LibOrg="TAUX ":W_TabAct<1>

    * Recherche de la valeur du taux plein
    IF W_DatePeriode >= W_TabAct<2,1> AND W_TabAct<3,1>#"2" THEN
       W_Taux=W_TabAct<4,1>
       W_TauxMaj=W_TabAct<5,1>
    END ELSE
       iTauxPlein=1
       LOOP
       UNTIL (W_DatePeriode >= W_TabAct<2,iTauxPlein> AND W_TabAct<3,iTauxPlein>#"2") OR W_TabAct<2,iTauxPlein> = "" DO
          iTauxPlein=iTauxPlein+1
       REPEAT
       IF W_TabAct<2,iTauxPlein> # "" THEN
          W_Taux=W_TabAct<4,iTauxPlein>
          W_TauxMaj=W_TabAct<5,iTauxPlein>
       END ELSE
          W_Taux=0
          W_TauxMaj=0
       END
    END

    READ ENR_RUBSAISIE FROM F.RUBSAISIE,W_RubSaisie ELSE PRINT "RUBSAISIE 2"

    IF W_TauxMaj = 0 AND W_Taux # 0 OR W_TauxMaj = "" THEN
       W_TauxMaj=W_Taux
       ENR_RUBSAISIE<2>=3
    END

    W_TauxTemp=""
    IF ENR_RUBSAISIE<2> # 3 THEN
       W_TauxTemp=W_Taux
       W_Taux=W_TauxMaj
       W_LibOrg=W_LibOrg:" MAJORE"
    END
	W_TauxTest=W_Taux
	
    * Recherche et affecte dans TempFacturAide
    iFact=1

    GOSUB 370

******************
* pave suplementaire
    READ W_ActHresComp FROM F.TEMPMONTANTFACT,W_Aide ELSE W_ActHresComp = ""

    W_AHComp="FAUX"
    iAHComp=1
    LOOP
    WHILE W_ActHresComp<iAHComp> # "" AND W_AHComp = "FAUX" DO
       IF W_ActHres=W_ActHresComp<iAHComp,1> AND W_ActHresComp<iAHComp,4> = W_Periode THEN
          W_ActHresComp<iAHComp,2>=W_ActHresComp<iAHComp,2> + HeuresPrisAcc
          W_ActHresComp<iAHComp,3>=W_ActHresComp<iAHComp,3> + INT(W_Taux*HeuresPrisAcc/100+1/2)
          W_AHComp = "VRAI"
       END
       
       iAHComp=iAHComp+1
    REPEAT

    IF W_AHComp = "FAUX" THEN
       W_ActHresComp<iAHComp,1>=W_ActHres
       W_ActHresComp<iAHComp,2>=HeuresPrisAcc
       W_ActHresComp<iAHComp,3>=ENR_TEMPFACTURAIDE<5,iFact>
       W_ActHresComp<iAHComp,4>=W_Periode
    END
   WRITE W_ActHresComp ON F.TEMPMONTANTFACT,W_Aide

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

    IF W_TauxTemp # "" THEN
       W_Taux=W_TauxTemp
    END

    W_CleFacturOrgPlein="000P":W_Aide:W_CodAssoc:W_Periode
    W_NumOrdre="01"
    iCleFact=1
    LOOP 
      READ ENR_FACTURORG FROM F.FACTURORG,W_CleFacturOrgPlein:W_NumOrdre ELSE ENR_FACTURORG =""
    WHILE ENR_FACTURORG<9> # "" DO
       iCleFact=iCleFact+1
       W_NumOrdre=iCleFact "R%2"
    REPEAT

       IF ENR_RUBSAISIE<2>=3 THEN
          * main d'oeuvre directe
          IF ENR_FACTURORG<1> = "" THEN
             ENR_FACTURORG<1>=NbrHeuresAtt                
             ENR_FACTURORG<2>=W_Taux
             ENR_FACTURORG<3>=0
             ENR_FACTURORG<4>=0
          END ELSE
             ENR_FACTURORG<1>=ENR_FACTURORG<1> + NbrHeuresAtt
             ENR_FACTURORG<4>=0
          END
       END ELSE
          IF ENR_FACTURORG<5>="" THEN
             ENR_FACTURORG<5>=NbrHeuresAtt
             ENR_FACTURORG<6>=W_TauxMaj
             ENR_FACTURORG<7>=0
             ENR_FACTURORG<8>=0
          END ELSE
             ENR_FACTURORG<5>=ENR_FACTURORG<5>+NbrHeuresAtt
             ENR_FACTURORG<8>=0
          END
       END

       * Gestion des att 11,12,13 de FACTURORG
       W_TauxOrgAnal=0
       HeuresPrisAcc=NbrHeuresAtt

       W_Mfp="FAUX"
       GOSUB 341
       HeuresPrisAcc=0

       *Ecriture FacturOrg
       WRITE ENR_FACTURORG ON F.FACTURORG,W_CleFacturOrgPlein:W_NumOrdre

RETURN

*************************************************************************
* Recherche dans TempFacturAide l'emplacement
370

   IF ENR_TEMPFACTURAIDE<1,iFact> # "" THEN
      IF W_Periode > ENR_TEMPFACTURAIDE<1,iFact> THEN
         iFact=iFact+1
         GOSUB 370
      END ELSE
        IF W_Periode = ENR_TEMPFACTURAIDE<1,iFact> THEN
			* modif vanessa 11/05/09 - pas de regroupement s'il ne s'agit pas du mme accord
           IF W_CleAcc = ENR_TEMPFACTURAIDE<15,iFact> AND W_LibOrg = ENR_TEMPFACTURAIDE<2,iFact> AND W_TauxTest = ENR_TEMPFACTURAIDE<4,iFact> AND ENR_ACTIVITES<2> = ENR_TEMPFACTURAIDE<7,iFact> THEN		
           *IF W_LibOrg = ENR_TEMPFACTURAIDE<2,iFact> AND W_TauxTest = ENR_TEMPFACTURAIDE<4,iFact> AND ENR_ACTIVITES<2> = ENR_TEMPFACTURAIDE<7,iFact> THEN
              * Replace
              IF HeuresPrisAcc=0 THEN
                 HeuresPrisAcc=NbrHeuresAtt
              END
              ENR_TEMPFACTURAIDE<3,iFact>=ENR_TEMPFACTURAIDE<3,iFact> + HeuresPrisAcc   
			  
              ENR_TEMPFACTURAIDE<5,iFact>=INT(ENR_TEMPFACTURAIDE<4,iFact> * ENR_TEMPFACTURAIDE<3,iFact>/100+1/2)
			  
				* MODIF VANESSA 15/05/09-
				*IF (ENR_ORGPRISECHARGE<55>="1" AND ENR_ORGPRISECHARGE<51>= "0") OR (ENR_ORGPRISECHARGE<55>="1" AND ENR_ORGPRISECHARGE<51>= "") THEN	
				IF ENR_ORGPRISECHARGE<55>="1" THEN
				
					IF ENR_RUBSAISIE<2>=3 THEN
						*Anthony 06/06/11
						IF ENR_ORGPRISECHARGE<59> = "" THEN
							W_LibOrgPart="PARTICIPATION ":ENR_ORGPRISECHARGE<1>
						END ELSE
							W_LibOrgPart=ENR_ORGPRISECHARGE<59>
						END
						*Fin Anthony
						W_TauxTestPart=-W_TauxRembOrg + W_Taux

						*Christophe le 25/01/2013 CG36 - Pour passer dans le loop et faire un cumul des lignes Participation du cout global
						W_TauxTestPartCG36=""
						IF W_MontantMaxCG # "" THEN
							W_TauxTestPartCG36=W_TauxRembOrg
							W_TauxTestPart=""
						END						
						
					END ELSE
						*Anthony 06/06/11
						IF ENR_ORGPRISECHARGE<59> = "" THEN
							W_LibOrgPart="PARTICIPATION ":ENR_ORGPRISECHARGE<1>:" DIMANCHE ET JF"
						END ELSE
							W_LibOrgPart=ENR_ORGPRISECHARGE<59>
						END
						*Fin Anthony
						W_TauxTestPart=-W_TauxRembOrgMaj + W_Taux	

						*Christophe le 25/01/2013 CG36 - Pour passer dans le loop et faire un cumul des lignes Participation du cout global
						W_TauxTestPartCG36=""
						IF W_MontantMaxCG # "" THEN
							W_TauxTestPartCG36=W_TauxRembOrgMaj
							W_TauxTestPart=""
						END		
						
					END
					
					* modif vanessa 11/05/09 - pas de regroupement s'il ne s'agit pas du mme accord					
					LOOP
						iFact=iFact+1
*PRINT W_CleAcc:" = ":ENR_TEMPFACTURAIDE<15,iFact>:" AND ":W_LibOrgPart:" = ":ENR_TEMPFACTURAIDE<2,iFact>:" AND ":W_TauxTestPart:" = ":ENR_TEMPFACTURAIDE<4,iFact>:" AND ":ENR_ACTIVITES<2>:" = ":ENR_TEMPFACTURAIDE<7,iFact>:" OR ":ENR_TEMPFACTURAIDE<2,iFact>:"=vide OR  ":ENR_TEMPFACTURAIDE<2,iFact>[1,13]:"# PARTICIPATION"
					UNTIL W_CleAcc = ENR_TEMPFACTURAIDE<15,iFact> AND W_LibOrgPart = ENR_TEMPFACTURAIDE<2,iFact> AND W_TauxTestPart = ENR_TEMPFACTURAIDE<4,iFact> AND ENR_ACTIVITES<2> = ENR_TEMPFACTURAIDE<7,iFact> OR ENR_TEMPFACTURAIDE<2,iFact>="" OR  ENR_TEMPFACTURAIDE<2,iFact>[1,13]# "PARTICIPATION" DO			
					REPEAT
*PRINT "AVOIR"					
*PRINT iFact
*PRINT ENR_TEMPFACTURAIDE<2,iFact>
*PRINT "-----"
*PRINT ENR_TEMPFACTURAIDE
*DEBUG
*PRINT ENR_TEMPFACTURAIDE<4,iFact>:" -- ":ENR_TEMPFACTURAIDE<3,iFact>
*PRINT "-----------------"
*PRINT "PART CG36"
*PRINT W_MontTempFacturAide:"=":ENR_TEMPFACTURAIDE<3,iFact-1>:"*":W_TauxTestPartCG36														

					IF ENR_TEMPFACTURAIDE<2,iFact>#"" AND ENR_TEMPFACTURAIDE<2,iFact>[1,13] = "PARTICIPATION" THEN
						ENR_TEMPFACTURAIDE<3,iFact>=ENR_TEMPFACTURAIDE<3,iFact> + HeuresPrisAcc
						*Christophe le 25/01/2013 CG36	
PRINT "LA......1"						
						*ENR_TEMPFACTURAIDE<5,iFact>=INT(ENR_TEMPFACTURAIDE<4,iFact> * ENR_TEMPFACTURAIDE<3,iFact>/100-1/2)	


						IF W_TauxTestPartCG36 # "" THEN
							W_MontTempFacturAide=(W_TauxTestPartCG36 * ENR_TEMPFACTURAIDE<3,iFact-1>/100)
						END ELSE
							W_MontTempFacturAide=INT(ENR_TEMPFACTURAIDE<4,iFact> * ENR_TEMPFACTURAIDE<3,iFact>/100-1/2)
						END

						 IF W_MontantMaxCG="" THEN
							ENR_TEMPFACTURAIDE<5,iFact>=W_MontTempFacturAide
						 END ELSE
							 * Gestion cg36
							W_MontTempFacturAide=W_MontTempFacturAide - (W_MontTempFacturAide * ENR_ACCORD<10,iTaux> /10000)
							W_MontTempFacturAide=INT(W_MontTempFacturAide + 1/2)
							 IF ABS(W_MontTempFacturAide) > ABS(W_MontantMaxCG) THEN
								ENR_TEMPFACTURAIDE<5,iFact>=-W_MontantMaxCG
							 END ELSE
								* nb heures * tarif cg - pourcentage du bnficiaire appliqu  ce tarif
								*ENR_TEMPFACTURAIDE<5,iFact>=-W_MontTempFacturAide + ENR_TEMPFACTURAIDE<5,iFact>
								ENR_TEMPFACTURAIDE<5,iFact>=-W_MontTempFacturAide
							 END
							ENR_TEMPFACTURAIDE<3,iFact>=""
							ENR_TEMPFACTURAIDE<4,iFact>=""							 
						 END						
						*Fin Christophe le 25/01/2013 CG36			
						
					END ELSE
					* on passe ici uniquement si cout global et designation facture renseigne donc pas souvent
						******************
						* LIGNE PARTICIPATION
						*iFact=iFact+1
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,1,iFact;W_Periode)
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,3,iFact;HeuresPrisAcc)
						
						IF ENR_RUBSAISIE<2>=3 THEN
							
							*Anthony 06/06/11
							IF 	ENR_ORGPRISECHARGE<59> = "" THEN
								ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact;"PARTICIPATION ":ENR_ORGPRISECHARGE<1>)
							END ELSE
								ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact;ENR_ORGPRISECHARGE<59>)
							END
							*Fin Anthony
							
							*Christophe le 25/01/2013 CG36
PRINT "LA......2"					
							W_MontTempFacturAide=INT((-W_TauxRembOrg + W_Taux)*HeuresPrisAcc/100-1/2)
							IF W_MontantMaxCG="" THEN
								ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;-W_TauxRembOrg + W_Taux)	
								ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;W_MontTempFacturAide)
							 END ELSE
								 * Gestion cg36 - nb heures * tarif cg - pourcentage du bnficiaire appliqu  ce tarif
								W_MontTempFacturAide=W_TauxRembOrg*HeuresPrisAcc /100					
								W_MontTempFacturAide=W_MontTempFacturAide - W_MontTempFacturAide * ENR_ACCORD<10,iTaux> /10000
								W_MontTempFacturAide=INT(W_MontTempFacturAide + 1/2)
								 IF ABS(W_MontTempFacturAide) > ABS(W_MontantMaxCG) THEN
									ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;-W_MontantMaxCG)
								 END ELSE
									ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;-W_MontTempFacturAide)									
								 END
								ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,iFact;"")
								ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;"")								 
							 END						
							*Fin Christophe le 25/01/2013 CG36							
					
							
						END ELSE
						
							*Anthony 06/06/11
							IF 	ENR_ORGPRISECHARGE<59> = "" THEN
								ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact;"PARTICIPATION ":ENR_ORGPRISECHARGE<1>:" DIMANCHE ET JF")
							END ELSE
								ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact;ENR_ORGPRISECHARGE<59>)
							END
							*Fin Anthony
							
							*ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;-W_TauxRembOrgMaj+W_Taux)
							*ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;INT((-W_TauxRembOrgMaj+W_Taux)*HeuresPrisAcc/100-1/2))	

							*Christophe le 25/01/2013 CG36
PRINT "LA......3"
PRINT "jamais pass la"							
							W_MontTempFacturAide=INT((-W_TauxRembOrgMaj+W_Taux)*HeuresPrisAcc/100-1/2)
							IF W_MontantMaxCG="" THEN
								ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;-W_TauxRembOrgMaj+W_Taux)	
								ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;W_MontTempFacturAide)
							 END ELSE
								* Gestion cg36 - nb heures * tarif cg - pourcentage du bnficiaire appliqu  ce tarif
								W_MontTempFacturAide=W_TauxRembOrgMaj*HeuresPrisAcc /100					
								W_MontTempFacturAide=W_MontTempFacturAide - (W_MontTempFacturAide * ENR_ACCORD<10,iTaux> /10000)
								W_MontTempFacturAide=INT(W_MontTempFacturAide + 1/2)
								IF ABS(W_MontTempFacturAide) > ABS(W_MontantMaxCG) THEN
									ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;-W_MontantMaxCG)
								END ELSE 
									ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;-W_MontTempFacturAide)
								END
								ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,iFact;"")
								ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;"")								 
							 END						
							*Fin Christophe le 25/01/2013 CG36							
							
						END
												
				        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,6,iFact;"0")
				        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,iFact;W_CodeComptaPrest)
				        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,7,iFact;ENR_ACTIVITES<2>)
				        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,14,iFact;"0")
				        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,15,iFact;W_CleAcc)	
						* modif vanes 17/11/08
                        * Modif Guillaume DA12006 15/02/2012
* 						IF W_GestionTVA="VRAI" THEN
* 							ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;"O")
* 						END ELSE
* 							ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;"N")					
* 						END	
						
						* christophe le 30/01/2012 - si gestion CG 36 + TVA (addexia) il ne faut pas considrer la ligne de participation en TVA.
						*ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;ENR_ACTIVITES<11>)
						IF W_MontantMaxCG="" THEN
							*cas actuel
							ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;ENR_ACTIVITES<11>)
						END ELSE
							* cas CG36 donc pas de tva sur cette ligne
							ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;"1")
						END						
						*********************					
					END
				END
			  
              * Recherche l'emplacement du code aidant dans TempFacturAide
              GOSUB 355

				* ajustement 
				IF ENR_ORGPRISECHARGE<53>="1" AND W_TauxOrg < W_TauxTarife THEN
					* MODIF VANESSA 04/12/09 - CUMULE LES LIGNES REAJUSTEMENT TARIFAIRE NORMAL OU MAJ
					W_TauxAjust=W_TauxTarife-W_TauxOrg
					IF (ENR_TEMPFACTURAIDE<2,iFact+1>[1,22] = "REAJUSTEMENT TARIFAIRE" AND ENR_TEMPFACTURAIDE<2,iFact+1> # "" AND W_TauxAjust = ENR_TEMPFACTURAIDE<4,iFact+1>) OR (ENR_TEMPFACTURAIDE<2,iFact+1>[1,LEN(W_TabAct<6>)] = W_TabAct<6> AND ENR_TEMPFACTURAIDE<2,iFact+1> # "" AND W_TauxAjust = ENR_TEMPFACTURAIDE<4,iFact+1>) THEN
						* CAS AVANT
						ENR_TEMPFACTURAIDE<3,iFact+1>=ENR_TEMPFACTURAIDE<3,iFact+1> + HeuresPrisAcc   
						ENR_TEMPFACTURAIDE<5,iFact+1>=INT(ENR_TEMPFACTURAIDE<4,iFact+1> * ENR_TEMPFACTURAIDE<3,iFact+1>/100+1/2)
					END ELSE
					   * ajustement 
					   	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,1,iFact+1;W_Periode)
						IF W_TabAct<6> = "" THEN
							* modif vanes 12/02/09
							IF W_MAJ="VRAI" THEN
								W_TabAct<6>="REAJUSTEMENT TARIFAIRE MAJ"							
							END ELSE
								W_TabAct<6>="REAJUSTEMENT TARIFAIRE"
							END
							*********
						END
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact+1;W_TabAct<6>)
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,3,iFact+1;HeuresPrisAcc)
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact+1;W_TauxAjust)
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact+1;INT(ENR_TEMPFACTURAIDE<4,iFact+1> * ENR_TEMPFACTURAIDE<3,iFact+1>/100+1/2))
						ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,iFact+1;ENR_COMPTESPARTICULIERS<1>)
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,7,iFact+1;ENR_ACTIVITES<2>)
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,14,iFact+1;"0")
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,15,iFact+1;"R":W_CodeOrg)	
						* modif vanes 17/11/08
						* Modif Guillaume DA12006 15/02/2012						
* 						IF W_GestionTVA="VRAI" THEN
* 							ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact+1;"O")
* 						END ELSE
* 							ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact+1;"N")					
* 						END
                        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact+1;ENR_ACTIVITES<11>)
						********						
					END
				END

           END ELSE
              iFact=iFact+1
              GOSUB 370
           END
        END ELSE
			* MODIF VANESSA 15/05/09-
			*IF (ENR_ORGPRISECHARGE<55>="1" AND ENR_ORGPRISECHARGE<51>= "0") OR (ENR_ORGPRISECHARGE<55>="1" AND ENR_ORGPRISECHARGE<51>= "") THEN	
			IF ENR_ORGPRISECHARGE<55>="1" THEN		
			
				*************
				*LIGNE COUT INTERVENTION
				
				IF HeuresPrisAcc=0 THEN
				   HeuresPrisAcc=NbrHeuresAtt
				END		       
				ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,1,iFact;W_Periode)
				IF ENR_RUBSAISIE<2>=3 THEN
					IF W_TauxRembOrgMaj # W_TauxRembOrg THEN
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact;W_LibOrg)
					END ELSE
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact;W_LibOrg)				
					END
					ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;W_TauxRembOrg)	
					ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;INT(W_TauxRembOrg*HeuresPrisAcc/100+1/2))
				END ELSE
					ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact;W_LibOrg)
					ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;W_TauxRembOrgMaj)
					ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;INT(W_TauxRembOrgMaj*HeuresPrisAcc/100+1/2))
				END
				
				ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,3,iFact;HeuresPrisAcc)
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,6,iFact;"0")
		        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,iFact;W_CodeComptaPrest)
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,7,iFact;ENR_ACTIVITES<2>)
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,14,iFact;"0")
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,15,iFact;W_CleAcc)
				* modif vanes 17/11/08
* 				IF W_GestionTVA="VRAI" THEN
* 					ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;"O")
* 				END ELSE
* 					ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;"N")					
* 				END
                ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;ENR_ACTIVITES<11>)
				********	
				******************
				* LIGNE PARTICIPATION
				iFact=iFact+1
				ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,1,iFact;W_Periode)
				ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,3,iFact;HeuresPrisAcc)
				
				IF ENR_RUBSAISIE<2>=3 THEN
					
					*Anthony 06/06/11
					IF 	ENR_ORGPRISECHARGE<59> = "" THEN
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact;"PARTICIPATION ":ENR_ORGPRISECHARGE<1>)
					END ELSE
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact;ENR_ORGPRISECHARGE<59>)
					END
					*Fin Anthony
					
					*ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;-W_TauxRembOrg + W_Taux)	
					*ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;INT((-W_TauxRembOrg + W_Taux)*HeuresPrisAcc/100-1/2))
					
					*Christophe le 25/01/2013 CG36
PRINT "LA......4"
PRINT "jamais pass la"					
					W_MontTempFacturAide=INT((-W_TauxRembOrg + W_Taux)*HeuresPrisAcc/100-1/2)
					IF W_MontantMaxCG="" THEN
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;-W_TauxRembOrg + W_Taux)	
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;W_MontTempFacturAide)
					 END ELSE
						 * Gestion cg36 - nb heures * tarif cg - pourcentage du bnficiaire appliqu  ce tarif
						W_MontTempFacturAide=W_TauxRembOrg*HeuresPrisAcc /100					
						W_MontTempFacturAide=W_MontTempFacturAide - (W_MontTempFacturAide * ENR_ACCORD<10,iTaux> /10000) 
						W_MontTempFacturAide=INT(W_MontTempFacturAide+1/2)
						 IF ABS(W_MontTempFacturAide) > ABS(W_MontantMaxCG) THEN
							ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;-W_MontantMaxCG)
						 END ELSE
							ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;-W_MontTempFacturAide)							
						 END
						ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,iFact;"")
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;"")						 
					 END						
					*Fin Christophe le 25/01/2013 CG36						
					
				END ELSE
					
					*Anthony 06/06/11
					IF 	ENR_ORGPRISECHARGE<59> = "" THEN
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact;"PARTICIPATION ":ENR_ORGPRISECHARGE<1>:" DIMANCHE ET JF")
					END ELSE
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact;ENR_ORGPRISECHARGE<59>)
					END
					*Fin Anthony
					
					*ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;-W_TauxRembOrgMaj+W_Taux)
					*ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;INT((-W_TauxRembOrgMaj+W_Taux)*HeuresPrisAcc/100-1/2))		

					*Christophe le 25/01/2013 CG36
PRINT "LA......5"
PRINT "jamais pass la"					
					W_MontTempFacturAide=INT((-W_TauxRembOrgMaj+W_Taux)*HeuresPrisAcc/100-1/2)
					IF W_MontantMaxCG="" THEN
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;-W_TauxRembOrgMaj+W_Taux)	
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;W_MontTempFacturAide)
					 END ELSE
						 * Gestion cg36 - nb heures * tarif cg - pourcentage du bnficiaire appliqu  ce tarif		
							W_MontTempFacturAide=W_TauxRembOrgMaj*HeuresPrisAcc /100					
							W_MontTempFacturAide=W_MontTempFacturAide - (W_MontTempFacturAide * ENR_ACCORD<10,iTaux> /10000) 
							W_MontTempFacturAide=INT(W_MontTempFacturAide+1/2)
						 IF ABS(W_MontTempFacturAide) > ABS(W_MontantMaxCG) THEN
							ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;-W_MontantMaxCG)	
						 END ELSE
							ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;-W_MontTempFacturAide)							
						 END
						ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,iFact;"")
						ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;"")						 
					 END						
					*Fin Christophe le 25/01/2013 CG36	

					
				END
				
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,6,iFact;"0")
		        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,iFact;W_CodeComptaPrest)
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,7,iFact;ENR_ACTIVITES<2>)
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,14,iFact;"0")
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,15,iFact;W_CleAcc)	
				* modif vanes 17/11/08
				* Modif Guillaume DA12006 15/02/2012				
* 				IF W_GestionTVA="VRAI" THEN
* 					ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;"O")
* 				END ELSE
* 					ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;"N")					
* 				END	
                ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;ENR_ACTIVITES<11>)
				*********************
			END ELSE
		        * Insert
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,1,iFact;W_Periode)
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact;W_LibOrg)
		        IF HeuresPrisAcc=0 THEN
		            HeuresPrisAcc=NbrHeuresAtt
		        END
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,3,iFact;HeuresPrisAcc)
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact;W_Taux)
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact;INT(W_Taux*HeuresPrisAcc/100+1/2))
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,6,iFact;"0")
		        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,iFact;W_CodeComptaPrest)
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,7,iFact;ENR_ACTIVITES<2>)
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,14,iFact;"0")
		        ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,15,iFact;W_CleAcc)
				* modif vanes 17/11/08
				* Modif Guillaume DA12006 15/02/2012				
* 				IF W_GestionTVA="VRAI" THEN
* 					ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;"O")
* 				END ELSE
* 					ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;"N")					
* 				END				
                ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact;ENR_ACTIVITES<11>)
				*********************				
			END
           * Recherche l'emplacement du code aidant dans TempFacturAide
            GOSUB 355

	   * ajustement 
	   IF ENR_ORGPRISECHARGE<53>="1" AND W_TauxOrg < W_TauxTarife THEN
           	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,1,iFact+1;W_Periode)
			IF W_TabAct<6> = "" THEN
				* modif vanes 12/02/09
				IF W_MAJ="VRAI" THEN
					W_TabAct<6>="REAJUSTEMENT TARIFAIRE MAJ"							
				END ELSE
					W_TabAct<6>="REAJUSTEMENT TARIFAIRE"
				END
				*********		
			END
           	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iFact+1;W_TabAct<6>)
           	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,3,iFact+1;HeuresPrisAcc)
           	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iFact+1;W_TauxTarife-W_TauxOrg)
           	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iFact+1;INT(ENR_TEMPFACTURAIDE<4,iFact+1> * ENR_TEMPFACTURAIDE<3,iFact+1>/100+1/2))
           	ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,iFact+1;ENR_COMPTESPARTICULIERS<1>)
           	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,7,iFact+1;ENR_ACTIVITES<2>)
           	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,14,iFact+1;"0")
            ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,15,iFact+1;"R":W_CodeOrg)
			* modif vanes 17/11/08
			* Modif Guillaume DA12006 15/02/2012			
* 			IF W_GestionTVA="VRAI" THEN
* 				ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact+1;"O")
* 			END ELSE
* 				ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact+1;"N")					
* 			END		
            ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iFact+1;ENR_ACTIVITES<11>)		
			*********************				
			
	   END
        END
      END
   END ELSE
		* MODIF VANESSA 15/05/09-
		*IF (ENR_ORGPRISECHARGE<55>="1" AND ENR_ORGPRISECHARGE<51>= "0") OR (ENR_ORGPRISECHARGE<55>="1" AND ENR_ORGPRISECHARGE<51>= "") THEN	
		IF ENR_ORGPRISECHARGE<55>="1" THEN   
		
			*************
			*LIGNE COUT INTERVENTION
PRINT ENR_TEMPFACTURAIDE
	        IF HeuresPrisAcc=0 THEN
	           HeuresPrisAcc=NbrHeuresAtt
	        END			
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,1,-1;W_Periode)
			IF ENR_RUBSAISIE<2>=3 THEN
				IF W_TauxRembOrgMaj # W_TauxRembOrg THEN
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,-1;W_LibOrg)
				END ELSE
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,-1;W_LibOrg)				
				END
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,4,-1;W_TauxRembOrg)	
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,5,-1;INT(W_TauxRembOrg*HeuresPrisAcc/100+1/2))
PRINT W_LibOrg
PRINT W_TauxRembOrg
PRINT HeuresPrisAcc
			
			END ELSE
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,-1;W_LibOrg)
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,4,-1;W_TauxRembOrgMaj)
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,5,-1;INT(W_TauxRembOrgMaj*HeuresPrisAcc/100+1/2))				
			END
			
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,-1;HeuresPrisAcc)
	        W_Count6FacturAide=DCOUNT(ENR_TEMPFACTURAIDE<1>,CHAR(253))
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,W_Count6FacturAide;W_CodeComptaPrest)
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,7,-1;ENR_ACTIVITES<2>)
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,14,W_Count6FacturAide;"0")
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,15,W_Count6FacturAide;W_CleAcc)
			* modif vanes 17/11/08
			* Modif Guillaume DA12006 15/02/2012			
* 			IF W_GestionTVA="VRAI" THEN
* 				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;"O")
* 			END ELSE
* 				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;"N")					
* 			END				
            ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;ENR_ACTIVITES<11>)
			*********************	
			******************
			* LIGNE PARTICIPATION

PRINT ENR_TEMPFACTURAIDE<3>
*DEBUG			
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,1,-1;W_Periode)
			ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,-1;HeuresPrisAcc)
PRINT "------------------------------"
PRINT ENR_TEMPFACTURAIDE<3>
*DEBUG			
			IF ENR_RUBSAISIE<2>=3 THEN
				
				*Anthony 06/06/11
				IF 	ENR_ORGPRISECHARGE<59> = "" THEN
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,-1;"PARTICIPATION ":ENR_ORGPRISECHARGE<1>)
				END ELSE
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,-1;ENR_ORGPRISECHARGE<59>)
				END
				*Fin Anthony
				
				*ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,4,-1;-W_TauxRembOrg + W_Taux)	
				*ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,5,-1;INT((-W_TauxRembOrg + W_Taux)*HeuresPrisAcc/100-1/2))
				
				*Christophe le 25/01/2013 CG36
PRINT "LA......6"
			
				W_MontTempFacturAide=INT((-W_TauxRembOrg + W_Taux)*HeuresPrisAcc/100-1/2)
				IF W_MontantMaxCG="" THEN
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,4,-1;-W_TauxRembOrg + W_Taux)	
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,5,-1;W_MontTempFacturAide)
				 END ELSE
					 * Gestion cg36 - nb heures * tarif cg - pourcentage du bnficiaire appliqu  ce tarif
					W_MontTempFacturAide=W_TauxRembOrg*HeuresPrisAcc /100					
*PRINT "HeuresPrisAcc :":HeuresPrisAcc
*PRINT "W_TauxRembOrg :":W_TauxRembOrg
					
					W_MontTempFacturAide=W_MontTempFacturAide - (W_MontTempFacturAide * ENR_ACCORD<10,iTaux> /10000)					 
					W_MontTempFacturAide=INT(W_MontTempFacturAide + 1/2)
					IF ABS(W_MontTempFacturAide) > ABS(W_MontantMaxCG) THEN
						ENR_TEMPFACTURAIDE<5,-1>=-W_MontantMaxCG
					END ELSE
						ENR_TEMPFACTURAIDE<5,-1>=-W_MontTempFacturAide
					END			 
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,DCOUNT(ENR_TEMPFACTURAIDE<3>,CHAR(253));"")
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,4,-1;"")
*PRINT "------------------------------"
*PRINT ENR_TEMPFACTURAIDE<3>
*DEBUG								
				 END						
				*Fin Christophe le 25/01/2013 CG36					
				
			END ELSE
				
				*Anthony 06/06/11
				IF 	ENR_ORGPRISECHARGE<59> = "" THEN
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,-1;"PARTICIPATION ":ENR_ORGPRISECHARGE<1>:" DIMANCHE ET JF")
				END ELSE
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,-1;ENR_ORGPRISECHARGE<59>)
				END
				*Fin Anthony
				
				*ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,4,-1;-W_TauxRembOrgMaj+W_Taux)
				*ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,5,-1;INT((-W_TauxRembOrgMaj+W_Taux)*HeuresPrisAcc/100-1/2))
				
				*Christophe le 25/01/2013 CG36
PRINT "LA......7"				
				W_MontTempFacturAide=INT((-W_TauxRembOrgMaj + W_Taux)*HeuresPrisAcc/100-1/2)
				IF W_MontantMaxCG="" THEN
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,4,-1;-W_TauxRembOrgMaj + W_Taux)	
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,5,-1;W_MontTempFacturAide)
				 END ELSE
					 * Gestion cg36 - nb heures * tarif cg - pourcentage du bnficiaire appliqu  ce tarif
					 W_MontTempFacturAide=W_TauxRembOrgMaj*HeuresPrisAcc /100
					 W_MontTempFacturAide=W_MontTempFacturAide - (W_MontTempFacturAide * ENR_ACCORD<10,iTaux> /10000)
					 W_MontTempFacturAide=INT(W_MontTempFacturAide + 1/2)
					 IF ABS(W_MontTempFacturAide) > ABS(W_MontantMaxCG) THEN
						ENR_TEMPFACTURAIDE<5,-1>=-W_MontantMaxCG
					 END ELSE			 
						ENR_TEMPFACTURAIDE<5,-1>=-W_MontTempFacturAide
					 END
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,DCOUNT(ENR_TEMPFACTURAIDE<3>,CHAR(253));"")
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,4,-1;"")					 
				 END						
				*Fin Christophe le 25/01/2013 CG36					
				
			END
			
	        *ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,-1;HeuresPrisAcc)
	        W_Count6FacturAide=DCOUNT(ENR_TEMPFACTURAIDE<1>,CHAR(253))
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,W_Count6FacturAide;W_CodeComptaPrest)
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,7,-1;ENR_ACTIVITES<2>)
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,14,W_Count6FacturAide;"0")
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,15,W_Count6FacturAide;W_CleAcc)
			* modif vanes 17/11/08
			* Modif Guillaume DA12006 15/02/2012			
* 			IF W_GestionTVA="VRAI" THEN
* 				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;"O")
* 			END ELSE
* 				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;"N")
* 			END

			* christophe le 30/01/2012 - si gestion CG 36 + TVA (addexia) il ne faut pas considrer la ligne de participation en TVA.
            *ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;ENR_ACTIVITES<11>)
			IF W_MontantMaxCG="" THEN
				*cas actuel
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;ENR_ACTIVITES<11>)
			END ELSE
				* cas CG36 donc pas de tva sur cette ligne
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;"1")
			END
			*********************
			
		END ELSE
		
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,1,-1;W_Periode)
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,-1;W_LibOrg)
	        IF HeuresPrisAcc=0 THEN
	           HeuresPrisAcc=NbrHeuresAtt
	        END
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,-1;HeuresPrisAcc)
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,4,-1;W_Taux)
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,5,-1;INT(W_Taux*HeuresPrisAcc/100+1/2))
	        W_Count6FacturAide=DCOUNT(ENR_TEMPFACTURAIDE<1>,CHAR(253))
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,W_Count6FacturAide;W_CodeComptaPrest)
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,7,-1;ENR_ACTIVITES<2>)
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,14,W_Count6FacturAide;"0")
	        ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,15,W_Count6FacturAide;W_CleAcc)
			* modif vanes 17/11/08
			* Modif Guillaume DA12006 15/02/2012			
* 			IF W_GestionTVA="VRAI" THEN
* 				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;"O")
* 			END ELSE
* 				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;"N")
* 			END
            ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;ENR_ACTIVITES<11>)
			*********************
			
		END
		
* 		IF ENR_TEMPFACTURAIDE<8> = "" THEN
* 		   * READ ENR_ACTIVITES FROM F.ACTIVITES,W_ActHres ELSE STOP
* 		   ENR_TEMPFACTURAIDE<8>=ENR_TAUXTVA<4,ENR_ACTIVITES<11>>
* 		END
		
		* Recherche l'emplacement du code aidant dans TempFacturAide
		GOSUB 355
		
		* ajustement 
		IF ENR_ORGPRISECHARGE<53>="1" AND W_TauxOrg < W_TauxTarife THEN
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,1,-1;W_Periode)
				IF W_TabAct<6> = "" THEN
					* modif vanes 12/02/09
					IF W_MAJ="VRAI" THEN
						W_TabAct<6>="REAJUSTEMENT TARIFAIRE MAJ"
					END ELSE
						W_TabAct<6>="REAJUSTEMENT TARIFAIRE"
					END
					*********
				END
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,-1;W_TabAct<6>)
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,-1;HeuresPrisAcc)
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,4,-1;W_TauxTarife-W_TauxOrg)
				W_CountFact4=DCOUNT(ENR_TEMPFACTURAIDE<4>,CHAR(253))
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,5,-1;INT(ENR_TEMPFACTURAIDE<4,W_CountFact4> * ENR_TEMPFACTURAIDE<3,W_CountFact4>/100+1/2))
				W_Count6FacturAide=DCOUNT(ENR_TEMPFACTURAIDE<1>,CHAR(253))
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,W_Count6FacturAide;ENR_COMPTESPARTICULIERS<1>)
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,7,-1;ENR_ACTIVITES<2>)
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,14,W_Count6FacturAide;"0")
				ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,15,W_Count6FacturAide;"R":W_CodeOrg)
				* modif vanes 17/11/08
				* Modif Guillaume DA12006 15/02/2012				
* 				IF W_GestionTVA="VRAI" THEN
* 					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;"O")
* 				END ELSE
* 					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;"N")
* 				END
                ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;ENR_ACTIVITES<11>)
				*********************
				
		END

		ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,11;0)

   END
   
RETURN

*********************************************************************
* Gestion de l'abattement
380
W_CountFactOrgAbatt=DCOUNT(W_FacturOrgAbatt,CHAR(254))
FOR iFactAbatt=1 TO W_CountFactOrgAbatt

   W_DeducAbattComplMont=0
  
    W_TempOrgAbatt=W_FacturOrgAbatt<iFactAbatt>
    W_TempOrgAbatt=W_TempOrgAbatt[1,3]
    W_TempAccAbatt=W_FacturOrgAbatt<iFactAbatt>
    W_TempAccAbatt=W_TempAccAbatt[5,8]
    W_TabAbat=""
    READ ENR_FACTURORG FROM F.FACTURORG,W_FacturOrgAbatt<iFactAbatt> ELSE PRINT "FACTURORG 1"
    READ ENR_ACCORD FROM F.ACCORD,W_TempAccAbatt ELSE PRINT "ACCORD 3"
    READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_TempOrgAbatt ELSE PRINT "ORGPRISECHARGE 4"
    W_CodeOrg=W_TempOrgAbatt
   W_NbHeures=ENR_FACTURORG<1,1>
   IF ENR_FACTURORG<5,1> # "" THEN
      W_NbHeures=W_NbHeures+ENR_FACTURORG<5,1>
   END

   IF W_SurHresAtt="VRAI" THEN
       lAbatt=1
       LOOP
       WHILE W_Periode < ENR_ACCORD<14,lAbatt> DO
          lAbatt=lAbatt+1
       REPEAT
       IF W_Periode=ENR_ACCORD<14,lAbatt> THEN
          W_NbHeures=ENR_ACCORD<16,lAbatt>
       END
   END

   W_Sup=0
   iAbat=1
   LOOP
   WHILE ENR_ORGPRISECHARGE<29,iAbat> # "" DO
     IF W_NbHeures > ENR_ORGPRISECHARGE<29,iAbat> THEN
        IF W_NbHeures > ENR_ORGPRISECHARGE<30,iAbat> THEN
           W_Sup=ENR_ORGPRISECHARGE<30,iAbat>
        END ELSE
           W_Sup=W_NbHeures
        END

        jAbat=iAbat+1
        ENR_FACTURORG<1,jAbat>=W_Sup-ENR_ORGPRISECHARGE<29,iAbat>
        W_Reste=ENR_FACTURORG<1,jAbat>

        kAbat=1
        LOOP
          ENR_FACTURORG<1,kAbat>=ENR_FACTURORG<1,kAbat>-W_Reste
		  ****** modif du 03/10/07 vanes
          * ENR_FACTURORG<4,kAbat>=INT(ENR_FACTURORG<1,kAbat>*ENR_FACTURORG<3,kAbat>/100+1/2)
		  W_MontTemp=INT((ENR_FACTURORG<2,kAbat>+ENR_FACTURORG<3,kAbat>) * ENR_FACTURORG<1,kAbat>/100+1/2)
		  W_MontTemp=W_MontTemp-INT(ENR_FACTURORG<2,kAbat> * ENR_FACTURORG<1,kAbat>/100+1/2)
          ENR_FACTURORG<4,kAbat>=W_MontTemp
		  ******* fin  modif
        WHILE ENR_FACTURORG<1,kAbat> < 0 DO
           W_Reste=ABS(ENR_FACTURORG<1,kAbat>)
           ENR_FACTURORG<1,kAbat>=0
           kAbat=kAbat+1
        REPEAT

*        ENR_FACTURORG<16,jAbat>=ENR_FACTURORG<2,1>
        W_TabAbat<3,jAbat>=ENR_FACTURORG<2,1>
        ENR_FACTURORG<2,jAbat>=INT(ENR_FACTURORG<2,1>-ENR_FACTURORG<2,1>*ENR_ORGPRISECHARGE<31,iAbat>/10000+1/2)
        ENR_FACTURORG<3,jAbat>=ENR_FACTURORG<3,1>+ENR_FACTURORG<2,1>-ENR_FACTURORG<2,jAbat>
		****** modif du 03/10/07 vanes
        * ENR_FACTURORG<4,jAbat>=INT(ENR_FACTURORG<1,jAbat>*ENR_FACTURORG<3,jAbat>/100+1/2)
		W_MontTemp=INT((ENR_FACTURORG<2,jAbat>+ENR_FACTURORG<3,jAbat>) * ENR_FACTURORG<1,jAbat>/100+1/2)
		W_MontTemp=W_MontTemp-INT(ENR_FACTURORG<2,jAbat> * ENR_FACTURORG<1,jAbat>/100+1/2)
        ENR_FACTURORG<4,jAbat>=W_MontTemp
		******* fin  modif
        W_TabAbat<1,jAbat>=ENR_ORGPRISECHARGE<29,iAbat>/100
        W_TabAbat<2,jAbat>=W_Sup/100
*        ENR_FACTURORG<14,jAbat>=ENR_ORGPRISECHARGE<29,iAbat>/100
*        ENR_FACTURORG<15,jAbat>=W_Sup/100

        * Nb heures max sur la section analytique
        W_MaxAbat=ENR_FACTURORG<13,1>
        W_IndSectAbat=1
        lAbat=2
        LOOP
        WHILE ENR_FACTURORG<11,lAbat> # "" DO
           IF ENR_FACTURORG<13,lAbat> > W_MaxAbat THEN
              W_MaxAbat=ENR_FACTURORG<13,lAbat>
              W_IndSectAbat=lAbat
           END
           lAbat=lAbat+1
        REPEAT
        W_CalculPartOrg=INT(ENR_FACTURORG<1,jAbat> * ENR_FACTURORG<3,1> /100 + 1/2)
        ENR_FACTURORG<12,W_IndSectAbat>=ENR_FACTURORG<12,W_IndSectAbat> - W_CalculPartOrg  + INT(ENR_FACTURORG<1,jAbat> * ENR_FACTURORG<3,jAbat>/100 + 1/2)
        iAbat=iAbat+1
     END ELSE
        iAbat=999
     END
   REPEAT

   iAbatt=1
   LOOP
   WHILE ENR_FACTURORG<1,iAbatt>=0 DO
      W_TabAbat=DELETE(W_TabAbat,3,iAbatt)
      W_TabAbat=DELETE(W_TabAbat,2,iAbatt)
      W_TabAbat=DELETE(W_TabAbat,1,iAbatt)
*      ENR_FACTURORG=DELETE(ENR_FACTURORG,16,iAbatt)
*      ENR_FACTURORG=DELETE(ENR_FACTURORG,15,iAbatt)
*      ENR_FACTURORG=DELETE(ENR_FACTURORG,14,iAbatt)
      ENR_FACTURORG=DELETE(ENR_FACTURORG,4,iAbatt)
      ENR_FACTURORG=DELETE(ENR_FACTURORG,3,iAbatt)
      ENR_FACTURORG=DELETE(ENR_FACTURORG,2,iAbatt)
      ENR_FACTURORG=DELETE(ENR_FACTURORG,1,iAbatt)
   REPEAT

   iAbatt=1
   LOOP
   WHILE ENR_FACTURORG<1,iAbatt># "" DO
      * Remplir Abattement sur TempFacturAide
      IF W_TabAbat<1,iAbatt> # "" THEN
         GOSUB 385
      END
      iAbatt=iAbatt+1
   REPEAT

  * met  jour le tableau pour les accords complmentaires en montant
  W_PeriodeHresFacturog=W_FacturOrgAbatt<iFactAbatt>
  W_PeriodeHresFacturog=W_PeriodeHresFacturog[13,6]

  READ W_ActHresComp FROM F.TEMPMONTANTFACT,W_TempAccAbatt[1,5] ELSE W_ActHresComp = ""

  iPHF=1
  LOOP
  WHILE W_ActHresComp<iPHF,4> # "" DO
     IF W_ActHresComp<iPHF,4> = W_PeriodeHresFacturog THEN
        W_ActHresComp<iPHF,3> = W_ActHresComp<iPHF,3> + W_DeducAbattComplMont
     END
     iPHF=iPHF + 1
  REPEAT

  WRITE W_ActHresComp ON F.TEMPMONTANTFACT,W_TempAccAbatt[1,5]

	  W_TabAbat=DELETE(W_TabAbat,3,iAbatt)
      W_TabAbat=DELETE(W_TabAbat,2,iAbatt)
      W_TabAbat=DELETE(W_TabAbat,1,iAbatt)
*   ENR_FACTURORG=DELETE(ENR_FACTURORG,16)
*   ENR_FACTURORG=DELETE(ENR_FACTURORG,15)
*   ENR_FACTURORG=DELETE(ENR_FACTURORG,14)

*   IF ENR_FACTURORG<8> # "" THEN
*      ENR_FACTURORG<14>=SUM(ENR_FACTURORG<4>)+ ENR_FACTURORG<8>
*   END ELSE
*      ENR_FACTURORG<14>=SUM(ENR_FACTURORG<4>)
*   END

   WRITE ENR_FACTURORG ON F.FACTURORG,W_FacturOrgAbatt<iFactAbatt>

NEXT iFactAbatt

RETURN

*********************************************************************
* Remplir Abattement sur TempCalculFactrAide
385

   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,1,-1;W_Periode)
	*Anthony 06/06/11
	IF ENR_ORGPRISECHARGE<59> = "" THEN
		ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,-1;"ABATTEMENT ":ENR_ORGPRISECHARGE<1>:" DE ":W_TabAbat<1,iAbatt>:" A ":W_TabAbat<2,iAbatt>:" HEURES")
	END ELSE
		ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,-1;ENR_ORGPRISECHARGE<59>)
	END
	*Fin Anthony
*   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,-1;"ABATTEMENT ":ENR_ORGPRISECHARGE<1>:" DE ":ENR_FACTURORG<14,iAbatt>:" A ":ENR_FACTURORG<15,iAbatt>:" HEURES")
   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,-1;ENR_FACTURORG<1,iAbatt>)

*   W_ReducTaux=-(ENR_FACTURORG<16,iAbatt>-ENR_FACTURORG<2,iAbatt>)
   W_ReducTaux=-(W_TabAbat<3,iAbatt>-ENR_FACTURORG<2,iAbatt>)

   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,4,-1;W_ReducTaux)
   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,5,-1;INT(W_ReducTaux*ENR_FACTURORG<1,iAbatt>/100-1/2))

   W_Count6FacturAide=DCOUNT(ENR_TEMPFACTURAIDE<1>,CHAR(253))
   W_DeducAbattComplMont=W_DeducAbattComplMont + ENR_TEMPFACTURAIDE<5,W_Count6FacturAide>

   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,W_Count6FacturAide;W_CodeComptaPrest)

   lAbattAccHist=1
   LOOP
   WHILE W_Periode < ENR_ACCORD<14,lAbattAccHist> DO
      lAbattAccHist=lAbattAccHist+1
   REPEAT
   IF W_Periode=ENR_ACCORD<14,lAbattAccHist> THEN
      ENR_ACCORD<15,lAbattAccHist>=ENR_ACCORD<15,lAbattAccHist>+ENR_TEMPFACTURAIDE<5,W_Count6FacturAide>
      WRITE ENR_ACCORD ON F.ACCORD,W_TempAccAbatt
   END

  * Recherche de la section analytique qui a le plus nombre d'heures
  W_MaxAnal=W_SectionAnal<1,2>
  W_SectAnal=W_SectionAnal<1,1>
  jAnal=2
  LOOP
  WHILE W_SectionAnal<jAnal,1> # "" DO
     IF W_SectionAnal<jAnal,2> > W_MaxAnal THEN
        W_MaxAnal=W_SectionAnal<jAnal,2>
        W_SectAnal=W_SectionAnal<jAnal,1>
     END
     jAnal=jAnal+1
  REPEAT
  ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,7,-1;W_SectAnal)
  ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,14,W_Count6FacturAide;"0")
  ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,15,W_Count6FacturAide;W_TempAccAbatt)
	* modif vanes 17/11/08
	* Modif Guillaume DA12006 15/02/2012	
* 	IF W_GestionTVA="VRAI" THEN
* 		ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;"O")
* 	END ELSE
* 		ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;"N")
* 	END
    ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,-1;ENR_ACTIVITES<11>)
	********
RETURN

*********************************************************************
* Mise a jour de l'historique
390
	* MODIF VANESSA 07/09/10 - PB HISTORIQUE DES ACCORDS QUAND GLOBALEMENT OU MENSUEL AVEC REPORT
    * Modif Guillaume DA10260 : L'attribut 22 n'est plus utilis pour a
* 	IF ENR_ACCORD<22> # "" THEN
* 		W_HresAllouees=ENR_ACCORD<22>
* 	END ELSE
*		W_HresAllouees=ENR_ACCORD<9>
* 	END
	IF ENR_ACCORD<22> # "" THEN
		IF ENR_ACCORD<22> > ENR_ACCORD<9> THEN
			W_HresAllouees=ENR_ACCORD<22>
		END ELSE
			W_HresAllouees=ENR_ACCORD<9>
		END
	END ELSE
		W_HresAllouees=ENR_ACCORD<9>
	END
	
	IF W_SurHresAtt="FAUX" THEN
		IF ENR_ACCORD<14,1> = W_CboAnneeMois THEN
			ENR_ACCORD=REPLACE(ENR_ACCORD,15,1;ENR_ACCORD<15,1>+W_MontHistOrg)
			ENR_ACCORD=REPLACE(ENR_ACCORD,16,1;ENR_ACCORD<16,1>+HeuresPrisAcc)
		
			IF ENR_ORGPRISECHARGE<19> # 2 THEN
				IF ENR_ACCORD<17,1>="" THEN
					ENR_ACCORD=REPLACE(ENR_ACCORD,17,1;W_HresAllouees-ENR_ACCORD<16,1>)
				END ELSE
					ENR_ACCORD=REPLACE(ENR_ACCORD,17,1;ENR_ACCORD<17,1>-HeuresPrisAcc)
				END
			END
		END ELSE
			ENR_ACCORD=INSERT(ENR_ACCORD,14,1;W_Periode)
			ENR_ACCORD=INSERT(ENR_ACCORD,15,1;W_MontHistOrg)
	        ENR_ACCORD=INSERT(ENR_ACCORD,16,1;HeuresPrisAcc)
			
			IF ENR_ORGPRISECHARGE<19> # 2 THEN
				IF ENR_ACCORD<17,1>="" THEN
					ENR_ACCORD=INSERT(ENR_ACCORD,17,1;W_HresAllouees-HeuresPrisAcc)
				END ELSE
					IF ENR_ORGPRISECHARGE<19>=3 THEN
						ENR_ACCORD=INSERT(ENR_ACCORD,17,1;ENR_ACCORD<17,1>-HeuresPrisAcc)
					END ELSE
						ENR_ACCORD=INSERT(ENR_ACCORD,17,1;W_HresAllouees+ENR_ACCORD<17,1>-HeuresPrisAcc)
					END
				END
			END
		END
	END ELSE

		iHistoAcc=1
		LOOP
		WHILE ENR_ACCORD<14,iHistoAcc> > W_Periode AND ENR_ACCORD<14,iHistoAcc> # "" DO
			iHistoAcc=iHistoAcc+1
		REPEAT

		IF ENR_ACCORD<14,iHistoAcc> = W_Periode THEN
			ENR_ACCORD=REPLACE(ENR_ACCORD,16,iHistoAcc;ENR_ACCORD<16,iHistoAcc>+HeuresPrisAcc)
			ENR_ACCORD=REPLACE(ENR_ACCORD,15,iHistoAcc;ENR_ACCORD<15,iHistoAcc>+W_MontHistOrg)
			IF ENR_ORGPRISECHARGE<19>#2 THEN
				IF ENR_ACCORD<17,1>="" THEN
					ENR_ACCORD<17,iHistoAcc>=W_HresAllouees-HeuresPrisAcc
				END ELSE
					ENR_ACCORD<17,iHistoAcc>=ENR_ACCORD<17,iHistoAcc>-HeuresPrisAcc
				END
			END
		END ELSE
			ENR_ACCORD=INSERT(ENR_ACCORD,14,iHistoAcc;W_Periode)
			ENR_ACCORD=INSERT(ENR_ACCORD,15,iHistoAcc;W_MontHistOrg)
			ENR_ACCORD=INSERT(ENR_ACCORD,16,iHistoAcc;HeuresPrisAcc)
			IF ENR_ORGPRISECHARGE<19>#2 THEN
				IF ENR_ACCORD<17,iHistoAcc>#"" THEN
					IF ENR_ORGPRISECHARGE<19>=3 THEN
						ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;ENR_ACCORD<17,iHistoAcc>-HeuresPrisAcc)
					END ELSE
						ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;W_HresAllouees+ENR_ACCORD<17,iHistoAcc>-HeuresPrisAcc)
					END
				END ELSE
					ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;W_HresAllouees-HeuresPrisAcc)
				END
			END
		END
		
		* MODIF VANESSA 07/09/10 - PB HISTORIQUE DES ACCORDS QUAND GLOBALEMENT OU MENSUEL AVEC REPORT
		* christophe le 06/01/2011 pour correction des heures en attente sur accords globaux + avec report.
		IF ENR_ORGPRISECHARGE<19>=3 THEN
			*Parcourir les mv dessous pour mise a jour
			iHistoAcc=iHistoAcc-1
			FOR jHistoAcc=iHistoAcc TO 1 STEP -1
				*IF jHistoAcc=iHistoAcc THEN
				*	IF ENR_ACCORD<17,jHistoAcc+1> # "" THEN
				*		ENR_ACCORD<17,jHistoAcc>=ENR_ACCORD<17,jHistoAcc+1>-HeuresPrisAcc
				*	END ELSE
				*		IF W_PasseHistoAcc="REPLACE" THEN
				*			ENR_ACCORD<17,jHistoAcc>=W_HresAllouees-HeuresPrisAcc
				*		END ELSE
				*			ENR_ACCORD<17,jHistoAcc>=ENR_ACCORD<17,jHistoAcc>-HeuresPrisAcc
				*		END
				*	END
				*END ELSE
					ENR_ACCORD<17,jHistoAcc>=ENR_ACCORD<17,jHistoAcc+1>-ENR_ACCORD<16,jHistoAcc>
				*END
			NEXT jHistoAcc
		END ELSE
			IF ENR_ORGPRISECHARGE<19>=1 THEN
				*Parcourir les mv dessous pour mise a jour
				iHistoAcc=iHistoAcc-1
				FOR jHistoAcc=iHistoAcc TO 1 STEP -1
					ENR_ACCORD<17,jHistoAcc>=W_HresAllouees+ENR_ACCORD<17,jHistoAcc+1>-ENR_ACCORD<16,jHistoAcc>
				NEXT jHistoAcc
			END
		END
	  
	END
	WRITE ENR_ACCORD ON F.ACCORD,W_CleAcc

RETURN

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

********************************************************************
* Gestion de DetailPrestInv
400
    W_RienSelect="FAUX"
    W_Temp='SSELECT DETAILPRESTINV AVEC EntitePrestInv = "':W_CodAssoc:'"'

    IF W_CodeService # "0" THEN
       W_Temp=W_Temp:' AND AVEC ServiceAide  = "':W_CodeService:'"'
    END

    IF W_CodeSectResp # "VIDE" THEN
       IF W_RespSect="R" THEN
          W_TempBis=' AND AVEC CodeRespInv = "':W_CodeSectResp:'"'
       END ELSE
          W_TempBis=' AND AVEC CodeSectInv = "':W_CodeSectResp:']"'
       END
    END ELSE
       W_TempBis=''
    END
    IF W_CodeAide = "" THEN
       W_Temp=W_Temp:W_TempBis:' PAR @ID'
    END ELSE
       W_Temp=W_Temp:W_TempBis:' AND AVEC @ID = "':W_CodeAide:']" PAR @ID'
    END
   EXECUTE W_Temp

   EXECUTE 'SAUVE-LISTE W_RequeteInv'
   EXECUTE "LISTE W_RequeteInv" RETURNING MSGCODE
   IF MSGCODE<1>=209 THEN
      W_RienSelect="VRAI"
	  END ELSE
      SELECT F.DETAILPRESTINV TO W_RequeteInv
   END

   W_Pass1="FAUX"
   W_FiniInv="FAUX"
   W_SurHresAtt="FAUX"
   W_CleInvAnc=""
   IF W_RienSelect#"VRAI" THEN
      LOOP
         READNEXT W_CleInv FROM W_RequeteInv ELSE W_FiniInv="VRAI"
         * READNEXT W_CleInvAtt FROM W_RequeteInv ELSE W_FiniInv="VRAI"
         * W_CleInv=FIELD(W_CleInvAtt,CHAR(253),1)
      WHILE W_FiniInv="FAUX" DO

          W_Aide=W_CleInv[1,5]
          READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_Aide THEN
             IF ENR_ELTSFACTAIDE<1> # "" THEN
                IF ENR_ELTSFACTAIDE<24,W_CodAssoc> # W_CboAnneeMois THEN
                   * Gestion de DetailPrestInv
                   GOSUB 401
                END
             END ELSE
                WRITEV "M" ON F.ELTSFACTAIDE,W_Aide,1
                * Gestion de DetailPrestInv
                GOSUB 401
             END
          END ELSE
             WRITEV "M" ON F.ELTSFACTAIDE,W_Aide,1
             * Gestion de DetailPrestInv
             GOSUB 401
          END 

      REPEAT

   END

RETURN

********************************************************************
* Gestion de DetailPrestInv
401
             iAnal=1
             LOOP 
             WHILE W_SectionAnal<iAnal,1> # "" DO
                W_SectionAnal<iAnal,2>=0
                iAnal=iAnal+1
             REPEAT

             W_Periode=W_CleInv[9,6]
             W_DatePeriode="01/":W_CleInv[13,2]:"/":W_CleInv[9,4]
             W_DatePeriode=ICONV(W_DatePeriode,"D4/")+32
             W_DatePeriode=OCONV(W_DatePeriode,"D4/")
             W_DatePeriode="01/":W_DatePeriode[4,7]
             W_DatePeriode=ICONV(W_DatePeriode,"D4/")-1

             W_DateDebPeriode="01/":W_CboAnneeMois[5,2]:"/":W_CboAnneeMois[1,4]
             W_DateDebPeriode=ICONV(W_DateDebPeriode,"D4/")
             W_DateFinPeriode=W_DateDebPeriode+32
             W_DateFinPeriode=OCONV(W_DateFinPeriode,"D4/")
             W_DateFinPeriode="01/":W_DateFinPeriode[4,7]
             W_DateFinPeriode=ICONV(W_DateFinPeriode,"D4/")-1      

             READ ENR_DETAILPRESTINV FROM F.DETAILPRESTINV,W_CleInv ELSE PRINT "DETAILPRESTINV 1"

             * Preparation de la requete Accord
             GOSUB 410
 
           IF W_GestionFede="FAUX" THEN
             READ ENR_TEMPFACTURAIDE FROM F.TEMPFACTURAIDE,W_Aide THEN
                iCivilAidant=1
                LOOP
                WHILE ENR_TEMPFACTURAIDE<10,iCivilAidant> # "" DO
                   READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,ENR_TEMPFACTURAIDE<10,iCivilAidant> ELSE ENR_CIVILAIDANT=""
                   ENR_TEMPFACTURAIDE<13,iCivilAidant>=ENR_CIVILAIDANT<2>:ENR_CIVILAIDANT<3>
                   iCivilAidant=iCivilAidant+1
                REPEAT
             END ELSE
                ENR_TEMPFACTURAIDE=""
             END
           END ELSE
             READ ENR_TEMPFACTURAIDE FROM F.TEMPFACTURAIDE,W_Aide ELSE ENR_TEMPFACTURAIDE=""
           END
      
            *READ ENR_HRESHISTOR FROM F.HRESHISTOR,W_Aide:W_CodAssoc:W_Periode ELSE ENR_HRESHISTOR = ""
            READ ENR_STATACTAIDE FROM F.STATACTAIDE,W_Aide:W_CodAssoc:W_Periode ELSE ENR_STATACTAIDE = ""
            ENR_HRESHISTOR = ""
            * ENR_STATACTAIDE = ""

            ENR_HRESATTENTE=""

               i=1
               LOOP
               WHILE ENR_DETAILPRESTINV<1,i> # "" DO
                  IF ENR_DETAILPRESTINV<4,i> # "" THEN
                    * Traitement des Mv
                     W_Mv="VRAI"
                     W_CodeAidant=ENR_DETAILPRESTINV<1,i>
                     W_CodeAidant=W_CodeAidant[1,5]
                     NbrHeuresAtt=ENR_DETAILPRESTINV<3,i>
                     W_ActHres=ENR_DETAILPRESTINV<4,i>
                     READ ENR_ACTIVITES FROM F.ACTIVITES,W_ActHres ELSE PRINT "ACTIVITES 5"
                     W_RubSaisie=ENR_DETAILPRESTINV<2,i>

                     * Mise a jour d'HRESHISTOR
                     GOSUB 510
                     * Mise a jour de STATACTAIDE
                     GOSUB 520

                     * Gestion du tableau tampon d'ActivitesAide
                     GOSUB 490

                     * Affectation des heures aux accords
					j=1
                     GOSUB 430
                     IF W_ExistAct="FAUX" OR NbrHeuresAtt > 0 THEN
      
                        * Preparation de la requete Demande d'Accord
                        GOSUB 420

                        * si pas d'accord  alors recherche de demande d'accord
                        GOSUB 440

                        IF NbrHeuresAtt>0 THEN
       
                           * Facturation a taux plein
                           HeuresPrisAcc=0
                           GOSUB 360
                        END
                     END
                  END ELSE
                     j=1
                     LOOP
                     WHILE ENR_DETAILPRESTINV<8,i,j> # "" DO
                        W_Mv="FAUX"
                        NbrHeuresAtt=ENR_DETAILPRESTINV<7,i,j>
                        W_ActHres=ENR_DETAILPRESTINV<8,i,j>
                        READ ENR_ACTIVITES FROM F.ACTIVITES,W_ActHres ELSE PRINT "ACTIVITES 6"
                        W_DateJour=ENR_DETAILPRESTINV<5,i,j>:"/":W_CboAnneeMois[5,2]:"/":W_CboAnneeMois[1,4]
                        W_DateJour=ICONV(W_DateJour,"D4/")
                        W_RubSaisie=ENR_DETAILPRESTINV<6,i,j>
                        W_CodeAidant=ENR_DETAILPRESTINV<1,i>
                        W_CodeAidant=W_CodeAidant[1,5]

                        * Mise a jour d'HRESHISTOR
                        GOSUB 510
                        * Mise a jour de STATACTAIDE
                        GOSUB 520

                        * Gestion du tableau tampon d'ActivitesAide
                        GOSUB 490

                        * Affectation des heures aux accords
                        GOSUB 430
                        IF W_ExistAct="FAUX" OR NbrHeuresAtt > 0 THEN
                           * Preparation de la requete Demande d'Accord
                           GOSUB 420
                           * si pas d'accord  alors recherche de demande d'accord
                           GOSUB 440
                           IF NbrHeuresAtt>0 THEN
                              * Facturation a taux plein
                              HeuresPrisAcc=0
                              GOSUB 360
                           END
                        END
                        j=j+1
                     REPEAT
                  END
                  i=i+1
               REPEAT
    
             * Si abattement alors affectation
             IF W_FacturOrgAbatt#"" THEN
                GOSUB 380
                W_FacturOrgAbatt=""
             END
      
            * Ecriture d'activitesaide
            GOSUB 495
*            ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,13)
            IF ENR_TEMPFACTURAIDE # "" THEN
               ENR_TEMPFACTURAIDE<13>=""

               WRITE ENR_TEMPFACTURAIDE ON F.TEMPFACTURAIDE,W_Aide
            END
            ENR_HRESHISTOR=DELETE(ENR_HRESHISTOR,3)
            WRITE ENR_HRESHISTOR ON F.HRESHISTOR,W_Aide:W_CodAssoc:W_Periode
            WRITE ENR_STATACTAIDE ON F.STATACTAIDE,W_Aide:W_CodAssoc:W_Periode
            IF ENR_HRESATTENTE # "" THEN
               READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_Aide ELSE ENR_ELTSFACTAIDE=""
               ENR_ELTSFACTAIDE<24,W_CodAssoc>=W_CboAnneeMois
               WRITE ENR_ELTSFACTAIDE ON F.ELTSFACTAIDE,W_Aide
               WRITE ENR_HRESATTENTE ON F.HRESATTENTE,W_CleInv:"P"
            END
         
            * Gestion des accords complementaires
            IF W_AucunAcc # "VRAI" THEN
               GOSUB 460
			   IF W_ReqAccComp # "" THEN
					* christophe le 09/09/2011 pour gestion effet rtroactif  partir de STATACTAIDE
					GOSUB 471			   
					*GOSUB 470
			   END
               GOSUB 461
			   IF W_ReqAccComp # "" THEN
					GOSUB 470
			   END
               GOSUB 464
               GOSUB 466
               GOSUB 465
               GOSUB 466
               W_ActHresComp=""
            END ELSE
               GOSUB 460	   
			   IF W_ReqAccComp # "" THEN
					* christophe le 09/09/2011 pour gestion effet rtroactif  partir de STATACTAIDE
					GOSUB 471			   
					*GOSUB 470
			   END
			   GOSUB 464
               GOSUB 466		
			   W_ActHresComp=""
            END
			
	      DELETE F.TEMPMONTANTFACT,W_Aide
      
            * Mise a jour de COTISANAIDE
            GOSUB 530

            ENR_TEMPFACTURAIDE=""
            ENR_HRESHISTOR=""
            * ENR_STATACTAIDE=""
      
            W_CleInvAnc=W_CleInv


RETURN

********************************************************************
* Requete et preparation des accords
410
   W_AucunAcc="FAUX"
   W_ReqAcc=""
   *IF W_CodeService=0 THEN
    W_ExecAcc='SSELECT ACCORD AVEC @ID = "':W_Aide:']" AND AVEC 5 <= "':W_DateFinPeriode:'" AND AVEC 6 >= "':W_DateDebPeriode:'" AND AVEC 18 <> "O" AND AVEC NotifOrg = "H" AND AVEC TypeOrg = "P" AND AVEC TypeActOrg = "P"'
   *END ELSE
    *W_ExecAcc='SSELECT ACCORD AVEC @ID = "':W_Aide:']" AND AVEC 5 <= "':W_DateFinPeriode:'" AND AVEC 6 >= "':W_DateDebPeriode:'" AND AVEC 18 <> "O" AND AVEC NotifOrg = "H" AND AVEC TypeOrg = "P" AND AVEC ActivitesOrg = "':EXTRACT(W_Activites,1,1):'"'
    *FOR iNbActAcc=2 TO W_NbActivites
    *  W_ExecAcc=W_ExecAcc:' OR = "':EXTRACT(W_Activites,iNbActAcc,1):'"'
    *NEXT iNbActAcc
   *END

   W_ExecAcc=W_ExecAcc:' PAR 8 PAR 5 PAR 6'
   EXECUTE W_ExecAcc
   EXECUTE 'SAUVE-LISTE W_RequeteAccord'
   EXECUTE "LISTE W_RequeteAccord" RETURNING MSGCODE
   IF MSGCODE<1>=209 THEN
		W_AucunAcc="VRAI"
   END ELSE
		SELECT F.ACCORD TO W_RequeteAccord
   END

 IF W_AucunAcc#"VRAI" THEN
   W_IndAccAct=0
   W_IndAcc=0
   W_FiniAcc="FAUX"
   W_ActOrg=0
   k=0
   W_IndReqAcc=0

	LOOP
		READNEXT W_CleAcc FROM W_RequeteAccord ELSE W_FiniAcc="VRAI"
	WHILE W_FiniAcc#"VRAI" DO
		READ ENR_ACCORD FROM F.ACCORD,W_CleAcc ELSE PRINT "ACCORD 3"
		IF ENR_ACCORD<5> <= W_DateFinPeriode THEN
			IF ENR_ACCORD<6> >= W_DateDebPeriode THEN
				* Compris dans la periode
				READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE PRINT "ORGPRISECHARGE 5"
				W_CodeOrg=ENR_ACCORD<1>
				jOrg=1
				mAct=0
				LOOP
					W_ActOrg=ENR_ORGPRISECHARGE<47,jOrg>
				WHILE W_ActOrg#"" DO
					FOR kAct=1 TO W_NbActivites
						IF W_Activites<kAct,1>=W_ActOrg THEN
							IF mAct=0 THEN
								W_HresAcc=0

								* Modif Greg - 06/03/12 - DA12006 - Gestion des priodes manquantes dans l'historique de l'accord.
								* A noter qu'on pourrait mettre le code directement sous la condition qui teste l'att. 19 de ORGPRISECHARGE,
								* mais la procdure 1000 est appele aussi  partir de la procdure 330 et l'algo de cette dernire n'tant
								* pas le mme, la procdure 1000 est oblige de tester aussi l'att. 19.
								* Donc pour plus de clart, la procdure 1000 est appele avant les tests de l'att. 19 aussi bien dans la
								* procdure 330 (o c'est obligatoire) que dans la procdure prsente 410.
								W_Periode1000=W_CboAnneeMois
								GOSUB 1000
								* Fin modif Greg - 06/03/12
								
								IF ENR_ORGPRISECHARGE<19>=1 THEN
									IF ENR_ACCORD<17,1>="" THEN
										W_HresAcc=ENR_ACCORD<9>
									END ELSE
										W_HresAcc=ENR_ACCORD<17,1>+ENR_ACCORD<9>
									END
								END ELSE
									IF ENR_ORGPRISECHARGE<19>=2 THEN
									    * Modif Guillaume DA10260 : L'attribut 22 n'est plus utilis pour a
* 										IF ENR_ACCORD<22> # "" THEN
* 											W_HresAllouees=ENR_ACCORD<22>
* 										END ELSE
*											W_HresAllouees=ENR_ACCORD<9>
* 										END
			                            IF ENR_ACCORD<22> # "" THEN
											IF ENR_ACCORD<22> > ENR_ACCORD<9> THEN
												W_HresAllouees=ENR_ACCORD<22>
											END ELSE
												W_HresAllouees=ENR_ACCORD<9>
											END
										END ELSE
											W_HresAllouees=ENR_ACCORD<9>
										END
										
										* modif vanessa 04/03/10
										W_HresAcc=0 
										rHisto=1
										LOOP
										WHILE ENR_ACCORD<14,rHisto> # W_CboAnneeMois AND ENR_ACCORD<14,rHisto> # "" DO
											rHisto=rHisto+1
										REPEAT
										IF ENR_ACCORD<14,rHisto> # "" THEN
											W_HresAcc=ENR_ACCORD<16,rHisto>
										END
										W_HresAcc=W_HresAllouees-W_HresAcc
										* fin modif
									END ELSE
										IF ENR_ACCORD<17,1>="" THEN
											W_HresAcc=ENR_ACCORD<9>
										END ELSE
											W_HresAcc=ENR_ACCORD<17,1>
										END
									END
								END
								IF W_HresAcc > 0 THEN
									W_IndReqAcc=W_IndReqAcc+1
									W_ReqAcc=REPLACE(W_ReqAcc,W_IndReqAcc,1;W_CleAcc)
									W_ReqAcc=REPLACE(W_ReqAcc,W_IndReqAcc,3;W_HresAcc)
									IF ENR_ORGPRISECHARGE<51> = "" THEN
										ENR_ORGPRISECHARGE<51> = "0"
									END
									W_ReqAcc=REPLACE(W_ReqAcc,W_IndReqAcc,4;ENR_ORGPRISECHARGE<51>)
									* Christophe le 24/01/2013 apa cg36
									W_ReqAcc=REPLACE(W_ReqAcc,W_IndReqAcc,5;ENR_ACCORD<23>)									
								END
							END
							IF W_HresAcc > 0 THEN
								mAct=mAct+1
								W_ReqAcc<W_IndReqAcc,2,mAct>=W_ActOrg
							END
						END
					NEXT kAct
					jOrg=jOrg+1
				REPEAT
			END
		END
	REPEAT
 END

RETURN

********************************************************************
420
  W_DemandeAcc=""
  READ ENR_DEMANDACC FROM F.DEMANDACC,W_CleInv[1,5] THEN

    * Preparation des demandes d'accord
    iDem=1
    LOOP
    WHILE ENR_DEMANDACC<1,iDem>#"" DO
      IF ENR_DEMANDACC<3,iDem> <= W_DateFinPeriode THEN
         IF ENR_DEMANDACC<4,iDem> >= W_DateDebPeriode THEN
            * Compris dans la periode
            READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_DEMANDACC<1,iDem> ELSE PRINT "ORGPRISECHARGE 6"
	    W_CodeOrg=ENR_DEMANDACC<1,iDem>
            IF ENR_ORGPRISECHARGE<18>="P" AND ENR_ORGPRISECHARGE<24>="H" THEN
               jOrg=1
               lActSel=0
               LOOP
                  W_ActOrg=ENR_ORGPRISECHARGE<47,jOrg>
               WHILE W_ActOrg#"" DO
                  FOR kAct=1 TO W_NbActivites
                     IF W_Activites<kAct,1>=W_ActOrg THEN
                        lActSel=lActSel+1
*                        ENR_DEMANDACC<7,iDem,lActSel>=W_ActOrg
                        W_DemandeAcc<1,iDem,lActSel>=W_ActOrg
					
                     END
                  NEXT kAct
                  jOrg=jOrg+1
               REPEAT
				IF ENR_ORGPRISECHARGE<51> = "" THEN
					ENR_ORGPRISECHARGE<51> = "0"
				END
				W_DemandeAcc<2,iDem>=ENR_ORGPRISECHARGE<51>
				* modif vanessa 17/12/09
				W_DemandeAcc<3,iDem>=ENR_DEMANDACC<6,iDem>
				W_DemandeAcc<4,iDem>=ENR_DEMANDACC<1,iDem>
				W_DemandeAcc<5,iDem>=ENR_ORGPRISECHARGE<57>
            END
         END
      END
      iDem=iDem+1
    REPEAT
  END ELSE
    ENR_DEMANDACC=""
    W_DemandeAcc=""
  END 
RETURN

********************************************************************
430
   W_ExistAct="FAUX"
   HeuresPrisAcc=0
   W_Count=DCOUNT(W_ReqAcc,CHAR(254))

 IF W_ReqAcc # "" THEN
   * parcours les accords
   FOR kAcc=1 TO W_Count
    IF NbrHeuresAtt > 0 THEN
      W_MontHistOrg=0
      lAcc=1
      W_Pass="FAUX"
      W_CleAcc=W_ReqAcc<kAcc,1>

      READ ENR_ACCORD FROM F.ACCORD,W_CleAcc ELSE PRINT "ACCORD 4"
      IF W_Mv#"VRAI" THEN
         IF ENR_ACCORD<5> <= W_DateJour AND ENR_ACCORD<6> >= W_DateJour THEN
            W_Pass="VRAI"
         END
      END ELSE
          W_Pass="VRAI"
      END           

      IF W_Pass="VRAI" THEN

         LOOP
         WHILE W_ReqAcc<kAcc,2,lAcc> # "" DO
              IF (W_ActHres = W_ReqAcc<kAcc,2,lAcc> AND W_ReqAcc<kAcc,4> = "0") OR (W_ActHres = W_ReqAcc<kAcc,2,lAcc> AND W_ReqAcc<kAcc,4> # "0" AND W_ReqAcc<kAcc,4>=ENR_DETAILPRESTINV<9,i,j>) THEN
                  W_ExistAct="VRAI"

				 * Christophe le 24/01/2013 Gestion du montant max du CG dans le plan d'aide.
				 W_MontantMaxCG=W_ReqAcc<kAcc,5>					  
				  
                  NbrHeuresAcc=W_ReqAcc<kAcc,3>-NbrHeuresAtt

                  IF NbrHeuresAcc > 0 THEN
                     HeuresPrisAcc=NbrHeuresAtt
                     W_ReqAcc<kAcc,3>=NbrHeuresAcc
                     NbrHeuresAtt=0
                     NbrHeuresAcc=0
                     lAcc=999
                     kAcc=999
                  END ELSE
                     HeuresPrisAcc=W_ReqAcc<kAcc,3>
                     W_ReqAcc=DELETE(W_ReqAcc,kAcc)
                     kAcc=kAcc-1
                     W_Count=W_Count-1
                     NbrHeuresAtt=ABS(NbrHeuresAcc)
                     lAcc=999
                  END

                  W_ActAnal=W_ActHres
                  W_NbrHAnal=HeuresPrisAcc
                  GOSUB 305

                  * TEMPFACTURAIDE et FACTURORG      
                  GOSUB 340

                  * Mise a jour de l'historique
                  GOSUB 390
         
               END

               lAcc=lAcc+1
         REPEAT
      END ELSE
         W_ExistAct="FAUX"
      END
    END
   NEXT kAcc
 END
RETURN

********************************************************************
* si pas d'accord  alors recherche de demande d'accord
440

   W_Count7Dem=DCOUNT(W_DemandeAcc<1>,CHAR(253))

   FOR jDemAcc=1 TO W_Count7Dem
      k=1 
      LOOP

      WHILE W_DemandeAcc<1,jDemAcc,k> # "" DO

         IF (W_DemandeAcc<1,jDemAcc,k>=W_ActHres AND W_DemandeAcc<2,jDemAcc> = "0") OR (W_DemandeAcc<1,jDemAcc,k>=W_ActHres AND W_DemandeAcc<2,jDemAcc> # "0" AND W_DemandeAcc<2,jDemAcc>=ENR_DETAILPRESTINV<9,i,j>) THEN
            * Basculement en heures attentes
            GOSUB 450
            jDemAcc=999
            NbrHeuresAtt=0 
         END
         k=k+1
      REPEAT
   NEXT jDemAcc

RETURN

********************************************************************
* Basculement en heures attentes
450
   W_AidantInv=ENR_DETAILPRESTINV<1,i>
   W_AidantInv=W_AidantInv[1,5]
   IF ENR_HRESATTENTE # "" THEN
*   READ ENR_HRESATTENTE FROM F.HRESATTENTE,W_CleInv:"P" THEN
      iHres=1
      IF W_Mv="VRAI" THEN
         LOOP
         WHILE ENR_HRESATTENTE<1,iHres> # "" DO
            IF ENR_HRESATTENTE<1,iHres>=W_AidantInv AND ENR_HRESATTENTE<2,iHres>=W_RubSaisie AND ENR_HRESATTENTE<4,iHres>=ENR_DETAILPRESTINV<4,i> THEN
               ENR_HRESATTENTE<3,iHres>=ENR_HRESATTENTE<3,iHres>+NbrHeuresAtt
               iHres=999
            END
		iHres=iHres+1
         REPEAT
         IF iHres # 1000 THEN
            ENR_HRESATTENTE<1,iHres>=W_AidantInv
            ENR_HRESATTENTE<2,iHres>=W_RubSaisie
            ENR_HRESATTENTE<3,iHres>=NbrHeuresAtt
            ENR_HRESATTENTE<4,iHres>=ENR_DETAILPRESTINV<4,i>
         END
      END ELSE
         LOOP
         WHILE ENR_HRESATTENTE<1,iHres> # "" DO
            IF ENR_HRESATTENTE<1,iHres>=W_AidantInv THEN
               ENR_HRESATTENTE<5,iHres,-1>=ENR_DETAILPRESTINV<5,i,j>
               ENR_HRESATTENTE<6,iHres,-1>=W_RubSaisie
               ENR_HRESATTENTE<7,iHres,-1>=NbrHeuresAtt
               ENR_HRESATTENTE<8,iHres,-1>=ENR_DETAILPRESTINV<8,i,j>                  
               iHres=999
            END
            iHres=iHres+1
         REPEAT
         IF iHres # 1000 THEN
            ENR_HRESATTENTE<1,iHres>=W_AidantInv
            ENR_HRESATTENTE<5,iHres,1>=ENR_DETAILPRESTINV<5,i,j>
            ENR_HRESATTENTE<6,iHres,1>=W_RubSaisie
            ENR_HRESATTENTE<7,iHres,1>=NbrHeuresAtt
            ENR_HRESATTENTE<8,iHres,1>=ENR_DETAILPRESTINV<8,i,j>
         END
      END
   END ELSE
     
      IF W_Mv="VRAI" THEN
         ENR_HRESATTENTE<1,1>=W_AidantInv
         ENR_HRESATTENTE<2,1>=W_RubSaisie
         ENR_HRESATTENTE<3,1>=NbrHeuresAtt
         ENR_HRESATTENTE<4,1>=ENR_DETAILPRESTINV<4,i>
      END ELSE
         ENR_HRESATTENTE<1,1>=W_AidantInv
         ENR_HRESATTENTE<5,1,1>=ENR_DETAILPRESTINV<5,i,j>
         ENR_HRESATTENTE<6,1,1>=W_RubSaisie
         ENR_HRESATTENTE<7,1,1>=NbrHeuresAtt
         ENR_HRESATTENTE<8,1,1>=ENR_DETAILPRESTINV<8,i,j>
      END

   END
   
	IF ENR_HRESATTENTE # "" THEN
		* modif vanessa 17/12/09
		IF INDEX(W_DemandeAcc<5>,"1",1) # 0 THEN	
			FOR Ind=1 TO DCOUNT(W_DemandeAcc<5>,CHAR(253))
				IF W_DemandeAcc<5,Ind>="1" THEN
					EXIT
				END
			NEXT Ind
			* RELIT ORGPRISECHARGE POUR AVOIR LES INFOS CONCERNANT LA BONNE DEMANDE D'ACCORD
			READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_DemandeAcc<4,Ind> ELSE PRINT "ORGPRISECHARGE"
			ENR_HRESATTENTE<9>=W_DemandeAcc<4,Ind>
			IF W_DemandeAcc<3,Ind> # "0" AND W_DemandeAcc<3,Ind> # "" THEN
				ENR_HRESATTENTE<10>=W_DemandeAcc<3,Ind>
				ENR_HRESATTENTE<11>=ENR_HRESATTENTE<11>+NbrHeuresAtt
				
				* modif christophe 18/01/2010 mise en commentaire de la lecture de TEMPFACTURAIDE car pas encore crit.
				*READ ENR_TEMPFACTURAIDE FROM F.TEMPFACTURAIDE,W_CleInv[1,5] ELSE ENR_TEMPFACTURAIDE	= ""
				
				* MODIF VANESSA 23/10/09 
				*-------
				* ICI CHRISTOPHE
				iInsertComp=1
				Per=W_CleInv[9,6]				
*				LOOP
*				WHILE ENR_TEMPFACTURAIDE<1,iInsertComp> # "" AND Per >= ENR_TEMPFACTURAIDE<1,iInsertComp> DO
*					iInsertComp=iInsertComp+1
*				REPEAT
				
				*Anthony 06/06/11
				IF ENR_ORGPRISECHARGE<59> = "" THEN
					W_LibFact=ENR_ORGPRISECHARGE<1>
				END ELSE
					W_LibFact=ENR_ORGPRISECHARGE<59>
				END
				*Fin Anthony
				LOOP
				* modif vanessa 16/04/12 - DA 12032
				UNTIL ENR_TEMPFACTURAIDE<1,iInsertComp> = "" OR (Per = ENR_TEMPFACTURAIDE<1,iInsertComp> AND ENR_TEMPFACTURAIDE<15,iInsertComp>[1,1] = "A"  AND ENR_TEMPFACTURAIDE<2,iInsertComp> = W_LibFact AND ENR_TEMPFACTURAIDE<4,iInsertComp> = ENR_HRESATTENTE<10> AND ENR_ACTIVITES<2> = ENR_TEMPFACTURAIDE<7,iInsertComp>) DO	
					iInsertComp=iInsertComp+1
				REPEAT
				
				IF ENR_TEMPFACTURAIDE<1,iInsertComp> = "" THEN
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,1,iInsertComp;Per)
					*Anthony 06/06/11
					IF ENR_ORGPRISECHARGE<59> = "" THEN
						ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,iInsertComp;ENR_ORGPRISECHARGE<1>)
					END ELSE
						ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,iInsertComp;ENR_ORGPRISECHARGE<59>)
					END
					*Fin Anthony
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,iInsertComp;ENR_HRESATTENTE<11>)
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,4,iInsertComp;ENR_HRESATTENTE<10>)
					W_Mont=ENR_HRESATTENTE<10>*ENR_HRESATTENTE<11>
					W_Mont=INT((W_Mont/100)+(1/2))
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,5,iInsertComp;W_Mont)
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,iInsertComp;W_CodeComptaPrest)
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,7,iInsertComp;ENR_ACTIVITES<2>)

					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,14,iInsertComp;ENR_ORGPRISECHARGE<50>)
					* modif vanessa 16/04/12 - DA 12032
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,15,iInsertComp;"A":ENR_HRESATTENTE<9>)
					* Modif Guillaume DA12006 15/02/2012
* 					IF W_GestionTVA="VRAI" THEN
* 						ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,iInsertComp;"O")
* 					END ELSE
* 						ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,iInsertComp;"N")
* 					END
                    ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,iInsertComp;ENR_ACTIVITES<11>)
				END ELSE
					* on complte la ligne car mme taux, activit, priode, libell
					ENR_TEMPFACTURAIDE<3,iInsertComp>=ENR_TEMPFACTURAIDE<3,iInsertComp> + NbrHeuresAtt
					W_Mont=ENR_HRESATTENTE<10>*ENR_HRESATTENTE<11>
					W_Mont=INT((W_Mont/100)+(1/2))
					ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,5,iInsertComp;W_Mont)
				END
				
				FOR iAidantAtt=1 TO DCOUNT(ENR_HRESATTENTE<1>,CHAR(253))
					iAidant=1
					W_CodeAidant=ENR_HRESATTENTE<1,iAidantAtt>
					READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CodeAidant ELSE PRINT "CIVILAIDANT 1"
					W_NomPrenomAidant=ENR_CIVILAIDANT<2>:ENR_CIVILAIDANT<3>
					LOOP
					WHILE ENR_TEMPFACTURAIDE<10,iAidant> # "" AND W_NomPrenomAidant > ENR_TEMPFACTURAIDE<13,iAidant> DO
						iAidant=iAidant+1
					REPEAT
					IF ENR_TEMPFACTURAIDE<10,iAidant> = "" THEN
						ENR_TEMPFACTURAIDE<10,iAidant>=W_CodeAidant
						ENR_TEMPFACTURAIDE<13,iAidant>=W_NomPrenomAidant
					END ELSE
						IF ENR_TEMPFACTURAIDE<13,iAidant> > W_NomPrenomAidant THEN
							ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,10,iAidant;W_CodeAidant)
							ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,13,iAidant;W_NomPrenomAidant)
						END
					END				
				NEXT iAidantAtt
* 				IF ENR_TEMPFACTURAIDE<8> = "" THEN
* 				   ENR_TEMPFACTURAIDE<8>=ENR_TAUXTVA<4,ENR_ACTIVITES<11>>
* 				END
				WRITE ENR_TEMPFACTURAIDE ON F.TEMPFACTURAIDE,W_CleInv[1,5]
			END
		END
	END
	
RETURN

***************************************************************************
* Requete Accord complementaire sans historique.
460
   W_HistoComp="VRAI"
   W_FiniAccComp="FAUX"
   W_ReqAccComp=""
   W_Vide="FAUX"
   *IF W_CodeService=0 THEN
    W_Temp='SSELECT ACCORD AVEC @ID = "':W_Aide:']" AND AVEC AnneeMoisDebAcc <= "':W_Periode:'" AND AVEC 14 = "" AND AVEC 18 <> "O" AND AVEC NotifOrg = "H" AND AVEC TypeOrg = "C" AND AVEC TypeActOrg = "P"'
   *END ELSE
    *W_Temp='SSELECT ACCORD AVEC @ID = "':W_Aide:']" AND AVEC AnneeMoisDebAcc <= "':W_Periode:'" AND AVEC 14 = "" AND AVEC 18 <> "O" AND AVEC NotifOrg = "H" AND AVEC TypeOrg = "C" AND AVEC ActivitesOrg = "':EXTRACT(W_Activites,1,1):'"'
    *FOR kCompReq=2 TO W_NbActivites
    *  W_Temp=W_Temp:' OR = "':EXTRACT(W_Activites,kCompReq,1):'"'
    *NEXT kCompReq
   *END
   W_Temp=W_Temp:' PAR 8 PAR 5 PAR 6'
   
   * Mis a jour de la table des accors selectionnes
   W_HistEnCoursMont = "HIST"
   GOSUB 462

RETURN

***************************************************************************
* Requete Accord complementaire actif sur la periode en cours.
461
   W_HistoComp="FAUX"
   W_FiniAccComp="FAUX"
   W_ReqAccComp=""
   W_Vide="FAUX"
   *IF W_CodeService=0 THEN
    W_Temp='SSELECT ACCORD AVEC @ID = "':W_Aide:']" AND AVEC 5 <= "':W_DateFinPeriode:'" AND AVEC 6 >= "':W_DateDebPeriode:'" AND AVEC 18 <> "O" AND AVEC NotifOrg = "H" AND AVEC TypeOrg = "C" AND AVEC TypeActOrg = "P"'
   *END ELSE 
    *W_Temp='SSELECT ACCORD AVEC @ID = "':W_Aide:']" AND AVEC 5 <= "':W_DateFinPeriode:'" AND AVEC 6 >= "':W_DateDebPeriode:'" AND AVEC 18 <> "O" AND AVEC NotifOrg = "H" AND AVEC TypeOrg = "C" AND AVEC ActivitesOrg = "':EXTRACT(W_Activites,1,1):'"'
    *FOR kCompReq=2 TO W_NbActivites
    *  W_Temp=W_Temp:' OR = "':EXTRACT(W_Activites,kCompReq,1):'"'
    *NEXT kCompReq
   *END
   W_Temp=W_Temp:' PAR 8 PAR 5 PAR 6'

   * Mis a jour de la table des accors selectionnes
   W_HistEnCoursMont = "ENCOURS"
   GOSUB 462
   
RETURN

***************************************************************************
* Mis a jour de la table des accords selectionnes
462

	EXECUTE W_Temp
	
    EXECUTE 'SAUVE-LISTE W_RequeteAccordComp'
	EXECUTE "LISTE W_RequeteAccordComp" RETURNING MSGCODE
	IF MSGCODE<1>=209 THEN
		W_Vide="VRAI"
	END ELSE
		SELECT F.ACCORD TO W_RequeteAccordComp
	END
	
	W_ReqAccComp=""
	
	IF W_Vide#"VRAI" THEN
  
		W_DebutAccCompHisto=99999
		W_IndReqAccComp=0
		LOOP
			READNEXT W_CleAccComp FROM W_RequeteAccordComp ELSE W_FiniAccComp="VRAI"
		WHILE W_FiniAccComp="FAUX" DO
			READ ENR_ACCORD FROM F.ACCORD,W_CleAccComp ELSE PRINT "ACCORD 5"
		 
			* MODIF VANESSA 10/09/10
			* Modif Guillaume DA10260 : L'attribut 22 n'est plus utilis pour a			
* 			IF ENR_ACCORD<22> # "" THEN
* 				W_HresAllouees=ENR_ACCORD<22>
* 			END ELSE
*				W_HresAllouees=ENR_ACCORD<9>
* 			END	
			IF ENR_ACCORD<22> # "" THEN
				IF ENR_ACCORD<22> > ENR_ACCORD<9> THEN
					W_HresAllouees=ENR_ACCORD<22>
				END ELSE
					W_HresAllouees=ENR_ACCORD<9>
				END
			END ELSE
				W_HresAllouees=ENR_ACCORD<9>
			END
			IF W_HistEnCoursMont = "ENCOURS" THEN
				iRechPeriode=1
				LOOP
				UNTIL W_Periode = ENR_ACCORD<14,iRechPeriode> OR ENR_ACCORD<14,iRechPeriode> = "" DO
					iRechPeriode=iRechPeriode+1
				REPEAT
				IF ENR_ACCORD<14,iRechPeriode> # "" THEN
					W_HresAllouees=W_HresAllouees-ENR_ACCORD<16,iRechPeriode>
				END
			END 
			IF W_DebutAccCompHisto > ENR_ACCORD<5> THEN
				W_DebutAccCompHisto=ENR_ACCORD<5>
			END
			
            * Compris dans la periode
            READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE PRINT "ORGPRISECHARGE 7"
			W_CodeOrg=ENR_ACCORD<1>
            k=1
            m=0
            LOOP
                W_ActOrg=ENR_ORGPRISECHARGE<47,k>
            WHILE W_ActOrg#"" DO
				FOR l=1 TO W_NbActivites
					IF W_Activites<l,1>=W_ActOrg THEN
						IF m=0 THEN
                            W_IndReqAccComp=W_IndReqAccComp+1
                            W_ReqAccComp=REPLACE(W_ReqAccComp,W_IndReqAccComp,1;W_CleAccComp)
                            IF ENR_ORGPRISECHARGE<19>=2 THEN
								W_ReqAccComp=REPLACE(W_ReqAccComp,W_IndReqAccComp,3;W_HresAllouees)
                            END ELSE
                                IF ENR_ORGPRISECHARGE<19>=3 THEN
                                    IF ENR_ACCORD<17,1> # "" THEN
										W_ReqAccComp=REPLACE(W_ReqAccComp,W_IndReqAccComp,3;ENR_ACCORD<17,1>)
                                    END ELSE
										W_ReqAccComp=REPLACE(W_ReqAccComp,W_IndReqAccComp,3;W_HresAllouees)
                                    END
                                END ELSE
                                    IF ENR_ACCORD<17,iRechPeriode> # "" THEN
                                        W_ReqAccComp=REPLACE(W_ReqAccComp,W_IndReqAccComp,3;ENR_ACCORD<17,iRechPeriode+1> + W_HresAllouees)
                                    END ELSE
                                        W_ReqAccComp=REPLACE(W_ReqAccComp,W_IndReqAccComp,3;W_HresAllouees)
                                    END
                                END
                            END
                        END
						IF INDEX(W_ReqAccComp<W_IndReqAccComp,2>,W_ActOrg,1) = 0 THEN
							m=m+1
							W_ReqAccComp<W_IndReqAccComp,2,m>=W_ActOrg
						END
                    END
                NEXT l
                k=k+1
            REPEAT
		REPEAT
	END
	
RETURN

***************************************************************************
* Requete Accord complementaire sans historique 
464
   W_HistoComp="FAUX"
   W_FiniAccComp="FAUX"
   W_ReqAccComp=""
   W_Vide="FAUX"
   *IF W_CodeService=0 THEN
    W_Temp='SSELECT ACCORD AVEC @ID = "':W_Aide:']" AND AVEC AnneeMoisDebAcc <= "':W_Periode:'" AND AVEC 14 = "" AND AVEC 18 <> "O" AND AVEC NotifOrg = "M" AND AVEC TypeOrg = "C" AND AVEC TypeActOrg = "P"'
   *END ELSE  
    *W_Temp='SSELECT ACCORD AVEC @ID = "':W_Aide:']" AND AVEC AnneeMoisDebAcc <= "':W_Periode:'" AND AVEC 14 = "" AND AVEC 18 <> "O" AND AVEC NotifOrg = "M" AND AVEC TypeOrg = "C" AND AVEC ActivitesOrg = "':EXTRACT(W_Activites,1,1):'"'
    *FOR kCompReq=2 TO W_NbActivites
    *  W_Temp=W_Temp:' OR = "':EXTRACT(W_Activites,kCompReq,1):'"'
    *NEXT kCompReq
   *END
   W_Temp=W_Temp:' PAR 8 PAR 5 PAR 6'

   * Mis a jour de la table des accors selectionnes
   GOSUB 462

   W_HistEnCoursMont="HIST"

RETURN

***************************************************************************
* Requete Accord complementaire actif sur la periode en cours en montant.
465
   W_HistoComp="FAUX"
   W_FiniAccComp="FAUX"
   W_ReqAccComp=""
   W_Vide="FAUX"
   *IF W_CodeService=0 THEN
    W_Temp='SSELECT ACCORD AVEC @ID = "':W_Aide:']" AND AVEC 5 <= "':W_DateFinPeriode:'" AND AVEC 6 >= "':W_DateDebPeriode:'" AND AVEC 18 <> "O" AND AVEC NotifOrg = "M" AND AVEC TypeOrg = "C" AND AVEC TypeActOrg = "P"'
   *END ELSE   
    *W_Temp='SSELECT ACCORD AVEC @ID = "':W_Aide:']" AND AVEC 5 <= "':W_DateFinPeriode:'" AND AVEC 6 >= "':W_DateDebPeriode:'" AND AVEC 18 <> "O" AND AVEC NotifOrg = "M" AND AVEC TypeOrg = "C" AND AVEC ActivitesOrg = "':EXTRACT(W_Activites,1,1):'"'
    *FOR kCompReq=2 TO W_NbActivites
    *  W_Temp=W_Temp:' OR = "':EXTRACT(W_Activites,kCompReq,1):'"'
    *NEXT kCompReq
   *END
   W_Temp=W_Temp:' PAR 8 PAR 5 PAR 6'

   * Mis a jour de la table des accors selectionnes
   GOSUB 462

   W_HistEnCoursMont="ENCOURS"

RETURN

*******************************************************************
* Gestion des accords complementaires en montant
466


   READ W_ActHresComp FROM F.TEMPMONTANTFACT,W_Aide ELSE W_ActHresComp = ""
   
   IF W_HistEnCoursMont = "ENCOURS" THEN

      iHECM=1
      LOOP
      WHILE W_ActHresComp<iHECM,4> # "" DO
	   IF W_ActHresComp<iHECM,4> # W_CboAnneeMois THEN
		W_ActHresComp=DELETE(W_ActHresComp,iHECM)
	   END ELSE
		iHECM=iHECM+1
	   END
      REPEAT

   END ELSE

      iHECM=1
      LOOP
      WHILE W_ActHresComp<iHECM,4> # "" DO
	   IF W_ActHresComp<iHECM,4> = W_CboAnneeMois THEN
		W_ActHresComp=DELETE(W_ActHresComp,iHECM)
	   END ELSE
		iHECM=iHECM+1
	   END
      REPEAT

   END

   W_HeuresPrisCompM=""
   W_ReqAccCompTemp=W_ReqAccComp
   W_CountCompTemp=DCOUNT(W_ReqAccCompTemp,CHAR(254))

   iAHComp=1
   LOOP
   WHILE W_ActHresComp<iAHComp,1> # "" DO
      FOR kComp=1 TO W_CountCompTemp
	   
	   *christophe le 07/05/2007
	   IF kComp=1 THEN
		  * Lit l'accord suivant pour voir si mme rang
		  IF W_ReqAccCompTemp<2,1> # "" THEN
			READ ENR_ACCORD FROM F.ACCORD,W_ReqAccCompTemp<2,1> ELSE PRINT "ACCORD rang 2"
			W_RangAccN2=ENR_ACCORD<8>
		  END ELSE
			W_RangAccN2=""		  
		  END

		  W_CleAccCompMont=W_ReqAccCompTemp<kComp,1>
		  READ ENR_ACCORD FROM F.ACCORD,W_CleAccCompMont ELSE PRINT "ACCORD 6"

		  IF W_RangAccN2 = ENR_ACCORD<8> THEN 
			W_TypeCascade="MEMERANG"
		  END ELSE
			W_TypeCascade="CASCADE"
		  END	   
	   END ELSE
		  W_CleAccCompMont=W_ReqAccCompTemp<kComp,1>
		  READ ENR_ACCORD FROM F.ACCORD,W_CleAccCompMont ELSE PRINT "ACCORD 6"
	   END
	  
		W_PeriodeHres=W_ActHresComp<iAHComp,4>
		W_PeriodeHres=ICONV("01/":W_PeriodeHres[5,2]:"/":W_PeriodeHres[1,4],"D4/")
		W_PeriodeHresDeb=W_PeriodeHres
		W_PeriodeHresFin=OCONV(W_PeriodeHres + 32,"D4/")
		W_PeriodeHresFin=ICONV("01/":W_PeriodeHresFin[4,7],"D4/") - 1

       IF ENR_ACCORD<5> <= W_PeriodeHresFin AND W_PeriodeHresDeb <= ENR_ACCORD<6> THEN

	     READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE PRINT "ORGANISME 8"
	     W_CodeOrg=ENR_ACCORD<1>

         W_MontantPrisTot=0
         W_HeuresPrisTot=0
         iReqAccMont=1
         LOOP 
         WHILE W_ReqAccCompTemp<kComp,2,iReqAccMont> # "" DO
			
            IF W_ReqAccCompTemp<kComp,2,iReqAccMont> = W_ActHresComp<iAHComp,1> THEN
			
			   READ ENR_ACTIVITES FROM F.ACTIVITES,W_ActHresComp<iAHComp,1> ELSE PRINT "ACTIVITES 466"
			   
			   * MODIF VANESSA 04/02/10
			   W_MontantPrisComp=W_ReqAccCompTemp<kComp,3> - W_ActHresComp<iAHComp,3>
			   
				W_FacturOrgDepEng=W_ActHresComp<iAHComp,3>
				IF ENR_ACCORD<21> # "10000" THEN
					* MODIF VANESSA 04/02/10
					IF W_ActHresComp<iAHComp,3> > W_ReqAccCompTemp<kComp,3> THEN
						W_MontantPrisSansPourcent=W_ReqAccCompTemp<kComp,3>
						W_ActHresComp<iAHComp,3>=INT(ENR_ACCORD<21> * W_ReqAccCompTemp<kComp,3> / 10000 + 1/2)
					END ELSE
						W_MontantPrisSansPourcent=W_ActHresComp<iAHComp,3>
						W_ActHresComp<iAHComp,3>=INT(ENR_ACCORD<21> * W_ActHresComp<iAHComp,3> / 10000 + 1/2)
					END
				END ELSE
					IF W_ActHresComp<iAHComp,3> > W_ReqAccCompTemp<kComp,3> THEN
						W_MontantPrisSansPourcent=W_ReqAccCompTemp<kComp,3>
						W_ActHresComp<iAHComp,3>=W_ReqAccCompTemp<kComp,3>
					END ELSE
						W_MontantPrisSansPourcent=W_ActHresComp<iAHComp,3>
					END
				END
			   
               IF W_MontantPrisComp > 0 THEN
					W_ReqAccCompTemp<kComp,3>=W_MontantPrisComp
					W_MontantPrisTot=W_MontantPrisTot + W_ActHresComp<iAHComp,3>
					IF W_TypeCascade ="CASCADE" THEN
						W_ActHresComp<iAHComp,3>=0
					END
               END ELSE
					* MODIF VANESSA 04/02/10
					W_MontantPrisTot=W_MontantPrisTot + W_ActHresComp<iAHComp,3>
					*W_MontantPrisTot=W_MontantPrisTot + W_ReqAccCompTemp<kComp,3>
					W_ReqAccCompTemp=DELETE(W_ReqAccCompTemp,kComp)
					kComp=kComp-1
					W_CountCompTemp=W_CountCompTemp-1
					IF W_TypeCascade ="CASCADE" THEN
						W_ActHresComp<iAHComp,3>=ABS(W_MontantPrisComp)
					END
               END
               
            END

*            IF W_MontantPrisTot > 0 THEN
*               * Rempli TEMPFACTURAIDE et Mise a jour de l'accord complementaire
*               GOSUB 467
*            END

            iReqAccMont=iReqAccMont+1
         REPEAT
         IF W_MontantPrisTot > 0 THEN
            * Rempli TEMPFACTURAIDE et Mise a jour de l'accord complementaire
            GOSUB 467
         END		 
       END
      NEXT kComp
      iAHComp=iAHComp+1
   REPEAT

RETURN


*******************************************************************
* Rempli TEMPFACTURAIDE et Mise a jour de l'accord complementaire
467
   iInsertComp=1
   LOOP
   WHILE ENR_TEMPFACTURAIDE<1,iInsertComp> # "" AND W_Periode >= ENR_TEMPFACTURAIDE<1,iInsertComp> DO
      iInsertComp=iInsertComp+1
   REPEAT
   ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,1,iInsertComp;W_ActHresComp<iAHComp,4>)	;* W_Periode
	*Anthony 06/06/11
	IF ENR_ORGPRISECHARGE<59> = "" THEN
		ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iInsertComp;"PARTICIPATION ":ENR_ORGPRISECHARGE<1>)
	END ELSE
		ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iInsertComp;ENR_ORGPRISECHARGE<59>)
	END
	*Fin Anthony
   ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,3,iInsertComp;"")

   ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iInsertComp;"")
   ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iInsertComp;-W_MontantPrisTot)
   ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,6,iInsertComp;"0")
   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,iInsertComp;W_CodeComptaPrest)
   ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,7,iInsertComp;ENR_ACTIVITES<2>)
   ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,14,iInsertComp;ENR_ORGPRISECHARGE<50>)
   ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,15,iInsertComp;W_CleAccCompMont)
	* modif vanes 17/11/08
	* Modif Guillaume Da9211 07/12/2009	
*	IF W_GestionTVA="VRAI" THEN
*		ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iInsertComp;"O")
*	END ELSE
		ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iInsertComp;"1")					
*	END
	********
	
   ENR_FACTURORG=""
   ENR_FACTURORG<1>=0
   ENR_FACTURORG<2>=0
   ENR_FACTURORG<3>=0
   ENR_FACTURORG<4>=W_MontantPrisTot

   W_FacturOrg4=ENR_FACTURORG<4>

   IF ENR_FACTURORG<11> # "" THEN
      iFactOrgAnalM=1
      W_Cumul11FaitM="FAUX"
      LOOP
      WHILE ENR_FACTURORG<11,iFactOrgAnalM> # "" DO
         IF ENR_FACTURORG<11,iFactOrgAnalM> = ENR_ACTIVITES<2> THEN
            ENR_FACTURORG<12,iFactOrgAnalM>=ENR_FACTURORG<12,iFactOrgAnalM> + W_MontantPrisTot
            IF W_Mfp="FAUX" THEN
               ENR_FACTURORG<13,iFactOrgAnalM>=0
            END
            W_Cumul11FaitM="VRAI"
         END
         iFactOrgAnal=iFactOrgAnal+1
      REPEAT
      IF W_Cumul11FaitM="FAUX" THEN
         ENR_FACTURORG<11,iFactOrgAnalM>=ENR_ACTIVITES<2>
         ENR_FACTURORG<12,iFactOrgAnalM>=ENR_FACTURORG<12,iFactOrgAnalM> + W_MontantPrisTot
         IF W_Mfp="FAUX" THEN
            ENR_FACTURORG<13,iFactOrgAnalM>=0
         END
      END
   END ELSE
      ENR_FACTURORG<11>=ENR_ACTIVITES<2>
      ENR_FACTURORG<12>=W_MontantPrisTot
      ENR_FACTURORG<13>=0
   END
   ENR_FACTURORG<14>=W_FacturOrgDepEng

   *Prise en compte du numro d'ordre
   * MP - 22 Sept 2008
   
   ENR_TESTNO = ""
   W_NOrdre = 0
   W_FINNO = "FAUX"
   
   LOOP
   		W_NOrdre = W_NOrdre + 1
		W_NOrdre = W_NOrdre "R%2"
   WHILE W_FINNO = "FAUX"
		READ ENR_TESTNO FROM F.FACTURORG ,ENR_ACCORD<1>:"P":W_CleAccCompMont:W_ActHresComp<iAHComp,4>:W_NOrdre THEN
			W_FINNO = "FAUX"
		END ELSE
			W_FINNO = "VRAI"
			W_NomCle = ENR_ACCORD<1>:"P":W_CleAccCompMont:W_ActHresComp<iAHComp,4>:W_NOrdre
		END
   REPEAT

   *****WRITE ENR_FACTURORG ON F.FACTURORG,ENR_ACCORD<1>:"P":W_CleAccCompMont:W_ActHresComp<iAHComp,4>:"01"	;*W_Periode
   WRITE ENR_FACTURORG ON F.FACTURORG,W_NomCle
   
   * FIN MP - 22 Sept 2008
   
   WRITE ENR_TEMPFACTURAIDE ON F.TEMPFACTURAIDE,W_Aide

* modif a revoir pour la futur version fait par christophe le 07/01/2011
*	W_ResteReport=0
*	
*	* modif vanessa 10/09/10
*   IF ENR_ACCORD<22> # "" THEN
*		W_HresAllouees=ENR_ACCORD<22>
*	END ELSE
*		W_HresAllouees=ENR_ACCORD<9>
*	END   
*	
*	iHistoAcc=1
*	LOOP
*	WHILE ENR_ACCORD<14,iHistoAcc> > W_ActHresComp<iAHComp,4> DO	;* W_Periode
*		iHistoAcc=iHistoAcc+1
*	REPEAT
*	IF ENR_ACCORD<14,iHistoAcc> = W_ActHresComp<iAHComp,4> THEN	;* W_Periode
*		W_Nb15Acc=ENR_ACCORD<15,iHistoAcc>+W_MontantPrisTot
*
*		IF W_Nb15Acc > W_HresAllouees THEN
*			W_Nb15Acc=W_HresAllouees
*		END
*		ENR_ACCORD<15,iHistoAcc>=W_Nb15Acc
*	END ELSE
*		ENR_ACCORD=INSERT(ENR_ACCORD,14,iHistoAcc;W_ActHresComp<iAHComp,4>)	;*W_Periode
*		* MODIF VANESSA 04/02/10
*		ENR_ACCORD=INSERT(ENR_ACCORD,15,iHistoAcc;W_MontantPrisSansPourcent)
*		*ENR_ACCORD=INSERT(ENR_ACCORD,15,iHistoAcc;W_MontantPrisTot)
*		ENR_ACCORD=INSERT(ENR_ACCORD,16,iHistoAcc;0)
*		
*		IF ENR_ORGPRISECHARGE<19> = "3" THEN
*			IF ENR_ACCORD<17,iHistoAcc>="" THEN
*				ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;W_HresAllouees-W_MontantPrisSansPourcent)
*			END ELSE
*				ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;ENR_ACCORD<17,iHistoAcc>-W_MontantPrisSansPourcent)
*			END
*		END ELSE
*			IF ENR_ORGPRISECHARGE<19> = "1" THEN
*				IF ENR_ACCORD<17,iHistoAcc>="" THEN
*					W_ResteReport=W_HresAllouees-W_MontantPrisSansPourcent
*				END ELSE
*					W_ResteReport=W_HresAllouees-W_MontantPrisSansPourcent+ENR_ACCORD<17,iHistoAcc>
*				END
*				IF W_ResteReport> 0 THEN
*					ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;W_ResteReport)
*				END ELSE
*					ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;0)
*				END
*			END
*		END
*	END
*	
*	IF ENR_ORGPRISECHARGE<19>=3 THEN
*		*Parcourir les mv dessous pour mise a jour
*		FOR jHistoAcc=iHistoAcc TO 1 STEP -1
*			IF jHistoAcc=iHistoAcc THEN
*				ENR_ACCORD<17,jHistoAcc>=ENR_ACCORD<17,jHistoAcc+1>-W_MontantPrisSansPourcent
*			END ELSE
*				ENR_ACCORD<17,jHistoAcc>=ENR_ACCORD<17,jHistoAcc+1>-ENR_ACCORD<15,jHistoAcc>
*			END
*		NEXT jHistoAcc
*	END ELSE
*		IF ENR_ORGPRISECHARGE<19>=1 THEN
*			*Parcourir les mv dessous pour mise a jour
*			FOR jHistoAcc=iHistoAcc TO 1 STEP -1
*				ENR_ACCORD<17,jHistoAcc>=W_HresAllouees+ENR_ACCORD<17,jHistoAcc+1>-ENR_ACCORD<15,jHistoAcc>
*			NEXT jHistoAcc
*		END
*	END	
*	
*	WRITE ENR_ACCORD ON F.ACCORD,W_CleAccCompMont

*remis le code de la 470.
   W_ResteReport=0
   iHistoAcc=1
   LOOP
   WHILE ENR_ACCORD<14,iHistoAcc> > W_ActHresComp<iAHComp,4> DO	;* W_Periode
      iHistoAcc=iHistoAcc+1
   REPEAT
   IF ENR_ACCORD<14,iHistoAcc> = W_ActHresComp<iAHComp,4> THEN	;* W_Periode
      W_Nb15Acc=ENR_ACCORD<15,iHistoAcc>+W_MontantPrisTot
        * Modif Guillaume DA10260 : L'attribut 22 n'est plus utilis pour a
*       IF ENR_ACCORD<22> # "" THEN
* 	 W_HresAllouees=ENR_ACCORD<22>
*       END ELSE
*	 W_HresAllouees=ENR_ACCORD<9>
*       END
		IF ENR_ACCORD<22> # "" THEN
			IF ENR_ACCORD<22> > ENR_ACCORD<9> THEN
				W_HresAllouees=ENR_ACCORD<22>
			END ELSE
				W_HresAllouees=ENR_ACCORD<9>
			END
		END ELSE
			W_HresAllouees=ENR_ACCORD<9>
		END
      IF W_Nb15Acc < W_HresAllouees THEN
         W_Nb15Acc=W_HresAllouees
      END
      ENR_ACCORD<15,iHistoAcc>=W_Nb15Acc
   END ELSE
       ENR_ACCORD=INSERT(ENR_ACCORD,14,iHistoAcc;W_ActHresComp<iAHComp,4>)	;*W_Periode
	   * MODIF VANESSA 04/02/10
	   ENR_ACCORD=INSERT(ENR_ACCORD,15,iHistoAcc;W_MontantPrisSansPourcent)
       *ENR_ACCORD=INSERT(ENR_ACCORD,15,iHistoAcc;W_MontantPrisTot)
       ENR_ACCORD=INSERT(ENR_ACCORD,16,iHistoAcc;0)
		
       IF ENR_ORGPRISECHARGE<19> = "3" THEN
			IF ENR_ACCORD<17,1>="" THEN
				ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;ENR_ACCORD<9>-W_MontantPrisSansPourcent)
				*ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;ENR_ACCORD<9>-W_MontantPrisTot)
			END ELSE
				ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;ENR_ACCORD<17,1>-W_MontantPrisSansPourcent)
				*ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;ENR_ACCORD<17,1>-W_MontantPrisTot)
			END
       END ELSE
          IF ENR_ORGPRISECHARGE<19> = "1" THEN
             IF ENR_ACCORD<17,1>="" THEN
				W_ResteReport=ENR_ACCORD<9>-W_MontantPrisSansPourcent
                *W_ResteReport=ENR_ACCORD<9>-W_MontantPrisTot
             END ELSE
                W_ResteReport=ENR_ACCORD<9>-W_MontantPrisSansPourcent+ENR_ACCORD<17,1>
                *W_ResteReport=ENR_ACCORD<9>-W_MontantPrisTot+ENR_ACCORD<17,1>
             END
             IF W_ResteReport> 0 THEN
                ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;W_ResteReport)
             END ELSE
                ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;0)
             END
          END
       END
   END
   WRITE ENR_ACCORD ON F.ACCORD,W_CleAccCompMont


RETURN

*******************************************************************
* Gestion des accords complementaires
470

	* modif vanessa 09/09/10
*   IF W_HistoComp # "FAUX" THEN
*      W_DebutAccCompHisto=OCONV(W_DebutAccCompHisto,"D4/")
*      W_DebutAccCompHisto=W_DebutAccCompHisto[7,4]:W_DebutAccCompHisto[4,2]
*	  *christophe le 14/05/2007
*      *W_PeriodeCompMois=W_Periode-1  avant
*	  W_PeriodeCompMois=W_CboAnneeMois-1
	  
*      IF W_PeriodeCompMois[5,2]="00" THEN
*         W_PeriodeCompMois=W_PeriodeCompMois[1,4]-1:"12"
*      END
*   END ELSE
*      W_PeriodeCompMois=W_Periode
*      W_DebutAccCompHisto=W_Periode
*   END
   
*   FOR W_DebAcc=W_DebutAccCompHisto TO W_PeriodeCompMois
*      IF W_DebAcc[5,2] = 13 THEN
*         W_DebAcc=W_DebAcc[1,4]+1
*         W_DebAcc=W_DebAcc:"01"
*      END

*      READ ENR_STATACTAIDE FROM F.STATACTAIDE,W_Aide:W_CodAssoc:W_DebAcc THEN
*         W_DebutStatActAide=ICONV("01/":[5,2]:"/":W_DebAcc[1,4],"D4/")
*         W_FinStatActAide=W_DebutStatActAide + 32
*         W_FinStatActAide=OCONV(W_FinStatActAide,"D4/")
*         W_FinStatActAide=ICONV("01/":W_FinStatActAide[4,7],"D4/") - 1	 
		 
		* Christophe le 13/09/2011 correction pb de CAEN pour les accods complmentaires traits sur les heures en attente
        *W_ReqAccCompTemp=W_ReqAccComp
        *W_CountCompTemp=DCOUNT(W_ReqAccCompTemp,CHAR(254))
		W_AncienPeriodeHres=""
		
         iHresH=1
         LOOP
         WHILE W_ActHresComp<iHresH,1> # "" DO

			* christophe le 09/09/2011 pour appeler la procdure 480 comme le fait la 471, c'est la variable W_DebAcc qui change
			W_DebAcc=W_ActHresComp<iHresH,4> 
		 
			* Christophe le 13/09/2011 correction pb de CAEN pour les accods complmentaires traits sur les heures en attente
			IF W_AncienPeriodeHres <> W_ActHresComp<iHresH,4> THEN
				W_ReqAccCompTemp=W_ReqAccComp
				W_CountCompTemp=DCOUNT(W_ReqAccCompTemp,CHAR(254))				
			END		 
		 
            FOR kComp=1 TO W_CountCompTemp
               W_NbHresH=0
			   
			   *christophe le 07/05/20007
			   IF kComp=1 THEN
					IF W_ReqAccCompTemp<2,1> # "" THEN
						READ ENR_ACCORD FROM F.ACCORD,W_ReqAccCompTemp<2,1> ELSE PRINT "ACCORD ACC 2"
						W_RangAccN2 = ENR_ACCORD<8>
					END ELSE
						W_RangAccN2=""
					END

					W_CleAccComp=W_ReqAccCompTemp<kComp,1>
					READ ENR_ACCORD FROM F.ACCORD,W_CleAccComp ELSE PRINT "ACCORD 8"
					
					IF W_RangAccN2 = ENR_ACCORD<8> THEN 
						W_TypeCascade="MEMERANG"
					END ELSE
						W_TypeCascade="CASCADE"
					END	
			   END ELSE
					W_CleAccComp=W_ReqAccCompTemp<kComp,1>
					READ ENR_ACCORD FROM F.ACCORD,W_CleAccComp ELSE PRINT "ACCORD 8"			   
			   END
		   
               READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE PRINT "ORGPRISECHARGE 9"
			   READ ENR_ACTIVITES FROM F.ACTIVITES,W_ActHresComp<iHresH,1> ELSE PRINT "ACTIVITES 470"
		   
				W_CodeOrg=ENR_ACCORD<1>
				W_PeriodeHres=W_ActHresComp<iHresH,4>
				W_PeriodeHres=ICONV("01/":W_PeriodeHres[5,2]:"/":W_PeriodeHres[1,4],"D4/")
				W_PeriodeHresDeb=W_PeriodeHres
				W_PeriodeHresFin=OCONV(W_PeriodeHres + 32,"D4/")
				W_PeriodeHresFin=ICONV("01/":W_PeriodeHresFin[4,7],"D4/") - 1
				
               IF ENR_ACCORD<6> >= W_PeriodeHresDeb AND ENR_ACCORD<5> <= W_PeriodeHresFin THEN

			   * traite les heures du mois 
                  GOSUB 475

                  IF W_NbHresH > 0 THEN
                     * Rempli TEMPFACTURAIDE et Mise a jour de l'accord complementaire
                     GOSUB 480
                  END ELSE
                     W_FacturOrg4=0
                  END

				 IF W_PasseActAccComp="VRAI" AND W_NbHresH > 0 THEN 
				  
					* Mise a jour des accords complementaires
					GOSUB 485
				 END

               END
            NEXT kComp
 
 			* Christophe le 13/09/2011 correction pb de CAEN pour les accods complmentaires traits sur les heures en attente
			W_AncienPeriodeHres=W_ActHresComp<iHresH,4>
			W_ActHresComp=DELETE(W_ActHresComp,iHresH)
            
			*iHresH=iHresH+1
			* Fin modif christophe le 13/09/2011
			
         REPEAT
*      END
       
       
*   NEXT W_DebAcc 

RETURN

**************************************************************************************************
* Gestion des accords complementaires en heures pour les accords avec effet rtroactif uniquement 
471

   IF W_HistoComp # "FAUX" THEN
      W_DebutAccCompHisto=OCONV(W_DebutAccCompHisto,"D4/")
      W_DebutAccCompHisto=W_DebutAccCompHisto[7,4]:W_DebutAccCompHisto[4,2]
	  *christophe le 14/05/2007
      *W_PeriodeCompMois=W_Periode-1  avant
	  W_PeriodeCompMois=W_CboAnneeMois-1
	  
      IF W_PeriodeCompMois[5,2]="00" THEN
         W_PeriodeCompMois=W_PeriodeCompMois[1,4]-1:"12"
      END
   END ELSE
      W_PeriodeCompMois=W_Periode
      W_DebutAccCompHisto=W_Periode
   END
   
   
   FOR W_DebAcc=W_DebutAccCompHisto TO W_PeriodeCompMois
      IF W_DebAcc[5,2] = 13 THEN
         W_DebAcc=W_DebAcc[1,4]+1
         W_DebAcc=W_DebAcc:"01"
      END

      READ ENR_STATACTAIDE FROM F.STATACTAIDE,W_Aide:W_CodAssoc:W_DebAcc THEN
         W_DebutStatActAide=ICONV("01/":W_DebAcc[5,2]:"/":W_DebAcc[1,4],"D4/")
         W_FinStatActAide=W_DebutStatActAide + 32
         W_FinStatActAide=OCONV(W_FinStatActAide,"D4/")
         W_FinStatActAide=ICONV("01/":W_FinStatActAide[4,7],"D4/") - 1	 
		 
         W_ReqAccCompTemp=W_ReqAccComp
         W_CountCompTemp=DCOUNT(W_ReqAccCompTemp,CHAR(254))

		 
         iHresH=1
         LOOP
         WHILE ENR_STATACTAIDE<1,iHresH> # "" DO

            FOR kComp=1 TO W_CountCompTemp
               W_NbHresH=0
			   
			   *christophe le 07/05/20007
			   IF kComp=1 THEN
					IF W_ReqAccCompTemp<2,1> # "" THEN
						READ ENR_ACCORD FROM F.ACCORD,W_ReqAccCompTemp<2,1> ELSE PRINT "ACCORD ACC 2"
						W_RangAccN2 = ENR_ACCORD<8>
					END ELSE
						W_RangAccN2=""
					END

					W_CleAccComp=W_ReqAccCompTemp<kComp,1>
					READ ENR_ACCORD FROM F.ACCORD,W_CleAccComp ELSE PRINT "ACCORD 8"
					
					IF W_RangAccN2 = ENR_ACCORD<8> THEN 
						W_TypeCascade="MEMERANG"
					END ELSE
						W_TypeCascade="CASCADE"
					END	
			   END ELSE
					W_CleAccComp=W_ReqAccCompTemp<kComp,1>
					READ ENR_ACCORD FROM F.ACCORD,W_CleAccComp ELSE PRINT "ACCORD 8"			   
			   END
		   
               READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE PRINT "ORGPRISECHARGE 9"
			   READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_STATACTAIDE<1,iHresH> ELSE PRINT "ACTIVITES 470"
		   
			   W_CodeOrg=ENR_ACCORD<1>

               IF ENR_ACCORD<6> >= W_DebutStatActAide AND ENR_ACCORD<5> <= W_FinStatActAide THEN

			   * traite les heures du mois de STATACTAIDE
                  GOSUB 476
			  
                  IF W_NbHresH > 0 THEN
                     * Rempli TEMPFACTURAIDE et Mise a jour de l'accord complementaire
                     GOSUB 480
                  END ELSE
                     W_FacturOrg4=0
                  END

				 IF W_PasseActAccComp="VRAI" AND W_NbHresH > 0 THEN 
				  
					* Mise a jour des accords complementaires
					GOSUB 485
				 END

               END
            NEXT kComp
 
            iHresH=iHresH+1
         REPEAT
      END
       
       
   NEXT W_DebAcc 

RETURN


*******************************************************************
* Cumul les heures 
475
		W_PasseActAccComp="FAUX"
         jHresH=1
         LOOP
         WHILE W_ReqAccCompTemp<kComp,2,jHresH> # "" DO
            IF W_ActHresComp<iHresH,1> = W_ReqAccCompTemp<kComp,2,jHresH> THEN
			   W_PasseActAccComp="VRAI"
               W_HeuresPrisComp=W_ReqAccCompTemp<kComp,3> - W_ActHresComp<iHresH,2>

               IF W_HeuresPrisComp > 0 THEN
					W_NbHresH=W_NbHresH + W_ActHresComp<iHresH,2>
					W_ReqAccCompTemp<kComp,3>=W_HeuresPrisComp
					IF W_TypeCascade="CASCADE" THEN
						W_ActHresComp<iHresH,2>=0
					END	
               END ELSE
					W_NbHresH=W_NbHresH + W_ReqAccCompTemp<kComp,3>
					W_ReqAccCompTemp=DELETE(W_ReqAccCompTemp,kComp)
					kComp=kComp-1
					W_CountCompTemp=W_CountCompTemp-1
					IF W_TypeCascade="CASCADE" THEN
						W_ActHresComp<iHresH,2>=ABS(W_HeuresPrisComp)
				    END
               END
               jHresH=999

            END
            jHresH=jHresH+1
         REPEAT

RETURN

*****************************************************************************************************************
* Cumul les heures sur STATACTAIDE pour les accords complementaires en heures avec effet rtroactif uniquement
476

		W_PasseActAccComp="FAUX"
         jHresH=1
         LOOP
         WHILE W_ReqAccCompTemp<kComp,2,jHresH> # "" DO
            IF ENR_STATACTAIDE<1,iHresH> = W_ReqAccCompTemp<kComp,2,jHresH> THEN
			   W_PasseActAccComp="VRAI"
               W_HeuresPrisComp=W_ReqAccCompTemp<kComp,3> - ENR_STATACTAIDE<2,iHresH>

               IF W_HeuresPrisComp > 0 THEN
					W_NbHresH=W_NbHresH + ENR_STATACTAIDE<2,iHresH>
					W_ReqAccCompTemp<kComp,3>=W_HeuresPrisComp
					IF W_TypeCascade="CASCADE" THEN
						ENR_STATACTAIDE<2,iHresH>=0
					END	
               END ELSE
					W_NbHresH=W_NbHresH + W_ReqAccCompTemp<kComp,3>
					W_ReqAccCompTemp=DELETE(W_ReqAccCompTemp,kComp)
					kComp=kComp-1
					W_CountCompTemp=W_CountCompTemp-1
					IF W_TypeCascade="CASCADE" THEN
						ENR_STATACTAIDE<2,iHresH>=ABS(W_HeuresPrisComp)
				    END
               END
               jHresH=999

            END
            jHresH=jHresH+1
         REPEAT

RETURN

*******************************************************************
* Rempli TEMPFACTURAIDE et Mise a jour de l'accord complementaire
480

	* christophe le 09/09/2011 pass en paramtre  partir des procdures 470 et 471
	* W_DebAcc=W_ActHresComp<iHresH,4>
	
   iInsertComp=1
   LOOP
   WHILE ENR_TEMPFACTURAIDE<1,iInsertComp> # "" AND W_DebAcc >= ENR_TEMPFACTURAIDE<1,iInsertComp> DO
      iInsertComp=iInsertComp+1
   REPEAT
   ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,1,iInsertComp;W_DebAcc)
   	*Anthony 06/06/11
	IF ENR_ORGPRISECHARGE<59> = "" THEN
		ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iInsertComp;"PARTICIPATION ":ENR_ORGPRISECHARGE<1>)
	END ELSE
		ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,2,iInsertComp;ENR_ORGPRISECHARGE<59>)
	END
	*Fin Anthony
   ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,3,iInsertComp;W_NbHresH)

    W_DatePerTemp="01/":W_DebAcc[5,2]:"/":W_DebAcc[1,4]
    W_DatePerTemp=ICONV(W_DatePerTemp,"D4/")
    W_DatePerTemp=W_DatePerTemp+32
    W_DatePerTemp=OCONV(W_DatePerTemp,"D4/")
    W_DatePerTemp="01/":W_DatePerTemp[4,2]:"/":W_DatePerTemp[7,4]
    W_DatePerTemp=ICONV(W_DatePerTemp,"D4/") - 1

    IF W_DatePerTemp >= ENR_ACCORD<11,1> THEN
       W_Taux=ENR_ACCORD<13,1>
    END ELSE
       iTaux=2
       LOOP
       WHILE W_DatePerTemp < ENR_ACCORD<11,iTaux> DO
          iTaux=iTaux+1
       REPEAT
		W_Taux=ENR_ACCORD<13,iTaux>
    END
	
	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,4,iInsertComp;-W_Taux)
	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,5,iInsertComp;-INT(W_Taux*W_NbHresH/100+1/2))
	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,6,iInsertComp;"0")
	ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,iInsertComp;W_CodeComptaPrest)
	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,7,iInsertComp;ENR_ACTIVITES<2>)
	*Modif Jonathan le 20 juillet 2009 : Prendre en compte le 'sans incidence comptable'
	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,14,iInsertComp;ENR_ORGPRISECHARGE<50>)
	*Fin modif jonathan
	ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,15,iInsertComp;W_CleAccComp)
	* modif vanes 17/11/08
	* Modif Guillaume Da9211 07/12/2009	
*	IF W_GestionTVA="VRAI" THEN
*		ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iInsertComp;"O")
*	END ELSE
		ENR_TEMPFACTURAIDE=INSERT(ENR_TEMPFACTURAIDE,16,iInsertComp;"1")					
*	END
	********
	
	ENR_FACTURORG=""
	ENR_FACTURORG<1>=W_NbHresH
	ENR_FACTURORG<2>=0
	ENR_FACTURORG<3>=W_Taux
	ENR_FACTURORG<4>=INT(W_Taux*W_NbHresH/100+1/2)
	
	W_FacturOrg4=ENR_FACTURORG<4>
	
	W_TauxOrgAnal=W_Taux
	W_SaveHeuresPrisAcc=HeuresPrisAcc
	HeuresPrisAcc=W_NbHresH
	
	W_Mfp="FAUX"
	GOSUB 341
	HeuresPrisAcc=W_SaveHeuresPrisAcc
	
	*Prise en compte du numro d'ordre
	* MP - 22 Sept 2008
	
	ENR_TESTNO = ""
	W_NOrdre = 0
	W_FINNO = "FAUX"
	
	LOOP
		W_NOrdre = W_NOrdre + 1
		W_NOrdre = W_NOrdre "R%2"
	WHILE W_FINNO = "FAUX"
		READ ENR_TESTNO FROM F.FACTURORG ,ENR_ACCORD<1>:"P":W_CleAccComp:W_DebAcc:W_NOrdre THEN
			W_FINNO = "FAUX"
		END ELSE
			W_FINNO = "VRAI"
			W_NomCle = ENR_ACCORD<1>:"P":W_CleAccComp:W_DebAcc:W_NOrdre
		END
	REPEAT
	
	WRITE ENR_FACTURORG ON F.FACTURORG,W_NomCle
	
	* FIN MP - 22 Sept 2008
	
	WRITE ENR_TEMPFACTURAIDE ON F.TEMPFACTURAIDE,W_Aide
	
RETURN

********************************************************************
* Mise a jour des accords complementaires
485

	W_ResteReport=0
	
	* Modif Guillaume DA10260 : L'attribut 22 n'est plus utilis pour a
*     IF ENR_ACCORD<22> # "" THEN
* 		W_HresAllouees=ENR_ACCORD<22>
*     END ELSE
*		W_HresAllouees=ENR_ACCORD<9>
*     END
	IF ENR_ACCORD<22> # "" THEN
		IF ENR_ACCORD<22> > ENR_ACCORD<9> THEN
			W_HresAllouees=ENR_ACCORD<22>
		END ELSE
			W_HresAllouees=ENR_ACCORD<9>
		END
	END ELSE
		W_HresAllouees=ENR_ACCORD<9>
	END	
	iHistoAcc=1
	LOOP
	WHILE ENR_ACCORD<14,iHistoAcc> > W_DebAcc DO
		iHistoAcc=iHistoAcc+1
	REPEAT
	
	IF ENR_ACCORD<14,iHistoAcc> = W_DebAcc THEN
		W_Nb16Acc=ENR_ACCORD<16,iHistoAcc>+W_NbHresH
		
		*MODIF VANESSA 09/09/10
		IF ENR_ORGPRISECHARGE<19> = "2" THEN
			IF W_Nb16Acc > W_HresAllouees THEN
				W_Nb16Acc=W_HresAllouees
			END
		END
		
		ENR_ACCORD<16,iHistoAcc>=W_Nb16Acc
		ENR_ACCORD<15,iHistoAcc>=ENR_ACCORD<15,iHistoAcc> + W_FacturOrg4
		*christophe le 07/01/2011 ajout de la mise  jour du rsuduel ou du report.
		IF ENR_ORGPRISECHARGE<19>#2 THEN
			IF ENR_ACCORD<17,iHistoAcc>="" THEN
				ENR_ACCORD<17,iHistoAcc>=W_HresAllouees-W_NbHresH
			END ELSE
				ENR_ACCORD<17,iHistoAcc>=ENR_ACCORD<17,iHistoAcc>-W_NbHresH
			END
		END
		
	END ELSE
	
		ENR_ACCORD=INSERT(ENR_ACCORD,14,iHistoAcc;W_DebAcc)
		ENR_ACCORD=INSERT(ENR_ACCORD,15,iHistoAcc;W_FacturOrg4)
		ENR_ACCORD=INSERT(ENR_ACCORD,16,iHistoAcc;W_NbHresH)
		
		IF ENR_ORGPRISECHARGE<19> = "3" THEN
			IF ENR_ACCORD<17,iHistoAcc>="" THEN
				ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;W_HresAllouees-W_NbHresH)
			END ELSE
				ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;ENR_ACCORD<17,iHistoAcc>-W_NbHresH)
			END
		END ELSE
			IF ENR_ORGPRISECHARGE<19> = "1" THEN
				IF ENR_ACCORD<17,iHistoAcc>="" THEN
					W_ResteReport=W_HresAllouees-W_NbHresH
				END ELSE
					W_ResteReport=W_HresAllouees-W_NbHresH+ENR_ACCORD<17,iHistoAcc>
				END
				IF W_ResteReport> 0 THEN
					ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;W_ResteReport)
				END ELSE
					ENR_ACCORD=INSERT(ENR_ACCORD,17,iHistoAcc;0)
				END
			END
		END
		
	END
	
	IF ENR_ORGPRISECHARGE<19>=3 THEN
		*Parcourir les mv dessous pour mise a jour
		*christophe rajout iHistoAcc-1. le 07/01/2011
		iHistoAcc=iHistoAcc-1
		FOR jHistoAcc=iHistoAcc TO 1 STEP -1
			ENR_ACCORD<17,jHistoAcc>=ENR_ACCORD<17,jHistoAcc+1>-ENR_ACCORD<16,jHistoAcc>
		NEXT jHistoAcc
	END ELSE
		IF ENR_ORGPRISECHARGE<19>=1 THEN
			*Parcourir les mv dessous pour mise a jour
			*christophe rajout iHistoAcc-1. le 07/01/2011
			iHistoAcc=iHistoAcc-1
			FOR jHistoAcc=iHistoAcc TO 1 STEP -1
				ENR_ACCORD<17,jHistoAcc>=W_HresAllouees+ENR_ACCORD<17,jHistoAcc+1>-ENR_ACCORD<16,jHistoAcc>
			NEXT jHistoAcc
		END
	END		

	WRITE ENR_ACCORD ON F.ACCORD,W_CleAccComp
	
RETURN

********************************************************************
* Gestion du tableau tampon d'ActivitesAide
490
  W_Trouve="FAUX"
  iActAide=1
  LOOP
  WHILE W_ActivitesAide<iActAide># "" DO
     IF W_ActHres=W_ActivitesAide<iActAide> THEN
        W_Trouve="VRAI"
        iActAide=999
     END
      iActAide=iActAide+1
  REPEAT
  IF W_Trouve="FAUX" THEN
     W_ActivitesAide<iActAide>=W_ActHres
  END

RETURN

********************************************************************  
* Ecriture d'activitesaide
495
   IF W_ActivitesAide#"" THEN
      READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_Aide ELSE PRINT "ACTIVITESAIDE 1"
      iActAide=1
      W_CountAct=DCOUNT(W_ActivitesAide,CHAR(254))
      LOOP
      WHILE ENR_ACTIVITESAIDE<1,iActAide>#"" DO
         IF ENR_ACTIVITESAIDE<2,iActAide>="" THEN
            FOR jActAide=1 TO W_CountAct
               IF ENR_ACTIVITESAIDE<1,iActAide>=W_ActivitesAide<jActAide> THEN
                  ENR_ACTIVITESAIDE<2,iActAide>=ICONV("01/":W_CboAnneeMois[5,2]:"/":W_CboAnneeMois[1,4],"D4/")
			ENR_ACTIVITESBISAIDE = ""
			WRITE ENR_ACTIVITESBISAIDE ON F.ACTIVITESBISAIDE, W_Aide:ENR_ACTIVITESAIDE<1,iActAide>:ENR_ACTIVITESAIDE<2,iActAide>

                  W_ActivitesAide=DELETE(W_ActivitesAide,jActAide)
                  W_CountAct=W_CountAct-1
                  jActAide=999
               END
            NEXT jActAide
         END
         iActAide=iActAide+1
      REPEAT

      WRITE ENR_ACTIVITESAIDE ON F.ACTIVITESAIDE,W_Aide

      W_ActivitesAide=""
   END

   ENR_ACTIVITESAIDE="" 

RETURN

********************************************************************
500
   W_Fini="FAUX"
   W_NumeroFact=""
   ENR_FACTURAIDE=""

   * Lecture du n de facture
   READ ENR_NUMEROFACT FROM F.NUMEROFACT,W_CodAssoc ELSE PRINT "NUMEROFACT 1"
   W_NumeroFact=ENR_NUMEROFACT<1>

   * Recherche des TEMPFACTURAIDE
   IF W_Tri = "" OR W_Tri = "A" THEN
      EXECUTE 'SSELECT TEMPFACTURAIDE PAR NomPrenomAide PAR @ID'
   END ELSE
      IF W_Tri = "R" THEN
         EXECUTE 'SSELECT TEMPFACTURAIDE PAR ResponsableAide PAR NomPrenomAide PAR @ID'
      END ELSE
         EXECUTE 'SSELECT TEMPFACTURAIDE PAR SecteurAide PAR NomPrenomAide PAR @ID'
      END
   END

   EXECUTE 'SAUVE-LISTE W_RequeteTempFacturAide'
   EXECUTE "LISTE W_RequeteTempFacturAide" RETURNING MSGCODE
   IF MSGCODE<1>=209 THEN
      W_Fini="VRAI"
   END ELSE
      SELECT F.TEMPFACTURAIDE TO W_RequeteTempFacturAide
   END

   * Parcours des valeurs trouvees
   LOOP
      READNEXT W_CleAide FROM W_RequeteTempFacturAide ELSE W_Fini="VRAI"
   WHILE W_Fini="FAUX" DO

     READ ENR_TEMPFACTURAIDE FROM F.TEMPFACTURAIDE,W_CleAide ELSE PRINT "TEMPFACTURAIDE 1"

     FacturAide5="VIDE"
     W_CountTempFacturAide5=DCOUNT(ENR_TEMPFACTURAIDE<5>,CHAR(253))
     FOR rFacturAide=1 TO W_CountTempFacturAide5
        IF ENR_TEMPFACTURAIDE<5,rFacturAide> # "" AND ENR_TEMPFACTURAIDE<5,rFacturAide> # 0 THEN
           FacturAide5 = "PLEIN"
           rFacturAide=999
        END
     NEXT rFacturAide

     IF W_GestionFede="VRAI" THEN
        * Test si la facturation aide doit etre faite
        READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CleAide ELSE PRINT "CIVILAIDE 2"
        GOSUB 700
     END     

     IF FacturAide5 # "VIDE" AND FacturAide5 # 0 THEN
        READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_CleAide THEN
           W_AideTrim=ENR_ELTSFACTAIDE<1>
        END ELSE
           ENR_ELTSFACTAIDE=""
           W_AideTrim="M"
        END
   
        IF W_AideTrim="M" OR W_FinTrimestre="VRAI" THEN
           * Recuperation des mois du trimestre dans FACTURAIDE
           GOSUB 560

           * Mise a jour de FACTURAIDE avec COMPLFACT
           GOSUB 540

		   * modif vanes 17/11/08
		   * christophe le 06/12/2008 - gestion de W_MontFact5 pour bien grer les avoirs par rapport au Plancher de facturation.
		   * Modif Guillaume DA12006 15/02/2012 : Les attributs 8 et 9 sont maintenant grs en MV en fonction des lignes de la
		   *                                      facture et de leurs taux applicables respectifs.                       
            GOSUB 820
           * Fin modif Guillaume DA12006 15/02/2012
           * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *           
		   
		   
*            *Modif Mika
* 		   *W_Avoir=W_MontFact5-ENR_FACTURAIDE<9>
* 		    W_Avoir=W_MontFact5+ENR_FACTURAIDE<9>
* 			*****
		   
           IF W_Avoir < 0 THEN
              * on fait une facture
              GOSUB 501
              * Mise a jour de COMPLFACT avec DES AVOIRS
              GOSUB 550
           END ELSE
              IF ENR_NUMEROFACT<7> # "" THEN
                 IF ENR_NUMEROFACT<7> <= W_Avoir THEN
                    * on fait une facture
                    GOSUB 501
                 END ELSE
                    * on met la facture en attente
                    ENR_FACTURAIDETRIM=ENR_FACTURAIDE
                    WRITE ENR_FACTURAIDETRIM ON F.FACTURAIDETRIM,W_CleAide:W_CodAssoc:W_TypeAct
                 END
              END ELSE
                 * on fait une facture
                 GOSUB 501
              END
           END

        END ELSE

           IF ENR_TEMPFACTURAIDE<1,1> < W_PeriodeDebTri THEN
             * Facturation des heures en attente du trimestre precedent
              GOSUB 590
           END
           IF ENR_TEMPFACTURAIDE<1,1> # "" THEN
              * Mise en attente des factures trimestrielles
              GOSUB 570
           END
        END
     END ELSE
        READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_CleAide ELSE ENR_ELTSFACTAIDE = ""
     END
      
     * Maj ELTSFACTAIDE
      ENR_ELTSFACTAIDE=REPLACE(ENR_ELTSFACTAIDE,24,W_CodAssoc;W_CboAnneeMois)
      WRITE ENR_ELTSFACTAIDE ON F.ELTSFACTAIDE,W_CleAide
      ENR_ELTSFACTAIDE=""
	  
*****************************	  
      DELETE F.TEMPFACTURAIDE,W_CleAide
***************************** 
 
      ENR_TEMPFACTURAIDE=""
   REPEAT

   * Slection des aids supprims sur le mois
   GOSUB 610
   * Slection des aids supprims qui ont encore un FACTURAIDETRIM
   GOSUB 600

   IF W_FinTrimestre="VRAI" THEN
      * Selection des factures trimestrielles restantes avec test plancher
      GOSUB 580
   END

   * Sauvegarde du dernier n de facture dans NUMEROFACT
   ENR_NUMEROFACT=REPLACE(ENR_NUMEROFACT,1;W_NumeroFact)
   WRITE ENR_NUMEROFACT ON F.NUMEROFACT,W_CodAssoc

	ENR_NUMEROFACT=""  
	
RETURN

*********************************************************************
* incrmente le numro de facture et fait la facture
501

	* Incremente le N de facture
	W_NumeroFact=W_NumeroFact+1
	W_NumeroFact=W_NumeroFact "R%10"
	
	IF W_GestionFede="VRAI" THEN
		* Ecrit le numero de facture sur la FedeAssoc
		W_NumFactFede=ENR_FEDEASSOC<42,5>+1
		ENR_FEDEASSOC<42,5>=W_NumFactFede "R%10"
		WRITE ENR_FEDEASSOC ON F.FEDEASSOC,W_CleFede
	END
	
    * MODIF VANESSA 23/09/09
	* MODIF VANESSA 17/12/09
	IF INDEX(ENR_FACTURAIDE<15>,"A",1) # 0 THEN
	*IF ENR_FACTURAIDE<15>="A" THEN
		READ ENR_HRESATTENTE FROM F.HRESATTENTE,W_CleAide:W_CodAssoc:W_CboAnneeMois:"P" THEN
			ENR_HRESATTENTE<12>=W_NumeroFact
			WRITE ENR_HRESATTENTE ON F.HRESATTENTE,W_CleAide:W_CodAssoc:W_CboAnneeMois:"P"
		END
	END
	* FIN MODIF
	
	WRITE ENR_FACTURAIDE ON F.FACTURAIDE,W_CleAide:W_CodAssoc:"P":W_CboAnneeMois:W_NumeroFact:"0"
	ENR_FACTURAIDE=""
	
RETURN

*********************************************************************
* Mise a jour d'HRESHISTOR
510
IF W_GestionFede="FAUX" THEN
   iHistor=1
   READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CodeAidant ELSE PRINT "CIVILAIDANT 2"

   W_NomPrenomAidant=ENR_CIVILAIDANT<2>:ENR_CIVILAIDANT<3>
   LOOP
   WHILE ENR_HRESHISTOR<3,iHistor> < W_NomPrenomAidant AND ENR_HRESHISTOR<1,iHistor># "" DO
      iHistor=iHistor+1
   REPEAT

   IF ENR_HRESHISTOR<1,iHistor> = "" THEN
      ENR_HRESHISTOR<1,iHistor>=W_CodeAidant
      ENR_HRESHISTOR<2,iHistor>=NbrHeuresAtt
      ENR_HRESHISTOR<3,iHistor>=W_NomPrenomAidant
   END ELSE
      IF ENR_HRESHISTOR<3,iHistor> > W_NomPrenomAidant THEN
         ENR_HRESHISTOR=INSERT(ENR_HRESHISTOR,1,iHistor;W_CodeAidant)
         ENR_HRESHISTOR=INSERT(ENR_HRESHISTOR,2,iHistor;NbrHeuresAtt)
         ENR_HRESHISTOR=INSERT(ENR_HRESHISTOR,3,iHistor;W_NomPrenomAidant)
      END ELSE
         ENR_HRESHISTOR<2,iHistor>=ENR_HRESHISTOR<2,iHistor>+NbrHeuresAtt
      END
   END
END ELSE
   IF ENR_HRESHISTOR<2,1> = "" THEN
      ENR_HRESHISTOR<2,1>=NbrHeuresAtt
   END ELSE
      ENR_HRESHISTOR<2,1>=ENR_HRESHISTOR<2,1> + NbrHeuresAtt
   END

END       
RETURN

*********************************************************************
* Mise a jour de STATACTAIDE
520
   iStat=1
   LOOP
   WHILE ENR_STATACTAIDE<1,iStat># "" DO
      IF ENR_STATACTAIDE<1,iStat> = W_ActHres THEN
         ENR_STATACTAIDE<2,iStat>=ENR_STATACTAIDE<2,iStat>+NbrHeuresAtt
         iStat=999
      END ELSE
         iStat=iStat+1
      END
   REPEAT
   IF iStat # 999 THEN
       ENR_STATACTAIDE<1,iStat>=W_ActHres
       ENR_STATACTAIDE<2,iStat>=NbrHeuresAtt
   END

RETURN

*********************************************************************
* Mise a jour de COTISANAIDE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
530
  IF ENR_ASSOCIATION<31,2> # "" AND ENR_ASSOCIATION<31,2> # 0 THEN
     W_DerniereCoti=""
     READ ENR_COTISANAIDE FROM F.COTISANAIDE,W_Aide:W_CodAssoc ELSE ENR_COTISANAIDE = ""  
     W_CountCoti=DCOUNT(ENR_COTISANAIDE<1>,CHAR(253))
**********************************
* Modif - Matthieu - Le 24 Fev 08 
*     IF W_CountCoti # 0 THEN
     IF W_CountCoti # 0 AND ENR_COTISANAIDE<3> # "1" THEN
        W_DerniereCoti=ENR_COTISANAIDE<1,W_CountCoti>
        IF ENR_ASSOCIATION<32,2>="A" THEN
            IF W_CboAnneeMois[5,2]="01" THEN
               IF W_DerniereCoti#W_CboAnneeMois THEN
                  GOSUB 535
               END
            END ELSE
               IF W_CboAnneeMois[1,4] > W_DerniereCoti[1,4] THEN
                  GOSUB 535
               END
            END
        END ELSE
           IF W_CboAnneeMois[1,4] > W_DerniereCoti[1,4] THEN
              IF W_CboAnneeMois[5,2] >= W_DerniereCoti[5,2] THEN
                 GOSUB 535
              END
           END
*              W_MoisAnnee=W_CboAnneeMois[5,2]:W_CboAnneeMois[1,4]
*           W_MoisAnneeDerCoti=W_DerniereCoti[5,2]:W_DerniereCoti[1,4]
*           IF W_MoisAnnee >= W_DerniereCoti THEN
*           END     
        END
     END ELSE
        GOSUB 535
     END
  END

RETURN

****************************************************************************
535

   ENR_COTISANAIDE=REPLACE(ENR_COTISANAIDE,1,-1;W_CboAnneeMois)
   ENR_COTISANAIDE=REPLACE(ENR_COTISANAIDE,2,-1;ENR_ASSOCIATION<31,2>)
   *-- Modification Matthieu - Le 03/04/2009
	IF ENR_COTISANAIDE<3> # "1" THEN
	   WRITE ENR_COTISANAIDE ON F.COTISANAIDE,W_Aide:W_CodAssoc

	   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,1,-1;W_CboAnneeMois)
	   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,2,-1;"COTISATION ANNUELLE")
	   W_Count6FacturAide=DCOUNT(ENR_TEMPFACTURAIDE<1>,CHAR(253))
	   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,3,W_Count6FacturAide;"")
	   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,4,W_Count6FacturAide;"")
	   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,5,W_Count6FacturAide;ENR_ASSOCIATION<31,2>)
	   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,6,W_Count6FacturAide;W_CodeComptaCoti)
	   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,7,-1;ENR_ACTIVITES<2>)
	   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,14,W_Count6FacturAide;"0")
	   ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,15,W_Count6FacturAide;"")
		* CHRISTOPHE LE 19/05/2009 MISE EN COMMENTAIRE PAS DE TVA SUR LA COTISAIOTN ANNUELLE
		* modif vanes 17/11/08
		*IF W_GestionTVA="VRAI" THEN
		*	ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,W_Count6FacturAide;"O")
		*END ELSE
			ENR_TEMPFACTURAIDE=REPLACE(ENR_TEMPFACTURAIDE,16,W_Count6FacturAide;"1")					
		*END
		******** 
	   
		WRITE ENR_TEMPFACTURAIDE ON F.TEMPFACTURAIDE,W_Aide

   END
   *-- Fin Modifs
   
   ENR_COTISANAIDE=""

RETURN

*********************************************************************
* Mise a jour de FACTURAIDE avec COMPLFACT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
540
 READ ENR_COMPLFACT FROM F.COMPLFACT,W_CleAide:W_CodAssoc:W_TypeAct THEN
    IF ENR_COMPLFACT<1> # "" THEN
		W_CountComplFact=DCOUNT(ENR_COMPLFACT<1>,CHAR(253))
		FOR iComplFact=1 TO W_CountComplFact
			IF ENR_COMPLFACT<9,iComplFact> <= W_CboAnneeMois OR ENR_COMPLFACT<9,iComplFact> = "" THEN
				IF ENR_COMPLFACT<8,iComplFact> < W_CboAnneeMois OR ENR_COMPLFACT<8,iComplFact> = "" THEN
					ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,1,-1;ENR_COMPLFACT<9,iComplFact>)
					ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,2,-1;ENR_COMPLFACT<1,iComplFact>)
					ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,3,-1;ENR_COMPLFACT<2,iComplFact>)
					ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,4,-1;ENR_COMPLFACT<3,iComplFact>)
					ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,5,-1;ENR_COMPLFACT<4,iComplFact>)
					ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,6,-1;ENR_COMPLFACT<5,iComplFact>)
					ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,7,-1;ENR_COMPLFACT<6,iComplFact>)
					IF ENR_COMPLFACT<5,iComplFact> = "" THEN
						ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,14,-1;"1")
					END ELSE
						ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,14,-1;"0")
					END
					ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,15,-1;"")
					* modif vanes 17/11/08
					* Modif Guillaume DA12006 15/02/2012 - Je remplace le O ou N par le code tva  appliquer  la ligne
                     * christophe le 26/06/2012 - Suppression du test sur la TVA car MV en dcalage si test existant 
					 *IF W_GestionTVA="VRAI" THEN
                        ENR_FACTURAIDE<16,-1> = ENR_COMPLFACT<10,iComplFact>
                     *END
                    
* 					IF W_GestionTVA="VRAI" AND ENR_COMPLFACT<10,iComplFact>="O" THEN
* 						ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,16,-1;"O")
* 					END ELSE
* 						ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,16,-1;"N")					
* 					END
					********
					IF ENR_COMPLFACT<7,iComplFact> = 1 THEN
						* christophe le 02/09/2011 - DA11105-01 modification des reports  zro dans les complments de facturation
						IF ENR_COMPLFACT<2,iComplFact> # "" AND ENR_COMPLFACT<3,iComplFact> # "" THEN
							* si rubrique avec base  * taux alors on conserve le taux sinon montant uniquement et donc on met  zro.
							ENR_COMPLFACT<2,iComplFact>=0			
						END ELSE
							ENR_COMPLFACT<2,iComplFact>=""
							ENR_COMPLFACT<3,iComplFact>=""
						END
						ENR_COMPLFACT<4,iComplFact>=0
					END
					* avant modif
					*IF ENR_COMPLFACT<7,iComplFact> = 1 THEN
					*	ENR_COMPLFACT<2,iComplFact>=""
					*	ENR_COMPLFACT<3,iComplFact>=""
					*	ENR_COMPLFACT<4,iComplFact>=0
					*END
					IF ENR_COMPLFACT<7,iComplFact> # 0 AND ENR_COMPLFACT<7,iComplFact> # "" THEN
						IF ENR_COMPLFACT<9,iComplFact> # "" THEN
							IF W_CboAnneeMois[5,2]>="12" THEN
								ENR_COMPLFACT<9,iComplFact> = W_CboAnneeMois[1,4]+1:"01"
							END ELSE
								ENR_COMPLFACT<9,iComplFact> = W_CboAnneeMois+1
							END
						END
					END
					ENR_COMPLFACT<8,iComplFact>=W_CboAnneeMois
				END
			END
		NEXT iComplFact
    END

    iComplFact=1
    LOOP
    WHILE ENR_COMPLFACT<1,iComplFact> # "" DO
		IF ENR_COMPLFACT<9,iComplFact> <= W_CboAnneeMois OR ENR_COMPLFACT<8,iComplFact> = "" THEN
			IF ENR_COMPLFACT<7,iComplFact> = "" OR ENR_COMPLFACT<7,iComplFact> = 0 THEN
				ENR_COMPLFACT=DELETE(ENR_COMPLFACT,1,iComplFact)
				ENR_COMPLFACT=DELETE(ENR_COMPLFACT,2,iComplFact)
				ENR_COMPLFACT=DELETE(ENR_COMPLFACT,3,iComplFact)
				ENR_COMPLFACT=DELETE(ENR_COMPLFACT,4,iComplFact)
				ENR_COMPLFACT=DELETE(ENR_COMPLFACT,5,iComplFact)
				ENR_COMPLFACT=DELETE(ENR_COMPLFACT,6,iComplFact)
				ENR_COMPLFACT=DELETE(ENR_COMPLFACT,7,iComplFact)
				ENR_COMPLFACT=DELETE(ENR_COMPLFACT,8,iComplFact)
				ENR_COMPLFACT=DELETE(ENR_COMPLFACT,9,iComplFact)
				* modif vanes 17/11/08
				ENR_COMPLFACT=DELETE(ENR_COMPLFACT,10,iComplFact)	
				****
				iComplFact=iComplFact-1
			END
		END
		iComplFact=iComplFact+1
    REPEAT

    WRITE ENR_COMPLFACT ON F.COMPLFACT,W_CleAide:W_CodAssoc:W_TypeAct

    IF ENR_COMPLFACT<1> = "" THEN 
		DELETE F.COMPLFACT,W_CleAide:W_CodAssoc:W_TypeAct
    END
 END

RETURN

*********************************************************************
* Mise a jour de COMPLFACT AVEC DES AVOIRS
550
	READ ENR_COMPLFACT FROM F.COMPLFACT,W_CleAide:W_CodAssoc:W_TypeAct ELSE ENR_COMPLFACT=""
    ENR_COMPLFACT=REPLACE(ENR_COMPLFACT,1,-1;"AVOIR SUR FACTURE ":W_NumeroFact)
    ENR_COMPLFACT=REPLACE(ENR_COMPLFACT,2,-1;"")
    ENR_COMPLFACT=REPLACE(ENR_COMPLFACT,3,-1;"")
    ENR_COMPLFACT=REPLACE(ENR_COMPLFACT,4,-1;W_Avoir)
    ENR_COMPLFACT=REPLACE(ENR_COMPLFACT,5,-1;"")
    ENR_COMPLFACT=REPLACE(ENR_COMPLFACT,6,-1;"")
    ENR_COMPLFACT=REPLACE(ENR_COMPLFACT,7,-1;"0")
    ENR_COMPLFACT=REPLACE(ENR_COMPLFACT,8,-1;"")
	ENR_COMPLFACT=REPLACE(ENR_COMPLFACT,9,-1;W_CboAnneeMois)
	
	* Modif Guillaume DA10001-01 07/01/2010 : Mme si on gre la TVA, les avoirs n'y sont pas soumis. => Test mis en commentaires
	* modif vanes 17/11/08
*	IF W_GestionTVA="VRAI" THEN
*		ENR_COMPLFACT=REPLACE(ENR_COMPLFACT,10,-1;"O")
*	END ELSE

*	Modif Guillaume DA12006 15/02/2012 - Par rapport  la modif DA10001, on met donc systmatiquement 0%
*	Modif Guillaume 22/06/2012 - Bug rsolu : Il faut mettre le code TVA et non le taux
		ENR_COMPLFACT=REPLACE(ENR_COMPLFACT,10,-1;1)	
*	END
	***************
   
	WRITE ENR_COMPLFACT ON F.COMPLFACT,W_CleAide:W_CodAssoc:W_TypeAct
RETURN

*********************************************************************
* Recuperation des mois du trimestre dans FACTURAIDE
560
   ENR_FACTURAIDE=""
   READ ENR_FACTURAIDETRIM FROM F.FACTURAIDETRIM,W_CleAide:W_CodAssoc:W_TypeAct THEN

      * Mois precedents
      ENR_FACTURAIDE=ENR_FACTURAIDETRIM

      * Mois en cours
      W_CountFactTri=DCOUNT(ENR_TEMPFACTURAIDE<1>,CHAR(253))
      FOR iFactTri=1 TO W_CountFactTri
         ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,1,-1;ENR_TEMPFACTURAIDE<1,iFactTri>)
         ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,2,-1;ENR_TEMPFACTURAIDE<2,iFactTri>)
         ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,3,-1;ENR_TEMPFACTURAIDE<3,iFactTri>)
         ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,4,-1;ENR_TEMPFACTURAIDE<4,iFactTri>)
         ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,5,-1;ENR_TEMPFACTURAIDE<5,iFactTri>)
         ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,6,-1;ENR_TEMPFACTURAIDE<6,iFactTri>)
         ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,7,-1;ENR_TEMPFACTURAIDE<7,iFactTri>)
         ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,14,-1;ENR_TEMPFACTURAIDE<14,iFactTri>)
         ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,15,-1;ENR_TEMPFACTURAIDE<15,iFactTri>)
		 * modif vanes 17/11/08
         ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,16,-1;ENR_TEMPFACTURAIDE<16,iFactTri>)	
		 ****
      NEXT iFactTri

      * Valeur de la TVA
      * Modif Guillaume DA12006 15/02/2012 - On gre la TVA en calculant la facture
      *      ENR_FACTURAIDE<8>=ENR_TEMPFACTURAIDE<8>

      ENR_FACTURAIDE<11>="0"

      * Liste des aidants
      W_CountFactTri=DCOUNT(ENR_FACTURAIDE<10>,CHAR(253))
      W_CountFactTriT=DCOUNT(ENR_TEMPFACTURAIDE<10>,CHAR(253))

      FOR iFactTriT=1 TO W_CountFactTriT
         W_TrouveAidant="FAUX"
         FOR iFactTri=1 TO W_CountFactTri
            IF ENR_FACTURAIDE<10,iFactTri> = ENR_TEMPFACTURAIDE<10,iFactTriT> THEN
               W_TrouveAidant="TRUE"
               EXIT
            END
         NEXT iFactTri
         IF W_TrouveAidant="FAUX" THEN
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,10,-1;ENR_TEMPFACTURAIDE<10,iFactTriT>)
         END
      NEXT iFactTriT

      DELETE F.FACTURAIDETRIM,W_CleAide:W_CodAssoc:W_TypeAct
   END ELSE
      ENR_FACTURAIDE=ENR_TEMPFACTURAIDE
   END
RETURN

*********************************************************************
* Mise en attente des factures trimestrielles
570
   ENR_FACTURAIDETRIM=""
   READ ENR_FACTURAIDETRIM FROM F.FACTURAIDETRIM,W_CleAide:W_CodAssoc:W_TypeAct THEN
      * Mois en cours
      W_CountFactTri=DCOUNT(ENR_TEMPFACTURAIDE<1>,CHAR(253))
      FOR iFactTri=1 TO W_CountFactTri
         ENR_FACTURAIDETRIM=REPLACE(ENR_FACTURAIDETRIM,1,-1;ENR_TEMPFACTURAIDE<1,iFactTri>)
         ENR_FACTURAIDETRIM=REPLACE(ENR_FACTURAIDETRIM,2,-1;ENR_TEMPFACTURAIDE<2,iFactTri>)
         ENR_FACTURAIDETRIM=REPLACE(ENR_FACTURAIDETRIM,3,-1;ENR_TEMPFACTURAIDE<3,iFactTri>)
         ENR_FACTURAIDETRIM=REPLACE(ENR_FACTURAIDETRIM,4,-1;ENR_TEMPFACTURAIDE<4,iFactTri>)
         ENR_FACTURAIDETRIM=REPLACE(ENR_FACTURAIDETRIM,5,-1;ENR_TEMPFACTURAIDE<5,iFactTri>)
         ENR_FACTURAIDETRIM=REPLACE(ENR_FACTURAIDETRIM,6,-1;ENR_TEMPFACTURAIDE<6,iFactTri>)
         ENR_FACTURAIDETRIM=REPLACE(ENR_FACTURAIDETRIM,7,-1;ENR_TEMPFACTURAIDE<7,iFactTri>)
         ENR_FACTURAIDETRIM=REPLACE(ENR_FACTURAIDETRIM,14,-1;ENR_TEMPFACTURAIDE<14,iFactTri>)
         ENR_FACTURAIDETRIM=REPLACE(ENR_FACTURAIDETRIM,15,-1;ENR_TEMPFACTURAIDE<15,iFactTri>)
		 * modif vanes 17/11/08
         ENR_FACTURAIDETRIM=REPLACE(ENR_FACTURAIDETRIM,16,-1;ENR_TEMPFACTURAIDE<16,iFactTri>)
		 *******
      NEXT iFactTri

      * Valeur de la TVA
      ENR_FACTURAIDETRIM<8>=ENR_TEMPFACTURAIDE<8>

      * Liste des aidants
      W_CountFactTri=DCOUNT(ENR_FACTURAIDETRIM<10>,CHAR(253))
      W_CountFactTriT=DCOUNT(ENR_TEMPFACTURAIDE<10>,CHAR(253))
      FOR iFactTriT=1 TO W_CountFactTriT
         W_TrouveAidant="FAUX"
         FOR iFactTri=1 TO W_CountFactTri
            IF ENR_FACTURAIDETRIM<10,iFactTri> = ENR_TEMPFACTURAIDE<10,iFactTriT> THEN
               W_TrouveAidant="TRUE"
               EXIT
            END
         NEXT iFactTri
         IF W_TrouveAidant="FAUX" THEN
            ENR_FACTURAIDETRIM=REPLACE(ENR_FACTURAIDETRIM,10,-1;ENR_TEMPFACTURAIDE<10,iFactTriT>)
         END
      NEXT iFactTriT

   END ELSE
      ENR_FACTURAIDETRIM=ENR_TEMPFACTURAIDE
   END

   WRITE ENR_FACTURAIDETRIM ON F.FACTURAIDETRIM,W_CleAide:W_CodAssoc:W_TypeAct
RETURN

*********************************************************************
* Selection des factures trimestrielles restantes car aucunes heures sur le mois
* avec test plancher
580

   ENR_FACTURAIDE=""
   W_Fini="FAUX"
   W_TempTrim='SSELECT FACTURAIDETRIM AVEC @ID = "':W_CodeAide:']" AND AVEC @ID = "[':W_CodAssoc:'P"'
   IF W_CodeSectResp # "VIDE" THEN
      IF W_RespSect="R" THEN
         W_TempTrim=W_TempTrim:' AND AVEC CodeRespTrim = "':W_CodeSectResp:'"'
      END ELSE
         W_TempTrim=W_TempTrim:' AND AVEC CodeSectTrim = "':W_CodeSectResp:']"'
      END
   END
   IF W_Tri = "R" THEN
      W_TempTrim=W_TempTrim:' PAR RespTrim'
   END ELSE
      W_TempTrim=W_TempTrim:' PAR SectTrim'
   END
   W_TempTrim=W_TempTrim:' PAR NomAideFactTrim PAR PrenomAideFactTrim PAR @ID'
   EXECUTE W_TempTrim

   LOOP
      READNEXT W_CleFactTrim ELSE W_Fini="VRAI"
   WHILE W_Fini="FAUX" DO
      READ ENR_FACTURAIDETRIM FROM F.FACTURAIDETRIM,W_CleFactTrim THEN
         W_CleAide=W_CleFactTrim[1,5]

         ENR_FACTURAIDE=ENR_FACTURAIDETRIM

         * Mise a jour de FACTURAIDE avec COMPLFACT
         GOSUB 540
        
    	 * Modif Guillaume DA12006 15/02/2012 : Les attributs 8 et 9 sont maintenant grs en MV en fonction des lignes de la
    	 *                                      facture et de leurs taux applicables respectifs.                       
         GOSUB 820
         * Fin modif Guillaume DA12006 15/02/2012
         * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *           

*          iMontTva=1
*          W_MontTva=0
*          LOOP
*          WHILE ENR_FACTURAIDE<5,iMontTva> # "" DO
* 			* modif vanes 17/11/08
* 			IF ENR_FACTURAIDE<16,iMontTva> = "O" THEN
* 				W_MontTva=W_MontTva+ENR_FACTURAIDE<5,iMontTva>
* 			END
* 			*****
*             iMontTva=iMontTva+1
*          REPEAT
*          ENR_FACTURAIDE<9>=INT(W_MontTva*ENR_FACTURAIDE<8>/10000+1/2)
*          
*          *Modif mika
* 		 *W_Avoir=W_MontTva-ENR_FACTURAIDE<9>
* 		 W_Avoir=W_MontTva+ENR_FACTURAIDE<9>

         IF W_Avoir < 0 THEN
            * on fait une facture
            GOSUB 581
            * Mise a jour de COMPLFACT avec DES AVOIRS
            GOSUB 550
            DELETE F.FACTURAIDETRIM,W_CleFactTrim
         END ELSE
            IF ENR_NUMEROFACT<7> # "" THEN
               IF ENR_NUMEROFACT<7> <= W_Avoir THEN
                  * on fait une facture
                  GOSUB 581
                  DELETE F.FACTURAIDETRIM,W_CleFactTrim
               END ELSE
                  * on met la facture en attente
                  ENR_FACTURAIDETRIM=ENR_FACTURAIDE
                  WRITE ENR_FACTURAIDETRIM ON F.FACTURAIDETRIM,W_CleAide:W_CodAssoc:W_TypeAct
               END
            END ELSE
               * on fait une facture
               GOSUB 581
               DELETE F.FACTURAIDETRIM,W_CleFactTrim
            END
         END

         * Lecture et Maj ELTSFACTAIDE
         READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_CleAide ELSE ENR_ELTSFACTAIDE=""         
         ENR_ELTSFACTAIDE=REPLACE(ENR_ELTSFACTAIDE,24,W_CodAssoc;W_CboAnneeMois)
         WRITE ENR_ELTSFACTAIDE ON F.ELTSFACTAIDE,W_CleAide         
         ENR_ELTSFACTAIDE=""
		
      END
	
	REPEAT
	
RETURN

*********************************************************************
* incrmente le numro de facture et fait la facture
581

	* Incremente le N de facture
	W_NumeroFact=W_NumeroFact+1
	W_NumeroFact=W_NumeroFact "R%10"
	
	ENR_FACTURAIDE<11>="0"
	
	WRITE ENR_FACTURAIDE ON F.FACTURAIDE,W_CleAide:W_CodAssoc:"P":W_CboAnneeMois:W_NumeroFact:"0"
	ENR_FACTURAIDE=""
	
RETURN

*********************************************************************
* Facturation des heures en attente du trimestre precedent
590
      ENR_FACTURAIDE=""

      iFactTri=1
      LOOP
      WHILE ENR_TEMPFACTURAIDE<1,iFactTri> # "" DO
         IF ENR_TEMPFACTURAIDE<1,iFactTri> < W_PeriodeDebTri THEN
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,1,-1;ENR_TEMPFACTURAIDE<1,iFactTri>)
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,2,-1;ENR_TEMPFACTURAIDE<2,iFactTri>)
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,3,-1;ENR_TEMPFACTURAIDE<3,iFactTri>)
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,4,-1;ENR_TEMPFACTURAIDE<4,iFactTri>)
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,5,-1;ENR_TEMPFACTURAIDE<5,iFactTri>)
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,6,-1;ENR_TEMPFACTURAIDE<6,iFactTri>)
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,7,-1;ENR_TEMPFACTURAIDE<7,iFactTri>)
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,14,-1;ENR_TEMPFACTURAIDE<14,iFactTri>)
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,15,-1;ENR_TEMPFACTURAIDE<15,iFactTri>)
			* modif vanes 17/11/08
            ENR_FACTURAIDE=REPLACE(ENR_FACTURAIDE,16,-1;ENR_TEMPFACTURAIDE<16,iFactTri>)
			****
			
            ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,1,iFactTri)
            ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,2,iFactTri)
            ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,3,iFactTri)
            ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,4,iFactTri)
            ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,5,iFactTri)
            ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,6,iFactTri)
            ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,7,iFactTri)
            ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,14,iFactTri)
            ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,15,iFactTri)
			* modif vanes 17/11/08
            ENR_TEMPFACTURAIDE=DELETE(ENR_TEMPFACTURAIDE,16,iFactTri)
			*****
            iFactTri=iFactTri-1
         END
            iFactTri=iFactTri+1
      REPEAT

      * Valeur de la TVA
      * Modif Guillaume DA12006 15/02/2012 - Taux de TVA gr en MV.
      *      ENR_FACTURAIDE<8>=ENR_TEMPFACTURAIDE<8>

      * Liste des aidants
      ENR_FACTURAIDE<10>=ENR_TEMPFACTURAIDE<10>

      ENR_FACTURAIDE<11>="0"

      * Mise a jour de FACTURAIDE avec COMPLFACT
      GOSUB 540

      * Incremente le N de facture
      W_NumeroFact=W_NumeroFact+1
      W_NumeroFact=W_NumeroFact "R%10"
      
  	  * Modif Guillaume DA12006 15/02/2012 : Les attributs 8 et 9 sont maintenant grs en MV en fonction des lignes de la
	  *                                      facture et de leurs taux applicables respectifs.                       
      GOSUB 820
      * Fin modif Guillaume DA12006 15/02/2012
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *   
* 		iMontTva=1
* 		W_MontTva=0
* 		LOOP
* 		WHILE ENR_FACTURAIDE<5,iMontTva> # "" DO
* 	 		* modif vanes 17/11/08
* 			IF ENR_FACTURAIDE<16,iMontTva> = "O" THEN
* 				W_MontTva=W_MontTva+ENR_FACTURAIDE<5,iMontTva>
* 			END
* 			*****
* 			iMontTva=iMontTva+1
* 		REPEAT
* 		ENR_FACTURAIDE<9>=INT(W_MontTva*ENR_FACTURAIDE<8>/10000+1/2)
* 		*Modif mika
* 		*W_Avoir=W_MontTva-ENR_FACTURAIDE<9>
* 		W_Avoir=W_MontTva+ENR_FACTURAIDE<9>

      WRITE ENR_FACTURAIDE ON F.FACTURAIDE,W_CleAide:W_CodAssoc:"P":W_CboAnneeMois:W_NumeroFact:"0"
      ENR_FACTURAIDE=""

      IF W_Avoir < 0 THEN
         * Mise a jour de COMPLFACT avec DES AVOIRS
         GOSUB 550
      END

RETURN

*********************************************************************
* Selection des factures trimestrielles des aides supprimes
600
   ENR_FACTURAIDE=""
   W_Fini="FAUX"

   W_TempTrim='SSELECT FACTURAIDETRIM AVEC @ID = "':W_CodeAide:']" AND AVEC AideSuppFactTrim # "" AND AVEC @ID = "[':W_CodAssoc:'P"'
   IF W_CodeSectResp # "VIDE" THEN
      IF W_RespSect="R" THEN
         W_TempTrim=W_TempTrim:' AND AVEC CodeRespTrim = "':W_CodeSectResp:'"'
      END ELSE
         W_TempTrim=W_TempTrim:' AND AVEC CodeSectTrim = "':W_CodeSectResp:'"'
      END
   END
   IF W_Tri = "R" THEN
      W_TempTrim=W_TempTrim:' PAR RespTrim'
   END ELSE
      W_TempTrim=W_TempTrim:' PAR SectTrim'
   END
   W_TempTrim=W_TempTrim:' PAR NomAideFactTrim PAR PrenomAideFactTrim PAR @ID'
   EXECUTE W_TempTrim

   LOOP
      READNEXT W_CleFactTrim ELSE W_Fini="VRAI"
   WHILE W_Fini="FAUX" DO

      READ ENR_FACTURAIDETRIM FROM F.FACTURAIDETRIM,W_CleFactTrim THEN

         W_CleAide=W_CleFactTrim[1,5]

         ENR_FACTURAIDE=ENR_FACTURAIDETRIM

         * Mise a jour de FACTURAIDE avec COMPLFACT
         GOSUB 540

         * Incremente le N de facture
         W_NumeroFact=W_NumeroFact+1
         W_NumeroFact=W_NumeroFact "R%10"
        
  	  * Modif Guillaume DA12006 15/02/2012 : Les attributs 8 et 9 sont maintenant grs en MV en fonction des lignes de la
	  *                                      facture et de leurs taux applicables respectifs.                       
        GOSUB 820
      * Fin modif Guillaume DA12006 15/02/2012
       * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *   
*          iMontTva=1
*          W_MontTva=0
*          LOOP
*          WHILE ENR_FACTURAIDE<5,iMontTva> # "" DO
* 			* modif vanes 17/11/08
* 			IF ENR_FACTURAIDE<16,iMontTva> = "O" THEN		 
* 				W_MontTva=W_MontTva+ENR_FACTURAIDE<5,iMontTva>
* 			END
* 			****
*             iMontTva=iMontTva+1
*          REPEAT
*          ENR_FACTURAIDE<9>=INT(W_MontTva*ENR_FACTURAIDE<8>/10000+1/2)
*          *Modif mika
* 		 *W_Avoir=W_MontTva-ENR_FACTURAIDE<9>
* 		 W_Avoir=W_MontTva+ENR_FACTURAIDE<9>
* 
*          ENR_FACTURAIDE<11>="0"

         WRITE ENR_FACTURAIDE ON F.FACTURAIDE,W_CleAide:W_CodAssoc:"P":W_CboAnneeMois:W_NumeroFact:"0"
         ENR_FACTURAIDE=""

         IF W_Avoir < 0 THEN
            * Mise a jour de COMPLFACT avec DES AVOIRS
            GOSUB 550
         END

         * Lecture et Maj ELTSFACTAIDE
         READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_CleAide ELSE ENR_ELTSFACTAIDE=""
         ENR_ELTSFACTAIDE=REPLACE(ENR_ELTSFACTAIDE,24,W_CodAssoc;W_CboAnneeMois)
         WRITE ENR_ELTSFACTAIDE ON F.ELTSFACTAIDE,W_CleAide
         ENR_ELTSFACTAIDE=""

         DELETE F.FACTURAIDETRIM,W_CleFactTrim
      END

   REPEAT

RETURN

*********************************************************************
* Selection des aides supprimes sur le mois
610

   ENR_FACTURAIDE=""
   W_Fini="FAUX"

   W_DateDebPeriode="01/":W_CboAnneeMois[5,2]:"/":W_CboAnneeMois[1,4]
   W_DateDebPeriode=ICONV(W_DateDebPeriode,"D4/")
   W_DateFinPeriode=W_DateDebPeriode+32
   W_DateFinPeriode=OCONV(W_DateFinPeriode,"D4/")
   W_DateFinPeriode="01/":W_DateFinPeriode[4,7]
   W_DateFinPeriode=ICONV(W_DateFinPeriode,"D4/")-1   

   W_TempAct='SSELECT ACTIVITESBISAIDE AVEC CodeAssocBisAide = "':W_CodAssoc:'" AND AVEC @ID = "':W_CodeAide:']" AND AVEC 1 >= "':W_DateDebPeriode:'" AND AVEC 1 <= "':W_DateFinPeriode:'" AND AVEC TypeActBisAide= "P"'
   IF W_CodeSectResp # "VIDE" THEN
      IF W_RespSect="R" THEN
         W_TempAct=W_TempAct:' AND AVEC CodeResponsableBisAide = "':W_CodeSectResp:'"'
      END ELSE
         W_TempAct=W_TempAct:' AND AVEC CodeSecteurBisAide = "':W_CodeSectResp:']"'
      END
   END

   EXECUTE W_TempAct

   LOOP
      READNEXT W_CleFactAct ELSE W_Fini="VRAI"
   WHILE W_Fini="FAUX" DO

      W_CleAide=W_CleFactAct[1,5]

      READ ENR_FACTURAIDETRIM FROM F.FACTURAIDETRIM,W_CleAide:W_CodAssoc:"P" THEN

         ENR_FACTURAIDE=ENR_FACTURAIDETRIM

         * Mise a jour de FACTURAIDE avec COMPLFACT
         GOSUB 540

         * Incremente le N de facture
         W_NumeroFact=W_NumeroFact+1
         W_NumeroFact=W_NumeroFact "R%10"
        
  	  * Modif Guillaume DA12006 15/02/2012 : Les attributs 8 et 9 sont maintenant grs en MV en fonction des lignes de la
	  *                                      facture et de leurs taux applicables respectifs.                       
        GOSUB 820
      * Fin modif Guillaume DA12006 15/02/2012
       * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *   
*          iMontTva=1
*          W_MontTva=0
*          LOOP
*          WHILE ENR_FACTURAIDE<5,iMontTva> # "" DO
* 			* modif vanes 17/11/08
* 			IF ENR_FACTURAIDE<16,iMontTva> = "O" THEN
* 				W_MontTva=W_MontTva+ENR_FACTURAIDE<5,iMontTva>
* 			END
* 			****
*             iMontTva=iMontTva+1
*          REPEAT
*          ENR_FACTURAIDE<9>=INT(W_MontTva*ENR_FACTURAIDE<8>/10000+1/2)
*          *Modif mika
* 		 *W_Avoir=W_MontTva-ENR_FACTURAIDE<9>
* 		 W_Avoir=W_MontTva+ENR_FACTURAIDE<9>
* 		 
*          ENR_FACTURAIDE<11>="0"
         WRITE ENR_FACTURAIDE ON F.FACTURAIDE,W_CleAide:W_CodAssoc:"P":W_CboAnneeMois:W_NumeroFact:"0"
         ENR_FACTURAIDE=""

         IF W_Avoir < 0 THEN
            * Mise a jour de COMPLFACT avec DES AVOIRS
            GOSUB 550
         END

         * Lecture et Maj ELTSFACTAIDE
         READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_CleAide ELSE ENR_ELTSFACTAIDE=""
         ENR_ELTSFACTAIDE=REPLACE(ENR_ELTSFACTAIDE,24,W_CodAssoc;W_CboAnneeMois)
         WRITE ENR_ELTSFACTAIDE ON F.ELTSFACTAIDE,W_CleAide
         ENR_ELTSFACTAIDE=""

         DELETE F.FACTURAIDETRIM,W_CleAide:W_CodAssoc:"P"
      END

   REPEAT

RETURN

*********************************************************************
* Recherche si la FedeAsso gere les factures aux aids
700
   W_PasDeFedeAssoc="FAUX"
   W_GereFactAide="FAUX"
   W_CodeSectFede=ENR_CIVILAIDE<40>
   W_CodeSectFede=W_CodeSectFede[1,3]

   EXECUTE 'SSELECT FEDEASSOC AVEC 41 = "':W_CodeSectFede:'"'
   EXECUTE "SAVELIST W_ReqFedeAssoc"
   EXECUTE "LISTE W_ReqFedeAssoc" RETURNING MSGCODE
   IF MSGCODE<1>=209 THEN
      W_PasDeFedeAssoc="VRAI"
   END ELSE
      SELECT F.FEDEASSOC TO W_ReqFedeAssoc
   END

   IF W_PasDeFedeAssoc="FAUX" THEN
      READNEXT W_CleFede FROM W_ReqFedeAssoc THEN
         READ ENR_FEDEASSOC FROM F.FEDEASSOC,W_CleFede ELSE PRINT "FEDEASSOC 1"
         IF ENR_FEDEASSOC<42,4> # 0 AND ENR_FEDEASSOC<42,4> # "" THEN
            W_GereFactAide="VRAI"
            IF ENR_FEDEASSOC<42,5>="" THEN
               ENR_FEDEASSOC<42,5>=0
            END
         END ELSE
            FacturAide5=0
         END
      END ELSE
         FacturAide5=0
      END
   END
RETURN

*********************************************************************
* Trie le tableau HRESATTENTE : replace les rubriques dim JF en 1er

800

   W_Count=DCOUNT(ENR_HRESATTENTE<1>,CHAR(253))
   FOR ICount=1 TO W_Count

      IF ENR_HRESATTENTE<2,ICount> # "" THEN
         W_Rub=ENR_HRESATTENTE<2,ICount>

         GOSUB 120
         IF W_ResRub=4 THEN
            GOSUB 810
         END
      END ELSE
         IF ENR_HRESATTENTE<5,ICount> # "" THEN
            W_CountSV=DCOUNT(ENR_HRESATTENTE<5,ICount>,CHAR(252))

            W_Dim="FAUX"
            FOR ICountSV=1 TO W_CountSV
               W_Rub=ENR_HRESATTENTE<6,ICount,ICountSV>
               GOSUB 120
               IF W_ResRub=4 THEN
                  W_Dim="VRAI"
                  EXIT
               END
            NEXT ICountSV

            IF W_Dim="VRAI" THEN
               GOSUB 810
            END
         END
      END
   NEXT ICount

RETURN

*********************************************************************
* insert MV

810

   ENR_HRESATTENTE=INSERT(ENR_HRESATTENTE,1,1;ENR_HRESATTENTE<1,ICount>)
   ENR_HRESATTENTE=INSERT(ENR_HRESATTENTE,2,1;ENR_HRESATTENTE<2,ICount>)
   ENR_HRESATTENTE=INSERT(ENR_HRESATTENTE,3,1;ENR_HRESATTENTE<3,ICount>)
   ENR_HRESATTENTE=INSERT(ENR_HRESATTENTE,4,1;ENR_HRESATTENTE<4,ICount>)
   ENR_HRESATTENTE=INSERT(ENR_HRESATTENTE,5,1;ENR_HRESATTENTE<5,ICount>)
   ENR_HRESATTENTE=INSERT(ENR_HRESATTENTE,6,1;ENR_HRESATTENTE<6,ICount>)
   ENR_HRESATTENTE=INSERT(ENR_HRESATTENTE,7,1;ENR_HRESATTENTE<7,ICount>)
   ENR_HRESATTENTE=INSERT(ENR_HRESATTENTE,8,1;ENR_HRESATTENTE<8,ICount>)

   ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,1,ICount+1)
   ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,2,ICount+1)
   ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,3,ICount+1)
   ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,4,ICount+1)
   ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,5,ICount+1)
   ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,6,ICount+1)
   ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,7,ICount+1)
   ENR_HRESATTENTE=DELETE(ENR_HRESATTENTE,8,ICount+1)

RETURN

*********************************************************************
* Gestion TVA + Cumul de l'avoir

820

	* MODIF VANESSA 23/07/2012
	W_Avoir=0
    W_MontTva=0
    W_MontFact5=0
    iTauxTVA = 1
    LOOP
    WHILE ENR_TAUXTVA<2,iTauxTVA> # ""
        iMontTva=1
        W_MontTva=0
        LOOP
        WHILE ENR_FACTURAIDE<5,iMontTva> # "" DO
        *                     IF ENR_FACTURAIDE<16,iMontTva> = "O" THEN
            IF ENR_FACTURAIDE<16,iMontTva> = ENR_TAUXTVA<2,iTauxTVA> THEN
               W_MontTva=W_MontTva+ENR_FACTURAIDE<5,iMontTva>
            END
            
            iMontTva=iMontTva+1
        REPEAT
       
        W_Avoir = W_Avoir + W_MontTva
        
        IF W_MontTva # 0 THEN
            iFactTVA = 0
            bTrouveTx = 0
            
            FOR iFactTVA = 1 TO DCOUNT(ENR_FACTURAIDE<8>, CHAR(253))
                IF ENR_FACTURAIDE<8,iFactTVA> = ENR_TAUXTVA<4,iTauxTVA> THEN
                    bTrouveTx = 1
                    EXIT
                END
            NEXT iFactTVA
            IF ENR_TAUXTVA<4,iTauxTVA> # "0" THEN
                IF bTrouveTx = 1 THEN
                    ENR_FACTURAIDE<8,iFactTVA> = ENR_TAUXTVA<4,iTauxTVA>
                    ENR_FACTURAIDE<9,iFactTVA> = INT(W_MontTva * ENR_TAUXTVA<4,iTauxTVA> / 10000 + 1/2)
                END ELSE
                    ENR_FACTURAIDE<8,-1> = ENR_TAUXTVA<4,iTauxTVA>
                    ENR_FACTURAIDE<9,-1> = INT(W_MontTva * ENR_TAUXTVA<4,iTauxTVA> / 10000 + 1/2)
                END
            END
            
            W_Avoir = W_Avoir + INT(W_MontTva * ENR_TAUXTVA<4,iTauxTVA> / 10000 + 1/2)
            ENR_FACTURAIDE<11>="0"
        END
        
        iTauxTVA = iTauxTVA + 1
       
    REPEAT
RETURN

*********************************************************************
* TABLEAU SECTEUR / FEDEASSOC
900

   W_PasDeFedeAssoc="FAUX"
   W_TabFedeAssoc=""
   iFede=1
   W_End="FAUX"

   EXECUTE 'SSELECT FEDEASSOC PAR 41'
   EXECUTE "SAVELIST W_ReqFede"
   EXECUTE "LISTE W_ReqFede" RETURNING MSGCODE
   IF MSGCODE<1>=209 THEN
      W_PasDeFedeAssoc="VRAI"
   END ELSE
      SELECT F.FEDEASSOC TO W_ReqFede
   END

   IF W_PasDeFedeAssoc="FAUX" THEN

   	LOOP
      		READNEXT W_CleFede FROM W_ReqFede ELSE W_End="VRAI"
   	WHILE W_End="FAUX" DO

         	READ ENR_FEDEASSOC FROM F.FEDEASSOC,W_CleFede ELSE PRINT "FEDEASSOC 2"
 		W_CountFede=DCOUNT(ENR_FEDEASSOC<41>,CHAR(253))
	 	FOR iCount=1 TO W_CountFede
	 		W_TabFedeAssoc<iFede,1>=ENR_FEDEASSOC<41,iCount>
	 		W_TabFedeAssoc<iFede,2>=W_CleFede
			iFede=iFede+1
	 	NEXT iCount
	REPEAT
   END ELSE
   	W_TabFedeAssoc=""
   END

RETURN
*********************************************************************
* Gnration des priodes manquantes dans les historiques des accords des caisses avec report
* Modif Greg - 08/02/12 - Cration de la procdure
*********************************************************************
1000

	IF ENR_ORGPRISECHARGE<19>="1" THEN
		iAccord=0
		W_PerPrec=W_Periode1000-1
		IF W_PerPrec[5,2]="00" THEN
			W_PerPrec=W_PerPrec[1,4]-1:"12"
		END
		W_1erDebPrec=ICONV("01/":W_PerPrec[5,2]:"/":W_PerPrec[1,4],"D4/")
		
		IF ENR_ACCORD<5><=W_1erDebPrec THEN
			IF ENR_ACCORD<14,1><>W_PerPrec THEN
				W_ValReport=ENR_ACCORD<17,1>
				IF ENR_ACCORD<14,1>="" THEN
					W_PerDepart=OCONV(ENR_ACCORD<5>,"D4/")
					W_PerDepart=W_PerDepart[7,4]:W_PerDepart[4,2]
				END ELSE
					W_PerDepart=ENR_ACCORD<14,1>+1
					IF W_PerDepart[5,2]="13" THEN W_PerDepart=W_PerDepart[1,4]+1:"01"
				END

				FOR iAccord=W_PerDepart TO W_PerPrec
					IF iAccord[5,2]="13" THEN iAccord=iAccord[1,4]+1:"01"
					
					ENR_ACCORD=INSERT(ENR_ACCORD,14,1;iAccord)
					ENR_ACCORD=INSERT(ENR_ACCORD,15,1;"0")
					ENR_ACCORD=INSERT(ENR_ACCORD,16,1;"0")
					ENR_ACCORD=INSERT(ENR_ACCORD,17,1;W_ValReport+ENR_ACCORD<9>)
					W_ValReport=W_ValReport+ENR_ACCORD<9>
				NEXT iAccord
				WRITE ENR_ACCORD ON F.ACCORD, W_CleAcc
			END
		END
	END

RETURN
