**********************************************************
*  gnration du fichier ARCHIVEBULL
*  Programme chaine  partir d'un projet VB
*  Vanessa
*  OCTOBRE 1999
*  AOUT    2000 MODIF REQUETE SELECTION ADM
**********************************************************

* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","CONTRAT" TO F.CONTRAT ELSE PRINT "OUVERTURE CONTRAT" ;* en lecture
OPEN "","ARCHIVEBULL" TO F.ARCHIVEBULL ELSE PRINT "OUVERTURE ARCHIVEBULL" ;* en criture
OPEN "","AIDANTSARCHIVEBULL" TO F.AIDANTSARCHIVEBULL ELSE PRINT "OUVERTURE AIDANTSARCHIVEBULL" ;* en criture
OPEN "","AIDESARCHIVEBULL" TO F.AIDESARCHIVEBULL ELSE PRINT "OUVERTURE AIDESARCHIVEBULL" ;* en criture
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en criture
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE PRINT "OUVERTURE DETAILCALCUL" ;* en lecture
OPEN "","CONVENTIONCOL" TO F.CONVENTIONCOL ELSE PRINT "OUVERTURE CONVENTIONCOL" ;* en lecture
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE PRINT "OUVERTURE ASSOCIATION" ;* en lecture
OPEN "","ETABLISSEMENT" TO F.ETABLISSEMENT ELSE PRINT "OUVERTURE ETABLISSEMENT" ;* en lecture
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "OUVERTURE CIVILAIDE" ;* en lecture
OPEN "","ELTSPARTEMP" TO F.ELTSPARTEMP ELSE PRINT "OUVERTURE ELTSPARTEMP" ;* en lecture
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "OUVERTURE CIVILAIDANT" ;* en lecture
OPEN "","CENTREURSSAF" TO F.CENTREURSSAF ELSE PRINT "OUVERTURE CENTREURSSAF" ;* en lecture
OPEN "","RUBSAISIE" TO F.RUBSAISIE ELSE PRINT "OUVERTURE RUBSAISIE" ;* en lecture
OPEN "","REGROUPBULL" TO F.REGROUPBULL ELSE PRINT "OUVERTURE REGROUPBULL" ;* en lecture
OPEN "","RUBCHARGE" TO F.RUBCHARGE ELSE PRINT "OUVERTURE RUBCHARGE" ;* en lecture
OPEN "","HISTORCUMUL" TO F.HISTORCUMUL ELSE PRINT "OUVERTURE HISTORCUMUL" ;* en lecture
OPEN "","CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE PRINT "OUVERTURE CONSTANTESPAIE" ;* en lecture
OPEN "","GRILLESCC" TO F.GRILLESCC ELSE PRINT "OUVERTURE GRILLESCC" ;* en lecture
OPEN "","REGROUPBULLSAISIE" TO F.REGROUPBULLSAISIE ELSE PRINT "OUVERTURE REGROUPBULLSAISIE" ;* en lecture
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE PRINT "OUVERTURE COMPTEUR" ;* en lecture
*********************************************************
* initialisation des variables

ENR_ARCHIVEBULL=""
W_Adresse=""
W_ChargesPat=0
W_ChargesSalPos=0
W_ChargesSalNeg=0
W_NbRegroup =0
W_TabRegroup=""
W_NewRegroupement=""
W_AncienRang=0
W_CumulBrut=0
W_CumulNet=0
W_CumulHres=0
W_RequeteDetailCalcul=""
W_RequeteEditBull=""
W_TabInsert=""
W_Base=0
W_NbRegroupSaisie=0
W_TabRegroupSaisie=""
W_NewRegroupementSaisie=""
W_TabInsertSaisie=""
W_NewRegroupementSI=""
W_TabInsertSI=""
W_Date=""
W_ValeurMens="FAUX"
*********************************************************
*  Rcupration des arguments

PROCREAD ARGUMENTS ELSE STOP
W_User=FIELD(ARGUMENTS," ",2)
W_TypeEdition=FIELD(ARGUMENTS," ",3)
W_DatePaiement=FIELD(ARGUMENTS," ",4)
IF W_TypeEdition="T" THEN
   W_Periode=FIELD(ARGUMENTS," ",5)
   W_CodAssoc=FIELD(ARGUMENTS," ",6)
   W_Act=FIELD(ARGUMENTS," ",7)
   W_Perso=FIELD(ARGUMENTS," ",8)
   W_Secteur=FIELD(ARGUMENTS," ",9)
   W_TriSect=FIELD(ARGUMENTS," ",10)
   W_EnvoiBull=FIELD(ARGUMENTS," ",11)
   W_TriCommune=FIELD(ARGUMENTS," ",12)
   W_TriResp=FIELD(ARGUMENTS," ",13)
END ELSE
   W_RequeteDetail=FIELD(ARGUMENTS," ",5)
   W_Periode=FIELD(ARGUMENTS," ",6)
END
*********************************************************
*  PROGRAMME PRINCIPAL
   
	* Modif vanessa 03/04/09-DA 9041-01
	READ ENR_COMPTEUR FROM F.COMPTEUR,"999" ELSE ENR_COMPTEUR=""
	IF ENR_COMPTEUR<28> # "" THEN
		W_ValeurMens="VRAI"
	END
	* Fin modif
	
   * regroupement des rubriques de saisie
   EXECUTE 'SSELECT REGROUPBULLSAISIE'

   W_Fin = "FAUX"
   i=1
     
   LOOP
      READNEXT W_CleRegroupSaisie ELSE W_Fin = "VRAI"
   WHILE W_Fin = "FAUX" DO
      READ ENR_REGROUPBULLSAISIE FROM F.REGROUPBULLSAISIE,W_CleRegroupSaisie ELSE ENR_REGROUPBULLSAISIE=""

      W_TabRegroupSaisie = REPLACE(W_TabRegroupSaisie,1,i;ENR_REGROUPBULLSAISIE<1>)
      W_TabRegroupSaisie = REPLACE(W_TabRegroupSaisie,2,i;W_CleRegroupSaisie)
      i=i+1

   REPEAT

   * regroupement des rubriques de charge
   EXECUTE 'SSELECT REGROUPBULL'

   W_Fin = "FAUX"
   i=1
     
   LOOP
      READNEXT W_CleRegroup ELSE W_Fin = "VRAI"
   WHILE W_Fin = "FAUX" DO
      READ ENR_REGROUPBULL FROM F.REGROUPBULL,W_CleRegroup ELSE ENR_REGROUPBULL=""

      W_TabRegroup = REPLACE(W_TabRegroup,1,i;ENR_REGROUPBULL<1>)
      W_TabRegroup = REPLACE(W_TabRegroup,2,i;W_CleRegroup)
      i=i+1

   REPEAT

   READ ENR_TEMPO FROM F.TEMPO,"ARCHIVEBULL":W_User ELSE ENR_TEMPO=""

   *  requete si slection totale
   IF W_TypeEdition="T" THEN

      W_Temp = 'SSELECT DETAILCALCUL AVEC 1 = "" AND AVEC CodAssoContratDetailCalcul = "':W_CodAssoc:'"'
      W_Temp2=' OR AVEC 1 = "" AND AVEC CodAssoContratDetailCalcul = "':W_CodAssoc:'"'
      W_Temp = W_Temp:' AND AVEC 0 = "':"[":W_Periode:'"'
      W_Temp2=W_Temp2:' AND AVEC 0 = "':"[":W_Periode:'"'

      * Secteur
      IF W_Secteur # "0" THEN
         W_CountSect = LEN(W_Secteur)
         IF W_Act = "M" AND W_EnvoiBull = "1" THEN
            W_Temp = W_Temp:' AND AVEC SecteurAideDetailCalcul = "':W_Secteur[1,3]:'"'
            W_Temp2=W_Temp2:' AND AVEC SecteurAideDetailCalcul = "':W_Secteur[1,3]:'"'
   	 END ELSE
            W_Temp = W_Temp:' AND AVEC SecteurAidantDetailCalcul = "':W_Secteur[1,3]:'"'
            W_Temp2=W_Temp2:' AND AVEC SecteurAidantDetailCalcul = "':W_Secteur[1,3]:'"'
         END
         IF W_CountSect > 2 THEN
            i=5
            LOOP 
            UNTIL i >= W_CountSect DO
               W_Temp = W_Temp:' OR = "':W_Secteur[i,3]:'"'
               W_Temp2=W_Temp2:' OR = "':W_Secteur[i,3]:'"'
               i=i+4
            REPEAT
         END
      END

      *  Type de personnel
      IF W_Perso # "T" THEN
         W_Temp = W_Temp:' AND AVEC TypePersonnel = "':W_Perso:'"'
         * activit
         IF W_Perso = "P" THEN
            W_Temp = W_Temp:' AND AVEC TypeActivite = "':W_Act:'"'
         END
      END ELSE
         IF W_Act = "M" THEN
            W_Temp = W_Temp:' AND AVEC ConvColContratDetailCalcul = "':"02":'"'
         END ELSE

            W_Temp = W_Temp:' AND AVEC ConvColContratDetailCalcul # "':"02":'"'
            W_Temp2 = W_Temp2:' AND AVEC ConvColContratDetailCalcul # "':"02":'"'
	    W_Temp = W_Temp:' AND AVEC TypeActivite = "':W_Act:'"'
	    W_Temp2 = W_Temp2:' AND AVEC TypeActivite # "':"S":'"'
	    W_Temp2 = W_Temp2:' AND AVEC TypePersonnel = "':"A":'"'

	    IF W_Act = "P" THEN
		W_Temp=W_Temp:W_Temp2
            END
	   
         END
      END

      *  Tri par secteur
 
      IF W_Act = "M" THEN
         IF W_TriResp = "O" THEN
            W_Temp = W_Temp:' PAR CodeRespDetailCalcul'
         END

         IF W_EnvoiBull = "1" THEN
            *  Tri par secteur
            IF W_TriSect = "O" THEN
               W_Temp = W_Temp:' PAR SecteurAideDetailCalcul'
            END
            IF W_TriCommune = "O" THEN
               W_Temp = W_Temp:' PAR CommuneAideDetailCalcul'
            END
            W_Temp = W_Temp:' PAR NomAideDetailCalcul PAR PrenomAideDetailCalcul PAR NomAidantDetailCalcul PAR PrenomAidantDetailCalcul'
         END ELSE
            IF W_TriSect = "O" THEN
               W_Temp = W_Temp:' PAR SecteurAidantDetailCalcul'
            END
            IF W_TriCommune = "O" THEN
               W_Temp = W_Temp:' PAR CommuneAidantDetailCalcul'
            END
            W_Temp = W_Temp:' PAR NomAidantDetailCalcul PAR PrenomAidantDetailCalcul PAR NomAideDetailCalcul PAR PrenomAideDetailCalcul'
         END
      END ELSE
         IF W_TriSect = "O" THEN
            W_Temp = W_Temp:' PAR SecteurAidantDetailCalcul'
         END 
         IF W_TriCommune = "O" THEN
            W_Temp = W_Temp:' PAR CommuneAidantDetailCalcul'
         END 
         W_Temp = W_Temp:' PAR NomAidantDetailCalcul PAR PrenomAidantDetailCalcul' 
      END

      EXECUTE W_Temp
      EXECUTE 'SAUVE-LISTE W_RequeteEditBull'
      EXECUTE "LISTE W_RequeteEditBull" RETURNING MSGCODE

      IF MSGCODE<1>=209 THEN
         STOP
      END ELSE
         SELECT F.DETAILCALCUL TO W_RequeteEditBull

         W_End = "FAUX"
         i=1
     
         LOOP
            READNEXT W_CleBull FROM W_RequeteEditBull ELSE W_End = "VRAI"
         WHILE W_End = "FAUX" DO
 
            READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,W_CleBull ELSE ENR_DETAILCALCUL=""
 
            ENR_DETAILCALCUL = REPLACE(ENR_DETAILCALCUL,1;"E")
            ENR_DETAILCALCUL = REPLACE(ENR_DETAILCALCUL,48;DATE())
            WRITE ENR_DETAILCALCUL ON F.DETAILCALCUL,W_CleBull
            GOSUB 10
       
            ENR_TEMPO=REPLACE(ENR_TEMPO,1,i;W_CleArcBull)
            i=i+1
         REPEAT
      END

   END ELSE

      * compte RequeteDetail
      W_CountRequete = LEN(W_RequeteDetail)
      IF W_CountRequete > 2 THEN
         W_CountBull = 1
	   W_RequeteDetailCalcul<1>=W_RequeteDetail[1,14]
         i=16
         j=2
         LOOP 
         UNTIL i >= W_CountRequete DO
	      W_RequeteDetailCalcul<j>=W_RequeteDetail[i,14]
            j=j+1
            i=i+15
            W_CountBull = W_CountBull+1
         REPEAT
      END

      i=1
  
      FOR j = 1 TO W_CountBull

         READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,W_RequeteDetailCalcul<j> ELSE ENR_DETAILCALCUL=""

         W_CleBull=W_RequeteDetailCalcul<j>

         ENR_DETAILCALCUL = REPLACE(ENR_DETAILCALCUL,1;"E")
         ENR_DETAILCALCUL = REPLACE(ENR_DETAILCALCUL,48;DATE())
         WRITE ENR_DETAILCALCUL ON F.DETAILCALCUL,W_CleBull
         GOSUB 10
       
         ENR_TEMPO=REPLACE(ENR_TEMPO,1,i;W_CleArcBull)
         i=i+1
      NEXT j
   END

   WRITE ENR_TEMPO ON F.TEMPO,"ARCHIVEBULL":W_User

STOP

*********************************************************
*  MAJ du fichier ARCHIVEBULL
10

   ENR_ARCHIVEBULL = ""
   W_ChargesPat=0
   W_ChargesSalPos=0
   W_ChargesSalNeg=0
   W_NbRegroup=0
   W_NewRegroupement=""
   W_CumulBrut=0
   W_CumulNet=0
   W_CumulHres=0
   W_NbRegroupSaisie=0
   W_NewRegroupementSaisie=""
   W_NewRegroupementSI=""

   * entete du bulletin
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,1;"#1")

   READ ENR_CONTRAT FROM F.CONTRAT,W_CleBull[1,8] ELSE ENR_CONTRAT=""

   W_DebPeriode = ICONV("01/":W_Periode[5,2]:"/":W_Periode[1,4],"D4/")
   W_Mois = W_Periode[5,2]+1
   W_An = W_Periode[1,4]
   IF W_Mois = "13" THEN
      W_Mois="01"
      W_An=W_An+1
   END
   W_FinPeriode = ICONV("01/":W_Mois:"/":W_An,"D4/")-1

   IF INT(ENR_CONTRAT<7>) > INT(W_DebPeriode) THEN
      IF ENR_CONTRAT<8> # "" THEN
         IF INT(ENR_CONTRAT<8>) < INT(W_FinPeriode) THEN
            W_Temp = "PERIODE DU ":OCONV(ENR_CONTRAT<7>,"D4/"): " AU ":OCONV(ENR_CONTRAT<8>,"D4/")
         END ELSE
            W_Temp = "PERIODE DU ":OCONV(ENR_CONTRAT<7>,"D4/"): " AU ":OCONV(W_FinPeriode,"D4/")
         END
      END ELSE
         W_Temp = "PERIODE DU ":OCONV(ENR_CONTRAT<7>,"D4/"): " AU ":OCONV(W_FinPeriode,"D4/")
      END
   END ELSE
      IF ENR_CONTRAT<8> # "" THEN
         IF INT(ENR_CONTRAT<8>) < INT(W_FinPeriode) THEN
            W_Temp = "PERIODE DU ":OCONV(W_DebPeriode,"D4/"): " AU ":OCONV(ENR_CONTRAT<8>,"D4/")
         END ELSE
            W_Temp = "PERIODE DU ":OCONV(W_DebPeriode,"D4/"): " AU ":OCONV(W_FinPeriode,"D4/")
         END
      END ELSE
         W_Temp = "PERIODE DU ":OCONV(W_DebPeriode,"D4/"): " AU ":OCONV(W_FinPeriode,"D4/")
      END
   END
   ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,2;W_Temp)

   BEGIN CASE
      CASE ENR_CONTRAT<27>="1" 
         W_ModePaiement = "VIREMENT"
      CASE ENR_CONTRAT<27>="2" 
         W_ModePaiement = "CHEQUE"
      CASE ENR_CONTRAT<27>="3" 
         W_ModePaiement = "ESPECES"
   END CASE

   IF ENR_CONTRAT<28> = "0" AND ENR_CONTRAT<1> = "02" THEN 
		*Anthony DA11109-01 20/10/11
		IF W_DatePaiement = "" THEN
			ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,3;"REGLE PAR          LE") 
		END ELSE
			ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,3;"REGLE PAR          LE ":OCONV(W_DatePaiement,"D4/"))
		END
		*Fin Anthony
   END ELSE
      ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,3;"REGLE PAR ":W_ModePaiement:" LE ":OCONV(W_DatePaiement,"D4/"))
   END

**********************************************************************************************
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,4;"#2")

   READ ENR_CONVENTIONCOL FROM F.CONVENTIONCOL,ENR_CONTRAT<1> ELSE ENR_CONVENTIONCOL=""
   READ ENR_ASSOCIATION FROM F.ASSOCIATION,ENR_CONTRAT<2> ELSE ENR_ASSOCIATION=""
   READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CleBull[1,5] ELSE ENR_CIVILAIDANT=""

   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,5;"C.C.N. : ":ENR_CONVENTIONCOL<14>)

**********************************************************************************************
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,6;"#3")

   IF ENR_CONTRAT<1> # "02" THEN
      W_Employeur = ENR_CONTRAT<2>
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,7,1;ENR_ASSOCIATION<1>)
      W_Adresse=""
      IF ENR_ASSOCIATION<3> # "" THEN
         W_Adresse=ENR_ASSOCIATION<3>:" "
      END
      IF ENR_ASSOCIATION<4> # "" THEN
         W_Adresse=W_Adresse:ENR_ASSOCIATION<4>:" "
      END
      IF ENR_ASSOCIATION<5> # "" THEN
         W_Adresse=W_Adresse:ENR_ASSOCIATION<5>:" "
      END
      IF ENR_ASSOCIATION<6> # "" THEN
         W_Adresse=W_Adresse:ENR_ASSOCIATION<6>
      END
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,8,1;W_Adresse)
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,9,1;ENR_ASSOCIATION<7>)
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,10,1;ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>)
      
      READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,ENR_CONTRAT<3> ELSE ENR_ETABLISSEMENT=""
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,7,2;"SIRET        : ":ENR_ETABLISSEMENT<14>)
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,8,2;"APE          : ":ENR_ETABLISSEMENT<15>)
      IF LEN(ENR_ETABLISSEMENT<23>) <= 23 THEN
		*Modif flavien 27/12/2012 DA12119
		IF ENR_ETABLISSEMENT<33> = "M" THEN
			ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,9,2;"MSA          : ":ENR_ETABLISSEMENT<23>)
		END ELSE
			ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,9,2;"URSSAF       : ":ENR_ETABLISSEMENT<23>)
		END
	END ELSE
		*Modif flavien 27/12/2012 DA12119
		IF ENR_ETABLISSEMENT<33> = "M" THEN
         		ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,9,2;"MSA          : ":ENR_ETABLISSEMENT<23>[1,23])
		END ELSE
         		ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,9,2;"URSSAF       : ":ENR_ETABLISSEMENT<23>[1,23])
		END
      END
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,10,2;"N. EMPLOYEUR : ":ENR_ETABLISSEMENT<20>)

   END ELSE
      READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE=""
      W_Employeur = ENR_CONTRAT<3>

      IF ENR_CONVENTIONCOL<16> = 0 THEN
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,7,1;ENR_CIVILAIDE<1>:" ":ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>)
         W_Adresse=""
         IF ENR_CIVILAIDE<5> # "" THEN
            W_Adresse=ENR_CIVILAIDE<5>:" "
         END
         IF ENR_CIVILAIDE<6> # "" THEN
            W_Adresse=W_Adresse:ENR_CIVILAIDE<6>:" "
         END
         IF ENR_CIVILAIDE<7> # "" THEN
            W_Adresse=W_Adresse:ENR_CIVILAIDE<7>:" "
         END
         IF ENR_CIVILAIDE<8> # "" THEN
            W_Adresse=W_Adresse:ENR_CIVILAIDE<8>
         END
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,8,1;W_Adresse)
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,9,1;ENR_CIVILAIDE<9>)
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,10,1;ENR_CIVILAIDE<10>:" ":ENR_CIVILAIDE<11>)
      
         READ ENR_ELTSPARTEMP FROM F.ELTSPARTEMP,ENR_CONTRAT<3> ELSE ENR_ELTSPARTEMP=""
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,7,2;"SIRET        : ":ENR_ELTSPARTEMP<4>)
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,8,2;"APE          : 9700Z")

         READ ENR_CENTREURSSAF FROM F.CENTREURSSAF,ENR_ELTSPARTEMP<1> ELSE ENR_CENTREURSSAF=""
         IF LEN(ENR_CENTREURSSAF<1>) <= 23 THEN
            ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,9,2;"URSSAF       : ":ENR_CENTREURSSAF<1>)
         END ELSE
            ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,9,2;"URSSAF       : ":ENR_CENTREURSSAF<1>[1,23])
         END
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,10,2;"N. EMPLOYEUR : ":ENR_ELTSPARTEMP<2>)
      END ELSE
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,7,1;ENR_CIVILAIDANT<1>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>)
         W_Adresse=""
         IF ENR_CIVILAIDANT<5> # "" THEN
            W_Adresse=ENR_CIVILAIDANT<5>:" "
         END
         IF ENR_CIVILAIDANT<6> # "" THEN
            W_Adresse=W_Adresse:ENR_CIVILAIDANT<6>:" "
         END
         IF ENR_CIVILAIDANT<7> # "" THEN
            W_Adresse=W_Adresse:ENR_CIVILAIDANT<7>:" "
         END
         IF ENR_CIVILAIDANT<8> # "" THEN
            W_Adresse=W_Adresse:ENR_CIVILAIDANT<8>
         END
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,8,1;W_Adresse)
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,9,1;ENR_CIVILAIDANT<9>)
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,10,1;ENR_CIVILAIDANT<10>:" ":ENR_CIVILAIDANT<11>)
      
         READ ENR_ELTSPARTEMP FROM F.ELTSPARTEMP,ENR_CONTRAT<3> ELSE ENR_ELTSPARTEMP=""
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,7,2;"SIRET        : ":ENR_ELTSPARTEMP<4>)
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,8,2;"APE          : 9700Z")

         READ ENR_CENTREURSSAF FROM F.CENTREURSSAF,ENR_ELTSPARTEMP<1> ELSE ENR_CENTREURSSAF=""
         IF LEN(ENR_CENTREURSSAF<1>) <= 23 THEN
            ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,9,2;"URSSAF       : ":ENR_CENTREURSSAF<1>)
         END ELSE
            ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,9,2;"URSSAF       : ":ENR_CENTREURSSAF<1>[1,23])
         END
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,10,2;"N. EMPLOYEUR : ":ENR_ELTSPARTEMP<2>)

      END
   END

**********************************************************************************************
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,11;"#4")

   * recherche l'avenant actif
   k = DCOUNT(ENR_CONTRAT<15>,CHAR(253))
   LOOP
   WHILE INT(ENR_CONTRAT<15,k>) > INT(W_FinPeriode) DO
      k=k-1
   REPEAT

   IF ENR_CONTRAT<21,k> # "" THEN

      IF W_Periode <= "200606" AND W_Periode >= "200307" THEN
         W_DEPARTGRILLE=ENR_CONTRAT<21,k>
      END ELSE
         W_DEPARTGRILLE=ENR_CONTRAT<21,k>+INT(ENR_CONTRAT<70>/100)
      END
      
	  * Modification mikael le 03/09/2015 suite FM1507 mise en commentaire de ce qui suit passage de Nombre d'anne en date anciennet
	  
	  *W_DEPARTGRILLE=OCONV(W_DEPARTGRILLE,"D4 ")
      *W_AncMoins1="FAUX"
      *IF W_DEPARTGRILLE[4,2] = "07" AND W_DEPARTGRILLE[1,5] # "01 07" THEN
      *   W_AncMoins1="VRAI"
      *END
      *W_DEPARTGRILLE=W_DEPARTGRILLE[7,4]:W_DEPARTGRILLE[4,2]

      *IF ENR_CONTRAT<1>="01" OR ENR_CONTRAT<1>="03" OR ENR_CONTRAT<1>="06" THEN
      *   IF W_Periode < "200607" AND W_Periode # "200306" THEN
      *      IF W_Periode[5,2] < "7" THEN
      *         W_PeriodeBis=W_Periode[1,4]-1:"07"
      *         W_NBANNEES=W_PeriodeBis-W_DEPARTGRILLE
      *      END ELSE
      *         W_PeriodeBis=W_Periode[1,4]:"07"
      *         W_NBANNEES=W_PeriodeBis-W_DEPARTGRILLE
      *      END
      *      IF W_AncMoins1="VRAI" THEN
      *         W_NBANNEES=W_NBANNEES-1
      *      END
      *   END ELSE
      *      W_NBANNEES=W_Periode-W_DEPARTGRILLE
      *   END
      *END ELSE
     *    W_NBANNEES=W_Periode-W_DEPARTGRILLE
     * END

      *W_Anciennete =INT(W_NBANNEES/100)
		
	  W_Anciennete=OCONV(W_DEPARTGRILLE,"D4/")
	  * fin modification mikael le 03/09/2015
	  
   END ELSE
      
	  * Modification mikael le 03/09/2015 suite FM1507 mise en commentaire de ce qui suit passage de Nombre d'anne en date anciennet
	  *W_Anciennete = INT((INT(W_FinPeriode) - INT(ENR_CONTRAT<7>+INT(ENR_CONTRAT<70>/100)) + 1) / 365)
	  W_Anciennete = INT(ENR_CONTRAT<7>)+INT(ENR_CONTRAT<70>/100)
	  W_Anciennete=OCONV(W_Anciennete,"D4/")
	   * fin modification mikael le 03/09/2015
   END
	
	* Modification mikael le 03/09/2015 suite FM1507 mise en commentaire de ce qui suit passage de Nombre d'anne en date anciennet
   *IF W_Anciennete<0 THEN W_Anciennete=0


   *IF W_Anciennete # 0 THEN
  *    IF W_Anciennete > 1 THEN
  *       W_Anciennete = W_Anciennete:" ans"
  *    END ELSE
   *      IF W_Anciennete < 0 THEN
   *         W_Anciennete = 0
   *      END ELSE
   *         W_Anciennete = W_Anciennete:" an"
   *      END
   *   END
   *END
 * fin modification mikael le 03/09/2015
 
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,12,1;"MATRICULE     : ":W_CleBull[1,5])
   W_Temp=""
   W_Long=LEN(ENR_CIVILAIDANT<17>)
   FOR l = 1 TO W_Long
      W_Car = ENR_CIVILAIDANT<17>[l,1]
      IF W_Car # " " THEN
         W_Temp = W_Temp:W_Car
      END
   NEXT l
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,13,1;"NUMERO S.S.   : ":W_Temp:"/":ENR_CIVILAIDANT<18>)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,14,1;"QUALIFICATION : ":ENR_CONTRAT<16,k>)
   IF ENR_CONTRAT<20,k> # "" THEN
      READ ENR_GRILLESCC FROM F.GRILLESCC,ENR_CONTRAT<20,k> ELSE ENR_GRILLESCC=""
      IF ENR_GRILLESCC<5> = "M" THEN
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,15,1;"COEFF/NIVEAU  : ":ENR_GRILLESCC<1>)
      END ELSE
         IF ENR_CONTRAT<1>="02" THEN
            ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,15,1;"COEFF/NIVEAU  : ":ENR_CONTRAT<22,k>)
         END ELSE
			** modif ludo **
			IF ENR_GRILLESCC<7> # "" THEN
				ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,15,1;"COEFF/NIVEAU  : Cat. ":ENR_GRILLESCC<7>:" - ":ENR_CONTRAT<22,k>/1000)
			END ELSE
				IF ENR_CONTRAT<108,k> # "" THEN
					ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,15,1;"COEFF/NIVEAU  : Cat. ":ENR_CONTRAT<108,k>:" - ":ENR_CONTRAT<22,k>/1000)
				END ELSE
					ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,15,1;"COEFF/NIVEAU  : ":ENR_CONTRAT<22,k>/1000)
				END
			END
            **ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,15,1;"COEFF/NIVEAU  : ":ENR_CONTRAT<22,k>/1000)
			** fin modif ludo **
         END
      END
   END ELSE
      IF ENR_CONTRAT<1>="02" THEN
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,15,1;"COEFF/NIVEAU  : ":ENR_CONTRAT<22,k>)
      END ELSE
		** modif ludo **
		IF ENR_CONTRAT<108,k> # "" THEN
			ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,15,1;"COEFF/NIVEAU  : Cat. ":ENR_CONTRAT<108,k>:" - ":ENR_CONTRAT<22,k>/1000)
		END ELSE
			ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,15,1;"COEFF/NIVEAU  : ":ENR_CONTRAT<22,k>/1000)
		END
        ** ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,15,1;"COEFF/NIVEAU  : ":ENR_CONTRAT<22,k>/1000)
														  
		** fin modif ludo **
	  END
   END
   
   *Modif Clment DA13024
   IF ENR_CONTRAT<1> = "07" OR ENR_CONTRAT<1> = "08" OR ENR_CONTRAT<1> = "09" AND ENR_CONTRAT<126,k> <> "" THEN
		ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,15,1;"ECHELLE ":ENR_CONTRAT<136,k>:" / ": ENR_CONTRAT<135,k>)
   END

   IF ENR_CONVENTIONCOL<27>=0 OR ENR_CONVENTIONCOL<27>="" THEN
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,16,1;"DATE ANCIEN.  : ":W_Anciennete)
   END ELSE
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,16,1;"")
   END
   
   *Modif Clment DA13024
   IF ENR_CONTRAT<1> = "07" OR ENR_CONTRAT<1> = "08" OR ENR_CONTRAT<1> = "09" AND ENR_CONTRAT<126,k> <> "" THEN
		ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,16,1;"ECHELON ":ENR_CONTRAT<124,k>:" / IND.BRUT ": ENR_CONTRAT<126,k>:" / IND.MAJ ":ENR_CONTRAT<127,k> )
   END

   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,17,1;"DATE D'ENTREE : ":OCONV(ENR_CONTRAT<7>,"D4/"))

   IF ENR_CONVENTIONCOL<16> = 0 THEN

      IF ENR_CONTRAT<1>="02" THEN
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,12,2;"SALARIE : ")
      END ELSE
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,12,2;"")
      END
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,13,2;ENR_CIVILAIDANT<1>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>)
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,14,2;"")
      W_Adresse=""
      IF ENR_CIVILAIDANT<5> # "" THEN
         W_Adresse=ENR_CIVILAIDANT<5>:" "
      END
      IF ENR_CIVILAIDANT<6> # "" THEN
         W_Adresse=W_Adresse:ENR_CIVILAIDANT<6>:" "
      END
      IF ENR_CIVILAIDANT<7> # "" THEN
         W_Adresse=W_Adresse:ENR_CIVILAIDANT<7>:" "
      END
      IF ENR_CIVILAIDANT<8> # "" THEN
         W_Adresse=W_Adresse:ENR_CIVILAIDANT<8>
      END
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,15,2;W_Adresse)
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,16,2;ENR_CIVILAIDANT<9>)
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,17,2;ENR_CIVILAIDANT<10>:" ":ENR_CIVILAIDANT<11>)
   
   END ELSE

      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,12,2;"EMPLOYEUR : ":ENR_CONTRAT<3>)
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,13,2;ENR_CIVILAIDE<1>:" ":ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>)
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,14,2;"")
      W_Adresse=""
      IF ENR_CIVILAIDE<5> # "" THEN
         W_Adresse=ENR_CIVILAIDE<5>:" "
      END
      IF ENR_CIVILAIDE<6> # "" THEN
         W_Adresse=W_Adresse:ENR_CIVILAIDE<6>:" "
      END
      IF ENR_CIVILAIDE<7> # "" THEN
         W_Adresse=W_Adresse:ENR_CIVILAIDE<7>:" "
      END
      IF ENR_CIVILAIDE<8> # "" THEN
         W_Adresse=W_Adresse:ENR_CIVILAIDE<8>
      END
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,15,2;W_Adresse)
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,16,2;ENR_CIVILAIDE<9>)
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,17,2;ENR_CIVILAIDE<10>:" ":ENR_CIVILAIDE<11>)
   END

**********************************************************************************************
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,18;"#5")

   W_Rang = 19

	* MODIF vanessa 03/04/09 - DA 9041-01
	IF ENR_CONTRAT<6>="P" AND ENR_CONTRAT<5>="M" AND W_ValeurMens="VRAI" THEN
		ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,1;ENR_COMPTEUR<28>)
		BEGIN CASE
			CASE ENR_CONTRAT<25,k> = "1"
				W_Valeur = INT((ENR_CONTRAT<24,k>*52/12) + (1/2))
			CASE ENR_CONTRAT<25,k> = "2"
				W_Valeur = INT((ENR_CONTRAT<24,k>*27/12) + (1/2))
			CASE ENR_CONTRAT<25,k> = "3"
				W_Valeur = ENR_CONTRAT<24,k>
			CASE ENR_CONTRAT<25,k> = "4"
				W_Valeur = INT((ENR_CONTRAT<24,k>/12) + (1/2))
		END CASE	
		ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,2;W_Valeur)
		ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,3;"")
		ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,4;"")
		ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,5;"")
		ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,6;"")
		ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,7;"")
        W_Rang = W_Rang + 2
	END
	* fin modif
	
   * regroupement 
   GOSUB 30

   k=1

   LOOP
   WHILE W_NewRegroupementSaisie<k> # "" DO
      IF W_NewRegroupementSaisie<k,1> # "" THEN
	   READ ENR_RUBSAISIE FROM F.RUBSAISIE,W_NewRegroupementSaisie<k,1> ELSE ENR_RUBSAISIE=""
	   IF ENR_RUBSAISIE # "" THEN
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,1;ENR_RUBSAISIE<1>)
         END ELSE 
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,1;W_NewRegroupementSaisie<k,1>)
	   END
         IF W_NewRegroupementSaisie<k,2> = "" THEN
            W_NewRegroupementSaisie<k,2> = 0
         END
         ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,2;W_NewRegroupementSaisie<k,3>)
         ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,3;"")
         ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,4;"")
         ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,5;W_NewRegroupementSaisie<k,2>/10)
         IF W_NewRegroupementSaisie<k,4> >= 0 THEN
            IF W_NewRegroupementSaisie<k,4> # 0 THEN
               ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,6;W_NewRegroupementSaisie<k,4>)
               ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,7;"")
            END
	   END ELSE
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,6;"")
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,7;W_NewRegroupementSaisie<k,4>)
         END
         W_Rang = W_Rang + 1 
      END 
      k=k+1

   REPEAT

   IF ENR_DETAILCALCUL<33> # "" THEN

      * regroupement 
      GOSUB 40

      k=1

      LOOP
      WHILE W_NewRegroupementSI<k> # "" DO
         IF W_NewRegroupementSI<k,1> # "" THEN
	      READ ENR_RUBSAISIE FROM F.RUBSAISIE,W_NewRegroupementSI<k,1> ELSE ENR_RUBSAISIE=""
	      IF ENR_RUBSAISIE # "" THEN
               ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,1;"DONT ":ENR_RUBSAISIE<1>)
            END ELSE 
               ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,1;"DONT ":W_NewRegroupementSI<k,1>)
	      END
            IF W_NewRegroupementSI<k,2> = "" THEN
               W_NewRegroupementSI<k,2> = 0
            END
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,2;W_NewRegroupementSI<k,3>)
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,3;"")
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,4;"")
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,5;W_NewRegroupementSI<k,2>/10)
            IF W_NewRegroupementSI<k,4> >= 0 THEN
               IF W_NewRegroupementSI<k,4> # 0 THEN
                  ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,6;W_NewRegroupementSI<k,4>)
                  ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,7;"")
               END
	      END ELSE
               ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,6;"")
               ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,7;W_NewRegroupementSI<k,4>)
            END
            W_Rang = W_Rang + 1 
         END 
         k=k+1
      REPEAT
   END
   W_ChargesSalPos = ENR_DETAILCALCUL<7>

**********************************************************************************************
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang;"%")
   W_Rang = W_Rang + 1
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,1;"TOTAL BRUT")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,2;ENR_DETAILCALCUL<6>)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,3;"")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,4;"")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,5;"")
   IF ENR_DETAILCALCUL<7> > 0 THEN
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,6;ENR_DETAILCALCUL<7>)
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,7;"")
   END ELSE
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,6;"")
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,7;ENR_DETAILCALCUL<7>)
   END

**********************************************************************************************
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang+1;"%")
   W_Rang = W_Rang + 2

   * regroupement 
   GOSUB 20

   k=1

   LOOP
   WHILE W_NewRegroupement<k> # "" DO
      IF W_NewRegroupement<k,1> # "" THEN
	   READ ENR_RUBCHARGE FROM F.RUBCHARGE,W_NewRegroupement<k,1> ELSE ENR_RUBCHARGE=""
	   IF ENR_RUBCHARGE # "" THEN
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,1;ENR_RUBCHARGE<1>)
         END ELSE 
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,1;W_NewRegroupement<k,1>)
	   END
         ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,2;W_NewRegroupement<k,2>)
         IF W_NewRegroupement<k,5> = "" THEN
            W_NewRegroupement<k,5> = 0
         END
         IF W_NewRegroupement<k,6> = "" THEN
            W_NewRegroupement<k,6> = 0
         END
         IF W_NewRegroupement<k,5> # 0 THEN
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,3;W_NewRegroupement<k,5>)
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,4;W_NewRegroupement<k,6>)
         END ELSE
            IF W_NewRegroupement<k,6> # 0 THEN
               ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,3;"")
               ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,4;W_NewRegroupement<k,6>)
            END ELSE
               ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,3;"")
               ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,4;"")
            END
         END
         W_ChargesPat=W_ChargesPat+W_NewRegroupement<k,6>

         IF W_NewRegroupement<k,4> = "" THEN
            W_NewRegroupement<k,4> = 0
         END
         IF W_NewRegroupement<k,3> = "" THEN
            W_NewRegroupement<k,3> = 0
         END
         IF W_NewRegroupement<k,3> # 0 THEN
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,5;W_NewRegroupement<k,3>)
         END
         IF W_NewRegroupement<k,4> >= 0 THEN
            IF W_NewRegroupement<k,4> # 0 THEN
               ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,6;W_NewRegroupement<k,4>)
               ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,7;"")
               W_ChargesSalPos = W_ChargesSalPos + W_NewRegroupement<k,4>
            END
	   END ELSE
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,6;"")
            ENR_ARCHIVEBULL=REPLACE(ENR_ARCHIVEBULL,W_Rang,7;W_NewRegroupement<k,4>)
            W_ChargesSalNeg = W_ChargesSalNeg + W_NewRegroupement<k,4>
         END
         W_Rang = W_Rang + 1 
      END 
      k=k+1

   REPEAT

**********************************************************************************************
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang;"%")
   W_Rang = W_Rang + 1
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,1;"NET IMPOSABLE")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,2;ENR_DETAILCALCUL<15>)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,3;"")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,4;"")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,5;"")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,6;"")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,7;"")
   W_Rang = W_Rang+1

   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,1;"TOTAL NET")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,2;"")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,3;"")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,4;"")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,5;"")
   IF ENR_DETAILCALCUL<16> > 0 THEN
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,6;ENR_DETAILCALCUL<16>)
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,7;"")
   END ELSE
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,6;"")
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,7;ENR_DETAILCALCUL<16>)
   END
   W_Rang = W_Rang+1

**********************************************************************************************
   IF ENR_DETAILCALCUL<17> # "" THEN
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang;"%")
      W_Rang = W_Rang + 1

      k=1
      LOOP 
      UNTIL ENR_DETAILCALCUL<17,k> = "" DO

         READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETAILCALCUL<17,k> ELSE ENR_RUBSAISIE=""
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,1;ENR_RUBSAISIE<1>)
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,2;ENR_DETAILCALCUL<18,k>)
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,3;"")
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,4;"")
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,5;INT(ENR_DETAILCALCUL<19,k>/10))
         IF ENR_DETAILCALCUL<20,k> > 0 THEN
            ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,6;ENR_DETAILCALCUL<20,k>)
            ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,7;"")
            W_ChargesSalPos = W_ChargesSalPos + ENR_DETAILCALCUL<20,k>
         END ELSE
            ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,6;"")
            ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,7;ENR_DETAILCALCUL<20,k>)
            W_ChargesSalNeg = W_ChargesSalNeg + ENR_DETAILCALCUL<20,k>
         END
         W_Rang = W_Rang + 1

         k=k+1
      REPEAT
   END

**********************************************************************************************
   IF ENR_DETAILCALCUL<37> # "" THEN
      IF ENR_DETAILCALCUL<17>="" THEN
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang;"%")
         W_Rang = W_Rang + 1
      END

      k=1
      LOOP 
      UNTIL ENR_DETAILCALCUL<37,k> = "" DO

         READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETAILCALCUL<37,k> ELSE ENR_RUBSAISIE=""
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,1;"DONT ":ENR_RUBSAISIE<1>)
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,2;ENR_DETAILCALCUL<38,k>)
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,3;"")
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,4;"")
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,5;INT(ENR_DETAILCALCUL<39,k>/10))
         IF ENR_DETAILCALCUL<40,k> > 0 THEN
            ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,6;ENR_DETAILCALCUL<40,k>)
            ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,7;"")
            IF ENR_DETAILCALCUL<20,k>="" THEN
               ENR_DETAILCALCUL<20,k>=0
            END
            W_ChargesSalPos = W_ChargesSalPos + ENR_DETAILCALCUL<20,k>
         END ELSE
            ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,6;"")
            ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,7;ENR_DETAILCALCUL<40,k>)
            IF ENR_DETAILCALCUL<20,k>="" THEN
               ENR_DETAILCALCUL<20,k>=0
            END
            W_ChargesSalNeg = W_ChargesSalNeg + ENR_DETAILCALCUL<20,k>
         END
         W_Rang = W_Rang + 1

         k=k+1
      REPEAT
   END

**********************************************************************************************
* LIGNE DES CUMULS DIFF.

   IF ENR_DETAILCALCUL<23> # "" THEN
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang;"*")
         W_Rang = W_Rang + 1

         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang;ENR_DETAILCALCUL<23>)
         W_Rang = W_Rang + 1

   END

**********************************************************************************************
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang;"#6")
   W_Rang = W_Rang + 1
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,1;ENR_DETAILCALCUL<7>)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,2;ENR_DETAILCALCUL<15>)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,3;ENR_DETAILCALCUL<6>)
   IF ENR_ASSOCIATION<25>=1 AND W_Periode[5,2] = "12" AND ENR_CONTRAT<1> # "02" THEN
      W_Cle = W_CleBull[1,5]:W_Periode[1,4]+1:W_Employeur
   END ELSE
      W_Cle = W_CleBull[1,5]:W_Periode[1,4]:W_Employeur
   END
   READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,W_Cle ELSE ENR_HISTORCUMUL=""

   IF ENR_HISTORCUMUL<5> = "" THEN 
      ENR_HISTORCUMUL<5> = 0
   END
   IF ENR_HISTORCUMUL<6> = "" THEN 
      ENR_HISTORCUMUL<6> = 0
   END
   IF ENR_HISTORCUMUL<2> = "" THEN 
      ENR_HISTORCUMUL<2> = 0
   END
   W_CumulBrut = ENR_HISTORCUMUL<5> + ENR_DETAILCALCUL<7>
   W_CumulNet = ENR_HISTORCUMUL<6> + ENR_DETAILCALCUL<15>
   W_CumulHres = ENR_HISTORCUMUL<2> + ENR_DETAILCALCUL<6>
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang+1,1;W_CumulBrut)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang+1,2;W_CumulNet)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang+1,3;W_CumulHres)

   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang+1,4;W_ChargesPat)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang+1,5;W_ChargesSalPos)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang+1,6;W_ChargesSalNeg)
   W_Rang = W_Rang + 2

**********************************************************************************************
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang;"#7")
   W_Rang = W_Rang + 1

   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,1;ENR_DETAILCALCUL<21>)
   W_Rang = W_Rang + 1
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,1;"")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,2;"")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,3;"")
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,4;"")

   READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE,"1" ELSE ENR_CONSTANTESPAIE=""

   W_Date="01/":W_Periode[5,2]:"/":W_Periode[1,4]
   W_Date=ICONV(W_Date,"D4/")
   IF INT(W_Date) < INT(ENR_CONSTANTESPAIE<9>) THEN
      W_NetAPayerEuro = ENR_DETAILCALCUL<21> / (ENR_CONSTANTESPAIE<7>/100000)
      W_NetAPayerEuro = INT(W_NetAPayerEuro+(1/2))
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,7;"E")
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang-1,2;"F")
   END ELSE
      W_NetAPayerEuro = ""
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,7;"")
      IF INT(ENR_CONSTANTESPAIE<9>) < "12420" AND INT(W_Date) < "12420" THEN
         W_NetAPayerEuro = ENR_DETAILCALCUL<21> * (ENR_CONSTANTESPAIE<7>/100000)
         W_NetAPayerEuro = INT(W_NetAPayerEuro+(1/2))
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,7;"F")
      END ELSE
         ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,7;"E")
      END
      ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang-1,2;"E")
   END
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,1;ENR_DETAILCALCUL<43>)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,2;ENR_DETAILCALCUL<44>)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,3;ENR_DETAILCALCUL<45>)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,4;ENR_DETAILCALCUL<46>)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,5;W_NetAPayerEuro)
   ENR_ARCHIVEBULL = REPLACE(ENR_ARCHIVEBULL,W_Rang,6;" ":ENR_DETAILCALCUL<22>)

   W_MoiArch=W_Periode[5,2]

   IF ENR_CONTRAT<1> = "02" THEN
      W_CleArcBull = W_CleBull:ENR_CONTRAT<3>
	W_CleAideArch=ENR_CONTRAT<3>:W_Periode[1,4]
	W_ArchAide="vrai"

	READ ENR_AIDESARCHIVEBULL FROM F.AIDESARCHIVEBULL,W_CleAideArch ELSE W_ArchAide="faux"

	IF W_ArchAide="faux" THEN
		ENR_AIDESARCHIVEBULL = ""
		ENR_AIDESARCHIVEBULL<W_MoiArch,1>=W_CleArcBull
		W_ArchAide="vrai"
	END ELSE
		IArch = 1
		ExistArch = "FAUX"
		LOOP
		WHILE ExistArch = "FAUX" AND ENR_AIDESARCHIVEBULL<W_MoiArch,IArch> # "" DO
			IF ENR_AIDESARCHIVEBULL<W_MoiArch,IArch> = W_CleArcBull THEN
				ExistArch = "VRAI"
			END ELSE
				IArch = IArch + 1
			END
		REPEAT
		IF ExistArch = "FAUX" THEN
			ENR_AIDESARCHIVEBULL<W_MoiArch,-1>=W_CleArcBull
		END
	END

	WRITE ENR_AIDESARCHIVEBULL ON F.AIDESARCHIVEBULL,W_CleAideArch
   END ELSE
      W_CleArcBull = W_CleBull:ENR_CONTRAT<2>
   END

   W_CleAidantArch=W_CleArcBull[1,5]:W_Periode[1,4]
   W_ArchAidant="vrai"

   READ ENR_AIDANTSARCHIVEBULL FROM F.AIDANTSARCHIVEBULL,W_CleAidantArch ELSE W_ArchAidant="faux"

   IF W_ArchAidant="faux" THEN
	ENR_AIDANTSARCHIVEBULL = ""
	ENR_AIDANTSARCHIVEBULL<W_MoiArch,1>=W_CleArcBull
	W_ArchAidant="vrai"
   END ELSE
	IArch = 1
	ExistArch = "FAUX"
	LOOP
	WHILE ExistArch = "FAUX" AND ENR_AIDANTSARCHIVEBULL<W_MoiArch,IArch> # "" DO
		IF ENR_AIDANTSARCHIVEBULL<W_MoiArch,IArch> = W_CleArcBull THEN
			ExistArch = "VRAI"
		END ELSE
			IArch = IArch + 1
		END
	REPEAT
	IF ExistArch = "FAUX" THEN
		ENR_AIDANTSARCHIVEBULL<W_MoiArch,-1>=W_CleArcBull
	END
   END

   WRITE ENR_AIDANTSARCHIVEBULL ON F.AIDANTSARCHIVEBULL,W_CleAidantArch

   WRITE ENR_ARCHIVEBULL ON F.ARCHIVEBULL,W_CleArcBull

RETURN

*********************************************************
*  Regroupement bulletin rubriques de charge
20

   W_NbRegroup = DCOUNT(W_TabRegroup<1>,CHAR(253))

   IF W_NbRegroup = 0 THEN
      W_NbRegroup = 1
   END

   FOR k = 1 TO W_NbRegroup
      W_NewRegroupement=REPLACE(W_NewRegroupement,k,2;0)
      W_NewRegroupement=REPLACE(W_NewRegroupement,k,3;0)
      W_NewRegroupement=REPLACE(W_NewRegroupement,k,4;0)
      W_NewRegroupement=REPLACE(W_NewRegroupement,k,5;0)
      W_NewRegroupement=REPLACE(W_NewRegroupement,k,6;0)
   NEXT k

   k=1
   x=1
   LOOP
   WHILE ENR_DETAILCALCUL<8,k> # "" OR k = 1 DO
      FOR l=1 TO W_NbRegroup
         W_Present="FAUX"

         READ ENR_REGROUPBULL FROM F.REGROUPBULL,W_TabRegroup<2,l> ELSE ENR_REGROUPBULL=""	

         * recherche si prsent dans regroupement
         m=1
         LOOP
         UNTIL ENR_REGROUPBULL<2,m> = ENR_DETAILCALCUL<8,k> OR ENR_REGROUPBULL<2,m> = "" DO
            m=m+1
         REPEAT

         * si dans regroupement
         IF ENR_REGROUPBULL<2,m> = ENR_DETAILCALCUL<8,k> THEN

            IF W_NewRegroupement<l,2> # "" AND W_NewRegroupement<l,2> # 0 THEN
               IF ENR_DETAILCALCUL<9,k> = "" THEN
		      W_Base = ENR_DETAILCALCUL<12,k> 
	         END ELSE
		      W_Base = ENR_DETAILCALCUL<9,k> 
  	         END
               IF W_NewRegroupement<l,2> = W_Base THEN
                  W_Present="VRAI"
               END ELSE
                  W_Present="FAUX"
               END
            END ELSE
               W_Present="VRAI"
            END
         END

         IF W_Present = "VRAI" THEN
            *  crit dans tab. tampon
            W_NewRegroupement<l,1> = W_TabRegroup<1,l>
            IF ENR_DETAILCALCUL<9,k> = 0 OR ENR_DETAILCALCUL<9,k> = "" THEN
               W_NewRegroupement=REPLACE(W_NewRegroupement,l,2;ENR_DETAILCALCUL<12,k>)
            END ELSE
               W_NewRegroupement=REPLACE(W_NewRegroupement,l,2;ENR_DETAILCALCUL<9,k>)
            END
            W_NewRegroupement=REPLACE(W_NewRegroupement,l,3;W_NewRegroupement<l,3> + ENR_DETAILCALCUL<10,k>)
            W_NewRegroupement=REPLACE(W_NewRegroupement,l,4;W_NewRegroupement<l,4> + ENR_DETAILCALCUL<11,k>)
            W_NewRegroupement=REPLACE(W_NewRegroupement,l,5;W_NewRegroupement<l,5> + ENR_DETAILCALCUL<13,k>)
            W_NewRegroupement=REPLACE(W_NewRegroupement,l,6;W_NewRegroupement<l,6> + ENR_DETAILCALCUL<14,k>)
            W_NewRegroupement=REPLACE(W_NewRegroupement,l,7;W_NewRegroupement<l,7>:ENR_DETAILCALCUL<8,k>)	    
  	    EXIT
         END ELSE
            IF l=W_NbRegroup AND W_Present="FAUX" THEN
               * crit dans nouveau regroupement
               IF x <= W_NbRegroup THEN
                  x=W_NbRegroup+1
               END
               W_NewRegroupement=REPLACE(W_NewRegroupement,x,1;ENR_DETAILCALCUL<8,k>)
               IF ENR_DETAILCALCUL<9,k> = "" OR ENR_DETAILCALCUL<9,k> = 0 THEN
                  W_NewRegroupement=REPLACE(W_NewRegroupement,x,2;ENR_DETAILCALCUL<12,k>)
               END ELSE
                  W_NewRegroupement=REPLACE(W_NewRegroupement,x,2;ENR_DETAILCALCUL<9,k>)
               END
               W_NewRegroupement=REPLACE(W_NewRegroupement,x,3;ENR_DETAILCALCUL<10,k>)
               W_NewRegroupement=REPLACE(W_NewRegroupement,x,4;ENR_DETAILCALCUL<11,k>)
               W_NewRegroupement=REPLACE(W_NewRegroupement,x,5;ENR_DETAILCALCUL<13,k>)
               W_NewRegroupement=REPLACE(W_NewRegroupement,x,6;ENR_DETAILCALCUL<14,k>)
               x=x+1
               EXIT
            END
         END
      NEXT l
      k=k+1
   REPEAT

   * repositionne regroupement  sa place
   FOR x = 1 TO W_NbRegroup
      m=1
      LOOP
      UNTIL W_NewRegroupement<x,7>[1,3] = ENR_DETAILCALCUL<8,m> OR ENR_DETAILCALCUL<8,m> = "" OR W_NewRegroupement<x,7> = "" DO
         m=m+1
      REPEAT
      IF W_NewRegroupement<x,7>[1,3] = ENR_DETAILCALCUL<8,m> THEN
	 m = m + W_NbRegroup

         W_TabInsert=REPLACE(W_TabInsert,1,1;W_NewRegroupement<x,1>)
         W_TabInsert=REPLACE(W_TabInsert,1,2;W_NewRegroupement<x,2>)
         W_TabInsert=REPLACE(W_TabInsert,1,3;W_NewRegroupement<x,3>)
         W_TabInsert=REPLACE(W_TabInsert,1,4;W_NewRegroupement<x,4>)
         W_TabInsert=REPLACE(W_TabInsert,1,5;W_NewRegroupement<x,5>)
         W_TabInsert=REPLACE(W_TabInsert,1,6;W_NewRegroupement<x,6>)

         W_NewRegroupement=INSERT(W_NewRegroupement,m;W_TabInsert)

         W_NewRegroupement=REPLACE(W_NewRegroupement,x,1;"")
         W_NewRegroupement=REPLACE(W_NewRegroupement,x,2;"")
         W_NewRegroupement=REPLACE(W_NewRegroupement,x,3;"")
         W_NewRegroupement=REPLACE(W_NewRegroupement,x,4;"")
         W_NewRegroupement=REPLACE(W_NewRegroupement,x,5;"")
         W_NewRegroupement=REPLACE(W_NewRegroupement,x,6;"")
      END
   NEXT x
   IF ENR_DETAILCALCUL<8>="" THEN
      W_NewRegroupement = ""
   END

RETURN

*********************************************************
*  Regroupement bulletin rubriques de saisie
30

   W_NbRegroupSaisie = DCOUNT(W_TabRegroupSaisie<1>,CHAR(253))

   IF W_NbRegroupSaisie = 0 THEN
      W_NbRegroupSaisie = 1
   END

   FOR k = 1 TO W_NbRegroupSaisie
      W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,k,2;0)
      W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,k,3;0)
      W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,k,4;0)
   NEXT k

   k=1
   x=1
   LOOP
   WHILE ENR_DETAILCALCUL<2,k> # "" OR k = 1 DO
      FOR l=1 TO W_NbRegroupSaisie
         W_Present="FAUX"

         READ ENR_REGROUPBULLSAISIE FROM F.REGROUPBULLSAISIE,W_TabRegroupSaisie<2,l> ELSE ENR_REGROUPBULLSAISIE=""	

         * recherche si prsent dans regroupement
         m=1
         LOOP
         UNTIL ENR_REGROUPBULLSAISIE<2,m> = ENR_DETAILCALCUL<2,k> OR ENR_REGROUPBULLSAISIE<2,m> = "" DO
            m=m+1
         REPEAT

         * si dans regroupement
         IF ENR_REGROUPBULLSAISIE<2,m> = ENR_DETAILCALCUL<2,k> THEN

            IF W_NewRegroupementSaisie<l,2> # "" AND W_NewRegroupementSaisie<l,2> # 0 THEN
               IF W_NewRegroupementSaisie<l,2> = ENR_DETAILCALCUL<4,k> THEN
                  W_Present="VRAI"
               END ELSE
                  W_Present="FAUX"
               END
            END ELSE
               W_Present="VRAI"
            END
         END

         IF W_Present = "VRAI" THEN
            *  crit dans tab. tampon
            W_NewRegroupementSaisie<l,1> = W_TabRegroupSaisie<1,l>
            W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,l,2;ENR_DETAILCALCUL<4,k>)
            W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,l,3;W_NewRegroupementSaisie<l,3> + ENR_DETAILCALCUL<3,k>)
            W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,l,4;W_NewRegroupementSaisie<l,4> + ENR_DETAILCALCUL<5,k>)
            W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,l,5;W_NewRegroupementSaisie<l,5>:ENR_DETAILCALCUL<2,k>)	    
  	    EXIT
         END ELSE
            IF l=W_NbRegroupSaisie AND W_Present="FAUX" THEN
               * crit dans nouveau regroupement
               IF x <= W_NbRegroupSaisie THEN
                  x=W_NbRegroupSaisie+1
               END
               W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,x,1;ENR_DETAILCALCUL<2,k>)
               W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,x,2;ENR_DETAILCALCUL<4,k>)
               W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,x,3;ENR_DETAILCALCUL<3,k>)
               W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,x,4;ENR_DETAILCALCUL<5,k>)
               x=x+1
               EXIT
            END
         END
      NEXT l
      k=k+1
   REPEAT

   W_Nb = DCOUNT(W_NewRegroupementSaisie,CHAR(254))
   x=1
   W_NewTab=""
   FOR k = 1 TO W_Nb
      IF W_NewRegroupementSaisie<k,1> # "" THEN
         W_NewTab=REPLACE(W_NewTab,x,1;W_NewRegroupementSaisie<k,1>)
         W_NewTab=REPLACE(W_NewTab,x,2;W_NewRegroupementSaisie<k,2>)
         W_NewTab=REPLACE(W_NewTab,x,3;W_NewRegroupementSaisie<k,3>)
         W_NewTab=REPLACE(W_NewTab,x,4;W_NewRegroupementSaisie<k,4>)
         W_NewTab=REPLACE(W_NewTab,x,5;W_NewRegroupementSaisie<k,5>)
         x=x+1
      END
   NEXT k
   W_NewRegroupementSaisie=""
   W_NewRegroupementSaisie = W_NewTab


   * repositionne regroupement  sa place
   FOR x = 1 TO W_NbRegroupSaisie
      m=1
      LOOP
      UNTIL W_NewRegroupementSaisie<x,5>[1,3] = ENR_DETAILCALCUL<2,m> OR ENR_DETAILCALCUL<2,m> = "" OR W_NewRegroupementSaisie<x,5> = "" DO
         m=m+1
      REPEAT
      IF W_NewRegroupementSaisie<x,5>[1,3] = ENR_DETAILCALCUL<2,m> THEN
	 m = DCOUNT(W_NewRegroupementSaisie,CHAR(254))+1

         W_TabInsertSaisie=REPLACE(W_TabInsertSaisie,1,1;W_NewRegroupementSaisie<x,1>)
         W_TabInsertSaisie=REPLACE(W_TabInsertSaisie,1,2;W_NewRegroupementSaisie<x,2>)
         W_TabInsertSaisie=REPLACE(W_TabInsertSaisie,1,3;W_NewRegroupementSaisie<x,3>)
         W_TabInsertSaisie=REPLACE(W_TabInsertSaisie,1,4;W_NewRegroupementSaisie<x,4>)

         W_NewRegroupementSaisie=INSERT(W_NewRegroupementSaisie,m;W_TabInsertSaisie)

         W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,x,1;"")
         W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,x,2;"")
         W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,x,3;"")
         W_NewRegroupementSaisie=REPLACE(W_NewRegroupementSaisie,x,4;"")
      END

   NEXT x
   IF ENR_DETAILCALCUL<2>="" THEN
      W_NewRegroupementSaisie = ""
   END

RETURN

*********************************************************
*  Regroupement bulletin rubriques de saisie sans incidence sur salaire
40

   W_NbRegroupSaisie = DCOUNT(W_TabRegroupSaisie<1>,CHAR(253))

   IF W_NbRegroupSaisie = 0 THEN
      W_NbRegroupSaisie = 1
   END

   FOR k = 1 TO W_NbRegroupSaisie
      W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,k,2;0)
      W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,k,3;0)
      W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,k,4;0)
   NEXT k

   k=1
   x=1
   LOOP
   WHILE ENR_DETAILCALCUL<33,k> # "" OR k = 1 DO
      FOR l=1 TO W_NbRegroupSaisie
         W_Present="FAUX"

         READ ENR_REGROUPBULLSAISIE FROM F.REGROUPBULLSAISIE,W_TabRegroupSaisie<2,l> ELSE ENR_REGROUPBULLSAISIE=""	

         * recherche si prsent dans regroupement
         m=1
         LOOP
         UNTIL ENR_REGROUPBULLSAISIE<2,m> = ENR_DETAILCALCUL<33,k> OR ENR_REGROUPBULLSAISIE<2,m> = "" DO
            m=m+1
         REPEAT

         * si dans regroupement
         IF ENR_REGROUPBULLSAISIE<2,m> = ENR_DETAILCALCUL<33,k> THEN

            IF W_NewRegroupementSI<l,2> # "" AND W_NewRegroupementSI<l,2> # 0 THEN
               IF W_NewRegroupementSI<l,2> = ENR_DETAILCALCUL<35,k> THEN
                  W_Present="VRAI"
               END ELSE
                  W_Present="FAUX"
               END
            END ELSE
               W_Present="VRAI"
            END
         END

         IF W_Present = "VRAI" THEN
            *  crit dans tab. tampon
            W_NewRegroupementSI<l,1> = W_TabRegroupSaisie<1,l>
            W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,l,2;ENR_DETAILCALCUL<35,k>)
            W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,l,3;W_NewRegroupementSI<l,3> + ENR_DETAILCALCUL<34,k>)
            W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,l,4;W_NewRegroupementSI<l,4> + ENR_DETAILCALCUL<36,k>)
            W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,l,5;W_NewRegroupementSI<l,5>:ENR_DETAILCALCUL<33,k>)	    
  	    EXIT
         END ELSE
            IF l=W_NbRegroupSaisie AND W_Present="FAUX" THEN
               * crit dans nouveau regroupement
               IF x <= W_NbRegroupSaisie THEN
                  x=W_NbRegroupSaisie+1
               END
               W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,x,1;ENR_DETAILCALCUL<33,k>)
               W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,x,2;ENR_DETAILCALCUL<35,k>)
               W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,x,3;ENR_DETAILCALCUL<34,k>)
               W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,x,4;ENR_DETAILCALCUL<36,k>)
               x=x+1
               EXIT
            END
         END
      NEXT l
      k=k+1
   REPEAT

   * repositionne regroupement  sa place
   FOR x = 1 TO W_NbRegroupSaisie
      m=1
      LOOP
      UNTIL W_NewRegroupementSI<x,5>[1,3] = ENR_DETAILCALCUL<33,m> OR ENR_DETAILCALCUL<33,m> = "" OR W_NewRegroupementSI<x,5> = "" DO
         m=m+1
      REPEAT
      IF W_NewRegroupementSI<x,5>[1,3] = ENR_DETAILCALCUL<33,m> THEN
	 m = m + W_NbRegroupSaisie

         W_TabInsertSI=REPLACE(W_TabInsertSI,1,1;W_NewRegroupementSI<x,1>)
         W_TabInsertSI=REPLACE(W_TabInsertSI,1,2;W_NewRegroupementSI<x,2>)
         W_TabInsertSI=REPLACE(W_TabInsertSI,1,3;W_NewRegroupementSI<x,3>)
         W_TabInsertSI=REPLACE(W_TabInsertSI,1,4;W_NewRegroupementSI<x,4>)

         W_NewRegroupementSI=INSERT(W_NewRegroupementSI,m;W_TabInsertSI)

         W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,x,1;"")
         W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,x,2;"")
         W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,x,3;"")
         W_NewRegroupementSI=REPLACE(W_NewRegroupementSI,x,4;"")
      END
   NEXT x
   IF ENR_DETAILCALCUL<33>="" THEN
      W_NewRegroupementSI = ""
   END
RETURN
