**********************
* REMPLI L'ENREGISTREMENT SUIVCONTRAT DE TEMPO POUR PERMETTRE L'EDITION DES SUIVI DE CONTRAT
* 24/07/2002 ALAIN
**********************

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

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","COMMUNES" TO F.COMMUNES ELSE STOP
OPEN "","ELTSFACTAIDE" TO F.ELTSFACTAIDE ELSE STOP
OPEN "","FACTURAIDE" TO F.FACTURAIDE ELSE STOP
OPEN "","PERIODESPAIE" TO F.PERIODESPAIE ELSE STOP
OPEN "","RESPONSABLE" TO F.RESPONSABLE ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP

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

PROCREAD ARGUMENTS ELSE PRINT "Procread"

W_PERIODE = FIELD(ARGUMENTS,"|",2)
W_ASSOC = FIELD(ARGUMENTS,"|",3)
W_ACTIVITE = FIELD(ARGUMENTS,"|",4)
W_TYPESELECT = FIELD(ARGUMENTS,"|",5)
W_SELECT = FIELD(ARGUMENTS,"|",6)
W_TYPETRI = FIELD(ARGUMENTS,"|",7)
W_IMP = FIELD(ARGUMENTS,"|",8)
W_REQUETE = FIELD(ARGUMENTS,"|",9)

*********************
* TRAITEMENT GLOBAL *
*********************

W_RESULTAT = ""

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

IF MSGCODE<1> # 209 THEN

	READ ENR_LISTFACT FROM F.TEMPO,'LISTFACT' ELSE ENR_LISTFACT = ""
	
	IF ENR_LISTFACT # "" THEN
		ENR_LISTFACT = ""
	END
	
	W_FINI = "FAUX"
	CLE.FACTANC = ""
	CLE.FACT = ""
	I = 0
	MONTFACT = 0
	CODETRI = ""
	CODETRIANC = ""
	TOTGEN = 0
	TOT = 0
	IND = 1
	LIBTRI = ""	

	SELECT F.FACTURAIDE TO W_RESULTAT

	LOOP
		READNEXT CLE.FACTV FROM W_RESULTAT ELSE W_FINI="VRAI"
		CLE.FACT = CLE.FACTV[1,25]
	WHILE W_FINI = "FAUX"
		IF CLE.FACTANC # CLE.FACT THEN
			IF CLE.FACTANC # "" THEN
				GOSUB 100
			END
			MONTFACT = 0
		END

		IF CLE.FACTANC # CLE.FACT THEN

			READ ENR_FACTURAIDE FROM F.FACTURAIDE,CLE.FACTV ELSE ENR_FACTURAIDE = ""

			J = 0

			LOOP
				J = J + 1
			WHILE ENR_FACTURAIDE<5,J> # ""
				MONTFACT = MONTFACT + ENR_FACTURAIDE<5,J>
			REPEAT

			J = 0

			LOOP
				J = J + 1
			WHILE ENR_FACTURAIDE<9,J> # ""
				MONTFACT = MONTFACT + ENR_FACTURAIDE<9,J>
			REPEAT

		END

		CLE.FACTANC = CLE.FACT

	REPEAT

END

IF CLE.FACTANC # CLE.FACT THEN
	IF CLE.FACTANC # "" THEN
		GOSUB 100
		IF W_TYPETRI # "" THEN
			MONT = TOT/100
			MONT = MONT "R2"
			MONT = MONT "R(#15)"
			ENR_LISTFACT<IND,1> = "STPAGE"
			ENR_LISTFACT<IND,2> = CODETRI
			ENR_LISTFACT<IND,3> = SPACE(45):'Total ':LIBTRI:SPACE(1):':':SPACE(1):MONT
			TOTGEN = TOTGEN + TOT
			IND = IND + 1
		END
	END
	MONTFACT = 0
END

IF ENR_LISTFACT # "" THEN
	ENR_LISTFACT<IND,1> = "FIN"
	MONT = ""
	MONT = TOTGEN/100
	MONT = MONT "R2"
	MONT = MONT "R(#15)"
	ENR_LISTFACT<IND,2> = SPACE(45):'Total gnral':SPACE(5):':':SPACE(1):MONT
END ELSE
	ENR_LISTFACT<1> = 'VIDE'
END

WRITE ENR_LISTFACT TO F.TEMPO,'LISTFACT'

EXECUTE 'EFFACER-LISTE W_RESULTAT'

STOP

*************************************
* PROCEDURE DE REMPLISSAGE DE TEMPO *
*************************************

100

READ ENR_CIVILAIDE FROM F.CIVILAIDE,CLE.FACTANC[1,5] ELSE ENR_CIVILAIDE = ""
READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,CLE.FACTANC[1,5] ELSE ENR_ELTSFACTAIDE = ""

IF W_TYPETRI = "R" THEN
	READ ENR_RESPONSABLE FROM F.RESPONSABLE,ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE = ""
	LIBTRI = 'responsable'
	CODETRI = ENR_RESPONSABLE<1>
END ELSE
	IF W_TYPETRI = "S" THEN
		READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEUR = ""
		LIBTRI = 'secteur':SPACE(4)
		CODETRI = ENR_SECTEUR<1>
	END ELSE
		IF W_TYPETRI = "C" THEN
			LIBTRI = 'commune':SPACE(4)
			CODETRI = ENR_CIVILAIDE<11>
		END
	END
END

IF CODETRI # CODETRIANC THEN
	IF CODETRIANC # "" THEN
		MONT = TOT/100
		MONT = MONT "R2"
		MONT = MONT "R(#15)"
*		IF CODETRI # "" THEN
			ENR_LISTFACT<IND,1> = "STPAGE"
			ENR_LISTFACT<IND,2> = CODETRI
			ENR_LISTFACT<IND,3> = SPACE(45):'Total ':LIBTRI:SPACE(1):':':SPACE(1):MONT
*		END ELSE
*			ENR_LISTFACT<IND,1> = "FINPAGE"
*			ENR_LISTFACT<IND,2> = SPACE(45):'Total ':LIBTRI:SPACE(1):':':SPACE(1):MONT
*		END
		TOTGEN = TOTGEN + TOT
		IND = IND + 1
		TOT = 0
	END ELSE
		ENR_LISTFACT<1,1> = "DEBUT"
		ENR_LISTFACT<1,2> = CODETRI
		IND = 2
	END
	CODETRIANC = CODETRI
	I = 0
END

I = I + 1

IF I > 42 THEN
	IF CODETRI # "" THEN
		ENR_LISTFACT<IND,1> = "STPAGE"
		ENR_LISTFACT<IND,2> = CODETRI
		IND = IND + 1
		I = 1
	END ELSE
		ENR_LISTFACT<IND> = "STPAGE"
		IND = IND + 1
		I = 1
	END
END

IF W_TYPETRI = "" THEN
	TOTGEN = TOTGEN + MONTFACT
END ELSE
	TOT = TOT + MONTFACT
END

NOMPRE = ENR_CIVILAIDE<2>:SPACE(1):ENR_CIVILAIDE<3>

IF LEN(NOMPRE) > 40 THEN
	NOMPRE = NOMPRE[1,40]
END

ENR_LISTFACT<IND> = CLE.FACTANC[1,5]:SPACE(4):NOMPRE:SPACE(42-LEN(NOMPRE)):CLE.FACTANC[16,10]:SPACE(4)

PRELEV = "FAUX"

IF MONTFACT > 0 THEN
	IF ENR_LISTFACT # "" THEN
		IF ENR_ELTSFACTAIDE<20> # "" AND ENR_ELTSFACTAIDE<25> = "" THEN
                    PRELEV = "VRAI"
		END
	END
END

MONT = ""
MONT = MONTFACT/100
MONT = MONT "R2"
MONT = MONT "R(#15)"
ENR_LISTFACT<IND> = ENR_LISTFACT<IND>:MONT:SPACE(4)

IF PRELEV = "VRAI" THEN
	ENR_LISTFACT<IND> = ENR_LISTFACT<IND>:'X'
END

IND = IND + 1

RETURN
