[Home] [Help]
PACKAGE BODY: APPS.GMD_MBR_UTIL_PKG
Source
1 PACKAGE BODY GMD_MBR_UTIL_PKG AS
2 /* $Header: GMDMBRUB.pls 120.3 2006/10/02 21:15:41 srpuri noship $ */
3
4 PROCEDURE GET_ACTIVITY_FACTOR(p_RECIPE_ID number,
5 p_ROUTINGSTEP_ID number,
6 p_OPRN_LINE_ID number,
7 p_DOCUMENT_id VARCHAR2,
8 p_Default_factor number,
9 x_org_specific_factor OUT NOCOPY NUMBER) AS
10 CURSOR CUR_GET_ACTIVITY_FACTOR IS
11 SELECT activity_factor
12 FROM gmd_recipe_orgn_activities
13 WHERE RECIPE_ID = P_RECIPE_ID
14 AND ROUTINGSTEP_ID = P_ROUTINGSTEP_ID
15 AND OPRN_LINE_ID = P_OPRN_LINE_ID
16 AND ORGANIZATION_ID = substrb(P_DOCUMENT_ID,instrb(P_DOCUMENT_ID,'-',1,1)+1,
17 decode(instrb(P_DOCUMENT_ID,'-',1,2),0,
18 length(substrb(P_DOCUMENT_ID,instrb(P_DOCUMENT_ID,'-',1,1)+1)),
19 instrb(P_DOCUMENT_ID,'-',1,2)-(instrb(P_DOCUMENT_ID,'-',1,1)+1)));
20 BEGIN
21 OPEN CUR_GET_ACTIVITY_FACTOR;
22 FETCH CUR_GET_ACTIVITY_FACTOR INTO x_org_specific_factor;
23 IF CUR_GET_ACTIVITY_FACTOR%NOTFOUND THEN
24 x_org_specific_factor := p_Default_factor;
25 END IF;
26 CLOSE CUR_GET_ACTIVITY_FACTOR;
27 END GET_ACTIVITY_FACTOR;
28
29
30 PROCEDURE GET_RECIPE_RSRC_ORGN_OVERRIDES(
31 P_RECIPE_ID number
32 ,P_ROUTINGSTEP_ID number
33 ,P_OPRN_LINE_ID number
34 ,P_RESOURCES VARCHAR2
35 ,P_PROCESS_UOM VARCHAR2
36 ,P_USAGE_UM VARCHAR2
37 ,P_RESOURCE_USAGE number
38 ,P_PROCESS_QTY number
39 ,P_DOCUMENT_ID VARCHAR2
40 ,P_MIN_CAPACITY number
41 ,P_MAX_CAPACITY number
42 ,P_CAPACITY_UM VARCHAR2
43 ,x_PROCESS_UOM OUT NOCOPY VARCHAR2
44 ,x_USAGE_UM OUT NOCOPY VARCHAR2
45 ,x_RESOURCE_USAGE OUT NOCOPY VARCHAR2
46 ,x_PROCESS_QTY OUT NOCOPY number
47 ,x_MIN_CAPACITY OUT NOCOPY number
48 ,x_MAX_CAPACITY OUT NOCOPY number
49 ,x_CAPACITY_UM OUT NOCOPY VARCHAR2) IS
50 CURSOR CUR_GET_RSRC_OVERRIDES IS
51 SELECT MIN_CAPACITY
52 ,MAX_CAPACITY
53 ,PROCESS_UM
54 ,USAGE_UOM
55 ,RESOURCE_USAGE
56 ,PROCESS_QTY
57 FROM gmd_recipe_orgn_resources
58 WHERE
59 ORGANIZATION_ID = substrb(P_DOCUMENT_ID,instrb(P_DOCUMENT_ID,'-',1,1)+1,
60 decode(instrb(P_DOCUMENT_ID,'-',1,2),0,
61 length(substrb(P_DOCUMENT_ID,instrb(P_DOCUMENT_ID,'-',1,1)+1)),
62 instrb(P_DOCUMENT_ID,'-',1,2)-(instrb(P_DOCUMENT_ID,'-',1,1)+1)))
63 AND RECIPE_ID = P_RECIPE_ID
64 AND ROUTINGSTEP_ID = P_ROUTINGSTEP_ID
65 AND OPRN_LINE_ID = P_OPRN_LINE_ID
66 AND RESOURCES = P_RESOURCES ;
67
68 CURSOR CUR_GET_RSRC_ORG_DEF IS
69 SELECT
70 MIN_CAPACITY
71 ,MAX_CAPACITY
72 ,CAPACITY_UM
73 FROM CR_RSRC_DTL
74 WHERE RESOURCES = P_RESOURCES
75 AND ORGANIZATION_ID = substrb(P_DOCUMENT_ID,instrb(P_DOCUMENT_ID,'-',1,1)+1,
76 decode(instrb(P_DOCUMENT_ID,'-',1,2),0,
77 length(substrb(P_DOCUMENT_ID,instrb(P_DOCUMENT_ID,'-',1,1)+1)),
78 instrb(P_DOCUMENT_ID,'-',1,2)-(instrb(P_DOCUMENT_ID,'-',1,1)+1)));
79
80 BEGIN
81 OPEN CUR_GET_RSRC_OVERRIDES;
82 FETCH CUR_GET_RSRC_OVERRIDES into
83 x_MIN_CAPACITY
84 ,x_MAX_CAPACITY
85 ,x_PROCESS_UOM
86 ,x_USAGE_UM
87 ,x_RESOURCE_USAGE
88 ,x_PROCESS_QTY;
89 IF CUR_GET_RSRC_OVERRIDES%NOTFOUND THEN
90 OPEN CUR_GET_RSRC_ORG_DEF;
91 FETCH CUR_GET_RSRC_ORG_DEF INTO x_MIN_CAPACITY,x_MAX_CAPACITY,x_CAPACITY_UM;
92 IF CUR_GET_RSRC_ORG_DEF%NOTFOUND THEN
93 x_MIN_CAPACITY := P_MIN_CAPACITY;
94 x_MAX_CAPACITY := P_MAX_CAPACITY;
95 x_PROCESS_UOM := P_PROCESS_UOM;
96 x_USAGE_UM := P_USAGE_UM;
97 x_RESOURCE_USAGE := P_RESOURCE_USAGE;
98 x_PROCESS_QTY := P_PROCESS_QTY;
99 x_CAPACITY_UM := P_CAPACITY_UM;
100 ELSE
101 x_PROCESS_UOM := P_PROCESS_UOM;
102 x_USAGE_UM := P_USAGE_UM;
103 x_RESOURCE_USAGE := P_RESOURCE_USAGE;
104 END IF;
105 CLOSE CUR_GET_RSRC_ORG_DEF;
106 ELSE
107 x_CAPACITY_UM := P_CAPACITY_UM;
108 END IF;
109 CLOSE CUR_GET_RSRC_OVERRIDES;
110 END GET_RECIPE_RSRC_ORGN_OVERRIDES;
111
112 FUNCTION GET_SAMPLING_PLAN(P_INVENTORY_ITEM_ID IN NUMBER
113 ,P_GRADE_CODE IN VARCHAR2
114 ,P_ORGANIZATION_ID IN VARCHAR2
115 ,P_BATCH_ID IN VARCHAR2
116 ,P_RECIPE_ID IN VARCHAR2
117 ,P_RECIPE_NO IN VARCHAR2
118 ,P_RECIPE_VERSION IN VARCHAR2
119 ,P_FORMULA_ID IN VARCHAR2
120 ,P_FORMULALINE_ID IN VARCHAR2
121 ,P_FORMULA_NO IN VARCHAR2
122 ,P_FORMULA_VERS IN VARCHAR2
123 ,P_ROUTING_ID IN VARCHAR2
124 ,P_ROUTING_NO IN VARCHAR2
125 ,P_ROUTING_VERS IN VARCHAR2
126 ,P_STEP_ID IN VARCHAR2
127 ,P_STEP_NO IN VARCHAR2
128 ,P_OPRN_ID IN VARCHAR2
129 ,P_OPRN_NO IN VARCHAR2
130 ,P_OPRN_VERS IN VARCHAR2
131 ,P_CHARGE IN VARCHAR2
132 ,P_DATE_EFFECTIVE IN DATE
133 ,P_EXACT_MATCH IN VARCHAR2
134 ,P_LOT_NUMBER IN VARCHAR2
135 ,P_FIND_SPEC_WITH_STEP IN VARCHAR2) RETURN NUMBER IS
136
137 ret_value BOOLEAN;
138 p_wip_spec_rec GMD_SPEC_MATCH_GRP.WIP_SPEC_REC_TYPE;
139 x_return_status VARCHAR2(4000);
140 x_message_data VARCHAR2(4000);
141 l_spec_id NUMBER := null;
142 l_spec_vr_id NUMBER := null;
143 l_smpl_plan_id number := null;
144 CURSOR get_sampling_plan_id is
145 SELECT SAMPLING_PLAN_ID
146 from gmd_wip_spec_vrs
147 WHERE SPEC_VR_ID = l_spec_vr_id;
148 CURSOR get_item_revison IS
149 SELECT REVISION
150 from fm_matl_dtl
151 where FORMULALINE_ID = P_FORMULALINE_ID;
152 BEGIN
153 p_wip_spec_rec.INVENTORY_ITEM_ID := P_INVENTORY_ITEM_ID;
154 p_wip_spec_rec.GRADE_CODE := P_GRADE_CODE;
155 p_wip_spec_rec.ORGANIZATION_ID := P_ORGANIZATION_ID;
156 p_wip_spec_rec.BATCH_ID := P_BATCH_ID;
157 p_wip_spec_rec.RECIPE_ID := P_RECIPE_ID;
158 p_wip_spec_rec.RECIPE_NO := P_RECIPE_NO;
159 p_wip_spec_rec.RECIPE_VERSION := P_RECIPE_VERSION;
160 p_wip_spec_rec.FORMULA_ID := P_FORMULA_ID;
161 p_wip_spec_rec.FORMULALINE_ID := P_FORMULALINE_ID;
162 p_wip_spec_rec.FORMULA_NO := P_FORMULA_NO;
163 p_wip_spec_rec.FORMULA_VERS := P_FORMULA_VERS;
164 p_wip_spec_rec.ROUTING_ID := P_ROUTING_ID;
165 p_wip_spec_rec.ROUTING_NO := P_ROUTING_NO;
166 p_wip_spec_rec.ROUTING_VERS := P_ROUTING_VERS;
167 p_wip_spec_rec.STEP_ID := P_STEP_ID;
168 p_wip_spec_rec.STEP_NO := P_STEP_NO;
169 p_wip_spec_rec.OPRN_ID := P_OPRN_ID;
170 p_wip_spec_rec.OPRN_NO := P_OPRN_NO;
171 p_wip_spec_rec.OPRN_VERS := P_OPRN_VERS;
172 p_wip_spec_rec.CHARGE := P_CHARGE;
173 p_wip_spec_rec.DATE_EFFECTIVE := NVL(P_DATE_EFFECTIVE,SYSDATE);
174 p_wip_spec_rec.EXACT_MATCH := P_EXACT_MATCH;
175 p_wip_spec_rec.LOT_NUMBER := P_LOT_NUMBER;
176 p_wip_spec_rec.FIND_SPEC_WITH_STEP := P_FIND_SPEC_WITH_STEP;
177 open get_item_revison;
178 fetch get_item_revison into p_wip_spec_rec.revision;
179 close get_item_revison;
180 ret_value := gmd_spec_match_grp.find_wip_spec(p_wip_spec_rec,l_spec_id,l_spec_vr_id,x_return_status,x_message_data);
181 IF RET_VALUE
182 THEN
183 OPEN get_sampling_plan_id;
184 FETCH get_sampling_plan_id INTO l_smpl_plan_id;
185 CLOSE get_sampling_plan_id;
186 RETURN l_smpl_plan_id;
187 ELSE
188 l_spec_id := null;
189 l_spec_vr_id := null;
190 RETURN null;
191 END IF;
192 EXCEPTION
193 WHEN OTHERS THEN
194 l_spec_id := null;
195 l_spec_vr_id := null;
196 RETURN null;
197 END GET_SAMPLING_PLAN;
198
199
200
201 PROCEDURE Get_ORGN_Process_parameters(p_RECIPE_ID number,
202 p_ROUTINGSTEP_ID number,
203 p_OPRN_LINE_ID number,
204 p_resource VARCHAR2,
205 p_DOCUMENT_id VARCHAR2,
206 P_PARAMETER_ID Number,
207 P_TARGET_VALUE VARCHAR2,
208 P_MINIMUM_VALUE Number,
209 P_MAXIMUM_VALUE Number,
210 X_TARGET_VALUE OUT NOCOPY VARCHAR2,
211 X_MINIMUM_VALUE OUT NOCOPY Number,
212 X_MAXIMUM_VALUE OUT NOCOPY Number,
213 X_PARAMETER_NAME OUT NOCOPY VARCHAR2) IS
214 CURSOR Get_Process_param_overrides IS
215 SELECT TARGET_VALUE,MINIMUM_VALUE,MAXIMUM_VALUE
216 FROM gmd_recipe_process_parameters
217 WHERE recipe_id = p_recipe_id
218 AND organization_id = substrb(P_DOCUMENT_ID,instrb(P_DOCUMENT_ID,'-',1,1)+1,
219 decode(instrb(P_DOCUMENT_ID,'-',1,2),0,
220 length(substrb(P_DOCUMENT_ID,instrb(P_DOCUMENT_ID,'-',1,1)+1)),
221 instrb(P_DOCUMENT_ID,'-',1,2)-(instrb(P_DOCUMENT_ID,'-',1,1)+1)))
222 AND routingstep_id = p_ROUTINGSTEP_ID
223 AND oprn_line_id = p_OPRN_LINE_ID
224 AND resources = p_resource
225 AND parameter_id = P_PARAMETER_ID ;
226
227 CURSOR GET_PARAMETER_NAME IS
228 SELECT PARAMETER_NAME
229 FROM GMP_PROCESS_PARAMETERS
230 WHERE PARAMETER_ID = P_PARAMETER_ID;
231 BEGIN
232 open Get_Process_param_overrides;
233 FETCH Get_Process_param_overrides INTO X_TARGET_VALUE,X_MINIMUM_VALUE,X_MAXIMUM_VALUE;
234 IF Get_Process_param_overrides%NOTFOUND THEN
235 X_TARGET_VALUE := P_TARGET_VALUE;
236 X_MINIMUM_VALUE := P_MINIMUM_VALUE ;
237 X_MAXIMUM_VALUE := P_MAXIMUM_VALUE ;
238 END IF;
239 CLOSE Get_Process_param_overrides;
240 OPEN GET_PARAMETER_NAME;
241 FETCH GET_PARAMETER_NAME INTO X_PARAMETER_NAME;
242 CLOSE GET_PARAMETER_NAME;
243 END Get_ORGN_Process_parameters;
244
245 Function Get_Step_qty (p_RECIPE_ID number,
246 p_ROUTINGSTEP_ID number,
247 p_step_qty number) return number IS
248 BEGIN
249 return p_step_qty;
250 END;
251
252 END GMD_MBR_UTIL_PKG;