********************************************
* Programme du calcul des frais de gestion *
*      de prospective                      *
*                                          *
* Grgory                     10/02        *
*                                          *
********************************************

**************************
* OUVERTURE DES FICHIERS * 
**************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE PRINT "DETAILCALCUL"
OPEN "","BAREMEPARTEMP" TO F.BAREMEPARTEMP ELSE PRINT "BAREMEPARTEMP"
OPEN "","BAREMEPARTEMPTEST" TO F.BAREMEPARTEMPTEST ELSE PRINT "BAREMEPARTEMPTEST"
OPEN "","RUBSAISIE" TO F.RUBSAISIE ELSE PRINT "RUBSAISIE"
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "TEMPO"
OPEN "","CONTRAT" TO F.CONTRAT ELSE PRINT "CONTRAT"
OPEN "","ELTSPARTEMP" TO F.ELTSPARTEMP ELSE PRINT "ELTSPARTEMP"
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "CIVILAIDE"
OPEN "","RESPONSABLE" TO F.RESPONSABLE ELSE PRINT "RESPONSABLE"
OPEN "","SECTEUR" TO F.SECTEUR ELSE PRINT "SECTEUR"
OPEN "","SAVEDLISTS" TO F.SAVEDLISTS ELSE PRINT "SAVEDLISTS"

******************************
* RECUPERATION DES ARGUMENTS *
******************************
PROCREAD ARGUMENTS ELSE PRINT "PROCREAD"

W_CODASSO=FIELD(ARGUMENTS,"|",2)
W_PERIODE=FIELD(ARGUMENTS,"|",3)
W_TYPETRI=FIELD(ARGUMENTS,"|",4)
W_CODETRI=FIELD(ARGUMENTS,"|",5)
W_LIBTRI=FIELD(ARGUMENTS,"|",6)
W_USER=FIELD(ARGUMENTS,"|",7)
W_CODESBAREMES=FIELD(ARGUMENTS,"|",8)
W_NBRBAREMES=FIELD(ARGUMENTS,"|",9)

*****************************
* DECLARATION DES VARIABLES *
*****************************

W_BASEFRAISGESTION=0
W_CUMULFRAISGESTION=0
W_MONTANTASSIETTEFRAISGESTION=0
W_ANCIENBAREME1=""

W_TEMP=0

* Frais de gestion d'un aid 
W_FRAISGESTION=0

* Nombre de bulletin majors de l'aid en cours de traitement
W_NBRBULLAIDE=0

* Total des bulletins majors
W_TOTBULMAJ=0

* Total de la majoration des bulletins majors
W_TOTMAJBULLSUPP=0

* Total des aids concerns par la majoration
W_TOTAIDECONCMAJ=0

* Total des aids
W_TOTALAIDES=0

* Pourcentage desaids d'une tranche
W_POURAIDETRANCHE=0

* Pourcentage des frais de gestion
W_POURFRAISTRANCHE=0

* Total des frais de gestion
W_TOTALFRAISGESTION=0

* Nombre de tranche pour un bareme
W_NBRTRANCHE=0

* Pour les baremes qui sont fonction des rub. saisie : Total des aids concerns par la rubrique
W_TOTAIDESCONCRUB=0

W_RANGRUB=0
W_NBRCLE=0
W_DCOUNTRESULTAT=0

W_POURPLUSGRAND=0
W_POURPLUSGRANDAIDE=0
W_INDICEPOURPLUSGRAND=0
W_INDICEPOURPLUSGRANDAIDE=0
W_TOTPOUR=0
W_TOTPOURAIDE=0
W_POURTEMP=0

I=1
J=1
K=1

W_TABLEAURUBRIQUE=""
W_TABLEAU=""
W_ASSIETTEFRAISGESTION=""
W_SELECTION=""
W_ANCIENAIDE=""
W_ANCIENBAREME=""
W_TABLEAUBAREMES=""
W_CODEBAREME=""
W_LIBBAREME=""
W_FONCTIONBAREME=""
W_CODEAIDE=""
W_CODERESPSECTCOM=""
W_ANCIENCODETRI=""
W_ANCIENAIDERUB=""
W_RESULTAT=""
W_VERIF=""

W_FINI="FAUX"

**********************
* TRAITEMENT GENERAL *
**********************

*	EXECUTE 'COMO ON GREG'

	LOOP
		UNTIL I>W_NBRBAREMES DO
		W_TABLEAUBAREMES<1,I>=W_CODESBAREMES[J,2]
		J=J+3
		W_TABLEAUBAREMES<2,I>=W_CODESBAREMES[J,2] 
		J=J+2
		I=I+1
	REPEAT

	* SELECTION EN FONTION DES CHOIX DE L'UTILISATEUR
	IF W_TYPETRI<>"T" AND W_CODETRI<>"" THEN
		IF W_TYPETRI="R" THEN
			W_SELECTION = ' AND AVEC RespAideDetailCalcul = "':W_CODETRI:'"'
		END
		IF W_TYPETRI="S" THEN
			W_SELECTION = ' AND AVEC SecteurAideDetailCalcul = "':W_CODETRI:'"'
		END
		IF W_TYPETRI="C" THEN
			W_SELECTION = ' AND AVEC CommuneAideDetailCalcul = "':W_LIBTRI:'"'
		END
	END

	* TRI EN FONCTION DES CHOIX DE L'UTILISATEUR
	IF W_TYPETRI="R" THEN
		W_SELECTION = W_SELECTION:' PAR NomRespDetailCalcul'
	END		
	IF W_TYPETRI="S" THEN
		W_SELECTION = W_SELECTION:' PAR NomSectDetailCalcul'
	END		
	IF W_TYPETRI="C" THEN
		W_SELECTION = W_SELECTION:' PAR CommuneAideDetailCalcul'
	END

***	EXECUTE 'SSELECT DETAILCALCUL AVEC CodeAideDetailCalcul = "00298" AND AVEC ConvColContratDetailCalcul = "':"02":'" AND AVEC CodAssoContratDetailCalcul = "':W_CODASSO:'" AND AVEC PeriodeDetailCalcul = "':W_PERIODE:'" ':W_SELECTION:' PAR CodeBarem PAR NomPrenomAideDetailCalcul' 
	EXECUTE 'SSELECT DETAILCALCUL AVEC ConvColContratDetailCalcul = "':"02":'" AND AVEC CodAssoContratDetailCalcul = "':W_CODASSO:'" AND AVEC PeriodeDetailCalcul = "':W_PERIODE:'" ':W_SELECTION:' PAR CodeBarem PAR NomPrenomAideDetailCalcul' 
	
	EXECUTE 'SAUVE-LISTE W_RESULTAT'
	EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE	

	IF MSGCODE<1> # 209 THEN
                SELECT F.DETAILCALCUL TO W_RESULTAT
		W_DCOUNTRESULTAT=MSGCODE<1,2>
		ENR_TEMPO=""
		GOSUB 50
		GOSUB 150
		IF ENR_TEMPO<1,1,1>="" THEN
			ENR_TEMPO="RIEN"
		END
		WRITE ENR_TEMPO ON F.TEMPO,"BAREMEPARTEMPTEST":W_USER
	END ELSE
		ENR_TEMPO="RIEN"
		WRITE ENR_TEMPO ON F.TEMPO,"BAREMEPARTEMPTEST":W_USER
	END

*	EXECUTE 'COMO OFF'
STOP

***************************
* LECTURE DE DETAILCALCUL *
***************************

50
	LOOP
		READNEXT W_CLE FROM W_RESULTAT ELSE W_FINI="VRAI"
	WHILE W_FINI="FAUX" DO

		W_NBRCLE=W_NBRCLE+1

		READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,W_CLE ELSE PRINT "DETAILCALCUL"
		READ ENR_CONTRAT FROM F.CONTRAT,W_CLE[1,8] ELSE PRINT "CONTRAT"
		READ ENR_ELTSPARTEMP FROM F.ELTSPARTEMP,ENR_CONTRAT<3> ELSE PRINT "ELTSPARTEMP"

		IF ENR_ELTSPARTEMP<13><>"" THEN
			GOSUB 60
*			GOSUB 100
			READ ENR_BAREMEPARTEMPTEST FROM F.BAREMEPARTEMPTEST,W_CODEBAREME ELSE PRINT "BAREMEPARTEMPTEST"
			GOSUB 110
		END
	REPEAT
	GOSUB 70
	GOSUB 100

RETURN

************************************************
* Ecriture du fichier TEMPO en fonction du tri *
************************************************

60

	W_CODEAIDE=ENR_CONTRAT<3>
 
	I=1
	LOOP
		UNTIL W_TABLEAUBAREMES<1,I>=ENR_ELTSPARTEMP<13> OR I=W_NBRBAREMES DO
		I=I+1
	REPEAT
**
	W_CODEBAREME=W_TABLEAUBAREMES<2,I>
	W_CODEBAREME1=W_TABLEAUBAREMES<1,I>
**

	IF W_ANCIENBAREME="" THEN
		W_ANCIENBAREME=W_CODEBAREME
	END
	
	IF W_ANCIENBAREME1="" THEN
		W_ANCIENBAREME1=W_CODEBAREME1
	END

	IF W_TYPETRI<>"T" THEN
		READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CODEAIDE ELSE PRINT "CIVILAIDE"
		IF W_TYPETRI="C" THEN
			W_CODERESPSECTCOM=ENR_CIVILAIDE<10>:" ":ENR_CIVILAIDE<11>
		END ELSE
			IF W_TYPETRI="R" THEN
				READ ENR_RESPONSABLE FROM F.RESPONSABLE,ENR_CIVILAIDE<39> ELSE PRINT "RESPONSABLE"
				W_CODERESPSECTCOM=ENR_CIVILAIDE<39>:" ":ENR_RESPONSABLE<1>
			END ELSE
				IF W_TYPETRI="S" THEN
					READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE PRINT "SECTEUR"
					W_CODERESPSECTCOM=ENR_CIVILAIDE<40>[1,3]:" ":ENR_SECTEUR<1>
				END
			END
		END				
	END ELSE
		W_CODERESPSECTCOM=""
	END
	
	IF W_ANCIENCODETRI="" AND W_CODERESPSECTCOM<>"" THEN
		W_ANCIENCODETRI=W_CODERESPSECTCOM
	END

	READ ENR_BAREMEPARTEMPTEST FROM F.BAREMEPARTEMPTEST,W_CODEBAREME ELSE PRINT "BAREMEPARTEMPTEST"
	W_LIBBAREME=ENR_BAREMEPARTEMPTEST<1>
	W_FONCTIONBAREME=ENR_BAREMEPARTEMPTEST<2>

*	I=1
*	W_NBRTRANCHE=0
*	LOOP
*		UNTIL ENR_BAREMEPARTEMPTEST<3,I>="" DO
*		W_NBRTRANCHE=W_NBRTRANCHE+1
*		I=I+1
*	REPEAT 	
		
	IF W_ANCIENAIDE="" THEN
		W_ANCIENAIDE=W_CODEAIDE
	END

	IF W_ANCIENAIDE<>W_CODEAIDE THEN
		GOSUB 70
	END

**	IF W_ANCIENBAREME<>W_CODEBAREME OR W_ANCIENBAREME1<>W_CODEBAREME1 OR W_ANCIENCODETRI<>W_CODERESPSECTCOM THEN
	IF W_ANCIENBAREME1<>W_CODEBAREME1 OR W_ANCIENCODETRI<>W_CODERESPSECTCOM THEN
		W_TOTTABAIDES=0
		TEMP_TABLEAU=1
		LOOP
			UNTIL W_TABLEAU<1,TEMP_TABLEAU>="" DO
			W_TOTTABAIDES=W_TOTTABAIDES+W_TABLEAU<1,TEMP_TABLEAU>
			TEMP_TABLEAU=TEMP_TABLEAU+1
		REPEAT 
		IF W_TOTALAIDES#W_TOTTABAIDES THEN
		W_TOTBULMAJ=W_TOTBULMAJ-1			
		END
		W_TOTALAIDES=W_TOTTABAIDES
		W_TOTAIDECONCMAJ=W_TOTALAIDES
		GOSUB 100
	END		

RETURN

****************************************
* Traitement lorsque changement d'aide *       
****************************************

70

	READ ENR_BAREMEPARTEMPTEST FROM F.BAREMEPARTEMPTEST,W_ANCIENBAREME ELSE PRINT "BAREMEPARTEMPTEST"
	* CALCULE LA VALEUR DES FRAIS DE GESTION
	IF ENR_BAREMEPARTEMPTEST<2><>4 THEN
		* RECHERCHE RANG DANS BAREME
		I=1
		LOOP 
			UNTIL ENR_BAREMEPARTEMPTEST<4,I>>W_CUMULFRAISGESTION AND ENR_BAREMEPARTEMPTEST<3,I><=W_CUMULFRAISGESTION OR ENR_BAREMEPARTEMPTEST<3,I>="" DO
			I=I+1
		REPEAT

		* APPLIQUE LA PART FIXE + COMPLEMENT

		IF ENR_BAREMEPARTEMPTEST<3,I><>"" THEN
			IF ENR_BAREMEPARTEMPTEST<2>=3 THEN
				W_FRAISGESTION=ENR_BAREMEPARTEMPTEST<5,I>+((W_CUMULFRAISGESTION-ENR_BAREMEPARTEMPTEST<3,I>)*(ENR_BAREMEPARTEMPTEST<6,I>/10000))
			END ELSE
				W_FRAISGESTION=ENR_BAREMEPARTEMPTEST<5,I>+((W_CUMULFRAISGESTION-ENR_BAREMEPARTEMPTEST<3,I>)*(ENR_BAREMEPARTEMPTEST<6,I>/100))
			END
			W_FRAISGESTION=INT((W_FRAISGESTION)+1/2)
		END ELSE
			W_FRAISGESTION=0
		END
		W_TABLEAU<1,I>=W_TABLEAU<1,I>+1
		W_TABLEAU<2,I>=W_TABLEAU<2,I>+W_FRAISGESTION
		W_TOTALFRAISGESTION=W_TOTALFRAISGESTION+W_FRAISGESTION
	END
	IF ENR_BAREMEPARTEMPTEST<8><>"" THEN
		W_MAJBULLSUPP=(W_NBRBULLAIDE-1)*ENR_BAREMEPARTEMPTEST<8>
		W_TOTMAJBULLSUPP=W_TOTMAJBULLSUPP+W_MAJBULLSUPP
		W_TOTAIDECONCMAJ=W_TOTAIDECONCMAJ+1
		W_NBRBULLAIDE=0
**		W_TABLEAU<2,I>=W_TABLEAU<2,I>+W_MAJBULLSUPP
	END
	W_TOTALAIDES=W_TOTALAIDES+1
	W_CUMULFRAISGESTION=0
	W_BASEFRAISGESTION=0
	W_ANCIENAIDE=W_CODEAIDE

RETURN

*********************************************************************
* Lorsque changement de bareme ou de libelle de tri ou derniere cle *
*********************************************************************

100

	IF W_ANCIENBAREME<>W_CODEBAREME THEN
		READ ENR_BAREMEPARTEMPTEST FROM F.BAREMEPARTEMPTEST,W_ANCIENBAREME ELSE PRINT "BAREMEPARTEMPTEST"
		W_LIBBAREME=ENR_BAREMEPARTEMPTEST<1>
		W_FONCTIONBAREME=ENR_BAREMEPARTEMPTEST<2>
	END

	I=1
	W_NBRTRANCHE=0
	LOOP
		UNTIL ENR_BAREMEPARTEMPTEST<3,I>="" DO
		W_NBRTRANCHE=W_NBRTRANCHE+1
		I=I+1
	REPEAT 	

	GOSUB 150
	IF W_ANCIENBAREME<>W_CODEBAREME THEN
		W_ANCIENBAREME=W_CODEBAREME
	END
	IF W_ANCIENBAREME1<>W_CODEBAREME1 THEN
		W_ANCIENBAREME1=W_CODEBAREME1
	END
	IF W_ANCIENCODETRI<>W_CODERESPSECTCOM THEN
		W_ANCIENCODETRI=W_CODERESPSECTCOM
	END

RETURN

************************
* Traitement de l'aid *
************************

110

	IF ENR_BAREMEPARTEMPTEST<8><>"" THEN
		W_NBRBULLAIDE=W_NBRBULLAIDE+1
		W_TOTBULMAJ=W_TOTBULMAJ+1
	END
	
	* SI FONCTION DU BRUT ACQUIS       
   	IF ENR_BAREMEPARTEMPTEST<2>=3 THEN
  		W_BASEFRAISGESTION=W_BASEFRAISGESTION+ENR_DETAILCALCUL<7>
     		W_CUMULFRAISGESTION=W_CUMULFRAISGESTION+ENR_DETAILCALCUL<7>
	END
	
	* SI FONCTION HRES PAYEES  
        IF ENR_BAREMEPARTEMPTEST<2>=2 THEN
	    	W_BASEFRAISGESTION=W_BASEFRAISGESTION+ENR_DETAILCALCUL<6>
      		W_CUMULFRAISGESTION=W_CUMULFRAISGESTION+ENR_DETAILCALCUL<6>
	END

	* SI FONCTION HRES TRAVAILLEES
	IF ENR_BAREMEPARTEMPTEST<2>=1 THEN
  		I=1
    		LOOP
	       		UNTIL ENR_DETAILCALCUL<2,I>="" DO

         		* LECTURE RUBRIQUE DE SAISIE
 		        READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETAILCALCUL<2,I> ELSE
			END
	
			* SI RUBRIQUE TYPE M.O.D OU M.O.D J.F
		        IF ENR_RUBSAISIE<2>="3" OR ENR_RUBSAISIE<2>="4" THEN
				IF ENR_RUBSAISIE<8>="2" THEN
					IF ENR_RUBSAISIE<9>>="1000000" THEN
						W_BASEFRAISGESTION=W_BASEFRAISGESTION+ENR_DETAILCALCUL<3,I>
	  		       			W_CUMULFRAISGESTION=W_CUMULFRAISGESTION+ENR_DETAILCALCUL<3,I>
			  		END ELSE
						W_BASEFRAISGESTION=W_BASEFRAISGESTION+INT((ENR_DETAILCALCUL<3,I>*ENR_RUBSAISIE<9>/1000000)+1/2)
		  		        	W_CUMULFRAISGESTION=W_CUMULFRAISGESTION+INT((ENR_DETAILCALCUL<3,I>*ENR_RUBSAISIE<9>/1000000)+1/2)
				    	END
			       	END ELSE
					W_BASEFRAISGESTION=W_BASEFRAISGESTION+ENR_DETAILCALCUL<3,I>
			    		W_CUMULFRAISGESTION=W_CUMULFRAISGESTION+ENR_DETAILCALCUL<3,I>
		       		END
			END
  			I=I+1
   		REPEAT
	END

	* SI FONCTION DES RUBRIQUES DE SAISIES
	IF ENR_BAREMEPARTEMPTEST<2>=4 THEN
		W_ASSIETTEFRAISGESTION<1,2>=0
		W_ASSIETTEFRAISGESTION<1,3>=0
		I=1
		LOOP
       			UNTIL ENR_DETAILCALCUL<2,I>="" DO

	 		* RECHERCHE SI RUB. PRESENTE DANS BAREMEPARTEMPTEST
	 		J=1
	 		LOOP	
      				UNTIL ENR_BAREMEPARTEMPTEST<9,J>=ENR_DETAILCALCUL<2,I> OR ENR_BAREMEPARTEMPTEST<9,J>="" DO
      				J=J+1
	 		REPEAT

		 	* SI RUB. PRESENTE
	 		IF ENR_BAREMEPARTEMPTEST<9,J>=ENR_DETAILCALCUL<2,I> THEN
				READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_BAREMEPARTEMPTEST<9,J> ELSE PRINT "RUBSAISIE"
				O=1
				LOOP 
					UNTIL W_TABLEAURUBRIQUE<1,O>=ENR_BAREMEPARTEMPTEST<9,J> OR W_TABLEAURUBRIQUE<1,O>="" DO
					O=O+1
				REPEAT
				IF W_ANCIENAIDERUB="" THEN
					W_ANCIENAIDERUB=W_CODEAIDE
				END
				W_TABLEAURUBRIQUE<1,O>=ENR_BAREMEPARTEMPTEST<9,J>
				W_TABLEAURUBRIQUE<2,O>=ENR_RUBSAISIE<1>
				W_VERIFAIDEPRESENT="FAUX"
				P=1
				LOOP
					UNTIL P>LEN(TRIM(W_TABLEAURUBRIQUE<5,O>)) OR W_TABLEAURUBRIQUE<5,O>[P,5]=W_CODEAIDE DO
					P=P+5
				REPEAT
				IF W_ANCIENAIDERUB<>W_CODEAIDE OR W_RANGRUB<>O AND P>LEN((W_TABLEAURUBRIQUE<5,O>)) THEN
					W_TABLEAURUBRIQUE<3,O>=W_TABLEAURUBRIQUE<3,O>+1
					W_TABLEAURUBRIQUE<5,O>=W_TABLEAURUBRIQUE<5,O>:W_CODEAIDE
					W_TOTAIDESCONCRUB=W_TOTAIDESCONCRUB+1
					W_ANCIENAIDERUB=W_CODEAIDE	
				END
	      			* RECHERCHE SI RUB. DEJA AFFECTEE
	      			GOSUB 200

		      		W_ASSIETTEFRAISGESTION<Z,1>=ENR_DETAILCALCUL<2,I>
	      			IF ENR_BAREMEPARTEMPTEST<10,J>="B" THEN
	           			W_ASSIETTEFRAISGESTION<Z,2>=W_ASSIETTEFRAISGESTION<Z,2>+INT((ENR_DETAILCALCUL<3,I>*ENR_BAREMEPARTEMPTEST<11,J>/1000)+1/2)
      				END ELSE		      
           				W_ASSIETTEFRAISGESTION<Z,2>=W_ASSIETTEFRAISGESTION<Z,2>+INT((ENR_DETAILCALCUL<5,I>*ENR_BAREMEPARTEMPTEST<11,J>/1000)+1/2)
      				END
      
	      			W_ASSIETTEFRAISGESTION<Z,3>=W_ASSIETTEFRAISGESTION<Z,3>+ENR_DETAILCALCUL<3,I>
		      		W_ASSIETTEFRAISGESTION<Z,4>=ENR_BAREMEPARTEMPTEST<11,J>

	      			W_MONTANTASSIETTEFRAISGEST=W_MONTANTASSIETTEFRAISGEST+W_ASSIETTEFRAISGESTION<Z,2>
				W_TABLEAURUBRIQUE<4,O>=W_TABLEAURUBRIQUE<4,O>+W_ASSIETTEFRAISGESTION<Z,2>
				W_TOTALFRAISGESTION=W_TOTALFRAISGESTION+W_ASSIETTEFRAISGESTION<Z,2>
			END
		        I=I+1
    		REPEAT
	END

RETURN

***************************************************************************
* Traitement des renseignements apres changement de bareme ou de libbelle *
***************************************************************************

150

	IF ENR_BAREMEPARTEMPTEST<2>=4 THEN
		IF W_TOTALFRAISGESTION=0 THEN
			W_RUBOK="FAUX"
		END ELSE
			W_RUBOK="VRAI"
		END
	END ELSE
		W_RUBOK="VRAI"
	END
	IF W_TOTALAIDES<>0 AND W_RUBOK="VRAI" THEN
		J=1
		IF W_ANCIENCODETRI<>"" THEN
			IF W_TYPETRI="R" THEN
				ENR_TEMPO<1,K,J>="Responsable : ":W_ANCIENCODETRI
				J=J+1
			END ELSE
				IF W_TYPETRI="S" THEN
					ENR_TEMPO<1,K,J>="Secteur : ":W_ANCIENCODETRI
					J=J+1
				END ELSE
					IF W_TYPETRI="C" THEN
						ENR_TEMPO<1,K,J>="Commune : ":W_ANCIENCODETRI
						J=J+1
					END
				END
			END
		END
		W_BOUCLEBAREME=0
		LOOP
			UNTIL W_TABLEAUBAREMES<2,W_BOUCLEBAREME>=W_ANCIENBAREME OR W_TABLEAUBAREMES<2,W_BOUCLEBAREME>="" DO
			W_BOUCLEBAREME=W_BOUCLEBAREME+1
		REPEAT
		IF W_ANCIENBAREME=W_TABLEAUBAREMES<2,W_BOUCLEBAREME> THEN
*****			READ ENR_BAREMEPARTEMP FROM F.BAREMEPARTEMP,W_TABLEAUBAREMES<1,W_BOUCLEBAREME> ELSE PRINT "BAREMEPARTEMP"
*****			ENR_TEMPO<1,K,J>="Barme actuel : ":W_TABLEAUBAREMES<1,W_BOUCLEBAREME>:" ":ENR_BAREMEPARTEMP<1>
			READ ENR_BAREMEPARTEMP FROM F.BAREMEPARTEMP,W_ANCIENBAREME1 ELSE PRINT "BAREMEPARTEMP"
			ENR_TEMPO<1,K,J>="Barme actuel : ":W_ANCIENBAREME1:" ":ENR_BAREMEPARTEMP<1>
			IF ENR_BAREMEPARTEMP<2>="1" THEN
				ENR_TEMPO<1,K,J>=ENR_TEMPO<1,K,J>:"     -     Fonction des heures travailles"
			END ELSE
				IF ENR_BAREMEPARTEMP<2>="2" THEN
					ENR_TEMPO<1,K,J>=ENR_TEMPO<1,K,J>:"     -     Fonction des heures payes"
				END ELSE
					IF ENR_BAREMEPARTEMP<2>="3" THEN
						ENR_TEMPO<1,K,J>=ENR_TEMPO<1,K,J>:"     -     Fonction du brut acquis"
					END ELSE
						ENR_TEMPO<1,K,J>=ENR_TEMPO<1,K,J>:"     -     Fonction des rubriques de saisie"
					END
				END
			END
			J=J+1
		END	

		ENR_TEMPO<1,K,J>="Barme de prospective : ":W_ANCIENBAREME:" ":W_LIBBAREME
		IF W_FONCTIONBAREME="1" THEN
			ENR_TEMPO<1,K,J>=ENR_TEMPO<1,K,J>:"     -     Fonction des heures travailles"
		END ELSE
			IF W_FONCTIONBAREME="2" THEN
				ENR_TEMPO<1,K,J>=ENR_TEMPO<1,K,J>:"     -     Fonction des heures payes"
			END ELSE	
				IF W_FONCTIONBAREME="3" THEN
					ENR_TEMPO<1,K,J>=ENR_TEMPO<1,K,J>:"     -     Fonction du brut acquis"
				END ELSE
					ENR_TEMPO<1,K,J>=ENR_TEMPO<1,K,J>:"     -     Fonction des rubriques de saisie"
					O=1
					LOOP
						UNTIL W_TABLEAURUBRIQUE<1,O>="" DO
						O=O+1
					REPEAT
					W_NBRTRANCHE=O
				END
			END
		END	
		J=J+1
		ENR_TEMPO<1,K,J>="              DETAIL DU BAREME                       NOMBRE D'AIDES       % AIDES      MONTANT FRAIS       % FRAIS DE"
		J=J+1	
		ENR_TEMPO<1,K,J>="                                                                                        DE GESTION          GESTION"	
		I=1

		W_TOTPOUR=0
		W_TOTPOURAIDE=0
		IF W_FONCTIONBAREME<>4 THEN
			GOSUB 160
		END ELSE
			GOSUB 170			
		END

		W_TOTPOURAIDE=W_TOTPOURAIDE "R2"
		IF W_TOTPOURAIDE<100 THEN
			W_POURTEMP=ENR_TEMPO<1,K,W_INDICEPOURPLUSGRANDAIDE>[76,5]
			W_POURTEMP=W_POURTEMP+(100-W_TOTPOURAIDE)
			ENR_TEMPO<1,K,W_INDICEPOURPLUSGRANDAIDE>[76,5]=W_POURTEMP
		END ELSE
			IF W_TOTPOURAIDE>100 THEN
				W_POURTEMP=ENR_TEMPO<1,K,W_INDICEPOURPLUSGRANDAIDE>[76,5]
				W_POURTEMP=W_POURTEMP-(W_TOTPOURAIDE-100)
				ENR_TEMPO<1,K,W_INDICEPOURPLUSGRANDAIDE>[76,5]=W_POURTEMP	
			END
		END

		W_TOTPOUR=W_TOTPOUR "R2"
		IF W_TOTPOUR<100 THEN
			W_POURTEMP=ENR_TEMPO<1,K,W_INDICEPOURPLUSGRAND>[112,5]
			W_POURTEMP=W_POURTEMP+(100-W_TOTPOUR)
			ENR_TEMPO<1,K,W_INDICEPOURPLUSGRAND>[112,5]=W_POURTEMP
		END ELSE
			IF W_TOTPOUR>100 THEN
				W_POURTEMP=ENR_TEMPO<1,K,W_INDICEPOURPLUSGRAND>[112,5]
				W_POURTEMP=W_POURTEMP-(W_TOTPOURAIDE-100)
				ENR_TEMPO<1,K,W_INDICEPOURPLUSGRAND>[112,5]=W_POURTEMP	
			END
		END

		W_TOTALAIDES=W_TOTALAIDES "R(#6)"
		W_TOTALFRAISGESTION=W_TOTALFRAISGESTION "MR2,"
		W_TOTALFRAISGESTION=W_TOTALFRAISGESTION "R(#12)"
		ENR_TEMPO<1,K,J>="                                                  TOTAL : ":W_TOTALAIDES:SPACE(29-LEN(W_TOTALAIDES)):W_TOTALFRAISGESTION
		IF ENR_BAREMEPARTEMPTEST<8><>"" THEN
			J=J+1
			ENR_TEMPO<1,K,J>="  Majoration par bulletin : ":W_TOTBULMAJ:" bulletins concernant ":W_TOTAIDECONCMAJ:" aid(s) pour un montant de ":W_TOTMAJBULLSUPP/100:" Euros"
			W_TOTMAJBULLSUPP=0
		END	
		K=K+1
		W_TOTALFRAISGESTION=0
		W_TOTALAIDES=0
		W_TOTBULMAJ=0
		W_TOTAIDECONCMAJ=0
		W_TOTMAJBULSUPP=0
	END
	
RETURN

************************************************************
* Ecriture dans TEMPO si Fonction differente des rubriques *
************************************************************

160

	LOOP
		UNTIL I>W_NBRTRANCHE DO
		IF W_TABLEAU<1,I>="" THEN
			W_TABLEAU<1,I>=0
			W_TABLEAU<2,I>=0
		END
		W_POURAIDETRANCHE=(W_TABLEAU<1,I>/W_TOTALAIDES)*100
		W_TOTPOURAIDE=W_TOTPOURAIDE+W_POURAIDETRANCHE
		W_POURAIDETRANCHE=W_POURAIDETRANCHE "R2"
		W_POURAIDETRANCHE=W_POURAIDETRANCHE "R(#6)"
		IF W_TOTALFRAISGESTION<>0 THEN
			W_POURFRAISTRANCHE=(W_TABLEAU<2,I>/W_TOTALFRAISGESTION)*100
		END ELSE
			W_POURFRAISTRANCHE=0
		END
		W_POURFRAISTRANCHE=W_POURFRAISTRANCHE "R2"
		W_TOTPOUR=W_TOTPOUR+W_POURFRAISTRANCHE
		W_POURFRAISTRANCHE=W_POURFRAISTRANCHE "R(#6)"
		J=J+1
		W_TEMP1=(ENR_BAREMEPARTEMPTEST<3,I>/100) "R2"
		W_TEMP1=W_TEMP1 "R(#8)"
		W_TEMP2=(ENR_BAREMEPARTEMPTEST<4,I>/100) "R2"
		W_TEMP2=W_TEMP2 "R(#8)"
		W_TRANCHE="De ":W_TEMP1:" A ":W_TEMP2
		ENR_TEMPO<1,K,J>="              De ":W_TEMP1:" A ":W_TEMP2:SPACE(44-LEN(W_TRANCHE))
		W_TABLEAU<1,I>=W_TABLEAU<1,I> "R(#6)"
		W_TABLEAU<2,I>=W_TABLEAU<2,I> "MR2,"
		W_TABLEAU<2,I>=W_TABLEAU<2,I> "R(#10)"
		ENR_TEMPO<1,K,J>=ENR_TEMPO<1,K,J>:W_TABLEAU<1,I>:SPACE(16-LEN(W_TABLEAU<1,I>)):W_POURAIDETRANCHE:SPACE(15-LEN(W_POURAIDETRANCHE)):W_TABLEAU<2,I>:SPACE(21-LEN(W_TABLEAU<2,I>)):W_POURFRAISTRANCHE
		IF W_POURAIDETRANCHE>W_POURPLUSGRANDAIDE OR W_POURPLUSGRANDAIDE=0 THEN
			W_INDICEPOURPLUSGRANDAIDE=J
			W_POURPLUSGRANDAIDE=W_POURAIDETRANCHE
		END
		IF W_POURFRAISTRANCHE>W_POURPLUSGRAND OR W_POURPLUSGRAND=0 THEN
			W_INDICEPOURPLUSGRAND=J
			W_POURPLUSGRAND=W_POURFRAISTRANCHE
		END
		J=J+1
		W_TABLEAU<1,I>=0
		W_TABLEAU<2,I>=0
		I=I+1
	REPEAT
RETURN

***********************************************************
* Ecriture dans TEMPO si Fonction des rubriques de saisie *
***********************************************************

170

	W_NBRTRANCHE=1
	LOOP
		UNTIL W_TABLEAURUBRIQUE<1,W_NBRTRANCHE>="" DO
		W_NBRTRANCHE=W_NBRTRANCHE+1
	REPEAT
	W_NBRTRANCHE=W_NBRTRANCHE-1
	LOOP
		UNTIL I>W_NBRTRANCHE DO
		W_POURAIDETRANCHE=(W_TABLEAURUBRIQUE<3,I>/W_TOTAIDESCONCRUB)*100
		W_TOTPOURAIDE=W_TOTPOURAIDE+W_POURAIDETRANCHE
		W_POURAIDETRANCHE=W_POURAIDETRANCHE "R2"
		W_POURAIDETRANCHE=W_POURAIDETRANCHE "R(#6)"
		IF W_TOTALFRAISGESTION<>0 THEN
			W_POURFRAISTRANCHE=(W_TABLEAURUBRIQUE<4,I>/W_TOTALFRAISGESTION)*100
		END ELSE
			W_POURFRAISTRANCHE=0
		END
		W_TOTPOUR=W_TOTPOUR+W_POURFRAISTRANCHE
		W_POURFRAISTRANCHE=W_POURFRAISTRANCHE "R2"
		W_POURFRAISTRANCHE=W_POURFRAISTRANCHE "R(#6)"
		J=J+1		
		W_TRANCHE=W_TABLEAURUBRIQUE<1,I>:" ":W_TABLEAURUBRIQUE<2,I>[1,33]
		ENR_TEMPO<1,K,J>="              ":W_TRANCHE:SPACE(44-LEN(W_TRANCHE))
		W_TABLEAURUBRIQUE<3,I>=W_TABLEAURUBRIQUE<3,I> "R(#6)"
		W_TABLEAURUBRIQUE<4,I>=W_TABLEAURUBRIQUE<4,I> "MR2,"
		W_TABLEAURUBRIQUE<4,I>=W_TABLEAURUBRIQUE<4,I> "R(#10)"
		ENR_TEMPO<1,K,J>=ENR_TEMPO<1,K,J>:W_TABLEAURUBRIQUE<3,I>:SPACE(16-LEN(W_TABLEAURUBRIQUE<3,I>)):W_POURAIDETRANCHE:SPACE(15-LEN(W_POURAIDETRANCHE)):W_TABLEAURUBRIQUE<4,I>:SPACE(21-LEN(W_TABLEAURUBRIQUE<4,I>)):W_POURFRAISTRANCHE
		IF W_POURAIDETRANCHE>W_POURPLUSGRANDAIDE OR W_POURPLUSGRANDAIDE=0 THEN
			W_INDICEPOURPLUSGRANDAIDE=J
		END
		IF W_POURFRAISTRANCHE>W_POURPLUSGRAND OR W_POURPLUSGRAND=0 THEN
			W_INDICEPOURPLUSGRAND=J
		END
		J=J+1
		W_TABLEAURUBRIQUE<1,I>=""
		W_TABLEAURUBRIQUE<2,I>=""
		W_TABLEAURUBRIQUE<3,I>=0
		W_TABLEAURUBRIQUE<4,I>=0
		I=I+1
	REPEAT
RETURN

***********************************************************
* RECHERCHE SI RUB. SAISIE DEJA AFFECTEE // FRAIS GESTION *
***********************************************************

200

    Z=1
    LOOP 
	 UNTIL W_ASSIETTEFRAISGESTION<P,1>=ENR_DETAILCALCUL<2,I> OR W_ASSIETTEFRAISGESTION<Z,1>="" DO
	 Z=Z+1
    REPEAT

RETURN
