
***************************************************************
* INTEGRANT LES DONNES POUR LA CCU A PARTIR DES FICHIER EXCEL *
* ALAIN LE 22/05/2003                                         *
***************************************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","CONVENTIONCOL" TO F.CONVENTIONCOL ELSE STOP
OPEN "","FUSION" TO F.FUSION ELSE STOP
OPEN "","GRILLESCC" TO F.GRILLESCC ELSE STOP
OPEN "","TAMPONINF" TO F.TAMPONINF ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP

******************************
* Recuperation des arguments *
******************************

PROCREAD ARGUMENTS ELSE PRINT "Procread"

W_ASSOC = FIELD(ARGUMENTS,"|",2)
W_CDDCDI = FIELD(ARGUMENTS,"|",3)
W_CONVCOL = FIELD(ARGUMENTS,"|",4)
W_UTILISATEUR = FIELD(ARGUMENTS,"|",5)

*********************
* TRAITEMENT GLOBAL *
*********************

W_CLEFIC = 'CCU':W_ASSOC:W_CONVCOL:'CD':W_CDDCDI:'.csv'

READ ENR_TEMPO FROM F.TEMPO,W_CLEFIC ELSE ENR_TEMPO = ""

ENR_TEMPO = ""

READ ENR_FUSION FROM F.FUSION,W_CLEFIC ELSE ENR_FUSION = ""

IF ENR_FUSION = "" THEN
	ENR_TEMPO<1> = "PAS DE FICHIER"
	WRITE ENR_TEMPO TO F.TEMPO,W_CLEFIC
	STOP
END

IFUSION = 2
TOTERREUR = 2

LOOP
WHILE ENR_FUSION<IFUSION> # "" DO

	W_CODEAIDANT = FIELD(ENR_FUSION<IFUSION>,";",1)

	IF W_CODEAIDANT # "" THEN
	
		IF LEN(W_CODEAIDANT) < 5 THEN
			W_CODEAIDANT = W_CODEAIDANT "R(%5)"
		END

		W_RESULTAT = ""

		EXECUTE 'SELECT CONTRAT AVEC 0 = "':W_CODEAIDANT:']" AND AVEC 1 = "':W_CONVCOL:'" AND AVEC 6 = "P" AND AVEC 2 = "':W_ASSOC:'" AND AVEC 7 <= "12966" AND AVEC 8 => "12966" OR = "" AND AVEC 65 = ""'
		EXECUTE 'SAUVE-LISTE W_RESULTAT' 
		EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE
	
		IF MSGCODE<1> # 209 THEN
			SELECT F.CONTRAT TO W_RESULTAT 
		
			READNEXT W_CLECONT FROM W_RESULTAT ELSE W_CLECONT = ""
		
			READ ENR_CONTRAT FROM F.CONTRAT,W_CLECONT ELSE ENR_CONTRAT = ""
		
			W_VERIF = "VRAI"
			W_AVENANT = DCOUNT(EXTRACT(ENR_CONTRAT,14),CHAR(253))

			IF ENR_CONTRAT<15,W_AVENANT> = "12966" THEN
				W_NOAVENANT = ENR_CONTRAT<14,W_AVENANT>
				W_NOAVENANT = W_NOAVENANT "R(%2)"
			END ELSE
				W_NOAVENANT = ENR_CONTRAT<14,W_AVENANT> + 1
				W_NOAVENANT = W_NOAVENANT "R(%2)"
				W_AVENANT = W_AVENANT + 1
 			      ENR_CONTRAT<17,W_AVENANT> = ENR_CONTRAT<17,W_AVENANT-1>
			      ENR_CONTRAT<18,W_AVENANT> = ENR_CONTRAT<18,W_AVENANT-1>
			      ENR_CONTRAT<19,W_AVENANT> = ENR_CONTRAT<19,W_AVENANT-1>
			      ENR_CONTRAT<24,W_AVENANT> = ENR_CONTRAT<24,W_AVENANT-1>
			      ENR_CONTRAT<25,W_AVENANT> = ENR_CONTRAT<25,W_AVENANT-1>
			      ENR_CONTRAT<68,W_AVENANT> = ENR_CONTRAT<68,W_AVENANT-1>
			      ENR_CONTRAT<69,W_AVENANT> = ENR_CONTRAT<69,W_AVENANT-1>
			END
		
			ENR_CONTRAT<14,W_AVENANT> = W_NOAVENANT
			ENR_CONTRAT<15,W_AVENANT> = "12966"

			IF TRIM(FIELD(ENR_FUSION<IFUSION>,";",26)) # "" THEN
				ENR_CONTRAT<16,W_AVENANT> = ICONV(FIELD(ENR_FUSION<IFUSION>,";",26),"MCU")
                        ENR_CONTRAT<16,W_AVENANT> = CONVERT("","A",ENR_CONTRAT<16,W_AVENANT>)
			END ELSE
				W_VERIF = "FAUX"
				ENR_CONTRAT<16,W_AVENANT> = ""
			END

			W_GRILLE = FIELD(ENR_FUSION<IFUSION>,";",21)
			IF TRIM(W_GRILLE) # "" THEN
				GOSUB 10
				ENR_CONTRAT<20,W_AVENANT> = W_CONVCOL:W_GRILLE
			END ELSE
				W_VERIF = "FAUX"
				ENR_CONTRAT<20,W_AVENANT> = TRIM(W_GRILLE)
			END

			W_DATEANC = FIELD(ENR_FUSION<IFUSION>,";",22)
			IF TRIM(W_DATEANC) = "" THEN
				W_DATEANC = FIELD(ENR_FUSION<IFUSION>,";",20)
			END
			IF TRIM(W_DATEANC) = "" THEN
				W_VERIF = "FAUX"
				ENR_CONTRAT<21,W_AVENANT> = TRIM(W_DATEANC)
			END ELSE
				W_DATEANC = ICONV(W_DATEANC,"D2/")
				ENR_CONTRAT<21,W_AVENANT> = W_DATEANC
			END

			IF ENR_CONTRAT<21,W_AVENANT> # "" THEN
				W_NbSuspensionRest = (ENR_CONTRAT<70>/100)
				W_JourSusp = FIELD(ENR_FUSION<IFUSION>,";",19)
				W_NbSuspensionRest = W_NbSuspensionRest - W_JourSusp
				IF W_NbSuspensionRest => 0 AND W_NbSuspensionRest < 32 THEN
					ENR_CONTRAT<21,W_AVENANT> = ENR_CONTRAT<21,W_AVENANT> + W_NbSuspensionRest
				END ELSE
					W_VERIF = "FAUX"
				END
			END

			IF TRIM(FIELD(ENR_FUSION<IFUSION>,";",23)) # "" THEN
				ENR_CONTRAT<22,W_AVENANT> = INT((FIELD(ENR_FUSION<IFUSION>,";",23))*1000)
			END ELSE
				W_VERIF = "FAUX"
				ENR_CONTRAT<22,W_AVENANT> = ""
			END

			IF TRIM(FIELD(ENR_FUSION<IFUSION>,";",24)) # "" THEN
				ENR_CONTRAT<23,W_AVENANT> = INT((FIELD(ENR_FUSION<IFUSION>,";",24))*1000)
			END ELSE
				W_VERIF = "FAUX"
				ENR_CONTRAT<23,W_AVENANT> = ""
			END

			ENR_CONTRAT<70> = 0
		
			IF W_VERIF = "VRAI" THEN
				WRITE ENR_CONTRAT TO F.CONTRAT,W_CLECONT
			END ELSE
				W_NomPrenom = FIELD(ENR_FUSION<IFUSION>,";",2):" ":FIELD(ENR_FUSION<IFUSION>,";",3)
				W_NomPrenom = W_NomPrenom[1,41]
				IF ENR_CONTRAT<23,W_AVENANT> = "" THEN
					ENR_TEMPO<TOTERREUR> = W_CODEAIDANT:" ":W_NomPrenom:SPACE(42-LEN(W_NomPrenom)):"Nouveau taux horaire non renseign."
					TOTERREUR = TOTERREUR + 1
				END ELSE
					IF ENR_CONTRAT<22,W_AVENANT> = "" THEN
						ENR_TEMPO<TOTERREUR> = W_CODEAIDANT:" ":W_NomPrenom:SPACE(42-LEN(W_NomPrenom)):"Nouveau coefficient non renseign."
						TOTERREUR = TOTERREUR + 1
					END ELSE
						IF ENR_CONTRAT<21,W_AVENANT> = "" THEN
							ENR_TEMPO<TOTERREUR> = W_CODEAIDANT:" ":W_NomPrenom:SPACE(42-LEN(W_NomPrenom)):"Date d'anciennet non renseigne."
							TOTERREUR = TOTERREUR + 1
						END ELSE
							IF ENR_CONTRAT<20,W_AVENANT> = "" THEN
								ENR_TEMPO<TOTERREUR> = W_CODEAIDANT:" ":W_NomPrenom:SPACE(42-LEN(W_NomPrenom)):"Catgorie non renseigne."
								TOTERREUR = TOTERREUR + 1
							END ELSE
								IF ENR_CONTRAT<16,W_AVENANT> = "" THEN
									ENR_TEMPO<TOTERREUR> = W_CODEAIDANT:" ":W_NomPrenom:SPACE(42-LEN(W_NomPrenom)):"Nouvel emploi non renseign."
									TOTERREUR = TOTERREUR + 1
								END ELSE
									ENR_TEMPO<TOTERREUR> = W_CODEAIDANT:" ":W_NomPrenom:SPACE(42-LEN(W_NomPrenom)):"Nombre de jours de suspension erron."
									TOTERREUR = TOTERREUR + 1
								END
							END
						END
					END
				END
			END
		END ELSE
			W_NomPrenom = FIELD(ENR_FUSION<IFUSION>,";",2):" ":FIELD(ENR_FUSION<IFUSION>,";",3)
			W_NomPrenom = W_NomPrenom[1,41]
			ENR_TEMPO<TOTERREUR> = W_CODEAIDANT:" ":W_NomPrenom:SPACE(42-LEN(W_NomPrenom)):"Pas de contrat valide au 01/07/2003"
			TOTERREUR = TOTERREUR + 1
		END
	END
	IFUSION = IFUSION + 1
REPEAT

IF TOTERREUR # "2" THEN
	ENR_TEMPO<1,1> = "REMPLI"
	ENR_TEMPO<1,2> = TOTERREUR
	ENR_TEMPO<TOTERREUR> =  "Le nombre d'erreurs est de : ":(TOTERREUR-2)
END ELSE
	ENR_TEMPO<1> = "PAS D ERREUR"
END

WRITE ENR_TEMPO TO F.TEMPO,W_CLEFIC

STOP

**************************************
* AFFECTATION DE LA GRILLE DE CALCUL *
**************************************
10

BEGIN CASE
	CASE W_GRILLE MATCHES "A1"
		W_GRILLE = '100'
 	CASE W_GRILLE MATCHES "A2"
		W_GRILLE = '200'
	CASE W_GRILLE MATCHES "A3"
		W_GRILLE = '300'
	CASE W_GRILLE MATCHES "B1"
		W_GRILLE = '101'
	CASE W_GRILLE MATCHES "B2"
		W_GRILLE = '201'
	CASE W_GRILLE MATCHES "B3"
		W_GRILLE = '301'
	CASE W_GRILLE MATCHES "C1"
		W_GRILLE = '102'
	CASE W_GRILLE MATCHES "C2"
		W_GRILLE = '202'
	CASE W_GRILLE MATCHES "C3"
		W_GRILLE = '302'
	CASE W_GRILLE MATCHES "D1"
		W_GRILLE = '103'
	CASE W_GRILLE MATCHES "D2"
		W_GRILLE = '203'
	CASE W_GRILLE MATCHES "D3"
		W_GRILLE = '303'
	CASE W_GRILLE MATCHES "E1"
		W_GRILLE = '104'
 	CASE W_GRILLE MATCHES "E2"
		W_GRILLE = '204'
	CASE W_GRILLE MATCHES "E3"
		W_GRILLE = '304'
	CASE W_GRILLE MATCHES "F1"
		W_GRILLE = '105'
	CASE W_GRILLE MATCHES "F2"
		W_GRILLE = '205'
	CASE W_GRILLE MATCHES "F3"
		W_GRILLE = '305'
	CASE W_GRILLE MATCHES "G1"
		W_GRILLE = '106'
	CASE W_GRILLE MATCHES "G2"
		W_GRILLE = '206'
	CASE W_GRILLE MATCHES "G3"
		W_GRILLE = '306'
	CASE W_GRILLE MATCHES "H1"
		W_GRILLE = '107'
	CASE W_GRILLE MATCHES "H2"
		W_GRILLE = '207'
	CASE W_GRILLE MATCHES "H3"
		W_GRILLE = '307'
	CASE W_GRILLE MATCHES "I1"
		W_GRILLE = '108'
	CASE W_GRILLE MATCHES "I2"
		W_GRILLE = '208'
	CASE W_GRILLE MATCHES "I3"
		W_GRILLE = '308'
END CASE

RETURN
