*************************************************
*	EDITION DES FEUILLES DE PRESENCE	*
*                                               *
* JEROME			     AVRIL 2000 *
*	CORRECTION BUG PRESTATAIRE   MAI   2000 *
*       MODIF PARTICIPATION          JUIN  2000 *
*       PATCH ACCENT                 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

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

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

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

			IF W_ACTIVITE="P" THEN
				SELECT F.ACTIVITESAIDE TO W_REQUETEEDIT
				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]
				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 900
			PRINT
			PRINT SPACE(39):W_CAISSE
			PRINT SPACE(39):W_HEURE
			PRINT SPACE(39):W_FIN:SPACE(17):W_CLE
			PRINT
			PRINT SPACE(45):W_PARTICIPATION
			PRINT
			PRINT SPACE(63):W_MOIS
			PRINT
			PRINT SPACE(63):W_ANNEE
			PRINT " ":W_NOMAIDE
			PRINT " ":W_ADRESSEAIDE1:SPACE(37):W_SECTEUR
			PRINT " ":W_ADRESSEAIDE2
			PRINT " ":W_ADRESSEAIDE3:SPACE(40):W_RESPONSABLE

			FOR I=1 TO 58
				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
	
	*RECUPERATION ET CONVERSION DES INFOS
	GOSUB 700
	GOSUB 800
	
	PRINT SPACE(64):W_PERIODE
	PRINT
	PRINT
	PRINT SPACE(34):W_CODEAIDE:SPACE(20):W_CODEAIDANT
	PRINT
	PRINT SPACE(30):W_NOMAIDE:SPACE(5):W_NOMAIDANT
	PRINT SPACE(31):W_PRENOMAIDE:SPACE(7):W_PRENOMAIDANT
	PRINT 
	PRINT SPACE(31):W_ADRESSEAIDE1:SPACE(7):W_ADRESSEAIDANT1
	PRINT SPACE(26):W_ADRESSEAIDE2:SPACE(1):W_ADRESSEAIDANT2
	PRINT SPACE(26):W_ADRESSEAIDE3:SPACE(1):W_ADRESSEAIDANT3
	
	IF W_JOUR=1 THEN
		FOR I=1 TO 6
			PRINT
		NEXT I
		GOSUB 1200
		FOR I=1 TO 7
			PRINT
		NEXT I	
	END ELSE

		FOR I=1 TO 61
			PRINT
		NEXT I

	END

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     *
* CONVERSION ET MISE EN FORME DU NECESSAIRE *
*********************************************
700
	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]
	
	TEXTE=ENR_CIVILAIDE<2>[1,22]
	TEXTE=TEXTE "L#22"
	W_NOMAIDE=TEXTE

	TEXTE=ENR_CIVILAIDE<3>[1,21]
	TEXTE=TEXTE "L#21"
	W_PRENOMAIDE=TEXTE

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

	IF ENR_CIVILAIDE<9> # "" THEN
		TEXTE=ENR_CIVILAIDE<9>[1,26]
		TEXTE=TEXTE "L#26"
		W_ADRESSEAIDE2=TEXTE
		TEXTE=ENR_CIVILAIDE<10>:" ":ENR_CIVILAIDE<11>[1,26]
		TEXTE=TEXTE "L#26"
		W_ADRESSEAIDE3=TEXTE
	END ELSE
		TEXTE=ENR_CIVILAIDE<10>:" ":ENR_CIVILAIDE<11>[1,26]
		TEXTE=TEXTE "L#26"
		W_ADRESSEAIDE2=TEXTE
		TEXTE=" "
		TEXTE=TEXTE "L#26"
		W_ADRESSEAIDE3=TEXTE
	END
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]
	
	TEXTE=ENR_CIVILAIDANT<2>[1,21]
	TEXTE=TEXTE "L#21"
	W_NOMAIDANT=TEXTE

	TEXTE=ENR_CIVILAIDANT<3>[1,19]
	TEXTE=TEXTE "L#19"
	W_PRENOMAIDANT=TEXTE

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

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


*********************************************
* PREPARATION INFO PRESTATAIRE              *
* CONVERSION ET MISE EN FORME DU NECESSAIRE *
*********************************************
900
	TEXTE=ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>[1,24]
	TEXTE=TEXTE "L#24"
	W_NOMAIDE=TEXTE

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

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

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

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

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