*********************************************
*	 		 EDITION DES ECARTS				*
* ----------------------------------------- *
* Valentin 						le 23/09/07 *
*********************************************

**Dclaration des variables/fichiers...**
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"

OPEN "","ACCORDPROSP" TO F.ACCORDPROSP ELSE PRINT "ERREUR OUVERTURE ACCORDPROSP"
OPEN "","SUIVACCORDPROSP" TO F.SUIVACCORDPROSP ELSE PRINT "ERREUR OUVERTURE SUIVACCORDPROSP"
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "ERREUR OUVERTURE CIVILAIDE"
OPEN "","RESPONSABLE" TO F.RESPONSABLE ELSE PRINT "ERREUR OUVERTURE RESPONSABLE"
OPEN "","SECTEUR" TO F.SECTEUR ELSE PRINT "ERREUR OUVERTURE SECTEUR"
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE PRINT "ERREUR OUVERTURE ORGPRISECHARGE"
OPEN "","STATAIDE" TO F.STATAIDE ELSE PRINT "ERREUR OUVERTURE STATAIDE"
OPEN "","ABSENCESAIDE" TO F.ABSENCESAIDE ELSE PRINT "ERREUR OUVERTURE ABSENCESAIDE"
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "ERREUR OUVERTURE TEMPO"

PROCREAD PARAMETRES ELSE STOP
**Priode sous la forme AAAAMM
W_PERIODE = FIELD(PARAMETRES,"|",2)
W_USER = FIELD(PARAMETRES,"|",3)
**Tri Alpha/Croissant/Decroissant
W_TRI=FIELD(PARAMETRES,"|",4)
**Ecart Tous/Positif/Negatif
W_ECART=FIELD(PARAMETRES,"|",5)
**Edition graphique/Liste/Visu
W_EDITION=FIELD(PARAMETRES,"|",6)
**Secteur/Responsable/Commune ou Sans
W_SELECTION=FIELD(PARAMETRES,"|",7)
W_CODESELECTION=FIELD(PARAMETRES,"|",8)

ENR_ACCORDPROSP=""
ENR_RESPONSABLE=""
ENR_ORGPRISECHARGE=""
ENR_ABSENCESAIDE=""
ENR_FICHIER=""
W_ListeReq=""

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

ENR_FICHIER<1>="Code Aid;Nom-prnom aid;Secteur;Responsable;Commune;Organisme;Type prise en charge;Type heures;Heures accordes;Heures prvues;Ecart;Jours d'absence de l'aid sur la priode;Modif"
i=2
W_Fin="F"
W_Req='SELECT ACCORDPROSP AVEC @ID = "[':W_PERIODE:'"'

IF W_CODESELECTION # "" THEN
	W_Req=W_Req:' AND AVEC ':W_SELECTION:' = "':W_CODESELECTION:'"'
END

IF W_SELECTION # "" THEN
	W_Req=W_Req:' PAR ':W_SELECTION
END

IF W_TRI="CROIS" THEN W_Req=W_Req:' PAR 8 PAR NomPrenomAide'
IF W_TRI="ALPHA" THEN W_Req=W_Req:' PAR NomPrenomAide PAR 5 PAR 8'
IF W_TRI="DECROIS" THEN W_Req=W_Req:' PAR-DECR 8 PAR NomPrenomAide'

**Fin de la Dclaration**

**Dbut du traitement**
EXECUTE W_Req
EXECUTE 'SAUVE-LISTE W_ListeReq'
EXECUTE "LISTE W_ListeReq" RETURNING MSGCODE
IF MSGCODE<1>=209 THEN
   **
END ELSE
	SELECT F.ACCORDPROSP TO W_ListeReq
	LOOP
		READNEXT W_Cle FROM W_ListeReq ELSE W_Fin = "V"
	WHILE W_Fin # "V"
	
		READ ENR_ACCORDPROSP FROM F.ACCORDPROSP,W_Cle ELSE ENR_ACCORDPROSP=""
		READ ENR_ABSENCESAIDE FROM F.ABSENCESAIDE,W_Cle[1,5] ELSE ENR_ABSENCESAIDE=""
		READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORDPROSP<1> ELSE ENR_ORGPRISECHARGE=""
		READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_Cle[1,5] ELSE ENR_CIVILAIDE=""
		
		IF (W_ECART="POS" AND ENR_ACCORDPROSP<8>[1,1]#"-" AND ENR_ACCORDPROSP<8>#"0") OR (W_ECART="NEG" AND ENR_ACCORDPROSP<8>[1,1]="-") OR W_ECART="TOUS" THEN
		
			READ ENR_RESPONSABLE FROM F.RESPONSABLE,ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE=""
			READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEUR=""
			
			ENR_FICHIER<i>=W_Cle[1,5]:";":ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>:";":ENR_SECTEUR<1>:";":ENR_RESPONSABLE<1>:";":ENR_CIVILAIDE<11>:";"
			ENR_FICHIER<i>=ENR_FICHIER<i>:ENR_ORGPRISECHARGE<1>:";"
			
			**si nordre>1000 alors accord sinon demande d'accord
			IF W_Cle[6,4]>=1000 AND W_Cle[6,4]<9999 THEN
				ENR_FICHIER<i>=ENR_FICHIER<i>:"D;"
			END ELSE
				IF W_Cle[6,4]>=1 AND W_Cle[6,4]<1000 THEN
					ENR_FICHIER<i>=ENR_FICHIER<i>:"A;"
				END ELSE
					ENR_FICHIER<i>=ENR_FICHIER<i>:" ;"
				END
			END
			
			W_TypeHeure = ENR_ORGPRISECHARGE<51>
			IF W_TypeHeure = 0 THEN
				W_TypeHeure = "Tot."
			END ELSE
				IF W_TypeHeure = 1 THEN
					W_TypeHeure = "DimJF"
				END ELSE
					IF W_TypeHeure = 2 THEN				
						W_TypeHeure = "Sem."
					END ELSE
						W_TypeHeure = ""						
					END
				END
			END
			
		* Enregistrement du type d'heure
			ENR_FICHIER<i>=ENR_FICHIER<i>:W_TypeHeure:";"
			
		* Enregistrement des heures accordes
			****** Grer le format heure
			ENR_FICHIER<i>=ENR_FICHIER<i>:ENR_ACCORDPROSP<4>:";"
			
		* Enregistrement des heures prvues
			****** Grer le format heure
			ENR_FICHIER<i>=ENR_FICHIER<i>:ENR_ACCORDPROSP<7>:";"
			
		* Enregistrement de l'cart
			**** A faire : HEURES PREVUES - HEURES ACCORDEES
			*ECART=ENR_ACCORDPROSP<7>-ENR_ACCORDPROSP<4>
			ECART=ENR_ACCORDPROSP<8>
			ENR_FICHIER<i>=ENR_FICHIER<i>:ECART:";"
			
		* Enregistrement du nombre dejour d'absence
			**** Lecture du fichier ABSENCESAIDE (plus haut) --> Calcul du nombre de jours d'absences
			W_NbJourAbs=0
			FOR y=1 TO DCOUNT(ENR_ABSENCESAIDE<1>,CHAR(253))
				W_DebAbs = ENR_ABSENCESAIDE<1, y>
				W_FinAbs = ENR_ABSENCESAIDE<2, y>
				W_Motif = ENR_ABSENCESAIDE<3, y>
				
				*Test si la date trouve est comprise dans la priode demande
				IF W_DebAbs < W_PeriodeFin AND W_FinAbs >= W_PeriodeDeb THEN
					*Comptage du nombre de jours d'absences
					IF W_PeriodeDeb > W_DebAbs THEN
						W_DebAbs = W_PeriodeDeb
					END
					IF W_PeriodeFin < W_FinAbs THEN
						W_FinAbs = W_PeriodeFin
					END					
					W_NbJourAbs = W_NbJourAbs + (W_FinAbs - W_DebAbs + 1)
					*W_DebAbs = OCONV(W_DebAbs,"D4/")
					*W_FinAbs = OCONV(W_FinAbs,"D4/")
				END
				**
			NEXT y
			ENR_FICHIER<i>=ENR_FICHIER<i>:W_NbJourAbs:";"
			
			**cl suivaccordprosp
			W_CleAccord=W_Cle[1,5]:W_PERIODE
			
		* Enregistrement de la date de dernire mise  jour
			READ ENR_SUIVACCORDPROSP FROM F.SUIVACCORDPROSP,W_CleAccord ELSE ENR_SUIVACCORDPROSP=""
			IF ENR_SUIVACCORDPROSP<8>="1" THEN
				ENR_FICHIER<i>=ENR_FICHIER<i>:"X;"
			END
			
			i=i+1
		END
		
	REPEAT
	
	EXECUTE 'EFFACER-LISTE W_ListeReq'
END

**au cas ou l'utilisateur a choisir de visualiser ou l'edition, ecrire l'enregistrement dans le fichier tempo avec la cl="ECART":W_PERIODE:W_USER
**sinon enregistrer le csv
IF ENR_FICHIER<2>#"" THEN
	W_Date=OCONV(DATE(),"D4/")
	W_Date=W_Date[1,2]:W_Date[4,2]:W_Date[7,4]
	**Edition Liste ou Visu
	IF W_EDITION#"GRAPH" THEN
		ENR_FICHIER=DELETE(ENR_FICHIER,1)
		ENR_FICHIER=CONVERT(";",CHAR(253),ENR_FICHIER)
		WRITE ENR_FICHIER ON F.TEMPO,"ECART":W_PERIODE:W_USER
	**Edition Graph
	END ELSE
		WRITE ENR_FICHIER ON F.STATAIDE,"ECART":W_PERIODE:W_USER:W_Date:".csv"
		ENR_FICHIER=""
		ENR_FICHIER="ECART":W_PERIODE:W_USER:W_Date:".csv"
		WRITE ENR_FICHIER ON F.TEMPO,"ECART":W_PERIODE:W_USER
	END
END ELSE
	ENR_FICHIER=""
	ENR_FICHIER<1>="AUCUN ENREGISTREMENT TROUVE"
	WRITE ENR_FICHIER ON F.TEMPO,"ECART":W_PERIODE:W_USER
END

STOP
