Monday, June 10, 2013

getistdays

/* Formatted on 2013/06/10 17:42 (Formatter Plus v4.8.8) */
CREATE OR REPLACE FUNCTION vabb.getistdays (
   mon       IN   VARCHAR2,
   tue       IN   VARCHAR2,
   wed       IN   VARCHAR2,
   thu       IN   VARCHAR2,
   fri       IN   VARCHAR2,
   sat       IN   VARCHAR2,
   sun       IN   VARCHAR2,
   utctime        VARCHAR2
)
   RETURN VARCHAR2
IS
   RESULT   VARCHAR2 (20);
   p_mon    VARCHAR2 (2)  := '--';
   p_tue    VARCHAR2 (2)  := '--';
   p_wed    VARCHAR2 (2)  := '--';
   p_thu    VARCHAR2 (2)  := '--';
   p_fri    VARCHAR2 (2)  := '--';
   p_sat    VARCHAR2 (2)  := '--';
   p_sun    VARCHAR2 (2)  := '--';
BEGIN
   IF (utctime >= '1830' AND utctime <= '2359')
   THEN
      IF (   mon != 'Y'
          OR tue != 'Y'
          OR wed != 'Y'
          OR thu != 'Y'
          OR fri != 'Y'
          OR sat != 'Y'
          OR sun != 'Y'
         )
      THEN
         IF (mon = 'Y')
         THEN
            IF sun != 'Y'
            THEN
               p_mon := '--';
            END IF;

            p_tue := '2';
         END IF;

         IF (tue = 'Y')
         THEN
            IF mon != 'Y'
            THEN
               p_tue := '--';
            END IF;

            p_wed := '3';
         END IF;

         IF (wed = 'Y')
         THEN
            IF tue != 'Y'
            THEN
               p_wed := '--';
            END IF;

            p_thu := '4';
         END IF;

         IF (thu = 'Y')
         THEN
            IF wed != 'Y'
            THEN
               p_thu := '--';
            END IF;

            p_fri := '5';
         END IF;

         IF (fri = 'Y')
         THEN
            IF thu != 'Y'
            THEN
               p_fri := '--';
            END IF;

            p_sat := '6';
         END IF;

         IF (sat = 'Y')
         THEN
            IF fri != 'Y'
            THEN
               p_sat := '--';
            END IF;

            p_sun := '7';
         END IF;

         IF (sun = 'Y')
         THEN
            IF sat != 'Y'
            THEN
               p_sun := '--';
            END IF;

            p_mon := '1';
         END IF;
      ELSE
         p_mon := '1';
         p_tue := '2';
         p_wed := '3';
         p_thu := '4';
         p_fri := '5';
         p_sat := '6';
         p_sun := '7';
      END IF;
   ELSE
      IF mon = 'Y'
      THEN
         p_mon := '1';
      ELSE
         p_mon := '--';
      END IF;

      IF tue = 'Y'
      THEN
         p_tue := '2';
      ELSE
         p_tue := '--';
      END IF;

      IF wed = 'Y'
      THEN
         p_wed := '3';
      ELSE
         p_wed := '--';
      END IF;

      IF thu = 'Y'
      THEN
         p_thu := '4';
      ELSE
         p_thu := '--';
      END IF;

      IF fri = 'Y'
      THEN
         p_fri := '5';
      ELSE
         p_fri := '--';
      END IF;

      IF sat = 'Y'
      THEN
         p_sat := '6';
      ELSE
         p_sat := '--';
      END IF;

      IF sun = 'Y'
      THEN
         p_sun := '7';
      ELSE
         p_sun := '--';
      END IF;
   END IF;

   RESULT :=
         p_mon
      || ' '
      || p_tue
      || ' '
      || p_wed
      || ' '
      || p_thu
      || ' '
      || p_fri
      || ' '
      || p_sat
      || ' '
      || p_sun;
   RETURN (RESULT);
END getistdays;
/

No comments:

Post a Comment