*************************************************
*	EDITION DES FEUILLES DE PRESENCE	*
*                                               *
* 						*
* CELINE			FEVRIER 2001	*
*************************************************

************
* 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
OPEN "","HRESHISTOR" TO F.HRESHISTOR 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)
W_ACCORD=FIELD(ARGUMENTS,"|",10)
W_DIMANCHE=FIELD(ARGUMENTS,"|",11)

****************************
* Procdures               *
****************************
*   100   -->   TRAITEMENT PRESTATAIRE
*   300   -->   EDITION PRESTATAIRE
*   600   -->   CADRAGE ADRESSE
*   700   -->   PREPAPRATION CIVILAIDE PRESTATAIRE
*   900   -->   RECHERCHE ACCORD
*  1000   -->   INIT SI PAS D'ACCORD
*  1100   -->   CAISSE ACCORD 
*  1200   -->   EDITION DES JOURS MANDATAIRE
*  1205   -->   SAUVEGARDE JOURS EN TABLEAU

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

W_FormatPeriode=""

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

                        W_FormatPeriode=OCONV(W_DEBPER,"D4/")
                        W_FormatPeriode=W_FormatPeriode[7,4]:W_FormatPeriode[4,2]
                        W_FormatPeriode=W_FormatPeriode-2
                        IF W_FormatPeriode[5,2]="00" THEN
                           W_FormatPeriode=W_FormatPeriode[1,4]-1:"12"
                        END ELSE
                           IF W_FormatPeriode[5,2]="99" THEN
                              W_FormatPeriode=W_FormatPeriode[1,4]:"11"
                           END
                        END

			READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CODASSOC ELSE PRINT "ASSOCIATION"
			
			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
	READ ENR_HRESHISTOR FROM F.HRESHISTOR,W_CLE:W_CODASSOC:W_FormatPeriode ELSE ENR_HRESHISTOR = ""

        W_CountAidant=DCOUNT(ENR_HRESHISTOR<1>,CHAR(253))

        FOR IAidant=1 TO W_CountAidant

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

			PRINT
			PRINT " ":W_SIGLEASSOC:SPACE(16):W_CAISSE
			PRINT " ":W_ADRESSEASSOC1:SPACE(7):W_HEURE
			IF W_FIN # "" THEN
				PRINT " ":W_ADRESSEASSOC2:SPACE(16):W_FIN:SPACE(14):W_CODEAIDE
			END ELSE
				PRINT " ":W_ADRESSEASSOC2:SPACE(29):W_CODEAIDE
			END
			PRINT " ":W_ADRESSEASSOC3
			PRINT " ":W_TELASSOC:SPACE(20):W_PARTICIPATION
			PRINT
			PRINT " ":SPACE(63):W_MOIS
			PRINT 
			PRINT " ":SPACE(63):W_ANNEE
			PRINT
			PRINT " ":W_NOMAIDE:SPACE(2):W_NOMAIDANT:SPACE(8):W_SECTEUR
			PRINT " ":W_ADRESSEAIDE1
			PRINT " ":W_ADRESSEAIDE2:SPACE(11):W_CODEAIDANT:SPACE(14):W_RESPONSABLE
			PRINT " ":W_ADRESSEAIDE3

	                IF W_JOUR=1 THEN
		            FOR I=1 TO 4
		  	        PRINT
		            NEXT I
		            GOSUB 1200
		            FOR I=1 TO 8
			        PRINT 
		            NEXT I	
	                END ELSE
		            FOR I=1 TO 57
			        PRINT
		            NEXT I
	                END

*			FOR I=1 TO 57
*				PRINT
*			NEXT I
			
			EXIT
		END

		
	    NEXT IACTIV


        NEXT IAidant

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 850
	
	PRINT " ":W_SIGLEASSOC:SPACE(16)
	PRINT " ":W_ADRESSEASSOC1:SPACE(16)
	PRINT " ":W_ADRESSEASSOC2
	PRINT " ":W_ADRESSEASSOC3:SPACE(44):W_CODEAIDE
	PRINT " ":W_TELASSOC:SPACE(22)
	PRINT
	PRINT SPACE(61):W_MOIS
	PRINT
	PRINT SPACE(62):W_ANNEE
	PRINT " ":W_NOMAIDE:SPACE(2):W_NOMAIDANT:SPACE(8):W_SECTEUR
	PRINT " ":W_ADRESSEAIDE1
	PRINT " ":W_ADRESSEAIDE2
	PRINT " ":W_ADRESSEAIDE3
	PRINT " ":SPACE(26):SPACE(10):W_CODEAIDANT:SPACE(19):W_RESPONSABLE
	FOR I=1 TO 58
		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 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 INFO CIVILAIDANT PRESTATAIRE  *
* CONVERSION ET MISE EN FORME DU NECESSAIRE *
*********************************************
800

        W_Code=ENR_HRESHISTOR<1,IAidant>
	READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_Code ELSE STOP

	W_CODEAIDANT=W_Code[1,1]:"  ":W_Code[2,1]:"  ":W_Code[3,1]:"  ":W_Code[4,1]:"  ":W_Code[5,1]

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

RETURN
*********************************************
* PREPARATION CIVILAIDANT MANDATAIRE        *
* CONVERSION ET MISE EN FORME DU NECESSAIRE *
*********************************************
850
	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(ACCORD) *
* 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            *
**************************
1200

	FOR K=1 TO 4
		PRINT " ":W_TABJ<1>
		FOR L=1 TO 9
			PRINT
		NEXT L
	NEXT K


	W_NBJOUR=(W_FINPER-W_DEBPER)-28+1

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

	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>="DIMAN"
			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

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
