1 Package BODY Csd_Estimate_utils_Pvt AS
2 /* $Header: csdueutb.pls 120.7 2012/05/08 10:07:28 subhat ship $ */
3
4 -- ---------------------------------------------------------
5 -- Define global variables
6 -- ---------------------------------------------------------
7
8 G_PKG_NAME CONSTANT VARCHAR2(30) := 'CSD_REPAIR_ESTIMATE_PVT';
9 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csduestb.pls';
10 g_debug NUMBER := Csd_Gen_Utility_Pvt.g_debug_level;
11 ----Begin change for 3931317, wrpper aPI forward port
12
13 C_EST_STATUS_ACCEPTED CONSTANT VARCHAR2(30) := 'ACCEPTED';
14 C_EST_STATUS_REJECTED CONSTANT VARCHAR2(30) := 'REJECTED';
15 C_EST_STATUS_NEW CONSTANT VARCHAR2(30) := 'NEW';
16 C_REP_STATUS_APPROVED CONSTANT VARCHAR2(30) := 'A';
17 C_REP_STATUS_REJECTED CONSTANT VARCHAR2(30) := 'R';
18 G_DEBUG_LEVEL CONSTANT NUMBER := TO_NUMBER(NVL(Fnd_Profile.value('CSD_DEBUG_LEVEL'),
19 '0'));
20
21 ------------------------------------------------------------------
22 -----------------------------------------------------------------
23
24 PROCEDURE debug(msg VARCHAR2) IS
25 BEGIN
26 IF (G_DEBUG_LEVEL >= 0) THEN
27 Csd_Gen_Utility_Pvt.ADD(msg);
28 --DBMS_OUTPUT.PUT_LINE(msg);
29 END IF;
30 END DEBUG;
31
32 /*-------------------------------------------------------*/
33 /* function name: validate_estimate_id */
34 /* DEscription: Validates the estimate in the context */
35 /* of repair_line_Id */
36 /* Change History : Created 16th Sep 2004 by Vijay */
37 /*-------------------------------------------------------*/
38 FUNCTION VALIDATE_ESTIMATE_ID(p_estimate_id NUMBER,
39 p_repair_line_id NUMBER) RETURN BOOLEAN IS
40 --Cursor to validate estimate id
41 CURSOR CUR_EST IS
42 SELECT 'x' col1
43 FROM CSD_REPAIR_ESTIMATE_V
44 WHERE repair_estimate_id = p_estimate_id
45 AND repair_line_id = p_repair_line_id
46 AND NVL(ESTIMATE_FREEZE_FLAG, 'N') = 'N';
47
48 l_dummy VARCHAR2(1);
49
50 BEGIN
51
52 l_dummy := ' ';
53 FOR c1_rec IN CUR_EST LOOP
54 l_dummy := c1_rec.col1;
55 END LOOP;
56
57 IF l_dummy = 'x' THEN
58 RETURN TRUE;
59 ELSE
60 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_ESTIMATE');
61 Fnd_Message.SET_TOKEN('REPAIR_ESTIMATE_ID', p_estimate_id);
62 Fnd_Msg_Pub.ADD;
63 RETURN FALSE;
64 END IF;
65
66 END VALIDATE_ESTIMATE_ID;
67
68 /*-------------------------------------------------------*/
69 /* procedure name: validate_estiamte_status */
70 /* DEscription: Validates the estimate status */
71 /* Change History : Created 16th Sep 2004 by Vijay */
72 /*-------------------------------------------------------*/
73 FUNCTION VALIDATE_EST_STATUS(p_estimate_status VARCHAR2) RETURN BOOLEAN IS
74 --Cursor to validate estimate status
75 CURSOR CUR_EST_STATUS(p_estimate_status VARCHAR2) IS
76 SELECT 1 col1
77 FROM fnd_lookup_values_vl
78 WHERE lookup_type = 'CSD_ESTIMATE_STATUS'
79 AND enabled_flag = 'Y'
80 AND TRUNC(SYSDATE) BETWEEN TRUNC(NVL(start_date_active, SYSDATE)) AND
81 TRUNC(NVL(end_date_active, SYSDATE))
82 AND lookup_code = p_estimate_status;
83
84 l_tmp_count NUMBER;
85
86 BEGIN
87
88 l_tmp_count := 0;
89 FOR c1_rec IN CUR_EST_STATUS(p_estimate_status) LOOP
90 l_tmp_count := c1_rec.col1;
91 END LOOP;
92
93 IF l_tmp_count > 0 THEN
94 RETURN TRUE;
95 ELSE
96 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_EST_STATUS');
97 Fnd_Message.SET_TOKEN('STATUS', p_estimate_status);
98 Fnd_Msg_Pub.ADD;
99 RETURN FALSE;
100 END IF;
101
102 END VALIDATE_EST_STATUS;
103 /*-------------------------------------------------------*/
104 /* function name: validate_Reason */
105 /* DEscription: Validates the estimate reject reason */
106 /* Change History : Created 16th Sep 2004 by Vijay */
107 /* 11/3/04 added status as param */
108 /*-------------------------------------------------------*/
109 FUNCTION VALIDATE_REASON(p_reason_code VARCHAR2,
110 p_status VARCHAR2) RETURN BOOLEAN IS
111 --Cursor to validate estimate status
112 CURSOR CUR_REJECT_REASON IS
113 SELECT 1 col1
114 FROM fnd_lookup_values_vl
115 WHERE lookup_type = DECODE(p_status,
116 C_EST_STATUS_REJECTED,
117 'CSD_REJECT_REASON',
118 C_EST_STATUS_ACCEPTED,
119 'CSD_REASON')
120 AND enabled_flag = 'Y'
121 AND TRUNC(SYSDATE) BETWEEN TRUNC(NVL(start_date_active, SYSDATE)) AND
122 TRUNC(NVL(end_date_active, SYSDATE))
123 AND lookup_code = p_reason_code;
124
125 l_tmp_count NUMBER;
126
127 BEGIN
128
129 l_tmp_count := 0;
130 FOR c1_rec IN CUR_REJECT_REASON LOOP
131 l_tmp_count := c1_rec.col1;
132 END LOOP;
133
134 IF l_tmp_count > 0 THEN
135 RETURN TRUE;
136 ELSE
137 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_REJECT_REASON');
138 Fnd_Msg_Pub.ADD;
139 RETURN FALSE;
140 END IF;
141 END VALIDATE_REASON;
142
143 /*-------------------------------------------------------*/
144 /* function name: validate_lead_time_uom */
145 /* DEscription: Validates the uom code of the lead time */
146 /* Change History : Created 24th Sep 2004 by Vijay */
147 /*-------------------------------------------------------*/
148 FUNCTION VALIDATE_LEAD_TIME_UOM(p_lead_time_uom VARCHAR2) RETURN BOOLEAN IS
149 --Cursor to validate estimate status
150 CURSOR CUR_LEAD_TIME_UOM IS
151 SELECT 1 col1
152 FROM fnd_lookup_values_vl
153 WHERE lookup_type = 'CSD_UNIT_OF_MEASURE'
154 AND enabled_flag = 'Y'
155 AND TRUNC(SYSDATE) BETWEEN TRUNC(NVL(start_date_active, SYSDATE)) AND
156 TRUNC(NVL(end_date_active, SYSDATE))
157 AND lookup_code = p_lead_time_uom;
158
159 l_tmp_count NUMBER;
160
161 BEGIN
162
163 l_tmp_count := 0;
164 FOR c1_rec IN CUR_LEAD_TIME_UOM LOOP
165 l_tmp_count := c1_rec.col1;
166 END LOOP;
167
168 IF l_tmp_count > 0 THEN
169 RETURN TRUE;
170 ELSE
171 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_LEAD_TIME_UOM');
172 Fnd_Msg_Pub.ADD;
173 RETURN FALSE;
174 END IF;
175 END VALIDATE_LEAD_TIME_UOM;
176
177 /*-------------------------------------------------------*/
178 /* function name: validate_uom_Code */
179 /* Description: Validates the uom code */
180 /* Change History : Created 16th Sep 2004 by Vijay */
181 /*-------------------------------------------------------*/
182 FUNCTION VALIDATE_UOM_CODE(p_uom_code VARCHAR2,
183 p_item_id NUMBER) RETURN BOOLEAN IS
184 CURSOR c1 IS
185 SELECT 1 col1
186 FROM mtl_item_uoms_view
187 WHERE inventory_item_id = p_item_id
188 AND organization_id = Cs_Std.get_item_valdn_orgzn_id
189 AND uom_type =
190 (SELECT allowed_units_lookup_code
191 FROM mtl_system_items_b
192 WHERE organization_id = Cs_Std.get_item_valdn_orgzn_id
193 AND inventory_item_id = p_item_id)
194 AND uom_code = p_uom_code;
195 l_tmp_count NUMBER;
196 BEGIN
197
198 l_tmp_count := 0;
199 FOR c1_rec IN c1 LOOP
200 l_tmp_count := c1_rec.col1;
201 END LOOP;
202 IF l_tmp_count > 0 THEN
203 RETURN TRUE;
204 ELSE
205 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_UOM');
206 Fnd_Msg_Pub.ADD;
207 RETURN FALSE;
208
209 END IF;
210
211 END VALIDATE_UOM_CODE;
212
213 /*-------------------------------------------------------*/
214 /* function name: validate_price_list */
215 /* DEscription: Validates price_list */
216 /* Change History : Created 16th Sep 2004 by Vijay */
217 /*-------------------------------------------------------*/
218 FUNCTION VALIDATE_PRICE_LIST(p_price_list_id NUMBER) RETURN BOOLEAN IS
219 CURSOR c1 IS
220 SELECT 1 col1
221 FROM oe_price_lists
222 WHERE price_list_id = p_price_list_id;
223 l_tmp_count NUMBER;
224 BEGIN
225
226 l_tmp_count := 0;
227 FOR c1_rec IN c1 LOOP
228 l_tmp_count := c1_rec.col1;
229 END LOOP;
230 IF l_tmp_count > 0 THEN
231 RETURN TRUE;
232 ELSE
233 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_PRICE_LIST_ID');
234 Fnd_Message.SET_TOKEN('PRICE_LIST_ID', TO_CHAR(p_price_list_id));
235 Fnd_Msg_Pub.ADD;
236 RETURN FALSE;
237
238 END IF;
239
240 END VALIDATE_PRICE_LIST;
241 /*-------------------------------------------------------*/
242 /* function name: validate_Item_pl_uom */
243 /* DEscription: Validates the item/pl/uom code */
244 /* Change History : Created 16th Sep 2004 by Vijay */
245 /*-------------------------------------------------------*/
246 -- FUNCTION VALIDATE_ITEM_PL_UOM
247 -- ( p_item_id NUMBER,
248 -- p_price_list_id NUMBER,
249 -- p_uom VARCHAR2) RETURN BOOLEAN;
250 -- BEGIN
251 -- null;
252 --
253 -- END VALIDATE_ITEM_PL_UOM;
254
255 /*-------------------------------------------------------*/
256 /* function name: validate_order */
257 /* DEscription: Validates the order header and line */
258 /* Change History : Created 16th Sep 2004 by Vijay */
259 /*-------------------------------------------------------*/
260 FUNCTION VALIDATE_ORDER(p_order_header_id NUMBER) RETURN VARCHAR2 IS
261
262 CURSOR c1 IS
263 SELECT A.ORDER_NUMBER
264 FROM oe_order_headers_all A
265 WHERE A.HEADER_ID = p_order_header_id;
266
267 l_order_number VARCHAR2(30);
268 BEGIN
269
270 l_order_number := NULL;
271 FOR c1_rec IN c1 LOOP
272 l_order_number := c1_rec.order_number;
273 END LOOP;
274 IF l_order_number IS NOT NULL THEN
275 RETURN l_order_number;
276 ELSE
277 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_ORDER_HEADER_ID');
278 Fnd_Message.SET_TOKEN('ORDER_HEADER_ID', TO_CHAR(p_order_header_id));
279 Fnd_Msg_Pub.ADD;
280 RETURN NULL;
281
282 END IF;
283 END VALIDATE_ORDER;
284
285 /*-------------------------------------------------------*/
286 /* function name: validate_item_instance */
287 /* DEscription: Validates the item instance and returns */
288 /* the itme instance number */
289 /* Change History : Created 16th Sep 2004 by Vijay */
290 /*-------------------------------------------------------*/
291 FUNCTION VALIDATE_ITEM_INSTANCE(p_instance_id NUMBER) RETURN VARCHAR2 IS
292
293 CURSOR c1 IS
294 SELECT INSTANCE_NUMBER
295 FROM CSI_ITEM_INSTANCES
296 WHERE INSTANCE_ID = p_instance_id;
297
298 l_instance_number VARCHAR2(30);
299 BEGIN
300
301 l_instance_number := NULL;
302 FOR c1_rec IN c1 LOOP
303 l_instance_number := c1_rec.instance_number;
304 END LOOP;
305 IF l_instance_number IS NOT NULL THEN
306 RETURN l_instance_number;
307 ELSE
308 Fnd_Message.SET_NAME('CSD', 'CSD_INVALID_INSTANCE');
309 Fnd_Msg_Pub.ADD;
310 RETURN NULL;
311
312 END IF;
313 END VALIDATE_ITEM_INSTANCE;
314
315 /*-------------------------------------------------------*/
316 /* function name: validate_revision */
317 /* DEscription: Validates the revision */
318 /* Change History : Created 16th Sep 2004 by Vijay */
319 /*-------------------------------------------------------*/
320 FUNCTION VALIDATE_REVISION(p_revision VARCHAR2,
321 p_item_id NUMBER,
322 p_org_id NUMBER) RETURN BOOLEAN IS
323 CURSOR c1 IS
324 SELECT 1 col1
325 FROM mtl_item_revisions
326 WHERE revision = p_revision
327 AND inventory_item_id = p_item_id
328 AND organization_id = p_org_id;
329
330 l_tmp_count NUMBER;
331
332 BEGIN
333
334 l_tmp_count := 0;
335 FOR c1_rec IN c1 LOOP
336 l_tmp_count := c1_rec.col1;
337 END LOOP;
338 IF l_tmp_count > 0 THEN
339 RETURN TRUE;
340 ELSE
341 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_REVISION');
342 Fnd_Message.SET_TOKEN('REVISION', p_revision);
343 Fnd_Msg_Pub.ADD;
344 RETURN FALSE;
345 END IF;
346
347 END VALIDATE_REVISION;
348
349 /*-------------------------------------------------------*/
350 /* function name: validate_serial_number */
351 /* DEscription: Validates the serial number */
352 /* Change History : Created 16th Sep 2004 by Vijay */
353 /*-------------------------------------------------------*/
354 FUNCTION VALIDATE_SERIAL_NUMBER(p_serial_number VARCHAR2,
355 p_item_id NUMBER) RETURN BOOLEAN IS
356 CURSOR c1 IS
357 SELECT 1 col1
358 FROM mtl_serial_numbers
359 WHERE serial_number = p_serial_number
360 AND inventory_item_id = p_item_id;
361
362 l_tmp_count NUMBER;
363
364 BEGIN
365
366 l_tmp_count := 0;
367 FOR c1_rec IN c1 LOOP
368 l_tmp_count := c1_rec.col1;
369 END LOOP;
370 IF l_tmp_count > 0 THEN
371 RETURN TRUE;
372 ELSE
373 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_SERIAL_NUMBER');
374 Fnd_Message.SET_TOKEN('SERIAL_NUMBER', p_serial_number);
375 Fnd_Msg_Pub.ADD;
376 RETURN FALSE;
377 END IF;
378
379 END VALIDATE_SERIAL_NUMBER;
380
381 /*-------------------------------------------------------*/
382 /* function name: validate_billing_type */
383 /* DEscription: Validates the billing type from looks */
384 /* table */
385 /* Change History : Created 21st Sep 2004 by Vijay */
386 /*-------------------------------------------------------*/
387 FUNCTION VALIDATE_BILLING_TYPE(p_billing_type VARCHAR2) RETURN BOOLEAN IS
388
389 CURSOR c1 IS
390 SELECT 1 col1
391 FROM fnd_lookup_values
392 WHERE lookup_code = P_BILLING_TYPE
393 AND lookup_type = 'CSD_EST_BILLING_TYPE'
394 AND enabled_flag = 'Y'
395 AND LANGUAGE = 'US'
396 AND TRUNC(SYSDATE) BETWEEN TRUNC(NVL(start_date_active, SYSDATE)) AND
397 TRUNC(NVL(end_date_active, SYSDATE));
398
399 l_tmp_count NUMBER;
400
401 BEGIN
402
403 l_tmp_count := 0;
404 FOR c1_rec IN c1 LOOP
405 l_tmp_count := c1_rec.col1;
406 END LOOP;
407 IF l_tmp_count > 0 THEN
408 RETURN TRUE;
409 ELSE
410 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_BILLING_TYPE');
411 Fnd_Message.SET_TOKEN('BILLING_TYPE', p_billing_type);
412 Fnd_Msg_Pub.ADD;
413 RETURN FALSE;
414 END IF;
415
416 END VALIDATE_BILLING_TYPE;
417
418 /*-------------------------------------------------------*/
419 /* function name: validate_rep_line_id */
420 /* DEscription: Validates the repair line id */
421 /* */
422 /* Change History : Created 30th Sep 2004 by Vijay */
423 /*-------------------------------------------------------*/
424 FUNCTION validate_rep_line_id(p_repair_line_id IN NUMBER) RETURN BOOLEAN
425
426 IS
427 l_C_STATUS_CLOSED VARCHAR2(1) := 'C';
428
429 CURSOR c1 IS
430 SELECT 'x' col1
431 FROM csd_repairs
432 WHERE repair_line_id = p_repair_line_id
433 AND status <> l_C_STATUS_CLOSED;
434
435 l_dummy VARCHAR2(1);
436
437 BEGIN
438 l_dummy := ' ';
439 FOR c1_rec IN c1 LOOP
440 l_dummy := c1_rec.col1;
441 END LOOP;
442 IF l_dummy = 'x' THEN
443 RETURN TRUE;
444 ELSE
445 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_REP_LINE_ID');
446 Fnd_Message.SET_TOKEN('REPAIR_LINE_ID', p_repair_line_id);
447 Fnd_Msg_Pub.ADD;
448 RETURN FALSE;
449 END IF;
450
451 END Validate_rep_line_id;
452
453 /*-------------------------------------------------------*/
454 /* function name: validate_incident_id */
455 /* DEscription: Validates the incident id */
456 /* */
457 /* Change History : Created 30th Sep 2004 by Vijay */
458 /*-------------------------------------------------------*/
459 FUNCTION validate_incident_id(p_incident_id IN NUMBER) RETURN BOOLEAN IS
460
461 CURSOR c1 IS
462 SELECT 'x' col1
463 FROM cs_incidents_all_b A, cs_incident_statuses_b B
464 WHERE A.incident_id = p_incident_id
465 AND B.INCIDENT_STATUS_ID = A.INCIDENT_STATUS_ID
466 AND B.incident_subtype = 'INC'
467 AND TRUNC(SYSDATE) BETWEEN
468 TRUNC(NVL(B.start_date_active, SYSDATE)) AND
469 TRUNC(NVL(B.end_date_active, SYSDATE))
470 AND B.CLOSE_FLAG = 'Y';
471
472 l_dummy VARCHAR2(1);
473
474 BEGIN
475 l_dummy := ' ';
476 FOR c1_rec IN c1 LOOP
477 l_dummy := c1_rec.col1;
478 END LOOP;
479 IF l_dummy = 'x' THEN
480 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_INC_STATUS');
481 Fnd_Message.SET_TOKEN('INCIDENT_ID', p_incident_id);
482 Fnd_Msg_Pub.ADD;
483 RETURN FALSE;
484 ELSE
485 RETURN TRUE;
486 END IF;
487
488 END validate_incident_id;
489
490 /*-------------------------------------------------------*/
491 /* procedure name: validate_est_hdr_rec */
492 /* DEscription: Validates estimates header record */
493 /* */
494 /* Change History : Created 25th June2005 by Vijay */
495 /*-------------------------------------------------------*/
496
497 PROCEDURE validate_est_hdr_rec(p_estimate_hdr_rec IN Csd_Repair_Estimate_Pub.estimate_hdr_Rec ,
498 p_validation_level IN NUMBER) IS
499 --Cursor definition to check the existing repair estimate header record for the
500 -- given repair order line.
501 CURSOR CUR_ESTIMATE_HDR(p_repair_line_id NUMBER) IS
502 SELECT 1 col1
503 FROM CSD_REPAIR_ESTIMATE
504 WHERE REPAIR_LINE_ID = p_repair_line_id
505 AND ROWNUM = 1;
506
507 l_tmp_count NUMBER;
508 l_api_name CONSTANT VARCHAR2(30) := 'VALIDATE_EST_HDR_REC';
509
510 BEGIN
511
512 -- Check the required parameters
513 Csd_Process_Util.Check_Reqd_Param(p_param_value => p_estimate_hdr_rec.repair_line_id,
514 p_param_name => 'REPAIR_LINE_ID',
515 p_api_name => l_api_name);
516 /*
517 -- swai: bug 9462862 - lead time and uom are not required fields
518 Csd_Process_Util.Check_Reqd_Param(p_param_value => p_estimate_hdr_rec.lead_time,
519 p_param_name => 'LEAD_TIME',
520 p_api_name => l_api_name);
521 Csd_Process_Util.Check_Reqd_Param(p_param_value => p_estimate_hdr_rec.lead_time_uom,
522 p_param_name => 'LEAD_TIME_UOM',
523 p_api_name => l_api_name);
524 */
525 -- Validate repair line id
526 IF (NOT VALIDATE_REP_LINE_ID(p_estimate_hdr_rec.repair_line_id)) THEN
527 debug('Invalid repair order line[' ||
528 p_estimate_hdr_rec.repair_line_id || ']');
529 RAISE Fnd_Api.G_EXC_ERROR;
530 END IF;
531
532 -- Check if the repair line has already an estimate record.
533 -- if so then return failure with warning message.
534 l_tmp_count := 0;
535 FOR c1_rec IN CUR_ESTIMATE_HDR(p_estimate_hdr_rec.repair_line_id) LOOP
536 l_tmp_count := c1_rec.col1;
537 END LOOP;
538
539 IF l_tmp_count > 0 THEN
540 Fnd_Message.SET_NAME('CSD', 'CSD_API_ESTIMATE_EXISTS');
541 Fnd_Message.SET_TOKEN('REPAIR_LINE_ID',
542 p_estimate_hdr_rec.repair_line_id);
543 Fnd_Msg_Pub.ADD;
544 Fnd_Msg_Pub.ADD_DETAIL(p_message_type => Fnd_Msg_Pub.G_WARNING_MSG);
545 debug('Estimate header already exists');
546 RAISE Fnd_Api.G_EXC_ERROR;
547 END IF;
548
549 END VALIDATE_EST_HDR_REC;
550
551 /*------------------------------------------------------------------------*/
552 /* procedure name: DEFAULT_EST_HDR_REC */
553 /* DEscription: DEfault values are set in estimates header record */
554 /* */
555 /* Change History : Created 25th June2005 by Vijay */
556 /*------------------------------------------------------------------------*/
557
558 PROCEDURE DEFAULT_EST_HDR_REC(p_estimate_hdr_rec IN OUT NOCOPY Csd_Repair_Estimate_Pub.estimate_hdr_Rec) IS
559 -- Cursor to get the object version number and repair quantity
560 -- and SR summary
561 CURSOR CUR_REPAIR_LINE(p_Repair_line_id NUMBER) IS
562 SELECT A.QUANTITY, A.OBJECT_VERSION_NUMBER, B.SUMMARY, B.INCIDENT_ID
563 FROM CSD_REPAIRS A, CS_INCIDENTS_ALL_VL B
564 WHERE A.REPAIR_LINE_ID = p_repair_line_id
565 AND A.INCIDENT_ID = B.INCIDENT_ID;
566
567 l_incident_id NUMBER;
568
569 BEGIN
570
571 --------------------------------------------------------------------
572 -- Get the repair line attributes and default into the estimate hdr
573 --------------------------------------------------------------------
574 p_estimate_hdr_rec.ro_object_version_number := -1;
575 p_estimate_hdr_rec.repair_line_quantity := 0;
576 FOR c1_rec IN CUR_REPAIR_LINE(p_estimate_hdr_rec.repair_line_id) LOOP
577 p_estimate_hdr_rec.ro_object_version_number := c1_rec.Object_Version_number;
578 p_estimate_hdr_rec.repair_line_quantity := c1_rec.quantity;
579 l_incident_id := c1_rec.incident_id;
580 IF (p_estimate_hdr_rec.work_summary IS NULL) THEN
581 p_estimate_hdr_rec.work_summary := c1_rec.summary;
582 END IF;
583 END LOOP;
584 debug('summary=[' || p_estimate_hdr_rec.work_summary || ']');
585
586 --------------------------------------------------------------------
587 -- Validate incident id status. Ensure that the SR status is not closed.
588 --------------------------------------------------------------------
589 IF (NOT VALIDATE_INCIDENT_ID(l_incident_id)) THEN
590 debug('Invalid incident id[' || l_incident_id || ']');
591 RAISE Fnd_Api.G_EXC_ERROR;
592 END IF;
593
594 -- Defualt the estiamte date to sysdate if it is null
595 IF (p_estimate_hdr_rec.estimate_date IS NULL) THEN
596 p_estimate_hdr_rec.estimate_date := SYSDATE;
597 END IF;
598
599 -- Defualt the status to 'NEW' if null
600 IF (p_estimate_hdr_rec.estimate_status IS NULL) THEN
601 p_estimate_hdr_rec.estimate_status := C_EST_STATUS_NEW;
602 END IF;
603
604 END DEFAULT_EST_HDR_REC;
605
606 /*------------------------------------------------------------------------*/
607 /* procedure name: VALIDATE_DEFAULTED_EST_HDR */
608 /* DEscription: Validate the defaulted estimates header record */
609 /* */
610 /* Change History : Created 25th June2005 by Vijay */
611 /*------------------------------------------------------------------------*/
612 PROCEDURE VALIDATE_DEFAULTED_EST_HDR(p_estimate_hdr_rec IN Csd_Repair_Estimate_Pub.estimate_hdr_Rec,
613 p_validation_level IN NUMBER) IS
614
615 l_api_name CONSTANT VARCHAR2(30) := 'VALIDATE_DEFAULTED_EST_HDR';
616
617 BEGIN
618 -- If the summary is null even after SR summary is defaulted, then
619 -- it is an error.
620 Csd_Process_Util.Check_Reqd_Param(p_param_value => p_estimate_hdr_rec.work_summary,
621 p_param_name => 'SUMMARY',
622 p_api_name => l_api_name);
623
624 --Validate input status
625 IF (NOT VALIDATE_EST_STATUS(p_estimate_hdr_rec.estimate_status)) THEN
626 debug('Invalid estimate status[' ||
627 p_estimate_hdr_rec.estimate_status || ']');
628 RAISE Fnd_Api.G_EXC_ERROR;
629 END IF;
630
631
632 -- Validate lead time UOM
633 -- swai: bug 9462862 only validate lead time UOM if it has been entered.
634 -- Lead time is optional and UOM should not be validated if not enetered.
635 IF (p_estimate_hdr_rec.lead_time is not null or
636 p_estimate_hdr_rec.lead_time_uom is not null) THEN
637 IF (NOT VALIDATE_LEAD_TIME_UOM(p_estimate_hdr_rec.lead_time_uom)) THEN
638 debug('Invalid lead time uom[' || p_estimate_hdr_rec.lead_time_uom || ']');
639 RAISE Fnd_Api.G_EXC_ERROR;
640 END IF;
641 END IF;
642
643 END VALIDATE_DEFAULTED_EST_HDR;
644
645 /*------------------------------------------------------------------------*/
646 /* procedure name: COPY_TO_EST_HDR_REC */
647 /* DEscription: Creates the record required for private api */
648 /* */
649 /* Change History : Created 25th June2005 by Vijay */
650 /*------------------------------------------------------------------------*/
651 PROCEDURE COPY_TO_EST_HDR_REC(p_estimate_hdr_rec IN Csd_Repair_Estimate_Pub.estimate_hdr_Rec,
652 x_est_pvt_hdr_rec OUT NOCOPY Csd_Repair_Estimate_Pvt.REPAIR_ESTIMATE_REC) IS
653 BEGIN
654
655 IF (p_estimate_hdr_rec.repair_estimate_id IS NOT NULL) then
656 x_est_pvt_hdr_rec.repair_estimate_id := p_estimate_hdr_rec.repair_estimate_id;
657 END IF;
658
659 IF (p_estimate_hdr_rec.repair_line_id IS NOT NULL) then
660 x_est_pvt_hdr_rec.repair_line_id := p_estimate_hdr_rec.repair_line_id;
661 END IF;
662 IF (p_estimate_hdr_rec.note_id IS NOT NULL) then
663 x_est_pvt_hdr_rec.note_id := p_estimate_hdr_rec.note_id;
664 END IF;
665 IF (p_estimate_hdr_rec.estimate_date IS NOT NULL) then
666 x_est_pvt_hdr_rec.estimate_date := p_estimate_hdr_rec.estimate_date;
667 END IF;
668 IF (p_estimate_hdr_rec.estimate_status IS NOT NULL) then
669 x_est_pvt_hdr_rec.estimate_status := p_estimate_hdr_rec.estimate_status;
670 END IF;
671 IF (p_estimate_hdr_rec.lead_time IS NOT NULL) then
672 x_est_pvt_hdr_rec.lead_time := p_estimate_hdr_rec.lead_time;
673 END IF;
674 IF (p_estimate_hdr_rec.lead_time_uom IS NOT NULL) then
675 x_est_pvt_hdr_rec.lead_time_uom := p_estimate_hdr_rec.lead_time_uom;
676 END IF;
677 IF (p_estimate_hdr_rec.work_summary IS NOT NULL) then
678 x_est_pvt_hdr_rec.work_summary := p_estimate_hdr_rec.work_summary;
679 END IF;
680 IF (p_estimate_hdr_rec.po_number IS NOT NULL) then
681 x_est_pvt_hdr_rec.po_number := p_estimate_hdr_rec.po_number;
682 END IF;
683 IF (p_estimate_hdr_rec.estimate_reason_code IS NOT NULL) then
684 x_est_pvt_hdr_rec.estimate_reason_code := p_estimate_hdr_rec.estimate_reason_code;
685 END IF;
686 IF (p_estimate_hdr_rec.last_update_date IS NOT NULL) then
687 x_est_pvt_hdr_rec.last_update_date := p_estimate_hdr_rec.last_update_date;
688 END IF;
689 IF (p_estimate_hdr_rec.creation_date IS NOT NULL) then
690 x_est_pvt_hdr_rec.creation_date := p_estimate_hdr_rec.creation_date;
691 END IF;
692 IF (p_estimate_hdr_rec.last_updated_by IS NOT NULL) then
693 x_est_pvt_hdr_rec.last_updated_by := p_estimate_hdr_rec.last_updated_by;
694 END IF;
695 IF (p_estimate_hdr_rec.created_by IS NOT NULL) then
696 x_est_pvt_hdr_rec.created_by := p_estimate_hdr_rec.created_by;
697 END IF;
698 IF (p_estimate_hdr_rec.last_update_login IS NOT NULL) then
699 x_est_pvt_hdr_rec.last_update_login := p_estimate_hdr_rec.last_update_login;
700 END IF;
701 IF (p_estimate_hdr_rec.attribute1 IS NOT NULL) then
702 x_est_pvt_hdr_rec.attribute1 := p_estimate_hdr_rec.attribute1;
703 END IF;
704 IF (p_estimate_hdr_rec.attribute2 IS NOT NULL) then
705 x_est_pvt_hdr_rec.attribute2 := p_estimate_hdr_rec.attribute2;
706 END IF;
707 IF (p_estimate_hdr_rec.attribute3 IS NOT NULL) then
708 x_est_pvt_hdr_rec.attribute3 := p_estimate_hdr_rec.attribute3;
709 END IF;
710 IF (p_estimate_hdr_rec.attribute4 IS NOT NULL) then
711 x_est_pvt_hdr_rec.attribute4 := p_estimate_hdr_rec.attribute4;
712 END IF;
713 IF (p_estimate_hdr_rec.attribute5 IS NOT NULL) then
714 x_est_pvt_hdr_rec.attribute5 := p_estimate_hdr_rec.attribute5;
715 END IF;
716 IF (p_estimate_hdr_rec.attribute6 IS NOT NULL) then
717 x_est_pvt_hdr_rec.attribute6 := p_estimate_hdr_rec.attribute6;
718 END IF;
719 IF (p_estimate_hdr_rec.attribute7 IS NOT NULL) then
720 x_est_pvt_hdr_rec.attribute7 := p_estimate_hdr_rec.attribute7;
721 END IF;
722 IF (p_estimate_hdr_rec.attribute8 IS NOT NULL) then
723 x_est_pvt_hdr_rec.attribute8 := p_estimate_hdr_rec.attribute8;
724 END IF;
725 IF (p_estimate_hdr_rec.attribute9 IS NOT NULL) then
726 x_est_pvt_hdr_rec.attribute9 := p_estimate_hdr_rec.attribute9;
727 END IF;
728 IF (p_estimate_hdr_rec.attribute10 IS NOT NULL) then
729 x_est_pvt_hdr_rec.attribute10 := p_estimate_hdr_rec.attribute10;
730 END IF;
731 IF (p_estimate_hdr_rec.attribute11 IS NOT NULL) then
732 x_est_pvt_hdr_rec.attribute11 := p_estimate_hdr_rec.attribute11;
733 END IF;
734 IF (p_estimate_hdr_rec.attribute12 IS NOT NULL) then
735 x_est_pvt_hdr_rec.attribute12 := p_estimate_hdr_rec.attribute12;
736 END IF;
737 IF (p_estimate_hdr_rec.attribute13 IS NOT NULL) then
738 x_est_pvt_hdr_rec.attribute13 := p_estimate_hdr_rec.attribute13;
739 END IF;
740 IF (p_estimate_hdr_rec.attribute14 IS NOT NULL) then
741 x_est_pvt_hdr_rec.attribute14 := p_estimate_hdr_rec.attribute14;
742 END IF;
743 IF (p_estimate_hdr_rec.attribute15 IS NOT NULL) then
744 x_est_pvt_hdr_rec.attribute15 := p_estimate_hdr_rec.attribute15;
745 END IF;
746 IF (p_estimate_hdr_rec.context IS NOT NULL) then
747 x_est_pvt_hdr_rec.context := p_estimate_hdr_rec.context;
748 END IF;
749 IF (p_estimate_hdr_rec.object_version_number IS NOT NULL) then
750 x_est_pvt_hdr_rec.object_version_number := p_estimate_hdr_rec.object_version_number;
751 END IF;
752 -- swai: bug 9462789
753 IF (p_estimate_hdr_rec.not_to_exceed IS NOT NULL) then
754 x_est_pvt_hdr_rec.not_to_exceed := p_estimate_hdr_rec.not_to_exceed;
755 END IF;
756 -- swai: end bug 9462789
757
758 END COPY_TO_EST_HDR_REC;
759
760 /*------------------------------------------------------------------------*/
761 /* procedure name: COPY_TO_EST_HDR_REC_UPD */
762 /* DEscription: Creates the record required for private update api */
763 /* */
764 /* Change History : Created 25th June2005 by Vijay */
765 /*------------------------------------------------------------------------*/
766 PROCEDURE COPY_TO_EST_HDR_REC_UPD(p_estimate_hdr_rec IN Csd_Repair_Estimate_Pub.estimate_hdr_Rec,
767 x_est_pvt_hdr_rec OUT NOCOPY Csd_Repair_Estimate_Pvt.REPAIR_ESTIMATE_REC) IS
768 BEGIN
769 -- swai: bug 9462789
770 x_est_pvt_hdr_rec.repair_estimate_id := p_estimate_hdr_rec.repair_estimate_id;
771
772 IF (p_estimate_hdr_rec.not_to_exceed IS NOT NULL) then
773 x_est_pvt_hdr_rec.not_to_exceed := p_estimate_hdr_rec.not_to_exceed;
774 END IF;
775 -- swai: end bug 9462789
776
777 --bug#9733109
778 IF (p_estimate_hdr_rec.repair_line_id IS NOT NULL) then
779 x_est_pvt_hdr_rec.repair_line_id := p_estimate_hdr_rec.repair_line_id;
780 END IF;
781 --bug#9733109
782
783 IF (p_estimate_hdr_rec.note_id IS NOT NULL) then
784 x_est_pvt_hdr_rec.note_id := p_estimate_hdr_rec.note_id;
785 END IF;
786 IF (p_estimate_hdr_rec.estimate_date IS NOT NULL) then
787 x_est_pvt_hdr_rec.estimate_date := p_estimate_hdr_rec.estimate_date;
788 END IF;
789 IF (p_estimate_hdr_rec.estimate_status IS NOT NULL) then
790 x_est_pvt_hdr_rec.estimate_status := p_estimate_hdr_rec.estimate_status;
791 END IF;
792 IF (p_estimate_hdr_rec.lead_time IS NOT NULL) then
793 x_est_pvt_hdr_rec.lead_time := p_estimate_hdr_rec.lead_time;
794 END IF;
795 IF (p_estimate_hdr_rec.lead_time_uom IS NOT NULL) then
796 x_est_pvt_hdr_rec.lead_time_uom := p_estimate_hdr_rec.lead_time_uom;
797 END IF;
798 IF (p_estimate_hdr_rec.work_summary IS NOT NULL) then
799 x_est_pvt_hdr_rec.work_summary := p_estimate_hdr_rec.work_summary;
800 END IF;
801 IF (p_estimate_hdr_rec.po_number IS NOT NULL) then
802 x_est_pvt_hdr_rec.po_number := p_estimate_hdr_rec.po_number;
803 END IF;
804 IF (p_estimate_hdr_rec.estimate_reason_code IS NOT NULL) then
805 x_est_pvt_hdr_rec.estimate_reason_code := p_estimate_hdr_rec.estimate_reason_code;
806 END IF;
807 IF (p_estimate_hdr_rec.attribute1 IS NOT NULL) then
808 x_est_pvt_hdr_rec.attribute1 := p_estimate_hdr_rec.attribute1;
809 END IF;
810 IF (p_estimate_hdr_rec.attribute2 IS NOT NULL) then
811 x_est_pvt_hdr_rec.attribute2 := p_estimate_hdr_rec.attribute2;
812 END IF;
813 IF (p_estimate_hdr_rec.attribute3 IS NOT NULL) then
814 x_est_pvt_hdr_rec.attribute3 := p_estimate_hdr_rec.attribute3;
815 END IF;
816 IF (p_estimate_hdr_rec.attribute4 IS NOT NULL) then
817 x_est_pvt_hdr_rec.attribute4 := p_estimate_hdr_rec.attribute4;
818 END IF;
819 IF (p_estimate_hdr_rec.attribute5 IS NOT NULL) then
820 x_est_pvt_hdr_rec.attribute5 := p_estimate_hdr_rec.attribute5;
821 END IF;
822 IF (p_estimate_hdr_rec.attribute6 IS NOT NULL) then
823 x_est_pvt_hdr_rec.attribute6 := p_estimate_hdr_rec.attribute6;
824 END IF;
825 IF (p_estimate_hdr_rec.attribute7 IS NOT NULL) then
826 x_est_pvt_hdr_rec.attribute7 := p_estimate_hdr_rec.attribute7;
827 END IF;
828 IF (p_estimate_hdr_rec.attribute8 IS NOT NULL) then
829 x_est_pvt_hdr_rec.attribute8 := p_estimate_hdr_rec.attribute8;
830 END IF;
831 IF (p_estimate_hdr_rec.attribute9 IS NOT NULL) then
832 x_est_pvt_hdr_rec.attribute9 := p_estimate_hdr_rec.attribute9;
833 END IF;
834 IF (p_estimate_hdr_rec.attribute10 IS NOT NULL) then
835 x_est_pvt_hdr_rec.attribute10 := p_estimate_hdr_rec.attribute10;
836 END IF;
837 IF (p_estimate_hdr_rec.attribute11 IS NOT NULL) then
838 x_est_pvt_hdr_rec.attribute11 := p_estimate_hdr_rec.attribute11;
839 END IF;
840 IF (p_estimate_hdr_rec.attribute12 IS NOT NULL) then
841 x_est_pvt_hdr_rec.attribute12 := p_estimate_hdr_rec.attribute12;
842 END IF;
843 IF (p_estimate_hdr_rec.attribute13 IS NOT NULL) then
844 x_est_pvt_hdr_rec.attribute13 := p_estimate_hdr_rec.attribute13;
845 END IF;
846 IF (p_estimate_hdr_rec.attribute14 IS NOT NULL) then
847 x_est_pvt_hdr_rec.attribute14 := p_estimate_hdr_rec.attribute14;
848 END IF;
849 IF (p_estimate_hdr_rec.attribute15 IS NOT NULL) then
850 x_est_pvt_hdr_rec.attribute15 := p_estimate_hdr_rec.attribute15;
851 END IF;
852 IF (p_estimate_hdr_rec.context IS NOT NULL) then
853 x_est_pvt_hdr_rec.context := p_estimate_hdr_rec.context;
854 END IF;
855
856 x_est_pvt_hdr_rec.object_version_number := p_estimate_hdr_rec.object_version_number;
857
858 END COPY_TO_EST_HDR_REC_UPD;
859
860 /*-------------------------------------------------------*/
861 /* procedure name: validate_est_line_rec */
862 /* DEscription: Validates estimates line record */
863 /* */
864 /* Change History : Created 25th June2005 by Vijay */
865 /*-------------------------------------------------------*/
866
867 PROCEDURE VALIDATE_EST_LINE_REC(p_estimate_line_rec IN Csd_Repair_Estimate_Pub.estimate_line_Rec,
868 p_validation_level IN NUMBER) IS
869
870 l_api_name CONSTANT VARCHAR2(30) := 'VALIDATE_EST_LINE_REC';
871 l_order_number varchar2(30);
872
873 BEGIN
874 -- Check the required parameters
875 Csd_Process_Util.Check_Reqd_Param(p_param_value => p_estimate_line_rec.repair_line_id,
876 p_param_name => 'REPAIR_LINE_ID',
877 p_api_name => l_api_name);
878 Csd_Process_Util.Check_Reqd_Param(p_param_value => p_estimate_line_rec.repair_estimate_id,
879 p_param_name => 'REPAIR_ESTIMATE_ID',
880 p_api_name => l_api_name);
881 Csd_Process_Util.Check_Reqd_Param(p_param_value => p_estimate_line_rec.inventory_item_id,
882 p_param_name => 'INVENTORY_ITEM_ID',
883 p_api_name => l_api_name);
884 Csd_Process_Util.Check_Reqd_Param(p_param_value => p_estimate_line_rec.price_list_id,
885 p_param_name => 'PRICE_LIST_ID',
886 p_api_name => l_api_name);
887 Csd_Process_Util.Check_Reqd_Param(p_param_value => p_estimate_line_rec.unit_of_measure_code,
888 p_param_name => 'UNIT_OF_MEASURE_CODE',
889 p_api_name => l_api_name);
890 Csd_Process_Util.Check_Reqd_Param(p_param_value => p_estimate_line_rec.estimate_quantity,
891 p_param_name => 'ESTIMATE_QUANTITY',
892 p_api_name => l_api_name);
893
894 --------------------------------------------------------------------
895 -- Validate repair line id
896 --------------------------------------------------------------------
897 IF (NOT VALIDATE_REP_LINE_ID(p_estimate_line_rec.repair_line_id)) THEN
898 debug('Invalid repair order line[' ||
899 p_estimate_line_rec.repair_line_id || ']');
900 RAISE Fnd_Api.G_EXC_ERROR;
901 END IF;
902
903 --------------------------------------------------------------------
904 -- Validate estiamate hdr id repair line id combination
905 --------------------------------------------------------------------
906 IF (NOT VALIDATE_ESTIMATE_ID(p_estimate_line_rec.repair_estimate_id,
907 p_estimate_line_rec.repair_line_id)) THEN
908 debug('Invalid estiamte header, rep line[' ||
909 p_estimate_line_rec.repair_line_id || ']estimate[' ||
910 p_estimate_line_rec.repair_estimate_id || ']');
911 RAISE Fnd_Api.G_EXC_ERROR;
912 END IF;
913
914 --------------------------------------------------------------------
915 -- Validate inventory item id
916 --------------------------------------------------------------------
917 IF (NOT
918 Csd_Process_Util.VALIDATE_INVENTORY_ITEM_ID(p_estimate_line_rec.inventory_item_id)) THEN
919 debug('Invalid Inventory item[' ||
920 p_estimate_line_rec.inventory_item_id || ']');
921 RAISE Fnd_Api.G_EXC_ERROR;
922 END IF;
923
924 --------------------------------------------------------------------
925 -- Validate UOM
926 --------------------------------------------------------------------
927
928 IF (NOT VALIDATE_UOM_CODE(p_estimate_line_rec.unit_of_measure_code,
929 p_estimate_line_rec.inventory_item_id)) THEN
930 debug('Invalid uom[' || p_estimate_line_rec.unit_of_measure_code || ']');
931 RAISE Fnd_Api.G_EXC_ERROR;
932 END IF;
933
934 --------------------------------------------------------------------
935 -- Validate Price list
936 --------------------------------------------------------------------
937
938 IF (NOT VALIDATE_PRICE_LIST(p_estimate_line_rec.price_list_id)) THEN
939 debug('Invalid uom[' || p_estimate_line_rec.price_list_id || ']');
940 RAISE Fnd_Api.G_EXC_ERROR;
941 END IF;
942
943 --------------------------------------------------------------------
944 -- Validate add to order (order _header id and order_line_Id)
945 --------------------------------------------------------------------
946 IF (p_estimate_line_rec.add_to_order_flag = 'Y') THEN
947 l_order_number := VALIDATE_ORDER(p_estimate_line_rec.order_header_id);
948 IF (l_order_number IS NULL OR
949 l_order_number = Fnd_Api.G_MISS_CHAR) THEN
950 debug('Invalid order header id[' ||
951 p_estimate_line_rec.order_header_id || '] ');
952 RAISE Fnd_Api.G_EXC_ERROR;
953 END IF;
954 END IF;
955
956 -- Validate override charge flag.
957 IF (p_estimate_line_rec.override_charge_flag = 'Y') THEN
958 IF (NVL(Fnd_Profile.value('CSD_ALLOW_CHARGE_OVERRIDE'), 'N') <> 'Y') THEN
959 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_OVERRIDE_FLAG');
960 Fnd_Msg_Pub.ADD;
961 RAISE Fnd_Api.G_EXC_ERROR;
962 END IF;
963 END IF;
964
965 END VALIDATE_EST_LINE_REC;
966
967 /*------------------------------------------------------------------------*/
968 /* procedure name: DEFAULT_EST_LINE_REC */
969 /* DEscription: DEfault values are set in estimates line record */
970 /* */
971 /* Change History : Created 25th June2005 by Vijay */
972 /*------------------------------------------------------------------------*/
973
974 PROCEDURE DEFAULT_EST_LINE_REC(px_estimate_line_rec IN OUT NOCOPY Csd_Repair_Estimate_Pub.estimate_line_Rec) IS
975 -- cursor to get nocharge flag, txn_type and validate txn_billing_type
976 CURSOR CUR_NO_CHARGE_FLAG(p_txn_billing_Type_id NUMBER) IS
977 SELECT NVL(ctt.no_charge_flag, 'N') no_charge_flag,
978 ctt.transaction_Type_id
979 FROM cs_txn_billing_types ctbt, cs_transaction_types ctt
980 WHERE ctbt.txn_billing_type_id = p_txn_billing_type_id
981 AND ctbt.transaction_type_id = ctt.transaction_type_id;
982 -- Cursor to get the incident id , repair type, business process
983 CURSOR CUR_REPAIR_LINE(p_Repair_line_id NUMBER) IS
984 SELECT A.INCIDENT_ID,
985 A.CONTRACT_LINE_ID,
986 B.BUSINESS_PROCESS_ID,
987 B.REPAIR_TYPE_ID
988 FROM CSD_REPAIRS A, CSD_REPAIR_TYPES_B B
989 WHERE A.REPAIR_LINE_ID = p_repair_line_id
990 AND A.REPAIR_TYPE_ID = B.REPAIR_TYPE_ID;
991
992 -- Cursor to get the contract_id and contract_number
993 CURSOR CUR_CONTRACT_DETAILS(p_contract_line_id NUMBER) IS
994 SELECT HD.ID CONTRACT_ID, HD.CONTRACT_NUMBER
995 FROM OKC_K_HEADERS_B HD, OKC_K_LINES_B KL
996 WHERE HD.ID = KL.DNZ_CHR_ID
997 AND KL.CLE_ID = p_contract_line_id
998 AND ROWNUM = 1;
999
1000 -- Cursor to get the billable_flag
1001 CURSOR CUR_BILLING_TYPE(p_item_id NUMBER) IS
1002 SELECT material_billable_flag
1003 FROM mtl_system_items_b
1004 WHERE inventory_item_id = p_item_id
1005 AND organization_id = Cs_Std.GET_ITEM_VALDN_ORGZN_ID;
1006
1007 -- Cursor to get the item cost for a material item
1008 -- Service validation org is considered here.
1009 CURSOR CUR_MATERIAL_COST(p_item_id NUMBER) IS
1010 SELECT item_cost item_cost
1011 FROM cst_item_costs a, cst_cost_types b
1012 WHERE a.cost_type_id = b.cost_type_id
1013 AND UPPER(b.cost_type) = 'FROZEN'
1014 AND a.inventory_item_id = p_item_id
1015 AND a.organization_id = Cs_Std.GET_ITEM_VALDN_ORGZN_ID;
1016
1017 -- Cursor to get the txn_billing_Types from the repair type.
1018 CURSOR CUR_TXN_BILLING_TYPE(p_repair_type_id NUMBER, p_billing_category VARCHAR2, p_billing_type VARCHAR2) IS
1019 SELECT txn_billing_type_id
1020 FROM csd_repair_types_sar_vl
1021 WHERE repair_type_id = p_repair_type_id
1022 AND BILLING_CATEGORY = p_billing_Category
1023 AND BILLING_TYPE = p_billing_Type;
1024
1025 CURSOR CUR_ITEM_INSTANCE(p_item_id NUMBER, p_serial_number NUMBER) IS
1026 SELECT instance_number, instance_id
1027 FROM csi_item_instances
1028 WHERE inventory_item_id = p_item_id
1029 AND serial_number = p_serial_number;
1030
1031 l_billing_Type VARCHAR2(1);
1032 l_no_charge_flag VARCHAR2(1);
1033 l_repair_Type_id NUMBER;
1034 l_contract_line_id NUMBER;
1035 l_pricing_rec Csd_Process_Util.PRICING_ATTR_REC;
1036 l_return_status varchar2(1);
1037 l_msg_Count NUMBER;
1038 l_msg_data VARCHAR2(4000);
1039
1040 --bug#3875036
1041 l_account_id NUMBER := NULL;
1042
1043
1044 BEGIN
1045 px_estimate_line_rec.source_id := px_estimate_line_rec.repair_line_id;
1046 px_estimate_line_rec.original_source_id := px_estimate_line_rec.repair_line_id;
1047 px_estimate_line_rec.source_code := 'DR';
1048 px_estimate_line_rec.original_source_code := 'DR';
1049
1050 /* bug#3875036 */
1051 l_account_id := CSD_CHARGE_LINE_UTIL.Get_SR_AccountId(px_estimate_line_rec.repair_line_id);
1052
1053 debug('Input No charge flag [' || px_estimate_line_rec.no_charge_flag || ']');
1054 l_no_charge_flag := 'N';
1055 px_estimate_line_rec.transaction_Type_id := -1;
1056 FOR c1_rec IN CUR_NO_CHARGE_FLAG(px_estimate_line_rec.txn_billing_Type_id) LOOP
1057 l_no_charge_flag := c1_rec.no_charge_flag;
1058 px_estimate_line_rec.transaction_Type_id := c1_rec.transaction_Type_id;
1059 END LOOP;
1060 debug('txn_type_id is derived from txn_billing type[' ||
1061 px_estimate_line_rec.transaction_Type_id || ']');
1062 IF (px_estimate_line_rec.transaction_Type_id = -1) THEN
1063 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_TRANSACTION_TYPE');
1064 Fnd_Message.SET_TOKEN('TXN_BILLING_TYPE_ID',
1065 px_estimate_line_rec.txn_billing_Type_id);
1066 Fnd_Msg_Pub.ADD;
1067 RAISE Fnd_Api.G_EXC_ERROR;
1068 END IF;
1069
1070 IF (px_estimate_line_rec.no_charge_flag = 'Y' AND
1071 (px_estimate_line_rec.override_charge_flag IS NULL OR
1072 px_estimate_line_rec.override_charge_flag <> 'Y')) THEN
1073 Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_NOCHARGE_FLAG');
1074 Fnd_Msg_Pub.ADD;
1075 RAISE Fnd_Api.G_EXC_ERROR;
1076 ELSIF (px_estimate_line_rec.no_charge_flag IS NULL OR
1077 px_estimate_line_rec.no_charge_flag <> 'Y') THEN
1078 debug('No charge flag is not Y, deriving from txn_billing_type[' ||
1079 px_estimate_line_rec.txn_billing_Type_id || ']');
1080 px_estimate_line_rec.no_charge_flag := l_no_charge_flag;
1081 debug('No charge flag is derived from txn_billing type[' ||
1082 px_estimate_line_rec.no_charge_flag || ']');
1083
1084 END IF;
1085
1086 --------------------------------------------------------------------
1087 --Get the business process and incident id values from the
1088 -- CSD_REPAIRS table. Since the repair line id is validated
1089 -- there is no need to check for rec not found condition.
1090 --------------------------------------------------------------------
1091 px_estimate_line_rec.business_process_id := -1;
1092 px_estimate_line_rec.incident_id := -1;
1093 FOR c1_rec IN CUR_REPAIR_LINE(px_estimate_line_rec.repair_line_id) LOOP
1094 px_estimate_line_rec.business_process_id := c1_rec.business_process_id;
1095 px_estimate_line_rec.incident_id := c1_rec.incident_id;
1096 l_repair_type_id := c1_rec.repair_type_id;
1097 ---------------------------------------------------------------------
1098 -- Default the repair order contract
1099 ---------------------------------------------------------------------
1100 l_contract_line_id := c1_rec.contract_line_id;
1101 OPEN CUR_CONTRACT_DETAILS(c1_rec.contract_line_id);
1102 FETCH CUR_CONTRACT_DETAILS
1103 INTO px_estimate_line_rec.contract_id, px_estimate_line_rec.contract_number;
1104 CLOSE CUR_CONTRACT_DETAILS;
1105
1106 debug('business_process_id[' || c1_rec.business_process_id || ']' ||
1107 'incident_id[' || c1_rec.incident_id || ']' || 'contract_id[' ||
1108 px_estimate_line_rec.contract_id || ']' || 'contract_number[' ||
1109 px_estimate_line_rec.contract_number || ']');
1110
1111 END LOOP;
1112
1113 --------------------------------------------------------------------
1114 -- Get the operating unit from the incident id.
1115 --------------------------------------------------------------------
1116 px_estimate_line_rec.organization_id := Csd_Process_Util.get_org_id(px_estimate_line_rec.incident_id);
1117 IF (px_estimate_line_rec.organization_id = -1) THEN
1118 debug('incident_id[' || px_estimate_line_rec.incident_id ||
1119 '] is invlaid');
1120 RAISE Fnd_Api.G_EXC_ERROR;
1121 END IF;
1122
1123 -- Get the billing type from the item.
1124 FOR c1_rec IN CUR_BILLING_TYPE(px_estimate_line_rec.inventory_item_id) LOOP
1125 l_billing_type := c1_rec.material_billable_flag;
1126 END LOOP;
1127
1128 -------------------------------------------------------------------
1129 -- Validate resource id if the billing_type = 'L' which is
1130 -- labor. Get the cost for the input reosurce id. If the resource
1131 -- id results in no record then it is an error condition.
1132 -------------------------------------------------------------------
1133 IF (l_billing_type = 'L') THEN
1134
1135 Csd_Cost_Analysis_Pvt.Get_ResItemCost(x_return_status => l_return_status,
1136 x_msg_count => l_msg_count,
1137 x_msg_data => l_msg_data,
1138 p_inventory_item_id => px_estimate_line_rec.inventory_item_id,
1139 p_organization_id => Cs_Std.GET_ITEM_VALDN_ORGZN_ID,
1140 p_bom_resource_id => null,
1141 p_charge_date => SYSDATE,
1142 p_currency_code => px_estimate_line_rec.currency_code,
1143 p_chg_line_uom_code => px_estimate_line_rec.unit_of_measure_code,
1144 x_item_cost => px_estimate_line_rec.item_cost);
1145
1146 -- changed the default to null instead of 0.
1147 -- also if the cost is 0 changed it to null
1148 IF (px_estimate_line_rec.item_cost = 0) THEN
1149 px_estimate_line_rec.item_cost := NULL;
1150 END IF;
1151
1152 ELSE
1153 ---------------------------------------------------------------------
1154 -- Billing type M is material. In the case of material, get the
1155 -- item cost from item costs table.
1156 ---------------------------------------------------------------------
1157 --px_estimate_line_rec.item_cost := 0;
1158 debug('item cost,before =[' || px_estimate_line_rec.item_cost || ']');
1159 FOR c1_rec IN CUR_MATERIAL_COST(px_estimate_line_rec.inventory_item_id) LOOP
1160 px_estimate_line_rec.item_cost := c1_rec.item_cost;
1161 END LOOP;
1162 IF (px_estimate_line_rec.item_cost = 0) THEN
1163 px_estimate_line_rec.item_cost := NULL;
1164 END IF;
1165 debug('item cost, after api call =[' || px_estimate_line_rec.item_cost || ']');
1166
1167 END IF;
1168
1169 ---------------------------------------------------------------------
1170 -- Get selling price if it is null
1171 ---------------------------------------------------------------------
1172 IF (px_estimate_line_rec.selling_price IS NULL) THEN
1173 l_pricing_rec := get_pricing_rec(px_estimate_line_rec);
1174 Csd_Process_Util.GET_CHARGE_SELLING_PRICE(p_inventory_item_id => px_estimate_line_rec.inventory_item_id,
1175
1176 p_price_list_header_id => px_estimate_line_rec.price_list_id,
1177 p_unit_of_measure_code => px_estimate_line_rec.unit_of_measure_code,
1178 p_currency_code => px_estimate_line_rec.currency_code,
1179 p_quantity_required => px_estimate_line_rec.estimate_quantity,
1180 p_account_id => l_account_id, /* bug#3875036 */
1181 p_org_id => px_estimate_line_rec.organization_id , -- Added for R12
1182 p_pricing_rec => l_pricing_rec,
1183 x_selling_price => px_estimate_line_rec.selling_price,
1184 x_return_status => l_return_status,
1185 x_msg_data => l_msg_data,
1186 x_msg_count => l_msg_count);
1187
1188 IF(l_return_status <> Fnd_Api.G_RET_STS_SUCCESS) THEN
1189 RAISE Fnd_Api.G_EXC_ERROR;
1190 END IF;
1191 END IF;
1192
1193 IF (px_estimate_line_rec.override_charge_flag <> 'Y') THEN
1194 IF (l_contract_line_id IS NULL) THEN
1195 px_estimate_line_rec.after_warranty_cost := px_estimate_line_rec.selling_price * px_estimate_line_rec.estimate_quantity;
1196 ELSE
1197 -----------------------------------------------------------------------
1198 -- Get the discounted price by applying the contract defaulted from the
1199 --- repair order
1200 -----------------------------------------------------------------------
1201 Csd_Charge_Line_Util.GET_DISCOUNTEDPRICE(p_api_version => 1.0,
1202 p_init_msg_list => Fnd_Api.G_TRUE,
1203 p_contract_line_id => l_contract_line_id,
1204 p_repair_type_id => l_repair_type_id,
1205 p_txn_billing_type_id => px_estimate_line_rec.txn_billing_Type_id,
1206 p_coverage_txn_grp_id => px_estimate_line_rec.coverage_txn_group_id,
1207 p_extended_price => px_estimate_line_rec.selling_price *
1208 px_estimate_line_rec.estimate_quantity,
1209 p_no_charge_flag => px_estimate_line_rec.no_Charge_flag,
1210 x_discounted_price => px_estimate_line_rec.after_warranty_cost,
1211 x_return_status => l_return_status,
1212 x_msg_count => l_msg_count,
1213 x_msg_data => l_msg_data);
1214
1215 IF (l_return_status <> Fnd_Api.G_RET_STS_SUCCESS) THEN
1216 Fnd_Message.set_name('CSD', 'CSD_EST_ESTIMATED_CHARGE_ERR');
1217 Fnd_Message.set_token('CONTRACT_NUMBER', px_estimate_line_rec.CONTRACT_NUMBER);
1218 Fnd_Msg_Pub.ADD ;
1219 RAISE Fnd_Api.G_EXC_ERROR;
1220 END IF;
1221 END IF; END IF;
1222
1223 IF (px_estimate_line_rec.no_Charge_flag = 'Y') THEN
1224 px_estimate_line_rec.after_warranty_cost := 0;
1225 END IF;
1226
1227 ----------------------------------------------------------------------------------
1228 -- Default the other fields in the estimate_line_rec
1229 ----------------------------------------------------------------------------------
1230 px_estimate_line_rec.est_line_source_type_code := 'MANUAL';
1231 px_estimate_line_rec.charge_line_type := 'ESTIMATE';
1232 px_estimate_line_rec.apply_contract_discount := 'N';
1233
1234 --------------------------------------------------------------------
1235 -- Validate billing type and derive txn_billing_Type from
1236 -- billing tpye and repair type_id
1237 --------------------------------------------------------------------
1238 IF (NOT VALIDATE_BILLING_TYPE(l_billing_Type)) THEN
1239 debug('Invalid billing_type[' || l_billing_Type || ']');
1240 RAISE Fnd_Api.G_EXC_ERROR;
1241 END IF;
1242 px_estimate_line_rec.txn_billing_type_id := -1;
1243 FOR c1_rec IN CUR_TXN_BILLING_TYPE(l_repair_type_id, px_estimate_line_rec.billing_category, l_billing_type) LOOP
1244 px_estimate_line_rec.txn_billing_type_id := c1_rec.txn_billing_type_id;
1245 END LOOP;
1246 IF (px_estimate_line_rec.txn_billing_type_id = -1) THEN
1247 debug('txn billing_type_id[' || px_estimate_line_rec.txn_billing_type_id || '] is invlaid'); Fnd_Message.SET_NAME('CSD', 'CSD_API_INV_TXN_BILLING_TYPE');
1248 Fnd_Msg_Pub.ADD;
1249 RAISE Fnd_Api.G_EXC_ERROR;
1250 END IF;
1251
1252 -- Get the reference number from
1253 -- csi table and populate the instance_id/customer_product_id
1254 if(px_estimate_line_rec.serial_number is not null and
1255 px_estimate_line_rec.inventory_item_id is not null) then
1256 FOR c2_rec IN CUR_ITEM_INSTANCE(px_estimate_line_rec.serial_number,
1257 px_estimate_line_rec.inventory_item_id) LOOP
1258 debug('instance id from serial number is[' || c2_rec.instance_id || ']');
1259 px_estimate_line_rec.instance_id := c2_rec.instance_id;
1260 px_estimate_line_rec.customer_product_id := c2_rec.instance_id;
1261 END LOOP;
1262 End If;
1263
1264
1265 END DEFAULT_EST_LINE_REC;
1266
1267 /*------------------------------------------------------------------------*/
1268 /* procedure name: VALIDATE_DEFAULTED_EST_LINE */
1269 /* DEscription: Validate the defaulted estimates header record */
1270 /* */
1271 /* Change History : Created 25th June2005 by Vijay */
1272 /*------------------------------------------------------------------------*/
1273 PROCEDURE VALIDATE_DEFAULTED_EST_LINE(p_estimate_line_rec IN Csd_Repair_Estimate_Pub.estimate_line_Rec,
1274 p_validation_level IN NUMBER) IS
1275
1276 -- cursor to get the item attributes.
1277 -- revision control = 'N' when revision control_Code <>2
1278 -- serial_control = 'Y' when the serial_control_Code <>1 and <>6
1279 -- 1==> not serrialized 6 ==> serialized at sales order issue.
1280 CURSOR CUR_ITEM_ATTRIB(p_item_id NUMBER) IS
1281 SELECT DECODE(revision_qty_Control_code, 2, 'Y', 'N') revision_control,
1282 DECODE(serial_number_control_Code, 1, 'N', '6', 'N', 'Y') serial_control,
1283 comms_nl_trackable_Flag ib_control,
1284 primary_uom_code,
1285 material_billable_flag
1286 FROM mtl_system_items_b
1287 WHERE inventory_item_id = p_item_id
1288 AND organization_id = Cs_Std.GET_ITEM_VALDN_ORGZN_ID;
1289
1290
1291 l_revision_control VARCHAR2(1);
1292 l_serial_control VARCHAR2(1);
1293 l_ib_control VARCHAR2(1);
1294 l_billing_Type VARCHAR2(1);
1295 l_uom_code varchar2(10);
1296
1297 BEGIN
1298
1299 --------------------------------------------------------------------
1300 -- Validate incident id status. Ensure that the SR status is not closed.
1301 --------------------------------------------------------------------
1302 IF (NOT VALIDATE_INCIDENT_ID(p_estimate_line_rec.incident_id)) THEN
1303 debug('Invalid incident id[' || p_estimate_line_rec.incident_id || ']');
1304 RAISE Fnd_Api.G_EXC_ERROR;
1305 END IF;
1306
1307 --------------------------------------------------------------------
1308 -- Get the item attributes and validate revision, serial number,
1309 -- and instance number and also get the primary uom if the uom
1310 -- in the input is null.
1311 -- this query gets the billing_type from item attributes.
1312 --------------------------------------------------------------------
1313 l_revision_Control := 'N';
1314 l_serial_control := 'N';
1315 l_ib_control := 'N';
1316 l_uom_code := NULL;
1317 FOR c1_rec IN CUR_ITEM_ATTRIB(p_estimate_line_rec.inventory_item_id) LOOP
1318 l_revision_Control := c1_rec.revision_Control;
1319 l_serial_control := c1_rec.serial_control;
1320 l_ib_control := c1_rec.ib_control;
1321 l_uom_code := c1_rec.primary_uom_code;
1322 l_billing_type := c1_rec.material_billable_flag;
1323 END LOOP;
1324
1325 debug('item[' || p_estimate_line_rec.inventory_item_id ||
1326 ']revision control[' || l_revision_control || ']' ||
1327 ']serial control[' || l_serial_control || ']');
1328
1329 /****
1330 IF (p_estimate_line_rec.unit_of_measure_code IS NULL OR
1331 p_estimate_line_rec.unit_of_measure_code = Fnd_Api.G_MISS_CHAR) THEN
1332 p_estimate_line_rec.unit_of_measure_code := l_uom_Code;
1333 END IF;
1334 ***********/
1335
1336 debug('serial number[' || p_estimate_line_rec.serial_number || ']');
1337 IF (l_revision_control = 'Y') THEN
1338 IF (p_estimate_line_rec.item_revision IS NOT NULL AND
1339 p_estimate_line_rec.item_revision <> Fnd_Api.G_MISS_CHAR AND
1340 NOT VALIDATE_REVISION(p_estimate_line_rec.item_revision,
1341 p_estimate_line_rec.inventory_item_id,
1342 Cs_Std.GET_ITEM_VALDN_ORGZN_ID)) THEN
1343 debug('Invalid revision[' || p_estimate_line_rec.item_revision || ']');
1344 RAISE Fnd_Api.G_EXC_ERROR;
1345 END IF;
1346 END IF;
1347
1348 IF (l_serial_control = 'Y') THEN
1349 IF (p_estimate_line_rec.serial_number IS NOT NULL AND
1350 p_estimate_line_rec.serial_number <> Fnd_Api.G_MISS_CHAR AND NOT
1351 VALIDATE_SERIAL_NUMBER(p_estimate_line_rec.serial_number,
1352 p_estimate_line_rec.inventory_item_id)) THEN
1353 debug('Invalid serial number[' || p_estimate_line_rec.serial_number || ']');
1354 RAISE Fnd_Api.G_EXC_ERROR;
1355 END IF;
1356 END IF;
1357
1358 END VALIDATE_DEFAULTED_EST_LINE;
1359
1360 /*------------------------------------------------------------------------*/
1361 /* procedure name: COPY_EST_HDR_REC */
1362 /* DEscription: Copy the input estimate record */
1363 /* */
1364 /* Change History : Created 25th June2005 by Vijay */
1365 /*------------------------------------------------------------------------*/
1366 --PROCEDURE COPY_EST_HDR_REC(
1367
1368 /*------------------------------------------------------------------------*/
1369 /* procedure name: get_pricing_rec */
1370 /* DEscription: Copy the pricing attributes into a separate rec */
1371 /* */
1372 /* Change History : Created 25th June2005 by Vijay */
1373 /*------------------------------------------------------------------------*/
1374 FUNCTION get_pricing_rec(p_estimate_line_rec IN Csd_Repair_Estimate_Pub.ESTIMATE_LINE_REC)
1375 RETURN Csd_Process_Util.PRICING_ATTR_REC IS
1376 l_pricing_rec Csd_Process_Util.PRICING_ATTR_REC;
1377 BEGIN
1378 l_pricing_rec.pricing_context := p_estimate_line_rec.pricing_context;
1379 l_pricing_rec.pricing_attribute1 := p_estimate_line_rec.pricing_attribute1;
1380 l_pricing_rec.pricing_attribute2 := p_estimate_line_rec.pricing_attribute2;
1381 l_pricing_rec.pricing_attribute3 := p_estimate_line_rec.pricing_attribute3;
1382 l_pricing_rec.pricing_attribute4 := p_estimate_line_rec.pricing_attribute4;
1383 l_pricing_rec.pricing_attribute5 := p_estimate_line_rec.pricing_attribute5;
1384 l_pricing_rec.pricing_attribute6 := p_estimate_line_rec.pricing_attribute6;
1385 l_pricing_rec.pricing_attribute7 := p_estimate_line_rec.pricing_attribute7;
1386 l_pricing_rec.pricing_attribute8 := p_estimate_line_rec.pricing_attribute8;
1387 l_pricing_rec.pricing_attribute9 := p_estimate_line_rec.pricing_attribute9;
1388 l_pricing_rec.pricing_attribute10 := p_estimate_line_rec.pricing_attribute10;
1389 l_pricing_rec.pricing_attribute11 := p_estimate_line_rec.pricing_attribute11;
1390 l_pricing_rec.pricing_attribute12 := p_estimate_line_rec.pricing_attribute12;
1391 l_pricing_rec.pricing_attribute13 := p_estimate_line_rec.pricing_attribute13;
1392 l_pricing_rec.pricing_attribute14 := p_estimate_line_rec.pricing_attribute14;
1393 l_pricing_rec.pricing_attribute15 := p_estimate_line_rec.pricing_attribute15;
1394 l_pricing_rec.pricing_attribute16 := p_estimate_line_rec.pricing_attribute16;
1395 l_pricing_rec.pricing_attribute17 := p_estimate_line_rec.pricing_attribute17;
1396 l_pricing_rec.pricing_attribute18 := p_estimate_line_rec.pricing_attribute18;
1397 l_pricing_rec.pricing_attribute19 := p_estimate_line_rec.pricing_attribute19;
1398 l_pricing_rec.pricing_attribute20 := p_estimate_line_rec.pricing_attribute20;
1399 l_pricing_rec.pricing_attribute21 := p_estimate_line_rec.pricing_attribute21;
1400 l_pricing_rec.pricing_attribute22 := p_estimate_line_rec.pricing_attribute22;
1401 l_pricing_rec.pricing_attribute23 := p_estimate_line_rec.pricing_attribute23;
1402 l_pricing_rec.pricing_attribute24 := p_estimate_line_rec.pricing_attribute24;
1403 l_pricing_rec.pricing_attribute25 := p_estimate_line_rec.pricing_attribute25;
1404 l_pricing_rec.pricing_attribute26 := p_estimate_line_rec.pricing_attribute26;
1405 l_pricing_rec.pricing_attribute27 := p_estimate_line_rec.pricing_attribute27;
1406 l_pricing_rec.pricing_attribute28 := p_estimate_line_rec.pricing_attribute28;
1407 l_pricing_rec.pricing_attribute29 := p_estimate_line_rec.pricing_attribute29;
1408 l_pricing_rec.pricing_attribute30 := p_estimate_line_rec.pricing_attribute30;
1409 l_pricing_rec.pricing_attribute31 := p_estimate_line_rec.pricing_attribute31;
1410 l_pricing_rec.pricing_attribute32 := p_estimate_line_rec.pricing_attribute32;
1411 l_pricing_rec.pricing_attribute33 := p_estimate_line_rec.pricing_attribute33;
1412 l_pricing_rec.pricing_attribute34 := p_estimate_line_rec.pricing_attribute34;
1413 l_pricing_rec.pricing_attribute35 := p_estimate_line_rec.pricing_attribute35;
1414 l_pricing_rec.pricing_attribute36 := p_estimate_line_rec.pricing_attribute36;
1415 l_pricing_rec.pricing_attribute37 := p_estimate_line_rec.pricing_attribute37;
1416 l_pricing_rec.pricing_attribute38 := p_estimate_line_rec.pricing_attribute38;
1417 l_pricing_rec.pricing_attribute39 := p_estimate_line_rec.pricing_attribute39;
1418 l_pricing_rec.pricing_attribute40 := p_estimate_line_rec.pricing_attribute40;
1419 l_pricing_rec.pricing_attribute41 := p_estimate_line_rec.pricing_attribute41;
1420 l_pricing_rec.pricing_attribute42 := p_estimate_line_rec.pricing_attribute42;
1421 l_pricing_rec.pricing_attribute43 := p_estimate_line_rec.pricing_attribute43;
1422 l_pricing_rec.pricing_attribute44 := p_estimate_line_rec.pricing_attribute44;
1423 l_pricing_rec.pricing_attribute45 := p_estimate_line_rec.pricing_attribute45;
1424 l_pricing_rec.pricing_attribute46 := p_estimate_line_rec.pricing_attribute46;
1425 l_pricing_rec.pricing_attribute47 := p_estimate_line_rec.pricing_attribute47;
1426 l_pricing_rec.pricing_attribute48 := p_estimate_line_rec.pricing_attribute48;
1427 l_pricing_rec.pricing_attribute49 := p_estimate_line_rec.pricing_attribute49;
1428 l_pricing_rec.pricing_attribute50 := p_estimate_line_rec.pricing_attribute50;
1429 l_pricing_rec.pricing_attribute51 := p_estimate_line_rec.pricing_attribute51;
1430 l_pricing_rec.pricing_attribute52 := p_estimate_line_rec.pricing_attribute52;
1431 l_pricing_rec.pricing_attribute53 := p_estimate_line_rec.pricing_attribute53;
1432 l_pricing_rec.pricing_attribute54 := p_estimate_line_rec.pricing_attribute54;
1433 l_pricing_rec.pricing_attribute55 := p_estimate_line_rec.pricing_attribute55;
1434 l_pricing_rec.pricing_attribute56 := p_estimate_line_rec.pricing_attribute56;
1435 l_pricing_rec.pricing_attribute57 := p_estimate_line_rec.pricing_attribute57;
1436 l_pricing_rec.pricing_attribute58 := p_estimate_line_rec.pricing_attribute58;
1437 l_pricing_rec.pricing_attribute59 := p_estimate_line_rec.pricing_attribute59;
1438 l_pricing_rec.pricing_attribute60 := p_estimate_line_rec.pricing_attribute60;
1439 l_pricing_rec.pricing_attribute61 := p_estimate_line_rec.pricing_attribute61;
1440 l_pricing_rec.pricing_attribute62 := p_estimate_line_rec.pricing_attribute62;
1441 l_pricing_rec.pricing_attribute63 := p_estimate_line_rec.pricing_attribute63;
1442 l_pricing_rec.pricing_attribute64 := p_estimate_line_rec.pricing_attribute64;
1443 l_pricing_rec.pricing_attribute65 := p_estimate_line_rec.pricing_attribute65;
1444 l_pricing_rec.pricing_attribute66 := p_estimate_line_rec.pricing_attribute66;
1445 l_pricing_rec.pricing_attribute67 := p_estimate_line_rec.pricing_attribute67;
1446 l_pricing_rec.pricing_attribute68 := p_estimate_line_rec.pricing_attribute68;
1447 l_pricing_rec.pricing_attribute69 := p_estimate_line_rec.pricing_attribute69;
1448 l_pricing_rec.pricing_attribute70 := p_estimate_line_rec.pricing_attribute70;
1449 l_pricing_rec.pricing_attribute71 := p_estimate_line_rec.pricing_attribute71;
1450 l_pricing_rec.pricing_attribute72 := p_estimate_line_rec.pricing_attribute72;
1451 l_pricing_rec.pricing_attribute73 := p_estimate_line_rec.pricing_attribute73;
1452 l_pricing_rec.pricing_attribute74 := p_estimate_line_rec.pricing_attribute74;
1453 l_pricing_rec.pricing_attribute75 := p_estimate_line_rec.pricing_attribute75;
1454 l_pricing_rec.pricing_attribute76 := p_estimate_line_rec.pricing_attribute76;
1455 l_pricing_rec.pricing_attribute77 := p_estimate_line_rec.pricing_attribute77;
1456 l_pricing_rec.pricing_attribute78 := p_estimate_line_rec.pricing_attribute78;
1457 l_pricing_rec.pricing_attribute79 := p_estimate_line_rec.pricing_attribute79;
1458 l_pricing_rec.pricing_attribute80 := p_estimate_line_rec.pricing_attribute80;
1459 l_pricing_rec.pricing_attribute81 := p_estimate_line_rec.pricing_attribute81;
1460 l_pricing_rec.pricing_attribute82 := p_estimate_line_rec.pricing_attribute82;
1461 l_pricing_rec.pricing_attribute83 := p_estimate_line_rec.pricing_attribute83;
1462 l_pricing_rec.pricing_attribute84 := p_estimate_line_rec.pricing_attribute84;
1463 l_pricing_rec.pricing_attribute85 := p_estimate_line_rec.pricing_attribute85;
1464 l_pricing_rec.pricing_attribute86 := p_estimate_line_rec.pricing_attribute86;
1465 l_pricing_rec.pricing_attribute87 := p_estimate_line_rec.pricing_attribute87;
1466 l_pricing_rec.pricing_attribute88 := p_estimate_line_rec.pricing_attribute88;
1467 l_pricing_rec.pricing_attribute89 := p_estimate_line_rec.pricing_attribute89;
1468 l_pricing_rec.pricing_attribute90 := p_estimate_line_rec.pricing_attribute90;
1469 l_pricing_rec.pricing_attribute91 := p_estimate_line_rec.pricing_attribute91;
1470 l_pricing_rec.pricing_attribute92 := p_estimate_line_rec.pricing_attribute92;
1471 l_pricing_rec.pricing_attribute93 := p_estimate_line_rec.pricing_attribute93;
1472 l_pricing_rec.pricing_attribute94 := p_estimate_line_rec.pricing_attribute94;
1473 l_pricing_rec.pricing_attribute95 := p_estimate_line_rec.pricing_attribute95;
1474 l_pricing_rec.pricing_attribute96 := p_estimate_line_rec.pricing_attribute96;
1475 l_pricing_rec.pricing_attribute97 := p_estimate_line_rec.pricing_attribute97;
1476 l_pricing_rec.pricing_attribute98 := p_estimate_line_rec.pricing_attribute98;
1477 l_pricing_rec.pricing_attribute99 := p_estimate_line_rec.pricing_attribute99;
1478 l_pricing_rec.pricing_attribute100 := p_estimate_line_rec.pricing_attribute100;
1479
1480 END;
1481
1482
1483 /*------------------------------------------------------------------------*/
1484 /* procedure name: COPY_TO_EST_PVT_LINE_REC */
1485 /* Description: Copy values from CSD_REPAIR_ESTIMATE_PUB.estimate_line_rec*/
1486 /* to CSD_REPAIR_ESTIMATE_PVT.repair_estimate_line_rec */
1487 /* */
1488 /* Change History : Created 05 Dec 2011 by yvchen: bug 12545399 */
1489 /*------------------------------------------------------------------------*/
1490 PROCEDURE COPY_TO_EST_PVT_LINE_REC(p_estimate_line_rec IN Csd_Repair_Estimate_Pub.estimate_line_Rec,
1491 x_est_pvt_line_rec IN OUT NOCOPY Csd_Repair_Estimate_Pvt.REPAIR_ESTIMATE_LINE_REC) IS
1492 BEGIN
1493 IF (p_estimate_line_rec.repair_estimate_line_id IS NOT NULL) then
1494 x_est_pvt_line_rec.repair_estimate_line_id := p_estimate_line_rec.repair_estimate_line_id ;
1495 END IF;
1496
1497 IF (p_estimate_line_rec.repair_estimate_id IS NOT NULL) then
1498 x_est_pvt_line_rec.repair_estimate_id := p_estimate_line_rec.repair_estimate_id ;
1499 END IF;
1500
1501 IF (p_estimate_line_rec.repair_line_id IS NOT NULL) then
1502 x_est_pvt_line_rec.repair_line_id := p_estimate_line_rec.repair_line_id ;
1503 END IF;
1504
1505 IF (p_estimate_line_rec.estimate_detail_id IS NOT NULL) then
1506 x_est_pvt_line_rec.estimate_detail_id := p_estimate_line_rec.estimate_detail_id ;
1507 END IF;
1508
1509 IF (p_estimate_line_rec.incident_id IS NOT NULL) then
1510 x_est_pvt_line_rec.incident_id := p_estimate_line_rec.incident_id ;
1511 END IF;
1512
1513 IF (p_estimate_line_rec.transaction_type_id IS NOT NULL) then
1514 x_est_pvt_line_rec.transaction_type_id := p_estimate_line_rec.transaction_type_id ;
1515 END IF;
1516
1517 IF (p_estimate_line_rec.business_process_id IS NOT NULL) then
1518 x_est_pvt_line_rec.business_process_id := p_estimate_line_rec.business_process_id ;
1519 END IF;
1520
1521 IF (p_estimate_line_rec.txn_billing_type_id IS NOT NULL) then
1522 x_est_pvt_line_rec.txn_billing_type_id := p_estimate_line_rec.txn_billing_type_id ;
1523 END IF;
1524
1525 IF (p_estimate_line_rec.original_source_id IS NOT NULL) then
1526 x_est_pvt_line_rec.original_source_id := p_estimate_line_rec.original_source_id ;
1527 END IF;
1528
1529 IF (p_estimate_line_rec.original_source_code IS NOT NULL) then
1530 x_est_pvt_line_rec.original_source_code := p_estimate_line_rec.original_source_code ;
1531 END IF;
1532
1533 IF (p_estimate_line_rec.source_id IS NOT NULL) then
1534 x_est_pvt_line_rec.source_id := p_estimate_line_rec.source_id ;
1535 END IF;
1536
1537 IF (p_estimate_line_rec.source_code IS NOT NULL) then
1538 x_est_pvt_line_rec.source_code := p_estimate_line_rec.source_code ;
1539 END IF;
1540
1541 IF (p_estimate_line_rec.line_type_id IS NOT NULL) then
1542 x_est_pvt_line_rec.line_type_id := p_estimate_line_rec.line_type_id ;
1543 END IF;
1544
1545 IF (p_estimate_line_rec.item_cost IS NOT NULL) then
1546 x_est_pvt_line_rec.item_cost := p_estimate_line_rec.item_cost ;
1547 END IF;
1548
1549 IF (p_estimate_line_rec.resource_id IS NOT NULL) then
1550 x_est_pvt_line_rec.resource_id := p_estimate_line_rec.resource_id ;
1551 END IF;
1552
1553 IF (p_estimate_line_rec.customer_product_id IS NOT NULL) then
1554 x_est_pvt_line_rec.customer_product_id := p_estimate_line_rec.customer_product_id ;
1555 END IF;
1556
1557 IF (p_estimate_line_rec.reference_number IS NOT NULL) then
1558 x_est_pvt_line_rec.reference_number := p_estimate_line_rec.reference_number ;
1559 END IF;
1560
1561 IF (p_estimate_line_rec.item_revision IS NOT NULL) then
1562 x_est_pvt_line_rec.item_revision := p_estimate_line_rec.item_revision ;
1563 END IF;
1564
1565 IF (p_estimate_line_rec.justification_notes IS NOT NULL) then
1566 x_est_pvt_line_rec.justification_notes := p_estimate_line_rec.justification_notes ;
1567 END IF;
1568
1569 IF (p_estimate_line_rec.estimate_status IS NOT NULL) then
1570 x_est_pvt_line_rec.estimate_status := p_estimate_line_rec.estimate_status ;
1571 END IF;
1572
1573 IF (p_estimate_line_rec.order_number IS NOT NULL) then
1574 x_est_pvt_line_rec.order_number := p_estimate_line_rec.order_number ;
1575 END IF;
1576
1577 IF (p_estimate_line_rec.purchase_order_num IS NOT NULL) then
1578 x_est_pvt_line_rec.purchase_order_num := p_estimate_line_rec.purchase_order_num ;
1579 END IF;
1580
1581 IF (p_estimate_line_rec.source_number IS NOT NULL) then
1582 x_est_pvt_line_rec.source_number := p_estimate_line_rec.source_number ;
1583 END IF;
1584
1585 IF (p_estimate_line_rec.status IS NOT NULL) then
1586 x_est_pvt_line_rec.status := p_estimate_line_rec.status ;
1587 END IF;
1588
1589 IF (p_estimate_line_rec.currency_code IS NOT NULL) then
1590 x_est_pvt_line_rec.currency_code := p_estimate_line_rec.currency_code ;
1591 END IF;
1592
1593 IF (p_estimate_line_rec.line_category_code IS NOT NULL) then
1594 x_est_pvt_line_rec.line_category_code := p_estimate_line_rec.line_category_code ;
1595 END IF;
1596
1597 IF (p_estimate_line_rec.unit_of_measure_code IS NOT NULL) then
1598 x_est_pvt_line_rec.unit_of_measure_code := p_estimate_line_rec.unit_of_measure_code ;
1599 END IF;
1600
1601 IF (p_estimate_line_rec.original_source_number IS NOT NULL) then
1602 x_est_pvt_line_rec.original_source_number := p_estimate_line_rec.original_source_number ;
1603 END IF;
1604
1605 IF (p_estimate_line_rec.add_to_order_flag IS NOT NULL) then
1606 x_est_pvt_line_rec.add_to_order_flag := p_estimate_line_rec.add_to_order_flag ;
1607 END IF;
1608
1609 IF (p_estimate_line_rec.order_header_id IS NOT NULL) then
1610 x_est_pvt_line_rec.order_header_id := p_estimate_line_rec.order_header_id ;
1611 END IF;
1612
1613 IF (p_estimate_line_rec.order_line_id IS NOT NULL) then
1614 x_est_pvt_line_rec.order_line_id := p_estimate_line_rec.order_line_id ;
1615 END IF;
1616
1617 IF (p_estimate_line_rec.inventory_item_id IS NOT NULL) then
1618 x_est_pvt_line_rec.inventory_item_id := p_estimate_line_rec.inventory_item_id ;
1619 END IF;
1620
1621 IF (p_estimate_line_rec.after_warranty_cost IS NOT NULL) then
1622 x_est_pvt_line_rec.after_warranty_cost := p_estimate_line_rec.after_warranty_cost ;
1623 END IF;
1624
1625 IF (p_estimate_line_rec.selling_price IS NOT NULL) then
1626 x_est_pvt_line_rec.selling_price := p_estimate_line_rec.selling_price ;
1627 END IF;
1628
1629 IF (p_estimate_line_rec.original_system_reference IS NOT NULL) then
1630 x_est_pvt_line_rec.original_system_reference := p_estimate_line_rec.original_system_reference ;
1631 END IF;
1632
1633 IF (p_estimate_line_rec.estimate_quantity IS NOT NULL) then
1634 x_est_pvt_line_rec.estimate_quantity := p_estimate_line_rec.estimate_quantity ;
1635 END IF;
1636
1637 IF (p_estimate_line_rec.serial_number IS NOT NULL) then
1638 x_est_pvt_line_rec.serial_number := p_estimate_line_rec.serial_number ;
1639 END IF;
1640
1641 IF (p_estimate_line_rec.lot_number IS NOT NULL) then
1642 x_est_pvt_line_rec.lot_number := p_estimate_line_rec.lot_number ;
1643 END IF;
1644
1645 IF (p_estimate_line_rec.instance_id IS NOT NULL) then
1646 x_est_pvt_line_rec.instance_id := p_estimate_line_rec.instance_id ;
1647 END IF;
1648
1649 IF (p_estimate_line_rec.instance_number IS NOT NULL) then
1650 x_est_pvt_line_rec.instance_number := p_estimate_line_rec.instance_number ;
1651 END IF;
1652
1653 IF (p_estimate_line_rec.price_list_id IS NOT NULL) then
1654 x_est_pvt_line_rec.price_list_id := p_estimate_line_rec.price_list_id ;
1655 END IF;
1656
1657 IF (p_estimate_line_rec.contract_id IS NOT NULL) then
1658 x_est_pvt_line_rec.contract_id := p_estimate_line_rec.contract_id ;
1659 END IF;
1660
1661 IF (p_estimate_line_rec.contract_number IS NOT NULL) then
1662 x_est_pvt_line_rec.contract_number := p_estimate_line_rec.contract_number ;
1663 END IF;
1664
1665 IF (p_estimate_line_rec.coverage_bill_rate_id IS NOT NULL) then
1666 x_est_pvt_line_rec.coverage_bill_rate_id := p_estimate_line_rec.coverage_bill_rate_id ;
1667 END IF;
1668
1669 IF (p_estimate_line_rec.sub_inventory IS NOT NULL) then
1670 x_est_pvt_line_rec.sub_inventory := p_estimate_line_rec.sub_inventory ;
1671 END IF;
1672
1673 IF (p_estimate_line_rec.organization_id IS NOT NULL) then
1674 x_est_pvt_line_rec.organization_id := p_estimate_line_rec.organization_id ;
1675 END IF;
1676
1677 IF (p_estimate_line_rec.invoice_to_org_id IS NOT NULL) then
1678 x_est_pvt_line_rec.invoice_to_org_id := p_estimate_line_rec.invoice_to_org_id ;
1679 END IF;
1680
1681 IF (p_estimate_line_rec.ship_to_org_id IS NOT NULL) then
1682 x_est_pvt_line_rec.ship_to_org_id := p_estimate_line_rec.ship_to_org_id ;
1683 END IF;
1684
1685 IF (p_estimate_line_rec.no_charge_flag IS NOT NULL) then
1686 x_est_pvt_line_rec.no_charge_flag := p_estimate_line_rec.no_charge_flag ;
1687 END IF;
1688
1689 IF (p_estimate_line_rec.override_charge_flag IS NOT NULL) then
1690 x_est_pvt_line_rec.override_charge_flag := p_estimate_line_rec.override_charge_flag ;
1691 END IF;
1692
1693 IF (p_estimate_line_rec.interface_to_om_flag IS NOT NULL) then
1694 x_est_pvt_line_rec.interface_to_om_flag := p_estimate_line_rec.interface_to_om_flag ;
1695 END IF;
1696
1697 IF (p_estimate_line_rec.return_reason IS NOT NULL) then
1698 x_est_pvt_line_rec.return_reason := p_estimate_line_rec.return_reason ;
1699 END IF;
1700
1701 IF (p_estimate_line_rec.return_by_date IS NOT NULL) then
1702 x_est_pvt_line_rec.return_by_date := p_estimate_line_rec.return_by_date ;
1703 END IF;
1704
1705 IF (p_estimate_line_rec.last_update_date IS NOT NULL) then
1706 x_est_pvt_line_rec.last_update_date := p_estimate_line_rec.last_update_date ;
1707 END IF;
1708
1709 IF (p_estimate_line_rec.creation_date IS NOT NULL) then
1710 x_est_pvt_line_rec.creation_date := p_estimate_line_rec.creation_date ;
1711 END IF;
1712
1713 IF (p_estimate_line_rec.last_updated_by IS NOT NULL) then
1714 x_est_pvt_line_rec.last_updated_by := p_estimate_line_rec.last_updated_by ;
1715 END IF;
1716
1717 IF (p_estimate_line_rec.created_by IS NOT NULL) then
1718 x_est_pvt_line_rec.created_by := p_estimate_line_rec.created_by ;
1719 END IF;
1720
1721 IF (p_estimate_line_rec.last_update_login IS NOT NULL) then
1722 x_est_pvt_line_rec.last_update_login := p_estimate_line_rec.last_update_login ;
1723 END IF;
1724
1725 IF (p_estimate_line_rec.object_version_number IS NOT NULL) then
1726 x_est_pvt_line_rec.object_version_number := p_estimate_line_rec.object_version_number ;
1727 END IF;
1728
1729 IF (p_estimate_line_rec.security_group_id IS NOT NULL) then
1730 x_est_pvt_line_rec.security_group_id := p_estimate_line_rec.security_group_id ;
1731 END IF;
1732
1733 IF (p_estimate_line_rec.charge_line_type IS NOT NULL) then
1734 x_est_pvt_line_rec.charge_line_type := p_estimate_line_rec.charge_line_type ;
1735 END IF;
1736
1737 IF (p_estimate_line_rec.apply_contract_discount IS NOT NULL) then
1738 x_est_pvt_line_rec.apply_contract_discount := p_estimate_line_rec.apply_contract_discount ;
1739 END IF;
1740
1741 IF (p_estimate_line_rec.coverage_id IS NOT NULL) then
1742 x_est_pvt_line_rec.coverage_id := p_estimate_line_rec.coverage_id ;
1743 END IF;
1744
1745 IF (p_estimate_line_rec.coverage_txn_group_id IS NOT NULL) then
1746 x_est_pvt_line_rec.coverage_txn_group_id := p_estimate_line_rec.coverage_txn_group_id ;
1747 END IF;
1748
1749 IF (p_estimate_line_rec.contract_discount_amount IS NOT NULL) then
1750 x_est_pvt_line_rec.contract_discount_amount := p_estimate_line_rec.contract_discount_amount ;
1751 END IF;
1752
1753 IF (p_estimate_line_rec.EST_LINE_SOURCE_TYPE_CODE IS NOT NULL) then
1754 x_est_pvt_line_rec.EST_LINE_SOURCE_TYPE_CODE := p_estimate_line_rec.EST_LINE_SOURCE_TYPE_CODE ;
1755 END IF;
1756
1757 IF (p_estimate_line_rec.EST_LINE_SOURCE_ID1 IS NOT NULL) then
1758 x_est_pvt_line_rec.EST_LINE_SOURCE_ID1 := p_estimate_line_rec.EST_LINE_SOURCE_ID1 ;
1759 END IF;
1760
1761 IF (p_estimate_line_rec.EST_LINE_SOURCE_ID2 IS NOT NULL) then
1762 x_est_pvt_line_rec.EST_LINE_SOURCE_ID2 := p_estimate_line_rec.EST_LINE_SOURCE_ID2 ;
1763 END IF;
1764
1765 IF (p_estimate_line_rec.RO_SERVICE_CODE_ID IS NOT NULL) then
1766 x_est_pvt_line_rec.RO_SERVICE_CODE_ID := p_estimate_line_rec.RO_SERVICE_CODE_ID ;
1767 END IF;
1768
1769 IF (p_estimate_line_rec.rate_type_code IS NOT NULL) then
1770 x_est_pvt_line_rec.rate_type_code := p_estimate_line_rec.rate_type_code ;
1771 END IF;
1772
1773 IF (p_estimate_line_rec.contract_line_id IS NOT NULL) then
1774 x_est_pvt_line_rec.contract_line_id := p_estimate_line_rec.rate_type_code ;
1775 END IF;
1776
1777 IF (p_estimate_line_rec.context IS NOT NULL) then
1778 x_est_pvt_line_rec.context := p_estimate_line_rec.context ;
1779 END IF;
1780
1781 IF (p_estimate_line_rec.attribute1 IS NOT NULL) then
1782 x_est_pvt_line_rec.attribute1 := p_estimate_line_rec.attribute1 ;
1783 END IF;
1784
1785 IF (p_estimate_line_rec.attribute2 IS NOT NULL) then
1786 x_est_pvt_line_rec.attribute2 := p_estimate_line_rec.attribute2 ;
1787 END IF;
1788
1789 IF (p_estimate_line_rec.attribute3 IS NOT NULL) then
1790 x_est_pvt_line_rec.attribute3 := p_estimate_line_rec.attribute3 ;
1791 END IF;
1792
1793 IF (p_estimate_line_rec.attribute4 IS NOT NULL) then
1794 x_est_pvt_line_rec.attribute4 := p_estimate_line_rec.attribute4 ;
1795 END IF;
1796
1797 IF (p_estimate_line_rec.attribute5 IS NOT NULL) then
1798 x_est_pvt_line_rec.attribute5 := p_estimate_line_rec.attribute5 ;
1799 END IF;
1800
1801 IF (p_estimate_line_rec.attribute6 IS NOT NULL) then
1802 x_est_pvt_line_rec.attribute6 := p_estimate_line_rec.attribute6 ;
1803 END IF;
1804
1805 IF (p_estimate_line_rec.attribute7 IS NOT NULL) then
1806 x_est_pvt_line_rec.attribute7 := p_estimate_line_rec.attribute7 ;
1807 END IF;
1808
1809 IF (p_estimate_line_rec.attribute8 IS NOT NULL) then
1810 x_est_pvt_line_rec.attribute8 := p_estimate_line_rec.attribute8 ;
1811 END IF;
1812
1813 IF (p_estimate_line_rec.attribute9 IS NOT NULL) then
1814 x_est_pvt_line_rec.attribute9 := p_estimate_line_rec.attribute9 ;
1815 END IF;
1816
1817 IF (p_estimate_line_rec.attribute10 IS NOT NULL) then
1818 x_est_pvt_line_rec.attribute10 := p_estimate_line_rec.attribute10 ;
1819 END IF;
1820
1821 IF (p_estimate_line_rec.attribute11 IS NOT NULL) then
1822 x_est_pvt_line_rec.attribute11 := p_estimate_line_rec.attribute11 ;
1823 END IF;
1824
1825 IF (p_estimate_line_rec.attribute12 IS NOT NULL) then
1826 x_est_pvt_line_rec.attribute12 := p_estimate_line_rec.attribute12 ;
1827 END IF;
1828
1829 IF (p_estimate_line_rec.attribute13 IS NOT NULL) then
1830 x_est_pvt_line_rec.attribute13 := p_estimate_line_rec.attribute13 ;
1831 END IF;
1832
1833 IF (p_estimate_line_rec.attribute14 IS NOT NULL) then
1834 x_est_pvt_line_rec.attribute14 := p_estimate_line_rec.attribute14 ;
1835 END IF;
1836
1837 IF (p_estimate_line_rec.attribute15 IS NOT NULL) then
1838 x_est_pvt_line_rec.attribute15 := p_estimate_line_rec.attribute15 ;
1839 END IF;
1840
1841 IF (p_estimate_line_rec.pricing_context IS NOT NULL) then
1842 x_est_pvt_line_rec.pricing_context := p_estimate_line_rec.pricing_context ;
1843 END IF;
1844
1845 IF (p_estimate_line_rec.pricing_attribute1 IS NOT NULL) then
1846 x_est_pvt_line_rec.pricing_attribute1 := p_estimate_line_rec.pricing_attribute1 ;
1847 END IF;
1848
1849 IF (p_estimate_line_rec.pricing_attribute2 IS NOT NULL) then
1850 x_est_pvt_line_rec.pricing_attribute2 := p_estimate_line_rec.pricing_attribute2 ;
1851 END IF;
1852
1853 IF (p_estimate_line_rec.pricing_attribute3 IS NOT NULL) then
1854 x_est_pvt_line_rec.pricing_attribute3 := p_estimate_line_rec.pricing_attribute3 ;
1855 END IF;
1856
1857 IF (p_estimate_line_rec.pricing_attribute4 IS NOT NULL) then
1858 x_est_pvt_line_rec.pricing_attribute4 := p_estimate_line_rec.pricing_attribute4 ;
1859 END IF;
1860
1861 IF (p_estimate_line_rec.pricing_attribute5 IS NOT NULL) then
1862 x_est_pvt_line_rec.pricing_attribute5 := p_estimate_line_rec.pricing_attribute5 ;
1863 END IF;
1864
1865 IF (p_estimate_line_rec.pricing_attribute6 IS NOT NULL) then
1866 x_est_pvt_line_rec.pricing_attribute6 := p_estimate_line_rec.pricing_attribute6 ;
1867 END IF;
1868
1869 IF (p_estimate_line_rec.pricing_attribute7 IS NOT NULL) then
1870 x_est_pvt_line_rec.pricing_attribute7 := p_estimate_line_rec.pricing_attribute7 ;
1871 END IF;
1872
1873 IF (p_estimate_line_rec.pricing_attribute8 IS NOT NULL) then
1874 x_est_pvt_line_rec.pricing_attribute8 := p_estimate_line_rec.pricing_attribute8 ;
1875 END IF;
1876
1877 IF (p_estimate_line_rec.pricing_attribute9 IS NOT NULL) then
1878 x_est_pvt_line_rec.pricing_attribute9 := p_estimate_line_rec.pricing_attribute9 ;
1879 END IF;
1880
1881 IF (p_estimate_line_rec.pricing_attribute10 IS NOT NULL) then
1882 x_est_pvt_line_rec.pricing_attribute10 := p_estimate_line_rec.pricing_attribute10 ;
1883 END IF;
1884
1885 IF (p_estimate_line_rec.pricing_attribute11 IS NOT NULL) then
1886 x_est_pvt_line_rec.pricing_attribute11 := p_estimate_line_rec.pricing_attribute11 ;
1887 END IF;
1888
1889 IF (p_estimate_line_rec.pricing_attribute12 IS NOT NULL) then
1890 x_est_pvt_line_rec.pricing_attribute12 := p_estimate_line_rec.pricing_attribute12 ;
1891 END IF;
1892
1893 IF (p_estimate_line_rec.pricing_attribute13 IS NOT NULL) then
1894 x_est_pvt_line_rec.pricing_attribute13 := p_estimate_line_rec.pricing_attribute13 ;
1895 END IF;
1896
1897 IF (p_estimate_line_rec.pricing_attribute14 IS NOT NULL) then
1898 x_est_pvt_line_rec.pricing_attribute14 := p_estimate_line_rec.pricing_attribute14 ;
1899 END IF;
1900
1901 IF (p_estimate_line_rec.pricing_attribute15 IS NOT NULL) then
1902 x_est_pvt_line_rec.pricing_attribute15 := p_estimate_line_rec.pricing_attribute15 ;
1903 END IF;
1904
1905 IF (p_estimate_line_rec.pricing_attribute16 IS NOT NULL) then
1906 x_est_pvt_line_rec.pricing_attribute16 := p_estimate_line_rec.pricing_attribute16 ;
1907 END IF;
1908
1909 IF (p_estimate_line_rec.pricing_attribute17 IS NOT NULL) then
1910 x_est_pvt_line_rec.pricing_attribute17 := p_estimate_line_rec.pricing_attribute17 ;
1911 END IF;
1912
1913 IF (p_estimate_line_rec.pricing_attribute18 IS NOT NULL) then
1914 x_est_pvt_line_rec.pricing_attribute18 := p_estimate_line_rec.pricing_attribute18 ;
1915 END IF;
1916
1917 IF (p_estimate_line_rec.pricing_attribute19 IS NOT NULL) then
1918 x_est_pvt_line_rec.pricing_attribute19 := p_estimate_line_rec.pricing_attribute19 ;
1919 END IF;
1920
1921 IF (p_estimate_line_rec.pricing_attribute20 IS NOT NULL) then
1922 x_est_pvt_line_rec.pricing_attribute20 := p_estimate_line_rec.pricing_attribute20 ;
1923 END IF;
1924
1925 IF (p_estimate_line_rec.pricing_attribute21 IS NOT NULL) then
1926 x_est_pvt_line_rec.pricing_attribute21 := p_estimate_line_rec.pricing_attribute21 ;
1927 END IF;
1928
1929 IF (p_estimate_line_rec.pricing_attribute22 IS NOT NULL) then
1930 x_est_pvt_line_rec.pricing_attribute22 := p_estimate_line_rec.pricing_attribute22 ;
1931 END IF;
1932
1933 IF (p_estimate_line_rec.pricing_attribute23 IS NOT NULL) then
1934 x_est_pvt_line_rec.pricing_attribute23 := p_estimate_line_rec.pricing_attribute23 ;
1935 END IF;
1936
1937 IF (p_estimate_line_rec.pricing_attribute24 IS NOT NULL) then
1938 x_est_pvt_line_rec.pricing_attribute24 := p_estimate_line_rec.pricing_attribute24 ;
1939 END IF;
1940
1941 IF (p_estimate_line_rec.pricing_attribute25 IS NOT NULL) then
1942 x_est_pvt_line_rec.pricing_attribute25 := p_estimate_line_rec.pricing_attribute25 ;
1943 END IF;
1944
1945 IF (p_estimate_line_rec.pricing_attribute26 IS NOT NULL) then
1946 x_est_pvt_line_rec.pricing_attribute26 := p_estimate_line_rec.pricing_attribute26 ;
1947 END IF;
1948
1949 IF (p_estimate_line_rec.pricing_attribute27 IS NOT NULL) then
1950 x_est_pvt_line_rec.pricing_attribute27 := p_estimate_line_rec.pricing_attribute27 ;
1951 END IF;
1952
1953 IF (p_estimate_line_rec.pricing_attribute28 IS NOT NULL) then
1954 x_est_pvt_line_rec.pricing_attribute28 := p_estimate_line_rec.pricing_attribute28 ;
1955 END IF;
1956
1957 IF (p_estimate_line_rec.pricing_attribute29 IS NOT NULL) then
1958 x_est_pvt_line_rec.pricing_attribute29 := p_estimate_line_rec.pricing_attribute29 ;
1959 END IF;
1960
1961 IF (p_estimate_line_rec.pricing_attribute30 IS NOT NULL) then
1962 x_est_pvt_line_rec.pricing_attribute30 := p_estimate_line_rec.pricing_attribute30 ;
1963 END IF;
1964
1965 IF (p_estimate_line_rec.pricing_attribute31 IS NOT NULL) then
1966 x_est_pvt_line_rec.pricing_attribute31 := p_estimate_line_rec.pricing_attribute31 ;
1967 END IF;
1968
1969 IF (p_estimate_line_rec.pricing_attribute32 IS NOT NULL) then
1970 x_est_pvt_line_rec.pricing_attribute32 := p_estimate_line_rec.pricing_attribute32 ;
1971 END IF;
1972
1973 IF (p_estimate_line_rec.pricing_attribute33 IS NOT NULL) then
1974 x_est_pvt_line_rec.pricing_attribute33 := p_estimate_line_rec.pricing_attribute33 ;
1975 END IF;
1976
1977 IF (p_estimate_line_rec.pricing_attribute34 IS NOT NULL) then
1978 x_est_pvt_line_rec.pricing_attribute34 := p_estimate_line_rec.pricing_attribute34 ;
1979 END IF;
1980
1981 IF (p_estimate_line_rec.pricing_attribute35 IS NOT NULL) then
1982 x_est_pvt_line_rec.pricing_attribute35 := p_estimate_line_rec.pricing_attribute35 ;
1983 END IF;
1984
1985 IF (p_estimate_line_rec.pricing_attribute36 IS NOT NULL) then
1986 x_est_pvt_line_rec.pricing_attribute36 := p_estimate_line_rec.pricing_attribute36 ;
1987 END IF;
1988
1989 IF (p_estimate_line_rec.pricing_attribute37 IS NOT NULL) then
1990 x_est_pvt_line_rec.pricing_attribute37 := p_estimate_line_rec.pricing_attribute37 ;
1991 END IF;
1992
1993 IF (p_estimate_line_rec.pricing_attribute38 IS NOT NULL) then
1994 x_est_pvt_line_rec.pricing_attribute38 := p_estimate_line_rec.pricing_attribute38 ;
1995 END IF;
1996
1997 IF (p_estimate_line_rec.pricing_attribute39 IS NOT NULL) then
1998 x_est_pvt_line_rec.pricing_attribute39 := p_estimate_line_rec.pricing_attribute39 ;
1999 END IF;
2000
2001 IF (p_estimate_line_rec.pricing_attribute40 IS NOT NULL) then
2002 x_est_pvt_line_rec.pricing_attribute40 := p_estimate_line_rec.pricing_attribute40 ;
2003 END IF;
2004
2005 IF (p_estimate_line_rec.pricing_attribute41 IS NOT NULL) then
2006 x_est_pvt_line_rec.pricing_attribute41 := p_estimate_line_rec.pricing_attribute41 ;
2007 END IF;
2008
2009 IF (p_estimate_line_rec.pricing_attribute42 IS NOT NULL) then
2010 x_est_pvt_line_rec.pricing_attribute42 := p_estimate_line_rec.pricing_attribute42 ;
2011 END IF;
2012
2013 IF (p_estimate_line_rec.pricing_attribute43 IS NOT NULL) then
2014 x_est_pvt_line_rec.pricing_attribute43 := p_estimate_line_rec.pricing_attribute43 ;
2015 END IF;
2016
2017 IF (p_estimate_line_rec.pricing_attribute44 IS NOT NULL) then
2018 x_est_pvt_line_rec.pricing_attribute44 := p_estimate_line_rec.pricing_attribute44 ;
2019 END IF;
2020
2021 IF (p_estimate_line_rec.pricing_attribute45 IS NOT NULL) then
2022 x_est_pvt_line_rec.pricing_attribute45 := p_estimate_line_rec.pricing_attribute45 ;
2023 END IF;
2024
2025 IF (p_estimate_line_rec.pricing_attribute46 IS NOT NULL) then
2026 x_est_pvt_line_rec.pricing_attribute46 := p_estimate_line_rec.pricing_attribute46 ;
2027 END IF;
2028
2029 IF (p_estimate_line_rec.pricing_attribute47 IS NOT NULL) then
2030 x_est_pvt_line_rec.pricing_attribute47 := p_estimate_line_rec.pricing_attribute47 ;
2031 END IF;
2032
2033 IF (p_estimate_line_rec.pricing_attribute48 IS NOT NULL) then
2034 x_est_pvt_line_rec.pricing_attribute48 := p_estimate_line_rec.pricing_attribute48 ;
2035 END IF;
2036
2037 IF (p_estimate_line_rec.pricing_attribute49 IS NOT NULL) then
2038 x_est_pvt_line_rec.pricing_attribute49 := p_estimate_line_rec.pricing_attribute49 ;
2039 END IF;
2040
2041 IF (p_estimate_line_rec.pricing_attribute50 IS NOT NULL) then
2042 x_est_pvt_line_rec.pricing_attribute50 := p_estimate_line_rec.pricing_attribute50 ;
2043 END IF;
2044
2045 IF (p_estimate_line_rec.pricing_attribute51 IS NOT NULL) then
2046 x_est_pvt_line_rec.pricing_attribute51 := p_estimate_line_rec.pricing_attribute51 ;
2047 END IF;
2048
2049 IF (p_estimate_line_rec.pricing_attribute52 IS NOT NULL) then
2050 x_est_pvt_line_rec.pricing_attribute52 := p_estimate_line_rec.pricing_attribute52 ;
2051 END IF;
2052
2053 IF (p_estimate_line_rec.pricing_attribute53 IS NOT NULL) then
2054 x_est_pvt_line_rec.pricing_attribute53 := p_estimate_line_rec.pricing_attribute53 ;
2055 END IF;
2056
2057 IF (p_estimate_line_rec.pricing_attribute54 IS NOT NULL) then
2058 x_est_pvt_line_rec.pricing_attribute54 := p_estimate_line_rec.pricing_attribute54 ;
2059 END IF;
2060
2061 IF (p_estimate_line_rec.pricing_attribute55 IS NOT NULL) then
2062 x_est_pvt_line_rec.pricing_attribute55 := p_estimate_line_rec.pricing_attribute55 ;
2063 END IF;
2064
2065 IF (p_estimate_line_rec.pricing_attribute56 IS NOT NULL) then
2066 x_est_pvt_line_rec.pricing_attribute56 := p_estimate_line_rec.pricing_attribute56 ;
2067 END IF;
2068
2069 IF (p_estimate_line_rec.pricing_attribute57 IS NOT NULL) then
2070 x_est_pvt_line_rec.pricing_attribute57 := p_estimate_line_rec.pricing_attribute57 ;
2071 END IF;
2072
2073 IF (p_estimate_line_rec.pricing_attribute58 IS NOT NULL) then
2074 x_est_pvt_line_rec.pricing_attribute58 := p_estimate_line_rec.pricing_attribute58 ;
2075 END IF;
2076
2077 IF (p_estimate_line_rec.pricing_attribute59 IS NOT NULL) then
2078 x_est_pvt_line_rec.pricing_attribute59 := p_estimate_line_rec.pricing_attribute59 ;
2079 END IF;
2080
2081 IF (p_estimate_line_rec.pricing_attribute60 IS NOT NULL) then
2082 x_est_pvt_line_rec.pricing_attribute60 := p_estimate_line_rec.pricing_attribute60 ;
2083 END IF;
2084
2085 IF (p_estimate_line_rec.pricing_attribute61 IS NOT NULL) then
2086 x_est_pvt_line_rec.pricing_attribute61 := p_estimate_line_rec.pricing_attribute61 ;
2087 END IF;
2088
2089 IF (p_estimate_line_rec.pricing_attribute62 IS NOT NULL) then
2090 x_est_pvt_line_rec.pricing_attribute62 := p_estimate_line_rec.pricing_attribute62 ;
2091 END IF;
2092
2093 IF (p_estimate_line_rec.pricing_attribute63 IS NOT NULL) then
2094 x_est_pvt_line_rec.pricing_attribute63 := p_estimate_line_rec.pricing_attribute63 ;
2095 END IF;
2096
2097 IF (p_estimate_line_rec.pricing_attribute64 IS NOT NULL) then
2098 x_est_pvt_line_rec.pricing_attribute64 := p_estimate_line_rec.pricing_attribute64 ;
2099 END IF;
2100
2101 IF (p_estimate_line_rec.pricing_attribute65 IS NOT NULL) then
2102 x_est_pvt_line_rec.pricing_attribute65 := p_estimate_line_rec.pricing_attribute65 ;
2103 END IF;
2104
2105 IF (p_estimate_line_rec.pricing_attribute66 IS NOT NULL) then
2106 x_est_pvt_line_rec.pricing_attribute66 := p_estimate_line_rec.pricing_attribute66 ;
2107 END IF;
2108
2109 IF (p_estimate_line_rec.pricing_attribute67 IS NOT NULL) then
2110 x_est_pvt_line_rec.pricing_attribute67 := p_estimate_line_rec.pricing_attribute67 ;
2111 END IF;
2112
2113 IF (p_estimate_line_rec.pricing_attribute68 IS NOT NULL) then
2114 x_est_pvt_line_rec.pricing_attribute68 := p_estimate_line_rec.pricing_attribute68 ;
2115 END IF;
2116
2117 IF (p_estimate_line_rec.pricing_attribute69 IS NOT NULL) then
2118 x_est_pvt_line_rec.pricing_attribute69 := p_estimate_line_rec.pricing_attribute69 ;
2119 END IF;
2120
2121 IF (p_estimate_line_rec.pricing_attribute70 IS NOT NULL) then
2122 x_est_pvt_line_rec.pricing_attribute70 := p_estimate_line_rec.pricing_attribute70 ;
2123 END IF;
2124
2125 IF (p_estimate_line_rec.pricing_attribute71 IS NOT NULL) then
2126 x_est_pvt_line_rec.pricing_attribute71 := p_estimate_line_rec.pricing_attribute71 ;
2127 END IF;
2128
2129 IF (p_estimate_line_rec.pricing_attribute72 IS NOT NULL) then
2130 x_est_pvt_line_rec.pricing_attribute72 := p_estimate_line_rec.pricing_attribute72 ;
2131 END IF;
2132
2133 IF (p_estimate_line_rec.pricing_attribute73 IS NOT NULL) then
2134 x_est_pvt_line_rec.pricing_attribute73 := p_estimate_line_rec.pricing_attribute73 ;
2135 END IF;
2136
2137 IF (p_estimate_line_rec.pricing_attribute74 IS NOT NULL) then
2138 x_est_pvt_line_rec.pricing_attribute74 := p_estimate_line_rec.pricing_attribute74 ;
2139 END IF;
2140
2141 IF (p_estimate_line_rec.pricing_attribute75 IS NOT NULL) then
2142 x_est_pvt_line_rec.pricing_attribute75 := p_estimate_line_rec.pricing_attribute75 ;
2143 END IF;
2144
2145 IF (p_estimate_line_rec.pricing_attribute76 IS NOT NULL) then
2146 x_est_pvt_line_rec.pricing_attribute76 := p_estimate_line_rec.pricing_attribute76 ;
2147 END IF;
2148
2149 IF (p_estimate_line_rec.pricing_attribute77 IS NOT NULL) then
2150 x_est_pvt_line_rec.pricing_attribute77 := p_estimate_line_rec.pricing_attribute77 ;
2151 END IF;
2152
2153 IF (p_estimate_line_rec.pricing_attribute78 IS NOT NULL) then
2154 x_est_pvt_line_rec.pricing_attribute78 := p_estimate_line_rec.pricing_attribute78 ;
2155 END IF;
2156
2157 IF (p_estimate_line_rec.pricing_attribute79 IS NOT NULL) then
2158 x_est_pvt_line_rec.pricing_attribute79 := p_estimate_line_rec.pricing_attribute79 ;
2159 END IF;
2160
2161 IF (p_estimate_line_rec.pricing_attribute80 IS NOT NULL) then
2162 x_est_pvt_line_rec.pricing_attribute80 := p_estimate_line_rec.pricing_attribute80 ;
2163 END IF;
2164
2165 IF (p_estimate_line_rec.pricing_attribute81 IS NOT NULL) then
2166 x_est_pvt_line_rec.pricing_attribute81 := p_estimate_line_rec.pricing_attribute81 ;
2167 END IF;
2168
2169 IF (p_estimate_line_rec.pricing_attribute82 IS NOT NULL) then
2170 x_est_pvt_line_rec.pricing_attribute82 := p_estimate_line_rec.pricing_attribute82 ;
2171 END IF;
2172
2173 IF (p_estimate_line_rec.pricing_attribute83 IS NOT NULL) then
2174 x_est_pvt_line_rec.pricing_attribute83 := p_estimate_line_rec.pricing_attribute83 ;
2175 END IF;
2176
2177 IF (p_estimate_line_rec.pricing_attribute84 IS NOT NULL) then
2178 x_est_pvt_line_rec.pricing_attribute84 := p_estimate_line_rec.pricing_attribute84 ;
2179 END IF;
2180
2181 IF (p_estimate_line_rec.pricing_attribute85 IS NOT NULL) then
2182 x_est_pvt_line_rec.pricing_attribute85 := p_estimate_line_rec.pricing_attribute85 ;
2183 END IF;
2184
2185 IF (p_estimate_line_rec.pricing_attribute86 IS NOT NULL) then
2186 x_est_pvt_line_rec.pricing_attribute86 := p_estimate_line_rec.pricing_attribute86 ;
2187 END IF;
2188
2189 IF (p_estimate_line_rec.pricing_attribute87 IS NOT NULL) then
2190 x_est_pvt_line_rec.pricing_attribute87 := p_estimate_line_rec.pricing_attribute87 ;
2191 END IF;
2192
2193 IF (p_estimate_line_rec.pricing_attribute88 IS NOT NULL) then
2194 x_est_pvt_line_rec.pricing_attribute88 := p_estimate_line_rec.pricing_attribute88 ;
2195 END IF;
2196
2197 IF (p_estimate_line_rec.pricing_attribute89 IS NOT NULL) then
2198 x_est_pvt_line_rec.pricing_attribute89 := p_estimate_line_rec.pricing_attribute89 ;
2199 END IF;
2200
2201 IF (p_estimate_line_rec.pricing_attribute90 IS NOT NULL) then
2202 x_est_pvt_line_rec.pricing_attribute90 := p_estimate_line_rec.pricing_attribute90 ;
2203 END IF;
2204
2205 IF (p_estimate_line_rec.pricing_attribute91 IS NOT NULL) then
2206 x_est_pvt_line_rec.pricing_attribute91 := p_estimate_line_rec.pricing_attribute91 ;
2207 END IF;
2208
2209 IF (p_estimate_line_rec.pricing_attribute92 IS NOT NULL) then
2210 x_est_pvt_line_rec.pricing_attribute92 := p_estimate_line_rec.pricing_attribute92 ;
2211 END IF;
2212
2213 IF (p_estimate_line_rec.pricing_attribute93 IS NOT NULL) then
2214 x_est_pvt_line_rec.pricing_attribute93 := p_estimate_line_rec.pricing_attribute93 ;
2215 END IF;
2216
2217 IF (p_estimate_line_rec.pricing_attribute94 IS NOT NULL) then
2218 x_est_pvt_line_rec.pricing_attribute94 := p_estimate_line_rec.pricing_attribute94 ;
2219 END IF;
2220
2221 IF (p_estimate_line_rec.pricing_attribute95 IS NOT NULL) then
2222 x_est_pvt_line_rec.pricing_attribute95 := p_estimate_line_rec.pricing_attribute95 ;
2223 END IF;
2224
2225 IF (p_estimate_line_rec.pricing_attribute96 IS NOT NULL) then
2226 x_est_pvt_line_rec.pricing_attribute96 := p_estimate_line_rec.pricing_attribute96 ;
2227 END IF;
2228
2229 IF (p_estimate_line_rec.pricing_attribute97 IS NOT NULL) then
2230 x_est_pvt_line_rec.pricing_attribute97 := p_estimate_line_rec.pricing_attribute97 ;
2231 END IF;
2232
2233 IF (p_estimate_line_rec.pricing_attribute98 IS NOT NULL) then
2234 x_est_pvt_line_rec.pricing_attribute98 := p_estimate_line_rec.pricing_attribute98 ;
2235 END IF;
2236
2237 IF (p_estimate_line_rec.pricing_attribute99 IS NOT NULL) then
2238 x_est_pvt_line_rec.pricing_attribute99 := p_estimate_line_rec.pricing_attribute99 ;
2239 END IF;
2240
2241 IF (p_estimate_line_rec.pricing_attribute100 IS NOT NULL) then
2242 x_est_pvt_line_rec.pricing_attribute100 := p_estimate_line_rec.pricing_attribute100 ;
2243 END IF;
2244
2245 END COPY_TO_EST_PVT_LINE_REC;
2246
2247
2248 END Csd_Estimate_Utils_Pvt;