DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_IN_ROUTES

Source


1 PACKAGE BODY pay_in_routes AS
2 /* $Header: pyinrout.pkb 120.3 2008/06/03 11:22:39 rsaharay noship $ */
3 
4 g_package     CONSTANT VARCHAR2(100) := 'pay_in_routes.';
5 g_debug       BOOLEAN;
6 
7 g_half_year_start1  CONSTANT VARCHAR2(6) := '01-04-';
8 g_half_year_start2  CONSTANT VARCHAR2(6) := '01-10-';
9 
10 g_chalf_year_start1  CONSTANT VARCHAR2(6) := '01-01-';
11 g_chalf_year_start2  CONSTANT VARCHAR2(6) := '01-07-';
12 
13 
14 FUNCTION span_start (   p_input_date    DATE
15                        ,p_frequency number DEFAULT 1
16                        ,p_start_dd_mm VARCHAR2
17                     )
18 RETURN DATE IS
19   l_year  NUMBER(4);
20   l_month NUMBER(2);
21   l_function   VARCHAR(100);
22   l_message     VARCHAR2(250);
23   l_start DATE;
24 
25   --
26 BEGIN
27    l_function := g_package||'span_start';
28    pay_in_utils.set_location(g_debug,'Entering: '||l_function,10);
29 
30    IF g_debug THEN
31       pay_in_utils.trace ('**************************************************','********************');
32       pay_in_utils.trace ('p_input_date',p_input_date);
33       pay_in_utils.trace ('p_frequency',p_frequency);
34       pay_in_utils.trace ('p_start_dd_mm',p_start_dd_mm);
35       pay_in_utils.trace ('**************************************************','********************');
36    END IF;
37   -- Get the year component of the input date
38    l_year := TO_NUMBER(TO_CHAR(p_input_date,'yyyy'));
39   --
40 
41   IF p_frequency =1 THEN
42     IF p_input_date >= TO_DATE(p_start_dd_mm||TO_CHAR(l_year),'dd-mm-yyyy') THEN
43       l_start := TO_DATE(p_start_dd_mm||TO_CHAR(l_year),'dd-mm-yyyy');
44     ELSE
45       l_start := TO_DATE(p_start_dd_mm||TO_CHAR(l_year -1),'dd-mm-yyyy');
46     END IF;
47 
48   ELSIF p_frequency =2 THEN -- For half Yearly Dimension
49     l_month :=TO_NUMBER(TO_CHAR(p_input_date,'mm'));
50      IF l_month BETWEEN 4 AND 9 THEN
51        l_start := TO_DATE(g_half_year_start1||TO_CHAR(l_year),'dd-mm-yyyy');
52      ELSIF l_month BETWEEN 10 and 12 THEN
53        l_start := TO_DATE(g_half_year_start2||TO_CHAR(l_year),'dd-mm-yyyy');
54      ELSE
55        l_start := TO_DATE(g_half_year_start2||TO_CHAR(l_year-1),'dd-mm-yyyy');
56      END IF;
57 
58   ELSIF p_frequency =3 THEN -- For Currency half Yearly Dimension
59     l_month :=TO_NUMBER(TO_CHAR(p_input_date,'mm'));
60      IF l_month BETWEEN 1 AND 6 THEN
61        l_start := TO_DATE(g_chalf_year_start1||TO_CHAR(l_year),'dd-mm-yyyy');
62      ELSE
63        l_start := TO_DATE(g_chalf_year_start2||TO_CHAR(l_year),'dd-mm-yyyy');
64      END IF;
65   END IF;
66 
67     pay_in_utils.trace('l_month ',l_month);
68     pay_in_utils.set_location(g_debug,l_function,20);
69 
70     pay_in_utils.trace('l_start ',l_start);
71     pay_in_utils.set_location(g_debug,l_function,30);
72 
73    IF g_debug THEN
74       pay_in_utils.trace ('**************************************************','********************');
75       pay_in_utils.trace ('l_start',l_start);
76       pay_in_utils.trace ('**************************************************','********************');
77    END IF;
78 
79    pay_in_utils.set_location(g_debug,'Leaving: '||l_function,30);
80    RETURN l_start;
81   --
82 END span_start;
83 END PAY_IN_ROUTES;