***********************************************************
*                                                         *
* TRAITEMENT DES DADS VERSION PAPIER                      *
*                                                         *
* SEPTEMBRE 2000                          STEPHANE HERVET *
*                                                         *
* OCTOBRE 2007 ----> Mise en place d'une dition liste ou graphique       *
* 									   PRISCILLA GAULLIER *
***********************************************************

* RECAPITULATIF DES GOSUB
* 1   -> PREPARATION LEGENDE
* 10  -> PREPARATION ENTETE DU FICHIER (ENTITE+ETABLISSEMENT)
* 20  -> GESTION DADS SALARIE
* 30  -> GESTION SAUT DE PAGE
* 100 -> RECHERCHE + STOCKE INFORMATION CONCERNANT L'AIDANT
* 200 -> RECUPERE INFORMATION CONCERNANT L'AIDANT
* 201 -> RECUPERE INFORMATION BASE (SECU. + IMPOTS + TAXE SAL.)
* 300 -> RECUPERE INFORMATION BASE TOTAL (SECU. + IMPOTS + TAXE SAL.)
* 301 -> INSERTION SEPARATEUR MILLIERS + MILLIONS (TOTAL BASE)
* 900 -> R.A.Z DES TOTAUX GENERAUX
* 999 -> INITIALISATION DES VARIABLES

***********************************************************
***********************************************************
* OUVERTURE DES FICHIERS

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","ETABLISSEMENT" TO F.ETABLISSEMENT ELSE STOP
OPEN "","ETRANGER" TO F.ETRANGER ELSE STOP
OPEN "","HISTORCUMULPERACT" TO F.HISTORCUMUL ELSE STOP
*OPEN "","HISTORCUMULETABL" TO F.HISTORCUMULETABL ELSE STOP
OPEN "","RUBCHARGE" TO F.RUBCHARGE ELSE STOP
OPEN "","TAMPONDADS" TO F.TAMPONDADS ELSE STOP
OPEN "","TDSCASPARTICULIERSDADSU" TO F.TDSCASPARTICULIERS ELSE STOP
OPEN "","TDSFRAISPROFESSIONNELS" TO F.TDSFRAISPROFESSIONNELS ELSE STOP
*OPEN "","TDSURSSAFTOTALITE" TO F.TDSURSSAFTOTALITE ELSE STOP
OPEN "","TRANCHE" TO F.TRANCHE ELSE STOP
OPEN "","DADSTDS" TO F.DADS ELSE STOP

**MODIF PRISCILLA
OPEN "", "TEMPO" TO F.TEMPO ELSE STOP
**FIN MODIF
***********************************************************
* DEBUT TRAITEMENT DES ARTICLES

PROCREAD PARAMETRES ELSE STOP
*PARAMETRES = "DADSPAPIER 2007 001 TAMPONDADS 4 Liste"
* 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]

* RECUPERE LE NB AIDANT PAR PAGE
W_RANGNBAIDANT=INDEX(PARAMETRES," ",4)
W_NBMAXAIDANT=PARAMETRES[W_RANGNBAIDANT+1,1]

** RECUPERATION DU TYPE D'EDITION (Liste ou Graphique)
W_RANGTYPEDIT=INDEX(PARAMETRES," ",5)
W_TYPEDIT=PARAMETRES[W_RANGTYPEDIT+1,1]

* INITIALISATION DES VARIABLES
GOSUB 999

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

* LECTURE ENTITE + ETABLISSEMENT 001001 PAR DEFAUT
READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CODEENTITE ELSE ENR_ASSOCIATION=""

* 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/")
END ELSE
* Didier 20/01/2011
    IF ENR_ASSOCIATION<48> = W_PERIODE THEN
       W_DEBUTAN="01/01/":W_PERIODE
       W_DEBUTAN=ICONV(W_DEBUTAN,"D4/")
    END ELSE
    * CALCUL 1ER JOUR DECEMBRE + DERNIER JOUR NOVEMBRE
       W_DEBUTAN="01/12/":W_PERIODE-1
       W_DEBUTAN=ICONV(W_DEBUTAN,"D4/")
    END
    W_FINAN="30/11/":W_PERIODE
    W_FINAN=ICONV(W_FINAN,"D4/")
END

READ ENR_TDSCASPARTICULIERS FROM F.TDSCASPARTICULIERS,"1" ELSE ENR_TDSCASPARTICULIERS = ""
* Michael, le 23/11/07, Gestion des tranches taxe sur salaire : 
W_TAXEBAS = 0
W_TAXEHAUT = 0

* Didier 04/11/2010
W_TAUXTAXETOT = 0
W_TAUXTAXETR1 = 0
W_TAUXTAXETR2 = 0

IF ENR_TDSCASPARTICULIERS<4> = W_PERIODE THEN
	W_TAXEHAUT=ENR_TDSCASPARTICULIERS<6>
	W_TAXEBAS=ENR_TDSCASPARTICULIERS<5>
END ELSE
   EXECUTE 'SELECT RUBCHARGE'

   W_FINRUBCHARGE = 0
   LOOP
	READNEXT CLERUBCHARGE ELSE W_FINRUBCHARGE = 1
	UNTIL W_FINRUBCHARGE = 1 DO

	READ ENR_RUBCHARGE FROM F.RUBCHARGE,CLERUBCHARGE ELSE ENR_RUBCHARGE = ""
	READ ENR_TRANCHE FROM F.TRANCHE,ENR_RUBCHARGE<2> ELSE ENR_TRANCHE = ""
	
	IF ENR_RUBCHARGE<16> = "05" THEN
	   IF ENR_TRANCHE<10> = "01" THEN
		* TAUX TAXE TOT
		* Didier 04/11/2010
		W_TAUXTAXETOT = ENR_RUBCHARGE<14>
	   END ELSE
		IF ENR_TRANCHE<5> >= "9999900" THEN
		   * TAUX TAXE TR2
		   * Didier 04/11/2010
		   W_TAUXTAXETR2 = ENR_RUBCHARGE<14>

		END ELSE
		   * TAUX TAXE TR1
		   W_TAXEBAS = ENR_TRANCHE<4>
		   W_TAXEHAUT = ENR_TRANCHE<5>
		   * Didier 04/11/2010
		   W_TAUXTAXETR1 = ENR_RUBCHARGE<14>

		END
	   END
	END
	
   REPEAT
   IF W_TAXEHAUT # 0 AND W_TAXEBAS # 0 THEN
   * Note : je n'ecris dans TDSCASPARTICULIERS QUE si l'on a bien trouv des tranches, sinon je pars du principe 
   * que l'utilisateur va constater sur l'edition le pb, le corriger, et alors il faut que la prochaine edition 
   * prenne en compte ces nouveaux parametres...
	ENR_TDSCASPARTICULIERS<4>=W_PERIODE
	ENR_TDSCASPARTICULIERS<6>=W_TAXEHAUT
	ENR_TDSCASPARTICULIERS<5>=W_TAXEBAS
   * Didier 04/11/2010
	ENR_TDSCASPARTICULIERS<7>=W_TAUXTAXETOT
	ENR_TDSCASPARTICULIERS<8>=W_TAUXTAXETR1
	ENR_TDSCASPARTICULIERS<9>=W_TAUXTAXETR2

	WRITE ENR_TDSCASPARTICULIERS ON F.TDSCASPARTICULIERS,"1"
   END

END
* Fin ajout du 23/11/07
*Anthony DA11094-01 18/10/11
*EXECUTE 'SELECT TDSURSSAFTOTALITE'
W_TabTot = ""
W_TabPlaf = ""
*W_Fin = "F"
Nb_RubTot = DCOUNT(ENR_TDSCASPARTICULIERS<10>,CHAR(253))
I=1
LOOP
*READNEXT W_Cle ELSE W_Fin = "V"
WHILE I <= Nb_RubTot
	IF ENR_TDSCASPARTICULIERS<10,I>#"" THEN
		W_TabTot<-1> = ENR_TDSCASPARTICULIERS<10,I>
	END
	IF ENR_TDSCASPARTICULIERS<1,I>#"" THEN
		W_TabPlaf<-1> = ENR_TDSCASPARTICULIERS<1,I>
	END
	I=I+1
REPEAT

*EXECUTE 'SELECT TDSURSSAFPLAFOND'
*W_TabPlaf = ""
*W_Fin = "F"
*LOOP
*READNEXT W_Cle ELSE W_Fin = "V"
*WHILE W_Fin = "F"
*	W_TabPlaf<-1> = W_Cle
*REPEAT
*Fin Anthony

* SELECTIONNE LES CONTRATS VALIDE SUR L'ANNEE, PRESTATAIRE ET A L'ENTITE
CONTRATDADS = ""
*Anthony DA11094-01 18/10/11
*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 PAR 0 PAR 7'
EXECUTE 'TSELECT HISTORCUMULPERACT AVEC CodeAssoHistCumPerAct = "':W_CODEENTITE:'" AND AVEC AnneeHistCumulPerAct = "':W_PERIODE:'" PAR CodeEtablHistCumPerAct PAR NomPrenomAidantHistCumPerAct PAR CodeAidantHistCumPerAct PAR NumOrdreHistCumPerAct'
EXECUTE "SAUVE-LISTE CONTRATDADS"
EXECUTE "LISTE CONTRATDADS" CAPTURING MSGCODE RETURNING MSGCODE

IF MSGCODE<1>=209 THEN 
    STOP
END

*Anthony DA11094-01 18/10/11
SELECT F.HISTORCUMUL TO CONTRATDADS

* PREPARATION ENTETE DU FICHIER + LEGENDE
GOSUB 1

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

    *Anthony DA11094-01 18/10/11
    READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,CLE ELSE ENR_HISTORCUMUL=""
    *READ ENR_CONTRAT FROM F.CONTRAT,ENR_HISTORCUMUL<34>[1,8] ELSE ENR_CONTRAT=""
	  
    *IF W_AIDANT<>CLE[1,5] AND W_AIDANT<>"" THEN
	  *     GOSUB 20
    *END
    
    * GESTION DADS SALARIE
    *IF W_AIDANT<>CLE[1,5] AND W_AIDANT<>"" THEN
    *    GOSUB 20
    *END

    IF W_ANCIENETAB<>CLE[10,6] AND W_ANCIENETAB<>"" THEN
	W_ANCIENETAB=CLE[10,6]
	  *Fin Anthony
	  
	IF W_NBAIDANT<>0 THEN GOSUB 30
	GOSUB 900
 	GOSUB 10
	W_NBAIDANT=0
    END
    IF W_ANCIENETAB="" THEN 
  *Anthony DA11094-01 18/10/11
  *W_ANCIENETAB=ENR_CONTRAT<3>    
	W_ANCIENETAB=CLE[10,6]
	GOSUB 10
    END

    IF W_NBAIDANT=W_NBMAXAIDANT THEN 
	GOSUB 30
	GOSUB 10
    END

    *Anthony DA11094-01 18/10/11
    *IF W_AIDANT<>CLE[1,5] THEN
	GOSUB 100
	W_PERIODECONTRAT=""
	W_PERIODECONTRAT2=""
    *END
        
    *Anthony DA11094-01 18/10/11
    * STOCKE PERIODE DIVERS CONTRATS
    * W_FINCONTRAT=ENR_CONTRAT<8>
    *W_FINCONTRAT=ENR_HISTORCUMUL<35>
    IF ENR_HISTORCUMUL<35><W_FINAN AND ENR_HISTORCUMUL<35><>"" THEN
       W_DEPARTDEF="OUI"
    END ELSE
       W_DEPARTDEF="NON"
    END
	
    W_PERIODECONTRAT=W_PERIODECONTRAT:"DU ":OCONV(ENR_HISTORCUMUL<32>,"D4/"):" AU ":OCONV(ENR_HISTORCUMUL<35>,"D4/")
	
	W_NBJOURAN=(ENR_HISTORCUMUL<35>-ENR_HISTORCUMUL<32>)+1

    GOSUB 20
		
    *IF W_FINCONTRAT="" THEN W_FINCONTRAT=W_FINAN
    *IF ENR_CONTRAT<7><W_DEBUTAN THEN ENR_CONTRAT<7>=W_DEBUTAN 

    *IF W_PERIODECONTRAT="" THEN 
    *    W_PERIODECONTRAT=W_PERIODECONTRAT:"DU ":OCONV(ENR_CONTRAT<7>,"D4/"):" AU ":OCONV(W_FINCONTRAT,"D4/")
    *END ELSE
    *    W_PERIODECONTRAT2="-DU ":OCONV(ENR_CONTRAT<7>,"D4/"):" AU ":OCONV(W_FINCONTRAT,"D4/")
    *END
    *W_NBJOURAN=(W_FINCONTRAT-ENR_CONTRAT<7>)+1
    
    * DEPART DEFINITIF
    *IF ENR_CONTRAT<8><=W_FINAN AND ENR_CONTRAT<8><>"" THEN
	*W_DEPARTDEF="OUI"
    *END ELSE
	*W_DEPARTDEF="NON"
    *END
REPEAT

* GOSUB 20
* Fin Anthony
GOSUB 30

GOSUB 40

* ECRITURE FICHIER DADS
** MODIF le 31.10.07
IF W_TYPEDIT = "L" THEN
	WRITE ENR_TAMPONDADS ON F.TAMPONDADS,'TDS':W_PERIODE
	WRITE ENR_TAMPONDADS ON F.DADS,'TDS':W_PERIODE:'.txt'
END ELSE
	**Par defaut le W_NORDRE est EGAL 1
		W_DATEJOUR = OCONV(DATE(), "D4/")
		W_DATEJOUR=CONVERT("/","",W_DATEJOUR)
		
		*W_Temp = 'SSELECT DADSTDS AVEC @ID = "DADSU' : W_PERIODE : W_DATEJOUR:']"'
		
		*EXECUTE W_Temp
		*EXECUTE 'SAUVE-LISTE W_RequeteDADS'
		*EXECUTE "LISTE W_RequeteDADS" RETURNING MSGCODE
		
		*IF MSGCODE<1>=209 THEN
		*	STOP
		*END ELSE
			* Michael le 19/11/2007 :
			W_CleTemp="DADSU":W_PERIODE:W_CODEENTITE:W_DATEJOUR:".csv"
			ENR_TAMPONDADS=CONVERT(".","",ENR_TAMPONDADS)
			WRITE ENR_TAMPONDADS ON F.DADS,W_CleTemp
			ENR_TAMPONDADS=""
			ENR_TAMPONDADS=W_CleTemp
			WRITE ENR_TAMPONDADS ON F.TEMPO,"DADSU":W_PERIODE:W_CODEENTITE:W_DATEJOUR
			* Fin Michael le 19/11/07 :	
			
		*END
END
** FIN MODIF
STOP

***********************************************************
* PREPARATION LEGENDE

1 *
** MODIF le 31.10.07
	IF W_TYPEDIT ="L" THEN
	    IF W_NBMAXAIDANT=4 THEN 
		I=18
	    END ELSE
		I=30
	    END
	
	    ENR_TAMPONDADS<I>="                                              LEGENDE"
	    ENR_TAMPONDADS<I+1>="                                - 7a : NOMBRE D'HEURES SALARIEES"
	    ENR_TAMPONDADS<I+2>="                                - 7b : DERNIER MOIS + DE 60 HEURES"
	    ENR_TAMPONDADS<I+3>="                                - 7c : DUREE MENSUELLE DE TRAVAIL"
	    ENR_TAMPONDADS<I+4>="                                - 8  : ANNEE ENTIERE TRAVAILLEE O/N"
	    ENR_TAMPONDADS<I+5>="                                - 10 : DEPART DEFINITIF O/N"
	    ENR_TAMPONDADS<I+6>="                                - 11 : CODE ETRANGER 'F' OU 'E'"
	    ENR_TAMPONDADS<I+7>="                                - 12 : PERIODES D'EMPLOIS"
	    ENR_TAMPONDADS<I+8>="                                - 13 : CODE FONCTION PCS"
	    ENR_TAMPONDADS<I+9>="                                - 14 : CONDITION EMPLOI 'C' OU 'P'"
	    ENR_TAMPONDADS<I+10>="                                - 15 : NATURE DE L'EMPLOI ET QUALIFICATION"
	    
		IF W_NBMAXAIDANT=4 THEN 
			I=47
		    END ELSE
			I=73
		END
	END
	** FIN MODIF

RETURN

***********************************************************
* PREPARATION ENTETE DU FICHIER (ENTITE + ETABLISSEMENT)

10 *
    W_ADRESSEETAB = ""
    W_NOPAGE=W_NOPAGE+1

    READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,W_ANCIENETAB ELSE ENR_ETABLISSEMENT=""

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

    * CONCATENE ADRESSE ETABLISSEMENT
    IF ENR_ETABLISSEMENT<3><>"" THEN W_ADRESSEETAB=ENR_ETABLISSEMENT<3>:" "
    IF ENR_ETABLISSEMENT<4><>"" THEN W_ADRESSEETAB=W_ADRESSEETAB:ENR_ETABLISSEMENT<4>:" "
    IF ENR_ETABLISSEMENT<5><>"" THEN W_ADRESSEETAB=W_ADRESSEETAB:ENR_ETABLISSEMENT<5>:" "
    IF ENR_ETABLISSEMENT<6><>"" THEN W_ADRESSEETAB=W_ADRESSEETAB:ENR_ETABLISSEMENT<6>
    IF ENR_ETABLISSEMENT<8><>"" THEN W_ADRESSEETAB2=ENR_ETABLISSEMENT<8>:" "
    IF ENR_ETABLISSEMENT<9><>"" THEN W_ADRESSEETAB2=W_ADRESSEETAB2:ENR_ETABLISSEMENT<9>

    * TEST SI ADRESSE ETAB RENSEIGNEE, SINON PREND ADRESSE ENTITE
    IF W_ADRESSEETAB="" AND W_ADRESSEETAB2="" THEN
        IF ENR_ASSOCIATION<3><>"" THEN W_ADRESSEETAB=ENR_ASSOCIATION<3>:" "
        IF ENR_ASSOCIATION<4><>"" THEN W_ADRESSEETAB=W_ADRESSEETAB:ENR_ASSOCIATION<4>:" "
        IF ENR_ASSOCIATION<5><>"" THEN W_ADRESSEETAB=W_ADRESSEETAB:ENR_ASSOCIATION<5>:" "
        IF ENR_ASSOCIATION<6><>"" THEN W_ADRESSEETAB=W_ADRESSEETAB:ENR_ASSOCIATION<6>
        IF ENR_ASSOCIATION<8><>"" THEN W_ADRESSEETAB2=ENR_ASSOCIATION<8>:" "
        IF ENR_ASSOCIATION<9><>"" THEN W_ADRESSEETAB2=W_ADRESSEETAB2:ENR_ASSOCIATION<9>
    END    

    * TRONQUE LES DONNEES
    ENR_ASSOCIATION<1>=ENR_ASSOCIATION<1>[1,38]
    ENR_ETABLISSEMENT<1>=ENR_ETABLISSEMENT<1>[1,38]
    W_ADRESSEETAB=W_ADRESSEETAB[1,38]
    W_ADRESSEETAB2=W_ADRESSEETAB2[1,38]

    * ENTETE DU FICHIER
	** MODIF le 31.10.07
	IF W_TYPEDIT="L" THEN
	    ENR_TAMPONDADS<I>="****************************************************************************************************************"
	    ENR_TAMPONDADS<I+1>="*ENTITE JURIDIQUE      : ":ENR_ASSOCIATION<1>:SPACE(41-LEN(ENR_ASSOCIATION<1>)):"*":" SEC. SOCIALE *    IMPOTS    *   TAXE SAL.  *"
	    ENR_TAMPONDADS<I+2>="*                                                                 **********************************************"
	    ENR_TAMPONDADS<I+3>="*NUMERO DE SIRET       : ":ENR_ETABLISSEMENT<14>:SPACE(14-LEN(ENR_ETABLISSEMENT<14>)):"     CODE APE (NAF) : ":ENR_ETABLISSEMENT<15>:SPACE(5-LEN(ENR_ETABLISSEMENT<15>)):"*":"   TOTALITE   *  REM. BRUTE  *     TOTAL    *"
	    ENR_TAMPONDADS<I+4>="*LIBELLE ETABLISSEMENT : ":ENR_ETABLISSEMENT<1>:SPACE(41-LEN(ENR_ETABLISSEMENT<1>)):"*":"   BASE CSG   *  REM. NETTE  *   TRANCHE 1  *"
	    ENR_TAMPONDADS<I+5>="*ADRESSE ETABLISSEMENT : ":W_ADRESSEETAB:SPACE(41-LEN(W_ADRESSEETAB)):"*":"  LIM. PLAF.  *  AVANT. NAT  *   TRANCHE 2  *"
	    ENR_TAMPONDADS<I+6>="*VILLE ETABLISSEMENT   : ":W_ADRESSEETAB2:SPACE(41-LEN(W_ADRESSEETAB2)):"*":"  CAS PARTI.  *  FRAIS PRO.  *              *"
	    ENR_TAMPONDADS<I+7>="****************************************************************************************************************"
		I=I+7
	END     
	** FIN MODIF
    
RETURN

***********************************************************
* GESTION DADS SALARIE

20 *
 
    W_NBAIDANT=W_NBAIDANT+1

    * RECUPERE ADRESSE
    GOSUB 200

    * CONCATENE LES INFOS
    * N SECU + NOM + PRENOM
    W_SECU=ENR_CIVILAIDANT<17>:"/":ENR_CIVILAIDANT<18>:SPACE(23-LEN(ENR_CIVILAIDANT<17>:"/":ENR_CIVILAIDANT<18>)):ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
    IF ENR_CIVILAIDANT<4><>ENR_CIVILAIDANT<2> THEN
        W_SECU=W_SECU:" - ":ENR_CIVILAIDANT<4>
    END
    W_SECU=W_SECU[1,65]
    * 7a + 7b + 7c
    W_RANG7="7a = ":INT(ENR_HISTORCUMUL<2>/100):"   7b = ":W_MOIS60:"   7c = ":W_HRESMOIS
    * 8 + 10 + 11
    IF W_NBJOURAN>=365 THEN
        W_RANG8="   8 = OUI   10 = ":W_DEPARTDEF:"   11 = ":W_ETRANGER
        W_RANG12="12 = "
    END ELSE
        W_RANG8="   8 = NON   10 = ":W_DEPARTDEF:"   11 = ":W_ETRANGER
        W_RANG12="12 = ":W_PERIODECONTRAT:W_PERIODECONTRAT2
    END
    * 12
    * 13 + 14 +15
    W_RANG13="13 = ":W_PCS:"   14 = ":W_CONDEMPL:"   15 = ":W_FONCTIONPCS

    * RECUPERE BASE (SECU. + IMPOTS + TAXE SAL.)
    GOSUB 201

	** MODIF le 31.10.07
	IF W_TYPEDIT="L" THEN
	    ENR_TAMPONDADS<I+1>="*":W_SECU:SPACE(65-LEN(W_SECU)):"*              *              *              *"
	    ENR_TAMPONDADS<I+2>="*":SPACE(2):W_ADRESSEAIDANT:SPACE(63-LEN(W_ADRESSEAIDANT)):"*16A=":SPACE(9-LEN(W_BASE16A)):W_BASE16A:" *20A=":SPACE(9-LEN(W_BASE20A)):W_BASE20A:" *23A=":SPACE(9-LEN(W_BASE23A)):W_BASE23A:" *"
	    ENR_TAMPONDADS<I+3>="*":SPACE(2):W_ADRESSEAIDANT2:SPACE(63-LEN(W_ADRESSEAIDANT2)):"*16B=":SPACE(9-LEN(W_BASE16B)):W_BASE16B:" *20B=":SPACE(9-LEN(W_BASE20B)):W_BASE20B:" *23B=":SPACE(9-LEN(W_BASE23B)):W_BASE23B:" *"
	    ENR_TAMPONDADS<I+4>="*":SPACE(2):W_RANG7:W_RANG8:SPACE(63-LEN(W_RANG7:W_RANG8)):"*17 =":SPACE(9-LEN(W_BASE17)):W_BASE17:" *21A=":SPACE(9-LEN(W_BASE21A)):W_BASE21A:" *23C=":SPACE(9-LEN(W_BASE23C)):W_BASE23C:" *"
	    ENR_TAMPONDADS<I+5>="*":SPACE(2):W_RANG12:SPACE(63-LEN(W_RANG12)):"*19 =":SPACE(9-LEN(W_BASE19)):W_BASE19:" *21B=":SPACE(9-LEN(W_BASE21B)):W_BASE21B:" *              *"
	    ENR_TAMPONDADS<I+6>="*":SPACE(2):W_RANG13:SPACE(63-LEN(W_RANG13)):"*              *              *              *"
	    ENR_TAMPONDADS<I+7>="*-----------------------------------------------------------------*--------------*--------------*--------------*"
		I=I+7
	END ELSE
		** Traitement cas fichier.csv
		W_ADRESSEAIDANTLigne1 = TRIM(ENR_CIVILAIDANT<5> : " " : ENR_CIVILAIDANT<6> : " ":ENR_CIVILAIDANT<7>:" " : ENR_CIVILAIDANT<8>)
		
		***
		
		IF W_PASSAGE = 1 THEN
			I=1
			W_PASSAGE = W_PASSAGE + 1
			ENR_TAMPONDADS<I>="Code Aidant" : ";" : "Nom" : ";" : "Prnom" : ";" : "Adresse" : ";" : "Complment adresse" : ";" : "CP" : ";" : "Ville" : ";"
			ENR_TAMPONDADS<I>=ENR_TAMPONDADS<I> : "Nom patronymique" : ";" : "Numro SS" : ";" : "Date naissance" : ";" : "Date d'entre la plus ancienne" : ";" : "Date de sortie la plus ancienne" : ";" : "Qualification professionnelle" : ";" 
			ENR_TAMPONDADS<I>=ENR_TAMPONDADS<I> : "BASE SS totalit" : ";" : "BASE SS Plafond" : ";" : "SS Cas particulier" : ";" : "CSG" : ";" : "Brut Acquis" : ";" 
			ENR_TAMPONDADS<I>=ENR_TAMPONDADS<I> : "Net imposable" : ";" : "Avantages nature" : ";" : "Frais professionnels" : ";" : "BASE Taxe salaire totalit" : ";" : "BASE Taxe salaire TR1" : ";" : "BASE Taxe salaire TR2" : ";"
			I=I+2
		END
		
		****
		ENR_TAMPONDADS<I>=W_CLEAIDANT : ";" : ENR_CIVILAIDANT<2> : ";" : ENR_CIVILAIDANT<3> : ";" : W_ADRESSEAIDANTLigne1 : ";" : ENR_CIVILAIDANT<9> :";"
		ENR_TAMPONDADS<I>=ENR_TAMPONDADS<I> : ENR_CIVILAIDANT<10> : ";" : ENR_CIVILAIDANT<11> : ";" : ENR_CIVILAIDANT<4> : ";" : W_SECU[1,22] :";"
		ENR_TAMPONDADS<I>=ENR_TAMPONDADS<I> : OCONV(ENR_CIVILAIDANT<26>, "D4/") : ";" : W_RANG12[9,10] : ";" : W_RANG12[23,10] : ";" : W_FONCTIONPCS : ";" : W_BASE16A : ";"
		ENR_TAMPONDADS<I>=ENR_TAMPONDADS<I> : W_BASE17 : ";" : W_BASE19 : ";" : W_BASE16B : ";" : W_BASE20A : ";" : W_BASE20B : ";" : W_BASE21A : ";"
		ENR_TAMPONDADS<I>=ENR_TAMPONDADS<I> : W_BASE21B : ";" : W_BASE23A : ";" : W_BASE23B : ";" : W_BASE23C : ";"
		I = I + 1
	END
	** FIN MODIF
    
RETURN


***END ELSE
***	ENR_TAMPONDADS=""
***	ENR_TAMPONDADS<1>="AUCUN ENREGISTREMENT TROUVE"
***	WRITE ENR_TAMPONDADS ON F.TEMPO,"DADSU":"validit":W_DATEJOUR:W_NORDRE


***********************************************************
* GESTION SAUT DE PAGE

30 *

    GOSUB 300

    GOSUB 301
	
	** MODIF le 31.10.07
	IF W_TYPEDIT="L" THEN
    * TOTAL DE LA PAGE
	    ENR_TAMPONDADS<I>="*-----------------------------------------------------------------*--------------*--------------*--------------*"
	    ENR_TAMPONDADS<I+1>=SPACE(55):"*          *16A=":SPACE(9-LEN(W_TOTAL16A)):W_TOTAL16A:" *20A=":SPACE(9-LEN(W_TOTAL20A)):W_TOTAL20A:" *23A=":SPACE(9-LEN(W_TOTAL23A)):W_TOTAL23A:" *"
	    ENR_TAMPONDADS<I+2>="PERIODE DADS    : ":W_PERIODE:SPACE(33):"*  TOTAUX  *16B=":SPACE(9-LEN(W_TOTAL16B)):W_TOTAL16B:" *20B=":SPACE(9-LEN(W_TOTAL20B)):W_TOTAL20B:" *23B=":SPACE(9-LEN(W_TOTAL23B)):W_TOTAL23B:" *"
	    ENR_TAMPONDADS<I+3>=SPACE(55):"*   PAR    *17 =":SPACE(9-LEN(W_TOTAL17)):W_TOTAL17:" *21A=":SPACE(9-LEN(W_TOTAL21A)):W_TOTAL21A:" *23C=":SPACE(9-LEN(W_TOTAL23C)):W_TOTAL23C:" *"
	    ENR_TAMPONDADS<I+4>="DATE EDITION    : ":OCONV(DATE(),"D4/"):SPACE(27):"* FEUILLET *19 =":SPACE(9-LEN(W_TOTAL19)):W_TOTAL19:" *21B=":SPACE(9-LEN(W_TOTAL21B)):W_TOTAL21B:" *              *"
	    ENR_TAMPONDADS<I+5>=SPACE(55):"*----------*--------------*--------------*--------------*"
	    ENR_TAMPONDADS<I+6>="FEUILLET NUMERO : ":W_NOPAGE:SPACE(37-LEN(W_NOPAGE)):"*          *16A=":SPACE(10-LEN(W_TOTALG16A)):W_TOTALG16A:"*20A=":SPACE(10-LEN(W_TOTALG20A)):W_TOTALG20A:"*23A=":SPACE(10-LEN(W_TOTALG23A)):W_TOTALG23A:"*"
	    ENR_TAMPONDADS<I+7>=SPACE(55):"*  TOTAUX  *16B=":SPACE(10-LEN(W_TOTALG16B)):W_TOTALG16B:"*20B=":SPACE(10-LEN(W_TOTALG20B)):W_TOTALG20B:"*23B=":SPACE(10-LEN(W_TOTALG23B)):W_TOTALG23B:"*"
	    ENR_TAMPONDADS<I+8>=SPACE(55):"*  CUMULES *17 =":SPACE(10-LEN(W_TOTALG17)):W_TOTALG17:"*21A=":SPACE(10-LEN(W_TOTALG21A)):W_TOTALG21A:"*23C=":SPACE(10-LEN(W_TOTALG23C)):W_TOTALG23C:"*"
	    ENR_TAMPONDADS<I+9>=SPACE(55):"*          *19 =":SPACE(10-LEN(W_TOTALG19)):W_TOTALG19:"*21B=":SPACE(10-LEN(W_TOTALG21B)):W_TOTALG21B:"*              *"
	    ENR_TAMPONDADS<I+10>=SPACE(55):"*----------*--------------*--------------*--------------*"
		I=I+11
		* Michael le 19/11/07 : 
		IF W_NBMAXAIDANT=4 THEN
			IF W_NBAIDANT<W_NBMAXAIDANT THEN I=I+((W_NBMAXAIDANT-W_NBAIDANT)*7)
	      END ELSE
			IF W_NBAIDANT<=W_NBMAXAIDANT THEN I=I+((W_NBMAXAIDANT-W_NBAIDANT)*7)+5
    		END
		* FIn Michael
	END
	** FIN MODIF
    

    

    W_TOTAL16A=0
    W_TOTAL16B=0
    W_TOTAL17=0
    W_TOTAL19=0
    W_TOTAL20A=0
    W_TOTAL20B=0
    W_TOTAL21A=0
    W_TOTAL21B=0
    W_TOTAL23A=0
    W_TOTAL23B=0
    W_TOTAL23C=0
    W_TOTAL16A1=0
    W_TOTAL16B1=0
    W_TOTAL171=0
    W_TOTAL191=0
    W_TOTAL20A1=0
    W_TOTAL20B1=0
    W_TOTAL21A1=0
    W_TOTAL21B1=0
    W_TOTAL23A1=0
    W_TOTAL23B1=0
    W_TOTAL23C1=0

    W_NBAIDANT=0
    W_TEST=0

RETURN

***********************************************************
* IMPRIME LE TOTAL DE L'ENTITE

40 *

    W_ADRESSEETAB = "" 
    W_NOPAGE=W_NOPAGE+1

    GOSUB 401
	
    IF ENR_ASSOCIATION<3><>"" THEN W_ADRESSEETAB=ENR_ASSOCIATION<3>:" "
    IF ENR_ASSOCIATION<4><>"" THEN W_ADRESSEETAB=W_ADRESSEETAB:ENR_ASSOCIATION<4>:" "
    IF ENR_ASSOCIATION<5><>"" THEN W_ADRESSEETAB=W_ADRESSEETAB:ENR_ASSOCIATION<5>:" "
    IF ENR_ASSOCIATION<6><>"" THEN W_ADRESSEETAB=W_ADRESSEETAB:ENR_ASSOCIATION<6>
    IF ENR_ASSOCIATION<8><>"" THEN W_ADRESSEETAB2=ENR_ASSOCIATION<8>:" "
    IF ENR_ASSOCIATION<9><>"" THEN W_ADRESSEETAB2=W_ADRESSEETAB2:ENR_ASSOCIATION<9>
    ENR_ASSOCIATION<2>=ENR_ASSOCIATION<2>[1,40]

	** MODIF le 31.10.07
	IF W_TYPEDIT = "L" THEN
	    * ENTETE DU FICHIER
	    ENR_TAMPONDADS<I+5>=SPACE(40):"BORDEREAU RECAPITULATIF"
	    I=I+10

	    ENR_TAMPONDADS<I>="****************************************************************************************************************"
	    ENR_TAMPONDADS<I+1>="*ENTITE JURIDIQUE      : ":ENR_ASSOCIATION<1>:SPACE(41-LEN(ENR_ASSOCIATION<1>)):"*":" SEC. SOCIALE *    IMPOTS    *   TAXE SAL.  *"
	    ENR_TAMPONDADS<I+2>="*                                                                 **********************************************"
	    ENR_TAMPONDADS<I+3>="*NUMERO DE SIREN       : ":ENR_ASSOCIATION<14>:SPACE(14-LEN(ENR_ASSOCIATION<14>)):"                           *":"   TOTALITE   *  REM. BRUTE  *     TOTAL    *"
	    ENR_TAMPONDADS<I+4>="*LIBELLE ENTITE        : ":ENR_ASSOCIATION<2>:SPACE(41-LEN(ENR_ASSOCIATION<2>)):"*":"   BASE CSG   *  REM. NETTE  *   TRANCHE 1  *"
	    ENR_TAMPONDADS<I+5>="*ADRESSE ENTITE        : ":W_ADRESSEETAB:SPACE(41-LEN(W_ADRESSEETAB)):"*":"  LIM. PLAF.  *  AVANT. NAT  *   TRANCHE 2  *"
	    ENR_TAMPONDADS<I+6>="*VILLE ENTITE          : ":W_ADRESSEETAB2:SPACE(41-LEN(W_ADRESSEETAB2)):"*":"  CAS PARTI.  *  FRAIS PRO.  *              *"
	    ENR_TAMPONDADS<I+7>="****************************************************************************************************************"

	    ENR_TAMPONDADS<I+8>=SPACE(55):"*          *16A=":SPACE(10-LEN(W_TOTALENT16A)):W_TOTALENT16A:"*20A=":SPACE(10-LEN(W_TOTALENT20A)):W_TOTALENT20A:"*23A=":SPACE(10-LEN(W_TOTALENT23A)):W_TOTALENT23A:"*"
	    ENR_TAMPONDADS<I+9>="PERIODE DADS    : ":W_PERIODE:SPACE(33):"*  TOTAUX  *16B=":SPACE(10-LEN(W_TOTALENT16B)):W_TOTALENT16B:"*20B=":SPACE(10-LEN(W_TOTALENT20B)):W_TOTALENT20B:"*23B=":SPACE(10-LEN(W_TOTALENT23B)):W_TOTALENT23B:"*"
	    ENR_TAMPONDADS<I+10>="DATE D'EDITION  : ":OCONV(DATE(),"D4/"):SPACE(27):"*  CUMULES *17 =":SPACE(10-LEN(W_TOTALENT17)):W_TOTALENT17:"*21A=":SPACE(10-LEN(W_TOTALENT21A)):W_TOTALENT21A:"*23C=":SPACE(10-LEN(W_TOTALENT23C)):W_TOTALENT23C:"*"
	    ENR_TAMPONDADS<I+11>="FEUILLET NUMERO : ":W_NOPAGE:SPACE(37-LEN(W_NOPAGE)):"*          *19 =":SPACE(10-LEN(W_TOTALENT19)):W_TOTALENT19:"*21B=":SPACE(10-LEN(W_TOTALENT21B)):W_TOTALENT21B:"*              *"
	    ENR_TAMPONDADS<I+12>=SPACE(55):"*----------*--------------*--------------*--------------*"
	END 
	** FIN MODIF
RETURN

***********************************************************
* RECHERCHE + STOCKE INFORMATION CONCERNANT L'AIDANT

100 *

    * LECTURE CIVILAIDANT    
    READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,CLE[1,5] ELSE ENR_CIVILAIDANT=""
	W_CLEAIDANT = CLE[1,5]

    * LECTURE CONTRAT
    * Anthony DA11094-01 18/10/11    
    * READ ENR_CONTRAT FROM F.CONTRAT,CLE ELSE ENR_CONTRAT=""    
    READ ENR_CONTRAT FROM F.CONTRAT,ENR_HISTORCUMUL<34>[1,8] ELSE ENR_CONTRAT=""
    W_BASETAXETOT=0
    W_AIDANTMULTIETABL="NON"
    * LECTURE HISTORCUMUL
    * READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,CLE[1,5]:W_PERIODE:ENR_CONTRAT<2> ELSE ENR_HISTORCUMUL=""
    *IF ENR_HISTORCUMUL<23>#"" THEN
    *   W_AIDANTMULTIETABL="OUI"
    *   IF ENR_HISTORCUMUL<23,1>[10,6]=ENR_CONTRAT<3> THEN
    *      K=1
    *      LOOP
    *      UNTIL ENR_HISTORCUMUL<15,K>="" DO
    *         READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_HISTORCUMUL<15,K> 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,K>
    *               END
    *            END
    *         END
    *         K=K+1
    *      REPEAT
    *   END
    *   READ ENR_HISTORCUMUL FROM F.HISTORCUMULETABL,CLE[1,5]:W_PERIODE:ENR_CONTRAT<3> ELSE ENR_HISTORCUMUL=""
    *END
    *Fin Anthony    

    * LECTURE ETRANGER
    READ ENR_ETRANGER FROM F.ETRANGER,CLE[1,5] THEN 
       IF ENR_ETRANGER<1><>"" THEN 
	  W_ETRANGER="E"
       END ELSE
	  W_ETRANGER="F"
       END
    END ELSE
       W_ETRANGER="F"
    END
    
    * CALCUL DIVERS 

    W_AIDANT=CLE[1,5]

    * CALCUL HRES MENSUELLES
    W_HRESMOIS=0
    J=1
    J=DCOUNT(ENR_CONTRAT<25>,CHAR(253))
    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

    IF W_HRESMOIS#0 THEN W_HRESMOIS=INT((W_HRESMOIS/100)+1/2)

    * FONCTION PCS
    W_PCS=ENR_CONTRAT<17,J>
    IF W_PCS="" THEN W_PCS="563b"
    W_FONCTIONPCS=ENR_CONTRAT<16,J>[1,34]

    * TEMPS COMPLET OU PARTIEL
    IF W_HRESMOIS>=W_HORLEGAL THEN
       W_CONDEMPL="C"
    END ELSE
       W_CONDEMPL="P"
    END

    * CALCUL DERNIER MOIS + 60 HRES
    W_MOIS60=ENR_HISTORCUMUL<3>

RETURN

***********************************************************
* RECUPERE INFORMATION CONCERNANT L'AIDANT

200 *

    W_ADRESSEAIDANT=""
    W_ADRESSEAIDANT2=""
    W_SECU=""
    W_RANG7=""
    W_RANG8=""
    W_RANG12=""
    W_RANG13=""
    W_BASECSG=0
    W_BASETOTAL=0
    W_BASEPLAF=0
    W_BASETAXE1=0
    W_BASETAXE2=0
    W_BASEPART=0
    W_BASEPART2=0
    W_TAXESAL1=0
    W_TAUXBAS=0
    W_TAUXHAUT=0

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

	 READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_HISTORCUMUL<15,K> 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,K>
		    END	  
		    IF INDEX(W_TabTot,ENR_HISTORCUMUL<15,K>,1)#0 THEN
			 W_BASETOTAL=W_BASETOTAL+ENR_HISTORCUMUL<17,K>
		    END	  
		    IF INDEX(W_TabPlaf,ENR_HISTORCUMUL<15,K>,1)#0 THEN ;* BASE TRANCHE A
			 W_BASEPLAF=W_BASEPLAF+ENR_HISTORCUMUL<17,K>
		    END	  
		    IF ENR_TRANCHE<10>="07" AND ENR_RUBCHARGE<16>="05" AND W_TAXESAL1=0 THEN ;* TAXE SALAIRE TRANCHE 1
		* Michael, le 23/11/07 : 
		*	 * RECUPERATION TAXE TRANCHE 1
		*	 W_TAXEBAS=ENR_TRANCHE<4>
		*	 W_TAXEHAUT=ENR_TRANCHE<5>
			 W_TAXESAL1=1
		    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,K>
		    END
		    
		    * REGARDE SI RUBRIQUE DANS TDSCASPARTICULIERS 
     	            *READ ENR_TDSCASPARTICULIERS FROM F.TDSCASPARTICULIERS,ENR_HISTORCUMUL<15,K> THEN
* MICHAEL, LE 11/01/08 : AJOUT GESTION  RUB 907
		    IF INDEX(ENR_TDSCASPARTICULIERS<1>,ENR_HISTORCUMUL<15,K>,1) # 0 AND ENR_HISTORCUMUL<15,K> # "904" AND ENR_HISTORCUMUL<15,K> #"903" AND ENR_HISTORCUMUL<15,K> #"907" THEN
                   * Didier 26/10/2011
                   D=1
                   LOOP
                   UNTIL ENR_TDSCASPARTICULIERS<1,D> = ENR_HISTORCUMUL<15,K> OR D > Nb_RubTot DO
                      D=D+1
                   REPEAT
                   IF ENR_TDSCASPARTICULIERS<1,D> = ENR_HISTORCUMUL<15,K> THEN
			    IF ENR_TDSCASPARTICULIERS<2,D> # "" THEN W_BASEPART=W_BASEPART+ENR_HISTORCUMUL<17,K>
                   END
		    END
		    
	       END
	 END
	 K=K+1	 
    REPEAT

    W_BASEPLAF=W_BASEPLAF-W_BASEPART
    IF W_BASEPLAF<0 THEN W_BASEPLAF=0

* Didier 12/01/2012 : suppression test
*    * SI BASE PLAF. SECU > BASE TOTALITE
*    IF W_BASETOTAL<=ENR_HISTORCUMUL<4> AND W_BASEPLAF<>0 THEN
*	 W_BASEPLAF=W_BASETOTAL-W_BASEPART
*    END

    * 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

    * CONCATENE ADRESSE SALARIE
    IF ENR_CIVILAIDANT<5><>"" THEN W_ADRESSEAIDANT=ENR_CIVILAIDANT<5>:" "
    IF ENR_CIVILAIDANT<6><>"" THEN W_ADRESSEAIDANT=W_ADRESSEAIDANT:ENR_CIVILAIDANT<6>:" "
    IF ENR_CIVILAIDANT<7><>"" THEN W_ADRESSEAIDANT=W_ADRESSEAIDANT:ENR_CIVILAIDANT<7>:" "
    IF ENR_CIVILAIDANT<8><>"" THEN W_ADRESSEAIDANT=W_ADRESSEAIDANT:ENR_CIVILAIDANT<8>:" "
    IF ENR_CIVILAIDANT<9><>"" AND W_ADRESSEAIDANT="" THEN 
	 W_ADRESSEAIDANT=ENR_CIVILAIDANT<9>
    END ELSE
	 IF ENR_CIVILAIDANT<9><>"" THEN W_ADRESSEAIDANT=W_ADRESSEAIDANT:" - ":ENR_CIVILAIDANT<9>
    END
    IF ENR_CIVILAIDANT<10><>"" THEN W_ADRESSEAIDANT2=ENR_CIVILAIDANT<10>:" "
    IF ENR_CIVILAIDANT<11><>"" THEN W_ADRESSEAIDANT2=W_ADRESSEAIDANT2:ENR_CIVILAIDANT<11>
    IF W_ADRESSEAIDANT>70 THEN W_ADRESSEAIDANT=W_ADRESSEAIDANT[1,61]

RETURN

***********************************************************
* RECUPERE INFORMATION BASE (SECU. + IMPOTS + TAXE SAL.)

201 *

    * STOCKE LA PARTIE ENTIERE
    W_BASE16A=INT((W_BASETOTAL/100)+1/2)
    W_BASE16B=INT((W_BASECSG/100)+1/2)
    W_BASE17=INT((W_BASEPLAF/100)+1/2)
    W_BASE19=INT((W_BASEPART/100)+1/2)

* Didier 12/01/2012 : suppression test
*    * VERIFIE SI TOTAL 17 + 19 = 16A
*    IF W_BASE16A<=ENR_HISTORCUMUL<4>/100 THEN
*        IF W_BASE17+W_BASE19<>W_BASE16A THEN
*	    W_BASE17=W_BASE16A-W_BASE19
*        END
*    END

    W_BASE20A=INT((ENR_HISTORCUMUL<5>/100)+1/2)
    W_BASE20B=INT((ENR_HISTORCUMUL<6>/100)+1/2)
    W_BASE21A=INT((ENR_HISTORCUMUL<8>/100)+1/2)
    W_BASE21B=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_BASE21B=W_BASE21B+INT((ENR_TDSFRAISPROFESSIONNELS<1>/100)+1/2)
    END

    W_BASE23A=INT((W_BASETAXETOT/100)+1/2)
    W_BASE23B=INT((W_BASETAXE1/100)+1/2)
    W_BASE23C=INT((W_BASETAXE2/100)+1/2)

    * CALCUL LES CUMULS DE BAS DE PAGE
    W_TOTAL16A=W_TOTAL16A+W_BASE16A
    W_TOTAL16B=W_TOTAL16B+W_BASE16B
    W_TOTAL17=W_TOTAL17+W_BASE17
    W_TOTAL19=W_TOTAL19+W_BASE19

    W_TOTALG16A1=W_TOTALG16A1+W_BASE16A
    W_TOTALG16B1=W_TOTALG16B1+W_BASE16B
    W_TOTALG171=W_TOTALG171+W_BASE17
    W_TOTALG191=W_TOTALG191+W_BASE19

    W_TOTAL20A=W_TOTAL20A+W_BASE20A
    W_TOTAL20B=W_TOTAL20B+W_BASE20B
    W_TOTAL21A=W_TOTAL21A+W_BASE21A
    W_TOTAL21B=W_TOTAL21B+W_BASE21B

    W_TOTALG20A1=W_TOTALG20A1+W_BASE20A
    W_TOTALG20B1=W_TOTALG20B1+W_BASE20B
    W_TOTALG21A1=W_TOTALG21A1+W_BASE21A
    W_TOTALG21B1=W_TOTALG21B1+W_BASE21B

    W_TOTAL23A=W_TOTAL23A+W_BASE23A
    W_TOTAL23B=W_TOTAL23B+W_BASE23B
    W_TOTAL23C=W_TOTAL23C+W_BASE23C

    W_TOTALG23A1=W_TOTALG23A1+W_BASE23A
    W_TOTALG23B1=W_TOTALG23B1+W_BASE23B
    W_TOTALG23C1=W_TOTALG23C1+W_BASE23C

    GOSUB 400

    * STOCKE LES BASES AFIN D'INSERER SEPARATEUR MILLIER - 16A + 16B + 17
    IF W_BASE16A>999 AND W_BASE16A<>0 THEN 
         W_BASE16A2=LEN(W_BASE16A)
         W_BASE16A=W_BASE16A[1,W_BASE16A2-3]:".":W_BASE16A[W_BASE16A2-2,3]
    END
    IF W_BASE16B>999 AND W_BASE16B<>0 THEN
         W_BASE16B2=LEN(W_BASE16B)
         W_BASE16B=W_BASE16B[1,W_BASE16B2-3]:".":W_BASE16B[W_BASE16B2-2,3]
    END ELSE
	 W_BASE16B=" ":W_BASE16B
    END
    IF W_BASE17>999 AND W_BASE17<>0 THEN 
	 W_BASE172=LEN(W_BASE17)
         W_BASE17=W_BASE17[1,W_BASE172-3]:".":W_BASE17[W_BASE172-2,3]
    END
    IF W_BASE19>999 AND W_BASE19<>0 THEN 
	 W_BASE192=LEN(W_BASE19)
         W_BASE19=W_BASE19[1,W_BASE192-3]:".":W_BASE19[W_BASE192-2,3]
    END

    * STOCKE LES BASES AFIN D'INSERER SEPARATEUR MILLIER - 20A - 20B - 21A - 21B
    IF W_BASE20A>999 AND W_BASE20A<>0 THEN 
         W_BASE20A2=LEN(W_BASE20A)
         W_BASE20A=W_BASE20A[1,W_BASE20A2-3]:".":W_BASE20A[W_BASE20A2-2,3]
    END
    IF W_BASE20B>999 AND W_BASE20B<>0 THEN
         W_BASE20B2=LEN(W_BASE20B)
         W_BASE20B=W_BASE20B[1,W_BASE20B2-3]:".":W_BASE20B[W_BASE20B2-2,3]
    END
    IF W_BASE21A>999 AND W_BASE21A<>0 THEN 
         W_BASE21A2=LEN(W_BASE21A)
         W_BASE21A=W_BASE21A[1,W_BASE21A2-3]:".":W_BASE21A[W_BASE21A2-2,3]
    END
    IF W_BASE21B>999 AND W_BASE21B<>0 THEN
         W_BASE21B2=LEN(W_BASE21B)
         W_BASE21B=W_BASE21B[1,W_BASE21B2-3]:".":W_BASE21B[W_BASE21B2-2,3]
    END

    * STOCKE LES BASES AFIN D'INSERER SEPARATEUR MILLIER - 23A - 23B - 23C
    IF W_BASE23A>999 AND W_BASE23A<>0 THEN 
         W_BASE23A2=LEN(W_BASE23A)
         W_BASE23A=W_BASE23A[1,W_BASE23A2-3]:".":W_BASE23A[W_BASE23A2-2,3]
    END
    IF W_BASE23B>999 AND W_BASE23B<>0 THEN
         W_BASE23B2=LEN(W_BASE23B)
         W_BASE23B=W_BASE23B[1,W_BASE23B2-3]:".":W_BASE23B[W_BASE23B2-2,3]
    END
    IF W_BASE23C>999 AND W_BASE23C<>0 THEN 
         W_BASE23C2=LEN(W_BASE23C)
         W_BASE23C=W_BASE23C[1,W_BASE23C2-3]:".":W_BASE23C[W_BASE23C2-2,3]
    END
RETURN

***********************************************************
* RECUPERE INFORMATION BASE TOTAL (SECU. + IMPOTS + TAXE SAL.)

300 *
    * STOCKE LES BASES AFIN D'INSERER SEPARATEUR MILLIER + MILLIONS   
    IF W_TOTAL16A>999 AND W_TOTAL16A<>0 THEN 
         W_TOTAL16A2=LEN(W_TOTAL16A)
         IF W_TOTAL16A>999999 THEN
             W_TOTAL16A=W_TOTAL16A[1,W_TOTAL16A2-6]:".":W_TOTAL16A[W_TOTAL16A2-5,W_TOTAL16A2]
	 END 
         W_TOTAL16A=W_TOTAL16A[W_TOTAL16A2-6,W_TOTAL16A2-3]:".":W_TOTAL16A[W_TOTAL16A2-2,3]
    END
    IF W_TOTAL16B>999 AND W_TOTAL16B<>0 THEN
         W_TOTAL16B2=LEN(W_TOTAL16B)
         IF W_TOTAL16B>999999 THEN
             W_TOTAL16B=W_TOTAL16B[1,W_TOTAL16B2-6]:".":W_TOTAL16B[W_TOTAL16B2-5,W_TOTAL16B2]
	 END
         W_TOTAL16B=W_TOTAL16B[W_TOTAL16B2-6,W_TOTAL16B2-3]:".":W_TOTAL16B[W_TOTAL16B2-2,3]
    END ELSE
	 W_TOTAL16B=" ":W_TOTAL16B
    END
    IF W_TOTAL17>999 AND W_TOTAL17<>0 THEN 
	 W_TOTAL172=LEN(W_TOTAL17)
         IF W_TOTAL17>999999 THEN
             W_TOTAL17=W_TOTAL17[1,W_TOTAL172-6]:".":W_TOTAL17[W_TOTAL172-5,W_TOTAL172]
	 END
         W_TOTAL17=W_TOTAL17[W_TOTAL172-6,W_TOTAL172-3]:".":W_TOTAL17[W_TOTAL172-2,3]
    END
    IF W_TOTAL19>999 AND W_TOTAL19<>0 THEN 
	 W_TOTAL192=LEN(W_TOTAL19)
         IF W_TOTAL19>999999 THEN
             W_TOTAL19=W_TOTAL19[1,W_TOTAL192-6]:".":W_TOTAL19[W_TOTAL192-5,W_TOTAL192]
	 END
         W_TOTAL19=W_TOTAL19[W_TOTAL192-6,W_TOTAL192-3]:".":W_TOTAL19[W_TOTAL192-2,3]
    END
    IF W_TOTAL20A>999 AND W_TOTAL20A<>0 THEN 
         W_TOTAL20A2=LEN(W_TOTAL20A)
         IF W_TOTAL20A>999999 THEN
             W_TOTAL20A=W_TOTAL20A[1,W_TOTAL20A2-6]:".":W_TOTAL20A[W_TOTAL20A2-5,W_TOTAL20A2]
	 END
         W_TOTAL20A=W_TOTAL20A[W_TOTAL20A2-6,W_TOTAL20A2-3]:".":W_TOTAL20A[W_TOTAL20A2-2,3]
    END
    IF W_TOTAL20B>999 AND W_TOTAL20B<>0 THEN
         W_TOTAL20B2=LEN(W_TOTAL20B)
         IF W_TOTAL20B>999999 THEN
             W_TOTAL20B=W_TOTAL20B[1,W_TOTAL20B2-6]:".":W_TOTAL20B[W_TOTAL20B2-5,W_TOTAL20B2]
	 END
         W_TOTAL20B=W_TOTAL20B[W_TOTAL20B2-6,W_TOTAL20B2-3]:".":W_TOTAL20B[W_TOTAL20B2-2,3]
    END
    IF W_TOTAL21A>999 AND W_TOTAL21A<>0 THEN 
         W_TOTAL21A2=LEN(W_TOTAL21A)
         IF W_TOTAL21A>999999 THEN
             W_TOTAL21A=W_TOTAL21A[1,W_TOTAL21A2-6]:".":W_TOTAL21A[W_TOTAL21A2-5,W_TOTAL21A2]
	 END
         W_TOTAL21A=W_TOTAL21A[W_TOTAL21A2-6,W_TOTAL21A2-3]:".":W_TOTAL21A[W_TOTAL21A2-2,3]
    END
    IF W_TOTAL21B>999 AND W_TOTAL21B<>0 THEN
         W_TOTAL21B2=LEN(W_TOTAL21B)
         IF W_TOTAL21B>999999 THEN
             W_TOTAL21B=W_TOTAL21B[1,W_TOTAL21B2-6]:".":W_TOTAL21B[W_TOTAL21B2-5,W_TOTAL21B2]
	 END
         W_TOTAL21B=W_TOTAL21B[W_TOTAL21B2-6,W_TOTAL21B2-3]:".":W_TOTAL21B[W_TOTAL21B2-2,3]
    END

    IF W_TOTAL23A>999 AND W_TOTAL23A<>0 THEN
         W_TOTAL23A2=LEN(W_TOTAL23A)
         IF W_TOTAL23A>999999 THEN
             W_TOTAL23A=W_TOTAL23A[1,W_TOTAL23A2-6]:".":W_TOTAL23A[W_TOTAL23A2-5,W_TOTAL23A2]
	 END
         W_TOTAL23A=W_TOTAL23A[W_TOTAL23A2-6,W_TOTAL23A2-3]:".":W_TOTAL23A[W_TOTAL23A2-2,3]
    END
    IF W_TOTAL23B>999 AND W_TOTAL23B<>0 THEN
         W_TOTAL23B2=LEN(W_TOTAL23B)
         IF W_TOTAL23B>999999 THEN
             W_TOTAL23B=W_TOTAL23B[1,W_TOTAL23B2-6]:".":W_TOTAL23B[W_TOTAL23B2-5,W_TOTAL23B2]
	 END
         W_TOTAL23B=W_TOTAL23B[W_TOTAL23B2-6,W_TOTAL23B2-3]:".":W_TOTAL23B[W_TOTAL23B2-2,3]
    END
    IF W_TOTAL23C>999 AND W_TOTAL23C<>0 THEN
         W_TOTAL23C2=LEN(W_TOTAL23C)
         IF W_TOTAL23C>999999 THEN
             W_TOTAL23C=W_TOTAL23C[1,W_TOTAL23C2-6]:".":W_TOTAL23C[W_TOTAL23C2-5,W_TOTAL23C2]
	 END
         W_TOTAL23C=W_TOTAL23C[W_TOTAL23C2-6,W_TOTAL23C2-3]:".":W_TOTAL23C[W_TOTAL23C2-2,3]
    END
RETURN

***********************************************************
* INSERTION SEPARATEUR MILLIERS + MILLIONS (TOTAL BASE)

301 * 

    W_TOTALG16A=W_TOTALG16A1
    W_TOTALG16B=W_TOTALG16B1
    W_TOTALG17=W_TOTALG171
    W_TOTALG19=W_TOTALG191
    W_TOTALG20A=W_TOTALG20A1
    W_TOTALG20B=W_TOTALG20B1
    W_TOTALG21A=W_TOTALG21A1
    W_TOTALG21B=W_TOTALG21B1
    W_TOTALG23A=W_TOTALG23A1
    W_TOTALG23B=W_TOTALG23B1
    W_TOTALG23C=W_TOTALG23C1

    * STOCKE LES BASES AFIN D'INSERER SEPARATEUR MILLIER GLOBAL - 16A + 16B + 17
    IF W_TOTALG16A>999 AND W_TOTALG16A<>0 THEN 
         W_TOTALG16A2=LEN(W_TOTALG16A)
         IF W_TOTALG16A>999999 THEN
             W_TOTALG16A3=W_TOTALG16A[1,W_TOTALG16A2-6]:"."
	     W_TOTALG16A=W_TOTALG16A[W_TOTALG16A2-5,W_TOTALG16A2]
	     W_TOTALG16A2=LEN(W_TOTALG16A)
	     W_TOTALG16A=W_TOTALG16A[W_TOTALG16A2-6,W_TOTALG16A2-3]:".":W_TOTALG16A[W_TOTALG16A2-2,3]
	     W_TOTALG16A=W_TOTALG16A3:W_TOTALG16A
	 END ELSE
             W_TOTALG16A=W_TOTALG16A[W_TOTALG16A2-6,W_TOTALG16A2-3]:".":W_TOTALG16A[W_TOTALG16A2-2,3]
	 END
    END
    IF W_TOTALG16B>999 AND W_TOTALG16B<>0 THEN
         W_TOTALG16B2=LEN(W_TOTALG16B)
         IF W_TOTALG16B>999999 THEN
             W_TOTALG16B3=W_TOTALG16B[1,W_TOTALG16B2-6]:"."
	     W_TOTALG16B=W_TOTALG16B[W_TOTALG16B2-5,W_TOTALG16B2]
	     W_TOTALG16B2=LEN(W_TOTALG16B)
	     W_TOTALG16B=W_TOTALG16B[W_TOTALG16B2-6,W_TOTALG16B2-3]:".":W_TOTALG16B[W_TOTALG16B2-2,3]
	     W_TOTALG16B=W_TOTALG16B3:W_TOTALG16B
	 END ELSE
             W_TOTALG16B=W_TOTALG16B[W_TOTALG16B2-6,W_TOTALG16B2-3]:".":W_TOTALG16B[W_TOTALG16B2-2,3]
	 END
    END ELSE
	 W_TOTALG16B=" ":W_TOTALG16B
    END
    IF W_TOTALG17>999 AND W_TOTALG17<>0 THEN 
	 W_TOTALG172=LEN(W_TOTALG17)
         IF W_TOTALG17>999999 THEN
             W_TOTALG173=W_TOTALG17[1,W_TOTALG172-6]:"."
	     W_TOTALG17=W_TOTALG17[W_TOTALG172-5,W_TOTALG172]
	     W_TOTALG172=LEN(W_TOTALG17)
	     W_TOTALG17=W_TOTALG17[W_TOTALG172-6,W_TOTALG172-3]:".":W_TOTALG17[W_TOTALG172-2,3]
	     W_TOTALG17=W_TOTALG173:W_TOTALG17
	 END ELSE
             W_TOTALG17=W_TOTALG17[W_TOTALG172-6,W_TOTALG172-3]:".":W_TOTALG17[W_TOTALG172-2,3]
	 END
    END
    IF W_TOTALG19>999 AND W_TOTALG19<>0 THEN 
	 W_TOTALG192=LEN(W_TOTALG19)
         IF W_TOTALG19>999999 THEN
             W_TOTALG193=W_TOTALG19[1,W_TOTALG192-6]:"."
	     W_TOTALG19=W_TOTALG19[W_TOTALG192-5,W_TOTALG192]
	     W_TOTALG192=LEN(W_TOTALG19)
	     W_TOTALG19=W_TOTALG19[W_TOTALG192-6,W_TOTALG192-3]:".":W_TOTALG19[W_TOTALG192-2,3]
	     W_TOTALG19=W_TOTALG193:W_TOTALG19
	 END ELSE
             W_TOTALG19=W_TOTALG19[W_TOTALG192-6,W_TOTALG192-3]:".":W_TOTALG19[W_TOTALG192-2,3]
	 END
    END

    * STOCKE LES BASES AFIN D'INSERER SEPARATEUR MILLIER GLOBAL - 20A + 20B + 21A + 21B
    IF W_TOTALG20A>999 AND W_TOTALG20A<>0 THEN 
         W_TOTALG20A2=LEN(W_TOTALG20A)
         IF W_TOTALG20A>999999 THEN
             W_TOTALG20A3=W_TOTALG20A[1,W_TOTALG20A2-6]:"."
	     W_TOTALG20A=W_TOTALG20A[W_TOTALG20A2-5,W_TOTALG20A2]
	     W_TOTALG20A2=LEN(W_TOTALG20A)
	     W_TOTALG20A=W_TOTALG20A[W_TOTALG20A2-6,W_TOTALG20A2-3]:".":W_TOTALG20A[W_TOTALG20A2-2,3]
	     W_TOTALG20A=W_TOTALG20A3:W_TOTALG20A
	 END ELSE
             W_TOTALG20A=W_TOTALG20A[W_TOTALG20A2-6,W_TOTALG20A2-3]:".":W_TOTALG20A[W_TOTALG20A2-2,3]
	 END
    END
    IF W_TOTALG20B>999 AND W_TOTALG20B<>0 THEN
         W_TOTALG20B2=LEN(W_TOTALG20B)
         IF W_TOTALG20B>999999 THEN
             W_TOTALG20B3=W_TOTALG20B[1,W_TOTALG20B2-6]:"."
	     W_TOTALG20B=W_TOTALG20B[W_TOTALG20B2-5,W_TOTALG20B2]
	     W_TOTALG20B2=LEN(W_TOTALG20B)
	     W_TOTALG20B=W_TOTALG20B[W_TOTALG20B2-6,W_TOTALG20B2-3]:".":W_TOTALG20B[W_TOTALG20B2-2,3]
	     W_TOTALG20B=W_TOTALG20B3:W_TOTALG20B
	 END ELSE
             W_TOTALG20B=W_TOTALG20B[W_TOTALG20B2-6,W_TOTALG20B2-3]:".":W_TOTALG20B[W_TOTALG20B2-2,3]
	 END
    END
    IF W_TOTALG21A>999 AND W_TOTALG21A<>0 THEN 
         W_TOTALG21A2=LEN(W_TOTALG21A)
         IF W_TOTALG21A>999999 THEN
             W_TOTALG21A3=W_TOTALG21A[1,W_TOTALG21A2-6]:"."
	     W_TOTALG21A=W_TOTALG21A[W_TOTALG21A2-5,W_TOTALG21A2]
	     W_TOTALG21A2=LEN(W_TOTALG21A)
	     W_TOTALG21A=W_TOTALG21A[W_TOTALG21A2-6,W_TOTALG21A2-3]:".":W_TOTALG21A[W_TOTALG21A2-2,3]
	     W_TOTALG21A=W_TOTALG21A3:W_TOTALG21A
	 END ELSE
             W_TOTALG21A=W_TOTALG21A[W_TOTALG21A2-6,W_TOTALG21A2-3]:".":W_TOTALG21A[W_TOTALG21A2-2,3]
	 END
    END 
    IF W_TOTALG21B>999 AND W_TOTALG21B<>0 THEN
         W_TOTALG21B2=LEN(W_TOTALG21B)
         IF W_TOTALG21B>999999 THEN
             W_TOTALG21B3=W_TOTALG21B[1,W_TOTALG21B2-6]:"."
	     W_TOTALG21B=W_TOTALG21B[W_TOTALG21B2-5,W_TOTALG21B2]
	     W_TOTALG21B2=LEN(W_TOTALG21B)
	     W_TOTALG21B=W_TOTALG21B[W_TOTALG21B2-6,W_TOTALG21B2-3]:".":W_TOTALG21B[W_TOTALG21B2-2,3]
	     W_TOTALG21B=W_TOTALG21B3:W_TOTALG21B
	 END ELSE
             W_TOTALG21B=W_TOTALG21B[W_TOTALG21B2-6,W_TOTALG21B2-3]:".":W_TOTALG21B[W_TOTALG21B2-2,3]
	 END
    END
    IF W_TOTALG23A>999 AND W_TOTALG23A<>0 THEN 
         W_TOTALG23A2=LEN(W_TOTALG23A)
         IF W_TOTALG23A>999999 THEN
             W_TOTALG23A3=W_TOTALG23A[1,W_TOTALG23A2-6]:"."
	     W_TOTALG23A=W_TOTALG23A[W_TOTALG23A2-5,W_TOTALG23A2]
	     W_TOTALG23A2=LEN(W_TOTALG23A)
	     W_TOTALG23A=W_TOTALG23A[W_TOTALG23A2-6,W_TOTALG23A2-3]:".":W_TOTALG23A[W_TOTALG23A2-2,3]
	     W_TOTALG23A=W_TOTALG23A3:W_TOTALG23A
	 END ELSE
             W_TOTALG23A=W_TOTALG23A[W_TOTALG23A2-6,W_TOTALG23A2-3]:".":W_TOTALG23A[W_TOTALG23A2-2,3]
	 END
    END
    IF W_TOTALG23B>999 AND W_TOTALG23B<>0 THEN
         W_TOTALG23B2=LEN(W_TOTALG23B)
         IF W_TOTALG23B>999999 THEN
             W_TOTALG23B3=W_TOTALG23B[1,W_TOTALG23B2-6]:"."
	     W_TOTALG23B=W_TOTALG23B[W_TOTALG23B2-5,W_TOTALG23B2]
	     W_TOTALG23B2=LEN(W_TOTALG23B)
	     W_TOTALG23B=W_TOTALG23B[W_TOTALG23B2-6,W_TOTALG23B2-3]:".":W_TOTALG23B[W_TOTALG23B2-2,3]
	     W_TOTALG23B=W_TOTALG23B3:W_TOTALG23B
	 END ELSE
             W_TOTALG23B=W_TOTALG23B[W_TOTALG23B2-6,W_TOTALG23B2-3]:".":W_TOTALG23B[W_TOTALG23B2-2,3]
	 END
    END
    IF W_TOTALG23C>999 AND W_TOTALG23C<>0 THEN
         W_TOTALG23C2=LEN(W_TOTALG23C)
         IF W_TOTALG23C>999999 THEN
             W_TOTALG23C3=W_TOTALG23C[1,W_TOTALG23C2-6]:"."
	     W_TOTALG23C=W_TOTALG23C[W_TOTALG23C2-5,W_TOTALG23C2]
	     W_TOTALG23C2=LEN(W_TOTALG23C)
	     W_TOTALG23C=W_TOTALG23C[W_TOTALG23C2-6,W_TOTALG23C2-3]:".":W_TOTALG23C[W_TOTALG23C2-2,3]
	     W_TOTALG23C=W_TOTALG23C3:W_TOTALG23C
	 END ELSE
             W_TOTALG23C=W_TOTALG23C[W_TOTALG23C2-6,W_TOTALG23C2-3]:".":W_TOTALG23C[W_TOTALG23C2-2,3]
	 END
    END
RETURN

***********************************************************
* CUMUL LES TOTAUX GENERAUX ENTITE

400 *

    W_TOTALENT16A=W_TOTALENT16A+W_BASE16A
    W_TOTALENT16B=W_TOTALENT16B+W_BASE16B
    W_TOTALENT17=W_TOTALENT17+W_BASE17
    W_TOTALENT19=W_TOTALENT19+W_BASE19
    W_TOTALENT20A=W_TOTALENT20A+W_BASE20A
    W_TOTALENT20B=W_TOTALENT20B+W_BASE20B
    W_TOTALENT21A=W_TOTALENT21A+W_BASE21A
    W_TOTALENT21B=W_TOTALENT21B+W_BASE21B
    W_TOTALENT23A=W_TOTALENT23A+W_BASE23A
    W_TOTALENT23B=W_TOTALENT23B+W_BASE23B
    W_TOTALENT23C=W_TOTALENT23C+W_BASE23C

RETURN

***********************************************************
* INSERTION SEPARATEUR MILLIERS + MILLIONS (TOTAL ENTITE)

401 * 

    * STOCKE LES BASES AFIN D'INSERER SEPARATEUR MILLIER GLOBAL - 16A + 16B + 17
    IF W_TOTALENT16A>999 AND W_TOTALENT16A<>0 THEN 
         W_TOTALENT16A2=LEN(W_TOTALENT16A)
         IF W_TOTALENT16A>999999 THEN
             W_TOTALENT16A3=W_TOTALENT16A[1,W_TOTALENT16A2-6]:"."
	     W_TOTALENT16A=W_TOTALENT16A[W_TOTALENT16A2-5,W_TOTALENT16A2]
	     W_TOTALENT16A2=LEN(W_TOTALENT16A)
	     W_TOTALENT16A=W_TOTALENT16A[W_TOTALENT16A2-6,W_TOTALENT16A2-3]:".":W_TOTALENT16A[W_TOTALENT16A2-2,3]
	     W_TOTALENT16A=W_TOTALENT16A3:W_TOTALENT16A
	 END ELSE
             W_TOTALENT16A=W_TOTALENT16A[W_TOTALENT16A2-6,W_TOTALENT16A2-3]:".":W_TOTALENT16A[W_TOTALENT16A2-2,3]
	 END
    END
    IF W_TOTALENT16B>999 AND W_TOTALENT16B<>0 THEN
         W_TOTALENT16B2=LEN(W_TOTALENT16B)
         IF W_TOTALENT16B>999999 THEN
             W_TOTALENT16B3=W_TOTALENT16B[1,W_TOTALENT16B2-6]:"."
	     W_TOTALENT16B=W_TOTALENT16B[W_TOTALENT16B2-5,W_TOTALENT16B2]
	     W_TOTALENT16B2=LEN(W_TOTALENT16B)
	     W_TOTALENT16B=W_TOTALENT16B[W_TOTALENT16B2-6,W_TOTALENT16B2-3]:".":W_TOTALENT16B[W_TOTALENT16B2-2,3]
	     W_TOTALENT16B=W_TOTALENT16B3:W_TOTALENT16B
	 END ELSE
             W_TOTALENT16B=W_TOTALENT16B[W_TOTALENT16B2-6,W_TOTALENT16B2-3]:".":W_TOTALENT16B[W_TOTALENT16B2-2,3]
	 END
    END ELSE
	 W_TOTALENT16B=" ":W_TOTALENT16B
    END
    IF W_TOTALENT17>999 AND W_TOTALENT17<>0 THEN 
	 W_TOTALENT172=LEN(W_TOTALENT17)
         IF W_TOTALENT17>999999 THEN
             W_TOTALENT173=W_TOTALENT17[1,W_TOTALENT172-6]:"."
	     W_TOTALENT17=W_TOTALENT17[W_TOTALENT172-5,W_TOTALENT172]
	     W_TOTALENT172=LEN(W_TOTALENT17)
	     W_TOTALENT17=W_TOTALENT17[W_TOTALENT172-6,W_TOTALENT172-3]:".":W_TOTALENT17[W_TOTALENT172-2,3]
	     W_TOTALENT17=W_TOTALENT173:W_TOTALENT17
	 END ELSE
             W_TOTALENT17=W_TOTALENT17[W_TOTALENT172-6,W_TOTALENT172-3]:".":W_TOTALENT17[W_TOTALENT172-2,3]
	 END
    END
    IF W_TOTALENT19>999 AND W_TOTALENT19<>0 THEN 
	 W_TOTALENT192=LEN(W_TOTALENT19)
         IF W_TOTALENT19>999999 THEN
             W_TOTALENT193=W_TOTALENT19[1,W_TOTALENT192-6]:"."
	     W_TOTALENT19=W_TOTALENT19[W_TOTALENT192-5,W_TOTALENT192]
	     W_TOTALENT192=LEN(W_TOTALENT19)
	     W_TOTALENT19=W_TOTALENT19[W_TOTALENT192-6,W_TOTALENT192-3]:".":W_TOTALENT19[W_TOTALENT192-2,3]
	     W_TOTALENT19=W_TOTALENT193:W_TOTALENT19
	 END ELSE
             W_TOTALENT19=W_TOTALENT19[W_TOTALENT192-6,W_TOTALENT192-3]:".":W_TOTALENT19[W_TOTALENT192-2,3]
	 END
    END

    * STOCKE LES BASES AFIN D'INSERER SEPARATEUR MILLIER GLOBAL - 20A + 20B + 21A + 21B
    IF W_TOTALENT20A>999 AND W_TOTALENT20A<>0 THEN 
         W_TOTALENT20A2=LEN(W_TOTALENT20A)
         IF W_TOTALENT20A>999999 THEN
             W_TOTALENT20A3=W_TOTALENT20A[1,W_TOTALENT20A2-6]:"."
	     W_TOTALENT20A=W_TOTALENT20A[W_TOTALENT20A2-5,W_TOTALENT20A2]
	     W_TOTALENT20A2=LEN(W_TOTALENT20A)
	     W_TOTALENT20A=W_TOTALENT20A[W_TOTALENT20A2-6,W_TOTALENT20A2-3]:".":W_TOTALENT20A[W_TOTALENT20A2-2,3]
	     W_TOTALENT20A=W_TOTALENT20A3:W_TOTALENT20A
	 END ELSE
             W_TOTALENT20A=W_TOTALENT20A[W_TOTALENT20A2-6,W_TOTALENT20A2-3]:".":W_TOTALENT20A[W_TOTALENT20A2-2,3]
	 END
    END
    IF W_TOTALENT20B>999 AND W_TOTALENT20B<>0 THEN
         W_TOTALENT20B2=LEN(W_TOTALENT20B)
         IF W_TOTALENT20B>999999 THEN
             W_TOTALENT20B3=W_TOTALENT20B[1,W_TOTALENT20B2-6]:"."
	     W_TOTALENT20B=W_TOTALENT20B[W_TOTALENT20B2-5,W_TOTALENT20B2]
	     W_TOTALENT20B2=LEN(W_TOTALENT20B)
	     W_TOTALENT20B=W_TOTALENT20B[W_TOTALENT20B2-6,W_TOTALENT20B2-3]:".":W_TOTALENT20B[W_TOTALENT20B2-2,3]
	     W_TOTALENT20B=W_TOTALENT20B3:W_TOTALENT20B
	 END ELSE
             W_TOTALENT20B=W_TOTALENT20B[W_TOTALENT20B2-6,W_TOTALENT20B2-3]:".":W_TOTALENT20B[W_TOTALENT20B2-2,3]
	 END
    END
    IF W_TOTALENT21A>999 AND W_TOTALENT21A<>0 THEN 
         W_TOTALENT21A2=LEN(W_TOTALENT21A)
         IF W_TOTALENT21A>999999 THEN
             W_TOTALENT21A3=W_TOTALENT21A[1,W_TOTALENT21A2-6]:"."
	     W_TOTALENT21A=W_TOTALENT21A[W_TOTALENT21A2-5,W_TOTALENT21A2]
	     W_TOTALENT21A2=LEN(W_TOTALENT21A)
	     W_TOTALENT21A=W_TOTALENT21A[W_TOTALENT21A2-6,W_TOTALENT21A2-3]:".":W_TOTALENT21A[W_TOTALENT21A2-2,3]
	     W_TOTALENT21A=W_TOTALENT21A3:W_TOTALENT21A
	 END ELSE
             W_TOTALENT21A=W_TOTALENT21A[W_TOTALENT21A2-6,W_TOTALENT21A2-3]:".":W_TOTALENT21A[W_TOTALENT21A2-2,3]
	 END
    END
    IF W_TOTALENT21B>999 AND W_TOTALENT21B<>0 THEN
         W_TOTALENT21B2=LEN(W_TOTALENT21B)
         IF W_TOTALENT21B>999999 THEN
             W_TOTALENT21B3=W_TOTALENT21B[1,W_TOTALENT21B2-6]:"."
	     W_TOTALENT21B=W_TOTALENT21B[W_TOTALENT21B2-5,W_TOTALENT21B2]
	     W_TOTALENT21B2=LEN(W_TOTALENT21B)
	     W_TOTALENT21B=W_TOTALENT21B[W_TOTALENT21B2-6,W_TOTALENT21B2-3]:".":W_TOTALENT21B[W_TOTALENT21B2-2,3]
	     W_TOTALENT21B=W_TOTALENT21B3:W_TOTALENT21B
	 END ELSE
             W_TOTALENT21B=W_TOTALENT21B[W_TOTALENT21B2-6,W_TOTALENT21B2-3]:".":W_TOTALENT21B[W_TOTALENT21B2-2,3]
	 END
    END
    IF W_TOTALENT23A>999 AND W_TOTALENT23A<>0 THEN 
         W_TOTALENT23A2=LEN(W_TOTALENT23A)
         IF W_TOTALENT23A>999999 THEN
             W_TOTALENT23A3=W_TOTALENT23A[1,W_TOTALENT23A2-6]:"."
	     W_TOTALENT23A=W_TOTALENT23A[W_TOTALENT23A2-5,W_TOTALENT23A2]
	     W_TOTALENT23A2=LEN(W_TOTALENT23A)
	     W_TOTALENT23A=W_TOTALENT23A[W_TOTALENT23A2-6,W_TOTALENT23A2-3]:".":W_TOTALENT23A[W_TOTALENT23A2-2,3]
	     W_TOTALENT23A=W_TOTALENT23A3:W_TOTALENT23A
	 END ELSE
             W_TOTALENT23A=W_TOTALENT23A[W_TOTALENT23A2-6,W_TOTALENT23A2-3]:".":W_TOTALENT23A[W_TOTALENT23A2-2,3]
	 END
    END
    IF W_TOTALENT23B>999 AND W_TOTALENT23B<>0 THEN
         W_TOTALENT23B2=LEN(W_TOTALENT23B)
         IF W_TOTALENT23B>999999 THEN
             W_TOTALENT23B3=W_TOTALENT23B[1,W_TOTALENT23B2-6]:"."
	     W_TOTALENT23B=W_TOTALENT23B[W_TOTALENT23B2-5,W_TOTALENT23B2]
	     W_TOTALENT23B2=LEN(W_TOTALENT23B)
	     W_TOTALENT23B=W_TOTALENT23B[W_TOTALENT23B2-6,W_TOTALENT23B2-3]:".":W_TOTALENT23B[W_TOTALENT23B2-2,3]
	     W_TOTALENT23B=W_TOTALENT23B3:W_TOTALENT23B
	 END ELSE
             W_TOTALENT23B=W_TOTALENT23B[W_TOTALENT23B2-6,W_TOTALENT23B2-3]:".":W_TOTALENT23B[W_TOTALENT23B2-2,3]
	 END
    END
    IF W_TOTALENT23C>999 AND W_TOTALENT23C<>0 THEN
         W_TOTALENT23C2=LEN(W_TOTALENT23C)
         IF W_TOTALENT23C>999999 THEN
             W_TOTALENT23C3=W_TOTALENT23C[1,W_TOTALENT23C2-6]:"."
	     W_TOTALENT23C=W_TOTALENT23C[W_TOTALENT23C2-5,W_TOTALENT23C2]
	     W_TOTALENT23C2=LEN(W_TOTALENT23C)
	     W_TOTALENT23C=W_TOTALENT23C[W_TOTALENT23C2-6,W_TOTALENT23C2-3]:".":W_TOTALENT23C[W_TOTALENT23C2-2,3]
	     W_TOTALENT23C=W_TOTALENT23C3:W_TOTALENT23C
	 END ELSE
             W_TOTALENT23C=W_TOTALENT23C[W_TOTALENT23C2-6,W_TOTALENT23C2-3]:".":W_TOTALENT23C[W_TOTALENT23C2-2,3]
	 END
    END
RETURN

***********************************************************
* R.A.Z DES TOTAUX GENERAUX

900 *

    * R.A.Z DES TOTAUX GENERAUX
    W_TOTALG16A=0
    W_TOTALG16B=0
    W_TOTALG17=0
    W_TOTALG19=0
    W_TOTALG20A=0
    W_TOTALG20B=0
    W_TOTALG21A=0
    W_TOTALG21B=0
    W_TOTALG23A=0
    W_TOTALG23B=0
    W_TOTALG23C=0
    W_TOTALG16A1=0
    W_TOTALG16B1=0
    W_TOTALG171=0
    W_TOTALG191=0
    W_TOTALG20A1=0
    W_TOTALG20B1=0
    W_TOTALG21A1=0
    W_TOTALG21B1=0
    W_TOTALG23A1=0
    W_TOTALG23B1=0
    W_TOTALG23C1=0
                         
RETURN

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

999 *
  ENR_TAMPONDADS=""
  W_PERIODECONTRAT=""
  W_PERIODECONTRAT2=""
  W_AIDANT=""
  W_DEPARTDEF=""
  W_ETRANGER=""
  W_PCS=""
  W_FONCTIONPCS=""
  W_CONDEMPL=""
  W_ADRESSEETAB=""
  W_ADRESSEETAB2=""
  W_ADRESSEAIDANT=""
  W_ADRESSEAIDANT2=""
  W_SECU=""
  W_RANG7=""
  W_RANG8=""
  W_RANG12=""
  W_RANG13=""
  W_ANCIENETAB=""
  W_REQVIDE="FAUX"
  W_CODEETABLISSEMENT="001001"
  W_NBJOURAN=0
  W_NBAIDANT=0
  W_BASECSG=0
  W_BASETOTAL=0
  W_BASEPLAF=0
  W_NOPAGE=0
  W_TOTAL16A=0
  W_TOTAL16B=0
  W_TOTAL17=0
  W_TOTAL19=0
  W_TOTAL20A=0
  W_TOTAL20B=0
  W_TOTAL21A=0
  W_TOTAL21B=0
  W_TOTALG16A=0
  W_TOTALG16B=0
  W_TOTALG17=0
  W_TOTALG19=0
  W_TOTALG16A1=0
  W_TOTALG16B1=0
  W_TOTALG171=0 
  W_TOTALG191=0
  W_TOTALG20A=0
  W_TOTALG20B=0
  W_TOTALG21A=0
  W_TOTALG21B=0
  W_TOTALG20A1=0
  W_TOTALG20B1=0
  W_TOTALG21A1=0
  W_TOTALG21B1=0
  W_TOTALG20A2=0
  W_TOTALG20B2=0
  W_TOTALG21A2=0
  W_TOTALG21B2=0
  W_BASETAXETOT=0
  W_BASETAXE1=0
  W_BASETAXE2=0
  W_BASEPART=0
  W_TOTAL23A=0
  W_TOTAL23B=0
  W_TOTAL23C=0
  W_TOTALG23A=0
  W_TOTALG23B=0
  W_TOTALG23C=0
  W_TOTALG23A1=0
  W_TOTALG23B1=0
  W_TOTALG23C1=0
  W_TOTALG23A2=0
  W_TOTALG23B2=0
  W_TOTALG23C2=0
  W_TOTALENT16A=0
  W_TOTALENT16B=0
  W_TOTALENT17=0
  W_TOTALENT19=0
  W_TOTALENT20A=0
  W_TOTALENT20B=0
  W_TOTALENT21A=0
  W_TOTALENT21B=0
  W_TOTALENT23A=0
  W_TOTALENT23B=0
  W_TOTALENT23C=0
  W_TEST=0
* Michael, le 23/11/07 : 
*  W_TAXEHAUT=0
  **
  ENR_STATAIDANT = ""
 * W_TYPEDIT=""
  W_DATEJOUR =""
  W_ADRESSEAIDANTLigne1=""
  W_NORDRE=1
  W_CLEAIDANT=""
  W_PASSAGE = 1
  W_Temp=""
  W_RequeteDADS=""
RETURN
