********************************************
* REGARDE NBRE JOURS ABS POUR MALADIE      *
* EN MANDATAIRE DE NOVEMBRE 00 -> OCT. 01  *
*                                          *
* 03/12/01                        STEPHANE *
********************************************

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

* INITIALISE LISTE
CONTRAT=""
ABS=""

PRINT "PERIODE DE DEBUT DE TRAITEMENT DES CONGES "
INPUT W_DEBUTMAL

PRINT "PERIODE DE FIN DE TRAITEMENT DES CONGES "
INPUT W_FINMAL

1
PRINT "CONSULTATION SUR ECRAN OU IMPRIMANTE OU MISE A JOUR DES ERREURS (C/I/M)"
INPUT W_CHOIX

IF W_CHOIX#"C" AND W_CHOIX#"I" AND W_CHOIX#"M" THEN GOTO 1
W_DEBUTMAL=ICONV(W_DEBUTMAL,"D4/")
W_FINMAL=ICONV(W_FINMAL,"D4/")

* VERIFIE SI CONTRAT ACTIF AU 01/11/01
EXECUTE 'SSELECT CONTRAT AVEC 1 = "02" AND AVEC 7 <= "':W_FINMAL:'" AND AVEC 8 >= "':W_FINMAL:'" OR = "" AND AVEC 65 <> "O"'
EXECUTE 'SAUVE-LISTE CONTRAT'
EXECUTE "LISTE CONTRAT" RETURNING W_MSG
SELECT F.CONTRAT TO CONTRAT

IF W_MSG<1>="209" THEN STOP

IF W_CHOIX="I" THEN 
	PRINTER ON
	W_CHOIX="C"
END

W_FINI=0
W_CODE=""
W_DUREEABS=0

LOOP
     READNEXT CLECONTRAT FROM CONTRAT ELSE W_FINI=1
     UNTIL W_FINI=1 DO

     READ ENR_CONTRAT FROM F.CONTRAT,CLECONTRAT ELSE ENR_CONTRAT=""

     IF ENR_CONTRAT<7><W_DEBUTMAL THEN ENR_CONTRAT<7>=W_DEBUTMAL

     * VERIFIE SI ABS SUR CONTRAT
     EXECUTE 'SSELECT ABSENCESAIDANT AVEC @ID = "':CLECONTRAT[1,5]:']" AND AVEC NumMotifAidant = "01" AND AVEC DebAbsAidant <= "':W_FINMAL:'" AND AVEC 2 >= "':ENR_CONTRAT<7>:'" PAR CodeAidant'
     EXECUTE 'SAUVE-LISTE ABS'
     EXECUTE "LISTE ABS" RETURNING W_MSG
     SELECT F.ABSENCESAIDANT TO ABS

     IF W_MSG<1><>209 THEN 
           * RECHERCHE NB JOUR / CONTRAT
	   W_FIN=0
	   LOOP
		 READNEXT CLE FROM ABS ELSE W_FIN=1
		 UNTIL W_FIN=1 DO

	         READ ENR_ABSENCESAIDANT FROM F.ABSENCESAIDANT,CLE ELSE ENR_ABSENCESAIDANT=""
		
	         IF ENR_ABSENCESAIDANT<2>>W_FINMAL THEN ENR_ABSENCESAIDANT<2>=W_FINMAL
	         IF CLE[8,5]<W_DEBUTMAL THEN 
	   	     W_DEBUT=W_DEBUTMAL
		 END ELSE
	  	     W_DEBUT=CLE[8,5]
		 END

		 W_ABS=0
		 W_ABS=ENR_ABSENCESAIDANT<2>-W_DEBUT
		 W_DUREEABS=W_DUREEABS+(W_ABS+1)
           REPEAT

           IF W_DUREEABS>0 AND ENR_CONTRAT<70>#W_DUREEABS THEN
	       IF W_CHOIX="C" THEN
		       PRINT CLECONTRAT:" DEBUT CONTRAT = ":OCONV(ENR_CONTRAT<7>,"D4/"):" FIN CONTRAT = ":OCONV(ENR_CONTRAT<8>,"D4/"):" JRS SUSP = ":ENR_CONTRAT<70>:" DUREE ABS =":W_DUREEABS
	       END ELSE
		       ENR_CONTRAT<70>=W_DUREEABS
		       WRITE ENR_CONTRAT ON F.CONTRAT,CLECONTRAT
	       END
	   END

 	   W_DUREEABS=0
     END

REPEAT
