************************************************************
*  moulinette qui renseigne l'att 6 de ACTIVITESAIDE       *
*  Vanessa                                                 *
*  MARS  2004                                              *
************************************************************

* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE PRINT "OUVERTURE ACTIVITESAIDE" ;* en lecture criture
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE PRINT "OUVERTURE ACTIVITES" ;* en lecture

*********************************************************
* initialisation des variables
W_Requete=""
W_Req=""
W_Act=""
*********************************************************
* PROGRAMME PRINCIPAL

   EXECUTE 'SSELECT ACTIVITES AVEC 12 = "P"'
   EXECUTE 'SAUVE-LISTE W_Req'
   EXECUTE "LISTE W_Req" RETURNING MSGCODE

   IF MSGCODE<1>=209 THEN
      STOP
   END ELSE
      SELECT F.ACTIVITES TO W_Req
 
      W_End="FAUX"
      i=1

      LOOP
         READNEXT W_Cle FROM W_Req ELSE W_End = "VRAI"
      WHILE W_End = "FAUX" DO
          READ ENR_ACTIVITES FROM F.ACTIVITES,W_Cle ELSE ENR_ACTIVITES=""
          W_Act<i,1>=W_Cle
          W_Act<i,2>=ENR_ACTIVITES<13>
          i=i+1
      REPEAT
   END


   EXECUTE 'SSELECT ACTIVITESAIDE AVEC TypeActivite = "P" AND AVEC 6 = ""'
   EXECUTE 'SAUVE-LISTE W_Requete'
   EXECUTE "LISTE W_Requete" RETURNING MSGCODE

   IF MSGCODE<1>=209 THEN
      STOP
   END ELSE
      SELECT F.ACTIVITESAIDE TO W_Requete
 
      W_End="FAUX"
    
      LOOP
         READNEXT W_Cle FROM W_Requete ELSE W_End = "VRAI"
      WHILE W_End = "FAUX" DO

         READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_Cle ELSE ENR_ACTIVITESAIDE=""

            W_Count=DCOUNT(ENR_ACTIVITESAIDE<1>,CHAR(253))

            W_SauveDateDeb=""
            W_SauveDateFin=""
            W_SauveServ=""
            W_PasDateFin="FAUX"

            FOR i = 1 TO W_Count

               j=1
               LOOP
               UNTIL ENR_ACTIVITESAIDE<1,i> = W_Act<j,1> OR W_Act<j,1>="" DO
                  j=j+1
               REPEAT 

               IF W_Act<j,1> # "" THEN

                  IF ENR_ACTIVITESAIDE<3,i> = "" THEN
                     IF W_SauveDateDeb="" THEN
                        W_SauveDateDeb=ENR_ACTIVITESAIDE<2,i>
                        W_SauveServ=W_Act<j,2>
                     END ELSE
                        IF W_SauveDateDeb > ENR_ACTIVITESAIDE<2,i> THEN
                           W_SauveDateDeb=ENR_ACTIVITESAIDE<2,i>
                           W_SauveServ=W_Act<j,2>
                        END
                     END
                     W_PasDateFin="VRAI"
                  END ELSE
                     IF W_PasDateFin="FAUX" THEN
                        IF W_SauveDateFin="" THEN
                           W_SauveDateFin=ENR_ACTIVITESAIDE<3,i>
                           W_SauveServ=W_Act<j,2>
                        END ELSE
                           IF W_SauveDateFin < ENR_ACTIVITESAIDE<3,i> THEN
                              W_SauveDateFin=ENR_ACTIVITESAIDE<3,i>
                              W_SauveServ=W_Act<j,2>
                           END
                        END
                     END
                  END
               END

            NEXT i

            ENR_ACTIVITESAIDE<6>=W_SauveServ

            WRITE ENR_ACTIVITESAIDE ON F.ACTIVITESAIDE,W_Cle

      REPEAT
   END

STOP
