DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_CLIENT_EXTN_ASGMT_APPRVL

Source


1 PACKAGE BODY PA_CLIENT_EXTN_ASGMT_APPRVL AS
2 /*$Header: PARAAPCB.pls 120.1 2005/10/28 11:34:55 ssong noship $*/
3 
4 --
5 -- Determine if the specified assignment's approval required items have been changed or not.
6 --
7 -- Currently the required items :
8 --   work type's resource utilization, org utilization, billable flag, assignment start date,
9 --   assignment end date, bill rates, transfer price rate override, transfer proce currency override,
10 --   transfer price basis override, transfer price applied % override
11 --
12 FUNCTION Is_Asgmt_Appr_Items_Changed
13 ( p_assignment_id             IN   pa_project_assignments.assignment_id%TYPE)
14 RETURN VARCHAR2
15 IS
16 
17 --Row(s) returned if No changes made
18 CURSOR items_not_changed IS
19  SELECT 'N'
20  FROM pa_project_assignments ppa,
21       pa_assignments_history pah,
22       pa_work_types_b       wtv1,
23       pa_work_types_b       wtv2
24  WHERE ppa.assignment_id      = p_assignment_id
25  AND   pah.assignment_id      = p_assignment_id
26  AND   pah.last_approved_flag = 'Y'
27  AND   ppa.start_date         = pah.start_date
28  AND   ppa.end_date           = pah.end_date
29  AND  (ppa.work_type_id = pah.work_type_id
30        OR  (ppa.work_type_id                     <> pah.work_type_id
31             AND wtv1.work_type_id                = ppa.work_type_id
32             AND wtv2.work_type_id                = pah.work_type_id
33             AND wtv1.BILLABLE_CAPITALIZABLE_FLAG = wtv2.BILLABLE_CAPITALIZABLE_FLAG
34             AND wtv1.RES_UTILIZATION_PERCENTAGE  = wtv2.RES_UTILIZATION_PERCENTAGE
35             AND wtv1.ORG_UTILIZATION_PERCENTAGE  = wtv2.ORG_UTILIZATION_PERCENTAGE
36 	   )
37    	)
38 -- Included NVL condition for the below four conditions for Bug#3960313
39  AND   nvl(ppa.tp_rate_override, -99)              = nvl(pah.tp_rate_override, -99)
40  AND   nvl(ppa.tp_currency_override, '-99')        = nvl(pah.tp_currency_override, '-99')
41  AND   nvl(ppa.tp_calc_base_code_override, '-99')  = nvl(pah.tp_calc_base_code_override, '-99')
42  AND   nvl(ppa.tp_percent_applied_override, -99)   = nvl(pah.tp_percent_applied_override, -99)
43  AND   rownum = 1;
44 
45 l_is_changed VARCHAR2(1);
46 
47 BEGIN
48   -- Initialize the Error Stack
49   PA_DEBUG.init_err_stack('PA_CLIENT_EXTN_ASGMT_APPRVL.Is_Asgmt_Appr_Items_Changed');
50 
51   OPEN items_not_changed;
52   FETCH items_not_changed INTO l_is_changed;
53 
54   IF items_not_changed%NOTFOUND THEN
55     l_is_changed := 'Y';
56   END IF;
57 
58   CLOSE items_not_changed;
59 
60   RETURN l_is_changed;
61 
62   EXCEPTION
63      WHEN OTHERS THEN
64          -- Set the excetption Message and the stack
65          FND_MSG_PUB.add_exc_msg( p_pkg_name       => 'PA_CLIENT_EXTN_ASGMT_APPRVL.Is_Asgmt_Appr_Items_Changed'
66                                  ,p_procedure_name => PA_DEBUG.G_Err_Stack );
67          --
68          RAISE;  -- This is optional depending on the needs
69 
70 END Is_Asgmt_Appr_Items_Changed;
71 
72 
73 END PA_CLIENT_EXTN_ASGMT_APPRVL;