

**********************
* REMPLI L'ENREGISTREMENT SUIVCONTRAT DE TEMPO POUR PERMETTRE L'EDITION DES SUIVI DE CONTRAT
* 19/04/2001 ALAIN
**********************


***************************
* Ouvertures des fichiers *
***************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","TEMPO" TO F.TEMPO ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "","COMMUNES" TO F.COMMUNES ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","CONVENTIONCOL" TO F.CONVENTIONCOL ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","ETABLISSEMENT" TO F.ETABLISSEMENT ELSE STOP

******************************
* Recuperation des arguments *
******************************

PROCREAD ARGUMENTS ELSE PRINT "Procread"

W_ASSOC = FIELD(ARGUMENTS,"|",2)
W_CODEIMP = FIELD(ARGUMENTS,"|",3)
W_PERIODE = FIELD(ARGUMENTS,"|",4)
W_CODESELECTION = FIELD(ARGUMENTS,"|",5)
W_TYPESELECTION = FIELD(ARGUMENTS,"|",6)
W_CODCONVCOL = FIELD(ARGUMENTS,"|",7)
W_CODAIDANT = FIELD(ARGUMENTS,"|",9)
W_CONTRATMODULE = FIELD(ARGUMENTS,"|",8)
*********************
* TRAITEMENT GLOBAL *
*********************

ENR_TEMPO =""
W_RESULTAT=""
W_REGUL=0
WRITE ENR_TEMPO TO F.TEMPO,"SUIVCONTRAT"

W_SELECTION = ""
W_ASSOCIATION=W_ASSOC

IF W_CODESELECTION = "" THEN
	IF W_TYPESELECTION = "C" THEN
		W_SELECTION = 'AND AVEC LibCommuneAidant # "" PAR LibCommuneAidant'
	END ELSE
		IF W_TYPESELECTION = "S" THEN
			W_SELECTION = 'AND AVEC CodSecteurContrat # "" PAR LibSecteurContrat'
		END ELSE
			W_SELECTION = 'AND AVEC NomPrenomAidantContrat # ""'
		END
	END
END ELSE
	IF W_TYPESELECTION = "C" THEN
		W_SELECTION = 'AND AVEC LibCommuneAidant = "':W_CODESELECTION:'"'
	END ELSE
		IF W_TYPESELECTION = "S" THEN
			W_SELECTION = 'AND AVEC CodSecteurContrat = "':W_CODESELECTION:'"'
		END
	END
END

**** RAJOUT CONTRAT MODULES
IF W_CONTRATMODULE=1 THEN W_SELECTION = W_SELECTION:' AND AVEC 68 = "1"'
W_SELECTION = W_SELECTION:' PAR NomPrenomAidantContrat'

MOIS = W_PERIODE[5,2]
AN = W_PERIODE[1,4]
ANF = AN

MOISDEB = MOIS
MOISFIN = MOIS + 1	

IF MOISDEB > 12 THEN
	MOISDEB = MOISDEB - 12
	AN = AN + 1
END

IF MOISFIN > 12 THEN
	MOISFIN = MOISFIN - 12
	ANF = ANF + 1
END

MOISDEB = MOISDEB "R(%2)"
MOISFIN = MOISFIN "R(%2)"	

W_DATEDEB = ICONV("01/":MOISDEB:"/":AN,"D4/")
W_DATEFIN = ICONV("01/":MOISFIN:"/":ANF,"D4/")
W_DATEFIN= W_DATEFIN - 1

IF W_CODAIDANT = "" THEN 
   IF W_CODCONVCOL = "02" THEN	
	EXECUTE 'SSELECT CONTRAT AVEC 1 = "':W_CODCONVCOL:'" AND AVEC 3 # "" AND AVEC 6 = "P" AND AVEC 7 <= "':W_DATEFIN:'" AND AVEC 8 = "" OR => "':W_DATEDEB:'" AND AVEC 65 <> "O" ':W_SELECTION
   END ELSE
	EXECUTE 'SSELECT CONTRAT AVEC 1 = "':W_CODCONVCOL:'" AND AVEC 3 = "':W_ASSOC:'" AND AVEC 6 = "P" AND AVEC 7 <= "':W_DATEFIN:'" AND AVEC 8 = "" OR => "':W_DATEDEB:'" AND AVEC 65 <> "O" ':W_SELECTION
   END
END ELSE
   EXECUTE 'SSELECT CONTRAT AVEC 0 = "':W_CODAIDANT:']" AND AVEC 1 = "':W_CODCONVCOL:'" AND AVEC 6 = "P" AND AVEC 3 = "':W_ASSOC:'" AND AVEC 7 <= "':W_DATEFIN:'" AND AVEC 8 = "" OR => "':W_DATEDEB:'" AND AVEC 65 <> "O" ':W_SELECTION
END 

EXECUTE 'SAUVE-LISTE W_RESULTAT' 
EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE

IF MSGCODE<1> # 209 THEN

	IF W_CODCONVCOL = "02" THEN
		MOITRAIT = "01"
	END ELSE
		READ ENR_ETAB FROM F.ETABLISSEMENT,W_ASSOC ELSE ENR_ETAB = ""
		MOITRAIT = ENR_ETAB<24>
		IF MOITRAIT = "12" THEN
			W_MODFIN = W_PERIODE[1,4]:"12"
			W_MODDEB = W_PERIODE[1,4]:"01"
		END ELSE
			IF MOITRAIT => W_PERIODE[5,2] THEN
				W_MODFIN = W_PERIODE[1,4]:MOITRAIT
				MOITRAIT = MOITRAIT + 1
				MOITRAIT = MOITRAIT "R(%2)"
				W_MODDEB = (W_PERIODE[1,4]-1):MOITRAIT
			END ELSE
				W_MODFIN = (W_PERIODE[1,4]+1):MOITRAIT
				MOITRAIT = MOITRAIT + 1
				MOITRAIT = MOITRAIT "R(%2)"
				W_MODDEB = W_PERIODE[1,4]:MOITRAIT
			END
		END
	END 

	W_FINI = "FAUX"	
	J = 0	
	W_AIDE=""
	CLE.CONTRAT=""

	SELECT F.CONTRAT TO W_RESULTAT

	LOOP
111
		READNEXT CLE.CONTRAT FROM W_RESULTAT ELSE W_FINI="VRAI"
	WHILE W_FINI = "FAUX"
		READ ENR_CONTRAT FROM F.CONTRAT,CLE.CONTRAT ELSE ENR_CONTRAT = ""

		IF W_CONTRATMODULE=1 THEN
			X = 1
			LOOP
			WHILE ENR_CONTRAT<14,X> # ""
				X = X + 1
			REPEAT
			X = X - 1
			IF ENR_CONTRAT<68,X> # "1" THEN
				GOTO 111
			END		
		END

		J = J+1
		W_AIDE = CLE.CONTRAT[1,5]
		READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_AIDE ELSE ENR_CIVILAIDANT = ""
		IF ENR_CONTRAT<76,1> = "" THEN
			IF ENR_CONTRAT<71,1> <= W_MODFIN AND ENR_CONTRAT<71,1> >= W_MODDEB THEN
				LIG = 71
				W_REGUL = 99
			END ELSE
				GOTO 111
			END
		END ELSE
			IF ENR_CONTRAT<76,1> <= W_MODFIN AND ENR_CONTRAT<76> >= W_MODDEB THEN
				LIG = 76
				W_REGUL = 100
			END ELSE
				IF ENR_CONTRAT<71,1> <= W_MODFIN AND ENR_CONTRAT<71,1> >= W_MODDEB THEN
					LIG = 71
					W_REGUL = 99
				END ELSE
					GOTO 111
				END
			END
		END
		
		NBRMOIS = 0
		CUMUL = 0
		CUMULABS = 0
		CUMULHRES = 0
		CUMULREEL = 0
		CUMULFORFAIT = 0
		CUMULREGUL = 0
		
		I = 0
		FINTRAIT = "FALSE"
		MOIS = MOISDEB		

		LOOP
			I = I+1
		WHILE FINTRAIT # "TRUE" AND ENR_CONTRAT<LIG,I> # ""

			NBRMOIS = NBRMOIS + 1
			CUMULHRES = CUMULHRES + ENR_CONTRAT<(LIG+1),I>
			CUMULABS = CUMULABS + ENR_CONTRAT<(LIG+2),I>
			CUMULREEL = CUMULREEL + ENR_CONTRAT<(LIG+3),I>
			CUMUL = CUMUL + ENR_CONTRAT<(LIG+4),I>
			CUMULFORFAIT = CUMULFORFAIT + (ENR_CONTRAT<(LIG+1),I> - ENR_CONTRAT<(LIG+2),I>)
			CUMULREGUL = CUMULREGUL + ENR_CONTRAT<W_REGUL,I>

			IF W_CODEIMP = "LETTRE" THEN

				IF I = 1 THEN
				   ENR_TEMPO<J,1> = ENR_CIVILAIDANT<1>:' ':ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>

				   ADR = ""

				   IF ENR_CIVILAIDANT<5> # "" THEN
				  	ADR = ENR_CIVILAIDANT<5>:' '
				   END
					
				   IF ENR_CIVILAIDANT<6> # "" THEN
					ADR = ADR:ENR_CIVILAIDANT<6>:' '
				   END

				   IF ENR_CIVILAIDANT<7> # "" THEN
					ADR = ADR:ENR_CIVILAIDANT<7>:' '
				   END
				
				   IF ENR_CIVILAIDANT<8> # "" THEN
					ADR = ADR:ENR_CIVILAIDANT<8>:' '
				   END

				   ENR_TEMPO<J,2> = ADR

				   IF ENR_CIVILAIDANT<9> # "" THEN
					ENR_TEMPO<J,3> = ENR_CIVILAIDANT<9>
					AD = 4
				   END ELSE
					AD = 3
				   END

				   ENR_TEMPO<J,AD> = ENR_CIVILAIDANT<10>:' ':ENR_CIVILAIDANT<11>

				END
				            
				IMP = SPACE(1)
				GOSUB 100

				ENR_TEMPO<J,I+AD>=IMP
			END	

			MOIS = MOIS-1
			
			IF MOIS = 0 THEN
				MOIS = 12
			END

			IF W_PERIODE =< ENR_CONTRAT<LIG,I> THEN
				FINTRAIT = "TRUE"
			END
		REPEAT
		
		I = I-1

		IF W_CODEIMP = "LISTECUM" OR W_CODEIMP = "LISTE" OR ENR_CONTRAT<LIG,I> = "" THEN
			IMP = W_AIDE:' ':ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>
			IMP = IMP[1,41]
			IMP = IMP "L(#42)"
			
			IF W_CODEIMP = "LISTE" THEN
				GOSUB 100
			END ELSE
				GOSUB 400
			END
			
			ENR_TEMPO<J,1>=IMP
			IF W_TYPESELECTION = "C" THEN
*				READ ENR_COMMUNES FROM F.COMMUNES ,ENR_CIVILAIDANT<39> ELSE ENR_COMMUNES = ""
*				ENR_TEMPO<J,2>= ENR_COMMUNES<1>
				ENR_TEMPO<J,2>= ENR_CIVILAIDANT<11>
			END ELSE
				IF W_TYPESELECTION = "S" THEN
					READ ENR_SECTEUR FROM F.SECTEUR ,ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR = ""
					ENR_TEMPO<J,2>= ENR_SECTEUR<1>
				END
			END
		END

	REPEAT

END

WRITE ENR_TEMPO TO F.TEMPO,"SUIVCONTRAT"

EXECUTE 'EFFACER-LISTE W_RESULTAT'

STOP

********************
* ECRITURE PERIODE *
********************

100
IF W_CODEIMP = "LETTRE" THEN
	IF ENR_CONTRAT<LIG,I>[5,2]= "" THEN
		MOISTEST = MOIS
		ANTEST = AN
	END ELSE
		MOISTEST = ENR_CONTRAT<LIG,I>[5,2]
		ANTEST = ENR_CONTRAT<LIG,I>[1,4]
	END

	BEGIN CASE
		CASE MOISTEST MATCHES "01"
			IMP = IMP:'JANVIER   ':ANTEST
 		CASE MOISTEST MATCHES "02"
			IMP = IMP:'FEVRIER   ':ANTEST
		CASE MOISTEST MATCHES "03"
			IMP = IMP:'MARS      ':ANTEST
		CASE MOISTEST MATCHES "04"
			IMP = IMP:'AVRIL     ':ANTEST
		CASE MOISTEST MATCHES "05"
			IMP = IMP:'MAI       ':ANTEST
		CASE MOISTEST MATCHES "06"
			IMP = IMP:'JUIN      ':ANTEST
		CASE MOISTEST MATCHES "07"
			IMP = IMP:'JUILLET   ':ANTEST
		CASE MOISTEST MATCHES "08"
			IMP = IMP:'AOUT      ':ANTEST
		CASE MOISTEST MATCHES "09"
			IMP = IMP:'SEPTEMBRE ':ANTEST
		CASE MOISTEST MATCHES "10"
			IMP = IMP:'OCTOBRE   ':ANTEST
		CASE MOISTEST MATCHES "11"
			IMP = IMP:'NOVEMBRE  ':ANTEST
		CASE MOISTEST MATCHES "12"
			IMP = IMP:'DECEMBRE  ':ANTEST
	END CASE
END

IF W_PERIODE = ENR_CONTRAT<LIG,I> AND W_CODEIMP = "LISTE" THEN
	GOSUB 300
END ELSE
	IF W_CODEIMP = "LETTRE" THEN
		GOSUB 300
	END ELSE
		IMP = IMP:SPACE(50)
	END
END
IF W_CODEIMP = "LISTE" THEN
	HRES = (CUMULFORFAIT/100)
	HRES = HRES "R2"
	HRES = HRES "R(#10)"
	IMP = IMP:HRES
	HRES = (CUMULREEL/100)
	HRES = HRES "R2"
	HRES = HRES "R(#10)"
	IMP = IMP:HRES
	HRES = (CUMUL/100)
	HRES = HRES "R2"
	HRES = HRES "R(#10)"
	IMP = IMP:HRES
	HRES = (CUMULREGUL/100)
	HRES = HRES "R2"
	HRES = HRES "R(#10)"
	IMP = IMP:HRES
END ELSE
	HRES = (CUMUL/100)
	HRES = HRES "R2"
	HRES = HRES "R(#9)"
	IMP = IMP:HRES
	HRES = (ENR_CONTRAT<W_REGUL,I>/100)
	HRES = HRES "R2"
	HRES = HRES "R(#9)"
	IMP = IMP:HRES
	HRES = ((CUMUL-(CUMULREGUL))/100)
	HRES = HRES "R2"
	HRES = HRES "R(#9)"
	IMP = IMP:HRES
END

RETURN

*************************
* MISE EN FORME VALEURS *
*************************

300

HRES = ""

IF W_CODEIMP = "LETTRE" THEN
	HRES = ((ENR_CONTRAT<(LIG+1),I>)/100)
	HRES = HRES "R2"
	HRES = HRES "R(#9)"
	IMP = IMP:HRES
	HRES = ((ENR_CONTRAT<(LIG+2),I>)/100)
	HRES = HRES "R2"
	HRES = HRES "R(#9)"
	IMP = IMP:HRES
	HRES = (ENR_CONTRAT<(LIG+1),I>)-(ENR_CONTRAT<(LIG+2),I>)
	HRES = (HRES/100)
	HRES = HRES "R2"
	HRES = HRES "R(#9)"
	IMP = IMP:HRES
	HRES = ((ENR_CONTRAT<(LIG+3),I>)/100)
	HRES = HRES "R2"
	HRES = HRES "R(#9)"
	IMP = IMP:HRES
	HRES = ((ENR_CONTRAT<(LIG+4),I>)/100)
	HRES = HRES "R2"
	HRES = HRES "R(#9)"
	IMP = IMP:HRES
END ELSE
	HRES = ((ENR_CONTRAT<(LIG+1),I>)/100)
	HRES = HRES "R2"
	HRES = HRES "R(#10)"
	IMP = IMP:HRES
	HRES = ((ENR_CONTRAT<(LIG+2),I>)/100)
	HRES = HRES "R2"
	HRES = HRES "R(#10)"
	IMP = IMP:HRES
	HRES = (ENR_CONTRAT<(LIG+1),I>)-(ENR_CONTRAT<(LIG+2),I>)
	HRES = (HRES/100)
	HRES = HRES "R2"
	HRES = HRES "R(#10)"
	IMP = IMP:HRES
	HRES = ((ENR_CONTRAT<(LIG+3),I>)/100)
	HRES = HRES "R2"
	HRES = HRES "R(#10)"
	IMP = IMP:HRES
	HRES = ((ENR_CONTRAT<(LIG+4),I>)/100)
	HRES = HRES "R2"
	HRES = HRES "R(#10)"
	IMP = IMP:HRES
END
RETURN

***********************************
* MISE EN FORME VALEURS DE CUMULS *
***********************************

400

HRES = ""
HRES = (CUMULHRES/100)
HRES = HRES "R2"
HRES = HRES "R(#10)"
IMP = IMP:HRES
HRES = (CUMULABS/100)
HRES = HRES "R2"
HRES = HRES "R(#10)"
IMP = IMP:HRES
HRES = (CUMULFORFAIT/100)
HRES = HRES "R2"
HRES = HRES "R(#10)"
IMP = IMP:HRES
HRES = (CUMULREEL/100)
HRES = HRES "R2"
HRES = HRES "R(#10)"
IMP = IMP:HRES
HRES = (CUMUL/100)
HRES = HRES "R2"
HRES = HRES "R(#10)"
IMP = IMP:HRES
HRES = (CUMULREGUL/100)
HRES = HRES "R2"
HRES = HRES "R(#10)"
IMP = IMP:HRES

READ ENR_CONVENTIONCOL FROM F.CONVENTIONCOL,ENR_CONTRAT<1> ELSE ENR_CONVENTIONCOL = ""

TIERFORFAIT = CUMULFORFAIT * (2/3)
DEPASLEGAL = (((CUMULREEL + CUMULABS)*12)/(52*NBRMOIS))
DEPASLEGAL = INT(DEPASLEGAL)
DEPAS10 = (CUMULFORFAIT*(110/100))
DEPASCONT = (CUMULFORFAIT*((100+(3333/100))/100))

IF DEPASLEGAL > 3500 THEN
	IMP = IMP:'  DEPASSEMENT HORAIRE LEGAL'
END ELSE
	IF CUMULREEL > DEPASCONT THEN
		IMP = IMP:'  > A 133% DU CONTRAT'
	END ELSE
		IF CUMULREEL > DEPAS10 THEN
			IMP = IMP:'  > A 110% DU CONTRAT'
		END ELSE
			IF CUMULREEL < TIERFORFAIT THEN
				IMP = IMP:'  < A 66% DU CONTRAT'
			END
		END
	END
END

RETURN
