*********************************************************
* ETAT DES PROVISIONS DE CONGES PARTICULIERS-EMPLOYEURS *
*                                                       *
* JUIN 2001                             STEPHANE HERVET *
*********************************************************

* RECAPITULATIF DES GOSUBS
* 10  -> TRAITEMENT PAR EMPLOYEURS
* 20  -> TRAITEMENT PAR SALARIES
* 999 -> INITIALISATION DES VARIABLES



* OUVERTURE DES FICHIERS
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","PERIODESPAIE" TO F.PERIODESPAIE ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP



* RECUPERATION DES PARAMETRES
PROCREAD ARGUMENTS ELSE STOP

W_ENTITE=FIELD(ARGUMENTS," ",2)
W_SECTEUR=FIELD(ARGUMENTS," ",3)
W_TRI=FIELD(ARGUMENTS," ",4)
W_PARSECTEUR=FIELD(ARGUMENTS," ",5)



* LECTURE PERIODESPAIE
READ ENR_PERIODESPAIE FROM F.PERIODESPAIE,"1" ELSE ENR_PERIODESPAIE=""
W_DATEFIN="01/":ENR_PERIODESPAIE<1>[5,2]:"/":ENR_PERIODESPAIE<1>[1,4]
W_DATEFIN=ICONV(W_DATEFIN,"D4/")



* PREPARATION DE LA SELECTION
W_REQ='SSELECT CONTRAT AVEC 2 = "':W_ENTITE:'" AND AVEC TypeActivite = "M" AND AVEC 65 <> "O" AND AVEC 94 = "1"'
W_REQ=W_REQ:' AND AVEC 8 = "" OR >= "':W_DATEFIN:'" AND AVEC 85 <> "0" AND <> ""'

* SI SECTEUR DE SELECTIONNE
IF W_SECTEUR<>"" THEN 
    IF W_TRI=1 THEN
	W_REQ=W_REQ:' AND AVEC CodSecteurContratAide = "':W_SECTEUR:'"'
    END ELSE
	W_REQ=W_REQ:' AND AVEC CodSecteurContrat = "':W_SECTEUR:'"'
    END
END

W_REQ=W_REQ:' OR AVEC 2 = "':W_ENTITE:'" AND AVEC TypeActivite = "M" AND AVEC 65 <> "O" AND AVEC 94 = "1"'
W_REQ=W_REQ:' AND AVEC 8 = "" OR >= "':W_DATEFIN:'" AND AVEC 86 <> "0" AND <> ""'

* SI SECTEUR DE SELECTIONNE
IF W_SECTEUR<>"" THEN 
    IF W_TRI=1 THEN
	W_REQ=W_REQ:' AND AVEC CodSecteurContratAide = "':W_SECTEUR:'"'
    END ELSE
	W_REQ=W_REQ:' AND AVEC CodSecteurContrat = "':W_SECTEUR:'"'
    END
END

* TEST ORDRE DE TRI + ECLATEMENT PAR SECTEUR
IF W_TRI=1 THEN
    IF W_PARSECTEUR=1 THEN
	W_REQ=W_REQ:' PAR LibSecteurEmployeur'
    END
    W_REQ=W_REQ:' PAR NomAideContrat PAR PrenomAideContrat PAR 3 PAR NomAidantContrat'
END ELSE
    IF W_PARSECTEUR=1 THEN
	W_REQ=W_REQ:' PAR LibSecteurContrat'
    END
    W_REQ=W_REQ:' PAR NomAidantContrat PAR PrenomAidantContrat PAR 0 PAR NomAideContrat'
END

EXECUTE W_REQ



* TRAITEMENT DES INFOS DE LA REQUETE
GOSUB 999
W_FIN=0
LOOP
    READNEXT CLE ELSE W_FIN=1
    UNTIL W_FIN=1 DO

    * LECTURE DES FICHIERS
    READ ENR_CONTRAT FROM F.CONTRAT,CLE ELSE ENR_CONTRAT=""
    READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,CLE[1,5] ELSE ENR_CIVILAIDANT=""
    READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE=""

    GOSUB 5

    IF W_TRI=1 THEN
	GOSUB 10
    END ELSE
	GOSUB 20
    END

REPEAT

IF W_TOTALACQ<>W_TOTALACQG AND W_TOTALCOURS<>W_TOTALCOURSG THEN
    W_TOTALACQ=W_TOTALACQ "R26(#93)"
    W_TOTALCOURS=W_TOTALCOURS "R26(#15)"
    ENR_TEMPO<I>="TOTAL":W_TOTALACQ:" ":W_TOTALCOURS
    I=I+1
END

W_TOTALACQG=W_TOTALACQG "R26(#93)"
W_TOTALCOURSG=W_TOTALCOURSG "R26(#15)"

ENR_TEMPO<I>="TOTAL":W_TOTALACQG:" ":W_TOTALCOURSG

WRITE ENR_TEMPO ON F.TEMPO,"PROVCONGES"

STOP

*********************************************************
* MISE EN FORME DES VALEURS
5   *

    W_CODEAIDE=ENR_CONTRAT<3>
    W_CODEAIDANT=CLE[1,5]

    W_NOMAIDE=ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
    W_NOMAIDANT=ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>

    IF W_TRI=1 THEN
         W_NOMAIDE=W_NOMAIDE[1,30] "L#31"
	 W_NOMAIDANT=W_NOMAIDANT[1,35] "L#35"
    END ELSE
         W_NOMAIDE=W_NOMAIDE[1,35] "L#35"
	 W_NOMAIDANT=W_NOMAIDANT[1,30] "L#31"
    END

    W_PROVACQ=ENR_CONTRAT<85> "R26(#15)"
    W_PROVCOURS=ENR_CONTRAT<86> "R26(#15)"

    W_TOTALACQ=W_TOTALACQ+ENR_CONTRAT<85>
    W_TOTALCOURS=W_TOTALCOURS+ENR_CONTRAT<86>
    W_TOTALACQG=W_TOTALACQG+ENR_CONTRAT<85>
    W_TOTALCOURSG=W_TOTALCOURSG+ENR_CONTRAT<86>

RETURN

*********************************************************
* TRAITEMENT PAR EMPLOYEURS
10  *

    IF W_PARSECTEUR=1 THEN
	 READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEUR=""
  	 
	 * SI RUPTURE SECTEUR
	 IF W_CODESECTEUR<>ENR_CIVILAIDE<40>[1,3] THEN
	      IF W_CODESECTEUR<>"" THEN
	           W_TOTALACQ=W_TOTALACQ "R26(#93)"
  	           W_TOTALCOURS=W_TOTALCOURS "R26(#15)"

	           ENR_TEMPO<I>="TOTAL":W_TOTALACQ:" ":W_TOTALCOURS
		   I=I+1
	      END

	      W_CODESECTEUR=ENR_CIVILAIDE<40>[1,3]
	      W_LIBSECTEUR=ENR_SECTEUR<1>
			       
	      ENR_TEMPO<I>="***":W_CODESECTEUR:" ":W_LIBSECTEUR
	      I=I+1

	      W_TOTALACQ=0
	      W_TOTALCOURS=0
	 END
    END
		
    * ECRITURE NORMALE AIDE -> AIDANT -> PROV ACQUISE -> PROV COURS
    ENR_TEMPO<I>=W_CODEAIDE:"  ":W_NOMAIDE:"  ":W_CODEAIDANT:"  ":W_NOMAIDANT:" ":W_PROVACQ:" ":W_PROVCOURS
    I=I+1

RETURN

*********************************************************
* TRAITEMENT PAR SALARIES
20  *

    IF W_PARSECTEUR=1 THEN
	 READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR=""
  	 
	 * SI RUPTURE SECTEUR
	 IF W_CODESECTEUR<>ENR_CIVILAIDANT<31> THEN
	      IF W_CODESECTEUR<>"" THEN
	           W_TOTALACQ=W_TOTALACQ "R26(#93)"
  	           W_TOTALCOURS=W_TOTALCOURS "R26(#15)"

	           ENR_TEMPO<I>="TOTAL":W_TOTALACQ:" ":W_TOTALCOURS
		   I=I+1
	      END

	      W_CODESECTEUR=ENR_CIVILAIDANT<31>
	      W_LIBSECTEUR=ENR_SECTEUR<1>
			       
	      ENR_TEMPO<I>="***":W_CODESECTEUR:" ":W_LIBSECTEUR
	      I=I+1

	      W_TOTALACQ=0
	      W_TOTALCOURS=0
	 END
    END
		
    * ECRITURE NORMALE AIDANT -> AIDE -> PROV ACQUISE -> PROV COURS
    ENR_TEMPO<I>=W_CODEAIDANT:"  ":W_NOMAIDANT:"  ":W_CODEAIDE:"  ":W_NOMAIDE:" ":W_PROVACQ:" ":W_PROVCOURS
    I=I+1
RETURN

*********************************************************
* INITIALISATION DES VARIABLES
999 *

    I=1

    ENR_TEMPO=""

    W_CODESECTEUR=""
    W_LIBSECTEUR=""

    W_TOTALACQ=0
    W_TOTALCOURS=0
    W_TOTALACQG=0
    W_TOTALCOURSG=0
RETURN
