********************************************************
* EDITION DES EMPLOIS DU TEMPS DES PLANINGS            *
* AOUT 2003                              ALLOCHON ALAIN*
********************************************************

********************************************************
* OUVERTURE DES FICHIERS
********************************************************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "TEMPO" TO F.TEMPO ELSE STOP
OPEN "TPSDETAILSINTERV" TO F.TPSDETAILSINTERV ELSE STOP
OPEN "", "TPSPARAM" TO F.TPSPARAM ELSE STOP
OPEN "", "TPSTEMPO" TO F.TPSTEMPO ELSE STOP
READ ENR_TPSPARAM FROM F.TPSPARAM, "1" ELSE ENR_TPSPARAM = ""

********************************************************
* RECUPERATION PARAMETRES PASSES A LA PROCEDURE
********************************************************
PROCREAD ARGUMENTS ELSE PRINT "Procread"

W_CODEAIDANT = FIELD(ARGUMENTS,"|",2)
W_USER = FIELD(ARGUMENTS,"|",3)
W_DateDeb = FIELD(ARGUMENTS,"|",4)
W_DateFin = FIELD(ARGUMENTS,"|",5)
W_CODEAIDE = FIELD(ARGUMENTS,"|",6)

********************************************************
* INITIALISATION DES VARIABLES
********************************************************
ENR_TEMPO = ""
W_RESULTAT = ""
W_AIDANT = ""

*EXECUTE 'SSELECT TPSDETAILSINTERV AVEC 0 = "':W_CODEAIDANT:']" AND AVEC 1 => "':W_DateDeb:'" OR = "" PAR JourInterv PAR HeureInterv PAR DateDebInterv'
*EXECUTE 'SAUVE-LISTE W_RESULTAT' 
*EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE
W_CleRetour = W_USER:TIME()
IF W_CODEAIDANT <> "" THEN
	IF W_CODEAIDE = "" THEN
		W_Str = "AFFICHEPLANNING |" : W_CleRetour : "||PMIS|" : W_DateDeb : "|" : W_DateFin : "|" : "|" : "|" : W_CODEAIDANT : "|E"
      END ELSE
            W_Str = "AFFICHEPLANNING |" : W_CleRetour : "||PMIS|" : W_DateDeb : "|" : W_DateFin : "|A|" : W_CODEAIDE : "|" : W_CODEAIDANT : "|E"
      END
END ELSE
      W_Str = "AFFICHEPLANNING |" :W_CleRetour : "||PMIS|" : W_DateDeb : "|" : W_DateFin : "|" : "|" : "||EA" : "|" : W_CODEAIDE
END
PRINT W_Str
EXECUTE W_Str
READ ENR_TPSTEMPO FROM F.TPSTEMPO, "AFFICHEPLANNING":W_CleRetour THEN
	IF ENR_TPSTEMPO<1> = "Erreur" THEN
		MSGCODE<1> = "209"
	END
END ELSE
	MSGCODE<1> = "209"
END
IF MSGCODE<1> # 209 THEN
	W_FINI = "FAUX"
	ENR_TEMPO<1> = "DEBUT"
	J = 1
	W_AIDE=""
	W_JOUR = ""
	CLE.TPS=""

*	SELECT F.TPSDETAILSINTERV TO W_RESULTAT
	W_IndLigneTpsTempo = 2
	W_RangTpsTempo = 0
    	LOOP
*		READNEXT CLE.TPS FROM W_RESULTAT ELSE W_FINI="VRAI"
	   
		W_Trouve = "F"
		LOOP
		   
		   
		   LOOP
			W_RangTpsTempo = W_RangTpsTempo + 1
			IF ENR_TPSTEMPO<W_IndLigneTpsTempo,1,W_RangTpsTempo>[1,6] = "Interv" AND LEN(ENR_TPSTEMPO<W_IndLigneTpsTempo,1,W_RangTpsTempo>)=7 THEN
				W_Trouve = "V"
			END 
		   WHILE ENR_TPSTEMPO<W_IndLigneTpsTempo,1,W_RangTpsTempo> # "" AND W_Trouve = "F"	
		   REPEAT
		   IF ENR_TPSTEMPO<W_IndLigneTpsTempo,1,W_RangTpsTempo> = "" THEN
			W_IndLigneTpsTempo = W_IndLigneTpsTempo + 1
			W_RangTpsTempo = 0
		   END
		WHILE ENR_TPSTEMPO<W_IndLigneTpsTempo>[1,1] # "#" AND W_Trouve = "F"
		REPEAT
		IF W_Trouve = "F" THEN
			W_FINI = "VRAI"
		END ELSE
			CLE.TPS = ENR_TPSTEMPO<W_IndLigneTpsTempo,4,W_RangTpsTempo>[1,26]
		END
	WHILE W_FINI = "FAUX" DO

		IF W_CODEAIDE # "" AND W_CODEAIDANT="" THEN
			GOSUB 100
		END ELSE
			
			READ ENR_TPS FROM F.TPSDETAILSINTERV,CLE.TPS ELSE ENR_TPS = ""
			W_AIDE = CLE.TPS[6,5]
			READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_AIDE ELSE ENR_CIVILAIDE = ""
			
			GOSUB 10
			
			J = J + 1
			*ENR_TEMPO<J> = SPACE(1):W_JOUR:SPACE(10-(LEN(W_JOUR)))
			
			*W_Date=OCONV(W_DateDeb,"D4/")
			W_Date = W_DateDeb + W_IndLigneTpsTempo-2
			W_Date=OCONV(W_Date,"D4/")[1,2]
			*W_Date=W_Date[1,2]+W_IndLigneTpsTempo-2

			ENR_TEMPO<J> = W_JOUR:SPACE(9-(LEN(W_JOUR))):SPACE(2-(LEN(W_Date))):W_Date:" "
			* Michael, le 14/05/04 : rtablissement des heures en minutes...
			W_Min = CLE.TPS[25,2]
			W_Min = INT(W_Min * 0.6 + 1/2)
			W_Min = W_Min"R%2"
			*IF W_Min < 10 THEN
			*	ENR_TEMPO<J> = ENR_TEMPO<J>:CLE.TPS[24,2]:',0':CLE.TPS[25,2]:SPACE(1)
			*END ELSE
				ENR_TEMPO<J> = ENR_TEMPO<J>:CLE.TPS[23,2]:'h':W_Min:SPACE(1)
			*END
			W_Min = ENR_TPS<2>[3,2]
			W_Min = INT(W_Min * 0.6 + 1/2)
			W_Min = W_Min"R%2"
			*IF ENR_TPS<2>[1,2] < "10" THEN
			*	ENR_TEMPO<J> = ENR_TEMPO<J>:'0':ENR_TPS<2>[2,1]:',':ENR_TPS<2>[3,2]:SPACE(2):W_AIDE:SPACE(1)
			*END ELSE
				ENR_TEMPO<J> = ENR_TEMPO<J>:ENR_TPS<2>[1,2]:'h':W_Min:SPACE(2):W_AIDE:SPACE(1)
			*END
			W_NOM = ENR_CIVILAIDE<2>:' ':ENR_CIVILAIDE<3>
			ENR_TEMPO<J> = ENR_TEMPO<J>:W_NOM[1,25]:SPACE(26-(LEN(W_NOM[1,25])))
			
			W_ADRESSE1 = ""
			W_ADRESSE2 = ""
			W_ADRESSE3 = ""
			IF ENR_CIVILAIDE<9> # "" AND ENR_CIVILAIDE<8> # "" THEN

				IF ENR_CIVILAIDE<5> # "" THEN
					W_ADRESSE1 = ENR_CIVILAIDE<5>:' '
				END
				IF ENR_CIVILAIDE<6> # "" THEN
					W_ADRESSE1 = W_ADRESSE1:ENR_CIVILAIDE<6>:' '
				END
				IF ENR_CIVILAIDE<7> # "" THEN
					W_ADRESSE1 = W_ADRESSE1:ENR_CIVILAIDE<7>:' '
				END
				W_ADRESSE1 = W_ADRESSE1:ENR_CIVILAIDE<8>
				W_ADRESSE1 = W_ADRESSE1

				W_ADRESSE2 = ENR_CIVILAIDE<9>

				W_ADRESSE3 = ENR_CIVILAIDE<10>:' ':ENR_CIVILAIDE<11>

				W_ADRESSE1 = W_ADRESSE1[1,25]:SPACE(26-(LEN(W_ADRESSE1[1,25])))
				W_ADRESSE2 = W_ADRESSE2[1,25]:SPACE(26-(LEN(W_ADRESSE2[1,25])))
				W_ADRESSE3 = W_ADRESSE3[1,25]:SPACE(26-(LEN(W_ADRESSE3[1,25])))
			END ELSE
				IF ENR_CIVILAIDE<9> = "" AND ENR_CIVILAIDE<8> # "" THEN

					IF ENR_CIVILAIDE<5> # "" THEN
						W_ADRESSE1 = ENR_CIVILAIDE<5>:' '
					END
					IF ENR_CIVILAIDE<6> # "" THEN
						W_ADRESSE1 = W_ADRESSE1:ENR_CIVILAIDE<6>:' '
					END
					IF ENR_CIVILAIDE<7> # "" THEN
						W_ADRESSE1 = W_ADRESSE1:ENR_CIVILAIDE<7>:' '
					END
					W_ADRESSE1 = W_ADRESSE1:ENR_CIVILAIDE<8>
					W_ADRESSE1 = W_ADRESSE1[1,25]
		
					W_ADRESSE2 = ENR_CIVILAIDE<10>:' ':ENR_CIVILAIDE<11>

					W_ADRESSE1 = W_ADRESSE1[1,25]:SPACE(26-(LEN(W_ADRESSE1[1,25])))
					W_ADRESSE2 = W_ADRESSE2[1,25]:SPACE(26-(LEN(W_ADRESSE2[1,25])))
				END ELSE
					IF ENR_CIVILAIDE<9> # "" AND ENR_CIVILAIDE<8> = "" THEN
						W_ADRESSE1 = ENR_CIVILAIDE<9>

						W_ADRESSE2 = ENR_CIVILAIDE<10>:' ':ENR_CIVILAIDE<11>

						W_ADRESSE1 = W_ADRESSE1[1,25]:SPACE(26-(LEN(W_ADRESSE1[1,25])))
						W_ADRESSE2 = W_ADRESSE2[1,25]:SPACE(26-(LEN(W_ADRESSE2[1,25])))
					END ELSE
						W_ADRESSE1 = ENR_CIVILAIDE<10>:' ':ENR_CIVILAIDE<11>
						W_ADRESSE1 = W_ADRESSE1[1,25]:SPACE(26-(LEN(W_ADRESSE1[1,25])))
					END
				END
			END
		
		END
		
		ENR_TEMPO<J> = ENR_TEMPO<J>:W_ADRESSE1:OCONV(CLE.TPS[11,5],"D4/"):SPACE(2)

		IF ENR_TPS<1> # "" THEN
			ENR_TEMPO<J> = ENR_TEMPO<J>:OCONV(ENR_TPS<1>,"D4/"):SPACE(2)
		END ELSE
			ENR_TEMPO<J> = ENR_TEMPO<J>:SPACE(12)
		END

		READ ENR_ACTIVITES FROM F.ACTIVITES,CLE.TPS[16,6] ELSE ENR_ACTIVITES = ""
		
		ENR_TEMPO<J> = ENR_TEMPO<J>:ENR_ACTIVITES<12>:SPACE(3):'1/':ENR_TPS<3>:SPACE(3):ENR_ACTIVITES<1>[1,13]
		
		IF W_ADRESSE2 # "" OR (ENR_CIVILAIDE<14> # "" AND ENR_CIVILAIDE<46> #"1" AND ENR_TPSPARAM<21> = "1") THEN
			J = J + 1
			IF ENR_CIVILAIDE<14> # "" AND ENR_CIVILAIDE<46> # "1" AND ENR_TPSPARAM<21> = "1" THEN
				ENR_TEMPO<J> = SPACE(31):ENR_CIVILAIDE<14>:SPACE(26-(LEN(ENR_CIVILAIDE<14>))):W_ADRESSE2
			END ELSE
				ENR_TEMPO<J> = SPACE(57):W_ADRESSE2
			END
			IF W_ADRESSE3 # "" THEN
				J = J + 1
				ENR_TEMPO<J> = SPACE(57):W_ADRESSE3
			END
		END
		J = J + 1
	REPEAT

	ENR_TEMPO<J+1> = "FIN"

END ELSE
	ENR_TEMPO<1> = "VIDE"
END

WRITE ENR_TEMPO TO F.TEMPO,'EMPLOITPS':W_USER

STOP

************************************
* recherche du jour d'intervention *
************************************
10	

BEGIN CASE
 	CASE CLE.TPS[22,1] MATCHES "0"
		W_JOUR = "LUNDI"
	CASE CLE.TPS[22,1] MATCHES "1"
		W_JOUR = "MARDI"
	CASE CLE.TPS[22,1] MATCHES "2"
		W_JOUR = "MERCREDI"
	CASE CLE.TPS[22,1] MATCHES "3"
		W_JOUR = "JEUDI"
	CASE CLE.TPS[22,1] MATCHES "4"
		W_JOUR = "VENDREDI"
	CASE CLE.TPS[22,1] MATCHES "5"
		W_JOUR = "SAMEDI"
	CASE CLE.TPS[22,1] MATCHES "6"
		W_JOUR = "DIMANCHE"
END CASE

RETURN


***********************************
* remplissage du tableau par aid *
***********************************
100


	READ ENR_TPS FROM F.TPSDETAILSINTERV,CLE.TPS ELSE ENR_TPS = ""
	W_AIDANT = CLE.TPS[1,5]
	READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_AIDANT ELSE ENR_CIVILAIDANT = ""
	
	GOSUB 10
	
	J = J + 1
	*ENR_TEMPO<J> = SPACE(1):W_JOUR:SPACE(10-(LEN(W_JOUR)))
	
	*W_Date=OCONV(W_DateDeb,"D4/")
	W_Date = W_DateDeb + W_IndLigneTpsTempo-2
	W_Date=OCONV(W_Date,"D4/")[1,2]
	*W_Date=W_Date[1,2]+W_IndLigneTpsTempo-2

	ENR_TEMPO<J> = W_JOUR:SPACE(9-(LEN(W_JOUR))):SPACE(2-(LEN(W_Date))):W_Date:" "
	* Michael, le 14/05/04 : rtablissement des heures en minutes...
	W_Min = CLE.TPS[25,2]
	W_Min = INT(W_Min * 0.6 + 1/2)
	W_Min = W_Min"R%2"
	*IF W_Min < 10 THEN
	*	ENR_TEMPO<J> = ENR_TEMPO<J>:CLE.TPS[24,2]:',0':CLE.TPS[25,2]:SPACE(1)
	*END ELSE
		ENR_TEMPO<J> = ENR_TEMPO<J>:CLE.TPS[23,2]:'h':W_Min:SPACE(1)
	*END
	W_Min = ENR_TPS<2>[3,2]
	W_Min = INT(W_Min * 0.6 + 1/2)
	W_Min = W_Min"R%2"
	*IF ENR_TPS<2>[1,2] < "10" THEN
	*	ENR_TEMPO<J> = ENR_TEMPO<J>:'0':ENR_TPS<2>[2,1]:',':ENR_TPS<2>[3,2]:SPACE(2):W_AIDANT:SPACE(1)
	*END ELSE
		ENR_TEMPO<J> = ENR_TEMPO<J>:ENR_TPS<2>[1,2]:'h':W_Min:SPACE(2):W_AIDANT:SPACE(1)
	*END
	W_NOM = ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>
	ENR_TEMPO<J> = ENR_TEMPO<J>:W_NOM[1,25]:SPACE(26-(LEN(W_NOM[1,25])))
	
	W_ADRESSE1 = ""
	W_ADRESSE2 = ""
	W_ADRESSE3 = ""
	IF ENR_CIVILAIDANT<9> # "" AND ENR_CIVILAIDANT<8> # "" THEN
		
		IF ENR_CIVILAIDANT<5> # "" THEN
			W_ADRESSE1 = ENR_CIVILAIDANT<5>:' '
		END
		IF ENR_CIVILAIDANT<6> # "" THEN
			W_ADRESSE1 = W_ADRESSE1:ENR_CIVILAIDANT<6>:' '
		END
		IF ENR_CIVILAIDANT<7> # "" THEN
			W_ADRESSE1 = W_ADRESSE1:ENR_CIVILAIDANT<7>:' '
		END
		W_ADRESSE1 = W_ADRESSE1:ENR_CIVILAIDANT<8>
		W_ADRESSE1 = W_ADRESSE1
		
		W_ADRESSE2 = ENR_CIVILAIDANT<9>
		
		W_ADRESSE3 = ENR_CIVILAIDANT<10>:' ':ENR_CIVILAIDANT<11>
		
		W_ADRESSE1 = W_ADRESSE1[1,25]:SPACE(26-(LEN(W_ADRESSE1[1,25])))
		W_ADRESSE2 = W_ADRESSE2[1,25]:SPACE(26-(LEN(W_ADRESSE2[1,25])))
		W_ADRESSE3 = W_ADRESSE3[1,25]:SPACE(26-(LEN(W_ADRESSE3[1,25])))
	END ELSE
		IF ENR_CIVILAIDANT<9> = "" AND ENR_CIVILAIDANT<8> # "" THEN
			
			IF ENR_CIVILAIDANT<5> # "" THEN
				W_ADRESSE1 = ENR_CIVILAIDANT<5>:' '
			END
			IF ENR_CIVILAIDANT<6> # "" THEN
				W_ADRESSE1 = W_ADRESSE1:ENR_CIVILAIDANT<6>:' '
			END
			IF ENR_CIVILAIDANT<7> # "" THEN
				W_ADRESSE1 = W_ADRESSE1:ENR_CIVILAIDANT<7>:' '
			END
			W_ADRESSE1 = W_ADRESSE1:ENR_CIVILAIDANT<8>
			W_ADRESSE1 = W_ADRESSE1[1,25]
			
			W_ADRESSE2 = ENR_CIVILAIDANT<10>:' ':ENR_CIVILAIDANT<11>
			
			W_ADRESSE1 = W_ADRESSE1[1,25]:SPACE(26-(LEN(W_ADRESSE1[1,25])))
			W_ADRESSE2 = W_ADRESSE2[1,25]:SPACE(26-(LEN(W_ADRESSE2[1,25])))
		END ELSE
			IF ENR_CIVILAIDANT<9> # "" AND ENR_CIVILAIDANT<8> = "" THEN
				W_ADRESSE1 = ENR_CIVILAIDANT<9>
				
				W_ADRESSE2 = ENR_CIVILAIDANT<10>:' ':ENR_CIVILAIDANT<11>
				
				W_ADRESSE1 = W_ADRESSE1[1,25]:SPACE(26-(LEN(W_ADRESSE1[1,25])))
				W_ADRESSE2 = W_ADRESSE2[1,25]:SPACE(26-(LEN(W_ADRESSE2[1,25])))
			END ELSE
				W_ADRESSE1 = ENR_CIVILAIDANT<10>:' ':ENR_CIVILAIDANT<11>
				W_ADRESSE1 = W_ADRESSE1[1,25]:SPACE(26-(LEN(W_ADRESSE1[1,25])))
			END
		END
	END
	
RETURN