**************************************************
*	  EDITION DES FEUILLES DE PRESENCE	 *
*           VERSION INFOLOGIS V5.3               *
*                                                *
*   	JEROME			      AVRIL 2000 *
*						 *
*     CORRECTION BUG PRESTATAIRE     MAI   2000  *
*     PATCH INFO ASSOC / FEDERATION  MAI   2000  *
*     PROBLEME PARTICIPATION MV      JUIN  2000  *
*     PATCH BENEF NON EXO PREST      SEPT  2000  *
*     PATCH INDICATION ACCORD        NOV   2000  *
*     PATCH DIMANCHE & JF            NOV   2000  *
*     PATCH TROYES INFO SECTEUR      NOV   2000  *
*						 *
**************************************************

************
* FICHIERS *
************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ABSENCESAIDANT" TO F.ABSENCESAIDANT ELSE STOP
OPEN "","ABSENCESAIDE" TO F.ABSENCESAIDE ELSE STOP
OPEN "","ACCORD" TO F.ACCORD ELSE STOP
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE STOP
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","DETAILPREST" TO F.DETAILPREST ELSE STOP
OPEN "","FEDEASSOC" TO F.FEDEASSOC ELSE STOP
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE STOP
OPEN "","PAQUES" TO F.PAQUES ELSE STOP
OPEN "","RESPONSABLE" TO F.RESPONSABLE ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "","TABLES" TO F.TABLES ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP

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

*REQUETE A TRAITER
*TYPE ACTIVITE: P OU M
*PERIODE EN CLAIR
*DEBUT PERIODE
*FIN PERIODE
*GESTION JOURS
*ORDRE DE TRI
*ASSOCIATION

W_REQUETE=FIELD(ARGUMENTS,"|",2)
W_ACTIVITE=FIELD(ARGUMENTS,"|",3)
W_PERIODE=FIELD(ARGUMENTS,"|",4)
W_DEBPER=FIELD(ARGUMENTS,"|",5)
W_FINPER=FIELD(ARGUMENTS,"|",6)
W_JOUR=FIELD(ARGUMENTS,"|",7)
IF W_JOUR = "" THEN
W_JOUR = 0
END
W_TRI=FIELD(ARGUMENTS,"|",8)
W_CODASSOC=FIELD(ARGUMENTS,"|",9)
W_ACCORD=FIELD(ARGUMENTS,"|",10)
IF W_ACCORD = "" THEN
W_ACCORD = 0
END
W_DIMANCHE=FIELD(ARGUMENTS,"|",11)
IF W_DIMANCHE = "" THEN
W_DIMANCHE =0
END
W_ADRAIDANT=FIELD(ARGUMENTS,"|",12)
IF W_ADRAIDANT = "" THEN
W_ADRAIDANT = 0
END
W_MATRIC=FIELD(ARGUMENTS,"|",13)
W_DETAILINTERV=FIELD(ARGUMENTS,"|",14)
IF W_DETAILINTERV = "" THEN
W_DETAILINTERV = 0
END
W_FEUILLEACCORD=FIELD(ARGUMENTS,"|",15)
IF W_FEUILLEACCORD = "" THEN
W_FEUILLEACCORD = 0
END

W_USER = FIELD(ARGUMENTS,"|",16)
W_TELEGESTION = FIELD(ARGUMENTS,"|",17)
W_MULTIACCORD = FIELD(ARGUMENTS,"|",18)

**************
* Procedures *
**************
*   100   -->   TRAITEMENT
*   200   -->   PREPARATION EDITION
*   300   -->   EDITION
*   400   -->   CADRAGE ADRESSE
*   500   -->   PREPARATION CIVILAIDE
*   600   -->   PREPARATION CIVILAIDANT
*   700   -->   INIT SI PAS D'ACCORD
*   800   -->   CAISSE ACCORD
*   850   -->   RECHERCHE TAUX TARIFE
*   900   -->   EDITION DES JOURS
*   905   -->   SAUVEGARDE JOURS EN TABLEAU
*  1000   -->   PREPARATION ASSOCIATION
*  1005   -->   ENTETE FEDERATION
*  1010   -->   ENTETE ASSOCIATION
*  1015   -->   ENTETE SECTEUR
*  1020   -->   VERIFICATION SI SECTEUR RENSEIGNE
*  1100   -->   GESTION DES DIMANCHES
*  1200   -->   GESTION DES JOURS FERIES
*  1205   -->   RECHERCHE DES JF VARIABLES
*  1210   -->   POSITIONNEMENT DES JF VARIABLES

W_REQUETEACC = ""
W_REQUETESECT = ""

*********
* Debut *
*********
ENR_TEMPO = ""
ENR_EDITION = ""
W_Ligne=1
W_MASQUE=""
W_NumOrdre=1
W_NbEdition=0
W_ImprimeEntete="FAUX"
W_Premier="FAUX"
W_Act=""
W_Entite=""
W_StopImprime="FAUX"
W_SauveInd=0
W_Indice=0
W_REQUETEEDIT=""
W_TABJF=""
W_NbAcc=0
W_TabAcc=""
W_JourSol=""
W_PlanningPrestAidant = "F"
I=0
W_ABSAIDETOUTMOIS="FAUX"
W_ABSAIDANTTOUTMOIS="FAUX"
W_NBJOURMOIS=(W_FINPER-W_DEBPER)+1	

EXECUTE 'ECLTYPE "P"'
EXECUTE 'BASICTYPE "P"'
EXECUTE 'UDT.OPTIONS 11 ON'
EXECUTE 'SET-DEC ,'
EXECUTE 'SET-THOUS .'
EXECUTE 'DATE.FORMAT'

IF W_REQUETE[1,12] = "EDITPLANNING" THEN
	W_REQUETE = "AFFICHEPLANNING":W_REQUETE[13,LEN(W_REQUETE)-12]
END

IF W_REQUETE[1,15] # "AFFICHEPLANNING" THEN

		* EXECUTION REQUETE RECU
		EXECUTE W_REQUETE
		EXECUTE 'SAUVE-LISTE W_REQUETEEDIT'
		EXECUTE "LISTE W_REQUETEEDIT" RETURNING MSGCODE	
		
		IF MSGCODE<1>#209 THEN

			W_PrinterOn="FAUX"
			READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CODASSOC ELSE PRINT "ASSOCIATION"
			IF W_CODASSOC # "" AND W_CODASSOC # "0" THEN
				W_MemAsso = W_CODASSOC
			END
			READ ENR_COMPTEUR FROM F.COMPTEUR,"999" ELSE PRINT "COMPTEUR"

			IF ENR_COMPTEUR<17> # "" AND ENR_COMPTEUR<17> # "000" THEN
				W_FEDE="OUI"
			END ELSE
				W_FEDE="NON"
			END

			*TRAITEMENT CAR VALEURS TROUVEES

			W_LONG=LEN(W_PERIODE)
			W_MOIS=W_PERIODE[1,W_LONG-4]
			W_ANNEE=W_PERIODE[W_LONG-3,4]
			W_MOIS=CONVERT("","E",W_MOIS)
			W_MOIS=CONVERT("","U",W_MOIS)

			IF W_JOUR=1 OR W_DIMANCHE=1 THEN
				GOSUB 905

			END ELSE

				IF W_MATRIC = "0" AND W_JOUR=0 AND W_DIMANCHE=0 THEN
					W_NBJOUR=(W_FINPER-W_DEBPER)+1	
					FOR IBOUCLE=1 TO W_NBJOUR
						W_MASQUE<IBOUCLE>=SPACE(7):IBOUCLE "R#2"
					NEXT IBOUCLE
				END
			
			END

			IF W_ACTIVITE#"M" THEN
				IF W_REQUETE[9,11] # "DETAILPREST" THEN
			
					SELECT F.ACTIVITESAIDE TO W_REQUETEEDIT
				END ELSE
					SELECT F.DETAILPREST TO W_REQUETEEDIT
				END
				GOSUB 100
			END ELSE
				SELECT F.CONTRAT TO W_REQUETEEDIT
				GOSUB 100
			END
 			IF ENR_EDITION="" AND W_MATRIC = "0" THEN
				ENR_TEMPO<1>="AUCUN"
				WRITE ENR_TEMPO ON F.TEMPO,"EDITFEUIPRES":W_USER
			END ELSE
				DELETE F.TEMPO, "EDITFEUIPRES":W_USER
			END
		END ELSE
			ENR_TEMPO<1>="AUCUN"
			WRITE ENR_TEMPO ON F.TEMPO,"EDITFEUIPRES":W_USER
		END
END ELSE
	GOSUB 3000
END

IF W_MATRIC="0" AND ENR_TEMPO<1> # "AUCUN" THEN

	ENR_EDITION<W_Ligne> = "%%"
	W_Ligne=W_Ligne+1

   	WRITE ENR_EDITION ON F.TEMPO,"FEUILPRESGRAPH":W_USER:W_NumOrdre
END

*DESINIT IMPRIMANTE
PRINTER OFF
PRINTER CLOSE

STOP


**************************
* TRAITEMENT PRESTATAIRE *
**************************
100
	W_JourMois = W_FINPER - W_DEBPER
	W_FINI="FAUX"
	W_CleAnc = ""
	W_CleAncAide=""

	LOOP
		READNEXT W_CLE FROM W_REQUETEEDIT ELSE W_FINI="VRAI"
	WHILE W_FINI="FAUX" DO
		W_ABSAIDETOUTMOIS="FAUX"
		W_ABSAIDANTTOUTMOIS="FAUX"

		IF W_REQUETE[9,11]="DETAILPREST" THEN
			* ABSENCES AIDANT PRESTATAIRE
			GOSUB 105
		END ELSE
			IF W_ACTIVITE # "M" THEN
				* ABSENCES AIDE PRESTATAIRE
				W_CLEAIDE = W_CLE
				GOSUB 110
			END
		END
			
		IF W_ABSAIDETOUTMOIS="FAUX" AND W_ABSAIDANTTOUTMOIS="FAUX" THEN
			GOSUB 200
		END

	REPEAT
RETURN


********************************
* GESTION DES ABSENCES AIDANTS *
********************************
105

	W_ABSAIDANTTOUTMOIS="FAUX"

   	CLE = W_CLE[1,5]

	EXECUTE 'SSELECT ABSENCESAIDANT AVEC CodeAidant = "':CLE:'" AND AVEC DebAbsAidant <= "':W_FINPER:'" AND AVEC 2 => "':W_DEBPER:'" PAR DebAbsAidant'

	W_Fin = "FAUX"
	W_JourAidant = 0
	W_CleAnc = CLE
	LOOP
		READNEXT W_CleAbs ELSE W_Fin="VRAI"
	WHILE W_Fin="FAUX" DO
		READ ENR_ABSENCESAIDANT FROM F.ABSENCESAIDANT,W_CleAbs THEN

			W_PasAbs = "FAUX"
			IF INDEX(ENR_ABSENCESAIDANT<26>,W_CLE[1,8],1) # 0 THEN
				W_Pos=(INDEX(ENR_ABSENCESAIDANT<26>,W_CLE[1,8],1)-1)/9
				W_Pos=W_Pos+1

				IF ENR_ABSENCESAIDANT<21,W_Pos> ="O" THEN
					DATDEB = ENR_ABSENCESAIDANT<22,W_Pos>
					DATFIN = ENR_ABSENCESAIDANT<24,W_Pos>
				END ELSE
					W_PasAbs = "VRAI"
				END
			END ELSE
				DATDEB = W_CleAbs[8,5]
				DATFIN = ENR_ABSENCESAIDANT<2>
			END

			IF W_PasAbs="FAUX" THEN
				IF DATDEB <= W_DEBPER THEN
					IF DATFIN => W_FINPER THEN
						W_JourAidant = W_JourAidant + 99
					END ELSE
						IF DATDEB = W_DEBPER THEN
							W_JourAidant = W_JourAidant + (DATFIN - DATDEB) + 1
						END ELSE
							W_JourAidant = W_JourAidant + (DATFIN - W_DEBPER) + 1
						END
					END
				END ELSE
					IF DATFIN => W_FINPER THEN
						W_JourAidant = W_JourAidant + (W_FINPER - DATDEB) + 1
					END ELSE
						W_JourAidant = W_JourAidant + (DATFIN - DATDEB) + 1
					END
				END
			END
		END
	REPEAT

	IF W_JourAidant >= W_NBJOURMOIS THEN
		W_ABSAIDANTTOUTMOIS="VRAI"
	END

RETURN


******************************
* GESTION DES ABSENCES AIDES *
******************************
110

	W_ABSAIDETOUTMOIS="FAUX"

	IF W_CleAncAide # W_CLEAIDE THEN

		W_JourAide = 0
  		W_CleAncAide = W_CLEAIDE

		READ ENR_ABSENCESAIDE FROM F.ABSENCESAIDE,W_CLEAIDE THEN
			W_Count=DCOUNT(ENR_ABSENCESAIDE<1>,CHAR(253))
			FOR IABS = 1 TO W_Count
				IF ENR_ABSENCESAIDE<1,IABS> <= W_FINPER AND ENR_ABSENCESAIDE<2,IABS> >= W_DEBPER THEN

					DATDEB = ENR_ABSENCESAIDE<1,IABS>
					DATFIN = ENR_ABSENCESAIDE<2,IABS>
					IF DATDEB <= W_DEBPER THEN
						IF DATFIN => W_FINPER THEN
							W_JourAide = W_JourAide + 99
						END ELSE
							IF DATDEB = W_DEBPER THEN
								W_JourAide = W_JourAide + (DATFIN - DATDEB) + 1
							END ELSE
								W_JourAide = W_JourAide + (DATFIN - W_DEBPER) + 1
							END
						END
					END ELSE
						IF DATFIN => W_FINPER THEN
							W_JourAide = W_JourAide + (W_FINPER - DATDEB) + 1
						END ELSE
							W_JourAide = W_JourAide + (DATFIN - DATDEB) + 1
						END
					END
				END
			NEXT IABS
		END
	END

	IF W_JourAide >= W_NBJOURMOIS THEN
		W_ABSAIDETOUTMOIS="VRAI"
	END

RETURN


**********************
* PREPARATION EDITION *
***********************
200
	W_CAISSE=""
	W_HEURE=""
	W_FIN=""
	W_PARTICIPATION=""
	W_CODEAIDE=""
	W_CODEAIDANT=""
	W_NOMAIDE=""
	W_NOMAIDANT=""
	W_PRENOMAIDE=""
	W_PRENOMAIDANT=""
	W_ADRESSEAIDE1=""
	W_ADRESSEAIDANT1=""
	W_ADRESSEAIDE2=""
	W_ADRESSEAIDANT2=""
	W_ADRESSEAIDE3=""
	W_ADRESSEAIDANT3=""

	IF W_ACTIVITE#"M" THEN
	   IF W_REQUETE[9,11] # "DETAILPREST" THEN  
			GOSUB 2000
	   END ELSE
  
			* On part de DETAILPREST = tri par aidant...
			READ ENR_DETAILPREST FROM F.DETAILPREST, W_CLE THEN
				READ ENR_CIVILAIDANT FROM F.CIVILAIDANT, W_CLE[1,5] THEN
					W_CleTemp = W_CLE
					W_IndMVDetailPrest = 0
					W_CLE = ""
					LOOP
						W_IndMVDetailPrest = W_IndMVDetailPrest + 1
					WHILE ENR_DETAILPREST<1,W_IndMVDetailPrest> # ""
						*Mikael modification
						IF W_TELEGESTION = "NON" THEN
							READ ENR_CIVILAIDE FROM F.CIVILAIDE, ENR_DETAILPREST<1,W_IndMVDetailPrest> THEN
								IF ENR_CIVILAIDE<50>="N" THEN
									IF ENR_DETAILPREST<1,W_IndMVDetailPrest> # W_CLE THEN
										W_CLE = ENR_DETAILPREST<1,W_IndMVDetailPrest>
										W_CLEAIDE=W_CLE
										GOSUB 110
										IF W_ABSAIDETOUTMOIS="FAUX" THEN
											GOSUB 2000
										END
									END
								END
							END
						*Fin modification
						END ELSE
							IF ENR_DETAILPREST<1,W_IndMVDetailPrest> # W_CLE THEN
								W_CLE = ENR_DETAILPREST<1,W_IndMVDetailPrest>
								W_CLEAIDE=W_CLE
			                			GOSUB 110
								IF W_ABSAIDETOUTMOIS="FAUX" THEN
									GOSUB 2000
								END
							END
						END
					REPEAT
					W_CLE = W_CleTemp
				END ELSE
				END
			END ELSE
			END
	   END
	END ELSE

		*OUVERTURE DES FICHIERS NECESSAIRES
		READ ENR_CONTRAT FROM F.CONTRAT,W_CLE ELSE ENR_CONTRAT=""
		READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE=""
		READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CLE[1,5] ELSE ENR_CIVILAIDANT=""
		READ ENR_RESPONSABLE FROM F.RESPONSABLE,ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE=""
		READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEUR=""

		GOSUB 105
		W_CLEAIDE=ENR_CONTRAT<3>
		GOSUB 110

		IF W_ABSAIDETOUTMOIS="FAUX" AND W_ABSAIDANTTOUTMOIS="FAUX" THEN

			GOSUB 1000
	
			*RECUPERATION ET CONVERSION DES INFOS
			GOSUB 500
			GOSUB 600
			GOSUB 300
		END

	END

RETURN


***********************
* EDITION MATRICIELLE *
***********************
300

    IF W_FEUILLEACCORD="1" THEN
	W_NbAcc=DCOUNT(W_TabAcc,CHAR(254))
    END ELSE
	W_NbAcc=1
    END
    IF W_TabAcc="" THEN
	W_NbAcc=1
    END

*PRINT W_CLE
*PRINT W_NbAcc
*DEBUG
	
    FOR W_I=1 TO W_NbAcc

	IF W_I # 1 THEN
		W_PlusieursAccords="VRAI"
	END ELSE
		W_PlusieursAccords="FAUX"
	END

	IF W_TabAcc="" THEN
		GOSUB 700
	END ELSE
		GOSUB 800
	END


	IF W_MATRIC = "1" THEN


		IF W_PrinterOn="FAUX" THEN
			PRINTER ON
			W_PrinterOn="VRAI"
		END

		IF W_I # 1 THEN
			FOR IBOUCLE=1 TO 45

				IF IBOUCLE <= W_VALEURMAX THEN
					PRINT W_MASQUE<IBOUCLE>
				END ELSE
					PRINT 
				END
			NEXT IBOUCLE
			FOR I=1 TO 10
				PRINT 
			NEXT I
		END

		PRINT " ":W_SIGLEASSOC:SPACE(38):TRIM(W_MOIS:W_ANNEE)
		PRINT " ":W_ADRESSEASSOC1
		PRINT " ":W_ADRESSEASSOC2:SPACE(3):W_CAISSE:SPACE(11):TRIM(W_SECTEUR)
		PRINT " ":W_ADRESSEASSOC3:SPACE(3):W_HEURE
		PRINT " ":W_TELASSOC:SPACE(3):W_FIN:SPACE(11):TRIM(W_RESPONSABLE)
		IF TRIM(W_CAISSE) = "" OR TRIM(W_SERVICEORG) = "" THEN
			PRINT " ":W_FAXASSOC:SPACE(3):W_PARTICIPATION
		END ELSE
			W_SERVICEORG = W_SERVICEORG[1,24]
			W_SERVICEORG = W_SERVICEORG"L 24"
			PRINT " ":W_SERVICEORG:SPACE(3):W_PARTICIPATION
		END
		PRINT

		IF W_ACTIVITE#"M" AND W_EXO#"1" THEN
			PRINT "        BENEFICIAIRE NON EXONERE"
		END ELSE
			PRINT 
		END
	
      	  	IF W_ADRAIDANT="1" THEN
	   		PRINT SPACE(13):W_CODEAIDE:SPACE(37-LEN(W_CODEAIDE)):W_CODEAIDANT
	   		PRINT " ":W_NOMAIDE:SPACE(5):W_NOMAIDANT
	   		PRINT " ":W_ADRESSEAIDE1:SPACE(5):W_ADRESSEAIDANT1
	   		PRINT " ":W_ADRESSEAIDE2:SPACE(5):W_ADRESSEAIDANT2
	   		PRINT " ":W_ADRESSEAIDE3:SPACE(5):W_ADRESSEAIDANT3
        	END ELSE
	   		PRINT SPACE(13):W_CODEAIDE:SPACE(37-LEN(W_CODEAIDE)):W_CODEAIDANT
	   		PRINT " ":W_NOMAIDE:SPACE(5):W_NOMAIDANT
	   		PRINT " ":W_ADRESSEAIDE1
	   		PRINT " ":W_ADRESSEAIDE2
	  		PRINT " ":W_ADRESSEAIDE3
        	END

		IF W_JOUR=1 OR W_DIMANCHE=1 THEN
			FOR I=1 TO 4
				PRINT 
			NEXT I

			IF W_CODASSOC="" THEN
				GOSUB 901
			END ELSE
				GOSUB 900

				FOR I=1 TO 10
					PRINT 
				NEXT I

			END
	

		END ELSE
	  		IF W_CODASSOC # "" THEN
				FOR I=1 TO 59
					PRINT 
				NEXT I
	   		END ELSE
				FOR I=1 TO 4
					PRINT 
				NEXT I

	   		END
		END

    	END ELSE

		GOSUB 301

    	END

    NEXT W_I

RETURN

***********************
* EDITION GRAPHIQUE   *
***********************
301

	W_NbEdition=W_NbEdition+1
	IF MOD(W_NbEdition,100)=0 THEN
		
		ENR_EDITION<W_Ligne> = "%%"

    		WRITE ENR_EDITION ON F.TEMPO,"FEUILPRESGRAPH":W_USER:W_NumOrdre
    		W_NumOrdre=W_NumOrdre+1
     		W_Ligne=1
      		ENR_EDITION=""
     	END
	IF W_CODASSOC = "" AND W_CODASSOC # "0" THEN
	   ENR_EDITION<W_Ligne> = "%":W_MemAsso
	END ELSE
		ENR_EDITION<W_Ligne> = "%":W_CODASSOC
	END
	W_Ligne=W_Ligne+1
	W_SauveLigne=W_Ligne
302
	ENR_EDITION<W_Ligne> = " ":W_SIGLEASSOC:SPACE(5):"FEUILLE DE PRESENCE":SPACE(3):"PERIODE : ":TRIM(W_MOIS:W_ANNEE)
	W_Ligne=W_Ligne+1
	ENR_EDITION<W_Ligne> = " ":W_ADRESSEASSOC1
	W_Ligne=W_Ligne+1
	ENR_EDITION<W_Ligne> = " ":W_ADRESSEASSOC2:SPACE(4):W_CAISSE:SPACE(3):"SECTEUR : ":TRIM(W_SECTEUR[1,17])
	W_Ligne=W_Ligne+1
	ENR_EDITION<W_Ligne> = " ":W_ADRESSEASSOC3:SPACE(4):W_HEURE
	W_Ligne=W_Ligne+1
	ENR_EDITION<W_Ligne> = " ":W_TELASSOC:SPACE(4):W_FIN:SPACE(3):"RESP.   : ":TRIM(W_RESPONSABLE[1,17])
	W_Ligne=W_Ligne+1
	IF TRIM(W_CAISSE) = "" OR TRIM(W_SERVICEORG) = "" THEN
		ENR_EDITION<W_Ligne> = " ":W_FAXASSOC:SPACE(4):W_PARTICIPATION
	END ELSE
		W_SERVICEORG = W_SERVICEORG[1,24]
		W_SERVICEORG = W_SERVICEORG"L 24"
		ENR_EDITION<W_Ligne> = " ":W_SERVICEORG:SPACE(4):W_PARTICIPATION
	END

	W_Ligne=W_Ligne+1
	ENR_EDITION<W_Ligne> = "#1"
	W_Ligne=W_Ligne+1

	IF W_ACTIVITE#"M" AND W_EXO#"1" THEN
		ENR_EDITION<W_Ligne> = "        BENEFICIAIRE NON EXONERE"
		W_Ligne=W_Ligne+1
	END

	ENR_EDITION<W_Ligne> = "#2"
	W_Ligne=W_Ligne+1

        IF W_ADRAIDANT="1" THEN
	   ENR_EDITION<W_Ligne> = SPACE(1):"BENEFICIAIRE : ":W_CODEAIDE:SPACE(28-LEN(W_CODEAIDE)):"AIDANT : ":W_CODEAIDANT
	   ENR_EDITION<W_Ligne+1> = " ":W_NOMAIDE:SPACE(7):W_NOMAIDANT
	   ENR_EDITION<W_Ligne+2> = " ":W_ADRESSEAIDE1:SPACE(7):W_ADRESSEAIDANT1
	   ENR_EDITION<W_Ligne+3> = " ":W_ADRESSEAIDE2:SPACE(7):W_ADRESSEAIDANT2
	   ENR_EDITION<W_Ligne+4> = " ":W_ADRESSEAIDE3:SPACE(7):W_ADRESSEAIDANT3
        END ELSE
	   ENR_EDITION<W_Ligne> = SPACE(1):"BENEFICIAIRE : ":W_CODEAIDE:SPACE(28-LEN(W_CODEAIDE)):"AIDANT : ":W_CODEAIDANT
	   ENR_EDITION<W_Ligne+1> = " ":W_NOMAIDE:SPACE(7):W_NOMAIDANT
	   ENR_EDITION<W_Ligne+2> = " ":W_ADRESSEAIDE1
	   ENR_EDITION<W_Ligne+3> = " ":W_ADRESSEAIDE2
	   ENR_EDITION<W_Ligne+4> = " ":W_ADRESSEAIDE3
        END

	IF W_ImprimeEntete="FAUX" THEN
		W_Ligne=W_Ligne+5

		ENR_EDITION<W_Ligne> ="#3"
		W_Ligne=W_Ligne+1

		GOSUB 900
	END

RETURN

*******************
* CADRAGE ADRESSE *
* idem VB         *
*******************
400
	ADRESSE=""
	IF ADRESSE1 # "" THEN
		ADRESSE=ADRESSE1:" "
	END
	IF ADRESSE2 # "" THEN
		ADRESSE=ADRESSE:ADRESSE2:" "
	END
	IF ADRESSE3 # "" THEN
		ADRESSE=ADRESSE:ADRESSE3:" "
	END
	IF ADRESSE4 # "" THEN
		ADRESSE=ADRESSE:ADRESSE4
	END
RETURN


******************************
* PREPARATION INFO CIVILAIDE *
******************************
500

	ENR_CIVILAIDE<18>=CONVERT(" ","",ENR_CIVILAIDE<18>)
	W_Nir=ENR_CIVILAIDE<18>:"/":ENR_CIVILAIDE<19>
	IF LEN(W_Nir) > 18 THEN
		W_Nir=W_Nir[1,18]
	END
	IF W_ACTIVITE#"M" THEN
		W_CODEAIDE=W_CLE[1,5]:" - ":W_Nir
	END ELSE
		W_CODEAIDE=ENR_CONTRAT<3>[1,5]:" - ":W_Nir
	END
	
	W_NOMAIDE=(ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>)[1,36] "L#36"

	ADRESSE1=ENR_CIVILAIDE<5>
	ADRESSE2=ENR_CIVILAIDE<6>
	ADRESSE3=ENR_CIVILAIDE<7>
	ADRESSE4=ENR_CIVILAIDE<8>
	GOSUB 400
	W_ADRESSEAIDE1=ADRESSE[1,36] "L#36"

	IF ENR_CIVILAIDE<9> # "" THEN
		W_ADRESSEAIDE2=ENR_CIVILAIDE<9>[1,36] "L#36"
		W_ADRESSEAIDE3=(ENR_CIVILAIDE<10>:" ":ENR_CIVILAIDE<11>)[1,36] "L#36"
	END ELSE
		W_ADRESSEAIDE2=(ENR_CIVILAIDE<10>:" ":ENR_CIVILAIDE<11>)[1,36] "L#36"
		W_ADRESSEAIDE3=" " "L#36"
	END

	W_SECTEUR=ENR_SECTEUR<1>[1,18] "L#18"
	W_RESPONSABLE=ENR_RESPONSABLE<1>[1,18] "L#18"

	IF W_ACCORD=1 THEN
	
		*MOULINAGE POUR ACCORD A VERIFIER SI BON ACCORD ET BONNE VALEUR
		IF W_ACTIVITE # "M" THEN
			W_Temp= 'SSELECT ACCORD AVEC @ID = "':W_CLE:"]":'" AND AVEC 18 # "O" AND AVEC TypeActOrg = "':W_ACTIVITE:'" AND AVEC TypeOrg = "':"P":'" AND AVEC 5 <= "':W_FINPER:'" AND AVEC 6 >= "':W_DEBPER:'" OR = "':"":'" PAR RangAcc PAR 5'
		END ELSE
			W_Temp= 'SSELECT ACCORD AVEC @ID = "':W_CodeAide:"]":'" AND AVEC 18 # "O" AND AVEC TypeActOrg = "':W_ACTIVITE:'" AND AVEC TypeOrg = "':"P":'" AND AVEC 5 <= "':W_FINPER:'" AND AVEC 6 >= "':W_DEBPER:'" OR = "':"":'" PAR RangAcc PAR 5'
		END

		EXECUTE W_Temp
		EXECUTE 'SAUVE-LISTE W_REQUETEACC'
		EXECUTE "LISTE W_REQUETEACC" RETURNING MSGCODE
		
		IF MSGCODE<1>#209 THEN

			SELECT F.ACCORD TO W_REQUETEACC
			W_End = "FAUX"
			W_TabAcc=""
			W_Ind=1
			LOOP
				READNEXT W_CleAccord FROM W_REQUETEACC ELSE W_End="VRAI"
			WHILE W_End="FAUX" DO
				READ ENR_ACCORD FROM F.ACCORD,W_CleAccord THEN
					W_TabAcc<W_Ind>=W_CleAccord
					W_Ind=W_Ind+1
				END
			REPEAT
		END ELSE
			W_TabAcc=""
		END
	
	END ELSE
		W_TabAcc=""
	END
		
RETURN


***************************
* PREPARATION CIVILAIDANT *
***************************
600

	IF W_ACTIVITE # "M" AND W_REQUETE[9,11] # "DETAILPREST" AND W_REQUETE[1,15] # "AFFICHEPLANNING" THEN

		W_CODEAIDANT=" " "L#9"
		W_NOMAIDANT=" " "L#34"
		W_PRENOMAIDANT=" " "L#34"
		W_ADRESSEAIDANT1=" " "L#34"
		W_ADRESSEAIDANT2=" " "L#34"
		W_ADRESSEAIDANT3=" " "L#34"

	END ELSE
		IF W_REQUETE[1,15] # "AFFICHEPLANNING" THEN
			IF W_REQUETE[9,11] # "DETAILPREST" THEN
				W_CODEAIDANT=W_CLE[1,1]:" ":W_CLE[2,1]:" ":W_CLE[3,1]:" ":W_CLE[4,1]:" ":W_CLE[5,1]
			END ELSE
				W_CODEAIDANT=W_CleTemp[1,1]:" ":W_CleTemp[2,1]:" ":W_CleTemp[3,1]:" ":W_CleTemp[4,1]:" ":W_CleTemp[5,1]
			END
		END ELSE
			IF W_ACTIVITE = "" THEN
				W_CODEAIDANT=W_CodeAidant
			END ELSE
				IF W_ACTIVITE = "M" THEN
					W_CODEAIDANT=W_CLE[1,1]:" ":W_CLE[2,1]:" ":W_CLE[3,1]:" ":W_CLE[4,1]:" ":W_CLE[5,1]
				END ELSE
					W_CODEAIDANT=W_CleTemp[1,1]:" ":W_CleTemp[2,1]:" ":W_CleTemp[3,1]:" ":W_CleTemp[4,1]:" ":W_CleTemp[5,1]
				END
			END
		END

		W_NOMAIDANT=(ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>)[1,34] "L#34"

		ADRESSE1=ENR_CIVILAIDANT<5>
		ADRESSE2=ENR_CIVILAIDANT<6>
		ADRESSE3=ENR_CIVILAIDANT<7>
		ADRESSE4=ENR_CIVILAIDANT<8>
		GOSUB 400
		W_ADRESSEAIDANT1=ADRESSE[1,34] "L#34"

		IF ENR_CIVILAIDANT<9> # "" THEN
			W_ADRESSEAIDANT2=ENR_CIVILAIDANT<9>[1,34] "L#34"
			W_ADRESSEAIDANT3=(ENR_CIVILAIDANT<10>:" ":ENR_CIVILAIDANT<11>)[1,34] "L#34"
		END ELSE
			W_ADRESSEAIDANT2=(ENR_CIVILAIDANT<10>:" ":ENR_CIVILAIDANT<11>)[1,34] "L#34"
			W_ADRESSEAIDANT3=" " "L#34"
		END
	END
RETURN

*********************
* CAISSE PREST VIDE *
*********************
700
	W_CAISSE=SPACE(24)
	W_HEURE=SPACE(24)
	W_FIN=SPACE(24)
	W_PARTICIPATION=SPACE(24)
	W_SERVICEORG = ""
RETURN

*************************
* CAISSE PREST NON VIDE *
*************************
800

	IF W_MULTIACCORD = "O" AND W_TabAcc<2>#"" AND W_FEUILLEACCORD="0" THEN
		READ ENR_ACCORD FROM F.ACCORD,W_TabAcc<1> ELSE ENR_ACCORD=""
		READ ENR_COMPTEUR FROM F.COMPTEUR,W_TabAcc<1> ELSE ENR_COMPTEUR=""
		READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE ENR_ORGPRISECHARGE=""

		W_HreCalculee=ENR_ACCORD<9>
		GOSUB 3300
		ENR_ACCORD<9>=W_HreCalculee

		IF W_ACTIVITE="M" AND ENR_ORGPRISECHARGE<24> = "M" THEN
			W_HEURE="NB HEURES  :            "
			W_SaveHeures=""
		END ELSE
			W_HEURE="NB HEURES  : ":W_HreCalculee "R26(#11)"
			W_SaveHeures=W_HreCalculee "R26(#11)"
			W_SaveHeures=TRIM(W_SaveHeures)
		END
		W_CAISSE=ENR_ORGPRISECHARGE<1>[1,24] "L#24"
		W_FIN="FIN ACCORD : ":OCONV(ENR_ACCORD<6>,"D4/")[1,10] "R#11"
		W_SERVICEORG = ENR_ORGPRISECHARGE<42>
		W_COMPTPART=DCOUNT(ENR_ACCORD<11>,CHAR(253))
		FOR J=W_COMPTPART TO 1 STEP -1
			IF ENR_ACCORD<11,J> <= W_FINPER AND ENR_ACCORD<11,J> >= W_DEBPER THEN
				EXIT
			END ELSE
				IF J=1 THEN
					EXIT
				END
			END
		NEXT J
		IF W_ACTIVITE="M" THEN
			W_PARTICIPATION="PARTICIP.  :            "
		END ELSE
			IF ENR_ORGPRISECHARGE<48> <> "%" THEN
				W_PARTICIPATION="PARTICIP.  : ":ENR_ACCORD<13,J> "R26(#11)"
			END ELSE
				W_TAUX = ENR_ACCORD<10,J>
				GOSUB 850
				W_PARTICIPATION="PARTICIP.  : ":INTER "R26(#11)"
			END
		END					
		
		READ ENR_ACCORD FROM F.ACCORD,W_TabAcc<2> ELSE ENR_ACCORD=""
		READ ENR_COMPTEUR FROM F.COMPTEUR,W_TabAcc<2> ELSE ENR_COMPTEUR=""
		READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE ENR_ORGPRISECHARGE=""		
		
		W_HreCalculee=ENR_ACCORD<9>
		GOSUB 3300
		ENR_ACCORD<9>=W_HreCalculee
		
		IF W_ACTIVITE#"M" OR ENR_ORGPRISECHARGE<24>#"M" THEN
			W_SaveHeures = W_SaveHeures:"/":W_HreCalculee "R26"
			W_SaveHeures=W_SaveHeures "R26(#11)"
			W_HEURE="NB HEURES  : ":W_SaveHeures
		END
		W_CAISSE=TRIM(W_CAISSE)[1,12]:"/":ENR_ORGPRISECHARGE<1>[1,11]
		W_CAISSE=W_CAISSE "L#24"
		W_CAISSE=W_CAISSE[1,24]

	END ELSE	
		READ ENR_ACCORD FROM F.ACCORD,W_TabAcc<W_I> ELSE ENR_ACCORD=""
		READ ENR_COMPTEUR FROM F.COMPTEUR,W_TabAcc<W_I> ELSE ENR_COMPTEUR=""
		READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE ENR_ORGPRISECHARGE=""

		W_HreCalculee=ENR_ACCORD<9>
		GOSUB 3300
		ENR_ACCORD<9>=W_HreCalculee		
		
		IF W_ACTIVITE="M" AND ENR_ORGPRISECHARGE<24> = "M" THEN
			W_HEURE="NB HEURES   :           "
		END ELSE
			W_HEURE="NB HEURES   : ":ENR_ACCORD<9> "R26(#10)"
		END
		W_CAISSE=ENR_ORGPRISECHARGE<1>[1,24] "L#24"
		W_FIN="FIN ACCORD  : ":OCONV(ENR_ACCORD<6>,"D4/")[1,10] "R#10"
		W_SERVICEORG = ENR_ORGPRISECHARGE<42>
		W_COMPTPART=DCOUNT(ENR_ACCORD<11>,CHAR(253))
		FOR J=W_COMPTPART TO 1 STEP -1
			IF ENR_ACCORD<11,J> <= W_FINPER AND ENR_ACCORD<11,J> >= W_DEBPER THEN
				EXIT
			END ELSE
				IF J=1 THEN
					EXIT
				END
			END
		NEXT J
		IF W_ACTIVITE="M" THEN
			W_PARTICIPATION="PARTICIP.   :           "
		END ELSE
			IF ENR_ORGPRISECHARGE<48> <> "%" THEN
				W_PARTICIPATION="PARTICIP.   : ":ENR_ACCORD<13,J> "R26(#10)"
			END ELSE
				W_TAUX = ENR_ACCORD<10,J>
				GOSUB 850
				W_PARTICIPATION="PARTICIP.   : ":INTER "R26(#10)"
			END
		END
	END

RETURN

*************************
* RECHERCHE TAUX TARIFE *
*************************

850

IORG = 1
LOOP
WHILE ENR_ORGPRISECHARGE<26,IORG> # ""
	IF ENR_ORGPRISECHARGE<25,IORG> <= W_FINPER AND ENR_ORGPRISECHARGE<25,IORG> <> "" THEN
		IF ENR_ORGPRISECHARGE<26,IORG> = "0" OR ENR_ORGPRISECHARGE<26,IORG> = "000" THEN
			W_FEDE850 = "FAUX"
			W_CoutPrest = 0
			IF ENR_COMPTEUR<17> # "" THEN
				READ ENR_FEDEASSOC FROM F.FEDEASSOC,ENR_CIVILAIDE<40>[1,3] ELSE ENR_FEDEASSOC = "RIEN"
				IF ENR_FEDEASSOC = "RIEN" THEN
					READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ORGPRISECHARGE<47,1> ELSE ENR_ACTIVITES = ""
				END ELSE
					W_FEDE850 = "VRAI"
				END
			END ELSE
				READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ORGPRISECHARGE<47,1> ELSE ENR_ACTIVITES = ""
			END

			IF W_FEDE850 = "FAUX" THEN
				W_NbTarif=DCOUNT(ENR_ACTIVITES<15>,CHAR(253))
				*PARCOURS DES DATES POUR TROUVER LE TAUX
				FOR ITarif=1 TO W_NbTarif
					*IF ITarif=1 THEN
					*	IF (W_DEBPER >= ENR_ACTIVITES<15,ITarif> AND ENR_ACTIVITES<20,ITarif> = "2") OR (ENR_ACTIVITES<15,ITarif> >= W_DEBPER AND ENR_ACTIVITES<15,ITarif> <= W_FINPER AND ENR_ACTIVITES<20,ITarif> = "2") THEN
					*		W_CoutPrest=ENR_ACTIVITES<14,ITarif>
					*		W_Orga="TRUE"
					*		ITarif=W_NbTarif+1
					*	END
					*END ELSE
						IF ENR_ACTIVITES<15,ITarif> <= W_FINPER AND ENR_ACTIVITES<20,ITarif> = "2" THEN
							W_CoutPrest=ENR_ACTIVITES<14,ITarif>
							W_Orga="TRUE"
							ITarif=W_NbTarif+1
						END
					*END
				NEXT ITarif
			END ELSE
				W_NbTarif=DCOUNT(ENR_FEDEASSOC<49>,CHAR(253))
				*PARCOURS DES DATES POUR TROUVER LE TAUX
				FOR ITarif=1 TO W_NbTarif
					*IF ITarif=1 THEN
					*	IF (W_DEBPER >= ENR_FEDEASSOC<49,ITarif> AND ENR_FEDEASSOC<50,ITarif> = "2") OR (ENR_FEDEASSOC<15,ITarif> >= W_DEBPER AND ENR_FEDEASSOC<49,ITarif> <= W_FINPER AND ENR_FEDEASSOC<50,ITarif> = "2") THEN
					*		W_CoutPrest=ENR_FEDEASSOC<51,ITarif>
					*		W_Orga="TRUE"
					*		ITarif=W_NbTarif+1
					*	END
					*END ELSE
						IF ENR_FEDEASSOC<49,ITarif> <= W_FINPER AND ENR_FEDEASSOC<50,ITarif> = "2" THEN
							W_CoutPrest=ENR_FEDEASSOC<51,ITarif>
							W_Orga="TRUE"
							ITarif=W_NbTarif+1
						END
					*END
				NEXT ITarif
			END
			IF W_CoutPrest = "0" OR W_CoutPrest = "000" OR W_TAUX = "0" OR W_TAUX = "000" THEN
				INTER = "0"
			END ELSE
				INTER = INT(((W_TAUX*W_CoutPrest)/10000)+(1/2))
			END
			IORG = 999
		END ELSE
			IF W_TAUX = "0" OR W_TAUX = "000" THEN
				INTER = "0"
			END ELSE
				INTER = INT(((W_TAUX*ENR_ORGPRISECHARGE<26,IORG>)/10000)+(1/2))
			END
			IORG = 999
		END
	END 
	IORG = IORG + 1
REPEAT

RETURN

***************
* MASQUE JOUR *
***************
900

	IF W_MATRIC="1" THEN
		W_StopImprime="FAUX"
		W_NBJOUR=(W_FINPER-W_DEBPER)-28+1
		BEGIN CASE
			CASE W_NBJOUR=0
				W_VALEURMAX=40
			CASE W_NBJOUR=1
				W_VALEURMAX=41
			CASE W_NBJOUR=2
				W_VALEURMAX=43
			CASE W_NBJOUR=3
				W_VALEURMAX=44
		END CASE

902
			IF W_CODASSOC="" THEN
				W_NBJOUR=(W_FINPER-W_DEBPER)+1

				W_Indice=W_SauveInd
				W_Act=""
				W_Entite=""

				FOR IBOUCLE=1 TO W_NBJOUR
					IF W_REQUETEEDIT<W_Indice> # "" THEN
						W_CountMS=DCOUNT(W_REQUETEEDIT<W_Indice,2>,CHAR(252))

						FOR MS=1 TO W_CountMS
							IF W_CodeCle=W_REQUETEEDIT<W_Indice,4,MS>[1,10] THEN
								IF W_Act="" AND W_REQUETEEDIT<W_Indice,6,MS>#"1" THEN
							 		W_Act=W_REQUETEEDIT<W_Indice,1,MS>[7,1]
									W_Entite=W_REQUETEEDIT<W_Indice,4,MS>[16,3]
								END
								IF W_Act # "" AND W_Entite=W_REQUETEEDIT<W_Indice,4,MS>[16,3] AND W_Act=W_REQUETEEDIT<W_Indice,1,MS>[7,1] AND W_REQUETEEDIT<W_Indice,6,MS>#"1" THEN
									W_REQUETEEDIT<W_Indice,6,MS>="1"
								END
							END
						NEXT MS
					END
					W_Indice=W_Indice+1

				NEXT IBOUCLE

				IF W_Act # "" THEN
					IF W_Premier="VRAI" THEN
						FOR I=1 TO 10
							PRINT 
						NEXT I	
					END
					READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_Entite ELSE PRINT "ASSOCIATION 1"

					IF W_Entite # "" AND W_Entite # "0" THEN
						W_MemAsso = W_Entite
					END
					W_Premier="VRAI"
					GOSUB 1000
					GOSUB 300
				END ELSE
					W_StopImprime="VRAI"
				END
			END
901

			IF W_StopImprime="FAUX" THEN
				FOR IBOUCLE=1 TO 45

					IF IBOUCLE <= W_VALEURMAX THEN
						PRINT W_MASQUE<IBOUCLE>
					END ELSE
						PRINT 
					END
				NEXT IBOUCLE

				IF W_CODASSOC="" THEN
					GOSUB 902
				END
			END

	END ELSE
		W_NBJOUR=(W_FINPER-W_DEBPER)+1
		W_Indice=W_SauveInd

		W_TotalHreSemaine=0
		W_TotalHreDimJF=0

		IF W_PlusieursAccords="FAUX" THEN

			W_Act=""
			W_Entite=""
		END

		FOR IBOUCLE=1 TO W_NBJOUR
			ENR_EDITION<W_Ligne> = W_MASQUE<IBOUCLE>

			IF W_REQUETE[1,15] = "AFFICHEPLANNING" OR W_PlanningPrestAidant = "V" THEN

				W_CountMS=DCOUNT(W_REQUETEEDIT<W_Indice,2>,CHAR(252))
				ENR_EDITION<W_Ligne> = ENR_EDITION<W_Ligne>:" "
				W_Compteur=0

				FOR MS=1 TO W_CountMS

					IF W_CodeCle=W_REQUETEEDIT<W_Indice,4,MS>[1,10] THEN
						IF W_Act="" AND W_REQUETEEDIT<W_Indice,6,MS>#"1" THEN
						 	W_Act=W_REQUETEEDIT<W_Indice,1,MS>[7,1]
							W_Entite=W_REQUETEEDIT<W_Indice,4,MS>[16,3]
							READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_Entite ELSE ENR_ASSOCIATION=""
						END

						IF W_Act # "" THEN

							IF ENR_ASSOCIATION<42> # "" AND INDEX(W_MASQUE<IBOUCLE>,"*",1) # "0" THEN								
								GOSUB 3200
  								IF Ferie[1,5] = "SEMAI" THEN
									W_MASQUE<IBOUCLE>=CONVERT("*"," ",W_MASQUE<IBOUCLE>)
									ENR_EDITION<W_Ligne>=CONVERT("*"," ",ENR_EDITION<W_Ligne>)
								END
							END

							IF W_Compteur <= 4 AND W_Entite=W_REQUETEEDIT<W_Indice,4,MS>[16,3] AND W_Act=W_REQUETEEDIT<W_Indice,1,MS>[7,1] AND ((W_REQUETEEDIT<W_Indice,6,MS>#"1" AND W_PlusieursAccords="FAUX") OR (W_REQUETEEDIT<W_Indice,6,MS>="1" AND W_PlusieursAccords="VRAI")) THEN

								IF W_DETAILINTERV = 1 THEN
								
									W_Var=""
									W_Temp=W_REQUETEEDIT<W_Indice,2,MS>
									W_Min=INT((W_Temp[3,2]*60/100)+1/2)
									W_Var=INT(W_Temp[1,2]):"h":W_Min "R%2":"/"
									W_Temp=W_REQUETEEDIT<W_Indice,3,MS>
									W_Min=INT((W_Temp[3,2]*60/100)+1/2)
									W_Var=W_Var:INT(W_Temp[1,2]):"h":W_Min "R%2"
									IF INDEX(ENR_EDITION<W_Ligne>,"h",1) = "0" THEN
										ENR_EDITION<W_Ligne> = ENR_EDITION<W_Ligne>:SPACE(12-LEN(W_Var)):W_Var	
									END ELSE
										ENR_EDITION<W_Ligne> = ENR_EDITION<W_Ligne>:SPACE(15-LEN(W_Var)):W_Var	
									END
									IF INDEX(W_MASQUE<IBOUCLE>,"*",1) = "0" AND INDEX(W_MASQUE<IBOUCLE>,"DIM",1) = "0" THEN
										W_TotalHreSemaine = W_TotalHreSemaine + INT(W_REQUETEEDIT<W_Indice,5,MS>)
									END ELSE
										W_TotalHreDimJF = W_TotalHreDimJF + INT(W_REQUETEEDIT<W_Indice,5,MS>)
									END
								END

								W_Compteur=W_Compteur+1
								W_REQUETEEDIT<W_Indice,6,MS>="1"
							END ELSE
								IF W_Compteur > 4 AND W_Entite=W_REQUETEEDIT<W_Indice,4,MS>[16,3] AND W_Act=W_REQUETEEDIT<W_Indice,1,MS>[7,1] AND W_REQUETEEDIT<W_Indice,6,MS>#"1" THEN
									W_REQUETEEDIT<W_Indice,6,MS>="1"
									IF INDEX(W_MASQUE<IBOUCLE>,"*",1) = "0" AND INDEX(W_MASQUE<IBOUCLE>,"DIM",1) = "0" THEN
										W_TotalHreSemaine = W_TotalHreSemaine + INT(W_REQUETEEDIT<W_Indice,5,MS>)
									END ELSE
										W_TotalHreDimJF = W_TotalHreDimJF + INT(W_REQUETEEDIT<W_Indice,5,MS>)
									END
								END
							END
						END
					END
				NEXT MS

			IF ENR_ASSOCIATION<42> # "" AND INDEX(W_MASQUE<IBOUCLE>,"*",1) # "0" THEN								
				GOSUB 3200
				IF Ferie[1,5] = "SEMAI" THEN
					W_MASQUE<IBOUCLE>=CONVERT("*"," ",W_MASQUE<IBOUCLE>)
					ENR_EDITION<W_Ligne>=CONVERT("*"," ",ENR_EDITION<W_Ligne>)
				END
			END

			END



			W_Indice=W_Indice+1

  			W_Ligne=W_Ligne+1
		NEXT IBOUCLE

		IF W_DETAILINTERV = 1 THEN
			ENR_EDITION<W_Ligne> = "#4"
			W_Ligne=W_Ligne+1
			ENR_EDITION<W_Ligne> = W_TotalHreSemaine
			W_Ligne=W_Ligne+1
			ENR_EDITION<W_Ligne> = W_TotalHreDimJF
			W_Ligne=W_Ligne+1
		END

		IF W_CODASSOC="" THEN
			IF W_Act # "" THEN
				W_FinLigne=W_Ligne
				IF W_CODASSOC = "" THEN
					W_Ligne=W_SauveLigne
					
					READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_Entite THEN
						W_ImprimeEntete="VRAI"
					END

					IF W_Entite # "" AND W_Entite # "0" THEN
						W_MemAsso = W_Entite
					END
					ENR_EDITION<W_Ligne-1> = "%":W_MemAsso
					GOSUB 1000
					GOSUB 302
					W_ImprimeEntete="FAUX"
				END
				W_Ligne=W_FinLigne
				GOSUB 1000
				GOSUB 500
				GOSUB 600
				GOSUB 300
			END ELSE

				W_Ligne=W_FinLigne
			END
		END

	END
	

RETURN


************************
* SAUVEGARDE DES JOURS *
************************
905

	W_TABJ=""

	IF W_MATRIC="1" THEN
		* INITIALISATION DU TABLEAU DES JOURS (PREMIER JOUR DU MOIS DANS LA PREMIERE CASE)
		FOR K=0 TO 6
			RESTE=MOD(W_DEBPER+K,7)
			BEGIN CASE
				CASE RESTE=0
					W_TABJ<K+1>="DIMAN"
					W_POSDIM=K+1
				CASE RESTE=1
					W_TABJ<K+1>="LUNDI"
				CASE RESTE=2
					W_TABJ<K+1>="MARDI"
				CASE RESTE=3
					W_TABJ<K+1>="MERCR"
				CASE RESTE=4
					W_TABJ<K+1>="JEUDI"
				CASE RESTE=5
					W_TABJ<K+1>="VENDR"
				CASE RESTE=6
					W_TABJ<K+1>="SAMED"
			END CASE
		NEXT K
	END ELSE
		FOR K=0 TO 6
			RESTE=MOD(W_DEBPER+K,7)
			BEGIN CASE
				CASE RESTE=0
					W_TABJ<K+1>="DIM  "
					W_POSDIM=K+1
				CASE RESTE=1
					W_TABJ<K+1>="LUN  "
				CASE RESTE=2
					W_TABJ<K+1>="MAR  "
				CASE RESTE=3
					W_TABJ<K+1>="MER  "
				CASE RESTE=4
					W_TABJ<K+1>="JEU  "
				CASE RESTE=5
					W_TABJ<K+1>="VEN  "
				CASE RESTE=6
					W_TABJ<K+1>="SAM  "
			END CASE
		NEXT K
	END

	* INITIALISATION DU TABLEAU D'EDITION
	W_MASQUE=""

	* REMPLISSAGE DES JOURS NORMAUX

	IF W_JOUR=1 THEN
		IF W_MATRIC = "1" THEN
			FOR IBOUCLE=1 TO 41 STEP 10
				W_MASQUE<IBOUCLE>=W_TABJ<1>
			NEXT IBOUCLE
		END ELSE
			W_NBJOUR=(W_FINPER-W_DEBPER)+1	
			W_IND=1		
			FOR IBOUCLE=1 TO W_NBJOUR
				W_MASQUE<IBOUCLE>=" ":W_TABJ<W_IND>:" ":IBOUCLE "R#2"
				W_IND=W_IND+1
				IF W_IND=8 THEN
					W_IND=1
				END
			NEXT IBOUCLE
		END
	END

	* REMPLISSAGE DIMANCHE ET JOURS FERIES

	IF (W_DIMANCHE=1 AND W_MATRIC="1") OR (W_JOUR=1 OR W_DIMANCHE=1 AND W_MATRIC="0") THEN
		* DIMANCHE
		GOSUB 1100
		* JOUR FERIES
		GOSUB 1200
	END

RETURN


**************************
* PREPARATION INFO ASSOC *
**************************
1000

	IF W_FEDE="OUI" THEN

		*MOULINETTE POUR FEDEASSOC
		EXECUTE 'SSELECT FEDEASSOC AVEC 41 = "':ENR_CIVILAIDE<40>[1,3]:'"'
		EXECUTE 'SAUVE-LISTE W_REQUETESECT'
		EXECUTE "LISTE W_REQUETESECT" RETURNING MSGCODE	
	
		IF MSGCODE<1>#209 THEN

			SELECT F.FEDEASSOC TO W_REQUETESECT
			READNEXT W_CLESECT FROM W_REQUETESECT ELSE STOP
			READ ENR_FEDEASSOC FROM F.FEDEASSOC,W_CLESECT ELSE PRINT "FEDEASSOC"
			W_LONGUEURSECTEUR=0

			BEGIN CASE
				CASE W_ACTIVITE="P"
					IF ENR_FEDEASSOC<42,3>="1" THEN
						GOSUB 1020
						IF W_LONGUEURSECTEUR > 0 THEN
							GOSUB 1015
						END ELSE
							GOSUB 1005
						END
					END ELSE
						GOSUB 1010
					END

				CASE W_ACTIVITE="M"
					IF ENR_FEDEASSOC<43,3>="1" THEN
						GOSUB 1020
						IF W_LONGUEURSECTEUR > 0 THEN
							GOSUB 1015
						END ELSE
							GOSUB 1005
						END
					END ELSE
						GOSUB 1010
					END

				CASE W_ACTIVITE="I"
					IF ENR_FEDEASSOC<44,3>="1" THEN
						GOSUB 1020
						IF W_LONGUEURSECTEUR > 0 THEN
							GOSUB 1015
						END ELSE
							GOSUB 1005
						END
					END ELSE
						GOSUB 1010
					END
			END CASE

		END ELSE
			GOSUB 1010
		END		

	END ELSE
		GOSUB 1010
	END

RETURN


***************
* ENTETE FEDE *
***************
1005

	W_SIGLEASSOC=ENR_FEDEASSOC<1>[1,24]"L#24"

	ADRESSE1=ENR_FEDEASSOC<3>
	ADRESSE2=ENR_FEDEASSOC<4>
	ADRESSE3=ENR_FEDEASSOC<5>
	ADRESSE4=ENR_FEDEASSOC<6>
	GOSUB 400
	W_ADRESSEASSOC1=ADRESSE[1,24] "L#24"

	IF ENR_FEDEASSOC<7> # "" THEN
		W_ADRESSEASSOC2=ENR_FEDEASSOC<7>[1,24] "L#24"
		W_ADRESSEASSOC3=(ENR_FEDEASSOC<8>:" ":ENR_FEDEASSOC<9>)[1,24] "L#24"
	END ELSE 
		W_ADRESSEASSOC2=(ENR_FEDEASSOC<8>:" ":ENR_FEDEASSOC<9>)[1,24] "L#24"
		W_ADRESSEASSOC3=SPACE(24)
	END

	W_TELASSOC=("TEL : ":ENR_FEDEASSOC<12>) "L#24"

	IF W_ACTIVITE = "P" OR (W_ACTIVITE ="" AND W_Act = "P") THEN
		W_FAXASSOC=("ACT : PRESTATAIRE") "L#24"
	END ELSE
		IF W_ACTIVITE = "M" OR (W_ACTIVITE ="" AND W_Act = "M") THEN
			W_FAXASSOC=("ACT : MANDATAIRE") "L#24"
		END ELSE
			IF W_ACTIVITE = "I" OR (W_ACTIVITE ="" AND W_Act = "I") THEN
				W_FAXASSOC=("ACT : INTERMEDIAIRE") "L#24"
			END ELSE
				IF W_ACTIVITE = "S" OR (W_ACTIVITE ="" AND W_Act = "S") THEN
					W_FAXASSOC=("ACT : SSIAD") "L#24"
				END
			END
		END
	END
	IF W_Act = "M" THEN
		GOSUB 700
	END
*	W_FAXASSOC=("FAX : ":ENR_FEDEASSOC<13>) "L#24"

RETURN


****************
* ENTETE ASSOC *
****************
1010

	W_SIGLEASSOC=(ENR_ASSOCIATION<1>)[1,24] "L#24"

	ADRESSE1=ENR_ASSOCIATION<3>
	ADRESSE2=ENR_ASSOCIATION<4>
	ADRESSE3=ENR_ASSOCIATION<5>
	ADRESSE4=ENR_ASSOCIATION<6>
	GOSUB 400
	W_ADRESSEASSOC1=(ADRESSE[1,24]) "L#24"

	IF ENR_ASSOCIATION<7> # "" THEN
		W_ADRESSEASSOC2=(ENR_ASSOCIATION<7>[1,24]) "L#24"
		W_ADRESSEASSOC3=(ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>)[1,24] "L#24"
	END ELSE 
		W_ADRESSEASSOC2=(ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>)[1,24] "L#24"
		W_ADRESSEASSOC3=SPACE(24)
	END

	W_TELASSOC=("TEL : ":ENR_ASSOCIATION<12>) "L#24"

	IF W_ACTIVITE = "P" OR (W_ACTIVITE ="" AND W_Act = "P") THEN
		W_FAXASSOC=("ACT : PRESTATAIRE") "L#24"
	END ELSE
		IF W_ACTIVITE = "M" OR (W_ACTIVITE ="" AND W_Act = "M") THEN
			W_FAXASSOC=("ACT : MANDATAIRE") "L#24"
		END ELSE
			IF W_ACTIVITE = "I" OR (W_ACTIVITE ="" AND W_Act = "I") THEN
				W_FAXASSOC=("ACT : INTERMEDIAIRE") "L#24"
			END ELSE
				IF W_ACTIVITE = "S" OR (W_ACTIVITE ="" AND W_Act = "S") THEN
					W_FAXASSOC=("ACT : SSIAD") "L#24"
				END
			END
		END
	END
	IF W_Act = "M" THEN
		GOSUB 700
	END

*	W_FAXASSOC=("FAX : ":ENR_ASSOCIATION<13>) "L#24"

RETURN


******************
* ENTETE SECTEUR *
******************
1015

	W_SIGLEASSOC=ENR_FEDEASSOC<1>[1,24]"L#24"

	ADRESSE1=ENR_SECTEUR<5>
	ADRESSE2=ENR_SECTEUR<6>
	ADRESSE3=ENR_SECTEUR<7>
	ADRESSE4=ENR_SECTEUR<8>
	GOSUB 400
	W_ADRESSEASSOC1=(ADRESSE[1,24]) "L#24"

	IF ENR_SECTEUR<9> # "" THEN
		W_ADRESSEASSOC2=(ENR_SECTEUR<9>[1,24]) "L#24"
		W_ADRESSEASSOC3=(ENR_SECTEUR<10>:" ":ENR_SECTEUR<11>)[1,24] "L#24"
	END ELSE 
		W_ADRESSEASSOC2=(ENR_SECTEUR<10>:" ":ENR_SECTEUR<11>)[1,24] "L#24"
		W_ADRESSEASSOC3=SPACE(24)
	END

	W_TELASSOC=("TEL : ":ENR_SECTEUR<14>) "L#24"

	IF W_ACTIVITE = "P" OR (W_ACTIVITE ="" AND W_Act = "P") THEN
		W_FAXASSOC=("ACT : PRESTATAIRE") "L#24"
	END ELSE
		IF W_ACTIVITE = "M" OR (W_ACTIVITE ="" AND W_Act = "M") THEN
			W_FAXASSOC=("ACT : MANDATAIRE") "L#24"
		END ELSE
			IF W_ACTIVITE = "I" OR (W_ACTIVITE ="" AND W_Act = "I") THEN
				W_FAXASSOC=("ACT : INTERMEDIAIRE") "L#24"
			END ELSE
				IF W_ACTIVITE = "S" OR (W_ACTIVITE ="" AND W_Act = "S") THEN
					W_FAXASSOC=("ACT : SSIAD") "L#24"
				END
			END
		END
	END
	IF W_Act = "M" THEN
		GOSUB 700
	END
*	W_FAXASSOC=("FAX : ":ENR_SECTEUR<16>) "L#24"

RETURN

*************************************
* VERIFICATION SI SECTEUR RENSEIGNE *
*************************************
1020
	W_LONGUEURSECTEUR=TRIM(ENR_SECTEUR<5>:ENR_SECTEUR<6>:ENR_SECTEUR<7>:ENR_SECTEUR<8>:ENR_SECTEUR<9>:ENR_SECTEUR<10>:ENR_SECTEUR<11>:ENR_SECTEUR<14>:ENR_SECTEUR<16>)
	W_LONGUEURSECTEUR=LEN(W_LONGUEURSECTEUR)

RETURN

*************************
* GESTION DES DIMANCHES *
*************************
1100
	BEGIN CASE
		CASE W_POSDIM=1
			W_VALEURCASE=1
		CASE W_POSDIM=2
			W_VALEURCASE=3
		CASE W_POSDIM=3
			W_VALEURCASE=4
		CASE W_POSDIM=4
			W_VALEURCASE=6
		CASE W_POSDIM=5
			W_VALEURCASE=7
		CASE W_POSDIM=6
			W_VALEURCASE=9
		CASE W_POSDIM=7
			W_VALEURCASE=10
	END CASE

	IF W_MATRIC="1" THEN
		FOR IBOUCLE=W_VALEURCASE TO W_VALEURCASE+40 STEP 10
			W_MASQUE<IBOUCLE>=W_TABJ<W_POSDIM>
		NEXT IBOUCLE
	END ELSE
		IF W_JOUR # 1 THEN
			W_NBJOUR=(W_FINPER-W_DEBPER)+1
			FOR IBOUCLE=1 TO W_NBJOUR
				RESTE=MOD(W_DEBPER+IBOUCLE-1,7)
	         		IF RESTE=0 THEN
					W_MASQUE<IBOUCLE>=" ":W_TABJ<W_POSDIM>:" ":IBOUCLE "R#2"
				END ELSE
					W_MASQUE<IBOUCLE>=" ":SPACE(6):IBOUCLE "R#2"
				END
			NEXT IBOUCLE
		END
	END


RETURN

****************************
* GESTION DES JOURS FERIES *
****************************
1200

	W_JourSol=ENR_ASSOCIATION<42>

	IF W_MATRIC = "1" THEN
		BEGIN CASE
			CASE W_MOIS="JANVIER "
				IF W_JourSol # "01JAN" THEN
					W_MASQUE<1>="J.F."
				END
			CASE W_MOIS="JUILLET "
				IF W_JourSol # "14JUI" THEN
					W_MASQUE<20>="J.F."
				END
			CASE W_MOIS="AOUT "
				IF W_JourSol # "15AOU" THEN
					W_MASQUE<21>="J.F."
				END
			CASE W_MOIS="NOVEMBRE "
				IF W_JourSol # "01NOV" THEN
					W_MASQUE<1>="J.F."
				END
				IF W_JourSol # "11NOV" THEN
					W_MASQUE<16>="J.F."
				END
			CASE W_MOIS="DECEMBRE "
				IF W_JourSol # "25DEC" THEN
					W_MASQUE<36>="J.F."
				END
			CASE W_MOIS="MARS " OR W_MOIS="AVRIL " OR W_MOIS="MAI " OR W_MOIS="JUIN "
				GOSUB 1205
		END CASE
	END ELSE

		W_TABJF<1>="DIM  "
		W_TABJF<2>="LUN  "
		W_TABJF<3>="MAR  "
		W_TABJF<4>="MER  "
		W_TABJF<5>="JEU  "
		W_TABJF<6>="VEN  "
		W_TABJF<7>="SAM  "

		BEGIN CASE
			CASE W_MOIS="JANVIER "
				IF W_JourSol # "01JAN" THEN
					RESTE=MOD(W_DEBPER,7)
					W_MASQUE<1>=" ":W_TABJF<RESTE+1>:"  1*"
				END
			CASE W_MOIS="JUILLET "
				IF W_JourSol # "14JUI" THEN
					RESTE=MOD(W_DEBPER+14-1,7)
					W_MASQUE<14>=" ":W_TABJF<RESTE+1>:" 14*"
				END
			CASE W_MOIS="AOUT "
				IF W_JourSol # "15AOU" THEN
					RESTE=MOD(W_DEBPER+15-1,7)
					W_MASQUE<15>=" ":W_TABJF<RESTE+1>:" 15*"
				END
			CASE W_MOIS="NOVEMBRE "
				IF W_JourSol # "01NOV" THEN
					RESTE=MOD(W_DEBPER,7)
					W_MASQUE<1>=" ":W_TABJF<RESTE+1>:"  1*"
				END
				IF W_JourSol # "11NOV" THEN
					RESTE=MOD(W_DEBPER+11-1,7)
					W_MASQUE<11>=" ":W_TABJF<RESTE+1>:" 11*"
				END
			CASE W_MOIS="DECEMBRE "
				IF W_JourSol # "25DEC" THEN
					RESTE=MOD(W_DEBPER+25-1,7)
					W_MASQUE<25>=" ":W_TABJF<RESTE+1>:" 25*"
				END
			CASE W_MOIS="MARS " OR W_MOIS="AVRIL " OR W_MOIS="MAI " OR W_MOIS="JUIN "
				GOSUB 1205

		END CASE


	END

RETURN

*********************************
* RECUPERATION DES JF VARIABLES *
*********************************
1205

	IF W_MATRIC="1" THEN
		IF W_MOIS="MAI " THEN
			W_MASQUE<1>="J.F."
			IF W_JourSol # "08MAI" THEN
				W_MASQUE<11>="J.F."
			END
		END
	END ELSE
		IF W_MOIS="MAI " THEN
			RESTE=MOD(W_DEBPER,7)
			W_MASQUE<1>=" ":W_TABJF<RESTE+1>:"  1*"
			IF W_JourSol # "08MAI" THEN
				RESTE=MOD(W_DEBPER+8-1,7)
				W_MASQUE<8>=" ":W_TABJF<RESTE+1>:"  8*"
			END
		END
	END

	BEGIN CASE
		CASE W_MOIS="MARS "
			W_VALMOIS="03"
		CASE W_MOIS="AVRIL "
			W_VALMOIS="04"
		CASE W_MOIS="MAI "
			W_VALMOIS="05"
		CASE W_MOIS="JUIN "
			W_VALMOIS="06"
	END CASE

	READ ENR_PAQUES FROM F.PAQUES,W_ANNEE THEN

		W_DIMPAQUES=ENR_PAQUES<1>[1,2]:"/":ENR_PAQUES<1>[3,2]:"/":W_ANNEE
		W_DIMPAQUES=ICONV(W_DIMPAQUES,"D4/")
		W_PAQUES=W_DIMPAQUES+1
		W_ASCENSION=W_DIMPAQUES+39
		W_PENTECOTE=W_DIMPAQUES+50

		IF W_MATRIC="1" THEN

			W_PAQUES=OCONV(W_PAQUES,"D4/")
			W_PENTECOTE=OCONV(W_PENTECOTE,"D4/")
			W_ASCENSION=OCONV(W_ASCENSION,"D4/")

			IF W_VALMOIS=W_PAQUES[4,2] THEN
				IF W_JourSol # "LUPAQ" THEN
					W_RESTE=MOD(W_PAQUES[1,2],7)
					W_ENTIER=INT(W_PAQUES[1,2]/7)
					GOSUB 1210
				END
			END
			IF W_VALMOIS=W_PENTECOTE[4,2] THEN
				IF W_JourSol # "LUPEN" THEN
					W_RESTE=MOD(W_PENTECOTE[1,2],7)
					W_ENTIER=INT(W_PENTECOTE[1,2]/7)
					GOSUB 1210
				END
			END
			IF W_VALMOIS=W_ASCENSION[4,2] THEN
				IF W_JourSol # "JEASC" THEN
					W_RESTE=MOD(W_ASCENSION[1,2],7)
					W_ENTIER=INT(W_ASCENSION[1,2]/7)
					GOSUB 1210
				END
			END	
		END ELSE

			W_PAQUESEXT=OCONV(W_PAQUES,"D4/")
			W_PENTECOTEEXT=OCONV(W_PENTECOTE,"D4/")
			W_ASCENSIONEXT=OCONV(W_ASCENSION,"D4/")

			IF W_VALMOIS=W_PAQUESEXT[4,2] THEN
				IF W_JourSol # "LUPAQ" THEN
					RESTE=MOD(W_PAQUES,7)
					W_MASQUE<W_PAQUESEXT[1,2]>=" ":W_TABJF<RESTE+1>:" ":W_PAQUESEXT[1,2]:"*"
				END
			END
			IF W_VALMOIS=W_PENTECOTEEXT[4,2] THEN
				IF W_JourSol # "LUPEN" THEN
					RESTE=MOD(W_PENTECOTE,7)
					W_MASQUE<W_PENTECOTEEXT[1,2]>=" ":W_TABJF<RESTE+1>:" ":W_PENTECOTEEXT[1,2]:"*"
				END
			END
			IF W_VALMOIS=W_ASCENSIONEXT[4,2] THEN
				IF W_JourSol # "JEASC" THEN
					RESTE=MOD(W_ASCENSION,7)
					W_MASQUE<W_ASCENSIONEXT[1,2]>=" ":W_TABJF<RESTE+1>:" ":W_ASCENSIONEXT[1,2]:"*"
				END
			END

		END
	END

RETURN

*******************************
* POSITIONNEMENT DE LA VALEUR *
*******************************
1210
	BEGIN CASE
		CASE W_RESTE=0
			W_MASQUE<10+(W_ENTIER*10)>="J.F."
		CASE W_RESTE=1
			W_MASQUE<1+(W_ENTIER*10)>="J.F."
		CASE W_RESTE=2
			W_MASQUE<3+(W_ENTIER*10)>="J.F."
		CASE W_RESTE=3
			W_MASQUE<4+(W_ENTIER*10)>="J.F."
		CASE W_RESTE=4
			W_MASQUE<6+(W_ENTIER*10)>="J.F."
		CASE W_RESTE=5
			W_MASQUE<7+(W_ENTIER*10)>="J.F."
		CASE W_RESTE=6
			W_MASQUE<9+(W_ENTIER*10)>="J.F."
	END CASE	
RETURN

***************************************************
* Traitement prestataire  partir d'ACTIVITESAIDE *
***************************************************
2000
READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_CLE ELSE PRINT "ACTIVITESAIDE"
READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CLE ELSE PRINT "CIVILAIDE"
READ ENR_RESPONSABLE FROM F.RESPONSABLE,ENR_CIVILAIDE<39> ELSE PRINT "RESPONSABLE"
READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE PRINT "SECTEUR"
W_EXO=ENR_ACTIVITESAIDE<5>

GOSUB 1000

W_COMPTACTIV=DCOUNT(ENR_ACTIVITESAIDE<1>,CHAR(253))

FOR IACTIV=1 TO W_COMPTACTIV

	READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ACTIVITESAIDE<1,IACTIV> ELSE ENR_ACTIVITES=""
	W_TYPE=ENR_ACTIVITES<12>

	IF W_TYPE="P" AND (ENR_ACTIVITESAIDE<3,IACTIV>="" OR ENR_ACTIVITESAIDE<3,IACTIV> >= W_DEBPER) THEN

		*RECUPERATION ET CONVERSION VALEURS
		GOSUB 500
		GOSUB 600	
		GOSUB 300
		* Modif Michael 24/12/03 : On n'imprime qu'1 unique feuille pres par aid / couple
		IACTIV = W_COMPTACTIV + 1
	END

NEXT IACTIV
RETURN

3000
CONVERT "^" TO "|" IN W_REQUETE
OPEN "", "TPSTEMPO" TO F.TPSTEMPO ELSE STOP
*EXECUTE 'VIDER-FICHIER TPSTEMPO'
W_CleRetour = FIELD(W_REQUETE,"|",2)
W_CleRetour = W_CleRetour:TIME()
W_Rang3000 = INDEX(W_REQUETE, "|",2)
W_REQUETE = "AFFICHEPLANNING |" : W_CleRetour : W_REQUETE[W_Rang3000, LEN(W_REQUETE) - W_Rang3000 + 1]
WRITE W_REQUETE ON F.TPSTEMPO, "DEBUG"
EXECUTE W_REQUETE
READ W_REQUETEEDIT FROM F.TPSTEMPO, "AFFICHEPLANNING":W_CleRetour THEN
	*DELETE F.TPSTEMPO, "AFFICHEPLANNING":W_CleRetour
END ELSE
	W_REQUETEEDIT<1> = "ERREUR"
END
*CALL AFFICHEPLANNING("",W_REQUETE,W_REQUETEEDIT)


IF W_REQUETEEDIT<1>[1,6] # "ERREUR" THEN

	READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CODASSOC ELSE PRINT "ASSOCIATION 3"
	IF W_CODASSOC # "" AND W_CODASSOC # "0" THEN
		W_MemAsso = W_CODASSOC
	END
	READ ENR_COMPTEUR FROM F.COMPTEUR,"999" ELSE PRINT "COMPTEUR"
	IF ENR_COMPTEUR<17> # "" AND ENR_COMPTEUR<17> # "000" THEN
		W_FEDE="OUI"
	END ELSE
		W_FEDE="NON"
	END

	*TRAITEMENT CAR VALEURS TROUVEES

	W_LONG=LEN(W_PERIODE)
	W_MOIS=W_PERIODE[1,W_LONG-4]
	W_ANNEE=W_PERIODE[W_LONG-3,4]
	W_MOIS=CONVERT("","E",W_MOIS)
	W_MOIS=CONVERT("","U",W_MOIS)

	IF W_JOUR=1 OR W_DIMANCHE=1 THEN
		GOSUB 905

	END ELSE
		IF W_MATRIC = "0" AND W_JOUR=0 AND W_DIMANCHE=0 THEN
			W_NBJOUR=(W_FINPER-W_DEBPER)+1	
			FOR IBOUCLE=1 TO W_NBJOUR
				W_MASQUE<IBOUCLE>=SPACE(7):IBOUCLE "R#2"
			NEXT IBOUCLE
		END
	END


	DELETE F.TEMPO, "EDITFEUIPRES":W_USER

	GOSUB 3100

END ELSE
	ENR_TEMPO<1>="AUCUN"
	WRITE ENR_TEMPO ON F.TEMPO,"EDITFEUIPRES":W_USER
END
RETURN

3100 **************************************************************
*       Traitement Plannig : traitement du rsultat			*
*******************************************************************
W_JourMois = W_FINPER - W_DEBPER
W_FINI="FAUX"
W_CleAnc = ""
W_IndPlanning = 0
W_TriPlanning = ""
ENR_CONTRAT = ""
W_SauveInd=0
W_CodeAidant=""
W_CodeAide=""
W_CodeCle=""

W_PrinterOn="FAUX"

LOOP

WHILE W_REQUETEEDIT<W_IndPlanning> # "#FIN"
	LOOP
		3101
		W_IndPlanning = W_IndPlanning +1
	WHILE W_REQUETEEDIT<W_IndPlanning>[1,4] # "#FIN" AND W_REQUETEEDIT<W_IndPlanning>[1,6] # "#Aides" AND W_REQUETEEDIT<W_IndPlanning>[1,8] # "#Aidants"
		IF W_REQUETEEDIT<W_IndPlanning>[1,7] = "#Interv" THEN
			W_SauveInd=W_IndPlanning+1
		END
	REPEAT
	IF W_REQUETEEDIT<W_IndPlanning>[1,4] = "#FIN" THEN
		* Fin de traitement	
	END ELSE
		IF W_REQUETEEDIT<W_IndPlanning>[1,8] = "#Aidants" THEN
			W_TriPlanning = "Aides"
			* Tri par aid : prest ou mand ?
			IF W_ACTIVITE # "M" THEN
				* On n'imprime qu'une attestation par aid !
				W_AideImprimePlanning = "F" 
				W_CLE = W_REQUETEEDIT<W_IndPlanning>[9,5]
			
				*Mikael modification
				IF W_TELEGESTION = "NON" THEN
					READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CLE ELSE ENR_CIVILAIDE=""
					IF ENR_CIVILAIDE<50>="N" THEN
						READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_CLE THEN
							W_EXO=ENR_ACTIVITESAIDE<5>
						END ELSE
							W_EXO=0
						END
						W_CodeAide=W_CLE
					END ELSE
						GOTO 3101
					END
				END ELSE
				*Fin
					READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CLE ELSE ENR_CIVILAIDE=""
					READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_CLE THEN
						W_EXO=ENR_ACTIVITESAIDE<5>
					END ELSE
						W_EXO=0
					END
					W_CodeAide=W_CLE
				END
			END ELSE
				* Mandataire : code aid ds CONTRAT !!!
				ENR_CONTRAT<3> = W_REQUETEEDIT<W_IndPlanning>[9,5]
			
				*Mikael modification
				IF W_TELEGESTION = "NON" THEN
					READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE=""
					IF ENR_CIVILAIDE<50>="N" THEN
						W_CodeAide=ENR_CONTRAT<3>
					END ELSE
						GOTO 3101
					END
				END ELSE
				*Fin
					READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE=""
					W_CodeAide=ENR_CONTRAT<3>
				END
			END
		END ELSE
		
			W_TriPlanning = "Aidants"
			* Tri par aide : prest ou mand ?
			IF W_ACTIVITE # "M" THEN
				W_REQUETE = "SSELECT DETAILPREST"
				W_CleTemp = W_REQUETEEDIT<W_IndPlanning>[7,5]
				READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CleTemp ELSE ENR_CIVILAIDANT=""
				W_CodeAidant=W_CleTemp
				W_PlanningPrestAidant = "V"
			END ELSE
				* Mandataire : W_CLE doit tre code contrat !!!
				W_CLE = W_REQUETEEDIT<W_IndPlanning>[7,5]
				READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CLE ELSE ENR_CIVILAIDANT=""
				W_CodeAidant=W_CLE
			END
		END

		LOOP
			3102
		   W_IndPlanning = W_IndPlanning +1	   
		WHILE W_REQUETEEDIT<W_IndPlanning>[1,1] # "#" AND W_REQUETEEDIT<W_IndPlanning>[1,6] # "Interv"
		   IF (W_ACTIVITE # "P" OR W_TriPlanning # "Aides") OR W_AideImprimePlanning = "F" THEN
*			W_AideImprimePlanning = "V" 
			W_CAISSE=""
			W_HEURE=""
			W_FIN=""
			W_PARTICIPATION=""
			W_CODEAIDE=""
			W_CODEAIDANT=""
			W_NOMAIDE=""
			W_NOMAIDANT=""
			W_PRENOMAIDE=""
			W_PRENOMAIDANT=""
			W_ADRESSEAIDE1=""
			W_ADRESSEAIDANT1=""
			W_ADRESSEAIDE2=""
			W_ADRESSEAIDANT2=""
			W_ADRESSEAIDE3=""
			W_ADRESSEAIDANT3=""

			*OUVERTURE DES FICHIERS NECESSAIRE
			*READ ENR_CONTRAT FROM F.CONTRAT,W_CLE ELSE STOP
			IF W_TriPlanning = "Aidants" THEN
				IF W_ACTIVITE # "M" THEN
					W_CLE = W_REQUETEEDIT<W_IndPlanning>[1,5]
				
					*Mikael modification
					IF W_TELEGESTION = "NON" THEN
						READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CLE ELSE ENR_CIVILAIDE=""
						IF ENR_CIVILAIDE<50>="N" THEN
							READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_CLE THEN
								W_EXO=ENR_ACTIVITESAIDE<5>
							END ELSE
								W_EXO=0
							END
							W_CodeAide=W_CLE
						END ELSE
							GOTO 3102
						END
					END ELSE
					*Fin
						READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CLE ELSE ENR_CIVILAIDE=""
						READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_CLE THEN
							W_EXO=ENR_ACTIVITESAIDE<5>
						END ELSE
							W_EXO=0
						END
						W_CodeAide=W_CLE
					END
				END ELSE
					ENR_CONTRAT<3> = W_REQUETEEDIT<W_IndPlanning>[1,5]
					
					*Mikael modification
					IF W_TELEGESTION = "NON" THEN
						READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE=""
						IF ENR_CIVILAIDE<50>="N" THEN
							W_CodeAide=ENR_CONTRAT<3>
						END ELSE
							GOTO 3102
						END
					END ELSE
					*Fin
						READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE=""
						W_CodeAide=ENR_CONTRAT<3>
					END
				END
			END ELSE
				IF W_ACTIVITE # "M" THEN
					* Nb : code ci dessous inutile en prestataire par aid !
					W_CleTemp = W_REQUETEEDIT<W_IndPlanning>[1,5]
					READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CleTemp ELSE ENR_CIVILAIDANT=""
*					ENR_CIVILAIDANT = ""
					W_CodeAidant=W_CleTemp
				END ELSE
					W_CLE = W_REQUETEEDIT<W_IndPlanning>[1,5]
					READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CLE[1,5] ELSE ENR_CIVILAIDANT=""
					W_CodeAidant=W_CLE[1,5]
				END
			END
			
			W_CodeCle=W_CodeAidant:W_CodeAide

			READ ENR_RESPONSABLE FROM F.RESPONSABLE,ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE=""
			READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEUR=""

			IF W_CODASSOC = "" AND W_MATRIC = "1" THEN
				* ne fait pas tout de suite l'dition de l'entete car pas de code assoc
				GOSUB 500
			
				GOSUB 600
			
				GOSUB 900
			END ELSE
				GOSUB 1000

				*RECUPERATION ET CONVERSION DES INFOS
				GOSUB 500
			
				GOSUB 600

				GOSUB 300

			END

	  	   END
		REPEAT

	END
	
REPEAT
IF W_CODASSOC = "" AND W_MATRIC = "1" THEN
	FOR I=1 TO 10
		PRINT 
	NEXT I
END
RETURN

3200 ****************************************************
*       VERIFIE SI JOURNEE DE SOLIDARITE OU PAS		*
*********************************************************

	BEGIN CASE
		CASE W_MOIS="JANVIER "
			W_NumMois="01"
		CASE W_MOIS="FEVRIER "
			W_NumMois="02"
		CASE W_MOIS="MARS "
			W_NumMois="03"
		CASE W_MOIS="AVRIL "
			W_NumMois="04"
		CASE W_MOIS="MAI "
			W_NumMois="05"
		CASE W_MOIS="JUIN " 
			W_NumMois="06"
		CASE W_MOIS="JUILLET "
			W_NumMois="07"
		CASE W_MOIS="AOUT "
			W_NumMois="08"
		CASE W_MOIS="SEPTEMBRE "
			W_NumMois="09"
		CASE W_MOIS="OCTOBRE "
			W_NumMois="10"
		CASE W_MOIS="NOVEMBRE "
			W_NumMois="11"
		CASE W_MOIS="DECEMBRE " 
			W_NumMois="12"
	END CASE

	W_NumJour=W_MASQUE<IBOUCLE>[8,2] 
	W_NumJour=ICONV(W_NumJour,"MCN") "R%2"
	W_JourClair=OCONV(W_NumJour:"/":W_NumMois:"/":W_ANNEE,"D4/")
  	W_Param=W_JourClair:"|":W_Entite
  	CALL DIMJF(RETURNVAL,W_Param,Ferie)

RETURN
*************************************************************
* Calcul du nombre d'heures par mois lors d'un accord global
*************************************************************
3300
		IF ENR_ORGPRISECHARGE<19>="3" THEN
			W_NbMois=0
			W_PerDebCalcul=OCONV(ENR_ACCORD<5>, "D4/")
			W_PerFinCalcul=OCONV(ENR_ACCORD<6>, "D4/")
			IF W_PerFinCalcul[7,4]=W_PerDebCalcul[7,4] THEN
				W_NbMois=W_PerFinCalcul[4,2]-W_PerDebCalcul[4,2]+1
			END ELSE
				W_IndAnnee=W_PerDebCalcul[7,4]-1
				LOOP
					W_IndAnnee=W_IndAnnee+1
				WHILE W_IndAnnee#W_PerFinCalcul[7,4] DO
					IF W_IndAnnee=W_PerDebCalcul[7,4] THEN
						W_NbMois=W_NbMois+((12-W_PerDebCalcul[4,2])+1)
					END ELSE
						IF W_IndAnnee=W_PerFinCalcul[7,4] THEN
							W_NbMois=W_NbMois+W_PerFinCalcul[4,2]
						END ELSE
							W_NbMois=W_NbMois+12
						END
					END
				REPEAT
			END
			W_HreCalculee=INT((W_HreCalculee/W_NbMois)+1/2)
		END
RETURN