**********************************************************
*Generation du fichier DNT
*Programme chaine a partir d'un projet VB
*Moulin christophe
**********************************************************
* Ouvertures des fichiers
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "","CENTREURSSAF" TO F.CENTREURSSAF ELSE STOP
OPEN "","CHGPARTEMP" TO F.CHGPARTEMP ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","CONVENTIONCOL" TO F.CONVENTIONCOL ELSE STOP
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "","DETAILCHGPARTEMP" TO F.DETAILCHGPARTEMP ELSE STOP
OPEN "","DNT" TO F.DNT ELSE STOP
OPEN "","ETABLISSEMENT" TO F.ETABLISSEMENT ELSE STOP
OPEN "","ELTSFACTAIDE" TO F.ELTSFACTAIDE ELSE STOP
OPEN "","ELTSPARTEMP" TO F.ELTSPARTEMP ELSE STOP
OPEN "","RAPPORTDNT" TO F.RAPPORTDNT ELSE STOP
OPEN "","REGULDNT" TO F.REGULDNT ELSE STOP
OPEN "","TYPEEXO" TO F.TYPEEXO ELSE STOP

*********************************************************
* Recuperation des arguments
PROCREAD ARGUMENTS ELSE STOP
W_CodeAsso=FIELD(ARGUMENTS," ",2)
W_CodeUrssaf=FIELD(ARGUMENTS," ",3)
W_CboTrimestre=FIELD(ARGUMENTS," ",4)
W_ListIndex=FIELD(ARGUMENTS," ",5)
*********************************************************
*Initialisation des variables
W_DatDebTri=""
W_DatFinTri=""
W_Fini="FAUX"
W_Concat=""
W_Temp=""
W_NumAffil1="VRAI"
W_CountG10=0
W_TotalCotisation=0
W_TotalTep=0
W_TotalBrut=0
W_PlaceFichier=1
W_ValSmic=0
W_Date=""
W_CleAide=""
W_CleAidePrec=""
W_DateMax=0
W_CountAidant=0
W_Aidant=""
W_TauxUrssaf=""
W_CountG10=0
W_DetailChgPartemp="FAUX"
W_TempBis=""
* W_Arrondi=0
W_MontantTepDeduc=0
W_Num2Urssaf=""
W_CleContrat=""
W_CleContratPrec=""
W_AnneeTrimestre=""
W_NumTrimestre=""
W_Len=0
ENR_DNT=""
W_TabValSmic=""
W_LenArrondi=0
W_ChrAArrondir=""
W_CleDetailChgPartemp=""
W_Charges=0
W_TepDeduc=0
ENR_DETAILCHGPARTEMP=""

W_CumulBrutAidant=0
W_TabCumulBrutAidant=""
W_TabCumulBrutAidant<1>=0
W_TabCumulBrutAidant<2>=0
W_TabCumulBrutAidant<3>=0
W_TabCumulBrutAidant2=""
W_TabCumulBrutAidant2<1>=0
W_TabCumulBrutAidant2<2>=0
W_TabCumulBrutAidant2<3>=0

W_TempValPlafSmic=0
W_TabTri=0
W_UrssafExo=0
W_UrssafNonExo=0
W_TotalUrssafExo=0
W_TotalUrssafNonExo=0
W_SansAssedic="FAUX"
******************************************
* Programme principal

* Initialisation des requetes
W_RequeteAct=0

* Nombre de salari pris sur le premier numero d'urssaf.
NbJProNo1=12
NbJProNo2=0

* Pose les bornes du trimestre
    W_Len=LEN(W_CboTrimestre)
    W_Temp=W_CboTrimestre
    W_AnneeTrimestre=W_CboTrimestre[W_Len-3,4]
    W_NumTrimestre=W_CboTrimestre[1,1]
    W_Len=""
    BEGIN CASE
        CASE W_NumTrimestre="1"
            W_DatDebTri=ICONV("01/01/":W_AnneeTrimestre,"D4/")
            W_DatFinTri=ICONV("31/03/":W_AnneeTrimestre,"D4/")
            W_TabTri<1>="01"
            W_TabTri<2>="02"
            W_TabTri<3>="03"
        CASE W_NumTrimestre="2"
            W_DatDebTri=ICONV("01/04/":W_AnneeTrimestre,"D4/")
            W_DatFinTri=ICONV("30/06/":W_AnneeTrimestre,"D4/")
            W_TabTri<1>="04"
            W_TabTri<2>="05"
            W_TabTri<3>="06"
        CASE W_NumTrimestre="3"
            W_DatDebTri=ICONV("01/07/":W_AnneeTrimestre,"D4/")
            W_DatFinTri=ICONV("30/09/":W_AnneeTrimestre,"D4/")
            W_TabTri<1>="07"
            W_TabTri<2>="08"
            W_TabTri<3>="09"
        CASE W_NumTrimestre="4"
            W_DatDebTri=ICONV("01/10/":W_AnneeTrimestre,"D4/")
            W_DatFinTri=ICONV("31/12/":W_AnneeTrimestre,"D4/")
            W_TabTri<1>="10"
            W_TabTri<2>="11"
            W_TabTri<3>="12"
    END CASE
 
    READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CodeAsso ELSE NULL
    READ ENR_CENTREURSSAF FROM F.CENTREURSSAF,W_CodeUrssaf ELSE NULL
    READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,W_CodeAsso:"001" ELSE NULL
    READ ENR_TYPEEXO FROM F.TYPEEXO,"1" ELSE NULL
    READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE,"1" ELSE NULL
    READ ENR_CONVENTIONCOL FROM F.CONVENTIONCOL,"02" THEN
       IF ENR_CONVENTIONCOL<32> # "" THEN
          W_65Smic=ENR_CONVENTIONCOL<32>
       END ELSE
          W_65Smic="M"
       END
    END ELSE      
       W_65Smic="M"
    END

    IF ENR_CONSTANTESPAIE<9> < W_DatFinTri THEN
       W_DeviseDecl="EUR"
       W_DevisePaie="EUR"
    END ELSE
       W_DeviseDecl="FRF"
       W_DevisePaie="FRF"
    END

    W_DatePassageEuro = ENR_CONSTANTESPAIE<9>

    IF EXTRACT(ENR_CENTREURSSAF,16)#"000" AND LEN(EXTRACT(ENR_CENTREURSSAF,16))=3 THEN
       W_OrgUrssaf=EXTRACT(ENR_CENTREURSSAF,16)
    END ELSE
       W_OrgUrssaf=""
    END

    EXECUTE 'SELECT ACTIVITES AVEC @ID = "':W_CodeAsso:']" AND AVEC 12 = "M"'

    EXECUTE 'SAUVE-LISTE W_RequeteAct'
    EXECUTE "LISTE W_RequeteAct" RETURNING MSGCODE
    IF MSGCODE<1>=209 THEN
       W_CleAct="APAS"
    END ELSE
       SELECT F.ACTIVITES TO W_RequeteAct
       READNEXT W_CleAct FROM W_RequeteAct ELSE W_CleAct="APAS"
    END

    IF W_CleAct#"APAS" THEN
       READ ENR_ACTIVITES FROM F.ACTIVITES,W_CleAct ELSE NULL
    END
    * RIB du TEP
    W_RibTep=""
    IF EXTRACT(ENR_CENTREURSSAF,19) = 1 THEN
	IF ENR_CENTREURSSAF<23>#"P" THEN
           IF W_CleAct="APAS" THEN
           	W_Temp=EXTRACT(ENR_ASSOCIATION,17)
           	W_Temp=W_Temp "R%5"
        	W_RibTep=W_Temp
        
        	W_Temp=EXTRACT(ENR_ASSOCIATION,18)
           	W_Temp=W_Temp "R%5"
           	W_RibTep=W_RibTep:W_Temp

           	W_Temp=EXTRACT(ENR_ASSOCIATION,19)        
           	W_Temp=W_Temp "R%11"
           	W_RibTep=W_RibTep:W_Temp

           	W_Temp=EXTRACT(ENR_ASSOCIATION,20)        
          	W_Temp=W_Temp "R%2"
           	W_RibTep=W_RibTep:W_Temp
       	   END ELSE
	   	IF ENR_ACTIVITES<5><>"" THEN
            		W_Temp=EXTRACT(ENR_ACTIVITES,5)
            		W_Temp=W_Temp "R%5"
            		W_RibTep=W_Temp
        
            		W_Temp=EXTRACT(ENR_ACTIVITES,6)
            		W_Temp=W_Temp "R%5"
            		W_RibTep=W_RibTep:W_Temp

            		W_Temp=EXTRACT(ENR_ACTIVITES,7)        
            		W_Temp=W_Temp "R%11"
            		W_RibTep=W_RibTep:W_Temp

            		W_Temp=EXTRACT(ENR_ACTIVITES,8)        
            		W_Temp=W_Temp "R%2"
            		W_RibTep=W_RibTep:W_Temp
	      	END ELSE
            		W_Temp=EXTRACT(ENR_ASSOCIATION,17)
            		W_Temp=W_Temp "R%5"
            		W_RibTep=W_Temp
        
            		W_Temp=EXTRACT(ENR_ASSOCIATION,18)
            		W_Temp=W_Temp "R%5"
            		W_RibTep=W_RibTep:W_Temp

            		W_Temp=EXTRACT(ENR_ASSOCIATION,19)        
            		W_Temp=W_Temp "R%11"
            		W_RibTep=W_RibTep:W_Temp

            		W_Temp=EXTRACT(ENR_ASSOCIATION,20)        
            		W_Temp=W_Temp "R%2"
            		W_RibTep=W_RibTep:W_Temp
	        END	
       	   END
        END ELSE
        	* 23 Zeros
        	W_RibTep="00000000000000000000000"
	END
    END ELSE
        * 23 Zeros
        W_RibTep="00000000000000000000000"
    END

            
* Calcul de la valeur du SMIC

    W_DebMoisTri=OCONV(W_DatDebTri,"D4/")
    W_DebMoisTri=W_DebMoisTri[7,4]:W_DebMoisTri[4,2]

    FOR i=0 TO 2 
       j = 1
       LOOP
          W_Temp= OCONV(EXTRACT(ENR_CONSTANTESPAIE,4, j),"D4/")
          W_Temp=W_Temp[7,4]:W_Temp[4,2]
       WHILE W_DebMoisTri+i < W_Temp OR W_Temp=""
          j = j + 1
       REPEAT
       W_TabValSmic =REPLACE(W_TabValSmic,i+1;EXTRACT(ENR_CONSTANTESPAIE,3, j))
    NEXT i

	W_PlafondSecu=ENR_CONSTANTESPAIE<1,1> / 100

    W_Temp=EXTRACT(W_TabValSmic,1)
    IF W_Temp=EXTRACT(W_TabValSmic,2) AND W_Temp=EXTRACT(W_TabValSmic,3) THEN
       W_ValSmic=W_Temp/100
    END ELSE
       W_ValSmic=W_Temp+EXTRACT(W_TabValSmic,2)+EXTRACT(W_TabValSmic,3)
       W_ValSmic=W_ValSmic/3
       W_ValSmic=W_ValSmic/100
    END

    W_ValSmicBrut=W_ValSmic

    W_ValCharges=0
    W_ValChargesForfait=0
    FOR i=0 TO 2 
       j = 1
       LOOP
          W_Temp=OCONV(EXTRACT(ENR_CENTREURSSAF,20,j),"D4/")
          W_Temp=W_Temp[7,4]:W_Temp[4,2]
       WHILE W_DebMoisTri+i < W_Temp OR W_Temp="" DO
          j = j + 1
       REPEAT
       W_ValCharges = W_ValCharges + EXTRACT(ENR_CENTREURSSAF,21,j)
       W_ValChargesForfait = W_ValChargesForfait + EXTRACT(ENR_CENTREURSSAF,22,j)

    NEXT i

    W_ValCharges = W_ValCharges / 3
    W_ValChargesForfait = W_ValChargesForfait / 3

    W_ValCharges = W_ValCharges / 1000
    W_ValChargesForfait = W_ValChargesForfait / 1000

    W_ValSmicNetForfait = W_ValSmic - (W_ValSmic * W_ValChargesForfait) / 100
    W_ValSmic = W_ValSmic - (W_ValSmic * W_ValCharges) / 100

    W_ValSmic = INT(W_ValSmic*100+1/2)
    W_ValSmicNetForfait = INT(W_ValSmicNetForfait * 100 + 1/2)

	W_PlafondSecuNet = W_PlafondSecu - (W_PlafondSecu * W_ValCharges) / 100
	W_PlafondSecuNet = INT(W_PlafondSecuNet*100+1/2)
	W_TauxHorNet = W_PlafondSecuNet /17400
	W_TauxHorNet=INT(W_TauxHorNet*100+1/2)
	
    W_Aidant =""
    * Taux Urssaf
    GOSUB 910

    W_TauxForfait=""
    W_TauxForfait<1>=0
    W_TauxForfait<2>=0
    W_TauxForfait<3>=EXTRACT(W_TauxUrssaf,3) / 0.97
    W_TauxForfait<4>=EXTRACT(W_TauxUrssaf,4) / 0.97

  IF W_ListIndex=0 OR W_ListIndex=1 THEN
     * Premiere generation des DNT
     GOSUB 40
  END ELSE
     * Regeneration du fichier DNT
     GOSUB 50
  END

* Ecriture du rapport d'execution
    W_TotalBrut=INT(W_TotalBrut+1/2)
    ENR_RAPPORTDNT=""
    W_Count=DCOUNT(ENR_DNT,CHAR(254))
    ENR_RAPPORTDNT=REPLACE(ENR_RAPPORTDNT,1;W_AnneeTrimestre:W_NumTrimestre:W_CodeUrssaf:W_CodeAsso)
    ENR_RAPPORTDNT=REPLACE(ENR_RAPPORTDNT,2;W_Count)
    ENR_RAPPORTDNT=REPLACE(ENR_RAPPORTDNT,3;W_CountG10)
    ENR_RAPPORTDNT=REPLACE(ENR_RAPPORTDNT,4;W_CountG10)
    ENR_RAPPORTDNT=REPLACE(ENR_RAPPORTDNT,5;W_TotalBrut)
    ENR_RAPPORTDNT=REPLACE(ENR_RAPPORTDNT,6;W_TotalCotisation)
    ENR_RAPPORTDNT=REPLACE(ENR_RAPPORTDNT,7;W_TotalTep)
    WRITEU ENR_RAPPORTDNT ON F.RAPPORTDNT,"1"
STOP

******************************************
* Requete sur contrat
10
   EXECUTE 'SSELECT CONTRAT AVEC 1 = "02" AND AVEC 65 # "O" AND AVEC CtrUrssafContrat = "':W_CodeUrssaf:'" AND AVEC 2 = "':W_CodeAsso:'" AND AVEC 7 <= "':W_DatFinTri:'" AND AVEC 8 >= "':W_DatDebTri:'" OR = "" PAR NomAideContrat PAR PrenomAideContrat PAR 3 PAR NomPrenomAidantContrat PAR CodeAidant'
RETURN
******************************************
* Requete sur DetailChgPartemp
20 EXECUTE 'SSELECT DETAILCHGPARTEMP AVEC @ID = "[':W_AnneeTrimestre:W_NumTrimestre:'" AND AVEC CodCtrUrssafDetailChgPartemp = "':W_CodeUrssaf:'" AND AVEC 1 = "':W_CodeAsso:'" PAR NomAideDetailChgPartemp PAR PrenomAideDetailChgPartemp PAR @ID'
RETURN
**************************************************************************
* Generation du fichier Dnt et DetailChgPartemp
40 W_DetailChgPartemp="FAUX"
    * Requete
    GOSUB 10

    READNEXT W_CleContrat ELSE W_Fini="VRAI"
    IF W_Fini="VRAI" THEN RETURN

    * A10
    GOSUB 100
    W_PlaceFichier = W_PlaceFichier+1
    * C10
    GOSUB 110
    W_PlaceFichier = W_PlaceFichier+1
    READ ENR_CONTRAT FROM F.CONTRAT,W_CleContrat ELSE PRINT "CONTRAT1"
    W_CleAidePrec=EXTRACT(ENR_CONTRAT,3)
    * Lecture DetailCalcul

    GOSUB 920

    LOOP
        W_CleContratPrec=W_CleContrat
        READNEXT W_CleContrat ELSE W_Fini="VRAI"
    WHILE W_Fini="FAUX" DO
       READ ENR_CONTRAT FROM F.CONTRAT,W_CleContrat ELSE PRINT "CONTRAT2"
       W_CleAide=EXTRACT(ENR_CONTRAT,3)
       IF W_CleAide#W_CleAidePrec THEN

          READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CleAidePrec ELSE PRINT "AIDE"
          READ ENR_ELTSPARTEMP FROM F.ELTSPARTEMP,W_CleAidePrec ELSE PRINT "ELTSPAREMP"
          W_CumulBrutAidant=0
		  
		  IF W_CountAidant#0 THEN
             GOSUB 800
          END ELSE
             GOSUB 810
          END

	  W_SansAssedic="FAUX"
          W_CountAidant=0
          W_Aidant=""
          W_TabCumulBrutAidant<1>=0
          W_TabCumulBrutAidant<2>=0
          W_TabCumulBrutAidant<3>=0
          W_TabCumulBrutAidant2<1>=0
          W_TabCumulBrutAidant2<2>=0
          W_TabCumulBrutAidant2<3>=0

       END
       W_CleAidePrec=W_CleAide
       * Lecture DetailCalcul
       GOSUB 920
    REPEAT

    W_CumulBrutAidant=0
    READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CleAidePrec ELSE PRINT "AIDE"
    READ ENR_ELTSPARTEMP FROM F.ELTSPARTEMP,W_CleAidePrec ELSE PRINT "ELTSPARTEMP"
    IF W_CountAidant#0 THEN
       GOSUB 800
    END ELSE
       GOSUB 810
    END

    * Z1O
    GOSUB 150
    WRITE ENR_DNT ON F.DNT,W_AnneeTrimestre:W_NumTrimestre:W_CodeUrssaf:W_CodeAsso
RETURN
******************************************
* DETAILCHGPARTEMP : Reconstitution d'un fichier

50 W_DetailChgPartemp="VRAI"
   * Requete DetailChgPartemp
   GOSUB 20
   W_Fini="FAUX"
   READNEXT W_CleDetailChgPartemp ELSE W_Fini="VRAI"
   IF W_Fini="VRAI" THEN RETURN

    * A10
    GOSUB 100
    W_PlaceFichier = W_PlaceFichier+1
    * C10
    GOSUB 110
    W_PlaceFichier = W_PlaceFichier+1

    LOOP
    WHILE W_Fini="FAUX" DO
       READ ENR_DETAILCHGPARTEMP FROM F.DETAILCHGPARTEMP,W_CleDetailChgPartemp ELSE PRINT "DETAILCHGPARTEMP"
       READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CleDetailChgPartemp[1,5] ELSE PRINT "AIDE"
       READ ENR_ELTSPARTEMP FROM F.ELTSPARTEMP,W_CleDetailChgPartemp[1,5] ELSE PRINT "ELTSPARETMP"
       * G10
       GOSUB 120
       W_PlaceFichier=W_PlaceFichier+1
       * H10
       GOSUB 130
       W_PlaceFichier=W_PlaceFichier+1
       K=1
       LOOP
       WHILE EXTRACT(ENR_DETAILCHGPARTEMP,2,K)#"" DO
          READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,EXTRACT(ENR_DETAILCHGPARTEMP,2,K) ELSE PRINT "AIDANT"
          W_NumAffil1="VRAI"
          * M30
          GOSUB 140 
          W_PlaceFichier=W_PlaceFichier+1
          K=K+1
       REPEAT
       READNEXT W_CleDetailChgPartemp ELSE W_Fini="VRAI"
   REPEAT

       * Z1O
       GOSUB 150
       WRITE ENR_DNT ON F.DNT,W_AnneeTrimestre:W_NumTrimestre:W_CodeUrssaf:W_CodeAsso
RETURN
******************************************
*A10
100 W_Concat="A10" "R%65"
    * Identification de l'emetteur
    W_Temp=EXTRACT(ENR_ETABLISSEMENT,14)
    IF LEN(W_Temp) # 14 THEN
       W_Temp=W_Temp "L%14"
    END
    W_Concat=W_Concat:W_Temp

    W_Temp=EXTRACT(ENR_ASSOCIATION,2)
    W_Temp=W_Temp[1,50]
    W_Concat=W_Concat:W_Temp:SPACE(50 - LEN(W_Temp))

    * Adresse de l'emetteur
    W_Temp=EXTRACT(ENR_ASSOCIATION,7)
    W_Temp=W_Temp[1,32]
    W_Concat=W_Concat:W_Temp:SPACE(32 - LEN(W_Temp))

    W_Temp=EXTRACT(ENR_ASSOCIATION,3)
	*Modif Jonathan le 07/07/2009
	GOSUB 940
	*Fin modif Jonathan
    W_Concat=W_Concat:SPACE(4 - LEN(W_Temp)):W_Temp

    W_Temp=EXTRACT(ENR_ASSOCIATION,4)
    W_Temp=W_Temp[1,1]
    IF W_Temp="B" OR W_Temp="T" THEN
        W_Concat=W_Concat:W_Temp:" "
    END ELSE
        W_Concat=W_Concat:"  "
    END

    W_Temp=EXTRACT(ENR_ASSOCIATION,5)
    W_Concat=W_Concat:W_Temp:SPACE(3 - LEN(W_Temp))

    W_Temp=EXTRACT(ENR_ASSOCIATION,6)
    W_Temp=W_Temp[1,23]
    W_Concat=W_Concat:W_Temp:SPACE(23 - LEN(W_Temp))

   * Adresse Ville
    W_Concat=W_Concat:"00000 "

    W_Temp=EXTRACT(ENR_ASSOCIATION,9)
    W_Temp=W_Temp[1,26]
    W_Concat=W_Concat:W_Temp:SPACE(26 - LEN(W_Temp))

    * Centre de distribution
    W_Temp=EXTRACT(ENR_ASSOCIATION,8)
    IF W_Temp="" THEN
       W_Temp="00000"
    END
    W_Concat=W_Concat:W_Temp:" "

    W_Temp=EXTRACT(ENR_ASSOCIATION,9)
    W_Temp=W_Temp[1,26]
    W_Concat=W_Concat:W_Temp:SPACE(26 - LEN(W_Temp))

    W_Concat=W_Concat:"3022"

    W_Temp=OCONV(DATE(),"D2/")
    W_Concat=W_Concat:W_Temp[7,2]:W_Temp[4,2]:W_Temp[1,2]

    W_Temp=TIMEDATE()
    W_Concat=W_Concat:W_Temp[1,2]:W_Temp[4,2]

    W_Concat=W_Concat:SPACE(50):"R":SPACE(142)
    ENR_DNT=REPLACE(ENR_DNT,W_PlaceFichier;W_Concat)
RETURN        
******************************************
*C10
110 W_Temp=EXTRACT(ENR_ETABLISSEMENT,14)
    IF LEN(W_Temp) # 14 THEN
       W_Temp=W_Temp "L%14"
    END
    W_Concat=W_Temp

    W_Concat=W_Concat:"C10" "R%51"

    W_Temp=EXTRACT(ENR_CENTREURSSAF,18)
    IF LEN(W_Temp)#7 THEN
       W_Temp="0000000"
    END
    W_Concat=W_Concat:W_Temp

    W_Temp=EXTRACT(ENR_ASSOCIATION,2)
    W_Temp=W_Temp[1,50]
    W_Concat=W_Concat:W_Temp:SPACE(50 - LEN(W_Temp))

    * Adresse de l'emetteur
    W_Temp=EXTRACT(ENR_ASSOCIATION,7)
    W_Temp=W_Temp[1,32]
    W_Concat=W_Concat:W_Temp:SPACE(32 - LEN(W_Temp))

    W_Temp=EXTRACT(ENR_ASSOCIATION,3)
	*Modif Jonathan le 07/07/2009
	GOSUB 940
	*Fin modif Jonathan
    W_Concat=W_Concat:SPACE(4 - LEN(W_Temp)):W_Temp

    W_Temp=EXTRACT(ENR_ASSOCIATION,4)
    W_Temp=W_Temp[1,1]
    IF W_Temp="B" OR W_Temp="T" THEN
        W_Concat=W_Concat:W_Temp:" "
    END ELSE
        W_Concat=W_Concat:"  "
    END

    W_Temp=EXTRACT(ENR_ASSOCIATION,5)
    W_Concat=W_Concat:W_Temp:SPACE(3 - LEN(W_Temp))

    W_Temp=EXTRACT(ENR_ASSOCIATION,6)
    W_Temp=W_Temp[1,23]
    W_Concat=W_Concat:W_Temp:SPACE(23 - LEN(W_Temp))

    * Adresse Ville
    W_Concat=W_Concat:"00000 "

    W_Temp=EXTRACT(ENR_ASSOCIATION,9)
    W_Temp=W_Temp[1,26]
    W_Concat=W_Concat:W_Temp:SPACE(26 - LEN(W_Temp))

    * Centre de distribution
    W_Temp=EXTRACT(ENR_ASSOCIATION,8)
    IF W_Temp="" THEN
       W_Temp="00000"
    END
    W_Concat=W_Concat:W_Temp:" "

    W_Temp=EXTRACT(ENR_ASSOCIATION,9)
    W_Temp=W_Temp[1,26]
    W_Concat=W_Concat:W_Temp:SPACE(26 - LEN(W_Temp))

    W_Concat=W_Concat:SPACE(214)
    ENR_DNT=REPLACE(ENR_DNT,W_PlaceFichier;W_Concat)
RETURN        
******************************************
*G10
120 

W_CountG10=W_CountG10+1
    IF W_DetailChgPartemp="FAUX" THEN
      IF EXTRACT(W_Aidant,1,1)#"" AND W_NumAffil1="VRAI" THEN
         W_CleDetailChgPartemp=W_CleAidePrec:W_AnneeTrimestre:W_NumTrimestre
*         READ ENR_DETAILCHGPARTEMP FROM F.DETAILCHGPARTEMP,W_CleDetailChgPartemp ELSE PRINT "DETAILCHGPARETMP"
         ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,1;W_CodeAsso)
      END
    END

   * Zone indicatif
    W_Temp=EXTRACT(ENR_ETABLISSEMENT,14)
    IF LEN(W_Temp) # 14 THEN
       W_Temp=W_Temp "L%14"
    END
    W_Concat=W_Temp 

    W_Temp=EXTRACT(ENR_ELTSPARTEMP,4)
    W_Temp=CONVERT(" ","",W_Temp)
    IF LEN(W_Temp)#14 THEN
       *Modif Jonathan le 01/07/2009
	   W_Concat=W_Concat:W_Temp "R%14"
	   *Fin modif Jonathan
    END ELSE
       W_Concat=W_Concat:W_Temp
    END

    IF W_NumAffil1="VRAI" THEN
       W_Ind=2
    END ELSE
       W_Ind=3
    END

    W_Temp=EXTRACT(ENR_ELTSPARTEMP,W_Ind,1)
    W_Temp=CONVERT(" ","",W_Temp)
    W_Temp=ICONV(W_Temp,"MCN")

    * SI PAS CODE URSSAF ALORS AFFECTE CODE EMPLOYEUR (3 1ER CAR.) COMME CODE URSSAF
*    IF W_OrgUrssaf="" THEN
*       W_OrgUrssafAide=W_Temp[1,3]
*	 W_OrgUrssafAide=W_OrgUrssafAide "R%3"
*       W_Temp=W_Temp[4,15]
*       W_Concat=W_Concat:W_OrgUrssafAide
*    END ELSE
*       W_Temp=W_Temp[1,15]
*       W_Concat=W_Concat:W_OrgUrssaf
*    END

    IF LEN(W_Temp) > 15 THEN
    	W_Temp=W_Temp "R%18"
    END ELSE
       IF W_OrgUrssaf="" THEN
          W_OrgUrssafAide=W_Temp[1,3]
	  W_OrgUrssafAide=W_OrgUrssafAide "R%3"
          W_Temp=W_Temp[4,15]
          W_Concat=W_Concat:W_OrgUrssafAide
       END ELSE
          W_Temp=W_Temp[1,15]
          W_Concat=W_Concat:W_OrgUrssaf
       END
       W_Temp=W_Temp "R%15"
    END

    W_Concat=W_Concat:W_Temp

    W_Temp="G10"
    W_Temp=W_Temp "R%19"
    W_Concat=W_Concat:W_Temp

    W_Temp=EXTRACT(ENR_CIVILAIDE,1)
    W_Temp=W_Temp "L#3"
    W_Concat=W_Concat:W_Temp

    W_Temp=EXTRACT(ENR_CIVILAIDE,2):" ":EXTRACT(ENR_CIVILAIDE,3)
    W_Temp=W_Temp "L#50"
    W_Concat=W_Concat:W_Temp

    W_Concat=W_Concat:SPACE(32)

    * Adresse de l'employeur
    W_Temp=EXTRACT(ENR_CIVILAIDE,9)
    W_Temp=W_Temp "L#32"
    W_Concat=W_Concat:W_Temp

    W_Temp=EXTRACT(ENR_CIVILAIDE,5)
    W_Temp=W_Temp "R#4"
	*Modif Jonathan le 07/07/2009
	GOSUB 940
	*Fin modif Jonathan
    W_Concat=W_Concat:W_Temp

    W_Temp=EXTRACT(ENR_CIVILAIDE,6)
    W_Temp=W_Temp[1,1]
    IF W_Temp="B" OR W_Temp="T" THEN
        W_Concat=W_Concat:W_Temp:" "
    END ELSE
        W_Concat=W_Concat:"  "
    END

    W_Temp=EXTRACT(ENR_CIVILAIDE,7)
    W_Concat=W_Concat:W_Temp:SPACE(3 - LEN(W_Temp))

    W_Temp=EXTRACT(ENR_CIVILAIDE,8)
    W_Temp=W_Temp[1,23]
    W_Concat=W_Concat:W_Temp:SPACE(23 - LEN(W_Temp))

    * Adresse Ville
    W_Concat=W_Concat:"00000 "

    W_Temp=EXTRACT(ENR_CIVILAIDE,11)
    W_Temp=W_Temp[1,26]
    W_Concat=W_Concat:W_Temp:SPACE(26 - LEN(W_Temp))

    * Centre de distribution
    W_Temp=EXTRACT(ENR_CIVILAIDE,10)
    IF W_Temp="" THEN
       W_Temp="00000"
    END
    W_Concat=W_Concat:W_Temp:" "

    W_Temp=EXTRACT(ENR_CIVILAIDE,11)
    W_Temp=W_Temp[1,26]
    W_Concat=W_Concat:W_Temp:SPACE(26 - LEN(W_Temp))

   * Cotisation globale calculee
   W_Temp=EXTRACT(ENR_ELTSPARTEMP,9)
   IF W_Temp="00" OR W_Temp="01" THEN
      W_Ind=1
   END ELSE
      W_Ind=2
   END

W_UrssafExo=0
W_UrssafNonExo=0
W_TotalUrssafExo=0
W_TotalUrssafNonExo=0
* URSSAF
    W_AidantUnUn=EXTRACT(W_Aidant,1, 1)
    IF W_DetailChgPartemp = "FAUX" THEN
       W_ChargesUrssafAPayer=0
       IF W_Temp="02" THEN
           IF W_65Smic="M" THEN
              FOR iUrssaf=1 TO 3
                 IF W_Num2Urssaf # "" THEN
                    IF W_NumAffil1="FAUX" THEN
                       W_TabCumulBrutAidant<1>=W_TabCumulBrutAidant2<1>
                       W_TabCumulBrutAidant<2>=W_TabCumulBrutAidant2<2>
                       W_TabCumulBrutAidant<3>=W_TabCumulBrutAidant2<3>
                    END
                 END ELSE
                    IF W_CountAidant > NbJProNo1 THEN
                       W_TabCumulBrutAidant<1>=W_TabCumulBrutAidant<1>+W_TabCumulBrutAidant2<1>
                       W_TabCumulBrutAidant<2>=W_TabCumulBrutAidant<2>+W_TabCumulBrutAidant2<2>
                       W_TabCumulBrutAidant<3>=W_TabCumulBrutAidant<3>+W_TabCumulBrutAidant2<3>
                    END
                 END
                 W_TempValPlafSmic=W_TabValSmic<iUrssaf> * 65 /100
                 IF W_TabCumulBrutAidant<iUrssaf> > W_TempValPlafSmic THEN

                    W_BrutNonExo=W_TabCumulBrutAidant<iUrssaf> - W_TempValPlafSmic
                    W_UrssafNonExo = INT((W_BrutNonExo * EXTRACT(W_TauxUrssaf,1) / 100)+1/2)
                    W_TotalUrssafNonExo = W_TotalUrssafNonExo + W_UrssafNonExo
                    W_ChargesUrssafAPayer = W_ChargesUrssafAPayer + W_UrssafNonExo
 
                    W_UrssafExo = INT((W_TempValPlafSmic * EXTRACT(W_TauxUrssaf,2) / 100)+1/2)
                    W_TotalUrssafExo = W_TotalUrssafExo + W_UrssafExo
                    W_ChargesUrssafAPayer=W_ChargesUrssafAPayer + W_UrssafExo

                 END ELSE
                    W_UrssafExo = INT((W_TabCumulBrutAidant<iUrssaf> * EXTRACT(W_TauxUrssaf,2) / 100)+1/2)
                    W_TotalUrssafExo = W_TotalUrssafExo + W_UrssafExo
                    W_ChargesUrssafAPayer = W_ChargesUrssafAPayer + W_UrssafExo
                 END
              NEXT iUrssaf
           END ELSE
              W_TempValPlafSmic=W_ValSmicBrut * 195
              IF W_CumulBrutAidant > W_TempValPlafSmic THEN

                 W_BrutNonExo=W_CumulBrutAidant - W_TempValPlafSmic
                 W_TotalUrssafNonExo = INT((W_BrutNonExo * EXTRACT(W_TauxUrssaf,1) / 100)+1/2)
                 W_ChargesUrssafAPayer = W_TotalUrssafNonExo
 
                 W_TotalUrssafExo = INT((W_TempValPlafSmic * EXTRACT(W_TauxUrssaf,2) / 100)+1/2)
                 W_ChargesUrssafAPayer=W_ChargesUrssafAPayer + W_TotalUrssafExo
              END ELSE
                  W_TotalUrssafExo = INT((W_CumulBrutAidant * EXTRACT(W_TauxUrssaf,2) / 100)+1/2)
                  W_ChargesUrssafAPayer = W_TotalUrssafExo
              END
           END
       END ELSE
           W_ChargesUrssafAPayer = W_CumulBrutAidant * EXTRACT(W_TauxUrssaf,W_Ind) / 100

		   IF W_Temp="00" THEN
		      W_CumulDeducBrut = W_CumulDeducBrut * (15/100)
	          W_ChargesUrssafAPayer = W_ChargesUrssafAPayer - W_CumulDeducBrut
		   END

       END

       W_ChargesUrssafAPayer=INT(W_ChargesUrssafAPayer + 1/2)
*       W_ChargesUrssafEntier=INT(W_ChargesUrssafAPayer + 1/2)
       IF W_AidantUnUn # "" THEN
          IF W_Temp # "02" THEN
             IF W_CountAidant>NbJProNo1 AND W_NumAffil1="FAUX" THEN
                ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,W_Ind + 5;W_ChargesUrssafAPayer+EXTRACT(ENR_DETAILCHGPARTEMP,W_Ind + 5))
*                ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,W_Ind + 5;W_ChargesUrssafEntier+EXTRACT(ENR_DETAILCHGPARTEMP,W_Ind + 5))
             END ELSE
                IF W_CumulBrutAidant # 0 THEN
                   ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,W_Ind + 5;W_ChargesUrssafAPayer)
*                   ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,W_Ind + 5;W_ChargesUrssafEntier)
                END
             END
             IF W_Ind = 1 THEN
                 ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,7;"0")
             END ELSE
                 ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,6;"0")
             END
          END ELSE
             IF W_CountAidant>NbJProNo1 AND W_NumAffil1="FAUX" THEN
                ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,6;W_TotalUrssafNonExo + EXTRACT(ENR_DETAILCHGPARTEMP,6))
                ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,7;W_TotalUrssafExo + EXTRACT(ENR_DETAILCHGPARTEMP,7))
             END ELSE
                IF W_CumulBrutAidant # 0 THEN
                   ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,6;W_TotalUrssafNonExo)
                   ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,7;W_TotalUrssafExo)
                END
             END
          END
       END

       W_AidantTemp=""
       IF W_Num2Urssaf # "" THEN
          IF W_NumAffil1="FAUX" THEN
             W_DebParChg=NbJProNo1 + 1
             W_FinParChg=W_CountAidant
          END ELSE
             W_DebParChg=1
             IF W_CountAidant <12 THEN
                W_FinParChg=W_CountAidant
             END ELSE
                W_FinParChg=NbJProNo1
             END
          END
          FOR iAidantTemp=W_DebParChg TO W_FinParChg
              W_AidantTemp<iAidantTemp>=W_Aidant<iAidantTemp>
          NEXT iAidantTemp
       END ELSE
          W_DebParChg=1
          W_FinParChg=W_CountAidant
          W_AidantTemp=W_Aidant
       END

       IF INDEX(W_AidantTemp,"B",1) # 0 THEN
          IF INDEX(W_AidantTemp,"F",1) # 0 THEN
             W_BrutForfait="BF"
          END ELSE
             W_BrutForfait="B"
          END
       END ELSE
          IF INDEX(W_AidantTemp,"F",1) # 0 THEN
             W_BrutForfait="F"
          END ELSE
             * 2eme numero urssaf vide.
             W_BrutForfait="B"
          END
       END

        FOR i = 3 TO 8

		IF W_SansAssedic="FAUX" THEN
          		IF i=3 OR i=4 THEN
             			IF W_BrutForfait # "B" THEN
                			IF W_BrutForfait = "F" THEN
                   				W_TempBis =(W_CumulBrutAidant * W_TauxForfait<i>) / 100
                			END ELSE
                   				W_TempBis=0
                   				FOR iParChg=W_DebParChg TO W_FinParChg
                      					IF W_Aidant<iParChg,4> ="F" THEN
                         					W_TempBis = W_TempBis + (W_Aidant<iParChg,3> * W_TauxForfait<i>) / 100
                      					END ELSE
                         					W_TempBis = W_TempBis + (W_Aidant<iParChg,3> * EXTRACT(W_TauxUrssaf,i)) / 100
                      					END
                   				NEXT iParChg
                			END
             			END ELSE
                			* comme avant
                			W_TempBis =(W_CumulBrutAidant * EXTRACT(W_TauxUrssaf,i)) / 100
             			END
          		END ELSE
             			* comme avant
             			W_TempBis =(W_CumulBrutAidant * EXTRACT(W_TauxUrssaf,i)) / 100 
         		END
            		W_TempBis=INT(W_TempBis + 1/2)
            		W_ChargesUrssafAPayer = W_ChargesUrssafAPayer + W_TempBis
            		W_ChargesUrssafEntier=W_TempBis
*            		W_ChargesUrssafEntier=INT(W_TempBis + 1/2)
            		IF W_AidantUnUn # "" THEN
               			IF W_CountAidant>NbJProNo1 AND W_NumAffil1="FAUX" THEN
                  			ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,i + 5;W_ChargesUrssafEntier+EXTRACT(ENR_DETAILCHGPARTEMP,i + 5))
               			END ELSE
                  			IF W_CumulBrutAidant # 0 THEN
                     				ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,i + 5;W_ChargesUrssafEntier)
                  			END
               			END
            		END

*********************************************
	  	END ELSE

          		IF i=3 OR i=4 THEN
             			IF W_BrutForfait # "B" THEN
                			IF W_BrutForfait = "F" THEN
                   				W_TempBis =(W_CumulBrutAidant * W_TauxForfait<i>) / 100
               	 			END ELSE
                   				W_TempBis=0
                   				FOR iParChg=W_DebParChg TO W_FinParChg
                      					IF W_Aidant<iParChg,4> ="F" THEN
                         					W_TempBis = W_TempBis + (W_Aidant<iParChg,3> * W_TauxForfait<i>) / 100
                      					END ELSE
                         					W_TempBis = W_TempBis + (W_Aidant<iParChg,3> * EXTRACT(W_TauxUrssaf,i)) / 100
                      					END
                   				NEXT iParChg
                			END
             			END ELSE
                			* comme avant
                			W_TempBis =(W_CumulBrutAidant * EXTRACT(W_TauxUrssaf,i)) / 100
             			END
          		END ELSE
				IF i=7 THEN
					W_CountTemp=DCOUNT(W_Aidant,CHAR(254))
					W_TempBis=0
					FOR iTemp = 1 TO W_CountTemp
						IF W_Aidant<iTemp,5>="FAUX" THEN
             						W_TempBis=W_TempBis + (W_Aidant<iTemp,3> * EXTRACT(W_TauxUrssaf,i)) / 100 
						END
					NEXT iTemp
				END ELSE
             				* comme avant
             				W_TempBis =(W_CumulBrutAidant * EXTRACT(W_TauxUrssaf,i)) / 100 
				END
          		END
            		W_TempBis=INT(W_TempBis + 1/2)
            		W_ChargesUrssafAPayer = W_ChargesUrssafAPayer + W_TempBis
            		W_ChargesUrssafEntier=W_TempBis
*            			W_ChargesUrssafEntier=INT(W_TempBis + 1/2)
            		IF W_AidantUnUn # "" THEN
               			IF W_CountAidant>NbJProNo1 AND W_NumAffil1="FAUX" THEN
                  			ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,i + 5;W_ChargesUrssafEntier+EXTRACT(ENR_DETAILCHGPARTEMP,i + 5))
               			END ELSE
                  			IF W_CumulBrutAidant # 0 THEN
                     				ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,i + 5;W_ChargesUrssafEntier)
                  			END
               			END
            		END

		END
*******************************************************
        NEXT i
*        W_ChargesUrssafAPayer=INT(W_ChargesUrssafAPayer + 1/2)  supp
    END ELSE
        W_ChargesUrssafAPayer = 0
        i=6
        LOOP
           W_Temp=EXTRACT(ENR_DETAILCHGPARTEMP,i)
        WHILE W_Temp#"" DO
            W_ChargesUrssafAPayer = W_ChargesUrssafAPayer + W_Temp
            i=i+1
        REPEAT       
    END
    W_Temp=W_ChargesUrssafAPayer "R%10"
    W_Concat=W_Concat:W_Temp

    W_TotalCotisation=W_TotalCotisation+W_ChargesUrssafAPayer

    W_Temp=EXTRACT(ENR_ELTSPARTEMP,14)
    IF W_Temp#"" THEN
       W_Temp=OCONV(W_Temp,"D4/")
       W_Temp=W_Temp[1,2]:W_Temp[4,2]:W_Temp[7,4]
    END ELSE
       W_Temp="        "
    END
    W_Concat=W_Concat:W_Temp:SPACE(50)

    * Paiement par TEP
    IF W_DetailChgPartemp="FAUX" THEN 
       W_MontantTepDeduc=W_ChargesUrssafAPayer-W_TepDeduc
       IF W_MontantTepDeduc<0 THEN
          W_MontantTepDeduc=0
       END
    END ELSE
       W_MontantTepDeduc=W_ChargesUrssafAPayer-EXTRACT(ENR_DETAILCHGPARTEMP,5)
       IF W_MontantTepDeduc<0 THEN
          W_MontantTepDeduc=0
       END
    END
    
	* RIB du TEP
    IF ENR_CENTREURSSAF<23>="P" THEN
		READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_CleDetailChgPartemp[1,5] ELSE PRINT W_CleDetailChgPartemp[1,5]:" ":"ELTSFACTAIDE"
		IF ENR_ELTSFACTAIDE<20> # "" THEN
			W_Temp=EXTRACT(ENR_ELTSFACTAIDE,18)
			W_Temp=W_Temp "R%5"
			W_RibTep=W_Temp
			
			W_Temp=EXTRACT(ENR_ELTSFACTAIDE,19)
			W_Temp=W_Temp "R%5"
			W_RibTep=W_RibTep:W_Temp

			W_Temp=EXTRACT(ENR_ELTSFACTAIDE,20)        
			W_Temp=W_Temp "R%11"
			W_RibTep=W_RibTep:W_Temp

			W_Temp=EXTRACT(ENR_ELTSFACTAIDE,21)        
			W_Temp=W_Temp "R%2"
			W_RibTep=W_RibTep:W_Temp
	END ELSE
			* 23 Zeros
			W_RibTep="00000000000000000000000"
	    END
    END
	
	* christophe le 03/04/2009 DA8114-01
	IF W_RibTep = "00000000000000000000000" THEN
		*si pas Rib alors on remet  zro
	    W_MontantTepDeduc=0
	END
	W_Temp=W_MontantTepDeduc "R%6"
	W_Concat=W_Concat:W_Temp
	W_TotalTep=W_TotalTep+W_MontantTepDeduc

    W_Concat=W_Concat:W_RibTep

    W_Concat=W_Concat:W_DeviseDecl:W_DevisePaie
*    W_Concat=W_Concat:"000000"    
    W_Concat=W_Concat:SPACE(83)
    ENR_DNT=REPLACE(ENR_DNT,W_PlaceFichier;W_Concat)
RETURN
******************************************
*H10
130  W_Temp=EXTRACT(ENR_ETABLISSEMENT,14)
    IF LEN(W_Temp) # 14 THEN
       W_Temp=W_Temp "L%14"
    END
    W_Concat=W_Temp 

    W_Temp=EXTRACT(ENR_ELTSPARTEMP,4)
    W_Temp=CONVERT(" ","",W_Temp)
    IF LEN(W_Temp)#14 THEN
	   *Modif Jonathan le 01/07/2009
       W_Concat=W_Concat:W_Temp"R%14"
	   *Fin modif Jonathan
    END ELSE
       W_Concat=W_Concat:W_Temp
    END

    IF W_NumAffil1="VRAI" THEN
       W_Ind=2
    END ELSE
       W_Ind=3
    END

    W_Temp=EXTRACT(ENR_ELTSPARTEMP,W_Ind,1)
    W_Temp=CONVERT(" ","",W_Temp)
    W_Temp=ICONV(W_Temp,"MCN")

    * SI PAS CODE URSSAF ALORS AFFECTE CODE EMPLOYEUR (3 1ER CAR.) COMME CODE URSSAF
*    IF W_OrgUrssaf="" THEN
*       W_OrgUrssafAide=W_Temp[1,3]
*	 W_OrgUrssafAide=W_OrgUrssafAide "R%3"
*       W_Temp=W_Temp[4,15]
*       W_Concat=W_Concat:W_OrgUrssafAide
*    END ELSE
*       W_Temp=W_Temp[1,15]
*       W_Concat=W_Concat:W_OrgUrssaf
*    END

    IF LEN(W_Temp) > 15 THEN
    	W_Temp=W_Temp "R%18"
    END ELSE
       IF W_OrgUrssaf="" THEN
          W_OrgUrssafAide=W_Temp[1,3]
	  W_OrgUrssafAide=W_OrgUrssafAide "R%3"
          W_Temp=W_Temp[4,15]
          W_Concat=W_Concat:W_OrgUrssafAide
       END ELSE
          W_Temp=W_Temp[1,15]
          W_Concat=W_Concat:W_OrgUrssaf
       END
       W_Temp=W_Temp "R%15"
    END

    W_Concat=W_Concat:W_Temp:"0031"

    W_Concat=W_Concat:W_AnneeTrimestre:W_NumTrimestre

    IF W_CumulBrutAidant=0 THEN
       W_Concat=W_Concat:"4"
    END ELSE
       W_Concat=W_Concat:"1"
    END

    W_Concat=W_Concat:"000000H10"

    W_Temp=EXTRACT(ENR_ELTSPARTEMP,9)
    *00=Non-exo 01=AGED 08=PSD 10=APA
	IF W_Temp="00" OR W_Temp="01" OR W_Temp="08" OR W_Temp="10" THEN
       W_Concat=W_Concat:"000"
    END ELSE
       W_Concat=W_Concat:"001"
    END

    W_Concat=W_Concat:SPACE(396) 
    ENR_DNT=REPLACE(ENR_DNT,W_PlaceFichier;W_Concat)
RETURN
******************************************
*M30
140 W_Temp=EXTRACT(W_Aidant,K,1)
   IF W_DetailChgPartemp="FAUX" THEN
      IF W_Temp#"" THEN
         IF EXTRACT(ENR_DETAILCHGPARTEMP,2)#"" THEN
            ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,2,-1;W_Temp)
         END ELSE
            ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,2,1;W_Temp)
         END
      END
   END
 
   * Zone indicatif
    W_Temp=EXTRACT(ENR_ETABLISSEMENT,14)
    IF LEN(W_Temp)#14 THEN
       W_Temp=W_Temp "L%14"
    END
    W_Concat=W_Temp 

    W_Temp=EXTRACT(ENR_ELTSPARTEMP,4)
    W_Temp=CONVERT(" ","",W_Temp)
    IF LEN(W_Temp)#14 THEN
	   *Modif Jonathan le 01/07/2009
       W_Concat=W_Concat:W_Temp"R%14"
	   *Fin Modif Jonathan
    END ELSE
       W_Concat=W_Concat:W_Temp
    END

    IF W_NumAffil1="VRAI" THEN
       W_Ind=2
    END ELSE
       W_Ind=3
    END

    W_Temp=EXTRACT(ENR_ELTSPARTEMP,W_Ind,1)
    W_Temp=CONVERT(" ","",W_Temp)
    W_Temp=ICONV(W_Temp,"MCN")

    * SI PAS CODE URSSAF ALORS AFFECTE CODE EMPLOYEUR (3 1ER CAR.) COMME CODE URSSAF
*    IF W_OrgUrssaf="" THEN
*       W_OrgUrssafAide=W_Temp[1,3]
*	 W_OrgUrssafAide=W_OrgUrssafAide "R%3"
*       W_Temp=W_Temp[4,15]
*       W_Concat=W_Concat:W_OrgUrssafAide
*    END ELSE
*       W_Temp=W_Temp[1,15]
*       W_Concat=W_Concat:W_OrgUrssaf
*    END

    IF LEN(W_Temp) > 15 THEN
    	W_Temp=W_Temp "R%18"
    END ELSE
       IF W_OrgUrssaf="" THEN
          W_OrgUrssafAide=W_Temp[1,3]
	  W_OrgUrssafAide=W_OrgUrssafAide "R%3"
          W_Temp=W_Temp[4,15]
          W_Concat=W_Concat:W_OrgUrssafAide
       END ELSE
          W_Temp=W_Temp[1,15]
          W_Concat=W_Concat:W_OrgUrssaf
       END
       W_Temp=W_Temp "R%15"
    END

    W_Concat=W_Concat:W_Temp:"0031"

    W_Concat=W_Concat:W_AnneeTrimestre:W_NumTrimestre

    W_Concat=W_Concat:"1000000M30"

    * Identification du salarie
    W_Temp=EXTRACT(ENR_CIVILAIDANT,17)
    CONVERT " " TO "" IN W_Temp
    W_Concat=W_Concat:W_Temp "L#13"
    W_Concat=W_Concat:EXTRACT(ENR_CIVILAIDANT,18) "L#2"

    W_Temp=EXTRACT(ENR_CIVILAIDANT,4)
    W_Temp=W_Temp[1,30]
    W_Temp=W_Temp "L#30"
    W_Concat=W_Concat:W_Temp

    W_Temp=EXTRACT(ENR_CIVILAIDANT,3)
    W_Temp=W_Temp[1,20]
    W_Temp=W_Temp "L#20"
    W_Concat=W_Concat:W_Temp:SPACE(20)

    W_Temp=EXTRACT(ENR_CIVILAIDANT,2)
    IF W_Temp#EXTRACT(ENR_CIVILAIDANT,4) THEN
       W_Temp=W_Temp[1,30]
       W_Temp=W_Temp "L#30"
       W_Concat=W_Concat:W_Temp
    END ELSE
       W_Concat=W_Concat:SPACE(30)
    END

    IF W_DetailChgPartemp="FAUX" THEN
       W_Date=EXTRACT(ENR_CONTRAT,7)
       GOSUB 900
       IF W_ComprisDansTrimestre = "VRAI" THEN
          W_Concat=W_Concat:"1"
       END ELSE
          W_Concat=W_Concat:"0"
       END
    END ELSE
       W_Concat=W_Concat:"1"
    END   

   * Date et lieu de naissance
    W_Temp=EXTRACT(ENR_CIVILAIDANT,26)
    IF W_Temp # "" THEN
       W_Temp=OCONV(W_Temp,"D4/")
       W_Temp=W_Temp[1,2]:W_Temp[4,2]:W_Temp[7,4]
    END ELSE
       W_Temp="00000000"
    END
    W_Concat=W_Concat:W_Temp

    W_Temp=EXTRACT(ENR_CIVILAIDANT,28)
    IF W_Temp=0 OR W_Temp= "" THEN
       W_Temp="00"
    END
    W_Concat=W_Concat:W_Temp

    W_Temp=EXTRACT(ENR_CIVILAIDANT,29)
    IF W_Temp # "" THEN
       W_Concat=W_Concat:W_Temp[4,3]
    END ELSE
       W_Concat=W_Concat:"000"
    END

    W_TempBis=EXTRACT(ENR_CIVILAIDANT,27)
    IF W_Temp="000000" THEN
       IF LEN(W_TempBis)#0 THEN
          W_TempBis=W_TempBis[1,26]
          W_TempBis=W_TempBis "L#26"
          W_Concat=W_Concat:W_TempBis
       END ELSE
          W_Concat=W_Concat:SPACE(26)
       END
    END ELSE
       W_Temp=EXTRACT(ENR_CIVILAIDANT,30)
       W_Temp=W_Temp[1,26]
       W_Temp=W_Temp "L#26"
       W_Concat=W_Concat:W_Temp
    END

    * Adresse de l'employe
    W_Temp=EXTRACT(ENR_CIVILAIDANT,9)
    W_Temp=W_Temp "L#32"
    W_Concat=W_Concat:W_Temp

    W_Temp=EXTRACT(ENR_CIVILAIDANT,5)
    W_Temp=W_Temp "R#4"
	*Modif Jonathan le 07/07/2009
	GOSUB 940
	*Fin modif Jonathan
    W_Concat=W_Concat:W_Temp

    W_Temp=EXTRACT(ENR_CIVILAIDANT,6)
    W_Temp=W_Temp[1,1]
    IF W_Temp="B" OR W_Temp="T" THEN
        W_Concat=W_Concat:W_Temp:" "
    END ELSE
        W_Concat=W_Concat:"  "
    END

    W_Temp=EXTRACT(ENR_CIVILAIDANT,7)
    W_Concat=W_Concat:W_Temp:SPACE(3 - LEN(W_Temp))

    W_Temp=EXTRACT(ENR_CIVILAIDANT,8)
    W_Temp=W_Temp[1,23]
    W_Concat=W_Concat:W_Temp:SPACE(23 - LEN(W_Temp))

    * Adresse Ville
    W_Concat=W_Concat:"00000 "

    W_Temp=EXTRACT(ENR_CIVILAIDANT,11)
    W_Temp=W_Temp[1,26]
    W_Concat=W_Concat:W_Temp:SPACE(26 - LEN(W_Temp))

    * Centre de distribution
    W_Temp=EXTRACT(ENR_CIVILAIDANT,10)
    IF W_Temp="" THEN
       W_Temp="00000"
    END
    W_Concat=W_Concat:W_Temp:" "

    W_Temp=EXTRACT(ENR_CIVILAIDANT,11)
    W_Temp=W_Temp[1,26]
    W_Concat=W_Concat:W_Temp:SPACE(26 - LEN(W_Temp))

    IF W_DetailChgPartemp="FAUX" THEN   
       W_Date=EXTRACT(ENR_CONTRAT,8)
       IF W_Date#"" THEN
          GOSUB 900
          IF W_ComprisDansTrimestre = "VRAI" THEN
             W_Concat=W_Concat:"D"
          END ELSE
             W_Concat=W_Concat:" "
          END
       END ELSE
          W_Concat=W_Concat:" "
       END
       IF EXTRACT(W_Aidant,K,4)="F" THEN
          W_Ind=4
       END ELSE
          W_Ind=3
       END
    END ELSE
       W_Concat=W_Concat:" "
       W_Ind=3
    END

    W_Concat=W_Concat:EXTRACT(ENR_TYPEEXO,W_Ind,EXTRACT(ENR_ELTSPARTEMP,9)+1):SPACE(8)

   * SALAIRES Nbr heures
    IF W_DetailChgPartemp = "FAUX" THEN
        W_Heures=EXTRACT(W_Aidant,K,2)
        IF W_Heures = "" OR W_Heures = 0 THEN
            IF EXTRACT(W_Aidant,K,3)=0 THEN
               W_Heures = 0
            END ELSE
               W_Heures = 1
            END
        END ELSE
*            W_Heures=INT(W_Heures+1/2)
             W_Heures=INT(W_Heures)
        END
*         W_Heures = W_Heures[1, 4]

    END ELSE
        W_Heures = EXTRACT(ENR_DETAILCHGPARTEMP,3, K)
    END

    * Salaire net horaire
    IF W_DetailChgPartemp = "FAUX" THEN
        W_BrutAidant =EXTRACT(W_Aidant,K,3)
        IF W_BrutAidant = "" THEN
            W_BrutAidant = 0
        END
        
        * Pourcentage
        IF EXTRACT(W_Aidant,K,4) # "F" THEN
           W_Net = W_BrutAidant * W_ValCharges
        END ELSE
           W_Net = W_BrutAidant * W_ValChargesForfait
        END
        W_Net = W_Net / 100
        W_Net = W_BrutAidant - W_Net

        W_TempNet=W_Net

        IF W_Heures # 0 THEN
            * Divise par le nombre d'heures
            W_Net = W_Net / W_Heures
        END ELSE
            IF W_CumulBrutAidant # 0 AND W_Net # 0 THEN
               W_Heures = 1
            END
        END

        W_Net= INT(W_Net*100+1/2)
        IF EXTRACT(W_Aidant,K,4) # "F" THEN
           W_ValSmicTemp=W_ValSmic
        END ELSE
           W_ValSmicTemp=W_ValSmicNetForfait
        END
	
        IF W_Net < W_ValSmicTemp AND W_Net # 0 THEN
           W_Net = W_ValSmicTemp
           W_Heures=INT(W_TempNet * 100 / W_ValSmicTemp + 1/2)
           IF W_Heures = 0 THEN
              W_Heures=1
           END
        END
		
        IF W_Net >= W_TauxHorNet THEN
            W_TempNet=INT(W_TempNet*100 +1/2)		
            W_Heures=INT(W_TempNet/W_ValSmicTemp)	
            W_Net=INT(W_TempNet/W_Heures+1/2)		
        END

    END ELSE
        W_Net = EXTRACT(ENR_DETAILCHGPARTEMP,4, K)
    END

    W_HeuresEcri=W_Heures
    W_Heures=W_Heures "R%4"
    W_Concat=W_Concat:W_Heures
	 
    W_NetEcri=W_Net
    W_Temp=W_Net "R%5"
    W_Concat = W_Concat:W_Temp
  
    IF W_DetailChgPartemp="FAUX" THEN
       IF EXTRACT(W_Aidant,K, 1)#"" THEN
           IF EXTRACT(ENR_DETAILCHGPARTEMP,3) # "" THEN
               ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,3, -1;W_HeuresEcri)
           END ELSE
               ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,3, 1;W_HeuresEcri)
           END
           IF EXTRACT(ENR_DETAILCHGPARTEMP,4)#"" THEN
              ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,4, -1;W_NetEcri)
           END ELSE
              ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,4, 1;W_NetEcri)
          END
      END

      IF EXTRACT(W_Aidant,K,4) = "F" THEN
          W_Concat=W_Concat:"F"
      END ELSE
          W_Concat=W_Concat:"R"
      END
    END ELSE
      W_Concat=W_Concat:"R"
    END
    
    W_Concat=W_Concat:"0000000000000000000000000000000":W_DevisePaie:SPACE(60)
    ENR_DNT=REPLACE(ENR_DNT,W_PlaceFichier;W_Concat)
RETURN
*
******************************************
*Z10
150 W_Concat=""
    o=1
    FOR o=1 TO 6
       W_Concat=W_Concat:"9999999999"    
    NEXT o
    W_Concat=W_Concat:"99Z10"
   
    W_Temp=W_PlaceFichier "R%8"
    W_Concat=W_Concat:W_Temp
    
    W_TotalCotisation=INT(W_TotalCotisation+1/2)
    W_Temp=W_TotalCotisation "R%10"
    W_Concat= W_Concat:W_Temp
    
    IF ENR_CENTREURSSAF<23>="P" THEN
    	W_Temp="00000000000"
    	W_Concat= W_Concat:W_Temp

        W_RibTep="00000000000000000000000"
    	W_Concat= W_Concat:W_RibTep
    END ELSE
		* christophe le 03/04/2009 DA8114-01
		W_TotalTep=INT(W_TotalTep+1/2)
		W_Temp=W_TotalTep "R%11"
		W_Concat= W_Concat:W_Temp

		W_Concat= W_Concat:W_RibTep

	END



    W_Concat=W_Concat:W_DeviseDecl:W_DevisePaie:SPACE(341)
    ENR_DNT=REPLACE(ENR_DNT,W_PlaceFichier;W_Concat)
RETURN
*
******************************************************
* IF W_CountAidant#0 THEN prog principal
800 IF W_DateMax<W_DatFinTri THEN
      ENR_ELTSPARTEMP=REPLACE(ENR_ELTSPARTEMP,14;W_DateMax)
   END
   * Gestion du TEP
   W_EOF="FAUX"
   W_TepDeduc = 0
   READ ENR_REGULDNT FROM F.REGULDNT,W_CleAidePrec THEN
      K=1
      W_MontantTep=0
      W_PeriodeDnt=""
      LOOP
         W_MontantTep=EXTRACT(ENR_REGULDNT,1,K)
         W_PeriodeDnt=EXTRACT(ENR_REGULDNT,2,K)
         IF W_PeriodeDnt#"" THEN
            IF W_MontantTep="" OR W_PeriodeDnt < W_AnneeTrimestre:W_NumTrimestre THEN
               W_EOF="VRAI"
            END
         END ELSE
            IF W_MontantTep="" THEN
               W_EOF="VRAI"
            END
         END
      WHILE W_EOF="FAUX" DO
         W_TepDeduc = W_TepDeduc + EXTRACT(ENR_REGULDNT,1, K)
         IF W_PeriodeDnt="" THEN
            ENR_REGULDNT=REPLACE(ENR_REGULDNT,2,K;W_AnneeTrimestre:W_NumTrimestre)
         END
         K=K+1
      REPEAT
      WRITE ENR_REGULDNT ON F.REGULDNT,W_CleAidePrec
   END

W_NumAffil1="VRAI"
W_Num2Urssaf=EXTRACT(ENR_ELTSPARTEMP,3)
W_CumulBrutAidant=0
W_CumulDeducBrut=0

IF W_CountAidant>NbJProNo1 AND W_Num2Urssaf#"" THEN
* la 1
   FOR K=1 TO NbJProNo1
      W_CumulBrutAidant=W_CumulBrutAidant+EXTRACT(W_Aidant,K,3)
	IF EXTRACT(W_Aidant,K,4) = "B" THEN
      	W_CumulDeducBrut=W_CumulDeducBrut+EXTRACT(W_Aidant,K,3)
	END
   NEXT K
   * G10
   GOSUB 120
   W_PlaceFichier=W_PlaceFichier+1
   * H10
   GOSUB 130
   W_PlaceFichier=W_PlaceFichier+1
   FOR K=1 TO NbJProNo1
      READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,EXTRACT(W_Aidant,K,1) ELSE PRINT "AIDANT"
*      Modif Jonathan le 02/07/2009
*	  *M30
	  IF W_Aidant<K,3> # 0 THEN
		  GOSUB 140 
		  W_PlaceFichier=W_PlaceFichier+1
	  END
*	  *Fin modif Jonathan
	NEXT K
   W_NumAffil1="FAUX"
* la 2
   W_CumulBrutAidant=0
   W_CumulDeducBrut=0
*   W_TabCumulBrutAidant<1>=0
*   W_TabCumulBrutAidant<2>=0
*   W_TabCumulBrutAidant<3>=0
*   W_TabCumulBrutAidant2<1>=0
*   W_TabCumulBrutAidant2<2>=0
*   W_TabCumulBrutAidant2<3>=0

   NbJProNo2=NbJProNo1+1
   FOR K=NbJProNo2 TO W_CountAidant
      W_CumulBrutAidant=W_CumulBrutAidant+EXTRACT(W_Aidant,K,3)
	IF EXTRACT(W_Aidant,K,4) = "B" THEN
      	W_CumulDeducBrut=W_CumulDeducBrut+EXTRACT(W_Aidant,K,3)
	END
   NEXT K
   * G10
   GOSUB 120
   W_PlaceFichier=W_PlaceFichier+1
   * H10
   GOSUB 130
   W_PlaceFichier=W_PlaceFichier+1
   FOR K=NbJProNo2 TO W_CountAidant
      READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,EXTRACT(W_Aidant,K,1) ELSE PRINT "AIDANT"
      *Modif Jonathan le 02/07/2009
	  *M30
	  IF W_Aidant<K,3> # 0 THEN
		  GOSUB 140 
		  W_PlaceFichier=W_PlaceFichier+1
	  END
	  *Fin modif Jonathan
   NEXT K
END ELSE
* la 3
   FOR K=1 TO W_CountAidant
      W_CumulBrutAidant=W_CumulBrutAidant+EXTRACT(W_Aidant,K,3)
	IF EXTRACT(W_Aidant,K,4) = "B" THEN
      	W_CumulDeducBrut=W_CumulDeducBrut+EXTRACT(W_Aidant,K,3)
	END
   NEXT K
   * G10
   GOSUB 120
   W_PlaceFichier=W_PlaceFichier+1
   * H10
   GOSUB 130
   W_PlaceFichier=W_PlaceFichier+1
   FOR K=1 TO W_CountAidant
      READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,EXTRACT(W_Aidant,K,1) ELSE PRINT "AIDANT"
      *Modif Jonathan le 02/07/2009
	  *M30
	  IF W_Aidant<K,3> # 0 THEN
		  GOSUB 140 
		  W_PlaceFichier=W_PlaceFichier+1
	  END
	  *Fin modif Jonathan
   NEXT K
   IF W_Num2Urssaf # "" THEN
   * faire un M30 A vide
      W_TabCumulBrutAidant<1>=0
      W_TabCumulBrutAidant<2>=0
      W_TabCumulBrutAidant<3>=0
      W_TabCumulBrutAidant2<1>=0
      W_TabCumulBrutAidant2<2>=0
      W_TabCumulBrutAidant2<3>=0

      W_CumulBrutAidant=0
	W_CumulDeducBrut=0
      W_NumAffil1="FAUX" 
      * G10
      GOSUB 120
      W_PlaceFichier=W_PlaceFichier+1
      * H10
      GOSUB 130
      W_PlaceFichier=W_PlaceFichier+1
      * M30
      K=1
      W_Aidant=REPLACE(W_Aidant,1,1;EXTRACT(W_Aidant,K,1))
      W_Aidant=REPLACE(W_Aidant,1,2;"0")
      W_Aidant=REPLACE(W_Aidant,1,3;"0")
	  GOSUB 140 
      W_PlaceFichier=W_PlaceFichier+1
   END
END

IF W_DetailChgPartemp="FAUX" THEN
   ENR_DETAILCHGPARTEMP=REPLACE(ENR_DETAILCHGPARTEMP,5;W_TepDeduc)
   WRITE ENR_DETAILCHGPARTEMP ON F.DETAILCHGPARTEMP,W_CleAidePrec:W_AnneeTrimestre:W_NumTrimestre            
   ENR_DETAILCHGPARTEMP=""
END
RETURN
******************************************************
* END ELSE prog principal (IF W_CountAidant#0 THEN)
810 W_MontantTepDeduc = 0
    W_CumulDeducBrut=0
    * G10
    GOSUB 120
    W_PlaceFichier=W_PlaceFichier+1
    * H10
    GOSUB 130
    W_NumAffil1="VRAI"
    W_PlaceFichier=W_PlaceFichier+1
    W_Aidant=REPLACE(W_Aidant,1,1;W_CleContratPrec[1,5])
    W_Aidant=REPLACE(W_Aidant,1,2;"0")
    W_Aidant=REPLACE(W_Aidant,1,3;"0")
    K=1
    READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,EXTRACT(W_Aidant,K,1) ELSE PRINT "AIDANT"
    * M30
    *GOSUB 140 
    *W_PlaceFichier=W_PlaceFichier+1
RETURN
******************************************
* Fonctions
* Appartient au trimestre traite
900 IF W_Date >= W_DatDebTri AND W_Date <= W_DatFinTri THEN
        W_ComprisDansTrimestre = "VRAI"
    END ELSE
        W_ComprisDansTrimestre = "FAUX"
    END
RETURN
**************************************************
* Tableau des taux des charges Urssaf
910 FOR i = 1 TO 8
        READ ENR_CHGPARTEMP FROM F.CHGPARTEMP,"0":i ELSE PRINT "CHGPARTEMP"
        j = 1
        LOOP
        WHILE W_DatFinTri < EXTRACT(ENR_CHGPARTEMP,3, j) DO
            j = j + 1
        REPEAT
        W_TauxUrssaf=REPLACE(W_TauxUrssaf,i;EXTRACT(ENR_CHGPARTEMP,2, j) / 1000)
    NEXT i
RETURN
***************************************************
* Lectures DetailCalcul
920

   W_DebPeriode="" 
   W_FinPeriode=""
   W_DebContrat=EXTRACT(ENR_CONTRAT,7)
   W_FinContrat=EXTRACT(ENR_CONTRAT,8)
   W_CleDetailCalcul=""

    IF W_DatFinTri < W_DebContrat THEN
        * Contrat non valide
        W_DateMax = 99999
    END ELSE
        IF W_DatDebTri > W_DebContrat THEN
            W_DebPeriode = OCONV(W_DatDebTri,"D4/")
            W_DebPeriode=W_DebPeriode[4,2]
        END ELSE
            W_DebPeriode = OCONV(W_DebContrat,"D4/")
            W_DebPeriode=W_DebPeriode[4,2]
        END
        IF W_FinContrat # "" THEN
            IF W_DatFinTri > W_FinContrat THEN
                W_FinPeriode = OCONV(W_FinContrat,"D4/")
                W_FinPeriode = W_FinPeriode[4,2]
            END ELSE
                W_FinPeriode = OCONV(W_DatFinTri,"D4/")
                W_FinPeriode = W_FinPeriode[4,2]
            END
        END ELSE
            W_FinPeriode = OCONV(W_DatFinTri,"D4/")
            W_FinPeriode = W_FinPeriode[4,2]
        END

	GOSUB 930

        FOR j = W_DebPeriode TO W_FinPeriode
            W_CleDetailCalcul=j "R(%2)"
            IF W_TabTri<1> = W_CleDetailCalcul THEN
               iTabCumul=1
            END ELSE
               IF W_TabTri<2> = W_CleDetailCalcul THEN
                  iTabCumul=2
               END ELSE
                  iTabCumul=3
               END
            END

            W_DateBulletin = ICONV("01/":W_CleDetailCalcul:"/":W_AnneeTrimestre,"D4/")       

            W_CleDetailCalcul=W_CleContrat:W_AnneeTrimestre:W_CleDetailCalcul
            READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,W_CleDetailCalcul THEN

                IF EXTRACT(W_Aidant,W_CountAidant, 1) # W_CleContrat[1,5] THEN
                    W_CountAidant = W_CountAidant + 1
                END
                W_Aidant=REPLACE(W_Aidant,W_CountAidant, 1;W_CleContrat[1,5])

                IF EXTRACT(W_Aidant,W_CountAidant, 2) = "" THEN
                    W_Aidant=REPLACE(W_Aidant,W_CountAidant,2;EXTRACT(ENR_DETAILCALCUL,6) / 100)
                    IF EXTRACT(ENR_CONTRAT,30) <> "B" THEN
                       W_Salaire=INT(EXTRACT(ENR_DETAILCALCUL,6) / 100 * W_TabValSmic<iTabCumul> + 1/2) / 100

                       W_Aidant=REPLACE(W_Aidant,W_CountAidant,3;W_Salaire)
                    END ELSE
                       W_Salaire=EXTRACT(ENR_DETAILCALCUL,7) / 100
			     IF W_DatePassageEuro > W_DateBulletin AND W_DeviseDecl = "EUR" THEN
				   W_Salaire = INT(W_Salaire / 6.55957 + 1/2)
			     END
                       W_Aidant=REPLACE(W_Aidant,W_CountAidant,3;W_Salaire)
                    END
                END ELSE
                    W_Aidant=REPLACE(W_Aidant,W_CountAidant,2;EXTRACT(W_Aidant,W_CountAidant,2) + EXTRACT(ENR_DETAILCALCUL,6) / 100)
                    IF EXTRACT(ENR_CONTRAT,30) <> "B" THEN
                       W_Salaire=INT(EXTRACT(ENR_DETAILCALCUL,6) / 100 * W_TabValSmic<iTabCumul> + 1/2) / 100

                       W_Aidant=REPLACE(W_Aidant,W_CountAidant,3;W_Aidant<W_CountAidant,3> + W_Salaire)
                    END ELSE
                       W_Salaire=EXTRACT(ENR_DETAILCALCUL,7) / 100
			     IF W_DatePassageEuro > W_DateBulletin AND W_DeviseDecl = "EUR" THEN
				   W_Salaire = INT(W_Salaire / 6.55957 + 1/2)
			     END
                       W_Aidant=REPLACE(W_Aidant,W_CountAidant,3;W_Aidant<W_CountAidant,3> + W_Salaire)
                    END
                END
                W_TotalBrut = W_TotalBrut + W_Salaire
                IF W_CountAidant > NbJProNo1 THEN 
                   W_TabCumulBrutAidant2<iTabCumul>=W_TabCumulBrutAidant2<iTabCumul> + W_Salaire
                END ELSE
                   W_TabCumulBrutAidant<iTabCumul>=W_TabCumulBrutAidant<iTabCumul> + W_Salaire
                END
                W_Aidant=REPLACE(W_Aidant,W_CountAidant,4;EXTRACT(ENR_CONTRAT,30))
                W_Aidant=REPLACE(W_Aidant,W_CountAidant,5;W_65Ans)
            END
        NEXT j

        * Gestion date de radiation
        IF W_FinContrat # "" THEN
            IF W_FinContrat > W_DateMax THEN
                W_DateMax = W_FinContrat
            END
        END ELSE
            W_DateMax = 99999
        END
    END

RETURN

**************************************************************
* RECHERCHE AGE AIDANT
930

        READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CleContrat[1,5] ELSE PRINT "AIDANT"

	W_DateNais=ENR_CIVILAIDANT<26>
        IF W_DateNais#"" THEN
		W_DateNais=OCONV(W_DateNais,"D4/")
		*christophe  + Kevin -0 9/04/2009 DA9019
		W_DateRef=OCONV(W_DatDebTri,"D4/")
	     	W_AnneeFaite = W_DateRef[7,4] - W_DateNais[7,4]
       	 	W_MoisFait = W_DateRef[4,2] - W_DateNais[4,2]
       	 	W_JourFait = W_DateRef[1,2] - W_DateNais[1,2]
        	IF W_JourFait < 0 THEN
        		W_MoisFait = W_MoisFait - 1
        	END
        	IF W_MoisFait < 0 THEN
        		W_AnneeFaite = W_AnneeFaite - 1
        	END
        	IF W_AnneeFaite >= 65 THEN
        		W_65Ans="VRAI"
   			W_SansAssedic="VRAI"
        	END ELSE
        		W_65Ans="FAUX"
		END
	END ELSE
        	W_65Ans="FAUX"
	END

RETURN
*Modification Jonathan le 07/07/2009
*****************************************************************
*Conversion caractres "/"
940
	
	W_Temp2 = ""
	
	FOR a = 1 TO LEN(W_Temp)
		IF SEQ(W_Temp[a,1]) < 48 OR SEQ(W_Temp[a,1]) > 57 THEN
			W_Temp2 = W_Temp2:" "
		END ELSE
			W_Temp2 = W_Temp2:W_Temp[a,1]
		END
	NEXT a
	
	W_Temp = W_Temp2
	
RETURN
*Fin modif Jonathan