W_Deb = TIME()
ENR_TEMPO = ""
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "", "TEMPO" TO F.TEMPO ELSE STOP

PROCREAD PARAMETRES THEN
	W_CodAssoc = FIELD(PARAMETRES,"|",2)
	W_TypeContrat = FIELD(PARAMETRES,"|",3)
	W_CCN = FIELD(PARAMETRES,"|",4)
	W_NomUtilisateur = FIELD(PARAMETRES,"|",5)
	ENR_TEMPO<1> = "Une erreur est survenue lors de l'ouverture des fichiers. Si le problme persiste, veuillez contacter Infologis."
	WRITE ENR_TEMPO ON F.TEMPO, "EXCELCCU":W_NomUtilisateur
	OPEN "", "ABSENCESAIDANT" TO F.ABSENCESAIDANT ELSE STOP
	OPEN "", "ASSOCIATION" TO F.ASSOCIATION ELSE STOP
	OPEN "", "GRILLESCC" TO F.GRILLECC ELSE STOP
	OPEN "", "CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
	OPEN "", "CONTRAT" TO F.CONTRAT ELSE STOP
	OPEN "", "CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE STOP
	OPEN "", "CONVENTIONCOL" TO F.CONVENTIONCOL ELSE STOP
	OPEN "", "ETABLISSEMENT" TO F.ETABLISSEMENT ELSE STOP
	OPEN "", "FORMEXPAIDANT" TO F.FORMEXPAIDANT ELSE STOP
	OPEN "", "SECTEUR" TO F.SECTEUR ELSE STOP
	OPEN "", "TABLES" TO F.TABLES ELSE STOP
	OPEN "", "TEMPO" TO F.TEMPO ELSE STOP 
	OPEN "", "FUSION" TO F.FUSION ELSE 
		EXECUTE 'CREER-FICHIER DIR FUSION'
		OPEN "", "FUSION" TO F.FUSION ELSE
			ENR_TEMPO<1> = "Le rpertoire Fusion n'a pas pu tre cr dans la base."
			WRITE ENR_TEMPO ON F.TEMPO, "EXCELCCU":W_NomUtilisateur
			STOP
		END
	END


    	READ ENR_CONVENTIONCOL FROM F.CONVENTIONCOL, W_CCN ELSE 
		ENR_TEMPO<1> = "Une erreur est survenue pendant le traitement. Si le problme persiste, veuillez contacter Infologis."
		WRITE ENR_TEMPO ON F.TEMPO, "EXCELCCU":W_NomUtilisateur
		STOP
	END

    	READ ENR_DIPLOMES FROM F.TABLES, "DIPLOMESCCU" ELSE ENR_DIPLOMES = ""
    	READ ENR_FORMPRO FROM F.TABLES, "FORMPROCCU" ELSE ENR_FORMPRO = ""
   	GOSUB 10
END ELSE 

	OPEN "", "ABSENCESAIDANT" TO F.ABSENCESAIDANT ELSE STOP
	OPEN "", "ASSOCIATION" TO F.ASSOCIATION ELSE STOP
	OPEN "", "GRILLESCC" TO F.GRILLECC ELSE STOP
	OPEN "", "CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
	OPEN "", "CONTRAT" TO F.CONTRAT ELSE STOP
	OPEN "", "CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE STOP
	OPEN "", "CONVENTIONCOL" TO F.CONVENTIONCOL ELSE STOP
	OPEN "", "ETABLISSEMENT" TO F.ETABLISSEMENT ELSE STOP
	OPEN "", "FORMEXPAIDANT" TO F.FORMEXPAIDANT ELSE STOP
	OPEN "", "SECTEUR" TO F.SECTEUR ELSE STOP
	OPEN "", "TABLES" TO F.TABLES ELSE STOP
	OPEN "", "TEMPO" TO F.TEMPO ELSE STOP 
	OPEN "", "FUSION" TO F.FUSION ELSE 
		EXECUTE 'CREER-FICHIER DIR FUSION'
		OPEN "", "FUSION" TO F.FUSION ELSE
			PRINT "Le rpertoire Fusion dans lequel doit tre cr le fichier n'a pas pu tre cr dans la base."
			STOP
		END
	END



   READ ENR_DIPLOMES FROM F.TABLES,"DIPLOMESCCU" ELSE
	PRINT 'Vous devez attribuer les catgories de la CCU aux diplomes via le programme "Paramtres CCU" avant de lancer ce traitement.'
	STOP
   END

   READ ENR_FORMPRO FROM F.TABLES,"FORMPROCCU" ELSE
	PRINT 'Vous devez attribuer les catgories de la CCU aux formations professionnelle via le programme "Paramtres CCU" avant de lancer ce traitement.'
	STOP
   END

   LOOP
   PRINT "Code Association (3 chiffres) ?"
   INPUT W_CodAssoc
   IF W_CodAssoc = "" THEN 
	PRINT "Traitement abandonn."
	STOP 
   END

   READ ENR_ASSOCIATION FROM F.ASSOCIATION, W_CodAssoc ELSE ENR_ASSOCIATION = ""
   WHILE ENR_ASSOCIATION = ""
	PRINT "Cette association n'existe pas !"
   REPEAT

   LOOP
   PRINT "Code convention collective (2 chiffres) ?"
   INPUT W_CCN
   IF W_CCN = "" THEN 
	PRINT "Traitement abandonn."
	STOP 
   END

   READ ENR_CONVENTIONCOL FROM F.CONVENTIONCOL, W_CCN ELSE ENR_CONVENTIONCOL = ""
   WHILE ENR_CONVENTIONCOL = ""
	PRINT "Cette convention collective n'existe pas !"
   REPEAT
   GOSUB 10

   LOOP
	PRINT "Lister les contrat  dure (D)termine ou (I)ndtermine ? "
	INPUT W_TypeContrat
	IF W_TypeContrat = "" THEN 
		PRINT "Traitement abandonn."
		STOP 
	END	
	W_TypeContrat = ICONV(W_TypeContrat,"MCU")
   WHILE W_TypeContrat  # "I" AND W_TypeContrat # "D"
	PRINT 'Le type de contrat saisi doit tre "I" ou "D"'
   REPEAT

END

READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE,"1" ELSE 
	IF W_NomUtilisateur # "" THEN
		ENR_TEMPO<1> = "Une erreur est survenue pendant le traitement. Si le problme persiste, veuillez contacter Infologis."
		WRITE ENR_TEMPO ON F.TEMPO, "EXCELCCU":W_NomUtilisateur
	END ELSE
		PRINT "Erreur en lecture des constantes de paie."
	END
	STOP

END

EXECUTE 'SELECT ETABLISSEMENT AVEC @ID = "':W_CodAssoc:']"'
W_Fin = "F"
W_SMICEtab = ""
W_HoraireEtab = ""
LOOP
	READNEXT W_Cle ELSE W_Fin = "V"
WHILE W_Fin = "F"
	READ ENR_ETAB FROM F.ETABLISSEMENT, W_Cle THEN
		IF ENR_ETAB<31> = "" THEN ENR_ETAB<31> = 0
		IF ENR_ETAB<31> < ENR_CONSTANTESPAIE<3, 1> THEN
			W_SMICEtab<W_Cle[4,3]> = ENR_CONSTANTESPAIE<3, 1>
		END ELSE
			W_SMICEtab<W_Cle[4,3]> = ENR_ETAB<31>
		END
		IF ENR_ETAB<16> # "" AND ENR_ETAB<16> # 0 THEN
			W_HoraireEtab<W_Cle[4,3]> = INT(ENR_ETAB<16> * 52 / 12 + 1/2)/100
		END ELSE
			W_HoraireEtab<W_Cle[4,3]> = 169
		END
	END
REPEAT

W_ReqContratCCU = ""
EXECUTE 'SELECT CONTRAT AVEC 1 = "':W_CCN:'" AND AVEC 65 # "O" AND AVEC 2 = "':W_CodAssoc:'" AND AVEC 4 = "':W_TypeContrat:'" AND AVEC 6 = "P" AND AVEC 7 <= "':DATE():'" AND AVEC 8 >= "':DATE():'" OR = "" PAR NomPrenomAidantContrat'
EXECUTE 'SAUVE-LISTE W_ReqContratCCU'
EXECUTE 'LISTE W_ReqContratCCU' RETURNING MSGCODE
IF MSGCODE<1> = "209" THEN
	IF W_NomUtilisateur # "" THEN
		ENR_TEMPO<1> = "Aucun contrat ne rponds aux critres de slection."
		WRITE ENR_TEMPO ON F.TEMPO, "EXCELCCU":W_NomUtilisateur
	END ELSE
		PRINT "Aucun contrat ne rponds aux critres de slection."
	END

	STOP
END


W_Fin = "F"
W_Resultat = ""
W_Resultat<1> = "Matricule aidant;Nom;Prnom;1ere ligne de l'adresse;2eme ligne de l'adresse;Code postal;Ville;Secteur;Date de naissance;57 ans (si croix);Absences;Diplme;Date d'obtention di diplme;Date d'entre;Taux horaire;Dure mensuelle du travail;Horaire de l'tablissement;Date de dpart du calcul dans la grille;Nombre de jours de suspension de contrat;Date d'anciennet;Categorie"
W_IndResultat = 2
i = 0
W_ReqAbsCCU = ""
W_TabAbsArret = ""
SELECT F.CONTRAT TO W_ReqContratCCU
LOOP
	READNEXT W_Cle FROM W_ReqContratCCU ELSE W_Fin = "V"
WHILE W_Fin = "F"
	READ ENR_CONTRAT FROM F.CONTRAT, W_Cle THEN
	  READ ENR_CIVILAIDANT FROM F.CIVILAIDANT, W_Cle[1,5] THEN		
		IF W_MaladieAssimilee = "" AND W_PerRef = "" THEN
			GOSUB 10
		END

		*Donnes aidant 
		GOSUB 100
		W_Resultat<W_IndResultat,1> = W_Cle[1,5]
		W_Resultat<W_IndResultat,2> = W_Nom
		W_Resultat<W_IndResultat,3> = W_Prenom
		W_Resultat<W_IndResultat,4> = W_Adr1
		W_Resultat<W_IndResultat,5> = W_Adr2
		W_Resultat<W_IndResultat,6> = W_CP
		W_Resultat<W_IndResultat,7> = W_Ville
		W_Resultat<W_IndResultat,8> = W_LibSecteur
		W_Resultat<W_IndResultat,9> = W_DateNais
		W_Resultat<W_IndResultat,10> = W_57Ans


		* Calcul jrs suspension
		GOSUB 200
		W_Resultat<W_IndResultat,11> = W_JrsSuspAbs


		* Diplomes
		GOSUB 300
		W_Resultat<W_IndResultat,12> = W_Diplome
		W_Resultat<W_IndResultat,13> = W_DateDiplome


		* Donnes contrat	
		GOSUB 400	
		W_Resultat<W_IndResultat,14> = W_DateEntree
		W_Resultat<W_IndResultat,15> = W_TauxHor
		W_Resultat<W_IndResultat,16> = W_DureeMens
		W_Resultat<W_IndResultat,17> = W_HoraireEtabContrat
		W_Resultat<W_IndResultat,18> = W_DateDepGrille
		W_Resultat<W_IndResultat,19> = W_JrsSuspContrat
		W_Resultat<W_IndResultat,20> = W_DateAnc
		W_Resultat<W_IndResultat,21> = W_Categorie

		* Ajout de l'horaire de l'tablissement afin qu'Excel puisse calculer des taux horaires
		

		
		*W_Resultat<W_IndResultat,21> = 
		*W_Resultat<W_IndResultat,22> = 
		*W_Resultat<W_IndResultat,23> = 
		*W_Resultat<W_IndResultat,24> = 
		*W_Resultat<W_IndResultat,25> = 
		*W_Resultat<W_IndResultat,26> = 

		
		W_IndResultat = W_IndResultat + 1


	  END
	END
REPEAT
CONVERT CHAR(253) TO ';' IN W_Resultat
WRITE W_Resultat ON F.FUSION, "CCU":W_CodAssoc:W_CCN:"CD":W_TypeContrat:".infologis"

W_Deb = (TIME() - W_Deb)
W_Deb = INT(W_Deb/3600):" hre ":INT(MOD(W_Deb,3600)/60):" mn ":MOD(MOD(W_Deb,3600),60):" secondes" 
PRINT W_Deb

ENR_TEMPO<1> = 'Le fichier "CCU':W_CodAssoc:W_CCN:'CD':W_TypeContrat:'.infologis" a t cr dans le rpertoire "Fusion".'
WRITE ENR_TEMPO ON F.TEMPO, "EXCELCCU":W_NomUtilisateur
STOP


10
*************************************************
* Initialisation des variables CCN ncessaires	*
*  l'valuation des jours de suspension par 	*
* rapport  l' absentisme			*
*************************************************
W_MaladieAssimilee=""
W_PerRef=""
W_PrixPoint = ""
				
	W_MaladieAssimilee = INT(ENR_CONVENTIONCOL<17>)
	W_PrixPoint = ENR_CONVENTIONCOL<8,1>/100
			
	* Retraite oblige : on dfinit les priodes sur la 40aine d'annes de cotisation possible
	IF ENR_CONVENTIONCOL<28> = 0 THEN
		* de juin a mai
		FOR i = 1 TO 40
			W_PerRef<i,1> = ICONV("01/06/":2004-i,"D4/") 
			W_PerRef<i,2> = ICONV("31/05/":2005-i,"D4/") 
		NEXT i
	END ELSE
		* Anne civile
		FOR i = 1 TO 40
			W_PerRef<i,1> = ICONV("01/01/":2004-i,"D4/") 
			W_PerRef<i,2> = ICONV("31/05/":2004-i,"D4/") 
		NEXT i
	END
RETURN

100
*************************************************
* 		Donnes aidant			*
*************************************************
W_Nom = ""
W_Prenom = ""
W_Adr1 = ""
W_Adr2 = ""
W_CP = ""
W_Ville = ""
W_LibSecteur = ""
W_DateNais = ""
W_57Ans = ""

W_Nom = ENR_CIVILAIDANT<2>
W_Prenom = ENR_CIVILAIDANT<3>
W_Adr1 = TRIM(ENR_CIVILAIDANT<5>:" ":ENR_CIVILAIDANT<6>:" ":ENR_CIVILAIDANT<7>:" ":ENR_CIVILAIDANT<8>)
W_Adr2 = TRIM(ENR_CIVILAIDANT<9>)
IF W_Adr1 = "" THEN
	W_Adr1 = W_Adr2
	W_Adr2 = ""
END
CONVERT ";" TO ' ' IN W_Adr1
CONVERT ";" TO ' ' IN W_Adr2

W_CP = ENR_CIVILAIDANT<10>
W_Ville = ENR_CIVILAIDANT<11>

READ ENR_SECTEUR FROM F.SECTEUR, ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR = ""
W_LibSecteur = ENR_SECTEUR<1>

W_DateNais = OCONV(ENR_CIVILAIDANT<26>,"D2/")

IF ENR_CIVILAIDANT<26> <= -7489 THEN
W_57Ans = "X"
END ELSE
W_57Ans = ""
END


RETURN

200
*****************************************************************
*   Calcul des jours de suspensions  partir de l'absentisme	*
*****************************************************************
W_JrsSuspAbs = 0
FOR i = 1 TO 40
	W_TabAbsArret<i> = 0
NEXT
* Nb : W_TabAbsArret<1> = nb jrs Maladies sur 2003 si CCN en anne civile, du 01/06/03 au 31/05/4 sinon

* W_DateDerniereCloture es trutilise dans la procdure 400 : recherche du taux horaire...
IF ENR_CONTRAT<63> # "" THEN
   W_DateDerniereCloture = ENR_CONTRAT<63>[5,2] + 1
   IF W_DateDerniereCloture = 13 THEN
	* ne devrait jamais arriver car contrats actifs a la date systme, ie avant 07/03
	W_DateDerniereCloture = ICONV("31/12/":ENR_CONTRAT<63>[1,4],"D4/")
   END ELSE
	W_DateDerniereCloture = ICONV("01/":W_DateDerniereCloture:"/":ENR_CONTRAT<63>[1,4],"D4/")-1
   END
END ELSE
   W_DateDerniereCloture = DATE()
END
EXECUTE 'SELECT ABSENCESAIDANT = "':W_Cle[1,5]:']" AVEC NumMotifAidant = "01" OR = "13" OR = "12" AND AVEC DebAbsAidant <= "':W_DateDerniereCloture:'" PAR-DECR DebAbsAidant'
EXECUTE 'SAUVE-LISTE W_ReqAbsCCU'
EXECUTE 'LISTE W_ReqAbsCCU' RETURNING MSGCODE
IF MSGCODE<1> # "209" THEN
	SELECT F.ABSENCESAIDANT TO W_ReqAbsCCU
	W_FinAbs = "F"
	LOOP
	   READNEXT W_CleAbs FROM W_ReqAbsCCU ELSE W_FinAbs = "V"
	WHILE W_FinAbs = "F"
	   READ ENR_ABSENCESAIDANT FROM F.ABSENCESAIDANT, W_CleAbs THEN			
		IF ENR_ABSENCESAIDANT<2> > W_DateDerniereCloture THEN
			ENR_ABSENCESAIDANT<2> = W_DateDerniereCloture		
		END

		BEGIN CASE
			CASE W_CleAbs[6,2] = "12"
			* Congs sans solde
				W_JrsSuspAbs = W_JrsSuspAbs + ENR_ABSENCESAIDANT<2> - W_CleAbs[8,LEN(W_CleAbs)-7] + 1

			CASE W_CleAbs[6,2] = "13"
			* cong parental
				W_JrsSuspAbs = W_JrsSuspAbs + (ENR_ABSENCESAIDANT<2> - W_CleAbs[8,LEN(W_CleAbs) - 7] + 1)/2

			CASE W_CleAbs[6,2] = "01"
				W_Trouve = "F"
				i = 0
				LOOP
				   i = i + 1
				WHILE W_PerRef<i,2> >= W_CleAbs[8,LEN(W_CleAbs) - 7]
					IF W_PerRef<i,1> <= ENR_ABSENCESAIDANT<2> THEN
						IF W_CleAbs[8,LEN(W_CleAbs) - 7] < W_PerRef<i,1> THEN
							W_TabAbsArret<i> = W_TabAbsArret<i> + ENR_ABSENCESAIDANT<2> - W_PerRef<i,1> + 1
							ENR_ABSENCESAIDANT<2>= W_PerRef<i,1> - 1
						END ELSE
							W_TabAbsArret<i> = W_TabAbsArret<i> + ENR_ABSENCESAIDANT<2> - W_CleAbs[8,LEN(W_CleAbs) - 7] + 1
						END
					END 		
				REPEAT
		END CASE
	   END
	REPEAT
	FOR i = 1 TO 40
	   IF W_TabAbsArret<i> > W_MaladieAssimilee THEN
		W_JrsSuspAbs = W_JrsSuspAbs + W_TabAbsArret<i> - W_MaladieAssimilee
	   END
	NEXT i
END
RETURN


300
*********************************
* 	     Diplme		*
*********************************
W_Diplome = ""
W_DateDiplome = ""
W_ValeurDiplome = 0
* NB : SEQ("") = 0 (vrifi)
READ ENR_FORMEXPAIDANT FROM F.FORMEXPAIDANT, W_Cle[1,5] THEN
   IF INDEX(ENR_DIPLOMES<2>,ENR_FORMEXPAIDANT<2>,1) # 0 AND ENR_FORMEXPAIDANT<2> # "" THEN
	W_ValeurDiplome = SEQ(ENR_DIPLOMES<4,INT(INDEX(ENR_DIPLOMES<2>,ENR_FORMEXPAIDANT<2>,1)/3) + 1>)
	W_DateDiplome = ICONV("01/01/":ENR_FORMEXPAIDANT<3>,"D4/")
	W_Diplome = ENR_DIPLOMES<3,INT(INDEX(ENR_DIPLOMES<2>,ENR_FORMEXPAIDANT<2>,1)/3) + 1>
   END
   i = 0
   LOOP
	i = i + 1
   WHILE ENR_FORMEXPAIDANT<6,i> # ""
	IF INDEX(ENR_FORMPRO<2>,ENR_FORMEXPAIDANT<6,i>,1) # 0 AND ENR_FORMEXPAIDANT<6,i> # "" THEN
	   IF SEQ(ENR_FORMPRO<4,INT(INDEX(ENR_FORMPRO<2>,ENR_FORMEXPAIDANT<6,i>,1)/4) + 1>) > W_ValeurDiplome THEN
		W_ValeurDiplome = SEQ(ENR_FORMPRO<4,INT(INDEX(ENR_FORMPRO<2>,ENR_FORMEXPAIDANT<6,i>,1)/4) + 1>)
		W_DateDiplome = ENR_FORMEXPAIDANT<5,i>
		W_Diplome = ENR_FORMPRO<3,INT(INDEX(ENR_FORMPRO<2>,ENR_FORMEXPAIDANT<6,i>,1)/4) + 1>
	   END ELSE
		IF SEQ(ENR_FORMPRO<4,INT(INDEX(ENR_FORMPRO<2>,ENR_FORMEXPAIDANT<6,i>,1)/4) + 1>) = W_ValeurDiplome THEN
		   IF ENR_FORMEXPAIDANT<5,i> < W_DateDiplome THEN
			W_ValeurDiplome = SEQ(ENR_FORMPRO<4,INT(INDEX(ENR_FORMPRO<2>,ENR_FORMEXPAIDANT<6,i>,1)/4) + 1>)
			W_DateDiplome = ENR_FORMEXPAIDANT<5,i>
			W_Diplome = ENR_FORMPRO<3,INT(INDEX(ENR_FORMPRO<2>,ENR_FORMEXPAIDANT<6,i>,1)/4) + 1>
		   END
		END
	   END
	END
   REPEAT
   W_DateDiplome = OCONV(W_DateDiplome,"D2/")
END
* Nb : W_ValeurDiplome sert aussi en procdure 400 (dfinition de la catgorie)
RETURN

400
*********************************
*      Donnes du contrat	*
*********************************
W_DateEntree = ""
W_TauxHor = ""
W_DureeMens = ""
W_DateDepGrille = ""
W_JrsSuspContrat = ""
W_DateAnc = ""
W_Categorie = ""
W_HoraireEtabContrat = ""

W_DateEntree = OCONV(ENR_CONTRAT<7>,"D2/")
IF ENR_CONTRAT<23> # "" THEN
	W_TauxHor = ENR_CONTRAT<23,DCOUNT(ENR_CONTRAT<14>,CHAR(253))>/1000
END ELSE

  READ ENR_GRILLECC FROM F.GRILLECC,ENR_CONTRAT<20,DCOUNT(ENR_CONTRAT<14>,CHAR(253))> THEN


    W_MoisSuspension = INT((ENR_CONTRAT<70> / 100) / 30)
    W_Date = OCONV(ENR_CONTRAT<21, DCOUNT(ENR_CONTRAT<14>,CHAR(253))>,"D4/")
    W_MoisSuspension = W_MoisSuspension + W_Date[4,2]
    IF W_MoisSuspension >= 13 THEN
        W_Date = W_Date[7,4] + INT(W_MoisSuspension / 12)
        W_MoisSuspension = MOD(W_MoisSuspension,12)
    END ELSE
        W_Date = W_Date[7,4]
    END
    IF LEN(W_MoisSuspension) < 2 THEN
        W_MoisSuspension = "0":W_MoisSuspension
    END
    W_Debut = OCONV(W_DateDerniereCloture,"D4/")
    W_Debut = W_Debut[7,4]:W_Debut[4,2]
    W_Date = W_Date:W_MoisSuspension
    W_NbAnnee = W_Debut - W_Date
    IF W_NbAnnee < 0 THEN W_NbAnnee = 0
    W_NbAnnee = INT(W_NbAnnee / 100) * 100
    
    j = 1
    LOOP
    WHILE ENR_GRILLECC<2, j> > W_NbAnnee AND ENR_GRILLECC<2, j> <> "" OR ENR_GRILLECC<3, j> <= W_NbAnnee AND ENR_GRILLECC<2, j> <> ""
        j = j + 1
    REPEAT
    
    W_TauxHor = ENR_GRILLECC<4, j>/1000
    
    IF W_TauxHor # "" THEN
        IF ENR_GRILLECC<5> = "C" THEN
            W_TauxHor = W_TauxHor * W_PrixPoint / W_HoraireEtab<ENR_CONTRAT<3>[4,3]>
            *W_TauxHor = Int(W_TauxHor * 1000 + 1 / 2)
        END
    END ELSE
	W_TauxHor = 0
    END
  END ELSE
    W_TauxHor = 0
  END
END
IF W_TauxHor < W_SMICEtab<ENR_CONTRAT<3>[4,3]>/100 THEN
	W_TauxHor = W_SMICEtab<ENR_CONTRAT<3>[4,3]>/100
END
W_TauxHor = INT(W_TauxHor * 1000)/1000"R3"

BEGIN CASE
   CASE ENR_CONTRAT<25,DCOUNT(ENR_CONTRAT<14>,CHAR(253))> = "1"
	W_DureeMens = INT(ENR_CONTRAT<24,DCOUNT(ENR_CONTRAT<14>,CHAR(253))> * 5200 / 12 + 1/2)/100
   CASE ENR_CONTRAT<25,DCOUNT(ENR_CONTRAT<14>,CHAR(253))> = "2"
	W_DureeMens = INT(ENR_CONTRAT<24,DCOUNT(ENR_CONTRAT<14>,CHAR(253))> * 2600 / 12 + 1/2)/100
   CASE ENR_CONTRAT<25,DCOUNT(ENR_CONTRAT<14>,CHAR(253))> = "3"
	W_DureeMens = ENR_CONTRAT<24,DCOUNT(ENR_CONTRAT<14>,CHAR(253))>
   CASE ENR_CONTRAT<25,DCOUNT(ENR_CONTRAT<14>,CHAR(253))> = "4"
	W_DureeMens = INT(ENR_CONTRAT<24,DCOUNT(ENR_CONTRAT<14>,CHAR(253))> *100/ 12  + 1/2)/100
END CASE
W_DureeMens = W_DureeMens / 100

W_DateDepGrille = OCONV(ENR_CONTRAT<21,DCOUNT(ENR_CONTRAT<14>,CHAR(253))>,"D4/")

W_JrsSuspContrat = INT(ENR_CONTRAT<70>) / 100
W_DateAnc = OCONV(ENR_CONTRAT<21,DCOUNT(ENR_CONTRAT<14>,CHAR(253))> + INT(ENR_CONTRAT<70>/100),"D2/")
IF ENR_CONTRAT<20,DCOUNT(ENR_CONTRAT<14>,CHAR(253))> = "01002" OR ENR_CONTRAT<20,DCOUNT(ENR_CONTRAT<14>,CHAR(253))> = "03002" OR ENR_CONTRAT<20,DCOUNT(ENR_CONTRAT<14>,CHAR(253))> = "08002" OR W_ValeurDiplome = SEQ("C") THEN
	W_Categorie = "C1"
END ELSE
	IF W_ValeurDiplome = SEQ("B") THEN
		W_Categorie = "B1"
	END ELSE
		W_Categorie = "A1"
	END
END

IF W_CCN = "06" THEN
	W_Categorie = "D1"
END

W_HoraireEtabContrat = W_HoraireEtab<ENR_CONTRAT<3>[4,3]>

RETURN
