* COMPTE LE NBRE DE CDD ET CDI AU 31/12/2001
* COMPTE LE NB D'HRES TRAVAILLEES EN 2001 PAR ACTIVITE

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","STATACTAIDE" TO F.STATACTAIDE ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP

PRINT "             Comptage des salaris en CDD et CDI sur une priode par dpartement"
1
PRINT "PERIODE A TRAITER (AAAAMM) - DEBUT:"
INPUT W_PERIODEDEB
IF W_PERIODEDEB MATCH "6N" ELSE GOSUB 1
2
PRINT "PERIODE A TRAITER (AAAAMM) - FIN:"
INPUT W_PERIODEFIN
IF W_PERIODEFIN MATCH "6N" ELSE GOSUB 2

*PRINTER ON

******************************************************************
*COMPTE LES HEURES TRAVAILLEES PAR ACTIVITE
******************************************************************

* MANDATAIRE 

EXECUTE 'SELECT STATACTAIDE AVEC PeriodeAct >= "[':W_PERIODEDEB:'" AND AVEC PeriodeAct <="[':W_PERIODEFIN:'" PAR Dept PAR 1'
W_FINI="FAUX"
W_COMPTEUR=0
W_DEP=""
W_HRESTRAV=0
W_ACTIVITES=""
W_COUNT=0
W_COUNTACT=0
I=0
J=0

LOOP
   READNEXT W_CLE ELSE W_FINI="VRAI"
WHILE W_FINI="FAUX" DO

    	READ ENR_STATACTAIDE FROM F.STATACTAIDE,W_CLE ELSE ENR_STATACTAIDE= ""
	READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CLE[1,5] ELSE ENR_CIVILAIDE=""

	W_COUNT=DCOUNT(W_ACTIVITES<1>,CHAR(253))
	W_COUNTACT=DCOUNT(ENR_STATACTAIDE<1>,CHAR(253))
	IF W_ACTIVITES<1,1>#"" THEN
	    FOR J=1 TO W_COUNTACT	
		FOR I=1 TO W_COUNT

			IF W_ACTIVITES<1,I> # "" THEN
				IF W_ACTIVITES<1,I>=ENR_STATACTAIDE<1,J> THEN
					W_ACTIVITES<2,I>=W_ACTIVITES<2,I>+ENR_STATACTAIDE<2,J>
					EXIT
				END ELSE
					IF W_ACTIVITES<1,I+1> = "" THEN
						W_ACTIVITES<1,I+1>=ENR_STATACTAIDE<1,J>
						W_ACTIVITES<2,I+1>=ENR_STATACTAIDE<2,J>
						EXIT
					END
				END
			END ELSE
				W_ACTIVITES<1,I>=ENR_STATACTAIDE<1,J>	
				W_ACTIVITES<2,I>=ENR_STATACTAIDE<2,J>
				EXIT			
			END
		NEXT I
	    NEXT J
	END ELSE
		W_ACTIVITES<1,1>=ENR_STATACTAIDE<1,1>
		W_ACTIVITES<2,1>=ENR_STATACTAIDE<2,1>
	END
	
	W_DEP1=ENR_CIVILAIDE<10>[1,2]
	

	IF W_DEP1<>W_DEP THEN
		IF W_DEP= "" THEN
			W_DEP=W_DEP1

		END ELSE
			W_COUNT=DCOUNT(W_ACTIVITES<1>,CHAR(253))
			FOR I=1 TO W_COUNT

			    	READ ENR_ACTIVITES FROM F.ACTIVITES,W_ACTIVITES<1,I> ELSE ENR_ACTIVITES= ""
				W_HRESTRAV=W_ACTIVITES<2,I>/100
				W_HRESTRAV=W_HRESTRAV "R2"
				PRINT "NB D'HRES TRAV ACTIVITE ":ENR_ACTIVITES<1>[1,30]:" DU DEP ":W_DEP:"   ":W_HRESTRAV
				W_ACTIVITES<2,I>=0
			NEXT I
			W_HRESTRAV=0

			W_DEP=W_DEP1
		END
	END

REPEAT

W_COUNT=DCOUNT(W_ACTIVITES<1>,CHAR(253))
FOR I=1 TO W_COUNT

   	READ ENR_ACTIVITES FROM F.ACTIVITES,W_ACTIVITES<1,I> ELSE ENR_ACTIVITES= ""
	W_HRESTRAV=W_ACTIVITES<2,I>/100
	W_HRESTRAV=W_HRESTRAV "R2"
	PRINT "NB D'HRES TRAV ACTIVITE ":ENR_ACTIVITES<1>[1,30]:" DU DEP ":W_DEP:"   ":W_HRESTRAV
	W_ACTIVITES<2,I>=0
NEXT I
PRINT ""

**************************************************************************
*CALCUL CDD AU 31/12 DE L'ANNEE EN COURS
**************************************************************************

W_MOISFIN=W_PERIODEFIN[5,2]
W_ANNEEFIN=W_PERIODEFIN[1,4]
W_MOISFIN=W_MOISFIN+1
IF W_MOISFIN="13"THEN
	W_MOISFIN="01"
	W_ANNEEFIN=W_ANNEEFIN+1
END

W_MOISFIN=W_MOISFIN "R(%2)"
W_DATEFIN="01/":W_MOISFIN:"/":W_ANNEEFIN
W_DATEFIN=ICONV(W_DATEFIN,"D4/")
W_DATEFIN=W_DATEFIN-1
W_DATEFIN=OCONV(W_DATEFIN,"D4/")

EXECUTE 'SELECT DETAILCALCUL AVEC @ID= "[':W_PERIODEFIN:'" AND AVEC ConvColContratDetailCalcul = "02" AND AVEC TypeContrat = "D" AND AVEC TypePersonnel = "P" AND AVEC DateFinClair >="':W_DATEFIN:'" OR = "" PAR CodDepAide PAR @ID '

*EXECUTE 'SELECT CONTRAT AVEC 1 = "02" AND AVEC 6 = "P" AND AVEC 4 = "D" AND AVEC DatFinContrat >="':W_DATEFIN:'" OR = "" PAR DeptAide '
W_FINI="FAUX"
W_COMPTEUR=0
W_ANCIENCODE=""
W_DEP=""


LOOP
   READNEXT W_CLE ELSE W_FINI="VRAI"
WHILE W_FINI="FAUX" DO
	READ ENR_CONTRAT FROM F.CONTRAT,W_CLE[1,8] ELSE ENR_CONTRAT=""
    	READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE= ""

	W_DEP1=ENR_CIVILAIDE<10>[1,2]
*PRINT "ENR_CONTRAT<3> :":ENR_CONTRAT<3>
*PRINT "ENR_CIVILAIDE<10>[1,2] :":ENR_CIVILAIDE<10>[1,2]
*DEBUG
	IF W_DEP1<>W_DEP THEN
		IF W_DEP= "" THEN
			W_DEP=W_DEP1
		END ELSE

			PRINT "NOMBRE DE CDD AU ":W_DATEFIN:" DU DEP ":W_DEP:" ":W_COMPTEUR
			W_COMPTEUR=0

			W_DEP=W_DEP1
			W_COMPTEUR=0
		END
	END

   	W_COMPTEUR=W_COMPTEUR+1
	
REPEAT

PRINT "NOMBRE DE CDD AU ":W_DATEFIN:" DU DEP ":W_DEP:" ":W_COMPTEUR

**************************************************************************
*CALCUL CDI AU 31/12 DE L'ANNEE EN COURS
**************************************************************************

W_MOISFIN=W_PERIODEFIN[5,2]
W_ANNEEFIN=W_PERIODEFIN[1,4]
W_MOISFIN=W_MOISFIN+1
IF W_MOISFIN="13"THEN
	W_MOISFIN="01"
	W_ANNEEFIN=W_ANNEEFIN+1
END

W_MOISFIN=W_MOISFIN "R(%2)"
W_DATEFIN="01/":W_MOISFIN:"/":W_ANNEEFIN
W_DATEFIN=ICONV(W_DATEFIN,"D4/")
W_DATEFIN=W_DATEFIN-1
W_DATEFIN=OCONV(W_DATEFIN,"D4/")

EXECUTE 'SELECT DETAILCALCUL AVEC @ID= "[':W_PERIODEFIN:'" AND AVEC TypePersonnel = "P" AND AVEC ConvColContratDetailCalcul = "02" AND AVEC TypeContrat = "I" AND AVEC DateFinClair >="':W_DATEFIN:'" OR = "" PAR CodDepAide PAR @ID '
*EXECUTE 'SELECT CONTRAT AVEC 1 = "02" AND AVEC 6 = "P" AND AVEC 4 = "I" AND AVEC DatFinContrat >="':W_DATEFIN:'" OR = "" PAR DeptAide '
W_FINI="FAUX"
W_COMPTEUR=0
W_ANCIENCODE=""
W_DEP=""


LOOP
   READNEXT W_CLE ELSE W_FINI="VRAI"
WHILE W_FINI="FAUX" DO
	READ ENR_CONTRAT FROM F.CONTRAT,W_CLE[1,8] ELSE ENR_CONTRAT=""
    	READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE= ""

	W_DEP1=ENR_CIVILAIDE<10>[1,2]
	IF W_DEP1<>W_DEP THEN
		IF W_DEP= "" THEN
			W_DEP=W_DEP1
		END ELSE

			PRINT "NOMBRE DE CDI AU ":W_DATEFIN:" DU DEP ":W_DEP:" ":W_COMPTEUR
			W_COMPTEUR=0

			W_DEP=W_DEP1
			W_COMPTEUR=0
		END
	END

   	W_COMPTEUR=W_COMPTEUR+1
	
REPEAT

PRINT "NOMBRE DE CDI AU ":W_DATEFIN:" DU DEP ":W_DEP:" ":W_COMPTEUR


************************************************************
* compte salaries sur l'annee
************************************************************
EXECUTE 'SELECT DETAILCALCUL AVEC @ID>="[':W_PERIODEDEB:'" AND <= "[':W_PERIODEFIN:'" AND AVEC ConvColContratDetailCalcul="02" PAR CodDepAide PAR @ID'
W_FINI="FAUX"
W_COMPTEUR=0
W_ANCIENCODE=""
W_DEP=""

LOOP
   READNEXT W_CLE ELSE W_FINI="VRAI"
WHILE W_FINI="FAUX" DO
    	READ ENR_CONTRAT FROM F.CONTRAT,W_CLE[1,8] ELSE ENR_CONTRAT= ""
    	READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE= ""

	W_DEP1=ENR_CIVILAIDE<10>[1,2]
	IF W_DEP1<>W_DEP THEN
		IF W_DEP= "" THEN
			W_DEP=W_DEP1
		END ELSE

			PRINT "NOMBRE DE SALARIES MANDATAIRE POUR LE DEP ":W_DEP:" ":W_COMPTEUR
			W_COMPTEUR=0

			W_DEP=W_DEP1
			W_COMPTEUR=0
		END
	END

    IF W_ANCIENCODE # W_CLE[1,5] THEN
	W_ANCIENCODE=W_CLE[1,5]
   	W_COMPTEUR=W_COMPTEUR+1
    END
REPEAT
PRINT "NOMBRE DE SALARIES MANDATAIRE POUR LE DEP ":W_DEP:" ":W_COMPTEUR
PRINT ""


**************************************************************************
*CALCUL SALARIE AU 31/12 DE L'ANNEE EN COURS
**************************************************************************

*W_DATEFINCONTRAT=""
*W_DATEFINCONTRAT= "31/12/"
*W_DATEFINCONTRAT=W_DATEFINCONTRAT:W_PERIODEFIN[1,4]


W_MOISFIN=W_PERIODEFIN[5,2]
W_ANNEEFIN=W_PERIODEFIN[1,4]
W_MOISFIN=W_MOISFIN+1
IF W_MOISFIN="13"THEN
	W_MOISFIN="01"
	W_ANNEEFIN=W_ANNEEFIN+1
END

W_MOISFIN=W_MOISFIN "R(%2)"
W_DATEFIN="01/":W_MOISFIN:"/":W_ANNEEFIN
W_DATEFIN=ICONV(W_DATEFIN,"D4/")
W_DATEFIN=W_DATEFIN-1
W_DATEFIN=OCONV(W_DATEFIN,"D4/")

EXECUTE 'SELECT DETAILCALCUL AVEC @ID>="[':W_PERIODEDEB:'" AND <= "[':W_PERIODEFIN:'" AND AVEC ConvColContratDetailCalcul = "02" AND AVEC TypePersonnel = "P" AND AVEC DateFinClair >="':W_DATEFIN:'" OR = "" PAR CodDepAide PAR @ID '
W_FINI="FAUX"
W_COMPTEUR=0
W_ANCIENCODE=""
W_DEP=""


LOOP
   READNEXT W_CLE ELSE W_FINI="VRAI"
WHILE W_FINI="FAUX" DO
	READ ENR_CONTRAT FROM F.CONTRAT,W_CLE[1,8] ELSE ENR_CONTRAT=""
    	READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE= ""

	W_DEP1=ENR_CIVILAIDE<10>[1,2]
	IF W_DEP1<>W_DEP THEN
		IF W_DEP= "" THEN
			W_DEP=W_DEP1
		END ELSE

			PRINT "NOMBRE DE SALARIES MANDATAIRE AU ":W_DATEFIN:" DU DEP ":W_DEP:" ":W_COMPTEUR
			W_COMPTEUR=0

			W_DEP=W_DEP1
			W_COMPTEUR=0
		END
	END

    IF W_ANCIENCODE # W_CLE[1,5] THEN
	W_ANCIENCODE=W_CLE[1,5]
   	W_COMPTEUR=W_COMPTEUR+1
    END
	
REPEAT

PRINT "NOMBRE DE SALARIES MANDATAIRE AU ":W_DATEFIN:" DU DEP ":W_DEP:" ":W_COMPTEUR


STOP
