*************************************************
*	EDITION DES FEUILLES DE PRESENCE	*
*                                               *
* JEROME			     AVRIL 2000 *
*	CORRECTION BUG PRESTATAIRE   MAI   2000 *
*       MODIF PARTICIPATION          JUIN  2000 *
*       MODIF MOIS                   NOVE  2000 *
*       PATCH COUTANCES ENTITE       NOVE  2000 *
*       MODIF PREST (UN PEU)         NOVE  2000 *
*       MODIF MANDAT (BEAUCOUP)      NOVE  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 "","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

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

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)


****************************
* Procdures               *
****************************
*   100   -->   TRAITEMENT PRESTATAIRE
*   200   -->   TRAITEMENT MANDATAIRE
*   300   -->   EDITION PRESTATAIRE
*   400   -->   EDITION MANDATAIRE
*   600   -->   CADRAGE ADRESSE
*   700   -->   PREPARATION CIVILAIDE MANDATAIRE
*   800   -->   PREPARATION CIVILAIDANT MANDATAIRE
*   900   -->   PREPAPRATION CIVILAIDE PRESTATAIRE
*  1000   -->   INIT SI PAS D'ACCORD
*  1100   -->   CAISSE ACCORD 
*  1200   -->   EDITION DES JOURS MANDATAIRE
*  1205   -->   SAUVEGARDE JOURS EN TABLEAU
*  1300   -->   RECUPERATION INFO ASSOCIATION

*********
* Dbut *
*********

READ ENR_TABLES FROM F.TABLES,"IMPRIMANTE" THEN

   	* INITIALISATION IMPRIMANTE
	IF ENR_TABLES<1>#"" THEN
   		EXECUTE ENR_TABLES<1>
   		PRINTER ON

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

			IF W_JOUR=1 THEN
				GOSUB 1205
			END

			*TRAITEMENT CAR VALEURS TROUVEES

			W_LONG=LEN(W_PERIODE)
			W_ANNEE=W_PERIODE[1,W_LONG-4]
			W_ANNEE=CONVERT("","E",W_ANNEE)
			W_MOIS=W_PERIODE[W_LONG-3,4]
			READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CODASSOC ELSE PRINT "ASSOCIATION"
			GOSUB 1300
			
			IF W_ACTIVITE="P" THEN
				SELECT F.ACTIVITESAIDE TO W_REQUETEEDIT
				GOSUB 100
			END ELSE
				SELECT F.CONTRAT TO W_REQUETEEDIT
				GOSUB 200
			END

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

   		*DESINIT IMPRIMANTE
   		PRINTER OFF
   		PRINTER CLOSE

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

END ELSE

	ENR_TEMPO<1>="IMPRIMANTE"
	WRITE ENR_TEMPO ON F.TEMPO,"EDITFEUIPRES"

END

STOP


**************************
* TRAITEMENT PRESTATAIRE *
**************************
100
	W_FINI="FAUX"
	LOOP
		READNEXT W_CLE FROM W_REQUETEEDIT ELSE W_FINI="VRAI"
	WHILE W_FINI="FAUX" DO
		GOSUB 300
	REPEAT
RETURN


*************************
* TRAITEMENT MANDATAIRE *
*************************
200
	W_FINI="FAUX"
	LOOP
		READNEXT W_CLE FROM W_REQUETEEDIT ELSE W_FINI="VRAI"
	WHILE W_FINI="FAUX" DO
		GOSUB 400
	REPEAT
RETURN


***********************
* EDITION PRESTATAIRE *
***********************
300
	*OUVERTURE DES FICHIERS NECESSAIRE
	READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_CLE ELSE STOP
	READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CLE 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

	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 700
			GOSUB 900

			PRINT
			PRINT " ":W_SIGLEASSOC:SPACE(16):W_CAISSE
			PRINT " ":W_ADRESSEASSOC1:SPACE(16):W_HEURE
			PRINT " ":W_ADRESSEASSOC2:SPACE(16):W_FIN:SPACE(17):W_CODEAIDE
			PRINT " ":W_ADRESSEASSOC3
			PRINT " ":W_TELASSOC:SPACE(22):W_PARTICIPATION
			PRINT
			PRINT SPACE(63):W_MOIS
			PRINT
			PRINT SPACE(63):W_ANNEE
			PRINT
			PRINT " ":W_NOMAIDE:SPACE(37):W_SECTEUR
			PRINT " ":W_ADRESSEAIDE1
			PRINT " ":W_ADRESSEAIDE2:SPACE(40):W_RESPONSABLE
			PRINT " ":W_ADRESSEAIDE3

			FOR I=1 TO 57
				PRINT
			NEXT I
			
			EXIT
		END

	NEXT IACTIV

RETURN


**********************
* EDITION MANDATAIRE *
**********************
400
	*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
	
	*RECUPERATION ET CONVERSION DES INFOS
	GOSUB 700
	GOSUB 800
	
	PRINT
	PRINT " ":W_SIGLEASSOC:SPACE(16)
	PRINT " ":W_ADRESSEASSOC1:SPACE(16)
	PRINT " ":W_ADRESSEASSOC2:SPACE(47):W_CODEAIDE
	PRINT " ":W_ADRESSEASSOC3
	PRINT " ":W_TELASSOC:SPACE(22)
	PRINT
	PRINT SPACE(63):W_MOIS
	PRINT
	PRINT SPACE(63):W_ANNEE
	PRINT
	PRINT " ":W_NOMAIDE:SPACE(2):W_NOMAIDANT:SPACE(9):W_SECTEUR
	PRINT " ":W_ADRESSEAIDE1
	PRINT " ":W_ADRESSEAIDE2:SPACE(15):W_CODEAIDANT:SPACE(17):W_RESPONSABLE
	PRINT " ":W_ADRESSEAIDE3

	FOR I=1 TO 57
		PRINT
	NEXT I

RETURN


*******************
* CADRAGE ADRESSE *
* idem VB         *
*******************
600
	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 MANDATAIRE + PRESTATAIRE *
* CONVERSION ET MISE EN FORME DU NECESSAIRE           *
*******************************************************
700

	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,26] "L#26"

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

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

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

	W_RESPONSABLE=ENR_RESPONSABLE<1>[1,14] "L#14"

RETURN


*********************************************
* PREPARATION CIVILAIDANT MANDATAIRE        *
* CONVERSION ET MISE EN FORME DU NECESSAIRE *
*********************************************
800
	W_CODEAIDANT=W_CLE[1,1]:" ":W_CLE[2,1]:" ":W_CLE[3,1]:" ":W_CLE[4,1]:" ":W_CLE[5,1]
	W_NOMAIDANT=(ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>)[1,26] "L#26"

RETURN


*********************************************
* PREPARATION INFO PRESTATAIRE SUPP(ACCROD) *
* CONVERSION ET MISE EN FORME DU NECESSAIRE *
*********************************************
900

	*MOULINAGE POUR ACCORD A VERIFIER SI BON ACCORD ET BONNE VALEUR
	EXECUTE 'SSELECT ACCORD AVEC 18 # "O" AND AVEC @ID = "':W_CLE:"]":'" 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 1100
	END ELSE
		GOSUB 1000
	END

RETURN


*********************
* CAISSE PREST VIDE *
*********************
1000
	W_CAISSE="              "
	W_HEURE="              "
	W_FIN="              "
	W_PARTICIPATION="        "
RETURN

*************************
* CAISSE PREST NON VIDE *
*************************
1100
	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

	TEXTE=ENR_ORGPRISECHARGE<1>[1,14]
	TEXTE=TEXTE "L#14"
	W_CAISSE=TEXTE

	TEXTE=ENR_ACCORD<9> "R26(#14)"
	W_HEURE=TEXTE

	TEXTE=OCONV(ENR_ACCORD<6>,"D4/")[1,14]
	TEXTE=TEXTE "L#14"
	W_FIN=TEXTE

	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	

	TEXTE=ENR_ACCORD<13,J> "R26(#8)"
	W_PARTICIPATION=TEXTE
RETURN

**************************
* MASQUE JOUR MANDATAIRE *
**************************
1200
	FOR K=1 TO 4
		PRINT " ":W_TABJ<1>
		PRINT
		PRINT " ":W_TABJ<2>
		PRINT " ":W_TABJ<3>
		PRINT
		PRINT " ":W_TABJ<4>
		PRINT " ":W_TABJ<5>
		PRINT
		PRINT " ":W_TABJ<6>
		PRINT " ":W_TABJ<7>
		PRINT
	NEXT K

	W_NBJOUR=(W_FINPER-W_DEBPER)-28+1

	BEGIN CASE
		CASE W_NBJOUR=0
			PRINT 
			PRINT
			PRINT
			PRINT
		CASE W_NBJOUR=1
			PRINT " ":W_TABJ<1>
			PRINT
			PRINT
			PRINT
		CASE W_NBJOUR=2
			PRINT " ":W_TABJ<1>
			PRINT
			PRINT " ":W_TABJ<2>
			PRINT
		CASE W_NBJOUR=3
			PRINT " ":W_TABJ<1>
			PRINT
			PRINT " ":W_TABJ<2>
			PRINT " ":W_TABJ<3>
	END CASE



RETURN


************************
* SAUVEGARDE DES JOURS *
************************
1205
	W_TABJ=""
	FOR K=0 TO 6
		RESTE=MOD(W_DEBPER+K,7)
		BEGIN CASE
			CASE RESTE=0
				W_TABJ<K+1>="DIMANCHE"
			CASE RESTE=1
				W_TABJ<K+1>="LUNDI"
			CASE RESTE=2
				W_TABJ<K+1>="MARDI"
			CASE RESTE=3
				W_TABJ<K+1>="MERCREDI"
			CASE RESTE=4
				W_TABJ<K+1>="JEUDI"
			CASE RESTE=5
				W_TABJ<K+1>="VENDREDI"
			CASE RESTE=6
				W_TABJ<K+1>="SAMEDI"
		END CASE
	NEXT K

RETURN

********************
* INFO ASSOCIATION *
********************
1300

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

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

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

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

RETURN
