**************************************************************************
*******   Programme d'impression des annivairsaires des aids   ********
**************************************************************************
**************************************************************************
*                   Cr par Guillaume le 11/04/2006                     * 
**************************************************************************
*Requete sur les activits pour trouver les anniversaires des aids selon*
*les paramtres de l'interface VB.                                       *
*                                                                        *
* -Ouvertures des fichiers                                               *
* -Initialisation des variables                                          *
* -Rcupration des paramtres de l'IHM                                  *
* -Requete sur ACTIVITESBISAIDE                                          *
* -Tri de la requete sur bornage                                         *
* -Test de l'age dans l'intervalle                                       *
* -Sub 100 : "Marquage" des ACTIVITESBIS valides                         *
* -Sub 200 : Vrification des marques sur les ACTIVITESBIS et            *
*            enregistrement des informations sur l'aidant                *
**************************************************************************
* Modifications: date, technicien                                        *
*												 *
*												 *
**************************************************************************
**************************************************************************

*Ouverture des fichiers

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

OPEN "", "ACTIVITESBISAIDE" TO F.ACTIVITESBISAIDE ELSE RETURN 
OPEN "", "ACTIVITES" TO F.ACTIVITES ELSE RETURN
OPEN "", "RESPONSABLE" TO F.RESPONSABLE ELSE RETURN
OPEN "", "ASSOCIATION" TO F.ASSOCIATION ELSE RETURN
OPEN "", "CIVILAIDE" TO F.CIVILAIDE ELSE RETURN
OPEN "", "SECTEUR" TO F.SECTEUR ELSE RETURN
OPEN "", "STATAIDE" TO F.STATAIDE ELSE RETURN
OPEN "", "TEMPO" TO F.TEMPO ELSE RETURN

**************************************************************************
*Initialisation des variables
**************************************************************************

W_Requete=""
W_RequeteActivite=""
W_Temp=""
W_TypAct=""
W_TestTypAct=""
W_ListeImpression=""
ENR_ACTIVITESBISAIDE=""
ENR_CIVILAIDE=""
W_CleActivite=0
W_FichierGraphique=""
W_AnniAide=""
W_AgeAideSur=""

**************************************************************************
*Rcupration des paramtres
**************************************************************************

PROCREAD PARAMETRES ELSE STOP


W_CodAsso= FIELD(PARAMETRES, "|",2)

W_Temp = FIELD(PARAMETRES, "|", 3)
W_NBTypAct = LEN(W_Temp)

FOR i = 1 TO W_NBTypAct
	W_TypAct<i> = W_Temp[i,1]
	           *= P ou M ou I ou S
			   
	W_TestTypAct<i,1> = W_Temp[i,1]
	W_TestTypAct<i,2> = 0
NEXT i

W_Activite = FIELD(PARAMETRES, "|", 4)
W_EditExclu = FIELD(PARAMETRES, "|", 5)
W_Selec = FIELD(PARAMETRES, "|", 6)
W_DateDebut = ICONV(FIELD(PARAMETRES, "|",7),"D4/")
W_DateFin = ICONV(FIELD(PARAMETRES, "|",8),"D4/")
W_AgeDe = FIELD(PARAMETRES, "|",9)
W_AgeA = FIELD(PARAMETRES, "|",10)
W_Tri = FIELD(PARAMETRES, "|",11)
W_Format = FIELD(PARAMETRES , "|",12)
W_User = FIELD(PARAMETRES , "|",13)


**************************************************************************
*Requete sur ACTIVITESBISAIDE
**************************************************************************

W_Requete='SELECT ACTIVITESBISAIDE AVEC NaisAide <> "" AND AVEC DateDebAct <= "':W_DateFin:'" AND AVEC 1 >= "':W_DateDebut:'" OR = "" '


IF W_NBTypAct > 1 THEN
	FOR i = 1 TO W_NBTypAct
		IF i=1 THEN
			W_Requete=W_Requete:'AND AVEC TypeActBisAide = "':W_TypAct<i,1>:'" '
		END ELSE
			W_Requete=W_Requete:'OR = "':W_TypAct<i,1>:'" '
		END
	NEXT i
END ELSE
	i=1
	IF W_Activite # "" THEN
		W_Requete=W_Requete:'AND AVEC TypeActBisAide = "':W_TypAct<i,1>:'" AND AVEC LibActBisAide = "':W_Activite:'" '
	END ELSE
		W_Requete=W_Requete:'AND AVEC TypeActBisAide = "':W_TypAct<i,1>:'" '
	END
END



IF W_CodAsso # "" THEN
   W_Requete=W_Requete:'AND AVEC CodeAssocBisAide = "':W_CodAsso:'" '
END

IF W_Selec[1,1]="S" THEN
	IF W_Selec[2,3]#"" THEN
		W_Requete=W_Requete:'AND AVEC CodeSecteurBisAide = "':W_Selec[2,3]:'" '
	END
	W_Requete=W_Requete:'PAR SecteurBisAide '
END
IF W_Selec[1,1]="C" THEN
	IF W_Selec[2,23]#"" THEN
		W_Requete = W_Requete:'AND AVEC CommuneBisAide = "':W_Selec[2,23]:'" '
	END
	IF W_Format#"E" THEN
		W_Requete = W_Requete:'PAR CommuneBisAide '
	END
END
IF W_Selec[1,1]="R" THEN
	IF W_Selec[2,3]#"" THEN
		W_Requete = W_Requete:'AND AVEC CodeResponsableBisAide = "':W_Selec[2,3]:'" '
	END
	W_Requete = W_Requete:' PAR CodeResponsableBisAide '
END

IF W_Tri="A" THEN
   W_Requete=W_Requete:'PAR NomPrenomBisAide PAR CodeAide '
END
IF W_Tri="D" THEN
   W_Requete=W_Requete:'PAR MoisAide PAR JourAide PAR NomPrenomBisAide PAR CodeAide '
END

EXECUTE W_Requete
EXECUTE 'SAUVE-LISTE W_RequeteActivite'
EXECUTE "LISTE W_RequeteActivite" RETURNING MSGCODE

*******************************************************************************
*Tri de la requete par bornage
*******************************************************************************

IF MSGCODE<1>#209 THEN
	SELECT F.ACTIVITESBISAIDE TO W_RequeteActivite
	i=1
	W_Fini="FAUX"
	W_ClePrec=0
	LOOP
		READNEXT W_CleActivite FROM W_RequeteActivite ELSE W_Fini="VRAI"
		IF W_CleActivite[1,5]#W_ClePrec[1,5] AND W_ClePrec#0 THEN
			GOSUB 200
		END
		
		WHILE W_Fini="FAUX"
			READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CleActivite[1,5] ELSE ENR_CIVILAIDE = ""
			READ ENR_ACTIVITESBISAIDE FROM F.ACTIVITESBISAIDE,W_CleActivite ELSE ENR_ACTIVITESBISAIDE = ""
			READ ENR_ACTIVITES FROM F.ACTIVITES,W_CleActivite[6,6] ELSE ENR_ACTIVITES = ""
			
			W_ClePrec = W_CleActivite
		*Ressrage des bornes de priode en fonction des dates de contrat
			
			IF W_CleActivite[12,5] > W_DateDebut THEN
				W_BornageDeb = W_CleActivite[12,5]
			END ELSE
				W_BornageDeb = W_DateDebut
			END
					
			IF ICONV(ENR_ACTIVITESBISAIDE<1>,"D4/") # "" AND ICONV(ENR_ACTIVITESBISAIDE<1>,"D4/") < W_DateFin THEN
				W_BornageFin = ICONV(ENR_ACTIVITESBISAIDE<1>,"D4/")
			END ELSE
				W_BornageFin = W_DateFin
			END
			
			W_AnniAide=OCONV(ENR_CIVILAIDE<20>,"D4/")
			W_AnniAide=W_AnniAide[1,6]:OCONV(W_BornageDeb,"D4/")[7,4]
			W_AnniAide=ICONV(W_AnniAide,"D4/")
************************************************************************************************************			
* test si anniversaire compris dans l'intervalle et anniversaire pour un age compris dans les bornes
************************************************************************************************************

			IF W_BornageDeb < W_AnniAide AND W_AnniAide < W_BornageFin THEN
				IF W_AgeDe # "" AND W_AgeA # "" THEN
					IF W_AgeDe <= OCONV(W_AnniAide,"D4/")[7,4] - OCONV(ENR_CIVILAIDE<20>,"D4/")[7,4] AND OCONV(W_AnniAide,"D4/")[7,4] - OCONV(ENR_CIVILAIDE<20>,"D4/")[7,4] <= W_AgeA THEN
						GOSUB 100
					END
				END ELSE
					GOSUB 100
				END
				
			END ELSE
				W_AnniAide=OCONV(ENR_CIVILAIDE<20>,"D4/")
				W_AnniAide=W_AnniAide[1,6]:OCONV(W_BornageFin,"D4/")[7,4]
				W_AnniAide=ICONV(W_AnniAide,"D4/")
*				W_AgeAidant=OCONV(W_AnniAide,"D4/")[4,7] - OCONV(ENR_CIVILAIDE<20>,"D4/")[7,4]
				IF W_BornageDeb <= W_AnniAide AND W_AnniAide <= W_BornageFin THEN
					IF W_AgeDe # "" AND W_AgeA # "" THEN
						IF W_AgeDe <= OCONV(W_AnniAide,"D4/")[7,4] - OCONV(ENR_CIVILAIDE<20>,"D4/")[7,4] AND OCONV(W_AnniAide,"D4/")[7,4] - OCONV(ENR_CIVILAIDE<20>,"D4/")[7,4] < W_AgeA THEN
							GOSUB 100
						END
					END ELSE
						GOSUB 100
					END
				END
			END	
	REPEAT
	
END

	W_J=OCONV(DATE(),"D4/")[1,2]
	W_M=OCONV(DATE(),"D4/")[4,2]
	W_A=OCONV(DATE(),"D4/")[7,4]	
	W_Aujourdhui=W_A:W_M:W_J
	
	W_Message = ""
	
	IF W_ListeImpression# "" THEN
		IF W_Format = "G" THEN
			W_Ecrit="FAUX"
			i=1
			j=1
			W_FichierGraphique<1> = "Responsable;Secteur;Code;Titre;Nom;Prnom;Adresse;Complment d'adresse;Code postal;Commune;Tlphone;Date de naissance;Age"
			LOOP
				UNTIL W_ListeImpression<j,1>=""
				W_FichierGraphique<j+1>=W_ListeImpression<j,13>:";":W_ListeImpression<j,1>:";":W_ListeImpression<j,2>:";":W_ListeImpression<j,3>:";":W_ListeImpression<j,4>:";":W_ListeImpression<j,5>:";":W_ListeImpression<j,6>:";":W_ListeImpression<j,7>:";":W_ListeImpression<j,8>:";":W_ListeImpression<j,9>:";":W_ListeImpression<j,10>:";":W_ListeImpression<j,11>:";":W_ListeImpression<j,12>
				j=j+1
			REPEAT
			LOOP
				WHILE W_Ecrit = "FAUX"
				READ ENR_STATAIDE FROM F.STATAIDE,"AnniversaireAide-":W_Aujourdhui:"-":i:".csv" ELSE
					WRITE W_FichierGraphique ON F.STATAIDE,"AnniversaireAide-":W_Aujourdhui:"-":i:".csv"
					W_Message="AnniversaireAide-":W_Aujourdhui:"-":i:".csv"
					W_Ecrit = "VRAI"
					WRITE W_Message ON F.TEMPO, "ANNIAIDE":W_User
				END
				i=i+1
			REPEAT
			
		END ELSE
			PRINT W_User
			WRITE  W_ListeImpression ON F.TEMPO, "ANNIAIDE":W_User	
		END
	END ELSE
		W_Message="0"
		WRITE W_Message ON F.TEMPO, "ANNIAIDE":W_User
	END
	
	STOP
***************************************************************
*Marquage des Activites
***************************************************************
100

j=1
LOOP
	UNTIL W_TestTypAct<j,1>=ENR_ACTIVITES<12>
		j=j+1
REPEAT
W_TestTypAct<j,2>=1
W_AgeAideSur=OCONV(W_AnniAide,"D4/")[7,4] - OCONV(ENR_CIVILAIDE<20>,"D4/")[7,4]
RETURN

*********************************************************************
*Vrification dans le cas d'une dition exclusive, Chargement des infos sur les Activites/aidants selectionns
*********************************************************************
200

IF W_EditExclu=1 THEN
	W_Ok=1
	FOR j=1 TO W_NBTypAct
		IF W_TestTypAct<j,2>=0 THEN
			W_Ok=0
		END
	NEXT j
END ELSE
	W_Ok=0
	FOR j=1 TO W_NBTypAct
		IF W_TestTypAct<j,2>=1 THEN
			W_Ok=1
		END
	NEXT j
END

IF W_Ok=1 THEN
	READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEUR = ""
	READ ENR_RESPONSABLE FROM F.RESPONSABLE,ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE = ""
	
	W_ListeImpression<i,1>=ENR_SECTEUR<1>
	W_ListeImpression<i,2>=W_ClePrec[1,5]
	W_ListeImpression<i,3>=TRIM(ENR_CIVILAIDE<1>)
	W_ListeImpression<i,4>=TRIM(ENR_CIVILAIDE<2>)
	W_ListeImpression<i,5>=TRIM(ENR_CIVILAIDE<3>)
	
	IF ENR_CIVILAIDE<5>#"" THEN
		W_ListeImpression<i,6>=TRIM(ENR_CIVILAIDE<5>):" "
	END
	IF ENR_CIVILAIDE<6>#"" THEN
		W_ListeImpression<i,6>=W_ListeImpression<i,6>:TRIM(ENR_CIVILAIDE<6>):" "
	END
	IF ENR_CIVILAIDE<7>#"" THEN
		W_ListeImpression<i,6>=W_ListeImpression<i,6>:TRIM(ENR_CIVILAIDE<7>):" "
	END
	IF ENR_CIVILAIDE<8>#"" THEN
		W_ListeImpression<i,6>=W_ListeImpression<i,6>:TRIM(ENR_CIVILAIDE<8>)
	END
	
	W_ListeImpression<i,7>=TRIM(ENR_CIVILAIDE<9>)
	W_ListeImpression<i,8>=TRIM(ENR_CIVILAIDE<10>)
	W_ListeImpression<i,9>=TRIM(ENR_CIVILAIDE<11>)
	W_ListeImpression<i,10>=TRIM(ENR_CIVILAIDE<14>)
	W_ListeImpression<i,11>=OCONV(ENR_CIVILAIDE<20>,"D4/")
	W_ListeImpression<i,12>=W_AgeAideSur
	W_ListeImpression<i,13>=TRIM(ENR_RESPONSABLE<1>)
	i=i+1
END
FOR j=1 TO W_NBTypAct
	W_TestTypAct<j,2>=0
NEXT j

RETURN