*************************************************************************
* MOULINETTE SUITE A LA MIGRATION DE TOURS                              *
* GENERE DES COMPLEMENTS DE FACTURATION TOUS LES MOIS                   *
* POUR LA COTISATION MENSUELLE DE 0.15 EURO                             *
* VANESSA                                                NOVEMBRE 2002  *
*************************************************************************

*             NE PAS MODIFIER CAR PROG SPECIFIQUE TOURS                 *

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

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

W_Periode=""

   LOOP WHILE LEN(W_Periode) # 6
     PRINT "Saisissez la priode sous la forme AAAAMM"
     INPUT W_Periode
   REPEAT

   W_Mois=W_Periode[5,2]
   W_An=W_Periode[1,4]
   W_DateDeb=ICONV("01/":W_Mois:"/":W_An,"D4/")

   W_Mois=W_Mois+1
   IF W_Mois MATCH "1N" THEN W_Mois = "0":W_Mois
   IF W_Mois="13" THEN
      W_Mois="01"
      W_An=W_An+1
   END
   W_DateFin=ICONV("01/":W_Mois:"/":W_An,"D4/")-1

   EXECUTE 'SELECT ACTIVITESAIDE AVEC 1 = "001001"'
   EXECUTE 'SAUVE-LISTE W_RequeteAct'
   EXECUTE "LISTE W_RequeteAct" RETURNING MSGCODE

   IF MSGCODE<1> # 209 THEN

      SELECT F.ACTIVITESAIDE TO W_RequeteAct

      W_End="FAUX"

      LOOP
         READNEXT W_Cle FROM W_RequeteAct ELSE W_End = "VRAI"
      WHILE W_End = "FAUX" DO
         READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_Cle ELSE ENR_ACTIVITESAIDE=""

         i=1
         W_Trouve="FAUX"
         LOOP
         UNTIL ENR_ACTIVITESAIDE<1,i>="" OR W_Trouve="VRAI" DO
            IF ENR_ACTIVITESAIDE<1,i>="001001" THEN 
               IF (INT(ENR_ACTIVITESAIDE<2,i>) <= INT(W_DateFin) AND INT(ENR_ACTIVITESAIDE<3,i>) >= INT(W_DateDeb)) OR (INT(ENR_ACTIVITESAIDE<2,i>) <= INT(W_DateFin) AND ENR_ACTIVITESAIDE<3,i> = "") THEN
                  GOSUB 10
                  W_Trouve="VRAI"
               END
            END
            i=i+1
         REPEAT

      REPEAT
   END

STOP

*******************************************************************************************
*  GENERE LE COMPLEMENT DE FACTURATION

10

   W_CleComplFact = W_Cle:"001P"
   READ ENR_COMPLFACT FROM F.COMPLFACT,W_CleComplFact ELSE ENR_COMPLFACT=""

   IF ENR_COMPLFACT = "" THEN
      W_Indice=1
   END ELSE
      W_Indice=DCOUNT(ENR_COMPLFACT<1>,CHAR(253))
      W_Indice=W_Indice+1
   END
   
   ENR_COMPLFACT<1,W_Indice>="COTISATION POUR FRAIS DE GESTION"
   ENR_COMPLFACT<2,W_Indice>=""
   ENR_COMPLFACT<3,W_Indice>=""
   ENR_COMPLFACT<4,W_Indice>="15"
   ENR_COMPLFACT<5,W_Indice>="7061120000"
   ENR_COMPLFACT<6,W_Indice>="100"
   ENR_COMPLFACT<7,W_Indice>="0"
   ENR_COMPLFACT<8,W_Indice>=""

   WRITE ENR_COMPLFACT ON F.COMPLFACT,W_CleComplFact

RETURN
