*************************************************
* moulinette actualisation des paramtrages	*
* de la rubrique complment incapacit		*
* novembre 2005					*
*************************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE PRINT "OUVERTURE COMPTEUR" ;* en lecture criture
OPEN "","CONTRATSPREV" TO F.CONTRATSPREV ELSE PRINT "OUVERTURE CONTRATSPREV" ;* en lecture criture
OPEN "","RUBSAISIE" TO F.RUBSAISIE ELSE PRINT "OUVERTURE RUBSAISIE" ;* en lecture criture
OPEN "","RUBCHARGE" TO F.RUBCHARGE ELSE PRINT "OUVERTURE RUBCHARGE" ;* en lecture criture

READ ENR_CONTRATSPREV FROM F.CONTRATSPREV,"99" ELSE ENR_CONTRATSPREV=""

IF ENR_CONTRATSPREV<41> = ENR_CONTRATSPREV<42> AND ENR_CONTRATSPREV<41> # "" THEN
	STOP
END ELSE


* CREATION RUBRIQUE DE SAISIE

	READ ENR_COMPTEUR FROM F.COMPTEUR,"999" ELSE ENR_COMPTEUR=""
	W_CodeRub=ENR_COMPTEUR<3>+1 "R%3"
	ENR_COMPTEUR<3>=W_CodeRub
      	WRITE ENR_COMPTEUR ON F.COMPTEUR,"999"

	READ ENR_RUBSAISIE FROM F.RUBSAISIE,"807" ELSE ENR_RUBSAISIE=""
	ENR_RUBSAISIE<1>="COMPLEMENT INCAPACITE"
      	WRITE ENR_RUBSAISIE ON F.RUBSAISIE,W_CodeRub

* MAJ CONTRAT PREVOYANCE

	READ ENR_CONTRATSPREV FROM F.CONTRATSPREV,"99" ELSE ENR_CONTRATSPREV=""
	ENR_CONTRATSPREV<39>="0"
	ENR_CONTRATSPREV<40>="1"
	ENR_CONTRATSPREV<41>=W_CodeRub
	ENR_CONTRATSPREV<42>=W_CodeRub

      	WRITE ENR_CONTRATSPREV ON F.CONTRATSPREV,"99"

*

   	EXECUTE 'SELECT CONTRATSPREV AVEC 22 = "01"'
   	W_End="FAUX"

   	iMal=1
   	iAcc=1
	W_RubMal=""
	W_RubAcc=""

   	LOOP
      		READNEXT W_Cle ELSE W_End = "VRAI"
  	WHILE W_End = "FAUX" DO
      		READ ENR_CONTRATSPREV FROM F.CONTRATSPREV,W_Cle ELSE ENR_CONTRATSPREV=""

		IF ENR_CONTRATSPREV<23>="2" THEN
			ENR_CONTRATSPREV<43>="6700"
      			WRITE ENR_CONTRATSPREV ON F.CONTRATSPREV,W_Cle
		END
		IF W_Cle # "99" THEN
			ENR_CONTRATSPREV<39>="100000"
      			WRITE ENR_CONTRATSPREV ON F.CONTRATSPREV,W_Cle
		END

		i=1
		LOOP
		UNTIL ENR_CONTRATSPREV<41>=W_RubMal<i> OR W_RubMal<i>="" DO
			i=i+1
		REPEAT
		IF W_RubMal<i>="" THEN
			W_RubMal<iMal>=ENR_CONTRATSPREV<41>
			iMal=iMal+1
		END

		i=1
		LOOP
		UNTIL ENR_CONTRATSPREV<42>=W_RubAcc<i> OR W_RubAcc<i>="" DO
			i=i+1
		REPEAT
		IF W_RubAcc<i>="" THEN
			W_RubAcc<iAcc>=ENR_CONTRATSPREV<42>
			iAcc=iAcc+1
		END

   	REPEAT

   	W_Temp = 'SELECT RUBCHARGE AVEC 3 = "807" OR = "808"'

	W_Rub=""
	W_Rub<1>="807"
	W_Rub<2>="808"
	Ind=3
	W_Count=DCOUNT(W_RubMal,CHAR(254))
	FOR i = 1 TO W_Count
		W_Temp=W_Temp:' OR = "':W_RubMal<i>:'"'
		W_Rub<Ind>=W_RubMal<i>
		Ind=Ind+1
	NEXT i
	W_Count=DCOUNT(W_RubAcc,CHAR(254))
	FOR i = 1 TO W_Count
		W_Temp=W_Temp:' OR = "':W_RubAcc<i>:'"'
		W_Rub<Ind>=W_RubAcc<i>
		Ind=Ind+1
	NEXT i

	EXECUTE W_Temp
   	W_End="FAUX"

   	LOOP
      		READNEXT W_Cle ELSE W_End = "VRAI"
  	WHILE W_End = "FAUX" DO
      		READ ENR_RUBCHARGE FROM F.RUBCHARGE,W_Cle ELSE ENR_RUBCHARGE=""

		W_Count=DCOUNT(ENR_RUBCHARGE<3>,CHAR(253))
		FOR i = W_Count TO 1 STEP -1
			
			j=1
			LOOP
			UNTIL ENR_RUBCHARGE<3,i>=W_Rub<j> OR W_Rub<j>="" DO
				j=j+1
			REPEAT
			IF ENR_RUBCHARGE<3,i>=W_Rub<j> THEN
				
               			ENR_RUBCHARGE=DELETE(ENR_RUBCHARGE,3,i)
               			ENR_RUBCHARGE=DELETE(ENR_RUBCHARGE,4,i)
               			ENR_RUBCHARGE=DELETE(ENR_RUBCHARGE,5,i)
               			ENR_RUBCHARGE=DELETE(ENR_RUBCHARGE,6,i)

			END

		NEXT i

		W_Count=DCOUNT(ENR_RUBCHARGE<3>,CHAR(253))
		ENR_RUBCHARGE<3,W_Count+1>=W_CodeRub
		ENR_RUBCHARGE<4,W_Count+1>="0"
		ENR_RUBCHARGE<5,W_Count+1>="9999999"
		ENR_RUBCHARGE<6,W_Count+1>="0"

      		WRITE ENR_RUBCHARGE ON F.RUBCHARGE,W_Cle
	REPEAT

END

STOP
