***********************************************************
*                                                         *
* TRAITEMENT DES DADS VERSION MAGNETIQUE - TDS NORMES     *
*                                                         *
* NOVEMBRE 2000                           STEPHANE HERVET *
*                                                         *
***********************************************************

* RECAPITULATIF DES MODIFICATIONS 
* 12/01/01 -> INTEGRATION DU RAPPORT EXECUTION

* RECAPITULATIF DES GOSUB
* 1   -> PREPARATION DRAPEAU DEBUT                              000
* 2   -> PREPARATION ENTETE ENTREPRISE                          010
* 3   -> PREPARATION ENTETE ETABLISSEMENT                       020
* 4   -> PREPARATION TARIFICATION DES AT                        130    
* 5   -> PREPARATION LIGNE SALARIE                              200   
* 6   -> PREPARATION LIGNE SALARIE NEGATIF                      202  
* 7   -> PREPARATION LIGNE HONORAIRE                            210    
* 8   -> PREPARATION LIGNE TOTAL ETABLISSEMENT                  300    
* 9   -> PREPARATION LIGNE TOTAL ETABLISSEMENT NEGATIF          302    
* 10  -> PREPARATION LIGNE TOTAL ASSOCIATION                    310   
* 11  -> PREPARATION LIGNE TOTAL ASSOCIATION NEGATIF            312    
* 99  -> PREPARATION DRAPEAU FIN                                990

* 100 -> TRAITEMENT ADRESSE ETABLISSEMENT
* 110 -> TRAITEMENT ETAT CIVIL AIDANT
* 120 -> TRAITEMENT INFORMATION CONTRAT DE TRAVAIL
* 130 -> TRAITEMENT INFORMATION HISTORCUMUL

* 200 -> TRAITEMENT HISTORCUMUL // SALAIRE
* 201 -> SI SOMME NEGATIVE ALORS GENERATION VARIABLES NEGATIVES
* 210 -> CALCUL CODE ABSENCES "A"-"I"-"P"-"K"-"S"-"D"-" "
* 211 -> CALCUL CODE ABSENCES "A"-"I"-"P"-"K"-"S"-"D"-" " POUR SALARIE NEGATIF (202)

* 300 -> GESTION TOTAUX ETABLISSEMENT + ASSOCIATION
* 310 -> MISE EN FORME VARIABLES ETABLISSEMENT
* 311 -> GESTION TAXE SUR SALAIRES DUE
* 350 -> GESTION TOTAUX ETABLISSEMENT + ASSOCIATION NEGATIF

* 400 -> GESTION TOTAUX ASSOCIATION
* 401 -> MISE EN FORME VARIABLES ASSOCIATION
* 410 -> MISE EN FORME VARIABLES TDSTARIFICATIONAT

* 500 -> GESTION PERIODES CONTRATS

* 600 -> MISE EN FORME DONNEES HONORAIRES
* 610 -> CUMULE LES SOMMES ETABLISSEMENT + ASSOCIATION (HONORAIRE)

* 700 -> GENERATION RAPPORT EXECUTION

* 990 -> R.A.Z. VARIABLES SALAIRES
* 991 -> R.A.Z. VARIABLES ETABLISSEMENT
* 992 -> R.A.Z. VARIABLES ASSOCIATION
* 999 -> INITIALISATION DES VARIABLES

***********************************************************
***********************************************************
* OUVERTURE 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 "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","ETABLISSEMENT" TO F.ETABLISSEMENT ELSE STOP
OPEN "","ETRANGER" TO F.ETRANGER ELSE STOP
OPEN "","HISTORCUMUL" TO F.HISTORCUMUL ELSE STOP
OPEN "","HISTORCUMULETABL" TO F.HISTORCUMULETABL ELSE STOP
OPEN "","RUBCHARGE" TO F.RUBCHARGE ELSE STOP
OPEN "","TABLES" TO F.TABLES ELSE STOP
OPEN "","DADSTDS" TO F.DADSTDS ELSE STOP
OPEN "","TAMPONDADS" TO F.TAMPONDADS ELSE STOP
OPEN "","TDSCASPARTICULIERS" TO F.TDSCASPARTICULIERS ELSE STOP
OPEN "","TDSFRAISPROFESSIONNELS" TO F.TDSFRAISPROFESSIONNELS ELSE STOP
OPEN "","TDSHONORAIRES" TO F.TDSHONORAIRES ELSE STOP
OPEN "","TDSTARIFICATIONAT" TO F.TDSTARIFICATIONAT ELSE STOP
OPEN "","TDSURSSAFTOTALITE" TO F.TDSURSSAFTOTALITE ELSE STOP
OPEN "","TRANCHE" TO F.TRANCHE ELSE STOP

***********************************************************
* DEBUT TRAITEMENT DES ARTICLES

PROCREAD PARAMETRES ELSE STOP

* RECUPERE LA PERIODE
W_RANGPERIODE=INDEX(PARAMETRES," ",1)
W_PERIODE=PARAMETRES[W_RANGPERIODE+1,4]

* RECUPERE LE CODE ENTITE
W_RANGENTITE=INDEX(PARAMETRES," ",2)
W_CODEENTITE=PARAMETRES[W_RANGENTITE+1,3]

* INITIALISATION DES VARIABLES
GOSUB 999

***********************************************************
* SELECTION + CHARGEMENT DE LA LISTE DES ARTICLES SELECTIONNES

* LECTURE ABATTEMENT TAXE SALAIRE
READ ENR_TDSCASPARTICULIERS FROM F.TDSCASPARTICULIERS,"000" ELSE ENR_TDSCASPARTICULIERS=""
IF ENR_TDSCASPARTICULIERS<1>="" THEN ENR_TDSCASPARTICULIERS<1>=0
W_ABATTEMENT=INT((ENR_TDSCASPARTICULIERS<1>/100)+1/2)

* LECTURE ENTITE
READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CODEENTITE ELSE ENR_ASSOCIATION=""

* VERIFIE SI FICHIER HONORAIRES
LISTETDSHONORAIRES = ""
EXECUTE 'TSELECT TDSHONORAIRES AVEC @ID = "':W_PERIODE:W_CODEENTITE:']"'
EXECUTE "SAUVE-LISTE LISTETDSHONORAIRES"
EXECUTE "LISTE LISTETDSHONORAIRES" RETURNING MSGCODE

IF MSGCODE<1>=209 THEN 
    W_TYPEDADS=5
END ELSE
    W_TYPEDADS=0
END

SELECT F.TDSHONORAIRES TO LISTETDSHONORAIRES

* TEST SI DECALAGE PAIE
IF ENR_ASSOCIATION<25>=0 THEN
    * CALCUL 1ER JOUR ANNEE + DERNIER JOUR ANNEE
    W_DEBUTAN="01/01/":W_PERIODE
    W_DEBUTAN=ICONV(W_DEBUTAN,"D4/")
    W_FINAN="31/12/":W_PERIODE
    W_FINAN=ICONV(W_FINAN,"D4/")
    W_FINANNEE=W_PERIODE:"12"
END ELSE
    * CALCUL 1ER JOUR DECEMBRE + DERNIER JOUR NOVEMBRE
    W_DEBUTAN="01/12/":W_PERIODE-1
    W_DEBUTAN=ICONV(W_DEBUTAN,"D4/")
    W_FINAN="30/11/":W_PERIODE
    W_FINAN=ICONV(W_FINAN,"D4/")
    W_FINANNEE=W_PERIODE:"11"
END

W_DEBUTPERIODE=OCONV(W_DEBUTAN,"D2/")
W_DEBUTPERIODE=W_DEBUTPERIODE[1,2]:W_DEBUTPERIODE[4,2]
W_FINPERIODE=OCONV(W_FINAN,"D2/")
W_FINPERIODE=W_FINPERIODE[1,2]:W_FINPERIODE[4,2]

* TEST VALIDITE DATE EURO 
* SI <  01/01/02 ALORS DRAPEAU DEB = 005 ET FIN = 995 => EUROS
* SI >= 01/01/02 ALORS DRAPEAU DEB = 000 ET FIN = 990 => FRANC
READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE,"1" ELSE STOP

W_DRAPEAUDEB="005"
W_DRAPEAUFIN="995"

* SELECTIONNE LES CONTRATS VALIDE SUR L'ANNEE, PRESTATAIRE ET A L'ENTITE
CONTRATDADS = ""
EXECUTE 'TSELECT CONTRAT AVEC 1 <> "02" AND AVEC 2 = "':W_CODEENTITE:'" AND AVEC 8 >= "':W_DEBUTAN:'" OR = "" AND AVEC 7 <= "':W_FINAN:'" AND AVEC 65 <> "O" PAR 3 PAR NomPrenomAidantContratMarital PAR NomPrenomAidantContrat'
EXECUTE "SAUVE-LISTE CONTRATDADS"
EXECUTE "LISTE CONTRATDADS" RETURNING MSGCODE

IF MSGCODE<1>=209 THEN
    STOP
END

SELECT F.CONTRAT TO CONTRATDADS

W_REQVIDE="FAUX"
LOOP
    * LECTURE RESULTAT REQUETE JUSQUE REQUETE = VIDE
    READNEXT CLE FROM CONTRATDADS ELSE W_REQVIDE="VRAI"
    UNTIL W_REQVIDE="VRAI" DO

    READ ENR_CONTRAT FROM F.CONTRAT,CLE ELSE ENR_CONTRAT=""

    * SI FICHIER VIDE : 1ER PASSAGE
    IF ENR_DADSTDS="" THEN
        * PREPARATION ENTETE DU FICHIER + LEGENDE
	READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,ENR_CONTRAT<3> ELSE ENR_ETABLISSEMENT=""
	IF ENR_ETABLISSEMENT<25>="" THEN 
	    W_FRACTION="00"
	END ELSE
	    W_FRACTION=ENR_ETABLISSEMENT<25>
	    IF LEN(W_FRACTION)<2 THEN W_FRACTION=W_FRACTION "R%2"
	END

	W_ANCIENETAB=ENR_CONTRAT<3>

        GOSUB 1   ;*000
	GOSUB 2   ;*010
	I=3
	GOSUB 3   ;*020

	I=I+1
	GOSUB 4   ;*130

	W_AIDANT=CLE[1,5]
    END 
    
    * GESTION DADS SALARIE
    IF W_AIDANT<>CLE[1,5] THEN

        I=I+1
	GOSUB 5   ;*200
        GOSUB 6   ;*202

        W_AIDANT=CLE[1,5]

	W_NBJOURAN=0
	W_PERIODECONTRAT=""
        W_PERIODECONTRAT2=""
    END

    GOSUB 500

    * SI CHANGEMENT ETABLISSEMENT
*    IF W_ANCIENETAB<>ENR_CONTRAT<3> AND W_ANCIENETAB<>"" THEN
    IF W_ANCIENETAB<>ENR_CONTRAT<3> THEN
	W_ANCIENETAB=ENR_CONTRAT<3>

	GOSUB 7   ;*210

	I=I+1
	GOSUB 8   ;*300

	GOSUB 9   ;*302

	IF W_PASSEHONORAIRE=1 THEN 
	   W_TYPEDADS=2
	END

	* R.A.Z. VARIABLES ETABLISSEMENT
	GOSUB 991

	READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,ENR_CONTRAT<3> ELSE ENR_ETABLISSEMENT=""
	IF ENR_ETABLISSEMENT<25>="" THEN 
	    W_FRACTION="00"
	END ELSE
	    W_FRACTION=ENR_ETABLISSEMENT<25>
	    IF LEN(W_FRACTION)<2 THEN W_FRACTION=W_FRACTION "R%2"
	END

	I=I+1
	GOSUB 3   ;*020

	I=I+1
	GOSUB 4   ;*130

	GOSUB 500
    END
        
REPEAT

I=I+1
GOSUB 5   ;*200
GOSUB 6   ;*202

GOSUB 7   ;*210

I=I+1
GOSUB 8   ;*300

GOSUB 9   ;*302

I=I+1
GOSUB 10   ;*310

GOSUB 11   ;*312

GOSUB 99   ;*990

GOSUB 700  

* ECRITURE FICHIER DADS
WRITE ENR_DADSTDS ON F.DADSTDS,W_CODEENTITE:W_PERIODE

STOP

***********************************************************
* PREPARATION DRAPEAU DEBUT                             000

1 *

    ENR_DADSTDS<1>="0000000000000000000":W_DRAPEAUDEB:"1":ENR_ETABLISSEMENT<14>:SPACE(527)

RETURN

***********************************************************
* PREPARATION ENTETE ENTREPRISE                         010

2 *

    * DECOUPAGE SI NECESSAIRE
    ENR_ASSOCIATION<1>=ENR_ASSOCIATION<1>[1,50]
    ENR_ASSOCIATION<7>=ENR_ASSOCIATION<7>[1,32]
    ENR_ASSOCIATION<9>=ENR_ASSOCIATION<9>[1,26]
    W_NOMVOIEASSO=ENR_ASSOCIATION<5>:" ":ENR_ASSOCIATION<6>
    W_NOMVOIEASSO=W_NOMVOIEASSO[1,26]

    * SI PAS ADRESSE ETABLISSEMENT
    GOSUB 100

    * ZONE INDICATIF
    ENR_DADSTDS<2>=ENR_ASSOCIATION<14>:"0000000000010":ENR_ETABLISSEMENT<14>:ENR_ETABLISSEMENT<15>:SPACE(5):ENR_ASSOCIATION<1>:SPACE(50-LEN(ENR_ASSOCIATION<1>))
    * ADRESSE AU 31/12
    ENR_DADSTDS<2>=ENR_DADSTDS<2>:ENR_ASSOCIATION<7>:SPACE(32-LEN(ENR_ASSOCIATION<7>)):" "
    * ADRESSE RUE
    ENR_DADSTDS<2>=ENR_DADSTDS<2>:ENR_ASSOCIATION<3>:SPACE(4-LEN(ENR_ASSOCIATION<3>))
    * TEST SI "Bis" OU "Ter"
    IF ENR_ASSOCIATION<4>[1,1]="B" OR ENR_ASSOCIATION<4>[1,1]="T" THEN
	ENR_DADSTDS<2>=ENR_DADSTDS<2>:ENR_ASSOCIATION<4>[1,1]:" ":W_NOMVOIEASSO:SPACE(26-LEN(W_NOMVOIEASSO))
    END ELSE
	ENR_DADSTDS<2>=ENR_DADSTDS<2>:"  ":W_NOMVOIEASSO:SPACE(26-LEN(W_NOMVOIEASSO))
    END
    * ADRESSE VILLE
    ENR_DADSTDS<2>=ENR_DADSTDS<2>:"00000 ":ENR_ASSOCIATION<9>:SPACE(26-LEN(ENR_ASSOCIATION<9>))
    * CENTRE DE DISTRIBUTION
    ENR_DADSTDS<2>=ENR_DADSTDS<2>:ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>:SPACE(26-LEN(ENR_ASSOCIATION<9>)):"0000000":ENR_ETABLISSEMENT<14>:SPACE(5)

    * ADRESSE ETABLISSEMENT DEPOSANT DECLARATION
    ENR_DADSTDS<2>=ENR_DADSTDS<2>:ENR_ETABLISSEMENT<7>:SPACE(32-LEN(ENR_ETABLISSEMENT<7>)):" "
    * ADRESSE RUE
    ENR_DADSTDS<2>=ENR_DADSTDS<2>:ENR_ETABLISSEMENT<3>:SPACE(4-LEN(ENR_ETABLISSEMENT<3>))
    * TEST SI "Bis" OU "Ter"
    IF ENR_ETABLISSEMENT<4>[1,1]="B" OR ENR_ETABLISSEMENT<4>[1,1]="T" THEN
	ENR_DADSTDS<2>=ENR_DADSTDS<2>:ENR_ETABLISSEMENT<4>[1,1]:" ":W_NOMVOIEETAB:SPACE(26-LEN(W_NOMVOIEETAB))
    END ELSE
	ENR_DADSTDS<2>=ENR_DADSTDS<2>:"  ":W_NOMVOIEETAB:SPACE(26-LEN(W_NOMVOIEETAB))
    END
    * ADRESSE VILLE
    ENR_DADSTDS<2>=ENR_DADSTDS<2>:"00000 ":ENR_ETABLISSEMENT<9>:SPACE(26-LEN(ENR_ETABLISSEMENT<9>))
    * CENTRE DE DISTRIBUTION
    ENR_DADSTDS<2>=ENR_DADSTDS<2>:ENR_ETABLISSEMENT<8>:" ":ENR_ETABLISSEMENT<9>:SPACE(26-LEN(ENR_ETABLISSEMENT<9>)):SPACE(185)

RETURN

***********************************************************
* PREPARATION ENTETE ETABLISSEMENT                      020

3 *

    W_NB020=W_NB020+1

    * SI PAS ADRESSE ETABLISSEMENT
    GOSUB 100

    * LECTURE ACTIVITES 
    READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_CONTRAT<36,1> ELSE ENR_ACTIVITES=""
    * LECTURE TABLES TAUXTVA + RECHERCHE TAUX
    READ ENR_TABLES FROM F.TABLES,"TAUXTVA" ELSE ENR_TABLES=""
    J=1
    LOOP
         UNTIL ENR_TABLES<2,J>=ENR_ACTIVITES<11> DO
         J=J+1
    REPEAT
    W_TAUXTVA=ENR_TABLES<4,J>

    * DECOUPAGE SI NECESSAIRE

    IF W_TYPEDADS # 5 THEN
       IF W_FRACTION="02" THEN W_TYPEDADS=2
    END

    * ZONE INDICATIF
    ENR_DADSTDS<I>=ENR_ETABLISSEMENT<14>:W_FRACTION:W_PERIODE[3,2]:W_TYPEDADS:"020"
    * NUMERO SIRET + NAF
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_ETABLISSEMENT<14>:ENR_ETABLISSEMENT<15>:" "
    * NUMERO SIRET SI CHANGE AU 1/1
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:SPACE(14):ENR_ETABLISSEMENT<21>:SPACE(4-LEN(ENR_ETABLISSEMENT<21>)):ENR_ETABLISSEMENT<20>:SPACE(20-LEN(ENR_ETABLISSEMENT<20>)):SPACE(17):ENR_ETABLISSEMENT<1>:SPACE(50-LEN(ENR_ETABLISSEMENT<1>))
    * ADRESSE AU 31/12
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_ETABLISSEMENT<7>:SPACE(32-LEN(ENR_ETABLISSEMENT<7>)):" "
    * ADRESSE RUE
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_ETABLISSEMENT<3>:SPACE(4-LEN(ENR_ETABLISSEMENT<3>))
    * TEST SI "Bis" OU "Ter"
    IF ENR_ETABLISSEMENT<4>[1,1]="B" OR ENR_ETABLISSEMENT<4>[1,1]="T" THEN
	ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_ETABLISSEMENT<4>[1,1]:" ":W_NOMVOIEETAB:SPACE(26-LEN(W_NOMVOIEETAB))
    END ELSE
	ENR_DADSTDS<I>=ENR_DADSTDS<I>:"  ":W_NOMVOIEETAB:SPACE(26-LEN(W_NOMVOIEETAB))
    END
    * ADRESSE VILLE
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"00000 ":ENR_ETABLISSEMENT<9>:SPACE(26-LEN(ENR_ETABLISSEMENT<9>))
    * CENTRE DE DISTRIBUTION
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_ETABLISSEMENT<8>:" ":ENR_ETABLISSEMENT<9>:SPACE(26-LEN(ENR_ETABLISSEMENT<9>))
    * PROFESSION / ACTIVITES
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:SPACE(85)
    * ASSUJETTISSEMENT TAXE SUR SALAIRES
    IF W_TAUXTVA=0 THEN
	 ENR_DADSTDS<I>=ENR_DADSTDS<I>:"I":SPACE(203)
    END ELSE
	 ENR_DADSTDS<I>=ENR_DADSTDS<I>:"N":SPACE(203)
    END

RETURN

***********************************************************
* PREPARATION TARIFICATION DES AT                       130

4 *

    W_NBTARIFAT=1

    * VERIFIE SI FICHIER TDSTARIFICATIONAT
LISTETDSTARIFICATIONAT = ""
    EXECUTE 'TSELECT TDSTARIFICATIONAT AVEC @ID = "':W_PERIODE:ENR_CONTRAT<3>:']"'
    EXECUTE "SAUVE-LISTE LISTETDSTARIFICATIONAT"
    EXECUTE "LISTE LISTETDSTARIFICATIONAT" RETURNING MSGCODE

    SELECT F.TDSTARIFICATIONAT TO LISTETDSTARIFICATIONAT

    * ZONE INDICATIF
    ENR_DADSTDS<I>=ENR_ETABLISSEMENT<14>:W_FRACTION:W_PERIODE[3,2]:W_TYPEDADS:"130"

    LOOP
	 READNEXT CLE2 FROM LISTETDSTARIFICATIONAT ELSE CLE2="000000000000000"
	 UNTIL W_NBTARIFAT=6 DO
	
	 * LECTURE TDSTARIFICATIONAT
	 READ ENR_TDSTARIFICATIONAT FROM F.TDSTARIFICATIONAT,CLE2 ELSE ENR_TDSTARIFICATIONAT=""

         * MISE EN FORME DES INFOS
	 GOSUB 410

	 ENR_DADSTDS<I>=ENR_DADSTDS<I>:"01":CLE2[11,5]:ENR_TDSTARIFICATIONAT<2>:ENR_TDSTARIFICATIONAT<1>:ENR_TDSTARIFICATIONAT<3>:SPACE(12)
 	 * EFFECTIF
	 ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_TDSTARIFICATIONAT<4>:ENR_TDSTARIFICATIONAT<5>:ENR_TDSTARIFICATIONAT<6>:ENR_TDSTARIFICATIONAT<7>
	 ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_TDSTARIFICATIONAT<8>:ENR_TDSTARIFICATIONAT<9>:ENR_TDSTARIFICATIONAT<10>

	 W_NBTARIFAT=W_NBTARIFAT+1
    REPEAT
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:SPACE(142)

RETURN

***********************************************************
* PREPARATION LIGNE SALARIE                             200

5 *

    W_NB200=W_NB200+1

    * R.A.Z. VARIABLES SALAIRES
    GOSUB 990

    * LECTURE DE CIVILAIDANT
    READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_AIDANT ELSE ENR_CIVILAIDANT=""

    * TRAITEMENT ETAT CIVIL
    GOSUB 110

    * TRAITEMENT INFORMATION CONTRAT DE TRAVAIL
    GOSUB 120

    * TRAITEMENT INFORMATION HISTORCUMUL
    GOSUB 130

    * TRAITEMENT CODE ABSENCE
    GOSUB 210

    * CUMULE TOTAL ETABLISSEMENT + ASSOCIATION
    GOSUB 300

    * CUMULE TOTAL ETABLISSEMENT + ASSOCIATION NEGATIF
***    GOSUB 350

    * ZONE INDICATIF
    ENR_DADSTDS<I>=ENR_ETABLISSEMENT<14>:W_FRACTION:W_PERIODE[3,2]:W_TYPEDADS:"20000000":W_AIDANT
    * N.I.R
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_CIVILAIDANT<17>:SPACE(13-LEN(ENR_CIVILAIDANT<17>)):ENR_CIVILAIDANT<18>:SPACE(2-LEN(ENR_CIVILAIDANT<18>))
    * RENSEIGNEMENT NAISSANCE
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_DDN[1,2]:W_DDN[4,2]:W_DDN[7,2]:W_DEPT:W_CODEPAYS:W_PAYS:SPACE(26-LEN(W_PAYS))
    * ETAT CIVIL
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_CIVILAIDANT<1>:SPACE(3-LEN(ENR_CIVILAIDANT<1>)):ENR_CIVILAIDANT<4>:SPACE(30-LEN(ENR_CIVILAIDANT<4>)):ENR_CIVILAIDANT<3>:SPACE(20-LEN(ENR_CIVILAIDANT<3>)):W_NOMUSUEL:SPACE(30-LEN(W_NOMUSUEL))
    * ADRESSE AU 31/12
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_CIVILAIDANT<9>:SPACE(32-LEN(ENR_CIVILAIDANT<9>)):" "
    * ADRESSE RUE
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_CIVILAIDANT<5>:SPACE(4-LEN(ENR_CIVILAIDANT<5>))
    * TEST SI "Bis" OU "Ter"
    IF ENR_CIVILAIDANT<6>[1,1]="B" OR ENR_CIVILAIDANT<6>[1,1]="T" THEN
	ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_CIVILAIDANT<6>[1,1]:" ":W_NOMVOIE:SPACE(26-LEN(W_NOMVOIE))
    END ELSE
	ENR_DADSTDS<I>=ENR_DADSTDS<I>:"  ":W_NOMVOIE:SPACE(26-LEN(W_NOMVOIE))
    END
    * ADRESSE VILLE
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_COMMUNEINSEE:" ":ENR_CIVILAIDANT<11>:SPACE(26-LEN(ENR_CIVILAIDANT<11>))
    * CENTRE DE DISTRIBUTION
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_CIVILAIDANT<10>:" ":ENR_CIVILAIDANT<11>:SPACE(26-LEN(ENR_CIVILAIDANT<11>))
    * EMPLOI OCCUPE
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_EMPLOI:SPACE(30-LEN(W_EMPLOI)):W_CODEPCS:W_ETRANGER:" "
    * PERIODE EMPLOI
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_PERIODECONTRAT:W_PERIODECONTRAT2:W_MOIS60:W_CIPDZ:" ":W_DEPARTDEF
    * SECURITE SOCIALE - REMUNERATION ANNUELLE    
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_SECUTOTAL:W_SECUPLAF
    * SECURITE SOCIALE - CAS PARTICULIERS
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_TAUXPARTTOT
    * IMPOTS - REMUNERATION ANNUELLE
*    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_BASEBRUTEIMP:W_BASENETTEIMP:"0000000"
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_BASEBRUTEIMP:"0000000":"0000000"
    * AVANTAGES EN NATURE

    W_CountAv=DCOUNT(W_TYPEAVANTNAT,CHAR(254))
    W_N=" "
    W_L=" "
    W_V=" "
    W_A=" "
    FOR i = 1 TO W_CountAv
       BEGIN CASE 
          CASE W_TYPEAVANTNAT<i>="N"
             W_N="N"
          CASE W_TYPEAVANTNAT<i>="L"
             W_L="L"
	  CASE W_TYPEAVANTNAT<i>="V"
             W_V="V"
	  CASE W_TYPEAVANTNAT<i>="A"
             W_A="A"
       END CASE
    NEXT i

    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_BASEAVANTNAT:W_N:W_L:W_V:W_A:" ":W_BASEAVANTNAT2:" "

    * FRAIS PROFESSIONNELS
    IF W_BASEFRAISPRO<>"" THEN
       W_CountFrais=DCOUNT(W_TYPEFRAISPRO,CHAR(254))
       W_F=" "
       W_R=" "
       W_P=" "
       W_D=" "
       FOR i = 1 TO W_CountFrais
          BEGIN CASE 
             CASE W_TYPEFRAISPRO<i>="F"
                W_F="F"
 	     CASE W_TYPEFRAISPRO<i>="R"
                W_R="R"
	     CASE W_TYPEFRAISPRO<i>="P"
                W_P="P"
	     CASE W_TYPEFRAISPRO<i>="D"
                W_D="D"

          END CASE

       NEXT i

       ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_BASEFRAISPRO:W_F:W_R:W_P:W_D:"0000000000 "

    END ELSE
	ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_BASEFRAISPRO:"    0000000000 "
    END
    * IMPOTS - TAXE SUR SALAIRES
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_BASETAXETOT:"      ":W_BASETAXE1:W_BASETAXE2:"000000      1":W_CODEABSENCE:"  ":W_BASECSG:W_REVENUACTIVITE:W_NBHEURES:"0000000 "

RETURN

***********************************************************
* PREPARATION LIGNE SALARIE NEGATIF                     202

6 *

   * TESTE SI AU MOINS 1 VARIABLE <> 0
   IF W_SECUTOTALNEG<>0 OR W_SECUPLAFNEG<>0 OR W_BASECSGNEG<>0 THEN
	GOSUB 211
	I=I+1

        W_NB202=W_NB202+1

	* GESTION LIGNE NEGATIVE
        * ZONE INDICATIF (IDEM 200)
        ENR_DADSTDS<I>=ENR_ETABLISSEMENT<14>:W_FRACTION:W_PERIODE[3,2]:W_TYPEDADS:"20200000":W_AIDANT
        * N.I.R (IDEM 200)
        ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_CIVILAIDANT<17>:SPACE(13-LEN(ENR_CIVILAIDANT<17>)):ENR_CIVILAIDANT<18>:SPACE(2-LEN(ENR_CIVILAIDANT<18>))
        * RENSEIGNEMENT NAISSANCE (IDEM 200)
        ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_DDN[1,2]:W_DDN[4,2]:W_DDN[7,2]:W_DEPT:W_CODEPAYS:W_PAYS:SPACE(26-LEN(W_PAYS))
        * ETAT CIVIL (IDEM 200)
        ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_CIVILAIDANT<1>:SPACE(3-LEN(ENR_CIVILAIDANT<1>)):ENR_CIVILAIDANT<4>:SPACE(30-LEN(ENR_CIVILAIDANT<4>)):ENR_CIVILAIDANT<3>:SPACE(20-LEN(ENR_CIVILAIDANT<3>)):W_NOMUSUEL:SPACE(30-LEN(W_NOMUSUEL))
        * ADRESSE AU 31/12 (IDEM 200)
        ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_CIVILAIDANT<9>:SPACE(32-LEN(ENR_CIVILAIDANT<9>)):" "
        * ADRESSE RUE (IDEM 200)
        ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_CIVILAIDANT<5>:SPACE(4-LEN(ENR_CIVILAIDANT<5>))
        * TEST SI "Bis" OU "Ter" (IDEM 200)
        IF ENR_CIVILAIDANT<6>[1,1]="B" OR ENR_CIVILAIDANT<6>[1,1]="T" THEN
	    ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_CIVILAIDANT<6>[1,1]:" ":W_NOMVOIE:SPACE(26-LEN(W_NOMVOIE))
        END ELSE
	    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"  ":W_NOMVOIE:SPACE(26-LEN(W_NOMVOIE))
        END
        * ADRESSE VILLE (IDEM 200)
        ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_COMMUNEINSEE:" ":ENR_CIVILAIDANT<11>:SPACE(26-LEN(ENR_CIVILAIDANT<11>))
        * CENTRE DE DISTRIBUTION (IDEM 200)
        ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_CIVILAIDANT<10>:" ":ENR_CIVILAIDANT<11>:SPACE(26-LEN(ENR_CIVILAIDANT<11>))
        * EMPLOI OCCUPE (IDEM 200)
        ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_EMPLOI:SPACE(30-LEN(W_EMPLOI)):W_CODEPCS:W_ETRANGER:" "
	* PERIODES EMPLOI
	ENR_DADSTDS<I>=ENR_DADSTDS<I>:"999999990000000000":W_CIPDZ:" ":W_DEPARTDEF
        * SECURITE SOCIALE - REMUNERATION ANNUELLE    
        ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_SECUTOTALNEG:W_SECUPLAFNEG
        * SECURITE SOCIALE - CAS PARTICULIERS
        ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_TAUXPARTTOTNEG
        * IMPOTS - REMUNERATION ANNUELLE
        ENR_DADSTDS<I>=ENR_DADSTDS<I>:"000000000000000000000"
        * AVANTAGES EN NATURE
        ENR_DADSTDS<I>=ENR_DADSTDS<I>:"0000000     000000 "
        * FRAIS PROFESSIONNELS
	ENR_DADSTDS<I>=ENR_DADSTDS<I>:"0000000    0000000000 "
        * IMPOTS - TAXE SUR SALAIRES
        ENR_DADSTDS<I>=ENR_DADSTDS<I>:"0000000      00000000000000000000      1":W_CODEABSENCE:"  ":W_BASECSGNEG:"000000000000000000 "
    END

RETURN 

***********************************************************
* PREPARATION LIGNE HONORAIRE                           210

7  *

    IF W_TYPEDADS=5 THEN
	RETURN
    END

    IF W_PASSEHONORAIRE=1 THEN RETURN
	
    W_PASSEHONORAIRE=1

    * VERIFIE SI FICHIER TDSTARIFICATIONAT
*LISTETDSHONORAIRES = ""
*    EXECUTE 'TSELECT TDSHONORAIRES AVEC @ID = "':W_PERIODE:W_CODEENTITE:']"'
*    EXECUTE "SAUVE-LISTE LISTETDSHONORAIRES"
*    EXECUTE "LISTE LISTETDSHONORAIRES" RETURNING MSGCODE

*    IF MSGCODE<1>=209 THEN 
*	 RETURN
*    END

*    SELECT F.TDSHONORAIRES TO LISTETDSHONORAIRES

    W_FINHONORAIRES="FAUX"
    LOOP
	 READNEXT CLE3 FROM LISTETDSHONORAIRES ELSE W_FINHONORAIRES="VRAI"
	 UNTIL W_FINHONORAIRES="VRAI" DO

         W_NB210=W_NB210+1

	 I=I+1

	 * LECTURE TDSHONORAIRES
	 READ ENR_TDSHONORAIRES FROM F.TDSHONORAIRES,CLE3 ELSE ENR_TDSHONORAIRES=""

	 * MISE EN FORME DONNEES HONORAIRES
	 GOSUB 600

         * ZONE INDICATIF
         ENR_DADSTDS<I>=ENR_ETABLISSEMENT<14>:W_FRACTION:W_PERIODE[3,2]:W_TYPEDADS:"210"
         * NUMERO SIRET 
         ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_TDSHONORAIRES<3>:W_NOM:W_PRENOM:W_RAISONSOC:SPACE(30)
         * ADRESSE AU 31/12
         ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_TDSHONORAIRES<8>:" "
         * ADRESSE RUE
         ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_TDSHONORAIRES<4>
         * TEST SI "Bis" OU "Ter"
         IF ENR_TDSHONORAIRES<5>[1,1]="B" OR ENR_TDSHONORAIRES<5>[1,1]="T" THEN
	     ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_TDSHONORAIRES<5>[1,1]:" ":W_ADRESSEHONO
         END ELSE
	     ENR_DADSTDS<I>=ENR_DADSTDS<I>:"  ":W_ADRESSEHONO
         END
         * ADRESSE VILLE
         ENR_DADSTDS<I>=ENR_DADSTDS<I>:"00000 ":ENR_TDSHONORAIRES<10>
         * CENTRE DE DISTRIBUTION
         ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_TDSHONORAIRES<9>:" ":ENR_TDSHONORAIRES<10>

	 * LIGNE DETAIL
	 ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_TDSHONORAIRES<16>:ENR_TDSHONORAIRES<17>:ENR_TDSHONORAIRES<18>:ENR_TDSHONORAIRES<19>:ENR_TDSHONORAIRES<20>
	 ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_TDSHONORAIRES<21>:ENR_TDSHONORAIRES<22>:ENR_TDSHONORAIRES<23>:ENR_TDSHONORAIRES<27>:ENR_TDSHONORAIRES<25>:ENR_TDSHONORAIRES<24>

	 * RENSEIGNEMENT PARTICULIERS
	 IF ENR_TDSHONORAIRES<26>="N" THEN ENR_DADSTDS<I>=ENR_DADSTDS<I>:"N    "
	 IF ENR_TDSHONORAIRES<26>="L" THEN ENR_DADSTDS<I>=ENR_DADSTDS<I>:" L   "
	 IF ENR_TDSHONORAIRES<26>="V" THEN ENR_DADSTDS<I>=ENR_DADSTDS<I>:"  V  "
	 IF ENR_TDSHONORAIRES<26>="A" THEN ENR_DADSTDS<I>=ENR_DADSTDS<I>:"   A "
	 IF ENR_TDSHONORAIRES<26>="" THEN ENR_DADSTDS<I>=ENR_DADSTDS<I>:"     "

	 * MODALITES
	 IF ENR_TDSHONORAIRES<28>="F" THEN ENR_DADSTDS<I>=ENR_DADSTDS<I>:"F  "
	 IF ENR_TDSHONORAIRES<28>="R" THEN ENR_DADSTDS<I>=ENR_DADSTDS<I>:" R "
	 IF ENR_TDSHONORAIRES<28>="P" THEN ENR_DADSTDS<I>=ENR_DADSTDS<I>:"  P"
	 IF ENR_TDSHONORAIRES<28>="" THEN ENR_DADSTDS<I>=ENR_DADSTDS<I>:"   "

	 * TAUX RETENU
	 IF ENR_TDSHONORAIRES<30>="R" THEN ENR_DADSTDS<I>=ENR_DADSTDS<I>:"R "
	 IF ENR_TDSHONORAIRES<30>="D" THEN ENR_DADSTDS<I>=ENR_DADSTDS<I>:" D"
	 IF ENR_TDSHONORAIRES<30>="" THEN ENR_DADSTDS<I>=ENR_DADSTDS<I>:"  "

	 ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_TDSHONORAIRES<29>:SPACE(139)
    REPEAT

RETURN

***********************************************************
* PREPARATION LIGNE TOTAL ETABLISSEMENT                 300

8 *

    * MISE EN FORME VARIABLES ETABLISSEMENT
    GOSUB 310

    * GESTION TAXE SUR SALAIRES DUE
    GOSUB 311

    * CALCULE TAXE SALAIRE - ABATTEMENT
    W_TOTALTAXESALDUE=W_TOTALTAXESALDUE-W_ABATTEMENT
    IF W_TOTALTAXESALDUE<0 THEN W_TOTALTAXESALDUE=0
    W_TOTALTAXESALDUE=W_TOTALTAXESALDUE "R%12"   
    W_ABATTEMENT=0

    W_TOTALTAXESALDUEASSO=W_TOTALTAXESALDUEASSO+W_TOTALTAXESALDUE
    W_EFFECTIFASSO=W_EFFECTIFASSO+W_EFFECTIF

    * ZONE INDICATIF
    ENR_DADSTDS<I>=ENR_ETABLISSEMENT<14>:W_FRACTION:W_PERIODE[3,2]:W_TYPEDADS:"300"
    * TOTAUX SALARIE - SECURITE SOCIALE
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_SECUTOTALETAB:W_SECUPLAFETAB:W_BASEPARTETAB
    * TOTAUX IMPOTS - REMUNERATION
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_BASEBRUTEETAB:W_BASENETTEETAB:W_AVANTNATETAB:W_FRAISPROETAB:"000000000000"
    * TOTAUX TAXES SUR SALAIRES
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_TAXETOTETAB:W_TAXETAUX1ETAB:W_TAXETAUX2ETAB:"000000000000"
    * TOTAUX HONORAIRES
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_HONORAIREETAB:W_COMMISSIONETAB:W_COURTAGESETAB:W_RISTOURNESETAB:W_JETONSETAB
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_DTAUTEURETAB:W_DTINVENTETAB:W_AUTRESETAB:W_INDEMETAB:W_AVANTETAB:W_RETENUESETAB
    * MONTANT TAXE SAL + CSG + EFFECTIF
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"            ":W_TOTALTAXESALDUE:W_TOTALCSGETAB:W_EFFECTIF:"000000000000":SPACE(122)
    * SIGNATAIRE DADS
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_ASSOCIATION<30>[1,30]:SPACE(89-LEN(ENR_ASSOCIATION<30>[1,30])):"0"

RETURN

***********************************************************
* PREPARATION LIGNE TOTAL ETABLISSEMENT NEGATIF         302

9 *

    IF W_SECUTOTALETABNEG=0 THEN RETURN

    I=I+1

    * ZONE INDICATIF
    ENR_DADSTDS<I>=ENR_ETABLISSEMENT<14>:W_FRACTION:W_PERIODE[3,2]:W_TYPEDADS:"302"
    * TOTAUX SALARIE - SECURITE SOCIALE
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_SECUTOTALETABNEG:W_SECUPLAFETABNEG:W_BASEPARTETABNEG
    * TOTAUX IMPOTS - REMUNERATION
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"000000000000000000000000000000000000000000000000000000000000"
    * TOTAUX TAXES SUR SALAIRES
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"000000000000000000000000000000000000000000000000"
    * TOTAUX HONORAIRES
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"000000000000000000000000000000000000000000000000000000000000000000"
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"000000000000000000000000000000000000000000000000000000000000000000"
    * MONTANT TAXE SAL + CSG + EFFECTIF
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"            000000000000":W_BASECSGETABNEG:"000000000000000000":SPACE(122)
    * SIGNATAIRE DADS
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:ENR_ASSOCIATION<30>[1,30]:SPACE(89-LEN(ENR_ASSOCIATION<30>[1,30])):"0"

RETURN

***********************************************************
* PREPARATION LIGNE TOTAL ASSOCIATION                   310

10 *

    * TRAITEMENT EFFECTIF ASSOCIATION
*    N=1
*    LOOP
*	UNTIL ENR_ASSOCIATION<29,N>=W_FINANNEE OR ENR_ASSOCIATION<29,N>="" DO	
*	N=N+1
*    REPEAT
*    W_EFFECTIFASSO=ENR_ASSOCIATION<27,N>/100 "R%6"

    W_EFFECTIFASSO=W_EFFECTIFASSO "R%6"

    * MISE EN FORME DES INFOS
    GOSUB 401

    W_TOTALTAXESALDUEASSO=W_TOTALTAXESALDUEASSO "R%12"

    * ZONE INDICATIF
    ENR_DADSTDS<I>=ENR_ASSOCIATION<14>:"9999999999310":W_NB020:W_NB200:W_NB210
    * TOTAL SALARIES - SECURITE SOCIALE
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_SECUTOTALASSO:W_SECUPLAFASSO:W_BASEPARTASSO
    * TOTAL SALARIES - IMPOTS REMUNERATION
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_BASEBRUTEASSO:W_BASENETTEASSO:W_AVANTNATASSO:W_FRAISPROASSO:"000000000000"
    * TOTAL SALARIES - TAXES SUR SALAIRES
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_TAXETOTASSO:W_TAXETAUX1ASSO:W_TAXETAUX2ASSO:"000000000000"
    * TOTAL SALARIES - HONORAIRES
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_HONORAIREASSO:W_COMMISSIONASSO:W_COURTAGESASSO:W_RISTOURNESASSO:W_JETONSASSO
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_DTAUTEURASSO:W_DTINVENTASSO:W_AUTRESASSO:W_INDEMASSO:W_AVANTASSO:W_RETENUESASSO
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"            ":W_TOTALTAXESALDUEASSO:W_TOTALCSGASSO:W_EFFECTIFASSO:"000000000000"
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:SPACE(194):"0"

RETURN

***********************************************************
* PREPARATION LIGNE TOTAL ASSOCIATION NEGATIF           312

11 *

    IF W_SECUTOTALASSONEG=0 THEN RETURN

    I=I+1

    * ZONE INDICATIF
    ENR_DADSTDS<I>=ENR_ASSOCIATION<14>:"999999999931200000":W_NB202:"000000"
    * TOTAL SALARIES - SECURITE SOCIALE
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:W_SECUTOTALASSONEG:W_SECUPLAFASSONEG:W_BASEPARTASSONEG
    * TOTAL SALARIES - IMPOTS REMUNERATION
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"000000000000000000000000000000000000000000000000000000000000"
    * TOTAL SALARIES - TAXES SUR SALAIRES
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"000000000000000000000000000000000000000000000000"
    * TOTAL SALARIES - HONORAIRES
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"000000000000000000000000000000000000000000000000000000000000000000000000"
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"000000000000000000000000000000000000000000000000000000000000            "   
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:"000000000000":W_BASECSGASSONEG:"000000000000000000"
    ENR_DADSTDS<I>=ENR_DADSTDS<I>:SPACE(194):"0"

RETURN

***********************************************************
* PREPARATION DRAPEAU FIN                               990

99 *

    I=I+1
    ENR_DADSTDS<I>="9999999999999999999":W_DRAPEAUFIN:SPACE(542)

RETURN

***********************************************************
* TRAITEMENT ADRESSE ETABLISSEMENT

100 * 

    * SI PAS ADRESSE ETABLISSEMENT
    IF ENR_ETABLISSEMENT<3>="" THEN ENR_ETABLISSEMENT<3>=ENR_ASSOCIATION<3>
    IF ENR_ETABLISSEMENT<4>="" THEN ENR_ETABLISSEMENT<4>=ENR_ASSOCIATION<4>
    IF ENR_ETABLISSEMENT<5>="" THEN ENR_ETABLISSEMENT<5>=ENR_ASSOCIATION<5>
    IF ENR_ETABLISSEMENT<6>="" THEN ENR_ETABLISSEMENT<6>=ENR_ASSOCIATION<6>
    IF ENR_ETABLISSEMENT<7>="" THEN ENR_ETABLISSEMENT<7>=ENR_ASSOCIATION<7>
    IF ENR_ETABLISSEMENT<8>="" THEN ENR_ETABLISSEMENT<8>=ENR_ASSOCIATION<8>
    IF ENR_ETABLISSEMENT<9>="" THEN ENR_ETABLISSEMENT<9>=ENR_ASSOCIATION<9>
    ENR_ETABLISSEMENT<1>=ENR_ETABLISSEMENT<1>[1,50]
    ENR_ETABLISSEMENT<7>=ENR_ETABLISSEMENT<7>[1,32]
    ENR_ETABLISSEMENT<9>=ENR_ETABLISSEMENT<9>[1,26]
    ENR_ETABLISSEMENT<20>=ENR_ETABLISSEMENT<20>[1,20]
    W_NOMVOIEETAB=ENR_ETABLISSEMENT<5>:" ":ENR_ETABLISSEMENT<6>
    W_NOMVOIEETAB=W_NOMVOIEETAB[1,26]

    * CALCUL DE L'HORAIRE LEGAL
    W_HORLEGAL=ENR_ETABLISSEMENT<16>/100
    W_HORLEGAL=W_HORLEGAL*52/12

    * TRAITEMENT EFFECTIF ETABLISSEMENT
    N=1
    LOOP
	UNTIL ENR_ETABLISSEMENT<19,N>=W_FINANNEE OR ENR_ETABLISSEMENT<19,N>="" DO	
	N=N+1
    REPEAT
    W_EFFECTIF=ENR_ETABLISSEMENT<17,N>/100 "R%6"

RETURN

***********************************************************
* TRAITEMENT ETAT CIVIL AIDANT

110 *

    * TRAITEMENT DES DONNEES 
    W_DDN=OCONV(ENR_CIVILAIDANT<26>,"D2/")
    * SI PAYS NAISSANCE = FRANCE => COMMUNE
    IF ENR_CIVILAIDANT<30>="FRANCE" THEN 
	W_PAYS=ENR_CIVILAIDANT<27>
    END ELSE
	W_PAYS=ENR_CIVILAIDANT<30>
    END
    W_PAYS=W_PAYS[1,26]

    * ENLEVE LES " " DU NUMERO DE SECU
    ENR_CIVILAIDANT<17>=CONVERT(" ","",ENR_CIVILAIDANT<17>)
    * MODIF VALIDITE 2002 // NUMERO SECU
    IF ENR_CIVILAIDANT<17>="" OR (ENR_CIVILAIDANT<17>[1,1]#"1" AND ENR_CIVILAIDANT<17>[1,1]#"2") THEN
	IF ENR_CIVILAIDANT<1>="MR" THEN 
	    ENR_CIVILAIDANT<17>="1000000000000"
	    ENR_CIVILAIDANT<18>="00"
        END ELSE
	    ENR_CIVILAIDANT<17>="2000000000000"
	    ENR_CIVILAIDANT<18>="00"
	END
    END

    * DECOUPAGE ZONE
    ENR_CIVILAIDANT<2>=ENR_CIVILAIDANT<2>[1,30]
    ENR_CIVILAIDANT<3>=ENR_CIVILAIDANT<3>[1,20]
    ENR_CIVILAIDANT<4>=ENR_CIVILAIDANT<4>[1,30]  
    ENR_CIVILAIDANT<9>=ENR_CIVILAIDANT<9>[1,32]
    ENR_CIVILAIDANT<11>=ENR_CIVILAIDANT<11>[1,26] 
    W_NOMVOIE=ENR_CIVILAIDANT<7>:" ":ENR_CIVILAIDANT<8>
    W_NOMVOIE=W_NOMVOIE[1,26]

    IF TRIM(ENR_CIVILAIDANT<4>)<>TRIM(ENR_CIVILAIDANT<2>) THEN
        W_NOMUSUEL=ENR_CIVILAIDANT<2>
    END ELSE
	W_NOMUSUEL=""
    END
    
    W_COMMUNEINSEE=ENR_CIVILAIDANT<39>
    IF LEN(W_COMMUNEINSEE)#5 THEN W_COMMUNEINSEE="00000"
    * DEPARTEMENT DE NAISSANCE
    W_DEPT=ENR_CIVILAIDANT<28>
    IF LEN(W_DEPT)=2 THEN
       IF NUM(W_DEPT)=1 THEN
          IF W_DEPT < "01" AND W_DEPT > "99" THEN
             IF ENR_CIVILAIDANT<17> # "" THEN
                W_DEPT=ENR_CIVILAIDANT<17>[6,2]
             END ELSE
                W_DEPT="00"
             END
          END
       END ELSE
          IF W_DEPT # "2A" AND W_DEPT # "2B" THEN
             IF ENR_CIVILAIDANT<17> # "" THEN
                W_DEPT=ENR_CIVILAIDANT<17>[6,2]
             END ELSE
                W_DEPT="00"
             END
          END
       END
    END ELSE
       W_DEPT=W_DEPT "R%2"
       IF W_DEPT # ENR_CIVILAIDANT<17>[6,2] AND ENR_CIVILAIDANT<17>[6,2] # "00" THEN
          W_DEPT=ENR_CIVILAIDANT<17>[6,2]
       END
       IF NUM(W_DEPT)=1 THEN
          IF W_DEPT < "01" AND W_DEPT > "99" THEN
             W_DEPT="00"
          END
       END ELSE
          IF W_DEPT # "2A" AND W_DEPT # "2B" THEN
             W_DEPT="00"
          END
       END
    END

    * CODE PAYS DE NAISSANCE
    IF LEN(ENR_CIVILAIDANT<29>)=6 THEN
       W_CODEPAYS = ENR_CIVILAIDANT<29>[4,3]
    END ELSE
       W_CODEPAYS = "000"
    END

RETURN

***********************************************************
* TRAITEMENT INFORMATION CONTRAT DE TRAVAIL

120 *

    * TEMPS COMPLET OU PARTIEL
    IF W_HRESMOIS>=(W_HORLEGAL*4/5) THEN
	W_CIPDZ="C"
    END ELSE
	W_CIPDZ="P"
    END

    * LECTURE ETRANGER
    READ ENR_ETRANGER FROM F.ETRANGER,W_AIDANT THEN 
	IF ENR_ETRANGER<1><>"" THEN 
	    W_ETRANGER="E"
        END ELSE
	    W_ETRANGER=" "
	END
    END ELSE
	W_ETRANGER=" "
    END

    * SI ANNEE COMPLETE
    IF W_NBJOURAN>=365 THEN
	 W_PERIODECONTRAT=W_DEBUTPERIODE:W_FINPERIODE
         W_PERIODECONTRAT2="00000000"
    END
    
RETURN

***********************************************************
* TRAITEMENT INFORMATION HISTORCUMUL

130 * 

    * LECTURE HISTORCUMUL
    ENR_HISTORCUMUL=""
    W_AIDANTMULTIETABL="NON"
    READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,W_AIDANT:W_PERIODE:W_CODEENTITE ELSE ENR_HISTORCUMUL=""
    IF ENR_HISTORCUMUL<23>#"" THEN
       W_AIDANTMULTIETABL="OUI"
       IF ENR_HISTORCUMUL<23,1>[10,6]=ENR_CONTRAT<3> THEN
          L=1
          LOOP
          UNTIL ENR_HISTORCUMUL<15,L>="" DO
             READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_HISTORCUMUL<15,L> THEN
                READ ENR_TRANCHE FROM F.TRANCHE,ENR_RUBCHARGE<2> THEN
                   IF ENR_TRANCHE<10>="01" AND ENR_RUBCHARGE<16>="05" AND W_BASETAXETOT=0 THEN
                      W_BASETAXETOT=ENR_HISTORCUMUL<16,L>
                      W_TAUXTAXETOTAL=ENR_RUBCHARGE<14>
                   END
                END
             END
             L=L+1
          REPEAT
       END
       READ ENR_HISTORCUMUL FROM F.HISTORCUMULETABL,W_AIDANT:W_PERIODE:ENR_CONTRAT<3> ELSE ENR_HISTORCUMUL=""
    END

    * CALCUL DERNIER MOIS + 60 HRES
    W_MOIS60=ENR_HISTORCUMUL<3>
    IF W_MOIS60="" THEN W_MOIS60="00"
    W_MOIS60=W_MOIS60 "R%2"

    * TRAITEMENT HISTORCUMUL // SALAIRE
    GOSUB 200

RETURN

***********************************************************
* TRAITEMENT HISTORCUMUL // SALAIRE

200 *

    * RECUPERATION BASE CSG-CRDS + URSSAF + TRANCHE A + TAXE SALAIRE
    L=1
    LOOP
	 UNTIL ENR_HISTORCUMUL<15,L>="" DO

	 READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_HISTORCUMUL<15,L> THEN
               READ ENR_TRANCHE FROM F.TRANCHE,ENR_RUBCHARGE<2> THEN
		    IF ENR_TRANCHE<10>="06" AND W_BASECSG=0 THEN ;* BASE CSG
			 W_BASECSG=ENR_HISTORCUMUL<17,L>
		    END	  
		    READ ENR_TDSURSSAFTOTALITE FROM F.TDSURSSAFTOTALITE,ENR_HISTORCUMUL<15,L> THEN ;* BASE SECU TOTALITE
			 W_SECUTOTAL=W_SECUTOTAL+ENR_HISTORCUMUL<17,L>
		    END	  
		    IF (ENR_TRANCHE<10>="02" OR ENR_TRANCHE<10>="07") AND ENR_RUBCHARGE<16>="01" THEN  ;* BASE SECU PLAFONNE TRANCHE A
			 W_SECUPLAF=W_SECUPLAF+ENR_HISTORCUMUL<17,L>
		    END	  
		    IF ENR_TRANCHE<10>="07" AND ENR_RUBCHARGE<16>="05" AND W_TAXESAL1=0 THEN ;* TAXE SALAIRE TRANCHE 1
			 * RECUPERATION TAXE TRANCHE 1
			 W_TAXEBAS=ENR_TRANCHE<4>
			 W_TAXEHAUT=ENR_TRANCHE<5>
			 W_TAXESAL1=1
			 W_TAUXTAXETRANCHE1=ENR_RUBCHARGE<14>
		    END
		    IF ENR_TRANCHE<10>="01" AND ENR_RUBCHARGE<16>="05" AND W_BASETAXETOT=0 THEN ;* TAXE SALAIRE
			 * TAXE SALAIRE
			 IF W_AIDANTMULTIETABL="NON" THEN W_BASETAXETOT=ENR_HISTORCUMUL<16,L>
			 W_TAUXTAXETOTAL=ENR_RUBCHARGE<14>
		    END
		    IF ENR_TRANCHE<10>="07" AND ENR_RUBCHARGE<16>="05" AND W_TAUXTAXETRANCHE1<>ENR_RUBCHARGE<14> THEN ;* TAXE SALAIRE TRANCHE 2
			 * RECUPERATION TAXE TRANCHE 2
			 W_TAUXTAXETRANCHE2=ENR_RUBCHARGE<14>
		    END
		    * REGARDE SI RUBRIQUE DANS TDSCASPARTICULIERS 
     	            READ ENR_TDSCASPARTICULIERS FROM F.TDSCASPARTICULIERS,ENR_HISTORCUMUL<15,L> THEN
			 * RECHERCHE SI TAUX DEJA TRAVAILLE
			 M=1
			 LOOP
			      UNTIL W_TAUXPART<M>=ENR_TDSCASPARTICULIERS<1> OR W_TAUXPART<M>="" DO
			      M=M+1
			 REPEAT

			 W_TAUXPART<M>=ENR_TDSCASPARTICULIERS<1>
			 W_TAUXPART2<M>=W_TAUXPART2<M>+ABS(ENR_HISTORCUMUL<17,L>)

			 W_BASEPART=W_BASEPART+ENR_HISTORCUMUL<17,L>
		    END
	       END
	 END
	 L=L+1	 
    REPEAT

    W_SECUPLAF=W_SECUPLAF-W_BASEPART
    IF W_SECUPLAF<0 THEN
	 IF W_SECUTOTAL<0 THEN
	 	 W_SECUPLAFNEG=-W_SECUPLAF
		 W_SECUPLAFNEG=W_SECUPLAFNEG "R%7"
	 END
	 W_SECUPLAF=0
    END

    * SI BASE PLAF. SECU > BASE TOTALITE
    IF W_SECUTOTAL<=ENR_HISTORCUMUL<4> AND W_SECUPLAF<>0 AND W_SECUTOTAL<>0 THEN
	 W_SECUPLAF=W_SECUTOTAL-W_BASEPART
    END

    M=1
    LOOP
	 UNTIL M=7 DO
	 W_TAUXPART<M>=W_TAUXPART<M> "R%4"

	 *****
	 IF W_TAUXPART2<M>=0 THEN W_TAUXPART<M>="0000"

	 IF W_SECUTOTAL>=0 THEN
  	      W_TAUXPART2<M>=INT((W_TAUXPART2<M>/100)+1/2) "R%7"
	 END ELSE
  	      W_TAUXPART2<M>=INT((W_TAUXPART2<M>/100)-1/2) "R%7"
	 END

	 IF W_SECUTOTAL>=0 THEN
		 W_TAUXPARTTOT=W_TAUXPARTTOT:W_TAUXPART<M>:W_TAUXPART2<M>
	 END ELSE
		 W_TAUXPARTTOTNEG=W_TAUXPARTTOTNEG:W_TAUXPART<M>:W_TAUXPART2<M>
	 END
         M=M+1
    REPEAT

    * CALCUL TAXE SAL. TRANCHE 1 + TRANCHE 2
    IF W_TAXEHAUT<>0 THEN
        IF W_BASETAXETOT>=W_TAXEHAUT THEN ;* TRANCHE 2
            W_BASETAXE1=W_TAXEHAUT-W_TAXEBAS
	    W_BASETAXE2=W_BASETAXETOT-W_TAXEHAUT
        END ELSE
	    IF W_BASETAXETOT>=W_TAXEBAS THEN ;* TRANCHE 1
   	        W_BASETAXE1=W_BASETAXETOT-W_TAXEBAS
	        W_BASETAXE2=0
 	    END ELSE
	        W_BASETAXE1=0
 	        W_BASETAXE2=0
	    END
	END
    END

    * REVENU ACTIVITE =  NET IMPOSABLE - CHOMAGE PARTIEL
    IF ENR_HISTORCUMUL<20> = "" THEN ENR_HISTORCUMUL<20> = 0
    IF ENR_HISTORCUMUL<6> = "" THEN ENR_HISTORCUMUL<6> = 0
    W_REVENUACTIVITE = ENR_HISTORCUMUL<6> - ENR_HISTORCUMUL<20>

    * PREND LA VALEUR ENTIER DE CHAQUE ZONE
    W_NBHEURES=INT((ENR_HISTORCUMUL<2>/100)+1/2)
    W_BASEBRUTEIMP=INT((ENR_HISTORCUMUL<5>/100)+1/2)
    W_BASENETTEIMP=INT((ENR_HISTORCUMUL<6>/100)+1/2)
    W_BASEAVANTNAT=INT((ENR_HISTORCUMUL<8>/100)+1/2)
    W_BASEFRAISPRO=INT((ENR_HISTORCUMUL<10>/100)+1/2)

    * AJOUTE EVENTUELLEMENT LE CONTENU DU FICHIER TDSFRAISPRO
    READ ENR_TDSFRAISPROFESSIONNELS FROM F.TDSFRAISPROFESSIONNELS,W_PERIODE:W_CODEENTITE:W_AIDANT THEN
	 W_BASEFRAISPRO=W_BASEFRAISPRO+INT((ENR_TDSFRAISPROFESSIONNELS<1>/100)+1/2)
    END ELSE
         ENR_TDSFRAISPROFESSIONNELS = ""
    END

    * GESTION DU TYPE DE FRAIS PROFESSIONNELS
    IF (ENR_HISTORCUMUL<10>="" OR ENR_HISTORCUMUL<10>="0") AND (ENR_TDSFRAISPROFESSIONNELS<1>="" OR ENR_TDSFRAISPROFESSIONNELS<1>="0") THEN
       W_TYPEFRAISPRO=""
    END ELSE
       IF (ENR_HISTORCUMUL<10>#"" AND ENR_HISTORCUMUL<10>#"0" AND ENR_HISTORCUMUL<22>="") OR (ENR_TDSFRAISPROFESSIONNELS<1>#"" AND ENR_TDSFRAISPROFESSIONNELS<1>#"0" AND ENR_TDSFRAISPROFESSIONNELS<2>="")  THEN
          W_TYPEFRAISPRO="R"
       END 
       IF (ENR_HISTORCUMUL<10>#"" AND ENR_HISTORCUMUL<10>#"0" AND ENR_HISTORCUMUL<22>#"") OR (ENR_TDSFRAISPROFESSIONNELS<1>#"" AND ENR_TDSFRAISPROFESSIONNELS<1>#"0" AND ENR_TDSFRAISPROFESSIONNELS<2>#"") THEN
          W_Count=DCOUNT(W_TYPEFRAISPRO,CHAR(254))

          IF ENR_HISTORCUMUL<22>#"" THEN
             W_Count22=DCOUNT(ENR_HISTORCUMUL<22>,CHAR(253))

             FOR i22=1 TO W_Count22
                W_Passe="FALSE"
                FOR iCount=1 TO W_Count
             	   IF W_TYPEFRAISPRO<iCount>=ENR_HISTORCUMUL<22,i22> THEN
                      W_Passe="TRUE"
                   END
	        NEXT iCount
                IF W_Passe="FALSE" THEN
             	   W_TYPEFRAISPRO<W_Count+1>=ENR_HISTORCUMUL<22,i22>
                   W_Count=W_Count+1
                END
             NEXT i22
          END 
          W_Count=DCOUNT(W_TYPEFRAISPRO,CHAR(254))
          IF ENR_TDSFRAISPROFESSIONNELS<2>#"" THEN
             W_Passe="FALSE"
             FOR iCount=1 TO W_Count
                IF W_TYPEFRAISPRO<iCount>=ENR_TDSFRAISPROFESSIONNELS<2> THEN
                   W_Passe="TRUE"
                END
	     NEXT iCount
             IF W_Passe="FALSE" THEN
                W_TYPEFRAISPRO<W_Count+1>=ENR_TDSFRAISPROFESSIONNELS<2>
                W_Count=W_Count+1
             END

          END
       END

    END
    
    * GESTION DU TYPE D'AVANTAGE EN NATURE
    IF (ENR_HISTORCUMUL<8>="" OR ENR_HISTORCUMUL<8>="0") THEN
       W_TYPEAVANTNAT=""
    END ELSE
       IF (ENR_HISTORCUMUL<8>#"" AND ENR_HISTORCUMUL<8>#"0" AND ENR_HISTORCUMUL<9>="") THEN
          W_TYPEAVANTNAT="A"
       END 
       IF (ENR_HISTORCUMUL<8>#"" AND ENR_HISTORCUMUL<8>#"0" AND ENR_HISTORCUMUL<9>#"") THEN
          W_Count=DCOUNT(W_TYPEAVANTNAT,CHAR(254))

          W_Count9=DCOUNT(ENR_HISTORCUMUL<9>,CHAR(253))

          FOR i9=1 TO W_Count9
             W_Passe="FALSE"
             FOR iCount=1 TO W_Count
                IF W_TYPEAVANTNAT<iCount>=ENR_HISTORCUMUL<9,i9> THEN
                   W_Passe="TRUE"
                END
	     NEXT iCount
             IF W_Passe="FALSE" THEN
                W_TYPEAVANTNAT<W_Count+1>=ENR_HISTORCUMUL<9,i9>
                W_Count=W_Count+1
             END
          NEXT i9

       END

    END

    W_SECUTOTAL=INT((W_SECUTOTAL/100)+1/2)
    W_SECUPLAF=INT((W_SECUPLAF/100)+1/2)
    W_BASETAXETOT=INT((W_BASETAXETOT/100)+1/2)
    W_BASETAXE1=INT((W_BASETAXE1/100)+1/2)
    W_BASETAXE2=INT((W_BASETAXE2/100)+1/2)
    W_BASECSG=INT((W_BASECSG/100)+1/2)
    W_BASEPART=INT((W_BASEPART/100)+1/2) 

    W_REVENUACTIVITE= INT((W_REVENUACTIVITE/100) + 1/2)

    * VERIFIE SI TOTAL 17 + 19 = 16A
    IF W_SECUTOTAL<=ENR_HISTORCUMUL<4>/100 THEN
       IF W_SECUPLAF+W_BASEPART<>W_SECUTOTAL AND W_SECUTOTAL>0 THEN
	  W_SECUPLAF=W_SECUTOTAL-W_BASEPART
       END
    END
    * SI SOMME NEGATIVE ALORS GENERATION VARIABLES NEGATIVES
    GOSUB 201

    W_SECUTOTAL=W_SECUTOTAL "R%7"
    W_SECUPLAF=W_SECUPLAF "R%7"
    W_BASEBRUTEIMP=W_BASEBRUTEIMP "R%7"
    W_BASENETTEIMP=W_BASENETTEIMP "R%7"
    W_BASEAVANTNAT2=W_BASEAVANTNAT "R%6"
    W_BASEAVANTNAT=W_BASEAVANTNAT "R%7"
    W_BASEFRAISPRO=W_BASEFRAISPRO "R%7"
    W_BASETAXETOT=W_BASETAXETOT "R%7"
    W_BASETAXE1=W_BASETAXE1 "R%7"
    W_BASETAXE2=W_BASETAXE2 "R%7"
    W_BASECSG=W_BASECSG "R%7"
    W_NBHEURES=W_NBHEURES "R%4"
    W_REVENUACTIVITE = W_REVENUACTIVITE "R%7"

RETURN

***********************************************************
* SI SOMME NEGATIVE ALORS GENERATION VARIABLES NEGATIVES

201 *
    IF W_NBHEURES<0 THEN 
	W_NBHEURES=0
    END
    IF W_BASEBRUTEIMP<0 THEN 
	W_BASEBRUTEIMP=0
    END 
    IF W_BASENETTEIMP<0 THEN 
	W_BASENETTEIMP=0
    END 
    IF W_REVENUACTIVITE<0 THEN 
	W_REVENUACTIVITE=0
    END 
    IF W_BASEAVANTNAT<0 THEN 
	W_BASEAVANTNAT=0
    END 
    IF W_BASEFRAISPRO<0 THEN 
	W_BASEFRAISPRO=0
    END 
    IF W_SECUTOTAL<0 THEN 
	W_SECUTOTALNEG=-W_SECUTOTAL
	W_SECUTOTALNEG=W_SECUTOTALNEG "R%7"
	W_SECUTOTAL=0

	W_SECUPLAFNEG=-W_SECUPLAF
	W_SECUPLAFNEG=W_SECUPLAFNEG "R%7"
	W_SECUPLAF=0

	W_BASECSGNEG=-W_BASECSG
	W_BASECSGNEG=W_BASECSGNEG "R%7"	
	W_BASECSG=0

	IF W_BASEPART<0 THEN W_BASEPART=-W_BASEPART
	W_BASEPARTNEG=W_BASEPART
	W_BASEPARTNEG=W_BASEPARTNEG "R%7"
	W_BASEPART=0

	W_TAUXPARTTOT=W_TAUXPARTTOT "R%66"
    END 
    IF W_BASETAXETOT<0 THEN 
	W_BASETAXETOT=0
    END 
    IF W_BASETAXE1<0 THEN 
	W_BASETAXE1=0
    END 
    IF W_BASETAXE2<0 THEN 
	W_BASETAXE2=0
    END 
*    IF W_BASECSG<0 THEN 
*	W_BASECSGNEG=-W_BASECSG
*	W_BASECSGNEG=W_BASECSGNEG "R%7"	
*	W_BASECSG=0
*    END   
   
    * SI SOMME NEGATIVE ALORS GENERATION VARIABLES NEGATIVES (ETAB+ASSO)
    GOSUB 350
RETURN

***********************************************************
* CALCUL CODE ABSENCES "A"-"I"-"P"-"K"-"S"-"D"-" "

210 *

    * STOCKE VALEUR W_SECUTOTAL + W_SECUPLAF + W_BASEBRUTIMP + W_REVENUACTIVITE (et non plus W_BASENETTEIMP) SANS LES 0
    W_TRIM1=W_SECUTOTAL*1
    W_TRIM2=W_SECUPLAF*1
    IF W_TRIM2=0 THEN W_TRIM2=W_BASEPART*1
    W_TRIM3=W_BASEBRUTEIMP*1
    W_TRIM4=W_REVENUACTIVITE*1
*    W_TRIM4=W_BASENETTEIMP*1

    * CAS OU LETTRE = "A"
    IF W_TRIM1="0" AND W_TRIM2="0" AND W_TRIM3<>"0" AND W_TRIM4="0" THEN W_CODEABSENCE="A"
    IF W_TRIM1="0" AND W_TRIM2="0" AND W_TRIM3="0" AND W_TRIM4="0" THEN W_CODEABSENCE="A"
    * CAS OU LETTRE <> "S"
    IF W_TRIM1="0" AND W_TRIM2="0" AND W_TRIM3<>"0" AND W_TRIM4<>"0" THEN W_CODEABSENCE="S"
    IF W_TRIM1="0" AND W_TRIM2="0" AND W_TRIM3="0" AND W_TRIM4<>"0" THEN W_CODEABSENCE="S"
    * CAS OU LETTRE <> "D"
    IF W_TRIM1<>"0" AND W_TRIM2="0" AND W_TRIM3<>"0" AND W_TRIM4="0" THEN W_CODEABSENCE="D"
    IF W_TRIM1<>"0" AND W_TRIM2="0" AND W_TRIM3="0" AND W_TRIM4="0" THEN W_CODEABSENCE="D"
    * CAS OU LETTRE <> "P"
    IF W_TRIM1<>"0" AND W_TRIM2="0" AND W_TRIM3<>"0" AND W_TRIM4<>"0" THEN W_CODEABSENCE="P"
    IF W_TRIM1<>"0" AND W_TRIM2="0" AND W_TRIM3="0" AND W_TRIM4<>"0" THEN W_CODEABSENCE="P"
    * CAS OU LETTRE <> "K"
    IF W_TRIM1="0" AND W_TRIM2<>"0" AND W_TRIM3<>"0" AND W_TRIM4="0" THEN W_CODEABSENCE="K"
    IF W_TRIM1<>"0" AND W_TRIM2<>"0" AND W_TRIM3<>"0" AND W_TRIM4="0" THEN W_CODEABSENCE="K"
    * CAS OU LETTRE <> "I"
    IF W_TRIM1="0" AND W_TRIM2<>"0" AND W_TRIM3="0" AND W_TRIM4="0" THEN W_CODEABSENCE="I"
    IF W_TRIM1<>"0" AND W_TRIM2<>"0" AND W_TRIM3="0" AND W_TRIM4="0" THEN W_CODEABSENCE="I"
    * CAS OU LETTRE <> " "
    IF W_TRIM1="0" AND W_TRIM2<>"0" AND W_TRIM3<>"0" AND W_TRIM4<>"0" THEN W_CODEABSENCE=" "
    IF W_TRIM1<>"0" AND W_TRIM2<>"0" AND W_TRIM3<>"0" AND W_TRIM4<>"0" THEN W_CODEABSENCE=" "
    IF W_TRIM1="0" AND W_TRIM2<>"0" AND W_TRIM3="0" AND W_TRIM4<>"0" THEN W_CODEABSENCE=" "
    IF W_TRIM1<>"0" AND W_TRIM2<>"0" AND W_TRIM3="0" AND W_TRIM4<>"0" THEN W_CODEABSENCE=" "

RETURN

***********************************************************
* CALCUL CODE ABSENCES "A"-"I"-"P"-"K"-"S"-"D"-" " POUR SALARIE NEGATIF (202)

211 *

    * STOCKE VALEUR W_SECUTOTALNEG + W_SECUPLAFNEG + W_BASEBRUTIMP + W_REVENUACTIVITE (et non plus W_BASENETTEIMP) SANS LES 0
    W_TRIM1=W_SECUTOTALNEG*1
    W_TRIM2=W_SECUPLAFNEG*1
    IF W_TRIM2=0 THEN W_TRIM2=W_BASEPARTNEG*1
    W_TRIM3=W_BASEBRUTEIMP*1
    W_TRIM4=W_REVENUACTIVITE*1
*    W_TRIM4=W_BASENETTEIMP*1

    * CAS OU LETTRE = "A"
    IF W_TRIM1="0" AND W_TRIM2="0" AND W_TRIM3<>"0" AND W_TRIM4="0" THEN W_CODEABSENCE="A"
    IF W_TRIM1="0" AND W_TRIM2="0" AND W_TRIM3="0" AND W_TRIM4="0" THEN W_CODEABSENCE="A"
    * CAS OU LETTRE <> "S"
    IF W_TRIM1="0" AND W_TRIM2="0" AND W_TRIM3<>"0" AND W_TRIM4<>"0" THEN W_CODEABSENCE="S"
    IF W_TRIM1="0" AND W_TRIM2="0" AND W_TRIM3="0" AND W_TRIM4<>"0" THEN W_CODEABSENCE="S"
    * CAS OU LETTRE <> "D"
    IF W_TRIM1<>"0" AND W_TRIM2="0" AND W_TRIM3<>"0" AND W_TRIM4="0" THEN W_CODEABSENCE="D"
    IF W_TRIM1<>"0" AND W_TRIM2="0" AND W_TRIM3="0" AND W_TRIM4="0" THEN W_CODEABSENCE="D"
    * CAS OU LETTRE <> "P"
    IF W_TRIM1<>"0" AND W_TRIM2="0" AND W_TRIM3<>"0" AND W_TRIM4<>"0" THEN W_CODEABSENCE="P"
    IF W_TRIM1<>"0" AND W_TRIM2="0" AND W_TRIM3="0" AND W_TRIM4<>"0" THEN W_CODEABSENCE="P"
    * CAS OU LETTRE <> "K"
    IF W_TRIM1="0" AND W_TRIM2<>"0" AND W_TRIM3<>"0" AND W_TRIM4="0" THEN W_CODEABSENCE="K"
    IF W_TRIM1<>"0" AND W_TRIM2<>"0" AND W_TRIM3<>"0" AND W_TRIM4="0" THEN W_CODEABSENCE="K"
    * CAS OU LETTRE <> "I"
    IF W_TRIM1="0" AND W_TRIM2<>"0" AND W_TRIM3="0" AND W_TRIM4="0" THEN W_CODEABSENCE="I"
    IF W_TRIM1<>"0" AND W_TRIM2<>"0" AND W_TRIM3="0" AND W_TRIM4="0" THEN W_CODEABSENCE="I"
    * CAS OU LETTRE <> " "
    IF W_TRIM1="0" AND W_TRIM2<>"0" AND W_TRIM3<>"0" AND W_TRIM4<>"0" THEN W_CODEABSENCE=" "
    IF W_TRIM1<>"0" AND W_TRIM2<>"0" AND W_TRIM3<>"0" AND W_TRIM4<>"0" THEN W_CODEABSENCE=" "
    IF W_TRIM1="0" AND W_TRIM2<>"0" AND W_TRIM3="0" AND W_TRIM4<>"0" THEN W_CODEABSENCE=" "
    IF W_TRIM1<>"0" AND W_TRIM2<>"0" AND W_TRIM3="0" AND W_TRIM4<>"0" THEN W_CODEABSENCE=" "

RETURN

***********************************************************
* GESTION TOTAUX ETABLISSEMENT

300 * 

    * CUMULE TOTAUX SECURITE SOCIALE
    W_SECUTOTALETAB=W_SECUTOTALETAB+W_SECUTOTAL
    W_SECUPLAFETAB=W_SECUPLAFETAB+W_SECUPLAF
    W_BASEPARTETAB=W_BASEPARTETAB+W_BASEPART

    * CUMULE TOTAUX IMPOTS - REMUNERATIONS
    W_BASEBRUTEETAB=W_BASEBRUTEETAB+W_BASEBRUTEIMP
*    W_BASENETTEETAB=W_BASENETTEETAB+W_BASENETTEIMP
    W_BASENETTEETAB=W_BASENETTEETAB+W_REVENUACTIVITE
    W_AVANTNATETAB=W_AVANTNATETAB+W_BASEAVANTNAT
    W_FRAISPROETAB=W_FRAISPROETAB+W_BASEFRAISPRO

    * CUMULE TOTAUX TAXE SUR SALAIRES
    W_TAXETOTETAB=W_TAXETOTETAB+W_BASETAXETOT
    W_TAXETAUX1ETAB=W_TAXETAUX1ETAB+W_BASETAXE1
    W_TAXETAUX2ETAB=W_TAXETAUX2ETAB+W_BASETAXE2  

    * CUMULE LES BASES CSG
    W_TOTALCSGETAB=W_TOTALCSGETAB+W_BASECSG

    * GESTION TOTAUX ASSOCIATION
    GOSUB 400

RETURN

***********************************************************
* MISE EN FORME VARIABLES ETABLISSEMENT

310 *

    W_SECUTOTALETAB=W_SECUTOTALETAB "R%12"
    W_SECUPLAFETAB=W_SECUPLAFETAB "R%12"
    W_BASEPARTETAB=W_BASEPARTETAB "R%12"
    W_BASEBRUTEETAB=W_BASEBRUTEETAB "R%12"
    W_BASENETTEETAB=W_BASENETTEETAB "R%12"
    W_AVANTNATETAB=W_AVANTNATETAB "R%12"
    W_FRAISPROETAB=W_FRAISPROETAB "R%12"
    W_TAXETOTETAB=W_TAXETOTETAB "R%12"
    W_TAXETAUX1ETAB=W_TAXETAUX1ETAB "R%12"
    W_TAXETAUX2ETAB=W_TAXETAUX2ETAB "R%12"
    W_TOTALCSGETAB=W_TOTALCSGETAB "R%12"
    W_TOTALTAXESALDUE=W_TOTALTAXESALDUE "R%12"
    W_EFFECTIF=W_EFFECTIF "R%6"

    * VARIABLES NEGATIVES
    W_SECUTOTALETABNEG=W_SECUTOTALETABNEG "R%12"
    W_SECUPLAFETABNEG=W_SECUPLAFETABNEG "R%12"
    W_BASECSGETABNEG=W_BASECSGETABNEG "R%12"
    W_BASEPARTETABNEG=W_BASEPARTETABNEG "R%12"

    * PARTIE ETABLISSEMENT - HONORAIRES
    W_HONORAIREETAB=W_HONORAIREETAB "R%12"
    W_COMMISSIONETAB=W_COMMISSIONETAB "R%12"
    W_COURTAGESETAB=W_COURTAGESETAB "R%12"
    W_RISTOURNESETAB=W_RISTOURNESETAB "R%12"
    W_JETONSETAB=W_JETONSETAB "R%12"
    W_DTAUTEURETAB=W_DTAUTEURETAB "R%12"
    W_DTINVENTETAB=W_DTINVENTETAB "R%12"
    W_AUTRESETAB=W_AUTRESETAB "R%12"
    W_INDEMETAB=W_INDEMETAB "R%12"
    W_AVANTETAB=W_AVANTETAB "R%12"
    W_RETENUESETAB=W_RETENUESETAB "R%12"

RETURN

***********************************************************
* GESTION TAXE SUR SALAIRES DUE

311 *

    W_TOTALTAXESALDUE0=INT(W_TAXETOTETAB*(W_TAUXTAXETOTAL/1000)+1/2)
    W_TOTALTAXESALDUE1=INT(W_TAXETAUX1ETAB*(W_TAUXTAXETRANCHE1/1000)+1/2)
    W_TOTALTAXESALDUE2=INT(W_TAXETAUX2ETAB*(W_TAUXTAXETRANCHE2/1000)+1/2)

    W_TOTALTAXESALDUE=W_TOTALTAXESALDUE0+W_TOTALTAXESALDUE1+W_TOTALTAXESALDUE2

    W_TOTALTAXESALDUE=INT((W_TOTALTAXESALDUE/100)+1/2) "R%12"
**    W_TOTALTAXESALDUEASSO=W_TOTALTAXESALDUEASSO+W_TOTALTAXESALDUE
RETURN

***********************************************************
* GESTION TOTAUX ETABLISSEMENT + ASSOCIATION NEGATIF

350 * 

    * CUMULE TOTAUX SECURITE SOCIALE ETABLISSEMENT
    W_SECUTOTALETABNEG=W_SECUTOTALETABNEG+W_SECUTOTALNEG
    W_SECUPLAFETABNEG=W_SECUPLAFETABNEG+W_SECUPLAFNEG
    W_BASECSGETABNEG=W_BASECSGETABNEG+W_BASECSGNEG
    W_BASEPARTETABNEG=W_BASEPARTETABNEG+W_BASEPARTNEG

    * CUMULE TOTAUX SECURITE SOCIALE ASSOCIATION
    W_SECUTOTALASSONEG=W_SECUTOTALASSONEG+W_SECUTOTALNEG
    W_SECUPLAFASSONEG=W_SECUPLAFASSONEG+W_SECUPLAFNEG
    W_BASECSGASSONEG=W_BASECSGASSONEG+W_BASECSGNEG
    W_BASEPARTASSONEG=W_BASEPARTASSONEG+W_BASEPARTNEG

RETURN

***********************************************************
* GESTION TOTAUX ASSOCIATION

400 * 

    * CUMULE TOTAUX SECURITE SOCIALE
    W_SECUTOTALASSO=W_SECUTOTALASSO+W_SECUTOTAL
    W_SECUPLAFASSO=W_SECUPLAFASSO+W_SECUPLAF
    W_BASEPARTASSO=W_BASEPARTASSO+W_BASEPART

    * CUMULE TOTAUX IMPOTS - REMUNERATIONS
    W_BASEBRUTEASSO=W_BASEBRUTEASSO+W_BASEBRUTEIMP
*    W_BASENETTEASSO=W_BASENETTEASSO+W_BASENETTEIMP
    W_BASENETTEASSO=W_BASENETTEASSO+W_REVENUACTIVITE
    W_AVANTNATASSO=W_AVANTNATASSO+W_BASEAVANTNAT
    W_FRAISPROASSO=W_FRAISPROASSO+W_BASEFRAISPRO

    * CUMULE TOTAUX TAXE SUR SALAIRES
    W_TAXETOTASSO=W_TAXETOTASSO+W_BASETAXETOT
    W_TAXETAUX1ASSO=W_TAXETAUX1ASSO+W_BASETAXE1
    W_TAXETAUX2ASSO=W_TAXETAUX2ASSO+W_BASETAXE2

    * CUMULE LES BASES CSG
    W_TOTALCSGASSO=W_TOTALCSGASSO+W_BASECSG

RETURN

***********************************************************
* MISE EN FORME VARIABLES ASSOCIATION

401 *

    W_SECUTOTALASSO=W_SECUTOTALASSO "R%12"
    W_SECUPLAFASSO=W_SECUPLAFASSO "R%12"
    W_BASEPARTASSO=W_BASEPARTASSO "R%12"
    W_BASEBRUTEASSO=W_BASEBRUTEASSO "R%12"
    W_BASENETTEASSO=W_BASENETTEASSO "R%12"
    W_AVANTNATASSO=W_AVANTNATASSO "R%12"
    W_FRAISPROASSO=W_FRAISPROASSO "R%12"
    W_TAXETOTASSO=W_TAXETOTASSO "R%12"
    W_TAXETAUX1ASSO=W_TAXETAUX1ASSO "R%12"
    W_TAXETAUX2ASSO=W_TAXETAUX2ASSO "R%12"
    W_TOTALCSGASSO=W_TOTALCSGASSO "R%12"

    W_NB020=W_NB020 "R%5"
    W_NB200=W_NB200 "R%6"
    W_NB202=W_NB202 "R%6"
    W_NB210=W_NB210 "R%6"

    * VARIABLES NEGATIVES
    W_SECUTOTALASSONEG=W_SECUTOTALASSONEG "R%12"
    W_SECUPLAFASSONEG=W_SECUPLAFASSONEG "R%12"
    W_BASECSGASSONEG=W_BASECSGASSONEG "R%12"
    W_BASEPARTASSONEG=W_BASEPARTASSONEG "R%12"

    * PARTIE ASSOCIATION - HONORAIRES
    W_HONORAIREASSO=W_HONORAIREASSO "R%12"
    W_COMMISSIONASSO=W_COMMISSIONASSO "R%12"
    W_COURTAGESASSO=W_COURTAGESASSO "R%12"
    W_RISTOURNESASSO=W_RISTOURNESASSO "R%12"
    W_JETONSASSO=W_JETONSASSO "R%12"
    W_DTAUTEURASSO=W_DTAUTEURASSO "R%12"
    W_DTINVENTASSO=W_DTINVENTASSO "R%12"
    W_AUTRESASSO=W_AUTRESASSO "R%12"
    W_INDEMASSO=W_INDEMASSO "R%12"
    W_AVANTASSO=W_AVANTASSO "R%12"
    W_RETENUESASSO=W_RETENUESASSO "R%12"
RETURN

***********************************************************
* MISE EN FORME VARIABLES TDSTARIFICATIONAT

410 *

    ENR_TDSTARIFICATIONAT<1>=ENR_TDSTARIFICATIONAT<1> "R%5"
    ENR_TDSTARIFICATIONAT<2>=ENR_TDSTARIFICATIONAT<2> "L#1"
    ENR_TDSTARIFICATIONAT<3>=INT((ENR_TDSTARIFICATIONAT<3>/100)+1/2) "R%12"
    ENR_TDSTARIFICATIONAT<4>=ENR_TDSTARIFICATIONAT<4> "R%6"
    ENR_TDSTARIFICATIONAT<5>=ENR_TDSTARIFICATIONAT<5> "R%6"
    ENR_TDSTARIFICATIONAT<6>=ENR_TDSTARIFICATIONAT<6> "R%6"
    ENR_TDSTARIFICATIONAT<7>=ENR_TDSTARIFICATIONAT<7> "R%6"
    ENR_TDSTARIFICATIONAT<8>=ENR_TDSTARIFICATIONAT<8> "R%6"
    ENR_TDSTARIFICATIONAT<9>=INT(ENR_TDSTARIFICATIONAT<9>/10) "R%3"
    ENR_TDSTARIFICATIONAT<10>=INT((ENR_TDSTARIFICATIONAT<10>/100)+1/2) "R%10"

RETURN

***********************************************************
* GESTION PERIODES CONTRATS

500 *
    * STOCKE PERIODE DIVERS CONTRATS
    W_FINCONTRAT=ENR_CONTRAT<8>
    IF W_FINCONTRAT="" THEN W_FINCONTRAT=W_FINAN
    W_NBJOURAN=W_NBJOURAN+(W_FINCONTRAT-ENR_CONTRAT<7>)	

    IF ENR_CONTRAT<7><W_DEBUTAN THEN ENR_CONTRAT<7>=W_DEBUTAN
	
    IF W_PERIODECONTRAT="" THEN 
	W_PERIODECONTRAT=OCONV(ENR_CONTRAT<7>,"D2/")[1,2]:OCONV(ENR_CONTRAT<7>,"D2/")[4,2]:OCONV(W_FINCONTRAT,"D2/")[1,2]:OCONV(W_FINCONTRAT,"D2/")[4,2]
	W_PERIODECONTRAT2="00000000"
    END ELSE
        W_PERIODECONTRAT2=OCONV(ENR_CONTRAT<7>,"D2/")[1,2]:OCONV(ENR_CONTRAT<7>,"D2/")[4,2]:OCONV(W_FINCONTRAT,"D2/")[1,2]:OCONV(W_FINCONTRAT,"D2/")[4,2]
    END        
    * DEPART DEFINITIF
    IF ENR_CONTRAT<8><=W_FINAN AND ENR_CONTRAT<8><>"" THEN
	W_DEPARTDEF="D"
    END ELSE
	W_DEPARTDEF=" "
    END

    K=1
    K=DCOUNT(ENR_CONTRAT<25>,CHAR(253))

    * CALCUL HORAIRE MENSUEL
    BEGIN CASE 
        CASE ENR_CONTRAT<25,J>="1"
	     W_HRESMOIS=ENR_CONTRAT<24,J>*52/12
	CASE ENR_CONTRAT<25,J>="2"
	     W_HRESMOIS=ENR_CONTRAT<24,J>*2
	CASE ENR_CONTRAT<25,J>="3"
	     W_HRESMOIS=ENR_CONTRAT<24,J>
	CASE ENR_CONTRAT<25,J>="4"
	     W_HRESMOIS=ENR_CONTRAT<24,J>/12
    END CASE
    W_EMPLOI=ENR_CONTRAT<16,K>[1,30]
    W_CODEPCS=ENR_CONTRAT<17,K>
    IF W_CODEPCS="" THEN W_CODEPCS="563b"
RETURN

***********************************************************
* MISE EN FORME DONNEES HONORAIRES

600 *

    W_NOM=""
    W_PRENOM=""
    W_RAISONSOC=""

    ENR_TDSHONORAIRES<3>=ENR_TDSHONORAIRES<3>[1,14] "R%14"

    IF ENR_TDSHONORAIRES<2>="N" THEN
	W_NOM=ENR_TDSHONORAIRES<1>[1,30] "L#30"
        W_PRENOM=ENR_TDSHONORAIRES<31>[1,20] "L#20"
	W_RAISONSOC=W_RAISONSOC "L#50"
    END ELSE
        W_NOM=W_NOM "L#30"
        W_PRENOM=W_PRENOM "L#20"
	W_RAISONSOC=ENR_TDSHONORAIRES<1>[1,50] "L#50"
    END

    * MISE EN FORME ADRESSE
    ENR_TDSHONORAIRES<8>=ENR_TDSHONORAIRES<8>[1,32] "L#32"
    ENR_TDSHONORAIRES<4>=ENR_TDSHONORAIRES<4>[1,4] "L#4"
    W_ADRESSEHONO=ENR_TDSHONORAIRES<6>:" ":ENR_TDSHONORAIRES<7>
    W_ADRESSEHONO=W_ADRESSEHONO[1,26] "L#26"
    ENR_TDSHONORAIRES<10>=ENR_TDSHONORAIRES<10>[1,26] "L#26"
    ENR_TDSHONORAIRES<9>=ENR_TDSHONORAIRES<9>[1,5] "R%5"

    ENR_TDSHONORAIRES<16>=ENR_TDSHONORAIRES<16>[1,10] "R%10"
    ENR_TDSHONORAIRES<17>=ENR_TDSHONORAIRES<17>[1,10] "R%10"
    ENR_TDSHONORAIRES<18>=ENR_TDSHONORAIRES<18>[1,10] "R%10"
    ENR_TDSHONORAIRES<19>=ENR_TDSHONORAIRES<19>[1,10] "R%10"
    ENR_TDSHONORAIRES<20>=ENR_TDSHONORAIRES<20>[1,10] "R%10"
    ENR_TDSHONORAIRES<21>=ENR_TDSHONORAIRES<21>[1,10] "R%10"
    ENR_TDSHONORAIRES<22>=ENR_TDSHONORAIRES<22>[1,10] "R%10"
    ENR_TDSHONORAIRES<23>=ENR_TDSHONORAIRES<23>[1,10] "R%10"
    ENR_TDSHONORAIRES<24>=ENR_TDSHONORAIRES<24>[1,10] "R%10"
    ENR_TDSHONORAIRES<25>=ENR_TDSHONORAIRES<25>[1,10] "R%10"
    ENR_TDSHONORAIRES<27>=ENR_TDSHONORAIRES<27>[1,10] "R%10"
    ENR_TDSHONORAIRES<29>=ENR_TDSHONORAIRES<29>[1,10] "R%10"

    * CUMULE LES SOMMES ETABLISSEMENT + ASSOCIATION (HONORAIRE)
    GOSUB 610
RETURN

***********************************************************
* CUMULE LES SOMMES ETABLISSEMENT + ASSOCIATION (HONORAIRE)

610 *

    * PARTIE ETABLISSEMENT 
    W_HONORAIREETAB=W_HONORAIREETAB+ENR_TDSHONORAIRES<16>
    W_COMMISSIONETAB=W_COMMISSIONETAB+ENR_TDSHONORAIRES<17>
    W_COURTAGESETAB=W_COURTAGESETAB+ENR_TDSHONORAIRES<18>
    W_RISTOURNESETAB=W_RISTOURNESETAB+ENR_TDSHONORAIRES<19>
    W_JETONSETAB=W_JETONSETAB+ENR_TDSHONORAIRES<20>
    W_DTAUTEURETAB=W_DTAUTEURETAB+ENR_TDSHONORAIRES<21>
    W_DTINVENTETAB=W_DTINVENTETAB+ENR_TDSHONORAIRES<22>
    W_AUTRESETAB=W_AUTRESETAB+ENR_TDSHONORAIRES<23>
    W_INDEMETAB=W_INDEMETAB+ENR_TDSHONORAIRES<27>
    W_AVANTETAB=W_AVANTETAB+ENR_TDSHONORAIRES<25>
    W_RETENUESETAB=W_RETENUESETAB+ENR_TDSHONORAIRES<24>

    * PARTIE ASSOCIATION
    W_HONORAIREASSO=W_HONORAIREASSO+ENR_TDSHONORAIRES<16>
    W_COMMISSIONASSO=W_COMMISSIONASSO+ENR_TDSHONORAIRES<17>
    W_COURTAGESASSO=W_COURTAGESASSO+ENR_TDSHONORAIRES<18>
    W_RISTOURNESASSO=W_RISTOURNESASSO+ENR_TDSHONORAIRES<19>
    W_JETONSASSO=W_JETONSASSO+ENR_TDSHONORAIRES<20>
    W_DTAUTEURASSO=W_DTAUTEURASSO+ENR_TDSHONORAIRES<21>
    W_DTINVENTASSO=W_DTINVENTASSO+ENR_TDSHONORAIRES<22>
    W_AUTRESASSO=W_AUTRESASSO+ENR_TDSHONORAIRES<23>
    W_INDEMASSO=W_INDEMASSO+ENR_TDSHONORAIRES<27>
    W_AVANTASSO=W_AVANTASSO+ENR_TDSHONORAIRES<25>
    W_RETENUESASSO=W_RETENUESASSO+ENR_TDSHONORAIRES<24>

    * MISE EN FORME
    * PARTIE ETABLISSEMENT 
    W_HONORAIREETAB=W_HONORAIREETAB "R%12"
    W_COMMISSIONETAB=W_COMMISSIONETAB "R%12"
    W_COURTAGESETAB=W_COURTAGESETAB "R%12"
    W_RISTOURNESETAB=W_RISTOURNESETAB "R%12"
    W_JETONSETAB=W_JETONSETAB "R%12"
    W_DTAUTEURETAB=W_DTAUTEURETAB "R%12"
    W_DTINVENTETAB=W_DTINVENTETAB "R%12"
    W_AUTRESETAB=W_AUTRESETAB "R%12"
    W_INDEMETAB=W_INDEMETAB "R%12"
    W_AVANTETAB=W_AVANTETAB "R%12"
    W_RETENUESETAB=W_RETENUESETAB "R%12"
    
    * PARTIE ASSOCIATION
    W_HONORAIREASSO=W_HONORAIREASSO "R%12"
    W_COMMISSIONASSO=W_COMMISSIONASSO "R%12"
    W_COURTAGESASSO=W_COURTAGESASSO "R%12"
    W_RISTOURNESASSO=W_RISTOURNESASSO "R%12"
    W_JETONSASSO=W_JETONSASSO "R%12"
    W_DTAUTEURASSO=W_DTAUTEURASSO "R%12"
    W_DTINVENTASSO=W_DTINVENTASSO "R%12"
    W_AUTRESASSO=W_AUTRESASSO "R%12"
    W_INDEMASSO=W_INDEMASSO "R%12"
    W_AVANTASSO=W_AVANTASSO "R%12"
    W_RETENUESASSO=W_RETENUESASSO "R%12"
RETURN

***********************************************************
* GENERATION RAPPORT EXECUTION

700 *

    ENR_TAMPONDADS=""

    * ECRITURE ENTETE RAPPORT
    ENR_TAMPONDADS<1>=W_PERIODE
    ENR_TAMPONDADS<2>=W_CODEENTITE
    ENR_TAMPONDADS<3>=W_CODEENTITE:W_PERIODE

    * ECRITURE DETAIL FICHIER
    ENR_TAMPONDADS<4>=I*566
    ENR_TAMPONDADS<5>=I
    ENR_TAMPONDADS<6>=W_NB200

    * ECRITURE MONTANT FICHIER
    ENR_TAMPONDADS<7>=W_SECUTOTALASSO
    ENR_TAMPONDADS<8>=W_SECUPLAFASSO
    ENR_TAMPONDADS<9>=W_BASEPARTASSO
    ENR_TAMPONDADS<10>=W_BASEBRUTEASSO
    ENR_TAMPONDADS<11>=W_BASENETTEASSO
    ENR_TAMPONDADS<12>=W_AVANTNATASSO
    ENR_TAMPONDADS<13>=W_FRAISPROASSO
    ENR_TAMPONDADS<14>=W_TAXETOTASSO
    ENR_TAMPONDADS<15>=W_TAXETAUX1ASSO
    ENR_TAMPONDADS<16>=W_TAXETAUX2ASSO
    ENR_TAMPONDADS<17>=W_TOTALTAXESALDUEASSO

    WRITE ENR_TAMPONDADS ON F.TAMPONDADS,'TDS':W_PERIODE

RETURN

***********************************************************
* R.A.Z. VARIABLES SALAIRES

990 *

    * GESTION SALAIRE
    W_SECUTOTAL=0
    W_SECUPLAF=0
    W_BASEBRUTEIMP=0
    W_BASENETTEIMP=0
    W_BASEAVANTNAT=0
    W_BASEFRAISPRO=0
    W_BASETAXETOT=0
    W_BASETAXE1=0
    W_BASETAXE2=0
    W_TAXEBAS=0
    W_TAXEHAUT=0
    W_TAXESAL1=0
    W_BASETAXETOT=0
    W_BASECSG=0
    W_NBHEURES=0
    W_CODEABSENCE=" "
    W_TAUXPART=""
    W_TAUXPART2=""
    W_TAUXPARTTOT=""
    W_TAUXPARTTOTNEG=""
    W_TYPEFRAISPRO=""
    W_TYPEAVANTNAT=""
    * GESTION SALAIRE NEGATIF
    W_SECUTOTALNEG=0
    W_SECUPLAFNEG=0
    W_BASECSGNEG=0
    W_BASEPART=0
    W_BASEPARTNEG=0

RETURN

***********************************************************
* R.A.Z. VARIABLES ETABLISSEMENT

991 *

    W_SECUTOTALETAB=0
    W_SECUPLAFETAB=0
    W_BASEPARTETAB=0
    W_BASEBRUTEETAB=0
    W_BASENETTEETAB=0
    W_AVANTNATETAB=0
    W_FRAISPROETAB=0
    W_TAXETOTETAB=0
    W_TAXETAUX1ETAB=0
    W_TAXETAUX2ETAB=0
    W_TOTALCSGETAB=0
    W_TAUXTAXETOTAL=0
    W_TAUXTAXETRANCHE1=0
    W_TAUXTAXETRANCHE2=0
    W_SECUTOTALETABNEG=0
    W_SECUPLAFETABNEG=0
    W_BASEPARTETABNEG=0
    W_BASECSGETABNEG=0
    W_TOTALCSGETABNEG=0
    W_TOTALTAXESALDUE=0

    W_HONORAIREETAB=0
    W_COMMISSIONETAB=0
    W_COURTAGESETAB=0
    W_RISTOURNESETAB=0
    W_JETONSETAB=0
    W_DTAUTEURETAB=0
    W_DTINVENTETAB=0
    W_AUTRESETAB=0
    W_INDEMETAB=0
    W_AVANTETAB=0
    W_RETENUESETAB=0
RETURN

***********************************************************
* R.A.Z. VARIABLES ASSOCIATION

992 *

    W_NB020=0
    W_NB200=0
    W_NB202=0
    W_NB210=0

    W_SECUTOTALASSO=0
    W_SECUPLAFASSO=0
    W_BASEPARTASSO=0
    W_BASEBRUTEASSO=0
    W_BASENETTEASSO=0
    W_AVANTNATASSO=0
    W_FRAISPROASSO=0
    W_TAXETOTASSO=0
    W_TAXETAUX1ASSO=0
    W_TAXETAUX2ASSO=0
    W_TOTALCSGASSO=0
    W_TAUXTAXETOTAL=0
    W_TAUXTAXETRANCHE1=0
    W_TAUXTAXETRANCHE2=0
    W_SECUTOTALASSONEG=0
    W_SECUPLAFASSONEG=0
    W_BASEPARTASSONEG=0
    W_BASECSGASSONEG=0
    W_TOTALTAXESALDUEASSO=0
    W_TOTALCSGASSONEG=0

    W_HONORAIREASSO=0
    W_COMMISSIONASSO=0
    W_COURTAGESASSO=0
    W_RISTOURNESASSO=0
    W_JETONSASSO=0
    W_DTAUTEURASSO=0
    W_DTINVENTASSO=0
    W_AUTRESASSO=0
    W_INDEMASSO=0
    W_AVANTASSO=0
    W_RETENUESASSO=0
RETURN

***********************************************************
* INITIALISATION DES VARIABLES

999 *

    W_EFFECTIFASSO=0
    ENR_DADSTDS=""
    W_TAUXTVA=0
    W_NBJOURAN=0
    W_HRESMOIS=0
    W_HORLEGAL=0
    W_ABATTEMENT=0
    W_PASSEHONORAIRE=0
    W_FRACTION="00"
    W_CIPDZ=""
    W_MOIS60=""
    W_AIDANT=""
    W_PAYS=""
    W_DEPT=""
    W_CODEPAYS=""
    W_DDN=""
    W_NOMUSUEL=""
    W_NOMVOIE=""
    W_NOMVOIEASSO=""
    W_NOMVOIEETAB=""
    W_COMMUNEINSEE=""
    W_EMPLOI=""
    W_CODEPCS=""
    W_ETRANGER=""
    W_PERIODECONTRAT=""
    W_PERIODECONTRAT2=""
    W_DEBUTPERIODE=""
    W_FINPERIODE=""
    W_DEPARTDEF=""
    W_NOM=""
    W_PRENOM=""
    W_RAISONSOC=""

    * GESTION SALAIRE
    GOSUB 990

    * GESTION ETABLISSEMENT
    GOSUB 991

    * GESTION ASSOCIATION
    GOSUB 992

RETURN
