**********************************************************
*  moulinette de mise  jour des cumuls DADS

*  Vanessa
*  juin 2002

**********************************************************

* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","HISTORCUMUL" TO F.HISTORCUMUL ELSE PRINT "OUVERTURE HISTORCUMUL" 
OPEN "","RUBCHARGE" TO F.RUBCHARGE ELSE PRINT "OUVERTURE RUBCHARGE" 
OPEN "","TRANCHE" TO F.TRANCHE ELSE PRINT "OUVERTURE TRANCHE"

*********************************************************

* initialisation des variables
W_CumulAssietteBrut=""

*********************************************************

* PROGRAMME PRINCIPAL

   EXECUTE 'SELECT HISTORCUMUL AVEC PeriodeHistCum = "2002"'
   EXECUTE 'SAUVE-LISTE W_RequeteHistCum'
   EXECUTE "LISTE W_RequeteHistCum" RETURNING MSGCODE

   IF MSGCODE<1> # 209 THEN

      SELECT F.HISTORCUMUL TO W_RequeteHistCum

      W_Fin="FAUX"

      LOOP
         READNEXT W_Cle FROM W_RequeteHistCum ELSE W_Fin = "VRAI"
      WHILE W_Fin = "FAUX" DO
         READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,W_Cle ELSE ENR_HISTORCUMUL=""
         W_Count=DCOUNT(ENR_HISTORCUMUL<15>,CHAR(253))

	 W_CumulAssietteBrut=""

         * sauvegarde le cumul d'assiette brute de la 1re rubrique avec type de charge = ASSEDIC
         FOR i = 1 TO W_Count
            READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_HISTORCUMUL<15,i> ELSE ENR_RUBCHARGE=""
            IF ENR_RUBCHARGE<16> = "02" THEN
               W_CumulAssietteBrut = ENR_HISTORCUMUL<16,i>
               EXIT
            END
         NEXT i
         IF W_CumulAssietteBrut = "" THEN
            W_CumulAssietteBrut = ENR_HISTORCUMUL<5>
         END
          
         W_Premier="FAUX"
         FOR i = 1 TO W_Count
            READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_HISTORCUMUL<15,i> ELSE ENR_RUBCHARGE=""

            * pour chaque rubcharge de type URSSAF, si cumul assiette brute # du montant sauvegard ci-dessus
            * alors on met en cumul assiette brute le montant sauvegard ci-dessus
            IF ENR_RUBCHARGE<16> = "01" THEN
               IF ENR_HISTORCUMUL<16,i> # W_CumulAssietteBrut AND ENR_HISTORCUMUL<17,i> = 0 THEN
                  ENR_HISTORCUMUL<16,i> = W_CumulAssietteBrut
               END

            END

         NEXT i

         WRITE ENR_HISTORCUMUL ON F.HISTORCUMUL,W_Cle

      REPEAT
   END

STOP
