*********************************************************
*                                                    	*
* Gnration des fichiers HISTORCUMUL et DETAILCALCUL 	*
*  partir du fichier des CUMULS dans le module paie  	*
*							*
* AOUT 1999				Jrme RAVEAU   *
*							*
*********************************************************

	EXECUTE 'DATE.FORMAT'

	* RECUPERATION DES PARAMETRES
	GOSUB 1200

	* CREATION VOC
	GOSUB 1000

	*********************************************************
	* OUVERTURE FICHIERS					*
	*********************************************************
	OPEN "","EMPLOYEUR" TO F.EMPLOYEUR ELSE STOP
	OPEN "","FIPAY" TO F.FIPAY ELSE STOP
	OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
	OPEN "","HISTORCUMUL" TO F.HISTORCUMUL ELSE STOP
	OPEN "","PROFIL" TO F.PROFIL ELSE STOP
	OPEN "","RUBCHARGE" TO F.RUBCHARGE ELSE STOP
	OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
	OPEN "","TRANCHE" TO F.TRANCHE ELSE STOP
	OPEN "","ERREURSMIGR" TO F.ERREURSMIGR ELSE STOP
	OPEN "DICT","CUMULS" TO F.CUMULS ELSE STOP
        ENREG=""
        ENREG=REPLACE(ENREG,1;'V')
        ENREG=REPLACE(ENREG,2;'IF (PERIODE<8000) THEN MAT CAT("20" CAT PERIODE) ELSE MAT CAT("19" CAT PERIODE)')
        ENREG=REPLACE(ENREG,4;'TEST 2000')
        ENREG=REPLACE(ENREG,5;'6L')
        ENREG=REPLACE(ENREG,6;'S')
        WRITE ENREG ON F.CUMULS,"TESTConversion2000"
        ENREG=""
        ENREG=REPLACE(ENREG,1;'V')
        ENREG=REPLACE(ENREG,2;'IF (PERIODE<8000) THEN ("20" CAT PERIODE) ELSE ("19" CAT PERIODE)')
        ENREG=REPLACE(ENREG,4;'PERIODE')
        ENREG=REPLACE(ENREG,5;'6L')
        ENREG=REPLACE(ENREG,6;'S')
        WRITE ENREG ON F.CUMULS,"PERIODEAAAAMM"
	OPEN "","CUMULS" TO F.CUMULS ELSE STOP
	*********************************************************
	* RECAPITULATIF DES GOSUB				*
	*********************************************************

	* 100  --> CREATION DE HISTORCUMUL
	* 200  --> CALCUL DATE DADS (AN)
	* 300  --> TRAITEMENT SUR CHANGEMENT D'AIDANT
	* 400  --> CREATION DE DETAILCALCUL
	* 500  --> MISE EN TABLE DES CONTRATS
	* 600  --> DEBUT CREATION HISTORCUMUL
	* 700  --> REMPLISSAGE CHAMP 16 17 18 19 DE HISTORCUMUL
	* 800  --> LANCEMENT TRAITEMENT
	* 900  --> CONVERSION DES DATES POUR RECHRCHE DES CONTRATS ACTIFS
	* 1000 --> CREATION VOC
	* 1100 --> SUPPRESSION VOC
	* 1200 --> RECUPERATION DES PARAMETRES


	*********************************************************
	* INITIALISATION DES VARIABLES				*
	*********************************************************
*	W_CODESAISIE="A"
*	ENR_ASSOCIATION=""
	ENR_EMPLOYEUR=""
	ENR_CUMULS=""
	ENR_FIPAY=""
	ENR_CONTRAT=""
	ENR_HISTORCUMUL=""
	ENR_PROFIL=""
	ENR_RUBCHARGE=""
	ENR_DETAILCALCUL=""
	ENR_TRANCHE=""
	W_DEBUTPERIODE=""
	W_FINPERIODE=""
	W_DEBUTPERIODEBIS=""
	W_FINPERIODEBIS=""
	W_REQVIDE="FAUX"	
	W_REQ="FAUX"	
	W_AIDANTPREC=""
	W_NOUVEAUCODE=""
	W_DATEDEBUT=""
	W_DATEFIN=""
	W_TABCONTRAT=""	
	W_COMPTTAB=0
	W_ANDADS=""	
	W_BORNECUMUL=0
	W_BORNEPROFIL=0
	I=0
	J=0
	K=0
	W_BOOL=0	
	W_DATEDEBUTTEMP=""
	W_DATEFINTEMP=""
	W_CLEDETAILCALCUL=""
	W_VALEUR=""
	W_DEBUT=""
	W_FIN=""
	W_TAMPON=""
	W_POSITION=""
	W_CODE="02"
	W_CODEAIDANT=""
	W_NBCHANGEMENT=0


	*********************************************************
	* RECUPERATION DE LA PERIODE ET EXECUTION TRAITEMENT	*
	*********************************************************
        READ ENRERREURSMIGR FROM F.ERREURSMIGR,"1" ELSE ENRERREURSMIGR=""
        ENRERREURSMIGR=REPLACE(ENRERREURSMIGR,-1;"PR1 TRANSCUMULSAL")

	READ ENR_EMPLOYEUR FROM F.EMPLOYEUR,"01" ELSE STOP

	W_DEBUTPERIODE=ENR_EMPLOYEUR<49>
	W_FINPERIODE=ENR_EMPLOYEUR<50>

	* CONVERSION DES DATES POUR RECHERCHE CONTRAT	
	GOSUB 900

	* LANCEMENT TRAITEMENT
	GOSUB 800	

	* REINITIALISATION POUR SECOND PASSAGE ANNEE SUIVANTE
	W_AIDANTPREC=""
	W_REQVIDE="FAUX"
	IF W_DEBUTPERIODE[1,2]<25 THEN
		W_DEBUTPERIODEBIS="20":W_DEBUTPERIODE
	END ELSE
		W_DEBUTPERIODEBIS="19":W_DEBUTPERIODE
	END

	IF W_FINPERIODE[1,2]<25 THEN
		W_FINPERIODEBIS="20":W_FINPERIODE
	END ELSE
		W_FINPERIODEBIS="19":W_FINPERIODE
	END

	W_DEBUTPERIODEBIS=W_DEBUTPERIODEBIS-100
	W_FINPERIODEBIS=W_FINPERIODEBIS-100
	W_DEBUTPERIODE=W_DEBUTPERIODEBIS[3,4]
	W_FINPERIODE=W_FINPERIODEBIS[3,4]

	* RELANCE TRAITEMENT
	GOSUB 900
	GOSUB 800
	
	* SUPPRESSION VOC
	GOSUB 1100
      
        WRITE ENRERREURSMIGR ON F.ERREURSMIGR,"1"

STOP


*********************************************************
* TRAITEMENT PRINCIPAL					*
*********************************************************
100 *

	*********************************************************
	* SELECT FICHIER CUMULS SUR PERIODE + TRI		*
	*********************************************************
	EXECUTE 'TSELECT CUMULS AVEC PERIODEAAAAMM >= "':W_DATEDEBUTBIS:'" AND AVEC PERIODEAAAAMM <= "':W_DATEFINBIS:'" PAR-DECR TESTConversion2000'
	EXECUTE 'SAUVE-LISTE LISTCUMULS'
	EXECUTE 'LISTE LISTCUMULS' RETURNING W_MSG
	IF W_MSG <1> # "209" THEN
		SELECT F.CUMULS TO LISTCUMULS
	END

	*********************************************************
	* PARCOURS DE TOUS LES CUMULS 				*
	*********************************************************
	LOOP
		READNEXT CLECUMUL FROM LISTCUMULS ELSE
			W_REQVIDE="VRAI"
		END
		UNTIL W_REQVIDE="VRAI" DO

		READ ENR_CUMULS FROM F.CUMULS,CLECUMUL ELSE STOP

		*********************************************************
		* CONTROLE SI AIDANT DIFFERENT ET TRAITEMENT 		*
		*********************************************************
		IF CLECUMUL[1,5] <> W_AIDANTPREC THEN

			* TRAITEMENT SI CHANGEMENT AIDANT
			GOSUB 300

		END ELSE
			*********************************************************						
			* CUMUL DES ATT 72 ET 75  
			*********************************************************	
			* MEME REMARQUE PAS CONTRAT TEST IF PAS OBLIGATOIRE ???
			IF W_COMPTTAB<>0 THEN
				ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,1;ENR_CUMULS<72>+ENR_HISTORCUMUL<1>)
				ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,7;ENR_CUMULS<75>+ENR_HISTORCUMUL<7>)
			END			
		END	
	
		* CREATION DU DETAILCALCUL
		ENR_DETAILCALCUL=""
		GOSUB 400
	REPEAT
	EXECUTE 'EFFACER-LISTE LISTCUMULS'

	* ECRITURE DES INFO DE L'AIDANT PRECEDENT
	IF W_AIDANTPREC <> "" THEN
		* MEME PB CONTRAT
		IF W_COMPTTAB<>0 THEN
			WRITE ENR_HISTORCUMUL ON F.HISTORCUMUL,W_NOUVEAUCODE:W_ANDADS:W_CODESAISIE
		END
	END

RETURN	


*********************************************************
* RECHERCHE DE AN DADS					*
*********************************************************
200 *
	W_ANDADS=W_FINPERIODE[1,2]
	IF W_ANDADS>25 THEN
		W_ANDADS="19":W_FINPERIODE[1,2]
	END ELSE
		W_ANDADS="20":W_FINPERIODE[1,2]
	END

RETURN


*********************************************************
* TRAITEMENT A EFFECTUER SUR UN CHANGEMENT D'AIDANT	*
*********************************************************
300 *

	* ECRITURE DES INFO DE L'AIDANT PRECEDENT
	IF W_AIDANTPREC <> "" THEN
		* MEME PB CONTRAT
		IF W_COMPTTAB<>0 THEN
			WRITE ENR_HISTORCUMUL ON F.HISTORCUMUL,W_NOUVEAUCODE:W_ANDADS:W_CODESAISIE
		END
	END

	*********************************************************
	* RECUPERATION NOUVEAU CODE AIDANT
	*********************************************************
	W_AIDANTPREC=CLECUMUL[1,5]
	W_REQ="FAUX"
	W_COMPTTAB=0
	W_TABCONTRAT=""
	ENR_HISTORCUMUL=""
	READ ENR_FIPAY FROM F.FIPAY,W_AIDANTPREC ELSE STOP
	
	W_NOUVEAUCODE=ENR_FIPAY<60>

	*********************************************************
	* LECTURE DES CONTRATS A ENTITE JURIDIQUE CHOISIE ET CCN<>02
	* CONTROLE ACTIVITE SUR PERIODE
	*********************************************************

	EXECUTE 'TSELECT CONTRAT AVEC 2 = "':W_CODESAISIE:'" AND AVEC 1 <> "':W_CODE:'" AND AVEC 7 <= "':W_DATEFIN:'" AND AVEC 8 >= "':W_DATEDEBUT:'" OR = "" AND AVEC CodeAidant = "':W_NOUVEAUCODE:'" PAR-DECR @ID'		
	EXECUTE 'SAUVE-LISTE LISTCONTRAT'
	EXECUTE 'LISTE LISTCONTRAT' RETURNING W_MSG
	IF W_MSG <1> # "209" THEN
		SELECT F.CONTRAT TO LISTCONTRAT
	END
	*********************************************************
	* PARCOURS DE TOUS LES CONTRATS
	*********************************************************
	LOOP
		READNEXT CLECONTRAT FROM LISTCONTRAT ELSE
			W_REQ="VRAI"
		END
		UNTIL W_REQ="VRAI" DO	
			
		*********************************************************
		* MISE EN TABLE DES CONTRATS
		*********************************************************
		GOSUB 500
	
	REPEAT

       EXECUTE 'EFFACER-LISTE LISTCONTRAT'
	*********************************************************			
	* GENERE FICHIER HISTORCUMUL
	*********************************************************
	* CAS OU PAS DE CONTRAT VERIFIER SI LOGIQUE OU PAS QUE K CE PRESENTE
	IF W_COMPTTAB <> 0 THEN
		GOSUB 600		
		
		*********************************************************						
		* RENSEIGNEMENT ATT 16, 17, 18 & 19 DE HISTORCUMUL
		*********************************************************	
		GOSUB 700
	END
		
RETURN


*********************************************************
* CREATION DE DETAILCALCUL				*
*********************************************************
400 *

	IF CLECUMUL[6,2]>25 THEN
		W_VALEUR="19":CLECUMUL[6,4]
	END ELSE
		W_VALEUR="20":CLECUMUL[6,4]
	END				

	FOR I=1 TO W_COMPTTAB
		W_DEBUT=OCONV(W_TABCONTRAT<I,2>,"D4/")
                W_FIN=""
                IF W_TABCONTRAT<I,3>#"" THEN 
                   W_FIN=OCONV(W_TABCONTRAT<I,3>,"D4/")
		   W_FIN=W_FIN[7,4]:W_FIN[4,2]
                END
		W_DEBUT=W_DEBUT[7,4]:W_DEBUT[4,2]

		IF (W_VALEUR >= W_DEBUT AND W_VALEUR <= W_FIN AND W_FIN # "") OR (W_VALEUR >= W_DEBUT AND W_FIN = "") THEN
			EXIT
		END
	NEXT I

	W_CLEDETAILCALCUL=W_TABCONTRAT<I,1>:W_VALEUR		

	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,1;"P")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,2;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,3;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,4;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,5;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,6;ENR_CUMULS<66>)	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,7;ENR_CUMULS<71>)	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,8;"020")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,9;ENR_CUMULS<71>)	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,10;"3010")
        PRECOMPTEASSEDIC=INT(ENR_CUMULS<71>*301/10000+1/2)	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,11;PRECOMPTEASSEDIC)	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,12;ENR_CUMULS<71>)	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,13;"0")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,14;"0")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,15;ENR_CUMULS<67>)	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,16;ENR_CUMULS<75>)	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,17;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,18;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,19;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,20;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,21;ENR_CUMULS<75>)	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,22;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,23;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,24;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,25;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,26;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,27;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,28;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,29;"0")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,30;"0")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,31;"0")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,32;"0")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,33;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,34;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,35;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,36;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,37;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,38;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,39;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,40;"")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,41;"0")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,42;"0")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,43;"0")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,44;"0")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,45;"0")	
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,46;"0")
	ENR_DETAILCALCUL=REPLACE(ENR_DETAILCALCUL,47;"0")	
	WRITE ENR_DETAILCALCUL ON F.DETAILCALCUL,W_CLEDETAILCALCUL

RETURN


*********************************************************
* MISE EN TABLE DES CONTRATS				*
*********************************************************
500 *

	READ ENR_CONTRAT FROM F.CONTRAT,CLECONTRAT ELSE PRINT "CONTRAT 500"

	W_COMPTTAB=W_COMPTTAB+1

	W_TABCONTRAT=REPLACE(W_TABCONTRAT,W_COMPTTAB,1;CLECONTRAT)
	W_TABCONTRAT=REPLACE(W_TABCONTRAT,W_COMPTTAB,2;ENR_CONTRAT<7>)

	IF ENR_CONTRAT<8> <> "" THEN
		W_TABCONTRAT=REPLACE(W_TABCONTRAT,W_COMPTTAB,3;ENR_CONTRAT<8>)
	END ELSE
		W_TABCONTRAT=REPLACE(W_TABCONTRAT,W_COMPTTAB,3;"")	
	END

	W_TABCONTRAT=REPLACE(W_TABCONTRAT,W_COMPTTAB,4;ENR_CONTRAT<26>)

RETURN


*********************************************************
* DEBUT DE CREATION HISTORCUMUL				*
*********************************************************
600 *

	ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,1;ENR_CUMULS<72>)
	ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,2;ENR_CUMULS<69>)
	ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,3;ENR_CUMULS<70>)
	ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,4;ENR_CUMULS<2>)
	ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,5;ENR_CUMULS<1>)
	ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,6;ENR_CUMULS<68>)
	ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,7;ENR_CUMULS<75>)
	ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,8;0)
	ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,9;"")
	ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,10;"0")

	*********************************************************					
	* ECRITURE DES CONTRATS   
	*********************************************************	
	ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,11;W_TABCONTRAT<1,2>)
	ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,12;W_TABCONTRAT<1,3>)

	IF W_COMPTTAB # 1 THEN
		ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,13;W_TABCONTRAT<W_COMPTTAB,2>)
		ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,14;W_TABCONTRAT<W_COMPTTAB,3>)			
	END


	*********************************************************			
	* RECHERCHE DES RUBRIQUES DE CHARGE DE L'AIDANT
	*********************************************************
        W_CHANGEMENT=0

	FOR I=1 TO W_COMPTTAB
		READ ENR_PROFIL FROM F.PROFIL,W_TABCONTRAT<I,4> ELSE STOP

		*********************************************************			
		*CONTROLE SI UN SEUL CONTRAT OU PLUSIEURS			
		*********************************************************			
		IF I=1 THEN
			ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,15;ENR_PROFIL<3>)
			W_BORNECUMUL=DCOUNT(ENR_HISTORCUMUL<15>,CHAR(253))
			W_BORNEPROFIL=DCOUNT(ENR_PROFIL<3>,CHAR(253))
		END ELSE
			W_BORNECUMUL=DCOUNT(ENR_HISTORCUMUL<15>,CHAR(253))
			W_BORNEPROFIL=DCOUNT(ENR_PROFIL<3>,CHAR(253))

			*********************************************************			
			* CONTROLE SI LES PROFILS EXISTE DEJA OU PAS
			*********************************************************			
			FOR J=1 TO W_BORNEPROFIL
				W_BOOL=0

				FOR K=1 TO W_BORNECUMUL 
					IF ENR_HISTORCUMUL<15,K> = ENR_PROFIL<3,J> THEN
						W_BOOL=1
						EXIT
					END					 
				NEXT K

				* NOUVEAU PROFIL
				IF W_BOOL=0 THEN
					W_BORNECUMUL=W_BORNECUMUL+1
					W_CHANGEMENT=W_CHANGEMENT+1
					ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,15,W_BORNECUMUL;ENR_PROFIL<3,J>)
				END

			NEXT J	
			
			* EDITION SI CHANGEMENT DE PROFIL
			IF W_CHANGEMENT # 0 THEN
				LIBERREUR=" NOUVEAU CODE :  ":W_NOUVEAUCODE:"  ANCIEN CODE :  ":W_AIDANTPREC:"  NOM PRENOM :  ":ENR_FIPAY<1> :"  PLUSIEURS PROFILS DIFFERENTS SUR LA PERIODE DADS"										
                                ENRERREURSMIGR=REPLACE(ENRERREURSMIGR,-1;LIBERREUR)
 			END

			W_CHANGEMENT=0	
		END
			
	NEXT I	

RETURN


*********************************************************			
* RENSEIGNEMENTS CHAMPS 16 A 19 DE HISTORCUMUL		*
*********************************************************			
700 *

	FOR I=1 TO W_BORNECUMUL			
		ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,18,I;"0")
		ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,19,I;"0")		

		READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_HISTORCUMUL<15,I> ELSE STOP

		*********************************************************						
		* CONTROLE SI RUBRIQUE DE CHARGE RENSEIGNEE
		*********************************************************			
		IF ENR_RUBCHARGE<13> <> "" THEN
			ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,16,I;ENR_CUMULS<4>)
			ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,17,I;ENR_CUMULS<4>)

		END ELSE

			*********************************************************						
			* RECHERCHE SI TYPE TRANCHE 2 OU 3
			*********************************************************			
			READ ENR_TRANCHE FROM F.TRANCHE,ENR_RUBCHARGE<2> ELSE STOP

			IF ENR_TRANCHE<10>="02" OR ENR_TRANCHE <10>="03" THEN
			   ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,16,I;ENR_CUMULS<5>)
                           IF ENR_TRANCHE<10>="02" THEN
				ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,17,I;ENR_CUMULS<6>)
                           END ELSE
                                MONTTRANCHEB=ENR_CUMULS<5>-ENR_CUMULS<6>
                                IF MONTTRANCHEB<0 THEN MONTTRANCHEB=0
				ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,17,I;MONTTRANCHEB)
                           END
			END ELSE
*                           IF ENR_RUBCHARGE<18>="2" THEN
                           IF ENR_HISTORCUMUL<15,I>="053" THEN
				ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,16,I;ENR_CUMULS<1>)
				ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,17,I;ENR_CUMULS<1>)
                           END ELSE
                              IF ENR_HISTORCUMUL<15,I>="054" OR ENR_HISTORCUMUL<15,I>="055" THEN
				 ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,16,I;"0")
				 ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,17,I;"0")
                              END ELSE
				 ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,16,I;ENR_CUMULS<5>)
				 ENR_HISTORCUMUL=REPLACE(ENR_HISTORCUMUL,17,I;ENR_CUMULS<5>)
                              END								 
                           END
			END
		END							
				
	NEXT I		
	
RETURN


*********************************************************						
* LANCEMEMNT TRAITEMENT					*
*********************************************************	
800 *
	* RECHERCHE ANDADS
	GOSUB 200

	* TRAITEMENT PRINCIPAL
	GOSUB 100

	* ECRITURE DERNIER HISTORCUMUL
	IF ENR_HISTORCUMUL <> "" THEN
		WRITE ENR_HISTORCUMUL ON F.HISTORCUMUL,W_NOUVEAUCODE:W_ANDADS:W_CODESAISIE
	END

RETURN 

*********************************************************						
* CONVERSION DATES POUR RECHERCHE CONTRAT		*
*********************************************************	
900 *

	W_DATEDEBUT="01/":W_DEBUTPERIODE[3,2]:"/"

	IF W_DEBUTPERIODE[1,2]<90 THEN
		W_DATEDEBUT=W_DATEDEBUT:"20":W_DEBUTPERIODE[1,2]
	END ELSE
		W_DATEDEBUT=W_DATEDEBUT:"19":W_DEBUTPERIODE[1,2]
	END
 	
        W_DATEDEBUTBIS=W_DATEDEBUT[7,4]:W_DATEDEBUT[4,2]
	W_DATEDEBUT=ICONV(W_DATEDEBUT,"D4/")

        IF W_FINPERIODE[3,2]=12 THEN
	   W_DATEFIN="31/":W_FINPERIODE[3,2]:"/"
        END ELSE
	   W_DATEFIN="30/":W_FINPERIODE[3,2]:"/"
        END

	IF W_FINPERIODE[1,2]<90 THEN
		W_DATEFIN=W_DATEFIN:"20":W_FINPERIODE[1,2]
	END ELSE
		W_DATEFIN=W_DATEFIN:"19":W_FINPERIODE[1,2]
	END 	
        W_DATEFINBIS=W_DATEFIN[7,4]:W_FINPERIODE[3,2]

	W_DATEFIN=ICONV(W_DATEFIN,"D4/")

RETURN


*************************************************************
* CREATION VOC                                              *
*************************************************************
1000 *
	OPEN "","VOC" TO F.VOC ELSE STOP

	ENR_VOC=""
	ENR_VOC=REPLACE(ENR_VOC,1;"F")
	ENR_VOC=REPLACE(ENR_VOC,2;"D:\TRANSFERT\":W_MODULE:"\CUMULS")
	ENR_VOC=REPLACE(ENR_VOC,3;"D:\TRANSFERT\":W_MODULE:"\D_CUMULS")
	WRITE ENR_VOC ON F.VOC,"CUMULS"

	ENR_VOC=""
	ENR_VOC=REPLACE(ENR_VOC,1;"F")
	ENR_VOC=REPLACE(ENR_VOC,2;"D:\TRANSFERT\":W_MODULE:"\EMPLOYEUR")
	ENR_VOC=REPLACE(ENR_VOC,3;"D:\TRANSFERT\":W_MODULE:"\D_EMPLOYEUR")
	WRITE ENR_VOC ON F.VOC,"EMPLOYEUR"

	ENR_VOC=""
	ENR_VOC=REPLACE(ENR_VOC,1;"F")
	ENR_VOC=REPLACE(ENR_VOC,2;"D:\TRANSFERT\":W_MODULE:"\FIPAY")
	ENR_VOC=REPLACE(ENR_VOC,3;"D:\TRANSFERT\":W_MODULE:"\D_FIPAY")
	WRITE ENR_VOC ON F.VOC,"FIPAY"

RETURN


*************************************************************
* SUPPRESSION VOC                                           *
*************************************************************
1100 *
	DELETE F.VOC,"CUMULS"
	DELETE F.VOC,"EMPLOYEUR"
	DELETE F.VOC,"FIPAY"
RETURN


*********************************************************
* RECUPERATION DES PARAMETRES				*
*********************************************************
1200 *

	PROCREAD MODULE ELSE STOP
	W_MODULE=FIELD(MODULE," ",2)

	W_NBVALEUR=0
	ENR_PARAMASSO=""
	W_CODESAISIE=""

	OPEN "","PARAMASSO" TO F.PARAMASSO ELSE STOP

	READ ENR_PARAMASSO FROM F.PARAMASSO,"1" ELSE STOP

	W_NBVALEUR=DCOUNT(ENR_PARAMASSO<1>,CHAR(253))	

	FOR I = 1 TO W_NBVALEUR
		IF ENR_PARAMASSO<1,I> = W_MODULE THEN
			W_CODESAISIE=ENR_PARAMASSO<2,I>
			EXIT
		END
	NEXT I


RETURN