*
* GENERATION REGULARISATION DE CHARGES
*
W_TAUXSAL="100"
W_TAUXPAT="100"


EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","REGULCHARGE" TO F.REGULCHARGE ELSE STOP
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP

EXECUTE 'SELECT DETAILCALCUL AVEC PeriodeDetailCalcul = "200212" AND AVEC 8 = "117" AND AVEC ConvColContratDetailCalcul = "01" OR = "06" AND AVEC CodAssoContratDetailCalcul = "001" PAR @ID'
 
W_FINI="NON"
W_SauveAidant=""
BaseRegChg=0

LOOP
   READNEXT W_CLE ELSE W_FINI="OUI"
UNTIL W_FINI="OUI" DO

   READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,W_CLE ELSE ENR_DETAILCALCUL = ""

   IF W_SauveAidant = "" THEN
      W_SauveAidant = W_CLE[1,5]
   END

   IF W_SauveAidant # W_CLE[1,5] THEN

      READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_SauveAidant ELSE ENR_CIVILAIDANT = ""

      I=1
      LOOP
      UNTIL INT(I)>INT(ENR_CIVILAIDANT<41>) DO
         I=I "R%3"
         READ ENR_CONTRAT FROM F.CONTRAT,W_SauveAidant:I THEN

            IF (INT(ENR_CONTRAT<7>) <= "12904" AND INT(ENR_CONTRAT<8>) >= "12875" AND ENR_CONTRAT<1> # "02" AND ENR_CONTRAT<2> = "001" AND ENR_CONTRAT<65> # "O") OR (INT(ENR_CONTRAT<7>) <= "12904" AND ENR_CONTRAT<8> = "" AND ENR_CONTRAT<1> # "02" AND ENR_CONTRAT<2> = "001" AND ENR_CONTRAT<65> # "O") THEN

               BaseRegChg=-BaseRegChg
               MontSalRegChg=INT(BaseRegChg*W_TAUXSAL/100000-(1/2))
               MontPatRegChg=INT(BaseRegChg*W_TAUXPAT/100000-(1/2))
               IF BaseRegChg # 0 THEN
                  ENR_REGULCHARGE=""
                  ENR_REGULCHARGE<1>=BaseRegChg
                  ENR_REGULCHARGE<2>=W_TAUXSAL
                  ENR_REGULCHARGE<3>=MontSalRegChg
                  ENR_REGULCHARGE<4>=W_TAUXPAT
                  ENR_REGULCHARGE<5>=MontPatRegChg
                  WRITE ENR_REGULCHARGE ON F.REGULCHARGE,W_SauveAidant:I
                  I=ENR_CIVILAIDANT<41>
               END
            END
         END

         I=I+1
      REPEAT

      W_SauveAidant = W_CLE[1,5]
      BaseRegChg=0

      J=1
      LOOP
      UNTIL ENR_DETAILCALCUL<8,J>="" OR ENR_DETAILCALCUL<8,J>="117"  DO      
         J=J+1     
      REPEAT

      IF ENR_DETAILCALCUL<8,J>="117" THEN
         BaseRegChg=BaseRegChg+ENR_DETAILCALCUL<9,J>
      END

   END ELSE

      J=1
      LOOP
      UNTIL ENR_DETAILCALCUL<8,J>="" OR ENR_DETAILCALCUL<8,J>="117"  DO      
         J=J+1     
      REPEAT

      IF ENR_DETAILCALCUL<8,J>="117" THEN
         BaseRegChg=BaseRegChg+ENR_DETAILCALCUL<9,J>
      END

   END

REPEAT 

   READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_SauveAidant ELSE ENR_CIVILAIDANT = ""

   I=1
   LOOP
   UNTIL INT(I)>INT(ENR_CIVILAIDANT<41>) DO
      I=I "R%3"
      READ ENR_CONTRAT FROM F.CONTRAT,W_SauveAidant:I THEN

         IF (INT(ENR_CONTRAT<7>) <= "12904" AND INT(ENR_CONTRAT<8>) >= "12875" AND ENR_CONTRAT<1> # "02" AND ENR_CONTRAT<2> = "001" AND ENR_CONTRAT<65> # "O") OR (INT(ENR_CONTRAT<7>) <= "12904" AND ENR_CONTRAT<8> = "" AND ENR_CONTRAT<1> # "02" AND ENR_CONTRAT<2> = "001" AND ENR_CONTRAT<65> # "O") THEN

            BaseRegChg=-BaseRegChg
            MontSalRegChg=INT(BaseRegChg*W_TAUXSAL/100000-(1/2))
            MontPatRegChg=INT(BaseRegChg*W_TAUXPAT/100000-(1/2))
            IF BaseRegChg # 0 THEN
               ENR_REGULCHARGE=""
               ENR_REGULCHARGE<1>=BaseRegChg
               ENR_REGULCHARGE<2>=W_TAUXSAL
               ENR_REGULCHARGE<3>=MontSalRegChg
               ENR_REGULCHARGE<4>=W_TAUXPAT
               ENR_REGULCHARGE<5>=MontPatRegChg
               WRITE ENR_REGULCHARGE ON F.REGULCHARGE,W_SauveAidant:I
               I=ENR_CIVILAIDANT<41>
            END
         END
      END

      I=I+1
   REPEAT


STOP
