[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;