
************************************************************************************
* rattrapage des heures diffrentielles du mois de dcembre sur le mois de janvier *
* prog pour Tours								   *
* vanessa           janvier 2003						   *
************************************************************************************

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

   PRINT "Saisissez la priode sur laquelle faire le rattrapage des heures diffrentielles sous la forme AAAAMM"
   INPUT W_Periode

   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="13" THEN
      W_Mois="01"
      W_An=W_An+1
   END
   W_DateFin=ICONV("01/":W_Mois:"/":W_An,"D4/")-1

   W_Str = 'SELECT CONTRAT AVEC 65 = ""'
   W_Str=W_Str:' AND AVEC 7 <= "':W_DateFin:'" AND AVEC 8 >= "':W_DateDeb'" OR = ""'
   W_Str=W_Str:' AND AVEC 5 = "M" AND AVEC 6 = "P" AND AVEC 68 = "1" AND AVEC 69 = "S" '

   EXECUTE W_Str

   W_Fin = "F"

   LOOP
      READNEXT W_Cle ELSE W_Fin = "V"
   WHILE  W_Fin # "V"
      READ ENR_CONTRAT FROM F.CONTRAT,W_Cle THEN

         W_Cumul=0
         i=1
         LOOP
         UNTIL ENR_CONTRAT<75,i>="" DO
            W_Cumul=W_Cumul+ENR_CONTRAT<75,i>
            i=i+1
         REPEAT
         IF W_Cumul > 0 THEN
            j=DCOUNT(ENR_CONTRAT<15>,CHAR(253))
            LOOP
            WHILE ENR_CONTRAT<15,j> > W_DateFin DO
               j=j-1
            REPEAT

            READ ENR_DETAILPREST FROM F.DETAILPREST,W_Cle:W_Periode THEN
               W_Count=DCOUNT(ENR_DETAILPREST<5>,CHAR(253))
            END ELSE
               W_Count=1
               ENR_DETAILPREST = ""
            END

            IF ENR_CONTRAT<24,j> # "15167" THEN
               ENR_DETAILPREST<5,W_Count>="057"
               ENR_DETAILPREST<6,W_Count>=W_Cumul
               ENR_DETAILPREST<7,W_Count>="0"
               ENR_DETAILPREST<8,W_Count>="0"
               ENR_DETAILPREST<9,W_Count>="001001"
            END ELSE
               ENR_DETAILPREST<5,W_Count>="064"
               ENR_DETAILPREST<6,W_Count>=W_Cumul
               ENR_DETAILPREST<7,W_Count>="0"
               ENR_DETAILPREST<8,W_Count>="0"
               ENR_DETAILPREST<9,W_Count>="001001"
            END

	    WRITE ENR_DETAILPREST ON F.DETAILPREST,W_Cle:W_Periode

         END

      END
   REPEAT

STOP
