*PARAMETRES*
*Domitime - Statistiques*
*Date de dbut (JJ/MM/AAAA) |10X|TXT|O*
*Date de fin (JJ/MM/AAAA) |10X|TXT|O*
*Type activit (P, M ou vide) |1X|TXT|N*
*FIN PARAMETRES*

*********************************************************************

SUBROUTINE DOMILISTESTATS(RETURNVAL,PARAMETRES,W_Sortie)
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"

*********************************************************************

OPEN "","TLGPOINTAGE" TO F.TLGPOINTAGE ELSE RETURN
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE RETURN
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE RETURN
OPEN "","SECTEUR" TO F.SECTEUR ELSE RETURN
OPEN "","TPSTEMPO" TO F.TPSTEMPO ELSE RETURN
OPEN "","DOMITIME" TO F.DOMITIME ELSE RETURN
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE RETURN
OPEN "","RESPONSABLE" TO F.RESPONSABLE ELSE RETURN

*********************************************************************

ENR_PLG=""
ENR_TLG=""

ENR_TLGPOINTAGE=""
ENR_CIVILAIDANT=""
ENR_SECTEUR=""
ENR_TPSTEMPO=""
ENR_CIVILAIDE=""
ENR_SECTEURAIDE=""
ENR_ACTIVITES=""
ENR_RESPONSABLE=""

ENR_AIDANTS=""
ENR_PLGTLG=""

* Le tableau est "form" avec des MV car de cette manire, on pourra facilement incrmententer les valeurs qui nous intressent (pas besoind d'utiliser des variables).
ENR_AIDANTS<-1>='Secteur':CHAR(253):'Commune':CHAR(253):'Code':CHAR(253):'Nom prenom':CHAR(253):'Nb tot. interv. plg':CHAR(253):'Nb tot. interv. tlg':CHAR(253):'Nb interv. ok plg':CHAR(253):'Nb deduc. deb. plg':CHAR(253):'Nb deduc fin plg':CHAR(253):'Nb interv. ok tlg':CHAR(253):'Nb deduc. deb. tlg':CHAR(253):'Nb deduc fin tlg':CHAR(253):'Nb interv. plg sans tlg':CHAR(253):'Plg moins tlg':CHAR(253):'Nb deduc min. compl.'

ENR_PLGTLG<-1>='Secteur aidant;Commune aidant;Code aidant;Nom prenom aidant;Secteur aide;Commune aide;Code aide;Nom prenom aide;Responsable;Date;Hre deb plg;HreFin plg;Hre deb tlg;Hre fin tlg;Duree plg;Duree tlg;Diff tlg-plg;Activit;Aid tlgr'

TAB_TLG=""

W_HreDebPlg=""
W_HreFinPlg=""
W_HreDebTlg=""
W_HreFinTlg=""

W_ReqTlg=""

W_DateDeb=ICONV(PARAMETRES<1>,"D4/")
W_DateFin=ICONV(PARAMETRES<2>,"D4/")
W_TypeAct=PARAMETRES<3>
IF W_TypeAct="" THEN W_TypeAct="PM"
*********************************************************************

PRINT TIMEDATE():" Avant slection des pointages"
GOSUB 10
PRINT TIMEDATE():" Aprs slection des pointages"
GOSUB 20

PRINT TIMEDATE():" Avant criture"
ENR_AIDANTS=CONVERT(CHAR(253),";",ENR_AIDANTS)

W_DateDeb=OCONV(W_DateDeb,"D4/")
W_DateDeb=W_DateDeb[7,4]:W_DateDeb[4,2]:W_DateDeb[1,2]
W_DateFin=OCONV(W_DateFin,"D4/")
W_DateFin=W_DateFin[7,4]:W_DateFin[4,2]:W_DateFin[1,2]

ENR_AIDANTS<-1>=""
ENR_AIDANTS<-1>="Lgende"
ENR_AIDANTS<-1>="Nb tot. interv. plg : nombre d'interventions planifies"
ENR_AIDANTS<-1>="Nb tot. interv. tlg : nombre de pointages valids"
ENR_AIDANTS<-1>="Nb interv. ok plg : nombre d'interventions planifies correctement pointes"
ENR_AIDANTS<-1>="Nb deduc. arr. plg : nombre d'interventions planifies avec dduction du dbut"
ENR_AIDANTS<-1>="Nb deduc dep. plg : nombre d'interventions planifies avec dduction de la fin"
ENR_AIDANTS<-1>="Nb interv. ok tlg : nombre de pointages valids sans planning"
ENR_AIDANTS<-1>="Nb deduc. arr. tlg : nombre de pointages valids sans planning avec dduction du dbut"
ENR_AIDANTS<-1>="Nb deduc dep. tlg : nombre de pointages valids sans planning avec dduction de la fin"
ENR_AIDANTS<-1>="Nb interv. plg sans tlg : nombre d'interventions planifies sans pointage"
ENR_AIDANTS<-1>="Plg moins tlg : nombre d'interventions planifies - nombre de pointages valids sans planning"
ENR_AIDANTS<-1>="Nb deduc min. compl. : nombre d'interventions avec dduction du dbut grce aux minutes complmentaires"

IF ENR_AIDANTS<2><>"" THEN
	IF W_TypeAct="PM" THEN
		WRITE ENR_AIDANTS ON F.DOMITIME, "Liste des aidants - Stats ":W_DateDeb:" ":W_DateFin:".csv"
		WRITE ENR_PLGTLG ON F.DOMITIME, "Comparaison planning-tlgestion ":W_DateDeb:" ":W_DateFin:".csv"
		W_Sortie='Les fichiers suivants ont t gnrs dans le rpertoire DOMITIME :':CHAR(13):CHAR(10)
		W_Sortie=W_Sortie:'       - Liste des aidants - Stats ':W_DateDeb:' ':W_DateFin:'.csv':CHAR(13):CHAR(10)
		W_Sortie=W_Sortie:'       - Comparaison planning-tlgestion ':W_DateDeb:' ':W_DateFin:'.csv'
	END ELSE
		IF W_TypeAct="P" THEN W_TypeAct = "Prestataire"
		IF W_TypeAct="M" THEN W_TypeAct = "Mandataire"
		WRITE ENR_AIDANTS ON F.DOMITIME, "Liste des aidants - Stats ":W_DateDeb:" ":W_DateFin:" - ":W_TypeAct:".csv"
		WRITE ENR_PLGTLG ON F.DOMITIME, "Comparaison planning-tlgestion ":W_DateDeb:" ":W_DateFin:" - ":W_TypeAct:".csv"
		W_Sortie='Les fichiers suivants ont t gnrs dans le rpertoire DOMITIME :':CHAR(13):CHAR(10)
		W_Sortie=W_Sortie:'       - Liste des aidants - Stats ':W_DateDeb:' ':W_DateFin:' - ':W_TypeAct:'.csv':CHAR(13):CHAR(10)
		W_Sortie=W_Sortie:'       - Comparaison planning-tlgestion ':W_DateDeb:' ':W_DateFin:' - ':W_TypeAct:'.csv'
	END
END ELSE
	W_Sortie="Aucune donne n'a pu tre traite."
END
	
	
PRINT TIMEDATE():" Aprs criture"

RETURN
*********************************************************************
* Slection des interventions de la tlgestion
*********************************************************************
10

	* On cr le tableau des pointages
	IF W_TypeAct="PM" THEN
		EXECUTE 'SELECT TLGPOINTAGE AVEC DateDebInterv <= "':W_DateFin:'" AND AVEC DateFinInterv >= "':W_DateDeb:'" AND AVEC 11 <> "[Cration via]" AND <> "[Creation via]" PAR NomPrenomAidant PAR CodeAidant PAR DateDebInterv PAR HeureDebInterv'
	END ELSE
		EXECUTE 'SELECT TLGPOINTAGE AVEC TypeActivite = "':W_TypeAct:'" AND AVEC DateDebInterv <= "':W_DateFin:'" AND AVEC DateFinInterv >= "':W_DateDeb:'" AND AVEC 11 <> "[Cration via]" AND <> "[Creation via]" PAR NomPrenomAidant PAR CodeAidant PAR DateDebInterv PAR HeureDebInterv'	
	END

	EXECUTE 'SAUVE-LISTE W_ReqTlg'
	EXECUTE 'LISTE W_ReqTlg' RETURNING MSGCODE

	IF MSGCODE<1> # "209" THEN

		SELECT F.TLGPOINTAGE TO W_ReqTlg

		W_Fin = "F"
		LOOP
			READNEXT W_Cle FROM W_ReqTlg ELSE W_Fin = "O"
		WHILE W_Fin = "F"
			READ ENR_TLGPOINTAGE FROM F.TLGPOINTAGE, W_Cle THEN
				IF ENR_TLGPOINTAGE<7><>"" THEN
					W_HreDebTlg=ENR_TLGPOINTAGE<7>
				END ELSE
					W_HreDebTlg=W_Cle[19,5]
				END
				IF ENR_TLGPOINTAGE<8><>"" THEN
					W_HreFinTlg=ENR_TLGPOINTAGE<8>
				END ELSE
					W_HreFinTlg=ENR_TLGPOINTAGE<4>[1,5]
				END				
				TAB_TLG<-1>='AIDANT':W_Cle[3,5]:CHAR(253):'AIDE':W_Cle[9,5]:CHAR(253):W_Cle[14,5]:CHAR(253):W_HreDebTlg:CHAR(253):W_HreFinTlg:CHAR(253):ENR_TLGPOINTAGE<10>:CHAR(253):CHAR(253):CHAR(253):ENR_TLGPOINTAGE<5>
				
			END
		REPEAT
	END
	
	WRITE TAB_TLG ON F.DOMITIME, "TAB_TLG.csv"

RETURN
*********************************************************************
* Lancement d'AFFICHEPLANNING et comparaison avec la tlgestion
*********************************************************************
20

	PRINT TIMEDATE():" Avant AFFICHEPLANNING"
	EXECUTE 'AFFICHEPLANNING |ADMDOMI2|001|':W_TypeAct:'|':W_DateDeb:'|':W_DateFin:'||||E|||'
	PRINT TIMEDATE():" Aprs AFFICHEPLANNING"

	PRINT TIMEDATE():" Avant traitement TPSTEMPO"
	READ ENR_TPSTEMPO FROM F.TPSTEMPO, "AFFICHEPLANNINGADMDOMI2" THEN
		WRITE ENR_TPSTEMPO ON F.DOMITIME, "TPSTEMPO.csv"
		PRINT TIMEDATE():" Nombre ligne TPSTEMPO : ":DCOUNT(ENR_TPSTEMPO, CHAR(254))
		W_NouvAidant=""
		I=0
		J=1
		LOOP
			I=I+1
		WHILE I<=DCOUNT(ENR_TPSTEMPO, CHAR(254))
			PRINT DCOUNT(ENR_TPSTEMPO, CHAR(254)):' - I : ':I:'     -     ':DCOUNT(TAB_TLG,CHAR(254)):' - J : ':J
			IF ENR_TPSTEMPO<I>[1,7]="#Interv" THEN
				READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,ENR_TPSTEMPO<I>[8,5] ELSE ENR_CIVILAIDANT=""
				READ ENR_SECTEUR FROM F.SECTEUR, ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR=""

				W_Aidant=ENR_TPSTEMPO<I>[8,5]
				W_CivilAidantPlg=ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>
				
				W_Trouve="FAUX"
				FOR W_Ligne=1 TO DCOUNT(ENR_AIDANTS,CHAR(254))
					IF ENR_AIDANTS<W_Ligne,3>=W_Aidant THEN
						W_Trouve="VRAI"
						EXIT
					END
				NEXT W_Ligne
				IF W_Trouve="FAUX" THEN
					ENR_AIDANTS<-1>=ENR_SECTEUR<1>:CHAR(253):ENR_CIVILAIDANT<11>:CHAR(253):ENR_TPSTEMPO<I>[8,5]:CHAR(253):ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>:CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0'
				END
				
				W_DateJour=W_DateDeb
			END ELSE
				IF W_DateJour<=W_DateFin THEN
					K=0
					LOOP
						K=K+1
					WHILE ENR_TPSTEMPO<I,1,K><>""
						IF ENR_TPSTEMPO<I,1,K>="IntervP" OR ENR_TPSTEMPO<I,1,K>="IntervM" THEN
							W_Aide=ENR_TPSTEMPO<I,4,K>[6,5]
							READ ENR_CIVILAIDE FROM F.CIVILAIDE, W_Aide ELSE ENR_CIVILAIDE=""
							W_CivilAidePlg=ENR_CIVILAIDE<2>:' ':ENR_CIVILAIDE<3>
				
							IF ENR_CIVILAIDE<50><>"N" THEN
								READ ENR_SECTEURAIDE FROM F.SECTEUR, ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEURAIDE=""
								READ ENR_RESPONSABLE FROM F.RESPONSABLE, ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE=""
								
								W_Trouve="FAUX"
								FOR W_Ligne=1 TO DCOUNT(ENR_AIDANTS,CHAR(254))
									IF ENR_AIDANTS<W_Ligne,3>=W_Aidant THEN
										W_Trouve="VRAI"
										EXIT
									END
								NEXT W_Ligne

								ENR_AIDANTS<W_Ligne,5>=ENR_AIDANTS<W_Ligne,5>+1
								ENR_AIDANTS<W_Ligne,14>=ENR_AIDANTS<W_Ligne,5>-ENR_AIDANTS<W_Ligne,6>
								
								W_HeureDeb=ENR_TPSTEMPO<I,2,K>
								W_HeureFin=ENR_TPSTEMPO<I,3,K>
								
								* On laisse une marge de 30 min.
								W_HreDebMin=W_HeureDeb-50
								W_HreDebMax=W_HeureDeb+50
								W_HreFinMin=W_HeureFin-50
								W_HreFinMax=W_HeureFin+50
								
								* Christelle du Mans ne veut pas de gestion de marge
								*W_HreDebMin="0000"
								*W_HreDebMax="2400"
								*W_HreFinMin="0000"
								*W_HreFinMax="2400"
								
								W_HreDebMin=STR("0",4-LEN(W_HreDebMin)):W_HreDebMin
								W_HreDebMax=STR("0",4-LEN(W_HreDebMax)):W_HreDebMax
								W_HreFinMin=STR("0",4-LEN(W_HreFinMin)):W_HreFinMin
								W_HreFinMax=STR("0",4-LEN(W_HreFinMax)):W_HreFinMax
								
								W_ActivitePlg=ENR_TPSTEMPO<I,4,K>[16,6]
								READ ENR_ACTIVITES FROM F.ACTIVITES, W_ActivitePlg ELSE ENR_ACTIVITES=""
								
								GOSUB 30
							
								ENR_PLG<-1>=W_Aidant:' - ':OCONV(W_DateJour,"D4/"):' - ':W_HeureDeb:' - ':W_Aide
							
								W_LignePLG=W_CivilAidantPlg "L#100":W_DateJour
								*W_LignePLG=W_Aidant:W_DateJour
								W_Sortir="FAUX"
								J=J-1
								LOOP
									J=J+1
								WHILE W_Sortir="FAUX" AND TAB_TLG<J><>""
									READ ENR_CIVILAIDANT FROM F.CIVILAIDANT, TAB_TLG<J,1>[7,5] ELSE ENR_CIVILAIDANT=""
									W_CivilAidantTlg=ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>									
									
									READ ENR_CIVILAIDE FROM F.CIVILAIDE, TAB_TLG<J,2>[5,5] ELSE ENR_CIVILAIDE=""
									W_CivilAideTlg=ENR_CIVILAIDE<2>:' ':ENR_CIVILAIDE<3>
									
									W_LigneTLG=W_CivilAidantTlg "L#100":TAB_TLG<J,3>
									*W_LigneTLG=TAB_TLG<J,1>[7,5]:TAB_TLG<J,3>

									IF W_LigneTLG>=W_LignePLG THEN
										IF W_LigneTLG>W_LignePLG THEN
											W_Sortir="VRAI"
											J=J-1
										END ELSE
											IF (TAB_TLG<J,4>>=W_HreDebMin AND TAB_TLG<J,4><=W_HreDebMax) OR (TAB_TLG<J,5>>=W_HreFinMin AND TAB_TLG<J,5><=W_HreFinMax) THEN
												W_Sortir="VRAI"
												J=J-1
											END ELSE
												IF TAB_TLG<J,4>>W_HreDebMax THEN
													W_Sortir="VRAI"
													J=J-1
												END ELSE
													GOSUB 50
												END
											END
										END
									END ELSE
										GOSUB 50
									END									
								REPEAT
								
								IF W_LigneTLG=W_LignePLG AND TAB_TLG<J><>"" AND W_Aide = TAB_TLG<J,2>[5,5] THEN
									* Ici, on a le mme aidant, la mme date et le mme aid.
									* Juste avant, on a boucl sur les interventions tlgres.
									* La boucle s'arrte quand l'heure de l'intervention tlgre
									* est suprieure  l'heure du planning ou quand on trouve une
									* intervention correspondante. On utilise un battement de 30 min.
									
									IF (TAB_TLG<J,4>>=W_HreDebMin AND TAB_TLG<J,4><=W_HreDebMax) OR (TAB_TLG<J,5>>=W_HreFinMin AND TAB_TLG<J,5><=W_HreFinMax) THEN
										GOSUB 60
										* Puisque l'intervention tlgre a t traite, il faut avancer la lecture d'un cran pour
										* ne pas traiter la mme intervention lors du passage suivant.
										J=J+1
									END ELSE
										* Les horaires ne collent pas, c'est donc une intervention planifie sans correspondance en tlgestion.
										
										GOSUB 55
									END
								END ELSE
									* Si on passe ici, c'est que la "lecture" des plannings est en retard
									* sur la "lecture" de la tlgestion. Cela signifie que l'intervention
									* planifie en cours de traitement n'a pas de correspondance en tl-
									* gestion et qu'il faut donc la traiter comme tel.
									
									GOSUB 55
								END
							END
						END
					REPEAT
					W_DateJour=W_DateJour+1
				END ELSE
					* Lorsqu'on a parcouru tous les jours de la priode pour un aidant, on
					* boucle jusqu' trouver le prochain aidant, de manire  ce que lorsqu'on "retourne"
					*  la premire boucle, I soit directement  la bonne valeur pour entamer le nouvel aidant.
					L=I
					LOOP
						L=L+1
					WHILE ENR_TPSTEMPO<L>[1,7]<>"#Interv" AND ENR_TPSTEMPO<L><>""
					REPEAT
					I=L-1
				END
			END
		REPEAT
		PRINT TIMEDATE():" Aprs traitement TPSTEMPO"
		* Arriv ici, on a fini de parcourir les plannings, mais il peut rester de la tlgestion.
		PRINT TIMEDATE():" Avant traitement derniers pointages"
		IF TAB_TLG<J><>"" THEN
			J=J-1
			LOOP
				J=J+1
			WHILE TAB_TLG<J><>""
				GOSUB 50
			REPEAT
		END
		PRINT TIMEDATE():" Aprs traitement derniers pointages"
	END

	*FOR L = 1 TO DCOUNT(TAB_TLG,CHAR(254))
	*	ENR_TLG<-1>=TAB_TLG<L,1>[7,5]:' - ':OCONV(TAB_TLG<L,3>,"D4/"):' - ':TAB_TLG<L,4>:' - ':TAB_TLG<L,2>[5,5]
	*NEXT L
	
RETURN
*********************************************************************
* Convertion en minutes des heures du planning et mise en forme
*********************************************************************
30

W_Hre=W_HeureDeb[1,2]
W_Min=W_HeureDeb[3,2]
W_Min=INT((W_Min*60)/100)
W_Min=STR("0",2-LEN(W_Min)):W_Min
W_HeureDeb=W_Hre:":":W_Min

W_Hre=W_HeureFin[1,2]
W_Min=W_HeureFin[3,2]
W_Min=INT((W_Min*60)/100)
W_Min=STR("0",2-LEN(W_Min)):W_Min
W_HeureFin=W_Hre:":":W_Min

W_Hre=W_HreDebMin[1,2]
W_Min=W_HreDebMin[3,2]
W_Min=INT((W_Min*60)/100)
W_Min=STR("0",2-LEN(W_Min)):W_Min
W_HreDebMin=W_Hre:":":W_Min

W_Hre=W_HreDebMax[1,2]
W_Min=W_HreDebMax[3,2]
W_Min=INT((W_Min*60)/100)
W_Min=STR("0",2-LEN(W_Min)):W_Min
W_HreDebMax=W_Hre:":":W_Min

W_Hre=W_HreFinMin[1,2]
W_Min=W_HreFinMin[3,2]
W_Min=INT((W_Min*60)/100)
W_Min=STR("0",2-LEN(W_Min)):W_Min
W_HreFinMin=W_Hre:":":W_Min

W_Hre=W_HreFinMax[1,2]
W_Min=W_HreFinMax[3,2]
W_Min=INT((W_Min*60)/100)
W_Min=STR("0",2-LEN(W_Min)):W_Min
W_HreFinMax=W_Hre:":":W_Min

RETURN
*********************************************************************
* Calcul de la dure des interventions
*********************************************************************
40

	W_DureePlg=0
	W_DureeTlg=0
	
	IF W_HreDebPlg<>"" AND W_HreFinPlg<>"" THEN
		W_HreDebD=W_HreDebPlg
		W_HreFinD=W_HreFinPlg
		GOSUB 41
		W_DureePlg=W_DureeInterv
	END

	IF W_HreDebTlg<>"" AND W_HreFinTlg<>"" THEN
		W_HreDebD=W_HreDebTlg
		W_HreFinD=W_HreFinTlg
		GOSUB 41
		W_DureeTlg=W_DureeInterv
	END	
	
RETURN
*********************************************************************
41

	W_HDeb=W_HreDebD[1,2]
	W_MDeb=W_HreDebD[4,2]
	W_HFin=W_HreFinD[1,2]
	W_MFin=W_HreFinD[4,2]	
	W_Minutes=0
	W_Heures=0
	
	IF W_HreDebD<=W_HreFinD THEN
		W_Minutes=60-W_MDeb
		W_Heures=W_HDeb+1
		W_Heures=W_HFin-W_Heures
		W_Heures=W_Heures*60
		W_Minutes=W_Minutes+W_Heures+W_MFin
	END ELSE
		W_Minutes=(W_HFin*60)+W_MFin
		W_Minutes=W_Minutes+(60-W_MDeb)
		W_Heures=24-(W_HDeb+1)
		W_Heures=W_Heures*60
		W_Minutes=W_Minutes+W_Heures
	END
	
	W_DureeInterv=W_Minutes

RETURN
*********************************************************************
*
*********************************************************************
50

	* Si on passe ici, c'est que la "lecture" de la tlgestion est en retard
	* sur la lecture des plannings. Cela signifie que nous avons  faire  des
	* interventions tlgres qui n'ont pas de correspondance en planning.
	READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,TAB_TLG<J,1>[7,5] ELSE ENR_CIVILAIDANT=""
	READ ENR_SECTEUR FROM F.SECTEUR, ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR=""	
		
	W_Trouve="FAUX"
	FOR W_Ligne=1 TO DCOUNT(ENR_AIDANTS,CHAR(254))
		IF ENR_AIDANTS<W_Ligne,3>=TAB_TLG<J,1>[7,5] THEN
			W_Trouve="VRAI"
			EXIT
		END
	NEXT W_Ligne
	IF W_Trouve="FAUX" THEN
		ENR_AIDANTS<-1>=ENR_SECTEUR<1>:CHAR(253):ENR_CIVILAIDANT<11>:CHAR(253):TAB_TLG<J,1>[7,5]:CHAR(253):ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>:CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0':CHAR(253):'0'
		W_Ligne=DCOUNT(ENR_AIDANTS,CHAR(254))
	END
	
	ENR_AIDANTS<W_Ligne,6>=ENR_AIDANTS<W_Ligne,6>+1
	ENR_AIDANTS<W_Ligne,14>=ENR_AIDANTS<W_Ligne,5>-ENR_AIDANTS<W_Ligne,6>
	
	W_ArrDep=""
	W_Pos=INDEX(TAB_TLG<J,6>,"duction automatique de",1)
	IF W_Pos=0 THEN
		W_Pos=INDEX(TAB_TLG<J,6>,"duction automatique du",1)
		IF W_Pos>0 THEN
			W_ArrDep="DEP"
		END
	END ELSE
		W_ArrDep="ARR"
	END
	IF W_Pos=0 THEN
		ENR_AIDANTS<W_Ligne,10>=ENR_AIDANTS<W_Ligne,10>+1
	END ELSE
		IF W_ArrDep="ARR" THEN
			ENR_AIDANTS<W_Ligne,11>=ENR_AIDANTS<W_Ligne,11>+1
			* Modif Greg - 03/12/09 - Ajout d'une stat spciale pour les dductions grce  des minutes complmentaires.
			IF INDEX(TAB_TLG<J,6>,"via min. compl.",1)>0 THEN
				ENR_AIDANTS<W_Ligne,15>=ENR_AIDANTS<W_Ligne,15>+1
			END			
		END ELSE
			ENR_AIDANTS<W_Ligne,12>=ENR_AIDANTS<W_Ligne,12>+1
		END
	END
	
	* On ajoute galement l'intervention au tableau ENR_PLGTLG
	READ ENR_ACTIVITES FROM F.ACTIVITES, TAB_TLG<J,9> ELSE ENR_ACTIVITES=""
	
	READ ENR_CIVILAIDE FROM F.CIVILAIDE, TAB_TLG<J,2>[5,5] ELSE ENR_CIVILAIDE=""
	READ ENR_SECTEURAIDE FROM F.SECTEUR, ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEURAIDE=""
	READ ENR_RESPONSABLE FROM F.RESPONSABLE, ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE=""
	
	W_HreDebPlg=""
	W_HreFinPlg=""
	W_HreDebTlg=TAB_TLG<J,4>
	W_HreFinTlg=TAB_TLG<J,5>
	GOSUB 40
	
	W_SecteurAidant=ENR_SECTEUR<1>
	W_CommuneAidant=ENR_CIVILAIDANT<11>
	W_CodeAidant=TAB_TLG<J,1>[7,5]
	W_NomPrenomAidant=ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>
	W_SecteurAide=ENR_SECTEURAIDE<1>
	W_CommuneAide=ENR_CIVILAIDE<11>
	W_CodeAide=TAB_TLG<J,2>[5,5]
	W_NomPrenomAide=ENR_CIVILAIDE<2>:' ':ENR_CIVILAIDE<3>
	W_Responsable=ENR_RESPONSABLE<1>
	W_Date=OCONV(TAB_TLG<J,3>,"D4/")
	W_HreDebPlg=0
	W_HreFinPlg=0
	W_HreDebTlg=TAB_TLG<J,4>
	W_HreFinTlg=TAB_TLG<J,5>
	* Les 2 variables suivantes sont renseignes dans la procdure 40
	*W_DureePlg
	*W_DureeTlg
	*W_DiffDuree=0
	W_DiffDuree=W_DureeTlg-W_DureePlg
	W_Activite=ENR_ACTIVITES<1>
	IF ENR_CIVILAIDE<50>="" THEN
		W_AideTlg="Oui"
	END ELSE
		W_AideTlg="Oui"
	END	
	
	ENR_PLGTLG<-1>=W_SecteurAidant:";":W_CommuneAidant:';':W_CodeAidant:';':W_NomPrenomAidant:';':W_SecteurAide:';':W_CommuneAide:';':W_CodeAide:';':W_NomPrenomAide:';':W_Responsable:';':W_Date:';':W_HreDebPlg:';':W_HreFinPlg:';':W_HreDebTlg:';':W_HreFinTlg:';':W_DureePlg:';':W_DureeTlg:';':W_DiffDuree:';':W_Activite:';':W_AideTlg

RETURN
*********************************************************************
*
*********************************************************************
55

	READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_Aidant ELSE ENR_CIVILAIDANT=""
	READ ENR_SECTEUR FROM F.SECTEUR, ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR=""

	READ ENR_CIVILAIDE FROM F.CIVILAIDE, W_Aide ELSE ENR_CIVILAIDE=""
	READ ENR_SECTEURAIDE FROM F.SECTEUR, ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEURAIDE=""
	READ ENR_RESPONSABLE FROM F.RESPONSABLE, ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE=""

	READ ENR_ACTIVITES FROM F.ACTIVITES, W_ActivitePlg ELSE ENR_ACTIVITES=""	
	
	W_Trouve="FAUX"
	FOR W_Ligne=1 TO DCOUNT(ENR_AIDANTS,CHAR(254))
		IF ENR_AIDANTS<W_Ligne,3>=W_Aidant THEN
			W_Trouve="VRAI"
			EXIT
		END
	NEXT W_Ligne
	
	ENR_AIDANTS<W_Ligne,13>=ENR_AIDANTS<W_Ligne,13>+1

	W_HreDebPlg=W_HeureDeb
	W_HreFinPlg=W_HeureFin
	W_HreDebTlg=""
	W_HreFinTlg=""
	GOSUB 40
	
	W_SecteurAidant=ENR_SECTEUR<1>
	W_CommuneAidant=ENR_CIVILAIDANT<11>
	W_CodeAidant=W_Aidant
	W_NomPrenomAidant=ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>
	W_SecteurAide=ENR_SECTEURAIDE<1>
	W_CommuneAide=ENR_CIVILAIDE<11>
	W_CodeAide=W_Aide
	W_NomPrenomAide=ENR_CIVILAIDE<2>:' ':ENR_CIVILAIDE<3>
	W_Responsable=ENR_RESPONSABLE<1>
	W_Date=OCONV(W_DateJour,"D4/")
	W_HreDebPlg=W_HeureDeb
	W_HreFinPlg=W_HeureFin
	W_HreDebTlg=0
	W_HreFinTlg=0
	* Les 2 variables suivantes sont renseignes dans la procdure 40
	*W_DureePlg
	*W_DureeTlg
	*W_DiffDuree=0
	W_DiffDuree=W_DureeTlg-W_DureePlg
	W_Activite=ENR_ACTIVITES<1>
	IF ENR_CIVILAIDE<50>="" THEN
		W_AideTlg="Oui"
	END ELSE
		W_AideTlg="Oui"
	END	
	
	ENR_PLGTLG<-1>=W_SecteurAidant:";":W_CommuneAidant:';':W_CodeAidant:';':W_NomPrenomAidant:';':W_SecteurAide:';':W_CommuneAide:';':W_CodeAide:';':W_NomPrenomAide:';':W_Responsable:';':W_Date:';':W_HreDebPlg:';':W_HreFinPlg:';':W_HreDebTlg:';':W_HreFinTlg:';':W_DureePlg:';':W_DureeTlg:';':W_DiffDuree:';':W_Activite:';':W_AideTlg
	

RETURN
*********************************************************************
*
*********************************************************************
60

	READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_Aidant ELSE ENR_CIVILAIDANT=""
	READ ENR_SECTEUR FROM F.SECTEUR, ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR=""
	
	READ ENR_CIVILAIDE FROM F.CIVILAIDE, W_Aide ELSE ENR_CIVILAIDE=""
	READ ENR_SECTEURAIDE FROM F.SECTEUR, ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEURAIDE=""	
	READ ENR_RESPONSABLE FROM F.RESPONSABLE, ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE=""
	
	READ ENR_ACTIVITES FROM F.ACTIVITES, W_ActivitePlg ELSE ENR_ACTIVITES=""	
	
	W_Trouve="FAUX"
	FOR W_Ligne=1 TO DCOUNT(ENR_AIDANTS,CHAR(254))
		IF ENR_AIDANTS<W_Ligne,3>=W_Aidant THEN
			W_Trouve="VRAI"
			EXIT
		END
	NEXT W_Ligne
	
	ENR_AIDANTS<W_Ligne,6>=ENR_AIDANTS<W_Ligne,6>+1
	ENR_AIDANTS<W_Ligne,14>=ENR_AIDANTS<W_Ligne,5>-ENR_AIDANTS<W_Ligne,6>
	
	W_ArrDep=""
	W_Pos=INDEX(TAB_TLG<J,6>,"duction automatique de",1)
	IF W_Pos=0 THEN
		W_Pos=INDEX(TAB_TLG<J,6>,"duction automatique du",1)
		IF W_Pos>0 THEN
			W_ArrDep="DEP"
		END
	END ELSE
		W_ArrDep="ARR"
	END
	IF W_Pos=0 THEN
		ENR_AIDANTS<W_Ligne,7>=ENR_AIDANTS<W_Ligne,7>+1
	END ELSE
		IF W_ArrDep="ARR" THEN
			ENR_AIDANTS<W_Ligne,8>=ENR_AIDANTS<W_Ligne,8>+1
			* Modif Greg - 03/12/09 - Ajout d'une stat spciale pour les dductions grce  des minutes complmentaires.
			IF INDEX(TAB_TLG<J,6>,"via min. compl.",1)>0 THEN
				ENR_AIDANTS<W_Ligne,15>=ENR_AIDANTS<W_Ligne,15>+1
			END
		END ELSE
			ENR_AIDANTS<W_Ligne,9>=ENR_AIDANTS<W_Ligne,9>+1
		END
	END
	
	W_HreDebPlg=W_HeureDeb
	W_HreFinPlg=W_HeureFin
	W_HreDebTlg=TAB_TLG<J,4>
	W_HreFinTlg=TAB_TLG<J,5>
	GOSUB 40
	
	W_SecteurAidant=ENR_SECTEUR<1>
	W_CommuneAidant=ENR_CIVILAIDANT<11>
	W_CodeAidant=W_Aidant
	W_NomPrenomAidant=ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>
	W_SecteurAide=ENR_SECTEURAIDE<1>
	W_CommuneAide=ENR_CIVILAIDE<11>
	W_CodeAide=W_Aide
	W_NomPrenomAide=ENR_CIVILAIDE<2>:' ':ENR_CIVILAIDE<3>
	W_Responsable=ENR_RESPONSABLE<1>
	W_Date=OCONV(W_DateJour,"D4/")
	W_HreDebPlg=W_HeureDeb
	W_HreFinPlg=W_HeureFin
	W_HreDebTlg=TAB_TLG<J,4>
	W_HreFinTlg=TAB_TLG<J,5>
	* Les 2 variables suivantes sont renseignes dans la procdure 40
	*W_DureePlg
	*W_DureeTlg
	W_DiffDuree=W_DureeTlg-W_DureePlg
	W_Activite=ENR_ACTIVITES<1>
	IF ENR_CIVILAIDE<50>="" THEN
		W_AideTlg="Oui"
	END ELSE
		W_AideTlg="Oui"
	END
	
	ENR_PLGTLG<-1>=W_SecteurAidant:";":W_CommuneAidant:';':W_CodeAidant:';':W_NomPrenomAidant:';':W_SecteurAide:';':W_CommuneAide:';':W_CodeAide:';':W_NomPrenomAide:';':W_Responsable:';':W_Date:';':W_HreDebPlg:';':W_HreFinPlg:';':W_HreDebTlg:';':W_HreFinTlg:';':W_DureePlg:';':W_DureeTlg:';':W_DiffDuree:';':W_Activite:';':W_AideTlg

RETURN