*************************************************************
*	INDICATEUR DUREE MOYENNE PRISE EN CHARGE/NBRE ABSENCE	*
* --------------------------------------------------------- *
* Valentin										le 28/09/07 *
*************************************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"

OPEN "","ACTIVITESBISAIDE" TO F.ACTIVITESBISAIDE ELSE PRINT "ERREUR OUVERTURE ACTIVITESBISAIDE"
OPEN "","ABSENCESAIDE" TO F.ABSENCE ELSE PRINT "ERREUR OUVERTURE ABSENCE"

W_FINI="faux"
W_CumulAbs=0
W_Duree=0
W_DureeAbs=0
W_Sortie="faux"
DATEDEB=""
DATEFIN=""
W_ListeReq=""

PRINT "INDICATEUR DUREE MOYENNE DES PRISES EN CHARGE ET NOMBRE D'ABSENCE"

LOOP
	PRINT "SAISIR LA DATE DE DEBUT (JJ/MM/AAAA) "
	INPUT DATEDEB
WHILE LEN(DATEDEB)#10
	PRINT "LE FORMAT N'EST PAS CORRECT"
REPEAT

LOOP
	PRINT "SAISIR LA DATE DE FIN (JJ/MM/AAAA) "
	INPUT DATEFIN
WHILE LEN(DATEFIN)#10
	PRINT "LE FORMAT N'EST PAS CORRECT"
REPEAT

DATEDEB=ICONV(DATEDEB,"D4/")
DATEFIN=ICONV(DATEFIN,"D4/")

W_Requete='SELECT ACTIVITESBISAIDE AVEC TypeActBisAide  = "P" AND AVEC 1 => "':DATEDEB:'" AND AVEC 1 <= "':DATEFIN:'"'
PRINT "W_Requete= ":W_Requete
EXECUTE W_Requete
EXECUTE 'SAUVE-LISTE W_ListeReq'
EXECUTE "LISTE W_ListeReq" RETURNING MSGCODE
IF MSGCODE<1>=209 THEN
    W_Vide="VRAI"
END ELSE
    SELECT F.ACTIVITESBISAIDE TO W_ListeReq
    
    LOOP
		READNEXT W_CLE FROM W_ListeReq ELSE W_FINI="vrai"
	UNTIL W_FINI="vrai"
		W_DureeAbs=0
		W_DateDeb=0
		W_DateFin=0
		
		READ ENR_ACTIVITESBISAIDE FROM F.ACTIVITESBISAIDE,W_CLE ELSE ENR_ACTIVITESBISAIDE=""
		IF LEN(W_CLE)<16 THEN
			W_DateDeb=W_CLE[12,4] "R%5"
		END ELSE
			W_DateDeb=W_CLE[12,5]
		END
		
		W_DateFin=ENR_ACTIVITESBISAIDE<1>
		W_Duree=W_Duree+W_DateFin-W_DateDeb+1
		
		W_Sortie="faux"
		READ ENR_ABSENCE FROM F.ABSENCE,W_CLE[1,5] ELSE ENR_ABSENCE=""
		FOR i=1 TO DCOUNT(ENR_ABSENCE<1>,CHAR(253))
			W_CumulAbs=W_CumulAbs+1
			W_DureeAbs=W_DureeAbs+ENR_ABSENCE<2,i>-ENR_ABSENCE<1,i>+1
			W_Sortie="vrai"
		NEXT i
		
		IF W_Sortie="vrai" THEN W_CumulAbs=W_CumulAbs+1
		W_Duree=W_Duree-W_DureeAbs
		
	REPEAT
   
   EXECUTE 'EFFACER-LISTE W_ListeReq'
END

PRINT "Duree cumulee des prises en charge: ":W_Duree:" jours"
PRINT "Nombre de sorties: ":W_CumulAbs

STOP