SUBROUTINE CONSULTDADSU(RETURNVAL,PARAMETRES,W_Sortie)

****************************************
* PROGRAMME DE MISE A JOUR DES DONNEES *
* DANS UN FICHIER DADS-U               *
*                                      *
* NOV 2005                    STEPHANE *
****************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","DADS-U" TO F.DADSU ELSE RETURN

W_Etablissement=PARAMETRES<1>
W_NIC=PARAMETRES<2>

* LECTURE FICHIER TEMPORAIRE
READ ENR_TAMPONDADSU FROM F.DADSU,"CODE" ELSE 
	ENR_TAMPONDADSU = "ECHEC LECTURE FICHIER"
	WRITE ENR_TAMPONDADSU ON F.DADSU,"CODE"
	RETURN
END

* DETAIL DU FICHIER TAMPONDADSU
* ATT 1 : MV 1 => NOM DU FICHIER DADS-U
*         MV 2 => 1ERE LIGNE CONCERNANT L'AIDANT
*         MV 3 => DERNIERE LIGNE CONCERNANT L'AIDANT
*         MV 4 => 1ERE LIGNE S41 CONCERNANT L'AIDANT
*         MV 5 => SIRET ETABLISSEMENT
*         MV 6 => ANNEE EN COURS
* ATT 2 a X    => DONNEES CONCERNANT L'AIDANT



* LECTURE FICHIER DADS-U
READ ENR_DADSU FROM F.DADSU,ENR_TAMPONDADSU<1,1> ELSE ENR_DADSU = ""

*****modif du 05/01/2007*****
W_CODEENTITE=ENR_TAMPONDADSU<1,1>[1,3]
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE RETURN
READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CODEENTITE ELSE ENR_ASSOCIATION = ""
*****************************

* Modif. du 22/11/07 - Grgory
* Gestion multi-tablissements
* Le prog d'origine cherchait la premire ligne de l'aidant dans le fichier pour rcuprer les donnes de celui-ci.
* Il faisait galement une recherche de la ligne 1  la ligne de l'aidant pour rcuprer des infos sur l'asso.
* Pour garder l'algo d'origine, on parcours le fichier jusqu' trouver la premire ligne de l'tablissement
* slectionn sous VB. Une fois cette ligne trouve, on fait 2 recherches :
*	- une pour trouver la premire ligne de l'association prcdant les donnes de l'tablissement,
*			ce qui nous donne la ligne de dpart de la boucle d'origine (au lieu de la ligne 1, variable W_NumLigne)
*	- une pour trouver la ligne de l'aidant, ce qui nous donne la position de celui-ci pour l'tablissement
*			voulu (au lieu de la premire occurence, variable W_POS)
*
* ATTENTION : si il n'y a pas d'tablissement en paramtre alors on laisse le traitement d'origine.
IF W_Etablissement<>"" THEN
	W_TEMP="S41.G01.00.005,'":W_NIC:"'"
	W_POS=(INDEX(ENR_DADSU,W_TEMP,1))-1
	ENR_TEMP2=ENR_DADSU[1,W_POS]
	
	ENR_TEMP=ENR_DADSU[W_POS+1,(LEN(ENR_DADSU)-W_POS)+1]
	W_TEMP="S41.G01.00.019,'":ENR_TAMPONDADSU<2>:"'"
	W_POS = W_POS+INDEX(ENR_TEMP,W_TEMP,1)
	
	W_TEMP="S20.G01.00.001"	
	W_NumLigne=1
	W_Position=0
	W_Occurence=0
	LOOP
		W_Occurence=W_Occurence+1
		W_Position=INDEX(ENR_TEMP2,W_TEMP,W_Occurence)
	WHILE W_Position<>0 DO
		* Rien
	REPEAT
	W_Position=INDEX(ENR_TEMP2,W_TEMP,W_Occurence-1)
	ENR_TEMP=ENR_TEMP2[1,W_Position]
	W_NumLigne=DCOUNT(ENR_TEMP,CHAR(254))
END ELSE
	W_TEMP = "S41.G01.00.019,'":ENR_TAMPONDADSU<2>:"'"
	W_POS = INDEX(ENR_DADSU,W_TEMP,1)
	W_NumLigne = 1
END
* Fin modif. du 22/11/07

* SI AIDANT PAS TROUVE ALORS SORT
IF W_POS = 0 THEN RETURN	

ENR_TAMPONDADSU<1,4> = DCOUNT(ENR_DADSU[1,W_POS],CHAR(254))

LOOP
	UNTIL ENR_DADSU<W_NumLigne>[1,3] > "S30" DO

        *numero SIRET
        IF ENR_DADSU<W_NumLigne>[1,15] = "S20.G01.00.001," THEN ENR_TAMPONDADSU<1,5> = ENR_DADSU<W_NumLigne>[17,LEN(ENR_DADSU<W_NumLigne>) - 17]
        *anne en cours
		
        IF ENR_DADSU<W_NumLigne>[1,19] = "S20.G01.00.003.001," THEN 
			ENR_TAMPONDADSU<1,6> = ENR_DADSU<W_NumLigne>[21,LEN(ENR_DADSU<W_NumLigne>) - 21]
			
			*****modification du 05/01/2007*****
			IF ENR_ASSOCIATION<25> = "1" THEN
				ENR_TAMPONDADSU<1,7> = (ENR_DADSU<W_NumLigne>[21,LEN(ENR_DADSU<W_NumLigne>) - 21])
				ENR_TAMPONDADSU<1,7>=ENR_TAMPONDADSU<1,7>[5,4]
				ENR_TAMPONDADSU<1,8> = ENR_TAMPONDADSU<1,7>
				ENR_TAMPONDADSU<1,7>=ENR_TAMPONDADSU<1,7> - 1
			END ELSE
				ENR_TAMPONDADSU<1,7> = ENR_DADSU<W_NumLigne>[21,LEN(ENR_DADSU<W_NumLigne>) - 21]
				ENR_TAMPONDADSU<1,7>=ENR_TAMPONDADSU<1,7>[5,4]
				ENR_TAMPONDADSU<1,8> = ENR_TAMPONDADSU<1,7>
			END
			************************************
			
		END
	W_NumLigne = W_NumLigne + 1
REPEAT

* RECHERCHE S30.G01.00.001 SUIVANT LA LIGNE AIDANT
W_NumLigne = ENR_TAMPONDADSU<1,4>
LOOP
	UNTIL ENR_DADSU<W_NumLigne> = "" DO	

        IF ENR_DADSU<W_NumLigne>[1,15] = "S30.G01.00.001," OR ENR_DADSU<W_NumLigne>[1,11] >= "S70.G01.00." THEN
		ENR_TAMPONDADSU<1,3> = W_NumLigne - 1
		EXIT
	END

	W_NumLigne = W_NumLigne + 1
REPEAT

* RECHERCHE S30.G01.00.001 PRECEDENT LA LIGNE AIDANT
W_NumLigne = ENR_TAMPONDADSU<1,4>
LOOP
	UNTIL W_NumLigne = 1 DO	

        IF ENR_DADSU<W_NumLigne>[1,15] = "S30.G01.00.001," THEN
		ENR_TAMPONDADSU<1,2> = W_NumLigne 
		EXIT
	END

	W_NumLigne = W_NumLigne - 1
REPEAT

* STOCKE LES DONNEES AIDANT DANS LE FICHIER TAMPON
ENR_TAMPONDADSU_2 = ""
ENR_TAMPONDADSU_2<1> = ENR_TAMPONDADSU<1>
FOR I = ENR_TAMPONDADSU<1,2> TO ENR_TAMPONDADSU<1,3>
	ENR_TAMPONDADSU_2<-1> = ENR_DADSU<I>
NEXT I

WRITE ENR_TAMPONDADSU_2 ON F.DADSU,ENR_TAMPONDADSU<2>
DELETE F.DADSU,"CODE"

RETURN
