EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "", "ABSENCESAIDANT" TO F.ABSENCESAIDANT ELSE STOP
OPEN "", "CONTRAT" TO F.CONTRAT ELSE STOP

LOOP
PRINT "Derniere periode cloturee (AAAAMM) ?"
INPUT W_Periode
IF W_Periode= "" THEN
	PRINT "Traitement abandonn"
	STOP
END
WHILE NOT (LEN(W_Periode) = 6 AND (W_Periode[5,2] > 0 AND W_Periode[5,2] < 13) AND W_Periode[1,4] > 2000)
REPEAT

W_DateFinPeriode = W_Periode[5,2]+1
IF W_DateFinPeriode = "13" THEN
	W_DateFinPeriode = ICONV("31/12/":W_Periode[1,4],"D4/")
END ELSE
	W_DateFinPeriode = ICONV("01/":W_DateFinPeriode:"/":W_Periode[1,4],"D4/")-1
END
W_DateDebPeriode = ICONV("01/":W_Periode[5,2]:"/":W_Periode[1,4],"D4/")


EXECUTE 'SELECT CONTRAT AVEC 1 = "02" AND AVEC 65 # "O" AND AVEC 63 = "':W_Periode:'" PAR CodeAidant'
EXECUTE 'SAUVE-LISTE W_ReqContratCSS'
EXECUTE 'LISTE W_ReqContratCSS' RETURNING MSGCODE

IF MSGCODE<1> = "209" THEN
	PRINT "Aucun contrat clotur a cette priode."
	STOP
END

W_ReqContratCSS = ""
W_ReqAbsCSS = ""

SELECT F.CONTRAT TO W_ReqContratCSS
W_CodeAnc = ""
W_Fin = "F"
LOOP
	READNEXT W_CleContrat FROM W_ReqContratCSS ELSE W_Fin = "V"
WHILE W_Fin = "F"
	READ ENR_CONTRAT FROM F.CONTRAT, W_CleContrat THEN
		GOSUB 100
		
		IF W_JrsSuspAbs # 0 THEN
		   ENR_CONTRAT<70> = ENR_CONTRAT<70> - W_JrsSuspAbs*100
		   IF ENR_CONTRAT<70> < 0 THEN
			ENR_CONTRAT<70> = "0"
		   END
		   WRITE ENR_CONTRAT ON F.CONTRAT, W_CleContrat
		
		END
	END
REPEAT

STOP

100

W_JrsSuspAbs = 0

IF W_CodeAnc # W_CleContrat[1,5] THEN
	W_CodeAnc = W_CleContrat[1,5]
	EXECUTE 'SELECT ABSENCESAIDANT = "':W_CodeAnc:'12]" AVEC DebAbsAidant <= "':W_DateFinPeriode:'" AND AVEC 2 >= "':W_DateDebPeriode:'" PAR-DECR DebAbsAidant'
	EXECUTE 'SAUVE-LISTE W_ReqAbsCSS'
END

EXECUTE 'LISTE W_ReqAbsCSS' RETURNING MSGCODE
IF MSGCODE<1> # "209" THEN
	SELECT F.ABSENCESAIDANT TO W_ReqAbsCSS
	W_FinAbs = "F"
	LOOP
	   READNEXT W_CleAbs FROM W_ReqAbsCSS ELSE W_FinAbs = "V"
	WHILE W_FinAbs = "F"
	   READ ENR_ABSENCESAIDANT FROM F.ABSENCESAIDANT, W_CleAbs THEN			

		IF W_CleAbs[8,LEN(W_CleAbs)-7] < W_DateDebPeriode THEN
			W_DebAbs = W_DateDebPeriode
		END ELSE
			W_DebAbs = W_CleAbs[8,LEN(W_CleAbs)-7]
		END
		IF W_DebAbs < ENR_CONTRAT<7> THEN
			W_DebAbs = ENR_CONTRAT<7>
		END

		IF ENR_ABSENCESAIDANT<2> > W_DateFinPeriode THEN
			ENR_ABSENCESAIDANT<2> = W_DateFinPeriode
		END
		IF ENR_CONTRAT<8> # "" AND ENR_ABSENCESAIDANT<2> > ENR_CONTRAT<8> THEN
			IF ENR_CONTRAT<8> >= W_DebAbs THEN
				ENR_ABSENCESAIDANT<2> = ENR_CONTRAT<8>
			END ELSE
				* Le contrat est fini avant l'absence => 0 jours de suspension...
				ENR_ABSENCESAIDANT<2> = W_DebAbs - 1
			END
		END ELSE
			IF ENR_ABSENCESAIDANT<2> < ENR_CONTRAT<7> THEN
				* L'absence est finie avant le dbut du contrat ...
				ENR_ABSENCESAIDANT<2> = W_DebAbs - 1

			END
		END
		W_JrsSuspAbs = W_JrsSuspAbs + ENR_ABSENCESAIDANT<2> - W_DebAbs + 1
	   END
	REPEAT

END
RETURN

