SUBROUTINE IMPORTDONNEES(W_VARIABLES,W_Tab,W_Sortie)

*****************************************************
* Permet L'importation des donnes cot portable 	*
* Mikael le 18/10/2006                           	*
*    												*
*****************************************************

* Cration de l'environement du programme
EXECUTE 'DATE.FORMAT' ;* Mise en date francais
EXECUTE 'SET-DEC ,' ;* Sparateur dcimale	ex: 100,00
EXECUTE 'SET-THOUS .' ;* Sparateur millier	ex: 1.000,00

*****************************************************
*Ouverture des fichiers
*****************************************************
	
	OPEN "","SDPARAMEXPORT" TO F.SDPARAMEXPORT ELSE RETURN
	
	*Test l'existance du repertoire VISITESAIDES sinon cration du repertoire
	OPEN "","VISITESAIDES" TO F.VISITESAIDES ELSE
		EXECUTE 'CREER-FICHIER DIR VISITESAIDES 1,1'
		OPEN "","VISITESAIDES" TO F.VISITESAIDES ELSE RETURN
	END
	
*****************************************************

* Reception des donnes provenant de VB
	
*	PROCREAD W_VARIABLES ELSE STOP

*	W_VARIABLES = FIELD(W_VARIABLES, " ",2)
	* Recupration du nom utilisateur
	W_Util=FIELD(W_VARIABLES, "|", 1)

	* Recupration donnees du portable
	W_NomServ=FIELD(W_VARIABLES, "|", 2)
	W_ChemServ=FIELD(W_VARIABLES, "|", 3)

	* Recupration donnees Serveur distant
	W_NomServDist=FIELD(W_VARIABLES, "|", 4)
	W_ChemServDist=FIELD(W_VARIABLES, "|", 5)
	*W_PremierImport =FIELD(W_VARIABLES, "|", 6)

	*Initialisation des variables
	I=0
	J=0
	K=0
	LIST = ""
	*Tableau des aidants
	W_Aidants = ""
	
*	READ ENR_TEMPO FROM F.TEMPO, "EXPORTAIDES" ELSE ENR_TEMPO = ""
	* Recupration des codes aids
*	W_Tab=ENR_TEMPO
	
	* Teste l'existance du repertoire de l'utilisateur - Cration du repertoire et
	* enregistrement de celui dans le VOC
	READ ENR_VISITESAIDES FROM F.VISITESAIDES, W_Util ELSE

		EXECUTE '!MKDIR ':W_ChemServDist:'\VISITESAIDES\':W_Util
		EXECUTE 'CREER-FICHIER VISIT':W_Util:' 1.7'
		OPEN "","VOC" TO F.VOC THEN
			ENRTEMP = ""
			ENRTEMP<1> = "DIR"
			ENRTEMP<2> = W_ChemServDist:'\VISITESAIDES\':W_Util
			ENRTEMP<3> = "D_":'VISIT':W_Util
			WRITE ENRTEMP ON F.VOC,'VISIT':W_Util
		END
	END
	FOR I = 1 TO 3
		
		BEGIN CASE
			CASE I = 1
				W_Nom = "AIDE"
			CASE I = 2
				W_Nom = "PLANNING"
			CASE I = 3
				W_Nom = "PARAMETRES"
		END CASE

		READ ENR_SDPARAMEXPORT FROM F.SDPARAMEXPORT, W_Nom ELSE ENR_SDPARAMEXPORT=""
		IF ENR_SDPARAMEXPORT # "" THEN
			L=1
			FOR J=1 TO DCOUNT(ENR_SDPARAMEXPORT,CHAR(254))
				IF ENR_SDPARAMEXPORT<J,1> # "[AIDE]" AND ENR_SDPARAMEXPORT<J,1> # "[AIDANT]" THEN
					*Mise  jour des tampons fichiers
					W_VAR = ENR_SDPARAMEXPORT<J,1> 
					W_FIC = "F.":ENR_SDPARAMEXPORT<J,1> 
					W_FICDIS = ENR_SDPARAMEXPORT<J,1>:"_":W_Util
					W_FFICDIS = "F.":ENR_SDPARAMEXPORT<J,1>:"_":W_Util
					
					* Test l'existance dans le VOC
					
*					READ ENR_VOC FROM F.VOC, W_FICDIS ELSE 

						*Cration du fichier_utilisateur
						EXECUTE '!COPY ':W_ChemServDist:'\':W_VAR:" ":W_ChemServDist:'\VISITESAIDES\':W_Util:'\':W_VAR:' /Y'
						
						ENRTEMP = ""
						ENRTEMP<1> = "F"
						ENRTEMP<2> = W_ChemServDist:'\VISITESAIDES\':W_Util:'\':ENR_SDPARAMEXPORT<J,1>
						ENRTEMP<3> = "D_":ENR_SDPARAMEXPORT<J,1>
						WRITE ENRTEMP ON F.VOC, W_FICDIS
*					END

					EXECUTE 'VIDER-FICHIER ':W_FICDIS
						
					IF W_Nom # "PARAMETRES" THEN
					
						* Ouverture du fichier utilisateur

						OPEN "", W_VAR TO W_FIC ELSE RETURN

						OPEN "", W_FICDIS TO W_FFICDIS THEN
							* Fichier est ouvert
						END ELSE 
							EXECUTE '!COPY ':W_ChemServDist:'\':W_VAR:" ":W_ChemServDist:'\VISITESAIDES\':W_Util:'\':W_VAR:' /Y'
							*IF W_PremierImport = TRUE THEN							
								EXECUTE 'VIDER-FICHIER ':W_FICDIS
							*END IF
							OPEN "", W_FICDIS TO W_FFICDIS ELSE RETURN
						END
						
						IF W_Nom = "AIDE" THEN

							IF ENR_SDPARAMEXPORT<J,3> = "SELECT" THEN

								*Excution requte et copie des enregistrements
								GOSUB 100
								
							END ELSE

								*READ/WRITE
							
								*Boucle sur les aids selectionns
								FOR K = 1 TO DCOUNT(W_Tab,CHAR(254))
									READ W_Temp FROM W_FIC, W_Tab<K> THEN WRITE W_Temp ON W_FFICDIS, W_Tab<K>
								NEXT K
							END
							
						* W_Nom = "PLANNING"
						END ELSE

							IF W_ZonePlanning = "AIDANT" THEN
								W_Tab=W_Aidants
							END							

							IF ENR_SDPARAMEXPORT<J,3> = "SELECT" THEN
								*Requtage sur la cl planning du fichier SDPARAMEXPORT
								GOSUB 200

							END ELSE
								*READ/WRITE
							
								*Boucle sur les aids selectionns
								FOR K = 1 TO DCOUNT(W_Tab,CHAR(254))
									IF  W_Tab<K> # "" THEN
										READ W_Temp FROM W_FIC , W_Tab<K> THEN WRITE W_Temp ON W_FFICDIS,W_Tab<K>
									END
								NEXT K
							END

						END

						*ON COPIE LE FICHIER DU REPERTOIRE VISITESAIDES\UTILISATEUR DANS LA BASE						
						EXECUTE '!COPY ':W_ChemServDist:'\VISITESAIDES\':W_Util:'\':W_VAR:' \\':W_NomServ:'\':W_ChemServ[4,999]:'\':W_VAR:' /Y'
					END ELSE
						EXECUTE '!COPY ':W_ChemServDist:'\':W_VAR:" ":W_ChemServDist:'\VISITESAIDES\':W_Util:'\':' /Y'
						IF W_VAR # "COMPTEUR" THEN			
							EXECUTE '!COPY ':W_ChemServDist:'\':W_VAR:' \\':W_NomServ:'\':W_ChemServ[4,999]:'\':W_VAR:' /Y'
						END ELSE
							OPEN "", W_FICDIS TO W_FFICDIS THEN
								READ ENR_FICCOMPTEUR FROM W_FFICDIS, "999" THEN
									ENR_FICCOMPTEUR<24>="INFOLOGISNOMAD"
									WRITE ENR_FICCOMPTEUR ON W_FFICDIS, "999"
								END
								EXECUTE '!COPY ':W_ChemServDist:'\VISITESAIDES\':W_Util:'\':W_VAR:' \\':W_NomServ:'\':W_ChemServ[4,999]:'\':W_VAR:' /Y'
							END

						END
					END
					
				END ELSE
					IF ENR_SDPARAMEXPORT<J,1> = "[AIDE]" THEN
						W_ZonePlanning = "AIDE"
					END
					IF ENR_SDPARAMEXPORT<J,1> = "[AIDANT]" THEN
						W_ZonePlanning = "AIDANT"
					END
				END
			NEXT J
		END
	NEXT I
	
RETURN


**********************************************************************************************************
*Procdure de requtage sur les fichiers de SDPARAMEXPORT qui ont plusieurs cls pour 1 aid (MV3=SELECT)*
**********************************************************************************************************
	
100

	W_Req = 'SSELECT ':ENR_SDPARAMEXPORT<J,1>:' AVEC @ID = "':W_Tab<1>:']"'
	FOR K = 2 TO DCOUNT(W_Tab,CHAR(254))
		IF  W_Tab<K> # "" THEN
			W_Req = W_Req:' OR = "':W_Tab<K>:']"'
		END
	NEXT K
	
	EXECUTE W_Req
	EXECUTE 'SAUVE-LISTE LIST'
	EXECUTE "LISTE LIST" RETURNING MSGCODE
	
	IF MSGCODE<1>#"209" THEN
		SELECT W_FIC TO LIST
		W_Fini= "NON"
		LOOP
			READNEXT W_CLE FROM LIST ELSE W_Fini="OUI"
		UNTIL W_Fini="OUI" DO
			READ W_Temp FROM W_FIC , W_CLE THEN WRITE W_Temp ON W_FFICDIS, W_CLE
		REPEAT
	END
	EXECUTE 'EFFACER-LISTE LIST'

RETURN

******************************************************************
*Requtage comme en 100 mais sur la cl PLANNING de SDPARAMEXPORT*
******************************************************************

200	
	
	IF ENR_SDPARAMEXPORT<J,5> = "]" OR ENR_SDPARAMEXPORT<J,5> = "" THEN
		W_Req = 'SSELECT ':ENR_SDPARAMEXPORT<J,1>:' AVEC @ID = "':W_Tab<1>:']"'
	END ELSE
		IF ENR_SDPARAMEXPORT<J,5> = "[" THEN
			W_Req = 'SSELECT ':ENR_SDPARAMEXPORT<J,1>:' AVEC @ID = "[':W_Tab<1>:'"'
		END ELSE
			W_Req = 'SSELECT ':ENR_SDPARAMEXPORT<J,1>:' AVEC ':ENR_SDPARAMEXPORT<J,5>:' = "':W_Tab<1>:'"'
		END
	END

	*parcours du tableau des aidants pour la requete
	FOR K = 2 TO DCOUNT(W_Tab,CHAR(254))
		IF  W_Tab<K> # "" THEN
			IF ENR_SDPARAMEXPORT<J,5> = "]" OR ENR_SDPARAMEXPORT<J,5> = "" THEN
				W_Req = W_Req:' OR = "':W_Tab<K>:']"'
			END ELSE
				IF ENR_SDPARAMEXPORT<J,5> = "[" THEN
					W_Req = W_Req:' OR = "[':W_Tab<K>:'"'
				END ELSE
					W_Req = W_Req:' OR = "':W_Tab<K>:'"'				
				END
			END
		END
	NEXT K

	EXECUTE W_Req
	EXECUTE 'SAUVE-LISTE LIST'
	EXECUTE "LISTE LIST" RETURNING MSGCODE

	IF MSGCODE<1>#"209" THEN
		SELECT W_FIC TO LIST
		W_Fini= "NON"
		LOOP
			READNEXT W_CLE FROM LIST ELSE W_Fini="OUI"
		UNTIL W_Fini="OUI" DO
			READ W_Temp FROM W_FIC, W_CLE THEN
			
				*Ajout des aidants  la table aidants pour lecture sur les fichiers concerns
				IF ENR_SDPARAMEXPORT<J,4> = "TAB" THEN
					IF ENR_SDPARAMEXPORT<J,1> = "HRESHISTOR" THEN
						FOR M = 1 TO DCOUNT(W_Temp<1>, CHAR(253))
							W_Trouve = 0
							FOR N = 1 TO DCOUNT(W_Aidants, CHAR(254))
								IF W_Aidants<N> = W_Temp<1,M> THEN 
									W_Trouve = 1
									EXIT
								END
							NEXT N
							
							IF W_Trouve = 0 THEN
								W_Aidants<L>=W_Temp<1,M>
								L=L+1
							END
						NEXT M
					END ELSE
						W_Trouve = 0
						FOR N = 1 TO DCOUNT(W_Aidants, CHAR(254))
							IF W_Aidants<N> = W_CLE[1,5] THEN 
								W_Trouve = 1
								EXIT
							END
						NEXT N
						
						IF W_Trouve = 0 THEN					
							W_Aidants<L> = W_CLE[1,5]
							L=L+1
						END
						
					END
				END

				WRITE W_Temp ON W_FFICDIS, W_CLE
			END
				
		REPEAT
	END
	EXECUTE 'EFFACER-LISTE LIST'
RETURN