SUBROUTINE DSNEVEMENS(RETURNVAL,PARAMETRES,W_Sortie)

EXECUTE "SET-DEC ."
EXECUTE "DATE.FORMAT"
***************************************************************
* 2 fonctionnalits :
* - Gnration du fichier des DSN mensuelles - type traitement = 1
* - Gnration du fichier des vnements (arrt et reprise arrt) - type traitement = 2
* 
* DIDIER - FEVRIER 2015
***************************************************************

OPEN "","ABSENCESAIDANT" TO F.ABSENCESAIDANT ELSE RETURN
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE RETURN
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE RETURN
OPEN "","CONTRAT" TO F.CONTRAT ELSE RETURN
OPEN "","DSN" TO F.DSN ELSE RETURN
OPEN "","ETABLISSEMENT" TO F.ETABLISSEMENT ELSE RETURN
OPEN "","ORGANISMESOCIAL" TO F.ORGANISMESOCIAL ELSE RETURN
OPEN "","TDSRETRAITE" TO F.TDSRETRAITE ELSE RETURN
OPEN "","RUBCHARGE" TO F.RUBCHARGE ELSE RETURN
OPEN "","TABLES" TO F.TABLES ELSE RETURN
OPEN "","TRANCHE" TO F.TRANCHE ELSE RETURN
OPEN "","PAYS" TO F.PAYS ELSE RETURN
OPEN "","TDSCASPARTICULIERSDADSU" TO F.TDSCASPARTICULIERSDADSU ELSE RETURN
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE RETURN
OPEN "","PROFIL" TO F.PROFIL ELSE RETURN
OPEN "","TDSPREVOYANCE" TO F.TDSPREVOYANCE ELSE RETURN
OPEN "","PARAMPOLEEMPLOI" TO F.PARAMPOLEEMPLOI ELSE RETURN
OPEN "","POLEEMPLOI" TO F.POLEEMPLOI ELSE RETURN
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE RETURN
OPEN "","RUBSAISIE" TO F.RUBSAISIE ELSE RETURN
OPEN "","REGRUBSAISIE" TO F.REGRUBSAISIE ELSE RETURN
OPEN "","CONVENTIONCOL" TO F.CONVENTIONCOL ELSE RETURN
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE RETURN
OPEN "","PERIODESPAIE" TO F.PERIODESPAIE ELSE RETURN
OPEN "","ARCHIVEBULL" TO F.ARCHIVEBULL ELSE RETURN
OPEN "","CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE RETURN
OPEN "","DUCSURSSAF" TO F.DUCSURSSAF ELSE RETURN
OPEN "","CTPURSSAF" TO F.CTPURSSAF ELSE RETURN
OPEN "","AIDANTNTT" TO F.AIDANTNTT ELSE RETURN
OPEN "","TAMPONDADS" TO F.TAMPONDADS ELSE RETURN
OPEN "","DSNEVENEMENT" TO F.DSNEVENEMENT ELSE RETURN
OPEN "","DUCSURSSAFTAMPON" TO F.DUCSURSSAFTAMPON ELSE RETURN

OPEN "","DG" TO F.DG ELSE STOP
**********
* RECUPERATION DES PARAMETRES PASSES
**********
* RECUPERE LE TYPE DE TRAITEMENT : 1 POUR DSN MENSUELLE, 2 POUR DSN EVENEMENTIEL
READ ENR_PERIODESPAIE FROM F.PERIODESPAIE,"1" ELSE RETURN
W_TYPETRAIT=PARAMETRES<1>
IF W_TYPETRAIT="1" THEN
   W_ANNEEMOIS=PARAMETRES<2>
   W_ANNEE=W_ANNEEMOIS[1,4]
   W_CODEENTITE=PARAMETRES<3>
   W_TYPEFICHIER=PARAMETRES<4>
* Didier 20/05/2015 : reprise d'historique
   W_REPRISEHISTORIQUE=PARAMETRES<5>
   W_TABCODEAIDANT=""
END ELSE
   W_REPRISEHISTORIQUE=""
   W_TYPEFICHIER="R"
   W_ANNEEMOIS=ENR_PERIODESPAIE<1>
   W_ANNEE=W_ANNEEMOIS[1,4]
   W_CODEENTITE=PARAMETRES<2>
   W_TABCODEAIDANTCONTRAT=PARAMETRES<3>
   W_TABCODEAIDANTABSENCE=PARAMETRES<4>
   W_TABCODEAIDANTREPRISE=PARAMETRES<5>
   IF W_TABCODEAIDANTCONTRAT="0" THEN W_TABCODEAIDANTCONTRAT=""
   IF W_TABCODEAIDANTABSENCE="0" THEN W_TABCODEAIDANTABSENCE=""
   IF W_TABCODEAIDANTREPRISE="0" THEN W_TABCODEAIDANTREPRISE=""  
END
IF W_ANNEEMOIS[5,2]="01" THEN
   W_ANNEEMOISPREC=W_ANNEE-1
   W_ANNEEMOISPREC=W_ANNEEMOISPREC:"12"
END ELSE
   W_ANNEEMOISPREC=W_ANNEEMOIS-1
END
W_DATEDEBUTPERIODEDSNMENSEXT="01/":W_ANNEEMOIS[5,2]:"/":W_ANNEEMOIS[1,4]
W_DATEDEBUTPERIODEDSNMENS=ICONV(W_DATEDEBUTPERIODEDSNMENSEXT,"D4/")
W_DATEFINPERIODEDSN=W_ANNEEMOIS[5,2]+1
IF W_DATEFINPERIODEDSN=13 THEN
   W_DATEFINPERIODEDSN="01/01/":W_ANNEE+1
END ELSE
   W_DATEFINPERIODEDSN=W_DATEFINPERIODEDSN "R%2"
   W_DATEFINPERIODEDSN="01/":W_DATEFINPERIODEDSN:"/":W_ANNEE
END
* Didier 05/08/2015 : Gestion pour priode de rattachement dans S21.G00.20 et S21.G00.22
W_DATEDEBPERIODEDSNRATTACH=W_DATEFINPERIODEDSN

W_DATEFINPERIODEDSNSUIVANTE=W_DATEFINPERIODEDSN[4,2]+1
IF W_DATEFINPERIODEDSNSUIVANTE=13 THEN
   W_DATEFINPERIODEDSNSUIVANTE="01/01/":W_DATEFINPERIODEDSN[7,4]+1
END ELSE
   W_DATEFINPERIODEDSNSUIVANTE=W_DATEFINPERIODEDSNSUIVANTE "R%2"
   W_DATEFINPERIODEDSNSUIVANTE="01/":W_DATEFINPERIODEDSNSUIVANTE:"/":W_DATEFINPERIODEDSN[7,4]
END
W_DATEFINPERIODEDSN=ICONV(W_DATEFINPERIODEDSN,"D4/")-1
W_DATEFINPERIODEDSNEXT=OCONV(W_DATEFINPERIODEDSN,"D4/")
* Didier 05/08/2015 : Gestion pour priode de rattachement dans S21.G00.20 et S21.G00.22
W_DATEFINPERIODEDSNRATTACH=ICONV(W_DATEFINPERIODEDSNSUIVANTE,"D4/")-1
W_DATEFINPERIODEDSNRATTACH=OCONV(W_DATEFINPERIODEDSNRATTACH,"D4/")

W_DATESYST=DATE()
W_DATESYST=OCONV(W_DATESYST,"D4/")
W_DATESYST=W_DATESYST[1,2]:W_DATESYST[4,2]:W_DATESYST[7,4]
W_HEURESYST=TIMEDATE()
W_HEURESYST=W_HEURESYST[1,2]:W_HEURESYST[4,2]:W_HEURESYST[7,2]
ENR_TAMPONDADS=""

W_NBSALDECLARE = 0
W_NBDSNDECLARE = 0
LISTEABSAIDANT = ""
W_TOTALGENETOT = 0
W_TOTALGENEPLAF = 0
W_TOTALGENEBRUTE = 0
W_NBSTRUCTURES20=0
W_TABCONTRATAIDANT=""

**********
* TRAITEMENT
**********
W_Sortie=""

READ ENR_PARAMPOLEEMPLOI FROM F.PARAMPOLEEMPLOI,"1" ELSE ENR_PARAMPOLEEMPLOI=""
READ ENR_REGRUBSAISIE FROM F.REGRUBSAISIE,"ASSEDIC" ELSE ENR_REGRUBSAISIE=""

READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE,"1" ELSE RETURN
* RECHERCHE DU S.M.I.C. HORAIRE EN VIGUEUR SUR LA PERIODE
W_FINRECH="NON"
ValSmicHor=0
I=1
LOOP
 UNTIL W_FINRECH="OUI" DO
  DatSmicHor=EXTRACT(ENR_CONSTANTESPAIE,4,I)
  IF DatSmicHor<=W_DATEFINPERIODEDSN THEN
   ValSmicHor=EXTRACT(ENR_CONSTANTESPAIE,3,I)
   W_FINRECH="OUI"
  END ELSE
   I=I+1
  END
REPEAT

IF W_TYPETRAIT="1" THEN

   * RECHERCHE SI ETABLISSEMENT MSA ET URSSAF POUR S20.G00.05.008
   LISTETABLISSEMENT=""
   W_ETABLMSAURSSAF="NON"
   W_ETABLMSA="NON"
   W_ETABLURSSAF="NON"
   EXECUTE 'SELECT ETABLISSEMENT AVEC 0 = "':W_CODEENTITE:']"'
   EXECUTE 'SAUVE-LISTE LISTETABLISSEMENT'
   EXECUTE "LISTE LISTETABLISSEMENT" RETURNING W_MSG
   SELECT F.ETABLISSEMENT TO LISTETABLISSEMENT
   IF W_MSG<1>#209 THEN
      W_FINETABLISSEMENT = "NON"
      LOOP
         READNEXT CLEETABLISSEMENT FROM LISTETABLISSEMENT ELSE W_FINETABLISSEMENT = "OUI"
      UNTIL W_FINETABLISSEMENT = "OUI" DO
         READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,CLEETABLISSEMENT ELSE ENR_ETABLISSEMENT = ""
         IF ENR_ETABLISSEMENT<33>="M" THEN
		    W_ETABLMSA="OUI"
         END ELSE
		    W_ETABLURSSAF="OUI"
		 END
      REPEAT
      EXECUTE "EFFACER-LISTE LISTETABLISSEMENT"
   END
   IF  W_ETABLMSA="OUI" AND W_ETABLURSSAF="OUI" THEN W_ETABLMSAURSSAF="OUI"
   
   * CHARGEMENT EN TABLE POUR PREVOYANCES
   LISTTDSPREVOYANCE=""
   W_TABPREVOYANCE=""
   EXECUTE 'SELECT TDSPREVOYANCE AVEC TypeOrgTdsPrevoyance = "08" AND AVEC CodeOrgTdsPrevoyance # "" AND AVEC CodeAssoTdsPrevoyance = "':W_CODEENTITE:'" PAR @ID'
   EXECUTE 'SAUVE-LISTE LISTTDSPREVOYANCE'
   EXECUTE "LISTE LISTTDSPREVOYANCE" RETURNING W_MSG
   SELECT F.TDSPREVOYANCE TO LISTTDSPREVOYANCE
   IF W_MSG<1>#209 THEN
      W_FINTDSPREVOYANCE = "NON"
      LOOP
         READNEXT CLETDSPREVOYANCE FROM LISTTDSPREVOYANCE ELSE W_FINTDSPREVOYANCE = "OUI"
      UNTIL W_FINTDSPREVOYANCE = "OUI" DO
         READ ENR_TDSPREVOYANCE FROM F.TDSPREVOYANCE,CLETDSPREVOYANCE ELSE ENR_TDSPREVOYANCE = ""
         READ ENR_ORGANISMESOCIAL FROM F.ORGANISMESOCIAL,CLETDSPREVOYANCE ELSE ENR_ORGANISMESOCIAL = ""
         W_NBRUB = DCOUNT(ENR_TDSPREVOYANCE<1>,CHAR(253))
         FOR I = 1 TO W_NBRUB
            READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_TDSPREVOYANCE<1,I> ELSE ENR_RUBCHARGE = ""
            READ ENR_TRANCHE FROM F.TRANCHE,ENR_RUBCHARGE<2> ELSE ENR_TRANCHE = ""
            W_NBORG = DCOUNT(W_TABPREVOYANCE<1>,CHAR(253))
            IF W_NBORG = 0 THEN 
               J = -1
            END ELSE	
               FOR J = 1 TO W_NBORG
                  IF W_TABPREVOYANCE<1,J> = CLETDSPREVOYANCE THEN EXIT
               NEXT J
            END
            W_TABPREVOYANCE<1,J> = CLETDSPREVOYANCE
            * TRANCHE TOTALITE
            IF ENR_TRANCHE<10> = "01" THEN W_TABPREVOYANCE<2,J,-1> = ENR_TDSPREVOYANCE<1,I>
            * TRANCHE A
            IF ENR_TRANCHE<10> = "02" THEN W_TABPREVOYANCE<3,J,-1> = ENR_TDSPREVOYANCE<1,I>
            * TRANCHE B
            IF ENR_TRANCHE<10> = "03" THEN W_TABPREVOYANCE<7,J,-1> = ENR_TDSPREVOYANCE<1,I>
            W_TABPREVOYANCE<4,J> = ENR_ORGANISMESOCIAL<17>
            W_TABPREVOYANCE<5,J> = ENR_ORGANISMESOCIAL<20>
            W_TABPREVOYANCE<6,J> = ENR_ORGANISMESOCIAL<1>
            W_TABPREVOYANCE<8,J> = ENR_ORGANISMESOCIAL<21>
            W_TABPREVOYANCE<9,J> = ENR_ORGANISMESOCIAL<3>
            W_TABPREVOYANCE<10,J> = ENR_ORGANISMESOCIAL<22>
            W_TABPREVOYANCE<11,J> = ENR_ORGANISMESOCIAL<23>
            W_TABPREVOYANCE<12,J> = ENR_ORGANISMESOCIAL<24>
         NEXT I
      REPEAT
      EXECUTE "EFFACER-LISTE LISTTDSPREVOYANCE"
   END
END

* RECHERCHE DES RUBRIQUES URSSAT TOTALITE AVEC TRANCHE SUR ASSIETTE INDIVIDUELLE
W_TABURSSAFTOTFORFAIT=""
W_TABCSG=""
LISTRUBCHARGE=""
EXECUTE 'SELECT RUBCHARGE AVEC 16 = "01" AND AVEC TypeTranche = "01" OR AVEC TypeTranche = "06"'
EXECUTE 'SAUVE-LISTE LISTRUBCHARGE'
EXECUTE "LISTE LISTRUBCHARGE" RETURNING W_MSG
SELECT F.RUBCHARGE TO LISTRUBCHARGE
IF W_MSG<1>#209 THEN
   W_FINRUBCHARGE = "NON"
   LOOP
      READNEXT CLERUBCHARGE FROM LISTRUBCHARGE ELSE W_FINRUBCHARGE = "OUI"
   UNTIL W_FINRUBCHARGE = "OUI" DO
      READ ENR_RUBCHARGE FROM F.RUBCHARGE,CLERUBCHARGE ELSE ENR_RUBCHARGE = ""
      READ ENR_TRANCHE FROM F.TRANCHE,ENR_RUBCHARGE<2> ELSE ENR_TRANCHE = ""
      IF ENR_TRANCHE<11>#"" THEN W_TABURSSAFTOTFORFAIT<-1>=CLERUBCHARGE
      IF ENR_TRANCHE<10>="06" THEN
         W_TABCSG<1,-1>=CLERUBCHARGE
         IF ENR_RUBCHARGE<12>="" THEN ENR_RUBCHARGE<12>=0 
         W_TABCSG<2,-1>=ENR_RUBCHARGE<12>
      END
   REPEAT
END
EXECUTE "EFFACER-LISTE LISTRUBCHARGE"

* LECTURE ASSOCIATION
READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CODEENTITE ELSE ENR_ASSOCIATION=""
* Didier 05/08/2015 : dcalage de paie pour priode de rattachement dans S21.G00.20 et S21.G00.22
W_DECALAGEPAIE=ENR_ASSOCIATION<25>

* RUBRIQUES URSSAF TOTALITE + RUBRIQUES URSSAF PLAFONNE
READ ENR_TDSCASPARTICULIERSDADSU FROM F.TDSCASPARTICULIERSDADSU,"1" ELSE ENR_TDSCASPARTICULIERSDADSU = ""
W_TABURSSAFTOT = ENR_TDSCASPARTICULIERSDADSU<10>
W_TABURSSAFPLAF = ENR_TDSCASPARTICULIERSDADSU<1>
READ ENR_TABLESPARTDADSU FROM F.TABLES,"TYPEEXODADSU" ELSE ENR_TABLESPARTDADSU = ""
W_NBCASPART = DCOUNT(ENR_TDSCASPARTICULIERSDADSU<2>,CHAR(253))
W_TABCASPARTICULIERS=""
FOR I = 1 TO W_NBCASPART
* Didier 20/11/2015 : non prise en compte code exo 00 pour CAS GENERAL suite recalcul rduction Fillon
   IF ENR_TDSCASPARTICULIERSDADSU<2,I>#"" AND ENR_TDSCASPARTICULIERSDADSU<2,I>#"00" THEN
      J = 1
      LOOP
      UNTIL ENR_TABLESPARTDADSU<2,J> = ENR_TDSCASPARTICULIERSDADSU<2,I> OR ENR_TABLESPARTDADSU<2,J> = "" DO
         J = J + 1
      REPEAT
      IF ENR_TABLESPARTDADSU<2,J> = ENR_TDSCASPARTICULIERSDADSU<2,I> THEN
         IF ENR_TABLESPARTDADSU<2,J>="37" THEN ENR_TABLESPARTDADSU<2,J>="34"
         W_TABCASPARTICULIERS<1,-1>=ENR_TABLESPARTDADSU<2,J>
         W_TABCASPARTICULIERS<2,-1>=ENR_TABLESPARTDADSU<3,J>
         W_TABCASPARTICULIERS<3,-1>=ENR_TDSCASPARTICULIERSDADSU<10,I>
         W_TABCASPARTICULIERS<4,-1>=ENR_TDSCASPARTICULIERSDADSU<1,I>
         W_TABCASPARTICULIERS<5,-1>=0
         W_TABCASPARTICULIERS<6,-1>=0
         W_TABCASPARTICULIERS<7,-1>=0
      END
   END
NEXT I

* CHARGEMENT EN TABLE POUR CAISSES DE RETRAITE
LISTTDSRETRAITE=""
W_TABRETRAITE=""
EXECUTE 'SELECT TDSRETRAITE AVEC TypeOrgDadsU = "03" OR = "04" AND AVEC CodeOrgDadsU # "" AND AVEC Asso = "':W_CODEENTITE:'" PAR @ID'
EXECUTE 'SAUVE-LISTE LISTTDSRETRAITE'
EXECUTE "LISTE LISTTDSRETRAITE" RETURNING W_MSG
SELECT F.TDSRETRAITE TO LISTTDSRETRAITE
IF W_MSG<1>#209 THEN
   W_FINTDSRETRAITE = "NON"
   LOOP
      READNEXT CLETDSRETRAITE FROM LISTTDSRETRAITE ELSE W_FINTDSRETRAITE = "OUI"
   UNTIL W_FINTDSRETRAITE = "OUI" DO
	READ ENR_TDSRETRAITE FROM F.TDSRETRAITE,CLETDSRETRAITE ELSE ENR_TDSRETRAITE = ""
      READ ENR_ORGANISMESOCIAL FROM F.ORGANISMESOCIAL,CLETDSRETRAITE ELSE ENR_ORGANISMESOCIAL = ""
      W_NBRUB = DCOUNT(ENR_TDSRETRAITE<1>,CHAR(253))
      FOR I = 1 TO W_NBRUB
         READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_TDSRETRAITE<1,I> ELSE ENR_RUBCHARGE = ""
         READ ENR_TRANCHE FROM F.TRANCHE,ENR_RUBCHARGE<2> ELSE ENR_TRANCHE = ""
         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> = CLETDSRETRAITE THEN EXIT
            NEXT J
         END
         W_TABRETRAITE<1,J> = CLETDSRETRAITE
         * TRANCHE TOTALITE
         IF ENR_TRANCHE<10> = "01" THEN W_TABRETRAITE<2,J,-1> = ENR_TDSRETRAITE<1,I>
         * TRANCHE A
         IF ENR_TRANCHE<10> = "02" THEN W_TABRETRAITE<3,J,-1> = ENR_TDSRETRAITE<1,I>
         * TRANCHE B
         IF ENR_TRANCHE<10> = "03" THEN W_TABRETRAITE<7,J,-1> = ENR_TDSRETRAITE<1,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>
      NEXT I
   REPEAT
   EXECUTE "EFFACER-LISTE LISTTDSRETRAITE"
END

W_CNRACLIRCANTEC="NON"
IF INDEX(W_TABRETRAITE<8>,"C",1) # 0 THEN W_CNRACLIRCANTEC="OUI"
IF INDEX(W_TABRETRAITE<8>,"I",1) # 0 THEN W_CNRACLIRCANTEC="OUI"

IF W_TYPETRAIT="2" THEN
   READ ENR_COMPTEUR FROM F.COMPTEUR,W_CODEENTITE ELSE ENR_COMPTEUR=""
   W_NUMDECLARDSN=ENR_COMPTEUR<11>
END

IF W_TYPETRAIT="1" THEN
   LISTCONTRATDSN=""
*  EXECUTE 'TSELECT CONTRAT AVEC 1 # "02" AND AVEC 65 # "O" AND AVEC 2 = "':W_CODEENTITE:'" AND AVEC 58 = "':W_ANNEEMOIS:'" OR AVEC 1 # "02" AND AVEC 65 # "O" AND AVEC 2 = "':W_CODEENTITE:'" AND AVEC 7 <= "':W_DATEDEBUTPERIODEDSNMENS:'" AND AVEC 8 = "" OR >= "':W_DATEFINPERIODEDSN:'" AND AVEC 58 = "" OR > "':W_ANNEEMOIS:'" PAR 3 PAR NomPrenomAidantContrat PAR CodeAidant PAR 7'
*  EXECUTE 'TSELECT CONTRAT AVEC 1 # "02" AND AVEC 65 # "O" AND AVEC 2 = "':W_CODEENTITE:'" AND AVEC 58 = "':W_ANNEEMOIS:'" OR AVEC 1 # "02" AND AVEC 65 # "O" AND AVEC 2 = "':W_CODEENTITE:'" AND AVEC 7 <= "':W_DATEFINPERIODEDSN:'" AND AVEC 8 = "" OR >= "':W_DATEDEBUTPERIODEDSNMENS:'" AND AVEC 58 = "" OR > "':W_ANNEEMOIS:'" PAR 3 PAR NomPrenomAidantContrat PAR CodeAidant PAR 7'
   EXECUTE 'TSELECT CONTRAT AVEC 13 # "DSN" AND AVEC 1 # "02" AND AVEC 65 # "O" AND AVEC 2 = "':W_CODEENTITE:'" AND AVEC 7 <= "':W_DATEFINPERIODEDSN:'" AND AVEC 8 = "" OR >= "':W_DATEDEBUTPERIODEDSNMENS:'" PAR 3 PAR NomPrenomAidantContrat PAR CodeAidant PAR-DECR 7'
   EXECUTE 'SAUVE-LISTE LISTCONTRATDSN'
   EXECUTE "LISTE LISTCONTRATDSN" RETURNING W_MSG
   SELECT F.CONTRAT TO LISTCONTRATDSN
   IF W_MSG<1>=209 THEN RETURN
   GOSUB 100
END ELSE
   ENR_DSN=""
   W_TABRAPPORTCOTISDSN=""
   GOSUB 100000
   GOSUB 100001
   GOSUB 100002
   GOSUB 100003
   W_NBSTRUCTURES20=0
   W_SIGNALEMENT="FINCONTRAT"
   K=1
   LOOP
   UNTIL W_TABCODEAIDANTCONTRAT[K,8]="" DO
      READ ENR_CONTRAT FROM F.CONTRAT,W_TABCODEAIDANTCONTRAT[K,8] THEN
	     W_CODEAIDANT=W_TABCODEAIDANTCONTRAT[K,5]
		 W_REFCONTRAT=W_TABCODEAIDANTCONTRAT[K,8]
		 READ ENR_DSNEVENEMENT FROM F.DSNEVENEMENT,W_REFCONTRAT THEN
		    W_ACTIONEVE="N"
			* Didier 23/09/2015 : Gestion stagiaire - DA15061
			IF ENR_CONTRAT<13>="STG" THEN
			   DELETE F.DSNEVENEMENT,W_REFCONTRAT
			END ELSE
			   IF ENR_CONTRAT<13>#"DSN" THEN
			      IF ENR_DSNEVENEMENT<1>#"" THEN
			         IF ENR_CONTRAT<8>="" THEN
			            * Annule
			            W_ACTIONEVE="A"
			         END ELSE
* Didier 15/09/2015 : gestion CDD suivi par CDI - DA15057
                        IF ENR_CONTRAT<4>="D" AND ENR_CONTRAT<116>#"" THEN
					       READ ENR_CONTRATREPORT FROM F.CONTRAT,ENR_CONTRAT<116> ELSE ENR_CONTRATREPORT=""
			  			   IF ENR_CONTRATREPORT<4>="I" AND ENR_CONTRATREPORT<117>=W_REFCONTRAT THEN
			                  * Annule
			                  W_ACTIONEVE="A"
                           END ELSE
			                  * Annule et Remplace
			                  W_ACTIONEVE="AR"
                           END						
                        END ELSE
			               * Annule et Remplace
			               W_ACTIONEVE="AR"
                        END
			         END
                  END
			   END
			   * Didier 08/12/2015 : ajout priode dernier bulletin
			   CLEDETAILCALCUL=W_REFCONTRAT:ENR_CONTRAT<58>
               W_ANNEEMOIS=ENR_CONTRAT<58>
               W_ANNEE=W_ANNEEMOIS[1,4]
               IF W_ANNEEMOIS[5,2]="01" THEN
                  W_ANNEEMOISPREC=W_ANNEE-1
                  W_ANNEEMOISPREC=W_ANNEEMOISPREC:"12"
               END ELSE
                  W_ANNEEMOISPREC=W_ANNEEMOIS-1
               END
               W_DATEDEBUTPERIODEDSNMENSEXT="01/":W_ANNEEMOIS[5,2]:"/":W_ANNEEMOIS[1,4]
               W_DATEDEBUTPERIODEDSNMENS=ICONV(W_DATEDEBUTPERIODEDSNMENSEXT,"D4/")
               W_DATEFINPERIODEDSN=W_ANNEEMOIS[5,2]+1
               IF W_DATEFINPERIODEDSN=13 THEN
                  W_DATEFINPERIODEDSN="01/01/":W_ANNEE+1
               END ELSE
                  W_DATEFINPERIODEDSN=W_DATEFINPERIODEDSN "R%2"
                  W_DATEFINPERIODEDSN="01/":W_DATEFINPERIODEDSN:"/":W_ANNEE
               END
               W_DATEFINPERIODEDSNSUIVANTE=W_DATEFINPERIODEDSN[4,2]+1
               IF W_DATEFINPERIODEDSNSUIVANTE=13 THEN
                  W_DATEFINPERIODEDSNSUIVANTE="01/01/":W_DATEFINPERIODEDSN[7,4]+1
               END ELSE
                  W_DATEFINPERIODEDSNSUIVANTE=W_DATEFINPERIODEDSNSUIVANTE "R%2"
                  W_DATEFINPERIODEDSNSUIVANTE="01/":W_DATEFINPERIODEDSNSUIVANTE:"/":W_DATEFINPERIODEDSN[7,4]
               END
               W_DATEFINPERIODEDSN=ICONV(W_DATEFINPERIODEDSN,"D4/")-1
               W_DATEFINPERIODEDSNEXT=OCONV(W_DATEFINPERIODEDSN,"D4/")			   
               GOSUB 200
			   ENR_DSNEVENEMENT<1>=W_DATESYST:W_NUMERODSNEVE
			   ENR_DSNEVENEMENT<2>=""
			   WRITE ENR_DSNEVENEMENT ON F.DSNEVENEMENT,W_REFCONTRAT
			END
         END
      END
      K=K+9
   REPEAT
   W_ANNEEMOIS=ENR_PERIODESPAIE<1>
   W_ANNEE=W_ANNEEMOIS[1,4]
   IF W_ANNEEMOIS[5,2]="01" THEN
      W_ANNEEMOISPREC=W_ANNEE-1
      W_ANNEEMOISPREC=W_ANNEEMOISPREC:"12"
   END ELSE
      W_ANNEEMOISPREC=W_ANNEEMOIS-1
   END
   W_DATEDEBUTPERIODEDSNMENSEXT="01/":W_ANNEEMOIS[5,2]:"/":W_ANNEEMOIS[1,4]
   W_DATEDEBUTPERIODEDSNMENS=ICONV(W_DATEDEBUTPERIODEDSNMENSEXT,"D4/")
   W_DATEFINPERIODEDSN=W_ANNEEMOIS[5,2]+1
   IF W_DATEFINPERIODEDSN=13 THEN
      W_DATEFINPERIODEDSN="01/01/":W_ANNEE+1
   END ELSE
      W_DATEFINPERIODEDSN=W_DATEFINPERIODEDSN "R%2"
      W_DATEFINPERIODEDSN="01/":W_DATEFINPERIODEDSN:"/":W_ANNEE
   END
   W_DATEFINPERIODEDSNSUIVANTE=W_DATEFINPERIODEDSN[4,2]+1
   IF W_DATEFINPERIODEDSNSUIVANTE=13 THEN
      W_DATEFINPERIODEDSNSUIVANTE="01/01/":W_DATEFINPERIODEDSN[7,4]+1
   END ELSE
      W_DATEFINPERIODEDSNSUIVANTE=W_DATEFINPERIODEDSNSUIVANTE "R%2"
      W_DATEFINPERIODEDSNSUIVANTE="01/":W_DATEFINPERIODEDSNSUIVANTE:"/":W_DATEFINPERIODEDSN[7,4]
   END
   W_DATEFINPERIODEDSN=ICONV(W_DATEFINPERIODEDSN,"D4/")-1
   W_DATEFINPERIODEDSNEXT=OCONV(W_DATEFINPERIODEDSN,"D4/")   
   K=1
   W_SIGNALEMENT="ABSENCE"  
   LOOP
   UNTIL W_TABCODEAIDANTABSENCE[K,12]="" DO
      READ ENR_ABSENCESAIDANT FROM F.ABSENCESAIDANT,W_TABCODEAIDANTABSENCE[K,12] THEN
	  	 W_CODEAIDANT=W_TABCODEAIDANTABSENCE[K,5]
		 W_REFABSENCE=W_TABCODEAIDANTABSENCE[K,12]
		 L=1
		 W_FINRECHCONTRAT="NON"
		 W_REFCONTRAT=""
         LOOP
         UNTIL ENR_ABSENCESAIDANT<17,L>="" OR W_FINRECHCONTRAT="OUI" DO
		    READ ENR_CONTRAT FROM F.CONTRAT,ENR_ABSENCESAIDANT<17,L> THEN
			* 02/085/2016 Didier : erreur sur tests des attributs 1 et 2 de CONTRAT 
			*   IF ENR_CONTRAT<1>=W_CODEENTITE AND ENR_CONTRAT<2>#"02" AND ENR_CONTRAT<13>#"DSN" THEN
			   IF ENR_CONTRAT<2>=W_CODEENTITE AND ENR_CONTRAT<1>#"02" AND ENR_CONTRAT<13>#"DSN" THEN			   
			      W_REFCONTRAT=ENR_ABSENCESAIDANT<17,L>
			      W_FINRECHCONTRAT="OUI"
               END ELSE
                  L=L+1
               END
			END ELSE
			   L=L+1
			END
         REPEAT
         IF W_REFCONTRAT#"" THEN
		    READ ENR_DSNEVENEMENT FROM F.DSNEVENEMENT,W_REFABSENCE THEN
		       W_ACTIONEVE="N"
			   IF ENR_DSNEVENEMENT<1>#"" THEN
                  * Annule et Remplace
                  W_ACTIONEVE="AR"
			   END
               GOSUB 200
			   ENR_DSNEVENEMENT<1>=W_DATESYST:W_NUMERODSNEVE
			   ENR_DSNEVENEMENT<2>=""
			   ENR_DSNEVENEMENT<4>=""			   
			   WRITE ENR_DSNEVENEMENT ON F.DSNEVENEMENT,W_REFABSENCE			   
			END
         END
      END
      K=K+13
   REPEAT
   K=1
   W_SIGNALEMENT="REPRISE"  
   LOOP
   UNTIL W_TABCODEAIDANTREPRISE[K,12]="" DO
      READ ENR_ABSENCESAIDANT FROM F.ABSENCESAIDANT,W_TABCODEAIDANTREPRISE[K,12] THEN
	  	 W_CODEAIDANT=W_TABCODEAIDANTREPRISE[K,5]
		 W_REFABSENCE=W_TABCODEAIDANTREPRISE[K,12]
		 L=1
		 W_FINRECHCONTRAT="NON"
		 W_REFCONTRAT=""
         LOOP
         UNTIL ENR_ABSENCESAIDANT<17,L>="" OR W_FINRECHCONTRAT="OUI" DO
		    READ ENR_CONTRAT FROM F.CONTRAT,ENR_ABSENCESAIDANT<17,L> THEN
			* 02/085/2016 Didier : erreur sur tests des attributs 1 et 2 de CONTRAT 			
			*   IF ENR_CONTRAT<1>=W_CODEENTITE AND ENR_CONTRAT<2>#"02" AND ENR_CONTRAT<13>#"DSN" THEN
			   IF ENR_CONTRAT<2>=W_CODEENTITE AND ENR_CONTRAT<1>#"02" AND ENR_CONTRAT<13>#"DSN" THEN			   
			      W_REFCONTRAT=ENR_ABSENCESAIDANT<17,L>
			      W_FINRECHCONTRAT="OUI"
               END ELSE
                  L=L+1
               END
			END ELSE
			   L=L+1
			END
         REPEAT
         IF W_REFCONTRAT#"" THEN
		    READ ENR_DSNEVENEMENT FROM F.DSNEVENEMENT,W_REFABSENCE THEN
               W_ACTIONEVE="N"
			   IF ENR_DSNEVENEMENT<3>#"" THEN
                  * Annule et Remplace
                  W_ACTIONEVE="AR"
			   END
               GOSUB 200
			   ENR_DSNEVENEMENT<3>=W_DATESYST:W_NUMERODSNEVE
			   ENR_DSNEVENEMENT<4>=""			   
			   WRITE ENR_DSNEVENEMENT ON F.DSNEVENEMENT,W_REFABSENCE			   
			END
         END
      END
      K=K+13
   REPEAT      
   GOSUB 900090
   W_Sortie=ENR_DSN
END
RETURN


**********
* TRAITEMENT DSN MENSUELLE
**********
100 ENR_DSN=""
W_TABRAPPORTCOTISDSN=""
GOSUB 100000
GOSUB 100001
GOSUB 100002
GOSUB 100003

W_CODEETABL=""
W_CODEAIDANT=""
W_CODEAIDANTRUPTURE=""
W_DERNLIGNECONTRATAIDANT=""
W_PASSAGEAIDANT=0
W_FINTRAIT = "NON"
W_LIGNEEFFECTIFETABL=""
W_NBEFFECTIFETABL=0
W_CONTRATCDDSUIVIPARCDI=""

LOOP
   READNEXT CLECONTRAT FROM LISTCONTRATDSN ELSE W_FINTRAIT = "OUI"
UNTIL W_FINTRAIT = "OUI" DO
   CLEDETAILCALCUL=CLECONTRAT:W_ANNEEMOIS
   READ ENR_CONTRAT FROM F.CONTRAT,CLECONTRAT ELSE ENR_CONTRAT=""
   IF W_CODEETABL#ENR_CONTRAT<3>[4,3] THEN
      IF W_CODEETABL#"" THEN
	     IF W_REPRISEHISTORIQUE#"1" THEN ENR_DSN<W_LIGNEEFFECTIFETABL> = "S21.G00.11.008,'":W_NBEFFECTIFETABL:"'"
      END
	  W_NBEFFECTIFETABL=0
      READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,ENR_CONTRAT<3> ELSE ENR_ETABLISSEMENT=""
      W_CODEETABL=ENR_CONTRAT<3>[4,3]
      W_TYPEURSSAFMSA=ENR_ETABLISSEMENT<33>
      W_CODEINSEECOMETABL=ENR_ETABLISSEMENT<34>
      IF W_CODEINSEECOMETABL="" THEN W_CODEINSEECOMETABL="00000"	  
      GOSUB 200005
      W_NBSTRUCTURES20=W_NBSTRUCTURES20+1
      GOSUB 210006 
      GOSUB 210011
      * Didier 22/05/2015 : phase 2
	  IF W_REPRISEHISTORIQUE#"1" THEN
         READ ENR_DUCSURSSAF FROM F.DUCSURSSAF,ENR_CONTRAT<3>:W_ANNEEMOIS THEN
	        W_ORGPROTECTSOC=ENR_ETABLISSEMENT<20>
            GOSUB 210020
			* Didier 04/12/2015 : gestion rgularisation DUCS
			GOSUB 210022231
		    GOSUB 210022
		    GOSUB 210023
         END
      END	  
   END
   W_NBDSNDECLARE = W_NBDSNDECLARE + 1
   IF CLEDETAILCALCUL[1,5]#W_CODEAIDANT THEN W_NBSALDECLARE = W_NBSALDECLARE + 1
   IF W_CODEAIDANTRUPTURE="" THEN
      W_PASSAGEAIDANT=1
	  W_CODEAIDANTRUPTURE=CLEDETAILCALCUL[1,5]
   END ELSE
      IF CLEDETAILCALCUL[1,5]=W_CODEAIDANTRUPTURE THEN
         W_PASSAGEAIDANT=W_PASSAGEAIDANT+1
      END ELSE
         W_PASSAGEAIDANT=1
	     W_CODEAIDANTRUPTURE=CLEDETAILCALCUL[1,5]
      END	  
   END
* Didier 15/09/2015 : gestion CDI  la suite d'un CDD - DA15057
   W_NUMEROCONTRATDSN=""
   ENR_CONTRATREPRISE=""
   W_DATEEFFETAVENANT=""
   W_DATEDEBUTCONTRATCDICDD=ENR_CONTRAT<7>
   W_DATEDEBUTCONTRAT=OCONV(ENR_CONTRAT<7>,"D4/")   
   IF ENR_CONTRAT<117>#"" AND ENR_CONTRAT<4>="I" THEN
      READ ENR_CONTRATREPRISE FROM F.CONTRAT,ENR_CONTRAT<117> ELSE ENR_CONTRATREPRISE=""
	  IF ENR_CONTRATREPRISE<4>="D" AND ENR_CONTRATREPRISE<116>=CLECONTRAT THEN
	     W_NUMEROCONTRATDSN=ENR_CONTRAT<117>   
         W_DATEDEBUTCONTRAT=OCONV(ENR_CONTRATREPRISE<7>,"D4/")
		 W_CONTRATCDDSUIVIPARCDI=ENR_CONTRAT<117>
		 ENR_CONTRAT<7>=ENR_CONTRATREPRISE<7>
      END
   END 
   IF ENR_CONTRAT<8>="" THEN
      W_DATEFINCONTRAT=""
	  W_NBEFFECTIFETABL=W_NBEFFECTIFETABL+1
   END ELSE
      IF ENR_CONTRAT<8>>W_DATEFINPERIODEDSN THEN
	     W_NBEFFECTIFETABL=W_NBEFFECTIFETABL+1	  
	  END
      W_DATEFINCONTRAT=OCONV(ENR_CONTRAT<8>,"D4/")
   END
   W_CODEAIDANT=CLEDETAILCALCUL[1,5]
   READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CODEAIDANT ELSE ENR_CIVILAIDANT=""
   IF W_CONTRATCDDSUIVIPARCDI#CLECONTRAT AND W_PASSAGEAIDANT=1 THEN GOSUB 210030
   READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,CLEDETAILCALCUL ELSE ENR_DETAILCALCUL=""
   IF W_CONTRATCDDSUIVIPARCDI#CLECONTRAT THEN GOSUB 210040
   IF W_CONTRATCDDSUIVIPARCDI#CLECONTRAT THEN 
      D=1
      W_FINAVENANT="NON"
      W_NUMAVENANTCHGT=""
	  W_DATEEFFETAVENANT=""
      LOOP
         IF ENR_CONTRAT<15,D>="" THEN W_FINAVENANT="OUI"
	     IF D>W_NUMAVENANT THEN W_FINAVENANT="OUI"
      UNTIL W_FINAVENANT="OUI" DO
         IF ENR_CONTRAT<15,D><=W_DATEFINPERIODEDSN AND ENR_CONTRAT<15,D>>=W_DATEDEBUTPERIODEDSNMENS AND D>1 THEN
			W_DATEEFFETAVENANT=ENR_CONTRAT<15,D>
            W_NUMAVENANTCHGT=D-1 "R%2"
            GOSUB 210041
         END
         D=D+1
      REPEAT
   END
* Didier 15/09/2015 : gestion CDD suivi par CDI - DA15057
*   IF ENR_CONTRAT<117>#"" AND ENR_CONTRAT<4>="I" AND ENR_CONTRAT<7><=W_DATEFINPERIODEDSN AND ENR_CONTRAT<7>>=W_DATEDEBUTPERIODEDSNMENS AND W_NUMEROCONTRATDSN#"" THEN
   IF ENR_CONTRAT<117>#"" AND ENR_CONTRAT<4>="I" AND W_DATEDEBUTCONTRATCDICDD<=W_DATEFINPERIODEDSN AND W_DATEDEBUTCONTRATCDICDD>=W_DATEDEBUTPERIODEDSNMENS AND W_NUMEROCONTRATDSN#"" THEN
	  ENR_CONTRATSAUVE=ENR_CONTRAT
      ENR_CONTRAT=ENR_CONTRATREPRISE
	  W_DATEEFFETAVENANT=W_DATEDEBUTCONTRATCDICDD
      W_NUMAVENANTCHGT=DCOUNT(EXTRACT(ENR_CONTRATREPRISE,15),CHAR(253))
      GOSUB 210041
      ENR_CONTRAT=ENR_CONTRATSAUVE
   END
   W_PRESENCEBULLETIN="OUI"
   IF ENR_DETAILCALCUL="" THEN W_PRESENCEBULLETIN="NON"
   W_MOTIFFINCONTRAT=ENR_CONTRAT<49>
   IF W_CONTRATCDDSUIVIPARCDI#CLECONTRAT THEN GOSUB 210060
*   IF ENR_CONTRAT<58>=W_ANNEEMOIS THEN
   IF ENR_CONTRAT<8>#"" AND ENR_CONTRAT<8>>=W_DATEDEBUTPERIODEDSNMENS AND ENR_CONTRAT<8><=W_DATEFINPERIODEDSN AND W_CONTRATCDDSUIVIPARCDI#CLECONTRAT THEN
      IF W_REPRISEHISTORIQUE#"1" THEN GOSUB 210062
*	  GOSUB 210063
   END
   IF W_CONTRATCDDSUIVIPARCDI#CLECONTRAT THEN GOSUB 210065
   GOSUB 2100510
   IF W_REPRISEHISTORIQUE#"1" AND W_CONTRATCDDSUIVIPARCDI#CLECONTRAT THEN GOSUB 210070
   IF W_REPRISEHISTORIQUE#"1" AND W_CONTRATCDDSUIVIPARCDI#CLECONTRAT THEN GOSUB 210071
   IF W_PASSAGEAIDANT=1 THEN
      W_DERNLIGNECONTRATAIDANT=DCOUNT(ENR_DSN,CHAR(254))+1
   END   
   GOSUB 210050
   GOSUB 210051
   * Didier 20/05/2015 : phase 2
   GOSUB 210053
   GOSUB 210052
   IF W_REPRISEHISTORIQUE#"1" THEN GOSUB 210054
   * Didier traitement MSA en phase 2 : pas de structures 210078 + 210079 + 210081
   * IF W_REPRISEHISTORIQUE#"1" THEN GOSUB 210078
   IF W_REPRISEHISTORIQUE#"1" AND W_TYPEURSSAFMSA#"M" THEN GOSUB 210078   
REPEAT
IF W_REPRISEHISTORIQUE#"1" THEN
   ENR_DSN<W_LIGNEEFFECTIFETABL> = "S21.G00.11.008,'":W_NBEFFECTIFETABL:"'"
END
GOSUB 900090
EXECUTE "EFFACER-LISTE LISTDETAILCALCUL"
W_Sortie=ENR_DSN
ENR_TAMPONDADS<1>=W_TOTALGENEBRUTE
ENR_TAMPONDADS<2>=W_TOTALGENETOT
ENR_TAMPONDADS<3>=W_TOTALGENEPLAF
ENR_TAMPONDADS<4>=W_NBSALDECLARE
ENR_TAMPONDADS<5>=W_NBDSNDECLARE
IF W_REPRISEHISTORIQUE="1" THEN
   ENR_TAMPONDADS<6>="Reprise historique"
END ELSE
   ENR_TAMPONDADS<6>="Mensuel"
END
ENR_TAMPONDADS<7>=W_TABRAPPORTCOTISDSN<1>
ENR_TAMPONDADS<8>=W_TABRAPPORTCOTISDSN<2>
ENR_TAMPONDADS<9>=W_TABRAPPORTCOTISDSN<3>
WRITE ENR_TAMPONDADS ON F.TAMPONDADS,"DSN":W_CODEENTITE:W_ANNEEMOIS
IF W_REPRISEHISTORIQUE#"1" THEN
   IF ENR_PERIODESPAIE<3>#"" THEN
      IF ENR_PERIODESPAIE<3><W_ANNEEMOIS THEN ENR_PERIODESPAIE<3>=W_ANNEEMOIS
   END ELSE
      ENR_PERIODESPAIE<3>=W_ANNEEMOIS
   END
   WRITE ENR_PERIODESPAIE ON F.PERIODESPAIE,"1"
END
RETURN


**********
* TRAITEMENT DSN EVENEMENTIELLE
**********
200 READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,ENR_CONTRAT<3> ELSE ENR_ETABLISSEMENT=""
W_CODEETABL=ENR_CONTRAT<3>[4,3]
W_TYPEURSSAFMSA=ENR_ETABLISSEMENT<33>
GOSUB 200005
W_NBSTRUCTURES20=W_NBSTRUCTURES20+1
IF W_SIGNALEMENT#"FINCONTRAT" THEN GOSUB 200007
GOSUB 210006 
GOSUB 210011
W_DATEDEBUTCONTRATCDICDD=ENR_CONTRAT<7>
W_DATEDEBUTCONTRAT=OCONV(ENR_CONTRAT<7>,"D4/")
W_NUMEROCONTRATDSN=""
IF ENR_CONTRAT<117>#"" AND ENR_CONTRAT<4>="I" THEN
* Didier 15/09/2015 : gestion CDI  la suite d'un CDD - DA15057
*   IF ENR_CONTRAT<97>#"" THEN
*	  W_DATEDEBUTCONTRAT=OCONV(ENR_CONTRAT<97>,"D4/")
*   END
   READ ENR_CONTRATREPRISE FROM F.CONTRAT,ENR_CONTRAT<117> ELSE ENR_CONTRATREPRISE=""
   IF ENR_CONTRATREPRISE<4>="D" THEN
      W_NUMEROCONTRATDSN=ENR_CONTRAT<117>
	  ENR_CONTRAT<7>=ENR_CONTRATREPRISE<7>
	  W_DATEDEBUTCONTRAT=OCONV(ENR_CONTRATREPRISE<7>,"D4/")
   END
END
IF ENR_CONTRAT<8>="" THEN
   W_DATEFINCONTRAT=""
END ELSE
   W_DATEFINCONTRAT=OCONV(ENR_CONTRAT<8>,"D4/")
END
READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CODEAIDANT ELSE ENR_CIVILAIDANT=""
W_PASSAGEAIDANT=1
GOSUB 210030
GOSUB 210040
IF W_SIGNALEMENT="FINCONTRAT" THEN
   W_PRESENCEBULLETIN="NON"
   * Didier 08/12/2015 : gestion fin de contrat avec bulletin
   READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,CLEDETAILCALCUL THEN
      W_PRESENCEBULLETIN="OUI"  
   END ELSE
      ENR_DETAILCALCUL=""
   END
   W_MOTIFFINCONTRAT=ENR_CONTRAT<49>
   GOSUB 210062
   GOSUB 210063
   GOSUB 2100510
   GOSUB 210070
   GOSUB 210071   
   GOSUB 210050
   GOSUB 210051
   GOSUB 210053
   * Didier 08/12/2015 : ajout 210052 + 210054 car bulletin
   GOSUB 210052
   GOSUB 210054
END ELSE
   GOSUB 2100609
END
RETURN


**********
* 100000 -> ENVOI (S10.G00.00)
**********
100000
W_CHAINE = "S10.G00.00."
ENR_DSN<-1> = W_CHAINE:"001,'INFOLOGIS'"
ENR_DSN<-1> = W_CHAINE:"002,'INFOLOGIS'"
* Didier 20/05/2015 : version 5.8.0. pour phase 2
* Didier 15/12/2015 : version 5.9.2. pour BRC et rgularisation
* Didier 08/08/2016 : version 5.9.6. suite dmarrage phase 2 gnralise
* ENR_DSN<-1> = W_CHAINE:"003,'5.6.3.'"
* ENR_DSN<-1> = W_CHAINE:"003,'5.9.2.'"
ENR_DSN<-1> = W_CHAINE:"003,'5.9.6.'"
IF W_TYPEFICHIER="R" THEN
   ENR_DSN<-1> = W_CHAINE:"005,'02'"
END ELSE
   ENR_DSN<-1> = W_CHAINE:"005,'01'"
END
* Didier 20/05/2015 : passage en phase 2
*ENR_DSN<-1> = W_CHAINE:"006,'PHASE1V1'"
ENR_DSN<-1> = W_CHAINE:"006,'P02V01'"
ENR_DSN<-1> = W_CHAINE:"007,'01'"
* Didier 20/05/2015 : reprise d'historique
IF W_REPRISEHISTORIQUE="1" THEN
   ENR_DSN<-1> = W_CHAINE:"008,'03'"
END ELSE
   ENR_DSN<-1> = W_CHAINE:"008,'01'"
END
RETURN


**********
* 100001 -> EMETTEUR (S10.G00.01)
**********
100001
W_CHAINE = "S10.G00.01."
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_DSN<-1> = W_CHAINE:"001,'":W_SIREN:"'"
ENR_DSN<-1> = W_CHAINE:"002,'":W_SIRET:"'"
W_TXTACONVERTIR=ENR_ASSOCIATION<2>
GOSUB 9999991
W_RAISONSOCIALEASSO=W_TXTACONVERTIR
ENR_DSN<-1> = W_CHAINE:"003,'":W_TXTACONVERTIR:"'"
W_TXTACONVERTIR=ENR_ASSOCIATION<3>
IF ENR_ASSOCIATION<4>[1,1] = "B" OR ENR_ASSOCIATION<4>[1,1] = "T" OR ENR_ASSOCIATION<4>[1,1] = "Q" THEN W_TXTACONVERTIR = W_TXTACONVERTIR:" ":ENR_ASSOCIATION<4>[1,1]
IF ENR_ASSOCIATION<5> # "" THEN W_TXTACONVERTIR = W_TXTACONVERTIR:" ":ENR_ASSOCIATION<5>
IF ENR_ASSOCIATION<6> # "" THEN W_TXTACONVERTIR = W_TXTACONVERTIR:" ":ENR_ASSOCIATION<6>
GOSUB 9999991
IF W_TXTACONVERTIR # "" THEN ENR_DSN<-1> = W_CHAINE:"004,'":W_TXTACONVERTIR:"'"
W_ADRESSEASSO=W_TXTACONVERTIR 
W_TXTACONVERTIR=ENR_ASSOCIATION<8>
GOSUB 9999991
IF ENR_ASSOCIATION<10>="1" AND LEN(W_TXTACONVERTIR)=5 THEN
   IF W_TXTACONVERTIR[3,1]="0" THEN
      W_TXTACONVERTIR=W_TXTACONVERTIR[1,3]:"00"
   END ELSE
      W_TXTACONVERTIR=W_TXTACONVERTIR[1,4]:"0"
   END
END
ENR_DSN<-1> = W_CHAINE:"005,'":W_TXTACONVERTIR:"'"
W_CODEPOSTASSO=W_TXTACONVERTIR
W_TXTACONVERTIR=ENR_ASSOCIATION<9>
GOSUB 9999991
FOR Z = 1 TO LEN(W_TXTACONVERTIR)
   IF SEQ(W_TXTACONVERTIR[Z,1]) = 45 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:" ":W_TXTACONVERTIR[Z+1,999]
NEXT Z
W_VILLEASSO=W_TXTACONVERTIR
ENR_DSN<-1> = W_CHAINE:"006,'":W_TXTACONVERTIR:"'"
W_TXTACONVERTIR=ENR_ASSOCIATION<7>
GOSUB 9999991
W_COMPLASSO=W_TXTACONVERTIR
IF W_TXTACONVERTIR # "" THEN ENR_DSN<-1> = W_CHAINE:"009,'":W_TXTACONVERTIR:"'"
W_CODEAPE=ENR_ETABLISSEMENT<15>
RETURN


**********
* 100002 -> CONTACT EMETTEUR (S10.G00.02)
**********
100002
W_CHAINE = "S10.G00.02."
ENR_DSN<-1> = W_CHAINE:"001,'02'"
W_TXTACONVERTIR=ENR_ASSOCIATION<30>
GOSUB 9999991
IF W_TXTACONVERTIR # "" THEN
   ENR_DSN<-1> = W_CHAINE:"002,'":W_TXTACONVERTIR:"'"
END ELSE
   W_TXTACONVERTIR=ENR_ASSOCIATION<2>
   GOSUB 9999991
   ENR_DSN<-1> = W_CHAINE:"002,'":W_TXTACONVERTIR:"'"
END
W_NOMRESPASSO=W_TXTACONVERTIR
ENR_DSN<-1> = W_CHAINE:"003,'01'"
W_VerifMail = ENR_ASSOCIATION<35>
GOSUB 9999992
IF W_VerifMail # "" THEN
   ENR_DSN<-1> = W_CHAINE:"004,'":W_VerifMail:"'"
END ELSE
   ENR_DSN<-1> = W_CHAINE:"004,'infologis@orange.fr'"
   W_VerifMail="infologis@orange.fr"
END
ENR_DSN<-1> = W_CHAINE:"005,'":ENR_ASSOCIATION<12>:"'"
ENR_DSN<-1> = W_CHAINE:"006,'":ENR_ASSOCIATION<13>:"'"
RETURN


**********
* 100003 -> COMPTE RENDU D'EXPLOITATION (S10.G00.03)
**********
100003
W_CHAINE = "S10.G00.03."
ENR_DSN<-1> = W_CHAINE:"001,'":W_SIREN:"'"
ENR_DSN<-1> = W_CHAINE:"002,'":W_SIRET:"'"
ENR_DSN<-1> = W_CHAINE:"003,'":W_VerifMail:"'"
W_VerifMailAsso=W_VerifMail
RETURN


**********
* 200005 -> DECLARATION (S20.G00.05)
**********
200005
W_CHAINE = "S20.G00.05."
IF W_TYPETRAIT="1" THEN
* Didier 20/05/2015 : reprise d'historique
   IF W_REPRISEHISTORIQUE="1" THEN
      ENR_DSN<-1> = W_CHAINE:"001,'06'"  
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"001,'01'"
   END
END ELSE
   IF W_SIGNALEMENT="FINCONTRAT" THEN
      ENR_DSN<-1> = W_CHAINE:"001,'02'"  
   END ELSE
      IF W_SIGNALEMENT="ABSENCE" THEN
         ENR_DSN<-1> = W_CHAINE:"001,'04'"
      END ELSE
         ENR_DSN<-1> = W_CHAINE:"001,'05'"	  
	  END
   END   
END
IF W_TYPETRAIT="1" THEN
   ENR_DSN<-1> = W_CHAINE:"002,'01'"
END ELSE
   W_ANCIENNUMERODSNEVE=""
   IF W_ACTIONEVE="A" THEN
      W_ANCIENNUMERODSNEVE=ENR_DSNEVENEMENT<1>
	  ENR_DSN<-1> = W_CHAINE:"002,'04'"
   END ELSE
	  IF W_ACTIONEVE="AR" THEN
         IF W_SIGNALEMENT="REPRISE"	THEN
		    W_ANCIENNUMERODSNEVE=ENR_DSNEVENEMENT<3>
         END ELSE
		    W_ANCIENNUMERODSNEVE=ENR_DSNEVENEMENT<1>
         END
		 ENR_DSN<-1> = W_CHAINE:"002,'03'"
      END ELSE
         ENR_DSN<-1> = W_CHAINE:"002,'01'"	  
	  END
   END
   IF ENR_COMPTEUR<11>="" THEN ENR_COMPTEUR<11>=0
   W_NUMERODSNEVE=ENR_COMPTEUR<11>+1
   ENR_COMPTEUR<11>=W_NUMERODSNEVE
   WRITE ENR_COMPTEUR ON F.COMPTEUR,W_CODEENTITE
END
IF W_TYPETRAIT="2" THEN
   ENR_DSN<-1> = W_CHAINE:"003,'11'"
   W_FRACTIONETABL="11"
END ELSE
   IF ENR_ETABLISSEMENT<25> = "" THEN	
      ENR_DSN<-1> = W_CHAINE:"003,'11'"
      W_FRACTIONETABL="11"
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"003,'":ENR_ETABLISSEMENT<25>:"'"
      W_FRACTIONETABL=ENR_ETABLISSEMENT<25>
   END
END
IF W_TYPETRAIT="1" THEN
   ENR_DSN<-1> = W_CHAINE:"004,'1'"
END ELSE
   ENR_DSN<-1> = W_CHAINE:"004,'":W_NUMERODSNEVE:"'"
END
IF W_TYPETRAIT="1" THEN
   ENR_DSN<-1> = W_CHAINE:"005,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
END
IF W_TYPETRAIT="2" THEN
   IF W_ANCIENNUMERODSNEVE#"" THEN ENR_DSN<-1> = W_CHAINE:"006,'":W_ANCIENNUMERODSNEVE:"'"
END
ENR_DSN<-1> = W_CHAINE:"007,'":W_DATESYST:"'"
IF W_TYPETRAIT="1" THEN
* Didier 20/06/2016 : mis en commentaire
*   IF W_ETABLMSAURSSAF="OUI" THEN
*      IF W_TYPEURSSAFMSA="M" THEN
*         ENR_DSN<-1> = W_CHAINE:"008,'02'"
*      END ELSE
*         ENR_DSN<-1> = W_CHAINE:"008,'03'"   
*      END
*   END ELSE
      ENR_DSN<-1> = W_CHAINE:"008,'01'"
*   END
END
RETURN


**********
* 200007 -> CONTACT CHEZ LE DECLARE (S20.G00.07)
**********
200007
W_CHAINE = "S20.G00.07."
ENR_DSN<-1> = W_CHAINE:"001,'":W_NOMRESPASSO:"'"
ENR_DSN<-1> = W_CHAINE:"002,'":ENR_ASSOCIATION<12>:"'"
ENR_DSN<-1> = W_CHAINE:"003,'":W_VerifMailAsso:"'"
IF W_TYPETRAIT="2" THEN
   ENR_DSN<-1> = W_CHAINE:"004,'01'"
END
RETURN


**********
* 210006 -> ENTREPRISE (S21.G00.06)
**********
210006
W_CHAINE = "S21.G00.06."
ENR_DSN<-1> = W_CHAINE:"001,'":W_SIREN:"'"
IF W_REPRISEHISTORIQUE#"1" THEN
   ENR_DSN<-1> = W_CHAINE:"002,'":W_SIRET:"'"
   IF W_TYPETRAIT="1" THEN
      ENR_DSN<-1> = W_CHAINE:"003,'":W_CODEAPE:"'"
      ENR_DSN<-1> = W_CHAINE:"004,'":W_ADRESSEASSO:"'"
      ENR_DSN<-1> = W_CHAINE:"005,'":W_CODEPOSTASSO:"'"
      ENR_DSN<-1> = W_CHAINE:"006,'":W_VILLEASSO:"'"
      IF W_COMPLASSO#"" THEN
         ENR_DSN<-1> = W_CHAINE:"007,'":W_COMPLASSO:"'"
      END
      * Didier 20/05/2015 : phase 2
      W_EFFECTIFASSO=0
      I=1
      LOOP
      UNTIL ENR_ASSOCIATION<29,I>=W_ANNEEMOIS OR ENR_ASSOCIATION<29,I>=W_ANNEEMOISPREC OR ENR_ASSOCIATION<29,I>=""
         I=I+1
      REPEAT  
      IF ENR_ASSOCIATION<29,I>=W_ANNEEMOIS OR ENR_ASSOCIATION<29,I>=W_ANNEEMOISPREC THEN
         W_NBMOISEFFECTIF=0
         FOR J=I TO 12
            IF ENR_ASSOCIATION<29,J>#"" THEN
               W_EFFECTIFASSO=W_EFFECTIFASSO+ENR_ASSOCIATION<27,J>
               W_NBMOISEFFECTIF=W_NBMOISEFFECTIF+1 
            END
         NEXT J
      END
      W_EFFECTIFASSO=W_EFFECTIFASSO/100
      W_EFFECTIFASSO=INT(W_EFFECTIFASSO/W_NBMOISEFFECTIF)
      ENR_DSN<-1> = W_CHAINE:"009,'":W_EFFECTIFASSO:"'"
   END
END
RETURN


**********
* 210011 -> ETABLISSEMENT D'AFFECTATION (S21.G00.11)
**********
210011
W_CHAINE = "S21.G00.11."
W_SIRETETABL=ENR_ETABLISSEMENT<14>[10,5]
ENR_DSN<-1> = W_CHAINE:"001,'":W_SIRETETABL:"'"
IF W_TYPETRAIT="1" THEN
   ENR_DSN<-1> = W_CHAINE:"002,'":ENR_ETABLISSEMENT<15>:"'"
END
W_TXTACONVERTIR=ENR_ETABLISSEMENT<3>
IF ENR_ETABLISSEMENT<4>[1,1] = "B" OR ENR_ETABLISSEMENT<4>[1,1] = "T" OR ENR_ETABLISSEMENT<4>[1,1] = "Q" THEN W_TXTACONVERTIR = W_TXTACONVERTIR:" ":ENR_ETABLISSEMENT<4>[1,1]
IF ENR_ETABLISSEMENT<5> # "" THEN W_TXTACONVERTIR = W_TXTACONVERTIR:" ":ENR_ETABLISSEMENT<5>
IF ENR_ETABLISSEMENT<6> # "" THEN W_TXTACONVERTIR = W_TXTACONVERTIR:" ":ENR_ETABLISSEMENT<6>
GOSUB 9999991
IF W_TXTACONVERTIR # "" THEN 
   ENR_DSN<-1> = W_CHAINE:"003,'":W_TXTACONVERTIR:"'"
END ELSE
   ENR_DSN<-1> = W_CHAINE:"003,'":W_ADRESSEASSO:"'"
END
W_TXTACONVERTIR=ENR_ETABLISSEMENT<8>
GOSUB 9999991
IF W_TXTACONVERTIR # "" THEN
   IF ENR_ETABLISSEMENT<10>="1" AND LEN(W_TXTACONVERTIR)=5 THEN
      IF W_TXTACONVERTIR[3,1]="0" THEN
         W_TXTACONVERTIR=W_TXTACONVERTIR[1,3]:"00"
      END ELSE
         W_TXTACONVERTIR=W_TXTACONVERTIR[1,4]:"0"
      END
   END
   ENR_DSN<-1> = W_CHAINE:"004,'":W_TXTACONVERTIR:"'"
END ELSE
   ENR_DSN<-1> = W_CHAINE:"004,'":W_CODEPOSTASSO:"'"
END
W_TXTACONVERTIR=ENR_ETABLISSEMENT<9>
GOSUB 9999991
IF W_TXTACONVERTIR # "" THEN 
   ENR_DSN<-1> = W_CHAINE:"005,'":W_TXTACONVERTIR:"'"
END ELSE
   ENR_DSN<-1> = W_CHAINE:"005,'":W_VILLEASSO:"'"
END
W_TXTACONVERTIR=ENR_ETABLISSEMENT<7>
GOSUB 9999991
IF W_TXTACONVERTIR # "" THEN 
   ENR_DSN<-1> = W_CHAINE:"006,'":W_TXTACONVERTIR:"'"
END ELSE
   IF W_COMPLASSO # "" THEN ENR_DSN<-1> = W_CHAINE:"006,'":W_COMPLASSO:"'"
END
* Didier 21/05/2015 : phase 2
IF W_REPRISEHISTORIQUE#"1" AND W_TYPETRAIT="1" THEN
   ENR_DSN<-1> = W_CHAINE:"008,'0'"
   W_LIGNEEFFECTIFETABL=DCOUNT(ENR_DSN,CHAR(254))
   W_NBEFFECTIFETABL=0
END
RETURN


**********
* 210020 -> VERSEMENT ORGANISME DE PROTECTION SOCIALE (S21.G00.20)
**********
210020
W_CHAINE = "S21.G00.20."
ENR_DSN<-1> = W_CHAINE:"001,'":W_ORGPROTECTSOC:"'"
ENR_DSN<-1> = W_CHAINE:"002,'":ENR_ETABLISSEMENT<14>:"'"
*IF ENR_DUCSURSSAF<5>="1" THEN    
   ENR_DSN<-1> = W_CHAINE:"003,'":ENR_ASSOCIATION<16>:"'"
   ENR_DSN<-1> = W_CHAINE:"004,'":ENR_ASSOCIATION<15>:"'"
*END
W_MONTANTVERSEMENT=0
I=1
LOOP
UNTIL ENR_DUCSURSSAF<1,I>="" DO
   IF ENR_DUCSURSSAF<2,I>=0 THEN
      NULL
   END ELSE
      READ ENR_CTPURSSAF FROM F.CTPURSSAF,ENR_DUCSURSSAF<1,I> THEN
	     IF ENR_CTPURSSAF<3>="I" THEN
		    NULL
         END ELSE
		    IF ENR_CTPURSSAF<3>="R" THEN
               W_MONTANTVERSEMENT=W_MONTANTVERSEMENT-ENR_DUCSURSSAF<4,I>
			END ELSE
		       W_MONTANTVERSEMENT=W_MONTANTVERSEMENT+ENR_DUCSURSSAF<4,I>			
			END
         END
      END
   END
   I=I+1
REPEAT
W_MONTANTVERSEMENTSANSREGUL=W_MONTANTVERSEMENT
* Didier 05/12/2015 : gestion rgularisation
LISTREGULDUCS=""
EXECUTE 'SELECT DUCSURSSAFTAMPON AVEC 0 = "':ENR_CONTRAT<3>:']" AND AVEC 6 = "" OR = "':W_ANNEEMOIS:'" PAR 0'
EXECUTE 'SAUVE-LISTE LISTREGULDUCS'
EXECUTE "LISTE LISTREGULDUCS" RETURNING W_MSG
SELECT F.DUCSURSSAFTAMPON TO LISTREGULDUCS
IF W_MSG<1>#209 THEN
   W_FINDUCSTAMPON = "NON"
   LOOP
      READNEXT CLEDUCSURSSAFTAMPON FROM LISTREGULDUCS ELSE W_FINDUCSTAMPON = "OUI"
   UNTIL W_FINDUCSTAMPON = "OUI" DO
      READ ENR_DUCSURSSAFTAMPON FROM F.DUCSURSSAFTAMPON,CLEDUCSURSSAFTAMPON ELSE ENR_DUCSURSSAFTAMPON = ""
	  IF LEN(CLEDUCSURSSAFTAMPON)=12 THEN
         READ ENR_DUCSURSSAFINITIAL FROM F.DUCSURSSAF,CLEDUCSURSSAFTAMPON ELSE ENR_DUCSURSSAFINITIAL = ""
         I=1
         LOOP
         UNTIL ENR_DUCSURSSAFTAMPON<1,I>="" DO
	        J=1
            LOOP
            UNTIL ENR_DUCSURSSAFINITIAL<1,J>="" OR ENR_DUCSURSSAFINITIAL<1,J>=ENR_DUCSURSSAFTAMPON<1,I> DO
		       J=J+1
            REPEAT
		    IF ENR_DUCSURSSAFINITIAL<1,J>=ENR_DUCSURSSAFTAMPON<1,I> THEN
               READ ENR_CTPURSSAF FROM F.CTPURSSAF,ENR_DUCSURSSAFTAMPON<1,I> THEN
	              IF ENR_CTPURSSAF<3>="I" THEN
		             NULL
                  END ELSE
		             IF ENR_CTPURSSAF<3>="R" THEN
                        W_MONTANTVERSEMENT=W_MONTANTVERSEMENT-ENR_DUCSURSSAFTAMPON<4,I>+ENR_DUCSURSSAFINITIAL<4,J>
			         END ELSE
		                W_MONTANTVERSEMENT=W_MONTANTVERSEMENT+ENR_DUCSURSSAFTAMPON<4,I>-ENR_DUCSURSSAFINITIAL<4,J>
			         END
                  END
               END
            END ELSE
               READ ENR_CTPURSSAF FROM F.CTPURSSAF,ENR_DUCSURSSAFTAMPON<1,I> THEN
	              IF ENR_CTPURSSAF<3>="I" THEN
		             NULL
                  END ELSE
		             IF ENR_CTPURSSAF<3>="R" THEN
                        W_MONTANTVERSEMENT=W_MONTANTVERSEMENT-ENR_DUCSURSSAFTAMPON<4,I>
			         END ELSE
		                W_MONTANTVERSEMENT=W_MONTANTVERSEMENT+ENR_DUCSURSSAFTAMPON<4,I>
   			         END
                  END
               END
            END
            I=I+1
         REPEAT
      END ELSE
         I=1
         LOOP
         UNTIL ENR_DUCSURSSAFTAMPON<1,I>="" DO
            READ ENR_CTPURSSAF FROM F.CTPURSSAF,ENR_DUCSURSSAFTAMPON<1,I> THEN
               IF ENR_CTPURSSAF<3>="I" THEN
                  NULL
               END ELSE
		          IF ENR_CTPURSSAF<3>="R" THEN
                     W_MONTANTVERSEMENT=W_MONTANTVERSEMENT-ENR_DUCSURSSAFTAMPON<9,I>+ENR_DUCSURSSAFTAMPON<4,I>
			      END ELSE
		             W_MONTANTVERSEMENT=W_MONTANTVERSEMENT+ENR_DUCSURSSAFTAMPON<9,I>-ENR_DUCSURSSAFTAMPON<4,I>
                  END
			   END
            END
            I=I+1
         REPEAT	  
	  END
   REPEAT
END
EXECUTE "EFFACER-LISTE LISTREGULDUCS"

*IF ENR_DUCSURSSAF<5>="1" THEN 
   W_MISENFORME=W_MONTANTVERSEMENT "R26"
   ENR_DSN<-1> = W_CHAINE:"005,'":W_MISENFORME:"'"
*END
* Didier 05/08/2015 : dcalage de paie pour priode de rattachement
IF W_DECALAGEPAIE="1" THEN
   ENR_DSN<-1> = W_CHAINE:"006,'":W_DATEDEBPERIODEDSNRATTACH[1,2]:W_DATEDEBPERIODEDSNRATTACH[4,2]:W_DATEDEBPERIODEDSNRATTACH[7,4]:"'"
   ENR_DSN<-1> = W_CHAINE:"007,'":W_DATEFINPERIODEDSNRATTACH[1,2]:W_DATEFINPERIODEDSNRATTACH[4,2]:W_DATEFINPERIODEDSNRATTACH[7,4]:"'"
END ELSE
   ENR_DSN<-1> = W_CHAINE:"006,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
   ENR_DSN<-1> = W_CHAINE:"007,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
END
RETURN


**********
* 210022 -> BORDEREAU DE COTISATION DUE (S21.G00.22)
**********
210022
W_CHAINE = "S21.G00.22."
ENR_DSN<-1> = W_CHAINE:"001,'":W_ORGPROTECTSOC:"'"
ENR_DSN<-1> = W_CHAINE:"002,'":ENR_ETABLISSEMENT<14>:"'"
* Didier 05/08/2015 : dcalage de paie pour priode de rattachement
IF W_DECALAGEPAIE="1" THEN
   ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEDEBPERIODEDSNRATTACH[1,2]:W_DATEDEBPERIODEDSNRATTACH[4,2]:W_DATEDEBPERIODEDSNRATTACH[7,4]:"'"
   ENR_DSN<-1> = W_CHAINE:"004,'":W_DATEFINPERIODEDSNRATTACH[1,2]:W_DATEFINPERIODEDSNRATTACH[4,2]:W_DATEFINPERIODEDSNRATTACH[7,4]:"'"
END ELSE
   ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
   ENR_DSN<-1> = W_CHAINE:"004,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
END
*W_MISENFORME=W_MONTANTVERSEMENT "R26"
W_MISENFORME=W_MONTANTVERSEMENTSANSREGUL "R26"
ENR_DSN<-1> = W_CHAINE:"005,'":W_MISENFORME:"'"
RETURN


**********
* 210023 -> COTISATION AGREGEE (S21.G00.23)
**********
210023
* Didier 14/08/2015 : tri des lignes par CTP de manire  avoir les lignes pour taux AT (type A) avant les lignes dplafonnes (type D) puisque
* la ligne de type D est supprime si elle suit un mme CTP en type A (voir procdure en dessous de celle-ci)
I=1
W_TRIDUCSURSSAF=""
LOOP
UNTIL ENR_DUCSURSSAF<1,I>="" DO
   J=1
   LOOP
   UNTIL W_TRIDUCSURSSAF<1,J> = "" OR W_TRIDUCSURSSAF<1,J> > ENR_DUCSURSSAF<1,I> DO
      J=J+1
   REPEAT	   
   IF W_TRIDUCSURSSAF<1,J>="" THEN
      W_TRIDUCSURSSAF<1,J>=ENR_DUCSURSSAF<1,I>
      W_TRIDUCSURSSAF<2,J>=ENR_DUCSURSSAF<2,I>
      W_TRIDUCSURSSAF<3,J>=ENR_DUCSURSSAF<3,I>
      W_TRIDUCSURSSAF<4,J>=ENR_DUCSURSSAF<4,I>   
   END ELSE
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,1,J;ENR_DUCSURSSAF<1,I>)
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,2,J;ENR_DUCSURSSAF<2,I>)
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,3,J;ENR_DUCSURSSAF<3,I>)
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,4,J;ENR_DUCSURSSAF<4,I>)
   END  
   I=I+1
REPEAT
ENR_DUCSURSSAF<1>=W_TRIDUCSURSSAF<1>
ENR_DUCSURSSAF<2>=W_TRIDUCSURSSAF<2>
ENR_DUCSURSSAF<3>=W_TRIDUCSURSSAF<3>
ENR_DUCSURSSAF<4>=W_TRIDUCSURSSAF<4>
* Didier 05/08/2015 : enlever ligne CTP correspondant  du dplafonn si ce mme CTP a une ligne en AT
I=1
W_CTP=""
LOOP
UNTIL ENR_DUCSURSSAF<1,I>="" DO
   IF ENR_DUCSURSSAF<2,I>#0 THEN
      IF ENR_DUCSURSSAF<1,I>[4,1]="A" THEN
	     W_CTP=ENR_DUCSURSSAF<1,I>[1,3]
      END ELSE
         IF ENR_DUCSURSSAF<1,I>[4,1]="D" THEN		 
		    IF ENR_DUCSURSSAF<1,I>[1,3]=W_CTP THEN
			   ENR_DUCSURSSAF=DELETE(ENR_DUCSURSSAF,1,I)
			   ENR_DUCSURSSAF=DELETE(ENR_DUCSURSSAF,2,I)		 
			   ENR_DUCSURSSAF=DELETE(ENR_DUCSURSSAF,3,I)		 
			   ENR_DUCSURSSAF=DELETE(ENR_DUCSURSSAF,4,I)
               I=I-1
            END
         END			
      END 
   END
   I=I+1
REPEAT
W_CHAINE = "S21.G00.23."
I=1
LOOP
UNTIL ENR_DUCSURSSAF<1,I>="" DO
   IF ENR_DUCSURSSAF<2,I>#0 THEN
      IF ENR_DUCSURSSAF<1,I>[4,1]="A" THEN
         ENR_DSN<-1> = W_CHAINE:"001,'":ENR_DUCSURSSAF<1,I>[1,3]:"'"
         ENR_DSN<-1> = W_CHAINE:"002,'920'"  
	     W_MISENFORME= ENR_DUCSURSSAF<3,I>/10 "R26"
         ENR_DSN<-1> = W_CHAINE:"003,'":W_MISENFORME:"'"
         W_MISENFORME= ENR_DUCSURSSAF<2,I> "R26"
         ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
         W_MISENFORME=ENR_DUCSURSSAF<4,I> "R26"
		 * Didier 05/08/2015 : dtail ci-dessous supprim
         *ENR_DSN<-1> = W_CHAINE:"005,'":W_MISENFORME:"'"
		 *ENR_DSN<-1> = W_CHAINE:"001,'":ENR_DUCSURSSAF<1,I>[1,3]:"'"
         *ENR_DSN<-1> = W_CHAINE:"002,'921'"
         *W_MISENFORME= ENR_DUCSURSSAF<2,I> "R26"
         *ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
      END ELSE
         ENR_DSN<-1> = W_CHAINE:"001,'":ENR_DUCSURSSAF<1,I>[1,3]:"'"
         IF ENR_DUCSURSSAF<1,I>[4,1]="P" THEN
            ENR_DSN<-1> = W_CHAINE:"002,'921'"
         END ELSE
            ENR_DSN<-1> = W_CHAINE:"002,'920'"  
         END
		 * Didier 05/08/2015 : taux pour versement transport
		 IF ENR_DUCSURSSAF<1,I>[4,1]="T" THEN
	        W_MISENFORME=ENR_DUCSURSSAF<3,I>/10 "R26"
            ENR_DSN<-1> = W_CHAINE:"003,'":W_MISENFORME:"'"
         END
		 * Didier 05/08/2015 : taux  0 pour contribution assurance chomage apprenti loi 1979 (CTP 455)
		 IF ENR_DUCSURSSAF<1,I>[1,3]="455" THEN
*	        W_MISENFORME=ENR_DUCSURSSAF<3,I>/10 "R26"
            ENR_DSN<-1> = W_CHAINE:"003,'0.00'"
         END		 
		 * Didier 05/08/2015 : montant assiette uniquement si CTP # de 437 et 671
		 IF ENR_DUCSURSSAF<1,I>[1,3]#"437" AND ENR_DUCSURSSAF<1,I>[1,3]#"671" THEN		 
            W_MISENFORME=ENR_DUCSURSSAF<2,I> "R26"
            ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
         END
		 * Didier 05/08/2015 : montant cotisation uniquement si CTP 437 ou 671
		 IF ENR_DUCSURSSAF<1,I>[1,3]="437" OR ENR_DUCSURSSAF<1,I>[1,3]="671" THEN
            W_MISENFORME=ENR_DUCSURSSAF<4,I> "R26"
            ENR_DSN<-1> = W_CHAINE:"005,'":W_MISENFORME:"'"
         END
         IF ENR_DUCSURSSAF<1,I>[4,1]="T" THEN
            ENR_DSN<-1> = W_CHAINE:"006,'":W_CODEINSEECOMETABL:"'"
         END			
	  END
   END   
   I=I+1
REPEAT
RETURN


**********
* 21002223 -> BORDEREAU DE COTISATION DUE (S21.G00.22) - REGULARISATION
**********
210022231
LISTREGULDUCS=""
EXECUTE 'SELECT DUCSURSSAFTAMPON AVEC 0 = "':ENR_CONTRAT<3>:']" AND AVEC 6 = "" OR = "':W_ANNEEMOIS:'" PAR 0'
EXECUTE 'SAUVE-LISTE LISTREGULDUCS'
EXECUTE "LISTE LISTREGULDUCS" RETURNING W_MSG
SELECT F.DUCSURSSAFTAMPON TO LISTREGULDUCS
IF W_MSG<1>#209 THEN
   W_FINDUCSTAMPON = "NON"
   LOOP
      READNEXT CLEDUCSURSSAFTAMPON FROM LISTREGULDUCS ELSE W_FINDUCSTAMPON = "OUI"
   UNTIL W_FINDUCSTAMPON = "OUI" DO
      READ ENR_DUCSURSSAFTAMPON FROM F.DUCSURSSAFTAMPON,CLEDUCSURSSAFTAMPON THEN
         ENR_DUCSURSSAFTAMPON<6> = 	W_ANNEEMOIS
         WRITE ENR_DUCSURSSAFTAMPON ON F.DUCSURSSAFTAMPON,CLEDUCSURSSAFTAMPON	 
      END ELSE
         ENR_DUCSURSSAFTAMPON = ""
      END
	  IF LEN(CLEDUCSURSSAFTAMPON)=12 THEN	  
         W_ANNEEMOISDUCSREGUL=CLEDUCSURSSAFTAMPON[7,6]
         W_ANNEEDUCSREGUL=W_ANNEEMOISDUCSREGUL[1,4] 
         W_DATEDEBUTPERIODEDSNMENSEXTREGUL="01/":W_ANNEEMOISDUCSREGUL[5,2]:"/":W_ANNEEMOISDUCSREGUL[1,4]
         W_DATEFINPERIODEDSNREGUL=W_ANNEEMOISDUCSREGUL[5,2]+1
         IF W_DATEFINPERIODEDSNREGUL=13 THEN
            W_DATEFINPERIODEDSNREGUL="01/01/":W_ANNEEDUCSREGUL+1
         END ELSE
            W_DATEFINPERIODEDSNREGUL=W_DATEFINPERIODEDSNREGUL "R%2"
            W_DATEFINPERIODEDSNREGUL="01/":W_DATEFINPERIODEDSNREGUL:"/":W_ANNEE
         END
         W_DATEDEBPERIODEDSNRATTACHREGUL=W_DATEFINPERIODEDSNREGUL
         W_DATEFINPERIODEDSNSUIVANTEREGUL=W_DATEFINPERIODEDSNREGUL[4,2]+1
         IF W_DATEFINPERIODEDSNSUIVANTEREGUL=13 THEN
            W_DATEFINPERIODEDSNSUIVANTEREGUL="01/01/":W_DATEFINPERIODEDSNREGUL[7,4]+1
         END ELSE
            W_DATEFINPERIODEDSNSUIVANTEREGUL=W_DATEFINPERIODEDSNSUIVANTEREGUL "R%2"
            W_DATEFINPERIODEDSNSUIVANTEREGUL="01/":W_DATEFINPERIODEDSNSUIVANTEREGUL:"/":W_DATEFINPERIODEDSNREGUL[7,4]
         END
         W_DATEFINPERIODEDSNREGUL=ICONV(W_DATEFINPERIODEDSNREGUL,"D4/")-1
         W_DATEFINPERIODEDSNEXTREGUL=OCONV(W_DATEFINPERIODEDSNREGUL,"D4/")
         W_DATEFINPERIODEDSNRATTACHREGUL=ICONV(W_DATEFINPERIODEDSNSUIVANTEREGUL,"D4/")-1
         W_DATEFINPERIODEDSNRATTACHREGUL=OCONV(W_DATEFINPERIODEDSNRATTACHREGUL,"D4/")	  
         W_CHAINE = "S21.G00.22."
         ENR_DSN<-1> = W_CHAINE:"001,'":W_ORGPROTECTSOC:"'"
         ENR_DSN<-1> = W_CHAINE:"002,'":ENR_ETABLISSEMENT<14>:"'"
         IF W_DECALAGEPAIE="1" THEN
            ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEDEBPERIODEDSNRATTACHREGUL[1,2]:W_DATEDEBPERIODEDSNRATTACHREGUL[4,2]:W_DATEDEBPERIODEDSNRATTACHREGUL[7,4]:"'"
            ENR_DSN<-1> = W_CHAINE:"004,'":W_DATEFINPERIODEDSNRATTACHREGUL[1,2]:W_DATEFINPERIODEDSNRATTACHREGUL[4,2]:W_DATEFINPERIODEDSNRATTACHREGUL[7,4]:"'"
         END ELSE
            ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEDEBUTPERIODEDSNMENSEXTREGUL[1,2]:W_DATEDEBUTPERIODEDSNMENSEXTREGUL[4,2]:W_DATEDEBUTPERIODEDSNMENSEXTREGUL[7,4]:"'"
            ENR_DSN<-1> = W_CHAINE:"004,'":W_DATEFINPERIODEDSNEXTREGUL[1,2]:W_DATEFINPERIODEDSNEXTREGUL[4,2]:W_DATEFINPERIODEDSNEXTREGUL[7,4]:"'"
         END
		 W_MONTANTVERSEMENTREGUL=0
	     READ ENR_DUCSURSSAFINITIAL FROM F.DUCSURSSAF,CLEDUCSURSSAFTAMPON ELSE ENR_DUCSURSSAFINITIAL = ""
         I=1
         LOOP
         UNTIL ENR_DUCSURSSAFTAMPON<1,I>="" DO
	        J=1
            LOOP
            UNTIL ENR_DUCSURSSAFINITIAL<1,J>="" OR ENR_DUCSURSSAFINITIAL<1,J>=ENR_DUCSURSSAFTAMPON<1,I> DO
		       J=J+1
            REPEAT
		    IF ENR_DUCSURSSAFINITIAL<1,J>=ENR_DUCSURSSAFTAMPON<1,I> THEN
               READ ENR_CTPURSSAF FROM F.CTPURSSAF,ENR_DUCSURSSAFTAMPON<1,I> THEN
	              IF ENR_CTPURSSAF<3>="I" THEN
		             NULL
                  END ELSE
		             IF ENR_CTPURSSAF<3>="R" THEN
                        W_MONTANTVERSEMENTREGUL=W_MONTANTVERSEMENTREGUL-ENR_DUCSURSSAFTAMPON<4,I>+ENR_DUCSURSSAFINITIAL<4,J>
			         END ELSE
		                W_MONTANTVERSEMENTREGUL=W_MONTANTVERSEMENTREGUL+ENR_DUCSURSSAFTAMPON<4,I>-ENR_DUCSURSSAFINITIAL<4,J>
			         END
                  END
               END
            END ELSE
               READ ENR_CTPURSSAF FROM F.CTPURSSAF,ENR_DUCSURSSAFTAMPON<1,I> THEN
	              IF ENR_CTPURSSAF<3>="I" THEN
		             NULL
                  END ELSE
		             IF ENR_CTPURSSAF<3>="R" THEN
                        W_MONTANTVERSEMENTREGUL=W_MONTANTVERSEMENTREGUL-ENR_DUCSURSSAFTAMPON<4,I>
			         END ELSE
		                W_MONTANTVERSEMENTREGUL=W_MONTANTVERSEMENTREGUL+ENR_DUCSURSSAFTAMPON<4,I>
   			         END
                  END
               END
            END
            I=I+1
         REPEAT
         W_MISENFORME=W_MONTANTVERSEMENTREGUL "R26"
         ENR_DSN<-1> = W_CHAINE:"005,'":W_MISENFORME:"'"		 
		 GOSUB 210022232
      END ELSE
	     W_ANNEEDUCSREGUL=CLEDUCSURSSAFTAMPON[7,4]
         W_CHAINE = "S21.G00.22."
         ENR_DSN<-1> = W_CHAINE:"001,'":W_ORGPROTECTSOC:"'"
         ENR_DSN<-1> = W_CHAINE:"002,'":ENR_ETABLISSEMENT<14>:"'"
         ENR_DSN<-1> = W_CHAINE:"003,'0101":W_ANNEEDUCSREGUL:"'"
         ENR_DSN<-1> = W_CHAINE:"004,'3112":W_ANNEEDUCSREGUL:"'"
         W_MONTANTVERSEMENTREGUL=0
         I=1
         LOOP
         UNTIL ENR_DUCSURSSAFTAMPON<1,I>="" DO
		    IF ENR_DUCSURSSAFTAMPON<7,I>#"" THEN
               READ ENR_CTPURSSAF FROM F.CTPURSSAF,ENR_DUCSURSSAFTAMPON<1,I> THEN
	              IF ENR_CTPURSSAF<3>="I" THEN
		             NULL
                  END ELSE
		             IF ENR_CTPURSSAF<3>="R" THEN
                        W_MONTANTVERSEMENTREGUL=W_MONTANTVERSEMENTREGUL-ENR_DUCSURSSAFTAMPON<9,I>+ENR_DUCSURSSAFTAMPON<4,I>
			         END ELSE
		                W_MONTANTVERSEMENTREGUL=W_MONTANTVERSEMENTREGUL+ENR_DUCSURSSAFTAMPON<9,I>-ENR_DUCSURSSAFTAMPON<4,I>
			         END
                  END
               END
            END
            I=I+1
         REPEAT		 
         W_MISENFORME=W_MONTANTVERSEMENTREGUL "R26"
         ENR_DSN<-1> = W_CHAINE:"005,'":W_MISENFORME:"'"	  
		 GOSUB 210022233	  
	  END
   REPEAT
END
EXECUTE "EFFACER-LISTE LISTREGULDUCS"
RETURN


**********
* 210023 -> COTISATION AGREGEE (S21.G00.23) - REGULARISATION MENSUELLE
**********
210022232
I=1
W_TRIDUCSURSSAF=""
LOOP
UNTIL ENR_DUCSURSSAFTAMPON<1,I>="" DO
   J=1
   LOOP
   UNTIL W_TRIDUCSURSSAF<1,J> = "" OR W_TRIDUCSURSSAF<1,J> > ENR_DUCSURSSAFTAMPON<1,I> DO
      J=J+1
   REPEAT	   
   IF W_TRIDUCSURSSAF<1,J>="" THEN
      W_TRIDUCSURSSAF<1,J>=ENR_DUCSURSSAFTAMPON<1,I>
      W_TRIDUCSURSSAF<2,J>=ENR_DUCSURSSAFTAMPON<2,I>
      W_TRIDUCSURSSAF<3,J>=ENR_DUCSURSSAFTAMPON<3,I>
      W_TRIDUCSURSSAF<4,J>=ENR_DUCSURSSAFTAMPON<4,I>   
   END ELSE
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,1,J;ENR_DUCSURSSAFTAMPON<1,I>)
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,2,J;ENR_DUCSURSSAFTAMPON<2,I>)
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,3,J;ENR_DUCSURSSAFTAMPON<3,I>)
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,4,J;ENR_DUCSURSSAFTAMPON<4,I>)
   END  
   I=I+1
REPEAT
ENR_DUCSURSSAFTAMPON<1>=W_TRIDUCSURSSAF<1>
ENR_DUCSURSSAFTAMPON<2>=W_TRIDUCSURSSAF<2>
ENR_DUCSURSSAFTAMPON<3>=W_TRIDUCSURSSAF<3>
ENR_DUCSURSSAFTAMPON<4>=W_TRIDUCSURSSAF<4>
I=1
W_CTP=""
LOOP
UNTIL ENR_DUCSURSSAFTAMPON<1,I>="" DO
   IF ENR_DUCSURSSAFTAMPON<2,I>#0 THEN
      IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="A" THEN
	     W_CTP=ENR_DUCSURSSAFTAMPON<1,I>[1,3]
      END ELSE
         IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="D" THEN		 
		    IF ENR_DUCSURSSAFTAMPON<1,I>[1,3]=W_CTP THEN
			   ENR_DUCSURSSAFTAMPON=DELETE(ENR_DUCSURSSAFTAMPON,1,I)
			   ENR_DUCSURSSAFTAMPON=DELETE(ENR_DUCSURSSAFTAMPON,2,I)		 
			   ENR_DUCSURSSAFTAMPON=DELETE(ENR_DUCSURSSAFTAMPON,3,I)		 
			   ENR_DUCSURSSAFTAMPON=DELETE(ENR_DUCSURSSAFTAMPON,4,I)
               I=I-1
            END
         END			
      END 
   END
   I=I+1
REPEAT
W_CHAINE = "S21.G00.23."
I=1
LOOP
UNTIL ENR_DUCSURSSAFTAMPON<1,I>="" DO
   J=1
   LOOP
   UNTIL ENR_DUCSURSSAFINITIAL<1,J>="" OR ENR_DUCSURSSAFINITIAL<1,J>=ENR_DUCSURSSAFTAMPON<1,I> DO
      J=J+1
   REPEAT
   IF ENR_DUCSURSSAFINITIAL<1,J>="" THEN
      IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="A" THEN
         ENR_DSN<-1> = W_CHAINE:"001,'":ENR_DUCSURSSAFTAMPON<1,I>[1,3]:"'"
         ENR_DSN<-1> = W_CHAINE:"002,'920'"  
	     W_MISENFORME= ENR_DUCSURSSAFTAMPON<3,I>/10 "R26"
         ENR_DSN<-1> = W_CHAINE:"003,'":W_MISENFORME:"'"
         W_MISENFORME= ENR_DUCSURSSAFTAMPON<2,I> "R26"
         ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
      END ELSE
         ENR_DSN<-1> = W_CHAINE:"001,'":ENR_DUCSURSSAFTAMPON<1,I>[1,3]:"'"
         IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="P" THEN
            ENR_DSN<-1> = W_CHAINE:"002,'921'"
         END ELSE
            ENR_DSN<-1> = W_CHAINE:"002,'920'"  
         END
		 IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="T" THEN
	        W_MISENFORME=ENR_DUCSURSSAFTAMPON<3,I>/10 "R26"
            ENR_DSN<-1> = W_CHAINE:"003,'":W_MISENFORME:"'"
         END
		 IF ENR_DUCSURSSAFTAMPON<1,I>[1,3]="455" THEN
            ENR_DSN<-1> = W_CHAINE:"003,'0.00'"
         END		 
		 IF ENR_DUCSURSSAFTAMPON<1,I>[1,3]#"437" AND ENR_DUCSURSSAFTAMPON<1,I>[1,3]#"671" THEN		 
            W_MISENFORME=ENR_DUCSURSSAFTAMPON<2,I> "R26"
            ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
         END
		 IF ENR_DUCSURSSAFTAMPON<1,I>[1,3]="437" OR ENR_DUCSURSSAFTAMPON<1,I>[1,3]="671" THEN
            W_MISENFORME=ENR_DUCSURSSAFTAMPON<4,I> "R26"
            ENR_DSN<-1> = W_CHAINE:"005,'":W_MISENFORME:"'"
         END
         IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="T" THEN
            ENR_DSN<-1> = W_CHAINE:"006,'":W_CODEINSEECOMETABL:"'"
         END			
	  END
   END ELSE
      IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="A" THEN
         ENR_DSN<-1> = W_CHAINE:"001,'":ENR_DUCSURSSAFTAMPON<1,I>[1,3]:"'"
         ENR_DSN<-1> = W_CHAINE:"002,'920'"  
	     W_MISENFORME= ENR_DUCSURSSAFTAMPON<3,I>/10 "R26"
         ENR_DSN<-1> = W_CHAINE:"003,'":W_MISENFORME:"'"
         W_MISENFORME= (ENR_DUCSURSSAFTAMPON<2,I>-ENR_DUCSURSSAFINITIAL<2,J>) "R26"
         ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
      END ELSE
         ENR_DSN<-1> = W_CHAINE:"001,'":ENR_DUCSURSSAFTAMPON<1,I>[1,3]:"'"
         IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="P" THEN
            ENR_DSN<-1> = W_CHAINE:"002,'921'"
         END ELSE
            ENR_DSN<-1> = W_CHAINE:"002,'920'"  
         END
		 IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="T" THEN
	        W_MISENFORME=ENR_DUCSURSSAFTAMPON<3,I>/10 "R26"
            ENR_DSN<-1> = W_CHAINE:"003,'":W_MISENFORME:"'"
         END
		 IF ENR_DUCSURSSAFTAMPON<1,I>[1,3]="455" THEN
            ENR_DSN<-1> = W_CHAINE:"003,'0.00'"
         END		 
		 IF ENR_DUCSURSSAFTAMPON<1,I>[1,3]#"437" AND ENR_DUCSURSSAFTAMPON<1,I>[1,3]#"671" THEN		 
            W_MISENFORME=(ENR_DUCSURSSAFTAMPON<2,I>-ENR_DUCSURSSAFINITIAL<2,J>) "R26"
            ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
         END
		 IF ENR_DUCSURSSAFTAMPON<1,I>[1,3]="437" OR ENR_DUCSURSSAFTAMPON<1,I>[1,3]="671" THEN
            W_MISENFORME=(ENR_DUCSURSSAFTAMPON<4,I>-ENR_DUCSURSSAFINITIAL<4,J>) "R26"
            ENR_DSN<-1> = W_CHAINE:"005,'":W_MISENFORME:"'"
         END
         IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="T" THEN
            ENR_DSN<-1> = W_CHAINE:"006,'":W_CODEINSEECOMETABL:"'"
         END			
	  END
   END   
   I=I+1
REPEAT
RETURN


**********
* 210023 -> COTISATION AGREGEE (S21.G00.23) - REGULARISATION ANNUELLE
**********
210022233
I=1
W_TRIDUCSURSSAF=""
LOOP
UNTIL ENR_DUCSURSSAFTAMPON<1,I>="" DO
   J=1
   LOOP
   UNTIL W_TRIDUCSURSSAF<1,J> = "" OR W_TRIDUCSURSSAF<1,J> > ENR_DUCSURSSAFTAMPON<1,I> DO
      J=J+1
   REPEAT	   
   IF W_TRIDUCSURSSAF<1,J>="" THEN
      W_TRIDUCSURSSAF<1,J>=ENR_DUCSURSSAFTAMPON<1,I>
      W_TRIDUCSURSSAF<2,J>=ENR_DUCSURSSAFTAMPON<2,I>
      W_TRIDUCSURSSAF<3,J>=ENR_DUCSURSSAFTAMPON<3,I>
      W_TRIDUCSURSSAF<4,J>=ENR_DUCSURSSAFTAMPON<4,I> 
      W_TRIDUCSURSSAF<7,J>=ENR_DUCSURSSAFTAMPON<7,I>
      W_TRIDUCSURSSAF<8,J>=ENR_DUCSURSSAFTAMPON<8,I>
      W_TRIDUCSURSSAF<9,J>=ENR_DUCSURSSAFTAMPON<9,I> 	  
   END ELSE
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,1,J;ENR_DUCSURSSAFTAMPON<1,I>)
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,2,J;ENR_DUCSURSSAFTAMPON<2,I>)
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,3,J;ENR_DUCSURSSAFTAMPON<3,I>)
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,4,J;ENR_DUCSURSSAFTAMPON<4,I>)
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,7,J;ENR_DUCSURSSAFTAMPON<7,I>)
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,8,J;ENR_DUCSURSSAFTAMPON<8,I>)
      W_TRIDUCSURSSAF=INSERT(W_TRIDUCSURSSAF,9,J;ENR_DUCSURSSAFTAMPON<9,I>)	  
   END  
   I=I+1
REPEAT
ENR_DUCSURSSAFTAMPON<1>=W_TRIDUCSURSSAF<1>
ENR_DUCSURSSAFTAMPON<2>=W_TRIDUCSURSSAF<2>
ENR_DUCSURSSAFTAMPON<3>=W_TRIDUCSURSSAF<3>
ENR_DUCSURSSAFTAMPON<4>=W_TRIDUCSURSSAF<4>
ENR_DUCSURSSAFTAMPON<7>=W_TRIDUCSURSSAF<7>
ENR_DUCSURSSAFTAMPON<8>=W_TRIDUCSURSSAF<8>
ENR_DUCSURSSAFTAMPON<9>=W_TRIDUCSURSSAF<9>
I=1
W_CTP=""
LOOP
UNTIL ENR_DUCSURSSAFTAMPON<1,I>="" DO
   IF ENR_DUCSURSSAFTAMPON<2,I>#0 THEN
      IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="A" THEN
	     W_CTP=ENR_DUCSURSSAFTAMPON<1,I>[1,3]
      END ELSE
         IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="D" THEN		 
		    IF ENR_DUCSURSSAFTAMPON<1,I>[1,3]=W_CTP THEN
			   ENR_DUCSURSSAFTAMPON=DELETE(ENR_DUCSURSSAFTAMPON,1,I)
			   ENR_DUCSURSSAFTAMPON=DELETE(ENR_DUCSURSSAFTAMPON,2,I)		 
			   ENR_DUCSURSSAFTAMPON=DELETE(ENR_DUCSURSSAFTAMPON,3,I)		 
			   ENR_DUCSURSSAFTAMPON=DELETE(ENR_DUCSURSSAFTAMPON,4,I)
			   ENR_DUCSURSSAFTAMPON=DELETE(ENR_DUCSURSSAFTAMPON,7,I)		 
			   ENR_DUCSURSSAFTAMPON=DELETE(ENR_DUCSURSSAFTAMPON,8,I)		 
			   ENR_DUCSURSSAFTAMPON=DELETE(ENR_DUCSURSSAFTAMPON,9,I)			   
               I=I-1
            END
         END			
      END 
   END
   I=I+1
REPEAT
W_CHAINE = "S21.G00.23."
I=1
LOOP
UNTIL ENR_DUCSURSSAFTAMPON<1,I>="" DO
   IF ENR_DUCSURSSAFTAMPON<7,I>#"" THEN
      IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="A" THEN
         ENR_DSN<-1> = W_CHAINE:"001,'":ENR_DUCSURSSAFTAMPON<1,I>[1,3]:"'"
         ENR_DSN<-1> = W_CHAINE:"002,'920'"  
	     W_MISENFORME= ENR_DUCSURSSAFTAMPON<8,I>/10 "R26"
         ENR_DSN<-1> = W_CHAINE:"003,'":W_MISENFORME:"'"
         W_MISENFORME= (ENR_DUCSURSSAFTAMPON<7,I>-ENR_DUCSURSSAFTAMPON<2,I>) "R26"
         ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
      END ELSE
         ENR_DSN<-1> = W_CHAINE:"001,'":ENR_DUCSURSSAFTAMPON<1,I>[1,3]:"'"
         IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="P" THEN
            ENR_DSN<-1> = W_CHAINE:"002,'921'"
         END ELSE
            ENR_DSN<-1> = W_CHAINE:"002,'920'"  
         END
		 IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="T" THEN
	        W_MISENFORME=ENR_DUCSURSSAFTAMPON<8,I>/10 "R26"
            ENR_DSN<-1> = W_CHAINE:"003,'":W_MISENFORME:"'"
         END
		 IF ENR_DUCSURSSAFTAMPON<1,I>[1,3]="455" THEN
            ENR_DSN<-1> = W_CHAINE:"003,'0.00'"
         END		 
		 IF ENR_DUCSURSSAFTAMPON<1,I>[1,3]#"437" AND ENR_DUCSURSSAFTAMPON<1,I>[1,3]#"671" THEN		 
            W_MISENFORME=(ENR_DUCSURSSAFTAMPON<7,I>-ENR_DUCSURSSAFTAMPON<2,I>) "R26"
            ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
         END
		 IF ENR_DUCSURSSAFTAMPON<1,I>[1,3]="437" OR ENR_DUCSURSSAFTAMPON<1,I>[1,3]="671" THEN
            W_MISENFORME=(ENR_DUCSURSSAFTAMPON<9,I>-ENR_DUCSURSSAFTAMPON<4,I>) "R26"
            ENR_DSN<-1> = W_CHAINE:"005,'":W_MISENFORME:"'"
         END
         IF ENR_DUCSURSSAFTAMPON<1,I>[4,1]="T" THEN
            ENR_DSN<-1> = W_CHAINE:"006,'":W_CODEINSEECOMETABL:"'"
         END			
	  END
   END   
   I=I+1
REPEAT
RETURN


**********
* 210030 -> SALARIE  (S21.G00.30)
**********
210030
W_CHAINE = "S21.G00.30."
W_NUMSECU=""
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 = ""
* Didier 22/05/2015 : si NIR vide, alors renseigner structure S21.G00.30.020
*IF W_NUMSECU = "" THEN
*   IF ENR_CIVILAIDANT<16> = "M" THEN
*      W_NUMSECU = "1999999999999"
*   END ELSE
*      W_NUMSECU = "2999999999999"
*   END
*END
* Didier 18/02/2016 : DA16006
IF W_TYPETRAIT="2" THEN
   IF W_NUMSECU # "" THEN
      READ ENR_AIDANTNTT FROM F.AIDANTNTT,W_CODEAIDANT THEN
         IF ENR_AIDANTNTT<1,W_CODEENTITE>#"" THEN
            W_LONGNTT=LEN(ENR_AIDANTNTT<1,W_CODEENTITE>)
            IF W_LONGNTT=22 THEN
		       IF ENR_AIDANTNTT<1,W_CODEENTITE>[17,6]<=ENR_PERIODESPAIE<3> THEN
                  ENR_DSN<-1> = W_CHAINE:"001,'":W_NUMSECU:"'"				   
               END			
			END
         END
      END ELSE
         ENR_DSN<-1> = W_CHAINE:"001,'":W_NUMSECU:"'"	  
	  END
   END
END ELSE
   IF W_NUMSECU # "" THEN ENR_DSN<-1> = W_CHAINE:"001,'":W_NUMSECU:"'"
END
W_NOMAIDANT=ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
W_NOMAIDANT=W_NOMAIDANT "L(#25)"
W_TXTACONVERTIR = ENR_CIVILAIDANT<4>
IF ENR_CIVILAIDANT<4> = "" THEN W_TXTACONVERTIR = ENR_CIVILAIDANT<2>
GOSUB 9999991
ENR_DSN<-1> = W_CHAINE:"002,'":W_TXTACONVERTIR:"'"
IF W_REPRISEHISTORIQUE#"1" THEN
   W_TXTACONVERTIR = ENR_CIVILAIDANT<2>
   GOSUB 9999991
   ENR_DSN<-1> = W_CHAINE:"003,'":W_TXTACONVERTIR:"'"
END
W_TXTACONVERTIR = ENR_CIVILAIDANT<3>
GOSUB 9999991
ENR_DSN<-1> = W_CHAINE:"004,'":W_TXTACONVERTIR:"'"
IF W_REPRISEHISTORIQUE#"1" AND W_TYPETRAIT="1" THEN
   IF ENR_CIVILAIDANT<1> = "MME" THEN
      IF W_NUMSECU[1,1] = "1" THEN   
         ENR_DSN<-1> = W_CHAINE:"005,'02'"
      END
   END ELSE 
      IF ENR_CIVILAIDANT<1> = "MLE" THEN
	     IF W_NUMSECU[1,1] = "1" THEN 
            ENR_DSN<-1> = W_CHAINE:"005,'02'"
         END
      END ELSE
	     IF W_NUMSECU[1,1] = "2" THEN
            ENR_DSN<-1> = W_CHAINE:"005,'01'"
         END
      END
   END
END
ENR_DSN<-1> = W_CHAINE:"006,'":CONVERT("/","",OCONV(ENR_CIVILAIDANT<26>,"D4/")):"'"
IF W_TYPETRAIT="1" THEN
   W_TXTACONVERTIR = ENR_CIVILAIDANT<27>
   GOSUB 9999991
   ENR_DSN<-1> = W_CHAINE:"007,'":W_TXTACONVERTIR:"'"
END
IF W_REPRISEHISTORIQUE#"1" AND W_TYPETRAIT="1" THEN
   W_TXTACONVERTIR=ENR_CIVILAIDANT<5>
   IF ENR_CIVILAIDANT<6>[1,1] = "B" OR ENR_CIVILAIDANT<6>[1,1] = "T" OR ENR_CIVILAIDANT<6>[1,1] = "Q" THEN W_TXTACONVERTIR = W_TXTACONVERTIR:" ":ENR_CIVILAIDANT<6>[1,1]
   IF ENR_CIVILAIDANT<7> # "" THEN W_TXTACONVERTIR = W_TXTACONVERTIR:" ":ENR_CIVILAIDANT<7>
   IF ENR_CIVILAIDANT<8> # "" THEN W_TXTACONVERTIR = W_TXTACONVERTIR:" ":ENR_CIVILAIDANT<8>
   GOSUB 9999991
   IF W_TXTACONVERTIR # "" THEN
      ENR_DSN<-1> = W_CHAINE:"008,'":W_TXTACONVERTIR:"'"
   END ELSE
      W_TXTACONVERTIR = ENR_CIVILAIDANT<9>
      GOSUB 9999991
      ENR_DSN<-1> = W_CHAINE:"008,'":W_TXTACONVERTIR:"'"
      ENR_CIVILAIDANT<9>=""
   END
   W_TXTACONVERTIR = ENR_CIVILAIDANT<10>
   GOSUB 9999991
   IF TRIM(ENR_CIVILAIDANT<47>) <> "" THEN
      NULL
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"009,'":W_TXTACONVERTIR:"'"
   END
   W_TXTACONVERTIR = ENR_CIVILAIDANT<11>
   GOSUB 9999991
   W_TXTACONVERTIR = CONVERT("-","", W_TXTACONVERTIR)
   ENR_DSN<-1> = W_CHAINE:"010,'":W_TXTACONVERTIR:"'"
   IF TRIM(ENR_CIVILAIDANT<47>) <> "" THEN	
      READ ENR_PAYS FROM F.PAYS, ENR_CIVILAIDANT<47> ELSE ENR_PAYS = ""
      ENR_DSN<-1> = W_CHAINE:"011,'":ENR_PAYS<3>:"'"
      W_TXTACONVERTIR = ENR_CIVILAIDANT<10>
      GOSUB 9999991
      ENR_DSN<-1> = W_CHAINE:"012,'":W_TXTACONVERTIR:"'"
   END
   IF TRIM(ENR_CIVILAIDANT<29>) = "000000" OR ENR_CIVILAIDANT<29>="" THEN
      ENR_DSN<-1> = W_CHAINE:"013,'01'"
   END ELSE
      READ ENR_PAYS FROM F.PAYS, ENR_CIVILAIDANT<29> ELSE ENR_PAYS = ""
      IF ENR_PAYS<2>="C" THEN
         ENR_DSN<-1> = W_CHAINE:"013,'02'"  
      END ELSE
         ENR_DSN<-1> = W_CHAINE:"013,'99'"
      END
   END
END
IF W_TYPETRAIT="1" THEN
   IF ENR_CIVILAIDANT<17> # "" THEN
      IF ENR_CIVILAIDANT<17>[9,2]="00" THEN
         ENR_DSN<-1> = W_CHAINE:"014,'99'"   
      END ELSE 
         ENR_DSN<-1> = W_CHAINE:"014,'":ENR_CIVILAIDANT<17>[9,2]:"'"
      END
   END ELSE 
      IF ENR_CIVILAIDANT<28> # "" THEN
         ENR_DSN<-1> = W_CHAINE:"014,'":ENR_CIVILAIDANT<28>:"'"
      END ELSE
         ENR_DSN<-1> = W_CHAINE:"014,'99'"
      END
   END
   IF TRIM(ENR_CIVILAIDANT<29>) <> "" THEN	
      READ ENR_PAYS FROM F.PAYS, ENR_CIVILAIDANT<29> ELSE ENR_PAYS = ""
      ENR_DSN<-1> = W_CHAINE:"015,'":ENR_PAYS<3>:"'"
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"015,'FR'"
   END
END
IF W_REPRISEHISTORIQUE#"1" AND W_TYPETRAIT="1" THEN
   W_TXTACONVERTIR = ENR_CIVILAIDANT<9>
   GOSUB 9999991
   IF W_TXTACONVERTIR # "" THEN
      IF LEN(W_TXTACONVERTIR)>50 THEN W_TXTACONVERTIR=W_TXTACONVERTIR[1,50]
      ENR_DSN<-1> = W_CHAINE:"016,'":W_TXTACONVERTIR:"'"
   END
   * Didier 20/05/2015 : phase 2
   W_VerifMail = ENR_CIVILAIDANT<46>
   GOSUB 9999992
   IF W_VerifMail # "" THEN
      ENR_DSN<-1> = W_CHAINE:"018,'":W_VerifMail:"'"
   END
END
ENR_DSN<-1> = W_CHAINE:"019,'":W_CODEAIDANT:"'"
IF W_REPRISEHISTORIQUE="1" THEN RETURN
IF W_NUMSECU = "" THEN
   READ ENR_AIDANTNTT FROM F.AIDANTNTT,W_CODEAIDANT THEN
      IF ENR_AIDANTNTT<1,W_CODEENTITE>#"" THEN
         ENR_DSN<-1> = W_CHAINE:"020,'":ENR_AIDANTNTT<1,W_CODEENTITE>[1,15]:"'"
		 * Didier 18/02/2016 : DA16006
         *ENR_AIDANTNTT<1,W_CODEENTITE>=ENR_AIDANTNTT<1,W_CODEENTITE>[1,15]:"-":W_ANNEEMOIS
         WRITE ENR_AIDANTNTT ON F.AIDANTNTT,W_CODEAIDANT		 
	  END ELSE
         IF ENR_CIVILAIDANT<16>="F" THEN
            W_NUMSECU="2"
         END ELSE
            W_NUMSECU="1"
         END
         W_NUMSECU=W_NUMSECU:W_SIREN:W_CODEAIDANT
         ENR_DSN<-1> = W_CHAINE:"020,'":W_NUMSECU:"'"
         ENR_AIDANTNTT<1,W_CODEENTITE>=W_NUMSECU:"-":W_ANNEEMOIS
         WRITE ENR_AIDANTNTT ON F.AIDANTNTT,W_CODEAIDANT
      END
   END ELSE
      ENR_AIDANTNTT=""   
      IF ENR_CIVILAIDANT<16>="F" THEN
         W_NUMSECU="2"
      END ELSE
         W_NUMSECU="1"
      END
      W_NUMSECU=W_NUMSECU:W_SIREN:W_CODEAIDANT
      ENR_DSN<-1> = W_CHAINE:"020,'":W_NUMSECU:"'"
      ENR_AIDANTNTT<1,W_CODEENTITE>=W_NUMSECU:"-":W_ANNEEMOIS
      WRITE ENR_AIDANTNTT ON F.AIDANTNTT,W_CODEAIDANT
   END
END ELSE
   READ ENR_AIDANTNTT FROM F.AIDANTNTT,W_CODEAIDANT THEN
      IF ENR_AIDANTNTT<1,W_CODEENTITE>#"" THEN
         W_LONGNTT=LEN(ENR_AIDANTNTT<1,W_CODEENTITE>)
         IF W_LONGNTT=22 THEN
		 * Didier 18/02/2016 : DA16006
		    IF W_TYPETRAIT="1" THEN
   	           IF ENR_AIDANTNTT<1,W_CODEENTITE>[17,6]=W_ANNEEMOISPREC THEN
                  ENR_DSN<-1> = W_CHAINE:"020,'":ENR_AIDANTNTT<1,W_CODEENTITE>[1,15]:"'"
               END ELSE
			      IF ENR_AIDANTNTT<1,W_CODEENTITE>[17,6]<W_ANNEEMOISPREC THEN
		             ENR_AIDANTNTT<1,W_CODEENTITE>=""
			         IF ENR_AIDANTNTT="" THEN
			            DELETE F.AIDANTNTT,W_CODEAIDANT
                     END ELSE
			            WRITE ENR_AIDANTNTT ON F.AIDANTNTT,W_CODEAIDANT
                     END
                  END
		       END
            END ELSE
               ENR_DSN<-1> = W_CHAINE:"020,'":ENR_AIDANTNTT<1,W_CODEENTITE>[1,15]:"'"			
			END
         END
      END
   END
END
RETURN


**********
* 210040 -> CONTRAT (S21.G00.40)
**********
210040
W_CHAINE = "S21.G00.40."
W_CASCADRE="NON"
D=DCOUNT(EXTRACT(ENR_CONTRAT,15),CHAR(253))
W_FINAVENANT="NON"
W_NUMAVENANT=""
LOOP
   IF D=0 THEN W_FINAVENANT="OUI"
UNTIL W_FINAVENANT="OUI" DO
   DatEffetContrat=ENR_CONTRAT<15,D>
   IF DatEffetContrat<=W_DATEFINPERIODEDSN THEN
      W_NUMAVENANT=D "R%2"
      W_FINAVENANT="OUI"
   END
   D=D-1
REPEAT
IF D=0 THEN
   D=1
   W_NUMAVENANT=D "R%2"
END
IF W_PASSAGEAIDANT=1 THEN
   ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
END ELSE
   ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"001,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'")
   W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
END
IF W_TYPETRAIT="1" THEN
   W_CODESTATUTCATCONV="07"
   IF ENR_CONTRAT<17,W_NUMAVENANT>[1,1] = "3" OR ENR_CONTRAT<17,W_NUMAVENANT>[1,2] = "23" OR ENR_CONTRAT<17,W_NUMAVENANT>[1,4] = "431a" THEN
      W_CODESTATUTCATCONV = "03"
   END ELSE
      IF ENR_CONTRAT<6>="A" THEN W_CODESTATUTCATCONV = "06"
   END
   IF W_PASSAGEAIDANT=1 THEN
      ENR_DSN<-1> = W_CHAINE:"002,'":W_CODESTATUTCATCONV:"'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"002,'":W_CODESTATUTCATCONV:"'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1   
   END
   IF W_CNRACLIRCANTEC="OUI" THEN
      NULL
   END ELSE
      IF W_CODESTATUTCATCONV="03" THEN
         IF W_PASSAGEAIDANT=1 THEN	  
            ENR_DSN<-1> = W_CHAINE:"003,'01'"
         END ELSE
            ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"003,'01'")		 
            W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1		 
		 END
		 W_CASCADRE="OUI"
      END ELSE
	  * Didier 23/09/2015 - Gestion statgiaire - DA15061
         IF ENR_CONTRAT<13>="STG" THEN
            IF W_PASSAGEAIDANT=1 THEN		 
               ENR_DSN<-1> = W_CHAINE:"003,'99'"
            END ELSE
               ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"003,'99'")		
               W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
            END			
		 END ELSE
            IF W_PASSAGEAIDANT=1 THEN		 
               ENR_DSN<-1> = W_CHAINE:"003,'04'"
            END ELSE
               ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"003,'04'")		
               W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
            END					
         END
      END
   END
   IF W_PASSAGEAIDANT=1 THEN  
      ENR_DSN<-1> = W_CHAINE:"004,'":ENR_CONTRAT<17,W_NUMAVENANT>:"'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"004,'":ENR_CONTRAT<17,W_NUMAVENANT>:"'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1   
   END
   IF ENR_CONTRAT<17,W_NUMAVENANT> = "643a" THEN
      IF W_PASSAGEAIDANT=1 THEN
         ENR_DSN<-1> = W_CHAINE:"005,'L643'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"005,'L643'") 
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1	  
	  END
   END
   W_TXTACONVERTIR = ENR_CONTRAT<16,W_NUMAVENANT> 
   GOSUB 9999991
   IF W_PASSAGEAIDANT=1 THEN  
      ENR_DSN<-1> = W_CHAINE:"006,'":W_TXTACONVERTIR:"'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"006,'":W_TXTACONVERTIR:"'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1   
   END
   IF ENR_CONTRAT<4> = "D" THEN
      W_CODENATURECONTRAT = "02"
   END ELSE
      W_CODENATURECONTRAT = "01"
   END
   * Didier 20/05/2015 : phase 2
   *IF ENR_CONTRAT<13>="APP" THEN W_CODENATURECONTRAT = "05"
   IF ENR_CONTRAT<13>="APP" THEN W_CODENATURECONTRAT = "04"
   * Didier 23/09/2015 - Gestion statgiaire - DA15061
   IF ENR_CONTRAT<13>="STG" THEN W_CODENATURECONTRAT = "29"
   IF W_PASSAGEAIDANT=1 THEN  
      ENR_DSN<-1> = W_CHAINE:"007,'":W_CODENATURECONTRAT:"'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"007,'":W_CODENATURECONTRAT:"'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1   
   END
   W_CODEINTITULECONTRAT="99"
   IF ENR_CONTRAT<13>="CIE" THEN W_CODEINTITULECONTRAT="21"
   IF ENR_CONTRAT<13>="PRO" THEN W_CODEINTITULECONTRAT="61"
   * Didier 20/05/2015
   *IF ENR_CONTRAT<13>="CA" THEN W_CODEINTITULECONTRAT="40"
   IF ENR_CONTRAT<13>="CA" THEN W_CODEINTITULECONTRAT="51"
   IF ENR_CONTRAT<13>="CEV" THEN W_CODEINTITULECONTRAT="50"
   IF ENR_CONTRAT<13>="CUI" OR ENR_CONTRAT<13>="CAE" THEN W_CODEINTITULECONTRAT="41"
   IF W_CODEINTITULECONTRAT#"" THEN
      IF W_PASSAGEAIDANT=1 THEN
         ENR_DSN<-1> = W_CHAINE:"008,'":W_CODEINTITULECONTRAT:"'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"008,'":W_CODEINTITULECONTRAT:"'")  
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1 	  
	  END
   END
END
IF W_TYPETRAIT="1" THEN
* Didier 15/09/2015 : gestion CDD suivi par CDI - DA15057
   IF W_NUMEROCONTRATDSN#"" THEN
      IF W_PASSAGEAIDANT=1 THEN   
         ENR_DSN<-1> = W_CHAINE:"009,'":W_NUMEROCONTRATDSN:"'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"009,'":W_NUMEROCONTRATDSN:"'") 
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
      END	  
   END ELSE
      IF W_PASSAGEAIDANT=1 THEN 
         ENR_DSN<-1> = W_CHAINE:"009,'":CLEDETAILCALCUL[1,8]:"'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"009,'":CLEDETAILCALCUL[1,8]:"'")  
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1	  
	  END
   END
END ELSE
   IF W_NUMEROCONTRATDSN#"" THEN
      ENR_DSN<-1> = W_CHAINE:"009,'":W_NUMEROCONTRATDSN:"'"   
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"009,'":W_REFCONTRAT:"'"
   END
END
IF W_TYPETRAIT="1" THEN
* Didier 23/09/2015 : Gestion stagiaire - DA15061
   IF W_CODEINTITULECONTRAT#"99" OR W_CODENATURECONTRAT="02" OR W_CODENATURECONTRAT="04" OR W_CODENATURECONTRAT="29" THEN
      IF ENR_CONTRAT<60>#"" THEN
         IF ENR_CONTRAT<8>#"" THEN
            ENR_CONTRAT<60>=ENR_CONTRAT<8>
	   	    W_DATFINPREVISIONELLE=OCONV(ENR_CONTRAT<60>,"D4/")
            W_DATFINPREVISIONELLE=W_DATFINPREVISIONELLE[1,2]:W_DATFINPREVISIONELLE[4,2]:W_DATFINPREVISIONELLE[7,4]
         END ELSE
	        IF ENR_CONTRAT<60><=W_DATEFINPERIODEDSN THEN
		       W_DATFINPREVISIONELLE=W_DATEFINPERIODEDSNSUIVANTE[1,2]:W_DATEFINPERIODEDSNSUIVANTE[4,2]:W_DATEFINPERIODEDSNSUIVANTE[7,4]
            END ELSE
               W_DATFINPREVISIONELLE=OCONV(ENR_CONTRAT<60>,"D4/")
               W_DATFINPREVISIONELLE=W_DATFINPREVISIONELLE[1,2]:W_DATFINPREVISIONELLE[4,2]:W_DATFINPREVISIONELLE[7,4]
            END		 
         END
         IF W_PASSAGEAIDANT=1 THEN 		 
            ENR_DSN<-1> = W_CHAINE:"010,'":W_DATFINPREVISIONELLE:"'"
         END ELSE
            ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"010,'":W_DATFINPREVISIONELLE:"'")		 
            W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1			
         END
      END ELSE
	  * Didier 02/12/2015 : si date de fin de contrat renseigne, alors devient par dfaut date de fin prvisionnelle
	     IF ENR_CONTRAT<8>#"" THEN
            ENR_CONTRAT<60>=ENR_CONTRAT<8>
	   	    W_DATFINPREVISIONELLE=OCONV(ENR_CONTRAT<60>,"D4/")
            W_DATFINPREVISIONELLE=W_DATFINPREVISIONELLE[1,2]:W_DATFINPREVISIONELLE[4,2]:W_DATFINPREVISIONELLE[7,4]		 
		 END ELSE
            W_DATFINPREVISIONELLE=W_DATEFINPERIODEDSNSUIVANTE[1,2]:W_DATEFINPERIODEDSNSUIVANTE[4,2]:W_DATEFINPERIODEDSNSUIVANTE[7,4]
         END
         IF W_PASSAGEAIDANT=1 THEN 		 
            ENR_DSN<-1> = W_CHAINE:"010,'":W_DATFINPREVISIONELLE:"'"
         END ELSE
            ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"010,'":W_DATFINPREVISIONELLE:"'")		 
            W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1			
         END			
      END
   END
   IF W_PASSAGEAIDANT=1 THEN 	
      ENR_DSN<-1> = W_CHAINE:"011,'10'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"011,'10'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1  
   END
   W_HORAIREHEBDOETABL=ENR_ETABLISSEMENT<16>
   W_HORAIREMENSETABL=INT((W_HORAIREHEBDOETABL*52/12)+1/2)
   W_MISENFORME=W_HORAIREMENSETABL "R26"
   IF W_PASSAGEAIDANT=1 THEN 
      ENR_DSN<-1> = W_CHAINE:"012,'":W_MISENFORME:"'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"012,'":W_MISENFORME:"'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1   
   END
   W_HEURESMENSCONTRAT=0
   IF ENR_CONTRAT<25,W_NUMAVENANT> = "1" THEN
      W_HEURESMENSCONTRAT = INT((ENR_CONTRAT<24,W_NUMAVENANT> * 52/12)+1/2)
   END 
   IF ENR_CONTRAT<25,W_NUMAVENANT> = "2" THEN
      W_HEURESMENSCONTRAT = INT((ENR_CONTRAT<24,W_NUMAVENANT> * 26/12)+1/2)
   END
   IF ENR_CONTRAT<25,W_NUMAVENANT> = "3" THEN
      W_HEURESMENSCONTRAT = ENR_CONTRAT<24,W_NUMAVENANT>
   END
   IF ENR_CONTRAT<25,W_NUMAVENANT> = "4" THEN
      W_HEURESMENSCONTRAT = INT((ENR_CONTRAT<24,W_NUMAVENANT> /12)+1/2)
   END
   IF W_HEURESMENSCONTRAT=0 THEN W_HEURESMENSCONTRAT=1
   W_MISENFORME=W_HEURESMENSCONTRAT "R26"
   IF W_PASSAGEAIDANT=1 THEN   
      ENR_DSN<-1> = W_CHAINE:"013,'":W_MISENFORME:"'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"013,'":W_MISENFORME:"'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1   
   END
   W_TAUXTEMPSPARTIEL=INT(W_HEURESMENSCONTRAT*10000/W_HORAIREMENSETABL+1/2)
   *IF W_EMPLOISMULTIPLES="OUI" AND W_TAUXTEMPSPARTIEL>=10000 THEN W_TAUXTEMPSPARTIEL="9999"
   IF W_TAUXTEMPSPARTIEL>=10000 THEN
      IF W_PASSAGEAIDANT=1 THEN   
         ENR_DSN<-1> = W_CHAINE:"014,'10'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"014,'10'")
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1 	  
	  END
   END ELSE
      IF W_PASSAGEAIDANT=1 THEN   
         ENR_DSN<-1> = W_CHAINE:"014,'20'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"014,'20'")
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1 	  
	  END	  
   END
   TauxHorContrat=ENR_CONTRAT<23,W_NUMAVENANT>
   IF TauxHorContrat="" THEN TauxHorContrat=0
   IF TauxHorContrat<ValSmicHor*10 THEN TauxHorContrat=ValSmicHor*10
   W_SALREFCONTRAT=INT((TauxHorContrat*W_HEURESMENSCONTRAT/1000)+1/2)
   W_MISENFORME=W_SALREFCONTRAT "R26"
   IF W_PASSAGEAIDANT=1 THEN    
      ENR_DSN<-1> = W_CHAINE:"015,'":W_MISENFORME:"'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"015,'":W_MISENFORME:"'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1   
   END
   IF W_PASSAGEAIDANT=1 THEN  
      ENR_DSN<-1> = W_CHAINE:"016,'99'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"016,'99'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1    
   END
   READ ENR_CONVENTIONCOL FROM F.CONVENTIONCOL,ENR_CONTRAT<1> ELSE ENR_CONVENTIONCOL=""
   W_IDCC=ENR_CONVENTIONCOL<84>
   IF W_IDCC="" THEN W_IDCC="9999"
   IF W_PASSAGEAIDANT=1 THEN  
      ENR_DSN<-1> = W_CHAINE:"017,'":W_IDCC:"'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"017,'":W_IDCC:"'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1   
   END
   IF W_PASSAGEAIDANT=1 THEN
* Didier 20/06/2016 : MSA
      IF W_TYPEURSSAFMSA="M" THEN
         ENR_DSN<-1> = W_CHAINE:"018,'300'"
      END ELSE	  
         ENR_DSN<-1> = W_CHAINE:"018,'200'"
      END
   END ELSE
* Didier 20/06/2016 : MSA
      IF W_TYPEURSSAFMSA="M" THEN
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"018,'300'")
      END ELSE	  
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"018,'200'")
      END
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1  
   END
END
IF ENR_CONTRAT<7><W_DATEDEBUTPERIODEDSNMENS THEN
   W_DATEDEBACTIVITE=W_DATEDEBUTPERIODEDSNMENS
END ELSE
   W_DATEDEBACTIVITE=ENR_CONTRAT<7>
END
W_DATEDEBACTIVITEINT=W_DATEDEBACTIVITE
W_DATEDEBACTIVITE=OCONV(W_DATEDEBACTIVITE,"D4/")
W_DATEDEBACTIVITE=CONVERT("/","",W_DATEDEBACTIVITE)
IF ENR_CONTRAT<8>="" THEN
   W_DATEFINACTIVITE=W_DATEFINPERIODEDSN
END ELSE
   IF ENR_CONTRAT<8>>W_DATEFINPERIODEDSN THEN
      W_DATEFINACTIVITE=W_DATEFINPERIODEDSN
	  * Didier 14/08/2015 : suite appel COUTANCES cas contrat dbutant et finissant sur le mme mois 
      IF W_TYPETRAIT="2" THEN
         IF W_DATEFINACTIVITE<W_DATEDEBACTIVITEINT THEN W_DATEFINACTIVITE=ENR_CONTRAT<8>
      END	  
   END ELSE
      W_DATEFINACTIVITE=ENR_CONTRAT<8>
   END
END
W_DATEFINACTIVITEINT=W_DATEFINACTIVITE
W_DATEFINACTIVITE=OCONV(W_DATEFINACTIVITE,"D4/")
W_DATEFINACTIVITE=CONVERT("/","",W_DATEFINACTIVITE)
* Didier 20/05/2015 : phase 2
IF W_TYPETRAIT="1" THEN
   IF W_PASSAGEAIDANT=1 THEN
* Didier 20/06/2016 : MSA
      IF W_TYPEURSSAFMSA="M" THEN
         ENR_DSN<-1> = W_CHAINE:"020,'300'"
      END ELSE	  
         ENR_DSN<-1> = W_CHAINE:"020,'200'"
      END
   END ELSE
* Didier 20/06/2016 : MSA
      IF W_TYPEURSSAFMSA="M" THEN
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"020,'300'")
      END ELSE	  
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"020,'200'")
      END
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1 	 
   END
END
IF W_REPRISEHISTORIQUE#"1" AND W_TYPETRAIT="1" THEN
   IF W_CODENATURECONTRAT = "02" THEN
      W_MOTIFRECOURSCDD=ENR_CONTRAT<137>
      IF W_MOTIFRECOURSCDD="01" THEN
         * Accroissement temporaire d'activit
		 IF W_PASSAGEAIDANT=1 THEN 
            ENR_DSN<-1> = W_CHAINE:"021,'02'"
         END ELSE
            ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"021,'02'")
            W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1		 
		 END
      END ELSE
         IF W_MOTIFRECOURSCDD="02" THEN
	        * CDD d'usage
		    IF W_PASSAGEAIDANT=1 THEN 			
               ENR_DSN<-1> = W_CHAINE:"021,'05'"
			END ELSE
               ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"021,'05'")
               W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1			
			END
         END ELSE
	        * Remplacement d'un salari
		    IF W_PASSAGEAIDANT=1 THEN 			
               ENR_DSN<-1> = W_CHAINE:"021,'01'"
			END ELSE
               ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"021,'01'")
               W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1			
			END			
	     END
      END
   END
END
IF W_TYPETRAIT="1" THEN
   IF W_PASSAGEAIDANT=1 THEN
      ENR_DSN<-1> = W_CHAINE:"024,'99'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"024,'99'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1   
   END
END
IF W_TYPETRAIT="1" THEN
   IF W_PASSAGEAIDANT=1 THEN
      ENR_DSN<-1> = W_CHAINE:"026,'05'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"026,'05'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1  
   END
END ELSE
   IF W_SIGNALEMENT="FINCONTRAT" THEN
      ENR_DSN<-1> = W_CHAINE:"026,'05'"
   END
END
RETURN


**********
* 210041 -> CHANGEMENTS CONTRAT (S21.G00.41)
**********
210041
W_CHAINE = "S21.G00.41."
W_DATEEFFETAVENANT=OCONV(W_DATEEFFETAVENANT,"D4/")
IF W_PASSAGEAIDANT=1 THEN
   ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEEFFETAVENANT[1,2]:W_DATEEFFETAVENANT[4,2]:W_DATEEFFETAVENANT[7,4]:"'"
END ELSE
   ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"001,'":W_DATEEFFETAVENANT[1,2]:W_DATEEFFETAVENANT[4,2]:W_DATEEFFETAVENANT[7,4]:"'")
   W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
END
W_CODESTATUTCATCONV="07"
IF ENR_CONTRAT<17,W_NUMAVENANTCHGT>[1,1] = "3" OR ENR_CONTRAT<17,W_NUMAVENANTCHGT>[1,2] = "23" OR ENR_CONTRAT<17,W_NUMAVENANTCHGT>[1,4] = "431a" THEN
   W_CODESTATUTCATCONV = "03"
END ELSE
   IF ENR_CONTRAT<6>="A" THEN W_CODESTATUTCATCONV = "06"
END
IF W_PASSAGEAIDANT=1 THEN
   ENR_DSN<-1> = W_CHAINE:"002,'":W_CODESTATUTCATCONV:"'"
END ELSE
   ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"002,'":W_CODESTATUTCATCONV:"'")
   W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
END
IF W_CODESTATUTCATCONV="03" THEN
   IF W_PASSAGEAIDANT=1 THEN
      ENR_DSN<-1> = W_CHAINE:"003,'01'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"003,'01'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1  
   END
END ELSE
   * Didier 23/09/2015 - Gestion statgiaire - DA15061
   IF ENR_CONTRAT<13>="STG" THEN
      IF W_PASSAGEAIDANT=1 THEN
         ENR_DSN<-1> = W_CHAINE:"003,'99'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"003,'99'")
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1  
      END	  
   END ELSE
      IF W_PASSAGEAIDANT=1 THEN
         ENR_DSN<-1> = W_CHAINE:"003,'04'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"003,'04'")
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1  
      END	  
   END
END
IF ENR_CONTRAT<4> = "D" THEN
   W_CODENATURECONTRAT = "02"
END ELSE
* Didier 15/09/2015 : gestion CDD suivi par CDI - DA15057
   IF ENR_CONTRAT<117>#"" AND ENR_CONTRAT<4>="I" AND W_DATEDEBUTCONTRATCDICDD<=W_DATEFINPERIODEDSN AND W_DATEDEBUTCONTRATCDICDD>=W_DATEDEBUTPERIODEDSNMENS AND W_NUMEROCONTRATDSN#"" THEN
      W_CODENATURECONTRAT = "02"
   END ELSE	  
      W_CODENATURECONTRAT = "01"
   END
END
* Didier 20/05/2015 : phase 2
*IF ENR_CONTRAT<13>="APP" THEN W_CODENATURECONTRAT = "05"
IF ENR_CONTRAT<13>="APP" THEN W_CODENATURECONTRAT = "04"
* Didier 23/09/2015 - Gestion statgiaire - DA15061
IF ENR_CONTRAT<13>="STG" THEN W_CODENATURECONTRAT = "29"
IF W_PASSAGEAIDANT=1 THEN
   ENR_DSN<-1> = W_CHAINE:"004,'":W_CODENATURECONTRAT:"'"
END ELSE
   ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"004,'":W_CODENATURECONTRAT:"'")
   W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
END
W_CODEINTITULECONTRAT="99"
IF ENR_CONTRAT<13>="CIE" THEN W_CODEINTITULECONTRAT="21"
IF ENR_CONTRAT<13>="PRO" THEN W_CODEINTITULECONTRAT="61"
* Didier 20/05/2015 : phase 2
*IF ENR_CONTRAT<13>="CA" THEN W_CODEINTITULECONTRAT="40"
IF ENR_CONTRAT<13>="CA" THEN W_CODEINTITULECONTRAT="51"
IF ENR_CONTRAT<13>="CEV" THEN W_CODEINTITULECONTRAT="50"
IF ENR_CONTRAT<13>="CUI" OR ENR_CONTRAT<13>="CAE" THEN W_CODEINTITULECONTRAT="41"
IF W_CODEINTITULECONTRAT#"" THEN
   IF W_PASSAGEAIDANT=1 THEN
      ENR_DSN<-1> = W_CHAINE:"005,'":W_CODEINTITULECONTRAT:"'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"005,'":W_CODEINTITULECONTRAT:"'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1  
   END
END
IF W_PASSAGEAIDANT=1 THEN
   ENR_DSN<-1> = W_CHAINE:"006,'10'"
END ELSE
   ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"006,'10'")
   W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
END
W_HORAIREHEBDOETABL=ENR_ETABLISSEMENT<16>
W_HORAIREMENSETABL=INT((W_HORAIREHEBDOETABL*52/12)+1/2)
W_HEURESMENSCONTRAT=0
IF ENR_CONTRAT<25,W_NUMAVENANTCHGT> = "1" THEN
   W_HEURESMENSCONTRAT = INT((ENR_CONTRAT<24,W_NUMAVENANTCHGT> * 52/12)+1/2)
END 
IF ENR_CONTRAT<25,W_NUMAVENANTCHGT> = "2" THEN
   W_HEURESMENSCONTRAT = INT((ENR_CONTRAT<24,W_NUMAVENANTCHGT> * 26/12)+1/2)
END
IF ENR_CONTRAT<25,W_NUMAVENANTCHGT> = "3" THEN
   W_HEURESMENSCONTRAT = ENR_CONTRAT<24,W_NUMAVENANTCHGT>
END
IF ENR_CONTRAT<25,W_NUMAVENANTCHGT> = "4" THEN
   W_HEURESMENSCONTRAT = INT((ENR_CONTRAT<24,W_NUMAVENANTCHGT> /12)+1/2)
END
IF W_HEURESMENSCONTRAT=0 THEN W_HEURESMENSCONTRAT=1
W_MISENFORME=W_HEURESMENSCONTRAT "R26"
IF W_PASSAGEAIDANT=1 THEN
   ENR_DSN<-1> = W_CHAINE:"007,'":W_MISENFORME:"'"
END ELSE
   ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"007,'":W_MISENFORME:"'")
   W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
END
W_TAUXTEMPSPARTIEL=INT(W_HEURESMENSCONTRAT*10000/W_HORAIREMENSETABL+1/2)
*IF W_EMPLOISMULTIPLES="OUI" AND W_TAUXTEMPSPARTIEL>=10000 THEN W_TAUXTEMPSPARTIEL="9999"
IF W_TAUXTEMPSPARTIEL>=10000 THEN
   IF W_PASSAGEAIDANT=1 THEN
      ENR_DSN<-1> = W_CHAINE:"008,'10'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"008,'10'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1  
   END
END ELSE
   IF W_PASSAGEAIDANT=1 THEN
      ENR_DSN<-1> = W_CHAINE:"008,'20'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"008,'20'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1  
   END  
END
TauxHorContrat=ENR_CONTRAT<23,W_NUMAVENANTCHGT>
IF TauxHorContrat="" THEN TauxHorContrat=0
IF TauxHorContrat<ValSmicHor*10 AND ENR_CONTRAT<13>="" THEN TauxHorContrat=ValSmicHor*10
W_SALREFCONTRAT=INT((TauxHorContrat*W_HEURESMENSCONTRAT/1000)+1/2)
W_MISENFORME=W_SALREFCONTRAT "R26"
IF W_PASSAGEAIDANT=1 THEN
   ENR_DSN<-1> = W_CHAINE:"009,'":W_MISENFORME:"'"
END ELSE
   ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"009,'":W_MISENFORME:"'")
   W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
END
* Didier 20/05/2015 : phase 2
IF W_PASSAGEAIDANT=1 THEN
   ENR_DSN<-1> = W_CHAINE:"019,'":ENR_CONTRAT<17,W_NUMAVENANTCHGT>:"'"
END ELSE
   ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"019,'":ENR_CONTRAT<17,W_NUMAVENANTCHGT>:"'")
   W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
END
IF ENR_CONTRAT<17,W_NUMAVENANTCHGT> = "643a" THEN
   IF W_PASSAGEAIDANT=1 THEN
      ENR_DSN<-1> = W_CHAINE:"020,'L643'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"020,'L643'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1  
   END
END
RETURN


**********
* 210050 -> PAIE (S21.G00.50)
**********
210050
W_CHAINE = "S21.G00.50."
IF W_PRESENCEBULLETIN="NON" THEN
   ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEFINACTIVITE:"'"
END ELSE
   READ ENR_ARCHIVEBULL FROM F.ARCHIVEBULL,CLEDETAILCALCUL:ENR_CONTRAT<3>[1,3] ELSE ENR_ARCHIVEBULL=""
   W_LIBELLEPAIEMENT=ENR_ARCHIVEBULL<3>
   W_LONGLIBELLE=LEN(W_LIBELLEPAIEMENT)
   W_DATEPAIEMENT=W_LIBELLEPAIEMENT[W_LONGLIBELLE-9,10]
   ENRDG=""
   ENRDG<1>=W_DATEPAIEMENT
   ENRDG<2>=W_DATEDEBUTPERIODEDSNMENS
   ENRDG<3>=W_DATEFINACTIVITE
   ENRDG<4>=W_DATEFINPERIODEDSNMENS
   ENRDG<5>=W_DATEFINPERIODEDSNEXT
   WRITE ENDDG ON F.DG,"DG"
   IF ICONV(W_DATEPAIEMENT,"D4/") # "" THEN
      IF ICONV(W_DATEPAIEMENT,"D4/") < W_DATEDEBUTPERIODEDSNMENS THEN
         ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEFINACTIVITE:"'"	  
	  END ELSE
	  * Didier 08/08/2016 : gestion erreur sur date de paiement
         IF W_REPRISEHISTORIQUE="1" THEN
		    IF ICONV(W_DATEPAIEMENT,"D4/") > W_DATEFINPERIODEDSNMENS+30 THEN
               ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"			
			END ELSE
               ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEPAIEMENT[1,2]:W_DATEPAIEMENT[4,2]:W_DATEPAIEMENT[7,4]:"'"
			END
         END ELSE
		    IF ICONV(W_DATEPAIEMENT,"D4/") > DATE() THEN
               ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"			
			END ELSE
               ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEPAIEMENT[1,2]:W_DATEPAIEMENT[4,2]:W_DATEPAIEMENT[7,4]:"'"
			END		 
		 END
      END
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEFINACTIVITE:"'"
   END
END
IF W_PRESENCEBULLETIN="NON" THEN
   IF W_REPRISEHISTORIQUE#"1" THEN
      ENR_DSN<-1> = W_CHAINE:"002,'0.00'"
      * Didier 20/05/2015 : phase 2
      ENR_DSN<-1> = W_CHAINE:"004,'0.00'"
   END
END ELSE
   IF W_REPRISEHISTORIQUE#"1" THEN
      W_MISENFORME=ENR_DETAILCALCUL<15> "R26"
      ENR_DSN<-1> = W_CHAINE:"002,'":W_MISENFORME:"'"
      * Didier 20/05/2015 : phase 2
      W_MISENFORME=ENR_DETAILCALCUL<21> "R26"
      ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
   END
END
RETURN


**********
* 2100510 -> PREPARATION DES ELEMENTS POUR PAIE (S21.G00.51)
**********
2100510
W_MONTANTBRUT=0
IF W_PRESENCEBULLETIN#"NON" THEN
   W_MONTANTBRUT=ENR_DETAILCALCUL<7>
END
I=1
W_URSSAFTOT=0
W_URSSAFPLAF=0
W_CSG=0
W_CSG1=0
W_CSG2=0
W_BASEASSEDIC=0
W_MONTREDUCFILLON=0
W_BASEREDUCFILLON=0
W_BASESMICREDUCFILLON=0
W_BASEFORFAITAIRE=0
W_DEDUCBASECOTISPAT909=0
W_DEDUCMONTCOTISPAT909=0
W_BASEFORFAITSOCIAL8=0
W_BASEFORFAITSOCIAL20=0
W_RETRAITEGENE=""
W_PREVOYANCE=""
W_PRESENCERETRAITE="OUI"
W_PRESENCEPREVOYANCE="OUI"
W_TABDSNURSSAFTOT=""
W_TABDSNURSSAFPLAF=""
W_TABDSNURSSAFFORFAIT=""
W_TABDSNAUTREURSSAF=""

I=1
LOOP
   W_CODERUBCHARGE=ENR_DETAILCALCUL<8,I>
UNTIL W_CODERUBCHARGE="" DO
   READ ENR_RUBCHARGE FROM F.RUBCHARGE,W_CODERUBCHARGE ELSE ENR_RUBCHARGE=""
   IF INDEX(W_TABURSSAFTOT,W_CODERUBCHARGE,1) # 0 THEN
      IF ENR_DETAILCALCUL<9,I>#"" THEN
         W_URSSAFTOT = W_URSSAFTOT + ENR_DETAILCALCUL<9,I>
      END ELSE
         W_URSSAFTOT = W_URSSAFTOT + ENR_DETAILCALCUL<12,I>
      END		 
      IF INDEX(W_TABURSSAFTOTFORFAIT,W_CODERUBCHARGE,1) # 0 THEN
         IF ENR_DETAILCALCUL<9,I>#"" THEN
            W_BASEFORFAITAIRE = ENR_DETAILCALCUL<9,I>
         END ELSE
            W_BASEFORFAITAIRE = ENR_DETAILCALCUL<12,I>
         END
		 IF ENR_RUBCHARGE<32>#"" THEN
            J=1
		    LOOP
		    UNTIL W_TABDSNURSSAFFORFAIT<1,J>="" OR W_TABDSNURSSAFFORFAIT<1,J>=ENR_RUBCHARGE<32> DO
		       J=J+1
            REPEAT
		    IF W_TABDSNURSSAFFORFAIT<1,J>=ENR_RUBCHARGE<32> THEN
		       IF ENR_DETAILCALCUL<9,I>#"" THEN
                  W_TABDSNURSSAFFORFAIT<2,J>=W_TABDSNURSSAFFORFAIT<2,J>+ENR_DETAILCALCUL<9,I>
               END ELSE
                  W_TABDSNURSSAFFORFAIT<2,J>=W_TABDSNURSSAFFORFAIT<2,J>+ENR_DETAILCALCUL<12,I>
               END
		       W_TABDSNURSSAFFORFAIT<3,J>=W_TABDSNURSSAFFORFAIT<3,J>-ENR_DETAILCALCUL<11,I>+ENR_DETAILCALCUL<14,I>
		    END ELSE
		       W_TABDSNURSSAFFORFAIT<1,-1>=ENR_RUBCHARGE<32>
		       IF ENR_DETAILCALCUL<9,I>#"" THEN
                  W_TABDSNURSSAFFORFAIT<2,-1>=ENR_DETAILCALCUL<9,I>
               END ELSE
                  W_TABDSNURSSAFFORFAIT<2,-1>=ENR_DETAILCALCUL<12,I>
               END
		       W_TABDSNURSSAFFORFAIT<3,-1>=-ENR_DETAILCALCUL<11,I>+ENR_DETAILCALCUL<14,I>		 
		    END
			V=1
			LOOP
			UNTIL (W_TABRAPPORTCOTISDSN<1,V>=ENR_RUBCHARGE<32> AND W_TABRAPPORTCOTISDSN<2,V>="F") OR W_TABRAPPORTCOTISDSN<1,V>="" DO
			   V=V+1
            REPEAT
			IF W_TABRAPPORTCOTISDSN<1,V>=ENR_RUBCHARGE<32> AND W_TABRAPPORTCOTISDSN<2,V>="F" THEN
		       IF ENR_DETAILCALCUL<9,I>#"" THEN
				  W_TABRAPPORTCOTISDSN<3,V>=W_TABRAPPORTCOTISDSN<3,V>+ENR_DETAILCALCUL<9,I>
               END ELSE
				  W_TABRAPPORTCOTISDSN<3,V>=W_TABRAPPORTCOTISDSN<3,V>+ENR_DETAILCALCUL<12,I>			   
			   END
			END ELSE
			   W_TABRAPPORTCOTISDSN<1,-1>=ENR_RUBCHARGE<32>
			   W_TABRAPPORTCOTISDSN<2,-1>="F"
		       IF ENR_DETAILCALCUL<9,I>#"" THEN
				  W_TABRAPPORTCOTISDSN<3,-1>=ENR_DETAILCALCUL<9,I>
               END ELSE
				  W_TABRAPPORTCOTISDSN<3,-1>=ENR_DETAILCALCUL<12,I>
               END
            END			   
         END
      END ELSE
         IF ENR_RUBCHARGE<32>#"" THEN
	        J=1
		    LOOP
		    UNTIL W_TABDSNURSSAFTOT<1,J>="" OR W_TABDSNURSSAFTOT<1,J>=ENR_RUBCHARGE<32> DO
		       J=J+1
            REPEAT
		    IF W_TABDSNURSSAFTOT<1,J>=ENR_RUBCHARGE<32> THEN
		       IF ENR_DETAILCALCUL<9,I>#"" THEN
                  W_TABDSNURSSAFTOT<2,J>=W_TABDSNURSSAFTOT<2,J>+ENR_DETAILCALCUL<9,I>
               END ELSE
                  W_TABDSNURSSAFTOT<2,J>=W_TABDSNURSSAFTOT<2,J>+ENR_DETAILCALCUL<12,I>
               END
		       W_TABDSNURSSAFTOT<3,J>=W_TABDSNURSSAFTOT<3,J>-ENR_DETAILCALCUL<11,I>+ENR_DETAILCALCUL<14,I>
		    END ELSE
		       W_TABDSNURSSAFTOT<1,-1>=ENR_RUBCHARGE<32>
		       IF ENR_DETAILCALCUL<9,I>#"" THEN
                  W_TABDSNURSSAFTOT<2,-1>=ENR_DETAILCALCUL<9,I>
               END ELSE
                  W_TABDSNURSSAFTOT<2,-1>=ENR_DETAILCALCUL<12,I>
               END
		       W_TABDSNURSSAFTOT<3,-1>=-ENR_DETAILCALCUL<11,I>+ENR_DETAILCALCUL<14,I>
            END
			V=1
			LOOP
			UNTIL (W_TABRAPPORTCOTISDSN<1,V>=ENR_RUBCHARGE<32> AND W_TABRAPPORTCOTISDSN<2,V>="T") OR W_TABRAPPORTCOTISDSN<1,V>="" DO
			   V=V+1
            REPEAT
			IF W_TABRAPPORTCOTISDSN<1,V>=ENR_RUBCHARGE<32> AND W_TABRAPPORTCOTISDSN<2,V>="T" THEN
		       IF ENR_DETAILCALCUL<9,I>#"" THEN
				  W_TABRAPPORTCOTISDSN<3,V>=W_TABRAPPORTCOTISDSN<3,V>+ENR_DETAILCALCUL<9,I>
               END ELSE
				  W_TABRAPPORTCOTISDSN<3,V>=W_TABRAPPORTCOTISDSN<3,V>+ENR_DETAILCALCUL<12,I>			   
			   END
			END ELSE
			   W_TABRAPPORTCOTISDSN<1,-1>=ENR_RUBCHARGE<32>
			   W_TABRAPPORTCOTISDSN<2,-1>="T"
		       IF ENR_DETAILCALCUL<9,I>#"" THEN
				  W_TABRAPPORTCOTISDSN<3,-1>=ENR_DETAILCALCUL<9,I>
               END ELSE
				  W_TABRAPPORTCOTISDSN<3,-1>=ENR_DETAILCALCUL<12,I>
               END
            END		
		 END
	  END
   END
   IF INDEX(W_TABURSSAFPLAF,W_CODERUBCHARGE,1) # 0 THEN
      IF ENR_DETAILCALCUL<9,I>#"" THEN
         W_URSSAFPLAF = W_URSSAFPLAF + ENR_DETAILCALCUL<9,I>
      END ELSE
         W_URSSAFPLAF = W_URSSAFPLAF + ENR_DETAILCALCUL<12,I>
      END
      IF ENR_RUBCHARGE<32>#"" THEN
	     J=1
		 LOOP
		 UNTIL W_TABDSNURSSAFPLAF<1,J>="" OR W_TABDSNURSSAFPLAF<1,J>=ENR_RUBCHARGE<32> DO
		    J=J+1
         REPEAT
		 IF W_TABDSNURSSAFPLAF<1,J>=ENR_RUBCHARGE<32> THEN
		    IF ENR_DETAILCALCUL<9,I>#"" THEN
               W_TABDSNURSSAFPLAF<2,J>=W_TABDSNURSSAFPLAF<2,J>+ENR_DETAILCALCUL<9,I>
            END ELSE
               W_TABDSNURSSAFPLAF<2,J>=W_TABDSNURSSAFPLAF<2,J>+ENR_DETAILCALCUL<12,I>
            END
		    W_TABDSNURSSAFPLAF<3,J>=W_TABDSNURSSAFPLAF<3,J>-ENR_DETAILCALCUL<11,I>+ENR_DETAILCALCUL<14,I>
		 END ELSE
		    W_TABDSNURSSAFPLAF<1,-1>=ENR_RUBCHARGE<32>
		    IF ENR_DETAILCALCUL<9,I>#"" THEN
               W_TABDSNURSSAFPLAF<2,-1>=ENR_DETAILCALCUL<9,I>
            END ELSE
               W_TABDSNURSSAFPLAF<2,-1>=ENR_DETAILCALCUL<12,I>
            END
		    W_TABDSNURSSAFPLAF<3,-1>=-ENR_DETAILCALCUL<11,I>+ENR_DETAILCALCUL<14,I>
         END
         V=1
		 LOOP
		 UNTIL (W_TABRAPPORTCOTISDSN<1,V>=ENR_RUBCHARGE<32> AND W_TABRAPPORTCOTISDSN<2,V>="P") OR W_TABRAPPORTCOTISDSN<1,V>="" DO
		    V=V+1
         REPEAT
		 IF W_TABRAPPORTCOTISDSN<1,V>=ENR_RUBCHARGE<32> AND W_TABRAPPORTCOTISDSN<2,V>="P" THEN
		    IF ENR_DETAILCALCUL<9,I>#"" THEN
		       W_TABRAPPORTCOTISDSN<3,V>=W_TABRAPPORTCOTISDSN<3,V>+ENR_DETAILCALCUL<9,I>
            END ELSE
			   W_TABRAPPORTCOTISDSN<3,V>=W_TABRAPPORTCOTISDSN<3,V>+ENR_DETAILCALCUL<12,I>			   
			END
		 END ELSE
		    W_TABRAPPORTCOTISDSN<1,-1>=ENR_RUBCHARGE<32>
		    W_TABRAPPORTCOTISDSN<2,-1>="P"
		    IF ENR_DETAILCALCUL<9,I>#"" THEN
		   	   W_TABRAPPORTCOTISDSN<3,-1>=ENR_DETAILCALCUL<9,I>
            END ELSE
			   W_TABRAPPORTCOTISDSN<3,-1>=ENR_DETAILCALCUL<12,I>
            END
         END				 
	  END	  
   END
* Didier 28/05/2015 : phase 2 - Rubriques Fillon et dduction heures suppl avec un code de cotisation DSN traites pour S21.G00.81
*   IF W_CODERUBCHARGE="904" OR W_CODERUBCHARGE="907" OR W_CODERUBCHARGE="915" THEN
*      W_BASESMICREDUCFILLON=W_BASESMICREDUCFILLON+ENR_DETAILCALCUL<61>
*      W_BASEREDUCFILLON=W_BASEREDUCFILLON+ENR_DETAILCALCUL<12,I>
*      W_MONTREDUCFILLON=W_MONTREDUCFILLON-ENR_DETAILCALCUL<14,I>
*   END
*   IF W_CODERUBCHARGE="909" THEN
*      W_DEDUCBASECOTISPAT909=ENR_DETAILCALCUL<12,I>
*      W_DEDUCMONTCOTISPAT909=-ENR_DETAILCALCUL<14,I>
*   END
   IF INDEX(W_TABURSSAFTOT,W_CODERUBCHARGE,1) = 0 AND INDEX(W_TABURSSAFPLAF,W_CODERUBCHARGE,1) = 0 AND ENR_RUBCHARGE<32>#"" THEN
      J=1
      LOOP
		UNTIL W_TABDSNAUTREURSSAF<1,J>="" OR W_TABDSNAUTREURSSAF<1,J>=ENR_RUBCHARGE<32> DO
	    J=J+1
      REPEAT
      IF W_TABDSNAUTREURSSAF<1,J>=ENR_RUBCHARGE<32> THEN
		 IF ENR_DETAILCALCUL<9,I>#"" THEN
            W_TABDSNAUTREURSSAF<2,J>=W_TABDSNAUTREURSSAF<2,J>+ENR_DETAILCALCUL<9,I>
         END ELSE
            W_TABDSNAUTREURSSAF<2,J>=W_TABDSNAUTREURSSAF<2,J>+ENR_DETAILCALCUL<12,I>
         END
		 IF W_CODERUBCHARGE="904" OR W_CODERUBCHARGE="907" OR W_CODERUBCHARGE="915" OR W_CODERUBCHARGE="909" THEN
		    W_BASESMICREDUCFILLON=W_BASESMICREDUCFILLON+ENR_DETAILCALCUL<61>
		    W_TABDSNAUTREURSSAF<3,J>=W_TABDSNAUTREURSSAF<3,J>+ENR_DETAILCALCUL<14,I>
		 END ELSE
		    W_TABDSNAUTREURSSAF<3,J>=W_TABDSNAUTREURSSAF<3,J>-ENR_DETAILCALCUL<11,I>+ENR_DETAILCALCUL<14,I>
         END
      END ELSE
		 W_TABDSNAUTREURSSAF<1,-1>=ENR_RUBCHARGE<32>
		 IF ENR_DETAILCALCUL<9,I>#"" THEN
            W_TABDSNAUTREURSSAF<2,-1>=ENR_DETAILCALCUL<9,I>
         END ELSE
            W_TABDSNAUTREURSSAF<2,-1>=ENR_DETAILCALCUL<12,I>
         END
		 IF W_CODERUBCHARGE="904" OR W_CODERUBCHARGE="907" OR W_CODERUBCHARGE="915" OR W_CODERUBCHARGE="909" THEN
		    W_BASESMICREDUCFILLON=W_BASESMICREDUCFILLON+ENR_DETAILCALCUL<61>		 
		    W_TABDSNAUTREURSSAF<3,-1>=ENR_DETAILCALCUL<14,I>
         END ELSE
		    W_TABDSNAUTREURSSAF<3,-1>=-ENR_DETAILCALCUL<11,I>+ENR_DETAILCALCUL<14,I>
         END
      END
	  V=1
	  LOOP
	  UNTIL (W_TABRAPPORTCOTISDSN<1,V>=ENR_RUBCHARGE<32> AND W_TABRAPPORTCOTISDSN<2,V>="A") OR W_TABRAPPORTCOTISDSN<1,V>="" DO
		 V=V+1
      REPEAT
	  IF W_TABRAPPORTCOTISDSN<1,V>=ENR_RUBCHARGE<32> AND W_TABRAPPORTCOTISDSN<2,V>="A" THEN
	     IF W_CODERUBCHARGE="904" OR W_CODERUBCHARGE="907" OR W_CODERUBCHARGE="915" OR W_CODERUBCHARGE="909" THEN
		    W_TABRAPPORTCOTISDSN<3,V>=W_TABRAPPORTCOTISDSN<3,V>+ENR_DETAILCALCUL<14,I>
		 END ELSE
   		    IF ENR_DETAILCALCUL<9,I>#"" THEN
		       W_TABRAPPORTCOTISDSN<3,V>=W_TABRAPPORTCOTISDSN<3,V>+ENR_DETAILCALCUL<9,I>
            END ELSE
		       W_TABRAPPORTCOTISDSN<3,V>=W_TABRAPPORTCOTISDSN<3,V>+ENR_DETAILCALCUL<12,I>
            END			   
	     END
      END ELSE
		 W_TABRAPPORTCOTISDSN<1,-1>=ENR_RUBCHARGE<32>
		 W_TABRAPPORTCOTISDSN<2,-1>="A"
		 IF W_CODERUBCHARGE="904" OR W_CODERUBCHARGE="907" OR W_CODERUBCHARGE="915" OR W_CODERUBCHARGE="909" THEN
		    W_TABRAPPORTCOTISDSN<3,-1>=ENR_DETAILCALCUL<14,I>
		 END ELSE
		    IF ENR_DETAILCALCUL<9,I>#"" THEN
		       W_TABRAPPORTCOTISDSN<3,-1>=ENR_DETAILCALCUL<9,I>
            END ELSE
		       W_TABRAPPORTCOTISDSN<3,-1>=ENR_DETAILCALCUL<12,I>
			END
         END
      END			  
   END
   IF INDEX(W_TABCSG<1>,W_CODERUBCHARGE,1) # 0 THEN
      R=1
      LOOP
      UNTIL W_TABCSG<1,R>=W_CODERUBCHARGE DO
         R=R+1
      REPEAT
      IF W_TABCSG<2,R>=0 AND W_CSG1 = 0 THEN
         W_CSG1=1
         W_CSG = W_CSG + ENR_DETAILCALCUL<9,I>
      END
      IF W_TABCSG<2,R>#0 AND W_CSG2 = 0 THEN
         W_CSG2=1
         W_CSG = W_CSG + ENR_DETAILCALCUL<9,I>
      END 
   END
   IF INDEX(ENR_PARAMPOLEEMPLOI<1>,W_CODERUBCHARGE,1) # 0 THEN
      IF ENR_DETAILCALCUL<9,I>#"" THEN
         W_BASEASSEDIC = W_BASEASSEDIC + ENR_DETAILCALCUL<9,I>
	  END ELSE
         W_BASEASSEDIC = W_BASEASSEDIC + ENR_DETAILCALCUL<12,I>	  
	  END
   END
   IF INDEX(ENR_PARAMPOLEEMPLOI<5>,W_CODERUBCHARGE,1) # 0 THEN
      W_BASEFORFAITSOCIAL8 = W_BASEFORFAITSOCIAL8 + ENR_DETAILCALCUL<12,I>	  
   END
   IF INDEX(ENR_PARAMPOLEEMPLOI<6>,W_CODERUBCHARGE,1) # 0 THEN
      W_BASEFORFAITSOCIAL20 = W_BASEFORFAITSOCIAL20 + ENR_DETAILCALCUL<12,I>	  
   END   
   R = 1
   LOOP
   UNTIL W_TABCASPARTICULIERS<1,R> = "" DO
      IF INDEX(W_TABCASPARTICULIERS<3,R>,W_CODERUBCHARGE,1) # 0 THEN
	     IF ENR_DETAILCALCUL<9,I>#"" THEN
            W_TABCASPARTICULIERS<5,R>=W_TABCASPARTICULIERS<5,R>+ENR_DETAILCALCUL<9,I>
            W_TABCASPARTICULIERS<7,R>=W_TABCASPARTICULIERS<7,R>+ENR_DETAILCALCUL<11,I>
         END ELSE
            W_TABCASPARTICULIERS<5,R>=W_TABCASPARTICULIERS<5,R>+ENR_DETAILCALCUL<12,I>
            W_TABCASPARTICULIERS<7,R>=W_TABCASPARTICULIERS<7,R>+ENR_DETAILCALCUL<14,I>
		 END
      END
      IF INDEX(W_TABCASPARTICULIERS<4,R>,W_CODERUBCHARGE,1) # 0 THEN
	  	 IF ENR_DETAILCALCUL<9,I>#"" THEN
            W_TABCASPARTICULIERS<6,R>=W_TABCASPARTICULIERS<6,R>+ENR_DETAILCALCUL<9,I>
            W_TABCASPARTICULIERS<7,R>=W_TABCASPARTICULIERS<7,R>+ENR_DETAILCALCUL<11,I>
         END ELSE
            W_TABCASPARTICULIERS<6,R>=W_TABCASPARTICULIERS<6,R>+ENR_DETAILCALCUL<12,I>
            W_TABCASPARTICULIERS<7,R>=W_TABCASPARTICULIERS<7,R>+ENR_DETAILCALCUL<14,I>
		 END
      END
      R = R + 1
   REPEAT   
   W_NBORG = DCOUNT(W_TABRETRAITE<1>,CHAR(253))
   FOR M = 1 TO W_NBORG
      IF ENR_DETAILCALCUL<9,I>="" THEN ENR_DETAILCALCUL<9,I>=ENR_DETAILCALCUL<12,I>
      IF W_TABRETRAITE<1,M>[4,3] = "000" OR W_TABRETRAITE<1,M>[4,3] = W_CODEETABL THEN
         *TRANCHE TOTALITE
         IF INDEX(W_TABRETRAITE<2,M>,ENR_DETAILCALCUL<8,I>,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_DETAILCALCUL<9,I>
               W_RETRAITEGENE<3,-1> = 0
               W_RETRAITEGENE<4,-1> = W_TABRETRAITE<4,M>
               IF W_TABRETRAITE<9,M>="03" THEN
                  IF ENR_CONTRAT<82,W_NUMAVENANT>#"" THEN
                     W_RETRAITEGENE<5,-1> = ENR_CONTRAT<82,W_NUMAVENANT>
                  END ELSE
                     W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
                  END
               END ELSE
                  W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
               END
               W_RETRAITEGENE<6,-1> = W_TABRETRAITE<6,M>
               W_RETRAITEGENE<7,-1> = 0					
               W_RETRAITEGENE<8,-1> = W_TABRETRAITE<8,M>
               W_RETRAITEGENE<9,-1> = W_TABRETRAITE<9,M>
               W_RETRAITEGENE<10,-1> = W_TABRETRAITE<10,M>
               W_RETRAITEGENE<11,-1> = -ENR_DETAILCALCUL<11,I>
               W_RETRAITEGENE<12,-1> = ENR_DETAILCALCUL<14,I>
            END ELSE
               R=1
               LOOP
               UNTIL W_RETRAITEGENE<1,R>=W_TABRETRAITE<1,M> OR W_RETRAITEGENE<1,R>="" DO
                  R=R+1
               REPEAT
               IF W_RETRAITEGENE<1,R>=W_TABRETRAITE<1,M> THEN
                  IF W_RETRAITEGENE<8,R>="C" THEN
                     W_RETRAITEGENE<2,R> = W_RETRAITEGENE<2,R> + ENR_DETAILCALCUL<9,I>
                  END
                  IF W_RETRAITEGENE<2,R>="" OR W_RETRAITEGENE<2,R>=0 THEN W_RETRAITEGENE<2,R> = ENR_DETAILCALCUL<9,I>
                  W_RETRAITEGENE<11,R> = W_RETRAITEGENE<11,R> - ENR_DETAILCALCUL<11,I>
                  W_RETRAITEGENE<12,R> = W_RETRAITEGENE<12,R> + ENR_DETAILCALCUL<14,I>
               END
            END 
         END
         * TRANCHE A
         IF INDEX(W_TABRETRAITE<3,M>,ENR_DETAILCALCUL<8,I>,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_DETAILCALCUL<9,I>
               W_RETRAITEGENE<4,-1> = W_TABRETRAITE<4,M>
               IF W_TABRETRAITE<9,M>="03" THEN
                  IF ENR_CONTRAT<82,W_NUMAVENANT>#"" THEN
                     W_RETRAITEGENE<5,-1> = ENR_CONTRAT<82,W_NUMAVENANT>
                  END ELSE
                     W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
                  END
               END ELSE
                  W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
               END
               W_RETRAITEGENE<6,-1> = W_TABRETRAITE<6,M>
               W_RETRAITEGENE<7,-1> = 0
               W_RETRAITEGENE<8,-1> = W_TABRETRAITE<8,M>
               W_RETRAITEGENE<9,-1> = W_TABRETRAITE<9,M>
               W_RETRAITEGENE<10,-1> = W_TABRETRAITE<10,M>
               W_RETRAITEGENE<11,-1> = -ENR_DETAILCALCUL<11,I>
               W_RETRAITEGENE<12,-1> = ENR_DETAILCALCUL<14,I>
            END ELSE
               R=1
               LOOP
               UNTIL W_RETRAITEGENE<1,R>=W_TABRETRAITE<1,M> OR W_RETRAITEGENE<1,R>="" DO
                  R=R+1
               REPEAT
               IF W_RETRAITEGENE<1,R>=W_TABRETRAITE<1,M> THEN
                  IF W_RETRAITEGENE<8,R>="C" THEN
                     W_RETRAITEGENE<3,R> = W_RETRAITEGENE<3,R> + ENR_DETAILCALCUL<9,I>
                  END
                  IF W_RETRAITEGENE<3,R>="" OR W_RETRAITEGENE<3,R>=0 THEN W_RETRAITEGENE<3,R> = ENR_DETAILCALCUL<9,I>
                  W_RETRAITEGENE<11,R> = W_RETRAITEGENE<11,R> - ENR_DETAILCALCUL<11,I>
                  W_RETRAITEGENE<12,R> = W_RETRAITEGENE<12,R> + ENR_DETAILCALCUL<14,I>
               END
            END
         END
         * TRANCHE B
         IF INDEX(W_TABRETRAITE<7,M>,ENR_DETAILCALCUL<8,I>,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>
               IF W_TABRETRAITE<9,M>="03" THEN
                  IF ENR_CONTRAT<82,W_NUMAVENANT>#"" THEN
                     W_RETRAITEGENE<5,-1> = ENR_CONTRAT<82,W_NUMAVENANT>
                  END ELSE
                     W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
                  END
               END ELSE
                  W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
               END
               W_RETRAITEGENE<6,-1> = W_TABRETRAITE<6,M>
               W_RETRAITEGENE<7,-1> = ENR_DETAILCALCUL<9,I>
               W_RETRAITEGENE<8,-1> = W_TABRETRAITE<8,M>
               W_RETRAITEGENE<9,-1> = W_TABRETRAITE<9,M>
               W_RETRAITEGENE<10,-1> = W_TABRETRAITE<10,M>
               W_RETRAITEGENE<11,-1> = -ENR_DETAILCALCUL<11,I>
               W_RETRAITEGENE<12,-1> = ENR_DETAILCALCUL<14,I>
            END ELSE
               R=1
               LOOP
               UNTIL W_RETRAITEGENE<1,R>=W_TABRETRAITE<1,M> OR W_RETRAITEGENE<1,R>="" DO
                  R=R+1
               REPEAT
               IF W_RETRAITEGENE<1,R>=W_TABRETRAITE<1,M> THEN
                  IF W_RETRAITEGENE<8,R>="C" THEN
                     W_RETRAITEGENE<7,R> = W_RETRAITEGENE<7,R> + ENR_DETAILCALCUL<9,I>
                  END
                  IF W_RETRAITEGENE<7,R>="" OR W_RETRAITEGENE<7,R>=0 THEN W_RETRAITEGENE<7,R> = ENR_DETAILCALCUL<9,I>
                  W_RETRAITEGENE<11,R> = W_RETRAITEGENE<11,R> - ENR_DETAILCALCUL<11,I>
                  W_RETRAITEGENE<12,R> = W_RETRAITEGENE<12,R> + ENR_DETAILCALCUL<14,I>
               END
            END 
         END
      END	
   NEXT M
   W_NBORG = DCOUNT(W_TABPREVOYANCE<1>,CHAR(253))
   FOR M = 1 TO W_NBORG
      IF ENR_DETAILCALCUL<9,I>="" THEN ENR_DETAILCALCUL<9,I>=ENR_DETAILCALCUL<12,I>
      IF W_TABPREVOYANCE<1,M>[4,3] = "000" OR W_TABPREVOYANCE<1,M>[4,3] = W_CODEETABL THEN
         *TRANCHE TOTALITE
         IF INDEX(W_TABPREVOYANCE<2,M>,ENR_DETAILCALCUL<8,I>,1) # 0 THEN 
            IF INDEX(W_PREVOYANCE<1>,W_TABPREVOYANCE<1,M>,1) = 0 THEN
               W_PREVOYANCE<1,-1> = W_TABPREVOYANCE<1,M>
               W_PREVOYANCE<2,-1> = ENR_DETAILCALCUL<9,I>
               W_PREVOYANCE<3,-1> = 0
               W_PREVOYANCE<4,-1> = W_TABPREVOYANCE<4,M>
               W_PREVOYANCE<5,-1> = W_TABPREVOYANCE<5,M>
               W_PREVOYANCE<6,-1> = W_TABPREVOYANCE<6,M>
               W_PREVOYANCE<7,-1> = 0					
               W_PREVOYANCE<8,-1> = W_TABPREVOYANCE<8,M>
               W_PREVOYANCE<9,-1> = W_TABPREVOYANCE<9,M>
               W_PREVOYANCE<10,-1> = W_TABPREVOYANCE<10,M>
               W_PREVOYANCE<11,-1> = -ENR_DETAILCALCUL<11,I>
               W_PREVOYANCE<12,-1> = ENR_DETAILCALCUL<14,I>
               W_PREVOYANCE<13,-1> = W_TABPREVOYANCE<11,M>
               IF ENR_CONTRAT<133,W_NUMAVENANT>#"" THEN
                  W_PREVOYANCE<14,-1> = ENR_CONTRAT<133,W_NUMAVENANT>
               END ELSE
                  W_PREVOYANCE<14,-1> = W_TABPREVOYANCE<12,M>
               END
            END ELSE
               R=1
               LOOP
               UNTIL W_PREVOYANCE<1,R>=W_TABPREVOYANCE<1,M> OR W_PREVOYANCE<1,R>="" DO
                  R=R+1
               REPEAT
               IF W_PREVOYANCE<1,R>=W_TABPREVOYANCE<1,M> THEN
                  IF W_PREVOYANCE<2,R>="" OR W_PREVOYANCE<2,R>=0 THEN W_PREVOYANCE<2,R>=ENR_DETAILCALCUL<9,I>
                  W_PREVOYANCE<11,R> = W_PREVOYANCE<11,R> - ENR_DETAILCALCUL<11,I>
                  W_PREVOYANCE<12,R> = W_PREVOYANCE<12,R> + ENR_DETAILCALCUL<14,I>
               END
            END 
         END
         * TRANCHE A
         IF INDEX(W_TABPREVOYANCE<3,M>,ENR_DETAILCALCUL<8,I>,1) # 0 THEN 
            IF INDEX(W_PREVOYANCE<1>,W_TABPREVOYANCE<1,M>,1) = 0 THEN 
               W_PREVOYANCE<1,-1> = W_TABPREVOYANCE<1,M>
               W_PREVOYANCE<2,-1> = 0
               W_PREVOYANCE<3,-1> = ENR_DETAILCALCUL<9,I>
               W_PREVOYANCE<4,-1> = W_TABPREVOYANCE<4,M>
               W_PREVOYANCE<5,-1> = W_TABPREVOYANCE<5,M>
               W_PREVOYANCE<6,-1> = W_TABPREVOYANCE<6,M>
               W_PREVOYANCE<7,-1> = 0
               W_PREVOYANCE<8,-1> = W_TABPREVOYANCE<8,M>
               W_PREVOYANCE<9,-1> = W_TABPREVOYANCE<9,M>
               W_PREVOYANCE<10,-1> = W_TABPREVOYANCE<10,M>
               W_PREVOYANCE<11,-1> = -ENR_DETAILCALCUL<11,I>
               W_PREVOYANCE<12,-1> = ENR_DETAILCALCUL<14,I>
               W_PREVOYANCE<13,-1> = W_TABPREVOYANCE<11,M>
               IF ENR_CONTRAT<133,W_NUMAVENANT>#"" THEN
                  W_PREVOYANCE<14,-1> = ENR_CONTRAT<133,W_NUMAVENANT>
               END ELSE
                  W_PREVOYANCE<14,-1> = W_TABPREVOYANCE<12,M>
               END
            END ELSE
               R=1
               LOOP
               UNTIL W_PREVOYANCE<1,R>=W_TABPREVOYANCE<1,M> OR W_PREVOYANCE<1,R>="" DO
                  R=R+1
               REPEAT
               IF W_PREVOYANCE<1,R>=W_TABPREVOYANCE<1,M> THEN
                  IF W_PREVOYANCE<3,R>="" OR W_PREVOYANCE<3,R>=0 THEN W_PREVOYANCE<3,R>=ENR_DETAILCALCUL<9,I>
                  W_PREVOYANCE<11,R> = W_PREVOYANCE<11,R> - ENR_DETAILCALCUL<11,I>
                  W_PREVOYANCE<12,R> = W_PREVOYANCE<12,R> + ENR_DETAILCALCUL<14,I>
               END
            END
         END
         * TRANCHE B
         IF INDEX(W_TABPREVOYANCE<7,M>,ENR_DETAILCALCUL<8,I>,1) # 0 THEN 
            IF INDEX(W_PREVOYANCE<1>,W_TABPREVOYANCE<1,M>,1) = 0 THEN 
               W_PREVOYANCE<1,-1> = W_TABPREVOYANCE<1,M>
               W_PREVOYANCE<2,-1> = 0
               W_PREVOYANCE<3,-1> = 0
               W_PREVOYANCE<4,-1> = W_TABPREVOYANCE<4,M>
               W_PREVOYANCE<5,-1> = W_TABPREVOYANCE<5,M>
               W_PREVOYANCE<6,-1> = W_TABPREVOYANCE<6,M>
               W_PREVOYANCE<7,-1> = ENR_DETAILCALCUL<9,I>
               W_PREVOYANCE<8,-1> = W_TABPREVOYANCE<8,M>
               W_PREVOYANCE<9,-1> = W_TABPREVOYANCE<9,M>
               W_PREVOYANCE<10,-1> = W_TABPREVOYANCE<10,M>
               W_PREVOYANCE<11,-1> = -ENR_DETAILCALCUL<11,I>
               W_PREVOYANCE<12,-1> = ENR_DETAILCALCUL<14,I>
               W_PREVOYANCE<13,-1> = W_TABPREVOYANCE<11,M>
               IF ENR_CONTRAT<133,W_NUMAVENANT>#"" THEN
                  W_PREVOYANCE<14,-1> = ENR_CONTRAT<133,W_NUMAVENANT>
               END ELSE
                  W_PREVOYANCE<14,-1> = W_TABPREVOYANCE<12,M>
               END
            END ELSE
               R=1
               LOOP
               UNTIL W_PREVOYANCE<1,R>=W_TABPREVOYANCE<1,M> OR W_PREVOYANCE<1,R>="" DO
                  R=R+1
               REPEAT
               IF W_PREVOYANCE<1,R>=W_TABPREVOYANCE<1,M> THEN
                  IF W_PREVOYANCE<7,R>="" OR W_PREVOYANCE<7,R>=0 THEN W_PREVOYANCE<7,R>=ENR_DETAILCALCUL<9,I>
                  W_PREVOYANCE<11,R> = W_PREVOYANCE<11,R> - ENR_DETAILCALCUL<11,I>
                  W_PREVOYANCE<12,R> = W_PREVOYANCE<12,R> + ENR_DETAILCALCUL<14,I>
               END
            END 
         END
      END	
   NEXT M   
   I=I+1
REPEAT
W_TOTALGENETOT = W_TOTALGENETOT + W_URSSAFTOT
W_TOTALGENEPLAF = W_TOTALGENEPLAF + W_URSSAFPLAF
W_TOTALGENEBRUTE = W_TOTALGENEBRUTE + W_MONTANTBRUT
IF W_PRESENCEBULLETIN="NON" OR W_RETRAITEGENE="" THEN
   W_PRESENCERETRAITE="NON"
   READ ENR_PROFIL FROM F.PROFIL,ENR_CONTRAT<26> ELSE ENR_PROFIL=""
   I=1
   LOOP
      W_CODERUBCHARGE=ENR_PROFIL<3,I>
   UNTIL W_CODERUBCHARGE="" DO
      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_CODEETABL THEN
            *TRANCHE TOTALITE
            IF INDEX(W_TABRETRAITE<2,M>,ENR_PROFIL<3,I>,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>
                  IF W_TABRETRAITE<9,M>="03" THEN
                     IF ENR_CONTRAT<82,W_NUMAVENANT>#"" THEN
                        W_RETRAITEGENE<5,-1> = ENR_CONTRAT<82,W_NUMAVENANT>
                     END ELSE
                        W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
                     END
                  END ELSE
                     W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
                  END
                  W_RETRAITEGENE<6,-1> = W_TABRETRAITE<6,M>
                  W_RETRAITEGENE<7,-1> = 0					
                  W_RETRAITEGENE<8,-1> = W_TABRETRAITE<8,M>
                  W_RETRAITEGENE<9,-1> = W_TABRETRAITE<9,M>
                  W_RETRAITEGENE<10,-1> = W_TABRETRAITE<10,M>
                  W_RETRAITEGENE<11,-1> = 0
                  W_RETRAITEGENE<12,-1> = 0
               END 
            END
            * TRANCHE A
            IF INDEX(W_TABRETRAITE<3,M>,ENR_PROFIL<3,I>,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>
                  IF W_TABRETRAITE<9,M>="03" THEN
                     IF ENR_CONTRAT<82,W_NUMAVENANT>#"" THEN
                        W_RETRAITEGENE<5,-1> = ENR_CONTRAT<82,W_NUMAVENANT>
                     END ELSE
                        W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
                     END
                  END ELSE
                     W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
                  END
                  W_RETRAITEGENE<6,-1> = W_TABRETRAITE<6,M>
                  W_RETRAITEGENE<7,-1> = 0
                  W_RETRAITEGENE<8,-1> = W_TABRETRAITE<8,M>
                  W_RETRAITEGENE<9,-1> = W_TABRETRAITE<9,M>
                  W_RETRAITEGENE<10,-1> = W_TABRETRAITE<10,M>
                  W_RETRAITEGENE<11,-1> = 0
                  W_RETRAITEGENE<12,-1> = 0
               END
            END
            * TRANCHE B
            IF INDEX(W_TABRETRAITE<7,M>,ENR_PROFIL<3,I>,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>
                  IF W_TABRETRAITE<9,M>="03" THEN
                     IF ENR_CONTRAT<82,W_NUMAVENANT>#"" THEN
                        W_RETRAITEGENE<5,-1> = ENR_CONTRAT<82,W_NUMAVENANT>
                     END ELSE
                        W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
                     END
                  END ELSE
                     W_RETRAITEGENE<5,-1> = W_TABRETRAITE<5,M>
                  END
                  W_RETRAITEGENE<6,-1> = W_TABRETRAITE<6,M>
                  W_RETRAITEGENE<7,-1> = 0
                  W_RETRAITEGENE<8,-1> = W_TABRETRAITE<8,M>
                  W_RETRAITEGENE<9,-1> = W_TABRETRAITE<9,M>
                  W_RETRAITEGENE<10,-1> = W_TABRETRAITE<10,M>
                  W_RETRAITEGENE<11,-1> = 0
                  W_RETRAITEGENE<12,-1> = 0
               END 
            END
         END	
      NEXT M   
      I=I+1
   REPEAT
END
IF W_PRESENCEBULLETIN="NON" OR W_PREVOYANCE="" THEN
   W_PRESENCEPREVOYANCE="NON"
   READ ENR_PROFIL FROM F.PROFIL,ENR_CONTRAT<26> ELSE ENR_PROFIL=""
   I=1
   LOOP
      W_CODERUBCHARGE=ENR_PROFIL<3,I>
   UNTIL W_CODERUBCHARGE="" DO
      W_NBORG = DCOUNT(W_TABPREVOYANCE<1>,CHAR(253))
      FOR M = 1 TO W_NBORG
         IF W_TABPREVOYANCE<1,M>[4,3] = "000" OR W_TABPREVOYANCE<1,M>[4,3] = W_CODEETABL THEN
            *TRANCHE TOTALITE
            IF INDEX(W_TABPREVOYANCE<2,M>,ENR_PROFIL<3,I>,1) # 0 THEN 
               IF INDEX(W_PREVOYANCE<1>,W_TABPREVOYANCE<1,M>,1) = 0 THEN
                  W_PREVOYANCE<1,-1> = W_TABPREVOYANCE<1,M>
                  W_PREVOYANCE<2,-1> = 0
                  W_PREVOYANCE<3,-1> = 0
                  W_PREVOYANCE<4,-1> = W_TABPREVOYANCE<4,M>
                  W_PREVOYANCE<5,-1> = W_TABPREVOYANCE<5,M>
                  W_PREVOYANCE<6,-1> = W_TABPREVOYANCE<6,M>
                  W_PREVOYANCE<7,-1> = 0					
                  W_PREVOYANCE<8,-1> = W_TABPREVOYANCE<8,M>
                  W_PREVOYANCE<9,-1> = W_TABPREVOYANCE<9,M>
                  W_PREVOYANCE<10,-1> = W_TABPREVOYANCE<10,M>
                  W_PREVOYANCE<11,-1> = 0
                  W_PREVOYANCE<12,-1> = 0
                  W_PREVOYANCE<13,-1> = W_TABPREVOYANCE<11,M>
                  IF ENR_CONTRAT<133,W_NUMAVENANT>#"" THEN
                     W_PREVOYANCE<14,-1> = ENR_CONTRAT<133,W_NUMAVENANT>
                  END ELSE
                     W_PREVOYANCE<14,-1> = W_TABPREVOYANCE<12,M>
                  END
               END 
            END
            * TRANCHE A
            IF INDEX(W_TABPREVOYANCE<3,M>,ENR_PROFIL<3,I>,1) # 0 THEN 
               IF INDEX(W_PREVOYANCE<1>,W_TABPREVOYANCE<1,M>,1) = 0 THEN 
                  W_PREVOYANCE<1,-1> = W_TABPREVOYANCE<1,M>
                  W_PREVOYANCE<2,-1> = 0
                  W_PREVOYANCE<3,-1> = 0
                  W_PREVOYANCE<4,-1> = W_TABPREVOYANCE<4,M>
                  W_PREVOYANCE<5,-1> = W_TABPREVOYANCE<5,M>
                  W_PREVOYANCE<6,-1> = W_TABPREVOYANCE<6,M>
                  W_PREVOYANCE<7,-1> = 0
                  W_PREVOYANCE<8,-1> = W_TABPREVOYANCE<8,M>
                  W_PREVOYANCE<9,-1> = W_TABPREVOYANCE<9,M>
                  W_PREVOYANCE<10,-1> = W_TABPREVOYANCE<10,M>
                  W_PREVOYANCE<11,-1> = 0
                  W_PREVOYANCE<12,-1> = 20
                  W_PREVOYANCE<13,-1> = W_TABPREVOYANCE<11,M>
                  IF ENR_CONTRAT<133,W_NUMAVENANT>#"" THEN
                     W_PREVOYANCE<14,-1> = ENR_CONTRAT<133,W_NUMAVENANT>
                  END ELSE
                     W_PREVOYANCE<14,-1> = W_TABPREVOYANCE<12,M>
                  END
               END
            END
            * TRANCHE B
            IF INDEX(W_TABPREVOYANCE<7,M>,ENR_PROFIL<3,I>,1) # 0 THEN 
               IF INDEX(W_PREVOYANCE<1>,W_TABPREVOYANCE<1,M>,1) = 0 THEN 
                  W_PREVOYANCE<1,-1> = W_TABPREVOYANCE<1,M>
                  W_PREVOYANCE<2,-1> = 0
                  W_PREVOYANCE<3,-1> = 0
                  W_PREVOYANCE<4,-1> = W_TABPREVOYANCE<4,M>
                  W_PREVOYANCE<5,-1> = W_TABPREVOYANCE<5,M>
                  W_PREVOYANCE<6,-1> = W_TABPREVOYANCE<6,M>
                  W_PREVOYANCE<7,-1> = 0
                  W_PREVOYANCE<8,-1> = W_TABPREVOYANCE<8,M>
                  W_PREVOYANCE<9,-1> = W_TABPREVOYANCE<9,M>
                  W_PREVOYANCE<10,-1> = W_TABPREVOYANCE<10,M>
                  W_PREVOYANCE<11,-1> = 0
                  W_PREVOYANCE<12,-1> = 0
                  W_PREVOYANCE<13,-1> = W_TABPREVOYANCE<11,M>
                  IF ENR_CONTRAT<133,W_NUMAVENANT>#"" THEN
                     W_PREVOYANCE<14,-1> = ENR_CONTRAT<133,W_NUMAVENANT>
                  END ELSE
                     W_PREVOYANCE<14,-1> = W_TABPREVOYANCE<12,M>
                  END
               END 
            END
         END	
      NEXT M   
      I=I+1
   REPEAT  
END
W_MONTANTPRIMES=0
W_MONTANT028=0
I=1
LOOP
UNTIL ENR_DETAILCALCUL<2,I>="" DO
   IF INDEX(ENR_PARAMPOLEEMPLOI<3>,ENR_DETAILCALCUL<2,I>,1) # 0 THEN
      W_MONTANT028=W_MONTANT028+ENR_DETAILCALCUL<5,I>
      W_MONTANTPRIMES=W_MONTANTPRIMES+ENR_DETAILCALCUL<5,I>
   END
   I=I+1
REPEAT
W_MONTANT007=0
W_MONTANT001=0
W_MONTANT004=0
W_MONTANT006=0
W_MONTANT011=0
W_MONTANT020=0
W_MONTANT023=0
W_NBJOURSCPRESTANT=0
IF ENR_CONTRAT<58>=W_ANNEEMOIS THEN
   I=1
   LOOP
   UNTIL ENR_DETAILCALCUL<17,I>="" DO
      IF ENR_DETAILCALCUL<17,I>=ENR_PARAMPOLEEMPLOI<4> THEN W_MONTANT001=W_MONTANT001+ENR_DETAILCALCUL<20,I>
      IF ENR_DETAILCALCUL<17,I>="800" THEN W_MONTANT007=W_MONTANT007+ENR_DETAILCALCUL<20,I>
      I=I+1
   REPEAT
   I=1
   LOOP
   UNTIL ENR_DETAILCALCUL<2,I>="" DO
      IF ENR_DETAILCALCUL<2,I>="801" THEN
	     IF W_MOTIFFINCONTRAT="43" THEN
            W_MONTANT004=W_MONTANT004+ENR_DETAILCALCUL<5,I>
         END ELSE
            W_MONTANT006=W_MONTANT006+ENR_DETAILCALCUL<5,I>
         END
         W_MONTANTPRIMES=W_MONTANTPRIMES+ENR_DETAILCALCUL<5,I>
      END
      IF ENR_DETAILCALCUL<2,I>="809" THEN
         W_MONTANT011=W_MONTANT011+ENR_DETAILCALCUL<5,I>
         W_MONTANTPRIMES=W_MONTANTPRIMES+ENR_DETAILCALCUL<5,I>
      END
      IF ENR_DETAILCALCUL<2,I>="804" THEN
         W_MONTANT020=W_MONTANT020+ENR_DETAILCALCUL<5,I>
		 W_TAUXHORAIREAIDANT=ENR_DETAILCALCUL<4,I>/10
         W_MONTANTPRIMES=W_MONTANTPRIMES+ENR_DETAILCALCUL<5,I>
      END
      IF INDEX(ENR_REGRUBSAISIE<1>,ENR_DETAILCALCUL<2,I>,1) # 0 THEN
         W_MONTANT023=W_MONTANT023+ENR_DETAILCALCUL<5,I>
         W_MONTANTPRIMES=W_MONTANTPRIMES+ENR_DETAILCALCUL<5,I>
      END
      I=I+1
   REPEAT
END
W_ASSURANCECHOMAGE=W_URSSAFTOT-W_MONTANTPRIMES
* Didier 23/09/2015 : Gestion stagiaire - DA15061
IF ENR_CONTRAT<13>="STG" THEN W_ASSURANCECHOMAGE=0
IF W_MONTANT020>0 THEN
   IF ENR_CONTRAT<42> # 0 AND ENR_CONTRAT<42> # "" THEN
      W_NBJOURSCPRESTANT = INT(W_MONTANT020 * 100 / ENR_CONTRAT<43> + 1/2)
   END ELSE
      TauxHorContrat=ENR_CONTRAT<23,W_NUMAVENANT>
      IF W_TAUXHORAIREAIDANT=0 THEN W_TAUXHORAIREAIDANT=TauxHorContrat
      W_VALEURUNJOURCP = INT(W_HEURESMENSCONTRAT * 12 / 312 + 1/2)
      W_VALEURUNJOURCP = INT(W_VALEURUNJOURCP * W_TAUXHORAIREAIDANT/ 1000 + 1/2)
      IF W_VALEURUNJOURCP=0 THEN
         W_NBJOURSCPRESTANT="100"
      END ELSE
         W_NBJOURSCPRESTANT = INT(W_MONTANT020 * 100 / W_VALEURUNJOURCP + 1/2)
      END
   END
   W_LONG=LEN(W_NBJOURSCPRESTANT)
   IF W_LONG<2 THEN
      W_NBJOURSCPRESTANT="50"
   END ELSE
      IF W_NBJOURSCPRESTANT[W_LONG-1,2]=0 THEN
         NULL
      END ELSE
         IF W_NBJOURSCPRESTANT[W_LONG-1,2]>50 THEN
            W_NBJOURSCPRESTANT = INT((W_NBJOURSCPRESTANT + 99) / 100) * 100
         END ELSE
            W_NBJOURSCPRESTANT = INT(W_NBJOURSCPRESTANT / 100) * 100
            W_NBJOURSCPRESTANT = W_NBJOURSCPRESTANT + 50
         END
      END
   END
END
W_SALAIRERETABLI=W_MONTANTBRUT
IF W_TYPETRAIT="2" THEN RETURN
LISTABSAIDANT3=""
EXECUTE 'SSELECT ABSENCESAIDANT AVEC CodAbsAidant = "':W_CODEAIDANT:']" AND AVEC DebAbsAidant <= "':W_DATEFINACTIVITEINT:'" AND AVEC 2 >= "':W_DATEDEBACTIVITEINT:'" AND AVEC NumMotifAidant <= "06" OR = "12" OR = "13" OR = "26" PAR-DECR 2'
EXECUTE 'SAUVE-LISTE LISTABSAIDANT3'
EXECUTE "LISTE LISTABSAIDANT3" RETURNING W_MSG
SELECT F.ABSENCESAIDANT TO LISTABSAIDANT3
IF W_MSG<1>=209 THEN
   IF ENR_CONTRAT<7>>W_DATEDEBUTPERIODEDSNMENS THEN
      W_PARAMSRETABLI=""
      W_PARAMSRETABLI<1>=W_ANNEEMOIS
      W_PARAMSRETABLI<2>="1"
      W_PARAMSRETABLI<5>=CLECONTRAT
      W_PARAMSRETABLI<6>=W_DATEFINPERIODEDSN
      W_RESULTATRETABLI=""
      RETURNVAL1="DSN"
*      ENRRETABLI=""
*      ENRRETABLI=W_PARAMSRETABLI
*      WRITE ENRRETABLI ON F.TAMPONDADS,CLECONTRAT:"-3"
      CALL CALCPERIODEREFATTEST(RETURNVAL1,W_PARAMSRETABLI,W_RESULTATRETABLI)
*      IF W_RESULTATRETABLI<1,6>#"" THEN
*         ENRRETABLI=""
*         ENRRETABLI=W_RESULTATRETABLI
*         WRITE ENRRETABLI ON F.TAMPONDADS,CLECONTRAT:"-4"
*      END
      IF W_RESULTATRETABLI<1,6>#"" THEN W_SALAIRERETABLI=INT(W_RESULTATRETABLI<1,6>+1/2)
      EXECUTE "SET-DEC ."   
   END
END ELSE
   W_FINABSAIDANT="NON"
   W_PARAMSRETABLI=""
   W_PARAMSRETABLI<1>=W_ANNEEMOIS
   W_PARAMSRETABLI<2>="2"
   W_PARAMSRETABLI<5>=CLECONTRAT
   W_PARAMSRETABLI<6>=W_DATEFINPERIODEDSN
   LOOP
      READNEXT CLEABSAIDANT FROM LISTABSAIDANT3 ELSE W_FINABSAIDANT="OUI"
   UNTIL W_FINABSAIDANT = "OUI" DO
      W_PARAMSRETABLI<3,-1>=CLEABSAIDANT
   REPEAT
   W_RESULTATRETABLI=""
   RETURNVAL1="DSN"
*   ENRRETABLI=""
*   ENRRETABLI=W_PARAMSRETABLI
*   WRITE ENRRETABLI ON F.TAMPONDADS,CLECONTRAT:"-1"
   CALL CALCPERIODEREFATTEST(RETURNVAL1,W_PARAMSRETABLI,W_RESULTATRETABLI)
*   IF W_RESULTATRETABLI<1,6>#"" THEN
*      ENRRETABLI=""
*      ENRRETABLI=W_RESULTATRETABLI
*      WRITE ENRRETABLI ON F.TAMPONDADS,CLECONTRAT:"-2"
*   END
   IF W_RESULTATRETABLI<1,6>#"" THEN W_SALAIRERETABLI=INT(W_RESULTATRETABLI<1,6>+1/2)
   EXECUTE "SET-DEC ."
END
EXECUTE 'EFFACER-LISTE LISTABSAIDANT3'
* Didier 20/05/2015 : phase 2
W_BASEHHSUPPLCOMPL=0
W_MONTHHSUPPLCOMPL=0
I=1
LOOP
UNTIL ENR_DETAILCALCUL<2,I>="" DO
   READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETAILCALCUL<2,I> ELSE ENR_RUBSAISIE=""
   IF ENR_RUBSAISIE<19>="1" OR ENR_RUBSAISIE<19>="2" THEN
      W_BASEHHSUPPLCOMPL=W_BASEHHSUPPLCOMPL+ENR_DETAILCALCUL<3,I>
      W_MONTHHSUPPLCOMPL=W_MONTHHSUPPLCOMPL+ENR_DETAILCALCUL<5,I>
   END
   I=I+1
REPEAT
RETURN

**********
* 210051 -> PAIE (S21.G00.51)
**********
210051
W_CHAINE = "S21.G00.51."
* Didier 20/05/2015 : phase 2
ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEDEBACTIVITE:"'"
ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEFINACTIVITE:"'"
ENR_DSN<-1> = W_CHAINE:"009,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
* Didier 15/09/2015 : rfrence du contrat si CDD suivi par CDI - DA15057
IF W_NUMEROCONTRATDSN#"" THEN
   ENR_DSN<-1> = W_CHAINE:"010,'":W_NUMEROCONTRATDSN:"'"  
END ELSE
   ENR_DSN<-1> = W_CHAINE:"010,'":CLEDETAILCALCUL[1,8]:"'"
END
ENR_DSN<-1> = W_CHAINE:"011,'001'"
* Didier 23/09/2015 : Gestion stagiaire - DA15061
IF ENR_CONTRAT<13>="STG" THEN
   W_MISENFORME=W_MONTANTBRUT "R26"
END ELSE
   W_MISENFORME=W_URSSAFTOT "R26"
END
ENR_DSN<-1> = W_CHAINE:"013,'":W_MISENFORME:"'"
IF W_TYPETRAIT="1" THEN
   ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEDEBACTIVITE:"'"
   ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEFINACTIVITE:"'"
   ENR_DSN<-1> = W_CHAINE:"009,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
* Didier 15/09/2015 : rfrence du contrat si CDD suivi par CDI - DA15057
   IF W_NUMEROCONTRATDSN#"" THEN
      ENR_DSN<-1> = W_CHAINE:"010,'":W_NUMEROCONTRATDSN:"'"  
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"010,'":CLEDETAILCALCUL[1,8]:"'"
   END   
   ENR_DSN<-1> = W_CHAINE:"011,'010'"
   * Didier 23/09/2015 : Gestion stagiaire - DA15061
   IF ENR_CONTRAT<13>="STG" THEN
      W_MISENFORME=W_MONTANTBRUT "R26"
   END ELSE   
      W_MISENFORME=W_URSSAFTOT "R26"
   END
   ENR_DSN<-1> = W_CHAINE:"013,'":W_MISENFORME:"'"
END

* Didier 16/02/2016 : Pav rmunration sur type 002 = salaire brut soumis  contributions d'assurance chmage
* passe en fin de manire  enchaner de suite avec la structure S21.G00.53

IF W_TYPETRAIT="1" THEN
   ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEDEBACTIVITE:"'"
   ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEFINACTIVITE:"'"
   ENR_DSN<-1> = W_CHAINE:"009,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
* Didier 15/09/2015 : rfrence du contrat si CDD suivi par CDI - DA15057
   IF W_NUMEROCONTRATDSN#"" THEN
      ENR_DSN<-1> = W_CHAINE:"010,'":W_NUMEROCONTRATDSN:"'"  
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"010,'":CLEDETAILCALCUL[1,8]:"'"
   END
   ENR_DSN<-1> = W_CHAINE:"011,'003'"
   * Didier 23/09/2015 : Gestion stagiaire - DA15061
   IF ENR_CONTRAT<13>="STG" THEN
      W_MISENFORME=W_URSSAFTOT "R26"
   END ELSE
      W_MISENFORME=W_SALAIRERETABLI "R26"
   END
   ENR_DSN<-1> = W_CHAINE:"013,'":W_MISENFORME:"'"
   IF W_REPRISEHISTORIQUE#"1" THEN
      IF W_MONTHHSUPPLCOMPL#0 THEN
         ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEDEBACTIVITE:"'"
         ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEFINACTIVITE:"'"
         ENR_DSN<-1> = W_CHAINE:"009,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
* Didier 15/09/2015 : rfrence du contrat si CDD suivi par CDI - DA15057
         IF W_NUMEROCONTRATDSN#"" THEN
            ENR_DSN<-1> = W_CHAINE:"010,'":W_NUMEROCONTRATDSN:"'"  
         END ELSE
            ENR_DSN<-1> = W_CHAINE:"010,'":CLEDETAILCALCUL[1,8]:"'"
         END		 
         ENR_DSN<-1> = W_CHAINE:"011,'011'"
         W_MISENFORME=W_BASEHHSUPPLCOMPL "R26"
         ENR_DSN<-1> = W_CHAINE:"012,'":W_MISENFORME:"'"   
         W_MISENFORME=W_MONTHHSUPPLCOMPL "R26"
         ENR_DSN<-1> = W_CHAINE:"013,'":W_MISENFORME:"'"
      END	  
   END
END

* Didier 16/02/2016 : Pav rmunration sur type 002 = salaire brut soumis  contributions d'assurance chmage
* passe en fin de manire  enchaner de suite avec la structure S21.G00.53
ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEDEBACTIVITE:"'"
ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEFINACTIVITE:"'"
ENR_DSN<-1> = W_CHAINE:"009,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
* Didier 15/09/2015 : rfrence du contrat si CDD suivi par CDI - DA15057
IF W_NUMEROCONTRATDSN#"" THEN
   ENR_DSN<-1> = W_CHAINE:"010,'":W_NUMEROCONTRATDSN:"'"  
END ELSE
   ENR_DSN<-1> = W_CHAINE:"010,'":CLEDETAILCALCUL[1,8]:"'"
END
ENR_DSN<-1> = W_CHAINE:"011,'002'"
* Didier 06/08/2015 : si montant assurance chomage ngatif alors dclar  0
IF W_ASSURANCECHOMAGE<0 THEN
   ENR_DSN<-1> = W_CHAINE:"013,'0.00'"
END ELSE
   W_MISENFORME=W_ASSURANCECHOMAGE "R26"
   ENR_DSN<-1> = W_CHAINE:"013,'":W_MISENFORME:"'"
END
RETURN


**********
* 210052 -> PRIMES, GRATIFICATIONS ET INDEMNITES (S21.G00.52)
**********
210052
W_CHAINE = "S21.G00.52."
IF W_MONTANT001#0 THEN
   ENR_DSN<-1> = W_CHAINE:"001,'001'"
   W_MISENFORME=W_MONTANT001 "R26"
   ENR_DSN<-1> = W_CHAINE:"002,'":W_MISENFORME:"'"
   * Didier 20/05/2015 : phase 2
   ENR_DSN<-1> = W_CHAINE:"005,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
* Didier 15/09/2015 : rfrence du contrat si CDD suivi par CDI - DA15057
   IF W_NUMEROCONTRATDSN#"" THEN
      ENR_DSN<-1> = W_CHAINE:"006,'":W_NUMEROCONTRATDSN:"'"  
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"006,'":CLEDETAILCALCUL[1,8]:"'"
   END   
END
IF W_MONTANT007#0 THEN
   ENR_DSN<-1> = W_CHAINE:"001,'007'"
   W_MISENFORME=W_MONTANT007 "R26"
   ENR_DSN<-1> = W_CHAINE:"002,'":W_MISENFORME:"'"
   * Didier 20/05/2015 : phase 2
   ENR_DSN<-1> = W_CHAINE:"005,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
* Didier 15/09/2015 : rfrence du contrat si CDD suivi par CDI - DA15057
   IF W_NUMEROCONTRATDSN#"" THEN
      ENR_DSN<-1> = W_CHAINE:"006,'":W_NUMEROCONTRATDSN:"'"  
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"006,'":CLEDETAILCALCUL[1,8]:"'"
   END   
END
IF W_MONTANT004#0 THEN
   ENR_DSN<-1> = W_CHAINE:"001,'004'"
   W_MISENFORME=W_MONTANT004 "R26"
   ENR_DSN<-1> = W_CHAINE:"002,'":W_MISENFORME:"'"
   * Didier 20/05/2015 : phase 2
   ENR_DSN<-1> = W_CHAINE:"005,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
* Didier 15/09/2015 : rfrence du contrat si CDD suivi par CDI - DA15057
   IF W_NUMEROCONTRATDSN#"" THEN
      ENR_DSN<-1> = W_CHAINE:"006,'":W_NUMEROCONTRATDSN:"'"  
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"006,'":CLEDETAILCALCUL[1,8]:"'"
   END   
END
IF W_MONTANT006#0 THEN
   ENR_DSN<-1> = W_CHAINE:"001,'006'"
   W_MISENFORME=W_MONTANT006 "R26"
   ENR_DSN<-1> = W_CHAINE:"002,'":W_MISENFORME:"'"
   * Didier 20/05/2015 : phase 2
   ENR_DSN<-1> = W_CHAINE:"005,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
* Didier 15/09/2015 : rfrence du contrat si CDD suivi par CDI - DA15057
   IF W_NUMEROCONTRATDSN#"" THEN
      ENR_DSN<-1> = W_CHAINE:"006,'":W_NUMEROCONTRATDSN:"'"  
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"006,'":CLEDETAILCALCUL[1,8]:"'"
   END   
END
IF W_MONTANT011#0 THEN
   ENR_DSN<-1> = W_CHAINE:"001,'011'"
   W_MISENFORME=W_MONTANT011 "R26"
   ENR_DSN<-1> = W_CHAINE:"002,'":W_MISENFORME:"'"
   * Didier 20/05/2015 : phase 2
   ENR_DSN<-1> = W_CHAINE:"005,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
* Didier 15/09/2015 : rfrence du contrat si CDD suivi par CDI - DA15057
   IF W_NUMEROCONTRATDSN#"" THEN
      ENR_DSN<-1> = W_CHAINE:"006,'":W_NUMEROCONTRATDSN:"'"  
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"006,'":CLEDETAILCALCUL[1,8]:"'"
   END   
END
IF W_MONTANT020#0 THEN
   ENR_DSN<-1> = W_CHAINE:"001,'020'"
   W_MISENFORME=W_MONTANT020 "R26"
   ENR_DSN<-1> = W_CHAINE:"002,'":W_MISENFORME:"'"
   * Didier 20/05/2015 : phase 2
   ENR_DSN<-1> = W_CHAINE:"005,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
* Didier 15/09/2015 : rfrence du contrat si CDD suivi par CDI - DA15057
   IF W_NUMEROCONTRATDSN#"" THEN
      ENR_DSN<-1> = W_CHAINE:"006,'":W_NUMEROCONTRATDSN:"'"  
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"006,'":CLEDETAILCALCUL[1,8]:"'"
   END   
END
IF ENR_CONTRAT<53>#"" THEN
   IF W_MONTANT023#0 THEN
      ENR_DSN<-1> = W_CHAINE:"001,'023'"
      W_MISENFORME=W_MONTANT023 "R26"
      ENR_DSN<-1> = W_CHAINE:"002,'":W_MISENFORME:"'"
      * Didier 20/05/2015 : phase 2
      ENR_DSN<-1> = W_CHAINE:"005,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
* Didier 15/09/2015 : rfrence du contrat si CDD suivi par CDI - DA15057
      IF W_NUMEROCONTRATDSN#"" THEN
         ENR_DSN<-1> = W_CHAINE:"006,'":W_NUMEROCONTRATDSN:"'"  
      END ELSE
         ENR_DSN<-1> = W_CHAINE:"006,'":CLEDETAILCALCUL[1,8]:"'"
      END	  
   END
END
IF W_MONTANT028#0 THEN
   ENR_DSN<-1> = W_CHAINE:"001,'028'"
   W_MISENFORME=W_MONTANT028 "R26"
   ENR_DSN<-1> = W_CHAINE:"002,'":W_MISENFORME:"'"
   * Didier 20/05/2015 : phase 2
   ENR_DSN<-1> = W_CHAINE:"005,'":W_DATEDEBUTCONTRAT[1,2]:W_DATEDEBUTCONTRAT[4,2]:W_DATEDEBUTCONTRAT[7,4]:"'"
* Didier 15/09/2015 : rfrence du contrat si CDD suivi par CDI - DA15057
   IF W_NUMEROCONTRATDSN#"" THEN
      ENR_DSN<-1> = W_CHAINE:"006,'":W_NUMEROCONTRATDSN:"'"  
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"006,'":CLEDETAILCALCUL[1,8]:"'"
   END   
END
RETURN


**********
* 210053 -> ACTIVITE (S21.G00.53)
**********
210053
W_CHAINE = "S21.G00.53."
IF W_PRESENCEBULLETIN="NON" THEN
   ENR_DSN<-1> = W_CHAINE:"001,'01'"
   ENR_DSN<-1> = W_CHAINE:"002,'0.00'"
   ENR_DSN<-1> = W_CHAINE:"003,'10'"
END ELSE
   ENR_DSN<-1> = W_CHAINE:"001,'01'"
   W_MISENFORME=ENR_DETAILCALCUL<6> "R26"
   ENR_DSN<-1> = W_CHAINE:"002,'":W_MISENFORME:"'"
   ENR_DSN<-1> = W_CHAINE:"003,'10'"
   I=1
   W_HEURESABS=0
   LOOP
   UNTIL ENR_DETAILCALCUL<33,I>="" DO
      IF ENR_DETAILCALCUL<33,I>="815" OR ENR_DETAILCALCUL<33,I>="838" THEN
         W_HEURESABS=W_HEURESABS+ENR_DETAILCALCUL<34,I>
      END
      I=I+1
   REPEAT
   IF W_HEURESABS#0 THEN
      ENR_DSN<-1> = W_CHAINE:"001,'02'"
      W_MISENFORME=W_HEURESABS "R26"
      ENR_DSN<-1> = W_CHAINE:"002,'":W_MISENFORME:"'"
	  ENR_DSN<-1> = W_CHAINE:"003,'10'"   
   END   
END
RETURN


**********
* 210054 -> AUTRES ELEMENTS DE REVENU BRUT (S21.G00.54)
**********
210054
W_CHAINE = "S21.G00.54."
IF W_PRESENCEBULLETIN="NON" THEN RETURN
I=1
LOOP
UNTIL ENR_DETAILCALCUL<2,I>="" DO
   READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETAILCALCUL<2,I> THEN
      * Avantage en nature
      IF ENR_RUBSAISIE<2>="0" AND ENR_DETAILCALCUL<5,I>#0 THEN	  
	     W_TYPEAVANTAGENATURE=""
	     BEGIN CASE
            CASE ENR_RUBSAISIE<3>="L"
			   W_TYPEAVANTAGENATURE="03"
            CASE ENR_RUBSAISIE<3>="N"
			   W_TYPEAVANTAGENATURE="02"				  
            CASE ENR_RUBSAISIE<3>="V"
			   W_TYPEAVANTAGENATURE="04"
            CASE 1			   
			   W_TYPEAVANTAGENATURE="06"
         END CASE
         ENR_DSN<-1> = W_CHAINE:"001,'":W_TYPEAVANTAGENATURE:"'"
         W_MISENFORME=ENR_DETAILCALCUL<5,I> "R26"
         ENR_DSN<-1> = W_CHAINE:"002,'":W_MISENFORME:"'"		 
         ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
         ENR_DSN<-1> = W_CHAINE:"004,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
      END
   END
   I=I+1
REPEAT	  
I=1
LOOP
UNTIL ENR_DETAILCALCUL<17,I>="" DO
   READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETAILCALCUL<17,I> THEN	  
      * Frais professionnels
      IF ENR_RUBSAISIE<2>="2" AND ENR_DETAILCALCUL<20,I>#0 THEN	  
	     W_TYPEFRAISPROF=""
	     BEGIN CASE
            CASE ENR_RUBSAISIE<17>="F"
			   W_TYPEFRAISPROF="07"
            CASE ENR_RUBSAISIE<17>="R"
			   W_TYPEFRAISPROF="09"				  
            CASE ENR_RUBSAISIE<17>="P"
			   W_TYPEFRAISPROF="08"
            CASE 1			   
			   W_TYPEFRAISPROF="09"
         END CASE
         ENR_DSN<-1> = W_CHAINE:"001,'":W_TYPEFRAISPROF:"'"
         W_MISENFORME=ENR_DETAILCALCUL<20,I> "R26"
         ENR_DSN<-1> = W_CHAINE:"002,'":W_MISENFORME:"'"		 
         ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
         ENR_DSN<-1> = W_CHAINE:"004,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
      END	  
   END
   I=I+1
REPEAT
RETURN


**********
* 210060 -> ARRET DE TRAVAIL (S21.G00.60)
**********
210060
W_CHAINE = "S21.G00.60."
LISTABSAIDANT2=""
* Didier 20/05/2015 : phase 2
*EXECUTE 'SSELECT ABSENCESAIDANT AVEC CodAbsAidant = "':W_CODEAIDANT:']" AND AVEC DebAbsAidant <= "':W_DATEFINACTIVITEINT:'" AND AVEC 2 >= "':W_DATEDEBACTIVITEINT:'" AND AVEC NumMotifAidant > "0" AND  < "3" PAR DebAbsAidant'
EXECUTE 'SSELECT ABSENCESAIDANT AVEC CodAbsAidant = "':W_CODEAIDANT:']" AND AVEC DebAbsAidant <= "':W_DATEFINACTIVITEINT:'" AND AVEC 2 >= "':W_DATEDEBACTIVITEINT:'" AND AVEC NumMotifAidant < "7" AND # "03" PAR DebAbsAidant'
EXECUTE 'SAUVE-LISTE LISTABSAIDANT2'
EXECUTE "LISTE LISTABSAIDANT2" RETURNING W_MSG
SELECT F.ABSENCESAIDANT TO LISTABSAIDANT2
IF W_MSG<1>=209 THEN
   W_DATEREPRISEMITPS=""
   GOSUB 2100601
   RETURN
END
W_FINABSAIDANT="NON"
LOOP
   READNEXT CLEABSAIDANT FROM LISTABSAIDANT2 ELSE W_FINABSAIDANT="OUI"
UNTIL W_FINABSAIDANT = "OUI" DO
   W_MOTIFABSAIDANT=CLEABSAIDANT[6,2]
   READ ENR_ABSENCESAIDANT FROM F.ABSENCESAIDANT,CLEABSAIDANT ELSE ENR_ABSENCESAIDANT = ""
   I=1
   LOOP
   UNTIL ENR_ABSENCESAIDANT<17,I>="" OR ENR_ABSENCESAIDANT<17,I>=CLEDETAILCALCUL[1,8] DO
      I=I+1
   REPEAT
   IF ENR_ABSENCESAIDANT<17,I>=CLEDETAILCALCUL[1,8] THEN
      * Didier 20/05/2015 : phase 2
      W_MOTIFABSAIDANTDSN=W_MOTIFABSAIDANT
	  IF W_MOTIFABSAIDANT="02" AND ENR_CIVILAIDANT<1> # "MME" AND ENR_CIVILAIDANT<1> # "MLE" THEN W_MOTIFABSAIDANTDSN="03"
      IF W_MOTIFABSAIDANT="04" THEN W_MOTIFABSAIDANTDSN="06"
      IF W_MOTIFABSAIDANT="05" THEN W_MOTIFABSAIDANTDSN="04"
      IF W_MOTIFABSAIDANT="06" THEN W_MOTIFABSAIDANTDSN="05"
      IF W_PASSAGEAIDANT=1 THEN
         ENR_DSN<-1> = W_CHAINE:"001,'":W_MOTIFABSAIDANTDSN:"'"
	  END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"001,'":W_MOTIFABSAIDANTDSN:"'")
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1 	  
	  END
      W_DATEDERNJOURTRAV=ENR_ABSENCESAIDANT<9>
      W_DATEDERNJOURTRAV=OCONV(W_DATEDERNJOURTRAV,"D4/")
      W_DATEDERNJOURTRAV=CONVERT("/","",W_DATEDERNJOURTRAV)
      IF W_PASSAGEAIDANT=1 THEN	  
         ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDERNJOURTRAV:"'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"002,'":W_DATEDERNJOURTRAV:"'")
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1	  
	  END
      W_DATEFINARRET=ENR_ABSENCESAIDANT<2>
      W_DATEFINARRET=OCONV(W_DATEFINARRET,"D4/")
      W_DATEFINARRET=CONVERT("/","",W_DATEFINARRET)
      IF W_PASSAGEAIDANT=1 THEN		  
         ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINARRET:"'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"003,'":W_DATEFINARRET:"'")
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1	  
	  END
	  IF ENR_ABSENCESAIDANT<16,I>="OUI" THEN
*	     ENR_DSN<-1> = W_CHAINE:"004,'01'"
         W_DATEDEBARRET=CLEABSAIDANT[8,5]
         W_DATEDEBARRET=OCONV(W_DATEDEBARRET,"D4/")
         W_DATEDEBARRET=CONVERT("/","",W_DATEDEBARRET)
*         ENR_DSN<-1> = W_CHAINE:"005,'":W_DATEFINARRET:"'"		 
*         ENR_DSN<-1> = W_CHAINE:"006,'":W_DATEFINARRET:"'"
*         ENR_DSN<-1> = W_CHAINE:"007,'":ENR_ASSOCIATION<15>:"'"
*         ENR_DSN<-1> = W_CHAINE:"008,'":ENR_ASSOCIATION<16>:"'"		 
	  END ELSE
*	     ENR_DSN<-1> = W_CHAINE:"004,'02'"	  
	  END
	  IF ENR_ABSENCESAIDANT<2>>=W_DATEDEBACTIVITEINT AND ENR_ABSENCESAIDANT<2><=W_DATEFINACTIVITEINT THEN
	     W_DATEREPRISEMITPS=ENR_ABSENCESAIDANT<2>+1
		 W_DATEREPRISE=""
	     GOSUB 2100601
		 IF W_DATEREPRISE="" THEN
            W_DATEREPRISE=ENR_ABSENCESAIDANT<2>+1
            W_DATEREPRISE=OCONV(W_DATEREPRISE,"D4/")
            W_DATEREPRISE=CONVERT("/","",W_DATEREPRISE)
			IF W_PASSAGEAIDANT=1 THEN
               ENR_DSN<-1> = W_CHAINE:"010,'":W_DATEREPRISE:"'"
			END ELSE
               ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"010,'":W_DATEREPRISE:"'")
               W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1			
			END
			IF W_PASSAGEAIDANT=1 THEN			
	           ENR_DSN<-1> = W_CHAINE:"011,'01'"
            END ELSE
	           ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"011,'01'")
               W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
            END			
         END ELSE
            W_DATEREPRISE=OCONV(W_DATEREPRISE,"D4/")
            W_DATEREPRISE=CONVERT("/","",W_DATEREPRISE)
			IF W_PASSAGEAIDANT=1 THEN
               ENR_DSN<-1> = W_CHAINE:"010,'":W_DATEREPRISE:"'"
			END ELSE
               ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"010,'":W_DATEREPRISE:"'")
               W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1			
			END			
			IF W_PASSAGEAIDANT=1 THEN			
	           ENR_DSN<-1> = W_CHAINE:"011,'02'"
            END ELSE
	           ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"011,'02'")
               W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
            END	
		 END
	  END
   END  
REPEAT
W_DATEREPRISEMITPS=""
GOSUB 2100601
EXECUTE 'EFFACER-LISTE LISTABSAIDANT2'
RETURN

**********
* Didier 01/06/2015 : traitement mi-temps thrapeutique
* 2100601 -> SUITE TRAITEMENT ARRET
**********
2100601 LISTABSAIDANT2BIS=""
IF W_DATEREPRISEMITPS="" THEN
   EXECUTE 'SSELECT ABSENCESAIDANT AVEC CodAbsAidant = "':W_CODEAIDANT:']" AND AVEC DebAbsAidant <= "':W_DATEFINACTIVITEINT:'" AND AVEC 2 >= "':W_DATEDEBACTIVITEINT:'" AND AVEC NumMotifAidant = "03" PAR DebAbsAidant'
END ELSE
   EXECUTE 'SSELECT ABSENCESAIDANT AVEC CodAbsAidant = "':W_CODEAIDANT:']" AND AVEC DebAbsAidant = "':W_DATEREPRISEMITPS:'" AND AVEC NumMotifAidant = "03" PAR DebAbsAidant'
END
EXECUTE 'SAUVE-LISTE LISTABSAIDANT2BIS'
EXECUTE "LISTE LISTABSAIDANT2BIS" RETURNING W_MSGBIS
SELECT F.ABSENCESAIDANT TO LISTABSAIDANT2BIS
IF W_MSGBIS<1>=209 THEN RETURN
W_FINABSAIDANTBIS="NON"
LOOP
   READNEXT CLEABSAIDANTBIS FROM LISTABSAIDANT2BIS ELSE W_FINABSAIDANTBIS="OUI"
UNTIL W_FINABSAIDANTBIS = "OUI" DO
   W_MOTIFABSAIDANTBIS=CLEABSAIDANTBIS[6,2]
   W_DATEDEBABSAIDANTBIS=CLEABSAIDANTBIS[8,5]
   READ ENR_ABSENCESAIDANTBIS FROM F.ABSENCESAIDANT,CLEABSAIDANTBIS ELSE ENR_ABSENCESAIDANTBIS = ""
   J=1
   LOOP
   UNTIL ENR_ABSENCESAIDANTBIS<17,J>="" OR ENR_ABSENCESAIDANTBIS<17,J>=CLEDETAILCALCUL[1,8] DO
      J=J+1
   REPEAT
   IF ENR_ABSENCESAIDANTBIS<17,J>=CLEDETAILCALCUL[1,8] THEN
      IF W_DATEREPRISEMITPS#"" THEN
         W_DATEREPRISE=W_DATEDEBABSAIDANTBIS
         RETURN		 
	  END ELSE
         LISTABSAIDANT2TER=""
   	     W_DATEDEBABSAIDANTTER=W_DATEDEBABSAIDANTBIS-1
         EXECUTE 'SSELECT ABSENCESAIDANT AVEC CodAbsAidant = "':W_CODEAIDANT:']" AND AVEC 2 = "':W_DATEDEBABSAIDANTTER:'" AND AVEC 2 < "':W_DATEDEBACTIVITEINT:'" AND AVEC NumMotifAidant < "07" PAR DebAbsAidant'
         EXECUTE 'SAUVE-LISTE LISTABSAIDANT2TER'
         EXECUTE "LISTE LISTABSAIDANT2TER" RETURNING W_MSGTER
         SELECT F.ABSENCESAIDANT TO LISTABSAIDANT2TER
         IF W_MSGTER<1>=209 THEN RETURN
         READNEXT CLEABSAIDANTTER FROM LISTABSAIDANT2TER ELSE RETURN
         W_MOTIFABSAIDANTTER=CLEABSAIDANTTER[6,2]
         W_DATEDEBABSAIDANTTER=CLEABSAIDANTTER[8,5]
         READ ENR_ABSENCESAIDANTTER FROM F.ABSENCESAIDANT,CLEABSAIDANTTER ELSE ENR_ABSENCESAIDANTTER = ""	  
         W_MOTIFABSAIDANTDSN=W_MOTIFABSAIDANTTER
         IF W_MOTIFABSAIDANTTER="02" AND ENR_CIVILAIDANT<1> # "MME" AND ENR_CIVILAIDANT<1> # "MLE" THEN W_MOTIFABSAIDANTDSN="03"	  
         IF W_MOTIFABSAIDANTTER="04" THEN W_MOTIFABSAIDANTDSN="06"
         IF W_MOTIFABSAIDANTTER="05" THEN W_MOTIFABSAIDANTDSN="04"
         IF W_MOTIFABSAIDANTTER="06" THEN W_MOTIFABSAIDANTDSN="05"	 
         IF W_PASSAGEAIDANT=1 THEN		 
            ENR_DSN<-1> = W_CHAINE:"001,'":W_MOTIFABSAIDANTDSN:"'"
         END ELSE
            ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"001,'":W_MOTIFABSAIDANTDSN:"'")
            W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1		 
		 END
         W_DATEDERNJOURTRAV=ENR_ABSENCESAIDANTTER<9>
         W_DATEDERNJOURTRAV=OCONV(W_DATEDERNJOURTRAV,"D4/")
         W_DATEDERNJOURTRAV=CONVERT("/","",W_DATEDERNJOURTRAV)
         IF W_PASSAGEAIDANT=1 THEN			 
            ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDERNJOURTRAV:"'"
         END ELSE
            ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"002,'":W_DATEDERNJOURTRAV:"'") 
            W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1		 
		 END
         W_DATEFINARRET=ENR_ABSENCESAIDANTBIS<2>
         W_DATEFINARRET=OCONV(W_DATEFINARRET,"D4/")
         W_DATEFINARRET=CONVERT("/","",W_DATEFINARRET)
         IF W_PASSAGEAIDANT=1 THEN			 
            ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINARRET:"'"
         END ELSE
            ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"003,'":W_DATEFINARRET:"'")
            W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1		 
		 END
	     IF ENR_ABSENCESAIDANT<16,I>="OUI" THEN
*	        ENR_DSN<-1> = W_CHAINE:"004,'01'"
            W_DATEDEBARRET=CLEABSAIDANTBIS[8,5]
            W_DATEDEBARRET=OCONV(W_DATEDEBARRET,"D4/")
            W_DATEDEBARRET=CONVERT("/","",W_DATEDEBARRET)
*           ENR_DSN<-1> = W_CHAINE:"005,'":W_DATEFINARRET:"'"		 
*           ENR_DSN<-1> = W_CHAINE:"006,'":W_DATEFINARRET:"'"
*           ENR_DSN<-1> = W_CHAINE:"007,'":ENR_ASSOCIATION<15>:"'"
*           ENR_DSN<-1> = W_CHAINE:"008,'":ENR_ASSOCIATION<16>:"'"		 
	     END ELSE
*	        ENR_DSN<-1> = W_CHAINE:"004,'02'"	  
	     END
		 IF ENR_ABSENCESAIDANTBIS<2>>=W_DATEDEBACTIVITEINT AND ENR_ABSENCESAIDANTBIS<2><=W_DATEFINACTIVITEINT THEN
            W_DATEREPRISE=ENR_ABSENCESAIDANTBIS<2>+1
            W_DATEREPRISE=OCONV(W_DATEREPRISE,"D4/")
            W_DATEREPRISE=CONVERT("/","",W_DATEREPRISE)
            IF W_PASSAGEAIDANT=1 THEN			
               ENR_DSN<-1> = W_CHAINE:"010,'":W_DATEREPRISE:"'"
            END ELSE
               ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"010,'":W_DATEREPRISE:"'")
               W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
            END
            IF W_PASSAGEAIDANT=1 THEN				
               ENR_DSN<-1> = W_CHAINE:"011,'01'"
            END ELSE
               ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"011,'01'")
               W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
            END			
		 END ELSE
            W_DATEREPRISE=W_DATEDEBABSAIDANTBIS
            W_DATEREPRISE=OCONV(W_DATEREPRISE,"D4/")
            W_DATEREPRISE=CONVERT("/","",W_DATEREPRISE)
            IF W_PASSAGEAIDANT=1 THEN			
               ENR_DSN<-1> = W_CHAINE:"010,'":W_DATEREPRISE:"'"
            END ELSE
               ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"010,'":W_DATEREPRISE:"'")
               W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
            END			
            IF W_PASSAGEAIDANT=1 THEN				
               ENR_DSN<-1> = W_CHAINE:"011,'02'"
            END ELSE
               ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"011,'02'")
               W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
            END			
         END
 	     EXECUTE 'EFFACER-LISTE LISTABSAIDANT2TER'
      END
   END  
REPEAT
EXECUTE 'EFFACER-LISTE LISTABSAIDANT2BIS'
RETURN


**********
* 210060 -> ARRET DE TRAVAIL (S21.G00.60) - SIGNALEMENT
**********
2100609
W_CHAINE = "S21.G00.60."
W_MOTIFABSAIDANT=W_REFABSENCE[6,2]
W_MOTIFABSAIDANTDSN=W_MOTIFABSAIDANT
IF W_MOTIFABSAIDANT="02" AND ENR_CIVILAIDANT<1> # "MME" AND ENR_CIVILAIDANT<1> # "MLE" THEN W_MOTIFABSAIDANTDSN="03"
* Didier 08/12/2015 : gestion autres motifs arrts de travail
IF W_MOTIFABSAIDANT="04" THEN W_MOTIFABSAIDANTDSN="06"
IF W_MOTIFABSAIDANT="05" THEN W_MOTIFABSAIDANTDSN="04"
IF W_MOTIFABSAIDANT="06" THEN W_MOTIFABSAIDANTDSN="05"	  
ENR_DSN<-1> = W_CHAINE:"001,'":W_MOTIFABSAIDANTDSN:"'"
W_DATEDERNJOURTRAV=ENR_ABSENCESAIDANT<9>
W_DATEDERNJOURTRAV=OCONV(W_DATEDERNJOURTRAV,"D4/")
W_DATEDERNJOURTRAV=CONVERT("/","",W_DATEDERNJOURTRAV)
ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDERNJOURTRAV:"'"
W_DATEFINARRET=ENR_ABSENCESAIDANT<2>
W_DATEFINARRET=OCONV(W_DATEFINARRET,"D4/")
W_DATEFINARRET=CONVERT("/","",W_DATEFINARRET)
ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINARRET:"'"
W_DATEREPRISE=""
W_REPRISEMITEMPS="NON"
IF W_SIGNALEMENT#"REPRISE" THEN
   IF ENR_ABSENCESAIDANT<16,L>="OUI" THEN
      ENR_DSN<-1> = W_CHAINE:"004,'01'"
      W_DATEDEBARRET=CLEABSAIDANT[8,5]
      W_DATEDEBARRET=OCONV(W_DATEDEBARRET,"D4/")
      W_DATEDEBARRET=CONVERT("/","",W_DATEDEBARRET)
      ENR_DSN<-1> = W_CHAINE:"005,'":W_DATEDEBARRET:"'"		 
      ENR_DSN<-1> = W_CHAINE:"006,'":W_DATEFINARRET:"'"
      ENR_DSN<-1> = W_CHAINE:"007,'":ENR_ASSOCIATION<15>:"'"
      ENR_DSN<-1> = W_CHAINE:"008,'":ENR_ASSOCIATION<16>:"'"		 
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"004,'02'"	  
   END
END ELSE
   READ ENR_ABSENCESAIDANTBIS FROM F.ABSENCESAIDANT,W_CODEAIDANT:"03":ENR_ABSENCESAIDANT<2>+1 THEN
      IF ENR_ABSENCESAIDANTBIS<10>="" THEN
         W_DATEREPRISE=ENR_ABSENCESAIDANT<2>+1
	     W_REPRISEMITEMPS="OUI"
      END ELSE
         W_DATEREPRISE=ENR_ABSENCESAIDANTBIS<10>
	     W_REPRISEMITEMPS="NON"	  
	  END
   END ELSE
      W_DATEREPRISE=ENR_ABSENCESAIDANT<10>   
   END
END
* Didier 16/12/2015 : si pas de date de reprise, ne pas la forcer  date fin + 1 et donc ne pas dclarer
IF W_DATEREPRISE="" THEN
   NULL
*   W_DATEREPRISE=ENR_ABSENCESAIDANT<2>+1
*   W_DATEREPRISE=OCONV(W_DATEREPRISE,"D4/")
*   W_DATEREPRISE=CONVERT("/","",W_DATEREPRISE)
*   ENR_DSN<-1> = W_CHAINE:"010,'":W_DATEREPRISE:"'"	
*   ENR_DSN<-1> = W_CHAINE:"011,'01'"			
END ELSE
   W_DATEREPRISE=OCONV(W_DATEREPRISE,"D4/")
   W_DATEREPRISE=CONVERT("/","",W_DATEREPRISE)
   ENR_DSN<-1> = W_CHAINE:"010,'":W_DATEREPRISE:"'"
   IF W_REPRISEMITEMPS="NON" THEN
      ENR_DSN<-1> = W_CHAINE:"011,'01'"  
   END ELSE
      ENR_DSN<-1> = W_CHAINE:"011,'02'"
   END	  
END
RETURN


**********
* 210062 -> FIN DU CONTRAT DE TRAVAIL (S21.G00.62)
**********
210062
W_CHAINE = "S21.G00.62."
W_DATEFINCONTRAT=CONVERT("/","",W_DATEFINCONTRAT)
IF W_PASSAGEAIDANT=1 THEN
   ENR_DSN<-1> = W_CHAINE:"001,'":W_DATEFINCONTRAT:"'"
END ELSE
   ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"001,'":W_DATEFINCONTRAT:"'")
   W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
END
W_MOTIFFINPERACT=""
BEGIN CASE
   CASE W_MOTIFFINCONTRAT="10" OR W_MOTIFFINCONTRAT="11" 
      W_MOTIFFINPERACT="011"
   CASE W_MOTIFFINCONTRAT="12" OR W_MOTIFFINCONTRAT="13"
      W_MOTIFFINPERACT="012"
   CASE W_MOTIFFINCONTRAT="20" OR W_MOTIFFINCONTRAT="21" OR W_MOTIFFINCONTRAT="24"
      W_MOTIFFINPERACT="020"
   CASE W_MOTIFFINCONTRAT="60"
      W_MOTIFFINPERACT="999"
   CASE 1
      W_MOTIFFINPERACT="0":W_MOTIFFINCONTRAT
END CASE
* Didier 23/09/2015 : Gestion stagiaire - DA15061
IF ENR_CONTRAT<13>="STG" THEN W_MOTIFFINPERACT="999"
IF W_PASSAGEAIDANT=1 THEN
   ENR_DSN<-1> = W_CHAINE:"002,'":W_MOTIFFINPERACT:"'"
END ELSE
   ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"002,'":W_MOTIFFINPERACT:"'")
   W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
END
W_DATENOTIF=ENR_CONTRAT<50>
IF W_DATENOTIF="" THEN
   W_DATENOTIF=W_DATEFINCONTRAT
END ELSE
   W_DATENOTIF=OCONV(W_DATENOTIF,"D4/")
   W_DATENOTIF=CONVERT("/","",W_DATENOTIF)
END
IF W_TYPETRAIT="2" THEN
   ENR_DSN<-1> = W_CHAINE:"003,'":W_DATENOTIF:"'"  
   IF W_MOTIFFINPERACT="043" THEN
      W_DATESIGNRUPTCONV=OCONV(ENR_CONTRAT<129>,"D4/")
      W_DATESIGNRUPTCONV=CONVERT("/","",W_DATESIGNRUPTCONV)
      ENR_DSN<-1> = W_CHAINE:"004,'":W_DATESIGNRUPTCONV:"'" 
   END
   ENR_DSN<-1> = W_CHAINE:"005,'":W_DATENOTIF:"'"
   W_DATEDERNJOURTRAV=OCONV(ENR_CONTRAT<51>,"D4/")
   W_DATEDERNJOURTRAV=CONVERT("/","",W_DATEDERNJOURTRAV)
   ENR_DSN<-1> = W_CHAINE:"006,'":W_DATEDERNJOURTRAV:"'"
   ENR_DSN<-1> = W_CHAINE:"008,'02'"
   * Didier 08/01/2016 : en commentaires car plus gr depuis phase 2
*   IF W_NBJOURSCPRESTANT>0 THEN
*      W_MISENFORME=W_NBJOURSCPRESTANT "R26"
*      ENR_DSN<-1> = W_CHAINE:"007,'":W_MISENFORME:"'"
*   END
END
* Didier 07/08/2015 : exclusion portabilit si dmission ou faute lourde ou - 1 mois d'anciennet
IF ENR_CONTRAT<29>#"" THEN
   IF W_MOTIFFINCONTRAT#"59" AND W_MOTIFFINCONTRAT#"88" THEN
      W_DUREECONTRATPORTABILITE=0
	  IF ENR_CONTRAT<97>#"" THEN
	     IF ENR_CONTRAT<97><ENR_CONTRAT<7> THEN
	        W_DUREECONTRATPORTABILITE=ENR_CONTRAT<8>-ENR_CONTRAT<97>+1
         END ELSE
	        W_DUREECONTRATPORTABILITE=ENR_CONTRAT<8>-ENR_CONTRAT<7>+1		 
		 END
      END ELSE
	     W_DUREECONTRATPORTABILITE=ENR_CONTRAT<8>-ENR_CONTRAT<7>+1
      END
	  IF W_DUREECONTRATPORTABILITE>=30 THEN
	     IF W_PASSAGEAIDANT=1 THEN
            ENR_DSN<-1> = W_CHAINE:"009,'01'"
         END ELSE
            ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"009,'01'") 
            W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1		 
		 END
      END
   END
END
RETURN


**********
* 210063 -> PREAVIS (S21.G00.63)
**********
210063
W_CHAINE = "S21.G00.63."
W_DATEPREAVIS=ENR_CONTRAT<55>
IF W_DATEPREAVIS#"" THEN
   ENR_DSN<-1> = W_CHAINE:"001,'01'"
   W_DATEPREAVIS=OCONV(W_DATEPREAVIS,"D4/")
   W_DATEPREAVIS=CONVERT("/","",W_DATEPREAVIS)
   ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEPREAVIS:"'"
   W_DATEPREAVIS=ENR_CONTRAT<56>
   W_DATEPREAVIS=OCONV(W_DATEPREAVIS,"D4/")
   W_DATEPREAVIS=CONVERT("/","",W_DATEPREAVIS)
   ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEPREAVIS:"'"
END
W_DATEPREAVIS=ENR_CONTRAT<53>
IF W_DATEPREAVIS#"" THEN
   ENR_DSN<-1> = W_CHAINE:"001,'02'"
   W_DATEPREAVIS=OCONV(W_DATEPREAVIS,"D4/")
   W_DATEPREAVIS=CONVERT("/","",W_DATEPREAVIS)
   ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEPREAVIS:"'"
   W_DATEPREAVIS=ENR_CONTRAT<54>
   W_DATEPREAVIS=OCONV(W_DATEPREAVIS,"D4/")
   W_DATEPREAVIS=CONVERT("/","",W_DATEPREAVIS)
   ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEPREAVIS:"'"
END
W_DATEPREAVIS=ENR_CONTRAT<130>
IF W_DATEPREAVIS#"" THEN
   ENR_DSN<-1> = W_CHAINE:"001,'03'"
   W_DATEPREAVIS=OCONV(W_DATEPREAVIS,"D4/")
   W_DATEPREAVIS=CONVERT("/","",W_DATEPREAVIS)
   ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEPREAVIS:"'"
   W_DATEPREAVIS=ENR_CONTRAT<131>
   W_DATEPREAVIS=OCONV(W_DATEPREAVIS,"D4/")
   W_DATEPREAVIS=CONVERT("/","",W_DATEPREAVIS)
   ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEPREAVIS:"'"
END
IF ENR_CONTRAT<53>="" AND ENR_CONTRAT<55>="" AND ENR_CONTRAT<130>="" THEN
   ENR_DSN<-1> = W_CHAINE:"001,'90'"
END
RETURN


**********
* 210065 -> AUTRE SUSPENSION TEMPORAIRE DE L'EXECUTION DU CONTRAT DE TRAVAIL (S21.G00.65)
**********
210065
W_CHAINE = "S21.G00.65."
LISTABSAIDANT2=""
EXECUTE 'SSELECT ABSENCESAIDANT AVEC CodAbsAidant = "':W_CODEAIDANT:']" AND AVEC DebAbsAidant <= "':W_DATEFINACTIVITEINT:'" AND AVEC 2 >= "':W_DATEDEBACTIVITEINT:'" AND AVEC NumMotifAidant = "13" OR = "12" OR = "22" OR = "23" PAR DebAbsAidant'
EXECUTE 'SAUVE-LISTE LISTABSAIDANT2'
EXECUTE "LISTE LISTABSAIDANT2" RETURNING W_MSG
SELECT F.ABSENCESAIDANT TO LISTABSAIDANT2
IF W_MSG<1>=209 THEN RETURN
W_FINABSAIDANT="NON"
LOOP
   READNEXT CLEABSAIDANT FROM LISTABSAIDANT2 ELSE W_FINABSAIDANT="OUI"
UNTIL W_FINABSAIDANT = "OUI" DO
   W_MOTIFABSAIDANT=CLEABSAIDANT[6,2]
   READ ENR_ABSENCESAIDANT FROM F.ABSENCESAIDANT,CLEABSAIDANT ELSE ENR_ABSENCESAIDANT = ""
*   IF W_MOTIFABSAIDANT="04" OR W_MOTIFABSAIDANT="05" OR W_MOTIFABSAIDANT="06" THEN
*      I=1
*      LOOP
*      UNTIL ENR_ABSENCESAIDANT<17,I>="" OR ENR_ABSENCESAIDANT<17,I>=CLEDETAILCALCUL[1,8] DO
*         I=I+1
*      REPEAT
*      IF ENR_ABSENCESAIDANT<17,I>=CLEDETAILCALCUL[1,8] THEN
*         BEGIN CASE
*	        CASE W_MOTIFABSAIDANT="04"
*               W_MOTIFABSAIDANT="110"
*	        CASE W_MOTIFABSAIDANT="05"
*		       W_MOTIFABSAIDANT="105"			
*	        CASE W_MOTIFABSAIDANT="06"
*		       W_MOTIFABSAIDANT="108"
*        END CASE 
*         ENR_DSN<-1> = W_CHAINE:"001,'":W_MOTIFABSAIDANT:"'"
*         W_DATEDEBARRET=CLEABSAIDANT[8,5]
*         W_DATEDEBARRET=OCONV(W_DATEDEBARRET,"D4/")
*         W_DATEDEBARRET=CONVERT("/","",W_DATEDEBARRET)
*         ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDEBARRET:"'"	
*         W_DATEFINARRET=ENR_ABSENCESAIDANT<2>
*         W_DATEFINARRET=OCONV(W_DATEFINARRET,"D4/")
*         W_DATEFINARRET=CONVERT("/","",W_DATEFINARRET)
*         ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINARRET:"'"
*      END
*   END ELSE
 	  W_MOTIFABSAIDANT="501"
      IF W_PASSAGEAIDANT=1 THEN	  
         ENR_DSN<-1> = W_CHAINE:"001,'":W_MOTIFABSAIDANT:"'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"001,'":W_MOTIFABSAIDANT:"'")
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1	  
	  END
      W_DATEDEBARRET=CLEABSAIDANT[8,5]
	  * Didier 18/05/2015 - Ticket 9277 : ajout test sur date dbut contrat
	  IF W_DATEDEBARRET < ENR_CONTRAT<7> THEN W_DATEDEBARRET=ENR_CONTRAT<7>
	  W_DATEDEBARRET=OCONV(W_DATEDEBARRET,"D4/")
      W_DATEDEBARRET=CONVERT("/","",W_DATEDEBARRET)
      IF W_PASSAGEAIDANT=1 THEN	  
         ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDEBARRET:"'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"002,'":W_DATEDEBARRET:"'")
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1	  
	  END
      W_DATEFINARRET=ENR_ABSENCESAIDANT<2>
	  * Didier 18/05/2015 - Ticket 9277 : ajout test sur date fin contrat
	  IF ENR_CONTRAT<8>#"" AND W_DATEFINARRET > ENR_CONTRAT<8> THEN W_DATEFINARRET = ENR_CONTRAT<8>
      W_DATEFINARRET=OCONV(W_DATEFINARRET,"D4/")
      W_DATEFINARRET=CONVERT("/","",W_DATEFINARRET)
      IF W_PASSAGEAIDANT=1 THEN	  
         ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINARRET:"'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"003,'":W_DATEFINARRET:"'")
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
      END	  
*   END
REPEAT
EXECUTE 'EFFACER-LISTE LISTABSAIDANT2'
RETURN


**********
* 210070 -> CONTRAT SOUSCRIT AUPRES D'UNE INSTITUTION DE PREVOYANCE (S21.G00.70)
**********
210070
W_TABORGPREV=""
I=1
IF W_PRESENCEPREVOYANCE="NON" THEN
   LOOP
   UNTIL W_PREVOYANCE<1,I>="" DO
      IF INDEX(W_TABORGPREV<1>,W_PREVOYANCE<4,I>,1) = 0 THEN
         W_TABORGPREV<1,-1>=W_PREVOYANCE<4,I>
         W_TABORGPREV<2,-1>=W_PREVOYANCE<5,I>
         W_TABORGPREV<3,-1>=W_PREVOYANCE<13,I>
         W_TABORGPREV<4,-1>=W_PREVOYANCE<14,I>
      END
      I=I+1
   REPEAT
END ELSE
   LOOP
   UNTIL W_PREVOYANCE<1,I>="" DO
      IF (W_PREVOYANCE<2,I>#"" AND W_PREVOYANCE<2,I>#0) OR (W_PREVOYANCE<3,I>#"" AND W_PREVOYANCE<3,I>#0) OR (W_PREVOYANCE<7,I>#"" AND W_PREVOYANCE<7,I>#0) THEN   
         IF INDEX(W_TABORGPREV<1>,W_PREVOYANCE<4,I>,1) = 0 THEN
            W_TABORGPREV<1,-1>=W_PREVOYANCE<4,I>
            W_TABORGPREV<2,-1>=W_PREVOYANCE<5,I>
            W_TABORGPREV<3,-1>=W_PREVOYANCE<13,I>
            W_TABORGPREV<4,-1>=W_PREVOYANCE<14,I>
         END
      END
      I=I+1
   REPEAT
END
IF W_TABORGPREV="" THEN RETURN
I=1
LOOP
UNTIL W_TABORGPREV<1,I>="" DO
   W_CHAINE = "S21.G00.70."
   IF W_PASSAGEAIDANT=1 THEN
      ENR_DSN<-1> = W_CHAINE:"001,'":W_TABORGPREV<2,I>:"'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"001,'":W_TABORGPREV<2,I>:"'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1   
   END
   IF W_PASSAGEAIDANT=1 THEN   
      ENR_DSN<-1> = W_CHAINE:"002,'":W_TABORGPREV<1,I>:"'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"002,'":W_TABORGPREV<1,I>:"'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1  
   END
   IF W_TABORGPREV<3,I>#"" THEN
      IF W_PASSAGEAIDANT=1 THEN
         ENR_DSN<-1> = W_CHAINE:"003,'":W_TABORGPREV<3,I>:"'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"003,'":W_TABORGPREV<3,I>:"'")  
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1	  
	  END
   END
   IF W_TABORGPREV<4,I>#"" THEN
      IF W_PASSAGEAIDANT=1 THEN
         ENR_DSN<-1> = W_CHAINE:"005,'":W_TABORGPREV<4,I>:"'"
      END ELSE
         ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"005,'":W_TABORGPREV<4,I>:"'")  
         W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1	  
	  END
   END
   I=I+1
REPEAT
RETURN


**********
* 210071 -> INSTITUTION DE RETRAITE COMPLEMENTAIRE (S21.G00.71)
**********
210071
W_CHAINE = "S21.G00.71."
W_TABORGRETCOMPL=""
W_PASSAGE=0
I=1
IF W_PRESENCERETRAITE="NON" THEN
   LOOP
   UNTIL W_RETRAITEGENE<1,I>="" DO
      IF W_RETRAITEGENE<8,I>="A" THEN
         IF INDEX(W_TABORGRETCOMPL<1>,W_RETRAITEGENE<4,I>,1) = 0 AND INDEX(W_TABORGRETCOMPL<2>,W_RETRAITEGENE<5,I>,1) = 0 THEN
            W_TABORGRETCOMPL<1,-1>=W_RETRAITEGENE<4,I>
            W_TABORGRETCOMPL<2,-1>=W_RETRAITEGENE<5,I>
			* Didier 21/05/2015 : phase 2
            *ENR_DSN<-1> = W_CHAINE:"001,'":W_RETRAITEGENE<4,I>:"'"
			IF W_PASSAGEAIDANT=1 THEN
               ENR_DSN<-1> = W_CHAINE:"002,'":W_RETRAITEGENE<4,I>:"'"
            END ELSE
               ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"002,'":W_RETRAITEGENE<4,I>:"'")
               W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
            END			
			W_PASSAGE=1
         END ELSE
            IF INDEX(W_TABORGRETCOMPL<1>,W_RETRAITEGENE<4,I>,1) # 0 AND INDEX(W_TABORGRETCOMPL<2>,W_RETRAITEGENE<5,I>,1) # 0 THEN
               NULL
            END ELSE
               W_TABORGRETCOMPL<1,-1>=W_RETRAITEGENE<4,I>
               W_TABORGRETCOMPL<2,-1>=W_RETRAITEGENE<5,I>
			   * Didier 21/05/2015 : phase 2
               *ENR_DSN<-1> = W_CHAINE:"001,'":W_RETRAITEGENE<4,I>:"'"
			   IF W_PASSAGEAIDANT=1 THEN			   
                  ENR_DSN<-1> = W_CHAINE:"002,'":W_RETRAITEGENE<4,I>:"'"
               END ELSE
                  ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"002,'":W_RETRAITEGENE<4,I>:"'")
                  W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1
               END			   
			   W_PASSAGE=1
            END
         END
      END
      I=I+1
   REPEAT
END ELSE
   LOOP
   UNTIL W_RETRAITEGENE<1,I>="" DO
      IF W_RETRAITEGENE<8,I>="A" THEN
         IF (W_RETRAITEGENE<2,I>#"" AND W_RETRAITEGENE<2,I>#0) OR (W_RETRAITEGENE<3,I>#"" AND W_RETRAITEGENE<3,I>#0) OR (W_RETRAITEGENE<7,I>#"" AND W_RETRAITEGENE<7,I>#0) THEN   
            IF INDEX(W_TABORGRETCOMPL<1>,W_RETRAITEGENE<4,I>,1) = 0 AND INDEX(W_TABORGRETCOMPL<2>,W_RETRAITEGENE<5,I>,1) = 0 THEN
               W_TABORGRETCOMPL<1,-1>=W_RETRAITEGENE<4,I>
               W_TABORGRETCOMPL<2,-1>=W_RETRAITEGENE<5,I>
			   * Didier 21/05/2015 : phase 2
               *ENR_DSN<-1> = W_CHAINE:"001,'":W_RETRAITEGENE<4,I>:"'"
			   IF W_PASSAGEAIDANT=1 THEN			   
			      ENR_DSN<-1> = W_CHAINE:"002,'":W_RETRAITEGENE<4,I>:"'"
               END ELSE
			      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"002,'":W_RETRAITEGENE<4,I>:"'")	   
                  W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1			   
			   END
			   W_PASSAGE=1
            END ELSE
               IF INDEX(W_TABORGRETCOMPL<1>,W_RETRAITEGENE<4,I>,1) # 0 AND INDEX(W_TABORGRETCOMPL<2>,W_RETRAITEGENE<5,I>,1) # 0 THEN
                  NULL
               END ELSE
                  W_TABORGRETCOMPL<1,-1>=W_RETRAITEGENE<4,I>
                  W_TABORGRETCOMPL<2,-1>=W_RETRAITEGENE<5,I>
				  * Didier 21/05/2015 : phase 2
                  *ENR_DSN<-1> = W_CHAINE:"001,'":W_RETRAITEGENE<4,I>:"'"
			      IF W_PASSAGEAIDANT=1 THEN				  
				     ENR_DSN<-1> = W_CHAINE:"002,'":W_RETRAITEGENE<4,I>:"'"
                  END ELSE
				     ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"002,'":W_RETRAITEGENE<4,I>:"'")		  
                     W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1				  
				  END
				  W_PASSAGE=1
               END
            END
         END
      END
      I=I+1
   REPEAT
END
IF W_PASSAGE=0 THEN
   * Didier 21/05/2015 : phase 2
   *ENR_DSN<-1> = W_CHAINE:"001,'90000'"
   IF W_PASSAGEAIDANT=1 THEN   
      ENR_DSN<-1> = W_CHAINE:"002,'90000'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"002,'90000'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1  
   END
END
IF W_CASCADRE="OUI" THEN
   IF W_PASSAGEAIDANT=1 THEN
      ENR_DSN<-1> = W_CHAINE:"002,'RETC'"
   END ELSE
      ENR_DSN = INSERT(ENR_DSN,W_DERNLIGNECONTRATAIDANT;W_CHAINE:"002,'RETC'")
      W_DERNLIGNECONTRATAIDANT=W_DERNLIGNECONTRATAIDANT+1   
   END
END
RETURN


**********
* 210078 -> BASE ASSUJETTIE (S21.G00.78)
**********
210078
W_CHAINE = "S21.G00.78."
ENR_DSN<-1> = W_CHAINE:"001,'02'"
* Didier 05/08/2015 : priode de rattachement  ne pas indiquer sauf si rgularisation (mais pas trait)
*ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
*ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
W_MISENFORME=W_URSSAFPLAF "R26"
ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
ENR_DSN<-1> = W_CHAINE:"001,'03'"
* Didier 05/08/2015 : priode de rattachement  ne pas indiquer sauf si rgularisation (mais pas trait)
*ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
*ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
W_MISENFORME=W_URSSAFTOT "R26"
ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
* Didier 23/09/2015 : Gestion stagiaire - DA15061
IF ENR_CONTRAT<13>="STG" THEN
   ENR_DSN<-1> = "S21.G00.81.001,'022'"
   ENR_DSN<-1> = "S21.G00.81.002,'":ENR_ETABLISSEMENT<20>:"'"
   W_MISENFORME=(W_MONTANTBRUT-W_URSSAFTOT) "R26"
   ENR_DSN<-1> = "S21.G00.81.003,'":W_MISENFORME:"'"
END
IF W_TABDSNURSSAFTOT#"" THEN
   W_TABSTRUCTURE=W_TABDSNURSSAFTOT
   GOSUB 210081
END
IF W_TABDSNURSSAFPLAF#"" THEN
   I=1
   LOOP
   UNTIL W_TABDSNURSSAFPLAF<1,I>="" DO
      J=1
	  LOOP
	  UNTIL W_TABDSNURSSAFTOT<1,J>="" OR W_TABDSNURSSAFTOT<1,J>=W_TABDSNURSSAFPLAF<1,I> DO
	     J=J+1
      REPEAT
	  IF W_TABDSNURSSAFTOT<1,J>=W_TABDSNURSSAFPLAF<1,I> THEN
         W_TABDSNURSSAFPLAF=DELETE(W_TABDSNURSSAFPLAF,1,I)
         W_TABDSNURSSAFPLAF=DELETE(W_TABDSNURSSAFPLAF,2,I)
         W_TABDSNURSSAFPLAF=DELETE(W_TABDSNURSSAFPLAF,3,I)	     
	  END ELSE
	     I=I+1
	  END
   REPEAT
   W_TABSTRUCTURE=W_TABDSNURSSAFPLAF
   GOSUB 210081
END
IF W_TABDSNAUTREURSSAF#"" THEN
   I=1
   LOOP
   UNTIL W_TABDSNAUTREURSSAF<1,I>="" DO
      IF W_TABDSNAUTREURSSAF<3,I>=0 THEN
         W_TABDSNAUTREURSSAF=DELETE(W_TABDSNAUTREURSSAF,1,I)
         W_TABDSNAUTREURSSAF=DELETE(W_TABDSNAUTREURSSAF,2,I)
         W_TABDSNAUTREURSSAF=DELETE(W_TABDSNAUTREURSSAF,3,I)
	  END ELSE
	     IF W_TABDSNAUTREURSSAF<1,I>="018" AND W_BASESMICREDUCFILLON=0 THEN
            W_TABDSNAUTREURSSAF=DELETE(W_TABDSNAUTREURSSAF,1,I)
            W_TABDSNAUTREURSSAF=DELETE(W_TABDSNAUTREURSSAF,2,I)
            W_TABDSNAUTREURSSAF=DELETE(W_TABDSNAUTREURSSAF,3,I)
		 END ELSE
            I=I+1
         END
      END
   REPEAT
END
IF W_TABDSNAUTREURSSAF#"" THEN
   W_TABSTRUCTURE=W_TABDSNAUTREURSSAF
   GOSUB 210081
END
W_CHAINE = "S21.G00.78."
ENR_DSN<-1> = W_CHAINE:"001,'04'"
* Didier 05/08/2015 : priode de rattachement  ne pas indiquer sauf si rgularisation (mais pas trait)
*ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
*ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
W_MISENFORME=W_CSG "R26"
ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
ENR_DSN<-1> = W_CHAINE:"001,'07'"
* Didier 05/08/2015 : priode de rattachement  ne pas indiquer sauf si rgularisation (mais pas trait)
*ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
*ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
W_MISENFORME=W_BASEASSEDIC "R26"
ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
ENR_DSN<-1> = W_CHAINE:"001,'10'"
* Didier 05/08/2015 : priode de rattachement  ne pas indiquer sauf si rgularisation (mais pas trait)
*ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
*ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
W_MISENFORME=W_MONTANTBRUT "R26"
ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
IF W_BASEFORFAITAIRE#0 THEN
   ENR_DSN<-1> = W_CHAINE:"001,'11'"
   * Didier 05/08/2015 : priode de rattachement  ne pas indiquer sauf si rgularisation (mais pas trait)
   *ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
   *ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
   W_MISENFORME=W_BASEFORFAITAIRE "R26"
   ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
   IF W_TABDSNURSSAFFORFAIT#"" THEN
      W_TABSTRUCTURE=W_TABDSNURSSAFFORFAIT
      GOSUB 210081
   END   
END
W_CHAINE = "S21.G00.78."
IF W_BASEFORFAITSOCIAL8#0 THEN
   ENR_DSN<-1> = W_CHAINE:"001,'13'"
   * Didier 05/08/2015 : priode de rattachement  ne pas indiquer sauf si rgularisation (mais pas trait)
   *ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
   *ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
   W_MISENFORME=W_BASEFORFAITSOCIAL8 "R26"
   ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
END
IF W_BASEFORFAITSOCIAL20#0 THEN
   ENR_DSN<-1> = W_CHAINE:"001,'14'"
   * Didier 05/08/2015 : priode de rattachement  ne pas indiquer sauf si rgularisation (mais pas trait)
   *ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
   *ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
   W_MISENFORME=W_BASEFORFAITSOCIAL20 "R26"
   ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
END
RETURN


**********
* 210079 -> COMPOSANT DE BASE ASSUJETTIE (S21.G00.79)
**********
210079
W_CHAINE = "S21.G00.79."
ENR_DSN<-1> = W_CHAINE:"001,'01'"
* Didier 05/08/2015 : priode de rattachement  ne pas indiquer sauf si rgularisation (mais pas trait)
*ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
*ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
W_MISENFORME=W_BASESMICREDUCFILLON "R26"
ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
RETURN


**********
* 210081 -> COTISATION INDIVIDUELLE (S21.G00.81)
**********
210081
W_CHAINE = "S21.G00.81."
I=1
LOOP
UNTIL W_TABSTRUCTURE<1,I>="" DO
   IF W_TABSTRUCTURE=W_TABDSNAUTREURSSAF THEN
      W_CHAINE = "S21.G00.78."
      ENR_DSN<-1> = W_CHAINE:"001,'02'"
	  * Didier 05/08/2015 : priode de rattachement  ne pas indiquer sauf si rgularisation (mais pas trait)
      *ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
      *ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
      W_MISENFORME=W_URSSAFPLAF "R26"
      ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
      ENR_DSN<-1> = W_CHAINE:"001,'03'"
	  * Didier 05/08/2015 : priode de rattachement  ne pas indiquer sauf si rgularisation (mais pas trait)
      *ENR_DSN<-1> = W_CHAINE:"002,'":W_DATEDEBUTPERIODEDSNMENSEXT[1,2]:W_DATEDEBUTPERIODEDSNMENSEXT[4,2]:W_DATEDEBUTPERIODEDSNMENSEXT[7,4]:"'"
      *ENR_DSN<-1> = W_CHAINE:"003,'":W_DATEFINPERIODEDSNEXT[1,2]:W_DATEFINPERIODEDSNEXT[4,2]:W_DATEFINPERIODEDSNEXT[7,4]:"'"
      W_MISENFORME=W_URSSAFTOT "R26"
      ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
   END	  
   IF W_TABSTRUCTURE<1,I>="018" THEN GOSUB 210079
   W_CHAINE = "S21.G00.81."
   ENR_DSN<-1> = W_CHAINE:"001,'":W_TABSTRUCTURE<1,I>:"'"
   ENR_DSN<-1> = W_CHAINE:"002,'":ENR_ETABLISSEMENT<20>:"'"
   W_MISENFORME=W_TABSTRUCTURE<2,I> "R26"
   ENR_DSN<-1> = W_CHAINE:"003,'":W_MISENFORME:"'"
   IF W_TABSTRUCTURE<1,I>="018" THEN
      W_MISENFORME=W_TABSTRUCTURE<3,I> "R26"
      ENR_DSN<-1> = W_CHAINE:"004,'":W_MISENFORME:"'"
   END
   IF W_TABSTRUCTURE<1,I>="226" THEN
      ENR_DSN<-1> = W_CHAINE:"005,'":W_CODEINSEECOMETABL:"'"
   END
   I=I+1
REPEAT
RETURN


**********
* 900090 -> TOTAL DE L'ENVOI (S90.G00.90)
**********
900090
W_CHAINE = "S90.G00.90."
ENR_DSN<-1> = W_CHAINE:"001,'":DCOUNT(ENR_DSN,CHAR(254))+2:"'"
ENR_DSN<-1> = W_CHAINE:"002,'":W_NBSTRUCTURES20:"'"
RETURN


**********
* 9999991 -> GESTION DES MISES EN FORME
**********
9999991
FOR Z = 1 TO LEN(W_TXTACONVERTIR)
   IF SEQ(W_TXTACONVERTIR[Z,1]) = 34 THEN
      IF Z=1 THEN
         W_TXTACONVERTIR = W_TXTACONVERTIR[2,999] 		 
      END ELSE
         W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
         Z=Z-1
      END
   END
   IF SEQ(W_TXTACONVERTIR[Z,1]) = 39 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:" ":W_TXTACONVERTIR[Z+1,999]
* 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]
                     Z=Z-1
                  END
                  IF SEQ(W_TXTACONVERTIR[Z,1]) = 32 AND SEQ(W_TXTACONVERTIR[Z-1,1]) = 45 THEN W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
                  IF SEQ(W_TXTACONVERTIR[Z,1]) = 45 AND SEQ(W_TXTACONVERTIR[Z+1,1]) = 32 THEN
                     W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z]:W_TXTACONVERTIR[Z+2,999]
                     Z=Z-1
                  END
               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]
         Z=Z-1
      END
      IF SEQ(W_TXTACONVERTIR[Z-1,1]) = 45 THEN 
         W_TXTACONVERTIR = W_TXTACONVERTIR[1,Z-1]:W_TXTACONVERTIR[Z+1,999]
         Z=Z-1
      END
   END
NEXT Z
* Vrifie que le premier et dernier caractres sont bien 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
RETURN


**********
* 9999992 -> MISE EN FORME MAIL
**********
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
         NULL
      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

