DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKI_UTL_PVT

Source


1 PACKAGE BODY oki_utl_pvt as
2 /* $Header: OKIRUTLB.pls 115.28 2003/11/24 08:25:15 kbajaj ship $ */
3 
4 --------------------------------------------------------------------------------
5 -- Modification History
6 -- 25-Aug-2001  mezra     Removed uppercase from defaulting logic for
7 --                        period set, period name and period type
8 --                        due to release  JTF 11.5.5.1.1.A
9 -- 05-Sep-2001  mezra     Change length of l_message in get_rfh_date.
10 -- 20-Sep-2001  mezra     Added get_aging_label function.
11 -- 27-Sep-2001  mezra     Fixed get_aging_label to return the correct header
12 --                        labels
13 --                        Change get_period_set, get_period_type,
14 --                        get_period_name to take a parameter value
15 --                        that is defaulted to to null.
16 -- 01-Oct-2001  mezra     Added function to determine the start and
17 --                        end value of the age grouping.
18 --                        Added function to get the bin title for the
19 --                        aging detail bin.
20 -- 19-Oct-2001 rpotnuru   Commented dbms_output statements
21 -- 18-Dec-2001 mezra      Removed dbms_output statements.
22 --                        Changed get_rfh_date function to support parameters
23 --                        as defined by DCF.
24 -- 19-Dec-2001 mezra      Added function get_aging_label1, get_aging_label2,
25 --                        get_aging_label3, get_aging_label4 to get the aging
26 --                        label for column.
27 -- 26-Dec-2001 mezra      Added cursors that are used across packages:
28 --                        g_tactk_all_csr, g_tactk_by_org_csr,
29 --                        g_rnwl_oppty_all_csr, g_rnwl_oppty_by_org_csr,
30 --                        g_k_exp_in_qtr_all_csr, g_k_exp_in_qtr_by_org_csr,
31 --                        g_org_csr.
32 --                        Added get_bin_title2 to retrieve the title for the
33 --                        drilldown bins.
34 -- 26-Dec-2001 mezra      Added function to default the build summary date.
35 -- 04-Jan-2002 mezra      Remove all functions and procedures for the bin.
36 -- 20-Mar-2002 mezra      Added logic to set the previous year summary
37 --                        build date.
38 -- 27-MAR-2002 mezra      Changed total active contracts cursor to retrieve
39 --                        data at the covered product line level
40 -- 02-APR-2002 mezra      Changed total active contracts cursor logic to
41 --                        include contracts that are expiring on the
42 --                        same day as the summary build date.
43 -- 08-Apr-2002 mezra      Added g_bin_disp_lkup_csr cursor to retrieve bin
44 --                        display lookup details.
45 -- 26-NOV-2002 rpotnuru     NOCOPY Changes
46 --
47 -- 28-Oct-2003 axraghav    populated null for Organization name in g_org_csr  as
48 --                         this name is tobe resolved in the views
49 --------------------------------------------------------------------------------
50 
51   -- Global cursor declaration
52 
53   -- Cursor to get the gl_periods based on period_set_name,
54   -- period_type and p_summary_build_date between the start_date
55   -- and end_date
56   CURSOR g_glpr_csr
57   (
58       p_period_set_name    IN VARCHAR2
59     , p_period_type        IN vARCHAR2
60     , p_summary_build_date IN DATE
61   ) RETURN gl_periods%ROWTYPE IS
62   SELECT   *
63   FROM     gl_periods glpr
64   WHERE    glpr.adjustment_period_flag = 'N'
65   AND      p_summary_build_date BETWEEN glpr.start_date AND glpr.end_date
66   AND      glpr.period_set_name LIKE NVL(p_period_set_name, '%')
67   AND      glpr.period_type LIKE NVL(p_period_type, '%')
68   ;
69 
70   -- Retrieve the total active contracts
71   CURSOR g_tactk_all_csr
72   (
73      p_start_date IN DATE
74   ) RETURN g_tactk_all_csr_row IS
75     SELECT  NVL(SUM(cpl.base_price_negotiated), 0) value
76           , COUNT(DISTINCT(shd.chr_id)) contract_count
77     FROM   oki_sales_k_hdrs shd
78          , oki_cov_prd_lines cpl
79     WHERE  shd.chr_id = cpl.chr_id
80     AND    cpl.sts_code = 'ACTIVE'
81     AND    shd.date_signed   <= p_start_date
82     AND    shd.date_approved <= p_start_date
83     AND    shd.start_date    <= p_start_date
84     AND    shd.end_date      >= p_start_date
85     AND    (   shd.date_terminated IS NULL
86             OR shd.date_terminated  > p_start_date )
87     AND    shd.base_contract_amount BETWEEN 0
88                                         AND oki_utl_pub.g_contract_limit
89     ;
90 
91   -- Retrieve the total active contracts by organization
92   CURSOR g_tactk_by_org_csr
93   (
94      p_start_date       IN DATE
95    , p_authoring_org_id IN NUMBER
96   ) RETURN g_tactk_by_org_csr_row IS
97     SELECT  NVL(SUM(cpl.base_price_negotiated), 0) value
98           , COUNT(DISTINCT cpl.chr_id) contract_count
99           , shd.authoring_org_id authoring_org_id
100     FROM   oki_sales_k_hdrs shd
101          , oki_cov_prd_lines cpl
102     WHERE  shd.chr_id = cpl.chr_id
103     AND    cpl.sts_code = 'ACTIVE'
104     AND    shd.date_signed   <= p_start_date
105     AND    shd.date_approved <= p_start_date
106     AND    shd.start_date    <= p_start_date
107     AND    shd.end_date      >= p_start_date
108     AND    (   shd.date_terminated IS NULL
109             OR shd.date_terminated  > p_start_date )
110     AND    shd.base_contract_amount BETWEEN 0
111                                         AND oki_utl_pub.g_contract_limit
112     AND    shd.authoring_org_id = p_authoring_org_id
113     GROUP BY shd.authoring_org_id
114     ORDER BY value
115     ;
116 
117   -- Retrieve the renewal opportunity
118   CURSOR g_rnwl_oppty_all_csr
119   (
120      p_qtr_end_date IN DATE
121   ) RETURN g_rnwl_oppty_all_csr_row IS
122     SELECT NVL(SUM(shd.base_contract_amount), 0) value
123          , COUNT(shd.chr_id) contract_count
124     FROM   oki_sales_k_hdrs shd
125     WHERE  shd.start_date    <= p_qtr_end_date
126     AND    shd.is_new_yn     IS NULL
127     AND    shd.date_signed   IS NULL
128     AND    shd.date_canceled IS NULL
129     AND    shd.contract_amount BETWEEN 0
130                                    AND oki_utl_pub.g_contract_limit
131   ;
132 
133 
134   -- Retrieve the renewal opportunity by organization
135   CURSOR g_rnwl_oppty_by_org_csr
136   (
137      p_qtr_end_date     IN DATE
138    , p_authoring_org_id IN NUMBER
139   ) RETURN g_rnwl_oppty_by_org_csr_row IS
140     SELECT NVL(SUM(shd.base_contract_amount), 0) value
141          , COUNT(shd.chr_id) contract_count
142     FROM   oki_sales_k_hdrs shd
143     WHERE  shd.start_date    <= p_qtr_end_date
144     AND    shd.is_new_yn     IS NULL
145     AND    shd.date_signed   IS NULL
146     AND    shd.date_canceled IS NULL
147     AND    shd.contract_amount BETWEEN 0
148                                    AND oki_utl_pub.g_contract_limit
149     AND    shd.authoring_org_id = p_authoring_org_id
150     GROUP BY shd.authoring_org_id
151     ORDER BY value
152     ;
153 
154   -- Retrieve contracts that are expiring in the quarter
155   CURSOR g_k_exp_in_qtr_all_csr
156   (
157      p_qtr_start_date  IN DATE
158    , p_qtr_end_date    IN DATE
159   ) RETURN g_k_exp_in_qtr_all_csr_row IS
160    SELECT NVL(SUM(base_contract_amount), 0) value
161         , COUNT(shd.chr_id) contract_count
162    FROM   oki_sales_k_hdrs shd
163    WHERE  shd.date_signed   <= p_qtr_start_date
164    AND    shd.date_approved <= p_qtr_end_date
165    AND    shd.end_date BETWEEN p_qtr_start_date AND p_qtr_end_date
166    AND    shd.date_terminated IS NULL
167    AND    shd.base_contract_amount BETWEEN 0
168                                        AND oki_utl_pub.g_contract_limit
169    ;
170 
171   -- Retrieve contracts that are expiring in the quarter
172   CURSOR g_k_exp_in_qtr_by_org_csr
173   (
174      p_qtr_start_date   IN DATE
175    , p_qtr_end_date     IN DATE
176    , p_authoring_org_id IN NUMBER
177   ) RETURN g_k_exp_in_qtr_by_org_csr_row IS
178    SELECT NVL(SUM(base_contract_amount), 0) value
179         , COUNT(shd.chr_id) contract_count
180    FROM   oki_sales_k_hdrs shd
181    WHERE  shd.date_signed   <= p_qtr_start_date
182    AND    shd.date_approved <= p_qtr_end_date
183    AND    shd.end_date BETWEEN p_qtr_start_date AND p_qtr_end_date
184    AND    shd.date_terminated IS NULL
185    AND    shd.base_contract_amount BETWEEN 0
186                                        AND oki_utl_pub.g_contract_limit
187     AND    shd.authoring_org_id = p_authoring_org_id
188    ;
189 /*
190   -- Contracts that have been renewed in the quarter
191   CURSOR g_k_rnwed_csr
192   (
193      p_qtr_start_date   IN DATE
194    , p_qtr_end_date     IN DATE
195    , p_authoring_org_id IN NUMBER
196 
197   ) IS
198     SELECT NVL(SUM(base_contract_amount), 0) value
199          , COUNT(shd.chr_id) contract_count
200     FROM   oki_sales_k_hdrs shd
201     WHERE  shd.is_new_yn       IS NULL
202     AND    shd.date_signed     IS NOT NULL
203     AND    shd.start_date BETWEEN p_qtr_start_date AND p_qtr_end_date
204     AND    GREATEST(shd.date_signed, shd.date_approved) <= p_qtr_end_date
205     AND    shd.base_contract_amount BETWEEN 0
206                                        AND oki_utl_pub.g_contract_limit
207     AND    shd.authoring_org_id = p_authoring_org_id
208     ;
209 */
210 
211   -- Retrieve the organization
212 
213 /*11510 Change Null the Organization name as this resolved in the views*/
214 
215   CURSOR g_org_csr RETURN g_org_csr_row IS
216     SELECT DISTINCT shd.authoring_org_id authoring_org_id
217                   , NULL organization_name
218     FROM   oki_sales_k_hdrs shd
219     ;
220 
221   -- Retrieve the bin metadata
222   CURSOR g_bin_disp_lkup_csr
223   (  p_bin_id   IN VARCHAR2
224    , p_bin_code IN VARCHAR2
225   ) RETURN g_bin_disp_lkup_csr_row IS
226     SELECT  bdl.bin_code_meaning bin_code_meaning
227           , bdl.bin_code_seq bin_code_seq
228     FROM oki_bin_disp_lkup bdl
229     WHERE bdl.bin_id   = p_bin_id
230     AND   bdl.bin_code = p_bin_code
231     ;
232 
233 
234 --------------------------------------------------------------------------------
235   -- Procedure to get the GL period start and end dates.
236 --------------------------------------------------------------------------------
237   PROCEDURE get_gl_period_date
238   (
239      x_retcode OUT NOCOPY VARCHAR2
240   ) IS
241 
242   -- Cursor to set the GL period start and end dates
243   CURSOR l_gl_period_csr IS
244     SELECT glpr.*
245     FROM
246          gl_periods glpr
247        , gl_sets_of_books sob
248        , hr_organization_information oin
249     WHERE
250          oki_utl_pub.g_summary_build_date BETWEEN glpr.start_date
251                                               AND glpr.end_date
252     AND  glpr.period_set_name         = sob.period_set_name
253     AND  glpr.period_type             = sob.accounted_period_type
254     AND  glpr.adjustment_period_flag  = 'N'
255     AND  sob.set_of_books_id          = oin.org_information3
256     AND  oin.org_information_context  = 'Operating Unit Information'
257     AND  oin.organization_id          = fnd_profile.value('OKI_BASE_ORG_ID')
258     ;
259   rec_l_gl_period_csr l_gl_period_csr%ROWTYPE ;
260 
261   BEGIN
262     OPEN l_gl_period_csr ;
263     FETCH l_gl_period_csr INTO rec_l_gl_period_csr ;
264       IF l_gl_period_csr%FOUND THEN
265         -- Set current year start / end information
266         oki_utl_pub.g_glpr_start_date      := rec_l_gl_period_csr.start_date ;
267         oki_utl_pub.g_glpr_end_date        := rec_l_gl_period_csr.end_date ;
268         oki_utl_pub.g_glpr_qtr_start_date  := rec_l_gl_period_csr.quarter_start_date ;
269         oki_utl_pub.g_glpr_qtr_end_date    :=
270             ADD_MONTHS(oki_utl_pub.g_glpr_qtr_start_date, 3 ) - 1 ;
271         oki_utl_pub.g_glpr_qtr_num         := rec_l_gl_period_csr.quarter_num ;
272         oki_utl_pub.g_glpr_year_start_date := rec_l_gl_period_csr.year_start_date ;
273         oki_utl_pub.g_glpr_year_end_date   :=
274             ADD_MONTHS(TRUNC(oki_utl_pub.g_glpr_year_start_date,'YYYY' ), 12 ) -1 ;
275         oki_utl_pub.g_period_year          := rec_l_gl_period_csr.period_year ;
276         oki_utl_pub.g_week_start_date      := ( oki_utl_pub.g_summary_build_date -
277             TO_NUMBER(TO_CHAR(oki_utl_pub.g_summary_build_date,'D' )) -1) ;
278 
279         -- Set prior year start / end information
280         oki_utl_pub.g_py_summary_build_date
281                       := ADD_MONTHS(oki_utl_pub.g_summary_build_date, -12) ;
282         oki_utl_pub.g_py_glpr_start_date
283                       := ADD_MONTHS(oki_utl_pub.g_glpr_start_date, -12 ) ;
284         oki_utl_pub.g_py_glpr_end_date
285                       := ADD_MONTHS(oki_utl_pub.g_glpr_end_date, -12) ;
286         oki_utl_pub.g_py_glpr_qtr_start_date
287                       := ADD_MONTHS(oki_utl_pub.g_glpr_qtr_start_date, -12 ) ;
288         oki_utl_pub.g_py_glpr_qtr_end_date
289                       := ADD_MONTHS(oki_utl_pub.g_glpr_qtr_end_date, -12 ) ;
290         oki_utl_pub.g_py_glpr_qtr_num
291                       := oki_utl_pub.g_glpr_qtr_num ;
292         oki_utl_pub.g_py_glpr_year_start_date
293                       := ADD_MONTHS(oki_utl_pub.g_glpr_year_start_date, -12 ) ;
294         oki_utl_pub.g_py_glpr_year_end_date
295                       := ADD_MONTHS(oki_utl_pub.g_glpr_year_end_date, -12 ) ;
296         oki_utl_pub.g_py_period_year
297                       := oki_utl_pub.g_period_year -1 ;
298         oki_utl_pub.g_py_week_start_date
299                       := ADD_MONTHS(oki_utl_pub.g_week_start_date, -12 ) ;
300       END IF ;
301     CLOSE l_gl_period_csr ;
302   END get_gl_period_date ;
303 
304 END oki_utl_pvt ;