*************************************
*    MAJ des rubriques  exclure    *
* Valentin              le 04/05/07 *
*************************************

***************************
* Ouvertures des fichiers *
***************************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"

OPEN "","CONTRATSPREV" TO F.CONTRATSPREV ELSE PRINT "ERREUR OUVERTURE FICHIER CONTRATSPREV"
OPEN "","REGRUBSAISIE" TO F.REGRUBSAISIE ELSE PRINT "ERREUR OUVERTURE FICHIER REGRUBSAISIE"
OPEN "","RUBSAISIE" TO F.RUBSAISIE ELSE PRINT "ERREUR OUVERTURE FICHIER RUBSAISIE"

W_FINI=""
i=""
W_CleContratPrev=""
W_Bool=""
W_Bool2=""
W_RESULTAT=""


**************************
*   Debut du programme   *
**************************
EXECUTE 'SSELECT CONTRATSPREV AVEC 41 # "" OR AVEC 42 # ""'
EXECUTE 'SAUVE-LISTE W_RESULTAT' 
EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE


IF MSGCODE<1>=209 THEN
	PRINT "PAS DE CONTRATSPREV TROUVE"
END ELSE
	
	READ ENR_REGRUBSAISIE FROM F.REGRUBSAISIE,"RUBRATT" ELSE ENR_REGRUBSAISIE=""
	
	* On verifie si la rubrique 807 a bien ete ajout au fichier regrubsaisie *
	W_Bool="FAUX"
	i=1
	LOOP
	WHILE i<=DCOUNT(ENR_REGRUBSAISIE,CHAR(254)) AND W_Bool="FAUX" DO
		IF ENR_REGRUBSAISIE<i>="807" THEN
			W_Bool="VRAI"
		END
		i=i+1
	REPEAT
	IF W_Bool="FAUX" THEN
		READ ENR_RUBSAISIE FROM F.RUBSAISIE,"807" ELSE ENR_RUBSAISIE=""
		
		W_Bool2="FAUX"
		i=1
		LOOP
		WHILE i<=DCOUNT(ENR_REGRUBSAISIE,CHAR(254)) AND W_Bool2="FAUX"
			READ ENR_RUBSAISIE2 FROM F.RUBSAISIE,ENR_REGRUBSAISIE<i> ELSE ENR_RUBSAISIE2=""
			IF ENR_RUBSAISIE<1> < ENR_RUBSAISIE2<1> THEN
				W_Bool2="VRAI"
			END
			i=i+1
		REPEAT
		
		IF W_Bool2="VRAI" THEN
			ENR_REGRUBSAISIE=INSERT(ENR_REGRUBSAISIE,i-1;"807")
		END ELSE
			ENR_REGRUBSAISIE=INSERT(ENR_REGRUBSAISIE,i;"807")
		END
	END
	
	* On verifie si la rubrique 808 a bien ete ajout au fichier regrubsaisie *
	W_Bool="FAUX"
	i=1
	LOOP
	WHILE i<=DCOUNT(ENR_REGRUBSAISIE,CHAR(254)) AND W_Bool="FAUX" DO
		IF ENR_REGRUBSAISIE<i>="808" THEN
			W_Bool="VRAI"
		END
		i=i+1
	REPEAT
	IF W_Bool="FAUX" THEN
		READ ENR_RUBSAISIE FROM F.RUBSAISIE,"808" ELSE ENR_RUBSAISIE=""
		
		W_Bool2="FAUX"
		i=1
		LOOP
		WHILE i<=DCOUNT(ENR_REGRUBSAISIE,CHAR(254)) AND W_Bool2="FAUX"
			READ ENR_RUBSAISIE2 FROM F.RUBSAISIE,ENR_REGRUBSAISIE<i> ELSE ENR_RUBSAISIE2=""
			IF ENR_RUBSAISIE<1> < ENR_RUBSAISIE2<1> THEN
				W_Bool2="VRAI"
			END
			i=i+1
		REPEAT
		
		IF W_Bool2="VRAI" THEN
			ENR_REGRUBSAISIE=INSERT(ENR_REGRUBSAISIE,i-1;"808")
		END ELSE
			ENR_REGRUBSAISIE=INSERT(ENR_REGRUBSAISIE,i;"808")
		END
	END
	
	* On verifie si la rubrique 809 a bien ete ajout au fichier regrubsaisie *
	W_Bool="FAUX"
	i=1
	LOOP
	WHILE i<=DCOUNT(ENR_REGRUBSAISIE,CHAR(254)) AND W_Bool="FAUX" DO
		IF ENR_REGRUBSAISIE<i>="809" THEN
			W_Bool="VRAI"
		END
		i=i+1
	REPEAT
	IF W_Bool="FAUX" THEN
		READ ENR_RUBSAISIE FROM F.RUBSAISIE,"809" ELSE ENR_RUBSAISIE=""
		
		W_Bool2="FAUX"
		i=1
		LOOP
		WHILE i<=DCOUNT(ENR_REGRUBSAISIE,CHAR(254)) AND W_Bool2="FAUX"
			READ ENR_RUBSAISIE2 FROM F.RUBSAISIE,ENR_REGRUBSAISIE<i> ELSE ENR_RUBSAISIE2=""
			IF ENR_RUBSAISIE<1> < ENR_RUBSAISIE2<1> THEN
				W_Bool2="VRAI"
			END
			i=i+1
		REPEAT
		
		IF W_Bool2="VRAI" THEN
			ENR_REGRUBSAISIE=INSERT(ENR_REGRUBSAISIE,i-1;"809")
		END ELSE
			ENR_REGRUBSAISIE=INSERT(ENR_REGRUBSAISIE,i;"809")
		END
	END
	
	SELECT F.CONTRATSPREV TO W_RESULTAT
	W_FINI="FAUX"
	
	* Pour tous les contrats de prvention rencontrs *
	LOOP
	READNEXT W_CleContratPrev FROM W_RESULTAT ELSE W_FINI="VRAI"
	WHILE W_FINI = "FAUX" DO
		READ ENR_CONTRATSPREV FROM F.CONTRATSPREV,W_CleContratPrev ELSE ENR_CONTRATSPREV=""
		
		IF ENR_CONTRATSPREV<41>#"" THEN
			W_Bool="FAUX"
			i=1
			LOOP
			WHILE i<=DCOUNT(ENR_REGRUBSAISIE,CHAR(254)) AND W_Bool="FAUX" DO
				IF ENR_REGRUBSAISIE<i>=ENR_CONTRATSPREV<41> THEN
					W_Bool="VRAI"
				END
				i=i+1
			REPEAT
			
			IF W_Bool="FAUX" THEN
				READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_CONTRATSPREV<41> ELSE ENR_RUBSAISIE=""
				
				W_Bool2="FAUX"
				i=1
				LOOP
				WHILE i<=DCOUNT(ENR_REGRUBSAISIE,CHAR(254)) AND W_Bool2="FAUX"
					READ ENR_RUBSAISIE2 FROM F.RUBSAISIE,ENR_REGRUBSAISIE<i> ELSE ENR_RUBSAISIE2=""
					IF ENR_RUBSAISIE<1> < ENR_RUBSAISIE2<1> THEN
						W_Bool2="VRAI"
					END
					i=i+1
				REPEAT
				
				IF W_Bool2="VRAI" THEN
					ENR_REGRUBSAISIE=INSERT(ENR_REGRUBSAISIE,i-1;ENR_CONTRATSPREV<41>)
				END ELSE
					ENR_REGRUBSAISIE=INSERT(ENR_REGRUBSAISIE,i;ENR_CONTRATSPREV<41>)
				END
			END
		END
		
		IF ENR_CONTRATSPREV<42>#"" THEN
			W_Bool="FAUX"
			i=1
			LOOP
			WHILE i<=DCOUNT(ENR_REGRUBSAISIE,CHAR(254)) AND W_Bool="FAUX" DO
				IF ENR_REGRUBSAISIE<i>=ENR_CONTRATSPREV<42> THEN
					W_Bool="VRAI"
				END
				i=i+1
			REPEAT
			
			IF W_Bool="FAUX" THEN
				READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_CONTRATSPREV<42> ELSE ENR_RUBSAISIE=""
				
				W_Bool2="FAUX"
				i=1
				LOOP
				WHILE i<=DCOUNT(ENR_REGRUBSAISIE,CHAR(254)) AND W_Bool2="FAUX"
					READ ENR_RUBSAISIE2 FROM F.RUBSAISIE,ENR_REGRUBSAISIE<i> ELSE ENR_RUBSAISIE2=""
					IF ENR_RUBSAISIE<1> < ENR_RUBSAISIE2<1> THEN
						W_Bool2="VRAI"
					END
					i=i+1
				REPEAT
				
				IF W_Bool2="VRAI" THEN
					ENR_REGRUBSAISIE=INSERT(ENR_REGRUBSAISIE,i-1;ENR_CONTRATSPREV<42>)
				END ELSE
					ENR_REGRUBSAISIE=INSERT(ENR_REGRUBSAISIE,i;ENR_CONTRATSPREV<42>)
				END
			END
		END
		
	REPEAT
   
   WRITE ENR_REGRUBSAISIE ON F.REGRUBSAISIE,"RUBRATT"
   PRINT "Mise a jour des rubriques a exclure effectuee"
   
END

EXECUTE 'EFFACER-LISTE W_RESULTAT'

STOP