***************************
* Ouvertures des fichiers *
***************************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE PRINT "ACTIVITESAIDE"
OPEN "","ACTIVITESBISAIDE" TO F.ACTIVITESBISAIDE ELSE PRINT "ACTIVITESBISAIDE"

******************************
* Recuperation des arguments *
******************************
PROCREAD ARGUMENTS ELSE PRINT "Procread"

W_ASSOC=FIELD(ARGUMENTS,"|",2)
W_CODEACTIVITE=FIELD(ARGUMENTS,"|",3)
W_TYPEACTIVITE=FIELD(ARGUMENTS,"|",4)
W_DEBUT=FIELD(ARGUMENTS,"|",5)
W_FIN=FIELD(ARGUMENTS,"|",6)
W_TYPEETAT=FIELD(ARGUMENTS,"|",7)
W_CODESELECTION=FIELD(ARGUMENTS,"|",8)
W_TYPESELECTION=FIELD(ARGUMENTS,"|",9)

PRINT W_ASSOC:" ":W_CODEACTIVITE:" ":W_TYPEACTIVITE:" ":W_DEBUT:" ":W_FIN:" ":W_TYPEETAT

*********************
* TRAITEMENT GLOBAL *
*********************
EXECUTE 'VIDER-FICHIER ACTIVITESBISAIDE'
ENR_ACTIVITESBISAIDE=""
W_SELECTION = ""
W_SELECTION2 = ""
W_ASSOCIATION=W_ASSOC

	IF W_CODEACTIVITE = "" THEN
		W_ASSOC=W_ASSOC:"]"

		IF W_TYPESELECTION = "R" THEN
			IF W_CODESELECTION # "" THEN
				W_SELECTION =' AND AVEC CodeResponsableBisAide = "':W_CODESELECTION:'"'
			END
		END ELSE
			IF W_TYPESELECTION = "S" THEN
				IF W_CODESELECTION # "" THEN
					W_SELECTION =' AND AVEC CodeSecteurBisAide = "':W_CODESELECTION:'"'
				END
			END ELSE
				IF W_TYPESELECTION= "C" THEN
					IF W_CODESELECTION # "" THEN
						W_SELECTION =' AND AVEC LibCommuneAide = "':W_CODESELECTION:'"'
					END
				END
			END
		END
		PRINT 'SELECTION:':W_SELECTION
		IF W_SELECTION # "" AND W_SELECTION # "0" THEN
			EXECUTE 'SSELECT ACTIVITESAIDE AVEC 1 = "':W_ASSOC:'"':W_SELECTION:' AND AVEC NomAide # "':"":'" BY.EXP TypeActivite = "':W_TYPEACTIVITE:'"'
			PRINT "requete :":'SSELECT ACTIVITESAIDE AVEC 1 = "':W_ASSOC:'" ':W_SELECTION:' AND AVEC NomAide # "':"":'" BY.EXP TypeActivite = "':W_TYPEACTIVITE:'"'
		END ELSE
			EXECUTE 'SSELECT ACTIVITESAIDE AVEC 1 = "':W_ASSOC:'" AND AVEC NomAide # "':"":'" BY.EXP TypeActivite = "':W_TYPEACTIVITE:'"'
			PRINT "requete :":'SSELECT ACTIVITESAIDE AVEC 1 = "':W_ASSOC:'" AND AVEC NomAide # "':"":'" BY.EXP TypeActivite = "':W_TYPEACTIVITE:'"'
		END
		
	END ELSE
		W_ACTIVITE=W_ASSOC:W_CODEACTIVITE
		IF W_TYPESELECTION = "R" THEN
			IF W_CODESELECTION # "" THEN
				W_SELECTION2 ='AVEC CodeResponsableBisAide = "':W_CODESELECTION:'"'			
			END
		END ELSE
			IF W_TYPESELECTION = "S" THEN
				IF W_CODESELECTION # "" THEN
					W_SELECTION2 ='AVEC CodeSecteurBisAide = "':W_CODESELECTION:'"'
				END
			END ELSE
				IF W_TYPESELECTION= "C" THEN
					IF W_CODESELECTION # "" THEN
						* RAJOUTER CODE POUR TRAITEMENT PARIS PAR RAPPORT AUX COMMUNES
						W_SELECTION2 ='AVEC LibCommuneAide = "':W_CODESELECTION:'"'
					END
				END
			END
		END
		IF W_SELECTION2 = "" OR W_SELECTION2 = "0" THEN
		   EXECUTE 'SSELECT ACTIVITESAIDE AVEC NomAide # "':"":'" BY.EXP 1 = "':W_ACTIVITE:'"'
		   PRINT "requete2 :":'SSELECT ACTIVITESAIDE AND AVEC NomAide # "':"":'" BY.EXP 1 = "':W_ACTIVITE:'"'		
            END ELSE
		   EXECUTE 'SSELECT ACTIVITESAIDE ':W_SELECTION2:'  AVEC NomAide # "':"":'" BY.EXP  1 = "':W_ACTIVITE:'"'
               PRINT "requete2 :":'SSELECT ACTIVITESAIDE ':W_SELECTION2:' AND AVEC NomAide # "':"":'" BY.EXP 1 = "':W_ACTIVITE:'"'		    
		END
	END

	EXECUTE 'SAUVE-LISTE W_RESULTAT'
	EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE	
	
	IF MSGCODE<1> # 209 THEN
		SELECT F.ACTIVITESAIDE TO W_RESULTAT
		GOSUB 100
	END
STOP

********************
* PARCOURS REQUETE *
********************
100
	W_AIDEANCIEN=""
	W_FINI="FAUX"
	LOOP
		READNEXT W_CLE FROM W_RESULTAT ELSE W_FINI="VRAI"
	WHILE W_FINI="FAUX" DO
		W_AIDE=W_CLE<1,1>
		
		IF W_AIDEANCIEN # W_AIDE THEN
			READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_AIDE ELSE PRINT "ActivitesAide"
			W_AIDEANCIEN=W_AIDE
		END
		POSITION=W_CLE<1,2>
		GOSUB 200
	REPEAT
RETURN

*******************************************************
* EXECUTION TRAITEMENT SELON ACTIF DEBUTANT FINISSANT *
*******************************************************
200

	BEGIN CASE
		CASE W_TYPEETAT MATCHES "A"
			GOSUB 300
		CASE W_TYPEETAT MATCHES "D"
			GOSUB 400
		CASE W_TYPEETAT MATCHES "F"
			GOSUB 500
	END CASE

RETURN

*************************
* TRAITEMENT POUR ACTIF *
*************************
300
	IF ENR_ACTIVITESAIDE<2,POSITION> # "" AND ENR_ACTIVITESAIDE<3,POSITION> # "" THEN

		IF ENR_ACTIVITESAIDE<2,POSITION> <= W_FIN AND ENR_ACTIVITESAIDE<3,POSITION> >= W_DEBUT THEN
			
			GOSUB 600
		END
	END ELSE
		IF ENR_ACTIVITESAIDE<2,POSITION> # "" THEN 

			IF ENR_ACTIVITESAIDE<2,POSITION> <= W_FIN THEN

				GOSUB 600
			END
		END
	END

RETURN

***********************
* TRAITEMENT DEBUTANT *
***********************
400

	IF ENR_ACTIVITESAIDE<2,POSITION> >= W_DEBUT AND ENR_ACTIVITESAIDE<2,POSITION> <= W_FIN THEN
		GOSUB 700
	END

RETURN

************************
* TRAITEMENT FINISSANT *
************************
500
	IF ENR_ACTIVITESAIDE<3,POSITION> # "" THEN
		IF ENR_ACTIVITESAIDE<3,POSITION> >= W_DEBUT AND ENR_ACTIVITESAIDE<3,POSITION> <= W_FIN THEN
			GOSUB 800
		END
	END

RETURN

***********************************
* ECRITURE DES INFOS (POUR ACTIF) *
***********************************
600

	ENR_ACTIVITESBISAIDE=""
	W_POSITION = 1

	ENR_ACTIVITESBISAIDE<1,W_POSITION>=ENR_ACTIVITESAIDE<3,POSITION>
	ENR_ACTIVITESBISAIDE<2,W_POSITION>=ENR_ACTIVITESAIDE<4,POSITION>
	W_POSITION=W_POSITION+1

      W_CODEASSOC=ENR_ACTIVITESAIDE<1,POSITION>
	IF W_CODEASSOC[1,3]=W_ASSOCIATION THEN
		IF W_POSITION > 1 THEN
			W_CODEACT = W_AIDE:ENR_ACTIVITESAIDE<1,POSITION>:ENR_ACTIVITESAIDE<2,POSITION>
			WRITE ENR_ACTIVITESBISAIDE TO F.ACTIVITESBISAIDE,W_CODEACT		
		END
	END

RETURN

**************************************
* ECRITURE DES INFOS (POUR DEBUTANT) *
**************************************
700
	
	ENR_ACTIVITESBISAIDE=""
	W_POSITION = 1       
	W_Passe="FAUX"

      W_Per=ENR_ACTIVITESAIDE<2,POSITION>

      IF W_DEBUT <= W_Per AND W_FIN >= W_Per THEN

		ENR_ACTIVITESBISAIDE<1,W_POSITION>=ENR_ACTIVITESAIDE<3,POSITION>
		ENR_ACTIVITESBISAIDE<2,W_POSITION>=ENR_ACTIVITESAIDE<4,POSITION>
		W_Passe="VRAI"
	END

      W_CODEASSOC=ENR_ACTIVITESAIDE<1,POSITION>
	IF W_CODEASSOC[1,3]=W_ASSOCIATION THEN
		IF W_Passe = "VRAI" THEN
			W_CODEACT = W_AIDE:ENR_ACTIVITESAIDE<1,POSITION>:ENR_ACTIVITESAIDE<2,POSITION>
			WRITE ENR_ACTIVITESBISAIDE TO F.ACTIVITESBISAIDE,W_CODEACT		
		END
	END

RETURN
***************************************
* ECRITURE DES INFOS (POUR FINISSANT) *
***************************************
800
	  W_POSITION = 1
	  ENR_ACTIVITESBISAIDE=""
        W_Passe="FAUX"

        W_Per=ENR_ACTIVITESAIDE<3,POSITION>

        IF W_DEBUT <= W_Per AND W_FIN >= W_Per THEN

		ENR_ACTIVITESBISAIDE<1,W_POSITION>=ENR_ACTIVITESAIDE<3,POSITION>
		ENR_ACTIVITESBISAIDE<2,W_POSITION>=ENR_ACTIVITESAIDE<4,POSITION>
 		W_Passe="VRAI"

	  END

      W_CODEASSOC=ENR_ACTIVITESAIDE<1,POSITION>
	IF W_CODEASSOC[1,3]=W_ASSOCIATION THEN
		IF W_Passe = "VRAI" THEN
			W_CODEACT = W_AIDE:ENR_ACTIVITESAIDE<1,POSITION>:ENR_ACTIVITESAIDE<2,POSITION>
			WRITE ENR_ACTIVITESBISAIDE TO F.ACTIVITESBISAIDE,W_CODEACT		
		END
	END

RETURN
