**************************************************
*	  EDITION DES FEUILLES DE PRESENCE		 *
*           VERSION BEAUVAIS - prestataire       *
* Adapt  leurs feuilles de prsence jaunes	 *
*                                                *
*   	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 "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE STOP
OPEN "","ABSENCESAIDANT" TO F.ABSENCESAIDANT ELSE STOP
OPEN "","ACCORD" TO F.ACCORD ELSE STOP
OPEN "","RESPONSABLE" TO F.RESPONSABLE ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "","TABLES" TO F.TABLES ELSE STOP
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "","FEDEASSOC" TO F.FEDEASSOC ELSE STOP
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE STOP
OPEN "","PAQUES" TO F.PAQUES ELSE STOP
OPEN "","DETAILPREST" TO F.DETAILPREST 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)
W_TRI=FIELD(ARGUMENTS,"|",8)
W_CODASSOC=FIELD(ARGUMENTS,"|",9)
W_ACCORD=FIELD(ARGUMENTS,"|",10)
W_DIMANCHE=FIELD(ARGUMENTS,"|",11)

**************
* 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 
*   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

*********
* Debut *
*********
ENR_TEMPO = ""
*READ ENR_TABLES FROM F.TABLES,"IMPRIMANTE" THEN

   	* INITIALISATION IMPRIMANTE
	*IF ENR_TABLES<1>#"" THEN

   		*EXECUTE ENR_TABLES<1>
   		

		* EXECUTION REQUETE RECU
		EXECUTE W_REQUETE
		EXECUTE 'SAUVE-LISTE W_REQUETEEDIT'
		EXECUTE "LISTE W_REQUETEEDIT" RETURNING MSGCODE	
	
		PRINTER ON

		IF MSGCODE<1>#209 THEN

			READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CODASSOC ELSE PRINT "ASSOCIATION"
			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)

			IF W_JOUR=1 OR W_DIMANCHE=1 THEN
				GOSUB 905
			END

			IF W_ACTIVITE="P" 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
			DELETE F.TEMPO, "EDITFEUIPRES"
		END ELSE
			ENR_TEMPO<1>="AUCUN"
			WRITE ENR_TEMPO ON F.TEMPO,"EDITFEUIPRES"
		END

   		*DESINIT IMPRIMANTE
  		PRINTER OFF
  		PRINTER CLOSE

*	END ELSE
*	PRINT "Imprimante"
*		ENR_TEMPO<1>="IMPRIMANTE"
*		WRITE ENR_TEMPO ON F.TEMPO,"EDITFEUIPRES"
*	END

*END ELSE
*	PRINT "Imprimante"
*	ENR_TEMPO<1>="IMPRIMANTE"
*	WRITE ENR_TEMPO ON F.TEMPO,"EDITFEUIPRES"

*END

STOP


**************************
* TRAITEMENT PRESTATAIRE *
**************************
100
	W_JourMois = W_FINPER - W_DEBPER
	W_FINI="FAUX"
	W_CleAnc = ""
	LOOP
		READNEXT W_CLE FROM W_REQUETEEDIT ELSE W_FINI="VRAI"
	WHILE W_FINI="FAUX" DO
		IF W_ACTIVITE = "M" THEN
   			CLE = W_CLE[1,5]
			EXECUTE 'SSELECT ABSENCESAIDANT AVEC CodeAidant = "':CLE:'" AND AVEC DebAbsAidant <= "':W_FINPER:'" AND AVEC 2 => "':W_DEBPER:'" PAR DebAbsAidant'
			IF CLE # W_CleAnc THEN
				W_Fin = "FAUX"
				W_Jour = 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
					DATDEB = W_CleAbs[8,5]
					DATFIN = ENR_ABSENCESAIDANT<2>
					IF DATDEB <= W_DEBPER THEN
						IF DATFIN => W_FINPER THEN
							W_Jour = W_Jour + 99
						END ELSE
							IF DATDEB = W_DEBPER THEN
								W_Jour = W_Jour + (DATFIN - DATDEB)
								IF (DATFIN - DATDEB) = 0 THEN W_Jour = W_Jour + 1 
							END ELSE
								W_Jour = W_Jour + (DATFIN - W_DEBPER)
								IF (DATFIN - W_DEBPER) = 0 THEN W_Jour = W_Jour + 1 
							END
						END
					END ELSE
						IF DATFIN => W_FINPER THEN
							W_Jour = W_Jour + (W_FINPER - DATDEB)
							IF (W_FINPER - DATDEB) = 0 THEN W_Jour = W_Jour + 1 
						END ELSE
							W_Jour = W_Jour + (DATFIN - DATDEB)
							IF (DATFIN - DATDEB) = 0 THEN W_Jour = W_Jour + 1 
						END
					END
					END ELSE
					END
				REPEAT
			END
			IF W_JourMois > W_Jour THEN
				GOSUB 200
			END
		END ELSE
			GOSUB 200
		END
	REPEAT
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=""

	*OUVERTURE DES FICHIERS NECESSAIRE
	IF W_ACTIVITE="P" 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> # ""
				IF ENR_DETAILPREST<1,W_IndMVDetailPrest> # W_CLE THEN
					W_CLE = ENR_DETAILPREST<1,W_IndMVDetailPrest>
					GOSUB 2000
				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 STOP
		READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE STOP
		READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CLE[1,5] ELSE STOP
		READ ENR_RESPONSABLE FROM F.RESPONSABLE,ENR_CIVILAIDE<39> ELSE STOP
		READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE STOP

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

	END

RETURN


***********
* EDITION *
***********
300
	PRINT " ":SPACE(LEN(W_SIGLEASSOC)):SPACE(38)
	PRINT " ":SPACE(LEN(W_ADRESSEASSOC1))
	PRINT " ":SPACE(LEN(W_ADRESSEASSOC2)):SPACE(3):W_CAISSE
	PRINT " ":SPACE(LEN(W_ADRESSEASSOC3)):SPACE(3):W_HEURE
	PRINT " ":SPACE(LEN(W_TELASSOC)):SPACE(3):W_FIN:SPACE(11)
	PRINT " ":SPACE(LEN(W_FAXASSOC)):SPACE(3):W_PARTICIPATION
	PRINT

	IF W_ACTIVITE="P" AND W_EXO#"1" THEN
		PRINT "        BENEFICIAIRE NON EXONERE":SPACE(29):TRIM(W_MOIS:W_ANNEE)
	END ELSE
		PRINT SPACE(62):TRIM(W_MOIS:W_ANNEE)
	END
	PRINT " "
	PRINT SPACE(13):W_CODEAIDE:SPACE(27-14):W_CODEAIDANT
	PRINT " ":W_NOMAIDE:SPACE(5):W_NOMAIDANT
	PRINT " ":W_ADRESSEAIDE1:SPACE(5):W_ADRESSEAIDANT1:SPACE(63 - LEN(W_ADRESSEAIDE1:SPACE(5):W_ADRESSEAIDANT1)):TRIM(W_SECTEUR)
	PRINT " ":W_ADRESSEAIDE2:SPACE(5):W_ADRESSEAIDANT2
	PRINT " ":W_ADRESSEAIDE3:SPACE(5):W_ADRESSEAIDANT3:SPACE(63 - LEN(W_ADRESSEAIDE1:SPACE(5):W_ADRESSEAIDANT1)):TRIM(W_RESPONSABLE)

	IF W_JOUR=1 THEN
		FOR I=1 TO 3
			PRINT
		NEXT I
		GOSUB 900
		FOR I=1 TO 10
			PRINT 
		NEXT I	
	END ELSE
		FOR I=1 TO 58
			PRINT
		NEXT I
	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
	IF W_ACTIVITE="P" THEN
		W_CODEAIDE=W_CLE[1,1]:" ":W_CLE[2,1]:" ":W_CLE[3,1]:" ":W_CLE[4,1]:" ":W_CLE[5,1]
	END ELSE
		W_CODEAIDE=ENR_CONTRAT<3>[1,1]:" ":ENR_CONTRAT<3>[2,1]:" ":ENR_CONTRAT<3>[3,1]:" ":ENR_CONTRAT<3>[4,1]:" ":ENR_CONTRAT<3>[5,1]
	END	

	W_NOMAIDE=(ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>)[1,36] "L#22"

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

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

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

	IF W_ACTIVITE # "M" AND W_ACCORD=1 THEN

		*MOULINAGE POUR ACCORD A VERIFIER SI BON ACCORD ET BONNE VALEUR
		EXECUTE 'SSELECT ACCORD AVEC @ID = "':W_CLE:"]":'" AND AVEC 18 # "O" AND AVEC TypeOrg = "':"P":'" AND AVEC 5 <= "':W_FINPER:'" AND AVEC 6 >= "':W_DEBPER:'" OR = "':"":'" PAR @ID'
		EXECUTE 'SAUVE-LISTE W_REQUETEACC'
		EXECUTE "LISTE W_REQUETEACC" RETURNING MSGCODE	
	
		IF MSGCODE<1>#209 THEN
			GOSUB 800
		END ELSE
			GOSUB 700
		END

	END ELSE
		GOSUB 700
	END
		
RETURN


***************************
* PREPARATION CIVILAIDANT *
***************************
600
	IF W_ACTIVITE # "M" AND W_REQUETE[9,11] # "DETAILPREST" 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[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
	
		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)
RETURN

*************************
* CAISSE PREST NON VIDE *
*************************
800
	SELECT F.ACCORD TO W_REQUETEACC
	READNEXT W_CLEACC FROM W_REQUETEACC ELSE STOP
	READ ENR_ACCORD FROM F.ACCORD,W_CLEACC ELSE STOP
	READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE STOP

	W_CAISSE=ENR_ORGPRISECHARGE<1>[1,24] "L#24"
	W_HEURE="NB HEURES   : ":ENR_ACCORD<9> "R26(#10)"
	W_FIN="FIN ACCORD  : ":OCONV(ENR_ACCORD<6>,"D4/")[1,10] "R#10"

	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	

	W_PARTICIPATION="PARTICIP.   : ":ENR_ACCORD<13,J> "R26(#10)"

RETURN

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

	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

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

RETURN


************************
* SAUVEGARDE DES JOURS *
************************
905
	W_TABJ=""

	* 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

	* INITIALISATION DU TABLEAU D'EDITION
	W_MASQUE=""

	* REMPLISSAGE DES JOURS NORMAUX
	IF W_JOUR=1 THEN
		FOR IBOUCLE=1 TO 41 STEP 10
			W_MASQUE<IBOUCLE>=W_TABJ<1>
		NEXT IBOUCLE
	END

	* REMPLISSAGE DIMANCHE ET JOURS FERIES
	IF W_DIMANCHE=1 THEN
		* DIMANCHE
		GOSUB 1100
		* JOUR FERIES
		GOSUB 1200
	END

RETURN


**************************
* PREPARATION INFO ASSOC *
**************************
1000
	IF W_TRI="SECTEUR" AND 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,1>="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,1>="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,1>="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"
	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"
	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"
	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

	FOR IBOUCLE=W_VALEURCASE TO W_VALEURCASE+40 STEP 10
		W_MASQUE<IBOUCLE>=W_TABJ<W_POSDIM>
	NEXT IBOUCLE

RETURN

****************************
* GESTION DES JOURS FERIES *
****************************
1200
	BEGIN CASE
		CASE W_MOIS="JANVIER "
			W_MASQUE<1>="J.F."
		CASE W_MOIS="JUILLET "
			W_MASQUE<20>="J.F."
		CASE W_MOIS="AOUT "
			W_MASQUE<21>="J.F."
		CASE W_MOIS="NOVEMBRE "
			W_MASQUE<1>="J.F."
			W_MASQUE<16>="J.F."
		CASE W_MOIS="DECEMBRE "
			W_MASQUE<35>="J.F."
		CASE W_MOIS="MARS " OR W_MOIS="AVRIL " OR W_MOIS="MAI " OR W_MOIS="JUIN "
			GOSUB 1205

	END CASE

RETURN

*********************************
* RECUPERATION DES JF VARIABLES *
*********************************
1205
	IF W_MOIS="MAI " THEN
		W_MASQUE<1>="J.F."
		W_MASQUE<11>="J.F."
	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_PENTECOTE=W_DIMPAQUES+39
		W_ASCENSION=W_DIMPAQUES+50
		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
			W_RESTE=MOD(W_PAQUES[1,2],7)
			W_ENTIER=INT(W_PAQUES[1,2]/7)
			GOSUB 1210
		END
		IF W_VALMOIS=W_PENTECOTE[4,2] THEN
			W_RESTE=MOD(W_PENTECOTE[1,2],7)
			W_ENTIER=INT(W_PENTECOTE[1,2]/7)
			GOSUB 1210
		END
		IF W_VALMOIS=W_ASCENSION[4,2] THEN
			W_RESTE=MOD(W_ASCENSION[1,2],7)
			W_ENTIER=INT(W_ASCENSION[1,2]/7)
			GOSUB 1210
		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 STOP
	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

	END

NEXT IACTIV
RETURN
