SUBROUTINE HONORAIRESDADSU(RETURNVAL,PARAMETRES,W_Sortie)
W_Sortie=""
****************************************
* PROGRAMME DE RECHERCHE DES HONORAIRE *
* 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>

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


* EFFACE FICHIER PRECEDENT
DELETE F.DADSU,"HONORAIRES"

* 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 X : MV 1 => NOM DU FICHIER DADS-U
*         MV 2 => 1ERE LIGNE CONCERNANT L'HONORAIRE
*         MV 3 => DERNIERE LIGNE CONCERNANT L'HONORAIRE
*         MV 4 => RAISON SOCIALE SI PROF LIBERALE
*         MV 5 => NOM PRENOM SINON



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

* Modif. du 22/11/07 - Grgory
* Gestion multi-tablissements
* Le prog d'origine cherchait la premire ligne "S70..." (variable W_POS). Maintenant on cherche la premire ligne "S70..."
* de l'tablissement voulu. On cherche donc d'abord l'tablissement et ensuite une ligne "S70...".
*
* ATTENTION : si il n'y a pas d'tablissement en paramtre alors on laisse la gestion d'origine.
* Michael , le 20/12/07 : de toute facon, de la maniere dont a ete developp l'ocx, jamais on n'appellera le PR SANS W_Etablissement => Uniquement gestion par etab. 
* Par contre, on peut avoir PLUSIEURS etab avec le meme NIC (fraction etablissement, soit plusieurs fractions pour meme etab.)
* Donc j'ajoute une boucle.
W_RangHono = 2
IF W_Etablissement<>"" THEN

	ENR_TEMP = ENR_DADSU
	LOOP
	W_SVPOS = W_POS
	W_TEMP="S41.G01.00.005,'":W_NIC:"'"
	W_POS=W_POS+INDEX(ENR_TEMP,W_TEMP,1)
	WHILE W_POS-W_SVPOS <> 0
		W_SVPOS = W_POS
		GOSUB 200
		IF W_POS <> 0 THEN
			ENR_TEMP=ENR_DADSU[W_POS+1,(LEN(ENR_DADSU)-W_POS)+1]
		END ELSE
			ENR_TEMP = ""
		END
	REPEAT
END ELSE
	W_TEMP = "S70.G01.00."
	W_POS = INDEX(ENR_DADSU,W_TEMP,1)
	IF W_POS # 0 THEN
	GOSUB 100
	END
END
* STOCKE LES DONNEES HONORAIRES DANS LE FICHIER TAMPON
WRITE ENR_TAMPONDADSU ON F.DADSU,"HONORAIRES":ENR_TAMPONDADSU<1,1>
DELETE F.DADSU,"CODE"
RETURN
100 ********
* Boucle sur S70 ...
ENR_TAMPONDADSU<1,4> = DCOUNT(ENR_DADSU[1,W_POS],CHAR(254))
* RECHERCHE TOUS LES HONORAIRES S70.G01.00
W_NumLigne = ENR_TAMPONDADSU<1,4>
LOOP
	UNTIL ENR_DADSU<W_NumLigne>[1,4] > "S70." DO	

      IF (ENR_DADSU<W_NumLigne>[1,15] = "S70.G01.00.001," OR ENR_DADSU<W_NumLigne>[1,19] = "S70.G01.00.002.001,") THEN
		IF ENR_TAMPONDADSU<W_RangHono,2> # "" THEN 
			ENR_TAMPONDADSU<W_RangHono,3> = W_NumLigne - 1
			W_RangHono = W_RangHono + 1	
			ENR_TAMPONDADSU<W_RangHono,1> = ENR_TAMPONDADSU<1,1>
			ENR_TAMPONDADSU<W_RangHono,2> = W_NumLigne 	
		END ELSE
			ENR_TAMPONDADSU<W_RangHono,1> = ENR_TAMPONDADSU<1,1>
			ENR_TAMPONDADSU<W_RangHono,2> = W_NumLigne 
		END
	END

        IF ENR_DADSU<W_NumLigne>[1,15] = "S70.G01.00.001," THEN 
		ENR_TAMPONDADSU<W_RangHono,4> =  ENR_DADSU<W_NumLigne>[17,99]
		ENR_TAMPONDADSU<W_RangHono,4> =  ENR_TAMPONDADSU<W_RangHono,4>[1,LEN(ENR_TAMPONDADSU<W_RangHono,4>)-1]
	END
        IF ENR_DADSU<W_NumLigne>[1,19] = "S70.G01.00.002.001," THEN 
		ENR_TAMPONDADSU<W_RangHono,5> = ENR_DADSU<W_NumLigne>[21,99]
		ENR_TAMPONDADSU<W_RangHono,5> =  ENR_TAMPONDADSU<W_RangHono,5>[1,LEN(ENR_TAMPONDADSU<W_RangHono,5>)-1]
	END
	W_NumLigne = W_NumLigne + 1
REPEAT

ENR_TAMPONDADSU<W_RangHono,3> = W_NumLigne - 1
W_RangHono = W_RangHono + 1
W_POS = INDEX(ENR_DADSU,CHAR(254),W_NumLigne+1)
RETURN
200
ENR_TEMP=ENR_DADSU[W_POS+1,(LEN(ENR_DADSU)-W_POS)+1]
W_TEMP="S70.G01.00."
W_SVPOS = W_POS
W_POS2 = (W_POS+INDEX(ENR_TEMP,"S80.",1))
W_POS=(W_POS+INDEX(ENR_TEMP,W_TEMP,1))
IF W_POS = W_SVPOS THEN
	* On n'a trouv aucun honoraire => On doit sortir ...
	W_POS = 0
END ELSE
   IF W_POS > W_POS2 THEN
	* On est tomb sur les honoraires de l'etab suivant ...
	W_POS = W_POS2
	* On va chercher l'eventuel etab suivant ...
   END ELSE
	* W_POS pointe bien sur les honoraires de l'etab qui nous interresse ...
	GOSUB 100
   END
END
RETURN
