**********************************************************
*  Edition des attestations fiscales
*  Programme chaine  partir d'un projet VB
*  Vanessa
*  fvrier 2001
*  specif Vire 
**********************************************************

* 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 "","CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE PRINT "OUVERTURE CONSTANTESPAIE" ;* en lecture
OPEN "","CONTRAT" TO F.CONTRAT ELSE PRINT "OUVERTURE CONTRAT" ;* en lecture
OPEN "","CONVENTIONCOL" TO F.CONVENTIONCOL ELSE PRINT "OUVERTURE CONVENTIONCOL" ;* en lecture
OPEN "","COTISANAIDE" TO F.COTISANAIDE ELSE PRINT "OUVERTURE COTISANAIDE" ;* en lecture
OPEN "","FACTURAIDE" TO F.FACTURAIDE ELSE PRINT "OUVERTURE FACTURAIDE" ;* 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 "","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_Aidant=""
W_Activite=""
W_Aide=""
W_Mandat="FAUX"
W_Annee=""
*********************************************************
* Recuperation des arguments

PROCREAD ARGUMENTS ELSE STOP
W_Type=FIELD(ARGUMENTS," ",2)
W_Entite=FIELD(ARGUMENTS," ",3)
W_Exer=FIELD(ARGUMENTS," ",4)
IF W_Type="T" THEN
   W_Tri=FIELD(ARGUMENTS," ",5)
   W_Select=FIELD(ARGUMENTS," ",6)
   W_De=FIELD(ARGUMENTS," ",7)
   W_A=FIELD(ARGUMENTS," ",8)
END ELSE
   W_Select=FIELD(ARGUMENTS," ",5)
END
*********************************************************
* PROGRAMME PRINCIPAL

   EXECUTE 'VIDER-FICHIER ATTESTFISCTEMPO'

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

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

*   READ ENR_PARAMENTITECOMPTA FROM F.PARAMENTITECOMPTA,W_Entite ELSE ENR_PARAMENTITECOMPTA=""
   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'

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

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

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

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

      LOOP
         READNEXT W_Cle FROM W_RequeteFacture 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_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 100
            GOSUB 200

            ENR_ATTESTFISCTEMPO<W_Rang> = "Fait  ":ENR_ASSOCIATION<9>:", le ":OCONV(DATE(),"D4/")
            W_Rang=W_Rang+1
            ENR_ATTESTFISCTEMPO<W_Rang> = "Signature et cachet"
     
            IF W_MontantFact > 0 THEN
               WRITE ENR_ATTESTFISCTEMPO ON F.ATTESTFISCTEMPO,W_CleAide
            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

      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 100
      GOSUB 200

      ENR_ATTESTFISCTEMPO<W_Rang> = "Fait  ":ENR_ASSOCIATION<9>:", le ":OCONV(DATE(),"D4/")
      W_Rang=W_Rang+1
      ENR_ATTESTFISCTEMPO<W_Rang> = "Signature et cachet"
     
      IF W_MontantFact > 0 THEN
         WRITE ENR_ATTESTFISCTEMPO ON F.ATTESTFISCTEMPO,W_CleAide
      END
   END

STOP

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

100

   ENR_ATTESTFISCTEMPO<1,1> = ENR_ASSOCIATION<1>  
   ENR_ATTESTFISCTEMPO<1,2> = "Organisme agr de services aux personnes"
    
   * 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

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

   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
   IF ENR_SECTEUR<3> # "" THEN
	  *Modification mikael le 2/08/07 DA7024
      *ENR_ATTESTFISCTEMPO<2,2> = "Numro ":ENR_SECTEUR<3>:" en date du ":OCONV(ENR_SECTEUR<4>,"D4/")
	  ENR_ATTESTFISCTEMPO<2,2> = "Numro ":ENR_SECTEUR<3>
   END ELSE
	  *Modification mikael le 2/08/07 DA7024
      *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

   IF ENR_ASSOCIATION<10> = "1" THEN
      ENR_ATTESTFISCTEMPO<3> =ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>:" Cedex ":ENR_ASSOCIATION<11>
   END ELSE
      ENR_ATTESTFISCTEMPO<3> =ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>
   END
    
   * tlphone + rfrence bancaire
   ENR_ATTESTFISCTEMPO<4,1>="Tel : ":ENR_ASSOCIATION<12>
   ENR_ATTESTFISCTEMPO<4,2>="Rf. bancaire : "
    
   j = 1
   W_SauveI=0
   LOOP
   UNTIL ENR_ACTIVITESAIDE<2,j>="" DO

      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
      j = j + 1
   REPEAT

   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>:" ":ENR_ASSOCIATION<18>:" ":ENR_ASSOCIATION<19>:" ":ENR_ASSOCIATION<20>
            END
         END
      END ELSE
         IF ENR_ASSOCIATION<17> # "" THEN
            ENR_ATTESTFISCTEMPO<4,2> = ENR_ATTESTFISCTEMPO<4,2>:ENR_ASSOCIATION<17>:" ":ENR_ASSOCIATION<18>:" ":ENR_ASSOCIATION<19>:" ":ENR_ASSOCIATION<20>
         END
      END

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

   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
    
   ENR_ATTESTFISCTEMPO<W_Rang> = "Nature des prestations de services fournies :"
   W_Rang=W_Rang+1


   W_Activite=""
   W_Passe="FAUX"
   j = 1
   k = 1
   LOOP

   UNTIL ENR_ACTIVITESAIDE<2,j> = "" DO
      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
      j = j + 1
   REPEAT
   
   ENR_ATTESTFISCTEMPO<W_Rang> = "#2"
   W_Rang=W_Rang+1

   ENR_ATTESTFISCTEMPO<W_Rang> = "Dure totale annuelle des interventions :"
   W_Rang=W_Rang+1
   j = 1
   W_SauveDeb=""
   W_SauveFin=""
   LOOP
   UNTIL ENR_ACTIVITESAIDE<2,j> = "" DO

      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
      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

   ENR_ATTESTFISCTEMPO<W_Rang> = "du ":OCONV(W_SauveDeb,"D4/"):" au ":OCONV(W_SauveFin,"D4/")
   W_Rang=W_Rang+1

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


   ENR_ATTESTFISCTEMPO<W_Rang> = "Salaris intervenants :"
   W_Rang=W_Rang+1

   W_Aidant=""
   W_Mandat="FAUX"
   * si activit mandataire
   m = 1
   k = 1
   LOOP
   UNTIL W_Activite<k,2> = "" DO
      IF W_Activite<k,2> = "M" THEN
         W_Mandat="VRAI"
         EXECUTE 'SSELECT CONTRAT 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_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
   
   * si activit prestataire
   k = 1
   LOOP
   UNTIL W_Activite<k,2> = ""
      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
   
   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+10> # "" THEN
            READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_Aidant<j+10> ELSE ENR_CIVILAIDANT=""
            ENR_ATTESTFISCTEMPO<W_Rang> = ENR_ATTESTFISCTEMPO<W_Rang>:"- ":W_Aidant<j+10>:" ":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+10> # "" THEN
            READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_Aidant<j+10> ELSE ENR_CIVILAIDANT=""
            ENR_ATTESTFISCTEMPO<W_Rang> = ENR_ATTESTFISCTEMPO<W_Rang>:"- ":W_Aidant<j+10>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
         END

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

   ENR_ATTESTFISCTEMPO<W_Rang> = "Montant total des prestations ouvrant droit  une rduction"
   W_Rang=W_Rang+1   
   ENR_ATTESTFISCTEMPO<W_Rang> = "d'impts :"
   W_Rang=W_Rang+1  
  
   GOSUB 300
    

RETURN

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

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

         j = 1
         LOOP
         UNTIL ENR_COTISANAIDE<1,j> = "" DO
            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
            j = j + 1
         REPEAT

      END ELSE
         ENR_COTISANAIDE=""
      END
   END
    
   ENR_ATTESTFISCTEMPO<W_Rang,1> = W_Total 
   ENR_ATTESTFISCTEMPO<W_Rang,2> = " Euros "  

*   W_Total=W_Total / (ENR_CONSTANTESPAIE<7>/100000)
*   W_Total=INT(W_Total + (1/2))

*   ENR_ATTESTFISCTEMPO<W_Rang,3> = W_Total 
*   ENR_ATTESTFISCTEMPO<W_Rang,4> = " Euros"  

   W_Rang=W_Rang+1 

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

   ENR_ATTESTFISCTEMPO<W_Rang> = "#7"
   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
