
***************************************************************
* 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)
	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))
		W_NOAVENANT = ENR_CONTRAT<14,W_AVENANT>
		W_NOAVENANT = W_NOAVENANT "R(%2)"
		
		ENR_CONTRAT<14,W_AVENANT> = W_NOAVENANT

		IF TRIM(FIELD(ENR_FUSION<IFUSION>,";",26)) # "" THEN
			ENR_CONTRAT<16,W_AVENANT> = FIELD(ENR_FUSION<IFUSION>,";",26)
		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 renseign."
						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 renseign."
							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 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)):"n'a pas de contrat valide au 01/07/2003"
		TOTERREUR = TOTERREUR + 1
	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'erreur 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
