********************************************************
* DETAIL DES HRES PREST. PAR AIDANT
*
* JUILLET 2000                          STEPHANE HERVET
*
* MARS 2002				GREGORY RUCHAUD 
********************************************************

* RECAPITULATIF DES GOSUB

* 10 => AFFECTATION DES AIDES AUX AIDANTS

********************************************************
* OUVERTURE DES FICHIERS
********************************************************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","DETAILPREST" TO F.DETAILPREST ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP

********************************************************
* CHARGEMENT DE LA LISTE DES ARTICLES SELECTIONNES
********************************************************

EXECUTE "LISTE LISTEDETAILHRES" CAPTURING MSG RETURNING MSGCODE

IF MSGCODE<1>=209 THEN STOP
SELECT F.DETAILPREST TO LISTEDETAILHRES

********************************************************
* RECUPERATION PARAMETRES PASSES A LA PROCEDURE
********************************************************
PROCREAD VARIABLES ELSE 
    STOP
END
W_LONG=LEN(VARIABLES)
W_RANGTRI=INDEX(VARIABLES," ",3)
W_TRI=VARIABLES[W_RANGTRI+1,1]
W_RANGENTITE=INDEX(VARIABLES," ",2)
W_ENTITE=VARIABLES[W_RANGENTITE+1,3]
W_RANGPERIODE=INDEX(VARIABLES," ",1)
W_PERIODE=VARIABLES[W_RANGPERIODE+1,6]
W_RANGSELECT=INDEX(VARIABLES," ",4)
W_SELECT=VARIABLES[W_RANGSELECT+1,30]

********************************************************
* INITIALISATION DES VARIABLES
********************************************************

* BOOLEEN
W_REQVIDE="FAUX"
W_AIDANT="FAUX"

* ENTIER
W_RANG=0
W_RANGDET=0
W_TOTALHRES=0

* STRING
W_ANCIENAIDANT=""
W_ANCIENSECTEUR=""
W_CODEAIDANT=""
W_CODECONTRAT=""
W_SECTEURACTUEL=""
W_SELECTVIDE=""

* TAB. DYNAMIQUE
ENR_TEMPO=""

********************************************************
* LECTURE FICHIERS                        EN BOUCLE
********************************************************

LOOP
    READNEXT CLE FROM LISTEDETAILHRES ELSE 
         W_REQVIDE="VRAI"
    END
    UNTIL W_REQVIDE="VRAI" DO

    * LECTURE DETAILPREST
    READ ENR_DETAILPREST FROM F.DETAILPREST,CLE ELSE
	 ENR_DETAILPREST=""
    END

    * STOCKE LES CODES AIDANT + CONTRAT
    W_CODEAIDANT=CLE[1,5]
    W_CODECONTRAT=CLE[1,8]

    * LECTURE CIVILAIDANT
    READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CODEAIDANT ELSE
	 ENR_CIVILAIDANT=""
    END

    * LECTURE CONTRAT
    READ ENR_CONTRAT FROM F.CONTRAT,W_CODECONTRAT ELSE
	 ENR_CONTRAT=""
    END

    * STOCKE LE NOUVEAU SECTEUR
    IF W_TRI="1" THEN
	 W_SECTEURACTUEL=ENR_CIVILAIDANT<31>
    END ELSE
	 IF W_TRI="2" THEN
	 	W_SECTEURACTUEL=ENR_CIVILAIDANT<11>
	 END
    END

IF (W_TRI="1" OR W_TRI="2") AND W_SELECT<>"0" THEN
    IF W_SECTEURACTUEL=W_SELECT THEN
       * TEST SI CHANGEMENT DE SECTEUR
       IF W_ANCIENSECTEUR<>W_SECTEURACTUEL THEN
          IF W_ANCIENSECTEUR<>"" AND W_ANCIENSECTEUR<>" " THEN 
*            IF W_RANG<>1 THEN	
*	        ENR_TEMPO<W_RANG,7>="TOTAL"
*	        ENR_TEMPO<W_RANG,8>=W_TOTALHRES/100
*	        W_RANG=W_RANG+1
*	     END

  	     WRITE ENR_TEMPO ON F.TEMPO,W_ENTITE:W_PERIODE:W_ANCIENSECTEUR
	     ENR_TEMPO=""
	     W_RANG=0
	
	     * AFFECTE LES NOUVELLES DONNEES
	     W_ANCIENAIDANT="" ;*W_CODEAIDANT
	     W_ANCIENSECTEUR=W_SECTEURACTUEL
	  END ELSE 	
	     W_ANCIENSECTEUR=W_SECTEURACTUEL
	  END
       END

       * TEST SI AIDANT DEJA AFFECTE
       IF W_ANCIENAIDANT="" OR W_ANCIENAIDANT=" " THEN
	  W_ANCIENAIDANT=W_CODEAIDANT
	  W_RANG=W_RANG+1
       END
 
       * ECRITURE NOUVEL AIDANT
       ENR_TEMPO<W_RANG,1>=W_CODEAIDANT
       ENR_TEMPO<W_RANG,2>=ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
       		
       * AFFECTATION DES AIDES
       GOSUB 10

       ENR_TEMPO<W_RANG,7>="TOTAL"
       ENR_TEMPO<W_RANG,8>=W_TOTALHRES/100
       W_RANG=W_RANG+1
       W_TOTALHRES=0
       W_RANGDET=0
    END
END ELSE

    IF (W_TRI="1" OR W_TRI="2") AND W_SELECT="0" THEN

	 IF W_ANCIENSECTEUR<>W_SECTEURACTUEL THEN

              IF W_ANCIENSECTEUR<>"" AND W_ANCIENSECTEUR<>" " THEN 

*                 IF W_RANG<>1 THEN	
*	              ENR_TEMPO<W_RANG,7>="TOTAL"
*	              ENR_TEMPO<W_RANG,8>=W_TOTALHRES/100
*	              W_RANG=W_RANG+1
*		  END

		  WRITE ENR_TEMPO ON F.TEMPO,W_ENTITE:W_PERIODE:W_ANCIENSECTEUR
		  ENR_TEMPO=""
		  W_RANG=0

		  * AFFECTE LES NOUVELLES DONNEES
		  W_ANCIENAIDANT="" ;*W_CODEAIDANT
		  W_ANCIENSECTEUR=W_SECTEURACTUEL
	      END ELSE 	
		  W_ANCIENSECTEUR=W_SECTEURACTUEL
	      END
	 END

       	* TEST SI AIDANT DEJA AFFECTE
       	IF W_ANCIENAIDANT="" OR W_ANCIENAIDANT=" " THEN
	  	W_ANCIENAIDANT=W_CODEAIDANT
	  	W_RANG=W_RANG+1
	END
	  
	* ECRITURE NOUVEL AIDANT
       	ENR_TEMPO<W_RANG,1>=W_CODEAIDANT
       	ENR_TEMPO<W_RANG,2>=ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
       		
	* AFFECTATION DES AIDES
       	GOSUB 10
		
	ENR_TEMPO<W_RANG,7>="TOTAL"
	ENR_TEMPO<W_RANG,8>=W_TOTALHRES/100
	W_RANG=W_RANG+1
	W_TOTALHRES=0
       	W_RANGDET=0
    END ELSE

       	* TEST SI AIDANT DEJA AFFECTE
       	IF W_ANCIENAIDANT="" OR W_ANCIENAIDANT=" " THEN
	  	W_ANCIENAIDANT=W_CODEAIDANT
	  	W_RANG=W_RANG+1
	END

	* ECRITURE NOUVEL AIDANT
       	ENR_TEMPO<W_RANG,1>=W_CODEAIDANT
       	ENR_TEMPO<W_RANG,2>=ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
       		
	* AFFECTATION DES AIDES
       	GOSUB 10
		
	ENR_TEMPO<W_RANG,7>="TOTAL"
	ENR_TEMPO<W_RANG,8>=W_TOTALHRES/100
	W_RANG=W_RANG+1
	W_TOTALHRES=0
       	W_RANGDET=0
    END
END

REPEAT

*IF W_RANG<>1 THEN
*    ENR_TEMPO<W_RANG,7>="TOTAL"
*    ENR_TEMPO<W_RANG,8>=W_TOTALHRES/100
*    W_RANG=W_RANG+1
*END

* ECRITURE FINALE
IF W_TRI="1" OR W_TRI="2" THEN
    WRITE ENR_TEMPO ON F.TEMPO,W_ENTITE:W_PERIODE:W_ANCIENSECTEUR
END ELSE
    WRITE ENR_TEMPO ON F.TEMPO,W_ENTITE:W_PERIODE
END

STOP

********************************************************
* AFFECTATION DES AIDES AUX AIDANTS

10 *

    W_RANGDET=1

    LOOP 
	 UNTIL ENR_DETAILPREST<1,W_RANGDET>="" DO

         * LECTURE CIVILAIDE // DETAILPREST
         READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_DETAILPREST<1,W_RANGDET> ELSE
	      ENR_CIVILAIDE=""
         END

         * LECTURE ACTIVITE DE L'AIDE
         READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,ENR_DETAILPREST<1,W_RANGDET> ELSE
	      ENR_ACTIVITESAIDE=""
         END

         ENR_TEMPO<W_RANG,3>=ENR_CONTRAT<4>
         ENR_TEMPO<W_RANG,4>=ENR_DETAILPREST<1,W_RANGDET>
         ENR_TEMPO<W_RANG,5>=ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
         ENR_TEMPO<W_RANG,6>=ENR_CIVILAIDE<5>:" ":ENR_CIVILAIDE<6>:" ":ENR_CIVILAIDE<7>:" ":ENR_CIVILAIDE<8>
	 IF ENR_TEMPO<W_RANG,6>="" THEN ENR_TEMPO<W_RANG,6>=ENR_CIVILAIDE<9>
         ENR_TEMPO<W_RANG,7>=ENR_CIVILAIDE<10>:" ":ENR_CIVILAIDE<11>
         ENR_TEMPO<W_RANG,8>=ENR_DETAILPREST<3,W_RANGDET>/100
         IF ENR_ACTIVITESAIDE<5>="1" THEN
              ENR_TEMPO<W_RANG,9>=""
         END ELSE
	      ENR_TEMPO<W_RANG,9>="NON"
         END

         W_TOTALHRES=W_TOTALHRES+ENR_DETAILPREST<3,W_RANGDET>

	 W_RANG=W_RANG+1
         W_RANGDET=W_RANGDET+1
    REPEAT
RETURN
