***************************************************************
* GENERATION DU FICHIER DE DECLARATIONS DES SALAIRES          *
* DADS-U  = DADS-TDS + DADS-CRC                               *
*                                                             *
* NOVEMBRE 04                                        STEPHANE *
* NOVEMBRE 07 										 MICHAEL  *
* JANVIER  09/2006									 MATTHIEU *
***************************************************************


* I				*******************************
* IM
* IMP				    A LIRE AVANT TOUTE MODIF 
* IMPO
* IMPOR
* IMPORT
* IMPORTA
* IMPORTANT

* IMPORTANT : Toute modif des S41 a S46 (declarations salaris en gnral)
* sera a rpercuter en procdure 410100000000 pour salaris entrs APRES le 30/11/Exercice si dcalage de paie ! 

* IMPORTANT
* IMPORTAN
* IMPORTA
* IMPORT
* IMPOR
* IMPO
* IMP
* IM
* I				*******************************


***************************************************************
* 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)
* 430100  -> RETRAITE COMPLEMENTAIRE CNRACL     (S43.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)
* 8062    -> Traitement contributions formation (S80.G62.xx)
* 900100  -> GESTION TOTAL ENVOI		(S90.G01.00)
* 410100000000  : Si decalage de paie, gestion des dclarations prudhommales pour salaris 
* 			entrs APRES le 30/11 et presents au dernier jour du mois !!! 


***************************************************************
* 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 "","TDSRETRAITE" 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
* Modif Guillaume 18/11/2009 DA9202 : Gestion du pays dans l'tat civil et sur la DADSU
OPEN "","PAYS" TO F.PAYS 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
OPEN "","TDSCNRACL" TO F.TDSCNRACL ELSE NULL

* Michael, le 29/11/2007 : 
OPEN "", "PROFIL" TO F.PROFIL ELSE STOP

* Ajout Guillaume 12/11/08
OPEN "", "CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE STOP
READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE, "1" 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]

W_DERNVENDREDIMOIS = "0"
***************************************************************
* 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 = ""

W_TABRETRAITERAPPORT=""

********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> = ""
	* Michael le 20/11 : ne sers a rien ! par contre, pourrait permettre de detecter si on a trouve au moins un salari sur cet etab ...
	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>
	* Michael, le 20/11/07 : Ajout dans le tableau des infos concernant les cotisations apprentissage et formation 
	* Att 3 : base taxe apprentissage
	W_TABETAB<12,W_RANGETAB> = ENR_TDSTARIFICATIONAT<3>
	* Att 4 : Montant rem. CDD
	W_TABETAB<13,W_RANGETAB> = ENR_TDSTARIFICATIONAT<4>
	* Att 5 : Base form.  pro. continue
	W_TABETAB<14,W_RANGETAB> = ENR_TDSTARIFICATIONAT<5>

	* Fin modif 20/11/07
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
	W_TABRUBCHARGE<CLERUBCHARGE,4> = ENR_TRANCHE<11>

	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>
		   * Nb : W_TABRUBCHARGE07<1> n'est JAMAIS utilis !!!
		   * S'il devait l'etre, penser a modifier la gestion de TDSCASPARTICULIERS !!!
		   W_TABRUBCHARGE07<1,-1> = CLERUBCHARGE
		   W_TABRUBCHARGE07<2,-1> = ENR_TRANCHE<4>
		   W_TABRUBCHARGE07<3,-1> = ENR_TRANCHE<5>
		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'
EXECUTE 'SELECT TDSRETRAITE AVEC TypeOrgDadsU = "03" OR = "04" AND AVEC CodeOrgDadsU # "" AND AVEC Asso = "':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))
	W_NBRUB = DCOUNT(ENR_REGROUPBRC<1>,CHAR(253))
	FOR I = 1 TO W_NBRUB
		READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_REGROUPBRC<1,I> ELSE ENR_RUBCHARGE = ""
		READ ENR_TRANCHE FROM F.TRANCHE,ENR_RUBCHARGE<2> ELSE ENR_TRANCHE = ""

*		READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_REGROUPBRC<2,I> ELSE ENR_RUBCHARGE = ""

		
		* 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<1,I>
		* TRANCHE A
		IF ENR_TRANCHE<10> = "02" THEN W_TABRETRAITE<3,J,-1> = ENR_REGROUPBRC<1,I>
		* TRANCHE B
		IF ENR_TRANCHE<10> = "03" THEN W_TABRETRAITE<7,J,-1> = ENR_REGROUPBRC<1,I>
		
*		IF ENR_TRANCHE<10> = "01" THEN W_TABRETRAITE<2,J,-1> = ENR_REGROUPBRC<2,I>		
*		IF ENR_TRANCHE<10> = "02" THEN W_TABRETRAITE<3,J,-1> = ENR_REGROUPBRC<2,I>
*		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>
		W_TABRETRAITE<10,J> = ENR_ORGANISMESOCIAL<22>
		W_TABRETRAITE<11,J> = ENR_ORGANISMESOCIAL<22>

	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

* Michael, le 23/11/07 : Application des tranches de taxe sur salaire si presentes danse fichier TDSCASPARTICULIERS..
* Nb : W_TABRUBCHARGE07<1> n'est JAMAIS utilis !!!
IF ENR_TDSCASPARTICULIERSDADSU<4> = W_ANNEE THEN
	*W_TABRUBCHARGE07<1,-1> = CLERUBCHARGE
	W_TABRUBCHARGE07<2> = ENR_TDSCASPARTICULIERSDADSU<5>
	W_TABRUBCHARGE07<3> = ENR_TDSCASPARTICULIERSDADSU<6>
	
END ELSE
	IF INT(W_TABRUBCHARGE07<2>) # 0 AND INT(W_TABRUBCHARGE07<3>) # 0 THEN
		ENR_TDSCASPARTICULIERSDADSU<4> = W_ANNEE
		ENR_TDSCASPARTICULIERSDADSU<5> = W_TABRUBCHARGE07<2>
		ENR_TDSCASPARTICULIERSDADSU<6> = W_TABRUBCHARGE07<3>
		WRITE ENR_TDSCASPARTICULIERSDADSU ON F.TDSCASPARTICULIERSDADSU,"1"
	END ELSE
	* On laisse les choses telles quelles :
	* En toute logique, l'utilisateur devrait detecter une anomalie, la corriger, puis relancer
	* le traitement, ce qui resoudrait le pb !!! 
	END
END

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

  
  * SELECTIONNE LES CONTRATS ACTIFS SUR LA PERIODE DADS
  IF ENR_ASSOCIATION<25> = "1" THEN 
	* Michael, le 07/12/07 : Anne d'adoption du dcalage  de paie : 
	IF ENR_ASSOCIATION<48> = W_ANNEE THEN
		W_DEBUTPERIODE = "01/01/":W_ANNEE
		W_MOISDEBUTPERIODE = W_ANNEE:"01"
	END ELSE
		W_DEBUTPERIODE = "01/12/":W_ANNEE-1
		W_MOISDEBUTPERIODE = W_ANNEE-1
		W_MOISDEBUTPERIODE = W_MOISDEBUTPERIODE:"12"
	END
	W_FINPERIODE = "30/11/":W_ANNEE
	W_MOISFINPERIODE = W_ANNEE:"11"
  END ELSE
	W_DEBUTPERIODE = "01/01/":W_ANNEE
	W_FINPERIODE = "31/12/":W_ANNEE
	W_MOISDEBUTPERIODE = W_ANNEE:"01"
	W_MOISFINPERIODE = W_ANNEE:"12"
  END
	* Michael, gestion decl prudhommale salaries entres apres 30/11/Exercie :
	W_FINPERIODESELECT = "31/12/":W_ANNEE

  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_FINPERIODESELECT,"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 = "00561]" 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

IF W_MSG<1>#209 THEN

  * STRUCTURE S20.G01.xx
  GOSUB 200100
  
  * NUMERO D'AGREMENT (S20.G10.00)
  GOSUB 201000

  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 = ""
* Michael, le 27/11 : test sur etab inutile car on fait maintenant la selection sur l'etablissement 
* => On ne trouve ici que des contrats sur l'etablissement W_TABETAB<1,A> !!!
	IF W_ANCIENAIDANT = CLECONTRAT[1,5] AND ENR_CONTRATNEXT<3> # W_ANCIENETABAIDANT THEN

		* Michael, le 27/11 : 
		* STRUCTURE S30.G01.xx
		GOSUB 300100
		
		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
		
		* Ajout Guillaume 12/11/08
		* BASES BRUTES EXCEPTIONNELLES (S41.G01.02)
		GOSUB 410102

		* URSSAF EXO
		GOSUB 410106

		* ELECTION PRUD'HOMALES
		GOSUB 410200
* Michael : Le 27/11/ ai mis les appel de procedures ici au cas o,
* mais ne devraient jamais etre appelles car pas de risque de rupture etab ... Valable aussi pour appel S30xxx
		* Michael , le 20/11/07 : Decl hres suppl / compl :
		GOSUB 413025

		* Michael , le 20/11/07 : Decl hres suppl / compl :
		GOSUB 413035
		
		* RETRAITE COMPLEMENTAIRE IRCANTEC
		GOSUB 420100

		* RETRAITE COMPLEMENTAIRE CNRACL
		GOSUB 430100

		* 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
		    * Michael, le 27/11/07 : Gestion si decalage de paie des decl prud'homm' : 
		    IF W_1ERCONTRAT = 0 AND ENR_ASSOCIATION<25> = "1" AND W_DATEDEBCONTRATPRUD > ICONV(W_FINPERIODE,"D4/") THEN
			GOSUB 410100000000		
		    END ELSE

			* Michael, le 27/11 : 
  			* STRUCTURE S30.G01.xx
  			GOSUB 300100

			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

    		* Ajout Guillaume 12/11/08
    		* BASES BRUTES EXCEPTIONNELLES (S41.G01.02)
    		GOSUB 410102

			* URSSAF EXO
			GOSUB 410106

			* ELECTION PRUD'HOMALES
			GOSUB 410200

			* Michael , le 20/11/07 : Decl hres suppl / compl :
			GOSUB 413025

			* Michael , le 20/11/07 : Decl hres suppl / compl :
			GOSUB 413035

			* RETRAITE COMPLEMENTAIRE IRCANTEC
			GOSUB 420100

			* RETRAITE COMPLEMENTAIRE CNRACL
			GOSUB 430100

			* RETRAITE COMPLEMENTAIRE
			GOSUB 440100

			* PERIODE INACTIVITE
			GOSUB 460100
		    END
		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
		
		* Michael, le 27/11/07 : ne plus renseigner ICI le S30 :		
		** 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>
		
		* Michael, gestion prudhommale si decalage de paie et salarie entr APRES 30/11/Exercice : 
		* Il est important de stocker la date de debut du PREMIER contrat sur la periode : 
		W_DATEDEBCONTRATPRUD = ENR_CONTRAT<7>
	END

	W_DATEFINCONTRAT = ENR_CONTRAT<8>
	W_DERNIERCODECONTRAT = CLECONTRAT
		
  REPEAT

IF W_1ERCONTRAT = 0 AND ENR_ASSOCIATION<25> = "1" AND W_DATEDEBCONTRATPRUD > ICONV(W_FINPERIODE,"D4/") THEN
	GOSUB 410100000000
END ELSE

  * Michael, le 27/11 : 
  * STRUCTURE S30.G01.xx
  GOSUB 300100

  * GERE DERNIER CONTRAT
  W_1ERCONTRAT = W_1ERCONTRAT + 1		

  * STRUCTURE S41.G01.xx
  GOSUB 410100

  * IDENTIFICATION RETRAITE COMPL. (S41.G01.01)
  GOSUB 410101
  
  * Ajout Guillaume 12/11/08
  * BASES BRUTES EXCEPTIONNELLES (S41.G01.02)
  GOSUB 410102

  * URSSAF EXO
  GOSUB 410106

  * ELECTION PRUD'HOMALES
  GOSUB 410200

  * Michael , le 20/11/07 : Decl hres suppl / compl :
  GOSUB 413025

  * Michael , le 20/11/07 : Decl hres suppl / compl :
  GOSUB 413035
  

  * RETRAITE COMPLEMENTAIRE IRCANTEC
  GOSUB 420100

  * RETRAITE COMPLEMENTAIRE CNRACL
  GOSUB 430100

  * RETRAITE COMPLEMENTAIRE
  GOSUB 440100

  * PERIODE INACTIVITE
  GOSUB 460100
END

  * HONORAIRES
  GOSUB 700100

  * ETABLISSEMENT
  GOSUB 800100
  
  * Michael , le 20/11/07 : Gestion decl etablissement Apprentissage / formation :
  GOSUB 8062
END

  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 

**modif valentin, prise en compte du rabattement:
ENR_TAMPONDADS<8>=ENR_TAMPONDADS<8>-(ENR_TDSCASPARTICULIERSDADSU<3>/100)

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>

* christophe le 08/01/2007

ENR_TAMPONDADS<22> = W_TABRETRAITERAPPORT<1>
ENR_TAMPONDADS<23> = W_TABRETRAITERAPPORT<2>
ENR_TAMPONDADS<24> = W_TABRETRAITERAPPORT<3>
ENR_TAMPONDADS<25> = W_TABRETRAITERAPPORT<4>
ENR_TAMPONDADS<26> = W_TABRETRAITERAPPORT<5>
ENR_TAMPONDADS<27> = W_TABRETRAITERAPPORT<6>
ENR_TAMPONDADS<28> = W_TABRETRAITERAPPORT<7>

 
* 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 = ""
	* Michael, le 12/12/07 : 
	IF ENR_ASSOCIATION<48> = "" AND ENR_ASSOCIATION<25> = "1" THEN
		ENR_ASSOCIATION<48> = W_ANNEE
		WRITE ENR_ASSOCIATION ON F.ASSOCIATION, W_CODEENTITE
	END
	* Fin modif 12/12/07 
	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:"'"
	W_TXTACONVERTIR=ENR_ASSOCIATION<2>
	GOSUB 999999
	ENR_ASSOCIATION<2>=W_TXTACONVERTIR
	ENR_DADSU<-1> = W_CHAINE:"002,'":ENR_ASSOCIATION<2>:"'"
	
	W_TXTACONVERTIR=ENR_ASSOCIATION<7>
	GOSUB 999999
	ENR_ASSOCIATION<7>=W_TXTACONVERTIR
	IF ENR_ASSOCIATION<7> # "" THEN ENR_DADSU<-1> = W_CHAINE:"003.001,'":ENR_ASSOCIATION<7>:"'"

	W_TXTACONVERTIR=ENR_ASSOCIATION<3>
	GOSUB 999999
	ENR_ASSOCIATION<3>=W_TXTACONVERTIR
	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]:"'"

	W_TXTACONVERTIR=ENR_ASSOCIATION<5>
	GOSUB 999999
	ENR_ASSOCIATION<5>=W_TXTACONVERTIR
	W_TXTACONVERTIR=ENR_ASSOCIATION<6>
	GOSUB 999999
	ENR_ASSOCIATION<6>=W_TXTACONVERTIR

	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

	W_TXTACONVERTIR=ENR_ASSOCIATION<8>
	GOSUB 999999
	ENR_ASSOCIATION<8>=W_TXTACONVERTIR

	ENR_DADSU<-1> = W_CHAINE:"003.010,'":ENR_ASSOCIATION<8>:"'"

	W_TXTACONVERTIR=ENR_ASSOCIATION<9>
	GOSUB 999999
	ENR_ASSOCIATION<9>=W_TXTACONVERTIR
	ENR_DADSU<-1> = W_CHAINE:"003.012,'":ENR_ASSOCIATION<9>:"'"
	* Modif Guillaume 12/11/08
	END_DADSU<-1> = "MODIF 100100"	
	ENR_DADSU<-1> = W_CHAINE:"004,'":OCONV(DATE(),"D4/")[9,2]:OCONV(DATE(),"D4/")[4,2]:OCONV(DATE(),"D4/")[1,2]:" ":OCONV(TIME(),"MT")[1,2]:"'"
	* Fin modif Guillaume 12/11/08
	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
	  * Modif Greg - 26/11/09 - Evolution du numro de version.
	ENR_DADSU<-1> = W_CHAINE:"011,'V08R09'"
	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:"'"
	*Michael 19/11/17 : supprime cette etiquette + 015.002 + 015.003 + Ajout 015.001= adr mail !
	*ENR_DADSU<-1> = W_CHAINE:"014,'05'"
	W_VerifMail = ENR_ASSOCIATION<35>
	GOSUB 9999992
	IF W_VerifMail # "" THEN
		ENR_DADSU<-1> = W_CHAINE:"015.001,'":W_VerifMail:"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"015.001,'infologis@wanadoo.fr'"
	END
	* christophe 18/12/2006
	*ENR_DADSU<-1> = W_CHAINE:"015.002,'02'"
	*ENR_DADSU<-1> = W_CHAINE:"015.003,'LE RESPONSABLE COMPTABLE'"
	
RETURN


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

	* CONTACT CLIENT
	ENR_DADSU<-1> = W_CHAINE:"001.001,'02'"

	W_TXTACONVERTIR=ENR_ASSOCIATION<30>
	GOSUB 999999
	ENR_ASSOCIATION<30>=W_TXTACONVERTIR
	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'"
	W_VerifMail = ENR_ASSOCIATION<35>
	GOSUB 9999992
	IF W_VerifMail # "" THEN
		ENR_DADSU<-1> = W_CHAINE:"005,'":W_VerifMail:"'"
	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:"'"

	W_TXTACONVERTIR=ENR_ETABLISSEMENT<7>
	GOSUB 999999
	ENR_ETABLISSEMENT<7>=W_TXTACONVERTIR


	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

	W_TXTACONVERTIR=ENR_ETABLISSEMENT<3>
	GOSUB 999999
	ENR_ETABLISSEMENT<3>=W_TXTACONVERTIR
	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

	W_TXTACONVERTIR=ENR_ETABLISSEMENT<5>
	GOSUB 999999
	ENR_ETABLISSEMENT<5>=W_TXTACONVERTIR
	W_TXTACONVERTIR=ENR_ETABLISSEMENT<6>
	GOSUB 999999
	ENR_ETABLISSEMENT<6>=W_TXTACONVERTIR


	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	
	W_TXTACONVERTIR=ENR_ETABLISSEMENT<8>
	GOSUB 999999
	ENR_ETABLISSEMENT<8>=W_TXTACONVERTIR
	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

	W_TXTACONVERTIR=ENR_ETABLISSEMENT<9>
	GOSUB 999999
	ENR_ETABLISSEMENT<9>=W_TXTACONVERTIR

	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

*	W_VerifMail = ENR_ASSOCIATION<35>
*	GOSUB 9999992
*	IF W_VerifMail # "" THEN
*		ENR_DADSU<-1> = W_CHAINE:"016.001,'":W_VerifMail:"'"
*	END ELSE
*		ENR_DADSU<-1> = W_CHAINE:"016.001,'infologis@wanadoo.fr'"
*	END


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

RETURN

* Ajout Guillaume 12/11/08

***************************************************************
* 201000 -> NUMERO D'AGREMENT (S20.G10.00)
***************************************************************
201000

    W_CHAINE = "S20.G10.10."
    
    W_NumAgr = UPCASE(TRIM(ENR_ASSOCIATION<23>))
    FOR W_IncAgr = 1 TO LEN(W_NumAgr)
        IF W_NumAgr[W_IncAgr,1] < CHAR(48) OR W_NumAgr[W_IncAgr,1] > CHAR(57) THEN
            IF W_NumAgr[W_IncAgr,1] < CHAR(65) OR W_NumAgr[W_IncAgr,1] > CHAR(90) THEN
                W_NumAgr[W_IncAgr,1]=""
            END
        END
    NEXT W_IncAgr
    
    ENR_DADSU<-1> = W_CHAINE : "001,'" : W_NumAgr[1,15]"L%15":"'"

RETURN
* fin ajout Guillaume 12/11/08
 

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

	W_NBSALDECLARE = W_NBSALDECLARE + 1

	* Michael, le 27/11 :
	*READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,CLECONTRAT[1,5] ELSE ENR_CIVILAIDANT = ""
	*READ ENR_PRUDCASPARTICULIERS FROM F.PRUDCASPARTICULIERS,CLECONTRAT[1,5] ELSE ENR_PRUDCASPARTICULIERS = ""
	READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_ANCIENAIDANT[1,5] ELSE ENR_CIVILAIDANT = ""
	READ ENR_PRUDCASPARTICULIERS FROM F.PRUDCASPARTICULIERS,W_ANCIENAIDANT[1,5] ELSE ENR_PRUDCASPARTICULIERS = ""
	
	IF ENR_CIVILAIDANT<17> # "" THEN	
		W_NUMSECU = TRIM(CONVERT(" ","",ENR_CIVILAIDANT<17>))
	END
	IF LEN(W_NUMSECU) # 13 THEN W_NUMSECU = ""
	IF W_NUMSECU[1,1] # "1" AND W_NUMSECU[1,1] # "2" THEN W_NUMSECU = ""
	W_AnSecu30 = OCONV(ENR_CIVILAIDANT<26>,"D4/")[9,2]
	W_MoisSecu30 = OCONV(ENR_CIVILAIDANT<26>,"D4/")[4,2]
	IF W_NUMSECU[2,4] # W_AnSecu30:W_MoisSecu30 THEN W_NUMSECU = ""
	IF W_NUMSECU = "" THEN
		IF ENR_CIVILAIDANT<16> = "M" THEN
			W_NUMSECU = "1999999999999"
		END ELSE
			W_NUMSECU = "2999999999999"
		END
	END
	
	ENR_DADSU<-1> = W_CHAINE:"001,'":W_NUMSECU:"'"

	* CONVERTION ATT 4 DE CIVILAIDANT
	W_TXTACONVERTIR = ENR_CIVILAIDANT<4>
	GOSUB 999999
	ENR_CIVILAIDANT<4> = W_TXTACONVERTIR
    
 	* CONVERTION ATT 3 DE CIVILAIDANT
	W_TXTACONVERTIR = ENR_CIVILAIDANT<3>
	GOSUB 999999
	ENR_CIVILAIDANT<3> = W_TXTACONVERTIR
   
 	* CONVERTION ATT 2 DE CIVILAIDANT
	W_TXTACONVERTIR = ENR_CIVILAIDANT<2>
	GOSUB 999999
	ENR_CIVILAIDANT<2> = W_TXTACONVERTIR
   
    IF ENR_CIVILAIDANT<4> = "" THEN ENR_CIVILAIDANT<4> = ENR_CIVILAIDANT<2>
	ENR_DADSU<-1> = W_CHAINE:"002,'":ENR_CIVILAIDANT<4>:"'"

	ENR_DADSU<-1> = W_CHAINE:"003,'":ENR_CIVILAIDANT<3>:"'"

	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,'":TRIM(ENR_CIVILAIDANT<9>[1,26]):"'"


	W_TXTACONVERTIR = ENR_CIVILAIDANT<5>
	CONVERT "/" TO " " IN W_TXTACONVERTIR
	GOSUB 999999
	* Michael, 30/11/07 : on extrait les chiffres uniquement
	ENR_CIVILAIDANT<5> = OCONV(W_TXTACONVERTIR,"MCN")
	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 = TRIM(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_CIVILAIDANT<11> = CONVERT("-","", ENR_CIVILAIDANT<11>)
	ENR_DADSU<-1> = W_CHAINE:"008.012,'":ENR_CIVILAIDANT<11>[1,26]:"'"
	
	
	* Modif Guillaume 18/11/2009 DA9202 : Gestion du pays dans l'tat civil
	IF TRIM(ENR_CIVILAIDANT<47>) <> "" THEN	
        READ ENR_PAYS FROM F.PAYS, ENR_CIVILAIDANT<47> ELSE ENR_PAYS = ""
        
        ENR_DADSU<-1> = W_CHAINE:"008.013,'":ENR_PAYS<3>:"'"
    END
    * Fin modif Guillaume 18/11/2009 DA9202
	
	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
	
	* Ajout Guillaume 12/11/08
    * MATRICULE DU SALARIE DANS L'ENTREPRISE (S30.G10.00)
    GOSUB 301000
	
	
RETURN


* Ajout Guillaume 12/11/08

***************************************************************
* 301000 -> MATRICULE DU SALARIE DANS L'ENTREPRISE (S30.G10.00)
***************************************************************
301000

    ENR_DADSU<-1> = "S30.G10.05.001,'":W_ANCIENAIDANT[1,5]:"'"

RETURN

* Fin ajout Guillaume 12/11/08

***************************************************************
* 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_RETRAITESALARIECNRACL = 0
	W_RETRAITEPATROCNRACL = 0
	W_BASERETRAITECNRACL=0
	
	W_NOMAIDANT = ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
	W_NOMAIDANT = W_NOMAIDANT[1,25] "L#25"

	IF CLECONTRAT = "" THEN CLECONTRAT = W_DERNIERCODECONTRAT
	* Michael, le 29/11/07 : 
	* READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,W_ANCIENAIDANT:W_ANNEE:ENR_CONTRAT<2> ELSE ENR_HISTORCUMUL = ""
	READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,W_ANCIENAIDANT:W_ANNEE:ENR_CONTRAT<2> THEN
    	W_CodeEtabContrat = ENR_CONTRAT<3>[4,3]
    	IF ENR_HISTORCUMUL<23> # "" THEN
    		W_MULTIETAB = 1
    		* Michael, le 29/11/07 : 
    		*READ ENR_HISTORCUMUL FROM F.HISTORCUMULETABL,W_ANCIENAIDANT:W_ANNEE:ENR_CONTRAT<3> ELSE ENR_HISTORCUMUL = ""
    		READ ENR_HISTORCUMUL FROM F.HISTORCUMULETABL,W_ANCIENAIDANT:W_ANNEE:ENR_CONTRAT<3> ELSE 
    			GOSUB 9999993
    			WRITE ENR_HISTORCUMUL ON F.HISTORCUMULETABL, W_ANCIENAIDANT:W_ANNEE:ENR_CONTRAT<3>
    		END
    
    	END ELSE
    		W_MULTIETAB = 0
    	END
	END ELSE
		* Va generer un HISTORCUMUL FICTIF, sur l'etablissement en cours = celui du dernier contrat trouv !
		GOSUB 9999993
		WRITE ENR_HISTORCUMUL ON F.HISTORCUMUL, W_ANCIENAIDANT:W_ANNEE:ENR_CONTRAT<2>
	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
* Didier le 30/11/2009 - DA9209
*			W_CODE4101002 = "019"
			W_CODE4101002 = "901"
		END ELSE
			W_CODE4101002 = "001"
		END	
	END
	
**** RAJOUT GESTION HISTORCUMUL = "" - 25/02/05
* Didier le 30/11/2009 - DA9209
*	IF ENR_HISTORCUMUL = "" OR ENR_HISTORCUMUL<5> = 0 OR ENR_HISTORCUMUL<5> = "" THEN W_CODE4101002 = "021"
	IF ENR_HISTORCUMUL = "" OR ENR_HISTORCUMUL<5> = 0 OR ENR_HISTORCUMUL<5> = "" THEN W_CODE4101002 = "901"

	* 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
	* Michael, LE 20/11/07 :
	*W_DEBUTACTIVITE = CONVERT("/","",W_DEBUTACTIVITE)[1,4]
	*W_FINACTIVITE = CONVERT("/","",W_FINACTIVITE)[1,4]
	W_DEBUTACTIVITE = CONVERT("/","",W_DEBUTACTIVITE)
	W_FINACTIVITE = CONVERT("/","",W_FINACTIVITE)


	IF W_DATEFINCONTRAT # "" THEN
		W_CODEFINCONTRAT = "008"

		* CODE 59
		IF ENR_CONTRAT<49> = "59" THEN W_CODEFINCONTRAT = "010"
		* CODE 38 / 39
		IF ENR_CONTRAT<49> = "38" THEN W_CODEFINCONTRAT = "136"
        IF ENR_CONTRAT<49> = "39" THEN W_CODEFINCONTRAT = "134"
		* 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"
* Didier le 30/11/2009 - DA9209
*		IF W_MULTIETAB = 1 AND W_1ERCONTRAT = 1 THEN W_CODEFINCONTRAT = "020"
		IF W_MULTIETAB = 1 AND W_1ERCONTRAT = 1 THEN W_CODEFINCONTRAT = "902"
	END

**** RAJOUT GESTION HISTORCUMUL = "" - 25/02/05
* Didier le 30/11/2009
*	IF ENR_HISTORCUMUL = "" OR ENR_HISTORCUMUL<5> = 0 OR ENR_HISTORCUMUL<5> = "" THEN W_CODEFINCONTRAT = "022"
	IF ENR_HISTORCUMUL = "" OR ENR_HISTORCUMUL<5> = 0 OR ENR_HISTORCUMUL<5> = "" THEN W_CODEFINCONTRAT = "902"

	* 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
	   * Michael, le 07/12/07 : Anne d'adoption du dcalage de paie :
	   IF ENR_ASSOCIATION<48> = W_ANNEE THEN
		ENR_DADSU<-1> = W_CHAINE:"009,'02'"
	   END ELSE	   
		ENR_DADSU<-1> = W_CHAINE:"009,'03'"
	   END
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"009,'01'"
	END

	
	W_NBMVCONTRAT = DCOUNT(ENR_CONTRAT<15>,CHAR(253))
	FOR G = W_NBMVCONTRAT TO 1 STEP -1
		IF ENR_CONTRAT<15,G> < ICONV(W_FINPERIODE,"D4/") THEN EXIT 
	NEXT G
	
	*christophe le 18/01/2007
	IF G = 0  THEN G=1	
	
	* NATURE EMPLOI + PCS
**	ENR_CONTRAT<16,G> = CONVERT("."," ",ENR_CONTRAT<16,G>)
**	ENR_CONTRAT<16,G> = CONVERT("'"," ",ENR_CONTRAT<16,G>)
**	ENR_CONTRAT<16,G> = CONVERT("","O",ENR_CONTRAT<16,G>)
**	ENR_CONTRAT<16,G> = CONVERT("","E",ENR_CONTRAT<16,G>)

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

	ENR_DADSU<-1> = W_CHAINE:"010,'":ENR_CONTRAT<16,G>:"'"
* Didier le 30/11/2009 - DA9209
*	ENR_DADSU<-1> = W_CHAINE:"011,'":ENR_CONTRAT<17,G>:"'"
	ENR_DADSU<-1> = W_CHAINE:"011.001,'":ENR_CONTRAT<17,G>:"'"

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

	* Michael, le 03/12/07 : Ajout gestion des CAE et CA (Contrat Accompagnement Emploi et Contrat Avenir)
	IF ENR_CONTRAT<13> = "CES" OR ENR_CONTRAT<13> = "CEJ" OR ENR_CONTRAT<13> = "CA" OR ENR_CONTRAT<13> = "CAE" THEN
		IF ENR_CONTRAT<13> = "CES" THEN
			W_CODENATURECONTRAT = "07"
		END ELSE
			IF ENR_CONTRAT<13> = "CEJ" THEN
				W_CODENATURECONTRAT = "06"
			END ELSE
				IF ENR_CONTRAT<13> = "CAE" THEN
					W_CODENATURECONTRAT = "25"
				END ELSE
					W_CODENATURECONTRAT = "26"
				END
			END
		END
	END ELSE
		IF ENR_CONTRAT<4> = "D" THEN
			W_CODENATURECONTRAT = "02"
		END ELSE
			W_CODENATURECONTRAT = "01"
		END		
	END
	IF W_CASCNRACLIRCANTEC=2 THEN W_CODENATURECONTRAT = "90"
	ENR_DADSU<-1> = W_CHAINE:"012.001,'":W_CODENATURECONTRAT:"'"
	ENR_DADSU<-1> = W_CHAINE:"012.002,'01'"

	* DUREE CONTRAT
	IF ENR_CONTRAT<25,G> = "1" THEN W_DUREEW = INT((ENR_CONTRAT<24,G> * 52/12)+1/2)
	IF ENR_CONTRAT<25,G> = "2" THEN W_DUREEW = INT((ENR_CONTRAT<24,G> * 26/12)+1/2)
	IF ENR_CONTRAT<25,G> = "3" THEN W_DUREEW = ENR_CONTRAT<24,G> 
	IF ENR_CONTRAT<25,G> = "4" THEN W_DUREEW = INT((ENR_CONTRAT<24,G> /12)+1/2)
	W_TEMPSPLEIN="NON"
	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 = ""
		W_TEMPSPLEIN="OUI"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"013,'02'"
		W_POURCDUREEW = INT(W_DUREEW / W_DUREEETAB * 10000)
	END

	* 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,G>[1,1] = "3" OR ENR_CONTRAT<17,G>[1,2] = "23" OR ENR_CONTRAT<17,G>[1,3] = "431a" THEN
		W_CODEPCS = "12"
	END ELSE
		W_CODEPCS = "90"
		IF ENR_CONTRAT<6>="A" THEN W_CODEPCS="02"
		IF ENR_CONTRAT<6>="A" AND ENR_CONTRAT<17,G>[1,1] = "4" THEN W_CODEPCS = "04"
		IF ENR_CONTRAT<6>="P" THEN W_CODEPCS = "01"
	END
	IF W_CASCNRACLIRCANTEC=1 THEN W_CODEPCS = "64"
	IF W_CASCNRACLIRCANTEC=2 THEN W_CODEPCS = "63"
	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 AND W_CODEPCS # "02" AND W_CODEPCS # "01" THEN
			W_CODESTATUT = "02"
			ENR_DADSU<-1> = W_CHAINE:"015.001,'":W_CODESTATUT:"'"
			ENR_DADSU<-1> = W_CHAINE:"015.002,'02'"
		END ELSE
			IF W_CODEPCS="12" THEN
				W_CODESTATUT = "01"
				ENR_DADSU<-1> = W_CHAINE:"015.001,'":W_CODESTATUT:"'"
				ENR_DADSU<-1> = W_CHAINE:"015.002,'01'"
			END ELSE
				W_CODESTATUT = "02"
				ENR_DADSU<-1> = W_CHAINE:"015.001,'":W_CODESTATUT:"'"
				ENR_DADSU<-1> = W_CHAINE:"015.002,'04'"
			END
		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'"

	* Michael, le 07/2/07 :
	IF W_CASCNRACLIRCANTEC=2 THEN
		W_TEMP410100017 = INT(ENR_CONTRAT<22,G>/1000)
		W_TEMP410100017 = W_TEMP410100017"R%4"
		ENR_DADSU<-1> = W_CHAINE:"017,'":W_TEMP410100017:"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"017,'":ENR_CONTRAT<22,G>/1000:"'"
	END
	IF W_CASCNRACLIRCANTEC=2 THEN
* Didier le 11/12/2009
*		ENR_DADSU<-1> = W_CHAINE:"018.002,'900'"
		ENR_DADSU<-1> = W_CHAINE:"018.002,'200'"
		ENR_DADSU<-1> = W_CHAINE:"018.003,'900'"
		ENR_DADSU<-1> = W_CHAINE:"018.004,'120'"
		ENR_DADSU<-1> = W_CHAINE:"018.005,'120'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"018.001,'200'"
	END
	
	* Modif Guillaume 12/11/08 : Dplac en section S30.G10.00.001
    * ENR_DADSU<-1> = W_CHAINE:"019,'":W_ANCIENAIDANT[1,5]:"'"
    * Fin modif Guillaume 12/11/08

	* SI DUREE W = 0 (PAS NORMAL) ALORS FORCE A 0.01%
	* Modif Guillaume 19/11/08 : Le pourcentage 0.01 est interdit dans la nomenclature : 1.00% mini obligatoire	
	IF W_POURCDUREEW = 0 THEN W_POURCDUREEW = "100"
	IF W_CASCNRACLIRCANTEC=2 AND W_TEMPSPLEIN="NON" AND W_POURCDUREEW<=5000 THEN W_POURCDUREEW=5000
	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
	* Modif Guillaume 12/11/08
    * IF ENR_HISTORCUMUL<3> # "" AND ENR_HISTORCUMUL<3> # 0 THEN ENR_DADSU<-1> = W_CHAINE:"023,'":ENR_HISTORCUMUL<3>:"'"
    IF INT(ENR_HISTORCUMUL<2> / 100 + 1/2) = 0 THEN
        ENR_DADSU<-1> = W_CHAINE : "023.001,'99'"
        ENR_DADSU<-1> = W_CHAINE : "023.002,'99'"
        ENR_DADSU<-1> = W_CHAINE : "023.003,'99'"
    END ELSE
        IF INT(ENR_HISTORCUMUL<2> / 100 + 1/2) > 1200 THEN
            ENR_DADSU<-1> = W_CHAINE : "023.001,'01'"
            ENR_DADSU<-1> = W_CHAINE : "023.002,'98'"
            ENR_DADSU<-1> = W_CHAINE : "023.003,'98'"
        END ELSE
            * Si Le brut/smic_horraire suprieur  2030 
            IF ENR_HISTORCUMUL<5> / ENR_CONSTANTESPAIE<3,1> > 2030 THEN
                ENR_DADSU<-1> = W_CHAINE : "023.001,'01'"
                ENR_DADSU<-1> = W_CHAINE : "023.002,'98'"
                ENR_DADSU<-1> = W_CHAINE : "023.003,'98'"
            END ELSE
                W_Trim1 = 0
                W_Trim2 = 0
                W_Trim3 = 0
                W_Trim4 = 0
                
                ENR_DADSU<-1> = W_CHAINE : "023.001,'99'"
                
                W_DernMois = "00"
                * Cumul des trimestres
                IF ENR_ASSOCIATION<25> = "0" OR ENR_ASSOCIATION<25> = "" THEN
                    *** Sans dcalage de paie
                    * Partie modulation en cours                
                    FOR W_Inc = 1 TO DCOUNT(ENR_CONTRAT<76>,CHAR(253))
                        IF ENR_CONTRAT<76,W_Inc> = W_ANNEE:"01" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"02" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"03" THEN
                            W_Trim1 = W_Trim1 + ENR_CONTRAT<79,W_Inc>
                        END ELSE
                            IF ENR_CONTRAT<76,W_Inc> = W_ANNEE:"04" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"05" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"06" THEN
                                W_Trim2 = W_Trim2 + ENR_CONTRAT<79,W_Inc>
                            END ELSE
                                IF ENR_CONTRAT<76,W_Inc> = W_ANNEE:"07" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"08" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"09" THEN
                                    W_Trim3 = W_Trim3 + ENR_CONTRAT<79,W_Inc>
                                END ELSE
                                    IF ENR_CONTRAT<76,W_Inc> = W_ANNEE:"10" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"11" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"12" THEN
                                        W_Trim4 = W_Trim4 + ENR_CONTRAT<79,W_Inc>
                                    END
                                END
                            END
                        END 
                    NEXT W_Inc
                    
                    * Partie modulation prcdente
                    FOR W_Inc = 1 TO DCOUNT(ENR_CONTRAT<71>, CHAR(253))
                        IF ENR_CONTRAT<71,W_Inc> => W_ANNEE:"01" THEN
                            IF ENR_CONTRAT<71,W_Inc>[5,2] = "01" OR ENR_CONTRAT<71,W_Inc>[5,2] = "02" OR ENR_CONTRAT<71,W_Inc>[5,2] = "03" THEN
                                W_Trim1 = W_Trim1 + ENR_CONTRAT<74,W_Inc>
                            END ELSE
                                IF ENR_CONTRAT<71,W_Inc>[5,2] = "04" OR ENR_CONTRAT<71,W_Inc>[5,2] = "05" OR ENR_CONTRAT<71,W_Inc>[5,2] = "06" THEN
                                    W_Trim2 = W_Trim2 + ENR_CONTRAT<74,W_Inc>
                                END ELSE
                                    IF ENR_CONTRAT<71,W_Inc>[5,2] = "07" OR ENR_CONTRAT<71,W_Inc>[5,2] = "08" OR ENR_CONTRAT<71,W_Inc>[5,2] = "09" THEN
                                        W_Trim3 = W_Trim3 + ENR_CONTRAT<74,W_Inc>
                                    END ELSE
                                        IF ENR_CONTRAT<71,W_Inc>[5,2] = "10" OR ENR_CONTRAT<71,W_Inc>[5,2] = "11" OR ENR_CONTRAT<71,W_Inc>[5,2] = "12" THEN
                                            W_Trim4 = W_Trim4 + ENR_CONTRAT<74,W_Inc>
                                        END
                                    END
                                END
                            END 
                        END
                    NEXT W_Inc
                    
                    * Tests des cumuls et criture du fichier
                    IF W_Trim4 / 100 > 120 THEN
                        ENR_DADSU<-1> = W_CHAINE : "023.002,'12'"
                        ENR_DADSU<-1> = W_CHAINE : "023.003,'98'"
                    END ELSE
                        IF W_Trim3 / 100 > 120 THEN
                            ENR_DADSU<-1> = W_CHAINE : "023.002,'09'"
                            ENR_DADSU<-1> = W_CHAINE : "023.003,'98'"
                        END ELSE
                            IF W_Trim2 / 100 > 120 THEN
                                ENR_DADSU<-1> = W_CHAINE : "023.002,'06'"
                                ENR_DADSU<-1> = W_CHAINE : "023.003,'98'"
                            END ELSE
                                IF W_Trim1 / 100 > 120 THEN
                                    ENR_DADSU<-1> = W_CHAINE : "023.002,'03'"
                                    ENR_DADSU<-1> = W_CHAINE : "023.003,'98'"
                                END ELSE
                                    ENR_DADSU<-1> = W_CHAINE : "023.002,'99'"

* Didier le 29/01/2009
*                                    IF TRIM(ENR_HISTORCUMUL<3>) # "" AND TRIM(ENR_HISTORCUMUL<3>) # "0" THEN
                                    IF ENR_HISTORCUMUL<3> # "" AND ENR_HISTORCUMUL<3> # "0" THEN
                                        ENR_DADSU<-1> = W_CHAINE : "023.003,'":TRIM(ENR_HISTORCUMUL<3>):"'"
                                    END ELSE
                                        ENR_DADSU<-1> = W_CHAINE : "023.003,'99'"
                                    END
                                END
                            END
                        END
                    END
                    
                END ELSE
                    ** Avec dcalage de paie
                    * Partie modulation en cours                
                    FOR W_Inc = 1 TO DCOUNT(ENR_CONTRAT<76>,CHAR(253))
                        IF ENR_CONTRAT<76,W_Inc> = W_ANNEE-1:"12" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"01" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"02" THEN
                            W_Trim1 = W_Trim1 + ENR_CONTRAT<79,W_Inc>
                        END ELSE
                            IF ENR_CONTRAT<76,W_Inc> = W_ANNEE:"03" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"04" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"05" THEN
                                W_Trim2 = W_Trim2 + ENR_CONTRAT<79,W_Inc>
                            END ELSE
                                IF ENR_CONTRAT<76,W_Inc> = W_ANNEE:"06" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"07" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"08" THEN
                                    W_Trim3 = W_Trim3 + ENR_CONTRAT<79,W_Inc>
                                END ELSE
                                    IF ENR_CONTRAT<76,W_Inc> = W_ANNEE:"09" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"10" OR ENR_CONTRAT<76,W_Inc> = W_ANNEE:"11" THEN
                                        W_Trim4 = W_Trim4 + ENR_CONTRAT<79,W_Inc>
                                    END
                                END
                            END
                        END 
                    NEXT W_Inc
                    
                    * Partie modulation prcdente
                    FOR W_Inc = 1 TO DCOUNT(ENR_CONTRAT<71>, CHAR(253))
                        IF ENR_CONTRAT<71,W_Inc> >= W_ANNEE-1:"12" THEN
                            IF ENR_CONTRAT<71,W_Inc> = W_ANNEE-1:"12" OR ENR_CONTRAT<71,W_Inc> = W_ANNEE:"01" OR ENR_CONTRAT<71,W_Inc> = W_ANNEE:"02" THEN
                                W_Trim1 = W_Trim1 + ENR_CONTRAT<74,W_Inc>
                            END ELSE
                                IF ENR_CONTRAT<71,W_Inc> = W_ANNEE:"03" OR ENR_CONTRAT<71,W_Inc> = W_ANNEE:"04" OR ENR_CONTRAT<71,W_Inc> = W_ANNEE:"05" THEN
                                    W_Trim2 = W_Trim2 + ENR_CONTRAT<74,W_Inc>
                                END ELSE
                                    IF ENR_CONTRAT<71,W_Inc> = W_ANNEE:"06" OR ENR_CONTRAT<71,W_Inc> = W_ANNEE:"07" OR ENR_CONTRAT<71,W_Inc> = W_ANNEE:"08" THEN
                                        W_Trim3 = W_Trim3 + ENR_CONTRAT<74,W_Inc>
                                    END ELSE
                                        IF ENR_CONTRAT<71,W_Inc> = W_ANNEE:"09" OR ENR_CONTRAT<71,W_Inc> = W_ANNEE:"10" OR ENR_CONTRAT<71,W_Inc> = W_ANNEE:"11" THEN
                                            W_Trim4 = W_Trim4 + ENR_CONTRAT<74,W_Inc>
                                        END
                                    END
                                END
                            END 
                        END
                    NEXT W_Inc
                    
                    * Tests des cumuls et criture du fichier
                    IF W_Trim4 / 100 > 120 THEN
                        ENR_DADSU<-1> = W_CHAINE : "023.002,'11'"
                        ENR_DADSU<-1> = W_CHAINE : "023.003,'98'"
                    END ELSE
                        IF W_Trim3 / 100 > 120 THEN
                            ENR_DADSU<-1> = W_CHAINE : "023.002,'08'"
                            ENR_DADSU<-1> = W_CHAINE : "023.003,'98'"
                        END ELSE
                            IF W_Trim2 / 100 > 120 THEN
                                ENR_DADSU<-1> = W_CHAINE : "023.002,'05'"
                                ENR_DADSU<-1> = W_CHAINE : "023.003,'98'"
                            END ELSE
                                IF W_Trim1 / 100 > 120 THEN
                                    ENR_DADSU<-1> = W_CHAINE : "023.002,'02'"
                                    ENR_DADSU<-1> = W_CHAINE : "023.003,'98'"
                                END ELSE
                                    ENR_DADSU<-1> = W_CHAINE : "023.002,'99'"
* Didier le 29/01/2009
*                                    IF TRIM(ENR_HISTORCUMUL<3>) # "" AND TRIM(ENR_HISTORCUMUL<3>) # "0" THEN
                                    IF ENR_HISTORCUMUL<3> # "" AND ENR_HISTORCUMUL<3> # "0" THEN 
                                        ENR_DADSU<-1> = W_CHAINE : "023.003,'":TRIM(ENR_HISTORCUMUL<3>):"'"
                                    END ELSE
                                        ENR_DADSU<-1> = W_CHAINE : "023.003,'99'"
                                    END
                                END
                            END
                        END
                    END
    
                END
                
            END
        END
    END
        
    * Fin modif Guillaume 12/11/08    
     
            
	IF ENR_HISTORCUMUL<20> # "" AND ENR_HISTORCUMUL<20> # "0" THEN ENR_DADSU<-1> = W_CHAINE:"024,'":ENR_HISTORCUMUL<20>:"'"

	* TDS TARIFICATION AT
	IF W_CASCNRACLIRCANTEC#2 THEN
		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>:"'"
	END

	*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

	IF W_NaturebaseCotis = "Forfait" THEN
		ENR_DADSU<-1> = W_CHAINE:"029.003,'02'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"029.003,'01'"
	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> = W_ANCIENAIDANT:" | ":W_NOMAIDANT:" | LA BASE S.S PLAF (":W_URSSAFPLAF/100:") EST > A LA BASE S.S TOT (":W_URSSAFTOT/100:")"
		*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 = ""
			W_RenseigneType = 0
			IF W_TABATT22 # "" THEN
				IF W_TABATT22<1> # "" THEN
					 ENR_DADSU<-1> = W_CHAINE:"045,'":W_TABATT22<1>:"'"
					 W_RenseigneType = 1
				END
				IF W_TABATT22<2> # "" THEN
					 ENR_DADSU<-1> = W_CHAINE:"046,'":W_TABATT22<2>:"'"
					 W_RenseigneType = 1
				END
				IF W_TABATT22<3> # "" THEN
					 ENR_DADSU<-1> = W_CHAINE:"047,'":W_TABATT22<3>:"'"
					 W_RenseigneType = 1
				END
				IF W_TABATT22<4> # "" THEN
					 ENR_DADSU<-1> = W_CHAINE:"048,'":W_TABATT22<4>:"'"
					 W_RenseigneType = 1
				END
			END
			IF W_RenseigneType = 0 THEN
				ENR_DADSU<-1> = W_CHAINE:"046,'R'"
			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
	

	* Michael, le 23/11/07 : 
	* Ajout du montants des heures supplmentaires...
	W_MntntSuppl410100 = INT(ENR_HISTORCUMUL<25>) + INT(ENR_HISTORCUMUL<27>)
	W_MntntSuppl410100 = INT(W_MntntSuppl410100/100 + 1/2)
	IF W_MntntSuppl410100 > 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"073.001,'":W_MntntSuppl410100:"'"
	END ELSE
		IF W_MntntSuppl410100 < 0 THEN
			W_MntntSuppl410100 = W_MntntSuppl410100 * -1
			ENR_DADSU<-1> = W_CHAINE:"073.001,'":W_MntntSuppl410100:"'"
			ENR_DADSU<-1> = W_CHAINE:"073.002,'N'"
 
			W_MntntSuppl410100 = W_MntntSuppl410100 * -1

		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_NUMEROFNC=""
	W_CASCNRACLIRCANTEC=0
	W_NaturebaseCotis = "Reelle"
	W_RANGTB = 0

	FOR K = 1 TO W_NBRUBCUMUL

		* Michael le 19/11 /07 :
		** 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 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>
			 IF W_TABRUBCHARGE<ENR_HISTORCUMUL<15,K>,4> = "1" AND ENR_HISTORCUMUL<17,K> > 0 THEN
				W_NaturebaseCotis = "Forfait"
			 END		
			END

		* 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<2,-1> = ENR_HISTORCUMUL<17,K>
					W_URSSAFEXO<3,-1> = "0"
				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)
					W_URSSAFEXO<2,J> = W_URSSAFEXO<2,J> + ENR_HISTORCUMUL<17,K>

					
				END	
				W_URSSAFPLAFEXO = W_URSSAFPLAFEXO + INT((ENR_HISTORCUMUL<17,K>/100) + 1/2)

				* Michael 10/01/07 : On ne renseigne plus ce tableau ici car pb d'arrondis...
				*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> = "0"
					*W_URSSAFEXO<3,-1> = INT((ENR_HISTORCUMUL<17,K>/100) + 1/2)
					W_URSSAFEXO<3,-1> = ENR_HISTORCUMUL<17,K>

				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)
					W_URSSAFEXO<3,J> = W_URSSAFEXO<3,J> + ENR_HISTORCUMUL<17,K>

				END	
				W_URSSAFPLAFEXO = W_URSSAFPLAFEXO + INT((ENR_HISTORCUMUL<17,K>/100) + 1/2)

				* Michael 10/01/07 : On ne renseigne plus ce tableau ici
				*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
		   IF W_TABRETRAITE<1,M>[4,3] = "000" OR W_TABRETRAITE<1,M>[4,3] = W_CodeEtabContrat THEN
			* 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<6,-1> = W_TABRETRAITE<6,M>
					W_RETRAITEGENE<7,-1> = 0					
					W_RETRAITEGENE<8,-1> = W_TABRETRAITE<9,M>
				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>
					W_CASCNRACLIRCANTEC=1
				END
				IF W_TABRETRAITE<8,M> = "C" THEN
					W_NUMEROFNC=W_TABRETRAITE<10,M>
					W_CASCNRACLIRCANTEC=2
					W_RETRAITESALARIECNRACL = W_RETRAITESALARIECNRACL + (ENR_HISTORCUMUL<18,K> * (-1))
					W_RETRAITEPATROCNRACL = W_RETRAITEPATROCNRACL + ENR_HISTORCUMUL<19,K>
					W_BASERETRAITECNRACL = W_BASERETRAITECNRACL + ENR_HISTORCUMUL<17,K>
				END

				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
				* Michael le 30/11/07 : On verifie que la base de cotis de la rub n'est pas a zero ...
				IF W_TABRETRAITE<9,M> #"03" THEN
				   IF INT(ENR_HISTORCUMUL<17,K>) # 0 OR (INT(ENR_HISTORCUMUL<17,K>) = 0 AND INT(ENR_HISTORCUMUL<5>) = 0) THEN
					W_RETRAITETBCADRE = W_RETRAITETBCADRE + ENR_HISTORCUMUL<17,K> + 1
				   END
				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<6,-1> = W_TABRETRAITE<6,M>
					W_RETRAITEGENE<7,-1> = 0
					W_RETRAITEGENE<8,-1> = W_TABRETRAITE<9,M>

				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>
					W_CASCNRACLIRCANTEC=1
				END
				IF W_TABRETRAITE<8,M> = "C" THEN
					W_NUMEROFNC=W_TABRETRAITE<10,M>
					W_CASCNRACLIRCANTEC=2
					W_RETRAITESALARIECNRACL = W_RETRAITESALARIECNRACL + (ENR_HISTORCUMUL<18,K> * (-1))
					W_RETRAITEPATROCNRACL = W_RETRAITEPATROCNRACL + ENR_HISTORCUMUL<19,K>
					W_BASERETRAITECNRACL = W_BASERETRAITECNRACL + ENR_HISTORCUMUL<17,K>
				END
				
				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
				* Michael le 30/11/07 : On verifie que la base de cotis de la rub n'est pas a zero ...
				IF W_TABRETRAITE<9,M> #"03" THEN
				   IF INT(ENR_HISTORCUMUL<17,K>) # 0 OR (INT(ENR_HISTORCUMUL<17,K>) = 0 AND INT(ENR_HISTORCUMUL<5>) = 0) THEN
					W_RETRAITETBCADRE = W_RETRAITETBCADRE + ENR_HISTORCUMUL<17,K> + 1
				   END
				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<6,-1> = W_TABRETRAITE<6,M>
					W_RETRAITEGENE<7,-1> = ENR_HISTORCUMUL<17,K>
					W_RETRAITEGENE<8,-1> = W_TABRETRAITE<9,M>
					!!! 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
				   * Michael le 30/11/07 : On verifie que la base de cotis de la rub n'est pas a zero ...
				   IF INT(ENR_HISTORCUMUL<17,K>) # 0 OR (INT(ENR_HISTORCUMUL<17,K>) = 0 AND INT(ENR_HISTORCUMUL<5>) = 0) THEN
					W_RETRAITETBCADRE = W_RETRAITETBCADRE + ENR_HISTORCUMUL<17,K> + 1
				   END
				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
			
		   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 
	IF ENR_HISTORCUMUL = "" 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))
        W_TABCODORG=""
	FOR N = 1 TO W_NBRETRAITE
                IF INDEX(W_TABCODORG,W_RETRAITEGENE<4,N>,1)=0 THEN
		   ENR_DADSU<-1> = W_CHAINE:"001,'":W_RETRAITEGENE<4,N>:"'"
		   W_S41G0101ACREER="OUI"
		   W_TABCODORG=W_TABCODORG:W_RETRAITEGENE<4,N>:","
		END ELSE
		   W_S41G0101ACREER="NON"
		END
		W_CODERATTACHE=""
		IF ENR_CONTRAT<82> = "" OR W_RETRAITEGENE<8,N> # "03" THEN
			IF W_S41G0101ACREER="OUI" THEN ENR_DADSU<-1> = W_CHAINE:"002,'":W_RETRAITEGENE<5,N>:"'"
			W_CODERATTACHE=W_RETRAITEGENE<5,N>
		END ELSE
			IF W_S41G0101ACREER="OUI" THEN ENR_DADSU<-1> = W_CHAINE:"002,'":ENR_CONTRAT<82>:"'"
			W_CODERATTACHE=ENR_CONTRAT<82>
		END
	
		W_ExisteRapport="FAUX"
		*Gestion du rapport pour la retraite
		FOR iRetRap=1 TO DCOUNT(W_TABRETRAITERAPPORT<1>,CHAR(253))
			IF W_TABRETRAITERAPPORT<1,iRetRap> = W_RETRAITEGENE<1,N> AND W_TABRETRAITERAPPORT<5,iRetRap> = W_CODERATTACHE THEN
				IF W_TABRETRAITERAPPORT<2,iRetRap> = "" THEN W_TABRETRAITERAPPORT<2,iRetRap> = 0
				IF W_TABRETRAITERAPPORT<3,iRetRap> = "" THEN W_TABRETRAITERAPPORT<3,iRetRap> = 0 
				IF W_TABRETRAITERAPPORT<7,iRetRap> = "" THEN W_TABRETRAITERAPPORT<7,iRetRap> = 0 
				IF W_RETRAITEGENE<2,N> = "" THEN W_RETRAITEGENE<2,N> = 0
				IF W_RETRAITEGENE<3,N> = "" THEN W_RETRAITEGENE<3,N> = 0
				IF W_RETRAITEGENE<7,N> = "" THEN W_RETRAITEGENE<7,N> = 0
				W_TABRETRAITERAPPORT<2,iRetRap>= W_TABRETRAITERAPPORT<2,iRetRap> + INT(W_RETRAITEGENE<2,N> / 100 + 1/2)
				W_TABRETRAITERAPPORT<3,iRetRap>= W_TABRETRAITERAPPORT<3,iRetRap> + INT(W_RETRAITEGENE<3,N> / 100 + 1/2)
				W_TABRETRAITERAPPORT<7,iRetRap>= W_TABRETRAITERAPPORT<7,iRetRap> + INT(W_RETRAITEGENE<7,N> / 100 + 1/2)				
				W_ExisteRapport="VRAI"
				EXIT
			END
		NEXT iRetRap
		IF W_ExisteRapport="FAUX" THEN
			W_Insert="FAUX"
			FOR iRetRap=1 TO DCOUNT(W_TABRETRAITERAPPORT<1>,CHAR(253))
				IF W_RETRAITEGENE<1,N> <= W_TABRETRAITERAPPORT<6,iRetRap> THEN
					W_TABRETRAITERAPPORT=INSERT(W_TABRETRAITERAPPORT,1,iRetRap;W_RETRAITEGENE<1,N>)
					W_TABRETRAITERAPPORT=INSERT(W_TABRETRAITERAPPORT,2,iRetRap;INT(W_RETRAITEGENE<2,N> / 100 + 1/2))
					W_TABRETRAITERAPPORT=INSERT(W_TABRETRAITERAPPORT,3,iRetRap;INT(W_RETRAITEGENE<3,N> / 100 + 1/2))
					W_TABRETRAITERAPPORT=INSERT(W_TABRETRAITERAPPORT,4,iRetRap;W_RETRAITEGENE<4,N>)
					W_TABRETRAITERAPPORT=INSERT(W_TABRETRAITERAPPORT,5,iRetRap;W_CODERATTACHE)
					W_TABRETRAITERAPPORT=INSERT(W_TABRETRAITERAPPORT,6,iRetRap;W_RETRAITEGENE<6,N>)
					W_TABRETRAITERAPPORT=INSERT(W_TABRETRAITERAPPORT,7,iRetRap;INT(W_RETRAITEGENE<7,N> / 100 + 1/2))
					W_Insert="VRAI"
					EXIT
				END
			NEXT iRetRap
			IF W_Insert="FAUX" THEN
				W_TABRETRAITERAPPORT<1,-1>=W_RETRAITEGENE<1,N>
				W_TABRETRAITERAPPORT<2,-1>=INT(W_RETRAITEGENE<2,N> / 100 + 1/2)
				W_TABRETRAITERAPPORT<3,-1>=INT(W_RETRAITEGENE<3,N> / 100 + 1/2)
				W_TABRETRAITERAPPORT<4,-1>=W_RETRAITEGENE<4,N>
				W_TABRETRAITERAPPORT<5,-1>=W_CODERATTACHE
				W_TABRETRAITERAPPORT<6,-1>=W_RETRAITEGENE<6,N>
				W_TABRETRAITERAPPORT<7,-1>=INT(W_RETRAITEGENE<7,N> / 100 + 1/2)
			END

		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) AND W_CASCNRACLIRCANTEC=0 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) AND W_CASCNRACLIRCANTEC=0 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

* Ajout Guillaume 12/11/08
***************************************************************
* 410102 -> BASES BRUTES EXCEPTIONNELLES (S41.G01.02)
***************************************************************
410102
    W_CHAINE = "S41.G01.02."

    IF ENR_HISTORCUMUL<31> # "" AND ENR_HISTORCUMUL<31> # "0" THEN
        W_DADSU<-1> = W_CHAINE : "001,'58'"
        W_DADSU<-1> = W_CHAINE : "002.001,'":ABS(INT(ENR_HISTORCUMUL<31>/100 + 1/2)):"'"
    END

RETURN



* Fin ajout Guillaume 12/11/08

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

**** RAJOUT GESTION HISTORCUMUL = "" - 25/02/05
	W_CUMULCODEEXO = ""
	W_CUMULPLAFEXO = 0
	W_CUMULTOTEXO = 0

* Didier le 29/01/2009 (brut  0 mais base urssaf # 0)
*	IF ENR_HISTORCUMUL = "" OR ENR_HISTORCUMUL<5> = 0 OR ENR_HISTORCUMUL<5> = "" THEN RETURN	
	IF ENR_HISTORCUMUL = "" 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_URSSAFEXO<2,Q> = INT(W_URSSAFEXO<2,Q>/100 + 1/2)
		W_URSSAFEXO<3,Q> = INT(W_URSSAFEXO<3,Q>/100 + 1/2)
		IndTabUrss = 0
		LOOP
		IndTabUrss = IndTabUrss + 1
		WHILE W_TOTALURSSAFPART<1,IndTabUrss> # "" AND W_TOTALURSSAFPART<1,IndTabUrss> # W_URSSAFEXO<1,Q>
		REPEAT
		IF W_TOTALURSSAFPART<1,IndTabUrss> = W_URSSAFEXO<1,Q> THEN
		W_TOTALURSSAFPART<2,IndTabUrss> = W_TOTALURSSAFPART<2,IndTabUrss> + W_URSSAFEXO<2,Q>
		W_TOTALURSSAFPART<3,IndTabUrss> = W_TOTALURSSAFPART<3,IndTabUrss> + W_URSSAFEXO<3,Q>
		END
		
		W_CUMULCODEEXO = W_CUMULCODEEXO:W_URSSAFEXO<1,Q>
		
		W_CUMULPLAFEXO = W_CUMULPLAFEXO + W_URSSAFEXO<3,Q>
		W_CUMULTOTEXO = W_CUMULTOTEXO + W_URSSAFEXO<2,Q>
		
	NEXT Q

	IF W_CUMULTOTEXO = 0 OR W_CUMULPLAFEXO = 0 THEN
		* Michael, le 06/12/07 : Si pas de base exo plaf, on ne declare pas de base exo plaf ! Alors qu'avant, on declarait la base totalite 
		* => Il y avait un avertissement car base exo plaf = tot > base URSSAF plafonne !
		*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
	
		IF W_CUMULCODEEXO[1,2]="01" OR W_CUMULCODEEXO[3,2]="01" OR W_CUMULCODEEXO[5,2]="01" OR W_CUMULCODEEXO[1,2]="02" OR W_CUMULCODEEXO[3,2]="02" OR W_CUMULCODEEXO[5,2]="02" OR W_CUMULCODEEXO[1,2]="11" OR W_CUMULCODEEXO[3,2]="11" OR W_CUMULCODEEXO[5,2]="11" THEN
			iRemonte=DCOUNT(ENR_DADSU,CHAR(254))-1
			LOOP
				W_LigneDadsU=ENR_DADSU<iRemonte>
			WHILE W_LigneDadsU[1,18] # "S41.G01.00.012.001" OR iRemonte=0 DO
				iRemonte=iRemonte-1
			REPEAT
			IF W_CUMULCODEEXO[1,2]="01" OR W_CUMULCODEEXO[3,2]="01" OR W_CUMULCODEEXO[5,2]="01" THEN
				ENR_DADSU<iRemonte>="S41.G01.00.012.001,'04'"
			END ELSE
				IF W_CUMULCODEEXO[1,2]="02" OR W_CUMULCODEEXO[3,2]="02" OR W_CUMULCODEEXO[5,2]="02" 0 THEN
					ENR_DADSU<iRemonte>="S41.G01.00.012.001,'05'"
				END ELSE
					ENR_DADSU<iRemonte>="S41.G01.00.012.001,'07'"
				END
			END
		END
	
		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
		* Michael, le 06/12/07 :
		*IF W_CUMULTOTEXO > 0 THEN
		IF W_CUMULPLAFEXO > 0 THEN
			ENR_DADSU<-1> = W_CHAINE:"003.001,'":W_CUMULPLAFEXO:"'"
		END ELSE
		   * Michael, le 06/12 : On ne genere cette etiquette que s'il y a lieu (pas obligatoire)
		   IF W_CUMULPLAFEXO < 0 THEN
			ENR_DADSU<-1> = W_CHAINE:"003.001,'":W_CUMULPLAFEXO*-1:"'"
			ENR_DADSU<-1> = W_CHAINE:"003.002,'N'"
		   END
		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
	IF W_DERNVENDREDIMOIS = "0" THEN
		* Michael,le 22/11/07 : 
		*W_DERNVENDREDIMOIS = ICONV(W_FINPERIODE,"D4/") + 1
		IF ENR_ASSOCIATION<25> = "1" THEN
			W_ANNEE410200=W_ANNEE+1
			W_DERNVENDREDIMOIS = ICONV("01/01/":W_ANNEE410200,"D4/")
		END ELSE
			W_DERNVENDREDIMOIS = ICONV(W_FINPERIODE,"D4/") + 1
		END
		LOOP
			W_DERNVENDREDIMOIS = W_DERNVENDREDIMOIS - 1
		WHILE MOD(W_DERNVENDREDIMOIS,7) # 5
		REPEAT
	END
	W_CHAINE = "S41.G02.00."

	* Michael, le 23/11/07 : 
	*IF ENR_CONTRAT<8> > W_DERNVENDREDIMOIS OR ENR_CONTRAT<8> = "" THEN
	IF ENR_CONTRAT<8> >= W_DERNVENDREDIMOIS 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

***************************************************************
* 413025 -> INDEM LIC. / DEPART RETRAITE (S41.G30.25)
***************************************************************
413025
W_CHAINE = "S41.G30.25."
* Michael, le 27/11/07 : 
* NB : ne teste pas si longueur < 8 char !!!
IF INT(ENR_HISTORCUMUL<29>) # 0 THEN
	* Indem depart retraite :
	ENR_DADSU<-1> = W_CHAINE:"001,'02'"
	ENR_DADSU<-1> = W_CHAINE:"002.001,'":ABS(INT((ENR_HISTORCUMUL<29>/100 )+ 1/2)):"'"
	IF ENR_HISTORCUMUL<29>  < 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"002.002,'N'"
	END
END ELSE
	IF INT(ENR_HISTORCUMUL<28>) # 0 THEN
		* Indem licenciement :
		ENR_DADSU<-1> = W_CHAINE:"001,'01'"
		ENR_DADSU<-1> = W_CHAINE:"002.001,'":ABS(INT((ENR_HISTORCUMUL<28>/100) + 1/2)):"'"
		IF ENR_HISTORCUMUL<28>  < 0 THEN
			ENR_DADSU<-1> = W_CHAINE:"002.002,'N'"
		END
	* Modif Guillaume 12/11/08 : Gestion rupture conventionnelle	
	END ELSE
	   IF INT(ENR_HISTORCUMUL<30>) # 0 AND ENR_HISTORCUMUL<30> # "" THEN
			ENR_DADSU<-1> = W_CHAINE:"001,'03'"
			ENR_DADSU<-1> = W_CHAINE : "002.001,'":ABS(INT((ENR_HISTORCUMUL<30> /100) + 1/2)):"'"
			IF ENR_HISTORCUMUL<30>  < 0 THEN
				ENR_DADSU<-1> = W_CHAINE:"002.002,'N'"
			END
	    END
	END
	* Fin modif Guillaume 12/11/08
END
RETURN

***************************************************************
* 413035 -> HEURES SUPPLEMETAIRES / COMPLEMENTAIRES (S41.G30.35)
***************************************************************
413035


	W_CHAINE = "S41.G30.35."
	* Michael, le 23/11/07 : 
	* Ajout de la structure complete :
	* NB : On utilise la valeur calcule lorsde la dclaration S41.G01.00.73...
	* Le 29/11 : On n'utilise plus la valeur de la procdure 410100 car 
	* le norme a evolu : on fait maintenant 2 structures le cas echeant (hres suppl. et hres compl.),
	*  et pour chacune d'elle il faut le montant correspondant ...
	*  
	* Modif Guillaume 12/11/08 : Mise en commentaire des ajouts de ligne de S41.G30.35.001  002 et 
	*                            dplacements de 001.001, 001.002 et 002 respectivement en 
	*                            S41.G30.36.001, 002.001 et 003.
	*                                        	
	IF INT(ENR_HISTORCUMUL<26>) # 0 OR INT(ENR_HISTORCUMUL<24>) # 0 THEN
*		
*		ENR_DADSU<-1> = W_CHAINE:"001.001,'02'"
		W_Mtnt413035 = INT(ENR_HISTORCUMUL<27>/100 + 1/2)
*		IF W_Mtnt413035 > 0 THEN
*			ENR_DADSU<-1> = W_CHAINE:"001.002,'":W_Mtnt413035:"'"
*		END ELSE
*			IF W_Mtnt413035 < 0 THEN
*				ENR_DADSU<-1> = W_CHAINE:"001.002,'":ABS(W_Mtnt413035):"'"
*				ENR_DADSU<-1> = W_CHAINE:"001.003,'N'"
*			END ELSE
*				ENR_DADSU<-1> = W_CHAINE:"001.002,'0'"
*			END
*		END
*		
*		
		W_NbHresSuppl413035 = ENR_HISTORCUMUL<26>
*		ENR_DADSU<-1> = W_CHAINE:"002,'":ABS(W_NbHresSuppl413035):"'"
*		

        W_Mtnt413035 = 0
        W_Mtnt413035Patro = 0
        W_i908 = 0
        W_i909 = 0
		i413035 = 0
		LOOP
		  i413035 = i413035 + 1
		  IF ENR_HISTORCUMUL<15,i413035> = "908" THEN W_i908 = i413035
		  IF ENR_HISTORCUMUL<15,i413035> = "909" THEN W_i909 = i413035
		WHILE ENR_HISTORCUMUL<15,i413035> # "" 
			
		REPEAT
		
		
        
        
        IF W_i908 # 0 THEN W_Mtnt413035 = INT(ENR_HISTORCUMUL<18,W_i908> / 100 + 1/2)
		IF W_i909 # 0 THEN W_Mtnt413035Patro = INT(ENR_HISTORCUMUL<19,W_i909> / 100 + 1/2)
		
		IF W_Mtnt413035 > 0 THEN 
			ENR_DADSU<-1> = W_CHAINE:"004.001,'":W_Mtnt413035:"'"
		END ELSE
			IF W_Mtnt413035 < 0 THEN 
				ENR_DADSU<-1> = W_CHAINE:"004.001,'":ABS(W_Mtnt413035):"'"
				ENR_DADSU<-1> = W_CHAINE:"004.002,'N'"
			END ELSE
                IF W_Mtnt413035Patro # "" AND W_Mtnt413035Patro # 0 THEN ENR_DADSU<-1> = W_CHAINE:"004.001,'0'"
			END
		END

		
        IF W_Mtnt413035Patro < 0 THEN 
			ENR_DADSU<-1> = W_CHAINE:"005.001,'":INT(ABS(ENR_HISTORCUMUL<19,W_i909>)/100 + 1/2):"'"
		END ELSE
			IF W_Mtnt413035Patro > 0 THEN 
				ENR_DADSU<-1> = W_CHAINE:"005.001,'":INT(ABS(ENR_HISTORCUMUL<19,W_i909>)/100 + 1/2):"'"
				ENR_DADSU<-1> = W_CHAINE:"005.002,'N'"
			END ELSE
                IF W_Mtnt413035 # "" AND W_Mtnt413035 # 0 THEN ENR_DADSU<-1> = W_CHAINE:"005.001,'0'"
			END
		END

	END

	


	* Ajout Guillaume 12/11/08
	* HEURES SUPPLEMETAIRES / COMPLEMENTAIRES (S41.G30.36)
	IF W_Mtnt413035 # "" OR W_Mtnt413035Patro # "" THEN GOSUB 413036



RETURN

* Ajout Guillaume 12/11/08
***************************************************************
* 413036 -> HEURES SUPPLEMENTAIRES / COMPLEMENTAIRES (S41.G30.36)
***************************************************************
413036

    W_CHAINE = "S41.G30.36."

	W_Mtnt413036 = INT(ENR_HISTORCUMUL<25>/100 + 1/2)
	IF W_Mtnt413036 > 0 THEN	
		ENR_DADSU<-1> = W_CHAINE:"001,'01'"
		ENR_DADSU<-1> = W_CHAINE:"002.001,'":W_Mtnt413036:"'"
		W_NbHresSuppl413036 = ENR_HISTORCUMUL<24>
		ENR_DADSU<-1> = W_CHAINE:"003,'":ABS(W_NbHresSuppl413036):"'"
    END
		
    W_Mtnt413035 = INT(ENR_HISTORCUMUL<27>/100 + 1/2)    
   	IF W_Mtnt413035 > 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"001,'02'"
        ENR_DADSU<-1> = W_CHAINE:"002.001,'":W_Mtnt413035:"'"
		W_NbHresSuppl413035 = ENR_HISTORCUMUL<26>
		ENR_DADSU<-1> = W_CHAINE:"003,'":ABS(W_NbHresSuppl413035):"'"		
    END

RETURN
* Fin ajout Guillaume 12/11/08

***************************************************************
* 420100 -> RETRAITE COMPLEMENTAIRE IRCANTEC (S42.G01.00)
***************************************************************
420100
	* Michael : SI on a des bases a zero, il fautdrait quand meme declarer le salari en IRCANTEC (sinon erreur car S42 obligatoire)
	*IF INT((W_RETRAITETOTALITEIRCANTEC/100)+1/2) = 0 AND INT((W_RETRAITEPLAFIRCANTEC/100)+1/2) = 0 THEN RETURN
	IF W_CASCNRACLIRCANTEC # 1 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

* Michael 20/11/07 : Mis en commentaires le S42.G01.00.002
	*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 

  *DEB Modif Guillaume 19/09/2008
  IF W_RETRAITEPLAFIRCANTEC = 0 THEN W_RETRAITEPLAFIRCANTEC = W_RETRAITETOTALITEIRCANTEC
    
	IF W_RETRAITETOTALITEIRCANTEC >= 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"007.001,'":INT(W_RETRAITETOTALITEIRCANTEC/100+1/2):"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"007.001,'":INT((W_RETRAITETOTALITEIRCANTEC * -1)/100+1/2):"'"
		ENR_DADSU<-1> = W_CHAINE:"007.002,'N'"
	END
	
	IF W_RETRAITETOTALITEIRCANTEC = 0 THEN W_RETRAITETOTALITEIRCANTEC = W_RETRAITEPLAFIRCANTEC
	*FIN Modif Guillaume 19/09/2008
	
	IF W_RETRAITEPLAFIRCANTEC >= 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"008.001,'":INT(W_RETRAITEPLAFIRCANTEC/100+1/2):"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"008.001,'":INT((W_RETRAITEPLAFIRCANTEC * -1)/100+1/2):"'"
		ENR_DADSU<-1> = W_CHAINE:"008.002,'N'"
	END

RETURN

***************************************************************
* 430100 -> RETRAITE COMPLEMENTAIRE CNRACL (S43.G01.00)
***************************************************************
430100
	* Michael, le 04/12/07 : Meme remarques qu'en IRCANTEC, bien que n'ai pas eu le cas 
	*IF INT((W_RETRAITESALARIECNRACL/100)+1/2) = 0 AND INT((W_RETRAITEPATROCNRACL/100)+1/2) = 0 THEN RETURN
	IF W_CASCNRACLIRCANTEC # 2 THEN RETURN

	W_DUREEWCNRACL = 0	
	W_NBMOISPRESENCE = 0

	W_CHAINE = "S43.G01.00."
	
	ENR_DADSU<-1> = W_CHAINE:"001,'03'"

	IF W_RETRAITESALARIECNRACL >= 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"002.001,'":INT(W_RETRAITESALARIECNRACL/100+1/2):"'"
* Didier le 30/11/2009 - DA9209
*	END ELSE
*		ENR_DADSU<-1> = W_CHAINE:"002.001,'":INT((W_RETRAITESALARIECNRACL * -1)/100+1/2):"'"
*		ENR_DADSU<-1> = W_CHAINE:"002.002,'N'"
	END

	IF W_RETRAITEPATROCNRACL >= 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"003.001,'":INT(W_RETRAITEPATROCNRACL/100+1/2):"'"
* Didier le 30/11/2009 - DA9209
*	END ELSE
*		ENR_DADSU<-1> = W_CHAINE:"003.001,'":INT((W_RETRAITEPATROCNRACL * -1)/100+1/2):"'"
*		ENR_DADSU<-1> = W_CHAINE:"003.002,'N'"
	END

	ENR_DADSU<-1> = W_CHAINE:"006.001,'02'"

	W_DUREEWCNRACL = INT((W_DUREEW * 12 / 52)+1/2)
	IF W_DUREEWCNRACL=0 THEN W_DUREEWCNRACL=W_TABETAB<3,I>

	IF W_DUREEWCNRACL>W_TABETAB<3,I> THEN
		ENR_DADSU<-1> = W_CHAINE:"007,'":W_TABETAB<3,I>:"'"
		ENR_DADSU<-1> = W_CHAINE:"008,'":W_TABETAB<3,I>:"'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"007,'":W_DUREEWCNRACL:"'"
		ENR_DADSU<-1> = W_CHAINE:"008,'":W_DUREEWCNRACL:"'"
	END
	ENR_DADSU<-1> = W_CHAINE:"009,'":W_TABETAB<3,I>:"'"
	READ ENR_TDSCNRACL FROM F.TDSCNRACL,W_ANCIENAIDANT[1,5]:W_CODEENTITE:W_ANNEE THEN
		IF ENR_TDSCNRACL<1>#"" AND ENR_TDSCNRACL<1>#0 THEN
			ENR_DADSU<-1> = W_CHAINE:"010,'":W_NUMEROFNC:"'"
			IF ENR_TDSCNRACL<1> >= 0 THEN
				ENR_DADSU<-1> = W_CHAINE:"011.001,'":ENR_TDSCNRACL<1>:"'"
* Didier le 30/11/2009
*			END ELSE
*				ENR_DADSU<-1> = W_CHAINE:"011.001,'":(ENR_TDSCNRACL<1> * -1):"'"
*				ENR_DADSU<-1> = W_CHAINE:"011.002,'N'"
			END
		END
		IF ENR_TDSCNRACL<2>#"" AND ENR_TDSCNRACL<2>#0 THEN
			ENR_DADSU<-1> = W_CHAINE:"013.001,'":ENR_TDSCNRACL<2>:"'"
			ENR_DADSU<-1> = W_CHAINE:"013.002,'02'"
		END

		ENR_DADSU<-1> = W_CHAINE:"017.001,'":INT(W_BASERETRAITECNRACL/100+1/2):"'"

		IF ENR_TDSCNRACL<3>#"" AND ENR_TDSCNRACL<3>#0 THEN GOSUB 430101
		
		*Matthieu : Le 20 01 2009
		*Etiquette S53.G01.00 pour la fonction publique
		
		W_CHAINE = "S53.G01.00."
		IF ENR_TDSCNRACL<5> # "" AND ENR_TDSCNRACL<5>#0 THEN
			
			ENR_DADSU<-1> = W_CHAINE:"001,'90'"
			
			ENR_DADSU<-1> = W_CHAINE:"002,'9999'"
			
			ENR_DADSU<-1> = W_CHAINE:"003,'9999'"
			
			ENR_DADSU<-1> = W_CHAINE:"004,'9999'"
			
			ENR_DADSU<-1> = W_CHAINE:"005,'001'"
			
			ENR_DADSU<-1> = W_CHAINE:"006,'":ENR_ASSOCIATION<2>:"'"
			
			ENR_DADSU<-1> = W_CHAINE:"007.001,'":ENR_ASSOCIATION<14>:"'"
			ENR_DADSU<-1> = W_CHAINE:"007.002,'":W_SIRET:"'"
			
			ENR_DADSU<-1> = W_CHAINE:"008.001,'":ENR_TDSCNRACL<5>:"'"
			IF ENR_TDSCNRACL<5> < 0 AND ENR_TDSCNRACL<5> # "" THEN
				ENR_DADSU<-1> = W_CHAINE:"008.002,'N'"
			END

			ENR_DADSU<-1> = W_CHAINE:"009.001,'":ENR_TDSCNRACL<6>:"'"
			IF ENR_TDSCNRACL<6> < 0 AND ENR_TDSCNRACL<6> # "" THEN
				ENR_DADSU<-1> = W_CHAINE:"009.002,'N'"
			END
			
			ENR_DADSU<-1> = W_CHAINE:"010.001,'":ENR_TDSCNRACL<7>:"'"
			IF ENR_TDSCNRACL<7> < 0 AND ENR_TDSCNRACL<7> # "" THEN
				ENR_DADSU<-1> = W_CHAINE:"010.002,'N'"
			END
			
		END
		*Fin Modifs Matthieu
		
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"017.001,'":INT(W_BASERETRAITECNRACL/100+1/2):"'"
	END
RETURN

***************************************************************
* 430101 -> BONIFICATIONS ET AUTRES COTISATION - EXCLUSIF CNRACL
***************************************************************
430101

	W_CHAINE = "S43.G01.01."
	
	ENR_DADSU<-1> = W_CHAINE:"001,'20'"

	* Michael, le 20/11/07
	*IF W_DATEDEBCONTRAT < ICONV(W_DEBUTPERIODE,"D4/") THEN 
	*	ENR_DADSU<-1> = W_CHAINE:"002,'":W_DEBUTPERIODE[1,2]:W_DEBUTPERIODE[4,2]:"'"
	*END ELSE
	*	W_DATEDEBCONTRATBIS=OCONV(W_DATEDEBCONTRAT,"D4/")
	*	ENR_DADSU<-1> = W_CHAINE:"002,'":W_DATEDEBCONTRATBIS[1,2]:W_DATEDEBCONTRATBIS[4,2]:"'"	
	*END
	IF W_DATEDEBCONTRAT < ICONV(W_DEBUTPERIODE,"D4/") THEN 
		ENR_DADSU<-1> = W_CHAINE:"002,'":W_DEBUTPERIODE[1,2]:W_DEBUTPERIODE[4,2]:W_DEBUTPERIODE[7,4]:"'"
	END ELSE
		W_DATEDEBCONTRATBIS=OCONV(W_DATEDEBCONTRAT,"D4/")
		ENR_DADSU<-1> = W_CHAINE:"002,'":W_DATEDEBCONTRATBIS[1,2]:W_DATEDEBCONTRATBIS[4,2]:W_DATEDEBCONTRATBIS[7,4]:"'"	
	END

	* Michael, le 20/ 11/07
	*IF W_DATEFINCONTRAT > ICONV(W_FINPERIODE,"D4/") OR W_DATEFINCONTRAT = "" THEN
	*	ENR_DADSU<-1> = W_CHAINE:"003,'":W_FINPERIODE[1,2]:W_FINPERIODE[4,2]:"'"
	*END ELSE
	*	W_DATEFINCONTRATBIS=OCONV(W_DATEFINCONTRAT,"D4/")
	*	ENR_DADSU<-1> = W_CHAINE:"003,'":W_DATEFINCONTRATBIS[1,2]:W_DATEFINCONTRATBIS[4,2]:"'"
	*END
	IF W_DATEFINCONTRAT > ICONV(W_FINPERIODE,"D4/") OR W_DATEFINCONTRAT = "" THEN
		ENR_DADSU<-1> = W_CHAINE:"003,'":W_FINPERIODE[1,2]:W_FINPERIODE[4,2]:W_FINPERIODE[7,4]:"'"
	END ELSE
		W_DATEFINCONTRATBIS=OCONV(W_DATEFINCONTRAT,"D4/")
		ENR_DADSU<-1> = W_CHAINE:"003,'":W_DATEFINCONTRATBIS[1,2]:W_DATEFINCONTRATBIS[4,2]:W_DATEFINCONTRATBIS[7,4]:"'"
	END


	IF ENR_TDSCNRACL<3> >= 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"004.001,'":ENR_TDSCNRACL<3>:"'"
* Didier le 30/11/2009 - DA9209
*	END ELSE
*		ENR_DADSU<-1> = W_CHAINE:"004.001,'":(ENR_TDSCNRACL<3> * -1):"'"
*		ENR_DADSU<-1> = W_CHAINE:"004.002,'N'"
	END

* DIDIER 14/01/2009 - DA9209
        ENR_DADSU<-1> = W_CHAINE:"005.001,'0'"
* FIN MODIF

	IF ENR_TDSCNRACL<4> >= 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"006.001,'":ENR_TDSCNRACL<4> * 100:"'"
* Didier le 30/11/2009 - DA9209
*	END ELSE
*		ENR_DADSU<-1> = W_CHAINE:"006.001,'":(ENR_TDSCNRACL<4> * -100):"'"
*		ENR_DADSU<-1> = W_CHAINE:"006.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
	* Michael le 04/12/07 : 
	*IF W_RETRAITETOTALITEIRCANTEC#0 OR W_RETRAITEPLAFIRCANTEC#0 OR W_RETRAITESALARIECNRACL#0 OR W_RETRAITEPATROCNRACL#0 THEN RETURN
	IF W_CASCNRACLIRCANTEC # 0 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

	W_REQUETEABS='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/"):'"'
	W_REQUETEABS=W_REQUETEABS:' OR AVEC CodeAidant = "':W_ANCIENAIDANT[1,5]:'" AND AVEC NumMotifAidant = "13" AND AVEC FinAbsAidant >= "':ICONV(W_DEBUTACTIVITECONTRAT,"D4/"):'" AND AVEC DebAbsAidant <= "':ICONV(W_FINACTIVITECONTRAT,"D4/"):'" PAR DebAbsAidant'
	EXECUTE W_REQUETEABS
	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 
*			PRINT CLEABS
*			PRINT CLEABS[8,5]:"-":INT(ICONV(W_DEBUTACTIVITECONTRAT,"D4/")):"-":INT(ENR_ABSENCESAIDANT<2>):"-":INT(ICONV(W_FINACTIVITECONTRAT,"D4/"))
*			DEBUG
		* ...
*		END ELSE
*CHRISTOPHE LE 08/01/2006
		IF INT(CLEABS[8,5]) <= INT(ICONV(W_FINACTIVITECONTRAT,"D4/")) AND INT(ENR_ABSENCESAIDANT<2>) => INT(ICONV(W_DEBUTACTIVITECONTRAT,"D4/")) THEN
		   W_PRENDREABS="NON"
		   IF W_RETRAITESALARIECNRACL#0 OR W_RETRAITEPATROCNRACL#0 THEN
			IF CLEABS[6,2] = "02" OR CLEABS[6,2] = "03" THEN W_PRENDREABS="OUI"
		   END ELSE
			IF CLEABS[6,2] # "13" THEN W_PRENDREABS="OUI"
		   END
		   IF W_PRENDREABS="OUI" THEN		
			W_Faire460100004 = "F"
			IF CLEABS[6,2] = "01" THEN ENR_DADSU<-1> = W_CHAINE:"001,'09'"
		
			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
			
			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 CLEABS[6,2] = "13" THEN ENR_DADSU<-1> = W_CHAINE:"001,'33'"

			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

			*test par rapport a la periode d'activit S41.G01.00
			IF W_DEBUTABS < ICONV(W_DEBUTACTIVITECONTRAT,"D4/")  THEN
				* Michael, le 03/12/07 : 
				*W_DEBUTABS =ICONV(W_DEBUTACTIVITECONTRAT,"D4/")
				W_Faire460100004 = "V"
			END
			IF W_FINABS > ICONV(W_FINACTIVITECONTRAT,"D4/")  THEN
				W_FINABS =ICONV(W_FINACTIVITECONTRAT,"D4/")
			END
			* Michael, le 20/11/07 :
			*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]:"'"
			ENR_DADSU<-1> = W_CHAINE:"002,'":CONVERT("/","",OCONV(W_DEBUTABS,"D4/")):"'"
			ENR_DADSU<-1> = W_CHAINE:"003,'":CONVERT("/","",OCONV(W_FINABS,"D4/")):"'"

		* Michael, le 03/12/07 :
		*	IF ENR_ASSOCIATION<25> = "1" THEN
		*	    IF W_DEBUTABS < ICONV("01/01/":W_ANNEE,"D4/") THEN
		*		IF W_FINABS < ICONV("01/01/":W_ANNEE,"D4/") THEN	
		*			ENR_DADSU<-1> = W_CHAINE:"004,'02'"
		*		END ELSE
		*			ENR_DADSU<-1> = W_CHAINE:"004,'03'"
		*		END		
		*	    END	
		*	END
			IF W_Faire460100004 = "V" THEN
				ENR_DADSU<-1> = W_CHAINE:"004,'01'"
			END

			* DUREE ABSENCE
			IF W_CASCNRACLIRCANTEC=0 THEN GOSUB 460102
			IF W_CASCNRACLIRCANTEC#0 THEN GOSUB 460101
		   END
		END
	REPEAT
	

RETURN

***************************************************************
* 460101 -> SITUATION PARTICULIERE IRCANTEC - CNRACL (S46.G01.01)
***************************************************************
460101

	W_CHAINE = "S46.G01.01."
	IF W_CASCNRACLIRCANTEC=1 THEN
		ENR_DADSU<-1> = W_CHAINE:"001,'01'"
		ENR_DADSU<-1> = W_CHAINE:"002.001,'0'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"001,'02'"
		ENR_DADSU<-1> = W_CHAINE:"004,'0'"
	END

RETURN

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

	W_CHAINE = "S46.G01.02."
	* Michael 20/11/07 : Remplace :
	* ENR_DADSU<-1> = W_CHAINE:"001,'03'"
	* PAR :
	ENR_DADSU<-1> = W_CHAINE:"001.001,'03'"
	ENR_DADSU<-1> = W_CHAINE:"001.002,'01'"
	* Fin modif MT 20/11/07

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

	W_TXTACONVERTIR=ENR_TDSHONORAIRES<1>
	GOSUB 999999
	ENR_TDSHONORAIRES<1>=W_TXTACONVERTIR
	* 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>):"'"
		W_TXTACONVERTIR=ENR_TDSHONORAIRES<31>
		GOSUB 999999
		ENR_TDSHONORAIRES<31>=W_TXTACONVERTIR
		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
	W_TXTACONVERTIR=ENR_TDSHONORAIRES<8>
	GOSUB 999999
	ENR_TDSHONORAIRES<8>=W_TXTACONVERTIR
	IF TRIM(ENR_TDSHONORAIRES<8>) # "" THEN ENR_DADSU<-1> = W_CHAINE:"004.001,'":ENR_TDSHONORAIRES<8>:"'"
	W_TXTACONVERTIR=ENR_TDSHONORAIRES<4>
	GOSUB 999999
	ENR_TDSHONORAIRES<4>=W_TXTACONVERTIR
	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
	W_TXTACONVERTIR=ENR_TDSHONORAIRES<6>
	GOSUB 999999
	ENR_TDSHONORAIRES<6>=W_TXTACONVERTIR
	W_TXTACONVERTIR=ENR_TDSHONORAIRES<7>
	GOSUB 999999
	ENR_TDSHONORAIRES<7>=W_TXTACONVERTIR
	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
	W_TXTACONVERTIR=ENR_TDSHONORAIRES<9>
	GOSUB 999999
	ENR_TDSHONORAIRES<9>=W_TXTACONVERTIR
	W_TXTACONVERTIR=ENR_TDSHONORAIRES<10>
	GOSUB 999999
	ENR_TDSHONORAIRES<10>=W_TXTACONVERTIR
	ENR_DADSU<-1> = W_CHAINE:"004.010,'":ENR_TDSHONORAIRES<9>:"'"
	ENR_DADSU<-1> = W_CHAINE:"004.012,'":ENR_TDSHONORAIRES<10>:"'"

	* PROFESSION / QUALITE
	W_TXTACONVERTIR=ENR_TDSHONORAIRES<33>
	GOSUB 999999
	ENR_TDSHONORAIRES<33>=W_TXTACONVERTIR
	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
	
	IF ENR_TDSHONORAIRES<25> # "" AND ENR_TDSHONORAIRES<25> # "0" THEN
		* 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>:"'"
	END

	* 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 = 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
	W_TXTACONVERTIR=ENR_ETABLISSEMENT<2>
	GOSUB 999999
	ENR_ETABLISSEMENT<2>=W_TXTACONVERTIR

	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>:"'"
	* Michael, le 20/11/07 : ramplac :
*	ENR_DADSU<-1> = W_CHAINE:"007,'04'"
	* Par :
	ENR_DADSU<-1> = W_CHAINE:"007.001,'04'"

RETURN

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

W_CHAINE = "S80.G62."

IF INT(W_TABETAB<12,A>) > 0 THEN
	* Il y a bien un montant en taxe d'apprentissage 
	ENR_DADSU<-1> = W_CHAINE:"05.001,'01'"
	ENR_DADSU<-1> = W_CHAINE:"05.002.001,'":W_TABETAB<12,A>:"'"
END ELSE
	IF INT(W_TABETAB<12,A>) < 0 THEN
		* Il y a bien un montant en taxe d'apprentissage 
		ENR_DADSU<-1> = W_CHAINE:"05.001,'01'"
		W_TABETAB<12,A> = W_TABETAB<12,A> * - 1
		ENR_DADSU<-1> = W_CHAINE:"05.002.001,'":W_TABETAB<12,A>:"'"
		* Michael : on repasse en negatif pour le cas o l'on aurait un 2nd passage... Meme si ne doit pas arriver...
		W_TABETAB<12,A> = W_TABETAB<12,A> * - 1
		ENR_DADSU<-1> = W_CHAINE:"05.002.002,'N'"

	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"05.001,'02'"
	END
END
IF INT(W_TABETAB<14,A>) <> 0 THEN
	* Il y a bien un montant en base formation continue
	ENR_DADSU<-1> = W_CHAINE:"10.001,'01'"
	IF INT(W_TABETAB<13,A>) > 0 THEN
		* Presence d'un montant pour les CDD :
		ENR_DADSU<-1> = W_CHAINE:"10.002.001,'":W_TABETAB<13,A>:"'"
	END ELSE
		IF INT(W_TABETAB<13,A>) < 0 THEN
			W_TABETAB<13,A> = W_TABETAB<13,A> * - 1
			ENR_DADSU<-1> = W_CHAINE:"10.002.001,'":W_TABETAB<13,A>:"'"
			* Michael : on repasse en negatif pour le cas o l'on aurait un 2nd passage... Meme si ne doit pas arriver...
			W_TABETAB<13,A> = W_TABETAB<13,A> * - 1
			ENR_DADSU<-1> = W_CHAINE:"10.002.002,'N'"
		END
	END
	IF INT(W_TABETAB<14,A>) > 0 THEN
		ENR_DADSU<-1> = W_CHAINE:"10.003.001,'":W_TABETAB<14,A>:"'"
	END ELSE
		W_TABETAB<14,A> = W_TABETAB<14,A> * - 1
		ENR_DADSU<-1> = W_CHAINE:"10.003.001,'":W_TABETAB<14,A>:"'"
		* Michael : on repasse en negatif pour le cas o l'on aurait un 2nd passage... Meme si ne doit pas arriver...
		W_TABETAB<14,A> = W_TABETAB<14,A> * - 1
		ENR_DADSU<-1> = W_CHAINE:"10.003.002,'N'"
	END
END ELSE
	ENR_DADSU<-1> = W_CHAINE:"10.001,'02'"
END

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


* Modif Guillaume 19/11/08
***************************************************************
* 999999 -> GESTION DES CONVERT
***************************************************************
999999

	FOR Z = 1 TO LEN(W_TXTACONVERTIR)
*        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]) = 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
*
*		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 240 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 241 THEN 
*			W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
*			Z = Z - 1
*		END
*
*		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 247 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 248 THEN 
*			W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
*			Z = Z - 1
*		END
*
*		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 254 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 255 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]
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 224 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 230 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]
		IF SEQ(W_TXTACONVERTIR[Z,1]) = 231 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]
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 232 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 235 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]
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 236 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 239 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]
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 242 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 246 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]
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 249 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 252 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]		
		IF SEQ(W_TXTACONVERTIR[Z,1]) = 253 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:"Y":W_TXTACONVERTIR[Z+1,999]		

        * Si pas espace
        IF SEQ(W_TXTACONVERTIR[Z,1]) # 32 THEN
            * Si pas chiffre
            IF SEQ(W_TXTACONVERTIR[Z,1]) < 48 OR SEQ(W_TXTACONVERTIR[Z,1]) > 57 THEN
                * Si pas lettre majuscule
                IF SEQ(W_TXTACONVERTIR[Z,1]) < 65 OR SEQ(W_TXTACONVERTIR[Z,1]) > 90 THEN
                    * Si pas lettre minuscule
                    IF SEQ(W_TXTACONVERTIR[Z,1]) < 97 OR SEQ(W_TXTACONVERTIR[Z,1]) > 122 THEN
                        * Trait d'union et point
                        IF SEQ(W_TXTACONVERTIR[Z,1]) # 45 AND SEQ(W_TXTACONVERTIR[Z,1]) # 46 THEN
                            * Si pas , , , , , , , , , , , , 
                            IF SEQ(W_TXTACONVERTIR[Z,1]) # 224 AND SEQ(W_TXTACONVERTIR[Z,1]) # 226 AND SEQ(W_TXTACONVERTIR[Z,1]) # 231 AND SEQ(W_TXTACONVERTIR[Z,1]) # 232 AND SEQ(W_TXTACONVERTIR[Z,1]) # 233 AND SEQ(W_TXTACONVERTIR[Z,1]) # 234 AND SEQ(W_TXTACONVERTIR[Z,1]) # 235 AND SEQ(W_TXTACONVERTIR[Z,1]) # 238 AND SEQ(W_TXTACONVERTIR[Z,1]) # 239 AND SEQ(W_TXTACONVERTIR[Z,1]) # 244 AND SEQ(W_TXTACONVERTIR[Z,1]) # 249 AND SEQ(W_TXTACONVERTIR[Z,1]) # 251 AND SEQ(W_TXTACONVERTIR[Z,1]) # 252 THEN
                                W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
    			                Z = Z - 1
    			            END
    			        END ELSE
    			            IF SEQ(W_TXTACONVERTIR[Z,1]) = 46 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z]:" ":W_TXTACONVERTIR[Z+1,LEN(W_TXTACONVERTIR)-Z]
    			            IF SEQ(W_TXTACONVERTIR[Z,1]) = 45 AND SEQ(W_TXTACONVERTIR[Z-1,1]) = 32 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-2]:W_TXTACONVERTIR[Z,999]
    			        END			             
    			    END
    			END
            END
        END ELSE
            * Gestion des double-espaces.
            IF SEQ(W_TXTACONVERTIR[Z+1,1]) = 32 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]  
        END
        * Fin modif Guillaume 19/11/08
	NEXT Z

    * Vrifie que le premier et dernier caractres sont bien des dans [A-Z], [a-z] ou [0-9], le cas chant on efface.    
    LOOP
    WHILE ((SEQ(W_TXTACONVERTIR[1,1]) < 48 OR SEQ(W_TXTACONVERTIR[1,1]) > 57) AND (SEQ(W_TXTACONVERTIR[1,1]) < 65 OR SEQ(W_TXTACONVERTIR[1,1]) > 90) AND (SEQ(W_TXTACONVERTIR[1,1]) < 97 OR SEQ(W_TXTACONVERTIR[1,1]) > 122))
        IF W_TXTACONVERTIR = "" THEN EXIT
        W_TXTACONVERTIR = W_TXTACONVERTIR[2,LEN(W_TXTACONVERTIR)-1]       
    
    REPEAT
    
    LOOP    
    WHILE ((SEQ(W_TXTACONVERTIR[LEN(W_TXTACONVERTIR),1]) < 48 OR SEQ(W_TXTACONVERTIR[LEN(W_TXTACONVERTIR),1]) > 57) AND (SEQ(W_TXTACONVERTIR[LEN(W_TXTACONVERTIR),1]) < 65 OR SEQ(W_TXTACONVERTIR[LEN(W_TXTACONVERTIR),1]) > 90) AND (SEQ(W_TXTACONVERTIR[LEN(W_TXTACONVERTIR),1]) < 97 OR SEQ(W_TXTACONVERTIR[LEN(W_TXTACONVERTIR),1]) > 122)) DO
        IF W_TXTACONVERTIR = "" THEN EXIT
        W_TXTACONVERTIR = W_TXTACONVERTIR[1,LEN(W_TXTACONVERTIR)-1]        
    REPEAT
       
*	W_TXTACONVERTIR = TRIM(W_TXTACONVERTIR)

RETURN


***************************************************************
* 999999 -> GESTION DES CONVERT : Adr mail asso ...
***************************************************************
9999992
W_Arobas = 0
W_TXTACONVERTIR = W_VerifMail
	FOR Z = 1 TO LEN(W_TXTACONVERTIR)
	  IF Z > LEN(W_TXTACONVERTIR) THEN EXIT
	  IF W_TXTACONVERTIR[Z,1] = "@" THEN
		IF W_Arobas = 0 THEN
			W_Arobas = Z
		END ELSE
			W_VerifMail = ""
			EXIT
		END
	  END ELSE
	    IF W_TXTACONVERTIR[Z,1] = "." OR W_TXTACONVERTIR[Z,1] = "_" OR W_TXTACONVERTIR[Z,1] = "-" THEN
	    END ELSE

		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

		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 240 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 241 THEN 
			W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
			Z = Z - 1
		END

		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 247 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 248 THEN 
			W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
			Z = Z - 1
		END

		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 254 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 255 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]
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 224 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 230 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]
		IF SEQ(W_TXTACONVERTIR[Z,1]) = 231 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]
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 232 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 235 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]
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 236 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 239 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]
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 242 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 246 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]
		IF SEQ(W_TXTACONVERTIR[Z,1]) >= 249 AND SEQ(W_TXTACONVERTIR[Z,1]) <= 252 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]		
		IF SEQ(W_TXTACONVERTIR[Z,1]) = 253 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:"Y":W_TXTACONVERTIR[Z+1,999]		

	    END
	  END
	NEXT Z

	W_VerifMail = TRIM(W_TXTACONVERTIR)
	IF INDEX(W_VerifMail[W_Arobas, LEN(W_VerifMail)-W_Arobas],".",1) = 0 THEN
		W_VerifMail = ""
	END 

RETURN

***************************************************************
* 9999993 -> Salarie absents sur tout l'exercice : 
* gnration d'un HISTORCUMUL vide a partir du profil de paie ...
***************************************************************
9999993
ENR_HISTORCUMUL = ""
READ ENR_PROFIL FROM F.PROFIL, ENR_CONTRAT<26> THEN
	ENR_HISTORCUMUL<1> = "0"
	ENR_HISTORCUMUL<2> = "0"
	ENR_HISTORCUMUL<3> = ""
	ENR_HISTORCUMUL<4> = "0"
	ENR_HISTORCUMUL<5> = "0"
	ENR_HISTORCUMUL<6> = "0"
	ENR_HISTORCUMUL<7> = "0"
	ENR_HISTORCUMUL<8> = "0"
	ENR_HISTORCUMUL<9> = ""
	ENR_HISTORCUMUL<10> = "0"
	* Nb : Ces att ne sont pas utiliss => gnrs pour la forme ... !
	ENR_HISTORCUMUL<11> = ""
	ENR_HISTORCUMUL<12> = ""
	ENR_HISTORCUMUL<13> = ""
	ENR_HISTORCUMUL<14> = ""
	* Fin att pas utiliss...
	ENR_HISTORCUMUL<15> = ""
	i9999993 = 0
	W_Count9999993 = DCOUNT(ENR_PROFIL<3>,CHAR(253))
	LOOP
	i9999993 = i9999993 + 1
	WHILE i9999993 <= W_Count9999993
		ENR_HISTORCUMUL<15,i9999993> = ENR_PROFIL<3,i9999993>
		ENR_HISTORCUMUL<16,i9999993> = "0"
		ENR_HISTORCUMUL<17,i9999993> = "0"
		ENR_HISTORCUMUL<18,i9999993> = "0"
		ENR_HISTORCUMUL<19,i9999993> = "0"
	REPEAT
	ENR_HISTORCUMUL<20> = "0"
	ENR_HISTORCUMUL<21> = "0"
	ENR_HISTORCUMUL<22> = ""
	ENR_HISTORCUMUL<23> = ""
	ENR_HISTORCUMUL<24> = "0"
	ENR_HISTORCUMUL<25> = "0"
	ENR_HISTORCUMUL<26> = "0"
	ENR_HISTORCUMUL<27> = "0"
	ENR_HISTORCUMUL<28> = "0"
	ENR_HISTORCUMUL<28> = "0"
END	
RETURN

******************************************************************************************
* 410100000000  : IMPORTANT : Si decalage de paie, gestion des dclarations prudhommales pour salaris 
* entrs APRES le 30/11/Exercice ...
******************************************************************************************
410100000000
IF W_DERNVENDREDIMOIS = "0" THEN
	* Michael,le 22/11/07 : 
	*W_DERNVENDREDIMOIS = ICONV(W_FINPERIODE,"D4/") + 1
	IF ENR_ASSOCIATION<25> = "1" THEN
		W_ANNEE410200=W_ANNEE+1
		W_DERNVENDREDIMOIS = ICONV("01/01/":W_ANNEE410200,"D4/")
	END ELSE
		W_DERNVENDREDIMOIS = ICONV(W_FINPERIODE,"D4/") + 1
	END
	LOOP
		W_DERNVENDREDIMOIS = W_DERNVENDREDIMOIS - 1
	WHILE MOD(W_DERNVENDREDIMOIS,7) # 5
	REPEAT
END
IF ENR_CONTRAT<8> >= W_DERNVENDREDIMOIS OR ENR_CONTRAT<8> = "" THEN
* Il FAUT faire une decl a zero :
  * STRUCTURE S30.G01.xx
  GOSUB 300100

	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_RETRAITESALARIECNRACL = 0
	W_RETRAITEPATROCNRACL = 0
	W_BASERETRAITECNRACL = 0

	W_RETRAITETB = 0
	W_RETRAITETBCADRE = 0
	
	W_NOMAIDANT = ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
	W_NOMAIDANT = W_NOMAIDANT[1,25] "L#25"

	W_CodeEtabContrat = ENR_CONTRAT<3>[4,3]

*	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

*	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


*christophe le 18/01/2007
	IF W_FINACTIVITE = "" OR ICONV(W_FINACTIVITE,"D4/") > ICONV("31/12/":W_ANNEE,"D4/") THEN
			W_FINACTIVITE = "31/12/":W_ANNEE
	END

*	IF W_FINACTIVITE = "" THEN
*			W_FINACTIVITE = "31/12/":W_ANNEE
*	END
	W_DEBUTACTIVITECONTRAT = W_DEBUTACTIVITE 
	W_FINACTIVITECONTRAT = W_FINACTIVITE
	* Michael, LE 20/11/07 :
	*W_DEBUTACTIVITE = CONVERT("/","",W_DEBUTACTIVITE)[1,4]
	*W_FINACTIVITE = CONVERT("/","",W_FINACTIVITE)[1,4]
	W_DEBUTACTIVITE = CONVERT("/","",W_DEBUTACTIVITE)
	W_FINACTIVITE = CONVERT("/","",W_FINACTIVITE)


	ENR_DADSU<-1> = W_CHAINE:"001,'":W_DEBUTACTIVITE:"'"
	ENR_DADSU<-1> = W_CHAINE:"002.001,'001'"
	ENR_DADSU<-1> = W_CHAINE:"003,'":W_FINACTIVITE:"'"
	IF ENR_CONTRAT<8>  = ICONV("31/12/":W_ANNEE,"D4/")-1 THEN
		ENR_DADSU<-1> = W_CHAINE:"004.001,'098'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"004.001,'008'"
	END

	* 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'"


	ENR_DADSU<-1> = W_CHAINE:"009,'05'"

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

	*christophe le 23/01/2008
	IF G=0 THEN G=1
	
	* NATURE EMPLOI + PCS

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

	ENR_DADSU<-1> = W_CHAINE:"010,'":ENR_CONTRAT<16,G>:"'"
	ENR_DADSU<-1> = W_CHAINE:"011.001,'":ENR_CONTRAT<17,G>:"'"
	
	*VICTOR 02/10/2006
	* GESTION DES CUMULS HISTORCUMUL
	GOSUB 410100100000

	IF ENR_CONTRAT<13> = "CES" OR ENR_CONTRAT<13> = "CEJ" OR ENR_CONTRAT<13> = "CA" OR ENR_CONTRAT<13> = "CAE" THEN
		IF ENR_CONTRAT<13> = "CES" THEN
			W_CODENATURECONTRAT = "07"
		END ELSE
			IF ENR_CONTRAT<13> = "CEJ" THEN
				W_CODENATURECONTRAT = "06"
			END ELSE
				IF ENR_CONTRAT<13> = "CAE" THEN
					W_CODENATURECONTRAT = "25"
				END ELSE
					W_CODENATURECONTRAT = "26"
				END
			END
		END

	END ELSE
		IF ENR_CONTRAT<4> = "D" THEN
			W_CODENATURECONTRAT = "02"
		END ELSE
			W_CODENATURECONTRAT = "01"
		END		
	END
	IF W_CASCNRACLIRCANTEC=2 THEN W_CODENATURECONTRAT = "90"
	ENR_DADSU<-1> = W_CHAINE:"012.001,'":W_CODENATURECONTRAT:"'"
	ENR_DADSU<-1> = W_CHAINE:"012.002,'01'"

	* DUREE CONTRAT
	IF ENR_CONTRAT<25,G> = "1" THEN W_DUREEW = INT((ENR_CONTRAT<24,G> * 52/12)+1/2)
	IF ENR_CONTRAT<25,G> = "2" THEN W_DUREEW = INT((ENR_CONTRAT<24,G> * 26/12)+1/2)
	IF ENR_CONTRAT<25,G> = "3" THEN W_DUREEW = ENR_CONTRAT<24,G> 
	IF ENR_CONTRAT<25,G> = "4" THEN W_DUREEW = INT((ENR_CONTRAT<24,G> /12)+1/2)
	W_TEMPSPLEIN="NON"
	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 = ""
		W_TEMPSPLEIN="OUI"
	END ELSE
	*christophe le 18/01/2007
		ENR_DADSU<-1> = W_CHAINE:"013,'90'"	
		*ENR_DADSU<-1> = W_CHAINE:"013,'02'"
		W_POURCDUREEW = INT(W_DUREEW / W_DUREEETAB * 10000)
	END

	* 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,G>[1,1] = "3" OR ENR_CONTRAT<17,G>[1,2] = "23" OR ENR_CONTRAT<17,G>[1,3] = "431a" THEN
		W_CODEPCS = "12"
	END ELSE
		W_CODEPCS = "90"
		IF ENR_CONTRAT<17,G>[1,1] = "4" THEN W_CODEPCS = "04"
		IF ENR_CONTRAT<17,G>[1,1] = "5" THEN W_CODEPCS = "02"
		IF ENR_CONTRAT<17,G>[1,1] = "6" THEN W_CODEPCS = "01"
	END
	IF W_CASCNRACLIRCANTEC=1 THEN W_CODEPCS = "64"
	IF W_CASCNRACLIRCANTEC=2 THEN W_CODEPCS = "63"
	ENR_DADSU<-1> = W_CHAINE:"014,'":W_CODEPCS:"'"

	*VICTOR DEBUG	
	* michael, suite Victor : on affecte dans W_RETRAITETBCADRE la bse de cotisation Tr B cadre, or est utilis comme un bolleen => 
	* => A partir de maintenent, vais aussi la valoriser pour Tr totalit (GMP) ainsi que pour eventuelles rub retr plafonnes, bien que ne devrait pas avoir lieu 
	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 AND W_CODEPCS # "02" AND W_CODEPCS # "01" 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,G>/1000:"'"

	IF W_CASCNRACLIRCANTEC=2 THEN
*		ENR_DADSU<-1> = W_CHAINE:"018.002,'900'"
*		ENR_DADSU<-1> = W_CHAINE:"018.003,'900'"
*		ENR_DADSU<-1> = W_CHAINE:"018.004,'120'"
*		ENR_DADSU<-1> = W_CHAINE:"018.005,'120'"
	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"018.001,'200'"
	END
*	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_CASCNRACLIRCANTEC=2 AND W_TEMPSPLEIN="NON" AND W_POURCDUREEW<=5000 THEN W_POURCDUREEW=5000
*	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
*	IF W_CASCNRACLIRCANTEC#2 THEN

    * Modif Guillaume 17/12/08
    ENR_DADSU<-1> = W_CHAINE:"023.001,'99'"
    ENR_DADSU<-1> = W_CHAINE:"023.002,'99'"
    ENR_DADSU<-1> = W_CHAINE:"023.003,'99'"
    * Fin modif Guillaume
    
		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>:"'"
*	END

	*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,'0'"
*	END

*	IF W_NaturebaseCotis = "Forfait" THEN
*		ENR_DADSU<-1> = W_CHAINE:"029.003,'02'"
*	END ELSE
		ENR_DADSU<-1> = W_CHAINE:"029.003,'01'"
*	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,'0'"
*	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> = W_ANCIENAIDANT:" | ":W_NOMAIDANT:" | LA BASE S.S PLAF (":W_URSSAFPLAF/100:") EST > A LA BASE S.S TOT (":W_URSSAFTOT/100:")"
*		*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,'0'"
*	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,'0'"
*	END

	* CUMUL BRUT
*	IF ENR_HISTORCUMUL<5> < 0 THEN 
		ENR_DADSU<-1> = W_CHAINE:"035.001,'0'"
*	END ELSE
*		ENR_DADSU<-1> = W_CHAINE:"035.001,'":INT((ENR_HISTORCUMUL<5>/100)+1/2):"'"
*	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'"
*		END ELSE
			ENR_DADSU<-1> = W_CHAINE:"063.001,'0'"
*		END
*	END

* Attention : en dur, on n'inbdique aucun rattachement a un org de retraite :

		W_CHAINE = "S41.G01.01."
		ENR_DADSU<-1> = W_CHAINE:"001,'90000'"

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


		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
RETURN
***************************************************************
* 4101001 -> GESTION DES CUMULS DADS (S41.G01.00)
***************************************************************
410100100000	

	GOSUB 9999993

	W_NBRUBCUMUL = DCOUNT(ENR_HISTORCUMUL<15>,CHAR(253))
	W_BASERETRAITEPREC = 0
	W_BASERETRAITEPRECTOT = 0
	W_BASERETRAITEPRECTB = 0
	W_URSSAFPLAFEXO = 0
	W_NUMEROFNC=""
	W_CASCNRACLIRCANTEC=0
	W_NaturebaseCotis = "Reelle"
	W_RANGTB = 0


	FOR K = 1 TO W_NBRUBCUMUL
	W_NBORG = DCOUNT(W_TABRETRAITE<1>,CHAR(253))
		
		FOR M = 1 TO W_NBORG
		   IF W_TABRETRAITE<1,M>[4,3] = "000" OR W_TABRETRAITE<1,M>[4,3] = W_CodeEtabContrat THEN
			* RETRAITE GENERALE
			*TRANCHE TOTALITE
			IF INDEX(W_TABRETRAITE<2,M>,ENR_HISTORCUMUL<15,K>,1) # 0 THEN 
				IF W_TABRETRAITE<9,M> #"03" THEN
				   * Retraite cadre !
				   W_RETRAITETBCADRE = W_RETRAITETBCADRE + 1
				END
			END
		   END
		NEXT M
	NEXT K

RETURN