********************************************************
* GENERATION DES NOUVELLES FAMILLES CAF                *
* SPECIF TOULOUSE                                      *
* AVRIL 2002                           STEPHANE HERVET *
********************************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACCORD" TO F.ACCORD ELSE STOP
OPEN "","FACTURORG" TO F.FACTURORG ELSE STOP
OPEN "","HRESHISTOR" TO F.HRESHISTOR ELSE STOP
OPEN "","PARAMCAF" TO F.PARAMCAF ELSE STOP

********************************************************
* DEBUT TRAITEMENT DES ARTICLES

PROCREAD PARAMETRES ELSE STOP

* RECUPERATION MOIS DE LA PERIODE DE TRAITEMENT
W_RANGREQUETE=INDEX(PARAMETRES," ",1)
W_REQUETE=PARAMETRES[W_RANGREQUETE+1,999]


********************************************************
* EXECUTION DE LA REQUETE
EXECUTE W_REQUETE
EXECUTE "SAUVE-LISTE LISTFACTURORG"
EXECUTE "LISTE LISTFACTURORG" RETURNING W_MSG
SELECT F.FACTURORG TO LISTFACTURORG

IF W_MSG<1>=209 THEN STOP

********************************************************
* TRAITEMENT DE LA REQUETE
W_PERIODE2ANS=""
W_PERIODECOURS=""
W_CODEORG=""
W_DEBUTAN=""
W_FINAN=""

W_FIN=0
LOOP
	READNEXT CLE FROM LISTFACTURORG ELSE W_FIN=1
	UNTIL W_FIN=1 DO

	IF W_PERIODE2ANS="" THEN
		* CALCUL PERIODE - 2 ANS	
		W_PERIODE2ANS=CLE[13,6]
		W_PERIODE2ANS=W_PERIODE2ANS[1,4]-2:W_PERIODE2ANS[5,6]
	END

	W_PERIODECOURS=CLE[13,6]

	IF W_DEBUTAN="" THEN
		W_DEBUTAN=ICONV("01/01/":W_PERIODECOURS[1,4],"D4/")
		W_FINAN=ICONV("01/01/":W_PERIODECOURS[1,4]+1,"D4/")-1
	END		

	W_CODEAIDE=CLE[5,5]
	W_CODEACCORD=CLE[5,8]
	W_CODEORG=CLE[1,3]

	READ ENR_PARAMCAF FROM F.PARAMCAF,W_CODEAIDE ELSE ENR_PARAMCAF=""

	* RECHERCHE SI ACTIVITE DEPUIS < 2 ANS
	GOSUB 10

	* RECHERCHE RANG DE L'ACCORD CAF
	GOSUB 20

	WRITE ENR_PARAMCAF ON F.PARAMCAF,W_CODEAIDE
REPEAT

STOP

********************************************************
* RECHERCHE SI ACTIVITE DEPUIS < 2 ANS
10 *

	EXECUTE 'SELECT HRESHISTOR AVEC 0 = "':W_CODEAIDE:']" AND AVEC PeriodeHresHistor >= "':W_PERIODE2ANS:'" AND < "':W_PERIODECOURS:'"'
	EXECUTE "SAUVE-LISTE LISTHISTOR"
	EXECUTE "LISTE LISTHISTOR" RETURNING W_MSG
	SELECT F.HRESHISTOR TO LISTHISTOR
	
	
	IF W_MSG<1>=209 THEN
		ENR_PARAMCAF<12>="O"
	END ELSE
		ENR_PARAMCAF<12>="N"
	END
RETURN

********************************************************
* RECHERCHE RANG DE L'ACCORD CAF
20 *

	W_NBACCORD=0
	READ ENR_ACCORD FROM F.ACCORD,W_CODEACCORD ELSE ENR_ACCORD=""

	EXECUTE 'SELECT ACCORD AVEC 0 = "':W_CODEAIDE:']" AND AVEC 1 = "':W_CODEORG:'" AND AVEC 5 <= "':W_FINAN:'" AND AVEC 6 >= "':W_DEBUTAN:'" PAR 5'
	EXECUTE "SAUVE-LISTE LISTACCORD"
	EXECUTE "LISTE LISTACCORD" RETURNING W_MSG
	SELECT F.ACCORD TO LISTACCORD

	IF W_MSG<1>="209" THEN
		ENR_ACCORD<22>=1
	END ELSE
		W_FINACC=0
		LOOP
			READNEXT CLEACC FROM LISTACCORD ELSE W_FINACC=1
			UNTIL W_FINACC=1 DO

			W_NBACCORD=W_NBACCORD+1				

			IF CLEACC=W_CODEACCORD THEN
				ENR_ACCORD<22>=W_NBACCORD
			END
		REPEAT
	END

	WRITE ENR_ACCORD ON F.ACCORD,W_CODEACCORD				
RETURN
