**********************************************************
*  Edition des attestations fiscales
*  Programme chaine  partir d'un projet VB
*  Vanessa
*  novembre 2000
*
*  STEPHANE
*  - OCTOBRE 2001
*  => INTEGRATION FICHIER ARCHIVE AFIN DE GERER ATTESTFISCALE SUR N-1
**********************************************************

* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE PRINT "OUVERTURE ACTIVITES" ;* en lecture
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE PRINT "OUVERTURE ACTIVITESAIDE" ;* en lecture
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE PRINT "OUVERTURE ASSOCIATION" ;* en lecture
OPEN "","ATTESTFISCTEMPO" TO F.ATTESTFISCTEMPO ELSE PRINT "OUVERTURE ATTESTFISCTEMPO" ;* en lecture criture
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "OUVERTURE CIVILAIDANT" ;* en lecture
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "OUVERTURE CIVILAIDE" ;* en lecture
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE PRINT "OUVERTURE COMPTEUR" ;* en lecture
OPEN "","CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE PRINT "OUVERTURE CONSTANTESPAIE" ;* en lecture
OPEN "","CONTRAT" TO F.CONTRAT ELSE PRINT "OUVERTURE CONTRAT" ;* en lecture
OPEN "","CONTRATSPREV" TO F.CONTRATSPREV ELSE PRINT "OUVERTURE CONTRATSPREV" ;* en lecture
OPEN "","COTISANAIDE" TO F.COTISANAIDE ELSE PRINT "OUVERTURE COTISANAIDE" ;* en lecture
OPEN "","DETAILCHGPARTEMP" TO F.DETAILCHGPARTEMP ELSE PRINT "OUVERTURE DETAILCHGPARTEMP" ;* en lecture
OPEN "","ELTSPARTEMP" TO F.ELTSPARTEMP ELSE PRINT "OUVERTURE ELTSPARTEMP" ;* en lecture
OPEN "","FACTURAIDE" TO F.FACTURAIDE ELSE PRINT "OUVERTURE FACTURAIDE" ;* en lecture
OPEN "","FEDEASSOC" TO F.FEDEASSOC ELSE PRINT "OUVERTURE FEDEASSOC" ;* en lecture
OPEN "","HISTORCUMUL" TO F.HISTORCUMUL ELSE PRINT "OUVERTURE HISTORCUMUL" ;* en lecture
OPEN "","HRESHISTOR" TO F.HRESHISTOR ELSE PRINT "OUVERTURE HRESHISTOR" ;* en lecture
OPEN "","JOURNAL" TO F.JOURNAL ELSE PRINT "OUVERTURE JOURNAL" ;* en lecture
OPEN "","PARAMENTITECOMPTA" TO F.PARAMENTITECOMPTA ELSE PRINT "OUVERTURE PARAMENTITECOMPTA" ;* en lecture
OPEN "","SECTEUR" TO F.SECTEUR ELSE PRINT "OUVERTURE SECTEUR" ;* en lecture

*********************************************************
* initialisation des variables

ENR_ATTESTFISCTEMPO=""
W_Annee=""
W_Aidant=""
W_Activite=""
W_ActMand = ""
W_Aide=""
W_Euro=0
W_EuroCompta=0
W_EuroPaie=0
W_MontantFact=0
W_Mandat="FAUX"
W_Requete=""
W_RequeteAct=""
W_SommeChg=0
W_SommePrev=0
W_SauveAide=""
W_TabAct=""
W_Total=0
W_TotalCESU=0
*********************************************************
* Recuperation des arguments

PROCREAD ARGUMENTS ELSE STOP
W_Type=FIELD(ARGUMENTS,"|",2)
W_IndicMandat=FIELD(ARGUMENTS,"|",3)
W_Entite=FIELD(ARGUMENTS,"|",4)
W_Exer=FIELD(ARGUMENTS,"|",5)
IF W_Type="T" THEN
    W_Tri=FIELD(ARGUMENTS,"|",6)
    W_Select=FIELD(ARGUMENTS,"|",7)
    W_De=FIELD(ARGUMENTS,"|",8)
    W_A=FIELD(ARGUMENTS,"|",9)
    W_Service=FIELD(ARGUMENTS,"|",10)
    W_LettreEntete=FIELD(ARGUMENTS,"|",11)
END ELSE
    W_Select=FIELD(ARGUMENTS,"|",6)
    W_LettreEntete=FIELD(ARGUMENTS,"|",7)
    W_Service=0
END
W_GestMont = FIELD(ARGUMENTS,"|",12)
W_Matric = FIELD(ARGUMENTS,"|",13)

*********************************************************
* PROGRAMME PRINCIPAL

    EXECUTE 'VIDER-FICHIER ATTESTFISCTEMPO'

    READ ENR_COMPTEUR FROM F.COMPTEUR,"999" ELSE ENR_COMPTEUR=""
    
    	IF W_GestMont = "F" AND ENR_COMPTEUR<15> = "001" THEN
		ENR_COMPTEUR<15> = ""
	END

    IF W_Service # 0 THEN
        GOSUB 500
    END

    IF ENR_COMPTEUR<15> = "001" THEN

****************************************************
*     REQUETE QUI PART DE LA COMPTA
****************************************************

        IF W_Exer<>"N-" THEN                ;* ALGO NORMAL
              OPEN "","BALANCEAUX" TO F.BALANCEAUX ELSE PRINT "OUVERTURE BALANCEAUX" ;* en lecture
              OPEN "","DETAILECRITUREAUX" TO F.DETAILECRITUREAUX ELSE PRINT "OUVERTURE DETAILECRITUREAUX" ;* en lecture

              W_Temp='SSELECT BALANCEAUX AVEC EntiteBalAux = "':W_Entite:'"'
      	    W_Temp=W_Temp:' AND AVEC ExerciceBalanceAux = "':W_Exer:'"'

        END ELSE                                ;* ALGO ARCHIVE
		
    	    OPEN "","BALANCEAUXARCHIVE" TO F.BALANCEAUX ELSE PRINT "OUVERTURE BALANCEAUXARCHIVE" ;* en lecture
              OPEN "","DETAILECRITUREAUXARCHIVE" TO F.DETAILECRITUREAUX ELSE PRINT "OUVERTURE DETAILECRITUREAUXARCHIVE" ;* en lecture

              W_Temp='SSELECT BALANCEAUXARCHIVE AVEC EntiteBalAux = "':W_Entite:'"'
  	    W_Temp=W_Temp:' AND AVEC ExerciceBalanceAux = "N0"'
        END

        IF W_Type="T" THEN
            IF W_Select # "0" THEN
                IF W_Tri="S" OR W_Tri="R" THEN
                    IF W_Select # "" THEN
                        W_Count = LEN(W_Select)
	             IF W_Tri="S" THEN
                            W_Temp = W_Temp:' AND AVEC SecteurAideBalAuxBis = "':W_Select[1,3]:'"'
	             END ELSE
                            W_Temp = W_Temp:' AND AVEC RespAideBalAux = "':W_Select[1,3]:'"'
                        END
                        IF W_Count > 3 THEN
                            j=5
                            LOOP
                            UNTIL j >= W_Count DO
                                W_Temp = W_Temp:' OR = "':W_Select[j,3]:'"'
                                j = j + 4
                            REPEAT
                        END
                    END
                END ELSE
                    IF W_Tri="C" THEN
                        IF W_Select # "" THEN
 
                            l=1
                            LOOP 
                                W_Field=FIELD(W_Select,"/",l)
                            WHILE W_Field # "" DO
                                W_LibCommune<l>=W_Field
                                l=l+1
                            REPEAT

                            W_Count = DCOUNT(W_LibCommune,CHAR(254))
                            l=1
                            W_Temp = W_Temp:' AND AVEC CommuneAideBalAux = "':W_LibCommune<l>:'"'
                            FOR l=2 TO W_Count
                                W_Temp = W_Temp:' OR = "':W_LibCommune<l>:'"'
		      NEXT l
                        END  
                    END
                END
            END 
            IF W_De # "0" THEN
                W_Temp = W_Temp:' AND AVEC NomPrenomBalanceAux >= "':W_De:']"'
            END
            IF W_A # "0" THEN
                W_Temp = W_Temp:' AND AVEC NomPrenomBalanceAux <= "':W_A:']"'
            END
 
            IF W_Tri="S" THEN
                W_Temp=W_Temp:' PAR SecteurAideBalAuxBis'
            END ELSE
                IF W_Tri="R" THEN
                    W_Temp=W_Temp:' PAR RespAideBalAux'
                END ELSE
                    IF W_Tri="R" THEN
                        W_Temp=W_Temp:' PAR CommuneAideBalAux'
                    END 
                END
            END

        END ELSE
 
            l=1
            LOOP 
                W_Field=FIELD(W_Select,"/",l)
            WHILE W_Field # "" DO
                W_Aide<l>=W_Field
                l=l+1
            REPEAT

            W_Count = DCOUNT(W_Aide,CHAR(254))
            l=1
            W_Temp = W_Temp:' AND AVEC CodeAideBalAux = "':W_Aide<l>:'"'
            FOR l=2 TO W_Count
                W_Temp = W_Temp:' OR = "':W_Aide<l>:'"'
            NEXT l

        END

        W_Temp=W_Temp:' PAR NomPrenomBalanceAux'

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

        IF MSGCODE<1>=209 THEN
            STOP
        END ELSE

             SELECT F.BALANCEAUX TO W_Requete

            READ ENR_PARAMENTITECOMPTA FROM F.PARAMENTITECOMPTA,W_Entite ELSE ENR_PARAMENTITECOMPTA=""
            IF W_Exer = "N0" THEN                        ;* ALGO NORMAL
                W_DateDeb=ENR_PARAMENTITECOMPTA<1>
                W_DateFin=ENR_PARAMENTITECOMPTA<2>
            END ELSE
	     IF W_Exer = "N1" THEN                    ;* ALGO NORMAL
                    W_DateDeb=ENR_PARAMENTITECOMPTA<3>
                    W_DateFin=ENR_PARAMENTITECOMPTA<4>
	     END ELSE                                     ;* ALGO ARCHIVE
	         W_DateFin=ENR_PARAMENTITECOMPTA<1>-1
	         W_DateDeb=OCONV(W_DateFin,"D4/")
	         W_Mois=W_DateDeb[4,2]-11 "R%2"
	         W_DateDeb="01/":W_Mois:"/":W_DateDeb[7,4]
	         IF W_Mois<0 THEN 
		  W_Mois[4,2]=12-W_Mois
		  W_DateDeb[7,4]=W_DateDeb[7,4]-1
		  W_DateDeb="01/":W_Mois:"/":W_DateDeb[7,4]
	         END
	         W_DateDeb=ICONV(W_DateDeb,"D4/")
	     END
            END

            READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_Entite ELSE ENR_ASSOCIATION=""
            READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE,"1" ELSE ENR_CONSTANTESPAIE=""

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

                READ ENR_BALANCEAUX FROM F.BALANCEAUX,W_Cle ELSE ENR_BALANCEAUX=""
                W_CleAide=W_Cle[6,5]

                W_SauveAide=W_CleAide

                READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CleAide ELSE ENR_CIVILAIDE=""
                READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_CleAide ELSE ENR_ACTIVITESAIDE=""
                ENR_ATTESTFISCTEMPO=""

                GOSUB 600
             
                IF W_Imprime="VRAI" THEN

                    GOSUB 100
                    GOSUB 200

					IF W_Matric ="0" THEN
						ENR_ATTESTFISCTEMPO<W_Rang> = "Fait  ":ENR_ASSOCIATION<9>:", le ":OCONV(DATE(),"D4/")
					END ELSE
						ENR_ATTESTFISCTEMPO<W_Rang> = "Fait a ":ENR_ASSOCIATION<9>:", le ":OCONV(DATE(),"D4/")
					END
					W_Rang = W_Rang +1
					
					IF W_Matric = "0" THEN
						ENR_ATTESTFISCTEMPO<W_Rang> = "Signature et cachet de l'organisme agr"
					END ELSE
						ENR_ATTESTFISCTEMPO<W_Rang> = "Signature et cachet de l'organisme agree"
					END
					
                    IF W_Total > 0 THEN
                        WRITE ENR_ATTESTFISCTEMPO ON F.ATTESTFISCTEMPO,W_CleAide
                    END
                END
            REPEAT
        END

    END ELSE

****************************************************
*     REQUETE QUI PART DE LA FACTURATION
****************************************************

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

        W_Annee=OCONV(DATE(),"D4/")
        W_Annee=W_Annee[7,4]

        IF W_Exer = "N1" THEN
            W_DateDeb=ICONV("01/01/":W_Annee,"D4/")
            W_DateFin=ICONV("31/12/":W_Annee,"D4/")
        END ELSE
            W_DateDeb=ICONV("01/01/":W_Annee-1,"D4/")
            W_DateFin=ICONV("31/12/":W_Annee-1,"D4/")
        END

        W_PerDeb=OCONV(W_DateDeb,"D4/")
        W_PerDeb=W_PerDeb[7,4]:W_PerDeb[4,2]
        W_PerFin=OCONV(W_DateFin,"D4/")
        W_PerFin=W_PerFin[7,4]:W_PerFin[4,2]

        W_Temp='SSELECT FACTURAIDE AVEC CodeEntiteFact = "':W_Entite:'"'
        W_Temp=W_Temp:' AND AVEC PeriodeCleFactAide >= "':W_PerDeb:'"'
        W_Temp=W_Temp:' AND AVEC PeriodeCleFactAide <= "':W_PerFin:'"'

        IF W_Type="T" THEN

            IF W_Select # "0" THEN
                IF W_Tri="S" OR W_Tri="R" THEN
                    IF W_Select # "" THEN
                        W_Count = LEN(W_Select)
	             IF W_Tri="S" THEN
                            W_Temp = W_Temp:' AND AVEC CodeSecteurFact = "':W_Select[1,3]:'"'
	             END ELSE
                            W_Temp = W_Temp:' AND AVEC CodeRespFact = "':W_Select[1,3]:'"'
                        END
                        IF W_Count > 3 THEN
                            j=5
                            LOOP
                            UNTIL j >= W_Count DO
                                W_Temp = W_Temp:' OR = "':W_Select[j,3]:'"'
                                j = j + 4
                            REPEAT
                        END
                    END
                END ELSE
                    IF W_Tri="C" THEN
                        IF W_Select # "" THEN
 
                            l=1
                            LOOP 
                                W_Field=FIELD(W_Select,"/",l)
                            WHILE W_Field # "" DO
                                W_LibCommune<l>=W_Field
                                l=l+1
                            REPEAT

                            W_Count = DCOUNT(W_LibCommune,CHAR(254))
                            l=1
                            W_Temp = W_Temp:' AND AVEC LibComFactAide = "':W_LibCommune<l>:'"'
                            FOR l=2 TO W_Count
                                W_Temp = W_Temp:' OR = "':W_LibCommune<l>:'"'
		      NEXT l
                        END
                    END
                END
            END 
            IF W_De # "0" THEN
                W_Temp = W_Temp:' AND AVEC NomPrenomAideFact >= "':W_De:']"'
            END
            IF W_A # "0" THEN
                W_Temp = W_Temp:' AND AVEC NomPrenomAideFact <= "':W_A:']"'
            END
 
            IF W_Tri="S" THEN
                W_Temp=W_Temp:' PAR CodeSecteurFact'
            END ELSE
                IF W_Tri="R" THEN
                    W_Temp=W_Temp:' PAR CodeRespFact'
                END ELSE
                    IF W_Tri="R" THEN
                        W_Temp=W_Temp:' PAR LibComFactAide'
                    END 
                END
            END

        END ELSE

            l=1
            LOOP 
                W_Field=FIELD(W_Select,"/",l)
            WHILE W_Field # "" DO
                W_Aide<l>=W_Field
                l=l+1
            REPEAT

            W_Count = DCOUNT(W_Aide,CHAR(254))
            l=1
            W_Temp = W_Temp:' AND AVEC CodeAideFact = "':W_Aide<l>:'"'
            FOR l=2 TO W_Count
                W_Temp = W_Temp:' OR = "':W_Aide<l>:'"'
            NEXT l

        END

        W_Temp=W_Temp:' PAR NomPrenomAideFact PAR-DECR @ID'

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

        IF MSGCODE<1>=209 THEN
            STOP
        END ELSE
            SELECT F.FACTURAIDE TO W_Requete

            READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_Entite ELSE ENR_ASSOCIATION=""

            W_End="FAUX"
            W_SauveAide=""
            W_MontantFact=0
            W_SauveFact=""

            LOOP
                READNEXT W_Cle FROM W_Requete ELSE W_End = "VRAI"
            WHILE W_End = "FAUX" DO
                READ ENR_FACTURAIDE FROM F.FACTURAIDE,W_Cle ELSE ENR_FACTURAIDE=""
                W_CleAide=W_Cle[1,5]

                IF W_SauveAide="" THEN
                    W_SauveAide=W_CleAide
                END

                IF W_SauveFact # W_Cle[1,25] THEN

                    IF W_SauveAide # W_CleAide THEN
                        READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_SauveAide ELSE ENR_CIVILAIDE=""
                        READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_SauveAide ELSE ENR_ACTIVITESAIDE=""
                        ENR_ATTESTFISCTEMPO=""

                        GOSUB 600
              
                        IF W_Imprime="VRAI" THEN
                            GOSUB 100
                            GOSUB 200

							IF W_Matric = "0" THEN
								ENR_ATTESTFISCTEMPO<W_Rang> = "Fait  ":ENR_ASSOCIATION<9>:", le ":OCONV(DATE(),"D4/")
							END ELSE
								ENR_ATTESTFISCTEMPO<W_Rang> = "Fait a ":ENR_ASSOCIATION<9>:", le ":OCONV(DATE(),"D4/")
							END
                            W_Rang=W_Rang+1
							IF W_Matric = "0" THEN
								ENR_ATTESTFISCTEMPO<W_Rang> = "Signature et cachet de l'organisme agr"
							END ELSE
								ENR_ATTESTFISCTEMPO<W_Rang> = "Signature et cachet de l'organisme agree"
							END
                            IF W_MontantFact > 0 THEN
                                WRITE ENR_ATTESTFISCTEMPO ON F.ATTESTFISCTEMPO,W_SauveAide
                            END
                        END

                        W_SauveAide=W_CleAide
                        W_MontantFact=0

                        W_CountFact=DCOUNT(ENR_FACTURAIDE<5>,CHAR(253))
                        FOR i = 1 TO W_CountFact
                            W_MontantFact=W_MontantFact+ENR_FACTURAIDE<5,i>
                        NEXT i

                    END ELSE
  
                        W_CountFact=DCOUNT(ENR_FACTURAIDE<5>,CHAR(253))
                        FOR i = 1 TO W_CountFact
                            W_MontantFact=W_MontantFact+ENR_FACTURAIDE<5,i>
                        NEXT i
 
                    END

                    W_SauveFact = W_Cle[1,25]

                END

            REPEAT

            READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_SauveAide ELSE ENR_CIVILAIDE=""
            READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_SauveAide ELSE ENR_ACTIVITESAIDE=""
            ENR_ATTESTFISCTEMPO=""

            GOSUB 600
             
            IF W_Imprime="VRAI" THEN
                GOSUB 100
                GOSUB 200

				IF W_Matric = "0" THEN
					ENR_ATTESTFISCTEMPO<W_Rang> = "Fait  ":ENR_ASSOCIATION<9>:", le ":OCONV(DATE(),"D4/")
				END ELSE
					ENR_ATTESTFISCTEMPO<W_Rang> = "Fait a ":ENR_ASSOCIATION<9>:", le ":OCONV(DATE(),"D4/")
				END
				W_Rang = W_Rang + 1
				IF W_Matric = "0" THEN
					ENR_ATTESTFISCTEMPO<W_Rang> = "Signature et cachet de l'organisme agr"
				END ELSE
					ENR_ATTESTFISCTEMPO<W_Rang> = "Signature et cachet de l'organisme agree"
				END
				
                IF W_MontantFact > 0 THEN
                    WRITE ENR_ATTESTFISCTEMPO ON F.ATTESTFISCTEMPO,W_SauveAide
                END
            END
        END

    END


STOP

********************************************************************************************
* Impression entete

100

	W_ReqFede=""
   EXECUTE 'SSELECT FEDEASSOC AVEC 41 = "':ENR_CIVILAIDE<40>[1,3]:'"'
   EXECUTE 'SAUVE-LISTE W_ReqFede'
   EXECUTE "LISTE W_ReqFede" RETURNING MSGCODE

   W_DecalageRib = 0
   IF MSGCODE<1>#209 THEN
		SELECT F.FEDEASSOC TO W_ReqFede
		READNEXT W_CleFede FROM W_ReqFede THEN
			READ ENR_FEDEASSOC FROM F.FEDEASSOC,W_CleFede THEN
				ENR_ASSOCIATION=ENR_FEDEASSOC
				W_DecalageRib = 1
			END
		END
   END ELSE
		ENR_FEDEASSOC=""
   END

   
    IF W_LettreEntete=0 THEN
        ENR_ATTESTFISCTEMPO<1,1> = ENR_ASSOCIATION<1> 
    END ELSE
        ENR_ATTESTFISCTEMPO<1,1> = ""
    END

    IF W_Matric = "0" THEN
		ENR_ATTESTFISCTEMPO<1,2> = "Organisme agr de services aux personnes"
	END ELSE
		ENR_ATTESTFISCTEMPO<1,2> = "Organisme agree de services aux personnes"
	END
     
    IF W_LettreEntete=0 THEN
        * adresse entite et agrment
        W_Adresse = ""
        IF ENR_ASSOCIATION<3> # "" THEN
            W_Adresse = ENR_ASSOCIATION<3>:" "
        END
        IF ENR_ASSOCIATION<4> # "" THEN
            W_Adresse = W_Adresse:ENR_ASSOCIATION<4>:" "
        END
        IF ENR_ASSOCIATION<5> # "" THEN
            W_Adresse = W_Adresse:ENR_ASSOCIATION<5>:" "
        END
        IF ENR_ASSOCIATION<6> # "" THEN
            W_Adresse = W_Adresse:ENR_ASSOCIATION<6>:" "
        END

        IF W_Adresse # "" THEN
            ENR_ATTESTFISCTEMPO<2,1>=W_Adresse 
        END ELSE
            IF ENR_ASSOCIATION<7> # "" THEN
                ENR_ATTESTFISCTEMPO<2,1>=ENR_ASSOCIATION<7>
            END
        END
    END ELSE
        ENR_ATTESTFISCTEMPO<2,1>=""
    END

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

    IF ENR_SECTEUR<17> # "" THEN
        W_CountEntite=DCOUNT(ENR_SECTEUR<17>,CHAR(253))
        W_Trouve="FAUX"
        FOR j = 1 TO W_CountEntite
            IF W_Entite = ENR_SECTEUR<17,j> THEN
                W_Trouve="VRAI"
                EXIT
            END
        NEXT j
        IF W_Trouve="VRAI" THEN
            ENR_ATTESTFISCTEMPO<2,2> = "Numro ":ENR_SECTEUR<19,j>:" en date du ":OCONV(ENR_SECTEUR<18,j>,"D4/")
        END ELSE
            IF ENR_SECTEUR<3> # "" THEN
                ENR_ATTESTFISCTEMPO<2,2> = "Numro ":ENR_SECTEUR<3>:" en date du ":OCONV(ENR_SECTEUR<4>,"D4/")
            END ELSE
				IF ENR_FEDEASSOC="" THEN
					*modification mikael le 02/08/07
					*ENR_ATTESTFISCTEMPO<2,2> = "Numro ":ENR_ASSOCIATION<23>:" en date du ":OCONV(ENR_ASSOCIATION<24>,"D4/")
					ENR_ATTESTFISCTEMPO<2,2> = "Numro ":ENR_ASSOCIATION<23>
				END ELSE
					*modification mikael le 02/08/07
            		*ENR_ATTESTFISCTEMPO<2,2> = "Numro ":ENR_FEDEASSOC<16>:" en date du ":OCONV(ENR_FEDEASSOC<17>,"D4/")
					ENR_ATTESTFISCTEMPO<2,2> = "Numro ":ENR_FEDEASSOC<16>
				END
            END  
        END
    END ELSE
        IF ENR_SECTEUR<3> # "" THEN
            ENR_ATTESTFISCTEMPO<2,2> = "Numro ":ENR_SECTEUR<3>:" en date du ":OCONV(ENR_SECTEUR<4>,"D4/")
        END ELSE
			IF ENR_FEDEASSOC="" THEN
				*modification mikael le 02/08/07
				*ENR_ATTESTFISCTEMPO<2,2> = "Numro ":ENR_ASSOCIATION<23>:" en date du ":OCONV(ENR_ASSOCIATION<24>,"D4/")
				ENR_ATTESTFISCTEMPO<2,2> = "Numro ":ENR_ASSOCIATION<23>
			END ELSE
				*modification mikael le 02/08/07
				*ENR_ATTESTFISCTEMPO<2,2> = "Numro ":ENR_FEDEASSOC<16>:" en date du ":OCONV(ENR_FEDEASSOC<17>,"D4/")
				ENR_ATTESTFISCTEMPO<2,2> = "Numro ":ENR_FEDEASSOC<16>
			END           
        END
    END

    IF W_LettreEntete=0 THEN
        IF ENR_ASSOCIATION<10> = "1" THEN
          ENR_ATTESTFISCTEMPO<3,1> =ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>:" Cedex ":ENR_ASSOCIATION<11>
        END ELSE
            ENR_ATTESTFISCTEMPO<3,1> =ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>
        END
	IF W_Adresse # "" AND TRIM(ENR_ASSOCIATION<7>) # "" THEN
		ENR_ATTESTFISCTEMPO<3,2> =ENR_ASSOCIATION<7>
    	END

    END ELSE
        ENR_ATTESTFISCTEMPO<3>=""
    END

    * tlphone + rfrence bancaire
    IF W_LettreEntete=0 THEN
        ENR_ATTESTFISCTEMPO<4,1>="Tel : ":ENR_ASSOCIATION<12>
    END ELSE
        ENR_ATTESTFISCTEMPO<4,1>=""
    END
	IF W_Matric = "0" THEN
	    ENR_ATTESTFISCTEMPO<4,2>="Rf. bancaire : "
	END ELSE
		ENR_ATTESTFISCTEMPO<4,2>="Ref. bancaire : "
	END
         
    W_SauveI=0

    IF W_Service = 0 THEN
        j = 1
        LOOP
        UNTIL ENR_ACTIVITESAIDE<1,j>="" DO

            IF ENR_ACTIVITESAIDE<2,j> # "" THEN
                IF INT(ENR_ACTIVITESAIDE<2,j>) <= INT(W_DateDeb) AND (INT(ENR_ACTIVITESAIDE<3,j>) >= INT(W_DateDeb) OR ENR_ACTIVITESAIDE<3,j> = "") THEN
                    W_SauveI = j
                    IF j # 1 THEN
                        IF INT(ENR_ACTIVITESAIDE<2,j>) < INT(ENR_ACTIVITESAIDE<2,j-1>) AND INT(ENR_ACTIVITESAIDE<2,j>) <= INT(W_DateDeb) AND (INT(ENR_ACTIVITESAIDE<3,j>) >= INT(W_DateDeb) OR ENR_ACTIVITESAIDE<3,j> = "") THEN
                            W_SauveI = j
                        END
                    END
                END
            END
            j = j + 1
        REPEAT
    END ELSE
        W_SauveI=W_ActServ
    END

    IF W_SauveI # 0 THEN
        READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ACTIVITESAIDE<1,W_SauveI> THEN


            IF ENR_ACTIVITES<5> # "" THEN
                ENR_ATTESTFISCTEMPO<4,2> = ENR_ATTESTFISCTEMPO<4,2>:ENR_ACTIVITES<5>:" ":ENR_ACTIVITES<6>:" ":ENR_ACTIVITES<7>:" ":ENR_ACTIVITES<8>
            END ELSE
                IF ENR_ASSOCIATION<17> # "" THEN
                    ENR_ATTESTFISCTEMPO<4,2> = ENR_ATTESTFISCTEMPO<4,2>:ENR_ASSOCIATION<17+W_DecalageRib>:" ":ENR_ASSOCIATION<18+W_DecalageRib>:" ":ENR_ASSOCIATION<19+W_DecalageRib>:" ":ENR_ASSOCIATION<20+W_DecalageRib>
                END
            END
        END ELSE
            IF ENR_ASSOCIATION<17> # "" THEN
                ENR_ATTESTFISCTEMPO<4,2> = ENR_ATTESTFISCTEMPO<4,2>:ENR_ASSOCIATION<17+W_DecalageRib>:" ":ENR_ASSOCIATION<18+W_DecalageRib>:" ":ENR_ASSOCIATION<19+W_DecalageRib>:" ":ENR_ASSOCIATION<20+W_DecalageRib>
            END
        END

    END ELSE
        IF ENR_ASSOCIATION<17> # "" THEN
            ENR_ATTESTFISCTEMPO<4,2> = ENR_ATTESTFISCTEMPO<4,2>:ENR_ASSOCIATION<17+W_DecalageRib>:" ":ENR_ASSOCIATION<18+W_DecalageRib>:" ":ENR_ASSOCIATION<19+W_DecalageRib>:" ":ENR_ASSOCIATION<20+W_DecalageRib>
        END
    END
     
    * fax
    IF W_LettreEntete=0 THEN
        ENR_ATTESTFISCTEMPO<5> = "Fax : ":ENR_ASSOCIATION<13>
    END ELSE
        ENR_ATTESTFISCTEMPO<5>=""
    END

    ENR_ATTESTFISCTEMPO<6> = "Code : ":W_SauveAide

    * coordonnes de l'aid
    ENR_ATTESTFISCTEMPO<7> = ENR_CIVILAIDE<1>:" ":ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
    W_Adresse = ""
    IF ENR_CIVILAIDE<5> # "" THEN
        W_Adresse = ENR_CIVILAIDE<5>:" "
    END
    IF ENR_CIVILAIDE<6> # "" THEN
        W_Adresse = W_Adresse:ENR_CIVILAIDE<6>:" "
    END
    IF ENR_CIVILAIDE<7> # "" THEN
        W_Adresse = W_Adresse:ENR_CIVILAIDE<7>:" "
    END
    IF ENR_CIVILAIDE<8> # "" THEN
        W_Adresse = W_Adresse:ENR_CIVILAIDE<8>:" "
    END
    IF W_Adresse # "" THEN
        ENR_ATTESTFISCTEMPO<8> = W_Adresse
    END
    W_Rang=9
    IF ENR_CIVILAIDE<9> # "" THEN
        ENR_ATTESTFISCTEMPO<W_Rang> = ENR_CIVILAIDE<9>
        W_Rang=W_Rang+1
    END

    ENR_ATTESTFISCTEMPO<W_Rang> = ENR_CIVILAIDE<10>:" ":ENR_CIVILAIDE<11>
    
    IF ENR_CIVILAIDE<12> = "1" THEN
        ENR_ATTESTFISCTEMPO<W_Rang> = ENR_ATTESTFISCTEMPO<W_Rang>:" Cedex ":ENR_CIVILAIDE<13>
    END
    W_Rang=W_Rang+1

    ENR_ATTESTFISCTEMPO<W_Rang> = "#1"
    W_Rang=W_Rang+1

    ENR_ATTESTFISCTEMPO<W_Rang> = "ATTESTATION FISCALE POUR L'ANNEE ":OCONV(W_DateDeb,"D4/")[7,4]
    W_Rang=W_Rang+1

RETURN

********************************************************************************************
* Impression dtail attest

200

	W_DateDebSauve=W_DateDeb
	W_DateFinSauve=W_DateFin
     
    ENR_ATTESTFISCTEMPO<W_Rang> = "Nature des prestations de services fournies :"
    W_Rang=W_Rang+1

	W_SurAnneeEncours="VRAI"
210	
    W_Activite=""
    W_Passe="FAUX"
    j = 1
    k = 1
    LOOP
    UNTIL ENR_ACTIVITESAIDE<1,j> = "" DO
        IF ENR_ACTIVITESAIDE<2,j> # "" THEN
            IF (INT(ENR_ACTIVITESAIDE<2,j>) <= INT(W_DateFin) AND INT(ENR_ACTIVITESAIDE<3,j>) >= INT(W_DateDeb)) OR (INT(ENR_ACTIVITESAIDE<2,j>) <= INT(W_DateFin) AND ENR_ACTIVITESAIDE<3,j> = "") THEN
                READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ACTIVITESAIDE<1,j> ELSE ENR_ACTIVITES=""
                W_Count=DCOUNT(W_Activite,CHAR(254))
                W_Passe="FAUX"
                FOR i = 1 TO W_Count
                    IF W_Activite<i,1>=ENR_ACTIVITES<1> THEN
                        W_Passe="VRAI"
                    END
                NEXT i
                IF W_Passe="FAUX" THEN
****''
	         IF ENR_ACTIVITESAIDE<1,j>[1,3]=W_Entite THEN
	                W_Activite<k,1> = ENR_ACTIVITES<1>
          	     W_Activite<k,2> = ENR_ACTIVITES<12>
	                k = k + 1
**                          ENR_ATTESTFISCTEMPO<W_Rang>= "- ":ENR_ACTIVITES<1>
**                          W_Rang=W_Rang+1
	         END
****''
                END
            END
        END
        j = j + 1
    REPEAT
    

    W_Count = DCOUNT(W_Activite,CHAR(254))
    IF W_Count > 3 THEN
        W_Count=3
    END ELSE
		IF W_Activite="" THEN
			* Si aucunes activits sur l'anne alors on va voir l'anne prcdente

			IF W_SurAnneeEncours="VRAI" THEN
				* ne faire qu'une fois sur l'anne prcdente
			
				W_DateDeb=OCONV(W_DateDeb,"D4/")
				W_DateDeb=W_DateDeb[1,6]:W_DateDeb[7,4]-1
				W_DateDeb=ICONV(W_DateDeb,"D4/")

				W_DateFin=OCONV(W_DateFin,"D4/")
				W_DateFin=W_DateFin[1,6]:W_DateFin[7,4]-1
				W_DateFin=ICONV(W_DateFin,"D4/")
				
				W_SurAnneeEncours="FAUX"
				
				GOTO 210
				
			END
			
		END
	END

    FOR j = 1 TO W_Count
        IF LEN(W_Activite<j,1>) <= 29 THEN
            ENR_ATTESTFISCTEMPO<W_Rang> = "- ":W_Activite<j,1>:SPACE(30-LEN(W_Activite<j,1>))
            IF W_Activite<j+3,1> # "" THEN
                ENR_ATTESTFISCTEMPO<W_Rang> = ENR_ATTESTFISCTEMPO<W_Rang>:"- ":W_Activite<j+3,1>
            END
        END ELSE
            ENR_ATTESTFISCTEMPO<W_Rang> = "- ":W_Activite<j,1>:" ":W_Activite<j,1>[1,29]:SPACE(1)
            IF W_Activite<j+3,1> # "" THEN
                ENR_ATTESTFISCTEMPO<W_Rang> = ENR_ATTESTFISCTEMPO<W_Rang>:"- ":W_Activite<j+3,1>
            END
        END
	  
	  IF TRIM(W_Activite<j,2>) = "M" THEN
		  W_ActMand = "VRAI"	  
	  END ELSE
		  W_ActMand = "FAUX"
	  END
        W_Rang=W_Rang+1
	  
    NEXT j

	* remet les bonnes dates de l'anne
	W_DateDeb=W_DateDebSauve
	W_DateFin=W_DateFinSauve
	
    ENR_ATTESTFISCTEMPO<W_Rang> = "#2"
    W_Rang=W_Rang+1

	IF W_Matric = "0" THEN
		ENR_ATTESTFISCTEMPO<W_Rang> = "Dure totale annuelle des interventions :"
	END ELSE
		ENR_ATTESTFISCTEMPO<W_Rang> = "Duree totale annuelle des interventions :"
	END
    W_Rang=W_Rang+1
    j = 1
    W_SauveDeb=""
    W_SauveFin=""
    LOOP
    UNTIL ENR_ACTIVITESAIDE<1,j> = "" DO
        IF ENR_ACTIVITESAIDE<2,j> # "" THEN
            IF (INT(ENR_ACTIVITESAIDE<2,j>) <= INT(W_DateFin) AND INT(ENR_ACTIVITESAIDE<3,j>) >= INT(W_DateDeb)) OR (INT(ENR_ACTIVITESAIDE<2,j>) <= INT(W_DateFin) AND ENR_ACTIVITESAIDE<3,j> = "") THEN
****''
                IF ENR_ACTIVITESAIDE<1,j>[1,3]=W_Entite THEN
****''
                    IF j = 1 OR (W_SauveDeb="") THEN
                        W_SauveDeb = ENR_ACTIVITESAIDE<2,j>
                        W_SauveFin = ENR_ACTIVITESAIDE<3,j>
                    END ELSE
                        IF W_SauveDeb = "" THEN
                            W_SauveDeb=ENR_ACTIVITESAIDE<2,j>
                        END
                        IF W_SauveDeb > ENR_ACTIVITESAIDE<2,j> THEN
                            W_SauveDeb = ENR_ACTIVITESAIDE<2,j>
                        END
                        IF W_SauveFin < ENR_ACTIVITESAIDE<3,j> AND W_SauveFin # "" AND ENR_ACTIVITESAIDE<3,j> # "" THEN
                            W_SauveFin = ENR_ACTIVITESAIDE<3,j>
                        END ELSE
  	                 IF ENR_ACTIVITESAIDE<3,j> = "" THEN
                                W_SauveFin = ""
        	                 END
                        END
                    END
****''
                END
****''
            END
        END
        j = j + 1
    REPEAT

    IF INT(W_SauveDeb) < INT(W_DateDeb) THEN
        W_SauveDeb = W_DateDeb
    END
    IF INT(W_SauveFin) > INT(W_DateFin) THEN
        W_SauveFin = W_DateFin
    END ELSE
        IF W_SauveFin = "" THEN
            W_SauveFin = W_DateFin
        END
    END

	IF W_SurAnneeEncours="VRAI" THEN
	    ENR_ATTESTFISCTEMPO<W_Rang> = "du ":OCONV(W_SauveDeb,"D4/"):" au ":OCONV(W_SauveFin,"D4/")
	    W_Rang=W_Rang+1
	END
		
    ENR_ATTESTFISCTEMPO<W_Rang> = "#3"
    W_Rang=W_Rang+1

	IF W_Matric = "0" THEN
	    ENR_ATTESTFISCTEMPO<W_Rang> = "Salaris intervenants :"
	END ELSE
		ENR_ATTESTFISCTEMPO<W_Rang> = "Salaries intervenants :"
	END
    W_Rang=W_Rang+1

    W_Aidant=""
    W_Mandat="FAUX"
    * si activit mandataire
    m = 1
    k = 1
    n = 1
    z = 1
    W_SommePrev=0
    W_Sauve=""
    W_SauvePrev=""

IF W_SurAnneeEncours="VRAI" THEN	
    LOOP
    UNTIL W_Activite<k,2> = ""  DO
        IF W_Activite<k,2> = "M" THEN
            W_Mandat="VRAI"
			
            EXECUTE 'SSELECT CONTRAT AVEC 1 = "02" AND AVEC 3 = "':W_SauveAide:'" AND AVEC 7 <= "':W_DateFin:'" AND AVEC 8 >= "':W_DateDeb:'" OR = "" AND AVEC 65 # "O" PAR NomPrenomAidantContrat'
            W_Fin="FAUX"
            LOOP 
                READNEXT W_CleContrat ELSE W_Fin="VRAI"
            WHILE W_Fin="FAUX" DO
                READ ENR_CONTRAT FROM F.CONTRAT,W_CleContrat ELSE ENR_CONTRAT=""


        	     IF W_IndicMandat=1 THEN

                    IF ENR_CONTRAT<29> # "" THEN
		      
          	  READ ENR_CONTRATSPREV FROM F.CONTRATSPREV,ENR_CONTRAT<29> ELSE ENR_CONTRATSPREV=""

                        W_Count=DCOUNT(ENR_CONTRATSPREV<35>,CHAR(253))
                        FOR n=1 TO W_Count

                            IF W_SauvePrev = "" THEN
                                W_SauvePrev<z> = ENR_CONTRATSPREV<35,n>
                                z = z + 1
                            END ELSE
                                l = 1
                                W_Passe = "FAUX"
                                LOOP
                                UNTIL W_SauvePrev<l> = "" DO
                                    IF W_SauvePrev<l> = ENR_CONTRATSPREV<35,n> THEN
                                        W_Passe = "VRAI"
                                    END
                                    l = l + 1
                                REPEAT
                                IF W_Passe = "FAUX" THEN
                                    W_SauvePrev<z> = ENR_CONTRATSPREV<35,n>
                                    z = z + 1
                                END
                            END
                        NEXT n

                      IF W_Sauve # "" AND W_Sauve # W_CleContrat[1,5] THEN

                            W_Code=W_Sauve:OCONV(W_DateDeb,"D4/")[7,4]:W_SauveAide
                            READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,W_Code THEN

                                W_Count=DCOUNT(W_SauvePrev,CHAR(254))
                                FOR n=1 TO W_Count
		              a=1
 		    	    LOOP
      			    UNTIL ENR_HISTORCUMUL<15,a> = W_SauvePrev<n> OR ENR_HISTORCUMUL<15,a> = "" DO
			        a=a+1
			    REPEAT
			    IF ENR_HISTORCUMUL<15,a> = W_SauvePrev<n> THEN
			        W_SommePrev=W_SommePrev-ENR_HISTORCUMUL<18,a>
			        W_SommePrev=W_SommePrev+ENR_HISTORCUMUL<19,a>
		 	    END
                                NEXT n
                            END
                            W_SauvePrev=""
                        END
		  W_Sauve = W_CleContrat[1,5]
                    END

                END

                IF W_Aidant = "" THEN
                    W_Aidant<m> = W_CleContrat[1,5]
                    m = m + 1
                END ELSE
                    l = 1
                    W_Passe = "FAUX"
                    LOOP
                    UNTIL W_Aidant<l> = "" DO
                        IF W_Aidant<l> = W_CleContrat[1,5] THEN
                            W_Passe = "VRAI"
                        END
                        l = l + 1
                    REPEAT
                    IF W_Passe = "FAUX" THEN
                        W_Aidant<m> = W_CleContrat[1,5]
                        m = m + 1
                    END
                END
            REPEAT

        END
        k = k + 1
    REPEAT
    
    W_Code=W_Sauve:OCONV(W_DateDeb,"D4/")[7,4]:W_SauveAide
    READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,W_Code THEN

        W_Count=DCOUNT(W_SauvePrev,CHAR(254))
        FOR n=1 TO W_Count
            a=1
            LOOP
            UNTIL ENR_HISTORCUMUL<15,a> = W_SauvePrev<n> OR ENR_HISTORCUMUL<15,a> = "" DO
                a=a+1
            REPEAT
            IF ENR_HISTORCUMUL<15,a> = W_SauvePrev<n> THEN
    	     W_SommePrev=W_SommePrev-ENR_HISTORCUMUL<18,a>
	     W_SommePrev=W_SommePrev+ENR_HISTORCUMUL<19,a>
            END
        NEXT n
    END


    * si activit prestataire
    k = 1
    LOOP
    UNTIL W_Activite<k,2> = "" DO
        IF W_Activite<k,2> = "P" THEN
            EXECUTE 'SSELECT HRESHISTOR AVEC 0 = "':W_SauveAide:']" AND AVEC EntiteHresHistor = "':W_Entite:'" AND AVEC PeriodeHresHistor >= "':OCONV(W_DateDeb,"D4/")[7,4]:OCONV(W_DateDeb,"D4/")[4,2]:'" AND AVEC PeriodeHresHistor <= "':OCONV(W_DateFin,"D4/")[7,4]:OCONV(W_DateFin,"D4/")[4,2]:'" PAR NomPrenomAidant'
            W_Fin="FAUX"
            LOOP 
                READNEXT W_CleHre ELSE W_Fin="VRAI"
            WHILE W_Fin="FAUX" DO
                READ ENR_HRESHISTOR FROM F.HRESHISTOR,W_CleHre ELSE ENR_HRESHISTOR=""
                IF W_Aidant = "" THEN
                    W_CountAidant = DCOUNT(ENR_HRESHISTOR<1>,CHAR(253))
                    FOR m = 1 TO W_CountAidant
                        W_Aidant<m> = ENR_HRESHISTOR<1,m>
                    NEXT m
                END ELSE
                    W_CountAidant = DCOUNT(ENR_HRESHISTOR<1>,CHAR(253))
                    FOR n = 1 TO W_CountAidant
                        l = 1
                        W_Passe = "FAUX"
                        LOOP
                        UNTIL W_Aidant<l> = "" DO
                            IF W_Aidant<l> = ENR_HRESHISTOR<1,n> THEN
                                W_Passe = "VRAI"
                            END
                            l = l + 1
                        REPEAT
                        IF W_Passe = "FAUX" THEN
                            W_Aidant<m> = ENR_HRESHISTOR<1,n>
                            m = m + 1
                        END
                    NEXT n
                END
            REPEAT
        END
        k = k + 1
    REPEAT
    

    * si activit intermdiaire
    k = 1
    LOOP
    UNTIL W_Activite<k,2> = "" DO
        IF W_Activite<k,2> = "I" THEN
            EXECUTE 'SSELECT FACTURAIDE AVEC 0 = "':W_SauveAide:W_Entite']" AND AVEC PeriodeCleFactAide >= "':OCONV(W_DateDeb,"D4/")[7,4]:OCONV(W_DateDeb,"D4/")[4,2]:'" AND AVEC PeriodeCleFactAide <= "':OCONV(W_DateFin,"D4/")[7,4]:OCONV(W_DateFin,"D4/")[4,2]:'"'

            W_Fin="FAUX"
            LOOP 
                READNEXT W_CleFact ELSE W_Fin="VRAI"
            WHILE W_Fin="FAUX" DO
                READ ENR_FACTURAIDE FROM F.FACTURAIDE,W_CleFact ELSE ENR_FACTURAIDE=""
                IF W_Aidant = "" THEN
                    W_CountAidant = DCOUNT(ENR_FACTURAIDE<10>,CHAR(253))
                    FOR m = 1 TO W_CountAidant
                        W_Aidant<m> = ENR_FACTURAIDE<10,m>
                    NEXT m
                END ELSE
                    W_CountAidant = DCOUNT(ENR_FACTURAIDE<10>,CHAR(253))
                    FOR n = 1 TO W_CountAidant
                        l = 1
                        W_Passe = "FAUX"
                        LOOP
                        UNTIL W_Aidant<l> = "" DO
                            IF W_Aidant<l> = ENR_FACTURAIDE<10,n> THEN
                                W_Passe = "VRAI"
                            END
                            l = l + 1
                        REPEAT
                        IF W_Passe = "FAUX" THEN
                            W_Aidant<m> = ENR_FACTURAIDE<10,n>
                            m = m + 1
                        END
                    NEXT n
                END
            REPEAT
        END
        k = k + 1
    REPEAT

    W_Count = DCOUNT(W_Aidant,CHAR(254))
    GOSUB 400

    IF W_Count > 10 THEN
        W_Count=10
    END

    FOR j = 1 TO W_Count
        READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_Aidant<j> ELSE ENR_CIVILAIDANT=""
        IF LEN(ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>) <= 24 THEN
            ENR_ATTESTFISCTEMPO<W_Rang> = "- ":W_Aidant<j>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>:SPACE(25-LEN(ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>))
            IF W_Aidant<j+1> # "" THEN
		j = j + 1
                READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_Aidant<j> ELSE ENR_CIVILAIDANT=""
                ENR_ATTESTFISCTEMPO<W_Rang> = ENR_ATTESTFISCTEMPO<W_Rang>:"- ":W_Aidant<j>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
            END
        END ELSE
            W_NomPrenom=ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
            ENR_ATTESTFISCTEMPO<W_Rang> = "- ":W_Aidant<j>:" ":W_NomPrenom[1,24]:SPACE(1)
            IF W_Aidant<j+1> # "" THEN
		j = j + 1
                READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_Aidant<j> ELSE ENR_CIVILAIDANT=""
                ENR_ATTESTFISCTEMPO<W_Rang> = ENR_ATTESTFISCTEMPO<W_Rang>:"- ":W_Aidant<j>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
            END

        END
        W_Rang=W_Rang+1
    NEXT j
END    
    ENR_ATTESTFISCTEMPO<W_Rang> = "#4"
    W_Rang=W_Rang+1 

	IF W_Matric = "0" THEN
		ENR_ATTESTFISCTEMPO<W_Rang> = "Montant des prestations acquittes  l'association :"
	END ELSE
		ENR_ATTESTFISCTEMPO<W_Rang> = "Montant des prestations acquittees a l'association :"
	END
	
    W_Rang=W_Rang+1    
  
    GOSUB 300
     

RETURN

********************************************************************************************
* Impression montant

300


    IF ENR_COMPTEUR<15> = "001" THEN
        W_Total = 0
		W_TotalCESU = 0
    
        W_Count = DCOUNT(ENR_BALANCEAUX<9>,CHAR(253))
        FOR j = 1 TO W_Count
	
            READ ENR_DETAILECRITUREAUX FROM F.DETAILECRITUREAUX,ENR_BALANCEAUX<9,j> ELSE ENR_DETAILECRITUREAUX="" 
            READ ENR_JOURNAL FROM F.JOURNAL,ENR_BALANCEAUX<9,j>[1,5] ELSE ENR_JOURNAL="" 
		
            IF ENR_JOURNAL<2>="T" THEN
	
				* Test si le journal est de type CESU
				IF ENR_JOURNAL<21> = "" OR ENR_JOURNAL<21> = "0" THEN
	                IF ENR_DETAILECRITUREAUX<6> # "" THEN
	                    W_Total = W_Total - ENR_DETAILECRITUREAUX<6>
	                END ELSE
	                    IF ENR_DETAILECRITUREAUX<7> # "" THEN
	                        W_Total = W_Total + ENR_DETAILECRITUREAUX<7>
	                    END
	                END
					
				END ELSE
	                IF ENR_DETAILECRITUREAUX<6> # "" THEN
	                    W_TotalCESU = W_TotalCESU - ENR_DETAILECRITUREAUX<6>
	                END ELSE
	                    IF ENR_DETAILECRITUREAUX<7> # "" THEN
	                        W_TotalCESU = W_TotalCESU + ENR_DETAILECRITUREAUX<7>
	                    END
	                END

				END
            END

        NEXT j
    END ELSE
        W_Total = W_MontantFact
    END

    IF W_Total # 0 THEN
        READ ENR_COTISANAIDE FROM F.COTISANAIDE,W_SauveAide:W_Entite THEN

            j = 1
            W_Cotis=0
            LOOP
            UNTIL ENR_COTISANAIDE<1,j> = "" DO
    	     IF ENR_COMPTEUR<15> = "001" THEN
                    IF (INT(OCONV(W_DateDeb,"D4/")[7,4])-1:"12" <= ENR_COTISANAIDE<1,j> AND OCONV(W_DateDeb,"D4/")[7,4]:"11" >= ENR_COTISANAIDE<1,j>) THEN                

                        IF (ENR_COTISANAIDE<1,j>="200112" AND ENR_CONSTANTESPAIE<9> = "12389") OR (ENR_COTISANAIDE<1,j>="200112" AND ENR_CONSTANTESPAIE<9> = "12420") THEN
                            W_Cotis = ENR_COTISANAIDE<2,j> / (ENR_CONSTANTESPAIE<7>/100000)
                            W_Cotis = INT(W_Cotis + (1/2))
                            W_Total = W_Total - W_Cotis
                        END ELSE
                            W_Total = W_Total - ENR_COTISANAIDE<2,j>
                        END
                    END
	     END ELSE
                    IF (INT(OCONV(W_DateDeb,"D4/")[7,4]):"01" <= ENR_COTISANAIDE<1,j> AND OCONV(W_DateDeb,"D4/")[7,4]:"12" >= ENR_COTISANAIDE<1,j>) THEN                
						
                        IF (ENR_COTISANAIDE<1,j>="200112" AND ENR_CONSTANTESPAIE<9> = "12389") OR (ENR_COTISANAIDE<1,j>="200112" AND ENR_CONSTANTESPAIE<9> = "12420") THEN
                            W_Cotis = ENR_COTISANAIDE<2,j> / (ENR_CONSTANTESPAIE<7>/100000)
                            W_Cotis = INT(W_Cotis + (1/2))
                            W_Total = W_Total - W_Cotis
                        END ELSE
                            W_Total = W_Total - ENR_COTISANAIDE<2,j>
                        END
                    END
  	     END
                j = j + 1
            REPEAT
        END ELSE
            ENR_COTISANAIDE=""
        END
    END
    
	IF ENR_FEDEASSOC<1> # "" THEN
		W_Total=""
		W_TotalCESU=""
	END
	
    ENR_ATTESTFISCTEMPO<W_Rang,1> = W_Total 
    ENR_ATTESTFISCTEMPO<W_Rang,2> = " Euros"
	IF W_Matric = "0" THEN
		ENR_ATTESTFISCTEMPO<W_Rang,4>= "par chque bancaire ou postal       :    "
	END ELSE
		ENR_ATTESTFISCTEMPO<W_Rang,4>= "par cheque bancaire ou postal       :    "
	END
    W_Rang=W_Rang+1 
	
	ENR_ATTESTFISCTEMPO<W_Rang> = "#5"
    W_Rang=W_Rang+1
	
	IF W_Matric = "0" THEN
		ENR_ATTESTFISCTEMPO<W_Rang> = "par chque emploi service universel :    ":W_TotalCESU "R26,(#9)" :" Euros"
	END ELSE
		ENR_ATTESTFISCTEMPO<W_Rang> = "par cheque emploi service universel :    ":W_TotalCESU "R26,(#9)" :" Euros"
	END
	W_Rang=W_Rang+1
	

    IF W_IndicMandat=1 THEN

        W_Count=DCOUNT(W_Aidant,CHAR(254))
        W_Cumul=0
        FOR j = 1 TO W_Count
            W_Code=W_Aidant<j>:OCONV(W_DateDeb,"D4/")[7,4]:W_SauveAide
            READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,W_Code THEN
                IF ENR_HISTORCUMUL<21> # "" THEN
                    W_Cumul=W_Cumul+(ENR_HISTORCUMUL<21>)
                END
            END
        NEXT j

        W_SommeChg=0
        READ ENR_ELTSPARTEMP FROM F.ELTSPARTEMP,W_SauveAide THEN
            IF ENR_ELTSPARTEMP<8> = "0" THEN
    	     FOR j = 1 TO 4
	         READ ENR_DETAILCHGPARTEMP FROM F.DETAILCHGPARTEMP,W_SauveAide:OCONV(W_DateDeb,"D4/")[7,4]:j THEN
 		  FOR a = 6 TO 13
		      W_SommeChg=W_SommeChg+(ENR_DETAILCHGPARTEMP<a>*100)
     		  NEXT a
                        
  	         END
 	     NEXT j

            END
            IF ENR_ELTSPARTEMP<7> # "0" THEN
                W_SommePrev=0
            END
        END

        IF W_Cumul # "" AND W_Cumul # 0 OR W_SommeChg # 0 OR W_SommePrev # 0 THEN
			
			IF W_Matric = "0" THEN
			    ENR_ATTESTFISCTEMPO<W_Rang> = "Pour information, les sommes suivantes ouvrent galement droit  une "
			END ELSE
				ENR_ATTESTFISCTEMPO<W_Rang> = "Pour information, les sommes suivantes ouvrent egalement droit a une "
			END
            W_Rang=W_Rang+1    
            
			IF W_Matric = "0" THEN
				ENR_ATTESTFISCTEMPO<W_Rang> = "rduction d'impts :"
			END ELSE
				ENR_ATTESTFISCTEMPO<W_Rang> = "reduction d'impots :"
			END
            W_Rang=W_Rang+1  

            IF W_Cumul # "" AND W_Cumul # 0 THEN
                ENR_ATTESTFISCTEMPO<W_Rang,1> = "         - salaires nets                      : "
                ENR_ATTESTFISCTEMPO<W_Rang,2> = INT(W_Cumul)
                ENR_ATTESTFISCTEMPO<W_Rang,3> = " Euros"
                W_Rang=W_Rang+1 
            END

            IF W_SommeChg # 0 THEN
				IF W_Matric = "0" THEN
					ENR_ATTESTFISCTEMPO<W_Rang,1> = "         - charges appeles par l'URSSAF      : "
				END ELSE
					ENR_ATTESTFISCTEMPO<W_Rang,1> = "         - charges appelees par l'URSSAF      : "
				END
				
                ENR_ATTESTFISCTEMPO<W_Rang,2> = INT(W_SommeChg)
                ENR_ATTESTFISCTEMPO<W_Rang,3> = " Euros"
                W_Rang=W_Rang+1 
            END

            IF ENR_ELTSPARTEMP<7> = "0" THEN
                IF W_SommePrev # 0 THEN
					IF W_Matric = "0" THEN
						ENR_ATTESTFISCTEMPO<W_Rang,1> = "         - charges prvoyance supplmentaire : "
					END ELSE
						ENR_ATTESTFISCTEMPO<W_Rang,1> = "         - charges prevoyance supplementaire : "
					END
                    ENR_ATTESTFISCTEMPO<W_Rang,2> = INT(W_SommePrev)
                    ENR_ATTESTFISCTEMPO<W_Rang,3> = " Euros"
                    W_Rang=W_Rang+1 
                END
            END ELSE
                W_SommePrev=0
            END

            ENR_ATTESTFISCTEMPO<W_Rang> = "#6"
            W_Rang=W_Rang+1

			IF W_Matric = "0" THEN
			    ENR_ATTESTFISCTEMPO<W_Rang> = "Le total des dpenses engages qui ouvrent droit  une rduction "
	            W_Rang=W_Rang+1    
	            ENR_ATTESTFISCTEMPO<W_Rang> = "d'impts est donc de :"
	            W_Rang=W_Rang+1 
			END ELSE
				ENR_ATTESTFISCTEMPO<W_Rang> = "Le total des depenses engagees qui ouvrent droit a une reduction "
	            W_Rang=W_Rang+1    
				ENR_ATTESTFISCTEMPO<W_Rang> = "d'impots est donc de :"
	            W_Rang=W_Rang+1    
			END
			
			W_TotalGene = 0
            W_TotalGene=INT(W_Cumul) + W_Total + INT(W_SommeChg) + INT(W_SommePrev)

            ENR_ATTESTFISCTEMPO<W_Rang,1> = W_TotalGene
            ENR_ATTESTFISCTEMPO<W_Rang,2> = " Euros"

            W_Rang=W_Rang+1 
        END
    END

    ENR_ATTESTFISCTEMPO<W_Rang> = "#7"
    W_Rang=W_Rang+1

	IF W_Matric = "0" THEN
	    ENR_ATTESTFISCTEMPO<W_Rang> = "Nous attirons votre attention sur le fait que :"
	    W_Rang=W_Rang+1
	    ENR_ATTESTFISCTEMPO<W_Rang> = " - les montants que vous avez ventuellement perus pour participer au"
	    W_Rang=W_Rang+1
	    ENR_ATTESTFISCTEMPO<W_Rang> = "   financement des prestations sont  dduire de la valeur ouvrant droit"
	    W_Rang=W_Rang+1
	    ENR_ATTESTFISCTEMPO<W_Rang> = "    l'impt"
	    W_Rang=W_Rang+1
	    ENR_ATTESTFISCTEMPO<W_Rang> = " - seule la partie finance par le bnficiaire du CESU ouvre droit  la"
	    W_Rang=W_Rang+1
	    ENR_ATTESTFISCTEMPO<W_Rang> = "   rduction d'impt (cf article L129-15 du Code du Travail)"
	    W_Rang=W_Rang+1
		
		
		**************Modif 10/01/07**************
		W_Count = DCOUNT(W_Activite,CHAR(254))
		IF W_Count > 2 THEN
			W_Count=2
		END

		FOR Z = 1 TO W_Count
			IF TRIM(W_Activite<Z,2>) = "M" THEN
				ENR_ATTESTFISCTEMPO<W_Rang> = " - Vous devez conserver  fin de contrle les factures et bulletins remis"
				W_Rang=W_Rang+1    
				ENR_ATTESTFISCTEMPO<W_Rang> = "   qui prcisent les dates et dures d'intervention."
				W_Rang=W_Rang+1
			END ELSE
				ENR_ATTESTFISCTEMPO<W_Rang> = " - Vous devez conserver  fin de contrle les factures remises qui"
				W_Rang=W_Rang+1    
				ENR_ATTESTFISCTEMPO<W_Rang> = "   prcisent les dates et dures d'intervention."
				W_Rang=W_Rang+1
			END
		NEXT Z
		
		*IF W_GestMont = "M" THEN
		*	ENR_ATTESTFISCTEMPO<W_Rang> = " - Vous devez conserver  fin de contrle les factures et bulletins remis"
		*	W_Rang=W_Rang+1    
		*	ENR_ATTESTFISCTEMPO<W_Rang> = "   qui prcisent les dates et dures d'intervention."
		*	W_Rang=W_Rang+1    
		*END ELSE
		*	ENR_ATTESTFISCTEMPO<W_Rang> = " - Vous devez conserver  fin de contrle les factures remises qui"
		*	W_Rang=W_Rang+1    
		*	ENR_ATTESTFISCTEMPO<W_Rang> = "   prcisent les dates et dures d'intervention."
		*	W_Rang=W_Rang+1
		*END
		*****************************************
		
		
	END ELSE
	    ENR_ATTESTFISCTEMPO<W_Rang> = "Nous attirons votre attention sur le fait que :"
	    W_Rang=W_Rang+1
	    ENR_ATTESTFISCTEMPO<W_Rang> = " - les montants que vous avez eventuellement percus pour participer au"
	    W_Rang=W_Rang+1
	    ENR_ATTESTFISCTEMPO<W_Rang> = "   financement des prestations sont a deduire de la valeur ouvrant droit"
	    W_Rang=W_Rang+1
	    ENR_ATTESTFISCTEMPO<W_Rang> = "   a l'impot"
	    W_Rang=W_Rang+1
	    ENR_ATTESTFISCTEMPO<W_Rang> = " - seule la partie financee par le beneficiaire du CESU ouvre droit a la"
	    W_Rang=W_Rang+1
	    ENR_ATTESTFISCTEMPO<W_Rang> = "   reduction d'impot (cf article L129-15 du Code du Travail)"
	    W_Rang=W_Rang+1
		
		************Modif du 10/01/07************
		
		W_Count = DCOUNT(W_Activite,CHAR(254))
		IF W_Count > 2 THEN
			W_Count=2
		END

		FOR Z = 1 TO W_Count
			IF TRIM(W_Activite<Z,2>) = "M" THEN
				ENR_ATTESTFISCTEMPO<W_Rang> = " - Vous devez conserver a fin de controle les factures et bulletins remis"
				W_Rang=W_Rang+1    
				ENR_ATTESTFISCTEMPO<W_Rang> = "   qui precisent les dates et durees d'intervention."
				W_Rang=W_Rang+1
			END ELSE
				ENR_ATTESTFISCTEMPO<W_Rang> = " - Vous devez conserver a fin de controle les factures remises qui"
				W_Rang=W_Rang+1    
				ENR_ATTESTFISCTEMPO<W_Rang> = "   precisent les dates et durees d'intervention."
				W_Rang=W_Rang+1
			END
		NEXT Z
		
		*IF W_GestMont = "M" THEN
		*	ENR_ATTESTFISCTEMPO<W_Rang> = " - Vous devez conserver a fin de controle les factures et bulletins remis"
		*	W_Rang=W_Rang+1    
		*	ENR_ATTESTFISCTEMPO<W_Rang> = "   qui precisent les dates et durees d'intervention."
		*	W_Rang=W_Rang+1    
		*END ELSE
		*	ENR_ATTESTFISCTEMPO<W_Rang> = " - Vous devez conserver a fin de controle les factures remises qui"
		*	W_Rang=W_Rang+1    
		*	ENR_ATTESTFISCTEMPO<W_Rang> = "   precisent les dates et durees d'intervention."
		*	W_Rang=W_Rang+1
		*END
		******************************************
	END

    ENR_ATTESTFISCTEMPO<W_Rang> = "#8"
    W_Rang=W_Rang+1


RETURN

********************************************************************************************
* Tri W_Aidant par ordre alpha

400

    FOR i = 1 TO W_Count
        READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_Aidant<i> ELSE ENR_CIVILAIDANT = ""
        W_Nom = ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
        j=i+1
        READ ENR_CIVILSUIV FROM F.CIVILAIDANT,W_Aidant<j> ELSE ENR_CIVILSUIV = ""
        W_NomSuiv = ENR_CIVILSUIV<2>:" ":ENR_CIVILSUIV<3>
        IF W_Nom > W_NomSuiv THEN
            IF i # W_Count THEN
                W_SauveAidant=W_Aidant<i>
                W_Aidant<i>=W_Aidant<j>
                W_Aidant<j>=W_SauveAidant
                GOSUB 400
            END
        END
    NEXT i

RETURN

********************************************************************************************
* Recherche les activits du service slectionn

500

    EXECUTE 'SSELECT ACTIVITES AVEC CodAssoActivite = "':W_Entite:'" AND AVEC 13 = "':W_Service:'"'
    EXECUTE 'SAUVE-LISTE W_TabAct'
    EXECUTE "LISTE W_TabAct" RETURNING MSGCODE

    IF MSGCODE<1>=209 THEN
        STOP
    END ELSE

        SELECT F.ACTIVITES TO W_TabAct

        W_End="FAUX"
        i=1
        LOOP
            READNEXT W_Cle FROM W_TabAct ELSE W_End = "VRAI"
        WHILE W_End = "FAUX" DO
*            READ ENR_ACTIVITES FROM F.ACTIVITES,W_Cle ELSE ENR_ACTIVITES=""
            W_RequeteAct<i>=W_Cle
            i=i+1
        REPEAT
    END

RETURN

********************************************************************************************
* Recherche l'activit en cours la + ancienne ou l'activit la + rcemment clture
* et teste si le service correspond  celui slectionn

600

    IF W_Service # 0 THEN
        W_CountAct=DCOUNT(ENR_ACTIVITESAIDE<1>,CHAR(253))
        W_SansDateFin="FAUX"
        W_ActServ = 1

        FOR j = 1 TO W_CountAct
            IF ENR_ACTIVITESAIDE<1,j>[1,3]=W_Entite THEN
                IF ENR_ACTIVITESAIDE<3,j> = "" OR ENR_ACTIVITESAIDE<3,j> > DATE() THEN
                    W_SansDateFin="VRAI"
                    IF ENR_ACTIVITESAIDE<2,j> <= ENR_ACTIVITESAIDE<2,W_ActServ> THEN
						W_ActServ = j
					END
                END
            END ELSE
				IF W_SansDateFin = "FAUX" THEN
					W_ActServ = W_ActServ + 1
				END
			END
        NEXT j

        IF W_SansDateFin="FAUX" THEN
            W_ImprimePas="VRAI"
            W_ActServ = 1
            FOR j = 1 TO W_CountAct
                IF ENR_ACTIVITESAIDE<1,j>[1,3] = W_Entite THEN
                    IF ENR_ACTIVITESAIDE<3,j> => ENR_ACTIVITESAIDE<3,W_ActServ> THEN
                        W_ImprimePas="FAUX" 
						W_ActServ = j
                    END
                END ELSE
					IF W_ImprimePas = "VRAI" THEN
						W_ActServ = W_ActServ + 1
					END
                END
            NEXT j
        END ELSE
            W_ImprimePas="FAUX"
        END
         
        W_CountAct=DCOUNT(W_RequeteAct,CHAR(254))
        W_Imprime="FAUX"
        FOR j = 1 TO W_CountAct
            IF ENR_ACTIVITESAIDE<1,W_ActServ> = W_RequeteAct<j> THEN
				W_Imprime="VRAI"
                EXIT
            END
        NEXT j

		READ ENR_ACTIVITES FROM F.ACTIVITES, ENR_ACTIVITESAIDE<1,W_ActServ> THEN	
			* Gestion service prestataire
			IF ENR_ACTIVITES<12>="P" THEN
				IF ENR_ACTIVITESAIDE<6>=W_Service AND W_Service#0 THEN
					W_Imprime="VRAI"
				END ELSE
					W_Imprime="FAUX"
				END
			END
		END

    END ELSE
        W_Imprime="VRAI"
    END

RETURN
