*************************************************
*	EDITION DES FEUILLES DE PRESENCE	*
*                                               *
* JEROME			     AVRIL 2000 *
*	CORRECTION BUG PRESTATAIRE   MAI   2000 *
*       MODIF PARTICIPATION          JUIN  2000 *
*       PATCH  CAEN                  NOVE  2000 *
* VANES                                         *
*       EDITION DE L'AIDANT          DEC   2000 *
*	MISE EN FORME 				*
*       EDITION DES JOURS                       *
*       EDITION A PARTIR DE                     *
*           DETAILPREST		     AVRIL 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 "","DETAILPREST" TO F.DETAILPREST ELSE STOP
OPEN "","PERIODESPAIE" TO F.PERIODESPAIE ELSE STOP

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

   PRINT "Veuillez saisir le secteur souhait (3N) : "
   INPUT W_Secteur

 * RECUPERE ARGUMENTS NECESSAIRES

   W_ACTIVITE="P"
   READ ENR_PERIODESPAIE FROM F.PERIODESPAIE,"1" ELSE PRINT "PERIODESPAIE"
   W_PERIODE=ENR_PERIODESPAIE<2>

   W_DEBPER = W_PERIODE
   W_FINPER = W_DEBPER + 1
   IF W_FINPER[5,2] = "13" THEN
      W_FINPER = W_FINPER[1,4]+1:"01"
   END
   W_DEBPER = ICONV("01/":W_DEBPER[5,2]:"/":W_DEBPER[1,4],"D4/")
   W_FINPER = ICONV("01/":W_FINPER[5,2]:"/":W_FINPER[1,4],"D4/") - 1

   W_JOUR=1
   W_CODASSOC="001"

   W_FormatPeriode=""

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

   W_REQUETE=""

   IF W_Secteur="" THEN
      W_REQUETE='SSELECT DETAILPREST AVEC PeriodeDetailPrest = "':W_FormatPeriode:'" PAR SecteurPrest PAR NomPrenomAidantDetailPrest'
   END ELSE
      W_REQUETE='SSELECT DETAILPREST AVEC SecteurPrest = "':W_Secteur:'" AND AVEC PeriodeDetailPrest = "':W_FormatPeriode:'" PAR SecteurPrest PAR NomPrenomAidantDetailPrest'
   END

   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_ANNEE=W_PERIODE[1,4]

			W_MOIS=W_PERIODE[5,2]

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

                        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.DETAILPREST TO W_REQUETEEDIT
				GOSUB 100
			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


***********************
* EDITION PRESTATAIRE *
***********************
300
	*OUVERTURE DES FICHIERS NECESSAIRE

	READ ENR_DETAILPREST FROM F.DETAILPREST,W_CLE ELSE STOP
	READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CLE[1,5] ELSE STOP

        W_CountAide=DCOUNT(ENR_DETAILPREST<1>,CHAR(253))

        W_SauveAide=""

        FOR IAide=1 TO W_CountAide
            
          IF W_SauveAide # ENR_DETAILPREST<1,IAide> THEN

            W_SauveAide = ENR_DETAILPREST<1,IAide>

	    READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,ENR_DETAILPREST<1,IAide> ELSE STOP
	    READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_DETAILPREST<1,IAide> 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 800
			GOSUB 900

			PRINT
			PRINT " ":SPACE(63):W_MOIS:" ":W_ANNEE
			PRINT 
			PRINT " ":SPACE(35):W_CAISSE:SPACE(14):W_SECTEUR
			PRINT " ":SPACE(35):W_HEURE
			PRINT " ":SPACE(63):W_RESPONSABLE
			PRINT " ":SPACE(35):W_FIN
*			PRINT " ":SPACE(35):W_FIN:SPACE(14):W_RESPONSABLE
			PRINT
			PRINT
			PRINT SPACE(17):W_CODEAIDE:SPACE(31):W_CODEAIDANT
 			PRINT
			PRINT " ":W_NOMAIDE:SPACE(15):W_NOMAIDANT
			PRINT " ":W_ADRESSEAIDE1
			PRINT " ":W_ADRESSEAIDE2
			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

          END
        NEXT IAide

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

        W_Temp=ENR_DETAILPREST<1,IAide>
	W_CODEAIDE=W_Temp[1,1]:"  ":W_Temp[2,1]:"  ":W_Temp[3,1]:"  ":W_Temp[4,1]:"  ":W_Temp[5,1]

	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=W_CLE[1,5]
	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 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_Temp:"]":'" 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
