1 PACKAGE BODY WIP_Default_Res AS
2 /* $Header: WIPDRESB.pls 120.2 2006/08/22 22:41:58 kboonyap noship $ */
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' THEN
579
580 IF g_Res_rec.transaction_quantity IS NOT NULL
581 AND g_Res_rec.usage_rate_or_amount IS NOT NULL
582 AND g_RCV_txn.po_unit_price IS NOT NULL
583 AND g_RCV_txn.unit_of_measure IS NOT NULL THEN
584
585 /* Fix for bug 4155822: Divide by l_po_unit_price by g_Res_rec.usage_rate_or_amount only if
586 g_Res_rec.usage_rate_or_amount is not 0 or NULL. */
587 IF (g_Res_rec.usage_rate_or_amount IS NOT NULL AND g_Res_rec.usage_rate_or_amount <> 0) THEN
588 l_actual_resource_rate := (l_po_unit_price / g_Res_rec.usage_rate_or_amount) + l_tax_amount ;
589 ELSE
590 /* Usage rate is zero */
591 /* Fix for bug 4155822: Need not multiply with PO quantity since we multiply with
592 resource primary quantity to get the cost later
593 SELECT rti.primary_quantity
594 INTO l_po_qty
595 FROM mtl_system_items msi, rcv_transactions_interface rti
596 WHERE msi.inventory_item_id = rti.item_id
597 AND msi.organization_id = rti.to_organization_id
598 AND rti.interface_transaction_id = g_Res_rec.source_line_id; */
599
600 l_actual_resource_rate := l_po_unit_price + l_tax_amount ;
601
602 IF g_Res_rec.action = WIP_Transaction_PUB.G_ACT_OSP_RET_TO_RCV OR
603 g_Res_rec.action = WIP_Transaction_PUB.G_ACT_OSP_RET_TO_VEND OR
604 g_Res_rec.action = WIP_Transaction_PUB.G_ACT_OSP_CORRECT_TO_RCV THEN
605 l_actual_resource_rate := -l_actual_resource_rate;
606 END IF;
607 END IF;
608 END IF;
609 ELSIF g_RCV_txn.po_unit_price IS NOT NULL then
610 l_actual_resource_rate := l_po_unit_price + l_tax_amount ;
611 END IF;
612 -- Fixed bug 5248437. This is a regression from 4232353. That fix override
613 -- the fix from bug 3418605. Basically, we should use currency conversion
614 -- rate in g_res_rec if available.
615 l_currency_conversion_rate := nvl(g_res_rec.currency_conversion_rate,
616 nvl(g_RCV_txn.currency_conversion_rate,
617 -1));
618 IF l_currency_conversion_rate = -1 THEN
619 RETURN l_actual_resource_rate;
620 ELSE
621 /* Fix for bug 3138121: actual resource rate will be rounded by extended
622 precision value instead of minimum accountable unit or precision */
623 select round(l_actual_resource_rate,nvl(fc.extended_precision,5))
624 into l_actual_resource_rate
625 from fnd_currencies fc
626 where currency_code = g_RCV_txn.currency_code;
627
628 RETURN l_actual_resource_rate * l_currency_conversion_rate;
629 END IF;
630
631 ELSE /* default */
632 IF (g_Res_rec.employee_id IS NOT NULL AND
633 g_Res_rec.organization_id IS NOT NULL) THEN
634
635 select we.hourly_labor_rate
636 into l_actual_resource_rate
637 from wip_employee_labor_rates we
638 where we.employee_id = g_Res_rec.employee_id
639 and we.organization_id = g_Res_rec.organization_id
640 and we.effective_date = (select max(we1.effective_date)
641 from wip_employee_labor_rates we1
642 where we1.effective_date < sysdate
643 and we1.employee_id = g_Res_rec.employee_id
644 and we1.organization_id = g_Res_rec.organization_id);
645
646 return l_actual_resource_rate;
647 END IF;
648 END IF;
649
650 RETURN NULL;
651
652 EXCEPTION
653 WHEN OTHERS THEN
654 RETURN FND_API.G_MISS_NUM;
655
656 END Get_Actual_Resource_Rate;
657
658 FUNCTION Get_Autocharge_Type
659 RETURN NUMBER
660 IS
661 BEGIN
662
663 IF g_Res_rec.autocharge_type IS NOT NULL THEN
664 RETURN g_Res_rec.autocharge_type;
665 END IF;
666
667 IF g_Res_rec.source_code = 'SFCB' THEN
668 RETURN (WIP_CONSTANTS.MANUAL) ;
669 END IF;
670
671 IF g_WIP_op_res.autocharge_type IS NOT NULL THEN
672 RETURN g_WIP_op_res.autocharge_type;
673 ELSE
674 get_wor_attr();
675 RETURN g_WIP_op_res.autocharge_type;
676 END IF;
677
678 EXCEPTION
679 WHEN OTHERS THEN
680 RETURN FND_API.G_MISS_NUM;
681
682 END Get_Autocharge_Type;
683
684 FUNCTION Get_Basis_Type
685 RETURN NUMBER
686 IS
687 BEGIN
688
689 IF g_Res_rec.basis_type IS NOT NULL THEN
690 RETURN g_Res_rec.basis_type;
691 END IF;
692
693 IF g_WIP_op_res.basis_type IS NOT NULL THEN
694 RETURN g_WIP_op_res.basis_type;
695 ELSE
696 get_wor_attr();
697 RETURN g_WIP_op_res.basis_type;
698 END IF;
699
700 EXCEPTION
701 WHEN OTHERS THEN
702 RETURN FND_API.G_MISS_NUM;
703
704 END Get_Basis_Type;
705
706 FUNCTION Get_Completion_Transaction
707 RETURN NUMBER
708 IS
709 BEGIN
710
711 IF g_Res_rec.completion_transaction_id IS NOT NULL THEN
712 RETURN g_Res_rec.completion_transaction_id;
713 END IF;
714
715 RETURN NULL;
716
717 EXCEPTION
718 WHEN OTHERS THEN
719 RETURN FND_API.G_MISS_NUM;
720
721 END Get_Completion_Transaction;
722
723 FUNCTION Get_Created_By
724 RETURN VARCHAR2
725 IS
726 BEGIN
727
728 IF g_Res_rec.created_by IS NOT NULL THEN
729 RETURN g_Res_rec.created_by;
730 END IF;
731
732 IF g_Res_rec.source_code = 'RCV'
733 AND g_Res_rec.source_line_id IS NOT NULL THEN
734
735 IF g_RCV_txn.created_by IS NOT NULL THEN
736 RETURN g_RCV_txn.created_by;
737 ELSE
738 get_rti_attr();
739 RETURN g_RCV_txn.created_by;
740 END IF;
741
742 END IF;
743
744 RETURN fnd_global.user_id ;
745
746 EXCEPTION
747 WHEN OTHERS THEN
748 RETURN FND_API.G_MISS_CHAR;
749
750 END Get_Created_By;
751
752
753 FUNCTION Get_Created_By_Name
754 RETURN VARCHAR2
755 IS
756 BEGIN
757
758 IF g_Res_rec.created_by_name IS NOT NULL THEN
759 RETURN g_Res_rec.created_by_name;
760 END IF;
761
762 IF g_Res_rec.created_by IS NOT NULL THEN
763 SELECT user_name
764 INTO g_Res_rec.created_by_name
765 FROM fnd_user
766 WHERE user_id = g_Res_rec.created_by;
767
768 RETURN g_Res_rec.created_by_name;
769 END IF;
770
771 RETURN NULL;
772
773 EXCEPTION
774 WHEN OTHERS THEN
775 RETURN FND_API.G_MISS_CHAR;
776
777 END Get_Created_By_Name;
778
779 FUNCTION Get_Creation_Date
780 RETURN VARCHAR2
781 IS
782 BEGIN
783
784 IF g_Res_rec.creation_date IS NOT NULL THEN
785 RETURN g_Res_rec.creation_date;
786 END IF;
787
788 IF g_Res_rec.source_code = 'RCV'
789 AND g_Res_rec.source_line_id IS NOT NULL THEN
790
791 IF g_RCV_txn.creation_date IS NOT NULL THEN
792 RETURN g_RCV_txn.creation_date;
793 ELSE
794 get_rti_attr();
795 RETURN g_RCV_txn.creation_date;
796 END IF;
797
798 END IF;
799
800 RETURN sysdate ;
801
802 EXCEPTION
803 WHEN OTHERS THEN
804 RETURN FND_API.G_MISS_DATE;
805
806 END Get_Creation_Date;
807
808
809 FUNCTION Get_Currency_Actual_Rsc_Rate
810 RETURN NUMBER
811 IS
812 BEGIN
813
814 IF g_Res_rec.currency_actual_rsc_rate IS NOT NULL THEN
815 RETURN g_Res_rec.currency_actual_rsc_rate;
816 END IF;
817 -- Fixed bug 5248437. This is a regression from 4232353. That fix override
818 -- the fix from bug 3418605. Basically, we should use currency conversion
819 -- rate in g_res_rec if available.
820 IF (g_Res_rec.source_code = 'RCV' AND
821 nvl(g_res_rec.currency_conversion_rate,
822 g_RCV_txn.currency_conversion_rate) is not NULL) then
823 IF ( g_Res_rec.actual_resource_rate IS NOT NULL ) THEN
824 return (g_Res_rec.actual_resource_rate /
825 nvl(g_res_rec.currency_conversion_rate,
826 g_RCV_txn.currency_conversion_rate));
827 END IF;
828 ELSE
829 return NULL;
830 END IF;
831
832 RETURN NULL;
833
834 EXCEPTION
835 WHEN OTHERS THEN
836 RETURN FND_API.G_MISS_NUM;
837
838 END Get_Currency_Actual_Rsc_Rate;
839
840 FUNCTION Get_Currency
841 RETURN VARCHAR2
842 IS
843 BEGIN
844
845 IF g_Res_rec.currency_code IS NOT NULL THEN
846 RETURN g_Res_rec.currency_code;
847 END IF;
848
849
850 IF g_Res_rec.source_code = 'RCV'
851 AND g_Res_rec.source_line_id IS NOT NULL THEN
852
853 IF g_RCV_txn.currency_code IS NOT NULL THEN
854 RETURN g_RCV_txn.currency_code;
855 ELSE
856 get_rti_attr();
857 RETURN g_RCV_txn.currency_code;
858 END IF;
859
860 END IF;
861
862 RETURN NULL;
863
864 EXCEPTION
865 WHEN OTHERS THEN
866 RETURN FND_API.G_MISS_NUM;
867
868 END Get_Currency;
869
870 FUNCTION Get_Currency_Conversion_Date
871 RETURN DATE
872 IS
873 BEGIN
874
875 IF g_Res_rec.currency_conversion_date IS NOT NULL THEN
876 RETURN g_Res_rec.currency_conversion_date;
877 END IF;
878
879 IF g_Res_rec.source_code = 'RCV'
880 AND g_Res_rec.source_line_id IS NOT NULL THEN
881
882 IF g_RCV_txn.currency_conversion_date IS NOT NULL THEN
883 RETURN g_RCV_txn.currency_conversion_date;
884 ELSE
885 get_rti_attr();
886 RETURN g_RCV_txn.currency_conversion_date;
887 END IF;
888
889 END IF;
890
891 RETURN NULL;
892
893 EXCEPTION
894 WHEN OTHERS THEN
895 RETURN FND_API.G_MISS_DATE;
896 END Get_Currency_Conversion_Date;
897
898 FUNCTION Get_Currency_Conversion_Rate
899 RETURN NUMBER
900 IS
901 BEGIN
902
903 IF g_Res_rec.currency_conversion_rate IS NOT NULL THEN
904 RETURN g_Res_rec.currency_conversion_rate;
905 END IF;
906
907 IF g_Res_rec.source_code = 'RCV'
908 AND g_Res_rec.source_line_id IS NOT NULL THEN
909
910 IF g_RCV_txn.currency_conversion_rate IS NOT NULL THEN
911 RETURN g_RCV_txn.currency_conversion_rate;
912 ELSE
913 get_rti_attr();
914 RETURN g_RCV_txn.currency_conversion_rate;
915 END IF;
916
917 END IF;
918
919 RETURN NULL;
920
921 EXCEPTION
922 WHEN OTHERS THEN
923 RETURN FND_API.G_MISS_NUM;
924
925 END Get_Currency_Conversion_Rate;
926
927 FUNCTION Get_Currency_Conversion_Type
928 RETURN VARCHAR2
929 IS
930 BEGIN
931
932 IF g_Res_rec.currency_conversion_type IS NOT NULL THEN
933 RETURN g_Res_rec.currency_conversion_type;
934 END IF;
935
936 IF g_Res_rec.source_code = 'RCV'
937 AND g_Res_rec.source_line_id IS NOT NULL THEN
938
939 IF g_RCV_txn.currency_conversion_type IS NOT NULL THEN
940 RETURN g_RCV_txn.currency_conversion_type;
941 ELSE
942 get_rti_attr();
943 RETURN g_RCV_txn.currency_conversion_type;
944 END IF;
945
946 END IF;
947
948 RETURN NULL;
949
950 EXCEPTION
951 WHEN OTHERS THEN
952 RETURN FND_API.G_MISS_NUM;
953
954 END Get_Currency_Conversion_Type;
955
956 FUNCTION Get_Department_Code
957 RETURN VARCHAR2
958 IS
959 l_dept_code VARCHAR2(10);
960 BEGIN
961
962 IF g_Res_rec.department_code IS NOT NULL THEN
963 RETURN g_Res_rec.department_code;
964 END IF;
965
966 IF g_Res_rec.department_id IS NOT NULL then
967
968 SELECT department_code
969 INTO l_dept_code
970 FROM bom_departments
971 WHERE department_id = g_Res_rec.department_id;
972
973 RETURN l_dept_code;
974 END IF;
975
976 RETURN NULL;
977
978 EXCEPTION
979 WHEN OTHERS THEN
980 RETURN FND_API.G_MISS_CHAR;
981
982 END Get_Department_Code;
983
984 FUNCTION Get_Department_Id
985 RETURN NUMBER
986 IS
987 l_dept_id NUMBER;
988 BEGIN
989
990 IF g_Res_rec.department_id IS NOT NULL THEN
991 RETURN g_Res_rec.department_id;
992 END IF;
993
994 IF g_Res_rec.wip_entity_id IS NOT NULL
995 AND g_Res_rec.operation_seq_num IS NOT NULL
996 AND g_Res_rec.operation_seq_num IS NOT NULL THEN
997 SELECT department_id
998 INTO l_dept_id
999 FROM wip_operations
1000 WHERE wip_entity_id = g_Res_rec.wip_entity_id
1001 AND operation_seq_num = g_Res_rec.operation_seq_num
1002 AND organization_id = g_Res_rec.organization_id
1003 AND (repetitive_schedule_id IS NULL
1004 OR repetitive_schedule_id = g_Res_rec.repetitive_schedule_id);
1005
1006 RETURN l_dept_id;
1007 END IF;
1008
1009 RETURN NULL;
1010
1011 EXCEPTION
1012 WHEN OTHERS THEN
1013 RETURN FND_API.G_MISS_NUM;
1014
1015 END Get_Department_Id;
1016
1017 FUNCTION Get_Employee
1018 RETURN NUMBER
1019 IS
1020 BEGIN
1021
1022 IF g_Res_rec.employee_id IS NOT NULL THEN
1023 RETURN g_Res_rec.employee_id;
1024 END IF;
1025
1026 RETURN NULL;
1027
1028 EXCEPTION
1029 WHEN OTHERS THEN
1030 RETURN FND_API.G_MISS_NUM;
1031
1032 END Get_Employee;
1033
1034 FUNCTION Get_Employee_Num
1035 RETURN VARCHAR2
1036 IS
1037 BEGIN
1038
1039 IF g_Res_rec.employee_num IS NOT NULL THEN
1040 RETURN g_Res_rec.employee_num;
1041 END IF;
1042
1043 RETURN NULL;
1044
1045 EXCEPTION
1046 WHEN OTHERS THEN
1047 RETURN FND_API.G_MISS_CHAR;
1048
1049 END Get_Employee_Num;
1050
1051 FUNCTION Get_Entity_Type
1052 RETURN NUMBER
1053 IS
1054 BEGIN
1055
1056 IF g_Res_rec.entity_type IS NOT NULL THEN
1057 RETURN g_Res_rec.entity_type;
1058 END IF;
1059
1060 IF g_wip_entities_rec.Entity_Type IS NOT NULL THEN
1061 RETURN g_wip_entities_rec.Entity_Type;
1062 ELSE
1063 get_we_attr();
1064 RETURN g_wip_entities_rec.Entity_Type;
1065 END IF;
1066
1067 RETURN NULL;
1068
1069 EXCEPTION
1070 WHEN OTHERS THEN
1071 RETURN FND_API.G_MISS_NUM;
1072
1073 END Get_Entity_Type;
1074
1075 FUNCTION Get_Group
1076 RETURN NUMBER
1077 IS
1078 BEGIN
1079
1080 IF g_Res_rec.group_id IS NOT NULL THEN
1081 RETURN g_Res_rec.group_id;
1082 END IF;
1083
1084 RETURN NULL;
1085
1086 EXCEPTION
1087 WHEN OTHERS THEN
1088 RETURN FND_API.G_MISS_NUM;
1089
1090 END Get_Group;
1091
1092 FUNCTION Get_Last_Updated_By
1093 RETURN VARCHAR2
1094 IS
1095 BEGIN
1096
1097 IF g_Res_rec.last_updated_by IS NOT NULL THEN
1098 RETURN g_Res_rec.last_updated_by;
1099 END IF;
1100
1101 IF g_Res_rec.source_code = 'RCV'
1102 AND g_Res_rec.source_line_id IS NOT NULL THEN
1103
1104 IF g_RCV_txn.last_updated_by IS NOT NULL THEN
1105 RETURN g_RCV_txn.last_updated_by;
1106 ELSE
1107 get_rti_attr();
1108 RETURN g_RCV_txn.last_updated_by;
1109 END IF;
1110
1111 END IF;
1112
1113 RETURN fnd_global.user_id ;
1114
1115 EXCEPTION
1116 WHEN OTHERS THEN
1117 RETURN FND_API.G_MISS_CHAR;
1118
1119 END Get_Last_Updated_By;
1120
1121 FUNCTION Get_Last_Updated_By_Name
1122 RETURN VARCHAR2
1123 IS
1124 BEGIN
1125
1126 IF g_Res_rec.last_updated_by_name IS NOT NULL THEN
1127 RETURN g_Res_rec.last_updated_by_name;
1128 END IF;
1129
1130 IF g_Res_rec.last_updated_by IS NOT NULL THEN
1131 SELECT user_name
1132 INTO g_Res_rec.last_updated_by_name
1133 FROM fnd_user
1134 WHERE user_id = g_Res_rec.last_updated_by;
1135
1136 RETURN g_Res_rec.last_updated_by_name;
1137 END IF;
1138
1139 RETURN NULL;
1140
1141 EXCEPTION
1142 WHEN OTHERS THEN
1143 RETURN FND_API.G_MISS_CHAR;
1144
1145 END Get_Last_Updated_By_Name;
1146
1147 FUNCTION Get_Last_Update_Date
1148 RETURN VARCHAR2
1149 IS
1150 BEGIN
1151
1152 IF g_Res_rec.last_update_date IS NOT NULL THEN
1153 RETURN g_Res_rec.last_update_date;
1154 END IF;
1155
1156 IF g_Res_rec.source_code = 'RCV'
1157 AND g_Res_rec.source_line_id IS NOT NULL THEN
1158
1159 IF g_RCV_txn.last_update_date IS NOT NULL THEN
1160 RETURN g_RCV_txn.last_update_date;
1161 ELSE
1162 get_rti_attr();
1163 RETURN g_RCV_txn.last_update_date;
1164 END IF;
1165
1166 END IF;
1167
1168 RETURN sysdate ;
1169
1170 EXCEPTION
1171 WHEN OTHERS THEN
1172 RETURN FND_API.G_MISS_CHAR;
1173
1174 END Get_Last_Update_Date;
1175
1176
1177 FUNCTION Get_Line_Code
1178 RETURN VARCHAR2
1179 IS
1180 l_line_code VARCHAR2(10);
1181 BEGIN
1182
1183 IF g_Res_rec.line_code IS NOT NULL THEN
1184 RETURN g_Res_rec.line_code;
1185 END IF;
1186
1187 IF g_Res_rec.line_id IS NOT NULL
1188 AND g_Res_rec.organization_id IS NOT NULL THEN
1189 SELECT line_code
1190 INTO l_line_code
1191 FROM wip_lines
1192 WHERE line_id = g_Res_rec.line_id
1193 AND organization_id = g_Res_rec.organization_id;
1194
1195 RETURN l_line_code;
1196 END IF;
1197
1198 RETURN NULL;
1199
1200 EXCEPTION
1201 WHEN OTHERS THEN
1202 RETURN FND_API.G_MISS_CHAR;
1203
1204 END Get_Line_Code;
1205
1206 FUNCTION Get_Line_Id
1207 RETURN NUMBER
1208 IS
1209 BEGIN
1210
1211 IF g_Res_rec.line_id IS NOT NULL THEN
1212 RETURN g_Res_rec.line_id;
1213 END IF;
1214
1215 IF g_Res_rec.source_code = 'RCV'
1216 AND g_Res_rec.source_line_id IS NOT NULL THEN
1217
1218 IF g_RCV_txn.wip_line_id IS NOT NULL THEN
1219 RETURN g_RCV_txn.wip_line_id;
1220 ELSE
1221 get_rti_attr();
1222 RETURN g_RCV_txn.wip_line_id;
1223 END IF;
1224
1225 END IF;
1226
1227 RETURN NULL;
1228
1229 EXCEPTION
1230 WHEN OTHERS THEN
1231 RETURN FND_API.G_MISS_NUM;
1232
1233 END Get_Line_Id;
1234
1235 FUNCTION Get_Move_Transaction
1236 RETURN NUMBER
1237 IS
1238 BEGIN
1239
1240 IF g_Res_rec.move_transaction_id IS NOT NULL THEN
1241 RETURN g_Res_rec.move_transaction_id;
1242 END IF;
1243
1244 RETURN NULL;
1245
1246 EXCEPTION
1247 WHEN OTHERS THEN
1248 RETURN FND_API.G_MISS_NUM;
1249
1250 END Get_Move_Transaction;
1251
1252 FUNCTION Get_Operation_Seq_Num
1253 RETURN NUMBER
1254 IS
1255 BEGIN
1256
1257 IF g_Res_rec.operation_seq_num IS NOT NULL THEN
1258 RETURN g_Res_rec.operation_seq_num;
1259 END IF;
1260
1261 IF g_Res_rec.source_code = 'RCV'
1262 AND g_Res_rec.source_line_id IS NOT NULL THEN
1263
1264 IF g_RCV_txn.wip_operation_seq_num IS NOT NULL THEN
1265 RETURN g_RCV_txn.wip_operation_seq_num;
1266 ELSE
1267 get_rti_attr();
1268 RETURN g_RCV_txn.wip_operation_seq_num;
1269 END IF;
1270
1271 END IF;
1272
1273 RETURN NULL;
1274
1275 EXCEPTION
1276 WHEN OTHERS THEN
1277 RETURN FND_API.G_MISS_NUM;
1278
1279 END Get_Operation_Seq_Num;
1280
1281 FUNCTION Get_Organization_Code
1282 RETURN VARCHAR2
1283 IS
1284 BEGIN
1285
1286 IF g_Res_rec.organization_code IS NOT NULL THEN
1287 RETURN g_Res_rec.organization_code;
1288 END IF;
1289
1290 IF g_Res_rec.organization_id IS NOT NULL THEN
1291 SELECT organization_code
1292 INTO g_Res_rec.organization_code
1293 FROM mtl_parameters
1294 WHERE organization_id = g_Res_rec.organization_id;
1295
1296 RETURN g_Res_rec.organization_code;
1297 END IF;
1298
1299 RETURN NULL;
1300
1301 EXCEPTION
1302 WHEN OTHERS THEN
1303 RETURN FND_API.G_MISS_CHAR;
1304
1305 END Get_Organization_Code;
1306
1307 FUNCTION Get_Organization_Id
1308 RETURN NUMBER
1309 IS
1310 BEGIN
1311
1312 IF g_Res_rec.organization_id IS NOT NULL THEN
1313 RETURN g_Res_rec.organization_id;
1314 END IF;
1315
1316 IF g_Res_rec.source_code = 'RCV'
1317 AND g_Res_rec.source_line_id IS NOT NULL THEN
1318
1319 IF g_RCV_txn.organization_id IS NOT NULL THEN
1320 RETURN g_RCV_txn.organization_id;
1321 ELSE
1322 get_rti_attr();
1323 RETURN g_RCV_txn.organization_id;
1324 END IF;
1325
1326 END IF;
1327
1328 RETURN NULL;
1329
1330 EXCEPTION
1331 WHEN OTHERS THEN
1332 RETURN FND_API.G_MISS_NUM;
1333
1334 END Get_Organization_Id;
1335
1336 FUNCTION Get_Po_Header
1337 RETURN NUMBER
1338 IS
1339 BEGIN
1340
1341 IF g_Res_rec.po_header_id IS NOT NULL THEN
1342 RETURN g_Res_rec.po_header_id;
1343 END IF;
1344
1345 IF g_Res_rec.source_code = 'RCV'
1346 AND g_Res_rec.source_line_id IS NOT NULL THEN
1347
1348 IF g_RCV_txn.po_header_id IS NOT NULL THEN
1349 RETURN g_RCV_txn.po_header_id;
1350 ELSE
1351 get_rti_attr();
1352 RETURN g_RCV_txn.po_header_id;
1353 END IF;
1354
1355 END IF;
1356
1357 RETURN NULL;
1358
1359 EXCEPTION
1360 WHEN OTHERS THEN
1361 RETURN FND_API.G_MISS_NUM;
1362
1363 END Get_Po_Header;
1364
1365 FUNCTION Get_Po_Line
1366 RETURN NUMBER
1367 IS
1368 BEGIN
1369
1370 IF g_Res_rec.po_line_id IS NOT NULL THEN
1371 RETURN g_Res_rec.po_line_id;
1372 END IF;
1373
1374 IF g_Res_rec.source_code = 'RCV'
1375 AND g_Res_rec.source_line_id IS NOT NULL THEN
1376
1377 IF g_RCV_txn.po_line_id IS NOT NULL THEN
1378 RETURN g_RCV_txn.po_line_id;
1379 ELSE
1380 get_rti_attr();
1381 RETURN g_RCV_txn.po_line_id;
1382 END IF;
1383
1384 END IF;
1385
1386 RETURN NULL;
1387
1388 EXCEPTION
1389 WHEN OTHERS THEN
1390 RETURN FND_API.G_MISS_NUM;
1391
1392 END Get_Po_Line;
1393
1394 FUNCTION Get_Primary_Item
1395 RETURN NUMBER
1396 IS
1397 BEGIN
1398
1399 IF g_Res_rec.primary_item_id IS NOT NULL THEN
1400 RETURN g_Res_rec.primary_item_id;
1401 END IF;
1402
1403 IF g_wip_entities_rec.primary_item_id IS NOT NULL THEN
1404 RETURN g_wip_entities_rec.primary_item_id;
1405 ELSE
1406 get_we_attr();
1407 RETURN g_wip_entities_rec.primary_item_id;
1408 END IF;
1409
1410 RETURN NULL;
1411
1412 EXCEPTION
1413 WHEN OTHERS THEN
1414 RETURN FND_API.G_MISS_NUM;
1415
1416 END Get_Primary_Item;
1417
1418 FUNCTION Get_Primary_Quantity
1419 RETURN NUMBER
1420 IS
1421 BEGIN
1422
1423 IF g_Res_rec.primary_quantity IS NOT NULL THEN
1424 RETURN g_Res_rec.primary_quantity;
1425 END IF;
1426
1427 IF g_Res_rec.source_code IN ('RCV', 'SFCB') THEN
1428 RETURN g_Res_rec.transaction_quantity;
1429 END IF;
1430
1431 RETURN NULL;
1432
1433 EXCEPTION
1434 WHEN OTHERS THEN
1435 RETURN FND_API.G_MISS_NUM;
1436
1437 END Get_Primary_Quantity;
1438
1439 FUNCTION Get_Primary_Uom
1440 RETURN VARCHAR2
1441 IS
1442 BEGIN
1443
1444 IF g_Res_rec.primary_uom IS NOT NULL THEN
1445 RETURN g_Res_rec.primary_uom;
1446 END IF;
1447
1448 IF g_WIP_op_res.uom_code IS NOT NULL THEN
1449 RETURN g_WIP_op_res.uom_code;
1450 ELSE
1451 get_wor_attr();
1452 RETURN g_WIP_op_res.uom_code;
1453 END IF;
1454
1455 RETURN NULL;
1456
1457 EXCEPTION
1458 WHEN OTHERS THEN
1459 RETURN FND_API.G_MISS_CHAR;
1460
1461 END Get_Primary_Uom;
1462
1463 FUNCTION Get_Primary_Uom_Class
1464 RETURN VARCHAR2
1465 IS
1466 BEGIN
1467
1468 IF g_Res_rec.primary_uom_class IS NOT NULL THEN
1469 RETURN g_Res_rec.primary_uom_class;
1470 END IF;
1471
1472 RETURN NULL;
1473
1474 EXCEPTION
1475 WHEN OTHERS THEN
1476 RETURN FND_API.G_MISS_CHAR;
1477
1478 END Get_Primary_Uom_Class;
1479
1480 FUNCTION Get_Process_Phase
1481 RETURN NUMBER
1482 IS
1483 BEGIN
1484
1485 IF g_Res_rec.process_phase IS NOT NULL THEN
1486 RETURN g_Res_rec.process_phase;
1487 END IF;
1488
1489 IF g_Res_rec.source_code = 'RCV'
1490 AND g_Res_rec.source_line_id IS NOT NULL
1491 THEN
1492 RETURN (WIP_CONSTANTS.RES_VAL);
1493 END IF;
1494
1495 IF g_Res_rec.source_code = 'SFCB'
1496 THEN
1497 RETURN (WIP_CONSTANTS.RES_PROC);
1498 END IF;
1499
1500
1501 RETURN NULL;
1502
1503 EXCEPTION
1504 WHEN OTHERS THEN
1505 RETURN FND_API.G_MISS_NUM;
1506
1507 END Get_Process_Phase;
1508
1509 FUNCTION Get_Process_Status
1510 RETURN NUMBER
1511 IS
1512 BEGIN
1513
1514 IF g_Res_rec.process_status IS NOT NULL THEN
1515 RETURN g_Res_rec.process_status;
1516 END IF;
1517
1518 IF g_Res_rec.source_code = 'RCV'
1519 AND g_Res_rec.source_line_id IS NOT NULL
1520 THEN
1521 RETURN (WIP_CONSTANTS.PENDING);
1522 END IF;
1523
1524 IF g_Res_rec.source_code = 'SFCB'
1525 THEN
1526 RETURN (WIP_CONSTANTS.PENDING);
1527 END IF;
1528
1529 RETURN NULL;
1530
1531 EXCEPTION
1532 WHEN OTHERS THEN
1533 RETURN FND_API.G_MISS_NUM;
1534
1535 END Get_Process_Status;
1536
1537 FUNCTION Get_Project
1538 RETURN NUMBER
1539 IS
1540 BEGIN
1541
1542 IF g_Res_rec.project_id IS NOT NULL THEN
1543 RETURN g_Res_rec.project_id;
1544 END IF;
1545
1546 IF g_Res_rec.source_code = 'RCV'
1547 AND g_Res_rec.source_line_id IS NOT NULL THEN
1548
1549 IF g_PO_Dstr.project_id IS NOT NULL THEN
1550 RETURN g_PO_Dstr.project_id;
1551 ELSE
1552 get_pd_attr();
1553 RETURN g_PO_Dstr.project_id;
1554 END IF;
1555
1556 END IF;
1557
1558 RETURN NULL;
1559
1560 EXCEPTION
1561 WHEN OTHERS THEN
1562 RETURN FND_API.G_MISS_NUM;
1563
1564 END Get_Project;
1565
1566 FUNCTION Get_Rcv_Transaction
1567 RETURN NUMBER
1568 IS
1569 BEGIN
1570
1571 IF g_Res_rec.rcv_transaction_id IS NOT NULL THEN
1572 RETURN g_Res_rec.rcv_transaction_id;
1573 END IF;
1574
1575 RETURN NULL;
1576
1577 EXCEPTION
1578 WHEN OTHERS THEN
1579 RETURN FND_API.G_MISS_NUM;
1580
1581 END Get_Rcv_Transaction;
1582
1583 FUNCTION Get_Reason
1584 RETURN NUMBER
1585 IS
1586 BEGIN
1587
1588 IF g_Res_rec.reason_id IS NOT NULL THEN
1589 RETURN g_Res_rec.reason_id;
1590 END IF;
1591
1592 IF g_Res_rec.source_code = 'RCV'
1593 AND g_Res_rec.source_line_id IS NOT NULL THEN
1594
1595 IF g_RCV_txn.reason_id IS NOT NULL THEN
1596 RETURN g_RCV_txn.reason_id;
1597 ELSE
1598 get_rti_attr();
1599 RETURN g_RCV_txn.reason_id;
1600 END IF;
1601
1602 END IF;
1603
1604 RETURN NULL;
1605
1606 EXCEPTION
1607 WHEN OTHERS THEN
1608 RETURN FND_API.G_MISS_NUM;
1609
1610 END Get_Reason;
1611
1612 FUNCTION Get_Reason_Name
1613 RETURN VARCHAR2
1614 IS
1615 l_reason_name VARCHAR2(30);
1616 BEGIN
1617
1618 IF g_Res_rec.reason_name IS NOT NULL THEN
1619 RETURN g_Res_rec.reason_name;
1620 END IF;
1621
1622 IF g_Res_rec.reason_id IS NOT NULL then
1623
1624 SELECT reason_name
1625 INTO l_reason_name
1626 FROM mtl_transaction_reasons
1627 WHERE reason_id = g_Res_rec.reason_id;
1628
1629 RETURN l_reason_name;
1630 END IF;
1631
1632 RETURN NULL;
1633
1634 EXCEPTION
1635 WHEN OTHERS THEN
1636 RETURN FND_API.G_MISS_CHAR;
1637
1638 END Get_Reason_Name;
1639
1640 FUNCTION Get_Receiving_Account
1641 RETURN NUMBER
1642 IS
1643 BEGIN
1644
1645 IF g_Res_rec.receiving_account_id IS NOT NULL THEN
1646 RETURN g_Res_rec.receiving_account_id;
1647 END IF;
1648
1649 IF g_Res_rec.source_code = 'RCV'
1650 AND g_Res_rec.organization_id IS NOT NULL THEN
1651
1652 SELECT rp.receiving_account_id
1653 INTO g_Res_rec.receiving_account_id
1654 FROM rcv_parameters rp
1655 WHERE rp.organization_id = g_Res_rec.organization_id;
1656
1657 RETURN g_Res_rec.receiving_account_id;
1658 END IF;
1659
1660 RETURN NULL;
1661
1662 EXCEPTION
1663 WHEN OTHERS THEN
1664 RETURN FND_API.G_MISS_NUM;
1665
1666 END Get_Receiving_Account;
1667
1668 FUNCTION Get_Reference
1669 RETURN VARCHAR2
1670 IS
1671 BEGIN
1672
1673 IF g_Res_rec.reference IS NOT NULL THEN
1674 RETURN g_Res_rec.reference;
1675 END IF;
1676
1677 IF g_Res_rec.source_code = 'RCV'
1678 AND g_Res_rec.source_line_id IS NOT NULL THEN
1679
1680 IF g_RCV_txn.comments IS NOT NULL THEN
1681 RETURN g_RCV_txn.comments;
1682 ELSE
1683 get_rti_attr();
1684 RETURN g_RCV_txn.comments;
1685 END IF;
1686
1687 END IF;
1688
1689 RETURN NULL;
1690
1691 EXCEPTION
1692 WHEN OTHERS THEN
1693 RETURN FND_API.G_MISS_CHAR;
1694
1695 END Get_Reference;
1696
1697 FUNCTION Get_Repetitive_Schedule
1698 RETURN NUMBER
1699 IS
1700 BEGIN
1701
1702 IF g_Res_rec.repetitive_schedule_id IS NOT NULL THEN
1703 RETURN g_Res_rec.repetitive_schedule_id;
1704 END IF;
1705
1706 IF g_Res_rec.source_code = 'RCV'
1707 AND g_Res_rec.source_line_id IS NOT NULL THEN
1708
1709 IF g_RCV_txn.wip_repetitive_schedule_id IS NOT NULL THEN
1710 RETURN g_RCV_txn.wip_repetitive_schedule_id;
1711 ELSE
1712 get_rti_attr();
1713 RETURN g_RCV_txn.wip_repetitive_schedule_id;
1714 END IF;
1715
1716 END IF;
1717
1718 RETURN NULL;
1719
1720 EXCEPTION
1721 WHEN OTHERS THEN
1722 RETURN FND_API.G_MISS_NUM;
1723
1724 END Get_Repetitive_Schedule;
1725
1726 FUNCTION Get_Resource_Code
1727 RETURN VARCHAR2
1728 IS
1729 BEGIN
1730
1731 IF g_Res_rec.resource_code IS NOT NULL THEN
1732 RETURN g_Res_rec.resource_code;
1733 END IF;
1734
1735 IF g_BOM_res.resource_code IS NOT NULL THEN
1736 return g_BOM_res.resource_code;
1737 END IF;
1738
1739 IF g_Res_rec.resource_id IS NOT NULL then
1740 get_br_attr();
1741 RETURN g_BOM_res.resource_code;
1742 END IF;
1743
1744 RETURN NULL;
1745
1746 EXCEPTION
1747 WHEN OTHERS THEN
1748 RETURN FND_API.G_MISS_CHAR;
1749
1750 END Get_Resource_Code;
1751
1752 FUNCTION Get_Resource_Id
1753 RETURN NUMBER
1754 IS
1755 BEGIN
1756
1757 IF g_Res_rec.resource_id IS NOT NULL THEN
1758 RETURN g_Res_rec.resource_id;
1759 END IF;
1760
1761 IF g_WIP_op_res.resource_id IS NOT NULL THEN
1762 RETURN g_WIP_op_res.resource_id;
1763 ELSE
1764 get_wor_attr();
1765 RETURN g_WIP_op_res.resource_id;
1766 END IF;
1767
1768 RETURN NULL;
1769
1770 EXCEPTION
1771 WHEN OTHERS THEN
1772 RETURN FND_API.G_MISS_NUM;
1773
1774 END Get_Resource_Id;
1775
1776 FUNCTION Get_Resource_Seq_Num
1777 RETURN NUMBER
1778 IS
1779 BEGIN
1780
1781 IF g_Res_rec.resource_seq_num IS NOT NULL THEN
1782 RETURN g_Res_rec.resource_seq_num;
1783 END IF;
1784
1785 IF g_Res_rec.source_code = 'RCV'
1786 AND g_Res_rec.source_line_id IS NOT NULL THEN
1787
1788 IF g_RCV_txn.wip_resource_seq_num IS NOT NULL THEN
1789 RETURN g_RCV_txn.wip_resource_seq_num;
1790 ELSE
1791 get_rti_attr();
1792 RETURN g_RCV_txn.wip_resource_seq_num;
1793 END IF;
1794
1795 END IF;
1796
1797 RETURN NULL;
1798
1799 EXCEPTION
1800 WHEN OTHERS THEN
1801 RETURN FND_API.G_MISS_NUM;
1802
1803 END Get_Resource_Seq_Num;
1804
1805 FUNCTION Get_Resource_Type
1806 RETURN NUMBER
1807 IS
1808 BEGIN
1809
1810 IF g_Res_rec.resource_type IS NOT NULL THEN
1811 RETURN g_Res_rec.resource_type;
1812 END IF;
1813
1814 IF g_BOM_res.resource_type IS NOT NULL THEN
1815 return g_BOM_res.resource_type;
1816 END IF;
1817
1818 IF g_Res_rec.resource_id IS NOT NULL then
1819 get_br_attr();
1820 RETURN g_BOM_res.resource_type;
1821 END IF;
1822
1823 RETURN NULL;
1824
1825 EXCEPTION
1826 WHEN OTHERS THEN
1827 RETURN FND_API.G_MISS_NUM;
1828 END Get_Resource_Type;
1829
1830 FUNCTION Get_Source
1831 RETURN VARCHAR2
1832 IS
1833 BEGIN
1834
1835 IF g_Res_rec.source_code IS NOT NULL THEN
1836 RETURN g_Res_rec.source_code;
1837 END IF;
1838
1839 RETURN NULL;
1840
1841 EXCEPTION
1842 WHEN OTHERS THEN
1843 RETURN FND_API.G_MISS_NUM;
1844
1845 END Get_Source;
1846
1847 FUNCTION Get_Source_Line
1848 RETURN NUMBER
1849 IS
1850 BEGIN
1851
1852 IF g_Res_rec.source_line_id IS NOT NULL THEN
1853 RETURN g_Res_rec.source_line_id;
1854 END IF;
1855
1856 RETURN NULL;
1857
1858 EXCEPTION
1859 WHEN OTHERS THEN
1860 RETURN FND_API.G_MISS_NUM;
1861
1862 END Get_Source_Line;
1863
1864 FUNCTION Get_Standard_Rate
1865 RETURN NUMBER
1866 IS
1867 BEGIN
1868
1869 IF g_Res_rec.standard_rate_flag IS NOT NULL THEN
1870 RETURN g_Res_rec.standard_rate_flag;
1871 END IF;
1872
1873 IF g_WIP_op_res.std_rate_flag IS NOT NULL THEN
1874 RETURN g_WIP_op_res.std_rate_flag;
1875 ELSE
1876 get_wor_attr();
1877 RETURN g_WIP_op_res.std_rate_flag;
1878 END IF;
1879
1880 RETURN NULL;
1881
1882 EXCEPTION
1883 WHEN OTHERS THEN
1884 RETURN FND_API.G_MISS_NUM;
1885
1886 END Get_Standard_Rate;
1887
1888 FUNCTION Get_Task
1889 RETURN NUMBER
1890 IS
1891 BEGIN
1892
1893 IF g_Res_rec.task_id IS NOT NULL THEN
1894 RETURN g_Res_rec.task_id;
1895 END IF;
1896
1897 IF g_Res_rec.source_code = 'RCV'
1898 AND g_Res_rec.source_line_id IS NOT NULL
1899 THEN
1900 IF g_PO_Dstr.task_id IS NOT NULL THEN
1901 RETURN g_PO_Dstr.task_id;
1902 ELSE
1903 get_pd_attr();
1904 RETURN g_PO_Dstr.task_id;
1905 END IF;
1906 END IF;
1907
1908 RETURN NULL;
1909
1910 EXCEPTION
1911 WHEN OTHERS THEN
1912 RETURN FND_API.G_MISS_NUM;
1913
1914 END Get_Task;
1915
1916 FUNCTION Get_Transaction_Date
1917 RETURN DATE
1918 IS
1919 BEGIN
1920
1921 IF g_Res_rec.transaction_date IS NOT NULL THEN
1922 RETURN g_Res_rec.transaction_date;
1923 END IF;
1924
1925 IF g_Res_rec.source_code = 'RCV'
1926 AND g_Res_rec.source_line_id IS NOT NULL THEN
1927
1928 IF g_RCV_txn.transaction_date IS NOT NULL THEN
1929 RETURN g_RCV_txn.transaction_date;
1930 ELSE
1931 get_rti_attr();
1932 RETURN g_RCV_txn.transaction_date;
1933 END IF;
1934
1935 END IF;
1936
1937 RETURN NULL;
1938
1939 EXCEPTION
1940 WHEN OTHERS THEN
1941 RETURN FND_API.G_MISS_DATE;
1942
1943 END Get_Transaction_Date;
1944
1945 FUNCTION Get_Transaction
1946 RETURN NUMBER
1947 IS
1948 BEGIN
1949
1950 IF g_Res_rec.transaction_id IS NOT NULL THEN
1951 RETURN g_Res_rec.transaction_id;
1952 END IF;
1953
1954 RETURN NULL;
1955
1956 EXCEPTION
1957 WHEN OTHERS THEN
1958 RETURN FND_API.G_MISS_NUM;
1959
1960 END Get_Transaction;
1961
1962 FUNCTION Get_Transaction_Quantity
1963 RETURN NUMBER
1964 IS
1965 l_uom_basis VARCHAR2(25);
1966 l_po_qty NUMBER;
1967 BEGIN
1968
1969 IF g_Res_rec.transaction_quantity IS NOT NULL THEN
1970 RETURN g_Res_rec.transaction_quantity;
1971 END IF;
1972
1973 IF g_Res_rec.source_code = 'RCV'
1974 AND g_Res_rec.source_line_id IS NOT NULL
1975 THEN
1976
1977 -- Calculate the transaction quantity.
1978
1979 SELECT msi.outside_operation_uom_type, rti.primary_quantity
1980 INTO l_uom_basis, l_po_qty
1981 FROM mtl_system_items msi, rcv_transactions_interface rti
1982 WHERE msi.inventory_item_id = rti.item_id
1983 AND msi.organization_id = rti.to_organization_id
1984 AND rti.interface_transaction_id = g_Res_rec.source_line_id;
1985
1986 IF l_uom_basis = 'ASSEMBLY' THEN
1987 /* Fix for bug 4155822: Added condition usage rate or amount <> 0 */
1988 IF ( g_Res_rec.usage_rate_or_amount IS NOT NULL
1989 AND g_Res_rec.usage_rate_or_amount <> 0) THEN
1990 g_Res_rec.transaction_quantity := l_po_qty*g_Res_rec.usage_rate_or_amount;
1991 ELSE
1992 g_Res_rec.transaction_quantity := l_po_qty;
1993 END IF;
1994 ELSIF l_uom_basis = 'RESOURCE' THEN
1995 g_Res_rec.transaction_quantity := l_po_qty;
1996 ELSE
1997 RETURN NULL;
1998 END IF;
1999
2000 IF g_Res_rec.action = WIP_Transaction_PUB.G_ACT_OSP_RET_TO_RCV
2001 OR g_Res_rec.action = WIP_Transaction_PUB.G_ACT_OSP_RET_TO_VEND
2002 OR g_Res_rec.action = WIP_Transaction_PUB.G_ACT_OSP_CORRECT_TO_RCV
2003 THEN
2004 g_Res_rec.transaction_quantity := -1* g_Res_rec.transaction_quantity;
2005 END IF;
2006
2007 RETURN g_Res_rec.transaction_quantity;
2008 END IF;
2009
2010 RETURN NULL;
2011
2012 EXCEPTION
2013 WHEN OTHERS THEN
2014 RETURN FND_API.G_MISS_NUM;
2015
2016 END Get_Transaction_Quantity;
2017
2018 FUNCTION Get_Transaction_Type
2019 RETURN NUMBER
2020 IS
2021 BEGIN
2022
2023 IF g_Res_rec.transaction_type IS NOT NULL THEN
2024 RETURN g_Res_rec.transaction_type;
2025 END IF;
2026
2027 IF g_Res_rec.source_code = 'RCV'
2028 AND g_Res_rec.source_line_id IS NOT NULL
2029 THEN
2030 RETURN WIP_CONSTANTS.OSP_TXN;
2031 END IF;
2032
2033 IF g_Res_rec.source_code = 'SFCB'
2034 THEN
2035 RETURN (WIP_CONSTANTS.RES_TXN);
2036 END IF;
2037
2038 RETURN NULL;
2039
2040 EXCEPTION
2041 WHEN OTHERS THEN
2042 RETURN FND_API.G_MISS_NUM;
2043
2044 END Get_Transaction_Type;
2045
2046 FUNCTION Get_Transaction_Uom
2047 RETURN VARCHAR2
2048 IS
2049 BEGIN
2050
2051 IF g_Res_rec.transaction_uom IS NOT NULL THEN
2052 RETURN g_Res_rec.transaction_uom;
2053 END IF;
2054
2055 IF g_WIP_op_res.uom_code IS NOT NULL THEN
2056 RETURN g_WIP_op_res.uom_code;
2057 ELSE
2058 get_wor_attr();
2059 RETURN g_WIP_op_res.uom_code;
2060 END IF;
2061
2062 RETURN NULL;
2063
2064 EXCEPTION
2065 WHEN OTHERS THEN
2066 RETURN FND_API.G_MISS_CHAR;
2067
2068 END Get_Transaction_Uom;
2069
2070 FUNCTION Get_Usage_Rate_Or_Amount
2071 RETURN NUMBER
2072 IS
2073 BEGIN
2074
2075 IF g_Res_rec.usage_rate_or_amount IS NOT NULL THEN
2076 RETURN g_Res_rec.usage_rate_or_amount;
2077 END IF;
2078
2079 IF g_WIP_op_res.usage_rate_or_amount IS NOT NULL THEN
2080 RETURN g_WIP_op_res.usage_rate_or_amount;
2081 ELSE
2082 get_wor_attr();
2083 RETURN g_WIP_op_res.usage_rate_or_amount;
2084 END IF;
2085
2086 RETURN NULL;
2087
2088 EXCEPTION
2089 WHEN OTHERS THEN
2090 RETURN FND_API.G_MISS_NUM;
2091
2092 END Get_Usage_Rate_Or_Amount;
2093
2094 FUNCTION Get_Wip_Entity
2095 RETURN NUMBER
2096 IS
2097 BEGIN
2098
2099 IF g_Res_rec.wip_entity_id IS NOT NULL THEN
2100 RETURN g_Res_rec.wip_entity_id;
2101 END IF;
2102
2103 IF g_Res_rec.source_code = 'RCV'
2104 AND g_Res_rec.source_line_id IS NOT NULL THEN
2105
2106 IF g_RCV_txn.wip_entity_id IS NOT NULL THEN
2107 RETURN g_RCV_txn.wip_entity_id;
2108 ELSE
2109 get_rti_attr();
2110 RETURN g_RCV_txn.wip_entity_id;
2111 END IF;
2112
2113 END IF;
2114
2115 RETURN NULL;
2116
2117 EXCEPTION
2118 WHEN OTHERS THEN
2119 RETURN FND_API.G_MISS_NUM;
2120
2121 END Get_Wip_Entity;
2122
2123 FUNCTION Get_Wip_Entity_Name
2124 RETURN VARCHAR2
2125 IS
2126 BEGIN
2127
2128 IF g_Res_rec.wip_entity_name IS NOT NULL THEN
2129 RETURN g_Res_rec.wip_entity_name;
2130 END IF;
2131
2132 IF g_wip_entities_rec.wip_entity_name IS NOT NULL THEN
2133 RETURN g_wip_entities_rec.wip_entity_name;
2134 ELSE
2135 get_we_attr();
2136 RETURN g_wip_entities_rec.wip_entity_name;
2137 END IF;
2138
2139 RETURN NULL;
2140
2141 EXCEPTION
2142 WHEN OTHERS THEN
2143 RETURN FND_API.G_MISS_CHAR;
2144
2145 END Get_Wip_Entity_Name;
2146
2147 PROCEDURE Get_Flex_Res
2148 IS
2149 BEGIN
2150
2151 -- In the future call Flex APIs for defaults
2152
2153 IF g_Res_rec.attribute1 = FND_API.G_MISS_CHAR THEN
2154 g_Res_rec.attribute1 := NULL;
2155 END IF;
2156
2157 IF g_Res_rec.attribute10 = FND_API.G_MISS_CHAR THEN
2158 g_Res_rec.attribute10 := NULL;
2159 END IF;
2160
2161 IF g_Res_rec.attribute11 = FND_API.G_MISS_CHAR THEN
2162 g_Res_rec.attribute11 := NULL;
2163 END IF;
2164
2165 IF g_Res_rec.attribute12 = FND_API.G_MISS_CHAR THEN
2166 g_Res_rec.attribute12 := NULL;
2167 END IF;
2168
2169 IF g_Res_rec.attribute13 = FND_API.G_MISS_CHAR THEN
2170 g_Res_rec.attribute13 := NULL;
2171 END IF;
2172
2173 IF g_Res_rec.attribute14 = FND_API.G_MISS_CHAR THEN
2174 g_Res_rec.attribute14 := NULL;
2175 END IF;
2176
2177 IF g_Res_rec.attribute15 = FND_API.G_MISS_CHAR THEN
2178 g_Res_rec.attribute15 := NULL;
2179 END IF;
2180
2181 IF g_Res_rec.attribute2 = FND_API.G_MISS_CHAR THEN
2182 g_Res_rec.attribute2 := NULL;
2183 END IF;
2184
2185 IF g_Res_rec.attribute3 = FND_API.G_MISS_CHAR THEN
2186 g_Res_rec.attribute3 := NULL;
2187 END IF;
2188
2189 IF g_Res_rec.attribute4 = FND_API.G_MISS_CHAR THEN
2190 g_Res_rec.attribute4 := NULL;
2191 END IF;
2192
2193 IF g_Res_rec.attribute5 = FND_API.G_MISS_CHAR THEN
2194 g_Res_rec.attribute5 := NULL;
2195 END IF;
2196
2197 IF g_Res_rec.attribute6 = FND_API.G_MISS_CHAR THEN
2198 g_Res_rec.attribute6 := NULL;
2199 END IF;
2200
2201 IF g_Res_rec.attribute7 = FND_API.G_MISS_CHAR THEN
2202 g_Res_rec.attribute7 := NULL;
2203 END IF;
2204
2205 IF g_Res_rec.attribute8 = FND_API.G_MISS_CHAR THEN
2206 g_Res_rec.attribute8 := NULL;
2207 END IF;
2208
2209 IF g_Res_rec.attribute9 = FND_API.G_MISS_CHAR THEN
2210 g_Res_rec.attribute9 := NULL;
2211 END IF;
2212
2213 IF g_Res_rec.attribute_category = FND_API.G_MISS_CHAR THEN
2214 g_Res_rec.attribute_category := NULL;
2215 END IF;
2216
2217 END Get_Flex_Res;
2218
2219 -- Procedure Attributes
2220 PROCEDURE Attributes
2221 ( p_Res_rec IN WIP_Transaction_PUB.Res_Rec_Type
2222 , p_iteration IN NUMBER := NULL
2223 , x_Res_rec IN OUT NOCOPY WIP_Transaction_PUB.Res_Rec_Type
2224 )
2225 IS
2226 BEGIN
2227
2228 -- Check number of iterations.
2229
2230 IF nvl(p_iteration,1) > WIP_GLOBALS.G_MAX_DEF_ITERATIONS THEN
2231
2232 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2233 THEN
2234
2235 FND_MESSAGE.SET_NAME('WIP','WIP_DEF_MAX_ITERATION');
2236 FND_MSG_PUB.Add;
2237
2238 END IF;
2239
2240 RAISE FND_API.G_EXC_ERROR;
2241
2242 END IF;
2243
2244 -- Initialize global variables
2245
2246 g_Res_rec := WIP_Transaction_PUB.G_MISS_RES_REC;
2247 g_RCV_txn := WIP_Transaction_PUB.G_MISS_RCV_TXN_REC;
2248 g_WIP_op_res := WIP_Transaction_PUB.G_MISS_WIP_OP_RES_REC;
2249 g_PO_Dstr := WIP_Transaction_PUB.G_MISS_PO_DIST_REC;
2250 g_Wip_Entities_rec := WIP_Work_Order_PUB.G_MISS_WIP_ENTITIES_REC;
2251 g_BOM_res := WIP_Transaction_PUB.G_MISS_BOM_RES_REC;
2252
2253 g_Res_rec := p_Res_rec;
2254
2255 -- Default missing attributes.
2256
2257 g_Res_rec.wip_entity_id := Get_Wip_Entity;
2258 g_Res_rec.wip_entity_name := Get_Wip_Entity_Name;
2259 g_Res_rec.primary_item_id := Get_Primary_Item;
2260 g_Res_rec.line_id := Get_Line_Id;
2261 g_Res_rec.operation_seq_num := Get_Operation_Seq_Num;
2262 g_Res_rec.organization_id := Get_Organization_Id;
2263 g_Res_rec.po_header_id := Get_Po_Header;
2264 g_Res_rec.po_line_id := Get_Po_Line;
2265 g_Res_rec.reason_id := Get_Reason;
2266 g_Res_rec.reference := Get_Reference;
2267 g_Res_rec.repetitive_schedule_id := Get_Repetitive_Schedule;
2268 g_Res_rec.resource_seq_num := Get_Resource_Seq_Num;
2269 g_Res_rec.transaction_date := Get_Transaction_Date;
2270 g_Res_rec.acct_period_id := Get_Acct_Period;
2271 g_Res_rec.activity_id := Get_Activity;
2272 g_Res_rec.resource_id := Get_Resource_Id;
2273 g_Res_rec.usage_rate_or_amount := Get_Usage_Rate_Or_Amount;
2274 g_Res_rec.basis_type := Get_Basis_Type;
2275 g_Res_rec.autocharge_type := Get_Autocharge_Type;
2276 g_Res_rec.primary_uom := Get_Primary_Uom;
2277 g_Res_rec.transaction_uom := Get_Transaction_Uom;
2278 g_Res_rec.standard_rate_flag := Get_Standard_Rate;
2279 g_Res_rec.project_id := Get_Project;
2280 g_Res_rec.task_id := Get_Task;
2281 g_Res_rec.activity_name := Get_Activity_Name;
2282 g_Res_rec.transaction_quantity := Get_Transaction_Quantity;
2283 g_Res_rec.primary_quantity := Get_Primary_Quantity;
2284 g_Res_rec.currency_code := Get_Currency;
2285 g_Res_rec.currency_conversion_date := Get_Currency_Conversion_Date;
2286 g_Res_rec.currency_conversion_rate := Get_Currency_Conversion_Rate;
2287 g_Res_rec.actual_resource_rate := Get_Actual_Resource_Rate;
2288 g_Res_rec.currency_conversion_type := Get_Currency_Conversion_Type;
2289 g_Res_rec.currency_actual_rsc_rate := Get_Currency_Actual_Rsc_Rate;
2290 g_Res_rec.department_id := Get_Department_Id;
2291 g_Res_rec.department_code := Get_Department_Code;
2292 g_Res_rec.entity_type := Get_Entity_Type;
2293 g_Res_rec.created_by := Get_Created_By;
2294 g_Res_rec.created_by_name := Get_Created_By_Name;
2295 g_Res_rec.last_updated_by := Get_Last_Updated_By;
2296 g_Res_rec.last_updated_by_name := Get_Last_Updated_By_Name;
2297 g_Res_rec.line_code := Get_Line_Code;
2298 g_Res_rec.organization_code := Get_Organization_Code;
2299 g_Res_rec.process_phase := Get_Process_Phase;
2300 g_Res_rec.process_status := Get_Process_Status;
2301 g_Res_rec.reason_name := Get_Reason_Name;
2302 g_Res_rec.resource_code := Get_Resource_Code;
2303 g_Res_rec.resource_type := Get_Resource_Type;
2304 g_Res_rec.transaction_type := Get_Transaction_Type;
2305 g_Res_rec.last_update_date := Get_Last_Update_Date;
2306 g_Res_rec.creation_date := Get_Creation_Date;
2307
2308 IF g_Res_rec.created_by IS NULL THEN
2309 g_Res_rec.created_by := NULL;
2310 END IF;
2311
2312 IF g_Res_rec.creation_date IS NULL THEN
2313 g_Res_rec.creation_date := Sysdate;
2314 END IF;
2315
2316 IF g_Res_rec.last_updated_by IS NULL THEN
2317 g_Res_rec.last_updated_by := NULL;
2318 END IF;
2319
2320 IF g_Res_rec.last_update_date IS NULL THEN
2321 g_Res_rec.last_update_date := Sysdate;
2322 END IF;
2323
2324 IF g_Res_rec.last_update_login IS NULL THEN
2325 g_Res_rec.last_update_login := NULL;
2326 END IF;
2327
2328 IF g_Res_rec.program_application_id IS NULL THEN
2329 --FND_PROFILE.Get('CONC_PROGRAM_APPLICATION_ID',g_Res_rec.program_application_id);
2330 g_Res_rec.program_application_id := NULL;
2331 END IF;
2332
2333 IF g_Res_rec.program_id IS NULL THEN
2334 --FND_PROFILE.Get('CONC_PROGRAM_ID', g_Res_rec.program_id);
2335 g_Res_rec.program_id := NULL;
2336 END IF;
2337
2338 IF g_Res_rec.program_update_date IS NULL THEN
2339 g_Res_rec.program_update_date := Sysdate;
2340 END IF;
2341
2342 IF g_Res_rec.request_id IS NULL THEN
2343 --FND_PROFILE.Get('CONC_REQUEST_ID', g_Res_rec.request_id);
2344 g_Res_rec.request_id:= NULL;
2345 END IF;
2346
2347 x_Res_rec := g_Res_rec;
2348 END Attributes;
2349
2350 END WIP_Default_Res;