******************************************* 
* CREATION DU FICHIER Anomalies Domitime  *
* POUR LE MONITEUR DE CONTROLE            *
* LOIC                                    * 
* 27/07/2007    	    			      *
*******************************************

SUBROUTINE EXPORTANODOMITIME(RETURNVAL, ARGUMENTS, OUTPUTANODOMITIME)

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"

OPEN "","TLGANOPOINTAGE" TO F.TLGANOPOINTAGE ELSE PRINT "OUVERTURE TLGANOPOINTAGE" ;* en lecture
OPEN "","FUSION" TO F.FUSION ELSE PRINT "OUVERTURE FUSION" ;* en lecture
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "OUVERTURE CIVILAIDANT" ;* en lecture
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "OUVERTURE CIVILAIDE" ;* en lecture
OPEN "","SECTEUR" TO F.SECTEUR ELSE PRINT "OUVERTURE SECTEUR" ;* en lecture


* 1er jour du mois
W_DateDebut = ""
W_Secteur = ""
W_Commune = ""

* date d'affichage
W_DateFin = ""

*W_DateFin=FIELD(ARGUMENTS,"|",2)
*W_Secteur = FIELD(ARGUMENTS,"|",3)
*W_Commune = FIELD(ARGUMENTS,"|",4)

W_DateFin=ARGUMENTS<1>
W_Secteur = ARGUMENTS<2>
W_Commune = ARGUMENTS<3>
W_RequeteExtractAnoPointage = ""

*W_Date=OCONV(W_DateFin,"D4/")
W_Mois=W_DateFin[4,2]
W_An=W_DateFin[7,4]
W_Jour=W_DateFin[1,2]
W_DateDebut=ICONV("01":"/":W_Mois:"/":W_An,"D4/") - 1
W_DateFin=ICONV(W_DateFin,"D4/")

W_Index = 1

ENR_FUSION = "Secteur"
W_Select='SELECT TLGANOPOINTAGE AVEC 8 <> "" AND AVEC DatePointageTlgAnoPointage >= "':W_DateDebut:'" AND AVEC DatePointageTlgAnoPointage <= "':W_DateFin:'"'
IF W_Secteur # "" THEN
		W_Select = W_Select:' AND AVEC SecteurAnoDomi = "':W_Secteur:'"'
END ELSE
	IF W_Commune # "" THEN
		W_Select = W_Select:' AND AVEC CommuneAideAnoDomi = "':W_Commune:'"'
		ENR_FUSION = "Commune"
	END
END

ENR_FUSION=ENR_FUSION:";Date;Aidant;Aid;Arrive;Depart;Anomalie"
	
W_Select=W_Select:' PAR SecteurAnoDomi PAR DatePointageTlgAnoPointage PAR NomPrenomAideAnoDomi par NomPrenomAidantAnoDomi'
EXECUTE W_Select
EXECUTE 'SAUVE-LISTE W_RequeteExtractAnoPointage'
EXECUTE "LISTE W_RequeteExtractAnoPointage" RETURNING MSGCODE

IF MSGCODE<1> # 209 THEN
	SELECT F.TLGANOPOINTAGE TO W_RequeteExtractAnoPointage
	W_Fini = "FAUX"
	LOOP
		READNEXT W_Ano FROM W_RequeteExtractAnoPointage ELSE W_Fini = "VRAI"
	WHILE W_Fini = "FAUX" DO
		W_Index = W_Index + 1
		GOSUB 100
	REPEAT
END

NomFichier="ListeAnomaliesPointage-":W_An:W_Mois:W_Jour:".csv"
ENR_FUSION=CONVERT(CHAR(253),';',ENR_FUSION)
WRITE ENR_FUSION ON F.FUSION,NomFichier
OUTPUTANODOMITIME = NomFichier
RETURN

**************************************
* Traitement d'1 anomalie      *
**************************************
100
ENR_TLGANOPOINTAGE = ""
ENR_CIVILAIDANT = ""
ENR_CIVILAIDE = ""
ENR_SECTEUR = ""
W_Anomalie = ""
W_Secteur = "INCONNU"
READ ENR_TLGANOPOINTAGE FROM F.TLGANOPOINTAGE, W_Ano THEN
	
	* lecture aidant
	READ ENR_CIVILAIDANT FROM F.CIVILAIDANT, ENR_TLGANOPOINTAGE<1>[3,5] ELSE ENR_CIVILAIDANT<2> = "INCONNU"
	* lecture aide
	READ ENR_CIVILAIDE FROM F.CIVILAIDE, ENR_TLGANOPOINTAGE<7> ELSE ENR_CIVILAIDE<2> = "INCONNU"

	*Secteur / Commune
	
*	IF W_Secteur # "" THEN
*		READ ENR_SECTEUR FROM F.SECTEUR,W_Secteur ELSE W_Secteur = "INCONNU"
*		ENR_FUSION<W_Index,1> = W_Secteur
*	END ELSE
*		IF W_Commune # "" THEN
*			ENR_FUSION<W_Index,1> = W_Commune
*		END ELSE
*			IF ENR_CIVILAIDE<2> # "INCONNU" THEN
*				ENR_FUSION<W_Index,1> = ENR_CIVILAIDE<11>
*			END ELSE
*				ENR_FUSION<W_Index,1> = ENR_CIVILAIDANT<11>
*			END
*		END
*	END

	IF ENR_CIVILAIDE # "INCONNU" THEN
		READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] THEN 
			W_Secteur = ENR_SECTEUR<1> 
		END
	END
	
	IF W_Secteur = "INCONNU" AND ENR_CIVILAIDANT<2> # "INCONNU" THEN
		READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDANT<31> THEN 
			W_Secteur = ENR_SECTEUR<1>
		END
	END
	
	ENR_FUSION<W_Index,1> = W_Secteur
	
	*Date
	ENR_FUSION<W_Index,2> = OCONV(ENR_TLGANOPOINTAGE<3>,"D4/")
	
	*Aidant
	ENR_FUSION<W_Index,3> = ENR_TLGANOPOINTAGE<1>[3,5]:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
	
	*Aide
	IF ENR_TLGANOPOINTAGE<7> # "" THEN
		ENR_FUSION<W_Index,4> = ENR_TLGANOPOINTAGE<7>:" ":ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
	END ELSE
		ENR_FUSION<W_Index,4> = ENR_CIVILAIDE<2>
	END
	
	IF ENR_TLGANOPOINTAGE<5> = "1" THEN
		*Arrive
		ENR_FUSION<W_Index,5> = ENR_TLGANOPOINTAGE<4>
		ENR_FUSION<W_Index,6> = ""
	END ELSE
		* Dpart
		ENR_FUSION<W_Index,5> = ""
		ENR_FUSION<W_Index,6> = ENR_TLGANOPOINTAGE<4>
	END
	*Anomalie
	BEGIN CASE
		CASE ENR_TLGANOPOINTAGE<8> = '1'
			W_Anomalie = "Tlphone aid inconnu"
		CASE ENR_TLGANOPOINTAGE<8> = '2'	
			W_Anomalie = "Plusieurs aids pour ce tlphone" 
		CASE ENR_TLGANOPOINTAGE<8> = '3'
			W_Anomalie = "Code aidant mal saisi"
		CASE ENR_TLGANOPOINTAGE<8> = '4'
			W_Anomalie = "Aidant inconnu" 
		CASE ENR_TLGANOPOINTAGE<8> = '5'
			W_Anomalie = "Pas de pointage de dpart" 
		CASE ENR_TLGANOPOINTAGE<8> = '6'
			W_Anomalie = "Pas de pointage d'arrive"
		CASE 1 
			W_Anomalie = "Anomalie non rpertorie"
	END CASE
	ENR_FUSION<W_Index,7> = W_Anomalie
	
END
RETURN
