DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_CLIENT_EXTN_GEN_ASSET_LINES

Source


1 PACKAGE BODY PA_CLIENT_EXTN_GEN_ASSET_LINES AS
2 -- $Header: PAPGALCB.pls 120.3.12010000.2 2009/06/09 09:04:59 abjacob ship $
3 
4 PROCEDURE CLIENT_ASSET_ASSIGNMENT(p_project_id 	              IN NUMBER,
5 				  p_task_id                   IN NUMBER,
6                                   p_expnd_item_id             IN NUMBER,
7                                   p_expnd_id                  IN NUMBER,
8                                   p_expnd_type                IN VARCHAR2,
9                                   p_expnd_category            IN VARCHAR2,
10                                   p_expnd_type_class          IN VARCHAR2,
11                                   p_non_labor_org_id          IN NUMBER,
12                                   p_non_labor_resource        IN VARCHAR2,
13 				  p_invoice_id                IN NUMBER,
14                                   p_inv_dist_line_number      IN NUMBER,
15                                   p_vendor_id                 IN NUMBER,
16                                   p_employee_id               IN NUMBER,
17                                   p_attribute1                IN VARCHAR2,
18                                   p_attribute2                IN VARCHAR2,
19                                   p_attribute3                IN VARCHAR2,
20                                   p_attribute4                IN VARCHAR2,
21                                   p_attribute5                IN VARCHAR2,
22                                   p_attribute6                IN VARCHAR2,
23                                   p_attribute7                IN VARCHAR2,
24                                   p_attribute8                IN VARCHAR2,
25                                   p_attribute9                IN VARCHAR2,
26                                   p_attribute10               IN VARCHAR2,
27                                   p_attribute_category        IN VARCHAR2,
28                                   p_in_service_through_date   IN DATE,
29                                   x_asset_id                  IN OUT NOCOPY NUMBER) IS
30 
31    nl_installed VARCHAR2(1);  -- bug  7524772
32 
33 /*  Bug 7524772: Broke this cursor into two cursors based on the condition IPA_ASSET_MECH_APIS_PKG.g_nl_installed to facilitate proper index to be picked up*/
34 /*   cursor get_project_asset_id is
35    select project_asset_id
36    from   pa_project_asset_assignments ppaa
37    where ppaa.task_id = p_task_id
38    and   ppaa.project_id = p_project_id
39    and   nvl(ppaa.attribute8,'~!@#')  = nvl(p_attribute8,'~!@#')
40    and   nvl(ppaa.attribute9,'~!@#')  = nvl(p_attribute9,'~!@#')
41    and   nvl(ppaa.attribute10,'~!@#')  = nvl(p_attribute10,'~!@#')
42    /* Start Bug fix:2956569 : attribute6,7 Should be used only when the nl_installed flag = Y
43    AND  ( (NVL(IPA_ASSET_MECH_APIS_PKG.g_nl_installed,'N') = 'Y'
44            AND   nvl(ppaa.attribute6,'~!@#') = nvl(p_attribute6, '~!@#') --crl_inventory
45            AND   nvl(ppaa.attribute7,'~!@#') = nvl(p_attribute7, '~!@#') --serial_number
46           )
47          OR
48           NVL(IPA_ASSET_MECH_APIS_PKG.g_nl_installed,'N') = 'N'
49         );
50     End Bug fix:2956569 */
51 
52 cursor get_project_asset_id_nl_ins is
53 select project_asset_id
54    from   pa_project_asset_assignments ppaa
55    where ppaa.task_id = p_task_id
56    and   ppaa.project_id = p_project_id
57    AND   nvl(ppaa.attribute6,'~!@#') = nvl(p_attribute6, '~!@#') --crl_inventory
58    AND   nvl(ppaa.attribute7,'~!@#') = nvl(p_attribute7, '~!@#') --serial_number
59    and   nvl(ppaa.attribute8,'~!@#')  = nvl(p_attribute8,'~!@#')
60    and   nvl(ppaa.attribute9,'~!@#')  = nvl(p_attribute9,'~!@#')
61    and   nvl(ppaa.attribute10,'~!@#')  = nvl(p_attribute10,'~!@#')
62    ;
63 
64 cursor get_project_asset_id_no_ins is
65 select project_asset_id
66    from   pa_project_asset_assignments ppaa
67    where ppaa.task_id = p_task_id
68    and   ppaa.project_id = p_project_id
69    and   nvl(ppaa.attribute8,'~!@#')  = nvl(p_attribute8,'~!@#')
70    and   nvl(ppaa.attribute9,'~!@#')  = nvl(p_attribute9,'~!@#')
71    and   nvl(ppaa.attribute10,'~!@#')  = nvl(p_attribute10,'~!@#')
72    ;
73 
74 /*  Bug 7524772  end*/
75 
76 
77 
78   /* Adding cursor  for IPA for bug 5637615 */
79    CURSOR get_crl_instal_rec is
80        SELECT asset_name_id
81        FROM ipa_asset_naming_conventions ;
82 
83 	dummy   number ;
84 	v_project_asset_id number;
85         l_crl_rec  ipa_asset_naming_convents_all.asset_name_id%TYPE;
86 BEGIN
87 
88    nl_installed:= NVL(IPA_ASSET_MECH_APIS_PKG.g_nl_installed,'N');
89 
90   /* Adding another check for IPA for bug 5637615 */
91    OPEN get_crl_instal_rec;
92    FETCH get_crl_instal_rec into l_crl_rec;
93    IF get_crl_instal_rec%notfound then
94           l_crl_rec :=NULL;
95     END IF;
96     CLOSE get_crl_instal_rec;
97 
98 
99  /* This is the default code for CRL Auto Asset line assognment and this
100     portion of the code needs to be un commented if CRL is installed  */
101     IF (PA_INSTALL.is_product_installed('IPA')) AND (l_crl_rec IS NOT NULL) THEN
102             Select 1 into dummy
103             from pa_project_types ppt,
104                  pa_tasks pt,
105                  pa_tasks pt2,
106                  pa_projects_all ppr -- Changed to _ALL as part of MOAC changes
107             where p_task_id = pt.task_id and
108             p_project_id = pt.project_id and
109             pt.project_id = ppr.project_id and
110             ppr.template_flag <> 'Y' and
111             ppr.project_status_code <> 'CLOSED' and
112             ppr.project_type = ppt.project_type and
113             ppt.cip_grouping_method_code = 'CIPGCE' and
114 	    --nvl(ppt.attribute10,'N') = 'Y' and
115             ppt.project_type_class_code = 'CAPITAL' and
116             pt2.task_id = pt.top_task_id and
117             nvl(ppr.attribute10,'Y') ='Y' and
118             nvl(pt2.attribute9,'Y') ='Y' and
119             ppt.interface_asset_cost_code = 'F';
120 
121 	   if (sql%found) then
122            if (nl_installed = 'Y') then  -- Bug 7524772
123               open get_project_asset_id_nl_ins;  -- Bug 7524772
124               fetch get_project_asset_id_nl_ins into v_project_asset_id;
125               if get_project_asset_id_nl_ins%notfound then
126                  v_project_asset_id :=0;
127               end if;
128               close get_project_asset_id_nl_ins;
129            else
130               open get_project_asset_id_no_ins;  -- Bug 7524772
131               fetch get_project_asset_id_no_ins into v_project_asset_id;
132               if get_project_asset_id_no_ins%notfound then
133                  v_project_asset_id :=0;
134               end if;
135               close get_project_asset_id_no_ins;
136            end if;
137        end if;
138        x_asset_id := v_project_asset_id;
139    ELSE
140      null;
141    END IF;
142 
143 EXCEPTION
144   WHEN OTHERS THEN
145     x_asset_id := 0;
146      --null;
147 END;
148 END;