1 PACKAGE BODY WIP_Default_Res AS
2 /* $Header: WIPDRESB.pls 120.4.12020000.3 2013/03/12 13:24:45 akuppa ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'WIP_Default_Res';
7
8 -- Package global used within the package.
9
10 -- The get_***_attr procedures populate the global variables listed
11 -- below. When the get_<attr_name> procedure get called, they will
12 -- default from the global variables if they have been populated
13
14 g_Res_rec WIP_Transaction_PUB.Res_Rec_Type;
15 g_RCV_txn WIP_Transaction_PUB.Rcv_Txn_Type;
16 g_WIP_op_res WIP_Transaction_PUB.WIP_Op_Res_Type;
17 g_PO_Dstr WIP_Transaction_PUB.PO_Dist_Type;
18 g_Wip_Entities_rec WIP_Work_Order_PUB.Wip_Entities_Rec_Type :=
19 WIP_Work_Order_PUB.G_MISS_WIP_ENTITIES_REC;
20 g_BOM_res WIP_Transaction_PUB.BOM_Resource_Type;
21
22 -- Get functions.
23
24 /* Private Procedure that will populate all the attributes from RCV_TRANSACTIONS_INTERFACE. Populating each attribute individually will be a performance hit, so call this procedure once */
25 PROCEDURE get_rti_attr
26 IS
27
28 l_wip_entity_id NUMBER := FND_API.G_MISS_NUM;
29 l_wip_line_id NUMBER := FND_API.G_MISS_NUM;
30 l_wip_repetitive_schedule_id NUMBER := FND_API.G_MISS_NUM;
31 l_wip_operation_seq_num NUMBER := FND_API.G_MISS_NUM;
32 l_wip_resource_seq_num NUMBER := FND_API.G_MISS_NUM;
33 l_transaction_date DATE := FND_API.G_MISS_DATE;
34 l_creation_date DATE := FND_API.G_MISS_DATE;
35 l_created_by NUMBER := FND_API.G_MISS_NUM;
36 l_item_id NUMBER := FND_API.G_MISS_NUM;
37 l_last_update_date DATE := FND_API.G_MISS_DATE;
38 l_last_updated_by NUMBER := FND_API.G_MISS_NUM;
39 l_last_update_login NUMBER := FND_API.G_MISS_NUM;
40 l_organization_id NUMBER := FND_API.G_MISS_NUM;
41 l_primary_unit_of_measure VARCHAR2(25) := FND_API.G_MISS_CHAR;
42 l_reason_id NUMBER := FND_API.G_MISS_NUM;
43 l_source_doc_quantity NUMBER := FND_API.G_MISS_NUM;
44 l_source_doc_unit_of_measure VARCHAR2(25) := FND_API.G_MISS_CHAR;
45 l_comments VARCHAR2(240) := FND_API.G_MISS_CHAR;
46 l_quantity NUMBER := FND_API.G_MISS_NUM;
47 l_unit_of_measure VARCHAR2(25) := FND_API.G_MISS_CHAR;
48 l_po_header_id NUMBER := FND_API.G_MISS_NUM;
49 l_po_line_id NUMBER := FND_API.G_MISS_NUM;
50 l_po_unit_price NUMBER := FND_API.G_MISS_NUM;
51 l_currency_code VARCHAR2(15) := FND_API.G_MISS_CHAR;
52 l_currency_conversion_type VARCHAR2(10) := FND_API.G_MISS_CHAR;
53 l_currency_conversion_rate NUMBER := FND_API.G_MISS_NUM;
54 l_currency_conversion_date DATE := FND_API.G_MISS_DATE;
55 BEGIN
56
57 IF g_Res_rec.source_code = 'RCV'
58 AND g_Res_rec.source_line_id IS NOT NULL THEN
59
60 --dbms_output.put_line('osp.rcv_transaction_id = ' || g_Res_rec.rcv_transaction_id);
61
62 SELECT wip_entity_id
63 , wip_line_id
64 , wip_repetitive_schedule_id
65 , wip_operation_seq_num
66 , wip_resource_seq_num
67 , transaction_date
68 , creation_date
69 , created_by
70 , item_id
71 , last_update_date
72 , last_updated_by
73 , last_update_login
74 , to_organization_id
75 , reason_id
76 , source_doc_unit_of_measure
77 , comments
78 , po_header_id
79 , po_line_id
80 , po_unit_price
81 , quantity
82 , unit_of_measure
83 , primary_unit_of_measure
84 , currency_code
85 , currency_conversion_type
86 , currency_conversion_rate
87 , currency_conversion_date
88 INTO l_wip_entity_id
89 , l_wip_line_id
90 , l_wip_repetitive_schedule_id
91 , l_wip_operation_seq_num
92 , l_wip_resource_seq_num
93 , l_transaction_date
94 , l_creation_date
95 , l_created_by
96 , l_item_id
97 , l_last_update_date
98 , l_last_updated_by
99 , l_last_update_login
100 , l_organization_id
101 , l_reason_id
102 , l_source_doc_unit_of_measure
103 , l_comments
104 , l_po_header_id
105 , l_po_line_id
106 , l_po_unit_price
107 , l_quantity
108 , l_unit_of_measure
109 , l_primary_unit_of_measure
110 , l_currency_code
111 , l_currency_conversion_type
112 , l_currency_conversion_rate
113 , l_currency_conversion_date
114 FROM RCV_TRANSACTIONS_INTERFACE
115 WHERE interface_transaction_id = g_Res_rec.source_line_id;
116
117
118 IF g_RCV_txn.quantity IS NULL THEN
119 g_RCV_txn.quantity := l_quantity;
120 END IF;
121 IF g_RCV_txn.unit_of_measure IS NULL THEN
122 g_RCV_txn.unit_of_measure := l_unit_of_measure;
123 END IF;
124 IF g_RCV_txn.wip_entity_id IS NULL THEN
125 g_RCV_txn.Wip_Entity_Id := l_wip_entity_id;
126 END IF;
127 IF g_RCV_txn.wip_line_id IS NULL THEN
128 g_RCV_txn.wip_line_Id := l_wip_line_id;
129 END IF;
130 IF g_RCV_txn.wip_repetitive_schedule_id IS NULL THEN
131 g_RCV_txn.wip_repetitive_schedule_id := l_wip_repetitive_schedule_id;
132 END IF;
133 IF g_RCV_txn.wip_operation_seq_num IS NULL THEN
134 g_RCV_txn.wip_operation_seq_num := l_wip_operation_seq_num;
135 END IF;
136 IF g_RCV_txn.wip_resource_seq_num IS NULL THEN
137 g_RCV_txn.wip_resource_seq_Num := l_wip_resource_seq_num;
138 END IF;
139 IF g_RCV_txn.transaction_date IS NULL THEN
140 g_RCV_txn.Transaction_Date := l_transaction_date;
141 END IF;
142 IF g_RCV_txn.creation_date IS NULL THEN
143 g_RCV_txn.Creation_Date := l_creation_date;
144 END IF;
145 IF g_RCV_txn.created_by IS NULL THEN
146 g_RCV_txn.Created_By := l_created_by;
147 END IF;
148 IF g_RCV_txn.item_id IS NULL THEN
149 g_RCV_txn.item_id := l_item_id;
150 END IF;
151 IF g_RCV_txn.last_update_date IS NULL THEN
152 g_RCV_txn.Last_Update_Date := l_last_update_date;
153 END IF;
154 IF g_RCV_txn.last_updated_by IS NULL THEN
155 g_RCV_txn.Last_Updated_By := l_last_updated_by;
156 END IF;
157 IF g_RCV_txn.last_update_login IS NULL THEN
158 g_RCV_txn.Last_Update_Login := l_last_update_login;
159 END IF;
160 IF g_RCV_txn.organization_id IS NULL THEN
161 g_RCV_txn.Organization_Id := l_organization_id;
162 END IF;
163 IF g_RCV_txn.reason_id IS NULL THEN
164 g_RCV_txn.Reason_Id := l_reason_id;
165 END IF;
166 IF g_RCV_txn.source_doc_unit_of_measure IS NULL THEN
167 g_RCV_txn.source_doc_unit_of_measure := l_source_doc_unit_of_measure;
168 END IF;
169 IF g_RCV_txn.comments IS NULL THEN
170 g_RCV_txn.comments := l_comments;
171 END IF;
172 IF g_RCV_txn.po_header_id IS NULL THEN
173 g_RCV_txn.Po_Header_Id := l_po_header_id;
174 END IF;
175 IF g_RCV_txn.po_line_id IS NULL THEN
176 g_RCV_txn.Po_Line_Id := l_po_line_id;
177 END IF;
178 IF g_RCV_txn.po_unit_price IS NULL THEN
179 g_RCV_txn.Po_unit_price := l_po_unit_price;
180 END IF;
181 IF g_RCV_txn.primary_unit_of_measure IS NULL THEN
182 g_RCV_txn.primary_unit_of_measure := l_primary_unit_of_measure;
183 END IF;
184 IF g_RCV_txn.currency_code IS NULL THEN
185 g_RCV_txn.Currency_Code := l_currency_code;
186 END IF;
187 IF g_RCV_txn.currency_conversion_type IS NULL THEN
188 g_RCV_txn.currency_conversion_type := l_currency_conversion_type;
189 END IF;
190 IF g_RCV_txn.currency_conversion_rate IS NULL THEN
191 g_RCV_txn.currency_conversion_rate := l_currency_conversion_rate;
192 END IF;
193 IF g_RCV_txn.currency_conversion_date IS NULL THEN
194 g_RCV_txn.currency_conversion_date := l_currency_conversion_date;
195 END IF;
196
197 END IF;
198
199 EXCEPTION
200 WHEN OTHERS THEN
201 fnd_msg_pub.add_exc_msg('WIP_Default_Res', 'get_rti_attr');
202 END get_rti_attr;
203
204
205
206 /* Private Procedure that will populate all the attributes from WIP_OPERATION_RESOURCES. Populating each attribute individually will be a performance hit, so call this procedure in all the attributes it populates. */
207
208 PROCEDURE get_wor_attr
209 IS
210 l_activity_id NUMBER := FND_API.G_MISS_NUM;
211 l_resource_id NUMBER := FND_API.G_MISS_NUM;
212 l_usage_rate_or_amount NUMBER := FND_API.G_MISS_NUM;
213 l_basis_type NUMBER := FND_API.G_MISS_NUM;
214 l_autocharge_type NUMBER := FND_API.G_MISS_NUM;
215 l_uom_code VARCHAR2(3) := FND_API.G_MISS_CHAR;
216 l_std_rate_flag NUMBER := FND_API.G_MISS_NUM;
217
218 BEGIN
219
220 IF g_Res_rec.wip_entity_id IS NOT NULL
221 AND g_Res_rec.operation_seq_num IS NOT NULL
222 AND g_Res_rec.resource_seq_num IS NOT NULL
223 AND g_Res_rec.organization_id IS NOT NULL
224 THEN
225
226 SELECT activity_id
227 , resource_id
228 , usage_rate_or_amount
229 , basis_type
230 , autocharge_type
231 , uom_code
232 , standard_rate_flag
233 INTO l_activity_id
234 , l_resource_id
235 , l_usage_rate_or_amount
236 , l_basis_type
237 , l_autocharge_type
238 , l_uom_code
239 , l_std_rate_flag
240 FROM wip_operation_resources
241 WHERE wip_entity_id = g_Res_rec.wip_entity_id
242 AND organization_id = g_Res_rec.organization_id
243 AND operation_seq_num = g_Res_rec.operation_seq_num
244 AND resource_seq_num = g_Res_rec.resource_seq_num
245 AND (repetitive_schedule_id IS NULL
246 OR repetitive_schedule_id = g_Res_rec.repetitive_schedule_id);
247
248
249 IF g_WIP_op_res.activity_id IS NULL THEN
250 g_WIP_op_res.activity_id := l_activity_id;
251 END IF;
252 IF g_WIP_op_res.resource_id IS NULL THEN
253 g_WIP_op_res.resource_id := l_resource_id;
254 END IF;
255 IF g_WIP_op_res.usage_rate_or_amount IS NULL THEN
256 g_WIP_op_res.usage_rate_or_amount := l_usage_rate_or_amount;
257 END IF;
258 IF g_WIP_op_res.basis_type IS NULL THEN
259 g_WIP_op_res.basis_type := l_basis_type;
260 END IF;
261 IF g_WIP_op_res.autocharge_type IS NULL THEN
262 g_WIP_op_res.autocharge_type := l_autocharge_type;
263 END IF;
264 IF g_WIP_op_res.uom_code IS NULL THEN
265 g_WIP_op_res.uom_code := l_uom_code;
266 END IF;
267 IF g_WIP_op_res.uom_code IS NULL THEN
268 g_WIP_op_res.uom_code := l_uom_code;
269 END IF;
270 IF g_WIP_op_res.std_rate_flag IS NULL THEN
271 g_WIP_op_res.std_rate_flag := l_std_rate_flag;
272 END IF;
273
274 END IF;
275
276 EXCEPTION
277 WHEN OTHERS THEN
278 fnd_msg_pub.add_exc_msg('WIP_Default_Res', 'get_wor_attr');
279 END get_wor_attr;
280
281
282 PROCEDURE get_we_attr
283 IS
284 BEGIN
285
286 IF g_Res_rec.wip_entity_id IS NOT NULL THEN
287
288 g_Wip_Entities_rec := WIP_Wip_Entities_Util.Query_Row(g_Res_rec.wip_entity_id);
289
290 END IF;
291
292 EXCEPTION
293 WHEN OTHERS THEN
294 fnd_msg_pub.add_exc_msg('WIP_Default_Res', 'get_we_attr');
295 END get_we_attr;
296
297
298 PROCEDURE get_pd_attr
299 IS
300 l_project_id NUMBER := FND_API.G_MISS_NUM;
301 l_task_id NUMBER := FND_API.G_MISS_NUM;
302 l_nonrecoverable_tax NUMBER := FND_API.G_MISS_NUM;
303 l_quantity_ordered NUMBER := FND_API.G_MISS_NUM;
304 l_po_uom VARCHAR2(25) := FND_API.G_MISS_CHAR;
305 BEGIN
306
307 IF g_Res_rec.source_code = 'RCV'
308 AND g_Res_rec.source_line_id IS NOT NULL THEN
309
310 SELECT pd.project_id
311 , pd.task_id
312 , nonrecoverable_tax
313 , quantity_ordered
314 INTO l_project_id
315 , l_task_id
316 , l_nonrecoverable_tax
317 , l_quantity_ordered
318 FROM po_distributions_all pd,
319 rcv_transactions_interface rti
320 WHERE rti.po_distribution_id = pd.po_distribution_id
321 AND rti.interface_transaction_id = g_Res_rec.source_line_id;
322
323 IF g_PO_Dstr.project_id IS NULL THEN
324 g_PO_Dstr.project_id := l_project_id;
325 END IF;
326 IF g_PO_Dstr.task_id IS NULL THEN
327 g_PO_Dstr.task_id := l_task_id;
328 END IF;
329 IF g_PO_Dstr.nonrecoverable_tax IS NULL THEN
330 g_PO_Dstr.nonrecoverable_tax := nvl(l_nonrecoverable_tax, 0 );
331 END IF;
332 IF g_PO_Dstr.primary_quantity_ordered IS NULL THEN
333
334 IF g_RCV_txn.item_id IS NULL
335 OR g_RCV_txn.primary_unit_of_measure IS NULL
336 OR g_RCV_txn.po_line_id IS NULL THEN
337 get_rti_attr();
338 END IF;
339
340 /* get the uom that was used on the Purchase Order */
341 select UNIT_MEAS_LOOKUP_CODE
342 into l_po_uom
343 from po_lines_all
344 where po_line_id = g_RCV_txn.po_line_id;
345
346 /*
347 Fixed Bug#2139994. Changed g_RCV_txn.quantity to l_quantity_ordered
348 in the from_quantity parameter
349 */
350
351 g_PO_Dstr.primary_quantity_ordered :=
352 inv_convert.inv_um_convert(
353 item_id => g_RCV_txn.item_id,
354 precision => NULL,
355 from_quantity => l_quantity_ordered,
356 from_unit => NULL,
357 to_unit => NULL,
358 from_name => l_po_uom,
359 to_name => g_RCV_txn.primary_unit_of_measure
360 );
361 END IF;
362 END IF;
363
364 EXCEPTION
365 WHEN OTHERS THEN
366 fnd_msg_pub.add_exc_msg('WIP_Default_Res', 'get_pd_attr');
367 END get_pd_attr;
368
369 PROCEDURE get_br_attr
370 IS
371 l_resource_code VARCHAR2(10) := FND_API.G_MISS_CHAR;
372 l_resource_type NUMBER := FND_API.G_MISS_NUM;
373 BEGIN
374
375 IF g_Res_rec.resource_id IS NOT NULL THEN
376
377 SELECT resource_code
378 , resource_type
379 INTO l_resource_code
380 , l_resource_type
381 FROM bom_resources br
382 WHERE br.resource_id = g_Res_rec.resource_id;
383
384 IF g_BOM_res.resource_code IS NULL THEN
385 g_BOM_res.resource_code := l_resource_code;
386 END IF;
387 IF g_BOM_res.resource_type IS NULL THEN
388 g_BOM_res.resource_type := l_resource_type;
389 END IF;
390
391 END IF;
392
393 EXCEPTION
394 WHEN OTHERS THEN
395 fnd_msg_pub.add_exc_msg('WIP_Default_Res', 'get_br_attr');
396 END get_br_attr;
397
398 FUNCTION Get_Acct_Period
399 RETURN NUMBER
400 IS
401 l_acct_period_id NUMBER;
402 l_open_past_period BOOLEAN;
403 BEGIN
404
405 IF g_Res_rec.acct_period_id IS NOT NULL THEN
406 RETURN g_Res_rec.acct_period_id;
407 END IF;
408
409 IF ( ( ( g_Res_rec.source_code = 'RCV'
410 AND g_Res_rec.source_line_id IS NOT NULL )
411 OR g_Res_rec.source_code = 'SFCB'
412 )
413 AND g_Res_rec.transaction_date IS NOT NULL
414 AND g_Res_rec.organization_id IS NOT NULL
415 )
416 THEN
417
418 /* Remove for timezone support in J
419 SELECT oap.acct_period_id
420 INTO l_acct_period_id
421 FROM org_acct_periods oap
422 WHERE oap.organization_id = g_Res_rec.organization_id
423 AND oap.period_close_date is null
424 AND trunc(g_Res_rec.transaction_date) between
425 trunc(oap.period_start_date) and
426 trunc(oap.schedule_close_date);
427 */
428
429 invttmtx.tdatechk(org_id => g_Res_rec.organization_id,
430 transaction_date => g_Res_rec.transaction_date,
431 period_id => l_acct_period_id,
432 open_past_period => l_open_past_period );
433
434 RETURN l_acct_period_id;
435 END IF;
436
437 RETURN NULL;
438
439 EXCEPTION
440 WHEN OTHERS THEN
441 RETURN FND_API.G_MISS_NUM;
442
443 END Get_Acct_Period;
444
445 FUNCTION Get_Activity
446 RETURN NUMBER
447 IS
448 l_activity_id NUMBER := FND_API.G_MISS_NUM;
449 BEGIN
450
451 IF g_Res_rec.activity_id IS NOT NULL THEN
452 RETURN g_Res_rec.activity_id;
453 END IF;
454
455 IF g_WIP_op_res.activity_id IS NOT NULL THEN
456 RETURN g_WIP_op_res.activity_id;
457 ELSE
458 get_wor_attr();
459 RETURN g_WIP_op_res.activity_id;
460 END IF;
461
462 RETURN NULL;
463
464 EXCEPTION
465 WHEN OTHERS THEN
466 RETURN FND_API.G_MISS_NUM;
467
468 END Get_Activity;
469
470 FUNCTION Get_Activity_Name
471 RETURN VARCHAR2
472 IS
473 BEGIN
474
475 IF g_Res_rec.activity_name IS NOT NULL THEN
476 RETURN g_Res_rec.activity_name;
477 END IF;
478
479 IF g_Res_rec.activity_id IS NOT NULL then
480
481 SELECT activity
482 INTO g_Res_rec.activity_name
483 FROM cst_activities
484 WHERE activity_id = g_Res_rec.activity_id;
485
486 RETURN g_Res_rec.activity_name;
487 END IF;
488
489 RETURN NULL;
490
491 EXCEPTION
492 WHEN OTHERS THEN
493 RETURN FND_API.G_MISS_CHAR;
494
495 END Get_Activity_Name;
496
497 FUNCTION Get_Actual_Resource_Rate
498 RETURN NUMBER
499 IS
500 l_actual_resource_rate NUMBER := FND_API.G_MISS_NUM;
501 l_uom_basis VARCHAR2(25);
502 l_uom_code VARCHAR2(3);
503 l_po_uom VARCHAR2(25) ;
504 l_po_unit_price NUMBER;
505 l_conversion_factor NUMBER;
506 l_currency_conversion_rate NUMBER;
507 l_tax_amount NUMBER;
508 l_resource_qty_ordered NUMBER ;
509 l_po_qty NUMBER := 1 ;
510 BEGIN
511
512 IF g_Res_rec.actual_resource_rate IS NOT NULL THEN
513 RETURN g_Res_rec.actual_resource_rate;
514 END IF;
515
516 IF g_Res_rec.source_code = 'RCV'
517 AND g_Res_rec.source_line_id IS NOT NULL THEN
518 IF g_RCV_txn.item_id IS NOT NULL
519 OR g_RCV_txn.organization_id IS NOT NULL THEN
520 get_rti_attr();
521 END IF;
522
523 SELECT msi.outside_operation_uom_type
524 INTO l_uom_basis
525 FROM mtl_system_items msi
526 WHERE msi.inventory_item_id = g_RCV_txn.item_id
527 AND msi.organization_id = g_RCV_txn.organization_id;
528
529 /* Fixed for Bug#2031267 */
530
531 IF g_po_dstr.nonrecoverable_tax IS NULL
532 OR g_po_dstr.primary_quantity_ordered IS NULL THEN
533 get_pd_attr();
534 END IF;
535
536 /* Fixed for Bug#2917061 */
537
538 if l_uom_basis = 'ASSEMBLY' AND g_Res_rec.usage_rate_or_amount <> 0 then
539 l_resource_qty_ordered := g_po_dstr.primary_quantity_ordered * g_Res_rec.usage_rate_or_amount ;
540 else
541 l_resource_qty_ordered := g_po_dstr.primary_quantity_ordered ;
542 end if ;
543
544 /* Fix for Bug#2139994 */
545
546 l_tax_amount := nvl((g_po_dstr.nonrecoverable_tax/l_resource_qty_ordered) , 0) ;
547
548 /* Fix for Bug# 2396342 */
549
550 select UNIT_MEAS_LOOKUP_CODE
551 into l_po_uom
552 from po_lines_all
553 where po_line_id = g_RCV_txn.po_line_id;
554
555 if l_po_uom <> g_RCV_txn.primary_unit_of_measure then
556 l_conversion_factor := inv_convert.inv_um_convert
557 (g_RCV_txn.item_id,
558 NULL,
559 1,
560 NULL,
561 NULL,
562 g_RCV_txn.primary_unit_of_measure,
563 l_po_uom
564 );
565 else
566 l_conversion_factor := 1 ;
567 end if ;
568
569 /* return null when inv_um_convert can't convert */
570
571 if l_conversion_factor = -99999 then
572 RETURN FND_API.G_MISS_NUM;
573 end if ;
574
575 l_po_unit_price := g_RCV_txn.po_unit_price * l_conversion_factor ;
576
577
578 IF l_uom_basis = 'ASSEMBLY' AND g_Res_rec.transaction_quantity IS NOT NULL
579 AND g_Res_rec.usage_rate_or_amount IS NOT NULL
580 AND g_RCV_txn.po_unit_price IS NOT NULL
581 AND g_RCV_txn.unit_of_measure IS NOT NULL THEN
582
583 /* Fix for bug 4155822: Divide by l_po_unit_price by g_Res_rec.usage_rate_or_amount only if
584 g_Res_rec.usage_rate_or_amount is not 0 or NULL. */
585 l_actual_resource_rate := (l_po_unit_price / CASE WHEN NVL(g_Res_rec.usage_rate_or_amount,0) = 0 THEN 1
586 ELSE g_Res_rec.usage_rate_or_amount END)+ l_tax_amount ;
587 IF g_Res_rec.action IN ( WIP_Transaction_PUB.G_ACT_OSP_RET_TO_RCV ,WIP_Transaction_PUB.G_ACT_OSP_RET_TO_VEND,WIP_Transaction_PUB.G_ACT_OSP_CORRECT_TO_RCV)
588 AND g_Res_rec.primary_quantity=0 THEN --Bug#16470292:Replaced usage rate with primary quantity
589 l_actual_resource_rate := -l_actual_resource_rate;
590 END IF;
591 --Bug#15842225(FP of Bug#14365506): Commeneted the rest of the code below, so that negative resource rate is set only when usage rate is 0
592 /* Usage rate is zero
593 /* Fix for bug 4155822: Need not multiply with PO quantity since we multiply with
594 resource primary quantity to get the cost later
595 SELECT rti.primary_quantity
596 INTO l_po_qty
597 FROM mtl_system_items msi, rcv_transactions_interface rti
598 WHERE msi.inventory_item_id = rti.item_id
599 AND msi.organization_id = rti.to_organization_id
600 AND rti.interface_transaction_id = g_Res_rec.source_line_id;
601
602 l_actual_resource_rate := l_po_unit_price + l_tax_amount ;
603
604 /*Fix for bug 8601418. comment following code to prevent negative l_actual_resource_rate
605 IF g_Res_rec.action = WIP_Transaction_PUB.G_ACT_OSP_RET_TO_RCV OR
606 g_Res_rec.action = WIP_Transaction_PUB.G_ACT_OSP_RET_TO_VEND OR
607 g_Res_rec.action = WIP_Transaction_PUB.G_ACT_OSP_CORRECT_TO_RCV THEN
608 l_actual_resource_rate := -l_actual_resource_rate;
609 END IF;
610 END IF;
611 END IF; */
612 ELSIF g_RCV_txn.po_unit_price IS NOT NULL then
613 l_actual_resource_rate := l_po_unit_price + l_tax_amount ;
614 END IF;
615 -- Fixed bug 5248437. This is a regression from 4232353. That fix override
616 -- the fix from bug 3418605. Basically, we should use currency conversion
617 -- rate in g_res_rec if available.
618 l_currency_conversion_rate := nvl(g_res_rec.currency_conversion_rate,
619 nvl(g_RCV_txn.currency_conversion_rate,
620 -1));
621 IF l_currency_conversion_rate = -1 THEN
622 RETURN l_actual_resource_rate;
623 ELSE
624 /* Fix for bug 3138121: actual resource rate will be rounded by extended
625 precision value instead of minimum accountable unit or precision */
626 /*Bug#15842225(FP of bug#12979788): do not round l_actual_resource_rate, passing raw data to costing
627 select round(l_actual_resource_rate,nvl(fc.extended_precision,5))
628 into l_actual_resource_rate
629 from fnd_currencies fc
630 where currency_code = g_RCV_txn.currency_code;*/
631
632 RETURN l_actual_resource_rate * l_currency_conversion_rate;
633 END IF;
634
635 ELSE /* default */
636 IF (g_Res_rec.employee_id IS NOT NULL AND
637 g_Res_rec.organization_id IS NOT NULL) THEN
638
639 select we.hourly_labor_rate
640 into l_actual_resource_rate
641 from wip_employee_labor_rates we
642 where we.employee_id = g_Res_rec.employee_id
643 and we.organization_id = g_Res_rec.organization_id
644 and we.effective_date = (select max(we1.effective_date)
645 from wip_employee_labor_rates we1
646 where we1.effective_date < sysdate
647 and we1.employee_id = g_Res_rec.employee_id
648 and we1.organization_id = g_Res_rec.organization_id);
649
650 return l_actual_resource_rate;
651 END IF;
652 END IF;
653
654 RETURN NULL;
655
656 EXCEPTION
657 WHEN OTHERS THEN
658 RETURN FND_API.G_MISS_NUM;
659
660 END Get_Actual_Resource_Rate;
661
662 FUNCTION Get_Autocharge_Type
663 RETURN NUMBER
664 IS
665 BEGIN
666
667 IF g_Res_rec.autocharge_type IS NOT NULL THEN
668 RETURN g_Res_rec.autocharge_type;
669 END IF;
670
671 IF g_Res_rec.source_code = 'SFCB' THEN
672 RETURN (WIP_CONSTANTS.MANUAL) ;
673 END IF;
674
675 IF g_WIP_op_res.autocharge_type IS NOT NULL THEN
676 RETURN g_WIP_op_res.autocharge_type;
677 ELSE
678 get_wor_attr();
679 RETURN g_WIP_op_res.autocharge_type;
680 END IF;
681
682 EXCEPTION
683 WHEN OTHERS THEN
684 RETURN FND_API.G_MISS_NUM;
685
686 END Get_Autocharge_Type;
687
688 FUNCTION Get_Basis_Type
689 RETURN NUMBER
690 IS
691 BEGIN
692
693 IF g_Res_rec.basis_type IS NOT NULL THEN
694 RETURN g_Res_rec.basis_type;
695 END IF;
696
697 IF g_WIP_op_res.basis_type IS NOT NULL THEN
698 RETURN g_WIP_op_res.basis_type;
699 ELSE
700 get_wor_attr();
701 RETURN g_WIP_op_res.basis_type;
702 END IF;
703
704 EXCEPTION
705 WHEN OTHERS THEN
706 RETURN FND_API.G_MISS_NUM;
707
708 END Get_Basis_Type;
709
710 FUNCTION Get_Completion_Transaction
711 RETURN NUMBER
712 IS
713 BEGIN
714
715 IF g_Res_rec.completion_transaction_id IS NOT NULL THEN
716 RETURN g_Res_rec.completion_transaction_id;
717 END IF;
718
719 RETURN NULL;
720
721 EXCEPTION
722 WHEN OTHERS THEN
723 RETURN FND_API.G_MISS_NUM;
724
725 END Get_Completion_Transaction;
726
727 FUNCTION Get_Created_By
728 RETURN VARCHAR2
729 IS
730 BEGIN
731
732 IF g_Res_rec.created_by IS NOT NULL THEN
733 RETURN g_Res_rec.created_by;
734 END IF;
735
736 IF g_Res_rec.source_code = 'RCV'
737 AND g_Res_rec.source_line_id IS NOT NULL THEN
738
739 IF g_RCV_txn.created_by IS NOT NULL THEN
740 RETURN g_RCV_txn.created_by;
741 ELSE
742 get_rti_attr();
743 RETURN g_RCV_txn.created_by;
744 END IF;
745
746 END IF;
747
748 RETURN fnd_global.user_id ;
749
750 EXCEPTION
751 WHEN OTHERS THEN
752 RETURN FND_API.G_MISS_CHAR;
753
754 END Get_Created_By;
755
756
757 FUNCTION Get_Created_By_Name
758 RETURN VARCHAR2
759 IS
760 BEGIN
761
762 IF g_Res_rec.created_by_name IS NOT NULL THEN
763 RETURN g_Res_rec.created_by_name;
764 END IF;
765
766 IF g_Res_rec.created_by IS NOT NULL THEN
767 SELECT user_name
768 INTO g_Res_rec.created_by_name
769 FROM fnd_user
770 WHERE user_id = g_Res_rec.created_by;
771
772 RETURN g_Res_rec.created_by_name;
773 END IF;
774
775 RETURN NULL;
776
777 EXCEPTION
778 WHEN OTHERS THEN
779 RETURN FND_API.G_MISS_CHAR;
780
781 END Get_Created_By_Name;
782
783 FUNCTION Get_Creation_Date
784 RETURN DATE /*Fix bug 8971751(FP 8933207)*/
785 IS
786 BEGIN
787
788 IF g_Res_rec.creation_date IS NOT NULL THEN
789 RETURN g_Res_rec.creation_date;
790 END IF;
791
792 IF g_Res_rec.source_code = 'RCV'
793 AND g_Res_rec.source_line_id IS NOT NULL THEN
794
795 IF g_RCV_txn.creation_date IS NOT NULL THEN
796 RETURN g_RCV_txn.creation_date;
797 ELSE
798 get_rti_attr();
799 RETURN g_RCV_txn.creation_date;
800 END IF;
801
802 END IF;
803
804 RETURN sysdate ;
805
806 EXCEPTION
807 WHEN OTHERS THEN
808 RETURN FND_API.G_MISS_DATE;
809
810 END Get_Creation_Date;
811
812
813 FUNCTION Get_Currency_Actual_Rsc_Rate
814 RETURN NUMBER
815 IS
816 BEGIN
817
818 IF g_Res_rec.currency_actual_rsc_rate IS NOT NULL THEN
819 RETURN g_Res_rec.currency_actual_rsc_rate;
820 END IF;
821 -- Fixed bug 5248437. This is a regression from 4232353. That fix override
822 -- the fix from bug 3418605. Basically, we should use currency conversion
823 -- rate in g_res_rec if available.
824 IF (g_Res_rec.source_code = 'RCV' AND
825 nvl(g_res_rec.currency_conversion_rate,
826 g_RCV_txn.currency_conversion_rate) is not NULL) then
827 IF ( g_Res_rec.actual_resource_rate IS NOT NULL ) THEN
828 return (g_Res_rec.actual_resource_rate /
829 nvl(g_res_rec.currency_conversion_rate,
830 g_RCV_txn.currency_conversion_rate));
831 END IF;
832 ELSE
833 return NULL;
834 END IF;
835
836 RETURN NULL;
837
838 EXCEPTION
839 WHEN OTHERS THEN
840 RETURN FND_API.G_MISS_NUM;
841
842 END Get_Currency_Actual_Rsc_Rate;
843
844 FUNCTION Get_Currency
845 RETURN VARCHAR2
846 IS
847 BEGIN
848
849 IF g_Res_rec.currency_code IS NOT NULL THEN
850 RETURN g_Res_rec.currency_code;
851 END IF;
852
853
854 IF g_Res_rec.source_code = 'RCV'
855 AND g_Res_rec.source_line_id IS NOT NULL THEN
856
857 IF g_RCV_txn.currency_code IS NOT NULL THEN
858 RETURN g_RCV_txn.currency_code;
859 ELSE
860 get_rti_attr();
861 RETURN g_RCV_txn.currency_code;
862 END IF;
863
864 END IF;
865
866 RETURN NULL;
867
868 EXCEPTION
869 WHEN OTHERS THEN
870 RETURN FND_API.G_MISS_NUM;
871
872 END Get_Currency;
873
874 FUNCTION Get_Currency_Conversion_Date
875 RETURN DATE
876 IS
877 BEGIN
878
879 IF g_Res_rec.currency_conversion_date IS NOT NULL THEN
880 RETURN g_Res_rec.currency_conversion_date;
881 END IF;
882
883 IF g_Res_rec.source_code = 'RCV'
884 AND g_Res_rec.source_line_id IS NOT NULL THEN
885
886 IF g_RCV_txn.currency_conversion_date IS NOT NULL THEN
887 RETURN g_RCV_txn.currency_conversion_date;
888 ELSE
889 get_rti_attr();
890 RETURN g_RCV_txn.currency_conversion_date;
891 END IF;
892
893 END IF;
894
895 RETURN NULL;
896
897 EXCEPTION
898 WHEN OTHERS THEN
899 RETURN FND_API.G_MISS_DATE;
900 END Get_Currency_Conversion_Date;
901
902 FUNCTION Get_Currency_Conversion_Rate
903 RETURN NUMBER
904 IS
905 BEGIN
906
907 IF g_Res_rec.currency_conversion_rate IS NOT NULL THEN
908 RETURN g_Res_rec.currency_conversion_rate;
909 END IF;
910
911 IF g_Res_rec.source_code = 'RCV'
912 AND g_Res_rec.source_line_id IS NOT NULL THEN
913
914 IF g_RCV_txn.currency_conversion_rate IS NOT NULL THEN
915 RETURN g_RCV_txn.currency_conversion_rate;
916 ELSE
917 get_rti_attr();
918 RETURN g_RCV_txn.currency_conversion_rate;
919 END IF;
920
921 END IF;
922
923 RETURN NULL;
924
925 EXCEPTION
926 WHEN OTHERS THEN
927 RETURN FND_API.G_MISS_NUM;
928
929 END Get_Currency_Conversion_Rate;
930
931 FUNCTION Get_Currency_Conversion_Type
932 RETURN VARCHAR2
933 IS
934 BEGIN
935
936 IF g_Res_rec.currency_conversion_type IS NOT NULL THEN
937 RETURN g_Res_rec.currency_conversion_type;
938 END IF;
939
940 IF g_Res_rec.source_code = 'RCV'
941 AND g_Res_rec.source_line_id IS NOT NULL THEN
942
943 IF g_RCV_txn.currency_conversion_type IS NOT NULL THEN
944 RETURN g_RCV_txn.currency_conversion_type;
945 ELSE
946 get_rti_attr();
947 RETURN g_RCV_txn.currency_conversion_type;
948 END IF;
949
950 END IF;
951
952 RETURN NULL;
953
954 EXCEPTION
955 WHEN OTHERS THEN
956 RETURN FND_API.G_MISS_NUM;
957
958 END Get_Currency_Conversion_Type;
959
960 FUNCTION Get_Department_Code
961 RETURN VARCHAR2
962 IS
963 l_dept_code VARCHAR2(10);
964 BEGIN
965
966 IF g_Res_rec.department_code IS NOT NULL THEN
967 RETURN g_Res_rec.department_code;
968 END IF;
969
970 IF g_Res_rec.department_id IS NOT NULL then
971
972 SELECT department_code
973 INTO l_dept_code
974 FROM bom_departments
975 WHERE department_id = g_Res_rec.department_id;
976
977 RETURN l_dept_code;
978 END IF;
979
980 RETURN NULL;
981
982 EXCEPTION
983 WHEN OTHERS THEN
984 RETURN FND_API.G_MISS_CHAR;
985
986 END Get_Department_Code;
987
988 FUNCTION Get_Department_Id
989 RETURN NUMBER
990 IS
991 l_dept_id NUMBER;
992 BEGIN
993
994 IF g_Res_rec.department_id IS NOT NULL THEN
995 RETURN g_Res_rec.department_id;
996 END IF;
997
998 IF g_Res_rec.wip_entity_id IS NOT NULL
999 AND g_Res_rec.operation_seq_num IS NOT NULL
1000 AND g_Res_rec.operation_seq_num IS NOT NULL THEN
1001 SELECT department_id
1002 INTO l_dept_id
1003 FROM wip_operations
1004 WHERE wip_entity_id = g_Res_rec.wip_entity_id
1005 AND operation_seq_num = g_Res_rec.operation_seq_num
1006 AND organization_id = g_Res_rec.organization_id
1007 AND (repetitive_schedule_id IS NULL
1008 OR repetitive_schedule_id = g_Res_rec.repetitive_schedule_id);
1009
1010 RETURN l_dept_id;
1011 END IF;
1012
1013 RETURN NULL;
1014
1015 EXCEPTION
1016 WHEN OTHERS THEN
1017 RETURN FND_API.G_MISS_NUM;
1018
1019 END Get_Department_Id;
1020
1021 FUNCTION Get_Employee
1022 RETURN NUMBER
1023 IS
1024 BEGIN
1025
1026 IF g_Res_rec.employee_id IS NOT NULL THEN
1027 RETURN g_Res_rec.employee_id;
1028 END IF;
1029
1030 RETURN NULL;
1031
1032 EXCEPTION
1033 WHEN OTHERS THEN
1034 RETURN FND_API.G_MISS_NUM;
1035
1036 END Get_Employee;
1037
1038 FUNCTION Get_Employee_Num
1039 RETURN VARCHAR2
1040 IS
1041 BEGIN
1042
1043 IF g_Res_rec.employee_num IS NOT NULL THEN
1044 RETURN g_Res_rec.employee_num;
1045 END IF;
1046
1047 RETURN NULL;
1048
1049 EXCEPTION
1050 WHEN OTHERS THEN
1051 RETURN FND_API.G_MISS_CHAR;
1052
1053 END Get_Employee_Num;
1054
1055 FUNCTION Get_Entity_Type
1056 RETURN NUMBER
1057 IS
1058 BEGIN
1059
1060 IF g_Res_rec.entity_type IS NOT NULL THEN
1061 RETURN g_Res_rec.entity_type;
1062 END IF;
1063
1064 IF g_wip_entities_rec.Entity_Type IS NOT NULL THEN
1065 RETURN g_wip_entities_rec.Entity_Type;
1066 ELSE
1067 get_we_attr();
1068 RETURN g_wip_entities_rec.Entity_Type;
1069 END IF;
1070
1071 RETURN NULL;
1072
1073 EXCEPTION
1074 WHEN OTHERS THEN
1075 RETURN FND_API.G_MISS_NUM;
1076
1077 END Get_Entity_Type;
1078
1079 FUNCTION Get_Group
1080 RETURN NUMBER
1081 IS
1082 BEGIN
1083
1084 IF g_Res_rec.group_id IS NOT NULL THEN
1085 RETURN g_Res_rec.group_id;
1086 END IF;
1087
1088 RETURN NULL;
1089
1090 EXCEPTION
1091 WHEN OTHERS THEN
1092 RETURN FND_API.G_MISS_NUM;
1093
1094 END Get_Group;
1095
1096 FUNCTION Get_Last_Updated_By
1097 RETURN VARCHAR2
1098 IS
1099 BEGIN
1100
1101 IF g_Res_rec.last_updated_by IS NOT NULL THEN
1102 RETURN g_Res_rec.last_updated_by;
1103 END IF;
1104
1105 IF g_Res_rec.source_code = 'RCV'
1106 AND g_Res_rec.source_line_id IS NOT NULL THEN
1107
1108 IF g_RCV_txn.last_updated_by IS NOT NULL THEN
1109 RETURN g_RCV_txn.last_updated_by;
1110 ELSE
1111 get_rti_attr();
1112 RETURN g_RCV_txn.last_updated_by;
1113 END IF;
1114
1115 END IF;
1116
1117 RETURN fnd_global.user_id ;
1118
1119 EXCEPTION
1120 WHEN OTHERS THEN
1121 RETURN FND_API.G_MISS_CHAR;
1122
1123 END Get_Last_Updated_By;
1124
1125 FUNCTION Get_Last_Updated_By_Name
1126 RETURN VARCHAR2
1127 IS
1128 BEGIN
1129
1130 IF g_Res_rec.last_updated_by_name IS NOT NULL THEN
1131 RETURN g_Res_rec.last_updated_by_name;
1132 END IF;
1133
1134 IF g_Res_rec.last_updated_by IS NOT NULL THEN
1135 SELECT user_name
1136 INTO g_Res_rec.last_updated_by_name
1137 FROM fnd_user
1138 WHERE user_id = g_Res_rec.last_updated_by;
1139
1140 RETURN g_Res_rec.last_updated_by_name;
1141 END IF;
1142
1143 RETURN NULL;
1144
1145 EXCEPTION
1146 WHEN OTHERS THEN
1147 RETURN FND_API.G_MISS_CHAR;
1148
1149 END Get_Last_Updated_By_Name;
1150
1151 FUNCTION Get_Last_Update_Date
1152 RETURN DATE /*Fix Bug 8971751(FP 8933207)*/
1153 IS
1154 BEGIN
1155
1156 IF g_Res_rec.last_update_date IS NOT NULL THEN
1157 RETURN g_Res_rec.last_update_date;
1158 END IF;
1159
1160 IF g_Res_rec.source_code = 'RCV'
1161 AND g_Res_rec.source_line_id IS NOT NULL THEN
1162
1163 IF g_RCV_txn.last_update_date IS NOT NULL THEN
1164 RETURN g_RCV_txn.last_update_date;
1165 ELSE
1166 get_rti_attr();
1167 RETURN g_RCV_txn.last_update_date;
1168 END IF;
1169
1170 END IF;
1171
1172 RETURN sysdate ;
1173
1174 EXCEPTION
1175 WHEN OTHERS THEN
1176 RETURN FND_API.G_MISS_CHAR;
1177
1178 END Get_Last_Update_Date;
1179
1180
1181 FUNCTION Get_Line_Code
1182 RETURN VARCHAR2
1183 IS
1184 l_line_code VARCHAR2(10);
1185 BEGIN
1186
1187 IF g_Res_rec.line_code IS NOT NULL THEN
1188 RETURN g_Res_rec.line_code;
1189 END IF;
1190
1191 IF g_Res_rec.line_id IS NOT NULL
1192 AND g_Res_rec.organization_id IS NOT NULL THEN
1193 SELECT line_code
1194 INTO l_line_code
1195 FROM wip_lines
1196 WHERE line_id = g_Res_rec.line_id
1197 AND organization_id = g_Res_rec.organization_id;
1198
1199 RETURN l_line_code;
1200 END IF;
1201
1202 RETURN NULL;
1203
1204 EXCEPTION
1205 WHEN OTHERS THEN
1206 RETURN FND_API.G_MISS_CHAR;
1207
1208 END Get_Line_Code;
1209
1210 FUNCTION Get_Line_Id
1211 RETURN NUMBER
1212 IS
1213 BEGIN
1214
1215 IF g_Res_rec.line_id IS NOT NULL THEN
1216 RETURN g_Res_rec.line_id;
1217 END IF;
1218
1219 IF g_Res_rec.source_code = 'RCV'
1220 AND g_Res_rec.source_line_id IS NOT NULL THEN
1221
1222 IF g_RCV_txn.wip_line_id IS NOT NULL THEN
1223 RETURN g_RCV_txn.wip_line_id;
1224 ELSE
1225 get_rti_attr();
1226 RETURN g_RCV_txn.wip_line_id;
1227 END IF;
1228
1229 END IF;
1230
1231 RETURN NULL;
1232
1233 EXCEPTION
1234 WHEN OTHERS THEN
1235 RETURN FND_API.G_MISS_NUM;
1236
1237 END Get_Line_Id;
1238
1239 FUNCTION Get_Move_Transaction
1240 RETURN NUMBER
1241 IS
1242 BEGIN
1243
1244 IF g_Res_rec.move_transaction_id IS NOT NULL THEN
1245 RETURN g_Res_rec.move_transaction_id;
1246 END IF;
1247
1248 RETURN NULL;
1249
1250 EXCEPTION
1251 WHEN OTHERS THEN
1252 RETURN FND_API.G_MISS_NUM;
1253
1254 END Get_Move_Transaction;
1255
1256 FUNCTION Get_Operation_Seq_Num
1257 RETURN NUMBER
1258 IS
1259 BEGIN
1260
1261 IF g_Res_rec.operation_seq_num IS NOT NULL THEN
1262 RETURN g_Res_rec.operation_seq_num;
1263 END IF;
1264
1265 IF g_Res_rec.source_code = 'RCV'
1266 AND g_Res_rec.source_line_id IS NOT NULL THEN
1267
1268 IF g_RCV_txn.wip_operation_seq_num IS NOT NULL THEN
1269 RETURN g_RCV_txn.wip_operation_seq_num;
1270 ELSE
1271 get_rti_attr();
1272 RETURN g_RCV_txn.wip_operation_seq_num;
1273 END IF;
1274
1275 END IF;
1276
1277 RETURN NULL;
1278
1279 EXCEPTION
1280 WHEN OTHERS THEN
1281 RETURN FND_API.G_MISS_NUM;
1282
1283 END Get_Operation_Seq_Num;
1284
1285 FUNCTION Get_Organization_Code
1286 RETURN VARCHAR2
1287 IS
1288 BEGIN
1289
1290 IF g_Res_rec.organization_code IS NOT NULL THEN
1291 RETURN g_Res_rec.organization_code;
1292 END IF;
1293
1294 IF g_Res_rec.organization_id IS NOT NULL THEN
1295 SELECT organization_code
1296 INTO g_Res_rec.organization_code
1297 FROM mtl_parameters
1298 WHERE organization_id = g_Res_rec.organization_id;
1299
1300 RETURN g_Res_rec.organization_code;
1301 END IF;
1302
1303 RETURN NULL;
1304
1305 EXCEPTION
1306 WHEN OTHERS THEN
1307 RETURN FND_API.G_MISS_CHAR;
1308
1309 END Get_Organization_Code;
1310
1311 FUNCTION Get_Organization_Id
1312 RETURN NUMBER
1313 IS
1314 BEGIN
1315
1316 IF g_Res_rec.organization_id IS NOT NULL THEN
1317 RETURN g_Res_rec.organization_id;
1318 END IF;
1319
1320 IF g_Res_rec.source_code = 'RCV'
1321 AND g_Res_rec.source_line_id IS NOT NULL THEN
1322
1323 IF g_RCV_txn.organization_id IS NOT NULL THEN
1324 RETURN g_RCV_txn.organization_id;
1325 ELSE
1326 get_rti_attr();
1327 RETURN g_RCV_txn.organization_id;
1328 END IF;
1329
1330 END IF;
1331
1332 RETURN NULL;
1333
1334 EXCEPTION
1335 WHEN OTHERS THEN
1336 RETURN FND_API.G_MISS_NUM;
1337
1338 END Get_Organization_Id;
1339
1340 FUNCTION Get_Po_Header
1341 RETURN NUMBER
1342 IS
1343 BEGIN
1344
1345 IF g_Res_rec.po_header_id IS NOT NULL THEN
1346 RETURN g_Res_rec.po_header_id;
1347 END IF;
1348
1349 IF g_Res_rec.source_code = 'RCV'
1350 AND g_Res_rec.source_line_id IS NOT NULL THEN
1351
1352 IF g_RCV_txn.po_header_id IS NOT NULL THEN
1353 RETURN g_RCV_txn.po_header_id;
1354 ELSE
1355 get_rti_attr();
1356 RETURN g_RCV_txn.po_header_id;
1357 END IF;
1358
1359 END IF;
1360
1361 RETURN NULL;
1362
1363 EXCEPTION
1364 WHEN OTHERS THEN
1365 RETURN FND_API.G_MISS_NUM;
1366
1367 END Get_Po_Header;
1368
1369 FUNCTION Get_Po_Line
1370 RETURN NUMBER
1371 IS
1372 BEGIN
1373
1374 IF g_Res_rec.po_line_id IS NOT NULL THEN
1375 RETURN g_Res_rec.po_line_id;
1376 END IF;
1377
1378 IF g_Res_rec.source_code = 'RCV'
1379 AND g_Res_rec.source_line_id IS NOT NULL THEN
1380
1381 IF g_RCV_txn.po_line_id IS NOT NULL THEN
1382 RETURN g_RCV_txn.po_line_id;
1383 ELSE
1384 get_rti_attr();
1385 RETURN g_RCV_txn.po_line_id;
1386 END IF;
1387
1388 END IF;
1389
1390 RETURN NULL;
1391
1392 EXCEPTION
1393 WHEN OTHERS THEN
1394 RETURN FND_API.G_MISS_NUM;
1395
1396 END Get_Po_Line;
1397
1398 FUNCTION Get_Primary_Item
1399 RETURN NUMBER
1400 IS
1401 BEGIN
1402
1403 IF g_Res_rec.primary_item_id IS NOT NULL THEN
1404 RETURN g_Res_rec.primary_item_id;
1405 END IF;
1406
1407 IF g_wip_entities_rec.primary_item_id IS NOT NULL THEN
1408 RETURN g_wip_entities_rec.primary_item_id;
1409 ELSE
1410 get_we_attr();
1411 RETURN g_wip_entities_rec.primary_item_id;
1412 END IF;
1413
1414 RETURN NULL;
1415
1416 EXCEPTION
1417 WHEN OTHERS THEN
1418 RETURN FND_API.G_MISS_NUM;
1419
1420 END Get_Primary_Item;
1421
1422 FUNCTION Get_Primary_Quantity
1423 RETURN NUMBER
1424 IS
1425 BEGIN
1426
1427 IF g_Res_rec.primary_quantity IS NOT NULL THEN
1428 RETURN g_Res_rec.primary_quantity;
1429 END IF;
1430
1431 IF g_Res_rec.source_code IN ('RCV', 'SFCB') THEN
1432 RETURN g_Res_rec.transaction_quantity;
1433 END IF;
1434
1435 RETURN NULL;
1436
1437 EXCEPTION
1438 WHEN OTHERS THEN
1439 RETURN FND_API.G_MISS_NUM;
1440
1441 END Get_Primary_Quantity;
1442
1443 FUNCTION Get_Primary_Uom
1444 RETURN VARCHAR2
1445 IS
1446 BEGIN
1447
1448 IF g_Res_rec.primary_uom IS NOT NULL THEN
1449 RETURN g_Res_rec.primary_uom;
1450 END IF;
1451
1452 IF g_WIP_op_res.uom_code IS NOT NULL THEN
1453 RETURN g_WIP_op_res.uom_code;
1454 ELSE
1455 get_wor_attr();
1456 RETURN g_WIP_op_res.uom_code;
1457 END IF;
1458
1459 RETURN NULL;
1460
1461 EXCEPTION
1462 WHEN OTHERS THEN
1463 RETURN FND_API.G_MISS_CHAR;
1464
1465 END Get_Primary_Uom;
1466
1467 FUNCTION Get_Primary_Uom_Class
1468 RETURN VARCHAR2
1469 IS
1470 BEGIN
1471
1472 IF g_Res_rec.primary_uom_class IS NOT NULL THEN
1473 RETURN g_Res_rec.primary_uom_class;
1474 END IF;
1475
1476 RETURN NULL;
1477
1478 EXCEPTION
1479 WHEN OTHERS THEN
1480 RETURN FND_API.G_MISS_CHAR;
1481
1482 END Get_Primary_Uom_Class;
1483
1484 FUNCTION Get_Process_Phase
1485 RETURN NUMBER
1486 IS
1487 BEGIN
1488
1489 IF g_Res_rec.process_phase IS NOT NULL THEN
1490 RETURN g_Res_rec.process_phase;
1491 END IF;
1492
1493 IF g_Res_rec.source_code = 'RCV'
1494 AND g_Res_rec.source_line_id IS NOT NULL
1495 THEN
1496 RETURN (WIP_CONSTANTS.RES_VAL);
1497 END IF;
1498
1499 IF g_Res_rec.source_code = 'SFCB'
1500 THEN
1501 RETURN (WIP_CONSTANTS.RES_PROC);
1502 END IF;
1503
1504
1505 RETURN NULL;
1506
1507 EXCEPTION
1508 WHEN OTHERS THEN
1509 RETURN FND_API.G_MISS_NUM;
1510
1511 END Get_Process_Phase;
1512
1513 FUNCTION Get_Process_Status
1514 RETURN NUMBER
1515 IS
1516 BEGIN
1517
1518 IF g_Res_rec.process_status IS NOT NULL THEN
1519 RETURN g_Res_rec.process_status;
1520 END IF;
1521
1522 IF g_Res_rec.source_code = 'RCV'
1523 AND g_Res_rec.source_line_id IS NOT NULL
1524 THEN
1525 RETURN (WIP_CONSTANTS.PENDING);
1526 END IF;
1527
1528 IF g_Res_rec.source_code = 'SFCB'
1529 THEN
1530 RETURN (WIP_CONSTANTS.PENDING);
1531 END IF;
1532
1533 RETURN NULL;
1534
1535 EXCEPTION
1536 WHEN OTHERS THEN
1537 RETURN FND_API.G_MISS_NUM;
1538
1539 END Get_Process_Status;
1540
1541 FUNCTION Get_Project
1542 RETURN NUMBER
1543 IS
1544 BEGIN
1545
1546 IF g_Res_rec.project_id IS NOT NULL THEN
1547 RETURN g_Res_rec.project_id;
1548 END IF;
1549
1550 IF g_Res_rec.source_code = 'RCV'
1551 AND g_Res_rec.source_line_id IS NOT NULL THEN
1552
1553 IF g_PO_Dstr.project_id IS NOT NULL THEN
1554 RETURN g_PO_Dstr.project_id;
1555 ELSE
1556 get_pd_attr();
1557 RETURN g_PO_Dstr.project_id;
1558 END IF;
1559
1560 END IF;
1561
1562 RETURN NULL;
1563
1564 EXCEPTION
1565 WHEN OTHERS THEN
1566 RETURN FND_API.G_MISS_NUM;
1567
1568 END Get_Project;
1569
1570 FUNCTION Get_Rcv_Transaction
1571 RETURN NUMBER
1572 IS
1573 BEGIN
1574
1575 IF g_Res_rec.rcv_transaction_id IS NOT NULL THEN
1576 RETURN g_Res_rec.rcv_transaction_id;
1577 END IF;
1578
1579 RETURN NULL;
1580
1581 EXCEPTION
1582 WHEN OTHERS THEN
1583 RETURN FND_API.G_MISS_NUM;
1584
1585 END Get_Rcv_Transaction;
1586
1587 FUNCTION Get_Reason
1588 RETURN NUMBER
1589 IS
1590 BEGIN
1591
1592 IF g_Res_rec.reason_id IS NOT NULL THEN
1593 RETURN g_Res_rec.reason_id;
1594 END IF;
1595
1596 IF g_Res_rec.source_code = 'RCV'
1597 AND g_Res_rec.source_line_id IS NOT NULL THEN
1598
1599 IF g_RCV_txn.reason_id IS NOT NULL THEN
1600 RETURN g_RCV_txn.reason_id;
1601 ELSE
1602 get_rti_attr();
1603 RETURN g_RCV_txn.reason_id;
1604 END IF;
1605
1606 END IF;
1607
1608 RETURN NULL;
1609
1610 EXCEPTION
1611 WHEN OTHERS THEN
1612 RETURN FND_API.G_MISS_NUM;
1613
1614 END Get_Reason;
1615
1616 FUNCTION Get_Reason_Name
1617 RETURN VARCHAR2
1618 IS
1619 l_reason_name VARCHAR2(30);
1620 BEGIN
1621
1622 IF g_Res_rec.reason_name IS NOT NULL THEN
1623 RETURN g_Res_rec.reason_name;
1624 END IF;
1625
1626 IF g_Res_rec.reason_id IS NOT NULL then
1627
1628 SELECT reason_name
1629 INTO l_reason_name
1630 FROM mtl_transaction_reasons
1631 WHERE reason_id = g_Res_rec.reason_id;
1632
1633 RETURN l_reason_name;
1634 END IF;
1635
1636 RETURN NULL;
1637
1638 EXCEPTION
1639 WHEN OTHERS THEN
1640 RETURN FND_API.G_MISS_CHAR;
1641
1642 END Get_Reason_Name;
1643
1644 FUNCTION Get_Receiving_Account
1645 RETURN NUMBER
1646 IS
1647 BEGIN
1648
1649 IF g_Res_rec.receiving_account_id IS NOT NULL THEN
1650 RETURN g_Res_rec.receiving_account_id;
1651 END IF;
1652
1653 IF g_Res_rec.source_code = 'RCV'
1654 AND g_Res_rec.organization_id IS NOT NULL THEN
1655
1656 SELECT rp.receiving_account_id
1657 INTO g_Res_rec.receiving_account_id
1658 FROM rcv_parameters rp
1659 WHERE rp.organization_id = g_Res_rec.organization_id;
1660
1661 RETURN g_Res_rec.receiving_account_id;
1662 END IF;
1663
1664 RETURN NULL;
1665
1666 EXCEPTION
1667 WHEN OTHERS THEN
1668 RETURN FND_API.G_MISS_NUM;
1669
1670 END Get_Receiving_Account;
1671
1672 FUNCTION Get_Reference
1673 RETURN VARCHAR2
1674 IS
1675 BEGIN
1676
1677 IF g_Res_rec.reference IS NOT NULL THEN
1678 RETURN g_Res_rec.reference;
1679 END IF;
1680
1681 IF g_Res_rec.source_code = 'RCV'
1682 AND g_Res_rec.source_line_id IS NOT NULL THEN
1683
1684 IF g_RCV_txn.comments IS NOT NULL THEN
1685 RETURN g_RCV_txn.comments;
1686 ELSE
1687 get_rti_attr();
1688 RETURN g_RCV_txn.comments;
1689 END IF;
1690
1691 END IF;
1692
1693 RETURN NULL;
1694
1695 EXCEPTION
1696 WHEN OTHERS THEN
1697 RETURN FND_API.G_MISS_CHAR;
1698
1699 END Get_Reference;
1700
1701 FUNCTION Get_Repetitive_Schedule
1702 RETURN NUMBER
1703 IS
1704 BEGIN
1705
1706 IF g_Res_rec.repetitive_schedule_id IS NOT NULL THEN
1707 RETURN g_Res_rec.repetitive_schedule_id;
1708 END IF;
1709
1710 IF g_Res_rec.source_code = 'RCV'
1711 AND g_Res_rec.source_line_id IS NOT NULL THEN
1712
1713 IF g_RCV_txn.wip_repetitive_schedule_id IS NOT NULL THEN
1714 RETURN g_RCV_txn.wip_repetitive_schedule_id;
1715 ELSE
1716 get_rti_attr();
1717 RETURN g_RCV_txn.wip_repetitive_schedule_id;
1718 END IF;
1719
1720 END IF;
1721
1722 RETURN NULL;
1723
1724 EXCEPTION
1725 WHEN OTHERS THEN
1726 RETURN FND_API.G_MISS_NUM;
1727
1728 END Get_Repetitive_Schedule;
1729
1730 FUNCTION Get_Resource_Code
1731 RETURN VARCHAR2
1732 IS
1733 BEGIN
1734
1735 IF g_Res_rec.resource_code IS NOT NULL THEN
1736 RETURN g_Res_rec.resource_code;
1737 END IF;
1738
1739 IF g_BOM_res.resource_code IS NOT NULL THEN
1740 return g_BOM_res.resource_code;
1741 END IF;
1742
1743 IF g_Res_rec.resource_id IS NOT NULL then
1744 get_br_attr();
1745 RETURN g_BOM_res.resource_code;
1746 END IF;
1747
1748 RETURN NULL;
1749
1750 EXCEPTION
1751 WHEN OTHERS THEN
1752 RETURN FND_API.G_MISS_CHAR;
1753
1754 END Get_Resource_Code;
1755
1756 FUNCTION Get_Resource_Id
1757 RETURN NUMBER
1758 IS
1759 BEGIN
1760
1761 IF g_Res_rec.resource_id IS NOT NULL THEN
1762 RETURN g_Res_rec.resource_id;
1763 END IF;
1764
1765 IF g_WIP_op_res.resource_id IS NOT NULL THEN
1766 RETURN g_WIP_op_res.resource_id;
1767 ELSE
1768 get_wor_attr();
1769 RETURN g_WIP_op_res.resource_id;
1770 END IF;
1771
1772 RETURN NULL;
1773
1774 EXCEPTION
1775 WHEN OTHERS THEN
1776 RETURN FND_API.G_MISS_NUM;
1777
1778 END Get_Resource_Id;
1779
1780 FUNCTION Get_Resource_Seq_Num
1781 RETURN NUMBER
1782 IS
1783 BEGIN
1784
1785 IF g_Res_rec.resource_seq_num IS NOT NULL THEN
1786 RETURN g_Res_rec.resource_seq_num;
1787 END IF;
1788
1789 IF g_Res_rec.source_code = 'RCV'
1790 AND g_Res_rec.source_line_id IS NOT NULL THEN
1791
1792 IF g_RCV_txn.wip_resource_seq_num IS NOT NULL THEN
1793 RETURN g_RCV_txn.wip_resource_seq_num;
1794 ELSE
1795 get_rti_attr();
1796 RETURN g_RCV_txn.wip_resource_seq_num;
1797 END IF;
1798
1799 END IF;
1800
1801 RETURN NULL;
1802
1803 EXCEPTION
1804 WHEN OTHERS THEN
1805 RETURN FND_API.G_MISS_NUM;
1806
1807 END Get_Resource_Seq_Num;
1808
1809 FUNCTION Get_Resource_Type
1810 RETURN NUMBER
1811 IS
1812 BEGIN
1813
1814 IF g_Res_rec.resource_type IS NOT NULL THEN
1815 RETURN g_Res_rec.resource_type;
1816 END IF;
1817
1818 IF g_BOM_res.resource_type IS NOT NULL THEN
1819 return g_BOM_res.resource_type;
1820 END IF;
1821
1822 IF g_Res_rec.resource_id IS NOT NULL then
1823 get_br_attr();
1824 RETURN g_BOM_res.resource_type;
1825 END IF;
1826
1827 RETURN NULL;
1828
1829 EXCEPTION
1830 WHEN OTHERS THEN
1831 RETURN FND_API.G_MISS_NUM;
1832 END Get_Resource_Type;
1833
1834 FUNCTION Get_Source
1835 RETURN VARCHAR2
1836 IS
1837 BEGIN
1838
1839 IF g_Res_rec.source_code IS NOT NULL THEN
1840 RETURN g_Res_rec.source_code;
1841 END IF;
1842
1843 RETURN NULL;
1844
1845 EXCEPTION
1846 WHEN OTHERS THEN
1847 RETURN FND_API.G_MISS_NUM;
1848
1849 END Get_Source;
1850
1851 FUNCTION Get_Source_Line
1852 RETURN NUMBER
1853 IS
1854 BEGIN
1855
1856 IF g_Res_rec.source_line_id IS NOT NULL THEN
1857 RETURN g_Res_rec.source_line_id;
1858 END IF;
1859
1860 RETURN NULL;
1861
1862 EXCEPTION
1863 WHEN OTHERS THEN
1864 RETURN FND_API.G_MISS_NUM;
1865
1866 END Get_Source_Line;
1867
1868 FUNCTION Get_Standard_Rate
1869 RETURN NUMBER
1870 IS
1871 BEGIN
1872
1873 IF g_Res_rec.standard_rate_flag IS NOT NULL THEN
1874 RETURN g_Res_rec.standard_rate_flag;
1875 END IF;
1876
1877 IF g_WIP_op_res.std_rate_flag IS NOT NULL THEN
1878 RETURN g_WIP_op_res.std_rate_flag;
1879 ELSE
1880 get_wor_attr();
1881 RETURN g_WIP_op_res.std_rate_flag;
1882 END IF;
1883
1884 RETURN NULL;
1885
1886 EXCEPTION
1887 WHEN OTHERS THEN
1888 RETURN FND_API.G_MISS_NUM;
1889
1890 END Get_Standard_Rate;
1891
1892 FUNCTION Get_Task
1893 RETURN NUMBER
1894 IS
1895 BEGIN
1896
1897 IF g_Res_rec.task_id IS NOT NULL THEN
1898 RETURN g_Res_rec.task_id;
1899 END IF;
1900
1901 IF g_Res_rec.source_code = 'RCV'
1902 AND g_Res_rec.source_line_id IS NOT NULL
1903 THEN
1904 IF g_PO_Dstr.task_id IS NOT NULL THEN
1905 RETURN g_PO_Dstr.task_id;
1906 ELSE
1907 get_pd_attr();
1908 RETURN g_PO_Dstr.task_id;
1909 END IF;
1910 END IF;
1911
1912 RETURN NULL;
1913
1914 EXCEPTION
1915 WHEN OTHERS THEN
1916 RETURN FND_API.G_MISS_NUM;
1917
1918 END Get_Task;
1919
1920 FUNCTION Get_Transaction_Date
1921 RETURN DATE
1922 IS
1923 BEGIN
1924
1925 IF g_Res_rec.transaction_date IS NOT NULL THEN
1926 RETURN g_Res_rec.transaction_date;
1927 END IF;
1928
1929 IF g_Res_rec.source_code = 'RCV'
1930 AND g_Res_rec.source_line_id IS NOT NULL THEN
1931
1932 IF g_RCV_txn.transaction_date IS NOT NULL THEN
1933 RETURN g_RCV_txn.transaction_date;
1934 ELSE
1935 get_rti_attr();
1936 RETURN g_RCV_txn.transaction_date;
1937 END IF;
1938
1939 END IF;
1940
1941 RETURN NULL;
1942
1943 EXCEPTION
1944 WHEN OTHERS THEN
1945 RETURN FND_API.G_MISS_DATE;
1946
1947 END Get_Transaction_Date;
1948
1949 FUNCTION Get_Transaction
1950 RETURN NUMBER
1951 IS
1952 BEGIN
1953
1954 IF g_Res_rec.transaction_id IS NOT NULL THEN
1955 RETURN g_Res_rec.transaction_id;
1956 END IF;
1957
1958 RETURN NULL;
1959
1960 EXCEPTION
1961 WHEN OTHERS THEN
1962 RETURN FND_API.G_MISS_NUM;
1963
1964 END Get_Transaction;
1965
1966 FUNCTION Get_Transaction_Quantity
1967 RETURN NUMBER
1968 IS
1969 l_uom_basis VARCHAR2(25);
1970 l_po_qty NUMBER;
1971 BEGIN
1972
1973 IF g_Res_rec.transaction_quantity IS NOT NULL THEN
1974 RETURN g_Res_rec.transaction_quantity;
1975 END IF;
1976
1977 IF g_Res_rec.source_code = 'RCV'
1978 AND g_Res_rec.source_line_id IS NOT NULL
1979 THEN
1980
1981 -- Calculate the transaction quantity.
1982
1983 SELECT msi.outside_operation_uom_type, rti.primary_quantity
1984 INTO l_uom_basis, l_po_qty
1985 FROM mtl_system_items msi, rcv_transactions_interface rti
1986 WHERE msi.inventory_item_id = rti.item_id
1987 AND msi.organization_id = rti.to_organization_id
1988 AND rti.interface_transaction_id = g_Res_rec.source_line_id;
1989
1990 IF l_uom_basis = 'ASSEMBLY' THEN
1991 /* Fix for bug 4155822: Added condition usage rate or amount <> 0 */
1992 IF ( g_Res_rec.usage_rate_or_amount IS NOT NULL
1993 AND g_Res_rec.usage_rate_or_amount <> 0) THEN
1994 g_Res_rec.transaction_quantity := l_po_qty*g_Res_rec.usage_rate_or_amount;
1995 ELSE
1996 g_Res_rec.transaction_quantity := l_po_qty;
1997 END IF;
1998 ELSIF l_uom_basis = 'RESOURCE' THEN
1999 g_Res_rec.transaction_quantity := l_po_qty;
2000 ELSE
2001 RETURN NULL;
2002 END IF;
2003
2004 IF g_Res_rec.action = WIP_Transaction_PUB.G_ACT_OSP_RET_TO_RCV
2005 OR g_Res_rec.action = WIP_Transaction_PUB.G_ACT_OSP_RET_TO_VEND
2006 OR g_Res_rec.action = WIP_Transaction_PUB.G_ACT_OSP_CORRECT_TO_RCV
2007 THEN
2008 g_Res_rec.transaction_quantity := -1* g_Res_rec.transaction_quantity;
2009 END IF;
2010
2011 RETURN g_Res_rec.transaction_quantity;
2012 END IF;
2013
2014 RETURN NULL;
2015
2016 EXCEPTION
2017 WHEN OTHERS THEN
2018 RETURN FND_API.G_MISS_NUM;
2019
2020 END Get_Transaction_Quantity;
2021
2022 FUNCTION Get_Transaction_Type
2023 RETURN NUMBER
2024 IS
2025 BEGIN
2026
2027 IF g_Res_rec.transaction_type IS NOT NULL THEN
2028 RETURN g_Res_rec.transaction_type;
2029 END IF;
2030
2031 IF g_Res_rec.source_code = 'RCV'
2032 AND g_Res_rec.source_line_id IS NOT NULL
2033 THEN
2034 RETURN WIP_CONSTANTS.OSP_TXN;
2035 END IF;
2036
2037 IF g_Res_rec.source_code = 'SFCB'
2038 THEN
2039 RETURN (WIP_CONSTANTS.RES_TXN);
2040 END IF;
2041
2042 RETURN NULL;
2043
2044 EXCEPTION
2045 WHEN OTHERS THEN
2046 RETURN FND_API.G_MISS_NUM;
2047
2048 END Get_Transaction_Type;
2049
2050 FUNCTION Get_Transaction_Uom
2051 RETURN VARCHAR2
2052 IS
2053 BEGIN
2054
2055 IF g_Res_rec.transaction_uom IS NOT NULL THEN
2056 RETURN g_Res_rec.transaction_uom;
2057 END IF;
2058
2059 IF g_WIP_op_res.uom_code IS NOT NULL THEN
2060 RETURN g_WIP_op_res.uom_code;
2061 ELSE
2062 get_wor_attr();
2063 RETURN g_WIP_op_res.uom_code;
2064 END IF;
2065
2066 RETURN NULL;
2067
2068 EXCEPTION
2069 WHEN OTHERS THEN
2070 RETURN FND_API.G_MISS_CHAR;
2071
2072 END Get_Transaction_Uom;
2073
2074 FUNCTION Get_Usage_Rate_Or_Amount
2075 RETURN NUMBER
2076 IS
2077 BEGIN
2078
2079 IF g_Res_rec.usage_rate_or_amount IS NOT NULL THEN
2080 RETURN g_Res_rec.usage_rate_or_amount;
2081 END IF;
2082
2083 IF g_WIP_op_res.usage_rate_or_amount IS NOT NULL THEN
2084 RETURN g_WIP_op_res.usage_rate_or_amount;
2085 ELSE
2086 get_wor_attr();
2087 RETURN g_WIP_op_res.usage_rate_or_amount;
2088 END IF;
2089
2090 RETURN NULL;
2091
2092 EXCEPTION
2093 WHEN OTHERS THEN
2094 RETURN FND_API.G_MISS_NUM;
2095
2096 END Get_Usage_Rate_Or_Amount;
2097
2098 FUNCTION Get_Wip_Entity
2099 RETURN NUMBER
2100 IS
2101 BEGIN
2102
2103 IF g_Res_rec.wip_entity_id IS NOT NULL THEN
2104 RETURN g_Res_rec.wip_entity_id;
2105 END IF;
2106
2107 IF g_Res_rec.source_code = 'RCV'
2108 AND g_Res_rec.source_line_id IS NOT NULL THEN
2109
2110 IF g_RCV_txn.wip_entity_id IS NOT NULL THEN
2111 RETURN g_RCV_txn.wip_entity_id;
2112 ELSE
2113 get_rti_attr();
2114 RETURN g_RCV_txn.wip_entity_id;
2115 END IF;
2116
2117 END IF;
2118
2119 RETURN NULL;
2120
2121 EXCEPTION
2122 WHEN OTHERS THEN
2123 RETURN FND_API.G_MISS_NUM;
2124
2125 END Get_Wip_Entity;
2126
2127 FUNCTION Get_Wip_Entity_Name
2128 RETURN VARCHAR2
2129 IS
2130 BEGIN
2131
2132 IF g_Res_rec.wip_entity_name IS NOT NULL THEN
2133 RETURN g_Res_rec.wip_entity_name;
2134 END IF;
2135
2136 IF g_wip_entities_rec.wip_entity_name IS NOT NULL THEN
2137 RETURN g_wip_entities_rec.wip_entity_name;
2138 ELSE
2139 get_we_attr();
2140 RETURN g_wip_entities_rec.wip_entity_name;
2141 END IF;
2142
2143 RETURN NULL;
2144
2145 EXCEPTION
2146 WHEN OTHERS THEN
2147 RETURN FND_API.G_MISS_CHAR;
2148
2149 END Get_Wip_Entity_Name;
2150
2151 PROCEDURE Get_Flex_Res
2152 IS
2153 BEGIN
2154
2155 -- In the future call Flex APIs for defaults
2156
2157 IF g_Res_rec.attribute1 = FND_API.G_MISS_CHAR THEN
2158 g_Res_rec.attribute1 := NULL;
2159 END IF;
2160
2161 IF g_Res_rec.attribute10 = FND_API.G_MISS_CHAR THEN
2162 g_Res_rec.attribute10 := NULL;
2163 END IF;
2164
2165 IF g_Res_rec.attribute11 = FND_API.G_MISS_CHAR THEN
2166 g_Res_rec.attribute11 := NULL;
2167 END IF;
2168
2169 IF g_Res_rec.attribute12 = FND_API.G_MISS_CHAR THEN
2170 g_Res_rec.attribute12 := NULL;
2171 END IF;
2172
2173 IF g_Res_rec.attribute13 = FND_API.G_MISS_CHAR THEN
2174 g_Res_rec.attribute13 := NULL;
2175 END IF;
2176
2177 IF g_Res_rec.attribute14 = FND_API.G_MISS_CHAR THEN
2178 g_Res_rec.attribute14 := NULL;
2179 END IF;
2180
2181 IF g_Res_rec.attribute15 = FND_API.G_MISS_CHAR THEN
2182 g_Res_rec.attribute15 := NULL;
2183 END IF;
2184
2185 IF g_Res_rec.attribute2 = FND_API.G_MISS_CHAR THEN
2186 g_Res_rec.attribute2 := NULL;
2187 END IF;
2188
2189 IF g_Res_rec.attribute3 = FND_API.G_MISS_CHAR THEN
2190 g_Res_rec.attribute3 := NULL;
2191 END IF;
2192
2193 IF g_Res_rec.attribute4 = FND_API.G_MISS_CHAR THEN
2194 g_Res_rec.attribute4 := NULL;
2195 END IF;
2196
2197 IF g_Res_rec.attribute5 = FND_API.G_MISS_CHAR THEN
2198 g_Res_rec.attribute5 := NULL;
2199 END IF;
2200
2201 IF g_Res_rec.attribute6 = FND_API.G_MISS_CHAR THEN
2202 g_Res_rec.attribute6 := NULL;
2203 END IF;
2204
2205 IF g_Res_rec.attribute7 = FND_API.G_MISS_CHAR THEN
2206 g_Res_rec.attribute7 := NULL;
2207 END IF;
2208
2209 IF g_Res_rec.attribute8 = FND_API.G_MISS_CHAR THEN
2210 g_Res_rec.attribute8 := NULL;
2211 END IF;
2212
2213 IF g_Res_rec.attribute9 = FND_API.G_MISS_CHAR THEN
2214 g_Res_rec.attribute9 := NULL;
2215 END IF;
2216
2217 IF g_Res_rec.attribute_category = FND_API.G_MISS_CHAR THEN
2218 g_Res_rec.attribute_category := NULL;
2219 END IF;
2220
2221 END Get_Flex_Res;
2222
2223 -- Procedure Attributes
2224 PROCEDURE Attributes
2225 ( p_Res_rec IN WIP_Transaction_PUB.Res_Rec_Type
2226 , p_iteration IN NUMBER := NULL
2227 , x_Res_rec IN OUT NOCOPY WIP_Transaction_PUB.Res_Rec_Type
2228 )
2229 IS
2230 BEGIN
2231
2232 -- Check number of iterations.
2233
2234 IF nvl(p_iteration,1) > WIP_GLOBALS.G_MAX_DEF_ITERATIONS THEN
2235
2236 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2237 THEN
2238
2239 FND_MESSAGE.SET_NAME('WIP','WIP_DEF_MAX_ITERATION');
2240 FND_MSG_PUB.Add;
2241
2242 END IF;
2243
2244 RAISE FND_API.G_EXC_ERROR;
2245
2246 END IF;
2247
2248 -- Initialize global variables
2249
2250 g_Res_rec := WIP_Transaction_PUB.G_MISS_RES_REC;
2251 g_RCV_txn := WIP_Transaction_PUB.G_MISS_RCV_TXN_REC;
2252 g_WIP_op_res := WIP_Transaction_PUB.G_MISS_WIP_OP_RES_REC;
2253 g_PO_Dstr := WIP_Transaction_PUB.G_MISS_PO_DIST_REC;
2254 g_Wip_Entities_rec := WIP_Work_Order_PUB.G_MISS_WIP_ENTITIES_REC;
2255 g_BOM_res := WIP_Transaction_PUB.G_MISS_BOM_RES_REC;
2256
2257 g_Res_rec := p_Res_rec;
2258
2259 -- Default missing attributes.
2260
2261 g_Res_rec.wip_entity_id := Get_Wip_Entity;
2262 g_Res_rec.wip_entity_name := Get_Wip_Entity_Name;
2263 g_Res_rec.primary_item_id := Get_Primary_Item;
2264 g_Res_rec.line_id := Get_Line_Id;
2265 g_Res_rec.operation_seq_num := Get_Operation_Seq_Num;
2266 g_Res_rec.organization_id := Get_Organization_Id;
2267 g_Res_rec.po_header_id := Get_Po_Header;
2268 g_Res_rec.po_line_id := Get_Po_Line;
2269 g_Res_rec.reason_id := Get_Reason;
2270 g_Res_rec.reference := Get_Reference;
2271 g_Res_rec.repetitive_schedule_id := Get_Repetitive_Schedule;
2272 g_Res_rec.resource_seq_num := Get_Resource_Seq_Num;
2273 g_Res_rec.transaction_date := Get_Transaction_Date;
2274 g_Res_rec.acct_period_id := Get_Acct_Period;
2275 g_Res_rec.activity_id := Get_Activity;
2276 g_Res_rec.resource_id := Get_Resource_Id;
2277 g_Res_rec.usage_rate_or_amount := Get_Usage_Rate_Or_Amount;
2278 g_Res_rec.basis_type := Get_Basis_Type;
2279 g_Res_rec.autocharge_type := Get_Autocharge_Type;
2280 g_Res_rec.primary_uom := Get_Primary_Uom;
2281 g_Res_rec.transaction_uom := Get_Transaction_Uom;
2282 g_Res_rec.standard_rate_flag := Get_Standard_Rate;
2283 g_Res_rec.project_id := Get_Project;
2284 g_Res_rec.task_id := Get_Task;
2285 g_Res_rec.activity_name := Get_Activity_Name;
2286 g_Res_rec.transaction_quantity := Get_Transaction_Quantity;
2287 g_Res_rec.primary_quantity := Get_Primary_Quantity;
2288 g_Res_rec.currency_code := Get_Currency;
2289 g_Res_rec.currency_conversion_date := Get_Currency_Conversion_Date;
2290 g_Res_rec.currency_conversion_rate := Get_Currency_Conversion_Rate;
2291 g_Res_rec.actual_resource_rate := Get_Actual_Resource_Rate;
2292 g_Res_rec.currency_conversion_type := Get_Currency_Conversion_Type;
2293 g_Res_rec.currency_actual_rsc_rate := Get_Currency_Actual_Rsc_Rate;
2294 g_Res_rec.department_id := Get_Department_Id;
2295 g_Res_rec.department_code := Get_Department_Code;
2296 g_Res_rec.entity_type := Get_Entity_Type;
2297 g_Res_rec.created_by := Get_Created_By;
2298 g_Res_rec.created_by_name := Get_Created_By_Name;
2299 g_Res_rec.last_updated_by := Get_Last_Updated_By;
2300 g_Res_rec.last_updated_by_name := Get_Last_Updated_By_Name;
2301 g_Res_rec.line_code := Get_Line_Code;
2302 g_Res_rec.organization_code := Get_Organization_Code;
2303 g_Res_rec.process_phase := Get_Process_Phase;
2304 g_Res_rec.process_status := Get_Process_Status;
2305 g_Res_rec.reason_name := Get_Reason_Name;
2306 g_Res_rec.resource_code := Get_Resource_Code;
2307 g_Res_rec.resource_type := Get_Resource_Type;
2308 g_Res_rec.transaction_type := Get_Transaction_Type;
2309 g_Res_rec.last_update_date := Get_Last_Update_Date;
2310 g_Res_rec.creation_date := Get_Creation_Date;
2311
2312 IF g_Res_rec.created_by IS NULL THEN
2313 g_Res_rec.created_by := NULL;
2314 END IF;
2315
2316 IF g_Res_rec.creation_date IS NULL THEN
2317 g_Res_rec.creation_date := Sysdate;
2318 END IF;
2319
2320 IF g_Res_rec.last_updated_by IS NULL THEN
2321 g_Res_rec.last_updated_by := NULL;
2322 END IF;
2323
2324 IF g_Res_rec.last_update_date IS NULL THEN
2325 g_Res_rec.last_update_date := Sysdate;
2326 END IF;
2327
2328 IF g_Res_rec.last_update_login IS NULL THEN
2329 g_Res_rec.last_update_login := NULL;
2330 END IF;
2331
2332 IF g_Res_rec.program_application_id IS NULL THEN
2333 --FND_PROFILE.Get('CONC_PROGRAM_APPLICATION_ID',g_Res_rec.program_application_id);
2334 g_Res_rec.program_application_id := NULL;
2335 END IF;
2336
2337 IF g_Res_rec.program_id IS NULL THEN
2338 --FND_PROFILE.Get('CONC_PROGRAM_ID', g_Res_rec.program_id);
2339 g_Res_rec.program_id := NULL;
2340 END IF;
2341
2342 IF g_Res_rec.program_update_date IS NULL THEN
2343 g_Res_rec.program_update_date := Sysdate;
2344 END IF;
2345
2346 IF g_Res_rec.request_id IS NULL THEN
2347 --FND_PROFILE.Get('CONC_REQUEST_ID', g_Res_rec.request_id);
2348 g_Res_rec.request_id:= NULL;
2349 END IF;
2350
2351 x_Res_rec := g_Res_rec;
2352 END Attributes;
2353
2354 END WIP_Default_Res;