*****************************************************
*			RAPPORT D'ACTIVITE U.N.A. ANNUEL		*
*****************************************************
******************************
*Initialisation des variables*
******************************
W_CODEASSO = ""
W_DATE = ""
W_Requete = ""
ENR_FICHIER = ""
W_End = ""
W_Cle = ""
W_CleHistorCumul = ""
DATEAVENANT = ""
g = ""
W_Date1 = ""
W_NomFichier = ""
Age = ""
W_ListeReq = ""
GRILLESCC = ""
HISTORCUMUL = ""
CONTRAT = ""
CIVILAIDANT = ""
W_Annee = ""
******************************
*  Ouvertures des fichiers   *
******************************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","CONTRAT" TO F.CONTRAT ELSE PRINT "ERREUR OUVERTURE CONTRAT"
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "ERREUR OUVERTURE CIVILAIDANT"
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE PRINT "ERREUR OUVERTURE ASSOCIATION"
OPEN "","HISTORCUMUL" TO F.HISTORCUMUL ELSE PRINT "ERREUR OUVERTURE HISTORCUMUL"
OPEN "","GRILLESCC" TO F.GRILLESCC ELSE PRINT "ERREUR OUVERTURE GRILLESCC"
OPEN "","STATAIDANT" TO F.STATAIDANT ELSE PRINT "ERREUR OUVERTURE STATAIDANT"
******************************
*  		    DEBUT   		 *
******************************
PRINT "**RAPPORT D'ACTIVITE U.N.A.**"
PRINT "Saisir le code entite juridique: "
INPUT W_CODEASSO
LOOP
WHILE LEN(W_CODEASSO)<3 DO
	W_CODEASSO = "0":W_CODEASSO
REPEAT
PRINT "Saisir l'annee de traitement desiree: "
INPUT W_Annee
READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CODEASSO ELSE ENR_ASSOCIATION=""
IF ENR_ASSOCIATION = "" THEN
	PRINT "Pas d'association correspondant au code d'entite juridique saisi"
	STOP
END
IF ENR_ASSOCIATION<25> = 1 THEN
	W_DATE = "30/11/":W_Annee
END ELSE
	W_DATE = "31/12/":W_Annee
END
W_DATE = ICONV(W_DATE,"D4/")
W_Requete = 'SSELECT CONTRAT AVEC 7 <= "':W_DATE:'" AND AVEC 2 = "':W_CODEASSO:'" AND AVEC 8 >= "':W_DATE:'" OR = "" AND AVEC 65 = "" AND AVEC 1 <> "02" PAR NomPrenomAidantContrat'
W_DateRefAvenant = W_DATE
W_DATE = OCONV(W_DATE,"D4/")
EXECUTE W_Requete
EXECUTE 'SAUVE-LISTE W_ListeReq'
EXECUTE "LISTE W_ListeReq" RETURNING MSGCODE
IF MSGCODE<1>=209 THEN
   PRINT "Aucun contrat n'a ete trouve"
   STOP
END ELSE
   SELECT F.CONTRAT TO W_ListeReq
END
**criture en-tte**
ENR_FICHIER<1> = "Code;Nom-Prnom;CCN;Type contrat;Personnel;Dbut contrat;Nature;Qualification professionnelle;Grille;Catgorie;Profil;Heures payes;Salaires brut;Sexe;Age;Anciennet;Motif embauche"
W_End = "FAUX"
i = 2
LOOP
	READNEXT W_Cle FROM W_ListeReq ELSE W_End = "VRAI"
WHILE W_End = "FAUX" DO
	READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_Cle[1,5] ELSE ENR_CIVILAIDANT = ""
	READ ENR_CONTRAT FROM F.CONTRAT,W_Cle ELSE ENR_CONTRAT = ""
	W_CleHistorCumul = W_Cle[1,5]:W_Annee:ENR_CONTRAT<2>
	READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,W_CleHistorCumul  ELSE ENR_HISTORCUMUL = ""
	ENR_FICHIER<i> = W_Cle[1,5]
	ENR_FICHIER<i> = ENR_FICHIER<i> :";":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
	ENR_FICHIER<i> = ENR_FICHIER<i> :";":ENR_CONTRAT<1>
	IF ENR_CONTRAT<4> = "D" THEN
		ENR_FICHIER<i> = ENR_FICHIER<i> :";":"CDD"
	END ELSE
		ENR_FICHIER<i> = ENR_FICHIER<i> :";":"CDI"
	END
	IF ENR_CONTRAT<6> = "P" THEN
		ENR_FICHIER<i> = ENR_FICHIER<i> :";":"Production"
	END ELSE
		ENR_FICHIER<i> = ENR_FICHIER<i> :";":"Administration"
	END
	ENR_FICHIER<i> = ENR_FICHIER<i> :";":OCONV(ENR_CONTRAT<7>,"D4/")
	ENR_FICHIER<i> = ENR_FICHIER<i> :";":ENR_CONTRAT<13>
	g = 1
	DATEAVENANT = ENR_CONTRAT<15, 1>
	FOR y=2 TO DCOUNT(ENR_CONTRAT<15>,CHAR(253))
		IF ENR_CONTRAT<15, y> <= W_DateRefAvenant THEN
			DATEAVENANT = ENR_CONTRAT<15, y>
			g = y
		END
	NEXT y
	ENR_FICHIER<i> = ENR_FICHIER<i> :";":ENR_CONTRAT<16, g>
	READ ENR_GRILLESCC FROM F.GRILLESCC,ENR_CONTRAT<20, g> ELSE ENR_GRILLESCC = ""
	ENR_FICHIER<i> = ENR_FICHIER<i> :";":ENR_GRILLESCC<1>
	ENR_FICHIER<i> = ENR_FICHIER<i> :";":ENR_GRILLESCC<7>
	ENR_FICHIER<i> = ENR_FICHIER<i> :";":ENR_CONTRAT<26>
	ENR_FICHIER<i> = ENR_FICHIER<i> :";":ENR_HISTORCUMUL<2>
	ENR_FICHIER<i> = ENR_FICHIER<i> :";":ENR_HISTORCUMUL<5>
	IF ENR_CIVILAIDANT<16> = "M" THEN
		ENR_FICHIER<i> = ENR_FICHIER<i> :";":"Masculin"
	END ELSE
		ENR_FICHIER<i> = ENR_FICHIER<i> :";":"Fminin"
	END
	W_Date1 = OCONV(ENR_CIVILAIDANT<26>,"D4/")
	IF FIELD(W_Date1,"/",2) < FIELD(W_DATE,"/",2) THEN
		Age = FIELD(W_DATE,"/",3) - FIELD(W_Date1,"/",3)
	END ELSE
		IF FIELD(W_Date1,"/",2) = FIELD(W_DATE,"/",2) THEN
			IF FIELD(W_Date1,"/",1) <= FIELD(W_DATE,"/",1) THEN
				Age = FIELD(W_DATE,"/",3) - FIELD(W_Date1,"/",3)
			END
		END ELSE
			Age = FIELD(W_DATE,"/",3) - FIELD(W_Date1,"/",3) - 1
		END
	END
	ENR_FICHIER<i> = ENR_FICHIER<i>:";":Age
	W_Date1 = OCONV(ENR_CONTRAT<7>,"D4/")
	IF FIELD(W_Date1,"/",2) < FIELD(W_DATE,"/",2) THEN
		Age = FIELD(W_DATE,"/",3) - FIELD(W_Date1,"/",3)
	END ELSE
		IF FIELD(W_Date1,"/",2) = FIELD(W_DATE,"/",2) THEN
			IF FIELD(W_Date1,"/",1) <= FIELD(W_DATE,"/",1) THEN
				Age = FIELD(W_DATE,"/",3) - FIELD(W_Date1,"/",3)
			END
		END ELSE
			Age = FIELD(W_DATE,"/",3) - FIELD(W_Date1,"/",3) - 1
		END
	END
	IF Age = -1 THEN
		Age = 0
	END
	ENR_FICHIER<i> = ENR_FICHIER<i>:";":Age
	IF ENR_CONTRAT<4> = "D" THEN
		ENR_FICHIER<i> = ENR_FICHIER<i>:";":CONVERT("","",ENR_CONTRAT<9>)
	END
	i = i + 1
REPEAT
W_NomFichier = "RapportUNA-":W_CODEASSO:"-Prest":CONVERT("/","",OCONV(DATE(),"D4/")):".csv"
WRITE ENR_FICHIER ON F.STATAIDANT,W_NomFichier
PRINT "Le fichier ":W_NomFichier:" a bien ete genere dans le dossier STATAIDANT"
EXECUTE 'EFFACER-LISTE W_ListeReq'
STOP
