***************************************************************
* GENERATION DU FICHIER DE DECLARATIONS DES SALAIRES          *
* DADS-U  = DADS-TDS + DADS-CRC                               *
*                                                             *
* NOVEMBRE 04                                        STEPHANE *
***************************************************************


***************************************************************
* RECAPITULATIFS DES GOSUBS
***************************************************************
* 100100  -> EMETTEUR 				(S10.G01.00)
* 100101  -> CONTACT EMETTEUR			(S10.G01.01)
* 200100  -> DECLARANT				(S20.G01.00)
* 300100  -> SALARIE 				(S30.G01.00)
* 410100  -> ACTIVITE - PERIODE D'ACTIVITE 	(S41.G01.00)
* 4101001 -> GESTION DES CUMULS DADS            (S41.G01.00)
* 410101  -> IDENTIFICATION RETRAITE COMPL.     (S41.G01.01)
* 410106  -> BASES EXO URSSAF                   (S41.G01.06) 
* 410200  -> ELECTION PRUD'HOMALES              (S41.G02.00)
* 420100  -> RETRAITE COMPLEMENTAIRE IRCANTEC   (S42.G01.00)
* 440100  -> RETRAITE COMPLEMENTAIRE            (S44.G01.00)
* 460100  -> PERIODES INACTIVITE                (S46.G01.00) 
* 460102  -> DETAIL ABSENCES                    (S46.G01.02) 
* 700100  -> GESTION HONORAIRES                 (S70.G01.00)
* 700101  -> REMUNERATION HONORAIRES            (S70.G01.01)
* 800100  -> GESTION ETABLISSEMENT              (S80.G01.00)
* 8001001 -> TRAITEMENT ETABLISSEMENT           (S80.G01.00)
* 900100  -> GESTION TOTAL ENVOI		(S90.G01.00)

***************************************************************
* OUVERTURE DES FICHIERS
***************************************************************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ABSENCESAIDANT" TO F.ABSENCESAIDANT ELSE STOP
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","DADS-U" TO F.DADSU ELSE STOP
OPEN "","ETABLISSEMENT" TO F.ETABLISSEMENT ELSE STOP
OPEN "","HISTORCUMUL" TO F.HISTORCUMUL ELSE STOP
OPEN "","HISTORCUMULETABL" TO F.HISTORCUMULETABL ELSE STOP
OPEN "","ORGANISMESOCIAL" TO F.ORGANISMESOCIAL ELSE STOP
OPEN "","REGROUPBRC" TO F.REGROUPBRC ELSE STOP
OPEN "","RUBCHARGE" TO F.RUBCHARGE ELSE STOP
OPEN "","TABLES" TO F.TABLES ELSE STOP
OPEN "","TAMPONDADS" TO F.TAMPONDADS ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP
OPEN "","TRANCHE" TO F.TRANCHE ELSE STOP

OPEN "","PRUDCASPARTICULIERS" TO F.PRUDCASPARTICULIERS ELSE STOP
OPEN "","TDSCASPARTICULIERSDADSU" TO F.TDSCASPARTICULIERSDADSU ELSE STOP
OPEN "","TDSFRAISPROFESSIONNELS" TO F.TDSFRAISPROFESSIONNELS ELSE STOP
OPEN "","TDSHONORAIRES" TO F.TDSHONORAIRES ELSE STOP
OPEN "","TDSTARIFICATIONAT" TO F.TDSTARIFICATIONAT ELSE STOP
OPEN "","TDSURSSAFPLAFOND" TO F.TDSURSSAFPLAFOND ELSE STOP
OPEN "","TDSURSSAFTOTALITE" TO F.TDSURSSAFTOTALITE ELSE STOP

***************************************************************
* RECUPERATION DES PARAMETRES PASSES A LA PROCEDURE
***************************************************************
* RECUPERE LE CODE ENTITE
PROCREAD PARAMETRES ELSE STOP

* RECUPERE L'ANNEE 
W_RANGANNEE=INDEX(PARAMETRES," ",1)
W_ANNEE=PARAMETRES[W_RANGANNEE+1,4]

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

* RECUPERE LE TYPE D'ENVOI
W_RANGTYPE=INDEX(PARAMETRES," ",3)
W_TYPE=PARAMETRES[W_RANGTYPE+1,1]


***************************************************************
* TRAITEMENT
***************************************************************
ENR_DADSU = ""

ENR_ERREURDADSU = ""
W_NBERREURDADSU = 0

W_NBSALDECLARE = 0

LISTECONTRATDADSU = ""
LISTETDSHONO = ""
LISTEABSAIDANT = ""

W_TABETAB = ""
W_TABURSSAFTOT = ""
W_TABURSSAFPLAF = ""
W_TABRUBCHARGE = ""
W_TABRUBCHARGE06 = "" 
W_TABRUBCHARGE05 = ""
W_TABRUBCHARGE07 = ""
W_TABRETRAITE = ""
W_TABRUBCHGEXOPLAF = ""
W_TABRUBCHGEXOTOT = ""

W_TOTALGENETOT = 0
W_TOTALGENEPLAF = 0
W_TOTALGENEBRUTE = 0
W_TOTALGENECSG = 0
W_TOTALGENENET = 0
W_TOTALGENETAXE = 0
W_TOTALGENETAXE1 = 0
W_TOTALGENETAXE2 = 0
W_TOTALGENETAXEDU = 0

W_TAUXTAXETOT = 0
W_TAUXTAXETR1 = 0
W_TAUXTAXETR2 = 0

W_TOTALHONORAIRES = 0
W_TOTALRETRAITEGENETOTAL = ""
W_TOTALRETRAITEGENEPLAF = ""
W_TOTALRETRAITEGENETB = ""
W_TOTALURSSAFPART = ""

********EXECUTE 'VIDER-FICHIER TAMPONDADS'

* STOCKE LA CORRESPONDANCE CODE ETABLISSEMENT / SIRET
EXECUTE 'SELECT ETABLISSEMENT AVEC 0 = "':W_CODEENTITE:']" PAR 25 PAR 14'

W_FINETAB = 0
LOOP	
	READNEXT CLEETAB ELSE W_FINETAB = 1
	UNTIL W_FINETAB = 1 DO

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

	W_TABETAB<1,-1> = CLEETAB
	W_TABETAB<2,-1>	= ENR_ETABLISSEMENT<14>
	W_TABETAB<3,-1> = ENR_ETABLISSEMENT<16>
	W_TABETAB<4,-1> = ENR_ETABLISSEMENT<14>[LEN(ENR_ETABLISSEMENT<14>)-4,5]
	W_TABETAB<5,-1> = ""
	W_TABETAB<6,-1> = ""
	W_TABETAB<7,-1> = ""
	W_TABETAB<8,-1> = ""
	W_TABETAB<9,-1> = ""
	W_TABETAB<10,-1> = "0"
	W_TABETAB<11,-1> = ENR_ETABLISSEMENT<15>

REPEAT

* GESTION DES TARIFICATIONS AT
* MET A JOUR TAB TAMPON ETABLISSEMENT AVEC DOSSIER CODE RISQUE
* AFIN D'EVITER AUTANT DE SELECT QUE D'AIDANTS
EXECUTE 'SELECT TDSTARIFICATIONAT AVEC 0 = "':W_ANNEE:W_CODEENTITE:']"'

W_FINTDSAT = 0
LOOP
	READNEXT CLETDSAT ELSE W_FINTDSAT = 1
	UNTIL W_FINTDSAT = 1 DO

	* RECHERCHE INDICE ETABLISSEMENT DANS TAMPON ETAB
	W_RANGETAB = INDEX(W_TABETAB<1>,CLETDSAT[5,6],1)
	W_TEMPINDEX=W_TABETAB<1>[1,W_RANGETAB]
	W_RANGETAB=DCOUNT(W_TEMPINDEX,CHAR(253))

	*W_RANGETAB = INT(((INDEX(W_TABETAB<1>,CLETDSAT[5,6],1) - 1) / 6) + 1)
	
	READ ENR_TDSTARIFICATIONAT FROM F.TDSTARIFICATIONAT,CLETDSAT ELSE ENR_TDSTARIFICATIONAT = ""
	W_TABETAB<5,W_RANGETAB> = ENR_TDSTARIFICATIONAT<11>
	W_TABETAB<6,W_RANGETAB> = CLETDSAT
	W_TABETAB<7,W_RANGETAB> = CLETDSAT[LEN(CLETDSAT)-4,5]
	W_TABETAB<8,W_RANGETAB> = ENR_TDSTARIFICATIONAT<2>
	W_TABETAB<9,W_RANGETAB> = ENR_TDSTARIFICATIONAT<1>

REPEAT
	
* VERIFIE SI TOUS LES ETABLISSEMENTS ONT UN PARAMETRAGE TARIFICATIONAT

I = 1
LOOP
	UNTIL W_TABETAB<1,I> = "" DO

	IF W_TABETAB<6,I> = "" THEN
		* ARRETE LE PROG CAR LE FICHIER TDSTARIFICATIONAT EST OBLIGATOIRE
		ENR_ERREURDADSU<-1> = "err01 LE FICHIER 'TARIFICATION AT' DE L'ETABLISSEMENT ":W_TABETAB<1,I>[4,3]:" N'EST PAS RENSEIGNE ALORS QUE CELUI-CI EST OBLIGATOIRE."
		WRITE ENR_ERREURDADSU ON F.TAMPONDADS,"ERREURDADSU"
		STOP
	END
	I = I + 1
REPEAT

* GESTION DES RUBRIQUES URSSAF TOTALITE 
* MONTE LES RUBRIQUES EN TABLE
EXECUTE 'SELECT TDSURSSAFTOTALITE'

W_FINTDSTOT = 0
LOOP
	READNEXT CLETDSTOT ELSE W_FINTDSTOT = 1
	UNTIL W_FINTDSTOT = 1 DO

	W_TABURSSAFTOT<-1> = CLETDSTOT

REPEAT


* GESTION DES RUBRIQUES URSSAF PLAFONNEE
* MONTE LES RUBRIQUES EN TABLE
EXECUTE 'SELECT TDSURSSAFPLAFOND'

W_FINTDSPLAF = 0
LOOP
	READNEXT CLETDSPLAF ELSE W_FINTDSPLAF = 1
	UNTIL W_FINTDSPLAF = 1 DO

	W_TABURSSAFPLAF<-1> = CLETDSPLAF

REPEAT


* GESTION DES RUBRIQUES DE CHARGES
* MONTE LES RUBRIQUES EN TABLE
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 = ""

	W_TABRUBCHARGE<CLERUBCHARGE,1> = ENR_RUBCHARGE<2>
	W_TABRUBCHARGE<CLERUBCHARGE,2> = ENR_TRANCHE<10>
	W_TABRUBCHARGE<CLERUBCHARGE,3> = CLERUBCHARGE

	IF ENR_TRANCHE<10> = "06" THEN
		IF INDEX(W_TABRUBCHARGE06,CLERUBCHARGE,1) = 0 THEN W_TABRUBCHARGE06<-1> = CLERUBCHARGE
	END
	IF ENR_RUBCHARGE<16> = "05" AND ENR_TRANCHE<10> = "01" THEN 
		IF INDEX(W_TABRUBCHARGE05,CLERUBCHARGE,1) = 0 AND W_TABRUBCHARGE05 = "" THEN W_TABRUBCHARGE05<-1> = CLERUBCHARGE
	END
	IF ENR_RUBCHARGE<16> = "05" AND ENR_TRANCHE<10> = "07" THEN 
		IF INDEX(W_TABRUBCHARGE07,CLERUBCHARGE,1) = 0 AND W_TABRUBCHARGE07 = "" THEN
			W_TABRUBCHARGE07<1,-1> = CLERUBCHARGE
			W_TABRUBCHARGE07<2,-1> = ENR_TRANCHE<4>
			W_TABRUBCHARGE07<3,-1> = ENR_TRANCHE<5>
		END
	END

	
	IF ENR_RUBCHARGE<16> = "05" THEN
	   IF ENR_TRANCHE<10> = "01" THEN
		* TAUX TAXE TOT
		W_TAUXTAXETOT = ENR_RUBCHARGE<14>
	   END ELSE
		IF ENR_TRANCHE<5> >= "9999900" THEN
		   * TAUX TAXE TR2
		   W_TAUXTAXETR2 = ENR_RUBCHARGE<14>
		END ELSE
		   * TAUX TAXE TR1
		   W_TAUXTAXETR1 = ENR_RUBCHARGE<14>
		END
	   END
	END
	
REPEAT


* GESTION DES ORGANISMES SOCIAUX 
* DE TYPE RETRAITE SALARIE + ATT 20 RENSEIGNE

EXECUTE 'SELECT REGROUPBRC AVEC TypeOrgDadsU = "03" OR = "04" AND AVEC CodeOrgDadsU # "" AND AVEC AssocBrc = "':W_CODEENTITE:'" PAR @ID'

W_FINREGROUPBRC = 0
W_ANCIENORG = ""
LOOP
	READNEXT CLEREGROUPBRC ELSE W_FINREGROUPBRC = 1
	UNTIL W_FINREGROUPBRC = 1 DO

	READ ENR_REGROUPBRC FROM F.REGROUPBRC,CLEREGROUPBRC ELSE ENR_REGROUPBRC = ""
	
	IF W_ANCIENORG # CLEREGROUPBRC[1,9] THEN 
		READ ENR_ORGANISMESOCIAL FROM F.ORGANISMESOCIAL,CLEREGROUPBRC[1,9] ELSE ENR_ORGANISMESOCIAL = ""
		W_ANCIENORG = CLEREGROUPBRC[1,9]
		
		W_TOTALRETRAITEGENEPLAF<1,-1> = " "
		W_TOTALRETRAITEGENETOTAL<1,-1> = " "
	END

	W_NBRUB = DCOUNT(ENR_REGROUPBRC<2>,CHAR(253))
	FOR I = 1 TO W_NBRUB
		READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_REGROUPBRC<2,I> ELSE ENR_RUBCHARGE = ""
		READ ENR_TRANCHE FROM F.TRANCHE,ENR_RUBCHARGE<2> ELSE ENR_TRANCHE = ""
		
		* RECHERCHE INDICE DE L'ORGANISME
		W_NBORG = DCOUNT(W_TABRETRAITE<1>,CHAR(253))
		IF W_NBORG = 0 THEN 
			J = -1
		END ELSE	
			FOR J = 1 TO W_NBORG
				IF W_TABRETRAITE<1,J> = CLEREGROUPBRC[1,9] THEN EXIT
			NEXT J
		END
		
		W_TABRETRAITE<1,J> = CLEREGROUPBRC[1,9]
		* TRANCHE TOTALITE
		IF ENR_TRANCHE<10> = "01" THEN W_TABRETRAITE<2,J,-1> = ENR_REGROUPBRC<2,I>
		* TRANCHE A
		IF ENR_TRANCHE<10> = "02" THEN W_TABRETRAITE<3,J,-1> = ENR_REGROUPBRC<2,I>
		* TRANCHE B
		IF ENR_TRANCHE<10> = "03" THEN W_TABRETRAITE<7,J,-1> = ENR_REGROUPBRC<2,I>
		
		W_TABRETRAITE<4,J> = ENR_ORGANISMESOCIAL<17>
		W_TABRETRAITE<5,J> = ENR_ORGANISMESOCIAL<20>
		W_TABRETRAITE<6,J> = ENR_ORGANISMESOCIAL<1>
		W_TABRETRAITE<8,J> = ENR_ORGANISMESOCIAL<21>
		W_TABRETRAITE<9,J> = ENR_ORGANISMESOCIAL<3>
	NEXT I

REPEAT


* GESTION DES RUBRIQUES DE CHARGES URSSAF EXO
* MONTE LES RUBRIQUES EN TABLE

READ ENR_TDSCASPARTICULIERSDADSU FROM F.TDSCASPARTICULIERSDADSU,"1" ELSE ENR_TDSCASPARTICULIERSDADSU = ""
W_NBCASPART = DCOUNT(ENR_TDSCASPARTICULIERSDADSU<1>,CHAR(253))
W_TABRUBCHGEXO = ""

FOR I = 1 TO W_NBCASPART 
	READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_TDSCASPARTICULIERSDADSU<1,I> ELSE ENR_RUBCHARGE = ""

	IF INDEX(W_TABRUBCHGEXO<1>,ENR_TDSCASPARTICULIERSDADSU<2,I>,1) = 0 THEN

		W_TABRUBCHGEXO<1,-1> = ENR_TDSCASPARTICULIERSDADSU<2,I> 
		IF INDEX(W_TABURSSAFPLAF,ENR_TDSCASPARTICULIERSDADSU<1,I>,1) # 0 THEN
			W_TABRUBCHGEXO<2,-1> = " " 
			W_TABRUBCHGEXO<3,-1> = ENR_TDSCASPARTICULIERSDADSU<1,I> 
		END ELSE
			W_TABRUBCHGEXO<2,-1> = ENR_TDSCASPARTICULIERSDADSU<1,I> 
			W_TABRUBCHGEXO<3,-1> = " " 
		END
	END ELSE

		IF INDEX(W_TABURSSAFPLAF,ENR_TDSCASPARTICULIERSDADSU<1,I>,1) # 0 THEN
			IF INDEX(W_TABRUBCHGEXO<3>,ENR_TDSCASPARTICULIERSDADSU<1,I>,1) = 0 THEN
				*W_RANGINDEX = INT(((INDEX(W_TABRUBCHGEXO<1>,ENR_TDSCASPARTICULIERSDADSU<2,I>,1) - 1) / 2) + 1)

				W_RANGINDEX = INDEX(W_TABRUBCHGEXO<1>,ENR_TDSCASPARTICULIERSDADSU<2,I>,1)
				W_TEMPINDEX=W_TABRUBCHGEXO<1>[1,W_RANGINDEX]
				W_RANGINDEX=DCOUNT(W_TEMPINDEX,CHAR(253))

				W_TABRUBCHGEXO<3,W_RANGINDEX,-1> = ENR_TDSCASPARTICULIERSDADSU<1,I> 
			END
		END ELSE
			IF INDEX(W_TABRUBCHGEXO<2>,ENR_TDSCASPARTICULIERSDADSU<1,I>,1) = 0 THEN
				*W_RANGINDEX = INT(((INDEX(W_TABRUBCHGEXO<1>,ENR_TDSCASPARTICULIERSDADSU<2,I>,1) - 1) / 2) + 1)

				W_RANGINDEX = INDEX(W_TABRUBCHGEXO<1>,ENR_TDSCASPARTICULIERSDADSU<2,I>,1)
				W_TEMPINDEX=W_TABRUBCHGEXO<1>[1,W_RANGINDEX]
				W_RANGINDEX=DCOUNT(W_TEMPINDEX,CHAR(253))

				W_TABRUBCHGEXO<2,W_RANGINDEX,-1> = ENR_TDSCASPARTICULIERSDADSU<1,I> 
			END
		END
	END
NEXT I


READ ENR_TABLESPARTDADSU FROM F.TABLES,"TYPEEXODADSU" ELSE ENR_TABLESPARTDADSU = ""

I = 1
LOOP
	UNTIL W_TABRUBCHGEXO<1,I> = "" DO
	
	W_TOTALURSSAFPART<1,-1> = W_TABRUBCHGEXO<1,I>
	W_TOTALURSSAFPART<2,-1> = 0
 	W_TOTALURSSAFPART<3,-1> = 0
	
	J = 1
	LOOP
		UNTIL ENR_TABLESPARTDADSU<2,J> = W_TABRUBCHGEXO<1,I> OR ENR_TABLESPARTDADSU<2,J> = "" DO
		J = J + 1
	REPEAT
	W_TOTALURSSAFPART<4,-1> = ENR_TABLESPARTDADSU<3,J>

	I = I + 1
REPEAT

W_TABRUBCHGEXO<2> = CONVERT(" ","",W_TABRUBCHGEXO<2>)
W_TABRUBCHGEXO<3> = CONVERT(" ","",W_TABRUBCHGEXO<3>)
W_TOTALRETRAITEGENEPLAF = CONVERT(" ","",W_TOTALRETRAITEGENEPLAF)
W_TOTALRETRAITEGENETOTAL = CONVERT(" ","",W_TOTALRETRAITEGENETOTAL)


**********************************************************************************


* STRUCTURE S10.G01.xx
GOSUB 100100
GOSUB 100101

A = 1
LOOP
UNTIL W_TABETAB<1,A> = "" DO

  * STRUCTURE S20.G01.xx
  GOSUB 200100

  * SELECTIONNE LES CONTRATS ACTIFS SUR LA PERIODE DADS
  IF ENR_ASSOCIATION<25> = "1" THEN 
	W_DEBUTPERIODE = "01/12/":W_ANNEE-1
	W_FINPERIODE = "30/11/":W_ANNEE
  END ELSE
	W_DEBUTPERIODE = "01/01/":W_ANNEE
	W_FINPERIODE = "31/12/":W_ANNEE
  END

  EXECUTE 'EFFACER-LISTE LISTECONTRATDADSU'
  
  *VICTOR DEBUG
  EXECUTE 'SELECT CONTRAT AVEC 1 # "02" AND AVEC 2 = "':W_CODEENTITE:'" AND AVEC 3 = "':W_TABETAB<1,A>:'" AND AVEC 7 <= "':ICONV(W_FINPERIODE,"D4/"):'" AND AVEC 8 >= "':ICONV(W_DEBUTPERIODE,"D4/"):'" OR = "" AND AVEC 65 # "O" PAR NomPrenomAidantContrat PAR CodeAidant PAR 7 PAR SiretContrat'
*  EXECUTE 'SELECT CONTRAT AVEC 0 = "00283]" AND AVEC 7 <= "':ICONV(W_FINPERIODE,"D4/"):'" AND AVEC 8 >= "':ICONV(W_DEBUTPERIODE,"D4/"):'" OR = ""'
  EXECUTE 'SAUVE-LISTE LISTECONTRATDADSU'
  EXECUTE "LISTE LISTECONTRATDADSU" RETURNING W_MSG
  SELECT F.CONTRAT TO LISTECONTRATDADSU

  W_FINAIDANT = 0
  W_ANCIENAIDANT = ""
  ENR_CONTRATNEXT = ""

  LOOP
	READNEXT CLECONTRAT FROM LISTECONTRATDADSU ELSE W_FINAIDANT = 1
	UNTIL W_FINAIDANT = 1 DO

	IF W_NBERREURDADSU > 20 THEN 
		* ARRETE LE PROG CAR LE FICHIER COMPORTE TROP D'ERREURS
		ENR_ERREURDADSU = INSERT(ENR_ERREURDADSU,1;"err02 GENERATION DADS-U IMPOSSIBLE : REPRENDRE LES PARAMETRAGES DES RUBRIQUES URSSAF A CUMULER (Menu DADS-U / Paramtres /  DADS-U URSSAF / URSSAF  cumuler).")
		WRITE ENR_ERREURDADSU ON F.TAMPONDADS,"ERREURDADSU"
		STOP
	END


	IF W_ANCIENAIDANT # "" THEN READ ENR_CONTRATNEXT FROM F.CONTRAT,CLECONTRAT ELSE ENR_CONTRAT = ""

	IF W_ANCIENAIDANT = CLECONTRAT[1,5] AND ENR_CONTRATNEXT<3> # W_ANCIENETABAIDANT THEN
		W_1ERCONTRAT = W_1ERCONTRAT + 1		
	
		* STRUCTURE S41.G01.xx
		GOSUB 410100

		* IDENTIFICATION RETRAITE COMPL. (S41.G01.01)
****		IF W_RETRAITEGENE # "" THEN GOSUB 410101
		GOSUB 410101

		* URSSAF EXO
		GOSUB 410106

		* ELECTION PRUD'HOMALES
		GOSUB 410200

		* RETRAITE COMPLEMENTAIRE
		GOSUB 440100

		* PERIODE INACTIVITE
		GOSUB 460100
		
		W_ANCIENETABAIDANT = ENR_CONTRATNEXT<3>
		W_DATEDEBCONTRAT = ENR_CONTRATNEXT<7>
	END ELSE 
		IF W_ANCIENAIDANT # CLECONTRAT[1,5] AND W_ANCIENAIDANT # "" THEN
			W_1ERCONTRAT = W_1ERCONTRAT + 1		
	
			* STRUCTURE S41.G01.xx
			GOSUB 410100

			* IDENTIFICATION RETRAITE COMPL. (S41.G01.01)
****			IF W_RETRAITEGENE # "" THEN GOSUB 410101
			GOSUB 410101

			* URSSAF EXO
			GOSUB 410106

			* ELECTION PRUD'HOMALES
			GOSUB 410200

			* RETRAITE COMPLEMENTAIRE IRCANTEC
			GOSUB 420100

			* RETRAITE COMPLEMENTAIRE
			GOSUB 440100

			* PERIODE INACTIVITE
			GOSUB 460100
		END
	END

	IF ENR_CONTRATNEXT = "" THEN
		READ ENR_CONTRAT FROM F.CONTRAT,CLECONTRAT ELSE ENR_CONTRAT = ""
	END ELSE
		ENR_CONTRAT = ENR_CONTRATNEXT
	END

	READ ENR_TDSFRAISPROFESSIONNELS FROM F.TDSFRAISPROFESSIONNELS,W_ANNEE:W_CODEENTITE:CLECONTRAT[1,5] ELSE ENR_TDSFRAISPROFESSIONNELS = ""

	IF W_ANCIENAIDANT # CLECONTRAT[1,5] THEN
		* STRUCTURE S30.G01.xx
		GOSUB 300100

		W_ANCIENAIDANT = CLECONTRAT[1,5]
		W_ANCIENETABAIDANT = ""
		W_1ERCONTRAT = 0	

		W_ANCIENETABAIDANT = ENR_CONTRAT<3>	
		W_DATEDEBCONTRAT = ENR_CONTRAT<7>
	END

	W_DATEFINCONTRAT = ENR_CONTRAT<8>
	W_DERNIERCODECONTRAT = CLECONTRAT
		
  REPEAT
  
  * GERE DERNIER CONTRAT
  W_1ERCONTRAT = W_1ERCONTRAT + 1		

  * STRUCTURE S41.G01.xx
  GOSUB 410100

  * IDENTIFICATION RETRAITE COMPL. (S41.G01.01)
  GOSUB 410101

  * URSSAF EXO
  GOSUB 410106

  * ELECTION PRUD'HOMALES
  GOSUB 410200

  * RETRAITE COMPLEMENTAIRE IRCANTEC
  GOSUB 420100

  * RETRAITE COMPLEMENTAIRE
  GOSUB 440100

  * PERIODE INACTIVITE
  GOSUB 460100

  * HONORAIRES
  GOSUB 700100

  * ETABLISSEMENT
  GOSUB 800100  

  A = A + 1

REPEAT

* GERE DERNIER CONTRAT
**W_1ERCONTRAT = W_1ERCONTRAT + 1		

* STRUCTURE S41.G01.xx
**GOSUB 410100

* IDENTIFICATION RETRAITE COMPL. (S41.G01.01)
**GOSUB 410101

* URSSAF EXO
**GOSUB 410106

* ELECTION PRUD'HOMALES
**GOSUB 410200

* RETRAITE COMPLEMENTAIRE
**GOSUB 440100

* PERIODE INACTIVITE
**GOSUB 460100

* HONORAIRES
**GOSUB 700100

* ETABLISSEMENT
**GOSUB 800100  

* TOTAL ENVOI
GOSUB 900100

ENR_TAMPONDADS = ""
ENR_TAMPONDADS<1> = W_NBSALDECLARE
ENR_TAMPONDADS<2> = W_TOTALGENETOT
ENR_TAMPONDADS<3> = W_TOTALGENEPLAF
ENR_TAMPONDADS<4> = W_TOTALGENEBRUTE
ENR_TAMPONDADS<5> = W_TOTALGENETAXE
ENR_TAMPONDADS<6> = W_TOTALGENETAXE1
ENR_TAMPONDADS<7> = W_TOTALGENETAXE2

* CALCUL DU MONTANT TAXE SUR SALAIRE DU
W_MONTANTTAXETOT = INT(((W_TOTALGENETAXE * W_TAUXTAXETOT)/100000)+1/2)
W_MONTANTTAXETR1 = INT(((W_TOTALGENETAXE1 * W_TAUXTAXETR1)/100000)+1/2)
W_MONTANTTAXETR2 = INT(((W_TOTALGENETAXE2 * W_TAUXTAXETR2)/100000)+1/2)

ENR_TAMPONDADS<8> = W_MONTANTTAXETOT + W_MONTANTTAXETR1 + W_MONTANTTAXETR2 

ENR_TAMPONDADS<9> = W_TOTALGENECSG
ENR_TAMPONDADS<10> = W_TOTALGENENET

ENR_TAMPONDADS<11> = W_TOTALHONORAIRES

ENR_TAMPONDADS<12> = W_TOTALRETRAITEGENETOTAL
ENR_TAMPONDADS<13> = W_TOTALRETRAITEGENEPLAF
ENR_TAMPONDADS<14> = W_TABRETRAITE<4>
ENR_TAMPONDADS<15> = W_TABRETRAITE<5>
ENR_TAMPONDADS<16> = W_TABRETRAITE<6>
ENR_TAMPONDADS<21> = W_TOTALRETRAITEGENETB

ENR_TAMPONDADS<17> = W_TOTALURSSAFPART<1>
ENR_TAMPONDADS<18> = W_TOTALURSSAFPART<2>
ENR_TAMPONDADS<19> = W_TOTALURSSAFPART<3>
ENR_TAMPONDADS<20> = W_TOTALURSSAFPART<4>
 
* VERIFIE SI PAS 2 RETRAITES AVEC MEME CODE + NUM RATT
I = 1
LOOP
	UNTIL ENR_TAMPONDADS<16,I> = "" DO

	J = I + 1
	LOOP
		UNTIL ENR_TAMPONDADS<16,J> = "" DO

		IF ENR_TAMPONDADS<15,I> = ENR_TAMPONDADS<15,J> AND ENR_TAMPONDADS<14,I> = ENR_TAMPONDADS<14,J> THEN

			ENR_TAMPONDADS<12,I> = ENR_TAMPONDADS<12,I> + ENR_TAMPONDADS<12,J>
			ENR_TAMPONDADS<13,I> = ENR_TAMPONDADS<13,I> + ENR_TAMPONDADS<13,J>
			ENR_TAMPONDADS<21,I> = ENR_TAMPONDADS<21,I> + ENR_TAMPONDADS<21,J>

			ENR_TAMPONDADS=DELETE(ENR_TAMPONDADS,12,J)
			ENR_TAMPONDADS=DELETE(ENR_TAMPONDADS,13,J)
			ENR_TAMPONDADS=DELETE(ENR_TAMPONDADS,14,J)
			ENR_TAMPONDADS=DELETE(ENR_TAMPONDADS,15,J)
			ENR_TAMPONDADS=DELETE(ENR_TAMPONDADS,16,J)

ENR_TAMPONDADS=DELETE(ENR_TAMPONDADS,21,J)
			
			J = J - 1
		END

		J = J + 1
	REPEAT
	I = I + 1
REPEAT

IF W_NBERREURDADSU > 20 THEN 
	* ARRETE LE PROG CAR LE FICHIER COMPORTE TROP D'ERREURS
	ENR_ERREURDADSU = INSERT(ENR_ERREURDADSU,1;"err02 GENERATION DADS-U IMPOSSIBLE : REPRENDRE LES PARAMETRAGES DES RUBRIQUES URSSAF A CUMULER (Menu DADS-U / Paramtres /  DADS-U URSSAF / URSSAF  cumuler).")
	WRITE ENR_ERREURDADSU ON F.TAMPONDADS,"ERREURDADSU"
	STOP
END

WRITE ENR_TAMPONDADS ON F.TAMPONDADS,"DADSU":W_CODEENTITE:W_ANNEE
WRITE ENR_DADSU ON F.DADSU,W_CODEENTITE:W_ANNEE:".TXT"

IF ENR_ERREURDADSU<1> = "" THEN ENR_ERREURDADSU<1> = "vide"
WRITE ENR_ERREURDADSU ON F.TAMPONDADS,"ERREURDADSU"

STOP


***************************************************************
* 100100 -> EMETTEUR (S10.G01.00)
***************************************************************
100100
	W_CHAINE = "S10.G01.00."

	READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CODEENTITE ELSE ENR_ASSOCIATION = ""
	READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,W_CODEENTITE:"001" ELSE ENR_ETABLISSEMENT = ""
	
	W_SIREN = ENR_ASSOCIATION<14>
	W_SIRET = ENR_ETABLISSEMENT<14>[LEN(ENR_ETABLISSEMENT<14>)-4,5]

	ENR_DADSU<-1> = W_CHAINE:"001.001,'":W_SIREN:"'"
	ENR_DADSU<-1> = W_CHAINE:"001.002,'":W_SIRET:"'"
	ENR_DADSU<-1> = W_CHAINE:"002,'":ENR_ASSOCIATION<2>:"'"

	IF ENR_ASSOCIATION<7> # "" THEN ENR_DADSU<-1> = W_CHAINE:"003.001,'":ENR_ASSOCIATION<7>:"'"

	IF ENR_ASSOCIATION<3> # "" THEN ENR_DADSU<-1> = W_CHAINE:"003.003,'":ENR_ASSOCIATION<3>:"'"
	
	IF ENR_ASSOCIATION<4>[1,1] = "B" OR ENR_ASSOCIATION<4>[1,1] = "T" THEN ENR_DADSU<-1> = W_CHAINE:"003.004,'":ENR_ASSOCIATION<4>[1,1]:"'"
	
	IF ENR_ASSOCIATION<5> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"003.006,'":ENR_ASSOCIATION<5>:" ":ENR_ASSOCIATION<6>:"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"003.006,'":ENR_ASSOCIATION<6>:"'"
	END

	ENR_DADSU<-1> = W_CHAINE:"003.010,'":ENR_ASSOCIATION<8>:"'"
	ENR_DADSU<-1> = W_CHAINE:"003.012,'":ENR_ASSOCIATION<9>:"'"
	ENR_DADSU<-1> = W_CHAINE:"004,'":ENR_ASSOCIATION<2>[1,10]:"'"
	ENR_DADSU<-1> = W_CHAINE:"005,'G.A.M'"
	ENR_DADSU<-1> = W_CHAINE:"006,'INFOLOGIS'"
	ENR_DADSU<-1> = W_CHAINE:"007,'3.71'"
	ENR_DADSU<-1> = W_CHAINE:"009,'40'"
	ENR_DADSU<-1> = W_CHAINE:"010,'0":W_TYPE:"'"
	*DEB-Victor 21/09/2006
	ENR_DADSU<-1> = W_CHAINE:"011,'V08R04'"
	ENR_DADSU<-1> = W_CHAINE:"012,'01'"
	ENR_DADSU<-1> = W_CHAINE:"013.001,'":W_SIREN:"'"
	ENR_DADSU<-1> = W_CHAINE:"013.002,'":W_SIRET:"'"
	ENR_DADSU<-1> = W_CHAINE:"014,'05'"
	* christophe 18/12/2006
	ENR_DADSU<-1> = W_CHAINE:"015.002,'02'"
	ENR_DADSU<-1> = W_CHAINE:"015.003,'LA COMPTABLE'"
	
RETURN


***************************************************************
* 100101 -> CONTACT EMETTEUR (S10.G01.01)
***************************************************************
100101
	W_CHAINE = "S10.G01.01."

	* CONTACT CLIENT
	ENR_DADSU<-1> = W_CHAINE:"001.001,'02'"
	IF ENR_ASSOCIATION<30> # "" THEN
		ENR_DADSU<-1> = W_CHAINE:"001.002,'":ENR_ASSOCIATION<30>:"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"001.002,'":ENR_ASSOCIATION<2>:"'"
	END
	ENR_DADSU<-1> = W_CHAINE:"002,'01'"
	IF ENR_ASSOCIATION<35> # "" THEN
		ENR_DADSU<-1> = W_CHAINE:"005,'":ENR_ASSOCIATION<35>:"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"005,'infologis@wanadoo.fr'"
	END
	ENR_DADSU<-1> = W_CHAINE:"006,'":ENR_ASSOCIATION<12>:"'"
	ENR_DADSU<-1> = W_CHAINE:"007,'":ENR_ASSOCIATION<13>:"'"

	* CONTACT INFOLOGIS
	ENR_DADSU<-1> = W_CHAINE:"001.001,'01'"
	ENR_DADSU<-1> = W_CHAINE:"001.002,'INFOLOGIS-SERVICE MAINTENANCE'"
	ENR_DADSU<-1> = W_CHAINE:"002,'02'"
	ENR_DADSU<-1> = W_CHAINE:"005,'infologis@wanadoo.fr'"
	ENR_DADSU<-1> = W_CHAINE:"006,'02 54 08 70 80'"
	ENR_DADSU<-1> = W_CHAINE:"007,'02 54 08 70 89'"

RETURN


***************************************************************
* 200100 -> DECLARANT (S20.G01.00)
***************************************************************
200100
	W_CHAINE = "S20.G01.00."

	ENR_DADSU<-1> = W_CHAINE:"001,'":ENR_ASSOCIATION<14>:"'"
	ENR_DADSU<-1> = W_CHAINE:"002,'":ENR_ASSOCIATION<2>:"'"
	ENR_DADSU<-1> = W_CHAINE:"003.001,'0101":W_ANNEE:"'"
	ENR_DADSU<-1> = W_CHAINE:"003.002,'3112":W_ANNEE:"'"
	ENR_DADSU<-1> = W_CHAINE:"004.001,'01'"
	ENR_DADSU<-1> = W_CHAINE:"004.002,'51'"

	READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,W_TABETAB<1,A> ELSE ENR_ETABLISSEMENT = ""
	IF ENR_ETABLISSEMENT<25> = "" THEN	
		ENR_DADSU<-1> = W_CHAINE:"005,'11'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"005,'":ENR_ETABLISSEMENT<25>:"'"
	END

	ENR_DADSU<-1> = W_CHAINE:"007,'EUR'"
	ENR_DADSU<-1> = W_CHAINE:"008,'":W_SIRET:"'"

	IF ENR_ETABLISSEMENT<7> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"009.001,'":ENR_ETABLISSEMENT<7>:"'"
	END ELSE
		IF ENR_ASSOCIATION<7> # "" THEN ENR_DADSU<-1> = W_CHAINE:"009.001,'":ENR_ASSOCIATION<7>:"'"
	END

	IF ENR_ETABLISSEMENT<3> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"009.003,'":ENR_ETABLISSEMENT<3>:"'"
	END ELSE
		IF ENR_ASSOCIATION<3> # "" THEN ENR_DADSU<-1> = W_CHAINE:"009.003,'":ENR_ASSOCIATION<3>:"'"
	END	

	IF ENR_ETABLISSEMENT<4> # "" THEN
		IF ENR_ETABLISSEMENT<4>[1,1] = "B" OR ENR_ETABLISSEMENT<4>[1,1] = "T" THEN 
			ENR_DADSU<-1> = W_CHAINE:"009.004,'":ENR_ETABLISSEMENT<4>[1,1]:"'"
		END
	END ELSE
		IF ENR_ASSOCIATION<4>[1,1] = "B" OR ENR_ASSOCIATION<4>[1,1] = "T" THEN 
			ENR_DADSU<-1> = W_CHAINE:"009.004,'":ENR_ASSOCIATION<4>[1,1]:"'"	
		END
	END
		
	IF ENR_ETABLISSEMENT<5> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"009.006,'":ENR_ETABLISSEMENT<5>:" ":ENR_ETABLISSEMENT<6>:"'"
	END ELSE	
		IF ENR_ETABLISSEMENT<6> # "" THEN
			ENR_DADSU<-1> = W_CHAINE:"009.006,'":ENR_ETABLISSEMENT<6>:"'"
		END ELSE
			IF ENR_ASSOCIATION<5> # "" THEN 
				ENR_DADSU<-1> = W_CHAINE:"009.006,'":ENR_ASSOCIATION<5>:" ":ENR_ASSOCIATION<6>:"'"
			END ELSE
				ENR_DADSU<-1> = W_CHAINE:"009.006,'":ENR_ASSOCIATION<6>:"'"
			END
		END
	END	
	
	IF ENR_ETABLISSEMENT<8> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"009.010,'":ENR_ETABLISSEMENT<8>:"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"009.010,'":ENR_ASSOCIATION<8>:"'"
	END

	IF ENR_ETABLISSEMENT<9> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"009.012,'":ENR_ETABLISSEMENT<9>:"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"009.012,'":ENR_ASSOCIATION<9>:"'"
	END

	ENR_DADSU<-1> = W_CHAINE:"018,'A00'"

RETURN


***************************************************************
* 300100 -> SALARIE (S30.G01.00)
***************************************************************
300100
	W_CHAINE = "S30.G01.00."

	W_NBSALDECLARE = W_NBSALDECLARE + 1

	READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,CLECONTRAT[1,5] ELSE ENR_CIVILAIDANT = ""
	READ ENR_PRUDCASPARTICULIERS FROM F.PRUDCASPARTICULIERS,CLECONTRAT[1,5] ELSE ENR_PRUDCASPARTICULIERS = ""
	
	IF ENR_CIVILAIDANT<17> # "" THEN	
		W_NUMSECU = CONVERT(" ","",ENR_CIVILAIDANT<17>)
	END ELSE
		IF ENR_CIVILAIDANT<16> = "M" THEN
			W_NUMSECU = "1999999999999"
		END ELSE
			W_NUMSECU = "2999999999999"
		END
	END
	
	ENR_DADSU<-1> = W_CHAINE:"001,'":W_NUMSECU:"'"
**	ENR_CIVILAIDANT<4> = CONVERT(" ","",ENR_CIVILAIDANT<4>)
**	ENR_CIVILAIDANT<4> = CONVERT("'"," ",ENR_CIVILAIDANT<4>)
**	ENR_CIVILAIDANT<4> = CONVERT("*","",ENR_CIVILAIDANT<4>)
**	ENR_CIVILAIDANT<4> = CONVERT("","E",ENR_CIVILAIDANT<4>)

	* CONVERTION ATT 4 DE CIVILAIDANT
	W_TXTACONVERTIR = ENR_CIVILAIDANT<4>
	GOSUB 999999
	ENR_CIVILAIDANT<4> = W_TXTACONVERTIR

	ENR_DADSU<-1> = W_CHAINE:"002,'":ENR_CIVILAIDANT<4>:"'"
**	ENR_CIVILAIDANT<3> = CONVERT(".","",ENR_CIVILAIDANT<3>)
**	ENR_CIVILAIDANT<3> = CONVERT("'"," ",ENR_CIVILAIDANT<3>)
**	ENR_CIVILAIDANT<3> = CONVERT("*","",ENR_CIVILAIDANT<3>)
**	ENR_CIVILAIDANT<3> = CONVERT("-"," ",ENR_CIVILAIDANT<3>)

	* CONVERTION ATT 3 DE CIVILAIDANT
	W_TXTACONVERTIR = ENR_CIVILAIDANT<3>
	GOSUB 999999
	ENR_CIVILAIDANT<3> = W_TXTACONVERTIR

	ENR_DADSU<-1> = W_CHAINE:"003,'":ENR_CIVILAIDANT<3>:"'"
**	ENR_CIVILAIDANT<2> = CONVERT(" ","",ENR_CIVILAIDANT<2>)
**	ENR_CIVILAIDANT<2> = CONVERT("'","",ENR_CIVILAIDANT<2>)
**	ENR_CIVILAIDANT<2> = CONVERT("*","",ENR_CIVILAIDANT<2>)

	* CONVERTION ATT 2 DE CIVILAIDANT
	W_TXTACONVERTIR = ENR_CIVILAIDANT<2>
	GOSUB 999999
	ENR_CIVILAIDANT<2> = W_TXTACONVERTIR

	ENR_DADSU<-1> = W_CHAINE:"004,'":ENR_CIVILAIDANT<2>:"'"

	IF ENR_CIVILAIDANT<1> = "MME" THEN 
		ENR_DADSU<-1> = W_CHAINE:"007,'02'"
	END ELSE 
		IF ENR_CIVILAIDANT<1> = "MLE" THEN
			ENR_DADSU<-1> = W_CHAINE:"007,'03'"
		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"007,'01'"
		END
	END


	* CONVERTION ATT 9 DE CIVILAIDANT
	W_TXTACONVERTIR = ENR_CIVILAIDANT<9>
	GOSUB 999999
	ENR_CIVILAIDANT<9> = W_TXTACONVERTIR

	* CONVERTION ATT 8 DE CIVILAIDANT
	W_TXTACONVERTIR = ENR_CIVILAIDANT<8>
	GOSUB 999999
	ENR_CIVILAIDANT<8> = W_TXTACONVERTIR


	IF CONVERT(" ","",ENR_CIVILAIDANT<9>) # "" THEN ENR_DADSU<-1> = W_CHAINE:"008.001,'":ENR_CIVILAIDANT<9>[1,26]:"'"

	IF TRIM(ENR_CIVILAIDANT<5>) # "" THEN ENR_DADSU<-1> = W_CHAINE:"008.003,'":ENR_CIVILAIDANT<5>:"'"
	
	IF ENR_CIVILAIDANT<6>[1,1] = "B" OR ENR_CIVILAIDANT<6>[1,1] = "T" THEN ENR_DADSU<-1> = W_CHAINE:"008.004,'":ENR_CIVILAIDANT<6>[1,1]:"'"
	
	IF ENR_CIVILAIDANT<7> # "" THEN 
		W_ADRESSE = ""
		W_ADRESSE = ENR_CIVILAIDANT<7>:" ":ENR_CIVILAIDANT<8>
		W_ADRESSE = W_ADRESSE[1,26]
		ENR_DADSU<-1> = W_CHAINE:"008.006,'":W_ADRESSE:"'"
	END ELSE
		IF ENR_CIVILAIDANT<8> # "" THEN ENR_DADSU<-1> = W_CHAINE:"008.006,'":ENR_CIVILAIDANT<8>[1,26]:"'"
	END

	IF ENR_CIVILAIDANT<39> # "" THEN ENR_DADSU<-1> = W_CHAINE:"008.007,'":ENR_CIVILAIDANT<39>:"'"


	IF ENR_CIVILAIDANT<10> = "" OR ENR_CIVILAIDANT<10> = "." THEN ENR_CIVILAIDANT<10> = "INCONNU"
**	ENR_CIVILAIDANT<11> = CONVERT("/"," ",ENR_CIVILAIDANT<11>)
**	ENR_CIVILAIDANT<11> = CONVERT("-"," ",ENR_CIVILAIDANT<11>)
**	ENR_CIVILAIDANT<11> = CONVERT("+"," ",ENR_CIVILAIDANT<11>)
**	ENR_CIVILAIDANT<11> = CONVERT("(","",ENR_CIVILAIDANT<11>)
**	ENR_CIVILAIDANT<11> = CONVERT(")","",ENR_CIVILAIDANT<11>)
**	ENR_CIVILAIDANT<10> = CONVERT("*","",ENR_CIVILAIDANT<10>)
**	ENR_CIVILAIDANT<10> = CONVERT("'"," ",ENR_CIVILAIDANT<10>)
**	ENR_CIVILAIDANT<10> = CONVERT("."," ",ENR_CIVILAIDANT<10>)
**	ENR_CIVILAIDANT<10> = CONVERT("","",ENR_CIVILAIDANT<10>)
**	ENR_CIVILAIDANT<10> = CONVERT("","E",ENR_CIVILAIDANT<10>)
**	ENR_CIVILAIDANT<10> = CONVERT("","E",ENR_CIVILAIDANT<10>)

	* CONVERTION ATT 10 DE CIVILAIDANT
	W_TXTACONVERTIR = ENR_CIVILAIDANT<10>
	GOSUB 999999
	ENR_CIVILAIDANT<10> = W_TXTACONVERTIR

	* CONVERTION ATT 11 DE CIVILAIDANT
	W_TXTACONVERTIR = ENR_CIVILAIDANT<11>
	GOSUB 999999
	ENR_CIVILAIDANT<11> = W_TXTACONVERTIR

	ENR_DADSU<-1> = W_CHAINE:"008.010,'":ENR_CIVILAIDANT<10>:"'"

	ENR_DADSU<-1> = W_CHAINE:"008.012,'":ENR_CIVILAIDANT<11>[1,26]:"'"
	IF LEN(ENR_CIVILAIDANT<10>) = 4 THEN 
		ENR_DADSU<-1> = W_CHAINE:"008.013,'BE'"
		ENR_DADSU<-1> = W_CHAINE:"008.014,'BELGIQUE'"
	END
	
	ENR_DADSU<-1> = W_CHAINE:"009,'":CONVERT("/","",OCONV(ENR_CIVILAIDANT<26>,"D4/")):"'"

	IF ENR_CIVILAIDANT<27> = "" OR ENR_CIVILAIDANT<27> = "." THEN ENR_CIVILAIDANT<27> = "INCONNU"
**	ENR_CIVILAIDANT<27> = CONVERT("/"," ",ENR_CIVILAIDANT<27>)
**	ENR_CIVILAIDANT<27> = CONVERT("-"," ",ENR_CIVILAIDANT<27>)
**	ENR_CIVILAIDANT<27> = CONVERT("+"," ",ENR_CIVILAIDANT<27>)
**	ENR_CIVILAIDANT<27> = CONVERT("(","",ENR_CIVILAIDANT<27>)
**	ENR_CIVILAIDANT<27> = CONVERT(")","",ENR_CIVILAIDANT<27>)
**	ENR_CIVILAIDANT<27> = CONVERT("'"," ",ENR_CIVILAIDANT<27>)
**	ENR_CIVILAIDANT<27> = CONVERT("."," ",ENR_CIVILAIDANT<27>)
**	ENR_CIVILAIDANT<27> = CONVERT("","",ENR_CIVILAIDANT<27>)
**	ENR_CIVILAIDANT<27> = CONVERT("","E",ENR_CIVILAIDANT<27>)
**	ENR_CIVILAIDANT<27> = CONVERT("","E",ENR_CIVILAIDANT<27>)

	* CONVERTION ATT 27 DE CIVILAIDANT
	W_TXTACONVERTIR = ENR_CIVILAIDANT<27>
	GOSUB 999999
	ENR_CIVILAIDANT<27> = W_TXTACONVERTIR

	ENR_DADSU<-1> = W_CHAINE:"010,'":ENR_CIVILAIDANT<27>:"'"

	IF ENR_CIVILAIDANT<17> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"011,'":ENR_CIVILAIDANT<17>[9,2]:"'"
	END ELSE 
		IF ENR_CIVILAIDANT<28> # "" THEN
			ENR_DADSU<-1> = W_CHAINE:"011,'":ENR_CIVILAIDANT<28>:"'"
		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"011,'99'"
		END
	END
	
	*DEB-Victor 21/09/2006
	ENR_DADSU<-1> = W_CHAINE:"012,'":ENR_CIVILAIDANT<30>[1,38]:"'"
	ENR_DADSU<-1> = W_CHAINE:"013,'":ENR_CIVILAIDANT<19>[1,38]:"'"
	*FIN-Victor 21/09/2006
	
RETURN


***************************************************************
* 410100 -> ACTIVITE - PERIODE D'ACTIVITE (S41.G01.00)
***************************************************************
410100
	W_CHAINE = "S41.G01.00."

	* REMISE A ZERO DES VARIABLES DE CUMULS
	W_URSSAFTOT = 0
	W_URSSAFPLAF = 0
	W_CSG = 0
	W_TAXETOT = 0
	W_TAXETR1 = 0
	W_TAXETR2 = 0
	W_RETRAITETOT = ""
	W_RETRAITEPLAF = ""
	W_RETRAITEGENE = ""
	W_URSSAFEXO = ""
	W_RETRAITETOTALITEIRCANTEC = 0
	W_RETRAITEPLAFIRCANTEC = 0
	W_RETRAITETOTALITECNRACL = 0
	W_RETRAITEPLAFCNRACL = 0
	
	W_NOMAIDANT = ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
	W_NOMAIDANT = W_NOMAIDANT[1,25] "L#25"

	IF CLECONTRAT = "" THEN CLECONTRAT = W_DERNIERCODECONTRAT

	READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,W_ANCIENAIDANT:W_ANNEE:ENR_CONTRAT<2> ELSE ENR_HISTORCUMUL = ""

	IF ENR_HISTORCUMUL<23> # "" THEN
		W_MULTIETAB = 1

		READ ENR_HISTORCUMUL FROM F.HISTORCUMULETABL,W_ANCIENAIDANT:W_ANNEE:ENR_CONTRAT<3> ELSE ENR_HISTORCUMUL = ""
	END ELSE
		W_MULTIETAB = 0
	END
	
	*VICTOR 02/10/2006
	W_RETRAITETB = 0
	W_RETRAITETBCADRE = 0
	
	* CALCULE DATE DEBUT ACTIVITE
	IF W_DATEDEBCONTRAT < ICONV(W_DEBUTPERIODE,"D4/") THEN 
		W_DEBUTACTIVITE = W_DEBUTPERIODE
		W_CODE4101002 = "097"
	END ELSE
		W_DEBUTACTIVITE = OCONV(W_DATEDEBCONTRAT,"D4/")
		IF W_MULTIETAB = 1 THEN
			W_CODE4101002 = "019"
		END ELSE
			W_CODE4101002 = "001"
		END	
	END
	
**** RAJOUT GESTION HISTORCUMUL = "" - 25/02/05
	IF ENR_HISTORCUMUL = "" OR ENR_HISTORCUMUL<5> = 0 OR ENR_HISTORCUMUL<5> = "" THEN W_CODE4101002 = "021"

	* CALCULE DATE FIN ACTIVITE
	IF W_DATEFINCONTRAT > ICONV(W_FINPERIODE,"D4/") OR W_DATEFINCONTRAT = "" THEN
		W_FINACTIVITE = W_FINPERIODE
	END ELSE
		W_FINACTIVITE = OCONV(ENR_CONTRAT<8>,"D4/")
	END

	W_DEBUTACTIVITECONTRAT = W_DEBUTACTIVITE 
	W_FINACTIVITECONTRAT = W_FINACTIVITE
	W_DEBUTACTIVITE = CONVERT("/","",W_DEBUTACTIVITE)[1,4]
	W_FINACTIVITE = CONVERT("/","",W_FINACTIVITE)[1,4]

	IF W_DATEFINCONTRAT # "" THEN
		W_CODEFINCONTRAT = "222"

		* CODE 59
		IF ENR_CONTRAT<49> = "59" THEN W_CODEFINCONTRAT = "010"
		* CODE 38 / 39
		IF ENR_CONTRAT<49> = "38" OR ENR_CONTRAT<49> = "39" THEN W_CODEFINCONTRAT = "016"
		* CODE 10 / 11 / 12 / 13 / 14 / 15 / 20 / 21
		IF ENR_CONTRAT<49> >= "10" AND ENR_CONTRAT<49> <= "15" THEN W_CODEFINCONTRAT = "012"
		IF ENR_CONTRAT<49> = "20" OR ENR_CONTRAT<49> = "21" THEN W_CODEFINCONTRAT = "012"
	END ELSE
		W_CODEFINCONTRAT = "098"
		IF W_MULTIETAB = 1 AND W_1ERCONTRAT = 1 THEN W_CODEFINCONTRAT = "020"
	END

**** RAJOUT GESTION HISTORCUMUL = "" - 25/02/05
	IF ENR_HISTORCUMUL = "" OR ENR_HISTORCUMUL<5> = 0 OR ENR_HISTORCUMUL<5> = "" THEN W_CODEFINCONTRAT = "022"

	* DEBUT ET FIN ACTIVITE
	ENR_DADSU<-1> = W_CHAINE:"001,'":W_DEBUTACTIVITE:"'"
	ENR_DADSU<-1> = W_CHAINE:"002.001,'":W_CODE4101002:"'"
	ENR_DADSU<-1> = W_CHAINE:"003,'":W_FINACTIVITE:"'"
	ENR_DADSU<-1> = W_CHAINE:"004.001,'":W_CODEFINCONTRAT:"'"

	* RECHERCHE SIRET DANS TABETAB
	I=1
	LOOP	
		UNTIL W_TABETAB<1,I> = "" DO

		IF W_TABETAB<1,I> = ENR_CONTRAT<3> THEN
			W_TABETAB<10,I> = 1	
			EXIT 
		END
		I = I + 1
	REPEAT

	* SIRET CONTRAT
	ENR_DADSU<-1> = W_CHAINE:"005,'":W_TABETAB<4,I>:"'"
	ENR_DADSU<-1> = W_CHAINE:"008.001,'03'"
	ENR_DADSU<-1> = W_CHAINE:"008.002,'03'"

	IF ENR_ASSOCIATION<25> = "1" THEN
		ENR_DADSU<-1> = W_CHAINE:"009,'03'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"009,'01'"
	END

	W_NBMVCONTRAT = DCOUNT(ENR_CONTRAT<15>,CHAR(253))
	FOR J = W_NBMVCONTRAT TO 1 STEP -1
		IF ENR_CONTRAT<15,J> < ICONV(W_FINPERIODE,"D4/") THEN EXIT 
	NEXT J

	* NATURE EMPLOI + PCS
**	ENR_CONTRAT<16,J> = CONVERT("."," ",ENR_CONTRAT<16,J>)
**	ENR_CONTRAT<16,J> = CONVERT("'"," ",ENR_CONTRAT<16,J>)
**	ENR_CONTRAT<16,J> = CONVERT("","O",ENR_CONTRAT<16,J>)
**	ENR_CONTRAT<16,J> = CONVERT("","E",ENR_CONTRAT<16,J>)

	* CONVERTION ATT 16,J DE ENR_CONTRAT
	W_TXTACONVERTIR = ENR_CONTRAT<16,J> 
	GOSUB 999999
	ENR_CONTRAT<16,J> = W_TXTACONVERTIR

	ENR_DADSU<-1> = W_CHAINE:"010,'":ENR_CONTRAT<16,J>:"'"
	ENR_DADSU<-1> = W_CHAINE:"011,'":ENR_CONTRAT<17,J>:"'"

	IF ENR_CONTRAT<13> = "CES" OR ENR_CONTRAT<13> = "CEJ" THEN
		IF ENR_CONTRAT<13> = "CES" THEN
			W_CODENATURECONTRAT = "07"
		END ELSE
			W_CODENATURECONTRAT = "06"
		END
	END ELSE
		IF ENR_CONTRAT<4> = "D" THEN
			W_CODENATURECONTRAT = "02"
		END ELSE
			W_CODENATURECONTRAT = "01"
		END		
	END

	ENR_DADSU<-1> = W_CHAINE:"012.001,'":W_CODENATURECONTRAT:"'"
	ENR_DADSU<-1> = W_CHAINE:"012.002,'01'"

	* DUREE CONTRAT
	IF ENR_CONTRAT<25,J> = "1" THEN W_DUREEW = INT((ENR_CONTRAT<24,J> * 52/12)+1/2)
	IF ENR_CONTRAT<25,J> = "2" THEN W_DUREEW = INT((ENR_CONTRAT<24,J> * 26/12)+1/2)
	IF ENR_CONTRAT<25,J> = "3" THEN W_DUREEW = ENR_CONTRAT<24,J> 
	IF ENR_CONTRAT<25,J> = "4" THEN W_DUREEW = INT((ENR_CONTRAT<24,J> /12)+1/2)

	W_DUREEETAB = INT((W_TABETAB<3,I> * 52/12)+1/2)

	IF W_DUREEW >= W_DUREEETAB THEN
		ENR_DADSU<-1> = W_CHAINE:"013,'01'"
		W_POURCDUREEW = ""
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"013,'02'"
		W_POURCDUREEW = INT(W_DUREEW / W_DUREEETAB * 10000)
	END

	*VICTOR 02/10/2006
	* GESTION DES CUMULS HISTORCUMUL
	GOSUB 4101001
	
	* Michael 18/12/06 : On compare les URSSAF ARRONDIES !
	IF INT(((W_URSSAFTOT)/100)+1/2) < INT(((W_URSSAFPLAF)/100)+1/2) THEN
		* Diffrence : sera listes plus bas sauf si < 1 euros, auquel cas : 
		IF INT(((W_URSSAFPLAF)/100)+1/2) - INT(((W_URSSAFTOT)/100)+1/2) <= 1 THEN
			W_URSSAFPLAF = W_URSSAFTOT
		END
	END


	* CODE PCS + CODE STATUT + NATURE EMPLOI
	IF ENR_CONTRAT<17,J>[1,1] = "3" OR ENR_CONTRAT<17,J>[1,2] = "23" OR ENR_CONTRAT<17,J>[1,3] = "431" THEN
		W_CODEPCS = "12"
	END ELSE
		W_CODEPCS = "90"
		IF ENR_CONTRAT<17,J>[1,1] = "4" THEN W_CODEPCS = "04"
		IF ENR_CONTRAT<17,J>[1,1] = "5" THEN W_CODEPCS = "02"
		IF ENR_CONTRAT<17,J>[1,1] = "6" THEN W_CODEPCS = "01"
	END

	ENR_DADSU<-1> = W_CHAINE:"014,'":W_CODEPCS:"'"

	*VICTOR DEBUG	
	IF W_RETRAITETBCADRE # 0 THEN
		W_CODESTATUT = "01"	
		ENR_DADSU<-1> = W_CHAINE:"015.001,'":W_CODESTATUT:"'"
		ENR_DADSU<-1> = W_CHAINE:"015.002,'01'"
	END ELSE
		IF W_RETRAITETB # 0 THEN
			W_CODESTATUT = "02"
			ENR_DADSU<-1> = W_CHAINE:"015.001,'":W_CODESTATUT:"'"
			ENR_DADSU<-1> = W_CHAINE:"015.002,'02'"
		END ELSE
			W_CODESTATUT = "02"
			ENR_DADSU<-1> = W_CHAINE:"015.001,'":W_CODESTATUT:"'"
			ENR_DADSU<-1> = W_CHAINE:"015.002,'04'"
		END
	END
	*FIN-Victor 21/09/2006	
	
	* GESTION CONVENTION COLLECTIVE
	* CCN 11 MAI 83 (01) = 1258
	* CCN ADMR	(03) = 0562
	* CCN F.R	(04) = 1031
	* CCN FEHAP	(05) = 0029
	* CCN TF	(06) = 0550
	IF ENR_CONTRAT<1> = "01" THEN ENR_DADSU<-1> = W_CHAINE:"016,'1258'"
	IF ENR_CONTRAT<1> = "03" THEN ENR_DADSU<-1> = W_CHAINE:"016,'0562'"
	IF ENR_CONTRAT<1> = "04" THEN ENR_DADSU<-1> = W_CHAINE:"016,'1031'"
	IF ENR_CONTRAT<1> = "05" THEN ENR_DADSU<-1> = W_CHAINE:"016,'0029'"
	IF ENR_CONTRAT<1> = "06" THEN ENR_DADSU<-1> = W_CHAINE:"016,'0550'"
	IF ENR_CONTRAT<1> = "07" OR ENR_CONTRAT<1> = "08" OR ENR_CONTRAT<1> = "09" THEN ENR_DADSU<-1> = W_CHAINE:"016,'9999'"

	ENR_DADSU<-1> = W_CHAINE:"017,'":ENR_CONTRAT<22,J>/1000:"'"
	ENR_DADSU<-1> = W_CHAINE:"018.001,'200'"
	ENR_DADSU<-1> = W_CHAINE:"019,'":W_ANCIENAIDANT[1,5]:"'"

	* SI DUREE W = 0 (PAS NORMAL) ALORS FORCE A 0.01%
	IF W_POURCDUREEW = 0 THEN W_POURCDUREEW = "001"
	IF W_POURCDUREEW # "" THEN ENR_DADSU<-1> = W_CHAINE:"020,'":W_POURCDUREEW:"'"

	* HISTORCUMUL ou HISTORCUMULETAB
	IF ENR_HISTORCUMUL<1> < 0 THEN ENR_HISTORCUMUL<1> = 0
	IF ENR_HISTORCUMUL<2> < 0 THEN ENR_HISTORCUMUL<2> = 0

	IF ENR_HISTORCUMUL<1> = "" OR INT((ENR_HISTORCUMUL<1>/100)+1/2) = 0 THEN
		IF ENR_HISTORCUMUL<2> # "" AND INT((ENR_HISTORCUMUL<2>/100)+1/2) # 0 THEN ENR_DADSU<-1> = W_CHAINE:"021,'":INT((ENR_HISTORCUMUL<2>/100)+1/2):"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"021,'":INT((ENR_HISTORCUMUL<1>/100)+1/2):"'"
	END

	IF ENR_HISTORCUMUL<2> # "" AND INT((ENR_HISTORCUMUL<2>/100)+1/2) # 0 THEN 
		ENR_DADSU<-1> = W_CHAINE:"022,'":INT((ENR_HISTORCUMUL<2>/100)+1/2):"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"022,'1'"
	END
	IF ENR_HISTORCUMUL<3> # "" AND ENR_HISTORCUMUL<3> # 0 THEN ENR_DADSU<-1> = W_CHAINE:"023,'":ENR_HISTORCUMUL<3>:"'"
	IF ENR_HISTORCUMUL<20> # "" AND ENR_HISTORCUMUL<20> # "0" THEN ENR_DADSU<-1> = W_CHAINE:"024,'":ENR_HISTORCUMUL<20>:"'"

	* TDS TARIFICATION AT
	ENR_DADSU<-1> = W_CHAINE:"025,'":W_TABETAB<5,I>:"'"
	ENR_DADSU<-1> = W_CHAINE:"026,'":ICONV(W_TABETAB<7,I>,"MCU"):"'"
	IF TRIM(W_TABETAB<8,I>) # "" THEN ENR_DADSU<-1> = W_CHAINE:"027,'":W_TABETAB<8,I>:"'"
	ENR_DADSU<-1> = W_CHAINE:"028,'":W_TABETAB<9,I>:"'"

	*VICTOR 02/10/2006
	* GESTION DES CUMULS HISTORCUMUL
	*GOSUB 4101001

	* URSSAF TOTALITE
	IF W_URSSAFTOT < 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"029.001,'":INT(((W_URSSAFTOT*-1)/100)+1/2):"'"
		ENR_DADSU<-1> = W_CHAINE:"029.002,'N'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"029.001,'":INT((W_URSSAFTOT/100)+1/2):"'"
	END

	W_TOTALGENETOT = W_TOTALGENETOT + INT((W_URSSAFTOT/100)+1/2)

	* URSSAF PLAFONNEE
	IF W_URSSAFPLAF < 0 THEN 
		ENR_DADSU<-1> = W_CHAINE:"030.001,'":INT(((W_URSSAFPLAF*-1)/100)+1/2):"'"
		ENR_DADSU<-1> = W_CHAINE:"030.002,'N'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"030.001,'":INT((W_URSSAFPLAF/100)+1/2):"'"
	END

	W_TOTALGENEPLAF = W_TOTALGENEPLAF + INT((W_URSSAFPLAF/100)+1/2)

	* VERIFIE COHERENCE URSSAF PLAFONNEE // TOTALITE
	* + Michael 18/12 : Si pas de diffrences entre sommes arrondies, rien a signaler.
	IF INT(((W_URSSAFTOT)/100)+1/2) < INT(((W_URSSAFPLAF)/100)+1/2) THEN
		ENR_ERREURDADSU<-1> = CLECONTRAT[1,5]:" | ":W_NOMAIDANT:" | LA BASE S.S PLAF (":W_URSSAFPLAF/100:") EST > A LA BASE S.S TOT (":W_URSSAFTOT/100:")"
		W_NBERREURDADSU = W_NBERREURDADSU + 1
	END

**--**	
	IF W_RANGTB <> 0 THEN W_TOTALRETRAITEGENETB<1,W_RANGTB> = W_TOTALRETRAITEGENETB<1,W_RANGTB> + (INT((W_URSSAFTOT/100)+1/2) - INT((W_URSSAFPLAF/100)+1/2))
**--**

	* CSG /CRDS
	IF W_CSG < 0 THEN 
		ENR_DADSU<-1> = W_CHAINE:"032.001,'":INT(((W_CSG*-1)/100)+1/2):"'"
		ENR_DADSU<-1> = W_CHAINE:"032.002,'N'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"032.001,'":INT((W_CSG/100)+1/2):"'"
	END

	IF W_CSG < 0 THEN 
		ENR_DADSU<-1> = W_CHAINE:"033.001,'":INT(((W_CSG*-1)/100)+1/2):"'"
		ENR_DADSU<-1> = W_CHAINE:"033.002,'N'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"033.001,'":INT((W_CSG/100)+1/2):"'"
	END

	* CUMUL BRUT
	IF ENR_HISTORCUMUL<5> < 0 THEN 
		ENR_DADSU<-1> = W_CHAINE:"035.001,'0'"
**		ENR_DADSU<-1> = W_CHAINE:"035.001,'":INT(((ENR_HISTORCUMUL<5>*-1)/100)+1/2):"'"
**		ENR_DADSU<-1> = W_CHAINE:"035.002,'N'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"035.001,'":INT((ENR_HISTORCUMUL<5>/100)+1/2):"'"
	END

	W_TOTALGENEBRUTE = W_TOTALGENEBRUTE + INT((ENR_HISTORCUMUL<5>/100)+1/2)
	W_TOTALGENECSG = W_TOTALGENECSG + INT((W_CSG/100)+1/2)

	* AVANTAGE EN NATURE / MONTANT + TYPE
	W_TABATT9 = ""
	IF ENR_HISTORCUMUL<8> # "" AND ENR_HISTORCUMUL<8> # "0" THEN
		IF ENR_HISTORCUMUL<8> > "0" THEN
			ENR_DADSU<-1> = W_CHAINE:"037.001,'":INT((ENR_HISTORCUMUL<8>/100)+1/2):"'"
		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"037.001,'0'"
**			ENR_DADSU<-1> = W_CHAINE:"037.001,'":INT(((ENR_HISTORCUMUL<8>*-1)/100)+1/2):"'"
**			ENR_DADSU<-1> = W_CHAINE:"037.002,'N'"
		END
	
		W_NBMVATT9 =  DCOUNT(ENR_HISTORCUMUL<9>,CHAR(253))
		FOR L = 1 TO W_NBMVATT9			
			IF ENR_HISTORCUMUL<9,L> = "N" THEN W_TABATT9<1> = "N"
			IF ENR_HISTORCUMUL<9,L> = "L" THEN W_TABATT9<2> = "L"
			IF ENR_HISTORCUMUL<9,L> = "V" THEN W_TABATT9<3> = "V"
			IF ENR_HISTORCUMUL<9,L> = "A" THEN W_TABATT9<4> = "A"
		NEXT L

		IF W_TABATT9 # "" THEN
			IF W_TABATT9<1> # "" THEN ENR_DADSU<-1> = W_CHAINE:"038,'":W_TABATT9<1>:"'"
			IF W_TABATT9<2> # "" THEN ENR_DADSU<-1> = W_CHAINE:"039,'":W_TABATT9<2>:"'"
			IF W_TABATT9<3> # "" THEN ENR_DADSU<-1> = W_CHAINE:"040,'":W_TABATT9<3>:"'"
			IF W_TABATT9<4> # "" THEN ENR_DADSU<-1> = W_CHAINE:"041,'":W_TABATT9<4>:"'"
		END
	END
	

	* FRAIS PROFESSIONNELS	
	W_TABATT22 = ""
	IF (ENR_HISTORCUMUL<10> # "" AND ENR_HISTORCUMUL<10> # "0" AND INT((ENR_HISTORCUMUL<10>/100)+1/2) # "0") OR ENR_TDSFRAISPROFESSIONNELS<1> # "" THEN
		IF (ENR_HISTORCUMUL<10> + ENR_TDSFRAISPROFESSIONNELS<1>) > "0" THEN
			ENR_DADSU<-1> = W_CHAINE:"044.001,'":INT(((ENR_HISTORCUMUL<10> + ENR_TDSFRAISPROFESSIONNELS<1>)/100)+1/2):"'"
		
			W_NBMVATT22 =  DCOUNT(ENR_HISTORCUMUL<22>,CHAR(253))
			IF W_NBMVATT22 = 0 THEN W_NBMVATT22 = 1
			FOR L = 1 TO W_NBMVATT22			
				IF ENR_HISTORCUMUL<22,L> = "F" OR ENR_TDSFRAISPROFESSIONNELS<2> = "F" THEN W_TABATT22<1> = "F"
				IF ENR_HISTORCUMUL<22,L> = "R" OR ENR_TDSFRAISPROFESSIONNELS<2> = "R" THEN W_TABATT22<2> = "R"
				IF ENR_HISTORCUMUL<22,L> = "P" OR ENR_TDSFRAISPROFESSIONNELS<2> = "P" THEN W_TABATT22<3> = "P"
				IF ENR_HISTORCUMUL<22,L> = "D" OR ENR_TDSFRAISPROFESSIONNELS<2> = "D" THEN W_TABATT22<4> = "D"
			NEXT L

			* MISE A VIDE DE ENR_TDSFRAISPROFESSIONNELS POUR NE PAS ETRE RETRAITE
			* SUR PROCHAIN CONTRAT DU MEME AIDANT
			ENR_TDSFRAISPROFESSIONNELS = ""

			IF W_TABATT22 # "" THEN
				IF W_TABATT22<1> # "" THEN ENR_DADSU<-1> = W_CHAINE:"045,'":W_TABATT22<1>:"'"
				IF W_TABATT22<2> # "" THEN ENR_DADSU<-1> = W_CHAINE:"046,'":W_TABATT22<2>:"'"
				IF W_TABATT22<3> # "" THEN ENR_DADSU<-1> = W_CHAINE:"047,'":W_TABATT22<3>:"'"
				IF W_TABATT22<4> # "" THEN ENR_DADSU<-1> = W_CHAINE:"048,'":W_TABATT22<4>:"'"
			END
		END
	END

	IF W_1ERCONTRAT = 1 THEN
		ENR_DADSU<-1> = W_CHAINE:"054,'A'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"054,'P":W_TABETAB<4,I>:"'"
	END
	
	* TAXE SUR SALAIRE TOT + TR1 + TR2 + RECAP
	IF INT((W_TAXETOT/100)+1/2) # 0 THEN 
		IF W_TAXETOT > "0" THEN		
			ENR_DADSU<-1> = W_CHAINE:"055.001,'":INT((W_TAXETOT/100)+1/2):"'"
		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"055.001,'0'"
**			ENR_DADSU<-1> = W_CHAINE:"055.001,'":INT(((W_TAXETOT*-1)/100)+1/2):"'"
**			ENR_DADSU<-1> = W_CHAINE:"055.002,'N'"
		END
	END
	IF INT((W_TAXETR1/100)+1/2) # 0 THEN 
		IF W_TAXETR1 > "0" THEN		
			ENR_DADSU<-1> = W_CHAINE:"056.001,'":INT((W_TAXETR1/100)+1/2):"'"
		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"056.001,'0'"
**			ENR_DADSU<-1> = W_CHAINE:"056.001,'":INT(((W_TAXETR1*-1)/100)+1/2):"'"
**			ENR_DADSU<-1> = W_CHAINE:"056.002,'N'"
		END
	END
	IF INT((W_TAXETR2/100)+1/2) # 0 THEN 
		IF W_TAXETR2 > "0" THEN		
			ENR_DADSU<-1> = W_CHAINE:"057.001,'":INT((W_TAXETR2/100)+1/2):"'"
		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"057.001,'0'"
**			ENR_DADSU<-1> = W_CHAINE:"057.001,'":INT(((W_TAXETR2*-1)/100)+1/2):"'"
**			ENR_DADSU<-1> = W_CHAINE:"057.002,'N'"
		END
	END
	IF INT((W_TAXETOT/100)+1/2) # 0 THEN 
		IF W_TAXETOT > "0" THEN		
			ENR_DADSU<-1> = W_CHAINE:"058.001,'":INT((W_TAXETOT/100)+1/2):"'"
		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"058.001,'0'"
**			ENR_DADSU<-1> = W_CHAINE:"058.001,'":INT(((W_TAXETOT*-1)/100)+1/2):"'"
**			ENR_DADSU<-1> = W_CHAINE:"058.002,'N'"
		END
	END

	* REVENU ACTIVITE
	IF ENR_HISTORCUMUL<6> - ENR_HISTORCUMUL<20> >= 0 THEN 
		ENR_DADSU<-1> = W_CHAINE:"063.001,'":INT(ABS(((ENR_HISTORCUMUL<6> - ENR_HISTORCUMUL<20>)/100)+1/2)):"'"
	END ELSE
		IF ENR_HISTORCUMUL<5> < 0 THEN
			ENR_DADSU<-1> = W_CHAINE:"063.001,'0'"
**			ENR_DADSU<-1> = W_CHAINE:"063.001,'":INT(ABS(((ENR_HISTORCUMUL<6> - ENR_HISTORCUMUL<20>)/100)+1/2)):"'"
**			ENR_DADSU<-1> = W_CHAINE:"063.002,'N'"
		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"063.001,'0'"
		END
	END
	
	W_TOTALGENENET = W_TOTALGENENET + INT((ENR_HISTORCUMUL<6>/100)+1/2)

	W_TOTALGENETAXE = W_TOTALGENETAXE + INT((W_TAXETOT/100)+1/2)
	W_TOTALGENETAXE1 = W_TOTALGENETAXE1 + INT((W_TAXETR1/100)+1/2)
	W_TOTALGENETAXE2 = W_TOTALGENETAXE2 + INT((W_TAXETR2/100)+1/2)
	W_TOTALGENETAXEDU = W_TOTALGENETAXEDU + INT((W_TAXETOT/100)+1/2)


RETURN

***************************************************************
* 4101001 -> GESTION DES CUMULS DADS (S41.G01.00)
***************************************************************
4101001
	
	W_NBRUBCUMUL = DCOUNT(ENR_HISTORCUMUL<15>,CHAR(253))
	W_BASERETRAITEPREC = 0
	W_BASERETRAITEPRECTOT = 0
	W_BASERETRAITEPRECTB = 0
	W_URSSAFPLAFEXO = 0

	W_RANGTB = 0

	FOR K = 1 TO W_NBRUBCUMUL

		* RECHERCHE SI RUB = URSSAF TOTALITE A PARTIR DE W_TABURSSAFTOT
		IF INDEX(W_TABURSSAFTOT,ENR_HISTORCUMUL<15,K>,1) # 0 THEN W_URSSAFTOT = W_URSSAFTOT + ENR_HISTORCUMUL<17,K>

		* RECHERCHE SI RUB = URSSAF PLAFONNEE A PARTIR DE W_TABURSSAFPLAF
		IF INDEX(W_TABURSSAFPLAF,ENR_HISTORCUMUL<15,K>,1) # 0 THEN W_URSSAFPLAF = W_URSSAFPLAF + ENR_HISTORCUMUL<17,K>

		* RECHERCHE SI RUB = CSG / CRDS A PARTIR DE W_TABRUBCHARGE06
		IF INDEX(W_TABRUBCHARGE06,ENR_HISTORCUMUL<15,K>,1) # 0 AND W_CSG = 0 THEN W_CSG = W_CSG + ENR_HISTORCUMUL<17,K>

		* RECHERCHE SI RUB = TAXE SUR SALAIRE TOT DE W_TABRUBCHARGE05
		IF INDEX(W_TABRUBCHARGE05,ENR_HISTORCUMUL<15,K>,1) # 0 AND W_TAXETOT = 0 THEN W_TAXETOT = W_TAXETOT + ENR_HISTORCUMUL<17,K>

		* TAXE SUR SALAIRE TR1 + TR2
		IF W_TAXETOT > W_TABRUBCHARGE07<3> THEN
			W_TAXETR1 = W_TABRUBCHARGE07<3> - W_TABRUBCHARGE07<2>
			W_TAXETR2 = W_TAXETOT - W_TABRUBCHARGE07<3>
		END ELSE
			IF W_TAXETOT > W_TABRUBCHARGE07<2> THEN	
				W_TAXETR1 = W_TAXETOT - W_TABRUBCHARGE07<2>
				W_TAXETR2 = 0
			END
		END		


		*
		* URSSAF EXO SALARIE
		R = 1
		LOOP
			UNTIL W_TABRUBCHGEXO<1,R> = "" DO

			* URSSAF EXO TOTALITE (ATT 2)
			IF INDEX(W_TABRUBCHGEXO<2,R>,ENR_HISTORCUMUL<15,K>,1) # 0 THEN
			
				IF INDEX(W_URSSAFEXO<1>,W_TABRUBCHGEXO<1,R>,1) = 0 THEN 
					W_URSSAFEXO<1,-1> = W_TABRUBCHGEXO<1,R>
					W_URSSAFEXO<2,-1> = INT((ENR_HISTORCUMUL<17,K>/100) + 1/2)
					W_URSSAFEXO<3,-1> = ""
				END ELSE
					J = 1
					LOOP
						UNTIL W_URSSAFEXO<1,J> = W_TABRUBCHGEXO<1,R> OR W_URSSAFEXO<1,J> = "" DO
						J = J + 1
					REPEAT
					W_URSSAFEXO<2,J> = W_URSSAFEXO<2,J> + INT((ENR_HISTORCUMUL<17,K>/100) + 1/2)
					
				END	
				W_URSSAFPLAFEXO = W_URSSAFPLAFEXO + INT((ENR_HISTORCUMUL<17,K>/100) + 1/2)

				J = 1
				LOOP
					UNTIL W_TOTALURSSAFPART<1,J> = W_TABRUBCHGEXO<1,R> OR W_TOTALURSSAFPART<1,J> = "" DO
					J = J + 1
				REPEAT
				W_TOTALURSSAFPART<2,J> = W_TOTALURSSAFPART<2,J> + INT((ENR_HISTORCUMUL<17,K>/100)+1/2)

			END 

			* URSSAF EXO PLAFONNEE (ATT 3)
			IF INDEX(W_TABRUBCHGEXO<3,R>,ENR_HISTORCUMUL<15,K>,1) # 0 THEN
			
				IF INDEX(W_URSSAFEXO<1>,W_TABRUBCHGEXO<1,R>,1) = 0 THEN 
					W_URSSAFEXO<1,-1> = W_TABRUBCHGEXO<1,R>
					W_URSSAFEXO<2,-1> = ""
					W_URSSAFEXO<3,-1> = INT((ENR_HISTORCUMUL<17,K>/100) + 1/2)
				END ELSE
					J = 1
					LOOP
						UNTIL W_URSSAFEXO<1,J> = W_TABRUBCHGEXO<1,R> OR W_URSSAFEXO<1,J> = "" DO
						J = J + 1
					REPEAT
					W_URSSAFEXO<3,J> = W_URSSAFEXO<3,J> + INT((ENR_HISTORCUMUL<17,K>/100) + 1/2)
				END	
				W_URSSAFPLAFEXO = W_URSSAFPLAFEXO + INT((ENR_HISTORCUMUL<17,K>/100) + 1/2)

				J = 1
				LOOP
					UNTIL W_TOTALURSSAFPART<1,J> = W_TABRUBCHGEXO<1,R> OR W_TOTALURSSAFPART<1,J> = "" DO
					J = J + 1
				REPEAT
				W_TOTALURSSAFPART<3,J> = W_TOTALURSSAFPART<3,J> + INT((ENR_HISTORCUMUL<17,K>/100)+1/2)
			END 

			R = R + 1
		REPEAT

		*
		* RETRAITE SALARIE
		* PARCOURE L'ENSEMBLE DES ORGANISMES

		W_NBORG = DCOUNT(W_TABRETRAITE<1>,CHAR(253))

		FOR M = 1 TO W_NBORG

			* RETRAITE GENERALE
			*TRANCHE TOTALITE
			IF INDEX(W_TABRETRAITE<2,M>,ENR_HISTORCUMUL<15,K>,1) # 0 THEN 
				IF INDEX(W_RETRAITEGENE<1>,W_TABRETRAITE<1,M>,1) = 0 THEN 
					W_RETRAITEGENE<1,-1> = W_TABRETRAITE<1,M>
					W_RETRAITEGENE<2,-1> = ENR_HISTORCUMUL<17,K>
					W_RETRAITEGENE<3,-1> = 0
					W_RETRAITEGENE<4,-1> = W_TABRETRAITE<4,M>
					W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
					W_RETRAITEGENE<7,-1> = 0					
				END ELSE
					*W_RANGRET = INT(((INDEX(W_RETRAITEGENE<1>,W_TABRETRAITE<1,M>,1) - 1) / 9) + 1)

					W_RANGRET = INDEX(W_RETRAITEGENE<1>,W_TABRETRAITE<1,M>,1)
					W_TEMPINDEX=W_RETRAITEGENE<1>[1,W_RANGRET]
					W_RANGRET=DCOUNT(W_TEMPINDEX,CHAR(253))

					W_RETRAITEGENE<2,W_RANGRET> = ENR_HISTORCUMUL<17,K>
				END 
		
				* SI IRCANTEC OU CNRACL
				IF W_TABRETRAITE<8,M> = "I" THEN W_RETRAITETOTALITEIRCANTEC = W_RETRAITETOTALITEIRCANTEC + ENR_HISTORCUMUL<17,K>
				IF W_TABRETRAITE<8,M> = "C" THEN W_RETRAITETOTALITECNRACL = W_RETRAITETOTALITECNRACL + ENR_HISTORCUMUL<17,K>

				IF W_TABRETRAITE<1,M>[1,6] = ENR_CONTRAT<3> OR W_TABRETRAITE<1,M>[4,3] = "000" THEN 
					IF W_BASERETRAITEPRECTOT = 0 OR W_BASERETRAITEPRECTOT # ENR_HISTORCUMUL<17,K> THEN 
						W_TOTALRETRAITEGENETOTAL<1,M> = W_TOTALRETRAITEGENETOTAL<1,M> + INT((ENR_HISTORCUMUL<17,K>/100)+1/2)
					END
					W_BASERETRAITEPRECTOT = ENR_HISTORCUMUL<17,K>
				END
			END
			
			*TRANCHE A
			IF INDEX(W_TABRETRAITE<3,M>,ENR_HISTORCUMUL<15,K>,1) # 0 THEN 
				IF INDEX(W_RETRAITEGENE<1>,W_TABRETRAITE<1,M>,1) = 0 THEN 
					W_RETRAITEGENE<1,-1> = W_TABRETRAITE<1,M>
					W_RETRAITEGENE<2,-1> = 0
					W_RETRAITEGENE<3,-1> = ENR_HISTORCUMUL<17,K>
					W_RETRAITEGENE<4,-1> = W_TABRETRAITE<4,M>
					W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
					W_RETRAITEGENE<7,-1> = 0
				END ELSE
					*W_RANGRET = INT(((INDEX(W_RETRAITEGENE<1>,W_TABRETRAITE<1,M>,1) - 1) / 9) + 1)
					
					W_RANGRET = INDEX(W_RETRAITEGENE<1>,W_TABRETRAITE<1,M>,1)
					W_TEMPINDEX=W_RETRAITEGENE<1>[1,W_RANGRET]
					W_RANGRET=DCOUNT(W_TEMPINDEX,CHAR(253))
					
					W_RETRAITEGENE<3,W_RANGRET> = ENR_HISTORCUMUL<17,K>
				END
				
				* SI IRCANTEC OU CNRACL
				IF W_TABRETRAITE<8,M> = "I" THEN W_RETRAITEPLAFIRCANTEC = W_RETRAITEPLAFIRCANTEC + ENR_HISTORCUMUL<17,K>
				IF W_TABRETRAITE<8,M> = "C" THEN W_RETRAITEPLAFCNRACL = W_RETRAITEPLAFCNRACL + ENR_HISTORCUMUL<17,K>
				
				
				IF W_TABRETRAITE<1,M>[1,6] = ENR_CONTRAT<3> OR W_TABRETRAITE<1,M>[4,3] = "000" THEN 	
					IF W_BASERETRAITEPREC = 0 OR W_BASERETRAITEPREC # ENR_HISTORCUMUL<17,K> THEN 
						W_TOTALRETRAITEGENEPLAF<1,M> = W_TOTALRETRAITEGENEPLAF<1,M> + INT((ENR_HISTORCUMUL<17,K>/100)+1/2)
					END
					W_BASERETRAITEPREC = ENR_HISTORCUMUL<17,K>
				END
			END
			
			*TRANCHE B
			IF INDEX(W_TABRETRAITE<7,M>,ENR_HISTORCUMUL<15,K>,1) # 0 THEN 
				IF INDEX(W_RETRAITEGENE<1>,W_TABRETRAITE<1,M>,1) = 0 THEN 
					W_RETRAITEGENE<1,-1> = W_TABRETRAITE<1,M>
					W_RETRAITEGENE<2,-1> = 0
					W_RETRAITEGENE<3,-1> = 0
					W_RETRAITEGENE<4,-1> = W_TABRETRAITE<4,M>
					W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
					W_RETRAITEGENE<7,-1> = ENR_HISTORCUMUL<17,K>
					!!! Quelle erreur !
					W_RANGTB = DCOUNT(W_RETRAITEGENE<1>,CHAR(253))
				END ELSE
					*W_RANGRET = INT(((INDEX(W_RETRAITEGENE<1>,W_TABRETRAITE<1,M>,1) - 1) / 9) + 1)

					W_RANGRET = INDEX(W_RETRAITEGENE<1>,W_TABRETRAITE<1,M>,1)
					W_TEMPINDEX=W_RETRAITEGENE<1>[1,W_RANGRET]
					W_RANGRET=DCOUNT(W_TEMPINDEX,CHAR(253))

					W_RETRAITEGENE<7,W_RANGRET> = ENR_HISTORCUMUL<17,K>
					W_RANGTB = M
				END 
				W_RANGTB = M
				
				*VICTOR 02/10/2006
				IF W_TABRETRAITE<9,M> ="03" THEN
					W_RETRAITETB = W_RETRAITETB + ENR_HISTORCUMUL<17,K>
				END ELSE
					W_RETRAITETBCADRE = W_RETRAITETBCADRE + ENR_HISTORCUMUL<17,K>
				END
				*VICTOR DEBUG
				PRINT "AFFECTATION RETRAITE TB =":W_RETRAITETB:"  -  ":ENR_HISTORCUMUL<15,K>
				PRINT "AFFECTATION RETRAITE TB CADRE=":W_RETRAITETBCADRE:"  -  ":ENR_HISTORCUMUL<15,K>
				
				IF W_TABRETRAITE<1,M>[1,6] = ENR_CONTRAT<3> OR W_TABRETRAITE<1,M>[4,3] = "000" THEN 
					IF W_BASERETRAITEPRECTB = 0 OR W_BASERETRAITEPRECTB # ENR_HISTORCUMUL<17,K> THEN 
****						W_TOTALRETRAITEGENETB<1,M> = W_TOTALRETRAITEGENETB<1,M> + INT((ENR_HISTORCUMUL<17,K>/100)+1/2)
****						W_TOTALRETRAITEGENETB<1,M> = W_TOTALRETRAITEGENETB<1,M> + INT(((W_URSSAFTOT - W_URSSAFPLAF)/100)+1/2)
					END
****					W_BASERETRAITEPRECTB = ENR_HISTORCUMUL<17,K>
****					W_BASERETRAITEPRECTB = INT(((W_URSSAFTOT - W_URSSAFPLAF)/100)+1/2)
				END
			END
			
			
		NEXT M
			
	NEXT K
	
RETURN

***************************************************************
* 410101 -> IDENTIFICATION RETRAITE COMPL. (S41.G01.01)
***************************************************************
410101

**** RAJOUT GESTION HISTORCUMUL = "" - 25/02/05
	IF ENR_HISTORCUMUL = "" OR ENR_HISTORCUMUL<5> = 0 OR ENR_HISTORCUMUL<5> = "" OR W_RETRAITEGENE<1> = "" THEN 
		W_CHAINE = "S41.G01.01."
		ENR_DADSU<-1> = W_CHAINE:"001,'90000'"
		RETURN
	END

	W_CHAINE = "S41.G01.01."
	
	* RECHERCHE 	
	W_NBRETRAITE = DCOUNT(W_RETRAITEGENE<1>,CHAR(253))
	FOR N = 1 TO W_NBRETRAITE
		ENR_DADSU<-1> = W_CHAINE:"001,'":W_RETRAITEGENE<4,N>:"'"
		IF ENR_CONTRAT<82> = "" THEN
			ENR_DADSU<-1> = W_CHAINE:"002,'":W_RETRAITEGENE<5,N>:"'"
		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"002,'":ENR_CONTRAT<82>:"'"
		END

		IF W_RETRAITEGENE<2,N> # W_URSSAFTOT AND W_RETRAITEGENE<2,N> # "0" AND W_RETRAITEGENE<2,N> # "" THEN
			IF INT(W_RETRAITEGENE<2,N>/100) # INT(W_URSSAFTOT/100) THEN
				ENR_ERREURDADSU<-1> = W_ANCIENAIDANT:" | ":W_NOMAIDANT:" | DIFF. ENTRE LA BASE S.S TOT (":W_URSSAFTOT/100:") ET LA BASE RET. TOT (":W_RETRAITEGENE<2,N>/100:")"
				W_NBERREURDADSU = W_NBERREURDADSU + 1
			END
		END
		IF W_RETRAITEGENE<3,N> # W_URSSAFPLAF AND W_RETRAITEGENE<3,N> # "0" AND W_RETRAITEGENE<3,N> # "" THEN
			IF INT(W_RETRAITEGENE<3,N>/100) # INT(W_URSSAFPLAF/100) THEN
				ENR_ERREURDADSU<-1> = W_ANCIENAIDANT:" | ":W_NOMAIDANT:" | DIFF ENTRE LA BASE S.S PLAF (":W_URSSAFPLAF/100:") ET LA BASE RET. PLAF (":W_RETRAITEGENE<3,N>/100:")"
				W_NBERREURDADSU = W_NBERREURDADSU + 1
			END
		END
	NEXT N

RETURN

***************************************************************
* 410106 -> BASE EXO URSSAF (S41.G01.06)
***************************************************************
410106

**** RAJOUT GESTION HISTORCUMUL = "" - 25/02/05
	W_CUMULCODEEXO = ""
	W_CUMULPLAFEXO = 0
	W_CUMULTOTEXO = 0
	IF ENR_HISTORCUMUL = "" OR ENR_HISTORCUMUL<5> = 0 OR ENR_HISTORCUMUL<5> = "" THEN RETURN	

	W_CHAINE = "S41.G01.06."

	FOR Q = 1 TO DCOUNT(W_URSSAFEXO<1>,CHAR(253))
		IF Q > 3 THEN EXIT
		W_CUMULCODEEXO = W_CUMULCODEEXO:W_URSSAFEXO<1,Q>
		
		W_CUMULPLAFEXO = W_CUMULPLAFEXO + W_URSSAFEXO<2,Q>
		W_CUMULTOTEXO = W_CUMULTOTEXO + W_URSSAFEXO<3,Q>
	NEXT Q

	IF W_CUMULTOTEXO = 0 OR W_CUMULPLAFEXO = 0 THEN
		IF W_CUMULPLAFEXO = 0 AND W_CUMULTOTEXO # 0 THEN W_CUMULPLAFEXO = W_CUMULTOTEXO		
		IF W_CUMULPLAFEXO # 0 AND W_CUMULTOTEXO = 0 THEN W_CUMULTOTEXO = W_CUMULPLAFEXO		
	END

	IF W_CUMULCODEEXO # "" AND W_CUMULTOTEXO # 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"001,'":W_CUMULCODEEXO:"'"
		IF W_CUMULTOTEXO > 0 THEN
			ENR_DADSU<-1> = W_CHAINE:"002.001,'":W_CUMULTOTEXO:"'"
		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"002.001,'":W_CUMULTOTEXO*-1:"'"
			ENR_DADSU<-1> = W_CHAINE:"002.002,'N'"
		END
		IF W_CUMULTOTEXO > 0 THEN
			ENR_DADSU<-1> = W_CHAINE:"003.001,'":W_CUMULPLAFEXO:"'"
		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"003.001,'":W_CUMULPLAFEXO*-1:"'"
			ENR_DADSU<-1> = W_CHAINE:"003.002,'N'"
		END
	END

**  	   IF W_URSSAFEXO<1,Q> # "" AND W_URSSAFEXO<1,Q> # " " THEN
**		ENR_DADSU<-1> = W_CHAINE:"001,'":W_URSSAFEXO<1,Q>:"'"
		
**		IF W_URSSAFEXO<2,Q> # "" AND W_URSSAFEXO<2,Q> # 0 THEN
**			ENR_DADSU<-1> = W_CHAINE:"002.001,'":INT((W_URSSAFEXO<2,Q>/100)+1/2):"'"
**			IF W_URSSAFEXO<2,Q> < 0 THEN ENR_DADSU<-1> = W_CHAINE:"002.002,'N'"				
**			ENR_DADSU<-1> = W_CHAINE:"003.001,'":INT((W_URSSAFEXO<2,Q>/100)+1/2):"'"
**			IF W_URSSAFEXO<2,Q> < 0 THEN ENR_DADSU<-1> = W_CHAINE:"003.002,'N'"				
**		END

**		IF W_URSSAFEXO<3,Q> # "" AND W_URSSAFEXO<3,Q> # 0 THEN
**			ENR_DADSU<-1> = W_CHAINE:"002.001,'":INT((W_URSSAFEXO<3,Q>/100)+1/2):"'"
**			IF W_URSSAFEXO<3,Q> < 0 THEN ENR_DADSU<-1> = W_CHAINE:"002.002,'N'"				
**			ENR_DADSU<-1> = W_CHAINE:"003.001,'":INT((W_URSSAFEXO<3,Q>/100)+1/2):"'"
**			IF W_URSSAFEXO<3,Q> < 0 THEN ENR_DADSU<-1> = W_CHAINE:"003.002,'N'"				
**		END
**	   END		
**	NEXT Q 

RETURN

***************************************************************
* 410200 -> ELECTION PRUD'HOMALES (S41.G02.00)
***************************************************************
410200

	W_CHAINE = "S41.G02.00."

	IF ENR_CONTRAT<8> > ICONV(W_FINPERIODE,"D4/") OR ENR_CONTRAT<8> = "" THEN
		ENR_DADSU<-1> = W_CHAINE:"008,'01'"
		IF ENR_PRUDCASPARTICULIERS<1> # "" THEN
			ENR_DADSU<-1> = W_CHAINE:"009,'0":ENR_PRUDCASPARTICULIERS<1>:"'"
		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"009,'01'"
		END

		IF ENR_PRUDCASPARTICULIERS<2> # "" THEN
			ENR_DADSU<-1> = W_CHAINE:"010,'0":ENR_PRUDCASPARTICULIERS<2>:"'"
		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"010,'04'"
		END		
		
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"008,'02'"
	END


RETURN

***************************************************************
* 420100 -> RETRAITE COMPLEMENTAIRE IRCANTEC (S42.G01.00)
***************************************************************
420100

	IF INT((W_RETRAITETOTALITEIRCANTEC/100)+1/2) = 0 AND INT((W_RETRAITEPLAFIRCANTEC/100)+1/2) = 0 THEN RETURN

	W_DUREEWIRCANTEC = 0	
	W_NBMOISPRESENCE = 0

	W_CHAINE = "S42.G01.00."
	
	ENR_DADSU<-1> = W_CHAINE:"001,'07'"

	W_NBMOISPRESENCE = (W_FINACTIVITECONTRAT[4,2] - W_DEBUTACTIVITECONTRAT[4,2]) + 1
	
	ENR_DADSU<-1> = W_CHAINE:"002,'":W_NBMOISPRESENCE:"'"
	
	W_DUREEWIRCANTEC = INT((W_DUREEW * 12 / 52)+1/2)

	ENR_DADSU<-1> = W_CHAINE:"004,'":W_DUREEWIRCANTEC:"'"
	*DEB-Victor 22/09/2006
	*ENR_DADSU<-1> = W_CHAINE:"006,'03'"
	
	* SI IRCANTEC TOTALITE OU PLAF = 0 ALORS VALORISE SUR AUTRE VALEUR
	IF W_RETRAITETOTALITEIRCANTEC # 0 AND W_RETRAITEPLAFIRCANTEC = 0 THEN W_RETRAITEPLAFIRCANTEC = W_RETRAITETOTALITEIRCANTEC 
	IF W_RETRAITETOTALITEIRCANTEC = 0 AND W_RETRAITEPLAFIRCANTEC # 0 THEN W_RETRAITETOTALITEIRCANTEC = W_RETRAITEPLAFIRCANTEC 

	IF W_RETRAITETOTALITEIRCANTEC >= 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"007.001,'":W_RETRAITETOTALITEIRCANTEC:"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"007.001,'":(W_RETRAITETOTALITEIRCANTEC * -1):"'"
		ENR_DADSU<-1> = W_CHAINE:"007.002,'N'"
	END
	IF W_RETRAITEPLAFIRCANTEC >= 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"008.001,'":W_RETRAITEPLAFIRCANTEC:"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"008.001,'":(W_RETRAITEPLAFIRCANTEC * -1):"'"
		ENR_DADSU<-1> = W_CHAINE:"008.002,'N'"
	END

RETURN

***************************************************************
* 440100 -> RETRAITE COMPLEMENTAIRE (S44.G01.00)
***************************************************************
440100

**** RAJOUT GESTION HISTORCUMUL = "" - 25/02/05
******	IF ENR_HISTORCUMUL = "" OR ENR_HISTORCUMUL<2> = 0 OR ENR_HISTORCUMUL<2> = "" OR W_RETRAITEGENE<1> = "" THEN RETURN
	IF ENR_HISTORCUMUL = "" OR W_RETRAITEGENE<1> = "" THEN RETURN
	IF ENR_HISTORCUMUL = "" OR ENR_HISTORCUMUL<5> = 0 OR ENR_HISTORCUMUL<5> = "" OR W_RETRAITEGENE<1> = "" THEN RETURN

	W_CHAINE = "S44.G01.00."

	ENR_DADSU<-1> = W_CHAINE:"001,'01'"

	* NOMBRE HEURES TRAVAILLEES
	IF ENR_HISTORCUMUL<2> = "" THEN ENR_HISTORCUMUL<2> = "0"

	ENR_DADSU<-1> = W_CHAINE:"002,'":ENR_HISTORCUMUL<2>:"'"
RETURN

***************************************************************
* 460100 -> PERIODE INACTIVITE (S46.G01.00)
***************************************************************
460100

	EXECUTE 'SELECT ABSENCESAIDANT AVEC CodeAidant = "':W_ANCIENAIDANT[1,5]:'" AND AVEC NumMotifAidant >= "01" AND <= "06" AND AVEC FinAbsAidant >= "':ICONV(W_DEBUTACTIVITECONTRAT,"D4/"):'" AND AVEC DebAbsAidant <= "':ICONV(W_FINACTIVITECONTRAT,"D4/"):'" PAR DebAbsAidant'
	EXECUTE 'SAUVE-LISTE LISTEABSAIDANT'
	EXECUTE "LISTE LISTEABSAIDANT" RETURNING W_MSG

	IF W_MSG<1> = 209 THEN RETURN

	SELECT F.ABSENCESAIDANT TO LISTEABSAIDANT

	W_FINABS = 0 
	LOOP
		READNEXT CLEABS FROM LISTEABSAIDANT ELSE W_FINABS = 1
		UNTIL W_FINABS = 1 DO

		W_CHAINE = "S46.G01.00."

		READ ENR_ABSENCESAIDANT FROM F.ABSENCESAIDANT,CLEABS ELSE ENR_ABSENCESAIDANT = ""
		
		IF INT(CLEABS[8,5]) < INT(ICONV(W_DEBUTACTIVITECONTRAT,"D4/")) OR INT(ENR_ABSENCESAIDANT<2>) > INT(ICONV(W_FINACTIVITECONTRAT,"D4/")) THEN 
			* ...
		END ELSE
			IF CLEABS[6,2] = "01" THEN ENR_DADSU<-1> = W_CHAINE:"001,'09'"
			
			*DEB-Victor 22/09/2006
			IF INT((W_RETRAITETOTALITEIRCANTEC/100)+1/2) = 0 AND INT((W_RETRAITEPLAFIRCANTEC/100)+1/2) = 0 THEN
				IF ENR_CIVILAIDANT<16> = "M" THEN
					IF CLEABS[6,2] = "02" THEN ENR_DADSU<-1> = W_CHAINE:"001,'14'"
				END ELSE
					IF CLEABS[6,2] = "02" THEN ENR_DADSU<-1> = W_CHAINE:"001,'13'"
				END
			END ELSE
				*CAISSE IRCANTEC
				IF CLEABS[6,2] = "02" THEN ENR_DADSU<-1> = W_CHAINE:"001,'13'"
			END
			*FIN-Victor 22/09/2006
			
			IF CLEABS[6,2] = "03" THEN ENR_DADSU<-1> = W_CHAINE:"001,'10'"
			IF CLEABS[6,2] = "04" THEN ENR_DADSU<-1> = W_CHAINE:"001,'04'"
			IF CLEABS[6,2] = "05" THEN ENR_DADSU<-1> = W_CHAINE:"001,'11'"
			IF CLEABS[6,2] = "06" THEN ENR_DADSU<-1> = W_CHAINE:"001,'08'"
	
			IF INT(CLEABS[8,5]) < INT(ICONV(W_DEBUTPERIODE,"D4/")) THEN
				W_DEBUTABS = ICONV(W_DEBUTPERIODE,"D4/")
			END ELSE
				W_DEBUTABS = CLEABS[8,5]
			END

			IF INT(ENR_ABSENCESAIDANT<2>) > INT(ICONV(W_FINPERIODE,"D4/")) THEN
				W_FINABS = ICONV(W_FINPERIODE,"D4/")
			END ELSE
				W_FINABS = ENR_ABSENCESAIDANT<2>
			END

			ENR_DADSU<-1> = W_CHAINE:"002,'":CONVERT("/","",OCONV(W_DEBUTABS,"D4/"))[1,4]:"'"
			ENR_DADSU<-1> = W_CHAINE:"003,'":CONVERT("/","",OCONV(W_FINABS,"D4/"))[1,4]:"'"

			IF OCONV(W_DEBUTABS,"D4/")[4,2] = "12" AND ENR_ASSOCIATION<25> = "1" THEN
				ENR_DADSU<-1> = W_CHAINE:"004,'01'"			
			END

			* DUREE ABSENCE
			GOSUB 460102
		END
	REPEAT
	

RETURN


***************************************************************
* 460101 -> DUREE ABSENCE (S46.G01.02)
***************************************************************
460102

	W_CHAINE = "S46.G01.02."

	ENR_DADSU<-1> = W_CHAINE:"001,'03'"
	ENR_DADSU<-1> = W_CHAINE:"002,'":(W_FINABS - W_DEBUTABS + 1)*100:"'"

RETURN

***************************************************************
* 700100 -> GESTION HONORAIRES (S70.G01.00)
***************************************************************
700100

EXECUTE 'EFFACER-LISTE LISTETDSHONO'

EXECUTE 'SELECT TDSHONORAIRES AVEC @ID = "':W_ANNEE:W_CODEENTITE:']" AND AVEC 32 = "':W_TABETAB<1,A>:'" OR = ""'
EXECUTE 'SAUVE-LISTE LISTETDSHONO'
EXECUTE "LISTE LISTETDSHONO" RETURNING W_MSGHONO

IF W_MSGHONO<1> = 209 THEN RETURN

SELECT F.TDSHONORAIRES TO LISTETDSHONO

W_FINHONO = 0
LOOP
	READNEXT CLEHONO FROM LISTETDSHONO ELSE W_FINHONO = 1
	UNTIL W_FINHONO = 1 DO

	READ ENR_TDSHONORAIRES FROM F.TDSHONORAIRES,CLEHONO ELSE ENR_TDSHONORAIRES = ""

	W_CHAINE = "S70.G01.00."

	* RAISON SOCIALE / NOM + PRENOM
	IF ENR_TDSHONORAIRES<2> = "O" THEN 
		ENR_DADSU<-1> = W_CHAINE:"001,'":TRIM(ENR_TDSHONORAIRES<1>):"'"

		* SIRET + NIC
		ENR_DADSU<-1> = W_CHAINE:"003.001,'":ENR_TDSHONORAIRES<3>[1,9]:"'"
		ENR_DADSU<-1> = W_CHAINE:"003.002,'":ENR_TDSHONORAIRES<3>[10,5]:"'"
	END ELSE 
		ENR_DADSU<-1> = W_CHAINE:"002.001,'":TRIM(ENR_TDSHONORAIRES<1>):"'"
		IF TRIM(ENR_TDSHONORAIRES<31>) # "" THEN 
			ENR_DADSU<-1> = W_CHAINE:"002.002,'":TRIM(ENR_TDSHONORAIRES<31>):"'"
		END ELSE 
			ENR_DADSU<-1> = W_CHAINE:"002.002,'x'"
		END		
	END

	* ADRESSE
	IF TRIM(ENR_TDSHONORAIRES<8>) # "" THEN ENR_DADSU<-1> = W_CHAINE:"004.001,'":ENR_TDSHONORAIRES<8>:"'"
	IF ENR_TDSHONORAIRES<4> # "" THEN ENR_DADSU<-1> = W_CHAINE:"004.003,'":ENR_TDSHONORAIRES<4>:"'"
	IF ENR_TDSHONORAIRES<5> # "" THEN 
		IF ENR_TDSHONORAIRES<5>[1,1] = "B" OR ENR_TDSHONORAIRES<5>[1,1] = "T" THEN ENR_DADSU<-1> = W_CHAINE:"004.004,'":ENR_TDSHONORAIRES<5>[1,1]:"'"
	END
	IF ENR_TDSHONORAIRES<6> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"004.006,'":ENR_TDSHONORAIRES<6>:" ":ENR_TDSHONORAIRES<7>:"'"
	END ELSE
		IF ENR_TDSHONORAIRES<7> # "" THEN ENR_DADSU<-1> = W_CHAINE:"004.006,'":ENR_TDSHONORAIRES<7>:"'"
	END
	ENR_DADSU<-1> = W_CHAINE:"004.010,'":ENR_TDSHONORAIRES<9>:"'"
	ENR_DADSU<-1> = W_CHAINE:"004.012,'":ENR_TDSHONORAIRES<10>:"'"

	* PROFESSION / QUALITE
	IF TRIM(ENR_TDSHONORAIRES<33>) # "" THEN
		ENR_DADSU<-1> = W_CHAINE:"005,'":ENR_TDSHONORAIRES<33>:"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"005,'":ENR_TDSHONORAIRES<1>:"'"	
	END
	
	* TYPE AVANTAGE EN NATURE
	IF ENR_TDSHONORAIRES<26> = "N" THEN ENR_DADSU<-1> = W_CHAINE:"006,'":ENR_TDSHONORAIRES<26>:"'"
	IF ENR_TDSHONORAIRES<26> = "L" THEN ENR_DADSU<-1> = W_CHAINE:"007,'":ENR_TDSHONORAIRES<26>:"'"
	IF ENR_TDSHONORAIRES<26> = "V" THEN ENR_DADSU<-1> = W_CHAINE:"008,'":ENR_TDSHONORAIRES<26>:"'"
	IF ENR_TDSHONORAIRES<26> = "A" THEN ENR_DADSU<-1> = W_CHAINE:"009,'":ENR_TDSHONORAIRES<26>:"'"

	* TYPE INDEMNITES
	IF ENR_TDSHONORAIRES<28> # "" AND ENR_TDSHONORAIRES<28> # 0 THEN ENR_DADSU<-1> = W_CHAINE:"010,'":ENR_TDSHONORAIRES<28>:"'"

	* TAUX RETENU
	IF ENR_TDSHONORAIRES<30> # "" AND ENR_TDSHONORAIRES<30> # 0 THEN ENR_DADSU<-1> = W_CHAINE:"011,'":ENR_TDSHONORAIRES<30>:"'"

	* TVA DROITS AUTEUR
	IF ENR_TDSHONORAIRES<29> # "" AND ENR_TDSHONORAIRES<29> # 0 THEN ENR_DADSU<-1> = W_CHAINE:"013,'":ENR_TDSHONORAIRES<29>:"'"

	* SIRET ETABLISSEMENT
	READ ENR_ETABLISSEMENTHONORAIRE FROM F.ETABLISSEMENT,ENR_TDSHONORAIRES<32> ELSE ENR_ETABLISSEMENTHONORAIRE = ""
	IF ENR_ETABLISSEMENTHONORAIRE # "" THEN
		ENR_DADSU<-1> = W_CHAINE:"014,'":ENR_ETABLISSEMENTHONORAIRE<14>[LEN(ENR_ETABLISSEMENTHONORAIRE<14>)-4,5]:"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"014,'":W_TABETAB<4,1>:"'"
	END

	* REMUNERATION HONORAIRES
	GOSUB 700101
REPEAT

RETURN

***************************************************************
* 700101 -> REMUNERATION HONORAIRES (S70.G01.01)
***************************************************************
700101

	W_CHAINE = "S70.G01.01."

	FOR P = 16 TO 27

		IF P = 16 THEN W_CODETDSHONORAIRES = "01"
		IF P = 17 THEN W_CODETDSHONORAIRES = "02"
		IF P = 18 THEN W_CODETDSHONORAIRES = "03"
		IF P = 19 THEN W_CODETDSHONORAIRES = "04"
		IF P = 20 THEN W_CODETDSHONORAIRES = "05"
		IF P = 21 THEN W_CODETDSHONORAIRES = "06"
		IF P = 22 THEN W_CODETDSHONORAIRES = "07"
		IF P = 23 THEN W_CODETDSHONORAIRES = "08"
		IF P = 24 THEN W_CODETDSHONORAIRES = "11"
		IF P = 25 THEN W_CODETDSHONORAIRES = "10"
		IF P = 27 THEN W_CODETDSHONORAIRES = "09"

		IF ENR_TDSHONORAIRES<P> # "" AND ENR_TDSHONORAIRES<P> # "0" AND P # "26" THEN
			ENR_DADSU<-1> = W_CHAINE:"001,'":W_CODETDSHONORAIRES:"'"
		
			ENR_DADSU<-1> = W_CHAINE:"002,'":ENR_TDSHONORAIRES<P>:"'"
			W_TOTALHONORAIRES = W_TOTALHONORAIRES + ENR_TDSHONORAIRES<P>
		END
	NEXT P 

RETURN

***************************************************************
* 800100 -> GESTION ETABLISSEMENT (S80.G01.00)
***************************************************************
800100

	W_SIRETUTIL = ""

	W_CHAINE = "S80.G01.00."

**	M = 1
**	LOOP
**		UNTIL W_TABETAB<1,M> = "" DO

**		IF W_TABETAB<10,M> = "1" THEN
**			IF INDEX(W_SIRETUTIL,W_TABETAB<4,M>,1) = 0 THEN 
**				W_SIRETUTIL<-1> = W_TABETAB<4,M>
**				GOSUB 8001001
**			END
**		END

**		M = M + 1
**	REPEAT

	M = A
	GOSUB 8001001
RETURN


***************************************************************
* 8001001 -> TRAITEMENT ETABLISSEMENT (S80.G01.00)
***************************************************************
8001001

	READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,W_TABETAB<1,M> ELSE ENR_ETABLISSEMENT = ""
	READ ENR_ACTIVITES FROM F.ACTIVITES,W_CODEENTITE:"001" ELSE ENR_ACTIVITES = ""

	ENR_DADSU<-1> = W_CHAINE:"001.001,'":ENR_ASSOCIATION<14>:"'"

	ENR_DADSU<-1> = W_CHAINE:"001.002,'":W_TABETAB<4,M>:"'"
	
	IF ENR_ETABLISSEMENT<8> = "" AND ENR_ASSOCIATION<8> # "" THEN ENR_ETABLISSEMENT<8> = ENR_ASSOCIATION<8>
	IF ENR_ETABLISSEMENT<9> = "" AND ENR_ASSOCIATION<9> # "" THEN ENR_ETABLISSEMENT<9> = ENR_ASSOCIATION<9>


	* GESTION ADRESSE ETABLISSEMENT
	IF ENR_ETABLISSEMENT<2> # ENR_ASSOCIATION<2> THEN ENR_DADSU<-1> = W_CHAINE:"002,'":ENR_ETABLISSEMENT<2>:"'"

	IF ENR_ETABLISSEMENT<7> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"003.001,'":ENR_ETABLISSEMENT<7>:"'"
	END

	IF ENR_ETABLISSEMENT<3> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"003.003,'":ENR_ETABLISSEMENT<3>:"'"
	END	

	IF ENR_ETABLISSEMENT<4> # "" THEN
		IF ENR_ETABLISSEMENT<4>[1,1] = "B" OR ENR_ETABLISSEMENT<4>[1,1] = "T" THEN 
			ENR_DADSU<-1> = W_CHAINE:"003.004,'":ENR_ETABLISSEMENT<4>[1,1]:"'"
		END
	END
		
	IF ENR_ETABLISSEMENT<5> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"003.006,'":ENR_ETABLISSEMENT<5>:" ":ENR_ETABLISSEMENT<6>:"'"
	END ELSE	
		IF ENR_ETABLISSEMENT<6> # "" THEN
			ENR_DADSU<-1> = W_CHAINE:"003.006,'":ENR_ETABLISSEMENT<6>:"'"
		END
	END	
	
	IF ENR_ETABLISSEMENT<9> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"003.009,'":ENR_ETABLISSEMENT<9>:"'"
	END

	IF ENR_ETABLISSEMENT<8> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"003.010,'":ENR_ETABLISSEMENT<8>:"'"
	END

	IF ENR_ETABLISSEMENT<9> # "" THEN 
		ENR_DADSU<-1> = W_CHAINE:"003.012,'":ENR_ETABLISSEMENT<9>:"'"
	END

	* EFFECTIF A LA FIN DE PERIODE
	IF ENR_ASSOCIATION<25> = 0 THEN
		W_RECH = W_ANNEE:"12"
	END ELSE
		W_RECH = W_ANNEE:"11"
	END

	W_RANGEFFETAB = 0
	W_RANGEFFETAB = INT(((INDEX(ENR_ETABLISSEMENT<19>,W_RECH,1) - 1) / 6) + 1)
	IF W_RANGEFFETAB = 0 THEN W_RANGEFFETAB = 1
	ENR_DADSU<-1> = W_CHAINE:"004.001,'":INT((ENR_ETABLISSEMENT<17,W_RANGEFFETAB>/100)+1/2):"'"

	IF ENR_ACTIVITES<11> = "1" THEN 
		ENR_DADSU<-1> = W_CHAINE:"005,'01'"		
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"005,'02'"
	END

	ENR_DADSU<-1> = W_CHAINE:"006,'":ENR_ETABLISSEMENT<15>:"'"
	ENR_DADSU<-1> = W_CHAINE:"007,'04'"
RETURN

***************************************************************
* 900100 -> GESTION TOTAL ENVOI (S90.G01.00)
***************************************************************
900100

	W_CHAINE = "S90.G01.00."

	ENR_DADSU<-1> = W_CHAINE:"001,'":DCOUNT(ENR_DADSU,CHAR(254))+2:"'"
****	ENR_DADSU<-1> = W_CHAINE:"002,'1'"
	ENR_DADSU<-1> = W_CHAINE:"002,'":A-1:"'"
RETURN



***************************************************************
* 999999 -> GESTION DES CONVERT
***************************************************************
999999

	FOR Z = 1 TO LEN(W_TXTACONVERTIR)

		IF Z > LEN(W_TXTACONVERTIR) THEN EXIT

		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 33 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 38 THEN 
			W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
			Z = Z - 1
		END
		IF SEQ(W_TXTACONVERTIR[Z,1]) = 39 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:" ":W_TXTACONVERTIR[Z+1,999]
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 40 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 44 THEN
			W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
			Z = Z - 1
		END
		IF SEQ(W_TXTACONVERTIR[Z,1]) = 45 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:" ":W_TXTACONVERTIR[Z+1,999]
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 46 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 47 THEN 
			W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
			Z = Z - 1
		END
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 91 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 96 THEN 
			W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
			Z = Z - 1
		END
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 123 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 159 THEN 
			W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
			Z = Z - 1
		END
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 161 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 191 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:" ":W_TXTACONVERTIR[Z+1,999]
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 208 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 209 THEN 
			W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
			Z = Z - 1
		END
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 215 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 216 THEN 
			W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
			Z = Z - 1
		END
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 222 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 223 THEN 
			W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
			Z = Z - 1
		END

		* A
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 192 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 198 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:"A":W_TXTACONVERTIR[Z+1,999]
		* C
		IF SEQ(W_TXTACONVERTIR[Z,1]) = 199 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:"C":W_TXTACONVERTIR[Z+1,999]
		* E
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 200 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 203 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:"E":W_TXTACONVERTIR[Z+1,999]
		* I
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 204 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 207 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:"I":W_TXTACONVERTIR[Z+1,999]
		* O
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 210 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 214 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:"O":W_TXTACONVERTIR[Z+1,999]
		* U
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 217 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 220 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:"U":W_TXTACONVERTIR[Z+1,999]
		* Y
		IF SEQ(W_TXTACONVERTIR[Z,1]) = 221 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:"Y":W_TXTACONVERTIR[Z+1,999]		
	NEXT Z

	W_TXTACONVERTIR = TRIM(W_TXTACONVERTIR)

RETURN
