*********************************************************
* CALCUL DES PROVISIONS POUR DEPART EN RETRAITE	 	*
* VANESSA			DECEMBRE 2005		*
*********************************************************
* ouverture de fichiers
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE PRINT "OUVERTURE ACTIVITES" ;* en lecture
OPEN "","SECTEUR" TO F.SECTEUR ELSE PRINT "OUVERTURE SECTEUR" ;* en lecture
OPEN "","STATAIDANT" TO F.STATAIDANT ELSE PRINT "OUVERTURE STATAIDANT" ;* en lecture criture
OPEN "","TABLES" TO F.TABLES ELSE PRINT "OUVERTURE TABLES" ;* en lecture
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en lecture criture

*********************************************************
* Recuperation des arguments

PROCREAD ARGUMENTS ELSE STOP
W_Entite=FIELD(ARGUMENTS,"|",2)
W_DateArrete=FIELD(ARGUMENTS,"|",3)
W_Tri=FIELD(ARGUMENTS,"|",4)
* S ou C ou A
W_Edition=FIELD(ARGUMENTS,"|",5)
* L ou G
W_User=FIELD(ARGUMENTS,"|",6)
W_Sect=FIELD(ARGUMENTS,"|",7)
W_AgeRetraite=FIELD(ARGUMENTS,"|",8)
W_TauxAct=FIELD(ARGUMENTS,"|",9)
W_Budget=FIELD(ARGUMENTS,"|",10)
IF W_Budget="1" THEN
	OPEN "","BUDGETFICHPERSO" TO F.CONTRAT ELSE PRINT "OUVERTURE CONTRAT" ;* en lecture
	OPEN "","BUDGETFICHPERSO" TO F.CIVILAIDANT ELSE PRINT "OUVERTURE CIVILAIDANT" ;* en lecture
END ELSE
	OPEN "","CONTRAT" TO F.CONTRAT ELSE PRINT "OUVERTURE CONTRAT" ;* en lecture
	OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "OUVERTURE CIVILAIDANT" ;* en lecture
END
W_Taux=100+(W_TauxAct/100)
*********************************************************
* PROGRAMME PRINCIPAL

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"

W_Req=""
W_Fichier=""
W_Ligne=1
W_SectAnal=""

IF FIELD(W_Sect,";",1) # "" THEN
	i=1
	LOOP 
		W_Field=FIELD(W_Sect,";",i)
	WHILE W_Field # "" DO
      		W_SectAnal<i>=W_Field
      		i=i+1
	REPEAT
END ELSE
	W_SectAnal=W_Sect
END

	READ ENR_MORTALITE FROM F.TABLES,"MORTALITE" ELSE ENR_MORTALITE=""
	READ ENR_SECTANAL FROM F.TABLES,"SECTANAL" ELSE ENR_SECTANAL=""

	IF W_Edition="G" THEN
		W_Fichier<1>=""
		IF W_Tri = "S" THEN
			W_Fichier<1>="Secteur;"
		END ELSE
			IF W_Tri = "C" THEN
				W_Fichier<1>="Commune;"
			END
		END
		W_Fichier<1>=W_Fichier<1>:"Code Aidant;Nom-prnom aidant;Date entre;Date de naissance;Salaire de rfrence;Anciennet actuelle;Anciennet au terme;Droits au terme;Indice de mortalit;"
		W_Count=DCOUNT(W_SectAnal,CHAR(254))
		FOR i=1 TO W_Count		
			W_Fichier<1>=W_Fichier<1>:"Section analytique ":i:";% section ":i:";Montant indemnit section ":i:";"			
		NEXT i
		W_Ligne=2
	END ELSE
		W_TotalParSect=""
		W_TotalGene=0
		W_TotalSectRupt=""
		W_TotalRupt=0
	END

	W_PeriodeArrete=OCONV(W_DateArrete,"D4/")
	W_AnneeBudget=W_PeriodeArrete[7,4]
	W_PeriodeArrete=W_PeriodeArrete[7,4]:W_PeriodeArrete[4,2]
	W_PeriodeArrete=W_PeriodeArrete+1
	IF W_PeriodeArrete[5,2]=13 THEN
		W_PeriodeArreteAA=W_PeriodeArrete[1,4]+1
		W_PeriodeArrete=W_PeriodeArreteAA:"01"
	END
	W_PeriodeArrete=W_PeriodeArrete:"|":W_AgeRetraite
	IF W_Budget="1" THEN
		W_Temp = 'SELECT BUDGETFICHPERSO AVEC CodeAsso = "':W_Entite:'" AND AVEC 6 = "I" AND AVEC Annee = "':W_AnneeBudget:'"'
		W_Temp = W_Temp:' AND AVEC 8 <= "':W_DateArrete:'" AND AVEC 23 > "':W_DateArrete:'" OR = ""'  
	END ELSE
		W_Temp = 'SELECT CONTRAT AVEC 65 = "" AND AVEC 2 = "':W_Entite:'" AND AVEC 1 # "02" AND AVEC 4 = "I"'
		W_Temp = W_Temp:' AND AVEC 7 <= "':W_DateArrete:'" AND AVEC 8 > "':W_DateArrete:'" OR = ""'
	END

	W_Count=DCOUNT(W_SectAnal,CHAR(254))
	IF W_Count = 1 THEN
		IF W_Budget="1" THEN
			W_Temp = W_Temp:' AND AVEC SectionAnal = "':W_SectAnal:'"'
		END ELSE
			W_Temp = W_Temp:' AND AVEC SectAnalContrat = "':W_SectAnal:'"'
		END
	END

	IF W_Tri="S" THEN
		IF W_Budget="1" THEN
			W_Temp = W_Temp:' PAR LibSecteur'
		END ELSE
			W_Temp = W_Temp:' PAR LibSecteurContrat'
		END
	END ELSE
		IF W_Tri="C" THEN
			IF W_Budget="1" THEN
				W_Temp = W_Temp:' PAR 5'
			END ELSE
				W_Temp = W_Temp:' PAR LibCommuneAidant'
			END
		END
	END
	IF W_Budget="1" THEN
		W_Temp = W_Temp:' PAR 1'
	END ELSE
		W_Temp = W_Temp:' PAR NomPrenomAidantContrat'
	END
	
	EXECUTE W_Temp
	EXECUTE 'SAUVE-LISTE W_Req'
   	EXECUTE "LISTE W_Req" RETURNING MSGCODE

   	IF MSGCODE<1> # 209 THEN

      		SELECT F.CONTRAT TO W_Req
      		W_Fin="FAUX"
      		LOOP
         		READNEXT W_CleContrat FROM W_Req ELSE W_Fin = "VRAI"
     		WHILE W_Fin = "FAUX" DO
			
         		READ ENR_CONTRAT FROM F.CONTRAT,W_CleContrat ELSE ENR_CONTRAT=""
			IF W_Budget="1" THEN
				ENR_CONTRAT<6>=ENR_CONTRAT<7>
				ENR_CONTRAT<7>=ENR_CONTRAT<8>
				ENR_CONTRAT<36>=ENR_CONTRAT<10>
				ENR_CONTRAT<37>=ENR_CONTRAT<11>
			END
			IF W_Budget="1" THEN
         			READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CleContrat ELSE ENR_CIVILAIDANT=""
				ENR_CIVILAIDANT<2>=ENR_CIVILAIDANT<1>
				ENR_CIVILAIDANT<3>=""
				ENR_CIVILAIDANT<11>=ENR_CIVILAIDANT<5>
				ENR_CIVILAIDANT<26>=ENR_CIVILAIDANT<9>
				ENR_CIVILAIDANT<31>=ENR_CIVILAIDANT<4>
			END ELSE
         			READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CleContrat[1,5] ELSE ENR_CIVILAIDANT=""
			END

			IF W_Budget="1" THEN
   				CALL CalcIndLicRet(W_CleContrat,"PB",W_MONTINDLICRET,W_PeriodeArrete)
			END ELSE
   				CALL CalcIndLicRet(W_CleContrat,"P",W_MONTINDLICRET,W_PeriodeArrete)
			END
			W_PeriodeArrete=W_PeriodeArrete:"|":W_AgeRetraite
			W_Index1=INDEX(W_MONTINDLICRET,";",1)
			W_Index2=INDEX(W_MONTINDLICRET,";",2)
			W_Len=LEN(W_MONTINDLICRET)
			W_MontantIndem=W_MONTINDLICRET[1,W_Index1-1]
			W_Long=(W_Len-W_Index1)-(W_Len-W_Index2)-1
			W_TabHre=W_MONTINDLICRET[W_Index1+1,W_Long]
			W_SalRef=W_MONTINDLICRET[W_Index2+1,W_Len-W_Index2]
			W_SauveMontant=W_MontantIndem

			GOSUB 5
		
			* prise en compte de l'indice de mortalit
			GOSUB 10

			W_Indice=ENR_MORTALITE<3,W_AgeRetraite>/ENR_MORTALITE<3,W_Age>
			W_Indice=(W_Indice*100)+(1/2)
			W_Indice=INT(W_Indice)/100

			W_MontantIndem=W_MontantIndem*W_Indice

			* proratisation par rapport  l'anciennet requise
			GOSUB 20
*			W_MontantIndem=W_MontantIndem / W_Anciennete65 * W_AncienneteActu
*			W_MontantIndem=INT(W_MontantIndem+(1/2))

			* paramtre taux actuariel
			IF W_Anciennete65<W_AncienneteActu THEN W_Anciennete65=W_AncienneteActu
			FOR L=W_Anciennete65-1 TO W_AncienneteActu+1 STEP -1
			   W_MontantIndem=INT(((W_MontantIndem-(W_MontantIndem/(L+1)))*100/W_Taux)+1/2)
	  		NEXT L
			W_MontantIndem2=INT(((W_MontantIndem-(W_MontantIndem/(L+1)))*100/W_Taux)+1/2)
			W_MontantIndem=INT(((W_MontantIndem-W_MontantIndem2)/12*W_MOISACTU)+1/2)
			W_MontantIndem=W_MontantIndem+W_MontantIndem2

			* clatement analytique
			GOSUB 30
			GOSUB 40

			IF W_Edition="G" THEN
				GOSUB 50
			END ELSE
				GOSUB 60
			END
					
		REPEAT

		IF W_Edition="G" THEN

			W_Date = OCONV(DATE(),"D4/")
	        	W_Date = W_Date[7,4]:W_Date[4,2]:W_Date[1,2]
        		W_Cle = "PROVRETRAITE":W_Entite:W_User:W_Date

	       		WRITE "" ON F.TEMPO,W_Cle
       			WRITE W_Fichier ON F.STATAIDANT,W_Cle:".csv"

		END ELSE

			IF W_Tri # "A" THEN
				GOSUB 80
			END

			GOSUB 70

			W_Date = OCONV(DATE(),"D4/")
        		W_Date = W_Date[7,4]:W_Date[4,2]:W_Date[1,2]
        		W_Cle = "PROVRETRAITE":W_Entite:W_User:W_Date

	       		WRITE W_Fichier ON F.TEMPO,W_Cle

		END
	END

STOP

******************************************************************
* MAJ tableau des sections

5

	W_TabSect=""
	W_Count=DCOUNT(W_TabHre<1>,CHAR(253))
        IF W_Count=0 AND ENR_CONTRAT<6>="P" THEN
		W_TabHre<1,1>="100"
		W_TabHre<2,1>=ENR_CONTRAT<36,1>
		W_Count=1
	END
	FOR i=1 TO W_Count
		READ ENR_ACTIVITES FROM F.ACTIVITES,W_TabHre<2,i> ELSE ENR_ACTIVITES=""

		j=1
		LOOP
		UNTIL W_TabSect<2,j>=ENR_ACTIVITES<2> OR W_TabSect<2,j>="" DO
			j=j+1
		REPEAT
		IF W_TabSect<2,j>=ENR_ACTIVITES<2> THEN
			W_TabSect<1,j>=W_TabSect<1,j>+W_TabHre<1,i>
		END ELSE
			W_TabSect<1,j>=W_TabHre<1,i>
			W_TabSect<2,j>=ENR_ACTIVITES<2>
		END
	NEXT i

RETURN

******************************************************************
* calcul de l'age du salari

10

	W_DateArreteClair = OCONV(W_DateArrete,"D4/")
        W_DateNais = OCONV(ENR_CIVILAIDANT<26>,"D4/")
        W_AnneeFaite = W_DateArreteClair[7,4] - W_DateNais[7,4]
        W_MoisFait = W_DateArreteClair[4,2] - W_DateNais[4,2]
        W_JourFait = W_DateArreteClair[1,2] - W_DateNais[1,2]
        IF W_JourFait < 0 THEN
        	W_MoisFait = W_MoisFait - 1
       	END
       	IF W_MoisFait < 0 THEN
       		W_AnneeFaite = W_AnneeFaite - 1
       	END

	W_Age = W_AnneeFaite 

RETURN

******************************************************************
* calcul de l'anciennet

20

	* anciennet  65 ans
	W_DateNais=OCONV(ENR_CIVILAIDANT<26>,"D4/")
	W_DateNais=W_DateNais[1,6]:W_DateNais[7,4]+W_AgeRetraite
	W_DateDebContrat=OCONV(ENR_CONTRAT<7>,"D4/")
	
        W_AnneeFaite = W_DateNais[7,4] - W_DateDebContrat[7,4]
        W_MoisFait = W_DateNais[4,2] - W_DateDebContrat[4,2]
        W_JourFait = W_DateNais[1,2] - W_DateDebContrat[1,2]
        IF W_JourFait < 0 THEN
        	W_MoisFait = W_MoisFait - 1
       	END
       	IF W_MoisFait < 0 THEN
       		W_AnneeFaite = W_AnneeFaite - 1
       	END

	W_Anciennete65 = W_AnneeFaite 

	* anciennet actuelle
        W_AnneeFaite = W_DateArreteClair[7,4] - W_DateDebContrat[7,4]
        W_MoisFait = W_DateArreteClair[4,2] - W_DateDebContrat[4,2] + 1
        W_JourFait = W_DateArreteClair[1,2] - W_DateDebContrat[1,2] + 1
        IF W_JourFait < 0 THEN
        	W_MoisFait = W_MoisFait - 1
       	END
       	IF W_MoisFait < 0 THEN
       		W_AnneeFaite = W_AnneeFaite - 1
		W_MOISACTU=12+W_MoisFait
        END ELSE
		W_MOISACTU=W_MoisFait
       	END

	W_AncienneteActu = W_AnneeFaite 

RETURN

******************************************************************
* clatement analytique

30

	W_TotalHre=0
	W_TabPourc=""

	IF ENR_CONTRAT<6>="P" THEN
		W_Count=DCOUNT(W_TabSect<1>,CHAR(253))

		FOR i=1 TO W_Count
			W_TotalHre=W_TotalHre+W_TabSect<1,i>
		NEXT i

		FOR i=1 TO W_Count
			W_TabPourc<1,i>=W_TabSect<2,i>
			W_TabPourc<2,i>=INT((W_TabSect<1,i>/W_TotalHre*10000)+(1/2))
		NEXT i
	END ELSE
		W_Count=DCOUNT(ENR_CONTRAT<36>,CHAR(253))
		FOR i=1 TO W_Count
			READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_CONTRAT<36,i> ELSE ENR_ACTIVITES=""

			j=1
			LOOP
			UNTIL W_TabPourc<1,j>=ENR_ACTIVITES<2> OR W_TabPourc<1,j>="" DO
				j=j+1
			REPEAT
			IF W_TabPourc<1,j>=ENR_ACTIVITES<2> THEN
				W_TabPourc<2,j>=W_TabPourc<2,j>+ENR_CONTRAT<37,i>
			END ELSE
				W_TabPourc<1,j>=ENR_ACTIVITES<2>
				W_TabPourc<2,j>=ENR_CONTRAT<37,i>
			END
		NEXT i
	END

	W_TotalPourc=0
	W_Count=DCOUNT(W_TabPourc<2>,CHAR(253))
	W_GdPourc=0

	FOR i=1 TO W_Count
		W_TotalPourc=W_TotalPourc+W_TabPourc<2,i>
		IF W_GdPourc < W_TabPourc<2,i> THEN
			W_GdPourc = i
		END
	NEXT i

	IF W_TotalPourc # "10000" THEN
		W_Diff=10000-W_TotalPourc
		W_TabPourc<2,W_GdPourc>=W_TabPourc<2,W_GdPourc>+W_Diff
	END

RETURN

******************************************************************
* clatement du montant

40

	W_TotalMont=0
	W_Count=DCOUNT(W_TabPourc<1>,CHAR(253))
	W_GdPourc=0

	FOR i=1 TO W_Count
		W_TabPourc<3,i>=W_MontantIndem*W_TabPourc<2,i>/10000
		W_TabPourc<3,i>=INT(W_TabPourc<3,i>+(1/2))
		W_TotalMont=W_TotalMont+W_TabPourc<3,i>
		IF W_GdPourc < W_TabPourc<2,i> THEN
			W_GdPourc = i
		END
	NEXT i

	IF W_TotalMont # W_MontantIndem THEN
		W_Diff=W_MontantIndem-W_TotalMont
		W_TabPourc<3,W_GdPourc>=W_TabPourc<3,W_GdPourc>+W_Diff
	END

RETURN

******************************************************************
* gnration fichier graphique

50

	W_Temp=""
	IF W_Tri = "C" THEN
		W_Temp=ENR_CIVILAIDANT<11>:";"
	END ELSE
		IF W_Tri = "S" THEN
			READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR=""
			W_Temp=ENR_SECTEUR<1>:";"
		END
	END
	W_Temp=W_Temp:W_CleContrat[1,5]:";":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>:";"
	W_Temp=W_Temp:OCONV(ENR_CONTRAT<7>,"D4/"):";"
	W_Temp=W_Temp:OCONV(ENR_CIVILAIDANT<26>,"D4/"):";"
	W_Temp=W_Temp:W_SalRef/100:";"
	W_Temp=W_Temp:W_AncienneteActu:";"
	W_Temp=W_Temp:W_Anciennete65:";"
	W_Temp=W_Temp:W_SauveMontant/100:";"
	W_Temp=W_Temp:W_Indice:";"
	W_Count=DCOUNT(W_SectAnal,CHAR(254))
	FOR i=1 TO W_Count
		j=1
		LOOP
		UNTIL W_SectAnal<i>=W_TabPourc<1,j> OR W_TabPourc<1,j>="" DO
			j=j+1
		REPEAT	
		IF W_TabPourc<1,j>="" THEN
			W_Temp=W_Temp:";;;"
		END ELSE
			k=1
			LOOP
			UNTIL W_SectAnal<i>=ENR_SECTANAL<2,k> OR ENR_SECTANAL<2,k>="" DO
				k=k+1
			REPEAT
			W_Temp=W_Temp:ENR_SECTANAL<3,k>:";":W_TabPourc<2,j>/100:";":W_TabPourc<3,j>/100:";"
		END
	NEXT i

	W_Fichier<W_Ligne>=W_Temp
	W_Ligne=W_Ligne+1

RETURN

******************************************************************
* gnration liste

60

	IF W_Tri="C" THEN
		W_Rupture=ENR_CIVILAIDANT<11>
	END ELSE
		IF W_Tri="S" THEN
			READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR=""
			W_Rupture=ENR_SECTEUR<1>
		END
	END
	IF W_Ligne # 1 AND W_Rupture # W_Fichier<W_Ligne-1,2> AND W_Tri # "A" THEN
		GOSUB 80
		W_TotalSectRupt=""
		W_TotalRupt=0
	END

	W_CountSect=DCOUNT(W_SectAnal,CHAR(254))
	W_Passe="FAUX"

	W_Count=DCOUNT(W_TabPourc<1>,CHAR(253))
	FOR i=1 TO W_Count
		IF (W_CountSect = 1 AND W_SectAnal=W_TabPourc<1,i>) OR W_CountSect # 1 THEN
			IF i=1 OR W_Passe="FAUX" THEN
				W_Temp=" ":W_CleContrat[1,5]:" "
	
				W_NomPrenom=ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
				IF LEN(W_NomPrenom) > 30 THEN
					W_Temp=W_Temp:W_NomPrenom[1,30]:" "
				END ELSE
					W_Temp=W_Temp:W_NomPrenom:SPACE(30-LEN(W_NomPrenom)):" "
				END
				W_Temp=W_Temp:OCONV(ENR_CONTRAT<7>,"D4/"):" "
				W_Temp=W_Temp:OCONV(ENR_CIVILAIDANT<26>,"D4/"):SPACE(11-LEN(OCONV(ENR_CIVILAIDANT<26>,"D4/")))

				W_Temp=W_Temp:W_SalRef "R26(#10)":" "
	
				W_Anc=SPACE(2-LEN(W_AncienneteActu)):W_AncienneteActu
				W_Temp=W_Temp:SPACE(2):W_Anc:SPACE(2)

				W_Anc=SPACE(2-LEN(W_Anciennete65)):W_Anciennete65
				W_Temp=W_Temp:SPACE(1):W_Anc:SPACE(1)

				W_Temp=W_Temp:W_SauveMontant "R26(#11)":" "

				W_Indice=W_Indice*100
				W_Temp=W_Temp:W_Indice "R26(#6)":" "
				W_Passe="VRAI"
			END ELSE
				W_Temp=SPACE(100)
			END

			W_Temp=W_Temp:SPACE(4):W_TabPourc<1,i>:" "
			W_Temp=W_Temp:" ":W_TabPourc<2,i> "R26(#6)":" "
			W_Temp=W_Temp:" ":W_TabPourc<3,i> "R26(#9)"

			W_TotalGene=W_TotalGene+W_TabPourc<3,i>
			W_TotalRupt=W_TotalRupt+W_TabPourc<3,i>

			W_Fichier<W_Ligne>=W_Temp

			IF W_Tri="C" THEN
				W_Fichier<W_Ligne,2>=ENR_CIVILAIDANT<11>
			END ELSE
				IF W_Tri="S" THEN
					READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR=""
					W_Fichier<W_Ligne,2>=ENR_SECTEUR<1>
				END
			END
			W_Ligne=W_Ligne+1

			j=1
			LOOP
			UNTIL W_TotalParSect<1,j>=W_TabPourc<1,i> OR W_TotalParSect<1,j>="" DO
				j=j+1
			REPEAT
			IF W_TotalParSect<1,j>=W_TabPourc<1,i> THEN
				W_TotalParSect<2,j>=W_TotalParSect<2,j>+W_TabPourc<3,i>
			END ELSE
				W_TotalParSect<1,j>=W_TabPourc<1,i>
				W_TotalParSect<2,j>=W_TabPourc<3,i>
			END

			j=1
			LOOP
			UNTIL W_TotalSectRupt<1,j>=W_TabPourc<1,i> OR W_TotalSectRupt<1,j>="" DO
				j=j+1
			REPEAT
			IF W_TotalSectRupt<1,j>=W_TabPourc<1,i> THEN
				W_TotalSectRupt<2,j>=W_TotalSectRupt<2,j>+W_TabPourc<3,i>
			END ELSE
				W_TotalSectRupt<1,j>=W_TabPourc<1,i>
				W_TotalSectRupt<2,j>=W_TabPourc<3,i>
			END
		END
	NEXT i

RETURN

******************************************************************
* total par section

70

	W_Fichier<W_Ligne>="##"
	W_Ligne=W_Ligne+1

*	W_Fichier<W_Ligne>=SPACE(106):"TOTAL : ":W_TotalGene "R26(#12)"
*	W_Ligne=W_Ligne+1

	W_Count=DCOUNT(W_TotalParSect<1>,CHAR(253))
	FOR i=1 TO W_Count
		k=1
		LOOP
		UNTIL W_TotalParSect<1,i>=ENR_SECTANAL<2,k> OR ENR_SECTANAL<2,k>="" DO
			k=k+1
		REPEAT
		W_Lib=ENR_SECTANAL<3,k>
		IF LEN(W_Lib)>30 THEN
			W_Lib=W_Lib[1,30]
		END ELSE
			W_Lib=W_Lib:SPACE(30-LEN(W_Lib))
		END
		W_Temp=" ":W_TotalParSect<1,i>:"   ":W_Lib:" ":W_TotalParSect<2,i> "R26(#9)"

		W_Fichier<W_Ligne>=W_Temp
		W_Ligne=W_Ligne+1

	NEXT i

	W_Fichier<W_Ligne>=SPACE(7):"TOTAL :                        ":W_TotalGene "R26(#9)"
	W_Ligne=W_Ligne+1

RETURN

******************************************************************
* total rupture par section 

80

	W_Fichier<W_Ligne>="#DEBUT"
	W_Ligne=W_Ligne+1

	W_Count=DCOUNT(W_TotalSectRupt<1>,CHAR(253))
	FOR i=1 TO W_Count
		k=1
		LOOP
		UNTIL W_TotalSectRupt<1,i>=ENR_SECTANAL<2,k> OR ENR_SECTANAL<2,k>="" DO
			k=k+1
		REPEAT
		W_Lib=ENR_SECTANAL<3,k>
		IF LEN(W_Lib)>30 THEN
			W_Lib=W_Lib[1,30]
		END ELSE
			W_Lib=W_Lib:SPACE(30-LEN(W_Lib))
		END
		W_Temp=" ":W_TotalSectRupt<1,i>:"   ":W_Lib:" ":W_TotalSectRupt<2,i> "R26(#9)"

		W_Fichier<W_Ligne>=W_Temp
		W_Ligne=W_Ligne+1

	NEXT i

	W_Fichier<W_Ligne>=SPACE(7):"TOTAL :                        ":W_TotalRupt "R26(#9)"
	W_Ligne=W_Ligne+1

	W_Fichier<W_Ligne>="#FIN"
	W_Ligne=W_Ligne+1

RETURN

