DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_QP_PKG

Source


1 PACKAGE BODY oks_qp_pkg AS
2 /* $Header: OKSRAQPB.pls 120.12.12000000.2 2007/05/11 20:48:38 skekkar ship $ */
3  ------------------------------------------------------------------------------
4   -- GLOBAL CONSTANTS
5   ------------------------------------------------------------------------------
6    g_module                       CONSTANT VARCHAR2 (250)
7                                          := 'oks.plsql.pricing.' ||
8                                             g_pkg_name ||
9                                             '.';
10 
11    FUNCTION check_hdr_discount (
12       p_chr_id                        IN       NUMBER
13    )
14       RETURN BOOLEAN
15    IS
16       l_api_name                     CONSTANT VARCHAR2 (30)
17                                                       := 'Check_hdr_discount';
18       l_found                                 NUMBER;
19    BEGIN
20       -- start debug log
21       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
22       THEN
23          fnd_log.STRING (fnd_log.level_procedure,
24                          g_module ||
25                          l_api_name,
26                          '100: Entered ' ||
27                          g_pkg_name ||
28                          '.' ||
29                          l_api_name
30                         );
31       END IF;
32 
33       SELECT COUNT (1)
34         INTO l_found
35         FROM okc_price_adjustments
36        WHERE chr_id = p_chr_id;
37 
38       IF l_found > 0
39       THEN
40          -- end debug log
41          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
42          THEN
43             fnd_log.STRING (fnd_log.level_procedure,
44                             g_module ||
45                             l_api_name,
46                             '1000: Leaving ' ||
47                             g_pkg_name ||
48                             '.' ||
49                             l_api_name
50                            );
51          END IF;
52 
53          RETURN TRUE;
54       ELSE
55          -- end debug log
56          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
57          THEN
58             fnd_log.STRING (fnd_log.level_procedure,
59                             g_module ||
60                             l_api_name,
61                             '1000: Leaving ' ||
62                             g_pkg_name ||
63                             '.' ||
64                             l_api_name
65                            );
66          END IF;
67 
68          RETURN FALSE;
69       END IF;
70    EXCEPTION
71       WHEN OTHERS
72       THEN
73          -- end debug log
74          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
75          THEN
76             fnd_log.STRING (fnd_log.level_procedure,
77                             g_module ||
78                             l_api_name,
79                             '4000: Leaving ' ||
80                             g_pkg_name ||
81                             '.' ||
82                             l_api_name
83                            );
84          END IF;
85 
86          fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
87          RETURN FALSE;
88    END check_hdr_discount;
89 
90    PROCEDURE modifier_4_usg (
91       p_bsl_id                        IN       NUMBER,
92       p_modifier_details              IN       qp_preq_grp.line_detail_tbl_type,
93       x_return_status                 OUT NOCOPY VARCHAR2
94    )
95    IS
96       l_api_name                     CONSTANT VARCHAR2 (30)
97                                                           := 'modifier_4_usg';
98       i                                       NUMBER;
99       l_in_tbl                                okc_price_adjustment_pub.patv_tbl_type;
100       l_out_tbl                               okc_price_adjustment_pub.patv_tbl_type;
101       l_return_status                         VARCHAR2 (1) := 'S';
102       l_msg_count                             NUMBER;
103       l_msg_data                              VARCHAR2 (2000) := NULL;
104       l_api_version                  CONSTANT NUMBER := 1.0;
105       l_init_msg_list                CONSTANT VARCHAR2 (1) := 'F';
106    BEGIN
107       -- start debug log
108       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
109       THEN
110          fnd_log.STRING (fnd_log.level_procedure,
111                          g_module ||
112                          l_api_name,
113                          '100: Entered ' ||
114                          g_pkg_name ||
115                          '.' ||
116                          l_api_name
117                         );
118       END IF;
119 
120       i                          := p_modifier_details.FIRST;
121 
122       IF i IS NOT NULL
123       THEN
124          LOOP
125             l_in_tbl (1).bsl_id        := p_bsl_id;
126             l_in_tbl (1).list_line_id  := p_modifier_details (i).list_line_id;
127             l_in_tbl (1).adjusted_amount :=
128                                      p_modifier_details (i).adjustment_amount;
129             l_in_tbl (1).operand       :=
130                                          p_modifier_details (i).operand_value;
131             l_in_tbl (1).arithmetic_operator :=
132                               p_modifier_details (i).operand_calculation_code;
133             l_in_tbl (1).accrual_conversion_rate :=
134                                p_modifier_details (i).accrual_conversion_rate;
135             l_in_tbl (1).accrual_flag  := p_modifier_details (i).accrual_flag;
136             l_in_tbl (1).applied_flag  := p_modifier_details (i).applied_flag;
137             l_in_tbl (1).automatic_flag :=
138                                         p_modifier_details (i).automatic_flag;
139             l_in_tbl (1).benefit_qty   := p_modifier_details (i).benefit_qty;
140             l_in_tbl (1).benefit_uom_code :=
141                                       p_modifier_details (i).benefit_uom_code;
142             l_in_tbl (1).charge_subtype_code :=
143                                    p_modifier_details (i).charge_subtype_code;
144             l_in_tbl (1).charge_type_code :=
145                                       p_modifier_details (i).charge_type_code;
146             l_in_tbl (1).expiration_date :=
147                                        p_modifier_details (i).expiration_date;
148             l_in_tbl (1).include_on_returns_flag :=
149                                p_modifier_details (i).include_on_returns_flag;
150             l_in_tbl (1).list_header_id :=
151                                         p_modifier_details (i).list_header_id;
152             l_in_tbl (1).list_line_no  := p_modifier_details (i).list_line_no;
153             l_in_tbl (1).list_line_type_code :=
154                                    p_modifier_details (i).list_line_type_code;
155             l_in_tbl (1).modifier_level_code :=
156                                    p_modifier_details (i).modifier_level_code;
157             l_in_tbl (1).modifier_mechanism_type_code :=
158                            p_modifier_details (i).created_from_list_type_code;
159             l_in_tbl (1).price_break_type_code :=
160                                  p_modifier_details (i).price_break_type_code;
161             l_in_tbl (1).pricing_group_sequence :=
162                                 p_modifier_details (i).pricing_group_sequence;
163             l_in_tbl (1).pricing_phase_id :=
164                                       p_modifier_details (i).pricing_phase_id;
165             l_in_tbl (1).proration_type_code :=
166                                    p_modifier_details (i).proration_type_code;
167             l_in_tbl (1).rebate_transaction_type_code :=
168                           p_modifier_details (i).rebate_transaction_type_code;
169             l_in_tbl (1).source_system_code :=
170                                     p_modifier_details (i).source_system_code;
171             l_in_tbl (1).substitution_attribute :=
172                                 p_modifier_details (i).substitution_attribute;
173             l_in_tbl (1).update_allowed :=
174                                          p_modifier_details (i).override_flag;
175             l_in_tbl (1).updated_flag  := p_modifier_details (i).updated_flag;
176             okc_price_adjustment_pub.create_price_adjustment
177                                          (p_api_version                      => 1.0,
178                                           p_init_msg_list                    => okc_api.g_false,
179                                           x_return_status                    => l_return_status,
180                                           x_msg_count                        => l_msg_count,
181                                           x_msg_data                         => l_msg_data,
182                                           p_patv_tbl                         => l_in_tbl,
183                                           x_patv_tbl                         => l_out_tbl
184                                          );
185 
186             IF l_return_status <> 'S'
187             THEN
188                x_return_status            := l_return_status;
189                okc_api.set_message
190                                   (g_app_name,
191                                    g_required_value,
192                                    g_col_name_token,
193                                    'Usage Modifier creation Error bsl id ' ||
194                                    p_bsl_id ||
195                                    ' Modifier ' ||
196                                    p_modifier_details (i).list_line_id
197                                   );
198                RAISE fnd_api.g_exc_error;
199             END IF;
200 
201             EXIT WHEN i = p_modifier_details.LAST;
202             i                          := p_modifier_details.NEXT (i);
203          END LOOP;
204       END IF;                                                       -- i check
205 
206       x_return_status            := l_return_status;
207 
208       -- end debug log
209       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
210       THEN
211          fnd_log.STRING (fnd_log.level_procedure,
212                          g_module ||
213                          l_api_name,
214                          '1000: Leaving ' ||
215                          g_pkg_name ||
216                          '.' ||
217                          l_api_name
218                         );
219       END IF;
220    END modifier_4_usg;
221 
222    PROCEDURE modifier_handling (
223       p_cle_id                                 NUMBER,
224       p_modifier_details              IN       qp_preq_grp.line_detail_tbl_type,
225       x_return_status                 OUT NOCOPY VARCHAR2
226    )
227    IS
228       CURSOR cur_price (
229          p_cle_id                        IN       NUMBER,
230          p_list_line_id                  IN       NUMBER
231       )
232       IS
233          SELECT *
234            FROM okc_price_adjustments
235           WHERE cle_id = p_cle_id             AND
236                 list_line_id = p_list_line_id;
237 
238       CURSOR chk_price (
239          p_cle_id                        IN       NUMBER
240       )
241       IS
242          SELECT *
243            FROM okc_price_adjustments
244           WHERE cle_id = p_cle_id;
245 
246       l_api_name                     CONSTANT VARCHAR2 (30)
247                                                         := 'modifier_handling';
248       price_rec                               cur_price%ROWTYPE;
249       l_flag                                  BOOLEAN;
250       l_in_tbl                                okc_price_adjustment_pub.patv_tbl_type;
251       l_out_tbl                               okc_price_adjustment_pub.patv_tbl_type;
252       l_in_rec                                okc_pat_pvt.patv_rec_type;
253       l_out_rec                               okc_pat_pvt.patv_rec_type;
254       l_return_status                         VARCHAR2 (1);
255       l_msg_count                             NUMBER;
256       l_msg_data                              VARCHAR2 (2000) := NULL;
257       l_api_version                  CONSTANT NUMBER := 1.0;
258       l_init_msg_list                CONSTANT VARCHAR2 (1) := 'F';
259       i                                       NUMBER;
260 
261       FUNCTION modifier_exists (
262          p_subline_id                    IN       NUMBER,
263          p_list_line_id                  IN       NUMBER
264       )
265          RETURN BOOLEAN
266       IS
267 -- Find topline and header id for given subline
268          CURSOR cs_topline_hdr (
269             cp_subline_id                            NUMBER
270          )
271          IS
272             SELECT cle_id,
273                    dnz_chr_id
274               FROM okc_k_lines_b
275              WHERE ID = cp_subline_id;
276 
277 --- find modifier for top line
278          CURSOR cs_topline_mod (
279             cp_topline_id                            NUMBER
280          )
281          IS
282             SELECT 1
283               FROM okc_price_adjustments
284              WHERE cle_id = cp_topline_id        AND
285                    list_line_id = p_list_line_id;
286 
287 --- find modifier for header
288          CURSOR cs_hdr_mod (
289             cp_hdr_id                                NUMBER
290          )
291          IS
292             SELECT 1
293               FROM okc_price_adjustments
294              WHERE chr_id = cp_hdr_id            AND
295                    cle_id IS NULL                AND
296                    list_line_id = p_list_line_id;
297 
298          l_topline_id                            NUMBER;
299          l_hdr_id                                NUMBER;
300          l_dummy                                 NUMBER;
301          l_api_name                     CONSTANT VARCHAR2 (30)
302                                                           := 'MODIFIER_EXISTS';
303       -- Declare program variables as shown above
304       BEGIN
305          -- start debug log
306          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
307          THEN
308             fnd_log.STRING (fnd_log.level_procedure,
309                             g_module ||
310                             l_api_name,
311                             '100: Entered ' ||
312                             g_pkg_name ||
313                             '.' ||
314                             l_api_name
315                            );
316          END IF;
317 
318          OPEN cs_topline_hdr (p_subline_id);
319 
320          FETCH cs_topline_hdr
321           INTO l_topline_id,
322                l_hdr_id;
323 
324          CLOSE cs_topline_hdr;
325 
326          OPEN cs_topline_mod (l_topline_id);
327 
328          FETCH cs_topline_mod
329           INTO l_dummy;
330 
331          IF cs_topline_mod%FOUND
332          THEN
333             CLOSE cs_topline_mod;
334 
335             RETURN TRUE;
336          END IF;
337 
338          CLOSE cs_topline_mod;
339 
340          OPEN cs_hdr_mod (l_hdr_id);
341 
342          FETCH cs_hdr_mod
343           INTO l_dummy;
344 
345          IF cs_hdr_mod%FOUND
346          THEN
347             CLOSE cs_hdr_mod;
348 
349             RETURN TRUE;
350          END IF;
351 
352          CLOSE cs_hdr_mod;
353 
354          -- end debug log
355          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
356          THEN
357             fnd_log.STRING (fnd_log.level_procedure,
358                             g_module ||
359                             l_api_name,
360                             '1000: Leaving ' ||
361                             g_pkg_name ||
362                             '.' ||
363                             l_api_name
364                            );
365          END IF;
366 
367          RETURN FALSE;
368       END;
369    BEGIN
370       -- start debug log
371       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
372       THEN
373          fnd_log.STRING (fnd_log.level_procedure,
374                          g_module ||
375                          l_api_name,
376                          '100: Entered ' ||
377                          g_pkg_name ||
378                          '.' ||
379                          l_api_name
380                         );
381       END IF;
382 
383       i                          := p_modifier_details.FIRST;
384 
385       IF i IS NOT NULL
386       THEN
387          LOOP
388             IF NOT modifier_exists (p_cle_id,
389                                     p_modifier_details (i).list_line_id)
390             THEN
391                OPEN cur_price (p_cle_id, p_modifier_details (i).list_line_id);
392 
393                FETCH cur_price
394                 INTO price_rec;
395 
396                IF (cur_price%FOUND)
397                THEN
398                   UPDATE okc_price_adjustments
399                      SET adjusted_amount =
400                                       p_modifier_details (i).adjustment_amount,
401                          arithmetic_operator =
402                                p_modifier_details (i).operand_calculation_code,
403                          operand = p_modifier_details (i).operand_value,
404                          update_allowed = p_modifier_details (i).override_flag
405                    WHERE cle_id = p_cle_id                     AND
406                          list_line_id =
407                                        p_modifier_details (i).list_line_id;
408                ELSE
409                   l_in_tbl (1).cle_id        := p_cle_id;
410                   l_in_tbl (1).list_line_id  :=
411                                           p_modifier_details (i).list_line_id;
412                   l_in_tbl (1).adjusted_amount :=
413                                      p_modifier_details (i).adjustment_amount;
414                   l_in_tbl (1).operand       :=
415                                          p_modifier_details (i).operand_value;
416                   l_in_tbl (1).arithmetic_operator :=
417                               p_modifier_details (i).operand_calculation_code;
418                   l_in_tbl (1).accrual_conversion_rate :=
419                                p_modifier_details (i).accrual_conversion_rate;
420                   l_in_tbl (1).accrual_flag  :=
421                                           p_modifier_details (i).accrual_flag;
422                   l_in_tbl (1).applied_flag  :=
423                                           p_modifier_details (i).applied_flag;
424                   l_in_tbl (1).automatic_flag :=
425                                         p_modifier_details (i).automatic_flag;
426                   l_in_tbl (1).benefit_qty   :=
427                                            p_modifier_details (i).benefit_qty;
428                   l_in_tbl (1).benefit_uom_code :=
429                                       p_modifier_details (i).benefit_uom_code;
430                   l_in_tbl (1).charge_subtype_code :=
431                                    p_modifier_details (i).charge_subtype_code;
432                   l_in_tbl (1).charge_type_code :=
433                                       p_modifier_details (i).charge_type_code;
434                   l_in_tbl (1).expiration_date :=
435                                        p_modifier_details (i).expiration_date;
436                   l_in_tbl (1).include_on_returns_flag :=
437                                p_modifier_details (i).include_on_returns_flag;
438                   l_in_tbl (1).list_header_id :=
439                                         p_modifier_details (i).list_header_id;
440                   l_in_tbl (1).list_line_no  :=
441                                           p_modifier_details (i).list_line_no;
442                   l_in_tbl (1).list_line_type_code :=
443                                    p_modifier_details (i).list_line_type_code;
444                   l_in_tbl (1).modifier_level_code :=
445                                    p_modifier_details (i).modifier_level_code;
446                   l_in_tbl (1).modifier_mechanism_type_code :=
447                            p_modifier_details (i).created_from_list_type_code;
448                   l_in_tbl (1).price_break_type_code :=
449                                  p_modifier_details (i).price_break_type_code;
450                   l_in_tbl (1).pricing_group_sequence :=
451                                 p_modifier_details (i).pricing_group_sequence;
452                   l_in_tbl (1).pricing_phase_id :=
453                                       p_modifier_details (i).pricing_phase_id;
454                   l_in_tbl (1).proration_type_code :=
455                                    p_modifier_details (i).proration_type_code;
456                   l_in_tbl (1).rebate_transaction_type_code :=
457                           p_modifier_details (i).rebate_transaction_type_code;
458                   l_in_tbl (1).source_system_code :=
459                                     p_modifier_details (i).source_system_code;
460                   l_in_tbl (1).substitution_attribute :=
461                                 p_modifier_details (i).substitution_attribute;
462                   l_in_tbl (1).update_allowed :=
463                                          p_modifier_details (i).override_flag;
464                   l_in_tbl (1).updated_flag  :=
465                                           p_modifier_details (i).updated_flag;
466                   okc_price_adjustment_pub.create_price_adjustment
467                                          (p_api_version                      => 1.0,
468                                           p_init_msg_list                    => okc_api.g_false,
469                                           x_return_status                    => l_return_status,
470                                           x_msg_count                        => l_msg_count,
471                                           x_msg_data                         => l_msg_data,
472                                           p_patv_tbl                         => l_in_tbl,
473                                           x_patv_tbl                         => l_out_tbl
474                                          );
475                   x_return_status            := l_return_status;
476                END IF;
477 
478                CLOSE cur_price;
479             END IF;
480 
481             EXIT WHEN i = p_modifier_details.LAST;
482             i                          := p_modifier_details.NEXT (i);
483          END LOOP;
484       END IF;                                                       -- I Check
485 
486       /*FOR DELETION  */
487       FOR cur IN chk_price (p_cle_id)
488       LOOP
489          l_flag                     := FALSE;
490          i                          := p_modifier_details.FIRST;
491 
492          IF i IS NOT NULL
493          THEN
494             LOOP
495                IF (cur.list_line_id = p_modifier_details (i).list_line_id)
496                THEN
497                   l_flag                     := TRUE;
498                   EXIT;
499                END IF;
500 
501                EXIT WHEN i = p_modifier_details.LAST;
502                i                          := p_modifier_details.NEXT (i);
503             END LOOP;
504          END IF;                                                     --I Check
505 
506          IF (l_flag = FALSE)
507          THEN
508             DELETE FROM okc_price_adjustments
509                   WHERE cle_id = p_cle_id               AND
510                         list_line_id = cur.list_line_id;
511          END IF;
512       END LOOP;
513 
514       -- end debug log
515       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
516       THEN
517          fnd_log.STRING (fnd_log.level_procedure,
518                          g_module ||
519                          l_api_name,
520                          '1000: Leaving ' ||
521                          g_pkg_name ||
522                          '.' ||
523                          l_api_name
524                         );
525       END IF;
526    END;
527 
528    PROCEDURE build_top_qa (
529       p_cle_id                        IN       NUMBER,
530       p_item_id                       IN       NUMBER,
531       p_service_index                 IN       NUMBER,
532       p_line_qual_tbl_ctr             IN OUT NOCOPY NUMBER,
533       p_req_qual_tbl                  IN OUT NOCOPY qp_preq_grp.qual_tbl_type
534    )
535    IS
536       l_line_qual_tbl_ctr                     NUMBER;
537       l_req_qual_rec2                         qp_preq_grp.qual_rec_type;
538       l_req_qual_tbl                          qp_preq_grp.qual_tbl_type;
539       l_api_name                     CONSTANT VARCHAR2 (30) := 'BUILD_TOP_QA';
540 
541       CURSOR l_qual_csr
542       IS
543          SELECT qualifier_context,
544                 qualifier_attribute,
545                 qualifier_attr_value,
546                 comparison_operator_code
547            FROM oks_qualifiers
548           WHERE list_line_id = p_cle_id;
549 
550       l_qual_rec                              l_qual_csr%ROWTYPE;
551    BEGIN
552       -- start debug log
553       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
554       THEN
555          fnd_log.STRING (fnd_log.level_procedure,
556                          g_module ||
557                          l_api_name,
558                          '100: Entered ' ||
559                          g_pkg_name ||
560                          '.' ||
561                          l_api_name
562                         );
563       END IF;
564 
565       l_line_qual_tbl_ctr        := p_line_qual_tbl_ctr;
566       l_req_qual_tbl             := p_req_qual_tbl;
567 
568       IF p_item_id IS NOT NULL
569       THEN
570          l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
571                                        1;
572          l_req_qual_rec2.line_index := p_service_index;
573          l_req_qual_rec2.qualifier_context := 'MODLIST';
574          l_req_qual_rec2.qualifier_attribute := 'QUALIFIER_ATTRIBUTE4';
575          l_req_qual_rec2.qualifier_attr_value_from := p_item_id;
576          l_req_qual_rec2.comparison_operator_code := '=';
577          l_req_qual_rec2.validated_flag := 'Y';
578          l_req_qual_tbl (l_line_qual_tbl_ctr) := l_req_qual_rec2;
579       END IF;
580 
581       FOR l_qual_rec IN l_qual_csr
582       LOOP
583          l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
584                                        1;
585          l_req_qual_rec2.line_index := p_service_index;
586          l_req_qual_rec2.qualifier_context := l_qual_rec.qualifier_context;
587          l_req_qual_rec2.qualifier_attribute := l_qual_rec.qualifier_attribute;
588          l_req_qual_rec2.qualifier_attr_value_from :=
589                                                l_qual_rec.qualifier_attr_value;
590          l_req_qual_rec2.comparison_operator_code :=
591                                            l_qual_rec.comparison_operator_code;
592          l_req_qual_rec2.validated_flag := 'N';
593          l_req_qual_tbl (l_line_qual_tbl_ctr) := l_req_qual_rec2;
594       END LOOP;
595 
596       p_line_qual_tbl_ctr        := l_line_qual_tbl_ctr;
597       p_req_qual_tbl             := l_req_qual_tbl;
598 
599       -- end debug log
600       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
601       THEN
602          fnd_log.STRING (fnd_log.level_procedure,
603                          g_module ||
604                          l_api_name,
605                          '1000: Leaving ' ||
606                          g_pkg_name ||
607                          '.' ||
608                          l_api_name
609                         );
610       END IF;
611    END;
612 
613    PROCEDURE build_hdr_adj (
614       p_chr_id                        IN       NUMBER,
615       p_item_id                       IN       NUMBER,
616       p_service_index                 IN       NUMBER,
617       p_line_detl_tbl_ctr             IN OUT NOCOPY NUMBER,
618       p_req_line_detail_tbl           IN OUT NOCOPY qp_preq_grp.line_detail_tbl_type
619    )
620    IS
621       l_req_line_detail_tbl                   qp_preq_grp.line_detail_tbl_type;
622       l_line_detl_tbl_ctr                     NUMBER;
623       l_api_name                     CONSTANT VARCHAR2 (30)
624                                                            := 'BUILD_HDR_ADJ';
625 
626       CURSOR l_adj_csr
627       IS
628          SELECT list_header_id,
629                 list_line_id,
630                 list_line_type_code,
631                 modifier_mechanism_type_code,
632                 automatic_flag,
633                 arithmetic_operator,
634                 operand
635            FROM okc_price_adjustments
636           WHERE chr_id = p_chr_id              AND
637                 cle_id IS NULL                 AND
638                 NVL (automatic_flag, 'N') = 'N';
639 
640       l_req_line_detail_rec2                  qp_preq_grp.line_detail_rec_type;
641       l_adj_rec                               l_adj_csr%ROWTYPE;
642 
643       CURSOR l_qp_hdr_csr (
644          p_list_header_id                         NUMBER
645       )
646       IS
647          SELECT list_type_code
648            FROM qp_list_headers_vl
649           WHERE list_header_id = p_list_header_id;
650 
651       CURSOR l_qp_lin_csr (
652          p_list_line_id                           NUMBER
653       )
654       IS
655          SELECT list_line_no,
656                 list_line_type_code,
657                 modifier_level_code,
658                 pricing_phase_id,
659                 pricing_group_sequence,
660                 automatic_flag,
661                 override_flag,
662                 arithmetic_operator,
663                 charge_type_code,
664                 charge_subtype_code,
665                 include_on_returns_flag
666            FROM qp_list_lines
667           WHERE list_line_id = p_list_line_id;
668 
669       l_qp_lin_rec                            l_qp_lin_csr%ROWTYPE;
670    BEGIN
671       -- start debug log
672       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
673       THEN
674          fnd_log.STRING (fnd_log.level_procedure,
675                          g_module ||
676                          l_api_name,
677                          '100: Entered ' ||
678                          g_pkg_name ||
679                          '.' ||
680                          l_api_name
681                         );
682       END IF;
683 
684       l_req_line_detail_tbl      := p_req_line_detail_tbl;
685       l_line_detl_tbl_ctr        := p_line_detl_tbl_ctr;
686 
687       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
688       THEN
689          fnd_log.STRING
690             (fnd_log.level_procedure,
691              g_module ||
692              l_api_name,
693              '201:*********************************************************************'
694             );
695          fnd_log.STRING
696             (fnd_log.level_procedure,
697              g_module ||
698              l_api_name,
699              '202:**************** WITHIN HDR ADJ RECORD *********************** '
700             );
701          fnd_log.STRING
702             (fnd_log.level_procedure,
703              g_module ||
704              l_api_name,
705              '203:*************** P-REQ-LINE-DETAIL-TBL COUNT******************* ' ||
706              p_req_line_detail_tbl.COUNT
707             );
708          fnd_log.STRING
709             (fnd_log.level_procedure,
710              g_module ||
711              l_api_name,
712              '204:*************** P-REQ-LINE-DETAIL-TBL CTR  ******************* ' ||
713              p_line_detl_tbl_ctr
714             );
715       END IF;
716 
717       --dbms_output.put_line ('*********************************************************************');
718       --dbms_output.put_line ('**************** WITHIN HDR ADJ RECORD *********************** ');
719       --dbms_output.put_line ('*************** P-REQ-LINE-DETAIL-TBL COUNT******************* ' || p_req_line_detail_tbl.count);
720       --dbms_output.put_line ('*************** P-REQ-LINE-DETAIL-TBL CTR  ******************* ' || p_line_detl_tbl_ctr);
721       FOR l_adj_rec IN l_adj_csr
722       LOOP
723          OPEN l_qp_hdr_csr (l_adj_rec.list_header_id);
724 
725          FETCH l_qp_hdr_csr
726           INTO l_req_line_detail_rec2.created_from_list_type_code;
727 
728          CLOSE l_qp_hdr_csr;
729 
730          OPEN l_qp_lin_csr (l_adj_rec.list_line_id);
731 
732          FETCH l_qp_lin_csr
733           INTO l_qp_lin_rec;
734 
735          CLOSE l_qp_lin_csr;
736 
737          l_line_detl_tbl_ctr        := l_line_detl_tbl_ctr +
738                                        1;
739          l_req_line_detail_rec2.line_detail_index := l_line_detl_tbl_ctr;
740          l_req_line_detail_rec2.line_index := p_service_index;
741          l_req_line_detail_rec2.inventory_item_id := p_item_id;
742          l_req_line_detail_rec2.list_header_id := l_adj_rec.list_header_id;
743          l_req_line_detail_rec2.list_line_id := l_adj_rec.list_line_id;
744          l_req_line_detail_rec2.applied_flag := 'Y';
745 
746          -- Added to fix bug 3480973
747          IF NVL (l_qp_lin_rec.override_flag, 'N') = 'Y' OR
748             NVL (l_qp_lin_rec.automatic_flag, 'N') = 'N'
749          THEN
750             l_req_line_detail_rec2.updated_flag := 'Y';
751          END IF;
752 
753          l_req_line_detail_rec2.operand_value := l_adj_rec.operand;
754          l_req_line_detail_rec2.list_line_no := l_qp_lin_rec.list_line_no;
755          l_req_line_detail_rec2.list_line_type_code :=
756                                               l_qp_lin_rec.list_line_type_code;
757          l_req_line_detail_rec2.modifier_level_code :=
758                                               l_qp_lin_rec.modifier_level_code;
759          l_req_line_detail_rec2.pricing_phase_id :=
760                                                  l_qp_lin_rec.pricing_phase_id;
761          l_req_line_detail_rec2.pricing_group_sequence :=
762                                            l_qp_lin_rec.pricing_group_sequence;
763          l_req_line_detail_rec2.automatic_flag := l_qp_lin_rec.automatic_flag;
764          l_req_line_detail_rec2.override_flag := l_qp_lin_rec.override_flag;
765          l_req_line_detail_rec2.operand_calculation_code :=
766                                               l_qp_lin_rec.arithmetic_operator;
767          l_req_line_detail_rec2.charge_type_code :=
768                                                  l_qp_lin_rec.charge_type_code;
769          l_req_line_detail_rec2.charge_subtype_code :=
770                                               l_qp_lin_rec.charge_subtype_code;
771          l_req_line_detail_rec2.include_on_returns_flag :=
772                                           l_qp_lin_rec.include_on_returns_flag;
773          l_req_line_detail_rec2.line_detail_type_code := 'NULL';
774          l_req_line_detail_tbl (l_line_detl_tbl_ctr) := l_req_line_detail_rec2;
775       END LOOP;
776 
777       p_req_line_detail_tbl      := l_req_line_detail_tbl;
778       p_line_detl_tbl_ctr        := l_line_detl_tbl_ctr;
779 
780       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
781       THEN
782           -- if p_req_line_detail_tbl.count is 0 then the below debug will throw a no data exception
783         IF p_req_line_detail_tbl.count > 0 THEN
784          fnd_log.STRING
785             (fnd_log.level_procedure,
786              g_module ||
787              l_api_name,
788              '301:******************************************************************'
789             );
790          fnd_log.STRING
791             (fnd_log.level_procedure,
792              g_module ||
793              l_api_name,
794              '302:*************** P-REQ-LINE-DETAIL-TBL COUNT****************** ' ||
795              p_req_line_detail_tbl.COUNT
796             );
797          fnd_log.STRING
798             (fnd_log.level_procedure,
799              g_module ||
800              l_api_name,
801              '303:*************** P-REQ-LINE-DETAIL-TBL CTR  ****************** ' ||
802              p_line_detl_tbl_ctr
803             );
804          fnd_log.STRING
805             (fnd_log.level_procedure,
806              g_module ||
807              l_api_name,
808              '304:******************************************************************'
809             );
810          fnd_log.STRING
811             (fnd_log.level_procedure,
812              g_module ||
813              l_api_name,
814              '305:************ p_req_line_detail_tbl(1).created_from_list_type_code **** ' ||
815              p_req_line_detail_tbl (1).created_from_list_type_code
816             );
817          fnd_log.STRING
818             (fnd_log.level_procedure,
819              g_module ||
820              l_api_name,
821              '306:************ p_req_line_detail_tbl(1).line_detail_index **** ' ||
822              p_req_line_detail_tbl (1).line_detail_index
823             );
824          fnd_log.STRING
825             (fnd_log.level_procedure,
826              g_module ||
827              l_api_name,
828              '307:************ p_req_line_detail_tbl(1).line_index        **** ' ||
829              p_req_line_detail_tbl (1).line_index
830             );
831          fnd_log.STRING
832             (fnd_log.level_procedure,
833              g_module ||
834              l_api_name,
835              '308:************ p_req_line_detail_tbl(1).inventory item_id **** ' ||
836              p_req_line_detail_tbl (1).inventory_item_id
837             );
838          fnd_log.STRING
839             (fnd_log.level_procedure,
840              g_module ||
841              l_api_name,
842              '309:************ p_req_line_detail_tbl(1).list_header_id    **** ' ||
843              p_req_line_detail_tbl (1).list_header_id
844             );
845          fnd_log.STRING
846             (fnd_log.level_procedure,
847              g_module ||
848              l_api_name,
849              '310:************ p_req_line_detail_tbl(1).list_line_id      **** ' ||
850              p_req_line_detail_tbl (1).list_line_id
851             );
852          fnd_log.STRING
853             (fnd_log.level_procedure,
854              g_module ||
855              l_api_name,
856              '311:************ p_req_line_detail_tbl(1).applied_flag      **** ' ||
857              p_req_line_detail_tbl (1).applied_flag
858             );
859          fnd_log.STRING
860             (fnd_log.level_procedure,
861              g_module ||
862              l_api_name,
863              '312:************ p_req_line_detail_tbl(1).updated_flag      **** ' ||
864              p_req_line_detail_tbl (1).updated_flag
865             );
866          fnd_log.STRING
867             (fnd_log.level_procedure,
868              g_module ||
869              l_api_name,
870              '313:************ p_req_line_detail_tbl(1).operand_value     **** ' ||
871              p_req_line_detail_tbl (1).operand_value
872             );
873          fnd_log.STRING
874             (fnd_log.level_procedure,
875              g_module ||
876              l_api_name,
877              '314:************ p_req_line_detail_tbl(1).list_line_no      **** ' ||
878              p_req_line_detail_tbl (1).list_line_no
879             );
880          fnd_log.STRING
881             (fnd_log.level_procedure,
882              g_module ||
883              l_api_name,
884              '315:************ p_req_line_detail_tbl(1).list_line_type_code      **** ' ||
885              p_req_line_detail_tbl (1).list_line_type_code
886             );
887          fnd_log.STRING
888             (fnd_log.level_procedure,
889              g_module ||
890              l_api_name,
891              '316:************ p_req_line_detail_tbl(1).modifier_level_code      **** ' ||
892              p_req_line_detail_tbl (1).modifier_level_code
893             );
894          fnd_log.STRING
895             (fnd_log.level_procedure,
896              g_module ||
897              l_api_name,
898              '317:************ p_req_line_detail_tbl(1).pricing_phase_id        **** ' ||
899              p_req_line_detail_tbl (1).pricing_phase_id
900             );
901          fnd_log.STRING
902             (fnd_log.level_procedure,
903              g_module ||
904              l_api_name,
905              '318:************ p_req_line_detail_tbl(1).pricing_group_sequence  **** ' ||
906              p_req_line_detail_tbl (1).pricing_group_sequence
907             );
908          fnd_log.STRING
909             (fnd_log.level_procedure,
910              g_module ||
911              l_api_name,
912              '319:************ p_req_line_detail_tbl(1).automatic_flag          **** ' ||
913              p_req_line_detail_tbl (1).automatic_flag
914             );
915          fnd_log.STRING
916             (fnd_log.level_procedure,
917              g_module ||
918              l_api_name,
919              '320:************ p_req_line_detail_tbl(1).override_flag        **** ' ||
920              p_req_line_detail_tbl (1).override_flag
921             );
922          fnd_log.STRING
923             (fnd_log.level_procedure,
924              g_module ||
925              l_api_name,
926              '321:************ p_req_line_detail_tbl(1).operand_calculation_code **** ' ||
927              p_req_line_detail_tbl (1).operand_calculation_code
928             );
929          fnd_log.STRING
930             (fnd_log.level_procedure,
931              g_module ||
932              l_api_name,
933              '322:************ p_req_line_detail_tbl(1).charge_type_code         **** ' ||
934              p_req_line_detail_tbl (1).charge_type_code
935             );
936          fnd_log.STRING
937             (fnd_log.level_procedure,
938              g_module ||
939              l_api_name,
940              '323:************ p_req_line_detail_tbl(1).charge_subtype_code      **** ' ||
941              p_req_line_detail_tbl (1).charge_subtype_code
942             );
943          fnd_log.STRING
944             (fnd_log.level_procedure,
945              g_module ||
946              l_api_name,
947              '324:************ p_req_line_detail_tbl(1).include_on_returns_flag  **** ' ||
948              p_req_line_detail_tbl (1).include_on_returns_flag
949             );
950          fnd_log.STRING
951             (fnd_log.level_procedure,
952              g_module ||
953              l_api_name,
954              '325:************ p_req_line_detail_tbl(1).line_detail_type_code      **** ' ||
955              p_req_line_detail_tbl (1).line_detail_type_code
956             );
957          fnd_log.STRING
958             (fnd_log.level_procedure,
959              g_module ||
960              l_api_name,
961              '326:***********************************************************************'
962             );
963          fnd_log.STRING
964             (fnd_log.level_procedure,
965              g_module ||
966              l_api_name,
967              '327:*******************END HEADER ADJUSTMENT RECORD*****************************'
968             );
969        END IF; -- IF p_req_line_detail_tbl.count > 0
970       END IF;
971 
972       --dbms_output.put_line ('******************************************************************');
973       --dbms_output.put_line ('*************** P-REQ-LINE-DETAIL-TBL COUNT****************** ' || p_req_line_detail_tbl.count);
974       --dbms_output.put_line ('*************** P-REQ-LINE-DETAIL-TBL CTR  ****************** ' || p_line_detl_tbl_ctr);
975       --dbms_output.put_line ('******************************************************************');
976       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).created_from_list_type_code **** ' || p_req_line_detail_tbl(1).created_from_list_type_code );
977       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).line_detail_index **** ' || p_req_line_detail_tbl(1).line_detail_index);
978       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).line_index        **** ' || p_req_line_detail_tbl(1).line_index);
979       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).inventory item_id **** ' || p_req_line_detail_tbl(1).inventory_item_id);
980       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).list_header_id    **** ' || p_req_line_detail_tbl(1).list_header_id);
981       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).list_line_id      **** ' || p_req_line_detail_tbl(1).list_line_id);
982       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).applied_flag      **** ' || p_req_line_detail_tbl(1).applied_flag);
983       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).updated_flag      **** ' || p_req_line_detail_tbl(1).updated_flag);
984       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).operand_value     **** ' || p_req_line_detail_tbl(1).operand_value);
985       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).list_line_no      **** ' || p_req_line_detail_tbl(1).list_line_no);
986 
987       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).list_line_type_code      **** ' || p_req_line_detail_tbl(1).list_line_type_code);
988       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).modifier_level_code      **** ' || p_req_line_detail_tbl(1).modifier_level_code);
989       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).pricing_phase_id        **** ' || p_req_line_detail_tbl(1).pricing_phase_id);
990 
991       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).pricing_group_sequence  **** ' || p_req_line_detail_tbl(1).pricing_group_sequence);
992       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).automatic_flag          **** ' || p_req_line_detail_tbl(1).automatic_flag);
993       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).override_flag        **** ' || p_req_line_detail_tbl(1).override_flag);
994       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).operand_calculation_code **** ' || p_req_line_detail_tbl(1).operand_calculation_code);
995 
996       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).charge_type_code         **** ' || p_req_line_detail_tbl(1).charge_type_code         );
997       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).charge_subtype_code      **** ' || p_req_line_detail_tbl(1).charge_subtype_code      );
998       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).include_on_returns_flag  **** ' || p_req_line_detail_tbl(1).include_on_returns_flag);
999       --dbms_output.put_line ('************ p_req_line_detail_tbl(1).line_detail_type_code      **** ' || p_req_line_detail_tbl(1).line_detail_type_code    );
1000       --dbms_output.put_line ('***********************************************************************');
1001       --dbms_output.put_line ('*******************END HEADER ADJUSTMENT RECORD*****************************');
1002 
1003       -- end debug log
1004       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
1005       THEN
1006          fnd_log.STRING (fnd_log.level_procedure,
1007                          g_module ||
1008                          l_api_name,
1009                          '1000: Leaving ' ||
1010                          g_pkg_name ||
1011                          '.' ||
1012                          l_api_name
1013                         );
1014       END IF;
1015    END;
1016 
1017    PROCEDURE build_top_adj (
1018       p_cle_id                        IN       NUMBER,
1019       p_item_id                       IN       NUMBER,
1020       p_service_index                 IN       NUMBER,
1021       p_line_detl_tbl_ctr             IN OUT NOCOPY NUMBER,
1022       p_req_line_detail_tbl           IN OUT NOCOPY qp_preq_grp.line_detail_tbl_type
1023    )
1024    IS
1025       l_req_line_detail_tbl                   qp_preq_grp.line_detail_tbl_type;
1026       l_line_detl_tbl_ctr                     NUMBER;
1027       l_api_name                     CONSTANT VARCHAR2 (30)
1028                                                            := 'BUILD_TOP_ADJ';
1029 
1030       CURSOR l_adj_csr
1031       IS
1032          SELECT list_header_id,
1033                 list_line_id,
1034                 list_line_type_code,
1035                 modifier_mechanism_type_code,
1036                 automatic_flag,
1037                 arithmetic_operator,
1038                 operand
1039            FROM okc_price_adjustments
1040           WHERE cle_id = p_cle_id              AND
1041                 NVL (automatic_flag, 'N') = 'N';
1042 
1043       l_req_line_detail_rec2                  qp_preq_grp.line_detail_rec_type;
1044       l_adj_rec                               l_adj_csr%ROWTYPE;
1045 
1046       CURSOR l_qp_hdr_csr (
1047          p_list_header_id                         NUMBER
1048       )
1049       IS
1050          SELECT list_type_code
1051            FROM qp_list_headers_vl
1052           WHERE list_header_id = p_list_header_id;
1053 
1054       CURSOR l_qp_lin_csr (
1055          p_list_line_id                           NUMBER
1056       )
1057       IS
1058          SELECT list_line_no,
1059                 list_line_type_code,
1060                 modifier_level_code,
1061                 pricing_phase_id,
1062                 pricing_group_sequence,
1063                 automatic_flag,
1064                 override_flag,
1065                 arithmetic_operator,
1066                 charge_type_code,
1067                 charge_subtype_code,
1068                 include_on_returns_flag
1069            FROM qp_list_lines
1070           WHERE list_line_id = p_list_line_id;
1071 
1072       l_qp_lin_rec                            l_qp_lin_csr%ROWTYPE;
1073    BEGIN
1074       -- start debug log
1075       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
1076       THEN
1077          fnd_log.STRING (fnd_log.level_procedure,
1078                          g_module ||
1079                          l_api_name,
1080                          '100: Entered ' ||
1081                          g_pkg_name ||
1082                          '.' ||
1083                          l_api_name
1084                         );
1085       END IF;
1086 
1087       l_req_line_detail_tbl      := p_req_line_detail_tbl;
1088       l_line_detl_tbl_ctr        := p_line_detl_tbl_ctr;
1089 
1090       FOR l_adj_rec IN l_adj_csr
1091       LOOP
1092          OPEN l_qp_hdr_csr (l_adj_rec.list_header_id);
1093 
1094          FETCH l_qp_hdr_csr
1095           INTO l_req_line_detail_rec2.created_from_list_type_code;
1096 
1097          CLOSE l_qp_hdr_csr;
1098 
1099          OPEN l_qp_lin_csr (l_adj_rec.list_line_id);
1100 
1101          FETCH l_qp_lin_csr
1102           INTO l_qp_lin_rec;
1103 
1104          CLOSE l_qp_lin_csr;
1105 
1106          l_line_detl_tbl_ctr        := l_line_detl_tbl_ctr +
1107                                        1;
1108          l_req_line_detail_rec2.line_detail_index := l_line_detl_tbl_ctr;
1109          l_req_line_detail_rec2.line_index := p_service_index;
1110          l_req_line_detail_rec2.inventory_item_id := p_item_id;
1111          l_req_line_detail_rec2.list_header_id := l_adj_rec.list_header_id;
1112          l_req_line_detail_rec2.list_line_id := l_adj_rec.list_line_id;
1113          l_req_line_detail_rec2.applied_flag := 'Y';
1114 
1115          -- Added to fix bug 3480973
1116          IF NVL (l_qp_lin_rec.override_flag, 'N') = 'Y' OR
1117             NVL (l_qp_lin_rec.automatic_flag, 'N') = 'N'
1118          THEN
1119             l_req_line_detail_rec2.updated_flag := 'Y';
1120          END IF;
1121 
1122          l_req_line_detail_rec2.operand_value := l_adj_rec.operand;
1123          l_req_line_detail_rec2.list_line_no := l_qp_lin_rec.list_line_no;
1124          l_req_line_detail_rec2.list_line_type_code :=
1125                                               l_qp_lin_rec.list_line_type_code;
1126          l_req_line_detail_rec2.modifier_level_code :=
1127                                               l_qp_lin_rec.modifier_level_code;
1128          l_req_line_detail_rec2.pricing_phase_id :=
1129                                                  l_qp_lin_rec.pricing_phase_id;
1130          l_req_line_detail_rec2.pricing_group_sequence :=
1131                                            l_qp_lin_rec.pricing_group_sequence;
1132          l_req_line_detail_rec2.automatic_flag := l_qp_lin_rec.automatic_flag;
1133          l_req_line_detail_rec2.override_flag := l_qp_lin_rec.override_flag;
1134          l_req_line_detail_rec2.operand_calculation_code :=
1135                                               l_qp_lin_rec.arithmetic_operator;
1136          l_req_line_detail_rec2.charge_type_code :=
1137                                                  l_qp_lin_rec.charge_type_code;
1138          l_req_line_detail_rec2.charge_subtype_code :=
1139                                               l_qp_lin_rec.charge_subtype_code;
1140          l_req_line_detail_rec2.include_on_returns_flag :=
1141                                           l_qp_lin_rec.include_on_returns_flag;
1142          l_req_line_detail_rec2.line_detail_type_code := 'LINE';
1143          l_req_line_detail_tbl (l_line_detl_tbl_ctr) := l_req_line_detail_rec2;
1144       END LOOP;
1145 
1146       p_req_line_detail_tbl      := l_req_line_detail_tbl;
1147       p_line_detl_tbl_ctr        := l_line_detl_tbl_ctr;
1148 
1149       -- end debug log
1150       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
1151       THEN
1152          fnd_log.STRING (fnd_log.level_procedure,
1153                          g_module ||
1154                          l_api_name,
1155                          '1000: Leaving ' ||
1156                          g_pkg_name ||
1157                          '.' ||
1158                          l_api_name
1159                         );
1160       END IF;
1161    END;
1162 
1163    FUNCTION get_cp_inv_id (
1164       p_id                                     NUMBER
1165    )
1166       RETURN NUMBER
1167    IS
1168       l_id                                    NUMBER;
1169       l_api_name                     CONSTANT VARCHAR2 (30)
1170                                                            := 'get_cp_inv_id';
1171    BEGIN
1172       -- start debug log
1173       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
1174       THEN
1175          fnd_log.STRING (fnd_log.level_procedure,
1176                          g_module ||
1177                          l_api_name,
1178                          '100: Entered ' ||
1179                          g_pkg_name ||
1180                          '.' ||
1181                          l_api_name
1182                         );
1183       END IF;
1184 
1185       SELECT inventory_item_id
1186         INTO l_id
1187         FROM csi_item_instances
1188        WHERE instance_id = p_id;
1189 
1190       -- end debug log
1191       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
1192       THEN
1193          fnd_log.STRING (fnd_log.level_procedure,
1194                          g_module ||
1195                          l_api_name,
1196                          '1000: Leaving ' ||
1197                          g_pkg_name ||
1198                          '.' ||
1199                          l_api_name
1200                         );
1201       END IF;
1202 
1203       RETURN l_id;
1204    EXCEPTION
1205       WHEN OTHERS
1206       THEN
1207          -- end debug log
1208          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
1209          THEN
1210             fnd_log.STRING (fnd_log.level_procedure,
1211                             g_module ||
1212                             l_api_name,
1213                             '4000: Leaving ' ||
1214                             g_pkg_name ||
1215                             '.' ||
1216                             l_api_name
1217                            );
1218          END IF;
1219 
1220          fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
1221          RETURN NULL;
1222    END;
1223 
1224    PROCEDURE build_cp_pa (
1225       p_inst_id                       IN       NUMBER,
1226       p_service_index                 IN       NUMBER,
1227       px_line_attr_tbl_ctr            IN OUT NOCOPY NUMBER,
1228       px_req_line_attr_tbl            IN OUT NOCOPY qp_preq_grp.line_attr_tbl_type
1229    )
1230    IS
1231       CURSOR l_topline_pa_csr
1232       IS
1233          SELECT pricing_context,
1234                 pricing_attribute1,
1235                 pricing_attribute2,
1236                 pricing_attribute3,
1237                 pricing_attribute4,
1238                 pricing_attribute5,
1239                 pricing_attribute6,
1240                 pricing_attribute7,
1241                 pricing_attribute8,
1242                 pricing_attribute9,
1243                 pricing_attribute10,
1244                 pricing_attribute11,
1245                 pricing_attribute12,
1246                 pricing_attribute13,
1247                 pricing_attribute14,
1248                 pricing_attribute15,
1249                 pricing_attribute16,
1250                 pricing_attribute17,
1251                 pricing_attribute18,
1252                 pricing_attribute19,
1253                 pricing_attribute20,
1254                 pricing_attribute21,
1255                 pricing_attribute22,
1256                 pricing_attribute23,
1257                 pricing_attribute24,
1258                 pricing_attribute25,
1259                 pricing_attribute26,
1260                 pricing_attribute27,
1261                 pricing_attribute28,
1262                 pricing_attribute29,
1263                 pricing_attribute30,
1264                 pricing_attribute31,
1265                 pricing_attribute32,
1266                 pricing_attribute33,
1267                 pricing_attribute34,
1268                 pricing_attribute35,
1269                 pricing_attribute36,
1270                 pricing_attribute37,
1271                 pricing_attribute38,
1272                 pricing_attribute39,
1273                 pricing_attribute40,
1274                 pricing_attribute41,
1275                 pricing_attribute42,
1276                 pricing_attribute43,
1277                 pricing_attribute44,
1278                 pricing_attribute45,
1279                 pricing_attribute46,
1280                 pricing_attribute47,
1281                 pricing_attribute48,
1282                 pricing_attribute49,
1283                 pricing_attribute50,
1284                 pricing_attribute51,
1285                 pricing_attribute52,
1286                 pricing_attribute53,
1287                 pricing_attribute54,
1288                 pricing_attribute55,
1289                 pricing_attribute56,
1290                 pricing_attribute57,
1291                 pricing_attribute58,
1292                 pricing_attribute59,
1293                 pricing_attribute60,
1294                 pricing_attribute61,
1295                 pricing_attribute62,
1296                 pricing_attribute63,
1297                 pricing_attribute64,
1298                 pricing_attribute65,
1299                 pricing_attribute66,
1300                 pricing_attribute67,
1301                 pricing_attribute68,
1302                 pricing_attribute69,
1303                 pricing_attribute70,
1304                 pricing_attribute71,
1305                 pricing_attribute72,
1306                 pricing_attribute73,
1307                 pricing_attribute74,
1308                 pricing_attribute75,
1309                 pricing_attribute76,
1310                 pricing_attribute77,
1311                 pricing_attribute78,
1312                 pricing_attribute79,
1313                 pricing_attribute80,
1314                 pricing_attribute81,
1315                 pricing_attribute82,
1316                 pricing_attribute83,
1317                 pricing_attribute84,
1318                 pricing_attribute85,
1319                 pricing_attribute86,
1320                 pricing_attribute87,
1321                 pricing_attribute88,
1322                 pricing_attribute89,
1323                 pricing_attribute90,
1324                 pricing_attribute91,
1325                 pricing_attribute92,
1326                 pricing_attribute93,
1327                 pricing_attribute94,
1328                 pricing_attribute95,
1329                 pricing_attribute96,
1330                 pricing_attribute97,
1331                 pricing_attribute98,
1332                 pricing_attribute99,
1333                 pricing_attribute100
1334            FROM csi_i_pricing_attribs a
1335           WHERE a.instance_id = p_inst_id;
1336 
1337       l_line_attr_tbl_ctr                     NUMBER;
1338       l_srv_csrrec                            l_topline_pa_csr%ROWTYPE;
1339       l_req_line_attr_rec2                    qp_preq_grp.line_attr_rec_type;
1340       l_api_name                     CONSTANT VARCHAR2 (30) := 'BUILD_CP_PA';
1341    BEGIN
1342       -- start debug log
1343       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
1344       THEN
1345          fnd_log.STRING (fnd_log.level_procedure,
1346                          g_module ||
1347                          l_api_name,
1348                          '100: Entered ' ||
1349                          g_pkg_name ||
1350                          '.' ||
1351                          l_api_name
1352                         );
1353       END IF;
1354 
1355       l_line_attr_tbl_ctr        := px_line_attr_tbl_ctr;
1356 
1357       --myerror('CTR VALUE IN SUB PROCEDURE IS ' || l_line_attr_tbl_ctr);
1358       FOR l_srv_csrrec IN l_topline_pa_csr
1359       LOOP
1360          IF l_srv_csrrec.pricing_attribute1 IS NOT NULL
1361          THEN
1362             --myerror('1 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute1);
1363             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1364                                           1;
1365             l_req_line_attr_rec2.line_index := p_service_index;
1366             l_req_line_attr_rec2.pricing_context :=
1367                                                   l_srv_csrrec.pricing_context;
1368             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE1';
1369             l_req_line_attr_rec2.pricing_attr_value_from :=
1370                                                l_srv_csrrec.pricing_attribute1;
1371             l_req_line_attr_rec2.validated_flag := 'N';
1372             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1373          END IF;
1374 
1375          IF l_srv_csrrec.pricing_attribute2 IS NOT NULL
1376          THEN
1377             --myerror('2 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute2);
1378             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1379                                           1;
1380             l_req_line_attr_rec2.line_index := p_service_index;
1381             l_req_line_attr_rec2.pricing_context :=
1382                                                   l_srv_csrrec.pricing_context;
1383             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE2';
1384             l_req_line_attr_rec2.pricing_attr_value_from :=
1385                                                l_srv_csrrec.pricing_attribute2;
1386             l_req_line_attr_rec2.validated_flag := 'N';
1387             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1388          END IF;
1389 
1390          IF l_srv_csrrec.pricing_attribute3 IS NOT NULL
1391          THEN
1392             --myerror('3 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute3);
1393             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1394                                           1;
1395             l_req_line_attr_rec2.line_index := p_service_index;
1396             l_req_line_attr_rec2.pricing_context :=
1397                                                   l_srv_csrrec.pricing_context;
1398             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE3';
1399             l_req_line_attr_rec2.pricing_attr_value_from :=
1400                                                l_srv_csrrec.pricing_attribute3;
1401             l_req_line_attr_rec2.validated_flag := 'N';
1402             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1403          END IF;
1404 
1405          IF l_srv_csrrec.pricing_attribute4 IS NOT NULL
1406          THEN
1407             --myerror('4 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute4);
1408             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1409                                           1;
1410             l_req_line_attr_rec2.line_index := p_service_index;
1411             l_req_line_attr_rec2.pricing_context :=
1412                                                   l_srv_csrrec.pricing_context;
1413             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE4';
1414             l_req_line_attr_rec2.pricing_attr_value_from :=
1415                                                l_srv_csrrec.pricing_attribute4;
1416             l_req_line_attr_rec2.validated_flag := 'N';
1417             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1418          END IF;
1419 
1420          IF l_srv_csrrec.pricing_attribute5 IS NOT NULL
1421          THEN
1422             --myerror('5 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute5);
1423             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1424                                           1;
1425             l_req_line_attr_rec2.line_index := p_service_index;
1426             l_req_line_attr_rec2.pricing_context :=
1427                                                   l_srv_csrrec.pricing_context;
1428             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE5';
1429             l_req_line_attr_rec2.pricing_attr_value_from :=
1430                                                l_srv_csrrec.pricing_attribute5;
1431             l_req_line_attr_rec2.validated_flag := 'N';
1432             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1433          END IF;
1434 
1435          IF l_srv_csrrec.pricing_attribute6 IS NOT NULL
1436          THEN
1437             --myerror('6 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute6);
1438             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1439                                           1;
1440             l_req_line_attr_rec2.line_index := p_service_index;
1441             l_req_line_attr_rec2.pricing_context :=
1442                                                   l_srv_csrrec.pricing_context;
1443             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE6';
1444             l_req_line_attr_rec2.pricing_attr_value_from :=
1445                                                l_srv_csrrec.pricing_attribute6;
1446             l_req_line_attr_rec2.validated_flag := 'N';
1447             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1448          END IF;
1449 
1450          IF l_srv_csrrec.pricing_attribute7 IS NOT NULL
1451          THEN
1452             --myerror('7 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute7);
1453             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1454                                           1;
1455             l_req_line_attr_rec2.line_index := p_service_index;
1456             l_req_line_attr_rec2.pricing_context :=
1457                                                   l_srv_csrrec.pricing_context;
1458             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE7';
1459             l_req_line_attr_rec2.pricing_attr_value_from :=
1460                                                l_srv_csrrec.pricing_attribute7;
1461             l_req_line_attr_rec2.validated_flag := 'N';
1462             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1463          END IF;
1464 
1465          IF l_srv_csrrec.pricing_attribute8 IS NOT NULL
1466          THEN
1467             --myerror('8 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute8);
1468             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1469                                           1;
1470             l_req_line_attr_rec2.line_index := p_service_index;
1471             l_req_line_attr_rec2.pricing_context :=
1472                                                   l_srv_csrrec.pricing_context;
1473             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE8';
1474             l_req_line_attr_rec2.pricing_attr_value_from :=
1475                                                l_srv_csrrec.pricing_attribute8;
1476             l_req_line_attr_rec2.validated_flag := 'N';
1477             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1478          END IF;
1479 
1480          IF l_srv_csrrec.pricing_attribute9 IS NOT NULL
1481          THEN
1482             --myerror('9 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute9);
1483             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1484                                           1;
1485             l_req_line_attr_rec2.line_index := p_service_index;
1486             l_req_line_attr_rec2.pricing_context :=
1487                                                   l_srv_csrrec.pricing_context;
1488             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE9';
1489             l_req_line_attr_rec2.pricing_attr_value_from :=
1490                                                l_srv_csrrec.pricing_attribute9;
1491             l_req_line_attr_rec2.validated_flag := 'N';
1492             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1493          END IF;
1494 
1495          IF l_srv_csrrec.pricing_attribute10 IS NOT NULL
1496          THEN
1497             --myerror('10 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute10);
1498             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1499                                           1;
1500             l_req_line_attr_rec2.line_index := p_service_index;
1501             l_req_line_attr_rec2.pricing_context :=
1502                                                   l_srv_csrrec.pricing_context;
1503             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE10';
1504             l_req_line_attr_rec2.pricing_attr_value_from :=
1505                                               l_srv_csrrec.pricing_attribute10;
1506             l_req_line_attr_rec2.validated_flag := 'N';
1507             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1508          END IF;
1509 
1510          IF l_srv_csrrec.pricing_attribute11 IS NOT NULL
1511          THEN
1512             --myerror('11 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute11);
1513             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1514                                           1;
1515             l_req_line_attr_rec2.line_index := p_service_index;
1516             l_req_line_attr_rec2.pricing_context :=
1517                                                   l_srv_csrrec.pricing_context;
1518             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE11';
1519             l_req_line_attr_rec2.pricing_attr_value_from :=
1520                                               l_srv_csrrec.pricing_attribute11;
1521             l_req_line_attr_rec2.validated_flag := 'N';
1522             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1523          END IF;
1524 
1525          IF l_srv_csrrec.pricing_attribute12 IS NOT NULL
1526          THEN
1527             --myerror('12 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute12);
1528             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1529                                           1;
1530             l_req_line_attr_rec2.line_index := p_service_index;
1531             l_req_line_attr_rec2.pricing_context :=
1532                                                   l_srv_csrrec.pricing_context;
1533             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE12';
1534             l_req_line_attr_rec2.pricing_attr_value_from :=
1535                                               l_srv_csrrec.pricing_attribute12;
1536             l_req_line_attr_rec2.validated_flag := 'N';
1537             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1538          END IF;
1539 
1540          IF l_srv_csrrec.pricing_attribute13 IS NOT NULL
1541          THEN
1542             --myerror('13 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute13);
1543             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1544                                           1;
1545             l_req_line_attr_rec2.line_index := p_service_index;
1546             l_req_line_attr_rec2.pricing_context :=
1547                                                   l_srv_csrrec.pricing_context;
1548             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE13';
1549             l_req_line_attr_rec2.pricing_attr_value_from :=
1550                                               l_srv_csrrec.pricing_attribute13;
1551             l_req_line_attr_rec2.validated_flag := 'N';
1552             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1553          END IF;
1554 
1555          IF l_srv_csrrec.pricing_attribute14 IS NOT NULL
1556          THEN
1557             --myerror('14 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute14);
1558             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1559                                           1;
1560             l_req_line_attr_rec2.line_index := p_service_index;
1561             l_req_line_attr_rec2.pricing_context :=
1562                                                   l_srv_csrrec.pricing_context;
1563             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE14';
1564             l_req_line_attr_rec2.pricing_attr_value_from :=
1565                                               l_srv_csrrec.pricing_attribute14;
1566             l_req_line_attr_rec2.validated_flag := 'N';
1567             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1568          END IF;
1569 
1570          IF l_srv_csrrec.pricing_attribute15 IS NOT NULL
1571          THEN
1572             --myerror('15 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute15);
1573             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1574                                           1;
1575             l_req_line_attr_rec2.line_index := p_service_index;
1576             l_req_line_attr_rec2.pricing_context :=
1577                                                   l_srv_csrrec.pricing_context;
1578             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE15';
1579             l_req_line_attr_rec2.pricing_attr_value_from :=
1580                                               l_srv_csrrec.pricing_attribute15;
1581             l_req_line_attr_rec2.validated_flag := 'N';
1582             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1583          END IF;
1584 
1585 --***** ADDED 10/25
1586          IF l_srv_csrrec.pricing_attribute16 IS NOT NULL
1587          THEN
1588             --myerror('16 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute16);
1589             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1590                                           1;
1591             l_req_line_attr_rec2.line_index := p_service_index;
1592             l_req_line_attr_rec2.pricing_context :=
1593                                                   l_srv_csrrec.pricing_context;
1594             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE16';
1595             l_req_line_attr_rec2.pricing_attr_value_from :=
1596                                               l_srv_csrrec.pricing_attribute16;
1597             l_req_line_attr_rec2.validated_flag := 'N';
1598             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1599          END IF;
1600 
1601          IF l_srv_csrrec.pricing_attribute17 IS NOT NULL
1602          THEN
1603             --myerror('17 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute17);
1604             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1605                                           1;
1606             l_req_line_attr_rec2.line_index := p_service_index;
1607             l_req_line_attr_rec2.pricing_context :=
1608                                                   l_srv_csrrec.pricing_context;
1609             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE17';
1610             l_req_line_attr_rec2.pricing_attr_value_from :=
1611                                               l_srv_csrrec.pricing_attribute17;
1612             l_req_line_attr_rec2.validated_flag := 'N';
1613             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1614          END IF;
1615 
1616          IF l_srv_csrrec.pricing_attribute18 IS NOT NULL
1617          THEN
1618             --myerror('18 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute18);
1619             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1620                                           1;
1621             l_req_line_attr_rec2.line_index := p_service_index;
1622             l_req_line_attr_rec2.pricing_context :=
1623                                                   l_srv_csrrec.pricing_context;
1624             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE18';
1625             l_req_line_attr_rec2.pricing_attr_value_from :=
1626                                               l_srv_csrrec.pricing_attribute18;
1627             l_req_line_attr_rec2.validated_flag := 'N';
1628             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1629          END IF;
1630 
1631          IF l_srv_csrrec.pricing_attribute19 IS NOT NULL
1632          THEN
1633             --myerror('19 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute19);
1634             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1635                                           1;
1636             l_req_line_attr_rec2.line_index := p_service_index;
1637             l_req_line_attr_rec2.pricing_context :=
1638                                                   l_srv_csrrec.pricing_context;
1639             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE19';
1640             l_req_line_attr_rec2.pricing_attr_value_from :=
1641                                               l_srv_csrrec.pricing_attribute19;
1642             l_req_line_attr_rec2.validated_flag := 'N';
1643             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1644          END IF;
1645 
1646          IF l_srv_csrrec.pricing_attribute20 IS NOT NULL
1647          THEN
1648             --myerror('20 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute20);
1649             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1650                                           1;
1651             l_req_line_attr_rec2.line_index := p_service_index;
1652             l_req_line_attr_rec2.pricing_context :=
1653                                                   l_srv_csrrec.pricing_context;
1654             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE20';
1655             l_req_line_attr_rec2.pricing_attr_value_from :=
1656                                               l_srv_csrrec.pricing_attribute20;
1657             l_req_line_attr_rec2.validated_flag := 'N';
1658             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1659          END IF;
1660 
1661          IF l_srv_csrrec.pricing_attribute21 IS NOT NULL
1662          THEN
1663             --myerror('21 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute21);
1664             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1665                                           1;
1666             l_req_line_attr_rec2.line_index := p_service_index;
1667             l_req_line_attr_rec2.pricing_context :=
1668                                                   l_srv_csrrec.pricing_context;
1669             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE21';
1670             l_req_line_attr_rec2.pricing_attr_value_from :=
1671                                               l_srv_csrrec.pricing_attribute21;
1672             l_req_line_attr_rec2.validated_flag := 'N';
1673             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1674          END IF;
1675 
1676          IF l_srv_csrrec.pricing_attribute22 IS NOT NULL
1677          THEN
1678             --myerror('22 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute22);
1679             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1680                                           1;
1681             l_req_line_attr_rec2.line_index := p_service_index;
1682             l_req_line_attr_rec2.pricing_context :=
1683                                                   l_srv_csrrec.pricing_context;
1684             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE22';
1685             l_req_line_attr_rec2.pricing_attr_value_from :=
1686                                               l_srv_csrrec.pricing_attribute22;
1687             l_req_line_attr_rec2.validated_flag := 'N';
1688             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1689          END IF;
1690 
1691          IF l_srv_csrrec.pricing_attribute23 IS NOT NULL
1692          THEN
1693             --myerror('23 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute23);
1694             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1695                                           1;
1696             l_req_line_attr_rec2.line_index := p_service_index;
1697             l_req_line_attr_rec2.pricing_context :=
1698                                                   l_srv_csrrec.pricing_context;
1699             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE23';
1700             l_req_line_attr_rec2.pricing_attr_value_from :=
1701                                               l_srv_csrrec.pricing_attribute23;
1702             l_req_line_attr_rec2.validated_flag := 'N';
1703             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1704          END IF;
1705 
1706          IF l_srv_csrrec.pricing_attribute24 IS NOT NULL
1707          THEN
1708             --myerror('24 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute24);
1709             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1710                                           1;
1711             l_req_line_attr_rec2.line_index := p_service_index;
1712             l_req_line_attr_rec2.pricing_context :=
1713                                                   l_srv_csrrec.pricing_context;
1714             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE24';
1715             l_req_line_attr_rec2.pricing_attr_value_from :=
1716                                               l_srv_csrrec.pricing_attribute24;
1717             l_req_line_attr_rec2.validated_flag := 'N';
1718             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1719          END IF;
1720 
1721          IF l_srv_csrrec.pricing_attribute25 IS NOT NULL
1722          THEN
1723             --myerror('25 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute25);
1724             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1725                                           1;
1726             l_req_line_attr_rec2.line_index := p_service_index;
1727             l_req_line_attr_rec2.pricing_context :=
1728                                                   l_srv_csrrec.pricing_context;
1729             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE25';
1730             l_req_line_attr_rec2.pricing_attr_value_from :=
1731                                               l_srv_csrrec.pricing_attribute25;
1732             l_req_line_attr_rec2.validated_flag := 'N';
1733             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1734          END IF;
1735 
1736          IF l_srv_csrrec.pricing_attribute26 IS NOT NULL
1737          THEN
1738             --myerror('26 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute26);
1739             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1740                                           1;
1741             l_req_line_attr_rec2.line_index := p_service_index;
1742             l_req_line_attr_rec2.pricing_context :=
1743                                                   l_srv_csrrec.pricing_context;
1744             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE26';
1745             l_req_line_attr_rec2.pricing_attr_value_from :=
1746                                               l_srv_csrrec.pricing_attribute26;
1747             l_req_line_attr_rec2.validated_flag := 'N';
1748             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1749          END IF;
1750 
1751          IF l_srv_csrrec.pricing_attribute27 IS NOT NULL
1752          THEN
1753             --myerror('27 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute27);
1754             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1755                                           1;
1756             l_req_line_attr_rec2.line_index := p_service_index;
1757             l_req_line_attr_rec2.pricing_context :=
1758                                                   l_srv_csrrec.pricing_context;
1759             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE27';
1760             l_req_line_attr_rec2.pricing_attr_value_from :=
1761                                               l_srv_csrrec.pricing_attribute27;
1762             l_req_line_attr_rec2.validated_flag := 'N';
1763             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1764          END IF;
1765 
1766          IF l_srv_csrrec.pricing_attribute28 IS NOT NULL
1767          THEN
1768             --myerror('28 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute28);
1769             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1770                                           1;
1771             l_req_line_attr_rec2.line_index := p_service_index;
1772             l_req_line_attr_rec2.pricing_context :=
1773                                                   l_srv_csrrec.pricing_context;
1774             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE28';
1775             l_req_line_attr_rec2.pricing_attr_value_from :=
1776                                               l_srv_csrrec.pricing_attribute28;
1777             l_req_line_attr_rec2.validated_flag := 'N';
1778             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1779          END IF;
1780 
1781          IF l_srv_csrrec.pricing_attribute29 IS NOT NULL
1782          THEN
1783             --myerror('29 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute29);
1784             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1785                                           1;
1786             l_req_line_attr_rec2.line_index := p_service_index;
1787             l_req_line_attr_rec2.pricing_context :=
1788                                                   l_srv_csrrec.pricing_context;
1789             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE29';
1790             l_req_line_attr_rec2.pricing_attr_value_from :=
1791                                               l_srv_csrrec.pricing_attribute29;
1792             l_req_line_attr_rec2.validated_flag := 'N';
1793             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1794          END IF;
1795 
1796          IF l_srv_csrrec.pricing_attribute30 IS NOT NULL
1797          THEN
1798             --myerror('30 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute30);
1799             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1800                                           1;
1801             l_req_line_attr_rec2.line_index := p_service_index;
1802             l_req_line_attr_rec2.pricing_context :=
1803                                                   l_srv_csrrec.pricing_context;
1804             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE30';
1805             l_req_line_attr_rec2.pricing_attr_value_from :=
1806                                               l_srv_csrrec.pricing_attribute30;
1807             l_req_line_attr_rec2.validated_flag := 'N';
1808             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1809          END IF;
1810 
1811          IF l_srv_csrrec.pricing_attribute31 IS NOT NULL
1812          THEN
1813             --myerror('31 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute31);
1814             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1815                                           1;
1816             l_req_line_attr_rec2.line_index := p_service_index;
1817             l_req_line_attr_rec2.pricing_context :=
1818                                                   l_srv_csrrec.pricing_context;
1819             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE31';
1820             l_req_line_attr_rec2.pricing_attr_value_from :=
1821                                               l_srv_csrrec.pricing_attribute31;
1822             l_req_line_attr_rec2.validated_flag := 'N';
1823             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1824          END IF;
1825 
1826          IF l_srv_csrrec.pricing_attribute32 IS NOT NULL
1827          THEN
1828             --myerror('32 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute32);
1829             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1830                                           1;
1831             l_req_line_attr_rec2.line_index := p_service_index;
1832             l_req_line_attr_rec2.pricing_context :=
1833                                                   l_srv_csrrec.pricing_context;
1834             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE32';
1835             l_req_line_attr_rec2.pricing_attr_value_from :=
1836                                               l_srv_csrrec.pricing_attribute32;
1837             l_req_line_attr_rec2.validated_flag := 'N';
1838             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1839          END IF;
1840 
1841          IF l_srv_csrrec.pricing_attribute33 IS NOT NULL
1842          THEN
1843             --myerror('33 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute33);
1844             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1845                                           1;
1846             l_req_line_attr_rec2.line_index := p_service_index;
1847             l_req_line_attr_rec2.pricing_context :=
1848                                                   l_srv_csrrec.pricing_context;
1849             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE33';
1850             l_req_line_attr_rec2.pricing_attr_value_from :=
1851                                               l_srv_csrrec.pricing_attribute33;
1852             l_req_line_attr_rec2.validated_flag := 'N';
1853             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1854          END IF;
1855 
1856          IF l_srv_csrrec.pricing_attribute34 IS NOT NULL
1857          THEN
1858             --myerror('34 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute34);
1859             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1860                                           1;
1861             l_req_line_attr_rec2.line_index := p_service_index;
1862             l_req_line_attr_rec2.pricing_context :=
1863                                                   l_srv_csrrec.pricing_context;
1864             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE34';
1865             l_req_line_attr_rec2.pricing_attr_value_from :=
1866                                               l_srv_csrrec.pricing_attribute34;
1867             l_req_line_attr_rec2.validated_flag := 'N';
1868             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1869          END IF;
1870 
1871          IF l_srv_csrrec.pricing_attribute35 IS NOT NULL
1872          THEN
1873             --myerror('35 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute35);
1874             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1875                                           1;
1876             l_req_line_attr_rec2.line_index := p_service_index;
1877             l_req_line_attr_rec2.pricing_context :=
1878                                                   l_srv_csrrec.pricing_context;
1879             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE35';
1880             l_req_line_attr_rec2.pricing_attr_value_from :=
1881                                               l_srv_csrrec.pricing_attribute35;
1882             l_req_line_attr_rec2.validated_flag := 'N';
1883             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1884          END IF;
1885 
1886          IF l_srv_csrrec.pricing_attribute36 IS NOT NULL
1887          THEN
1888             --myerror('36 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute36);
1889             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1890                                           1;
1891             l_req_line_attr_rec2.line_index := p_service_index;
1892             l_req_line_attr_rec2.pricing_context :=
1893                                                   l_srv_csrrec.pricing_context;
1894             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE36';
1895             l_req_line_attr_rec2.pricing_attr_value_from :=
1896                                               l_srv_csrrec.pricing_attribute36;
1897             l_req_line_attr_rec2.validated_flag := 'N';
1898             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1899          END IF;
1900 
1901          IF l_srv_csrrec.pricing_attribute37 IS NOT NULL
1902          THEN
1903             --myerror('37 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute37);
1904             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1905                                           1;
1906             l_req_line_attr_rec2.line_index := p_service_index;
1907             l_req_line_attr_rec2.pricing_context :=
1908                                                   l_srv_csrrec.pricing_context;
1909             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE37';
1910             l_req_line_attr_rec2.pricing_attr_value_from :=
1911                                               l_srv_csrrec.pricing_attribute37;
1912             l_req_line_attr_rec2.validated_flag := 'N';
1913             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1914          END IF;
1915 
1916          IF l_srv_csrrec.pricing_attribute38 IS NOT NULL
1917          THEN
1918             --myerror('38 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute38);
1919             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1920                                           1;
1921             l_req_line_attr_rec2.line_index := p_service_index;
1922             l_req_line_attr_rec2.pricing_context :=
1923                                                   l_srv_csrrec.pricing_context;
1924             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE38';
1925             l_req_line_attr_rec2.pricing_attr_value_from :=
1926                                               l_srv_csrrec.pricing_attribute38;
1927             l_req_line_attr_rec2.validated_flag := 'N';
1928             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1929          END IF;
1930 
1931          IF l_srv_csrrec.pricing_attribute39 IS NOT NULL
1932          THEN
1933             --myerror('39 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute39);
1934             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1935                                           1;
1936             l_req_line_attr_rec2.line_index := p_service_index;
1937             l_req_line_attr_rec2.pricing_context :=
1938                                                   l_srv_csrrec.pricing_context;
1939             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE39';
1940             l_req_line_attr_rec2.pricing_attr_value_from :=
1941                                               l_srv_csrrec.pricing_attribute39;
1942             l_req_line_attr_rec2.validated_flag := 'N';
1943             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1944          END IF;
1945 
1946          IF l_srv_csrrec.pricing_attribute40 IS NOT NULL
1947          THEN
1948             --myerror('40 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute40);
1949             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1950                                           1;
1951             l_req_line_attr_rec2.line_index := p_service_index;
1952             l_req_line_attr_rec2.pricing_context :=
1953                                                   l_srv_csrrec.pricing_context;
1954             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE40';
1955             l_req_line_attr_rec2.pricing_attr_value_from :=
1956                                               l_srv_csrrec.pricing_attribute40;
1957             l_req_line_attr_rec2.validated_flag := 'N';
1958             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1959          END IF;
1960 
1961          IF l_srv_csrrec.pricing_attribute41 IS NOT NULL
1962          THEN
1963             --myerror('41 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute41);
1964             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1965                                           1;
1966             l_req_line_attr_rec2.line_index := p_service_index;
1967             l_req_line_attr_rec2.pricing_context :=
1968                                                   l_srv_csrrec.pricing_context;
1969             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE41';
1970             l_req_line_attr_rec2.pricing_attr_value_from :=
1971                                               l_srv_csrrec.pricing_attribute41;
1972             l_req_line_attr_rec2.validated_flag := 'N';
1973             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1974          END IF;
1975 
1976          IF l_srv_csrrec.pricing_attribute42 IS NOT NULL
1977          THEN
1978             --myerror('42 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute42);
1979             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1980                                           1;
1981             l_req_line_attr_rec2.line_index := p_service_index;
1982             l_req_line_attr_rec2.pricing_context :=
1983                                                   l_srv_csrrec.pricing_context;
1984             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE42';
1985             l_req_line_attr_rec2.pricing_attr_value_from :=
1986                                               l_srv_csrrec.pricing_attribute42;
1987             l_req_line_attr_rec2.validated_flag := 'N';
1988             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
1989          END IF;
1990 
1991          IF l_srv_csrrec.pricing_attribute43 IS NOT NULL
1992          THEN
1993             --myerror('43 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute43);
1994             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
1995                                           1;
1996             l_req_line_attr_rec2.line_index := p_service_index;
1997             l_req_line_attr_rec2.pricing_context :=
1998                                                   l_srv_csrrec.pricing_context;
1999             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE43';
2000             l_req_line_attr_rec2.pricing_attr_value_from :=
2001                                               l_srv_csrrec.pricing_attribute43;
2002             l_req_line_attr_rec2.validated_flag := 'N';
2003             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2004          END IF;
2005 
2006          IF l_srv_csrrec.pricing_attribute44 IS NOT NULL
2007          THEN
2008             --myerror('44 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute44);
2009             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2010                                           1;
2011             l_req_line_attr_rec2.line_index := p_service_index;
2012             l_req_line_attr_rec2.pricing_context :=
2013                                                   l_srv_csrrec.pricing_context;
2014             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE44';
2015             l_req_line_attr_rec2.pricing_attr_value_from :=
2016                                               l_srv_csrrec.pricing_attribute44;
2017             l_req_line_attr_rec2.validated_flag := 'N';
2018             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2019          END IF;
2020 
2021          IF l_srv_csrrec.pricing_attribute45 IS NOT NULL
2022          THEN
2023             --myerror('45 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute45);
2024             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2025                                           1;
2026             l_req_line_attr_rec2.line_index := p_service_index;
2027             l_req_line_attr_rec2.pricing_context :=
2028                                                   l_srv_csrrec.pricing_context;
2029             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE45';
2030             l_req_line_attr_rec2.pricing_attr_value_from :=
2031                                               l_srv_csrrec.pricing_attribute45;
2032             l_req_line_attr_rec2.validated_flag := 'N';
2033             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2034          END IF;
2035 
2036          IF l_srv_csrrec.pricing_attribute46 IS NOT NULL
2037          THEN
2038             --myerror('46 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute46);
2039             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2040                                           1;
2041             l_req_line_attr_rec2.line_index := p_service_index;
2042             l_req_line_attr_rec2.pricing_context :=
2043                                                   l_srv_csrrec.pricing_context;
2044             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE46';
2045             l_req_line_attr_rec2.pricing_attr_value_from :=
2046                                               l_srv_csrrec.pricing_attribute46;
2047             l_req_line_attr_rec2.validated_flag := 'N';
2048             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2049          END IF;
2050 
2051          IF l_srv_csrrec.pricing_attribute47 IS NOT NULL
2052          THEN
2053             --myerror('47 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute47);
2054             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2055                                           1;
2056             l_req_line_attr_rec2.line_index := p_service_index;
2057             l_req_line_attr_rec2.pricing_context :=
2058                                                   l_srv_csrrec.pricing_context;
2059             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE47';
2060             l_req_line_attr_rec2.pricing_attr_value_from :=
2061                                               l_srv_csrrec.pricing_attribute47;
2062             l_req_line_attr_rec2.validated_flag := 'N';
2063             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2064          END IF;
2065 
2066          IF l_srv_csrrec.pricing_attribute48 IS NOT NULL
2067          THEN
2068             --myerror('48 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute48);
2069             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2070                                           1;
2071             l_req_line_attr_rec2.line_index := p_service_index;
2072             l_req_line_attr_rec2.pricing_context :=
2073                                                   l_srv_csrrec.pricing_context;
2074             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE48';
2075             l_req_line_attr_rec2.pricing_attr_value_from :=
2076                                               l_srv_csrrec.pricing_attribute48;
2077             l_req_line_attr_rec2.validated_flag := 'N';
2078             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2079          END IF;
2080 
2081          IF l_srv_csrrec.pricing_attribute49 IS NOT NULL
2082          THEN
2083             --myerror('49 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute49);
2084             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2085                                           1;
2086             l_req_line_attr_rec2.line_index := p_service_index;
2087             l_req_line_attr_rec2.pricing_context :=
2088                                                   l_srv_csrrec.pricing_context;
2089             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE49';
2090             l_req_line_attr_rec2.pricing_attr_value_from :=
2091                                               l_srv_csrrec.pricing_attribute49;
2092             l_req_line_attr_rec2.validated_flag := 'N';
2093             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2094          END IF;
2095 
2096          IF l_srv_csrrec.pricing_attribute50 IS NOT NULL
2097          THEN
2098             --myerror('50 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute50);
2099             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2100                                           1;
2101             l_req_line_attr_rec2.line_index := p_service_index;
2102             l_req_line_attr_rec2.pricing_context :=
2103                                                   l_srv_csrrec.pricing_context;
2104             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE50';
2105             l_req_line_attr_rec2.pricing_attr_value_from :=
2106                                               l_srv_csrrec.pricing_attribute50;
2107             l_req_line_attr_rec2.validated_flag := 'N';
2108             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2109          END IF;
2110 
2111          IF l_srv_csrrec.pricing_attribute51 IS NOT NULL
2112          THEN
2113             --myerror('51 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute51);
2114             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2115                                           1;
2116             l_req_line_attr_rec2.line_index := p_service_index;
2117             l_req_line_attr_rec2.pricing_context :=
2118                                                   l_srv_csrrec.pricing_context;
2119             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE51';
2120             l_req_line_attr_rec2.pricing_attr_value_from :=
2121                                               l_srv_csrrec.pricing_attribute51;
2122             l_req_line_attr_rec2.validated_flag := 'N';
2123             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2124          END IF;
2125 
2126          IF l_srv_csrrec.pricing_attribute52 IS NOT NULL
2127          THEN
2128             --myerror('52 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute52);
2129             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2130                                           1;
2131             l_req_line_attr_rec2.line_index := p_service_index;
2132             l_req_line_attr_rec2.pricing_context :=
2133                                                   l_srv_csrrec.pricing_context;
2134             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE52';
2135             l_req_line_attr_rec2.pricing_attr_value_from :=
2136                                               l_srv_csrrec.pricing_attribute52;
2137             l_req_line_attr_rec2.validated_flag := 'N';
2138             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2139          END IF;
2140 
2141          IF l_srv_csrrec.pricing_attribute53 IS NOT NULL
2142          THEN
2143             --myerror('53 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute53);
2144             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2145                                           1;
2146             l_req_line_attr_rec2.line_index := p_service_index;
2147             l_req_line_attr_rec2.pricing_context :=
2148                                                   l_srv_csrrec.pricing_context;
2149             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE53';
2150             l_req_line_attr_rec2.pricing_attr_value_from :=
2151                                               l_srv_csrrec.pricing_attribute53;
2152             l_req_line_attr_rec2.validated_flag := 'N';
2153             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2154          END IF;
2155 
2156          IF l_srv_csrrec.pricing_attribute54 IS NOT NULL
2157          THEN
2158             --myerror('54 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute54);
2159             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2160                                           1;
2161             l_req_line_attr_rec2.line_index := p_service_index;
2162             l_req_line_attr_rec2.pricing_context :=
2163                                                   l_srv_csrrec.pricing_context;
2164             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE54';
2165             l_req_line_attr_rec2.pricing_attr_value_from :=
2166                                               l_srv_csrrec.pricing_attribute54;
2167             l_req_line_attr_rec2.validated_flag := 'N';
2168             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2169          END IF;
2170 
2171          IF l_srv_csrrec.pricing_attribute55 IS NOT NULL
2172          THEN
2173             --myerror('55 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute55);
2174             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2175                                           1;
2176             l_req_line_attr_rec2.line_index := p_service_index;
2177             l_req_line_attr_rec2.pricing_context :=
2178                                                   l_srv_csrrec.pricing_context;
2179             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE55';
2180             l_req_line_attr_rec2.pricing_attr_value_from :=
2181                                               l_srv_csrrec.pricing_attribute55;
2182             l_req_line_attr_rec2.validated_flag := 'N';
2183             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2184          END IF;
2185 
2186          IF l_srv_csrrec.pricing_attribute56 IS NOT NULL
2187          THEN
2188             --myerror('56 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute56);
2189             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2190                                           1;
2191             l_req_line_attr_rec2.line_index := p_service_index;
2192             l_req_line_attr_rec2.pricing_context :=
2193                                                   l_srv_csrrec.pricing_context;
2194             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE56';
2195             l_req_line_attr_rec2.pricing_attr_value_from :=
2196                                               l_srv_csrrec.pricing_attribute56;
2197             l_req_line_attr_rec2.validated_flag := 'N';
2198             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2199          END IF;
2200 
2201          IF l_srv_csrrec.pricing_attribute57 IS NOT NULL
2202          THEN
2203             --myerror('57 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute57);
2204             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2205                                           1;
2206             l_req_line_attr_rec2.line_index := p_service_index;
2207             l_req_line_attr_rec2.pricing_context :=
2208                                                   l_srv_csrrec.pricing_context;
2209             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE57';
2210             l_req_line_attr_rec2.pricing_attr_value_from :=
2211                                               l_srv_csrrec.pricing_attribute57;
2212             l_req_line_attr_rec2.validated_flag := 'N';
2213             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2214          END IF;
2215 
2216          IF l_srv_csrrec.pricing_attribute58 IS NOT NULL
2217          THEN
2218             --myerror('58 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute58);
2219             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2220                                           1;
2221             l_req_line_attr_rec2.line_index := p_service_index;
2222             l_req_line_attr_rec2.pricing_context :=
2223                                                   l_srv_csrrec.pricing_context;
2224             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE58';
2225             l_req_line_attr_rec2.pricing_attr_value_from :=
2226                                               l_srv_csrrec.pricing_attribute58;
2227             l_req_line_attr_rec2.validated_flag := 'N';
2228             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2229          END IF;
2230 
2231          IF l_srv_csrrec.pricing_attribute59 IS NOT NULL
2232          THEN
2233             --myerror('59 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute59);
2234             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2235                                           1;
2236             l_req_line_attr_rec2.line_index := p_service_index;
2237             l_req_line_attr_rec2.pricing_context :=
2238                                                   l_srv_csrrec.pricing_context;
2239             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE59';
2240             l_req_line_attr_rec2.pricing_attr_value_from :=
2241                                               l_srv_csrrec.pricing_attribute59;
2242             l_req_line_attr_rec2.validated_flag := 'N';
2243             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2244          END IF;
2245 
2246          IF l_srv_csrrec.pricing_attribute60 IS NOT NULL
2247          THEN
2248             --myerror('60 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute60);
2249             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2250                                           1;
2251             l_req_line_attr_rec2.line_index := p_service_index;
2252             l_req_line_attr_rec2.pricing_context :=
2253                                                   l_srv_csrrec.pricing_context;
2254             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE60';
2255             l_req_line_attr_rec2.pricing_attr_value_from :=
2256                                               l_srv_csrrec.pricing_attribute60;
2257             l_req_line_attr_rec2.validated_flag := 'N';
2258             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2259          END IF;
2260 
2261          IF l_srv_csrrec.pricing_attribute61 IS NOT NULL
2262          THEN
2263             --myerror('61 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute61);
2264             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2265                                           1;
2266             l_req_line_attr_rec2.line_index := p_service_index;
2267             l_req_line_attr_rec2.pricing_context :=
2268                                                   l_srv_csrrec.pricing_context;
2269             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE61';
2270             l_req_line_attr_rec2.pricing_attr_value_from :=
2271                                               l_srv_csrrec.pricing_attribute61;
2272             l_req_line_attr_rec2.validated_flag := 'N';
2273             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2274          END IF;
2275 
2276          IF l_srv_csrrec.pricing_attribute62 IS NOT NULL
2277          THEN
2278             --myerror('62 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute62);
2279             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2280                                           1;
2281             l_req_line_attr_rec2.line_index := p_service_index;
2282             l_req_line_attr_rec2.pricing_context :=
2283                                                   l_srv_csrrec.pricing_context;
2284             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE62';
2285             l_req_line_attr_rec2.pricing_attr_value_from :=
2286                                               l_srv_csrrec.pricing_attribute62;
2287             l_req_line_attr_rec2.validated_flag := 'N';
2288             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2289          END IF;
2290 
2291          IF l_srv_csrrec.pricing_attribute63 IS NOT NULL
2292          THEN
2293             --myerror('63 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute63);
2294             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2295                                           1;
2296             l_req_line_attr_rec2.line_index := p_service_index;
2297             l_req_line_attr_rec2.pricing_context :=
2298                                                   l_srv_csrrec.pricing_context;
2299             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE63';
2300             l_req_line_attr_rec2.pricing_attr_value_from :=
2301                                               l_srv_csrrec.pricing_attribute63;
2302             l_req_line_attr_rec2.validated_flag := 'N';
2303             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2304          END IF;
2305 
2306          IF l_srv_csrrec.pricing_attribute64 IS NOT NULL
2307          THEN
2308             --myerror('64 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute64);
2309             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2310                                           1;
2311             l_req_line_attr_rec2.line_index := p_service_index;
2312             l_req_line_attr_rec2.pricing_context :=
2313                                                   l_srv_csrrec.pricing_context;
2314             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE64';
2315             l_req_line_attr_rec2.pricing_attr_value_from :=
2316                                               l_srv_csrrec.pricing_attribute64;
2317             l_req_line_attr_rec2.validated_flag := 'N';
2318             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2319          END IF;
2320 
2321          IF l_srv_csrrec.pricing_attribute65 IS NOT NULL
2322          THEN
2323             --myerror('65 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute65);
2324             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2325                                           1;
2326             l_req_line_attr_rec2.line_index := p_service_index;
2327             l_req_line_attr_rec2.pricing_context :=
2328                                                   l_srv_csrrec.pricing_context;
2329             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE65';
2330             l_req_line_attr_rec2.pricing_attr_value_from :=
2331                                               l_srv_csrrec.pricing_attribute65;
2332             l_req_line_attr_rec2.validated_flag := 'N';
2333             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2334          END IF;
2335 
2336          IF l_srv_csrrec.pricing_attribute66 IS NOT NULL
2337          THEN
2338             --myerror('66 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute66);
2339             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2340                                           1;
2341             l_req_line_attr_rec2.line_index := p_service_index;
2342             l_req_line_attr_rec2.pricing_context :=
2343                                                   l_srv_csrrec.pricing_context;
2344             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE66';
2345             l_req_line_attr_rec2.pricing_attr_value_from :=
2346                                               l_srv_csrrec.pricing_attribute66;
2347             l_req_line_attr_rec2.validated_flag := 'N';
2348             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2349          END IF;
2350 
2351          IF l_srv_csrrec.pricing_attribute67 IS NOT NULL
2352          THEN
2353             --myerror('67 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute67);
2354             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2355                                           1;
2356             l_req_line_attr_rec2.line_index := p_service_index;
2357             l_req_line_attr_rec2.pricing_context :=
2358                                                   l_srv_csrrec.pricing_context;
2359             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE67';
2360             l_req_line_attr_rec2.pricing_attr_value_from :=
2361                                               l_srv_csrrec.pricing_attribute67;
2362             l_req_line_attr_rec2.validated_flag := 'N';
2363             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2364          END IF;
2365 
2366          IF l_srv_csrrec.pricing_attribute68 IS NOT NULL
2367          THEN
2368             --myerror('68 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute68);
2369             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2370                                           1;
2371             l_req_line_attr_rec2.line_index := p_service_index;
2372             l_req_line_attr_rec2.pricing_context :=
2373                                                   l_srv_csrrec.pricing_context;
2374             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE68';
2375             l_req_line_attr_rec2.pricing_attr_value_from :=
2376                                               l_srv_csrrec.pricing_attribute68;
2377             l_req_line_attr_rec2.validated_flag := 'N';
2378             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2379          END IF;
2380 
2381          IF l_srv_csrrec.pricing_attribute69 IS NOT NULL
2382          THEN
2383             --myerror('69 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute69);
2384             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2385                                           1;
2386             l_req_line_attr_rec2.line_index := p_service_index;
2387             l_req_line_attr_rec2.pricing_context :=
2388                                                   l_srv_csrrec.pricing_context;
2389             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE69';
2390             l_req_line_attr_rec2.pricing_attr_value_from :=
2391                                               l_srv_csrrec.pricing_attribute69;
2392             l_req_line_attr_rec2.validated_flag := 'N';
2393             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2394          END IF;
2395 
2396          IF l_srv_csrrec.pricing_attribute70 IS NOT NULL
2397          THEN
2398             --myerror('70 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute70);
2399             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2400                                           1;
2401             l_req_line_attr_rec2.line_index := p_service_index;
2402             l_req_line_attr_rec2.pricing_context :=
2403                                                   l_srv_csrrec.pricing_context;
2404             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE70';
2405             l_req_line_attr_rec2.pricing_attr_value_from :=
2406                                               l_srv_csrrec.pricing_attribute70;
2407             l_req_line_attr_rec2.validated_flag := 'N';
2408             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2409          END IF;
2410 
2411          IF l_srv_csrrec.pricing_attribute71 IS NOT NULL
2412          THEN
2413             --myerror('71 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute71);
2414             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2415                                           1;
2416             l_req_line_attr_rec2.line_index := p_service_index;
2417             l_req_line_attr_rec2.pricing_context :=
2418                                                   l_srv_csrrec.pricing_context;
2419             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE71';
2420             l_req_line_attr_rec2.pricing_attr_value_from :=
2421                                               l_srv_csrrec.pricing_attribute71;
2422             l_req_line_attr_rec2.validated_flag := 'N';
2423             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2424          END IF;
2425 
2426          IF l_srv_csrrec.pricing_attribute72 IS NOT NULL
2427          THEN
2428             --myerror('72 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute72);
2429             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2430                                           1;
2431             l_req_line_attr_rec2.line_index := p_service_index;
2432             l_req_line_attr_rec2.pricing_context :=
2433                                                   l_srv_csrrec.pricing_context;
2434             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE72';
2435             l_req_line_attr_rec2.pricing_attr_value_from :=
2436                                               l_srv_csrrec.pricing_attribute72;
2437             l_req_line_attr_rec2.validated_flag := 'N';
2438             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2439          END IF;
2440 
2441          IF l_srv_csrrec.pricing_attribute73 IS NOT NULL
2442          THEN
2443             --myerror('73 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute73);
2444             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2445                                           1;
2446             l_req_line_attr_rec2.line_index := p_service_index;
2447             l_req_line_attr_rec2.pricing_context :=
2448                                                   l_srv_csrrec.pricing_context;
2449             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE73';
2450             l_req_line_attr_rec2.pricing_attr_value_from :=
2451                                               l_srv_csrrec.pricing_attribute73;
2452             l_req_line_attr_rec2.validated_flag := 'N';
2453             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2454          END IF;
2455 
2456          IF l_srv_csrrec.pricing_attribute74 IS NOT NULL
2457          THEN
2458             --myerror('74 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute74);
2459             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2460                                           1;
2461             l_req_line_attr_rec2.line_index := p_service_index;
2462             l_req_line_attr_rec2.pricing_context :=
2463                                                   l_srv_csrrec.pricing_context;
2464             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE74';
2465             l_req_line_attr_rec2.pricing_attr_value_from :=
2466                                               l_srv_csrrec.pricing_attribute74;
2467             l_req_line_attr_rec2.validated_flag := 'N';
2468             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2469          END IF;
2470 
2471          IF l_srv_csrrec.pricing_attribute75 IS NOT NULL
2472          THEN
2473             --myerror('75 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute75);
2474             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2475                                           1;
2476             l_req_line_attr_rec2.line_index := p_service_index;
2477             l_req_line_attr_rec2.pricing_context :=
2478                                                   l_srv_csrrec.pricing_context;
2479             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE75';
2480             l_req_line_attr_rec2.pricing_attr_value_from :=
2481                                               l_srv_csrrec.pricing_attribute75;
2482             l_req_line_attr_rec2.validated_flag := 'N';
2483             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2484          END IF;
2485 
2486          IF l_srv_csrrec.pricing_attribute76 IS NOT NULL
2487          THEN
2488             --myerror('76 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute76);
2489             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2490                                           1;
2491             l_req_line_attr_rec2.line_index := p_service_index;
2492             l_req_line_attr_rec2.pricing_context :=
2493                                                   l_srv_csrrec.pricing_context;
2494             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE76';
2495             l_req_line_attr_rec2.pricing_attr_value_from :=
2496                                               l_srv_csrrec.pricing_attribute76;
2497             l_req_line_attr_rec2.validated_flag := 'N';
2498             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2499          END IF;
2500 
2501          IF l_srv_csrrec.pricing_attribute77 IS NOT NULL
2502          THEN
2503             --myerror('77 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute77);
2504             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2505                                           1;
2506             l_req_line_attr_rec2.line_index := p_service_index;
2507             l_req_line_attr_rec2.pricing_context :=
2508                                                   l_srv_csrrec.pricing_context;
2509             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE77';
2510             l_req_line_attr_rec2.pricing_attr_value_from :=
2511                                               l_srv_csrrec.pricing_attribute77;
2512             l_req_line_attr_rec2.validated_flag := 'N';
2513             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2514          END IF;
2515 
2516          IF l_srv_csrrec.pricing_attribute78 IS NOT NULL
2517          THEN
2518             --myerror('78 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute78);
2519             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2520                                           1;
2521             l_req_line_attr_rec2.line_index := p_service_index;
2522             l_req_line_attr_rec2.pricing_context :=
2523                                                   l_srv_csrrec.pricing_context;
2524             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE78';
2525             l_req_line_attr_rec2.pricing_attr_value_from :=
2526                                               l_srv_csrrec.pricing_attribute78;
2527             l_req_line_attr_rec2.validated_flag := 'N';
2528             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2529          END IF;
2530 
2531          IF l_srv_csrrec.pricing_attribute79 IS NOT NULL
2532          THEN
2533             --myerror('79 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute79);
2534             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2535                                           1;
2536             l_req_line_attr_rec2.line_index := p_service_index;
2537             l_req_line_attr_rec2.pricing_context :=
2538                                                   l_srv_csrrec.pricing_context;
2539             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE79';
2540             l_req_line_attr_rec2.pricing_attr_value_from :=
2541                                               l_srv_csrrec.pricing_attribute79;
2542             l_req_line_attr_rec2.validated_flag := 'N';
2543             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2544          END IF;
2545 
2546          IF l_srv_csrrec.pricing_attribute80 IS NOT NULL
2547          THEN
2548             --myerror('80 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute80);
2549             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2550                                           1;
2551             l_req_line_attr_rec2.line_index := p_service_index;
2552             l_req_line_attr_rec2.pricing_context :=
2553                                                   l_srv_csrrec.pricing_context;
2554             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE80';
2555             l_req_line_attr_rec2.pricing_attr_value_from :=
2556                                               l_srv_csrrec.pricing_attribute80;
2557             l_req_line_attr_rec2.validated_flag := 'N';
2558             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2559          END IF;
2560 
2561          IF l_srv_csrrec.pricing_attribute81 IS NOT NULL
2562          THEN
2563             --myerror('81 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute81);
2564             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2565                                           1;
2566             l_req_line_attr_rec2.line_index := p_service_index;
2567             l_req_line_attr_rec2.pricing_context :=
2568                                                   l_srv_csrrec.pricing_context;
2569             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE81';
2570             l_req_line_attr_rec2.pricing_attr_value_from :=
2571                                               l_srv_csrrec.pricing_attribute81;
2572             l_req_line_attr_rec2.validated_flag := 'N';
2573             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2574          END IF;
2575 
2576          IF l_srv_csrrec.pricing_attribute82 IS NOT NULL
2577          THEN
2578             --myerror('82 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute82);
2579             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2580                                           1;
2581             l_req_line_attr_rec2.line_index := p_service_index;
2582             l_req_line_attr_rec2.pricing_context :=
2583                                                   l_srv_csrrec.pricing_context;
2584             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE82';
2585             l_req_line_attr_rec2.pricing_attr_value_from :=
2586                                               l_srv_csrrec.pricing_attribute82;
2587             l_req_line_attr_rec2.validated_flag := 'N';
2588             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2589          END IF;
2590 
2591          IF l_srv_csrrec.pricing_attribute83 IS NOT NULL
2592          THEN
2593             --myerror('83 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute83);
2594             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2595                                           1;
2596             l_req_line_attr_rec2.line_index := p_service_index;
2597             l_req_line_attr_rec2.pricing_context :=
2598                                                   l_srv_csrrec.pricing_context;
2599             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE83';
2600             l_req_line_attr_rec2.pricing_attr_value_from :=
2601                                               l_srv_csrrec.pricing_attribute83;
2602             l_req_line_attr_rec2.validated_flag := 'N';
2603             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2604          END IF;
2605 
2606          IF l_srv_csrrec.pricing_attribute84 IS NOT NULL
2607          THEN
2608             --myerror('84 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute84);
2609             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2610                                           1;
2611             l_req_line_attr_rec2.line_index := p_service_index;
2612             l_req_line_attr_rec2.pricing_context :=
2613                                                   l_srv_csrrec.pricing_context;
2614             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE84';
2615             l_req_line_attr_rec2.pricing_attr_value_from :=
2616                                               l_srv_csrrec.pricing_attribute84;
2617             l_req_line_attr_rec2.validated_flag := 'N';
2618             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2619          END IF;
2620 
2621          IF l_srv_csrrec.pricing_attribute85 IS NOT NULL
2622          THEN
2623             --myerror('85 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute85);
2624             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2625                                           1;
2626             l_req_line_attr_rec2.line_index := p_service_index;
2627             l_req_line_attr_rec2.pricing_context :=
2628                                                   l_srv_csrrec.pricing_context;
2629             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE85';
2630             l_req_line_attr_rec2.pricing_attr_value_from :=
2631                                               l_srv_csrrec.pricing_attribute85;
2632             l_req_line_attr_rec2.validated_flag := 'N';
2633             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2634          END IF;
2635 
2636          IF l_srv_csrrec.pricing_attribute86 IS NOT NULL
2637          THEN
2638             --myerror('86 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute86);
2639             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2640                                           1;
2641             l_req_line_attr_rec2.line_index := p_service_index;
2642             l_req_line_attr_rec2.pricing_context :=
2643                                                   l_srv_csrrec.pricing_context;
2644             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE86';
2645             l_req_line_attr_rec2.pricing_attr_value_from :=
2646                                               l_srv_csrrec.pricing_attribute86;
2647             l_req_line_attr_rec2.validated_flag := 'N';
2648             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2649          END IF;
2650 
2651          IF l_srv_csrrec.pricing_attribute87 IS NOT NULL
2652          THEN
2653             --myerror('87 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute87);
2654             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2655                                           1;
2656             l_req_line_attr_rec2.line_index := p_service_index;
2657             l_req_line_attr_rec2.pricing_context :=
2658                                                   l_srv_csrrec.pricing_context;
2659             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE87';
2660             l_req_line_attr_rec2.pricing_attr_value_from :=
2661                                               l_srv_csrrec.pricing_attribute87;
2662             l_req_line_attr_rec2.validated_flag := 'N';
2663             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2664          END IF;
2665 
2666          IF l_srv_csrrec.pricing_attribute88 IS NOT NULL
2667          THEN
2668             --myerror('88 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute88);
2669             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2670                                           1;
2671             l_req_line_attr_rec2.line_index := p_service_index;
2672             l_req_line_attr_rec2.pricing_context :=
2673                                                   l_srv_csrrec.pricing_context;
2674             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE88';
2675             l_req_line_attr_rec2.pricing_attr_value_from :=
2676                                               l_srv_csrrec.pricing_attribute88;
2677             l_req_line_attr_rec2.validated_flag := 'N';
2678             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2679          END IF;
2680 
2681          IF l_srv_csrrec.pricing_attribute89 IS NOT NULL
2682          THEN
2683             --myerror('89 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute89);
2684             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2685                                           1;
2686             l_req_line_attr_rec2.line_index := p_service_index;
2687             l_req_line_attr_rec2.pricing_context :=
2688                                                   l_srv_csrrec.pricing_context;
2689             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE89';
2690             l_req_line_attr_rec2.pricing_attr_value_from :=
2691                                               l_srv_csrrec.pricing_attribute89;
2692             l_req_line_attr_rec2.validated_flag := 'N';
2693             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2694          END IF;
2695 
2696          IF l_srv_csrrec.pricing_attribute90 IS NOT NULL
2697          THEN
2698             --myerror('90 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute90);
2699             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2700                                           1;
2701             l_req_line_attr_rec2.line_index := p_service_index;
2702             l_req_line_attr_rec2.pricing_context :=
2703                                                   l_srv_csrrec.pricing_context;
2704             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE90';
2705             l_req_line_attr_rec2.pricing_attr_value_from :=
2706                                               l_srv_csrrec.pricing_attribute90;
2707             l_req_line_attr_rec2.validated_flag := 'N';
2708             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2709          END IF;
2710 
2711          IF l_srv_csrrec.pricing_attribute91 IS NOT NULL
2712          THEN
2713             --myerror('91 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute91);
2714             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2715                                           1;
2716             l_req_line_attr_rec2.line_index := p_service_index;
2717             l_req_line_attr_rec2.pricing_context :=
2718                                                   l_srv_csrrec.pricing_context;
2719             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE91';
2720             l_req_line_attr_rec2.pricing_attr_value_from :=
2721                                               l_srv_csrrec.pricing_attribute91;
2722             l_req_line_attr_rec2.validated_flag := 'N';
2723             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2724          END IF;
2725 
2726          IF l_srv_csrrec.pricing_attribute92 IS NOT NULL
2727          THEN
2728             --myerror('92 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute92);
2729             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2730                                           1;
2731             l_req_line_attr_rec2.line_index := p_service_index;
2732             l_req_line_attr_rec2.pricing_context :=
2733                                                   l_srv_csrrec.pricing_context;
2734             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE92';
2735             l_req_line_attr_rec2.pricing_attr_value_from :=
2736                                               l_srv_csrrec.pricing_attribute92;
2737             l_req_line_attr_rec2.validated_flag := 'N';
2738             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2739          END IF;
2740 
2741          IF l_srv_csrrec.pricing_attribute93 IS NOT NULL
2742          THEN
2743             --myerror('93 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute93);
2744             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2745                                           1;
2746             l_req_line_attr_rec2.line_index := p_service_index;
2747             l_req_line_attr_rec2.pricing_context :=
2748                                                   l_srv_csrrec.pricing_context;
2749             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE93';
2750             l_req_line_attr_rec2.pricing_attr_value_from :=
2751                                               l_srv_csrrec.pricing_attribute93;
2752             l_req_line_attr_rec2.validated_flag := 'N';
2753             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2754          END IF;
2755 
2756          IF l_srv_csrrec.pricing_attribute94 IS NOT NULL
2757          THEN
2758             --myerror('94 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute94);
2759             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2760                                           1;
2761             l_req_line_attr_rec2.line_index := p_service_index;
2762             l_req_line_attr_rec2.pricing_context :=
2763                                                   l_srv_csrrec.pricing_context;
2764             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE94';
2765             l_req_line_attr_rec2.pricing_attr_value_from :=
2766                                               l_srv_csrrec.pricing_attribute94;
2767             l_req_line_attr_rec2.validated_flag := 'N';
2768             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2769          END IF;
2770 
2771          IF l_srv_csrrec.pricing_attribute95 IS NOT NULL
2772          THEN
2773             --myerror('95 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute95);
2774             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2775                                           1;
2776             l_req_line_attr_rec2.line_index := p_service_index;
2777             l_req_line_attr_rec2.pricing_context :=
2778                                                   l_srv_csrrec.pricing_context;
2779             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE95';
2780             l_req_line_attr_rec2.pricing_attr_value_from :=
2781                                               l_srv_csrrec.pricing_attribute95;
2782             l_req_line_attr_rec2.validated_flag := 'N';
2783             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2784          END IF;
2785 
2786          IF l_srv_csrrec.pricing_attribute96 IS NOT NULL
2787          THEN
2788             --myerror('96 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute96);
2789             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2790                                           1;
2791             l_req_line_attr_rec2.line_index := p_service_index;
2792             l_req_line_attr_rec2.pricing_context :=
2793                                                   l_srv_csrrec.pricing_context;
2794             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE96';
2795             l_req_line_attr_rec2.pricing_attr_value_from :=
2796                                               l_srv_csrrec.pricing_attribute96;
2797             l_req_line_attr_rec2.validated_flag := 'N';
2798             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2799          END IF;
2800 
2801          IF l_srv_csrrec.pricing_attribute97 IS NOT NULL
2802          THEN
2803             --myerror('97 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute97);
2804             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2805                                           1;
2806             l_req_line_attr_rec2.line_index := p_service_index;
2807             l_req_line_attr_rec2.pricing_context :=
2808                                                   l_srv_csrrec.pricing_context;
2809             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE97';
2810             l_req_line_attr_rec2.pricing_attr_value_from :=
2811                                               l_srv_csrrec.pricing_attribute97;
2812             l_req_line_attr_rec2.validated_flag := 'N';
2813             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2814          END IF;
2815 
2816          IF l_srv_csrrec.pricing_attribute98 IS NOT NULL
2817          THEN
2818             --myerror('98 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute98);
2819             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2820                                           1;
2821             l_req_line_attr_rec2.line_index := p_service_index;
2822             l_req_line_attr_rec2.pricing_context :=
2823                                                   l_srv_csrrec.pricing_context;
2824             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE98';
2825             l_req_line_attr_rec2.pricing_attr_value_from :=
2826                                               l_srv_csrrec.pricing_attribute98;
2827             l_req_line_attr_rec2.validated_flag := 'N';
2828             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2829          END IF;
2830 
2831          IF l_srv_csrrec.pricing_attribute99 IS NOT NULL
2832          THEN
2833             --myerror('99 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute99);
2834             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2835                                           1;
2836             l_req_line_attr_rec2.line_index := p_service_index;
2837             l_req_line_attr_rec2.pricing_context :=
2838                                                   l_srv_csrrec.pricing_context;
2839             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE99';
2840             l_req_line_attr_rec2.pricing_attr_value_from :=
2841                                               l_srv_csrrec.pricing_attribute99;
2842             l_req_line_attr_rec2.validated_flag := 'N';
2843             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2844          END IF;
2845 
2846          IF l_srv_csrrec.pricing_attribute100 IS NOT NULL
2847          THEN
2848             --myerror('100 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute100);
2849             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
2850                                           1;
2851             l_req_line_attr_rec2.line_index := p_service_index;
2852             l_req_line_attr_rec2.pricing_context :=
2853                                                   l_srv_csrrec.pricing_context;
2854             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE100';
2855             l_req_line_attr_rec2.pricing_attr_value_from :=
2856                                              l_srv_csrrec.pricing_attribute100;
2857             l_req_line_attr_rec2.validated_flag := 'N';
2858             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
2859          END IF;
2860 --***** ADDED 10/25
2861       END LOOP;
2862 
2863       px_line_attr_tbl_ctr       := l_line_attr_tbl_ctr;
2864 
2865       -- end debug log
2866       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
2867       THEN
2868          fnd_log.STRING (fnd_log.level_procedure,
2869                          g_module ||
2870                          l_api_name,
2871                          '1000: Leaving ' ||
2872                          g_pkg_name ||
2873                          '.' ||
2874                          l_api_name
2875                         );
2876       END IF;
2877    END;                                                          --BUILD_CP_PA
2878 
2879    PROCEDURE build_top_pa (
2880       p_cle_id                        IN       NUMBER,
2881       p_service_index                 IN       NUMBER,
2882       px_line_attr_tbl_ctr            IN OUT NOCOPY NUMBER,
2883       px_req_line_attr_tbl            IN OUT NOCOPY qp_preq_grp.line_attr_tbl_type
2884    )
2885    IS
2886   -- bug 4650072 (forward port bug 4884329), added function trim for all attributes as null was saved as a space character
2887       CURSOR l_topline_pa_csr
2888       IS
2889          SELECT pricing_context,
2890                 TRIM(pricing_attribute1) pricing_attribute1,
2891                 TRIM(pricing_attribute2) pricing_attribute2,
2892                 TRIM(pricing_attribute3) pricing_attribute3,
2893                 TRIM(pricing_attribute4) pricing_attribute4,
2894                 TRIM(pricing_attribute5) pricing_attribute5,
2895                 TRIM(pricing_attribute6) pricing_attribute6,
2896                 TRIM(pricing_attribute7) pricing_attribute7,
2897                 TRIM(pricing_attribute8) pricing_attribute8,
2898                 TRIM(pricing_attribute9) pricing_attribute9,
2899                 TRIM(pricing_attribute10) pricing_attribute10,
2900                 TRIM(pricing_attribute11) pricing_attribute11,
2901                 TRIM(pricing_attribute12) pricing_attribute12,
2902                 TRIM(pricing_attribute13) pricing_attribute13,
2903                 TRIM(pricing_attribute14) pricing_attribute14,
2904                 TRIM(pricing_attribute15) pricing_attribute15,
2905                 TRIM(pricing_attribute16) pricing_attribute16,
2906                 TRIM(pricing_attribute17) pricing_attribute17,
2907                 TRIM(pricing_attribute18) pricing_attribute18,
2908                 TRIM(pricing_attribute19) pricing_attribute19,
2909                 TRIM(pricing_attribute20) pricing_attribute20,
2910                 TRIM(pricing_attribute21) pricing_attribute21,
2911                 TRIM(pricing_attribute22) pricing_attribute22,
2912                 TRIM(pricing_attribute23) pricing_attribute23,
2913                 TRIM(pricing_attribute24) pricing_attribute24,
2914                 TRIM(pricing_attribute25) pricing_attribute25,
2915                 TRIM(pricing_attribute26) pricing_attribute26,
2916                 TRIM(pricing_attribute27) pricing_attribute27,
2917                 TRIM(pricing_attribute28) pricing_attribute28,
2918                 TRIM(pricing_attribute29) pricing_attribute29,
2919                 TRIM(pricing_attribute30) pricing_attribute30,
2920                 TRIM(pricing_attribute31) pricing_attribute31,
2921                 TRIM(pricing_attribute32) pricing_attribute32,
2922                 TRIM(pricing_attribute33) pricing_attribute33,
2923                 TRIM(pricing_attribute34) pricing_attribute34,
2924                 TRIM(pricing_attribute35) pricing_attribute35,
2925                 TRIM(pricing_attribute36) pricing_attribute36,
2926                 TRIM(pricing_attribute37) pricing_attribute37,
2927                 TRIM(pricing_attribute38) pricing_attribute38,
2928                 TRIM(pricing_attribute39) pricing_attribute39,
2929                 TRIM(pricing_attribute40) pricing_attribute40,
2930                 TRIM(pricing_attribute41) pricing_attribute41,
2931                 TRIM(pricing_attribute42) pricing_attribute42,
2932                 TRIM(pricing_attribute43) pricing_attribute43,
2933                 TRIM(pricing_attribute44) pricing_attribute44,
2934                 TRIM(pricing_attribute45) pricing_attribute45,
2935                 TRIM(pricing_attribute46) pricing_attribute46,
2936                 TRIM(pricing_attribute47) pricing_attribute47,
2937                 TRIM(pricing_attribute48) pricing_attribute48,
2938                 TRIM(pricing_attribute49) pricing_attribute49,
2939                 TRIM(pricing_attribute50) pricing_attribute50,
2940                 TRIM(pricing_attribute51) pricing_attribute51,
2941                 TRIM(pricing_attribute52) pricing_attribute52,
2942                 TRIM(pricing_attribute53) pricing_attribute53,
2943                 TRIM(pricing_attribute54) pricing_attribute54,
2944                 TRIM(pricing_attribute55) pricing_attribute55,
2945                 TRIM(pricing_attribute56) pricing_attribute56,
2946                 TRIM(pricing_attribute57) pricing_attribute57,
2947                 TRIM(pricing_attribute58) pricing_attribute58,
2948                 TRIM(pricing_attribute59) pricing_attribute59,
2949                 TRIM(pricing_attribute60) pricing_attribute60,
2950                 TRIM(pricing_attribute61) pricing_attribute61,
2951                 TRIM(pricing_attribute62) pricing_attribute62,
2952                 TRIM(pricing_attribute63) pricing_attribute63,
2953                 TRIM(pricing_attribute64) pricing_attribute64,
2954                 TRIM(pricing_attribute65) pricing_attribute65,
2955                 TRIM(pricing_attribute66) pricing_attribute66,
2956                 TRIM(pricing_attribute67) pricing_attribute67,
2957                 TRIM(pricing_attribute68) pricing_attribute68,
2958                 TRIM(pricing_attribute69) pricing_attribute69,
2959                 TRIM(pricing_attribute70) pricing_attribute70,
2960                 TRIM(pricing_attribute71) pricing_attribute71,
2961                 TRIM(pricing_attribute72) pricing_attribute72,
2962                 TRIM(pricing_attribute73) pricing_attribute73,
2963                 TRIM(pricing_attribute74) pricing_attribute74,
2964                 TRIM(pricing_attribute75) pricing_attribute75,
2965                 TRIM(pricing_attribute76) pricing_attribute76,
2966                 TRIM(pricing_attribute77) pricing_attribute77,
2967                 TRIM(pricing_attribute78) pricing_attribute78,
2968                 TRIM(pricing_attribute79) pricing_attribute79,
2969                 TRIM(pricing_attribute80) pricing_attribute80,
2970                 TRIM(pricing_attribute81) pricing_attribute81,
2971                 TRIM(pricing_attribute82) pricing_attribute82,
2972                 TRIM(pricing_attribute83) pricing_attribute83,
2973                 TRIM(pricing_attribute84) pricing_attribute84,
2974                 TRIM(pricing_attribute85) pricing_attribute85,
2975                 TRIM(pricing_attribute86) pricing_attribute86,
2976                 TRIM(pricing_attribute87) pricing_attribute87,
2977                 TRIM(pricing_attribute88) pricing_attribute88,
2978                 TRIM(pricing_attribute89) pricing_attribute89,
2979                 TRIM(pricing_attribute90) pricing_attribute90,
2980                 TRIM(pricing_attribute91) pricing_attribute91,
2981                 TRIM(pricing_attribute92) pricing_attribute92,
2982                 TRIM(pricing_attribute93) pricing_attribute93,
2983                 TRIM(pricing_attribute94) pricing_attribute94,
2984                 TRIM(pricing_attribute95) pricing_attribute95,
2985                 TRIM(pricing_attribute96) pricing_attribute96,
2986                 TRIM(pricing_attribute97) pricing_attribute97,
2987                 TRIM(pricing_attribute98) pricing_attribute98,
2988                 TRIM(pricing_attribute99) pricing_attribute99,
2989                 TRIM(pricing_attribute100) pricing_attribute100
2990            FROM okc_price_att_values_v a
2991           WHERE a.cle_id = p_cle_id;
2992 
2993       l_line_attr_tbl_ctr                     NUMBER;
2994       l_srv_csrrec                            l_topline_pa_csr%ROWTYPE;
2995       l_req_line_attr_rec2                    qp_preq_grp.line_attr_rec_type;
2996       l_api_name                     CONSTANT VARCHAR2 (30) := 'BUILD_TOP_PA';
2997    BEGIN
2998       -- start debug log
2999       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
3000       THEN
3001          fnd_log.STRING (fnd_log.level_procedure,
3002                          g_module ||
3003                          l_api_name,
3004                          '100: Entered ' ||
3005                          g_pkg_name ||
3006                          '.' ||
3007                          l_api_name
3008                         );
3009       END IF;
3010 
3011       l_line_attr_tbl_ctr        := px_line_attr_tbl_ctr;
3012 
3013       FOR l_srv_csrrec IN l_topline_pa_csr
3014       LOOP
3015          IF l_srv_csrrec.pricing_attribute1 IS NOT NULL
3016          THEN
3017             --myerror('1 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute1);
3018             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3019                                           1;
3020             l_req_line_attr_rec2.line_index := p_service_index;
3021             l_req_line_attr_rec2.pricing_context :=
3022                                                   l_srv_csrrec.pricing_context;
3023             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE1';
3024             l_req_line_attr_rec2.pricing_attr_value_from :=
3025                                                l_srv_csrrec.pricing_attribute1;
3026             l_req_line_attr_rec2.validated_flag := 'N';
3027             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3028          END IF;
3029 
3030          IF l_srv_csrrec.pricing_attribute2 IS NOT NULL
3031          THEN
3032             --myerror('2 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute2);
3033             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3034                                           1;
3035             l_req_line_attr_rec2.line_index := p_service_index;
3036             l_req_line_attr_rec2.pricing_context :=
3037                                                   l_srv_csrrec.pricing_context;
3038             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE2';
3039             l_req_line_attr_rec2.pricing_attr_value_from :=
3040                                                l_srv_csrrec.pricing_attribute2;
3041             l_req_line_attr_rec2.validated_flag := 'N';
3042             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3043          END IF;
3044 
3045          IF l_srv_csrrec.pricing_attribute3 IS NOT NULL
3046          THEN
3047             --myerror('3 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute3);
3048             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3049                                           1;
3050             l_req_line_attr_rec2.line_index := p_service_index;
3051             l_req_line_attr_rec2.pricing_context :=
3052                                                   l_srv_csrrec.pricing_context;
3053             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE3';
3054             l_req_line_attr_rec2.pricing_attr_value_from :=
3055                                                l_srv_csrrec.pricing_attribute3;
3056             l_req_line_attr_rec2.validated_flag := 'N';
3057             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3058          END IF;
3059 
3060          IF l_srv_csrrec.pricing_attribute4 IS NOT NULL
3061          THEN
3062             --myerror('4 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute4);
3063             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3064                                           1;
3065             l_req_line_attr_rec2.line_index := p_service_index;
3066             l_req_line_attr_rec2.pricing_context :=
3067                                                   l_srv_csrrec.pricing_context;
3068             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE4';
3069             l_req_line_attr_rec2.pricing_attr_value_from :=
3070                                                l_srv_csrrec.pricing_attribute4;
3071             l_req_line_attr_rec2.validated_flag := 'N';
3072             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3073          END IF;
3074 
3075          IF l_srv_csrrec.pricing_attribute5 IS NOT NULL
3076          THEN
3077             --myerror('5 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute5);
3078             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3079                                           1;
3080             l_req_line_attr_rec2.line_index := p_service_index;
3081             l_req_line_attr_rec2.pricing_context :=
3082                                                   l_srv_csrrec.pricing_context;
3083             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE5';
3084             l_req_line_attr_rec2.pricing_attr_value_from :=
3085                                                l_srv_csrrec.pricing_attribute5;
3086             l_req_line_attr_rec2.validated_flag := 'N';
3087             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3088          END IF;
3089 
3090          IF l_srv_csrrec.pricing_attribute6 IS NOT NULL
3091          THEN
3092             --myerror('6 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute6);
3093             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3094                                           1;
3095             l_req_line_attr_rec2.line_index := p_service_index;
3096             l_req_line_attr_rec2.pricing_context :=
3097                                                   l_srv_csrrec.pricing_context;
3098             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE6';
3099             l_req_line_attr_rec2.pricing_attr_value_from :=
3100                                                l_srv_csrrec.pricing_attribute6;
3101             l_req_line_attr_rec2.validated_flag := 'N';
3102             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3103          END IF;
3104 
3105          IF l_srv_csrrec.pricing_attribute7 IS NOT NULL
3106          THEN
3107             --myerror('7 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute7);
3108             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3109                                           1;
3110             l_req_line_attr_rec2.line_index := p_service_index;
3111             l_req_line_attr_rec2.pricing_context :=
3112                                                   l_srv_csrrec.pricing_context;
3113             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE7';
3114             l_req_line_attr_rec2.pricing_attr_value_from :=
3115                                                l_srv_csrrec.pricing_attribute7;
3116             l_req_line_attr_rec2.validated_flag := 'N';
3117             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3118          END IF;
3119 
3120          IF l_srv_csrrec.pricing_attribute8 IS NOT NULL
3121          THEN
3122             --myerror('8 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute8);
3123             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3124                                           1;
3125             l_req_line_attr_rec2.line_index := p_service_index;
3126             l_req_line_attr_rec2.pricing_context :=
3127                                                   l_srv_csrrec.pricing_context;
3128             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE8';
3129             l_req_line_attr_rec2.pricing_attr_value_from :=
3130                                                l_srv_csrrec.pricing_attribute8;
3131             l_req_line_attr_rec2.validated_flag := 'N';
3132             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3133          END IF;
3134 
3135          IF l_srv_csrrec.pricing_attribute9 IS NOT NULL
3136          THEN
3137             --myerror('9 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute9);
3138             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3139                                           1;
3140             l_req_line_attr_rec2.line_index := p_service_index;
3141             l_req_line_attr_rec2.pricing_context :=
3142                                                   l_srv_csrrec.pricing_context;
3143             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE9';
3144             l_req_line_attr_rec2.pricing_attr_value_from :=
3145                                                l_srv_csrrec.pricing_attribute9;
3146             l_req_line_attr_rec2.validated_flag := 'N';
3147             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3148          END IF;
3149 
3150          IF l_srv_csrrec.pricing_attribute10 IS NOT NULL
3151          THEN
3152             --myerror('10 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute10);
3153             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3154                                           1;
3155             l_req_line_attr_rec2.line_index := p_service_index;
3156             l_req_line_attr_rec2.pricing_context :=
3157                                                   l_srv_csrrec.pricing_context;
3158             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE10';
3159             l_req_line_attr_rec2.pricing_attr_value_from :=
3160                                               l_srv_csrrec.pricing_attribute10;
3161             l_req_line_attr_rec2.validated_flag := 'N';
3162             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3163          END IF;
3164 
3165          IF l_srv_csrrec.pricing_attribute11 IS NOT NULL
3166          THEN
3167             --myerror('11 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute11);
3168             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3169                                           1;
3170             l_req_line_attr_rec2.line_index := p_service_index;
3171             l_req_line_attr_rec2.pricing_context :=
3172                                                   l_srv_csrrec.pricing_context;
3173             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE11';
3174             l_req_line_attr_rec2.pricing_attr_value_from :=
3175                                               l_srv_csrrec.pricing_attribute11;
3176             l_req_line_attr_rec2.validated_flag := 'N';
3177             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3178          END IF;
3179 
3180          IF l_srv_csrrec.pricing_attribute12 IS NOT NULL
3181          THEN
3182             --myerror('12 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute12);
3183             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3184                                           1;
3185             l_req_line_attr_rec2.line_index := p_service_index;
3186             l_req_line_attr_rec2.pricing_context :=
3187                                                   l_srv_csrrec.pricing_context;
3188             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE12';
3189             l_req_line_attr_rec2.pricing_attr_value_from :=
3190                                               l_srv_csrrec.pricing_attribute12;
3191             l_req_line_attr_rec2.validated_flag := 'N';
3192             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3193          END IF;
3194 
3195          IF l_srv_csrrec.pricing_attribute13 IS NOT NULL
3196          THEN
3197             --myerror('13 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute13);
3198             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3199                                           1;
3200             l_req_line_attr_rec2.line_index := p_service_index;
3201             l_req_line_attr_rec2.pricing_context :=
3202                                                   l_srv_csrrec.pricing_context;
3203             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE13';
3204             l_req_line_attr_rec2.pricing_attr_value_from :=
3205                                               l_srv_csrrec.pricing_attribute13;
3206             l_req_line_attr_rec2.validated_flag := 'N';
3207             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3208          END IF;
3209 
3210          IF l_srv_csrrec.pricing_attribute14 IS NOT NULL
3211          THEN
3212             --myerror('14 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute14);
3213             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3214                                           1;
3215             l_req_line_attr_rec2.line_index := p_service_index;
3216             l_req_line_attr_rec2.pricing_context :=
3217                                                   l_srv_csrrec.pricing_context;
3218             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE14';
3219             l_req_line_attr_rec2.pricing_attr_value_from :=
3220                                               l_srv_csrrec.pricing_attribute14;
3221             l_req_line_attr_rec2.validated_flag := 'N';
3222             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3223          END IF;
3224 
3225          IF l_srv_csrrec.pricing_attribute15 IS NOT NULL
3226          THEN
3227             --myerror('15 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute15);
3228             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3229                                           1;
3230             l_req_line_attr_rec2.line_index := p_service_index;
3231             l_req_line_attr_rec2.pricing_context :=
3232                                                   l_srv_csrrec.pricing_context;
3233             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE15';
3234             l_req_line_attr_rec2.pricing_attr_value_from :=
3235                                               l_srv_csrrec.pricing_attribute15;
3236             l_req_line_attr_rec2.validated_flag := 'N';
3237             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3238          END IF;
3239 
3240 --***** ADDED 10/25
3241          IF l_srv_csrrec.pricing_attribute16 IS NOT NULL
3242          THEN
3243             --myerror('16 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute16);
3244             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3245                                           1;
3246             l_req_line_attr_rec2.line_index := p_service_index;
3247             l_req_line_attr_rec2.pricing_context :=
3248                                                   l_srv_csrrec.pricing_context;
3249             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE16';
3250             l_req_line_attr_rec2.pricing_attr_value_from :=
3251                                               l_srv_csrrec.pricing_attribute16;
3252             l_req_line_attr_rec2.validated_flag := 'N';
3253             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3254          END IF;
3255 
3256          IF l_srv_csrrec.pricing_attribute17 IS NOT NULL
3257          THEN
3258             --myerror('17 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute17);
3259             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3260                                           1;
3261             l_req_line_attr_rec2.line_index := p_service_index;
3262             l_req_line_attr_rec2.pricing_context :=
3263                                                   l_srv_csrrec.pricing_context;
3264             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE17';
3265             l_req_line_attr_rec2.pricing_attr_value_from :=
3266                                               l_srv_csrrec.pricing_attribute17;
3267             l_req_line_attr_rec2.validated_flag := 'N';
3268             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3269          END IF;
3270 
3271          IF l_srv_csrrec.pricing_attribute18 IS NOT NULL
3272          THEN
3273             --myerror('18 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute18);
3274             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3275                                           1;
3276             l_req_line_attr_rec2.line_index := p_service_index;
3277             l_req_line_attr_rec2.pricing_context :=
3278                                                   l_srv_csrrec.pricing_context;
3279             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE18';
3280             l_req_line_attr_rec2.pricing_attr_value_from :=
3281                                               l_srv_csrrec.pricing_attribute18;
3282             l_req_line_attr_rec2.validated_flag := 'N';
3283             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3284          END IF;
3285 
3286          IF l_srv_csrrec.pricing_attribute19 IS NOT NULL
3287          THEN
3288             --myerror('19 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute19);
3289             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3290                                           1;
3291             l_req_line_attr_rec2.line_index := p_service_index;
3292             l_req_line_attr_rec2.pricing_context :=
3293                                                   l_srv_csrrec.pricing_context;
3294             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE19';
3295             l_req_line_attr_rec2.pricing_attr_value_from :=
3296                                               l_srv_csrrec.pricing_attribute19;
3297             l_req_line_attr_rec2.validated_flag := 'N';
3298             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3299          END IF;
3300 
3301          IF l_srv_csrrec.pricing_attribute20 IS NOT NULL
3302          THEN
3303             --myerror('20 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute20);
3304             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3305                                           1;
3306             l_req_line_attr_rec2.line_index := p_service_index;
3307             l_req_line_attr_rec2.pricing_context :=
3308                                                   l_srv_csrrec.pricing_context;
3309             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE20';
3310             l_req_line_attr_rec2.pricing_attr_value_from :=
3311                                               l_srv_csrrec.pricing_attribute20;
3312             l_req_line_attr_rec2.validated_flag := 'N';
3313             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3314          END IF;
3315 
3316          IF l_srv_csrrec.pricing_attribute21 IS NOT NULL
3317          THEN
3318             --myerror('21 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute21);
3319             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3320                                           1;
3321             l_req_line_attr_rec2.line_index := p_service_index;
3322             l_req_line_attr_rec2.pricing_context :=
3323                                                   l_srv_csrrec.pricing_context;
3324             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE21';
3325             l_req_line_attr_rec2.pricing_attr_value_from :=
3326                                               l_srv_csrrec.pricing_attribute21;
3327             l_req_line_attr_rec2.validated_flag := 'N';
3328             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3329          END IF;
3330 
3331          IF l_srv_csrrec.pricing_attribute22 IS NOT NULL
3332          THEN
3333             --myerror('22 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute22);
3334             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3335                                           1;
3336             l_req_line_attr_rec2.line_index := p_service_index;
3337             l_req_line_attr_rec2.pricing_context :=
3338                                                   l_srv_csrrec.pricing_context;
3339             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE22';
3340             l_req_line_attr_rec2.pricing_attr_value_from :=
3341                                               l_srv_csrrec.pricing_attribute22;
3342             l_req_line_attr_rec2.validated_flag := 'N';
3343             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3344          END IF;
3345 
3346          IF l_srv_csrrec.pricing_attribute23 IS NOT NULL
3347          THEN
3348             --myerror('23 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute23);
3349             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3350                                           1;
3351             l_req_line_attr_rec2.line_index := p_service_index;
3352             l_req_line_attr_rec2.pricing_context :=
3353                                                   l_srv_csrrec.pricing_context;
3354             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE23';
3355             l_req_line_attr_rec2.pricing_attr_value_from :=
3356                                               l_srv_csrrec.pricing_attribute23;
3357             l_req_line_attr_rec2.validated_flag := 'N';
3358             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3359          END IF;
3360 
3361          IF l_srv_csrrec.pricing_attribute24 IS NOT NULL
3362          THEN
3363             --myerror('24 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute24);
3364             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3365                                           1;
3366             l_req_line_attr_rec2.line_index := p_service_index;
3367             l_req_line_attr_rec2.pricing_context :=
3368                                                   l_srv_csrrec.pricing_context;
3369             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE24';
3370             l_req_line_attr_rec2.pricing_attr_value_from :=
3371                                               l_srv_csrrec.pricing_attribute24;
3372             l_req_line_attr_rec2.validated_flag := 'N';
3373             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3374          END IF;
3375 
3376          IF l_srv_csrrec.pricing_attribute25 IS NOT NULL
3377          THEN
3378             --myerror('25 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute25);
3379             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3380                                           1;
3381             l_req_line_attr_rec2.line_index := p_service_index;
3382             l_req_line_attr_rec2.pricing_context :=
3383                                                   l_srv_csrrec.pricing_context;
3384             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE25';
3385             l_req_line_attr_rec2.pricing_attr_value_from :=
3386                                               l_srv_csrrec.pricing_attribute25;
3387             l_req_line_attr_rec2.validated_flag := 'N';
3388             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3389          END IF;
3390 
3391          IF l_srv_csrrec.pricing_attribute26 IS NOT NULL
3392          THEN
3393             --myerror('26 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute26);
3394             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3395                                           1;
3396             l_req_line_attr_rec2.line_index := p_service_index;
3397             l_req_line_attr_rec2.pricing_context :=
3398                                                   l_srv_csrrec.pricing_context;
3399             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE26';
3400             l_req_line_attr_rec2.pricing_attr_value_from :=
3401                                               l_srv_csrrec.pricing_attribute26;
3402             l_req_line_attr_rec2.validated_flag := 'N';
3403             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3404          END IF;
3405 
3406          IF l_srv_csrrec.pricing_attribute27 IS NOT NULL
3407          THEN
3408             --myerror('27 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute27);
3409             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3410                                           1;
3411             l_req_line_attr_rec2.line_index := p_service_index;
3412             l_req_line_attr_rec2.pricing_context :=
3413                                                   l_srv_csrrec.pricing_context;
3414             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE27';
3415             l_req_line_attr_rec2.pricing_attr_value_from :=
3416                                               l_srv_csrrec.pricing_attribute27;
3417             l_req_line_attr_rec2.validated_flag := 'N';
3418             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3419          END IF;
3420 
3421          IF l_srv_csrrec.pricing_attribute28 IS NOT NULL
3422          THEN
3423             --myerror('28 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute28);
3424             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3425                                           1;
3426             l_req_line_attr_rec2.line_index := p_service_index;
3427             l_req_line_attr_rec2.pricing_context :=
3428                                                   l_srv_csrrec.pricing_context;
3429             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE28';
3430             l_req_line_attr_rec2.pricing_attr_value_from :=
3431                                               l_srv_csrrec.pricing_attribute28;
3432             l_req_line_attr_rec2.validated_flag := 'N';
3433             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3434          END IF;
3435 
3436          IF l_srv_csrrec.pricing_attribute29 IS NOT NULL
3437          THEN
3438             --myerror('29 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute29);
3439             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3440                                           1;
3441             l_req_line_attr_rec2.line_index := p_service_index;
3442             l_req_line_attr_rec2.pricing_context :=
3443                                                   l_srv_csrrec.pricing_context;
3444             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE29';
3445             l_req_line_attr_rec2.pricing_attr_value_from :=
3446                                               l_srv_csrrec.pricing_attribute29;
3447             l_req_line_attr_rec2.validated_flag := 'N';
3448             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3449          END IF;
3450 
3451          IF l_srv_csrrec.pricing_attribute30 IS NOT NULL
3452          THEN
3453             --myerror('30 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute30);
3454             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3455                                           1;
3456             l_req_line_attr_rec2.line_index := p_service_index;
3457             l_req_line_attr_rec2.pricing_context :=
3458                                                   l_srv_csrrec.pricing_context;
3459             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE30';
3460             l_req_line_attr_rec2.pricing_attr_value_from :=
3461                                               l_srv_csrrec.pricing_attribute30;
3462             l_req_line_attr_rec2.validated_flag := 'N';
3463             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3464          END IF;
3465 
3466          IF l_srv_csrrec.pricing_attribute31 IS NOT NULL
3467          THEN
3468             --myerror('31 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute31);
3469             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3470                                           1;
3471             l_req_line_attr_rec2.line_index := p_service_index;
3472             l_req_line_attr_rec2.pricing_context :=
3473                                                   l_srv_csrrec.pricing_context;
3474             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE31';
3475             l_req_line_attr_rec2.pricing_attr_value_from :=
3476                                               l_srv_csrrec.pricing_attribute31;
3477             l_req_line_attr_rec2.validated_flag := 'N';
3478             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3479          END IF;
3480 
3481          IF l_srv_csrrec.pricing_attribute32 IS NOT NULL
3482          THEN
3483             --myerror('32 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute32);
3484             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3485                                           1;
3486             l_req_line_attr_rec2.line_index := p_service_index;
3487             l_req_line_attr_rec2.pricing_context :=
3488                                                   l_srv_csrrec.pricing_context;
3489             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE32';
3490             l_req_line_attr_rec2.pricing_attr_value_from :=
3491                                               l_srv_csrrec.pricing_attribute32;
3492             l_req_line_attr_rec2.validated_flag := 'N';
3493             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3494          END IF;
3495 
3496          IF l_srv_csrrec.pricing_attribute33 IS NOT NULL
3497          THEN
3498             --myerror('33 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute33);
3499             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3500                                           1;
3501             l_req_line_attr_rec2.line_index := p_service_index;
3502             l_req_line_attr_rec2.pricing_context :=
3503                                                   l_srv_csrrec.pricing_context;
3504             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE33';
3505             l_req_line_attr_rec2.pricing_attr_value_from :=
3506                                               l_srv_csrrec.pricing_attribute33;
3507             l_req_line_attr_rec2.validated_flag := 'N';
3508             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3509          END IF;
3510 
3511          IF l_srv_csrrec.pricing_attribute34 IS NOT NULL
3512          THEN
3513             --myerror('34 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute34);
3514             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3515                                           1;
3516             l_req_line_attr_rec2.line_index := p_service_index;
3517             l_req_line_attr_rec2.pricing_context :=
3518                                                   l_srv_csrrec.pricing_context;
3519             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE34';
3520             l_req_line_attr_rec2.pricing_attr_value_from :=
3521                                               l_srv_csrrec.pricing_attribute34;
3522             l_req_line_attr_rec2.validated_flag := 'N';
3523             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3524          END IF;
3525 
3526          IF l_srv_csrrec.pricing_attribute35 IS NOT NULL
3527          THEN
3528             --myerror('35 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute35);
3529             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3530                                           1;
3531             l_req_line_attr_rec2.line_index := p_service_index;
3532             l_req_line_attr_rec2.pricing_context :=
3533                                                   l_srv_csrrec.pricing_context;
3534             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE35';
3535             l_req_line_attr_rec2.pricing_attr_value_from :=
3536                                               l_srv_csrrec.pricing_attribute35;
3537             l_req_line_attr_rec2.validated_flag := 'N';
3538             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3539          END IF;
3540 
3541          IF l_srv_csrrec.pricing_attribute36 IS NOT NULL
3542          THEN
3543             --myerror('36 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute36);
3544             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3545                                           1;
3546             l_req_line_attr_rec2.line_index := p_service_index;
3547             l_req_line_attr_rec2.pricing_context :=
3548                                                   l_srv_csrrec.pricing_context;
3549             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE36';
3550             l_req_line_attr_rec2.pricing_attr_value_from :=
3551                                               l_srv_csrrec.pricing_attribute36;
3552             l_req_line_attr_rec2.validated_flag := 'N';
3553             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3554          END IF;
3555 
3556          IF l_srv_csrrec.pricing_attribute37 IS NOT NULL
3557          THEN
3558             --myerror('37 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute37);
3559             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3560                                           1;
3561             l_req_line_attr_rec2.line_index := p_service_index;
3562             l_req_line_attr_rec2.pricing_context :=
3563                                                   l_srv_csrrec.pricing_context;
3564             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE37';
3565             l_req_line_attr_rec2.pricing_attr_value_from :=
3566                                               l_srv_csrrec.pricing_attribute37;
3567             l_req_line_attr_rec2.validated_flag := 'N';
3568             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3569          END IF;
3570 
3571          IF l_srv_csrrec.pricing_attribute38 IS NOT NULL
3572          THEN
3573             --myerror('38 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute38);
3574             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3575                                           1;
3576             l_req_line_attr_rec2.line_index := p_service_index;
3577             l_req_line_attr_rec2.pricing_context :=
3578                                                   l_srv_csrrec.pricing_context;
3579             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE38';
3580             l_req_line_attr_rec2.pricing_attr_value_from :=
3581                                               l_srv_csrrec.pricing_attribute38;
3582             l_req_line_attr_rec2.validated_flag := 'N';
3583             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3584          END IF;
3585 
3586          IF l_srv_csrrec.pricing_attribute39 IS NOT NULL
3587          THEN
3588             --myerror('39 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute39);
3589             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3590                                           1;
3591             l_req_line_attr_rec2.line_index := p_service_index;
3592             l_req_line_attr_rec2.pricing_context :=
3593                                                   l_srv_csrrec.pricing_context;
3594             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE39';
3595             l_req_line_attr_rec2.pricing_attr_value_from :=
3596                                               l_srv_csrrec.pricing_attribute39;
3597             l_req_line_attr_rec2.validated_flag := 'N';
3598             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3599          END IF;
3600 
3601          IF l_srv_csrrec.pricing_attribute40 IS NOT NULL
3602          THEN
3603             --myerror('40 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute40);
3604             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3605                                           1;
3606             l_req_line_attr_rec2.line_index := p_service_index;
3607             l_req_line_attr_rec2.pricing_context :=
3608                                                   l_srv_csrrec.pricing_context;
3609             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE40';
3610             l_req_line_attr_rec2.pricing_attr_value_from :=
3611                                               l_srv_csrrec.pricing_attribute40;
3612             l_req_line_attr_rec2.validated_flag := 'N';
3613             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3614          END IF;
3615 
3616          IF l_srv_csrrec.pricing_attribute41 IS NOT NULL
3617          THEN
3618             --myerror('41 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute41);
3619             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3620                                           1;
3621             l_req_line_attr_rec2.line_index := p_service_index;
3622             l_req_line_attr_rec2.pricing_context :=
3623                                                   l_srv_csrrec.pricing_context;
3624             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE41';
3625             l_req_line_attr_rec2.pricing_attr_value_from :=
3626                                               l_srv_csrrec.pricing_attribute41;
3627             l_req_line_attr_rec2.validated_flag := 'N';
3628             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3629          END IF;
3630 
3631          IF l_srv_csrrec.pricing_attribute42 IS NOT NULL
3632          THEN
3633             --myerror('42 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute42);
3634             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3635                                           1;
3636             l_req_line_attr_rec2.line_index := p_service_index;
3637             l_req_line_attr_rec2.pricing_context :=
3638                                                   l_srv_csrrec.pricing_context;
3639             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE42';
3640             l_req_line_attr_rec2.pricing_attr_value_from :=
3641                                               l_srv_csrrec.pricing_attribute42;
3642             l_req_line_attr_rec2.validated_flag := 'N';
3643             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3644          END IF;
3645 
3646          IF l_srv_csrrec.pricing_attribute43 IS NOT NULL
3647          THEN
3648             --myerror('43 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute43);
3649             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3650                                           1;
3651             l_req_line_attr_rec2.line_index := p_service_index;
3652             l_req_line_attr_rec2.pricing_context :=
3653                                                   l_srv_csrrec.pricing_context;
3654             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE43';
3655             l_req_line_attr_rec2.pricing_attr_value_from :=
3656                                               l_srv_csrrec.pricing_attribute43;
3657             l_req_line_attr_rec2.validated_flag := 'N';
3658             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3659          END IF;
3660 
3661          IF l_srv_csrrec.pricing_attribute44 IS NOT NULL
3662          THEN
3663             --myerror('44 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute44);
3664             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3665                                           1;
3666             l_req_line_attr_rec2.line_index := p_service_index;
3667             l_req_line_attr_rec2.pricing_context :=
3668                                                   l_srv_csrrec.pricing_context;
3669             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE44';
3670             l_req_line_attr_rec2.pricing_attr_value_from :=
3671                                               l_srv_csrrec.pricing_attribute44;
3672             l_req_line_attr_rec2.validated_flag := 'N';
3673             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3674          END IF;
3675 
3676          IF l_srv_csrrec.pricing_attribute45 IS NOT NULL
3677          THEN
3678             --myerror('45 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute45);
3679             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3680                                           1;
3681             l_req_line_attr_rec2.line_index := p_service_index;
3682             l_req_line_attr_rec2.pricing_context :=
3683                                                   l_srv_csrrec.pricing_context;
3684             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE45';
3685             l_req_line_attr_rec2.pricing_attr_value_from :=
3686                                               l_srv_csrrec.pricing_attribute45;
3687             l_req_line_attr_rec2.validated_flag := 'N';
3688             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3689          END IF;
3690 
3691          IF l_srv_csrrec.pricing_attribute46 IS NOT NULL
3692          THEN
3693             --myerror('46 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute46);
3694             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3695                                           1;
3696             l_req_line_attr_rec2.line_index := p_service_index;
3697             l_req_line_attr_rec2.pricing_context :=
3698                                                   l_srv_csrrec.pricing_context;
3699             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE46';
3700             l_req_line_attr_rec2.pricing_attr_value_from :=
3701                                               l_srv_csrrec.pricing_attribute46;
3702             l_req_line_attr_rec2.validated_flag := 'N';
3703             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3704          END IF;
3705 
3706          IF l_srv_csrrec.pricing_attribute47 IS NOT NULL
3707          THEN
3708             --myerror('47 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute47);
3709             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3710                                           1;
3711             l_req_line_attr_rec2.line_index := p_service_index;
3712             l_req_line_attr_rec2.pricing_context :=
3713                                                   l_srv_csrrec.pricing_context;
3714             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE47';
3715             l_req_line_attr_rec2.pricing_attr_value_from :=
3716                                               l_srv_csrrec.pricing_attribute47;
3717             l_req_line_attr_rec2.validated_flag := 'N';
3718             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3719          END IF;
3720 
3721          IF l_srv_csrrec.pricing_attribute48 IS NOT NULL
3722          THEN
3723             --myerror('48 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute48);
3724             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3725                                           1;
3726             l_req_line_attr_rec2.line_index := p_service_index;
3727             l_req_line_attr_rec2.pricing_context :=
3728                                                   l_srv_csrrec.pricing_context;
3729             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE48';
3730             l_req_line_attr_rec2.pricing_attr_value_from :=
3731                                               l_srv_csrrec.pricing_attribute48;
3732             l_req_line_attr_rec2.validated_flag := 'N';
3733             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3734          END IF;
3735 
3736          IF l_srv_csrrec.pricing_attribute49 IS NOT NULL
3737          THEN
3738             --myerror('49 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute49);
3739             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3740                                           1;
3741             l_req_line_attr_rec2.line_index := p_service_index;
3742             l_req_line_attr_rec2.pricing_context :=
3743                                                   l_srv_csrrec.pricing_context;
3744             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE49';
3745             l_req_line_attr_rec2.pricing_attr_value_from :=
3746                                               l_srv_csrrec.pricing_attribute49;
3747             l_req_line_attr_rec2.validated_flag := 'N';
3748             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3749          END IF;
3750 
3751          IF l_srv_csrrec.pricing_attribute50 IS NOT NULL
3752          THEN
3753             --myerror('50 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute50);
3754             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3755                                           1;
3756             l_req_line_attr_rec2.line_index := p_service_index;
3757             l_req_line_attr_rec2.pricing_context :=
3758                                                   l_srv_csrrec.pricing_context;
3759             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE50';
3760             l_req_line_attr_rec2.pricing_attr_value_from :=
3761                                               l_srv_csrrec.pricing_attribute50;
3762             l_req_line_attr_rec2.validated_flag := 'N';
3763             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3764          END IF;
3765 
3766          IF l_srv_csrrec.pricing_attribute51 IS NOT NULL
3767          THEN
3768             --myerror('51 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute51);
3769             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3770                                           1;
3771             l_req_line_attr_rec2.line_index := p_service_index;
3772             l_req_line_attr_rec2.pricing_context :=
3773                                                   l_srv_csrrec.pricing_context;
3774             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE51';
3775             l_req_line_attr_rec2.pricing_attr_value_from :=
3776                                               l_srv_csrrec.pricing_attribute51;
3777             l_req_line_attr_rec2.validated_flag := 'N';
3778             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3779          END IF;
3780 
3781          IF l_srv_csrrec.pricing_attribute52 IS NOT NULL
3782          THEN
3783             --myerror('52 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute52);
3784             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3785                                           1;
3786             l_req_line_attr_rec2.line_index := p_service_index;
3787             l_req_line_attr_rec2.pricing_context :=
3788                                                   l_srv_csrrec.pricing_context;
3789             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE52';
3790             l_req_line_attr_rec2.pricing_attr_value_from :=
3791                                               l_srv_csrrec.pricing_attribute52;
3792             l_req_line_attr_rec2.validated_flag := 'N';
3793             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3794          END IF;
3795 
3796          IF l_srv_csrrec.pricing_attribute53 IS NOT NULL
3797          THEN
3798             --myerror('53 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute53);
3799             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3800                                           1;
3801             l_req_line_attr_rec2.line_index := p_service_index;
3802             l_req_line_attr_rec2.pricing_context :=
3803                                                   l_srv_csrrec.pricing_context;
3804             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE53';
3805             l_req_line_attr_rec2.pricing_attr_value_from :=
3806                                               l_srv_csrrec.pricing_attribute53;
3807             l_req_line_attr_rec2.validated_flag := 'N';
3808             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3809          END IF;
3810 
3811          IF l_srv_csrrec.pricing_attribute54 IS NOT NULL
3812          THEN
3813             --myerror('54 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute54);
3814             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3815                                           1;
3816             l_req_line_attr_rec2.line_index := p_service_index;
3817             l_req_line_attr_rec2.pricing_context :=
3818                                                   l_srv_csrrec.pricing_context;
3819             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE54';
3820             l_req_line_attr_rec2.pricing_attr_value_from :=
3821                                               l_srv_csrrec.pricing_attribute54;
3822             l_req_line_attr_rec2.validated_flag := 'N';
3823             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3824          END IF;
3825 
3826          IF l_srv_csrrec.pricing_attribute55 IS NOT NULL
3827          THEN
3828             --myerror('55 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute55);
3829             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3830                                           1;
3831             l_req_line_attr_rec2.line_index := p_service_index;
3832             l_req_line_attr_rec2.pricing_context :=
3833                                                   l_srv_csrrec.pricing_context;
3834             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE55';
3835             l_req_line_attr_rec2.pricing_attr_value_from :=
3836                                               l_srv_csrrec.pricing_attribute55;
3837             l_req_line_attr_rec2.validated_flag := 'N';
3838             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3839          END IF;
3840 
3841          IF l_srv_csrrec.pricing_attribute56 IS NOT NULL
3842          THEN
3843             --myerror('56 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute56);
3844             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3845                                           1;
3846             l_req_line_attr_rec2.line_index := p_service_index;
3847             l_req_line_attr_rec2.pricing_context :=
3848                                                   l_srv_csrrec.pricing_context;
3849             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE56';
3850             l_req_line_attr_rec2.pricing_attr_value_from :=
3851                                               l_srv_csrrec.pricing_attribute56;
3852             l_req_line_attr_rec2.validated_flag := 'N';
3853             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3854          END IF;
3855 
3856          IF l_srv_csrrec.pricing_attribute57 IS NOT NULL
3857          THEN
3858             --myerror('57 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute57);
3859             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3860                                           1;
3861             l_req_line_attr_rec2.line_index := p_service_index;
3862             l_req_line_attr_rec2.pricing_context :=
3863                                                   l_srv_csrrec.pricing_context;
3864             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE57';
3865             l_req_line_attr_rec2.pricing_attr_value_from :=
3866                                               l_srv_csrrec.pricing_attribute57;
3867             l_req_line_attr_rec2.validated_flag := 'N';
3868             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3869          END IF;
3870 
3871          IF l_srv_csrrec.pricing_attribute58 IS NOT NULL
3872          THEN
3873             --myerror('58 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute58);
3874             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3875                                           1;
3876             l_req_line_attr_rec2.line_index := p_service_index;
3877             l_req_line_attr_rec2.pricing_context :=
3878                                                   l_srv_csrrec.pricing_context;
3879             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE58';
3880             l_req_line_attr_rec2.pricing_attr_value_from :=
3881                                               l_srv_csrrec.pricing_attribute58;
3882             l_req_line_attr_rec2.validated_flag := 'N';
3883             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3884          END IF;
3885 
3886          IF l_srv_csrrec.pricing_attribute59 IS NOT NULL
3887          THEN
3888             --myerror('59 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute59);
3889             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3890                                           1;
3891             l_req_line_attr_rec2.line_index := p_service_index;
3892             l_req_line_attr_rec2.pricing_context :=
3893                                                   l_srv_csrrec.pricing_context;
3894             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE59';
3895             l_req_line_attr_rec2.pricing_attr_value_from :=
3896                                               l_srv_csrrec.pricing_attribute59;
3897             l_req_line_attr_rec2.validated_flag := 'N';
3898             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3899          END IF;
3900 
3901          IF l_srv_csrrec.pricing_attribute60 IS NOT NULL
3902          THEN
3903             --myerror('60 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute60);
3904             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3905                                           1;
3906             l_req_line_attr_rec2.line_index := p_service_index;
3907             l_req_line_attr_rec2.pricing_context :=
3908                                                   l_srv_csrrec.pricing_context;
3909             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE60';
3910             l_req_line_attr_rec2.pricing_attr_value_from :=
3911                                               l_srv_csrrec.pricing_attribute60;
3912             l_req_line_attr_rec2.validated_flag := 'N';
3913             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3914          END IF;
3915 
3916          IF l_srv_csrrec.pricing_attribute61 IS NOT NULL
3917          THEN
3918             --myerror('61 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute61);
3919             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3920                                           1;
3921             l_req_line_attr_rec2.line_index := p_service_index;
3922             l_req_line_attr_rec2.pricing_context :=
3923                                                   l_srv_csrrec.pricing_context;
3924             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE61';
3925             l_req_line_attr_rec2.pricing_attr_value_from :=
3926                                               l_srv_csrrec.pricing_attribute61;
3927             l_req_line_attr_rec2.validated_flag := 'N';
3928             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3929          END IF;
3930 
3931          IF l_srv_csrrec.pricing_attribute62 IS NOT NULL
3932          THEN
3933             --myerror('62 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute62);
3934             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3935                                           1;
3936             l_req_line_attr_rec2.line_index := p_service_index;
3937             l_req_line_attr_rec2.pricing_context :=
3938                                                   l_srv_csrrec.pricing_context;
3939             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE62';
3940             l_req_line_attr_rec2.pricing_attr_value_from :=
3941                                               l_srv_csrrec.pricing_attribute62;
3942             l_req_line_attr_rec2.validated_flag := 'N';
3943             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3944          END IF;
3945 
3946          IF l_srv_csrrec.pricing_attribute63 IS NOT NULL
3947          THEN
3948             --myerror('63 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute63);
3949             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3950                                           1;
3951             l_req_line_attr_rec2.line_index := p_service_index;
3952             l_req_line_attr_rec2.pricing_context :=
3953                                                   l_srv_csrrec.pricing_context;
3954             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE63';
3955             l_req_line_attr_rec2.pricing_attr_value_from :=
3956                                               l_srv_csrrec.pricing_attribute63;
3957             l_req_line_attr_rec2.validated_flag := 'N';
3958             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3959          END IF;
3960 
3961          IF l_srv_csrrec.pricing_attribute64 IS NOT NULL
3962          THEN
3963             --myerror('64 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute64);
3964             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3965                                           1;
3966             l_req_line_attr_rec2.line_index := p_service_index;
3967             l_req_line_attr_rec2.pricing_context :=
3968                                                   l_srv_csrrec.pricing_context;
3969             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE64';
3970             l_req_line_attr_rec2.pricing_attr_value_from :=
3971                                               l_srv_csrrec.pricing_attribute64;
3972             l_req_line_attr_rec2.validated_flag := 'N';
3973             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3974          END IF;
3975 
3976          IF l_srv_csrrec.pricing_attribute65 IS NOT NULL
3977          THEN
3978             --myerror('65 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute65);
3979             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3980                                           1;
3981             l_req_line_attr_rec2.line_index := p_service_index;
3982             l_req_line_attr_rec2.pricing_context :=
3983                                                   l_srv_csrrec.pricing_context;
3984             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE65';
3985             l_req_line_attr_rec2.pricing_attr_value_from :=
3986                                               l_srv_csrrec.pricing_attribute65;
3987             l_req_line_attr_rec2.validated_flag := 'N';
3988             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
3989          END IF;
3990 
3991          IF l_srv_csrrec.pricing_attribute66 IS NOT NULL
3992          THEN
3993             --myerror('66 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute66);
3994             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
3995                                           1;
3996             l_req_line_attr_rec2.line_index := p_service_index;
3997             l_req_line_attr_rec2.pricing_context :=
3998                                                   l_srv_csrrec.pricing_context;
3999             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE66';
4000             l_req_line_attr_rec2.pricing_attr_value_from :=
4001                                               l_srv_csrrec.pricing_attribute66;
4002             l_req_line_attr_rec2.validated_flag := 'N';
4003             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4004          END IF;
4005 
4006          IF l_srv_csrrec.pricing_attribute67 IS NOT NULL
4007          THEN
4008             --myerror('67 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute67);
4009             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4010                                           1;
4011             l_req_line_attr_rec2.line_index := p_service_index;
4012             l_req_line_attr_rec2.pricing_context :=
4013                                                   l_srv_csrrec.pricing_context;
4014             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE67';
4015             l_req_line_attr_rec2.pricing_attr_value_from :=
4016                                               l_srv_csrrec.pricing_attribute67;
4017             l_req_line_attr_rec2.validated_flag := 'N';
4018             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4019          END IF;
4020 
4021          IF l_srv_csrrec.pricing_attribute68 IS NOT NULL
4022          THEN
4023             --myerror('68 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute68);
4024             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4025                                           1;
4026             l_req_line_attr_rec2.line_index := p_service_index;
4027             l_req_line_attr_rec2.pricing_context :=
4028                                                   l_srv_csrrec.pricing_context;
4029             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE68';
4030             l_req_line_attr_rec2.pricing_attr_value_from :=
4031                                               l_srv_csrrec.pricing_attribute68;
4032             l_req_line_attr_rec2.validated_flag := 'N';
4033             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4034          END IF;
4035 
4036          IF l_srv_csrrec.pricing_attribute69 IS NOT NULL
4037          THEN
4038             --myerror('69 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute69);
4039             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4040                                           1;
4041             l_req_line_attr_rec2.line_index := p_service_index;
4042             l_req_line_attr_rec2.pricing_context :=
4043                                                   l_srv_csrrec.pricing_context;
4044             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE69';
4045             l_req_line_attr_rec2.pricing_attr_value_from :=
4046                                               l_srv_csrrec.pricing_attribute69;
4047             l_req_line_attr_rec2.validated_flag := 'N';
4048             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4049          END IF;
4050 
4051          IF l_srv_csrrec.pricing_attribute70 IS NOT NULL
4052          THEN
4053             --myerror('70 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute70);
4054             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4055                                           1;
4056             l_req_line_attr_rec2.line_index := p_service_index;
4057             l_req_line_attr_rec2.pricing_context :=
4058                                                   l_srv_csrrec.pricing_context;
4059             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE70';
4060             l_req_line_attr_rec2.pricing_attr_value_from :=
4061                                               l_srv_csrrec.pricing_attribute70;
4062             l_req_line_attr_rec2.validated_flag := 'N';
4063             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4064          END IF;
4065 
4066          IF l_srv_csrrec.pricing_attribute71 IS NOT NULL
4067          THEN
4068             --myerror('71 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute71);
4069             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4070                                           1;
4071             l_req_line_attr_rec2.line_index := p_service_index;
4072             l_req_line_attr_rec2.pricing_context :=
4073                                                   l_srv_csrrec.pricing_context;
4074             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE71';
4075             l_req_line_attr_rec2.pricing_attr_value_from :=
4076                                               l_srv_csrrec.pricing_attribute71;
4077             l_req_line_attr_rec2.validated_flag := 'N';
4078             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4079          END IF;
4080 
4081          IF l_srv_csrrec.pricing_attribute72 IS NOT NULL
4082          THEN
4083             --myerror('72 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute72);
4084             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4085                                           1;
4086             l_req_line_attr_rec2.line_index := p_service_index;
4087             l_req_line_attr_rec2.pricing_context :=
4088                                                   l_srv_csrrec.pricing_context;
4089             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE72';
4090             l_req_line_attr_rec2.pricing_attr_value_from :=
4091                                               l_srv_csrrec.pricing_attribute72;
4092             l_req_line_attr_rec2.validated_flag := 'N';
4093             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4094          END IF;
4095 
4096          IF l_srv_csrrec.pricing_attribute73 IS NOT NULL
4097          THEN
4098             --myerror('73 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute73);
4099             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4100                                           1;
4101             l_req_line_attr_rec2.line_index := p_service_index;
4102             l_req_line_attr_rec2.pricing_context :=
4103                                                   l_srv_csrrec.pricing_context;
4104             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE73';
4105             l_req_line_attr_rec2.pricing_attr_value_from :=
4106                                               l_srv_csrrec.pricing_attribute73;
4107             l_req_line_attr_rec2.validated_flag := 'N';
4108             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4109          END IF;
4110 
4111          IF l_srv_csrrec.pricing_attribute74 IS NOT NULL
4112          THEN
4113             --myerror('74 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute74);
4114             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4115                                           1;
4116             l_req_line_attr_rec2.line_index := p_service_index;
4117             l_req_line_attr_rec2.pricing_context :=
4118                                                   l_srv_csrrec.pricing_context;
4119             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE74';
4120             l_req_line_attr_rec2.pricing_attr_value_from :=
4121                                               l_srv_csrrec.pricing_attribute74;
4122             l_req_line_attr_rec2.validated_flag := 'N';
4123             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4124          END IF;
4125 
4126          IF l_srv_csrrec.pricing_attribute75 IS NOT NULL
4127          THEN
4128             --myerror('75 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute75);
4129             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4130                                           1;
4131             l_req_line_attr_rec2.line_index := p_service_index;
4132             l_req_line_attr_rec2.pricing_context :=
4133                                                   l_srv_csrrec.pricing_context;
4134             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE75';
4135             l_req_line_attr_rec2.pricing_attr_value_from :=
4136                                               l_srv_csrrec.pricing_attribute75;
4137             l_req_line_attr_rec2.validated_flag := 'N';
4138             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4139          END IF;
4140 
4141          IF l_srv_csrrec.pricing_attribute76 IS NOT NULL
4142          THEN
4143             --myerror('76 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute76);
4144             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4145                                           1;
4146             l_req_line_attr_rec2.line_index := p_service_index;
4147             l_req_line_attr_rec2.pricing_context :=
4148                                                   l_srv_csrrec.pricing_context;
4149             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE76';
4150             l_req_line_attr_rec2.pricing_attr_value_from :=
4151                                               l_srv_csrrec.pricing_attribute76;
4152             l_req_line_attr_rec2.validated_flag := 'N';
4153             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4154          END IF;
4155 
4156          IF l_srv_csrrec.pricing_attribute77 IS NOT NULL
4157          THEN
4158             --myerror('77 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute77);
4159             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4160                                           1;
4161             l_req_line_attr_rec2.line_index := p_service_index;
4162             l_req_line_attr_rec2.pricing_context :=
4163                                                   l_srv_csrrec.pricing_context;
4164             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE77';
4165             l_req_line_attr_rec2.pricing_attr_value_from :=
4166                                               l_srv_csrrec.pricing_attribute77;
4167             l_req_line_attr_rec2.validated_flag := 'N';
4168             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4169          END IF;
4170 
4171          IF l_srv_csrrec.pricing_attribute78 IS NOT NULL
4172          THEN
4173             --myerror('78 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute78);
4174             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4175                                           1;
4176             l_req_line_attr_rec2.line_index := p_service_index;
4177             l_req_line_attr_rec2.pricing_context :=
4178                                                   l_srv_csrrec.pricing_context;
4179             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE78';
4180             l_req_line_attr_rec2.pricing_attr_value_from :=
4181                                               l_srv_csrrec.pricing_attribute78;
4182             l_req_line_attr_rec2.validated_flag := 'N';
4183             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4184          END IF;
4185 
4186          IF l_srv_csrrec.pricing_attribute79 IS NOT NULL
4187          THEN
4188             --myerror('79 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute79);
4189             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4190                                           1;
4191             l_req_line_attr_rec2.line_index := p_service_index;
4192             l_req_line_attr_rec2.pricing_context :=
4193                                                   l_srv_csrrec.pricing_context;
4194             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE79';
4195             l_req_line_attr_rec2.pricing_attr_value_from :=
4196                                               l_srv_csrrec.pricing_attribute79;
4197             l_req_line_attr_rec2.validated_flag := 'N';
4198             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4199          END IF;
4200 
4201          IF l_srv_csrrec.pricing_attribute80 IS NOT NULL
4202          THEN
4203             --myerror('80 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute80);
4204             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4205                                           1;
4206             l_req_line_attr_rec2.line_index := p_service_index;
4207             l_req_line_attr_rec2.pricing_context :=
4208                                                   l_srv_csrrec.pricing_context;
4209             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE80';
4210             l_req_line_attr_rec2.pricing_attr_value_from :=
4211                                               l_srv_csrrec.pricing_attribute80;
4212             l_req_line_attr_rec2.validated_flag := 'N';
4213             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4214          END IF;
4215 
4216          IF l_srv_csrrec.pricing_attribute81 IS NOT NULL
4217          THEN
4218             --myerror('81 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute81);
4219             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4220                                           1;
4221             l_req_line_attr_rec2.line_index := p_service_index;
4222             l_req_line_attr_rec2.pricing_context :=
4223                                                   l_srv_csrrec.pricing_context;
4224             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE81';
4225             l_req_line_attr_rec2.pricing_attr_value_from :=
4226                                               l_srv_csrrec.pricing_attribute81;
4227             l_req_line_attr_rec2.validated_flag := 'N';
4228             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4229          END IF;
4230 
4231          IF l_srv_csrrec.pricing_attribute82 IS NOT NULL
4232          THEN
4233             --myerror('82 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute82);
4234             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4235                                           1;
4236             l_req_line_attr_rec2.line_index := p_service_index;
4237             l_req_line_attr_rec2.pricing_context :=
4238                                                   l_srv_csrrec.pricing_context;
4239             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE82';
4240             l_req_line_attr_rec2.pricing_attr_value_from :=
4241                                               l_srv_csrrec.pricing_attribute82;
4242             l_req_line_attr_rec2.validated_flag := 'N';
4243             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4244          END IF;
4245 
4246          IF l_srv_csrrec.pricing_attribute83 IS NOT NULL
4247          THEN
4248             --myerror('83 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute83);
4249             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4250                                           1;
4251             l_req_line_attr_rec2.line_index := p_service_index;
4252             l_req_line_attr_rec2.pricing_context :=
4253                                                   l_srv_csrrec.pricing_context;
4254             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE83';
4255             l_req_line_attr_rec2.pricing_attr_value_from :=
4256                                               l_srv_csrrec.pricing_attribute83;
4257             l_req_line_attr_rec2.validated_flag := 'N';
4258             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4259          END IF;
4260 
4261          IF l_srv_csrrec.pricing_attribute84 IS NOT NULL
4262          THEN
4263             --myerror('84 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute84);
4264             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4265                                           1;
4266             l_req_line_attr_rec2.line_index := p_service_index;
4267             l_req_line_attr_rec2.pricing_context :=
4268                                                   l_srv_csrrec.pricing_context;
4269             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE84';
4270             l_req_line_attr_rec2.pricing_attr_value_from :=
4271                                               l_srv_csrrec.pricing_attribute84;
4272             l_req_line_attr_rec2.validated_flag := 'N';
4273             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4274          END IF;
4275 
4276          IF l_srv_csrrec.pricing_attribute85 IS NOT NULL
4277          THEN
4278             --myerror('85 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute85);
4279             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4280                                           1;
4281             l_req_line_attr_rec2.line_index := p_service_index;
4282             l_req_line_attr_rec2.pricing_context :=
4283                                                   l_srv_csrrec.pricing_context;
4284             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE85';
4285             l_req_line_attr_rec2.pricing_attr_value_from :=
4286                                               l_srv_csrrec.pricing_attribute85;
4287             l_req_line_attr_rec2.validated_flag := 'N';
4288             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4289          END IF;
4290 
4291          IF l_srv_csrrec.pricing_attribute86 IS NOT NULL
4292          THEN
4293             --myerror('86 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute86);
4294             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4295                                           1;
4296             l_req_line_attr_rec2.line_index := p_service_index;
4297             l_req_line_attr_rec2.pricing_context :=
4298                                                   l_srv_csrrec.pricing_context;
4299             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE86';
4300             l_req_line_attr_rec2.pricing_attr_value_from :=
4301                                               l_srv_csrrec.pricing_attribute86;
4302             l_req_line_attr_rec2.validated_flag := 'N';
4303             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4304          END IF;
4305 
4306          IF l_srv_csrrec.pricing_attribute87 IS NOT NULL
4307          THEN
4308             --myerror('87 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute87);
4309             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4310                                           1;
4311             l_req_line_attr_rec2.line_index := p_service_index;
4312             l_req_line_attr_rec2.pricing_context :=
4313                                                   l_srv_csrrec.pricing_context;
4314             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE87';
4315             l_req_line_attr_rec2.pricing_attr_value_from :=
4316                                               l_srv_csrrec.pricing_attribute87;
4317             l_req_line_attr_rec2.validated_flag := 'N';
4318             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4319          END IF;
4320 
4321          IF l_srv_csrrec.pricing_attribute88 IS NOT NULL
4322          THEN
4323             --myerror('88 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute88);
4324             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4325                                           1;
4326             l_req_line_attr_rec2.line_index := p_service_index;
4327             l_req_line_attr_rec2.pricing_context :=
4328                                                   l_srv_csrrec.pricing_context;
4329             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE88';
4330             l_req_line_attr_rec2.pricing_attr_value_from :=
4331                                               l_srv_csrrec.pricing_attribute88;
4332             l_req_line_attr_rec2.validated_flag := 'N';
4333             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4334          END IF;
4335 
4336          IF l_srv_csrrec.pricing_attribute89 IS NOT NULL
4337          THEN
4338             --myerror('89 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute89);
4339             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4340                                           1;
4341             l_req_line_attr_rec2.line_index := p_service_index;
4342             l_req_line_attr_rec2.pricing_context :=
4343                                                   l_srv_csrrec.pricing_context;
4344             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE89';
4345             l_req_line_attr_rec2.pricing_attr_value_from :=
4346                                               l_srv_csrrec.pricing_attribute89;
4347             l_req_line_attr_rec2.validated_flag := 'N';
4348             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4349          END IF;
4350 
4351          IF l_srv_csrrec.pricing_attribute90 IS NOT NULL
4352          THEN
4353             --myerror('90 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute90);
4354             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4355                                           1;
4356             l_req_line_attr_rec2.line_index := p_service_index;
4357             l_req_line_attr_rec2.pricing_context :=
4358                                                   l_srv_csrrec.pricing_context;
4359             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE90';
4360             l_req_line_attr_rec2.pricing_attr_value_from :=
4361                                               l_srv_csrrec.pricing_attribute90;
4362             l_req_line_attr_rec2.validated_flag := 'N';
4363             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4364          END IF;
4365 
4366          IF l_srv_csrrec.pricing_attribute91 IS NOT NULL
4367          THEN
4368             --myerror('91 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute91);
4369             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4370                                           1;
4371             l_req_line_attr_rec2.line_index := p_service_index;
4372             l_req_line_attr_rec2.pricing_context :=
4373                                                   l_srv_csrrec.pricing_context;
4374             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE91';
4375             l_req_line_attr_rec2.pricing_attr_value_from :=
4376                                               l_srv_csrrec.pricing_attribute91;
4377             l_req_line_attr_rec2.validated_flag := 'N';
4378             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4379          END IF;
4380 
4381          IF l_srv_csrrec.pricing_attribute92 IS NOT NULL
4382          THEN
4383             --myerror('92 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute92);
4384             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4385                                           1;
4386             l_req_line_attr_rec2.line_index := p_service_index;
4387             l_req_line_attr_rec2.pricing_context :=
4388                                                   l_srv_csrrec.pricing_context;
4389             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE92';
4390             l_req_line_attr_rec2.pricing_attr_value_from :=
4391                                               l_srv_csrrec.pricing_attribute92;
4392             l_req_line_attr_rec2.validated_flag := 'N';
4393             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4394          END IF;
4395 
4396          IF l_srv_csrrec.pricing_attribute93 IS NOT NULL
4397          THEN
4398             --myerror('93 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute93);
4399             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4400                                           1;
4401             l_req_line_attr_rec2.line_index := p_service_index;
4402             l_req_line_attr_rec2.pricing_context :=
4403                                                   l_srv_csrrec.pricing_context;
4404             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE93';
4405             l_req_line_attr_rec2.pricing_attr_value_from :=
4406                                               l_srv_csrrec.pricing_attribute93;
4407             l_req_line_attr_rec2.validated_flag := 'N';
4408             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4409          END IF;
4410 
4411          IF l_srv_csrrec.pricing_attribute94 IS NOT NULL
4412          THEN
4413             --myerror('94 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute94);
4414             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4415                                           1;
4416             l_req_line_attr_rec2.line_index := p_service_index;
4417             l_req_line_attr_rec2.pricing_context :=
4418                                                   l_srv_csrrec.pricing_context;
4419             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE94';
4420             l_req_line_attr_rec2.pricing_attr_value_from :=
4421                                               l_srv_csrrec.pricing_attribute94;
4422             l_req_line_attr_rec2.validated_flag := 'N';
4423             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4424          END IF;
4425 
4426          IF l_srv_csrrec.pricing_attribute95 IS NOT NULL
4427          THEN
4428             --myerror('95 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute95);
4429             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4430                                           1;
4431             l_req_line_attr_rec2.line_index := p_service_index;
4432             l_req_line_attr_rec2.pricing_context :=
4433                                                   l_srv_csrrec.pricing_context;
4434             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE95';
4435             l_req_line_attr_rec2.pricing_attr_value_from :=
4436                                               l_srv_csrrec.pricing_attribute95;
4437             l_req_line_attr_rec2.validated_flag := 'N';
4438             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4439          END IF;
4440 
4441          IF l_srv_csrrec.pricing_attribute96 IS NOT NULL
4442          THEN
4443             --myerror('96 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute96);
4444             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4445                                           1;
4446             l_req_line_attr_rec2.line_index := p_service_index;
4447             l_req_line_attr_rec2.pricing_context :=
4448                                                   l_srv_csrrec.pricing_context;
4449             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE96';
4450             l_req_line_attr_rec2.pricing_attr_value_from :=
4451                                               l_srv_csrrec.pricing_attribute96;
4452             l_req_line_attr_rec2.validated_flag := 'N';
4453             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4454          END IF;
4455 
4456          IF l_srv_csrrec.pricing_attribute97 IS NOT NULL
4457          THEN
4458             --myerror('97 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute97);
4459             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4460                                           1;
4461             l_req_line_attr_rec2.line_index := p_service_index;
4462             l_req_line_attr_rec2.pricing_context :=
4463                                                   l_srv_csrrec.pricing_context;
4464             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE97';
4465             l_req_line_attr_rec2.pricing_attr_value_from :=
4466                                               l_srv_csrrec.pricing_attribute97;
4467             l_req_line_attr_rec2.validated_flag := 'N';
4468             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4469          END IF;
4470 
4471          IF l_srv_csrrec.pricing_attribute98 IS NOT NULL
4472          THEN
4473             --myerror('98 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute98);
4474             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4475                                           1;
4476             l_req_line_attr_rec2.line_index := p_service_index;
4477             l_req_line_attr_rec2.pricing_context :=
4478                                                   l_srv_csrrec.pricing_context;
4479             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE98';
4480             l_req_line_attr_rec2.pricing_attr_value_from :=
4481                                               l_srv_csrrec.pricing_attribute98;
4482             l_req_line_attr_rec2.validated_flag := 'N';
4483             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4484          END IF;
4485 
4486          IF l_srv_csrrec.pricing_attribute99 IS NOT NULL
4487          THEN
4488             --myerror('99 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute99);
4489             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4490                                           1;
4491             l_req_line_attr_rec2.line_index := p_service_index;
4492             l_req_line_attr_rec2.pricing_context :=
4493                                                   l_srv_csrrec.pricing_context;
4494             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE99';
4495             l_req_line_attr_rec2.pricing_attr_value_from :=
4496                                               l_srv_csrrec.pricing_attribute99;
4497             l_req_line_attr_rec2.validated_flag := 'N';
4498             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4499          END IF;
4500 
4501          IF l_srv_csrrec.pricing_attribute100 IS NOT NULL
4502          THEN
4503             --myerror('100 ' || l_srv_csrrec.pricing_context || ' - ' || l_srv_csrrec.pricing_attribute100);
4504             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
4505                                           1;
4506             l_req_line_attr_rec2.line_index := p_service_index;
4507             l_req_line_attr_rec2.pricing_context :=
4508                                                   l_srv_csrrec.pricing_context;
4509             l_req_line_attr_rec2.pricing_attribute := 'PRICING_ATTRIBUTE100';
4510             l_req_line_attr_rec2.pricing_attr_value_from :=
4511                                              l_srv_csrrec.pricing_attribute100;
4512             l_req_line_attr_rec2.validated_flag := 'N';
4513             px_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec2;
4514          END IF;
4515 --***** ADDED 10/25
4516       END LOOP;
4517 
4518       px_line_attr_tbl_ctr       := l_line_attr_tbl_ctr;
4519 
4520       -- end debug log
4521       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4522       THEN
4523          fnd_log.STRING (fnd_log.level_procedure,
4524                          g_module ||
4525                          l_api_name,
4526                          '1000: Leaving ' ||
4527                          g_pkg_name ||
4528                          '.' ||
4529                          l_api_name
4530                         );
4531       END IF;
4532    END build_top_pa;
4533 
4534    FUNCTION get_uom (
4535       p_id                                     NUMBER,
4536       p_inv_org                                NUMBER
4537    )
4538       RETURN VARCHAR2
4539    IS
4540       l_ret_value                             VARCHAR2 (1000);
4541       l_api_name                     CONSTANT VARCHAR2 (30) := 'get_uom';
4542    BEGIN
4543       -- start debug log
4544       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4545       THEN
4546          fnd_log.STRING (fnd_log.level_procedure,
4547                          g_module ||
4548                          l_api_name,
4549                          '100: Entered ' ||
4550                          g_pkg_name ||
4551                          '.' ||
4552                          l_api_name
4553                         );
4554       END IF;
4555 
4556       SELECT DISTINCT primary_uom_code
4557                  INTO l_ret_value
4558                  FROM mtl_system_items
4559                 WHERE inventory_item_id = p_id    AND
4560                       organization_id = p_inv_org;
4561 
4562       -- end debug log
4563       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4564       THEN
4565          fnd_log.STRING (fnd_log.level_procedure,
4566                          g_module ||
4567                          l_api_name,
4568                          '1000: Leaving ' ||
4569                          g_pkg_name ||
4570                          '.' ||
4571                          l_api_name
4572                         );
4573       END IF;
4574 
4575       RETURN l_ret_value;
4576    EXCEPTION
4577       WHEN OTHERS
4578       THEN
4579          -- end debug log
4580          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4581          THEN
4582             fnd_log.STRING (fnd_log.level_procedure,
4583                             g_module ||
4584                             l_api_name,
4585                             '4000: Leaving ' ||
4586                             g_pkg_name ||
4587                             '.' ||
4588                             l_api_name
4589                            );
4590          END IF;
4591 
4592          fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
4593          RETURN 'Ea';
4594    END;
4595 
4596    PROCEDURE calc_price (
4597       p_detail_rec                    IN       input_details,
4598       x_price_details                 OUT NOCOPY price_details,
4599       x_modifier_details              OUT NOCOPY qp_preq_grp.line_detail_tbl_type,
4600       x_price_break_details           OUT NOCOPY g_price_break_tbl_type,
4601       x_return_status                 OUT NOCOPY VARCHAR2,
4602       x_msg_count                     OUT NOCOPY NUMBER,
4603       x_msg_data                      OUT NOCOPY VARCHAR2
4604    )
4605    IS
4606       l_api_name                     CONSTANT VARCHAR2 (30) := 'CALC_PRICE';
4607 --QP Variables
4608       l_control_rec                           qp_preq_grp.control_record_type;
4609       l_req_line_tbl                          qp_preq_grp.line_tbl_type;
4610       l_req_line_detail_tbl                   qp_preq_grp.line_detail_tbl_type;
4611       l_req_related_lines_tbl                 qp_preq_grp.related_lines_tbl_type;
4612       l_req_qual_tbl                          qp_preq_grp.qual_tbl_type;
4613       l_req_line_attr_tbl                     qp_preq_grp.line_attr_tbl_type;
4614       l_req_line_detail_qual_tbl              qp_preq_grp.line_detail_qual_tbl_type;
4615       l_req_line_detail_attr_tbl              qp_preq_grp.line_detail_attr_tbl_type;
4616       l_req_line_rec                          qp_preq_grp.line_rec_type;
4617       l_req_line_rec2                         qp_preq_grp.line_rec_type;
4618       l_req_line_rec3                         qp_preq_grp.line_rec_type;
4619       l_req_line_rec4                         qp_preq_grp.line_rec_type;
4620       l_req_qual_rec                          qp_preq_grp.qual_rec_type;
4621       l_req_line_attr_rec                     qp_preq_grp.line_attr_rec_type;
4622       l_req_line_detail_rec                   qp_preq_grp.line_detail_rec_type;
4623       l_req_line_detail_rec2                  qp_preq_grp.line_detail_rec_type;
4624       l_req_related_lines_rec                 qp_preq_grp.related_lines_rec_type;
4625       lx_req_line_tbl                         qp_preq_grp.line_tbl_type;
4626       lx_req_qual_tbl                         qp_preq_grp.qual_tbl_type;
4627       lx_req_line_attr_tbl                    qp_preq_grp.line_attr_tbl_type;
4628       lx_req_line_detail_tbl                  qp_preq_grp.line_detail_tbl_type;
4629       lx_req_line_detail_qual_tbl             qp_preq_grp.line_detail_qual_tbl_type;
4630       lx_req_line_detail_attr_tbl             qp_preq_grp.line_detail_attr_tbl_type;
4631       lx_req_related_lines_tbl                qp_preq_grp.related_lines_tbl_type;
4632       lx_return_status                        VARCHAR2 (1);
4633       lx_return_status_text                   VARCHAR2 (2000);
4634 --General Variables;
4635       l_ctr                                   NUMBER;
4636       l_top_ctr                               NUMBER;
4637       i                                       NUMBER;
4638       i2                                      NUMBER;
4639       l_return_status                         VARCHAR2 (200);
4640       l_msg_count                             NUMBER;
4641       l_msg_data                              VARCHAR2 (2000);
4642       l_index                                 NUMBER;
4643       l_line_tbl_ctr                          NUMBER := 0;
4644       l_line_detl_tbl_ctr                     NUMBER := 0;
4645       l_line_attr_tbl_ctr                     NUMBER := 0;
4646       l_line_qual_tbl_ctr                     NUMBER := 0;
4647       l_line_rela_tbl_ctr                     NUMBER := 0;
4648       l_product_index                         NUMBER := 0;
4649       l_product_hdr_index                     NUMBER := 0;
4650       l_service_index                         NUMBER := 0;
4651       l_service_hdr_index                     NUMBER := 0;
4652       l_pricing_event                         VARCHAR2 (20);
4653       l_request_type_code                     VARCHAR2 (20);
4654       l_line_type_code                        VARCHAR2 (20);
4655       l_price_id                              NUMBER;
4656       l_def_pricing_date                      DATE;
4657       l_def_pricing_profile                   VARCHAR2 (240);
4658       l_currency                              VARCHAR2 (240);
4659       l_qpprod_inv_id                         NUMBER;
4660       l_qpprod_quantity                       NUMBER;
4661       l_qpprod_uom_code                       VARCHAR2 (240);
4662       l_qpserv_inv_id                         NUMBER;
4663       l_qpserv_quantity                       NUMBER;
4664       l_qpserv_uom_code                       VARCHAR2 (240);
4665       l_tangible                              BOOLEAN;
4666       p                                       NUMBER; -- fnd_debug variable bug 5069673
4667 --Table Handler Variables
4668       l_rule_rec                              okc_rule_pvt.rulv_rec_type;
4669       l_patv_tbl                              okc_price_adjustment_pub.patv_tbl_type;
4670       lx_patv_tbl                             okc_price_adjustment_pub.patv_tbl_type;
4671 --Variables for Price Break
4672       l_price_break_tbl                       g_price_break_tbl_type;
4673       l_rel_index                             NUMBER;
4674       l_lin_index                             NUMBER;
4675       l_party_id                              NUMBER;
4676       l_customer_id                           NUMBER;
4677       l_pricing_contexts_tbl                  qp_attr_mapping_pub.contexts_result_tbl_type;
4678       l_qual_contexts_tbl                     qp_attr_mapping_pub.contexts_result_tbl_type;
4679 --variables for partial periods logic
4680       l_period_type                           VARCHAR2 (30);
4681       l_period_start                          VARCHAR2 (30);
4682       l_price_uom                             VARCHAR2 (30);
4683       l_chr_id                                NUMBER;
4684       invalid_hdr_id_exception                EXCEPTION;
4685 
4686 --Cursor Variables
4687       CURSOR l_skg_csr
4688       IS
4689          SELECT kh.ID kh_id,
4690                 kh.start_date kh_start_date,
4691                 kh.date_signed kh_signed_date,
4692                 kh.currency_code kh_currency_code,
4693                 kh.authoring_org_id kh_auth_org,
4694                 kh.inv_organization_id inv_org,
4695                 kh.price_list_id price_list_id,
4696                 kh.bill_to_site_use_id kh_bill_to,
4697                 kh.ship_to_site_use_id kh_ship_to,
4698                 kh.payment_term_id kh_payment_term_id
4699            FROM okc_k_headers_all_b kh
4700           WHERE kh.ID = p_detail_rec.chr_id;
4701 
4702       l_skg_rec                               l_skg_csr%ROWTYPE;
4703 
4704       -- GCHADHA --
4705       -- 20 OCT 2004  --
4706       -- MULTI CURRENCY PRICELIST --
4707       --  Added Conversion_type and conversion_rate in the cursor
4708       CURSOR l_hdrtop_csr
4709       IS
4710          SELECT kh.ID kh_id,
4711                 kh.start_date kh_start_date,
4712                 kh.date_signed kh_signed_date,
4713                 kh.currency_code kh_currency_code,
4714                 kh.conversion_type kh_conversion_type,                  -- new
4715                 kh.conversion_rate kh_conversion_rate,                  -- new
4716                 kh.authoring_org_id kh_auth_org,
4717                 kh.inv_organization_id inv_org,
4718                 NVL (kl.price_list_id, kh.price_list_id) price_list_id,
4719                 kh.bill_to_site_use_id kh_bill_to,
4720                 kh.ship_to_site_use_id kh_ship_to,
4721                 kh.payment_term_id kh_payment_term_id,
4722                 kl.ID tl_id,
4723                 kl.start_date tl_start_date,
4724                 kl.end_date tl_end_date,
4725                 kl.lse_id tl_line_style,
4726                 kl.bill_to_site_use_id tl_bill_to,
4727                 kl.ship_to_site_use_id tl_ship_to,
4728                 kl.payment_term_id tl_payment_term_id,
4729                 ki.object1_id1 tl_object_id,
4730                 ki.number_of_items tl_qty,
4731                 ki.uom_code tl_uom_code
4732            FROM okc_k_headers_all_b kh,
4733                 okc_k_lines_b kl,
4734                 okc_k_items ki
4735           WHERE kh.ID = kl.chr_id            AND
4736                 kl.ID = p_detail_rec.line_id AND
4737                 ki.cle_id = kl.ID;
4738 
4739       l_hdrtop_rec                            l_hdrtop_csr%ROWTYPE;
4740 
4741       CURSOR l_subline_csr
4742       IS
4743          SELECT kl.ID sl_id,
4744                 kl.start_date sl_start_date,
4745                 kl.end_date sl_end_date,
4746                 kl.lse_id sl_line_style,
4747                 ki.object1_id1 sl_object_id,
4748                 ki.number_of_items sl_qty,
4749                 ki.uom_code sl_uom_code,
4750                 ks.price_uom sl_price_uom
4751            FROM okc_k_lines_b kl,
4752                 okc_k_items ki,
4753                 oks_k_lines_b ks
4754           WHERE kl.ID = p_detail_rec.subline_id AND
4755                 ks.cle_id = kl.ID               AND
4756                 ki.cle_id = kl.ID;
4757 
4758       l_subline_rec                           l_subline_csr%ROWTYPE;
4759 
4760       CURSOR l_get_hdrid_csr (
4761          p_cle_id                                 NUMBER
4762       )
4763       IS
4764          SELECT dnz_chr_id
4765            FROM okc_k_lines_b
4766           WHERE ID = p_cle_id;
4767 
4768       FUNCTION get_customer_id (
4769          p_chr_id                        IN       NUMBER,
4770          p_cle_id                        IN       NUMBER
4771       )
4772          RETURN NUMBER
4773       IS
4774          l_cust_id                               NUMBER;
4775          l_api_name                     CONSTANT VARCHAR2 (30)
4776                                                          := 'get_customer_id';
4777       BEGIN
4778          -- start debug log
4779          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4780          THEN
4781             fnd_log.STRING (fnd_log.level_procedure,
4782                             g_module ||
4783                             l_api_name,
4784                             '100: Entered ' ||
4785                             g_pkg_name ||
4786                             '.' ||
4787                             l_api_name
4788                            );
4789          END IF;
4790 
4791 /*
4792       Select object1_id1 Into l_cust_id
4793       From OKC_RULE_GROUPS_B rgp,
4794          OKC_RULES_B rl
4795       Where rgp.dnz_chr_id = p_chr_id  and
4796          rgp.cle_id     = p_cle_id  and
4797          rgp.id         = rl.rgp_id and
4798          rl.rule_information_category = 'CAN';
4799 */
4800          SELECT cust_acct_id
4801            INTO l_cust_id
4802            FROM okc_k_lines_b
4803           WHERE ID = p_cle_id;
4804 
4805          -- end debug log
4806          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4807          THEN
4808             fnd_log.STRING (fnd_log.level_procedure,
4809                             g_module ||
4810                             l_api_name,
4811                             '1000: Leaving ' ||
4812                             g_pkg_name ||
4813                             '.' ||
4814                             l_api_name
4815                            );
4816          END IF;
4817 
4818          RETURN l_cust_id;
4819       EXCEPTION
4820          WHEN NO_DATA_FOUND
4821          THEN
4822             -- end debug log
4823             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4824             THEN
4825                fnd_log.STRING (fnd_log.level_procedure,
4826                                g_module ||
4827                                l_api_name,
4828                                '5000: Leaving ' ||
4829                                g_pkg_name ||
4830                                '.' ||
4831                                l_api_name
4832                               );
4833             END IF;
4834 
4835             RETURN NULL;
4836          WHEN OTHERS
4837          THEN
4838             -- end debug log
4839             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4840             THEN
4841                fnd_log.STRING (fnd_log.level_procedure,
4842                                g_module ||
4843                                l_api_name,
4844                                '4000: Leaving ' ||
4845                                g_pkg_name ||
4846                                '.' ||
4847                                l_api_name
4848                               );
4849             END IF;
4850 
4851             fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
4852             RETURN NULL;
4853       END;
4854 
4855       FUNCTION get_customer_from_siteuse (
4856          p_site_use_id                   IN       NUMBER
4857       )
4858          RETURN NUMBER
4859       IS
4860          l_cust_id                               NUMBER;
4861          l_api_name                     CONSTANT VARCHAR2 (30)
4862                                                := 'get_customer_from_siteuse';
4863       BEGIN
4864          -- start debug log
4865          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4866          THEN
4867             fnd_log.STRING (fnd_log.level_procedure,
4868                             g_module ||
4869                             l_api_name,
4870                             '100: Entered ' ||
4871                             g_pkg_name ||
4872                             '.' ||
4873                             l_api_name
4874                            );
4875          END IF;
4876 
4877          SELECT cust_account_id
4878            INTO l_cust_id
4879            FROM hz_cust_site_uses_all cs,
4880                 hz_cust_acct_sites_all ca
4881           WHERE site_use_id = p_site_use_id                 AND
4882                 ca.cust_acct_site_id = cs.cust_acct_site_id;
4883 
4884          -- end debug log
4885          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4886          THEN
4887             fnd_log.STRING (fnd_log.level_procedure,
4888                             g_module ||
4889                             l_api_name,
4890                             '1000: Leaving ' ||
4891                             g_pkg_name ||
4892                             '.' ||
4893                             l_api_name
4894                            );
4895          END IF;
4896 
4897          RETURN l_cust_id;
4898       EXCEPTION
4899          WHEN NO_DATA_FOUND
4900          THEN
4901             -- end debug log
4902             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4903             THEN
4904                fnd_log.STRING (fnd_log.level_procedure,
4905                                g_module ||
4906                                l_api_name,
4907                                '5000: Leaving ' ||
4908                                g_pkg_name ||
4909                                '.' ||
4910                                l_api_name
4911                               );
4912             END IF;
4913 
4914             RETURN NULL;
4915          WHEN OTHERS
4916          THEN
4917             -- end debug log
4918             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4919             THEN
4920                fnd_log.STRING (fnd_log.level_procedure,
4921                                g_module ||
4922                                l_api_name,
4923                                '4000: Leaving ' ||
4924                                g_pkg_name ||
4925                                '.' ||
4926                                l_api_name
4927                               );
4928             END IF;
4929 
4930             fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
4931             RETURN NULL;
4932       END;
4933 
4934       FUNCTION get_agreement_id (
4935          p_chr_id                        IN       NUMBER
4936       )
4937          RETURN NUMBER
4938       IS
4939          l_id                                    NUMBER;
4940          l_api_name                     CONSTANT VARCHAR2 (30)
4941                                                         := 'get_agreement_id';
4942       BEGIN
4943          -- start debug log
4944          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4945          THEN
4946             fnd_log.STRING (fnd_log.level_procedure,
4947                             g_module ||
4948                             l_api_name,
4949                             '100: Entered ' ||
4950                             g_pkg_name ||
4951                             '.' ||
4952                             l_api_name
4953                            );
4954          END IF;
4955 
4956          SELECT isa_agreement_id
4957            INTO l_id
4958            FROM okc_governances
4959           WHERE chr_id = p_chr_id;
4960 
4961          -- end debug log
4962          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4963          THEN
4964             fnd_log.STRING (fnd_log.level_procedure,
4965                             g_module ||
4966                             l_api_name,
4967                             '1000: Leaving ' ||
4968                             g_pkg_name ||
4969                             '.' ||
4970                             l_api_name
4971                            );
4972          END IF;
4973 
4974          RETURN l_id;
4975       EXCEPTION
4976          WHEN NO_DATA_FOUND
4977          THEN
4978             -- end debug log
4979             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4980             THEN
4981                fnd_log.STRING (fnd_log.level_procedure,
4982                                g_module ||
4983                                l_api_name,
4984                                '5000: Leaving ' ||
4985                                g_pkg_name ||
4986                                '.' ||
4987                                l_api_name
4988                               );
4989             END IF;
4990 
4991             RETURN NULL;
4992          WHEN OTHERS
4993          THEN
4994             -- end debug log
4995             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
4996             THEN
4997                fnd_log.STRING (fnd_log.level_procedure,
4998                                g_module ||
4999                                l_api_name,
5000                                '4000: Leaving ' ||
5001                                g_pkg_name ||
5002                                '.' ||
5003                                l_api_name
5004                               );
5005             END IF;
5006 
5007             RETURN NULL;
5008       END;
5009 
5010       FUNCTION get_party_id (
5011          p_chr_id                        IN       NUMBER
5012       )
5013          RETURN NUMBER
5014       IS
5015          l_id                                    NUMBER;
5016          l_api_name                     CONSTANT VARCHAR2 (30)
5017                                                             := 'get_party_id';
5018       BEGIN
5019          -- start debug log
5020          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5021          THEN
5022             fnd_log.STRING (fnd_log.level_procedure,
5023                             g_module ||
5024                             l_api_name,
5025                             '100: Entered ' ||
5026                             g_pkg_name ||
5027                             '.' ||
5028                             l_api_name
5029                            );
5030          END IF;
5031 
5032          SELECT object1_id1
5033            INTO l_id
5034            FROM okc_k_party_roles_b
5035           WHERE chr_id = p_chr_id                      AND
5036                 dnz_chr_id = p_chr_id                  AND
5037                 cle_id IS NULL                         AND
5038                 rle_code IN ('CUSTOMER', 'SUBSCRIBER');
5039 
5040          -- end debug log
5041          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5042          THEN
5043             fnd_log.STRING (fnd_log.level_procedure,
5044                             g_module ||
5045                             l_api_name,
5046                             '1000: Leaving ' ||
5047                             g_pkg_name ||
5048                             '.' ||
5049                             l_api_name
5050                            );
5051          END IF;
5052 
5053          RETURN l_id;
5054       EXCEPTION
5055          WHEN NO_DATA_FOUND
5056          THEN
5057             -- end debug log
5058             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5059             THEN
5060                fnd_log.STRING (fnd_log.level_procedure,
5061                                g_module ||
5062                                l_api_name,
5063                                '5000: Leaving ' ||
5064                                g_pkg_name ||
5065                                '.' ||
5066                                l_api_name
5067                               );
5068             END IF;
5069 
5070             RETURN NULL;
5071          WHEN OTHERS
5072          THEN
5073             -- end debug log
5074             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5075             THEN
5076                fnd_log.STRING (fnd_log.level_procedure,
5077                                g_module ||
5078                                l_api_name,
5079                                '4000: Leaving ' ||
5080                                g_pkg_name ||
5081                                '.' ||
5082                                l_api_name
5083                               );
5084             END IF;
5085 
5086             fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
5087             RETURN NULL;
5088       END;
5089 -- CALC PROCEDURE STARTS
5090    BEGIN
5091       -- start debug log
5092       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5093       THEN
5094          fnd_log.STRING (fnd_log.level_procedure,
5095                          g_module ||
5096                          l_api_name,
5097                          '100: Entered ' ||
5098                          g_pkg_name ||
5099                          '.' ||
5100                          l_api_name
5101                         );
5102       END IF;
5103 
5104       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5105       THEN
5106          fnd_log.STRING (fnd_log.level_procedure,
5107                          g_module ||
5108                          l_api_name,
5109                          '401:******** INTENT ***************** ' ||
5110                          p_detail_rec.intent
5111                         );
5112          fnd_log.STRING (fnd_log.level_procedure,
5113                          g_module ||
5114                          l_api_name,
5115                          '402:******** CHR ID         ********* ' ||
5116                          p_detail_rec.chr_id
5117                         );
5118          fnd_log.STRING (fnd_log.level_procedure,
5119                          g_module ||
5120                          l_api_name,
5121                          '403:******** LINE_ID **************** ' ||
5122                          p_detail_rec.line_id
5123                         );
5124          fnd_log.STRING (fnd_log.level_procedure,
5125                          g_module ||
5126                          l_api_name,
5127                          '404:******** SUB_LINE_ID************* ' ||
5128                          p_detail_rec.subline_id
5129                         );
5130          fnd_log.STRING (fnd_log.level_procedure,
5131                          g_module ||
5132                          l_api_name,
5133                          '405:******** PRICE LIST     ********* ' ||
5134                          p_detail_rec.price_list
5135                         );
5136          fnd_log.STRING (fnd_log.level_procedure,
5137                          g_module ||
5138                          l_api_name,
5139                          '406:******** PRICE LIST LINE ID   *** ' ||
5140                          p_detail_rec.price_list_line_id
5141                         );
5142          fnd_log.STRING (fnd_log.level_procedure,
5143                          g_module ||
5144                          l_api_name,
5145                          '407:******** CURRENCY       ********* ' ||
5146                          p_detail_rec.currency
5147                         );
5148          fnd_log.STRING (fnd_log.level_procedure,
5149                          g_module ||
5150                          l_api_name,
5151                          '408:******** BCL ID         ********* ' ||
5152                          p_detail_rec.bcl_id
5153                         );
5154          fnd_log.STRING (fnd_log.level_procedure,
5155                          g_module ||
5156                          l_api_name,
5157                          '409:******** BSL ID         ********* ' ||
5158                          p_detail_rec.bsl_id
5159                         );
5160          fnd_log.STRING (fnd_log.level_procedure,
5161                          g_module ||
5162                          l_api_name,
5163                          '410:******** USAGE QTY      ********* ' ||
5164                          p_detail_rec.usage_qty
5165                         );
5166          fnd_log.STRING (fnd_log.level_procedure,
5167                          g_module ||
5168                          l_api_name,
5169                          '411:******** USAGE UOM      ********* ' ||
5170                          p_detail_rec.usage_uom_code
5171                         );
5172          fnd_log.STRING (fnd_log.level_procedure,
5173                          g_module ||
5174                          l_api_name,
5175                          '412:******** BREAK UOM      ********* ' ||
5176                          p_detail_rec.break_uom_code
5177                         );
5178          fnd_log.STRING (fnd_log.level_procedure,
5179                          g_module ||
5180                          l_api_name,
5181                          '413:******** PRORATION YN   ********* ' ||
5182                          p_detail_rec.proration_yn
5183                         );
5184          fnd_log.STRING (fnd_log.level_procedure,
5185                          g_module ||
5186                          l_api_name,
5187                          '414:******** PRORATION YN   ********* ' ||
5188                          p_detail_rec.proration_yn
5189                         );
5190          fnd_log.STRING (fnd_log.level_procedure,
5191                          g_module ||
5192                          l_api_name,
5193                          '415:******** BILL FROM DT   ********* ' ||
5194                          p_detail_rec.bill_from_date
5195                         );
5196          fnd_log.STRING (fnd_log.level_procedure,
5197                          g_module ||
5198                          l_api_name,
5199                          '416:******** BILL TO   DT   ********* ' ||
5200                          p_detail_rec.bill_to_date
5201                         );
5202          fnd_log.STRING (fnd_log.level_procedure,
5203                          g_module ||
5204                          l_api_name,
5205                          '417:******** ASKING_UNIT_PRICE ****** ' ||
5206                          p_detail_rec.asking_unit_price
5207                         );
5208       END IF;
5209 
5210 --dbms_output.put_line ('******** INTENT ***************** ' || p_detail_rec.intent);
5211 --dbms_output.put_line ('******** CHR ID         ********* ' || p_detail_rec.chr_id);
5212 --dbms_output.put_line ('******** LINE_ID **************** ' || p_detail_rec.line_id);
5213 --dbms_output.put_line ('******** SUB_LINE_ID************* ' || p_detail_rec.subline_id);
5214 --dbms_output.put_line ('******** PRICE LIST     ********* ' || p_detail_rec.price_list);
5215 --dbms_output.put_line ('******** PRICE LIST LINE ID   *** ' || p_detail_rec.price_list_line_id);
5216 --dbms_output.put_line ('******** CURRENCY       ********* ' || p_detail_rec.currency);
5217 --dbms_output.put_line ('******** BCL ID         ********* ' || p_detail_rec.bcl_id);
5218 --dbms_output.put_line ('******** BSL ID         ********* ' || p_detail_rec.bsl_id);
5219 --dbms_output.put_line ('******** USAGE QTY      ********* ' || p_detail_rec.usage_qty);
5220 --dbms_output.put_line ('******** USAGE UOM      ********* ' || p_detail_rec.usage_uom_code);
5221 --dbms_output.put_line ('******** BREAK UOM      ********* ' || p_detail_rec.break_uom_code);
5222 --dbms_output.put_line ('******** PRORATION YN   ********* ' || p_detail_rec.proration_yn);
5223 --dbms_output.put_line ('******** PRORATION YN   ********* ' || p_detail_rec.proration_yn);
5224 --dbms_output.put_line ('******** BILL FROM DT   ********* ' || p_detail_rec.bill_from_date);
5225 --dbms_output.put_line ('******** BILL TO   DT   ********* ' || p_detail_rec.bill_to_date);
5226 --dbms_output.put_line ('******** ASKING_UNIT_PRICE ****** ' || p_detail_rec.asking_unit_price);
5227 
5228       --Hdr-TopLine Cursor
5229       x_return_status            := 'S';
5230 
5231       OPEN l_hdrtop_csr;
5232 
5233       FETCH l_hdrtop_csr
5234        INTO l_hdrtop_rec;
5235 
5236       CLOSE l_hdrtop_csr;
5237 
5238 --SubLine Cursor
5239       OPEN l_subline_csr;
5240 
5241       FETCH l_subline_csr
5242        INTO l_subline_rec;
5243 
5244       CLOSE l_subline_csr;
5245 
5246 -- GCHADHA --
5247 -- 20 OCT 2004 --
5248 -- MULTI CURRENCY PRICELIST --
5249       l_control_rec.user_conversion_type := l_hdrtop_rec.kh_conversion_type;
5250       -- Get the Functional currency  --
5251       l_control_rec.function_currency :=
5252                    okc_currency_api.get_ou_currency (l_hdrtop_rec.kh_auth_org);
5253 
5254       -- If conversion type is 'USER' pass conversion rate to QP
5255       IF UPPER (NVL (l_hdrtop_rec.kh_conversion_type, '!')) = 'USER'
5256       THEN
5257          l_control_rec.user_conversion_rate :=
5258                                               l_hdrtop_rec.kh_conversion_rate;
5259       ELSE
5260          l_control_rec.user_conversion_rate := NULL;
5261       END IF;
5262 
5263       -- END GCHADHA --
5264 
5265       --TOP LINE REC DISPLAY
5266       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5267       THEN
5268          fnd_log.STRING (fnd_log.level_procedure,
5269                          g_module ||
5270                          l_api_name,
5271                          '501:*** TL-CONTRACT ID **** ' ||
5272                          l_hdrtop_rec.kh_id
5273                         );
5274          fnd_log.STRING (fnd_log.level_procedure,
5275                          g_module ||
5276                          l_api_name,
5277                          '502:*** TL-KH STRT  DT **** ' ||
5278                          l_hdrtop_rec.kh_start_date
5279                         );
5280          fnd_log.STRING (fnd_log.level_procedure,
5281                          g_module ||
5282                          l_api_name,
5283                          '503:*** TL-KH SIGN  DT **** ' ||
5284                          l_hdrtop_rec.kh_signed_date
5285                         );
5286          fnd_log.STRING (fnd_log.level_procedure,
5287                          g_module ||
5288                          l_api_name,
5289                          '504:*** TL-KH CURR  CD **** ' ||
5290                          l_hdrtop_rec.kh_currency_code
5291                         );
5292          fnd_log.STRING (fnd_log.level_procedure,
5293                          g_module ||
5294                          l_api_name,
5295                          '505:*** TL-TL LINE  ID **** ' ||
5296                          l_hdrtop_rec.tl_id
5297                         );
5298          fnd_log.STRING (fnd_log.level_procedure,
5299                          g_module ||
5300                          l_api_name,
5301                          '506:*** TL-TL START DT **** ' ||
5302                          l_hdrtop_rec.tl_start_date
5303                         );
5304          fnd_log.STRING (fnd_log.level_procedure,
5305                          g_module ||
5306                          l_api_name,
5307                          '507:*** TL-TL END   DT **** ' ||
5308                          l_hdrtop_rec.tl_end_date
5309                         );
5310          fnd_log.STRING (fnd_log.level_procedure,
5311                          g_module ||
5312                          l_api_name,
5313                          '508:*** TL-TL LINE STY **** ' ||
5314                          l_hdrtop_rec.tl_line_style
5315                         );
5316          fnd_log.STRING (fnd_log.level_procedure,
5317                          g_module ||
5318                          l_api_name,
5319                          '509:*** TL-TL OBJ1_ID1 **** ' ||
5320                          l_hdrtop_rec.tl_object_id
5321                         );
5322          fnd_log.STRING (fnd_log.level_procedure,
5323                          g_module ||
5324                          l_api_name,
5325                          '510:*** TL-TL OBJ  QTY **** ' ||
5326                          l_hdrtop_rec.tl_qty
5327                         );
5328          fnd_log.STRING (fnd_log.level_procedure,
5329                          g_module ||
5330                          l_api_name,
5331                          '511:*** TL-TL OBJ  UOM **** ' ||
5332                          l_hdrtop_rec.tl_uom_code
5333                         );
5334          fnd_log.STRING (fnd_log.level_procedure,
5335                          g_module ||
5336                          l_api_name,
5337                          '511:*** TL-TL PRICE LIST **** ' ||
5338                          l_hdrtop_rec.price_list_id
5339                         );
5340          fnd_log.STRING
5341             (fnd_log.level_procedure,
5342              g_module ||
5343              l_api_name,
5344              '512:*************************************************************************'
5345             );
5346       END IF;
5347 
5348 --dbms_output.put_line ('*** TL-CONTRACT ID **** ' ||l_hdrtop_rec.kh_id);
5349 --dbms_output.put_line ('*** TL-KH STRT  DT **** ' ||l_hdrtop_rec.kh_start_date);
5350 --dbms_output.put_line ('*** TL-KH SIGN  DT **** ' ||l_hdrtop_rec.kh_signed_date);
5351 --dbms_output.put_line ('*** TL-KH CURR  CD **** ' ||l_hdrtop_rec.kh_currency_code);
5352 --dbms_output.put_line ('*** TL-TL LINE  ID **** ' ||l_hdrtop_rec.tl_id);
5353 --dbms_output.put_line ('*** TL-TL START DT **** ' ||l_hdrtop_rec.tl_start_date);
5354 --dbms_output.put_line ('*** TL-TL END   DT **** ' ||l_hdrtop_rec.tl_end_date);
5355 --dbms_output.put_line ('*** TL-TL LINE STY **** ' ||l_hdrtop_rec.tl_line_style);
5356 --dbms_output.put_line ('*** TL-TL OBJ1_ID1 **** ' ||l_hdrtop_rec.tl_object_id);
5357 --dbms_output.put_line ('*** TL-TL OBJ  QTY **** ' ||l_hdrtop_rec.tl_qty);
5358 --dbms_output.put_line ('*** TL-TL OBJ  UOM **** ' ||l_hdrtop_rec.tl_uom_code);
5359 
5360       --dbms_output.put_line ('*************************************************************************');
5361 
5362       --SUB LINE REC DISPLAY
5363       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5364       THEN
5365          fnd_log.STRING (fnd_log.level_procedure,
5366                          g_module ||
5367                          l_api_name,
5368                          '601:*** SL-SL LINE  ID **** ' ||
5369                          l_subline_rec.sl_id
5370                         );
5371          fnd_log.STRING (fnd_log.level_procedure,
5372                          g_module ||
5373                          l_api_name,
5374                          '602:*** SL-SL START DT **** ' ||
5375                          l_subline_rec.sl_start_date
5376                         );
5377          fnd_log.STRING (fnd_log.level_procedure,
5378                          g_module ||
5379                          l_api_name,
5380                          '603:*** SL-SL END   DT **** ' ||
5381                          l_subline_rec.sl_end_date
5382                         );
5383          fnd_log.STRING (fnd_log.level_procedure,
5384                          g_module ||
5385                          l_api_name,
5386                          '604:*** SL-SL LINE STY **** ' ||
5387                          l_subline_rec.sl_line_style
5388                         );
5389          fnd_log.STRING (fnd_log.level_procedure,
5390                          g_module ||
5391                          l_api_name,
5392                          '605:*** SL-SL OBJ1_ID1 **** ' ||
5393                          l_subline_rec.sl_object_id
5394                         );
5395          fnd_log.STRING
5396             (fnd_log.level_procedure,
5397              g_module ||
5398              l_api_name,
5399              '606:*************************************************************************'
5400             );
5401       END IF;
5402 
5403 --dbms_output.put_line ('*** SL-SL LINE  ID **** ' ||l_subline_rec.sl_id);
5404 --dbms_output.put_line ('*** SL-SL START DT **** ' ||l_subline_rec.sl_start_date);
5405 --dbms_output.put_line ('*** SL-SL END   DT **** ' ||l_subline_rec.sl_end_date);
5406 --dbms_output.put_line ('*** SL-SL LINE STY **** ' ||l_subline_rec.sl_line_style);
5407 --dbms_output.put_line ('*** SL-SL OBJ1_ID1 **** ' ||l_subline_rec.sl_object_id);
5408 
5409       --dbms_output.put_line ('*************************************************************************');
5410 
5411       --Ctr Variables for pricing tables
5412       l_product_index            := 1;
5413       l_service_index            := 2;
5414       l_line_tbl_ctr             := 0;
5415       l_line_attr_tbl_ctr        := 0;
5416       l_line_detl_tbl_ctr        := 0;
5417       l_line_qual_tbl_ctr        := 0;
5418 --Variables to be populated
5419       l_pricing_event            := 'BATCH';
5420 
5421       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5422       THEN
5423          fnd_log.STRING (fnd_log.level_procedure,
5424                          g_module ||
5425                          l_api_name,
5426                          '701:*** INTENT *********** ' ||
5427                          p_detail_rec.intent
5428                         );
5429          fnd_log.STRING (fnd_log.level_procedure,
5430                          g_module ||
5431                          l_api_name,
5432                          '702:*** PRICING EVENT **** ' ||
5433                          l_pricing_event
5434                         );
5435       END IF;
5436 
5437 --dbms_output.put_line ('*** INTENT *********** ' || p_detail_rec.intent);
5438 --dbms_output.put_line ('*** PRICING EVENT **** ' || l_pricing_event);
5439       l_request_type_code        := 'ONT';
5440 
5441       IF NVL (p_detail_rec.intent, 'JA') = 'HM'
5442       THEN
5443          l_line_type_code           := 'ORDER';
5444       ELSE
5445          l_line_type_code           := 'LINE';
5446       END IF;
5447 
5448       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5449       THEN
5450          fnd_log.STRING (fnd_log.level_procedure,
5451                          g_module ||
5452                          l_api_name,
5453                          '801:*** LINE_TYPE_CODE **** ' ||
5454                          l_line_type_code
5455                         );
5456       END IF;
5457 
5458 --dbms_output.put_line ('*** LINE_TYPE_CODE **** ' || l_line_type_code);
5459       l_def_pricing_profile      := fnd_profile.VALUE ('OKS_DEF_PRICING_DATE');
5460 
5461       IF l_def_pricing_profile = 'KSDT'
5462       THEN
5463          l_def_pricing_date         := l_hdrtop_rec.kh_start_date;
5464       ELSIF l_def_pricing_profile = 'SYDT'
5465       THEN
5466          l_def_pricing_date         := SYSDATE;
5467       ELSIF l_def_pricing_profile = 'TSDT'
5468       THEN
5469          l_def_pricing_date         := l_hdrtop_rec.tl_start_date;
5470       ELSIF l_def_pricing_profile = 'KGDT'
5471       THEN
5472          l_def_pricing_date         := l_hdrtop_rec.kh_signed_date;
5473       ELSIF l_def_pricing_profile = 'CSDT'
5474       THEN
5475          IF l_hdrtop_rec.tl_line_style IN (12, 46)
5476          THEN
5477             l_def_pricing_date         := l_hdrtop_rec.tl_start_date;
5478          ELSE
5479             l_def_pricing_date         := l_subline_rec.sl_start_date;
5480          END IF;
5481       END IF;
5482 
5483       l_def_pricing_date         := NVL (l_def_pricing_date, SYSDATE);
5484 
5485       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5486       THEN
5487          fnd_log.STRING (fnd_log.level_procedure,
5488                          g_module ||
5489                          l_api_name,
5490                          '901:*** DEF PRICING PROFILE **** ' ||
5491                          l_def_pricing_profile
5492                         );
5493          fnd_log.STRING (fnd_log.level_procedure,
5494                          g_module ||
5495                          l_api_name,
5496                          '902:*** PRICING DATE **** ' ||
5497                          l_def_pricing_date
5498                         );
5499       END IF;
5500 
5501 --dbms_output.put_line ('*** DEF PRICING PROFILE **** ' || l_def_pricing_profile);
5502 --dbms_output.put_line ('*** PRICING DATE **** ' || l_def_pricing_date);
5503       IF NVL (p_detail_rec.intent, 'JA') = 'HM'
5504       THEN
5505          l_currency                 := p_detail_rec.currency;
5506       ELSE
5507          l_currency                 := l_hdrtop_rec.kh_currency_code;
5508       END IF;
5509 
5510       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5511       THEN
5512          fnd_log.STRING (fnd_log.level_procedure,
5513                          g_module ||
5514                          l_api_name,
5515                          '1001:*** CURRENCY CODE **** ' ||
5516                          l_currency
5517                         );
5518          fnd_log.STRING
5519             (fnd_log.level_procedure,
5520              g_module ||
5521              l_api_name,
5522              '1002:************************** SET GLOBAL VARIABLES ********************************************'
5523             );
5524       END IF;
5525 
5526 --dbms_output.put_line ('*** CURRENCY CODE **** ' || l_currency);
5527 
5528       --dbms_output.put_line ('************************** SET GLOBAL VARIABLES ********************************************');
5529 
5530       --Assemble variables
5531       l_customer_id              :=
5532                       get_customer_id (l_hdrtop_rec.kh_id, l_hdrtop_rec.tl_id);
5533 
5534       BEGIN
5535          SELECT party_id
5536            INTO l_party_id
5537            FROM hz_cust_accounts_all
5538           WHERE cust_account_id = l_customer_id;
5539       EXCEPTION
5540          WHEN NO_DATA_FOUND
5541          THEN
5542             l_party_id                 := NULL;
5543 
5544             -- end debug log
5545             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5546             THEN
5547                fnd_log.STRING (fnd_log.level_procedure,
5548                                g_module ||
5549                                l_api_name,
5550                                '5000: Leaving ' ||
5551                                g_pkg_name ||
5552                                '.' ||
5553                                l_api_name
5554                               );
5555             END IF;
5556          WHEN OTHERS
5557          THEN
5558             l_party_id                 := NULL;
5559 
5560             -- end debug log
5561             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5562             THEN
5563                fnd_log.STRING (fnd_log.level_procedure,
5564                                g_module ||
5565                                l_api_name,
5566                                '4000: Leaving ' ||
5567                                g_pkg_name ||
5568                                '.' ||
5569                                l_api_name
5570                               );
5571             END IF;
5572 
5573             fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
5574       END;
5575 
5576       IF p_detail_rec.intent = 'HM'
5577       THEN
5578          OPEN l_skg_csr;
5579 
5580          FETCH l_skg_csr
5581           INTO l_skg_rec;
5582 
5583          CLOSE l_skg_csr;
5584 
5585          oks_qpattrib_pvt.g_contract_hdrrec.chr_id := l_skg_rec.kh_id;
5586          oks_qpattrib_pvt.g_contract_hdrrec.top_line_id := NULL;
5587          oks_qpattrib_pvt.g_contract_hdrrec.cov_line_id := NULL;
5588          oks_qpattrib_pvt.g_contract_hdrrec.inventory_item_id := NULL;
5589          oks_qpattrib_pvt.g_contract_hdrrec.invt_org_id := l_skg_rec.inv_org;
5590          oks_qpattrib_pvt.g_contract_hdrrec.auth_org_id :=
5591                                                          l_skg_rec.kh_auth_org;
5592          oks_qpattrib_pvt.g_contract_hdrrec.pricing_date := l_def_pricing_date;
5593          oks_qpattrib_pvt.g_contract_hdrrec.party_id :=
5594                                                 get_party_id (l_skg_rec.kh_id);
5595          oks_qpattrib_pvt.g_contract_hdrrec.customer_id :=
5596                               get_customer_from_siteuse (l_skg_rec.kh_bill_to);
5597          oks_qpattrib_pvt.g_contract_hdrrec.agreement_id :=
5598                                             get_agreement_id (l_skg_rec.kh_id);
5599          oks_qpattrib_pvt.g_contract_hdrrec.bill_to := l_skg_rec.kh_bill_to;
5600          oks_qpattrib_pvt.g_contract_hdrrec.ship_to := l_skg_rec.kh_ship_to;
5601          oks_qpattrib_pvt.g_contract_hdrrec.payment_term_id :=
5602                                                   l_skg_rec.kh_payment_term_id;
5603          oks_qpattrib_pvt.g_contract_linrec.chr_id := NULL;
5604          oks_qpattrib_pvt.g_contract_linrec.top_line_id := NULL;
5605          oks_qpattrib_pvt.g_contract_linrec.cov_line_id := NULL;
5606          oks_qpattrib_pvt.g_contract_linrec.inventory_item_id := NULL;
5607          oks_qpattrib_pvt.g_contract_linrec.invt_org_id := NULL;
5608          oks_qpattrib_pvt.g_contract_linrec.auth_org_id := NULL;
5609          oks_qpattrib_pvt.g_contract_linrec.pricing_date := NULL;
5610          oks_qpattrib_pvt.g_contract_linrec.party_id := NULL;
5611          oks_qpattrib_pvt.g_contract_linrec.customer_id := NULL;
5612          oks_qpattrib_pvt.g_contract_linrec.bill_to := NULL;
5613          oks_qpattrib_pvt.g_contract_linrec.ship_to := NULL;
5614          oks_qpattrib_pvt.g_contract_linrec.payment_term_id := NULL;
5615       ELSE
5616          oks_qpattrib_pvt.g_contract_hdrrec.chr_id := l_hdrtop_rec.kh_id;
5617          oks_qpattrib_pvt.g_contract_hdrrec.top_line_id := l_hdrtop_rec.tl_id;
5618          oks_qpattrib_pvt.g_contract_hdrrec.cov_line_id :=
5619                                                           l_subline_rec.sl_id;
5620          oks_qpattrib_pvt.g_contract_hdrrec.inventory_item_id :=
5621                                                     l_hdrtop_rec.tl_object_id;
5622          oks_qpattrib_pvt.g_contract_hdrrec.invt_org_id :=
5623                                                          l_hdrtop_rec.inv_org;
5624          oks_qpattrib_pvt.g_contract_hdrrec.auth_org_id :=
5625                                                      l_hdrtop_rec.kh_auth_org;
5626          oks_qpattrib_pvt.g_contract_hdrrec.pricing_date :=
5627                                                            l_def_pricing_date;
5628          oks_qpattrib_pvt.g_contract_hdrrec.party_id :=
5629                                             get_party_id (l_hdrtop_rec.kh_id);
5630          oks_qpattrib_pvt.g_contract_hdrrec.customer_id :=
5631                           get_customer_from_siteuse (l_hdrtop_rec.kh_bill_to);
5632          oks_qpattrib_pvt.g_contract_hdrrec.agreement_id :=
5633                                         get_agreement_id (l_hdrtop_rec.kh_id);
5634          oks_qpattrib_pvt.g_contract_hdrrec.bill_to :=
5635                                                       l_hdrtop_rec.kh_bill_to;
5636          oks_qpattrib_pvt.g_contract_hdrrec.ship_to :=
5637                                                       l_hdrtop_rec.kh_ship_to;
5638          oks_qpattrib_pvt.g_contract_hdrrec.payment_term_id :=
5639                                               l_hdrtop_rec.kh_payment_term_id;
5640          oks_qpattrib_pvt.g_contract_linrec.chr_id := l_hdrtop_rec.kh_id;
5641          oks_qpattrib_pvt.g_contract_linrec.top_line_id := l_hdrtop_rec.tl_id;
5642          oks_qpattrib_pvt.g_contract_linrec.cov_line_id :=
5643                                                           l_subline_rec.sl_id;
5644          oks_qpattrib_pvt.g_contract_linrec.inventory_item_id :=
5645                                                     l_hdrtop_rec.tl_object_id;
5646          oks_qpattrib_pvt.g_contract_linrec.invt_org_id :=
5647                                                          l_hdrtop_rec.inv_org;
5648          oks_qpattrib_pvt.g_contract_linrec.auth_org_id :=
5649                                                      l_hdrtop_rec.kh_auth_org;
5650          oks_qpattrib_pvt.g_contract_linrec.pricing_date :=
5651                                                            l_def_pricing_date;
5652          oks_qpattrib_pvt.g_contract_linrec.party_id := l_party_id;
5653          oks_qpattrib_pvt.g_contract_linrec.customer_id := l_customer_id;
5654          oks_qpattrib_pvt.g_contract_linrec.bill_to :=
5655                                                       l_hdrtop_rec.tl_bill_to;
5656          oks_qpattrib_pvt.g_contract_linrec.ship_to :=
5657                                                       l_hdrtop_rec.tl_ship_to;
5658          oks_qpattrib_pvt.g_contract_linrec.payment_term_id :=
5659                                               l_hdrtop_rec.tl_payment_term_id;
5660       END IF;
5661 
5662       IF p_detail_rec.break_uom_code IS NOT NULL
5663       THEN
5664          oks_qpattrib_pvt.g_contract_linrec.break_uom :=
5665                                                   p_detail_rec.break_uom_code;
5666       ELSE
5667          oks_qpattrib_pvt.g_contract_linrec.break_uom := NULL;
5668       END IF;
5669 
5670       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5671       THEN
5672          fnd_log.STRING (fnd_log.level_procedure,
5673                          g_module ||
5674                          l_api_name,
5675                          '2001:*** GLOBAL VARIABLE - CHR-ID        **** ' ||
5676                          oks_qpattrib_pvt.g_contract_hdrrec.chr_id
5677                         );
5678          fnd_log.STRING (fnd_log.level_procedure,
5679                          g_module ||
5680                          l_api_name,
5681                          '2002:*** GLOBAL VARIABLE - TOP-LINE ID   **** ' ||
5682                          oks_qpattrib_pvt.g_contract_hdrrec.top_line_id
5683                         );
5684          fnd_log.STRING (fnd_log.level_procedure,
5685                          g_module ||
5686                          l_api_name,
5687                          '2003:*** GLOBAL VARIABLE - COV-LINE-ID   **** ' ||
5688                          oks_qpattrib_pvt.g_contract_hdrrec.cov_line_id
5689                         );
5690          fnd_log.STRING (fnd_log.level_procedure,
5691                          g_module ||
5692                          l_api_name,
5693                          '2004:*** GLOBAL VARIABLE - INV-ITEM-ID   **** ' ||
5694                          oks_qpattrib_pvt.g_contract_hdrrec.inventory_item_id
5695                         );
5696          fnd_log.STRING (fnd_log.level_procedure,
5697                          g_module ||
5698                          l_api_name,
5699                          '2005:*** GLOBAL VARIABLE - INV- ORG-ID   **** ' ||
5700                          oks_qpattrib_pvt.g_contract_hdrrec.invt_org_id
5701                         );
5702          fnd_log.STRING (fnd_log.level_procedure,
5703                          g_module ||
5704                          l_api_name,
5705                          '2006:*** GLOBAL VARIABLE - AUT- ORG-ID   **** ' ||
5706                          oks_qpattrib_pvt.g_contract_hdrrec.auth_org_id
5707                         );
5708          fnd_log.STRING (fnd_log.level_procedure,
5709                          g_module ||
5710                          l_api_name,
5711                          '2007:*** GLOBAL VARIABLE - PRICE -DATE   **** ' ||
5712                          oks_qpattrib_pvt.g_contract_hdrrec.pricing_date
5713                         );
5714          fnd_log.STRING (fnd_log.level_procedure,
5715                          g_module ||
5716                          l_api_name,
5717                          '2008:*** GLOBAL VARIABLE - PARTY -  ID   **** ' ||
5718                          oks_qpattrib_pvt.g_contract_hdrrec.party_id
5719                         );
5720          fnd_log.STRING (fnd_log.level_procedure,
5721                          g_module ||
5722                          l_api_name,
5723                          '2009:*** GLOBAL VARIABLE - CUST  -  ID   **** ' ||
5724                          oks_qpattrib_pvt.g_contract_hdrrec.customer_id
5725                         );
5726          fnd_log.STRING (fnd_log.level_procedure,
5727                          g_module ||
5728                          l_api_name,
5729                          '2010:*** GLOBAL VARIABLE - AGREEM-  ID   **** ' ||
5730                          oks_qpattrib_pvt.g_contract_hdrrec.agreement_id
5731                         );
5732          fnd_log.STRING (fnd_log.level_procedure,
5733                          g_module ||
5734                          l_api_name,
5735                          '2011:*** GLOBAL VARIABLE - BILL  -  TO   **** ' ||
5736                          oks_qpattrib_pvt.g_contract_hdrrec.bill_to
5737                         );
5738          fnd_log.STRING (fnd_log.level_procedure,
5739                          g_module ||
5740                          l_api_name,
5741                          '2012:*** GLOBAL VARIABLE - SHIP  -  TO   **** ' ||
5742                          oks_qpattrib_pvt.g_contract_hdrrec.ship_to
5743                         );
5744          fnd_log.STRING (fnd_log.level_procedure,
5745                          g_module ||
5746                          l_api_name,
5747                          '2013:*** GLOBAL VARIABLE - PAYMENT  ID   **** ' ||
5748                          oks_qpattrib_pvt.g_contract_hdrrec.payment_term_id
5749                         );
5750          fnd_log.STRING (fnd_log.level_procedure,
5751                          g_module ||
5752                          l_api_name,
5753                          '2014:*** GLOBAL VARIABLE - BREAK UOM     **** ' ||
5754                          oks_qpattrib_pvt.g_contract_hdrrec.break_uom
5755                         );
5756          fnd_log.STRING (fnd_log.level_procedure,
5757                          g_module ||
5758                          l_api_name,
5759                          '2015:*** GLOBAL VARIABLE - CHR-ID        **** ' ||
5760                          oks_qpattrib_pvt.g_contract_linrec.chr_id
5761                         );
5762          fnd_log.STRING (fnd_log.level_procedure,
5763                          g_module ||
5764                          l_api_name,
5765                          '2016:*** GLOBAL VARIABLE - TOP-LINE ID   **** ' ||
5766                          oks_qpattrib_pvt.g_contract_linrec.top_line_id
5767                         );
5768          fnd_log.STRING (fnd_log.level_procedure,
5769                          g_module ||
5770                          l_api_name,
5771                          '2017:*** GLOBAL VARIABLE - COV-LINE-ID   **** ' ||
5772                          oks_qpattrib_pvt.g_contract_linrec.cov_line_id
5773                         );
5774          fnd_log.STRING (fnd_log.level_procedure,
5775                          g_module ||
5776                          l_api_name,
5777                          '2018:*** GLOBAL VARIABLE - INV-ITEM-ID   **** ' ||
5778                          oks_qpattrib_pvt.g_contract_linrec.inventory_item_id
5779                         );
5780          fnd_log.STRING (fnd_log.level_procedure,
5781                          g_module ||
5782                          l_api_name,
5783                          '2019:*** GLOBAL VARIABLE - INV- ORG-ID   **** ' ||
5784                          oks_qpattrib_pvt.g_contract_linrec.invt_org_id
5785                         );
5786          fnd_log.STRING (fnd_log.level_procedure,
5787                          g_module ||
5788                          l_api_name,
5789                          '2020:*** GLOBAL VARIABLE - AUT- ORG-ID   **** ' ||
5790                          oks_qpattrib_pvt.g_contract_linrec.auth_org_id
5791                         );
5792          fnd_log.STRING (fnd_log.level_procedure,
5793                          g_module ||
5794                          l_api_name,
5795                          '2021:*** GLOBAL VARIABLE - PRICE -DATE   **** ' ||
5796                          oks_qpattrib_pvt.g_contract_linrec.pricing_date
5797                         );
5798          fnd_log.STRING (fnd_log.level_procedure,
5799                          g_module ||
5800                          l_api_name,
5801                          '2022:*** GLOBAL VARIABLE - PARTY -  ID   **** ' ||
5802                          oks_qpattrib_pvt.g_contract_linrec.party_id
5803                         );
5804          fnd_log.STRING (fnd_log.level_procedure,
5805                          g_module ||
5806                          l_api_name,
5807                          '2023:*** GLOBAL VARIABLE - CUST  -  ID   **** ' ||
5808                          oks_qpattrib_pvt.g_contract_linrec.customer_id
5809                         );
5810          fnd_log.STRING (fnd_log.level_procedure,
5811                          g_module ||
5812                          l_api_name,
5813                          '2024:*** GLOBAL VARIABLE - BREAK UOM     **** ' ||
5814                          oks_qpattrib_pvt.g_contract_linrec.break_uom
5815                         );
5816          fnd_log.STRING (fnd_log.level_procedure,
5817                          g_module ||
5818                          l_api_name,
5819                          '2025:*** GLOBAL VARIABLE - BILL  -  TO   **** ' ||
5820                          oks_qpattrib_pvt.g_contract_linrec.bill_to
5821                         );
5822          fnd_log.STRING (fnd_log.level_procedure,
5823                          g_module ||
5824                          l_api_name,
5825                          '2026:*** GLOBAL VARIABLE - SHIP  -  TO   **** ' ||
5826                          oks_qpattrib_pvt.g_contract_linrec.ship_to
5827                         );
5828          fnd_log.STRING (fnd_log.level_procedure,
5829                          g_module ||
5830                          l_api_name,
5831                          '2027:*** GLOBAL VARIABLE - PAYMENT  ID   **** ' ||
5832                          oks_qpattrib_pvt.g_contract_linrec.payment_term_id
5833                         );
5834          fnd_log.STRING (fnd_log.level_procedure,
5835                          g_module ||
5836                          l_api_name,
5837                          '2028:*** GLOBAL VARIABLE - BREAK UOM     **** ' ||
5838                          oks_qpattrib_pvt.g_contract_linrec.break_uom
5839                         );
5840       END IF;
5841 
5842 --dbms_output.put_line ('*** GLOBAL VARIABLE - CHR-ID        **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.CHR_ID);
5843 --dbms_output.put_line ('*** GLOBAL VARIABLE - TOP-LINE ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.TOP_LINE_ID);
5844 --dbms_output.put_line ('*** GLOBAL VARIABLE - COV-LINE-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.COV_LINE_ID);
5845 --dbms_output.put_line ('*** GLOBAL VARIABLE - INV-ITEM-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.INVENTORY_ITEM_ID);
5846 --dbms_output.put_line ('*** GLOBAL VARIABLE - INV- ORG-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.INVT_ORG_ID);
5847 --dbms_output.put_line ('*** GLOBAL VARIABLE - AUT- ORG-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.AUTH_ORG_ID);
5848 --dbms_output.put_line ('*** GLOBAL VARIABLE - PRICE -DATE   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.PRICING_DATE);
5849 --dbms_output.put_line ('*** GLOBAL VARIABLE - PARTY -  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.PARTY_ID);
5850 --dbms_output.put_line ('*** GLOBAL VARIABLE - CUST  -  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.CUSTOMER_ID);
5851 --dbms_output.put_line ('*** GLOBAL VARIABLE - AGREEM-  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.AGREEMENT_ID);
5852 --dbms_output.put_line ('*** GLOBAL VARIABLE - BILL  -  TO   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.BILL_TO);
5853 --dbms_output.put_line ('*** GLOBAL VARIABLE - SHIP  -  TO   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.SHIP_TO);
5854 --dbms_output.put_line ('*** GLOBAL VARIABLE - PAYMENT  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.PAYMENT_TERM_ID);
5855 --dbms_output.put_line ('*** GLOBAL VARIABLE - BREAK UOM     **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.BREAK_UOM);
5856 
5857       --dbms_output.put_line ('*** GLOBAL VARIABLE - CHR-ID        **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.CHR_ID);
5858 --dbms_output.put_line ('*** GLOBAL VARIABLE - TOP-LINE ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.TOP_LINE_ID);
5859 --dbms_output.put_line ('*** GLOBAL VARIABLE - COV-LINE-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.COV_LINE_ID);
5860 --dbms_output.put_line ('*** GLOBAL VARIABLE - INV-ITEM-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.INVENTORY_ITEM_ID);
5861 --dbms_output.put_line ('*** GLOBAL VARIABLE - INV- ORG-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.INVT_ORG_ID);
5862 --dbms_output.put_line ('*** GLOBAL VARIABLE - AUT- ORG-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.AUTH_ORG_ID);
5863 --dbms_output.put_line ('*** GLOBAL VARIABLE - PRICE -DATE   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.PRICING_DATE);
5864 --dbms_output.put_line ('*** GLOBAL VARIABLE - PARTY -  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.PARTY_ID);
5865 --dbms_output.put_line ('*** GLOBAL VARIABLE - CUST  -  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.CUSTOMER_ID);
5866 --dbms_output.put_line ('*** GLOBAL VARIABLE - BREAK UOM     **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.BREAK_UOM);
5867 --dbms_output.put_line ('*** GLOBAL VARIABLE - BILL  -  TO   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.BILL_TO);
5868 --dbms_output.put_line ('*** GLOBAL VARIABLE - SHIP  -  TO   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.SHIP_TO);
5869 --dbms_output.put_line ('*** GLOBAL VARIABLE - PAYMENT  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.PAYMENT_TERM_ID);
5870 --dbms_output.put_line ('*** GLOBAL VARIABLE - BREAK UOM     **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.BREAK_UOM);
5871 
5872       IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
5873          fnd_log.STRING (fnd_log.level_statement,g_module ||l_api_name,
5874                          '2029:*** Calling qp_attr_mapping_pub.build_contexts **** '
5875                         );
5876       END IF;
5877 
5878       qp_attr_mapping_pub.build_contexts
5879                        (p_request_type_code                => 'OKS',
5880                         p_pricing_type                     => 'H',
5881                         x_price_contexts_result_tbl        => l_pricing_contexts_tbl,
5882                         x_qual_contexts_result_tbl         => l_qual_contexts_tbl
5883                        );
5884 
5885       IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
5886          fnd_log.STRING (fnd_log.level_statement,g_module ||l_api_name,
5887                          '2030:*** After Calling qp_attr_mapping_pub.build_contexts **** '
5888                         );
5889       END IF;
5890 
5891 --dbms_output.put_line ('*** BUILD CONTEXT HDR  LEVEL - PRICING TBL   **** ' || l_pricing_contexts_tbl.count);
5892 --dbms_output.put_line ('*** BUILD CONTEXT HDR  LEVEL - QUALIFY TBL   **** ' || l_qual_contexts_tbl.count);
5893 
5894       IF NOT NVL (p_detail_rec.intent, 'JA') = 'HM'
5895       THEN
5896           IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
5897               fnd_log.STRING (fnd_log.level_statement,g_module ||l_api_name,
5898                          '2031:*** Calling qp_attr_mapping_pub.build_contexts **** '
5899                         );
5900           END IF;
5901          qp_attr_mapping_pub.build_contexts
5902                       (p_request_type_code                => 'OKS',
5903                        p_pricing_type                     => 'L',
5904                        x_price_contexts_result_tbl        => l_pricing_contexts_tbl,
5905                        x_qual_contexts_result_tbl         => l_qual_contexts_tbl
5906                       );
5907           IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
5908               fnd_log.STRING (fnd_log.level_statement,g_module ||l_api_name,
5909                          '2032:*** After Calling qp_attr_mapping_pub.build_contexts **** '
5910                         );
5911           END IF;
5912       END IF; -- IF NOT NVL (p_detail_rec.intent, 'JA') = 'HM'
5913 
5914       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5915       THEN
5916          fnd_log.STRING
5917                 (fnd_log.level_procedure,
5918                  g_module ||
5919                  l_api_name,
5920                  '3001:*** BUILD CONTEXT LINE LEVEL - PRICING TBL   **** ' ||
5921                  l_pricing_contexts_tbl.COUNT
5922                 );
5923          fnd_log.STRING
5924                  (fnd_log.level_procedure,
5925                   g_module ||
5926                   l_api_name,
5927                   '3002:*** BUILD CONTEXT LINE LEVEL - QUALIFY TBL   **** ' ||
5928                   l_qual_contexts_tbl.COUNT
5929                  );
5930       END IF;
5931 
5932 --dbms_output.put_line ('*** BUILD CONTEXT LINE LEVEL - PRICING TBL   **** ' || l_pricing_contexts_tbl.count);
5933 --dbms_output.put_line ('*** BUILD CONTEXT LINE LEVEL - QUALIFY TBL   **** ' || l_qual_contexts_tbl.count);
5934       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5935       THEN
5936          fnd_log.STRING
5937             (fnd_log.level_procedure,
5938              g_module ||
5939              l_api_name,
5940              '4001:************************** ASSEMBLING ********************************************'
5941             );
5942       END IF;
5943 
5944 --dbms_output.put_line ('************************** ASSEMBLING ********************************************');
5945 
5946       --GROUP I.I
5947       l_control_rec.pricing_event := l_pricing_event;
5948       l_control_rec.calculate_flag := 'Y';
5949       l_control_rec.simulation_flag := 'Y';
5950       l_control_rec.rounding_flag := 'N';
5951       l_control_rec.source_order_amount_flag := 'Y';
5952       l_control_rec.temp_table_insert_flag := 'Y';
5953 
5954       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
5955       THEN
5956          fnd_log.STRING
5957             (fnd_log.level_procedure,
5958              g_module ||
5959              l_api_name,
5960              '4002:*************************************************************************'
5961             );
5962       END IF;
5963 
5964 --dbms_output.put_line ('*************************************************************************');
5965 
5966       --GROUP I.II
5967       l_line_tbl_ctr             := l_line_tbl_ctr +
5968                                     1;
5969       l_req_line_rec.request_type_code := l_request_type_code;
5970 
5971 --get line_id for product
5972       IF l_hdrtop_rec.tl_line_style IN (12, 46)
5973       THEN
5974          l_req_line_rec.line_id     := p_detail_rec.line_id;
5975       ELSE
5976          l_req_line_rec.line_id     := p_detail_rec.subline_id;
5977       END IF;
5978 
5979       l_req_line_rec.line_index  := 1;
5980       l_req_line_rec.line_type_code := l_line_type_code;
5981       l_req_line_rec.pricing_effective_date := l_def_pricing_date;
5982 
5983 --Get Lineqty/Lineuom
5984       IF l_hdrtop_rec.tl_line_style = 46
5985       THEN
5986          oks_subscription_pub.get_subs_qty
5987                                          (p_cle_id                           => p_detail_rec.line_id,
5988                                           x_return_status                    => l_return_status,
5989                                           x_quantity                         => l_qpprod_quantity,
5990                                           x_uom_code                         => l_qpprod_uom_code
5991                                          );
5992 
5993          IF l_return_status <> 'S'
5994          THEN
5995             okc_api.set_message
5996                            (g_app_name,
5997                             g_required_value,
5998                             g_col_name_token,
5999                             'JA-J-is returning error on subscription qty-uom'
6000                            );
6001             RAISE fnd_api.g_exc_error;
6002          END IF;
6003       ELSIF l_hdrtop_rec.tl_line_style = 12
6004       THEN
6005          l_req_line_rec.usage_pricing_type := 'REGULAR';
6006 
6007          IF NVL (p_detail_rec.intent, 'JA') IN ('PB', 'LM', 'SM')
6008          THEN
6009             l_qpprod_quantity          := 1;
6010             l_qpprod_uom_code          :=
6011                get_uom (p_id                               => l_hdrtop_rec.tl_object_id,
6012                         p_inv_org                          => l_hdrtop_rec.inv_org);
6013          ELSE
6014             l_qpprod_quantity          := p_detail_rec.usage_qty;
6015             l_qpprod_uom_code          := p_detail_rec.usage_uom_code;
6016          END IF;
6017       ELSE
6018          l_qpprod_quantity          := l_subline_rec.sl_qty;
6019          l_qpprod_uom_code          := l_subline_rec.sl_uom_code;
6020       END IF;
6021 
6022       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6023       THEN
6024          fnd_log.STRING
6025             (fnd_log.level_procedure,
6026              g_module ||
6027              l_api_name,
6028              '5001:*************************************************************************'
6029             );
6030          fnd_log.STRING (fnd_log.level_procedure,
6031                          g_module ||
6032                          l_api_name,
6033                          '5002:*** QPPROD-LINE UOM CODE **** ' ||
6034                          l_qpprod_uom_code
6035                         );
6036          fnd_log.STRING (fnd_log.level_procedure,
6037                          g_module ||
6038                          l_api_name,
6039                          '5003:*** QPPROD-LINE QUANTITY **** ' ||
6040                          l_qpprod_quantity
6041                         );
6042          fnd_log.STRING
6043             (fnd_log.level_procedure,
6044              g_module ||
6045              l_api_name,
6046              '5004:*************************************************************************'
6047             );
6048       END IF;
6049 
6050 --dbms_output.put_line ('*************************************************************************');
6051 --dbms_output.put_line ('*** QPPROD-LINE UOM CODE **** ' ||l_qpprod_uom_code);
6052 --dbms_output.put_line ('*** QPPROD-LINE QUANTITY **** ' ||l_qpprod_quantity);
6053 --dbms_output.put_line ('*************************************************************************');
6054       l_req_line_rec.line_quantity := l_qpprod_quantity;
6055       l_req_line_rec.line_uom_code := l_qpprod_uom_code;
6056       l_req_line_rec.currency_code := l_currency;
6057       l_req_line_rec.price_flag  := 'Y';
6058 
6059       IF NVL (p_detail_rec.intent, 'JA') = 'SB_O'
6060       THEN
6061          l_req_line_rec.updated_adjusted_unit_price :=
6062                                                p_detail_rec.asking_unit_price;
6063       END IF;
6064 
6065       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6066       THEN
6067          fnd_log.STRING (fnd_log.level_procedure,
6068                          g_module ||
6069                          l_api_name,
6070                          '6001:*** QPPROD-ADJUSTED AMOUNT **** ' ||
6071                          l_req_line_rec.updated_adjusted_unit_price
6072                         );
6073       END IF;
6074 
6075 --dbms_output.put_line ('*** QPPROD-ADJUSTED AMOUNT **** ' ||l_req_line_rec.updated_adjusted_unit_price);
6076       IF p_detail_rec.bill_from_date IS NOT NULL AND
6077          p_detail_rec.bill_to_date IS NOT NULL
6078       THEN
6079          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6080          THEN
6081             fnd_log.STRING
6082                   (fnd_log.level_procedure,
6083                    g_module ||
6084                    l_api_name,
6085                    '7001:*** BILL FROM DATES POPULATED IN PARENT ITEM ** ' ||
6086                    l_req_line_rec.updated_adjusted_unit_price
6087                   );
6088          END IF;
6089 
6090 --dbms_output.put_line ('*** BILL FROM DATES POPULATED IN PARENT ITEM ** ' ||l_req_line_rec.updated_adjusted_unit_price);
6091          l_req_line_rec.contract_start_date := p_detail_rec.bill_from_date;
6092          l_req_line_rec.contract_end_date := p_detail_rec.bill_to_date;
6093       END IF;
6094 
6095       l_req_line_tbl (l_line_tbl_ctr) := l_req_line_rec;
6096 
6097       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6098       THEN
6099          fnd_log.STRING
6100             (fnd_log.level_procedure,
6101              g_module ||
6102              l_api_name,
6103              '8001:*************************************************************************'
6104             );
6105          fnd_log.STRING (fnd_log.level_procedure,
6106                          g_module ||
6107                          l_api_name,
6108                          '8002:*** QPPROD-LINE TBL COUNT **** ' ||
6109                          l_req_line_tbl.COUNT ||
6110                          ' ***** LINE TBL CTR ' ||
6111                          l_line_tbl_ctr
6112                         );
6113          fnd_log.STRING
6114             (fnd_log.level_procedure,
6115              g_module ||
6116              l_api_name,
6117              '8003:*************************************************************************'
6118             );
6119       END IF;
6120 
6121 --dbms_output.put_line ('*************************************************************************');
6122 --dbms_output.put_line ('*** QPPROD-LINE TBL COUNT **** ' ||l_req_line_tbl.count || ' ***** LINE TBL CTR '|| l_line_tbl_ctr);
6123 --dbms_output.put_line ('*************************************************************************');
6124 
6125       --GROUP I.III
6126 -- /*
6127 -- bug 5069673
6128 --Product Context
6129     l_line_attr_tbl_ctr                      := l_line_attr_tbl_ctr + 1;
6130 
6131     l_req_line_attr_rec.LINE_INDEX           := 1;
6132     l_req_line_attr_rec.PRICING_CONTEXT      :='ITEM';
6133     l_req_line_attr_rec.PRICING_ATTRIBUTE    :='PRICING_ATTRIBUTE3';
6134     l_req_line_attr_rec.PRICING_ATTR_VALUE_FROM  := 'ALL';
6135     l_req_line_attr_rec.VALIDATED_FLAG       :='N';
6136 
6137     l_req_line_attr_tbl(l_line_attr_tbl_ctr) := l_req_line_attr_rec;
6138 -- */
6139 -- end bug 5069673
6140 
6141       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6142       THEN
6143          fnd_log.STRING
6144             (fnd_log.level_procedure,
6145              g_module ||
6146              l_api_name,
6147              '9001:*************************************************************************'
6148             );
6149       END IF;
6150 
6151 --dbms_output.put_line ('*************************************************************************');
6152 
6153       --GROUP I.III.A
6154       IF NVL (p_detail_rec.intent, 'JA') IN ('PB', 'USG') AND
6155          p_detail_rec.price_list_line_id IS NOT NULL
6156       THEN
6157          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6158          THEN
6159             fnd_log.STRING
6160                     (fnd_log.level_procedure,
6161                      g_module ||
6162                      l_api_name,
6163                      '9002:*** GROUP I - INSIDE LOCK LIST LINE BUILD   **** '
6164                     );
6165          END IF;
6166 
6167 --dbms_output.put_line ('*** GROUP I - INSIDE LOCK LIST LINE BUILD   **** ' );
6168          l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
6169                                        1;
6170          l_req_line_attr_rec.line_index := 1;
6171          l_req_line_attr_rec.pricing_context := 'QP_INTERNAL';
6172          l_req_line_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE1';
6173          l_req_line_attr_rec.pricing_attr_value_from :=
6174                                                p_detail_rec.price_list_line_id;
6175          l_req_line_attr_rec.validated_flag := 'N';
6176          l_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec;
6177       END IF;
6178 
6179       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6180       THEN
6181          fnd_log.STRING
6182             (fnd_log.level_procedure,
6183              g_module ||
6184              l_api_name,
6185              '9003:*************************************************************************'
6186             );
6187       END IF;
6188 
6189 --dbms_output.put_line ('*************************************************************************');
6190 
6191       --GROUP I.IV
6192       l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
6193                                     1;
6194       l_req_line_attr_rec.line_index := 1;
6195       l_req_line_attr_rec.pricing_context := 'ITEM';
6196       l_req_line_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE1';
6197 
6198       IF l_hdrtop_rec.tl_line_style IN (12, 46)
6199       THEN
6200          l_qpprod_inv_id            := l_hdrtop_rec.tl_object_id;
6201       ELSE
6202          IF l_subline_rec.sl_line_style IN (9, 25)
6203          THEN
6204             l_qpprod_inv_id            :=
6205                                    get_cp_inv_id (l_subline_rec.sl_object_id);
6206          ELSIF l_subline_rec.sl_line_style = 7
6207          THEN
6208             l_qpprod_inv_id            := l_subline_rec.sl_object_id;
6209          END IF;
6210       END IF;
6211 
6212       IF NVL (p_detail_rec.intent, 'JA') = 'HM'
6213       THEN
6214          l_req_line_attr_rec.pricing_attr_value_from := 99;
6215       ELSE
6216          IF NVL (p_detail_rec.intent, 'JA') = 'LM'
6217          THEN
6218             IF l_hdrtop_rec.tl_line_style IN (12, 46)
6219             THEN
6220                l_req_line_attr_rec.pricing_attr_value_from := l_qpprod_inv_id;
6221             ELSE
6222                l_req_line_attr_rec.pricing_attr_value_from := 99;
6223             END IF;
6224          ELSE
6225             l_req_line_attr_rec.pricing_attr_value_from := l_qpprod_inv_id;
6226          END IF;
6227       END IF;
6228 
6229       l_req_line_attr_rec.validated_flag := 'N';
6230       l_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec;
6231 
6232       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6233       THEN
6234          fnd_log.STRING (fnd_log.level_procedure,
6235                          g_module ||
6236                          l_api_name,
6237                          '9101:*** PASSED QPPROD-INVENTORY ITEM ID **** ' ||
6238                          l_req_line_attr_rec.pricing_attr_value_from
6239                         );
6240          fnd_log.STRING
6241             (fnd_log.level_procedure,
6242              g_module ||
6243              l_api_name,
6244              '9102:*************************************************************************'
6245             );
6246       END IF;
6247 
6248 --dbms_output.put_line ('*** PASSED QPPROD-INVENTORY ITEM ID **** ' ||l_req_line_attr_rec.pricing_attr_Value_from);
6249 --dbms_output.put_line ('*************************************************************************');
6250 
6251       --GROUP I.V
6252       l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
6253                                     1;
6254       l_req_qual_rec.line_index  := 1;
6255       l_req_qual_rec.qualifier_context := 'MODLIST';
6256       l_req_qual_rec.qualifier_attribute := 'QUALIFIER_ATTRIBUTE4';
6257 
6258       IF p_detail_rec.price_list IS NOT NULL
6259       THEN
6260          l_price_id                 := p_detail_rec.price_list;
6261       ELSE
6262          l_price_id                 := l_hdrtop_rec.price_list_id;
6263       END IF;
6264 
6265       IF NVL (p_detail_rec.intent, 'JA') = 'HM'
6266       THEN
6267          l_req_qual_rec.qualifier_attr_value_from := 99;
6268       ELSE
6269          l_req_qual_rec.qualifier_attr_value_from := l_price_id;
6270       END IF;
6271 
6272       l_req_qual_rec.comparison_operator_code := '=';
6273       l_req_qual_rec.validated_flag := 'Y';
6274       l_req_qual_tbl (l_line_qual_tbl_ctr) := l_req_qual_rec;
6275 
6276       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6277       THEN
6278          fnd_log.STRING (fnd_log.level_procedure,
6279                          g_module ||
6280                          l_api_name,
6281                          '9201:*** QPPROD-PRICE LIST ID **** ' ||
6282                          l_req_qual_rec.qualifier_attr_value_from
6283                         );
6284          fnd_log.STRING
6285             (fnd_log.level_procedure,
6286              g_module ||
6287              l_api_name,
6288              '9202:*************************************************************************'
6289             );
6290       END IF;
6291 
6292 --dbms_output.put_line ('*** QPPROD-PRICE LIST ID **** ' ||l_req_qual_rec.QUALIFIER_ATTR_VALUE_FROM );
6293 --dbms_output.put_line ('*************************************************************************');
6294 
6295       --START p_detail_rec.intent CHECK
6296       IF NOT NVL (p_detail_rec.intent, 'JA') = 'HM'
6297       THEN
6298 --GROUP I.VI
6299          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6300          THEN
6301             fnd_log.STRING
6302                     (fnd_log.level_procedure,
6303                      g_module ||
6304                      l_api_name,
6305                      '9301:*** BEFORE PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||
6306                      l_req_line_attr_tbl.COUNT
6307                     );
6308          END IF;
6309 
6310          --dbms_output.put_line ('*** BEFORE PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||l_req_line_attr_tbl.count);
6311          IF l_hdrtop_rec.tl_line_style IN (12, 46)
6312          THEN
6313 --ADDED FOR AICPA
6314             IF l_pricing_contexts_tbl.COUNT > 0
6315             THEN
6316                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
6317                   )
6318                THEN
6319                   fnd_log.STRING
6320                      (fnd_log.level_procedure,
6321                       g_module ||
6322                       l_api_name,
6323                       '9401:*** GROUP I.VI - INSIDE PRICING CONTEXT BUILD ROUTINE   **** '
6324                      );
6325                END IF;
6326 
6327 --dbms_output.put_line ('*** GROUP I.VI - INSIDE PRICING CONTEXT BUILD ROUTINE   **** ' );
6328                l_ctr                      := l_pricing_contexts_tbl.FIRST;
6329 
6330                LOOP
6331                   l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
6332                                                 1;
6333                   l_req_line_attr_tbl (l_line_attr_tbl_ctr).line_index := 1;
6334                   l_req_line_attr_tbl (l_line_attr_tbl_ctr).validated_flag :=
6335                                                                            'N';
6336                   l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_context :=
6337                                    l_pricing_contexts_tbl (l_ctr).context_name;
6338                   l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attribute :=
6339                                  l_pricing_contexts_tbl (l_ctr).attribute_name;
6340                   l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attr_value_from :=
6341                                 l_pricing_contexts_tbl (l_ctr).attribute_value;
6342                   EXIT WHEN l_pricing_contexts_tbl.LAST = l_ctr;
6343                   l_ctr                      :=
6344                                            l_pricing_contexts_tbl.NEXT (l_ctr);
6345                END LOOP;
6346             END IF;
6347 
6348             build_top_pa (p_cle_id                           => p_detail_rec.line_id,
6349                           p_service_index                    => 1,
6350                           px_line_attr_tbl_ctr               => l_line_attr_tbl_ctr,
6351                           px_req_line_attr_tbl               => l_req_line_attr_tbl
6352                          );
6353          ELSIF l_subline_rec.sl_line_style IN (9, 25)
6354          THEN
6355             build_cp_pa (p_inst_id                          => l_subline_rec.sl_object_id,
6356                          p_service_index                    => 1,
6357                          px_line_attr_tbl_ctr               => l_line_attr_tbl_ctr,
6358                          px_req_line_attr_tbl               => l_req_line_attr_tbl
6359                         );
6360          END IF;
6361 
6362          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6363          THEN
6364             fnd_log.STRING
6365                     (fnd_log.level_procedure,
6366                      g_module ||
6367                      l_api_name,
6368                      '9501:*** AFTER  PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||
6369                      l_req_line_attr_tbl.COUNT
6370                     );
6371             fnd_log.STRING
6372                (fnd_log.level_procedure,
6373                 g_module ||
6374                 l_api_name,
6375                 '9502:*************************************************************************'
6376                );
6377          END IF;
6378 
6379          --dbms_output.put_line ('*** AFTER  PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||l_req_line_attr_tbl.count);
6380          --dbms_output.put_line ('*************************************************************************');
6381 
6382          --GROUP I.VII
6383          IF l_hdrtop_rec.tl_line_style IN (12, 46)
6384          THEN                              --Check for Usage/Subscription Only
6385 --For Order Type
6386             IF check_hdr_discount (p_chr_id                           => l_hdrtop_rec.kh_id)
6387             THEN
6388                l_line_tbl_ctr             := l_line_tbl_ctr +
6389                                              1;
6390                l_req_line_rec3.request_type_code := 'ONT';
6391                l_req_line_rec3.line_index := l_line_tbl_ctr;
6392                l_req_line_rec3.line_type_code := 'ORDER';
6393                l_req_line_rec3.pricing_effective_date := l_def_pricing_date;
6394                l_req_line_rec3.currency_code := l_currency;
6395                l_req_line_rec3.price_flag := 'Y';
6396                l_req_line_tbl (l_line_tbl_ctr) := l_req_line_rec3;
6397 
6398                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
6399                   )
6400                THEN
6401                   fnd_log.STRING (fnd_log.level_procedure,
6402                                   g_module ||
6403                                   l_api_name,
6404                                   '9601:*** QPPROD-LINE TBL COUNT **** ' ||
6405                                   l_req_line_tbl.COUNT ||
6406                                   ' ***** LINE TBL CTR ' ||
6407                                   l_line_tbl_ctr
6408                                  );
6409                   fnd_log.STRING
6410                      (fnd_log.level_procedure,
6411                       g_module ||
6412                       l_api_name,
6413                       '9602:*************************************************************************'
6414                      );
6415                   fnd_log.STRING
6416                      (fnd_log.level_procedure,
6417                       g_module ||
6418                       l_api_name,
6419                       '9603:*** BEFORE HDR ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
6420                       l_req_line_detail_tbl.COUNT
6421                      );
6422                END IF;
6423 
6424                --dbms_output.put_line ('*** QPPROD-LINE TBL COUNT **** ' ||l_req_line_tbl.count || ' ***** LINE TBL CTR '|| l_line_tbl_ctr);
6425                --dbms_output.put_line ('*************************************************************************');
6426 
6427                --dbms_output.put_line ('*** BEFORE HDR ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
6428                build_hdr_adj (p_chr_id                           => l_hdrtop_rec.kh_id,
6429                               p_item_id                          => l_qpprod_inv_id,
6430                               p_service_index                    => l_line_tbl_ctr,
6431                               p_line_detl_tbl_ctr                => l_line_detl_tbl_ctr,
6432                               p_req_line_detail_tbl              => l_req_line_detail_tbl
6433                              );
6434 
6435                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
6436                   )
6437                THEN
6438                   fnd_log.STRING
6439                      (fnd_log.level_procedure,
6440                       g_module ||
6441                       l_api_name,
6442                       '9701:*** AFTER  HDR ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
6443                       l_req_line_detail_tbl.COUNT
6444                      );
6445                   fnd_log.STRING
6446                      (fnd_log.level_procedure,
6447                       g_module ||
6448                       l_api_name,
6449                       '9702:*** BEFORE LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
6450                       l_req_line_detail_tbl.COUNT
6451                      );
6452                END IF;
6453             --dbms_output.put_line ('*** AFTER  HDR ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
6454 
6455             --dbms_output.put_line ('*** BEFORE LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
6456             END IF;
6457 
6458             build_top_adj (p_cle_id                           => p_detail_rec.line_id,
6459                            p_item_id                          => l_qpprod_inv_id,
6460                            p_service_index                    => 1,
6461                            p_line_detl_tbl_ctr                => l_line_detl_tbl_ctr,
6462                            p_req_line_detail_tbl              => l_req_line_detail_tbl
6463                           );
6464             build_top_adj (p_cle_id                           => p_detail_rec.subline_id,
6465                            p_item_id                          => l_qpprod_inv_id,
6466                            p_service_index                    => 1,
6467                            p_line_detl_tbl_ctr                => l_line_detl_tbl_ctr,
6468                            p_req_line_detail_tbl              => l_req_line_detail_tbl
6469                           );
6470 
6471             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6472             THEN
6473                fnd_log.STRING
6474                   (fnd_log.level_procedure,
6475                    g_module ||
6476                    l_api_name,
6477                    '9801:*** AFTER  LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
6478                    l_req_line_detail_tbl.COUNT
6479                   );
6480                fnd_log.STRING
6481                   (fnd_log.level_procedure,
6482                    g_module ||
6483                    l_api_name,
6484                    '9802:*************************************************************************'
6485                   );
6486             END IF;
6487 
6488             --dbms_output.put_line ('*** AFTER  LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
6489             --dbms_output.put_line ('*************************************************************************');
6490 
6491             --GROUP I.VIII
6492             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6493             THEN
6494                fnd_log.STRING
6495                     (fnd_log.level_procedure,
6496                      g_module ||
6497                      l_api_name,
6498                      '9901:*** *** BEFORE QUAL (REQ QUAL_TBL_COUNT) **** ' ||
6499                      l_req_qual_tbl.COUNT
6500                     );
6501             END IF;
6502 
6503             --dbms_output.put_line ('*** BEFORE QUAL (REQ QUAL_TBL_COUNT) **** ' ||l_req_qual_tbl.count);
6504 
6505             --removing from xxx
6506 
6507             --ADDED FOR AICPA
6508             IF l_qual_contexts_tbl.COUNT > 0
6509             THEN
6510                l_ctr                      := l_qual_contexts_tbl.FIRST;
6511 
6512                LOOP
6513                   l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
6514                                                 1;
6515                   l_req_qual_tbl (l_line_qual_tbl_ctr).line_index := 1;
6516                   l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_context :=
6517                                       l_qual_contexts_tbl (l_ctr).context_name;
6518                   l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attribute :=
6519                                     l_qual_contexts_tbl (l_ctr).attribute_name;
6520                   l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attr_value_from :=
6521                                    l_qual_contexts_tbl (l_ctr).attribute_value;
6522                   l_req_qual_tbl (l_line_qual_tbl_ctr).validated_flag := 'N';
6523                   EXIT WHEN l_qual_contexts_tbl.LAST = l_ctr;
6524                   l_ctr                      :=
6525                                               l_qual_contexts_tbl.NEXT (l_ctr);
6526                END LOOP;
6527             END IF;
6528 
6529 --removing from xxx
6530             build_top_qa (p_cle_id                           => p_detail_rec.line_id,
6531                           p_item_id                          => NULL,
6532                           p_service_index                    => 1,
6533                           p_line_qual_tbl_ctr                => l_line_qual_tbl_ctr,
6534                           p_req_qual_tbl                     => l_req_qual_tbl
6535                          );
6536 
6537             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6538             THEN
6539                fnd_log.STRING
6540                        (fnd_log.level_procedure,
6541                         g_module ||
6542                         l_api_name,
6543                         '10001:*** AFTER  QUAL (REQ QUAL_TBL_COUNT) **** ' ||
6544                         l_req_qual_tbl.COUNT
6545                        );
6546                fnd_log.STRING
6547                   (fnd_log.level_procedure,
6548                    g_module ||
6549                    l_api_name,
6550                    '10002:*************************************************************************'
6551                   );
6552             END IF;
6553          --dbms_output.put_line ('*** AFTER  QUAL (REQ QUAL_TBL_COUNT) **** ' ||l_req_qual_tbl.count);
6554          --dbms_output.put_line ('*************************************************************************');
6555          END IF;                           --Check for Usage/Subscription Only
6556 
6557          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6558          THEN
6559             fnd_log.STRING
6560                (fnd_log.level_procedure,
6561                 g_module ||
6562                 l_api_name,
6563                 '11001:*************************************************************************'
6564                );
6565          END IF;
6566 
6567          --dbms_output.put_line ('*************************************************************************');
6568 
6569          --START DEPENDENT CONDITION
6570          IF l_hdrtop_rec.tl_line_style IN (1, 19)
6571          THEN
6572             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6573             THEN
6574                fnd_log.STRING
6575                   (fnd_log.level_procedure,
6576                    g_module ||
6577                    l_api_name,
6578                    '12001:*************************************************************************'
6579                   );
6580                fnd_log.STRING
6581                   (fnd_log.level_procedure,
6582                    g_module ||
6583                    l_api_name,
6584                    '12002:*******************ENTERING DEPENDENT MODULE*****************************'
6585                   );
6586                fnd_log.STRING
6587                   (fnd_log.level_procedure,
6588                    g_module ||
6589                    l_api_name,
6590                    '12003:*************************************************************************'
6591                   );
6592             END IF;
6593 
6594             --dbms_output.put_line ('*************************************************************************');
6595             --dbms_output.put_line ('*******************ENTERING DEPENDENT MODULE*****************************');
6596             --dbms_output.put_line ('*************************************************************************');
6597 
6598             ---DURATION DERIVE
6599             IF NVL (p_detail_rec.intent, 'JA') = 'LM'
6600             THEN
6601                okc_time_util_pub.get_duration
6602                           (p_start_date                       => TRUNC
6603                                                                     (l_hdrtop_rec.tl_start_date),
6604                            p_end_date                         => TRUNC
6605                                                                     (l_hdrtop_rec.tl_end_date),
6606                            x_duration                         => l_qpserv_quantity,
6607                            x_timeunit                         => l_qpserv_uom_code,
6608                            x_return_status                    => l_return_status
6609                           );
6610 
6611                IF l_return_status <> 'S'
6612                THEN
6613                   okc_api.set_message
6614                                 (g_app_name,
6615                                  g_required_value,
6616                                  g_col_name_token,
6617                                  '(1) Service get_duration Fails -StDate ' ||
6618                                  l_hdrtop_rec.tl_start_date ||
6619                                  ' EndDate ' ||
6620                                  l_hdrtop_rec.tl_end_date
6621                                 );
6622                   RAISE fnd_api.g_exc_error;
6623                END IF;
6624             ELSE
6625                --begin new logic for partial periods
6626                OPEN l_get_hdrid_csr (l_subline_rec.sl_id);
6627 
6628                FETCH l_get_hdrid_csr
6629                 INTO l_chr_id;
6630 
6631                CLOSE l_get_hdrid_csr;
6632 
6633                IF l_chr_id IS NOT NULL
6634                THEN
6635                   oks_renew_util_pub.get_period_defaults
6636                                           (p_hdr_id                           => l_chr_id,
6637                                            p_org_id                           => NULL,
6638                                            x_period_type                      => l_period_type,
6639                                            x_period_start                     => l_period_start,
6640                                            x_price_uom                        => l_price_uom,
6641                                            x_return_status                    => x_return_status
6642                                           );
6643 
6644                   IF x_return_status <> 'S'
6645                   THEN
6646                      RAISE fnd_api.g_exc_error;
6647                   END IF;
6648                ELSE
6649                   RAISE invalid_hdr_id_exception;
6650                END IF;
6651 
6652                --End  logic for Partial Periods
6653                IF l_subline_rec.sl_price_uom IS NOT NULL
6654                THEN
6655                   l_qpserv_uom_code          := l_subline_rec.sl_price_uom;
6656                   l_qpserv_quantity          :=
6657                      oks_time_measures_pub.get_quantity
6658                                                 (l_subline_rec.sl_start_date,
6659                                                  l_subline_rec.sl_end_date,
6660                                                  l_subline_rec.sl_price_uom,
6661                                                  l_period_type,
6662                                                  l_period_start
6663                                                 );
6664                ELSE
6665                   IF (fnd_log.level_procedure >=
6666                                                fnd_log.g_current_runtime_level
6667                      )
6668                   THEN
6669                      fnd_log.STRING
6670                         (fnd_log.level_procedure,
6671                          g_module ||
6672                          l_api_name,
6673                          '13001:*************************************************************************'
6674                         );
6675                      fnd_log.STRING (fnd_log.level_procedure,
6676                                      g_module ||
6677                                      l_api_name,
6678                                      '13002:*** QPSERV-SL_START_DATE **** ' ||
6679                                      l_subline_rec.sl_start_date
6680                                     );
6681                      fnd_log.STRING (fnd_log.level_procedure,
6682                                      g_module ||
6683                                      l_api_name,
6684                                      '13003:*** QPSERV-SL_END  _DATE **** ' ||
6685                                      l_subline_rec.sl_end_date
6686                                     );
6687                      fnd_log.STRING
6688                         (fnd_log.level_procedure,
6689                          g_module ||
6690                          l_api_name,
6691                          '13004:*************************************************************************'
6692                         );
6693                   END IF;
6694 
6695                   --dbms_output.put_line ('*************************************************************************');
6696                   --dbms_output.put_line ('*** QPSERV-SL_START_DATE **** ' ||l_subline_rec.sl_start_date);
6697                   --dbms_output.put_line ('*** QPSERV-SL_END  _DATE **** ' ||l_subline_rec.sl_end_date);
6698                   --dbms_output.put_line ('*************************************************************************');
6699                   okc_time_util_pub.get_duration
6700                           (p_start_date                       => TRUNC
6701                                                                     (l_subline_rec.sl_start_date),
6702                            p_end_date                         => TRUNC
6703                                                                     (l_subline_rec.sl_end_date),
6704                            x_duration                         => l_qpserv_quantity,
6705                            x_timeunit                         => l_qpserv_uom_code,
6706                            x_return_status                    => l_return_status
6707                           );
6708 
6709                   IF l_return_status <> 'S'
6710                   THEN
6711                      okc_api.set_message
6712                                 (g_app_name,
6713                                  g_required_value,
6714                                  g_col_name_token,
6715                                  '(2) Service get_duration Fails -StDate ' ||
6716                                  l_hdrtop_rec.tl_start_date ||
6717                                  ' EndDate ' ||
6718                                  l_hdrtop_rec.tl_end_date
6719                                 );
6720                      RAISE fnd_api.g_exc_error;
6721                   END IF;
6722                END IF;
6723             END IF;                                     -- END LM INTENT CHECK
6724 
6725 ---DURATION DERIVE
6726 
6727             --GROUP II.I
6728             l_line_tbl_ctr             := l_line_tbl_ctr +
6729                                           1;
6730             l_req_line_rec2.request_type_code := l_request_type_code;
6731             l_req_line_rec2.line_index := 2;
6732             l_req_line_rec2.line_type_code := l_line_type_code;
6733             l_req_line_rec2.pricing_effective_date := l_def_pricing_date;
6734             l_req_line_rec2.line_quantity := l_qpserv_quantity;
6735             l_req_line_rec2.line_uom_code := l_qpserv_uom_code;
6736             l_req_line_rec2.currency_code := l_currency;
6737             l_req_line_rec2.contract_start_date := l_subline_rec.sl_start_date;
6738             l_req_line_rec2.contract_end_date := l_subline_rec.sl_end_date;
6739             l_req_line_rec2.price_flag := 'Y';
6740 
6741             IF NVL (p_detail_rec.intent, 'JA') = 'OA'
6742             THEN
6743                l_req_line_rec2.updated_adjusted_unit_price :=
6744                                                p_detail_rec.asking_unit_price;
6745             END IF;
6746 
6747             l_req_line_tbl (l_line_tbl_ctr) := l_req_line_rec2;
6748 
6749             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6750             THEN
6751                fnd_log.STRING
6752                   (fnd_log.level_procedure,
6753                    g_module ||
6754                    l_api_name,
6755                    '14001:*************************************************************************'
6756                   );
6757                fnd_log.STRING (fnd_log.level_procedure,
6758                                g_module ||
6759                                l_api_name,
6760                                '14002:*** QPSERV-LINE UOM CODE **** ' ||
6761                                l_qpserv_uom_code
6762                               );
6763                fnd_log.STRING (fnd_log.level_procedure,
6764                                g_module ||
6765                                l_api_name,
6766                                '14003:*** QPSERV-LINE QUANTITY **** ' ||
6767                                l_qpserv_quantity
6768                               );
6769                fnd_log.STRING
6770                   (fnd_log.level_procedure,
6771                    g_module ||
6772                    l_api_name,
6773                    '14004:*************************************************************************'
6774                   );
6775                fnd_log.STRING (fnd_log.level_procedure,
6776                                g_module ||
6777                                l_api_name,
6778                                '14005:*** QPPROD-LINE TBL COUNT **** ' ||
6779                                l_req_line_tbl.COUNT ||
6780                                ' ***** LINE TBL CTR ' ||
6781                                l_line_tbl_ctr
6782                               );
6783                fnd_log.STRING
6784                   (fnd_log.level_procedure,
6785                    g_module ||
6786                    l_api_name,
6787                    '14006:*************************************************************************'
6788                   );
6789             END IF;
6790 
6791 --dbms_output.put_line ('*************************************************************************');
6792 --dbms_output.put_line ('*** QPSERV-LINE UOM CODE **** ' ||l_qpserv_uom_code);
6793 --dbms_output.put_line ('*** QPSERV-LINE QUANTITY **** ' ||l_qpserv_quantity);
6794 --dbms_output.put_line ('*************************************************************************');
6795 
6796             --dbms_output.put_line ('*** QPPROD-LINE TBL COUNT **** ' ||l_req_line_tbl.count || ' ***** LINE TBL CTR '|| l_line_tbl_ctr);
6797 --dbms_output.put_line ('*************************************************************************');
6798 
6799             --GROUP II.II
6800 --/*
6801 -- bug 5069673
6802 --Product Context
6803          l_line_attr_tbl_ctr                          := l_line_attr_tbl_ctr + 1;
6804 
6805          l_req_line_attr_rec.LINE_INDEX               := 2;
6806          l_req_line_attr_rec.PRICING_CONTEXT          :='ITEM';
6807          l_req_line_attr_rec.PRICING_ATTRIBUTE        :='PRICING_ATTRIBUTE3';
6808          l_req_line_attr_rec.PRICING_ATTR_VALUE_FROM  := 'ALL';
6809          l_req_line_attr_rec.VALIDATED_FLAG           :='N';
6810          l_req_line_attr_tbl(l_line_attr_tbl_ctr)     := l_req_line_attr_rec;
6811 
6812 --*/
6813 -- end bug 5069673
6814 
6815 --GROUP II.III
6816             l_qpserv_inv_id            := l_hdrtop_rec.tl_object_id;
6817             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
6818                                           1;
6819             l_req_line_attr_rec.line_index := 2;
6820             l_req_line_attr_rec.pricing_context := 'ITEM';
6821             l_req_line_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE1';
6822             l_req_line_attr_rec.pricing_attr_value_from := l_qpserv_inv_id;
6823             l_req_line_attr_rec.validated_flag := 'N';
6824             l_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec;
6825 
6826             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6827             THEN
6828                fnd_log.STRING
6829                   (fnd_log.level_procedure,
6830                    g_module ||
6831                    l_api_name,
6832                    '15001:*************************************************************************'
6833                   );
6834                fnd_log.STRING (fnd_log.level_procedure,
6835                                g_module ||
6836                                l_api_name,
6837                                '15002:*** QPSERV-INVENTORY ID **** ' ||
6838                                l_req_line_attr_rec.pricing_attr_value_from
6839                               );
6840                fnd_log.STRING
6841                   (fnd_log.level_procedure,
6842                    g_module ||
6843                    l_api_name,
6844                    '15003:*************************************************************************'
6845                   );
6846             END IF;
6847 
6848 --dbms_output.put_line ('*************************************************************************');
6849 --dbms_output.put_line ('*** QPSERV-INVENTORY ID **** ' || l_req_line_attr_rec.PRICING_ATTR_VALUE_FROM  );
6850 --dbms_output.put_line ('*************************************************************************');
6851 
6852             --GROUP II.IV
6853             l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
6854                                           1;
6855             l_req_qual_rec.line_index  := 2;
6856             l_req_qual_rec.qualifier_context := 'MODLIST';
6857             l_req_qual_rec.qualifier_attribute := 'QUALIFIER_ATTRIBUTE4';
6858 
6859             IF NVL (p_detail_rec.intent, 'JA') = 'HM'
6860             THEN
6861                l_req_qual_rec.qualifier_attr_value_from := 99;
6862             ELSE
6863                l_req_qual_rec.qualifier_attr_value_from := l_price_id;
6864             END IF;
6865 
6866             l_req_qual_rec.comparison_operator_code := '=';
6867             l_req_qual_rec.validated_flag := 'Y';
6868             l_req_qual_tbl (l_line_qual_tbl_ctr) := l_req_qual_rec;
6869 
6870             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
6871             THEN
6872                fnd_log.STRING
6873                   (fnd_log.level_procedure,
6874                    g_module ||
6875                    l_api_name,
6876                    '16001:*************************************************************************'
6877                   );
6878                fnd_log.STRING (fnd_log.level_procedure,
6879                                g_module ||
6880                                l_api_name,
6881                                '16002:*** QPSERV-PRICE LIST ID **** ' ||
6882                                l_req_qual_rec.qualifier_attr_value_from
6883                               );
6884                fnd_log.STRING
6885                   (fnd_log.level_procedure,
6886                    g_module ||
6887                    l_api_name,
6888                    '16003:*************************************************************************'
6889                   );
6890             END IF;
6891 
6892 --dbms_output.put_line ('*************************************************************************');
6893 --dbms_output.put_line ('*** QPSERV-PRICE LIST ID **** ' || l_req_qual_rec.QUALIFIER_ATTR_VALUE_FROM);
6894 --dbms_output.put_line ('*************************************************************************');
6895             IF NOT NVL (p_detail_rec.intent, 'JA') = 'LM'
6896             THEN                                              --LM CHECK START
6897 --GROUP II.V
6898 
6899                --ADDED FOR AICPA
6900                IF l_pricing_contexts_tbl.COUNT > 0
6901                THEN
6902                   l_ctr                      := l_pricing_contexts_tbl.FIRST;
6903 
6904                   LOOP
6905                      l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
6906                                                    1;
6907                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).line_index := 2;
6908                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).validated_flag :=
6909                                                                            'N';
6910                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_context :=
6911                                    l_pricing_contexts_tbl (l_ctr).context_name;
6912                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attribute :=
6913                                  l_pricing_contexts_tbl (l_ctr).attribute_name;
6914                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attr_value_from :=
6915                                 l_pricing_contexts_tbl (l_ctr).attribute_value;
6916                      EXIT WHEN l_pricing_contexts_tbl.LAST = l_ctr;
6917                      l_ctr                      :=
6918                                            l_pricing_contexts_tbl.NEXT (l_ctr);
6919                   END LOOP;
6920                END IF;
6921 
6922                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
6923                   )
6924                THEN
6925                   fnd_log.STRING
6926                      (fnd_log.level_procedure,
6927                       g_module ||
6928                       l_api_name,
6929                       '17001:*************************************************************************'
6930                      );
6931                   fnd_log.STRING
6932                      (fnd_log.level_procedure,
6933                       g_module ||
6934                       l_api_name,
6935                       '17002:*** SERV BEFORE PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||
6936                       l_req_line_attr_tbl.COUNT
6937                      );
6938                END IF;
6939 
6940                --dbms_output.put_line ('*************************************************************************');
6941                --dbms_output.put_line ('*** SERV BEFORE PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||l_req_line_attr_tbl.count);
6942                build_top_pa (p_cle_id                           => p_detail_rec.subline_id,
6943                              p_service_index                    => 2,
6944                              px_line_attr_tbl_ctr               => l_line_attr_tbl_ctr,
6945                              px_req_line_attr_tbl               => l_req_line_attr_tbl
6946                             );
6947 
6948                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
6949                   )
6950                THEN
6951                   fnd_log.STRING
6952                      (fnd_log.level_procedure,
6953                       g_module ||
6954                       l_api_name,
6955                       '17003:*** SERV AFTER  PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||
6956                       l_req_line_attr_tbl.COUNT
6957                      );
6958                   fnd_log.STRING
6959                      (fnd_log.level_procedure,
6960                       g_module ||
6961                       l_api_name,
6962                       '17004:*************************************************************************'
6963                      );
6964                END IF;
6965 
6966                --dbms_output.put_line ('*** SERV AFTER  PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||l_req_line_attr_tbl.count);
6967                --dbms_output.put_line ('*************************************************************************');
6968 
6969                --GROUP II.VI
6970                IF check_hdr_discount (p_chr_id                           => l_hdrtop_rec.kh_id)
6971                THEN
6972 --For Order Type
6973                   l_line_tbl_ctr             := l_line_tbl_ctr +
6974                                                 1;
6975                   l_req_line_rec4.request_type_code := 'ONT';
6976                   l_req_line_rec4.line_index := l_line_tbl_ctr;
6977                   l_req_line_rec4.line_type_code := 'ORDER';
6978                   l_req_line_rec4.pricing_effective_date := l_def_pricing_date;
6979                   l_req_line_rec4.currency_code := l_currency;
6980                   l_req_line_rec4.price_flag := 'Y';
6981                   l_req_line_tbl (l_line_tbl_ctr) := l_req_line_rec4;
6982 
6983                   IF (fnd_log.level_procedure >=
6984                                                fnd_log.g_current_runtime_level
6985                      )
6986                   THEN
6987                      fnd_log.STRING
6988                         (fnd_log.level_procedure,
6989                          g_module ||
6990                          l_api_name,
6991                          '17001:*************************************************************************'
6992                         );
6993                      fnd_log.STRING
6994                             (fnd_log.level_procedure,
6995                              g_module ||
6996                              l_api_name,
6997                              '17002:******** SERV HDR ADJUST CURRENCY *** ' ||
6998                              l_currency ||
6999                              ' PRICING DATE ' ||
7000                              l_def_pricing_date
7001                             );
7002                      fnd_log.STRING
7003                         (fnd_log.level_procedure,
7004                          g_module ||
7005                          l_api_name,
7006                          '17003:*************************************************************************'
7007                         );
7008                      fnd_log.STRING
7009                                    (fnd_log.level_procedure,
7010                                     g_module ||
7011                                     l_api_name,
7012                                     '17004:*** QPPROD-LINE TBL COUNT **** ' ||
7013                                     l_req_line_tbl.COUNT ||
7014                                     ' ***** LINE TBL CTR ' ||
7015                                     l_line_tbl_ctr
7016                                    );
7017                      fnd_log.STRING
7018                         (fnd_log.level_procedure,
7019                          g_module ||
7020                          l_api_name,
7021                          '17005:*************************************************************************'
7022                         );
7023                      fnd_log.STRING
7024                         (fnd_log.level_procedure,
7025                          g_module ||
7026                          l_api_name,
7027                          '17006:*************************************************************************'
7028                         );
7029                      fnd_log.STRING
7030                         (fnd_log.level_procedure,
7031                          g_module ||
7032                          l_api_name,
7033                          '17007:*** SERV BEFORE HDR ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
7034                          l_req_line_detail_tbl.COUNT
7035                         );
7036                   END IF;
7037 
7038 --dbms_output.put_line ('*************************************************************************');
7039 --dbms_output.put_line ('******** SERV HDR ADJUST CURRENCY *** ' || l_currency || ' PRICING DATE ' || l_def_pricing_date);
7040 --dbms_output.put_line ('*************************************************************************');
7041 --dbms_output.put_line ('*** QPPROD-LINE TBL COUNT **** ' ||l_req_line_tbl.count || ' ***** LINE TBL CTR '|| l_line_tbl_ctr);
7042 --dbms_output.put_line ('*************************************************************************');
7043 
7044                   --dbms_output.put_line ('*************************************************************************');
7045                   --dbms_output.put_line ('*** SERV BEFORE HDR ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
7046                   build_hdr_adj
7047                                (p_chr_id                           => l_hdrtop_rec.kh_id,
7048                                 p_item_id                          => l_qpserv_inv_id,
7049                                 p_service_index                    => l_line_tbl_ctr,
7050                                 p_line_detl_tbl_ctr                => l_line_detl_tbl_ctr,
7051                                 p_req_line_detail_tbl              => l_req_line_detail_tbl
7052                                );
7053 
7054                   IF (fnd_log.level_procedure >=
7055                                                fnd_log.g_current_runtime_level
7056                      )
7057                   THEN
7058                      fnd_log.STRING
7059                         (fnd_log.level_procedure,
7060                          g_module ||
7061                          l_api_name,
7062                          '18001:*** SERV AFTER  HDR ADJ REQ LINE_DETL_TBL_COUNT **** ' ||
7063                          l_req_line_detail_tbl.COUNT
7064                         );
7065                      fnd_log.STRING
7066                         (fnd_log.level_procedure,
7067                          g_module ||
7068                          l_api_name,
7069                          '18002:*************************************************************************'
7070                         );
7071                   END IF;
7072                --dbms_output.put_line ('*** SERV AFTER  HDR ADJ REQ LINE_DETL_TBL_COUNT **** ' ||l_req_line_detail_tbl.count);
7073                --dbms_output.put_line ('*************************************************************************');
7074                END IF;
7075 
7076 --GROUP II.VII
7077                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
7078                   )
7079                THEN
7080                   fnd_log.STRING
7081                      (fnd_log.level_procedure,
7082                       g_module ||
7083                       l_api_name,
7084                       '19001:*************************************************************************'
7085                      );
7086                   fnd_log.STRING
7087                      (fnd_log.level_procedure,
7088                       g_module ||
7089                       l_api_name,
7090                       '19002:*** SERV BEFORE LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
7091                       l_req_line_detail_tbl.COUNT
7092                      );
7093                END IF;
7094 
7095                --dbms_output.put_line ('*************************************************************************');
7096                --dbms_output.put_line ('*** SERV BEFORE LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
7097                build_top_adj (p_cle_id                           => p_detail_rec.line_id,
7098                               p_item_id                          => l_qpserv_inv_id,
7099                               p_service_index                    => 2,
7100                               p_line_detl_tbl_ctr                => l_line_detl_tbl_ctr,
7101                               p_req_line_detail_tbl              => l_req_line_detail_tbl
7102                              );
7103 
7104                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
7105                   )
7106                THEN
7107                   fnd_log.STRING
7108                      (fnd_log.level_procedure,
7109                       g_module ||
7110                       l_api_name,
7111                       '19003:*** SERV AFTER LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
7112                       l_req_line_detail_tbl.COUNT
7113                      );
7114                   fnd_log.STRING
7115                      (fnd_log.level_procedure,
7116                       g_module ||
7117                       l_api_name,
7118                       '19004:*************************************************************************'
7119                      );
7120                END IF;
7121 
7122                --dbms_output.put_line ('*** SERV AFTER LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
7123                --dbms_output.put_line ('*************************************************************************');
7124 
7125                --GROUP II.VIII
7126                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
7127                   )
7128                THEN
7129                   fnd_log.STRING
7130                      (fnd_log.level_procedure,
7131                       g_module ||
7132                       l_api_name,
7133                       '19005:*************************************************************************'
7134                      );
7135                   fnd_log.STRING
7136                      (fnd_log.level_procedure,
7137                       g_module ||
7138                       l_api_name,
7139                       '19006:*** SERV BEFORE SUB LINE ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
7140                       l_req_line_detail_tbl.COUNT
7141                      );
7142                END IF;
7143 
7144                --dbms_output.put_line ('*************************************************************************');
7145                --dbms_output.put_line ('*** SERV BEFORE SUB LINE ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
7146                build_top_adj (p_cle_id                           => p_detail_rec.subline_id,
7147                               p_item_id                          => l_qpserv_inv_id,
7148                               p_service_index                    => 2,
7149                               p_line_detl_tbl_ctr                => l_line_detl_tbl_ctr,
7150                               p_req_line_detail_tbl              => l_req_line_detail_tbl
7151                              );
7152 
7153                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
7154                   )
7155                THEN
7156                   fnd_log.STRING
7157                      (fnd_log.level_procedure,
7158                       g_module ||
7159                       l_api_name,
7160                       '19007:*** SERV BEFORE SUB LINE ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
7161                       l_req_line_detail_tbl.COUNT
7162                      );
7163                   fnd_log.STRING
7164                      (fnd_log.level_procedure,
7165                       g_module ||
7166                       l_api_name,
7167                       '19008:*************************************************************************'
7168                      );
7169                END IF;
7170 
7171                --dbms_output.put_line ('*** SERV BEFORE SUB LINE ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
7172                --dbms_output.put_line ('*************************************************************************');
7173 
7174                --GROUP II.IX
7175 
7176                --ADDED FOR AICPA
7177                IF l_qual_contexts_tbl.COUNT > 0
7178                THEN
7179                   l_ctr                      := l_qual_contexts_tbl.FIRST;
7180 
7181                   LOOP
7182                      l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
7183                                                    1;
7184                      l_req_qual_tbl (l_line_qual_tbl_ctr).line_index := 2;
7185                      l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_context :=
7186                                       l_qual_contexts_tbl (l_ctr).context_name;
7187                      l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attribute :=
7188                                     l_qual_contexts_tbl (l_ctr).attribute_name;
7189                      l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attr_value_from :=
7190                                    l_qual_contexts_tbl (l_ctr).attribute_value;
7191                      l_req_qual_tbl (l_line_qual_tbl_ctr).validated_flag :=
7192                                                                            'N';
7193                      EXIT WHEN l_qual_contexts_tbl.LAST = l_ctr;
7194                      l_ctr                      :=
7195                                               l_qual_contexts_tbl.NEXT (l_ctr);
7196                   END LOOP;
7197                END IF;
7198 
7199                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
7200                   )
7201                THEN
7202                   fnd_log.STRING
7203                      (fnd_log.level_procedure,
7204                       g_module ||
7205                       l_api_name,
7206                       '19009:*************************************************************************'
7207                      );
7208                   fnd_log.STRING
7209                      (fnd_log.level_procedure,
7210                       g_module ||
7211                       l_api_name,
7212                       '19010:*** SERV BEFORE QUAL (REQ QUAL_TBL_COUNT) **** ' ||
7213                       l_req_qual_tbl.COUNT
7214                      );
7215                END IF;
7216 
7217                --dbms_output.put_line ('*************************************************************************');
7218                --dbms_output.put_line ('*** SERV BEFORE QUAL (REQ QUAL_TBL_COUNT) **** ' ||l_req_qual_tbl.count);
7219                build_top_qa (p_cle_id                           => p_detail_rec.line_id,
7220                              p_item_id                          => NULL,
7221                              p_service_index                    => 2,
7222                              p_line_qual_tbl_ctr                => l_line_qual_tbl_ctr,
7223                              p_req_qual_tbl                     => l_req_qual_tbl
7224                             );
7225 
7226                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
7227                   )
7228                THEN
7229                   fnd_log.STRING
7230                      (fnd_log.level_procedure,
7231                       g_module ||
7232                       l_api_name,
7233                       '19011:*************************************************************************'
7234                      );
7235                   fnd_log.STRING
7236                      (fnd_log.level_procedure,
7237                       g_module ||
7238                       l_api_name,
7239                       '19012:*** SERV AFTER QUAL (REQ QUAL_TBL_COUNT) **** ' ||
7240                       l_req_qual_tbl.COUNT
7241                      );
7242                END IF;
7243             --dbms_output.put_line ('*************************************************************************');
7244             --dbms_output.put_line ('*** SERV AFTER QUAL (REQ QUAL_TBL_COUNT) **** ' ||l_req_qual_tbl.count);
7245             ELSE
7246                IF l_pricing_contexts_tbl.COUNT > 0
7247                THEN
7248                   l_ctr                      := l_pricing_contexts_tbl.FIRST;
7249 
7250                   LOOP
7251                      l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
7252                                                    1;
7253                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).line_index := 2;
7254                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).validated_flag :=
7255                                                                            'N';
7256                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_context :=
7257                                    l_pricing_contexts_tbl (l_ctr).context_name;
7258                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attribute :=
7259                                  l_pricing_contexts_tbl (l_ctr).attribute_name;
7260                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attr_value_from :=
7261                                 l_pricing_contexts_tbl (l_ctr).attribute_value;
7262                      EXIT WHEN l_pricing_contexts_tbl.LAST = l_ctr;
7263                      l_ctr                      :=
7264                                            l_pricing_contexts_tbl.NEXT (l_ctr);
7265                   END LOOP;
7266                END IF;
7267 
7268                IF l_qual_contexts_tbl.COUNT > 0
7269                THEN
7270                   l_ctr                      := l_qual_contexts_tbl.FIRST;
7271 
7272                   LOOP
7273                      l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
7274                                                    1;
7275                      l_req_qual_tbl (l_line_qual_tbl_ctr).line_index := 2;
7276                      l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_context :=
7277                                       l_qual_contexts_tbl (l_ctr).context_name;
7278                      l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attribute :=
7279                                     l_qual_contexts_tbl (l_ctr).attribute_name;
7280                      l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attr_value_from :=
7281                                    l_qual_contexts_tbl (l_ctr).attribute_value;
7282                      l_req_qual_tbl (l_line_qual_tbl_ctr).validated_flag :=
7283                                                                            'N';
7284                      EXIT WHEN l_qual_contexts_tbl.LAST = l_ctr;
7285                      l_ctr                      :=
7286                                               l_qual_contexts_tbl.NEXT (l_ctr);
7287                   END LOOP;
7288                END IF;
7289             END IF;                                             --LM CHECK END
7290 
7291 --GROUP II.X
7292             l_line_rela_tbl_ctr        := l_line_rela_tbl_ctr +
7293                                           1;
7294             l_req_related_lines_rec.line_index := 1;
7295             l_req_related_lines_rec.relationship_type_code := 'SERVICE_LINE';
7296             l_req_related_lines_rec.related_line_index := 2;
7297             l_req_related_lines_tbl (l_line_rela_tbl_ctr) :=
7298                                                        l_req_related_lines_rec;
7299          END IF;
7300 --END DEPENDENT CONDITION
7301       ELSE
7302          IF l_pricing_contexts_tbl.COUNT > 0
7303          THEN
7304             l_ctr                      := l_pricing_contexts_tbl.FIRST;
7305 
7306             LOOP
7307                l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
7308                                              1;
7309                l_req_line_attr_tbl (l_line_attr_tbl_ctr).line_index := 1;
7310                l_req_line_attr_tbl (l_line_attr_tbl_ctr).validated_flag := 'N';
7311                l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_context :=
7312                                    l_pricing_contexts_tbl (l_ctr).context_name;
7313                l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attribute :=
7314                                  l_pricing_contexts_tbl (l_ctr).attribute_name;
7315                l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attr_value_from :=
7316                                 l_pricing_contexts_tbl (l_ctr).attribute_value;
7317                EXIT WHEN l_pricing_contexts_tbl.LAST = l_ctr;
7318                l_ctr                      :=
7319                                            l_pricing_contexts_tbl.NEXT (l_ctr);
7320             END LOOP;
7321          END IF;
7322 
7323          IF l_qual_contexts_tbl.COUNT > 0
7324          THEN
7325             l_ctr                      := l_qual_contexts_tbl.FIRST;
7326 
7327             LOOP
7328                l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
7329                                              1;
7330                l_req_qual_tbl (l_line_qual_tbl_ctr).line_index := 1;
7331                l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_context :=
7332                                       l_qual_contexts_tbl (l_ctr).context_name;
7333                l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attribute :=
7334                                     l_qual_contexts_tbl (l_ctr).attribute_name;
7335                l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attr_value_from :=
7336                                    l_qual_contexts_tbl (l_ctr).attribute_value;
7337                l_req_qual_tbl (l_line_qual_tbl_ctr).validated_flag := 'N';
7338                EXIT WHEN l_qual_contexts_tbl.LAST = l_ctr;
7339                l_ctr                      := l_qual_contexts_tbl.NEXT (l_ctr);
7340             END LOOP;
7341          END IF;
7342       END IF;
7343 
7344 --END p_detail_rec.intent CHECK
7345 
7346 -- SKEKKAR
7347 -- Added debug statements to print all the parameters that we pass and get back from QP
7348 -- bug 5069673
7349 --
7350     IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)   THEN
7351     --
7352     -- Input Parameter 1: l_control_rec
7353     --
7354                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************'
7355                                );
7356                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Input Parameter l_control_rec *************'
7357                                 );
7358                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************'
7359                                );
7360                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.PRICING_EVENT : '|| l_control_rec.PRICING_EVENT
7361                                 );
7362                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.CALCULATE_FLAG : '|| l_control_rec.CALCULATE_FLAG
7363                                 );
7364                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.SIMULATION_FLAG : '|| l_control_rec.SIMULATION_FLAG
7365                                 );
7366                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.ROUNDING_FLAG : '|| l_control_rec.ROUNDING_FLAG
7367                                 );
7368                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.GSA_CHECK_FLAG : '|| l_control_rec.GSA_CHECK_FLAG
7369                                 );
7370                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.GSA_DUP_CHECK_FLAG : '|| l_control_rec.GSA_DUP_CHECK_FLAG
7371                                 );
7372                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.TEMP_TABLE_INSERT_FLAG : '|| l_control_rec.TEMP_TABLE_INSERT_FLAG
7373                                 );
7374                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.MANUAL_DISCOUNT_FLAG : '|| l_control_rec.MANUAL_DISCOUNT_FLAG
7375                                 );
7376                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.DEBUG_FLAG : '|| l_control_rec.DEBUG_FLAG
7377                                 );
7378                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.SOURCE_ORDER_AMOUNT_FLAG : '|| l_control_rec.SOURCE_ORDER_AMOUNT_FLAG
7379                                 );
7380                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.PUBLIC_API_CALL_FLAG : '|| l_control_rec.PUBLIC_API_CALL_FLAG
7381                                 );
7382                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.MANUAL_ADJUSTMENTS_CALL_FLAG : '|| l_control_rec.MANUAL_ADJUSTMENTS_CALL_FLAG
7383                                 );
7384                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.GET_FREIGHT_FLAG : '|| l_control_rec.GET_FREIGHT_FLAG
7385                                 );
7386                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.REQUEST_TYPE_CODE : '|| l_control_rec.REQUEST_TYPE_CODE
7387                                 );
7388                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.VIEW_CODE : '|| l_control_rec.VIEW_CODE
7389                                 );
7390                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.CHECK_CUST_VIEW_FLAG : '|| l_control_rec.CHECK_CUST_VIEW_FLAG
7391                                 );
7392                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.FULL_PRICING_CALL : '|| l_control_rec.FULL_PRICING_CALL
7393                                 );
7394                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.USE_MULTI_CURRENCY : '|| l_control_rec.USE_MULTI_CURRENCY
7395                                 );
7396                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.USER_CONVERSION_RATE : '|| l_control_rec.USER_CONVERSION_RATE
7397                                 );
7398                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.USER_CONVERSION_TYPE : '|| l_control_rec.USER_CONVERSION_TYPE
7399                                 );
7400                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.FUNCTION_CURRENCY : '|| l_control_rec.FUNCTION_CURRENCY
7401                                 );
7402                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.ORG_ID : '|| l_control_rec.ORG_ID
7403                                 );
7404 
7405     --
7406     -- Input Parameter 2: l_req_line_tbl
7407     --
7408         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7409         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ********** Input Parameter 2: l_req_line_tbl ****************');
7410         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl.COUNT '|| l_req_line_tbl.COUNT
7411                         );
7412         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7413         IF l_req_line_tbl.COUNT > 0 THEN
7414             p := l_req_line_tbl.FIRST;
7415                 LOOP
7416                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_line_tbl('|| p ||') *************'
7417                                 );
7418                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').REQUEST_TYPE_CODE : '|| l_req_line_tbl(p).REQUEST_TYPE_CODE
7419                                 );
7420                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').PRICING_EVENT : '|| l_req_line_tbl(p).PRICING_EVENT
7421                                 );
7422                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').HEADER_ID : '|| l_req_line_tbl(p).HEADER_ID
7423                                 );
7424                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').LINE_INDEX : '|| l_req_line_tbl(p).LINE_INDEX
7425                                 );
7426                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').LINE_ID : '|| l_req_line_tbl(p).LINE_ID
7427                                 );
7428                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').LINE_TYPE_CODE : '|| l_req_line_tbl(p).LINE_TYPE_CODE
7429                                 );
7430                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').PRICING_EFFECTIVE_DATE : '|| l_req_line_tbl(p).PRICING_EFFECTIVE_DATE
7431                                 );
7432                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').ACTIVE_DATE_FIRST : '|| l_req_line_tbl(p).ACTIVE_DATE_FIRST
7433                                 );
7434                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').ACTIVE_DATE_FIRST_TYPE : '|| l_req_line_tbl(p).ACTIVE_DATE_FIRST_TYPE
7435                                 );
7436                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').ACTIVE_DATE_SECOND : '|| l_req_line_tbl(p).ACTIVE_DATE_SECOND
7437                                 );
7438                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').ACTIVE_DATE_FIRST_TYPE : '|| l_req_line_tbl(p).ACTIVE_DATE_FIRST_TYPE
7439                                 );
7440                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').ACTIVE_DATE_SECOND : '|| l_req_line_tbl(p).ACTIVE_DATE_SECOND
7441                                 );
7442                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').ACTIVE_DATE_SECOND_TYPE : '|| l_req_line_tbl(p).ACTIVE_DATE_SECOND_TYPE
7443                                 );
7444                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').LINE_QUANTITY : '|| l_req_line_tbl(p).LINE_QUANTITY
7445                                 );
7446                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').LINE_UOM_CODE : '|| l_req_line_tbl(p).LINE_UOM_CODE
7447                                 );
7448                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').UOM_QUANTITY : '|| l_req_line_tbl(p).UOM_QUANTITY
7449                                 );
7450                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').PRICED_QUANTITY : '|| l_req_line_tbl(p).PRICED_QUANTITY
7451                                 );
7452                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').PRICED_UOM_CODE : '|| l_req_line_tbl(p).PRICED_UOM_CODE
7453                                 );
7454                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').CURRENCY_CODE : '|| l_req_line_tbl(p).CURRENCY_CODE
7455                                 );
7456                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').UNIT_PRICE : '|| l_req_line_tbl(p).UNIT_PRICE
7457                                 );
7458                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').PERCENT_PRICE : '|| l_req_line_tbl(p).PERCENT_PRICE
7459                                 );
7460                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').ADJUSTED_UNIT_PRICE : '|| l_req_line_tbl(p).ADJUSTED_UNIT_PRICE
7461                                 );
7462                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').UPDATED_ADJUSTED_UNIT_PRICE : '|| l_req_line_tbl(p).UPDATED_ADJUSTED_UNIT_PRICE
7463                                 );
7464                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').PARENT_PRICE : '|| l_req_line_tbl(p).PARENT_PRICE
7465                                 );
7466                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').PARENT_QUANTITY : '|| l_req_line_tbl(p).PARENT_QUANTITY
7467                                 );
7468                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').ROUNDING_FACTOR : '|| l_req_line_tbl(p).ROUNDING_FACTOR
7469                                 );
7470                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').PARENT_UOM_CODE : '|| l_req_line_tbl(p).PARENT_UOM_CODE
7471                                 );
7472                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').PRICING_PHASE_ID : '|| l_req_line_tbl(p).PRICING_PHASE_ID
7473                                 );
7474                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').PRICE_FLAG : '|| l_req_line_tbl(p).PRICE_FLAG
7475                                 );
7476                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').PROCESSED_CODE : '|| l_req_line_tbl(p).PROCESSED_CODE
7477                                 );
7478                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').PRICE_REQUEST_CODE : '|| l_req_line_tbl(p).PRICE_REQUEST_CODE
7479                                 );
7480                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').HOLD_CODE : '|| l_req_line_tbl(p).HOLD_CODE
7481                                 );
7482                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').HOLD_TEXT : '|| l_req_line_tbl(p).HOLD_TEXT
7483                                 );
7484                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').STATUS_CODE : '|| l_req_line_tbl(p).STATUS_CODE
7485                                 );
7486                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').STATUS_TEXT : '|| l_req_line_tbl(p).STATUS_TEXT
7487                                 );
7488                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').USAGE_PRICING_TYPE : '|| l_req_line_tbl(p).USAGE_PRICING_TYPE
7489                                 );
7490                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').LINE_CATEGORY : '|| l_req_line_tbl(p).LINE_CATEGORY
7491                                 );
7492                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').CONTRACT_START_DATE : '|| l_req_line_tbl(p).CONTRACT_START_DATE
7493                                 );
7494                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').CONTRACT_END_DATE : '|| l_req_line_tbl(p).CONTRACT_END_DATE
7495                                 );
7496                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').LINE_UNIT_PRICE : '|| l_req_line_tbl(p).LINE_UNIT_PRICE
7497                                 );
7498                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').EXTENDED_PRICE : '|| l_req_line_tbl(p).EXTENDED_PRICE
7499                                 );
7500                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').LIST_PRICE_OVERRIDE_FLAG : '|| l_req_line_tbl(p).LIST_PRICE_OVERRIDE_FLAG
7501                                 );
7502                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl('|| p ||').CHARGE_PERIODICITY_CODE : '|| l_req_line_tbl(p).CHARGE_PERIODICITY_CODE
7503                                 );
7504                 EXIT WHEN l_req_line_tbl.LAST = p;
7505                 p := l_req_line_tbl.NEXT(p);
7506             END LOOP;
7507         END IF; -- l_req_line_tbl.COUNT > 0
7508 
7509     --
7510     -- Input Parameter 3: l_req_qual_tbl
7511     --
7512         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7513         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************** Input Parameter 3: l_req_qual_tbl ******************');
7514         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_qual_tbl.COUNT '|| l_req_qual_tbl.COUNT
7515                         );
7516         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7517         IF l_req_qual_tbl.COUNT > 0 THEN
7518             p := l_req_qual_tbl.FIRST;
7519                 LOOP
7520                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_qual_tbl('|| p ||') *************'
7521                                 );
7522                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_qual_tbl('|| p ||').LINE_INDEX : '|| l_req_qual_tbl(p).LINE_INDEX
7523                                 );
7524                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_qual_tbl('|| p ||').QUALIFIER_CONTEXT : '|| l_req_qual_tbl(p).QUALIFIER_CONTEXT
7525                                 );
7526                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_qual_tbl('|| p ||').QUALIFIER_ATTRIBUTE : '|| l_req_qual_tbl(p).QUALIFIER_ATTRIBUTE
7527                                 );
7528                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_qual_tbl('|| p ||').QUALIFIER_ATTR_VALUE_FROM : '|| l_req_qual_tbl(p).QUALIFIER_ATTR_VALUE_FROM
7529                                 );
7530                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_qual_tbl('|| p ||').QUALIFIER_ATTR_VALUE_TO : '|| l_req_qual_tbl(p).QUALIFIER_ATTR_VALUE_TO
7531                                 );
7532                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_qual_tbl('|| p ||').COMPARISON_OPERATOR_CODE : '|| l_req_qual_tbl(p).COMPARISON_OPERATOR_CODE
7533                                 );
7534                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_qual_tbl('|| p ||').VALIDATED_FLAG : '|| l_req_qual_tbl(p).VALIDATED_FLAG
7535                                 );
7536                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_qual_tbl('|| p ||').STATUS_CODE : '|| l_req_qual_tbl(p).STATUS_CODE
7537                                 );
7538                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_qual_tbl('|| p ||').STATUS_TEXT : '|| l_req_qual_tbl(p).STATUS_TEXT
7539                                 );
7540                 EXIT WHEN l_req_qual_tbl.LAST = p;
7541                 p := l_req_qual_tbl.NEXT(p);
7542             END LOOP;
7543         END IF; -- l_req_qual_tbl.COUNT > 0
7544     --
7545     -- Input Parameter 4: l_req_line_attr_tbl
7546     --
7547         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7548         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Input Parameter 4: l_req_line_attr_tbl ******************');
7549         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_attr_tbl.COUNT '|| l_req_line_attr_tbl.COUNT
7550                         );
7551         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7552         IF l_req_line_attr_tbl.COUNT > 0 THEN
7553            p := l_req_line_attr_tbl.FIRST;
7554                 LOOP
7555                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_line_attr_tbl('|| p ||') *************'
7556                                 );
7557                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_attr_tbl('|| p ||').LINE_INDEX : '|| l_req_line_attr_tbl(p).LINE_INDEX
7558                                 );
7559                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_attr_tbl('|| p ||').PRICING_CONTEXT : '|| l_req_line_attr_tbl(p).PRICING_CONTEXT
7560                                 );
7561                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_attr_tbl('|| p ||').PRICING_ATTRIBUTE : '|| l_req_line_attr_tbl(p).PRICING_ATTRIBUTE
7562                                 );
7563                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_attr_tbl('|| p ||').PRICING_ATTR_VALUE_FROM : '|| l_req_line_attr_tbl(p).PRICING_ATTR_VALUE_FROM
7564                                 );
7565                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_attr_tbl('|| p ||').PRICING_ATTR_VALUE_TO : '|| l_req_line_attr_tbl(p).PRICING_ATTR_VALUE_TO
7566                                 );
7567                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_attr_tbl('|| p ||').VALIDATED_FLAG : '|| l_req_line_attr_tbl(p).VALIDATED_FLAG
7568                                 );
7569                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_attr_tbl('|| p ||').STATUS_CODE : '|| l_req_line_attr_tbl(p).STATUS_CODE
7570                                 );
7571                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_attr_tbl('|| p ||').STATUS_TEXT : '|| l_req_line_attr_tbl(p).STATUS_TEXT
7572                                 );
7573                 EXIT WHEN l_req_line_attr_tbl.LAST = p;
7574                 p := l_req_line_attr_tbl.NEXT(p);
7575             END LOOP;
7576         END IF; -- l_req_line_attr_tbl.COUNT > 0
7577 
7578     --
7579     -- Input Parameter 5: l_req_line_detail_tbl
7580     --
7581         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7582         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Input Parameter 5: l_req_line_detail_tbl ******************');
7583             fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl.COUNT '|| l_req_line_detail_tbl.COUNT
7584                         );
7585         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7586 
7587         IF l_req_line_detail_tbl.COUNT > 0 THEN
7588             p := l_req_line_detail_tbl.FIRST;
7589                 LOOP
7590                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_line_detail_tbl('|| p ||') *************'
7591                                 );
7592                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').LINE_DETAIL_INDEX : '|| l_req_line_detail_tbl(p).LINE_DETAIL_INDEX
7593                                 );
7594                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').LINE_DETAIL_ID : '|| l_req_line_detail_tbl(p).LINE_DETAIL_ID
7595                                 );
7596                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').LINE_DETAIL_TYPE_CODE : '|| l_req_line_detail_tbl(p).LINE_DETAIL_TYPE_CODE
7597                                 );
7598                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').LINE_INDEX : '|| l_req_line_detail_tbl(p).LINE_INDEX
7599                                 );
7600                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').LIST_HEADER_ID : '|| l_req_line_detail_tbl(p).LIST_HEADER_ID
7601                                 );
7602                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').LIST_LINE_ID : '|| l_req_line_detail_tbl(p).LIST_LINE_ID
7603                                 );
7604                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').LIST_LINE_TYPE_CODE : '|| l_req_line_detail_tbl(p).LIST_LINE_TYPE_CODE
7605                                 );
7606                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').SUBSTITUTION_TYPE_CODE : '|| l_req_line_detail_tbl(p).SUBSTITUTION_TYPE_CODE
7607                                 );
7608                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').SUBSTITUTION_FROM : '|| l_req_line_detail_tbl(p).SUBSTITUTION_FROM
7609                                 );
7610                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').SUBSTITUTION_TO : '|| l_req_line_detail_tbl(p).SUBSTITUTION_TO
7611                                 );
7612                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').AUTOMATIC_FLAG : '|| l_req_line_detail_tbl(p).AUTOMATIC_FLAG
7613                                 );
7614                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').OPERAND_CALCULATION_CODE : '|| l_req_line_detail_tbl(p).OPERAND_CALCULATION_CODE
7615                                 );
7616                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').OPERAND_VALUE : '|| l_req_line_detail_tbl(p).OPERAND_VALUE
7617                                 );
7618                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').PRICING_GROUP_SEQUENCE : '|| l_req_line_detail_tbl(p).PRICING_GROUP_SEQUENCE
7619                                 );
7620                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').PRICE_BREAK_TYPE_CODE : '|| l_req_line_detail_tbl(p).PRICE_BREAK_TYPE_CODE
7621                                 );
7622                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').CREATED_FROM_LIST_TYPE_CODE : '|| l_req_line_detail_tbl(p).CREATED_FROM_LIST_TYPE_CODE
7623                                 );
7624                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').PRICING_PHASE_ID : '|| l_req_line_detail_tbl(p).PRICING_PHASE_ID
7625                                 );
7626                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').LIST_PRICE : '|| l_req_line_detail_tbl(p).LIST_PRICE
7627                                 );
7628                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').LINE_QUANTITY : '|| l_req_line_detail_tbl(p).LINE_QUANTITY
7629                                 );
7630                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').ADJUSTMENT_AMOUNT : '|| l_req_line_detail_tbl(p).ADJUSTMENT_AMOUNT
7631                                 );
7632                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').APPLIED_FLAG : '|| l_req_line_detail_tbl(p).APPLIED_FLAG
7633                                 );
7634                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').MODIFIER_LEVEL_CODE : '|| l_req_line_detail_tbl(p).MODIFIER_LEVEL_CODE
7635                                 );
7636                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').STATUS_CODE : '|| l_req_line_detail_tbl(p).STATUS_CODE
7637                                 );
7638                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').STATUS_TEXT : '|| l_req_line_detail_tbl(p).STATUS_TEXT
7639                                 );
7640                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').SUBSTITUTION_ATTRIBUTE : '|| l_req_line_detail_tbl(p).SUBSTITUTION_ATTRIBUTE
7641                                 );
7642                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').ACCRUAL_FLAG : '|| l_req_line_detail_tbl(p).ACCRUAL_FLAG
7643                                 );
7644                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').LIST_LINE_NO : '|| l_req_line_detail_tbl(p).LIST_LINE_NO
7645                                 );
7646                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').ESTIM_GL_VALUE : '|| l_req_line_detail_tbl(p).ESTIM_GL_VALUE
7647                                 );
7648                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').ACCRUAL_CONVERSION_RATE : '|| l_req_line_detail_tbl(p).ACCRUAL_CONVERSION_RATE
7649                                 );
7650                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').OVERRIDE_FLAG : '|| l_req_line_detail_tbl(p).OVERRIDE_FLAG
7651                                 );
7652                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').PRINT_ON_INVOICE_FLAG : '|| l_req_line_detail_tbl(p).PRINT_ON_INVOICE_FLAG
7653                                 );
7654                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').INVENTORY_ITEM_ID : '|| l_req_line_detail_tbl(p).INVENTORY_ITEM_ID
7655                                 );
7656                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').ORGANIZATION_ID : '|| l_req_line_detail_tbl(p).ORGANIZATION_ID
7657                                 );
7658                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').RELATED_ITEM_ID : '|| l_req_line_detail_tbl(p).RELATED_ITEM_ID
7659                                 );
7660                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').RELATIONSHIP_TYPE_ID : '|| l_req_line_detail_tbl(p).RELATIONSHIP_TYPE_ID
7661                                 );
7662                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').ESTIM_ACCRUAL_RATE : '|| l_req_line_detail_tbl(p).ESTIM_ACCRUAL_RATE
7663                                 );
7664                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').EXPIRATION_DATE : '|| l_req_line_detail_tbl(p).EXPIRATION_DATE
7665                                 );
7666                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').BENEFIT_PRICE_LIST_LINE_ID : '|| l_req_line_detail_tbl(p).BENEFIT_PRICE_LIST_LINE_ID
7667                                 );
7668                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').RECURRING_FLAG : '|| l_req_line_detail_tbl(p).RECURRING_FLAG
7669                                 );
7670                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').RECURRING_VALUE : '|| l_req_line_detail_tbl(p).RECURRING_VALUE
7671                                 );
7672                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').BENEFIT_LIMIT : '|| l_req_line_detail_tbl(p).BENEFIT_LIMIT
7673                                 );
7674                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').CHARGE_TYPE_CODE : '|| l_req_line_detail_tbl(p).CHARGE_TYPE_CODE
7675                                 );
7676                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').CHARGE_SUBTYPE_CODE : '|| l_req_line_detail_tbl(p).CHARGE_SUBTYPE_CODE
7677                                 );
7678                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').INCLUDE_ON_RETURNS_FLAG : '|| l_req_line_detail_tbl(p).INCLUDE_ON_RETURNS_FLAG
7679                                 );
7680                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').BENEFIT_QTY : '|| l_req_line_detail_tbl(p).BENEFIT_QTY
7681                                 );
7682                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').BENEFIT_UOM_CODE : '|| l_req_line_detail_tbl(p).BENEFIT_UOM_CODE
7683                                 );
7684                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').PRORATION_TYPE_CODE : '|| l_req_line_detail_tbl(p).PRORATION_TYPE_CODE
7685                                 );
7686                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').SOURCE_SYSTEM_CODE : '|| l_req_line_detail_tbl(p).SOURCE_SYSTEM_CODE
7687                                 );
7688                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').REBATE_TRANSACTION_TYPE_CODE : '|| l_req_line_detail_tbl(p).REBATE_TRANSACTION_TYPE_CODE
7689                                 );
7690                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').SECONDARY_PRICELIST_IND : '|| l_req_line_detail_tbl(p).SECONDARY_PRICELIST_IND
7691                                 );
7692                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').GROUP_VALUE : '|| l_req_line_detail_tbl(p).GROUP_VALUE
7693                                 );
7694                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').COMMENTS : '|| l_req_line_detail_tbl(p).COMMENTS
7695                                 );
7696                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').UPDATED_FLAG : '|| l_req_line_detail_tbl(p).UPDATED_FLAG
7697                                 );
7698                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').PROCESS_CODE : '|| l_req_line_detail_tbl(p).PROCESS_CODE
7699                                 );
7700                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').LIMIT_CODE : '|| l_req_line_detail_tbl(p).LIMIT_CODE
7701                                 );
7702                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').LIMIT_TEXT : '|| l_req_line_detail_tbl(p).LIMIT_TEXT
7703                                 );
7704                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').FORMULA_ID : '|| l_req_line_detail_tbl(p).FORMULA_ID
7705                                 );
7706                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').CALCULATION_CODE : '|| l_req_line_detail_tbl(p).CALCULATION_CODE
7707                                 );
7708                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').ROUNDING_FACTOR : '|| l_req_line_detail_tbl(p).ROUNDING_FACTOR
7709                                 );
7710                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').currency_detail_id : '|| l_req_line_detail_tbl(p).currency_detail_id
7711                                 );
7712                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').currency_header_id : '|| l_req_line_detail_tbl(p).currency_header_id
7713                                 );
7714                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').selling_rounding_factor : '|| l_req_line_detail_tbl(p).selling_rounding_factor
7715                                 );
7716                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').order_currency : '|| l_req_line_detail_tbl(p).order_currency
7717                                 );
7718                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').pricing_effective_date : '|| l_req_line_detail_tbl(p).pricing_effective_date
7719                                 );
7720                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').base_currency_code : '|| l_req_line_detail_tbl(p).base_currency_code
7721                                 );
7722                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').change_reason_code : '|| l_req_line_detail_tbl(p).change_reason_code
7723                                 );
7724                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').change_reason_text : '|| l_req_line_detail_tbl(p).change_reason_text
7725                                 );
7726                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').break_uom_code : '|| l_req_line_detail_tbl(p).break_uom_code
7727                                 );
7728                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').break_uom_context : '|| l_req_line_detail_tbl(p).break_uom_context
7729                                 );
7730                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_tbl('|| p ||').break_uom_attribute : '|| l_req_line_detail_tbl(p).break_uom_attribute
7731                                 );
7732                 EXIT WHEN l_req_line_detail_tbl.LAST = p;
7733                 p := l_req_line_detail_tbl.NEXT(p);
7734             END LOOP;
7735         END IF; -- l_req_line_detail_tbl.COUNT > 0
7736     --
7737     -- Input Parameter 6: l_req_line_detail_qual_tbl
7738     --
7739         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7740         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Input Parameter 6: l_req_line_detail_qual_tbl ******************');
7741             fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_qual_tbl.COUNT '|| l_req_line_detail_qual_tbl.COUNT
7742                         );
7743         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7744 
7745         IF l_req_line_detail_qual_tbl.COUNT > 0 THEN
7746            p := l_req_line_detail_qual_tbl.FIRST;
7747                 LOOP
7748                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_line_detail_qual_tbl('|| p ||') *************'
7749                                 );
7750                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_qual_tbl('|| p ||').LINE_DETAIL_INDEX : '|| l_req_line_detail_qual_tbl(p).LINE_DETAIL_INDEX
7751                                 );
7752                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_qual_tbl('|| p ||').QUALIFIER_CONTEXT : '|| l_req_line_detail_qual_tbl(p).QUALIFIER_CONTEXT
7753                                 );
7754                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_qual_tbl('|| p ||').QUALIFIER_ATTRIBUTE : '|| l_req_line_detail_qual_tbl(p).QUALIFIER_ATTRIBUTE
7755                                 );
7756                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_qual_tbl('|| p ||').QUALIFIER_ATTR_VALUE_FROM : '|| l_req_line_detail_qual_tbl(p).QUALIFIER_ATTR_VALUE_FROM
7757                                 );
7758                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_qual_tbl('|| p ||').QUALIFIER_ATTR_VALUE_TO : '|| l_req_line_detail_qual_tbl(p).QUALIFIER_ATTR_VALUE_TO
7759                                 );
7760                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_qual_tbl('|| p ||').COMPARISON_OPERATOR_CODE : '|| l_req_line_detail_qual_tbl(p).COMPARISON_OPERATOR_CODE
7761                                 );
7762                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_qual_tbl('|| p ||').VALIDATED_FLAG : '|| l_req_line_detail_qual_tbl(p).VALIDATED_FLAG
7763                                 );
7764                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_qual_tbl('|| p ||').STATUS_CODE : '|| l_req_line_detail_qual_tbl(p).STATUS_CODE
7765                                 );
7766                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_qual_tbl('|| p ||').STATUS_TEXT : '|| l_req_line_detail_qual_tbl(p).STATUS_TEXT
7767                                 );
7768                 EXIT WHEN l_req_line_detail_qual_tbl.LAST = p;
7769                 p := l_req_line_detail_qual_tbl.NEXT(p);
7770             END LOOP;
7771         END IF; -- l_req_line_detail_qual_tbl.COUNT > 0
7772     --
7773     -- Input Parameter 7: l_req_line_detail_attr_tbl
7774     --
7775         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7776         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Input Parameter 7: l_req_line_detail_attr_tbl ******************');
7777             fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_attr_tbl.COUNT '|| l_req_line_detail_attr_tbl.COUNT
7778                         );
7779         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7780 
7781         IF l_req_line_detail_attr_tbl.COUNT > 0 THEN
7782            p := l_req_line_detail_attr_tbl.FIRST;
7783                 LOOP
7784                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_line_detail_attr_tbl('|| p ||') *************'
7785                                 );
7786                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_attr_tbl('|| p ||').LINE_DETAIL_INDEX : '|| l_req_line_detail_attr_tbl(p).LINE_DETAIL_INDEX
7787                                 );
7788                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_attr_tbl('|| p ||').LINE_INDEX : '|| l_req_line_detail_attr_tbl(p).LINE_INDEX
7789                                 );
7790                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_attr_tbl('|| p ||').PRICING_CONTEXT : '|| l_req_line_detail_attr_tbl(p).PRICING_CONTEXT
7791                                 );
7792                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_attr_tbl('|| p ||').PRICING_ATTRIBUTE : '|| l_req_line_detail_attr_tbl(p).PRICING_ATTRIBUTE
7793                                 );
7794                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_attr_tbl('|| p ||').PRICING_ATTR_VALUE_FROM : '|| l_req_line_detail_attr_tbl(p).PRICING_ATTR_VALUE_FROM
7795                                 );
7796                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_attr_tbl('|| p ||').PRICING_ATTR_VALUE_TO : '|| l_req_line_detail_attr_tbl(p).PRICING_ATTR_VALUE_TO
7797                                 );
7798                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_attr_tbl('|| p ||').VALIDATED_FLAG : '|| l_req_line_detail_attr_tbl(p).VALIDATED_FLAG
7799                                 );
7800                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_attr_tbl('|| p ||').STATUS_CODE : '|| l_req_line_detail_attr_tbl(p).STATUS_CODE
7801                                 );
7802                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_detail_attr_tbl('|| p ||').STATUS_TEXT : '|| l_req_line_detail_attr_tbl(p).STATUS_TEXT
7803                                 );
7804                 EXIT WHEN l_req_line_detail_attr_tbl.LAST = p;
7805                 p := l_req_line_detail_attr_tbl.NEXT(p);
7806             END LOOP;
7807         END IF; -- l_req_line_detail_attr_tbl.COUNT > 0
7808 
7809     --
7810     -- Input Parameter 8: l_req_related_lines_tbl
7811     --
7812         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7813         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Input Parameter 8: l_req_related_lines_tbl ******************');
7814         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_related_lines_tbl.COUNT '|| l_req_related_lines_tbl.COUNT
7815                         );
7816         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7817 
7818         IF l_req_related_lines_tbl.COUNT > 0 THEN
7819            p := l_req_related_lines_tbl.FIRST;
7820                 LOOP
7821                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_related_lines_tbl('|| p ||') *************'
7822                                 );
7823                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_related_lines_tbl('|| p ||').LINE_INDEX : '|| l_req_related_lines_tbl(p).LINE_INDEX
7824                                 );
7825                  fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_related_lines_tbl('|| p ||').LINE_DETAIL_INDEX : '|| l_req_related_lines_tbl(p).LINE_DETAIL_INDEX
7826                                 );
7827                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_related_lines_tbl('|| p ||').RELATIONSHIP_TYPE_CODE : '|| l_req_related_lines_tbl(p).RELATIONSHIP_TYPE_CODE
7828                                 );
7829                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_related_lines_tbl('|| p ||').RELATED_LINE_INDEX : '|| l_req_related_lines_tbl(p).RELATED_LINE_INDEX
7830                                 );
7831                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_related_lines_tbl('|| p ||').RELATED_LINE_DETAIL_INDEX : '|| l_req_related_lines_tbl(p).RELATED_LINE_DETAIL_INDEX
7832                                 );
7833                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_related_lines_tbl('|| p ||').STATUS_CODE : '|| l_req_related_lines_tbl(p).STATUS_CODE
7834                                 );
7835                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_related_lines_tbl('|| p ||').STATUS_TEXT : '|| l_req_related_lines_tbl(p).STATUS_TEXT
7836                                 );
7837                 EXIT WHEN l_req_related_lines_tbl.LAST = p;
7838                 p := l_req_related_lines_tbl.NEXT(p);
7839             END LOOP;
7840         END IF; -- l_req_related_lines_tbl.COUNT > 0
7841 
7842     END IF; -- SKEKKAR end Added debug statements to print all the parameters bug 5069673
7843 
7844 
7845       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
7846       THEN
7847          fnd_log.STRING (fnd_log.level_procedure,
7848                          g_module ||
7849                          l_api_name,
7850                          '19013:*** BEFORE QP CALL STATUS **** ' ||
7851                          lx_return_status
7852                         );
7853          fnd_log.STRING (fnd_log.level_procedure,g_module ||l_api_name,
7854                          '19013: **** Calling qp_preq_pub.price_request *****'
7855                         );
7856          fnd_log.STRING (fnd_log.level_procedure,g_module ||l_api_name,
7857                          '19013: qp_preq_pub.price_request Start Time : '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SSSS')
7858                         );
7859       END IF;
7860 
7861 --dbms_output.put_line ('*** BEFORE QP CALL STATUS **** ' ||lx_return_status);
7862 
7863       --Pricing Engine Call
7864       qp_preq_pub.price_request
7865                        (p_control_rec                      => l_control_rec,
7866                         p_line_tbl                         => l_req_line_tbl,
7867                         p_qual_tbl                         => l_req_qual_tbl,
7868                         p_line_attr_tbl                    => l_req_line_attr_tbl,
7869                         p_line_detail_tbl                  => l_req_line_detail_tbl,
7870                         p_line_detail_qual_tbl             => l_req_line_detail_qual_tbl,
7871                         p_line_detail_attr_tbl             => l_req_line_detail_attr_tbl,
7872                         p_related_lines_tbl                => l_req_related_lines_tbl,
7873                         x_line_tbl                         => lx_req_line_tbl,
7874                         x_line_qual                        => lx_req_qual_tbl,
7875                         x_line_attr_tbl                    => lx_req_line_attr_tbl,
7876                         x_line_detail_tbl                  => lx_req_line_detail_tbl,
7877                         x_line_detail_qual_tbl             => lx_req_line_detail_qual_tbl,
7878                         x_line_detail_attr_tbl             => lx_req_line_detail_attr_tbl,
7879                         x_related_lines_tbl                => lx_req_related_lines_tbl,
7880                         x_return_status                    => lx_return_status,
7881                         x_return_status_text               => lx_return_status_text
7882                        );
7883 
7884       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
7885       THEN
7886          fnd_log.STRING (fnd_log.level_procedure,g_module ||l_api_name,
7887                          '19014: **** After Calling qp_preq_pub.price_request ***** Status : '||lx_return_status
7888                         );
7889          fnd_log.STRING (fnd_log.level_procedure,g_module ||l_api_name,
7890                          '19014: qp_preq_pub.price_request End Time : '||to_char(sysdate,'DD-MON-YYYY HH24:MI:SSSS')
7891                         );
7892 
7893          fnd_log.STRING (fnd_log.level_procedure,
7894                          g_module ||
7895                          l_api_name,
7896                          '19014:*** AFTER QP CALL STATUS **** ' ||
7897                          lx_return_status
7898                         );
7899          fnd_log.STRING (fnd_log.level_procedure,
7900                          g_module ||
7901                          l_api_name,
7902                          '19014:*** AFTER QP CALL STATUS TEXT **** ' ||
7903                          lx_return_status_text
7904                         );
7905       END IF;
7906 
7907 -- SKEKKAR
7908 -- Added debug statements to print all the parameters that we pass and get back from QP
7909 -- bug 5069673
7910 --
7911     IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)   THEN
7912     --
7913     -- Output Parameter 1: lx_req_line_tbl
7914     --
7915         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7916         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl.COUNT '|| lx_req_line_tbl.COUNT
7917                         );
7918         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
7919         IF lx_req_line_tbl.COUNT > 0 THEN
7920             p := lx_req_line_tbl.FIRST;
7921                 LOOP
7922                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_line_tbl('|| p ||') *************'
7923                                 );
7924                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').REQUEST_TYPE_CODE : '|| lx_req_line_tbl(p).REQUEST_TYPE_CODE
7925                                 );
7926                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').PRICING_EVENT : '|| lx_req_line_tbl(p).PRICING_EVENT
7927                                 );
7928                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').HEADER_ID : '|| lx_req_line_tbl(p).HEADER_ID
7929                                 );
7930                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').LINE_INDEX : '|| lx_req_line_tbl(p).LINE_INDEX
7931                                 );
7932                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').LINE_ID : '|| lx_req_line_tbl(p).LINE_ID
7933                                 );
7934                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').LINE_TYPE_CODE : '|| lx_req_line_tbl(p).LINE_TYPE_CODE
7935                                 );
7936                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').PRICING_EFFECTIVE_DATE : '|| lx_req_line_tbl(p).PRICING_EFFECTIVE_DATE
7937                                 );
7938                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').ACTIVE_DATE_FIRST : '|| lx_req_line_tbl(p).ACTIVE_DATE_FIRST
7939                                 );
7940                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').ACTIVE_DATE_FIRST_TYPE : '|| lx_req_line_tbl(p).ACTIVE_DATE_FIRST_TYPE
7941                                 );
7942                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').ACTIVE_DATE_SECOND : '|| lx_req_line_tbl(p).ACTIVE_DATE_SECOND
7943                                 );
7944                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').ACTIVE_DATE_FIRST_TYPE : '|| lx_req_line_tbl(p).ACTIVE_DATE_FIRST_TYPE
7945                                 );
7946                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').ACTIVE_DATE_SECOND : '|| lx_req_line_tbl(p).ACTIVE_DATE_SECOND
7947                                 );
7948                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').ACTIVE_DATE_SECOND_TYPE : '|| lx_req_line_tbl(p).ACTIVE_DATE_SECOND_TYPE
7949                                 );
7950                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').LINE_QUANTITY : '|| lx_req_line_tbl(p).LINE_QUANTITY
7951                                 );
7952                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').LINE_UOM_CODE : '|| lx_req_line_tbl(p).LINE_UOM_CODE
7953                                 );
7954                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').UOM_QUANTITY : '|| lx_req_line_tbl(p).UOM_QUANTITY
7955                                 );
7956                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').PRICED_QUANTITY : '|| lx_req_line_tbl(p).PRICED_QUANTITY
7957                                 );
7958                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').PRICED_UOM_CODE : '|| lx_req_line_tbl(p).PRICED_UOM_CODE
7959                                 );
7960                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').CURRENCY_CODE : '|| lx_req_line_tbl(p).CURRENCY_CODE
7961                                 );
7962                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').UNIT_PRICE : '|| lx_req_line_tbl(p).UNIT_PRICE
7963                                 );
7964                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').PERCENT_PRICE : '|| lx_req_line_tbl(p).PERCENT_PRICE
7965                                 );
7966                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').ADJUSTED_UNIT_PRICE : '|| lx_req_line_tbl(p).ADJUSTED_UNIT_PRICE
7967                                 );
7968                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').UPDATED_ADJUSTED_UNIT_PRICE : '|| lx_req_line_tbl(p).UPDATED_ADJUSTED_UNIT_PRICE
7969                                 );
7970                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').PARENT_PRICE : '|| lx_req_line_tbl(p).PARENT_PRICE
7971                                 );
7972                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').PARENT_QUANTITY : '|| lx_req_line_tbl(p).PARENT_QUANTITY
7973                                 );
7974                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').ROUNDING_FACTOR : '|| lx_req_line_tbl(p).ROUNDING_FACTOR
7975                                 );
7976                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').PARENT_UOM_CODE : '|| lx_req_line_tbl(p).PARENT_UOM_CODE
7977                                 );
7978                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').PRICING_PHASE_ID : '|| lx_req_line_tbl(p).PRICING_PHASE_ID
7979                                 );
7980                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').PRICE_FLAG : '|| lx_req_line_tbl(p).PRICE_FLAG
7981                                 );
7982                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').PROCESSED_CODE : '|| lx_req_line_tbl(p).PROCESSED_CODE
7983                                 );
7984                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').PRICE_REQUEST_CODE : '|| lx_req_line_tbl(p).PRICE_REQUEST_CODE
7985                                 );
7986                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').HOLD_CODE : '|| lx_req_line_tbl(p).HOLD_CODE
7987                                 );
7988                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').HOLD_TEXT : '|| lx_req_line_tbl(p).HOLD_TEXT
7989                                 );
7990                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').STATUS_CODE : '|| lx_req_line_tbl(p).STATUS_CODE
7991                                 );
7992                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').STATUS_TEXT : '|| lx_req_line_tbl(p).STATUS_TEXT
7993                                 );
7994                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').USAGE_PRICING_TYPE : '|| lx_req_line_tbl(p).USAGE_PRICING_TYPE
7995                                 );
7996                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').LINE_CATEGORY : '|| lx_req_line_tbl(p).LINE_CATEGORY
7997                                 );
7998                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').CONTRACT_START_DATE : '|| lx_req_line_tbl(p).CONTRACT_START_DATE
7999                                 );
8000                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').CONTRACT_END_DATE : '|| lx_req_line_tbl(p).CONTRACT_END_DATE
8001                                 );
8002                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').LINE_UNIT_PRICE : '|| lx_req_line_tbl(p).LINE_UNIT_PRICE
8003                                 );
8004                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').EXTENDED_PRICE : '|| lx_req_line_tbl(p).EXTENDED_PRICE
8005                                 );
8006                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').LIST_PRICE_OVERRIDE_FLAG : '|| lx_req_line_tbl(p).LIST_PRICE_OVERRIDE_FLAG
8007                                 );
8008                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl('|| p ||').CHARGE_PERIODICITY_CODE : '|| lx_req_line_tbl(p).CHARGE_PERIODICITY_CODE
8009                                 );
8010                 EXIT WHEN lx_req_line_tbl.LAST = p;
8011                 p := lx_req_line_tbl.NEXT(p);
8012             END LOOP;
8013         END IF; -- lx_req_line_tbl.COUNT > 0
8014 
8015     --
8016     -- Output Parameter 2: lx_req_qual_tbl
8017     --
8018         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8019         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Output Parameter 2: lx_req_qual_tbl ************');
8020         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_qual_tbl.COUNT '|| lx_req_qual_tbl.COUNT
8021                         );
8022         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8023         IF lx_req_qual_tbl.COUNT > 0 THEN
8024             p := lx_req_qual_tbl.FIRST;
8025                 LOOP
8026                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_qual_tbl('|| p ||') *************'
8027                                 );
8028                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_qual_tbl('|| p ||').LINE_INDEX : '|| lx_req_qual_tbl(p).LINE_INDEX
8029                                 );
8030                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_qual_tbl('|| p ||').QUALIFIER_CONTEXT : '|| lx_req_qual_tbl(p).QUALIFIER_CONTEXT
8031                                 );
8032                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_qual_tbl('|| p ||').QUALIFIER_ATTRIBUTE : '|| lx_req_qual_tbl(p).QUALIFIER_ATTRIBUTE
8033                                 );
8034                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_qual_tbl('|| p ||').QUALIFIER_ATTR_VALUE_FROM : '|| lx_req_qual_tbl(p).QUALIFIER_ATTR_VALUE_FROM
8035                                 );
8036                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_qual_tbl('|| p ||').QUALIFIER_ATTR_VALUE_TO : '|| lx_req_qual_tbl(p).QUALIFIER_ATTR_VALUE_TO
8037                                 );
8038                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_qual_tbl('|| p ||').COMPARISON_OPERATOR_CODE : '|| lx_req_qual_tbl(p).COMPARISON_OPERATOR_CODE
8039                                 );
8040                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_qual_tbl('|| p ||').VALIDATED_FLAG : '|| lx_req_qual_tbl(p).VALIDATED_FLAG
8041                                 );
8042                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_qual_tbl('|| p ||').STATUS_CODE : '|| lx_req_qual_tbl(p).STATUS_CODE
8043                                 );
8044                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_qual_tbl('|| p ||').STATUS_TEXT : '|| lx_req_qual_tbl(p).STATUS_TEXT
8045                                 );
8046                 EXIT WHEN lx_req_qual_tbl.LAST = p;
8047                 p := lx_req_qual_tbl.NEXT(p);
8048             END LOOP;
8049         END IF; -- lx_req_qual_tbl.COUNT > 0
8050     --
8051     -- Output Parameter 3: lx_req_line_attr_tbl
8052     --
8053         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8054         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ****************** Output Parameter 3: lx_req_line_attr_tbl ************');
8055         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_attr_tbl.COUNT '|| lx_req_qual_tbl.COUNT
8056                         );
8057         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8058         IF lx_req_line_attr_tbl.COUNT > 0 THEN
8059             p := lx_req_line_attr_tbl.FIRST;
8060                 LOOP
8061                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_line_attr_tbl('|| p ||') *************'
8062                                 );
8063                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_attr_tbl('|| p ||').LINE_INDEX : '|| lx_req_line_attr_tbl(p).LINE_INDEX
8064                                 );
8065                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_attr_tbl('|| p ||').PRICING_CONTEXT : '|| lx_req_line_attr_tbl(p).PRICING_CONTEXT
8066                                 );
8067                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_attr_tbl('|| p ||').PRICING_ATTRIBUTE : '|| lx_req_line_attr_tbl(p).PRICING_ATTRIBUTE
8068                                 );
8069                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_attr_tbl('|| p ||').PRICING_ATTR_VALUE_FROM : '|| lx_req_line_attr_tbl(p).PRICING_ATTR_VALUE_FROM
8070                                 );
8071                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_attr_tbl('|| p ||').PRICING_ATTR_VALUE_TO : '|| lx_req_line_attr_tbl(p).PRICING_ATTR_VALUE_TO
8072                                 );
8073                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_attr_tbl('|| p ||').VALIDATED_FLAG : '|| lx_req_line_attr_tbl(p).VALIDATED_FLAG
8074                                 );
8075                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_attr_tbl('|| p ||').STATUS_CODE : '|| lx_req_line_attr_tbl(p).STATUS_CODE
8076                                 );
8077                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_attr_tbl('|| p ||').STATUS_TEXT : '|| lx_req_line_attr_tbl(p).STATUS_TEXT
8078                                 );
8079                 EXIT WHEN lx_req_line_attr_tbl.LAST = p;
8080                 p := lx_req_line_attr_tbl.NEXT(p);
8081             END LOOP;
8082         END IF; -- lx_req_line_attr_tbl.COUNT > 0
8083 
8084     --
8085     -- Output Parameter 4: lx_req_line_detail_tbl
8086     --
8087         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8088         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ****************** Output Parameter 4: lx_req_line_detail_tbl ************');
8089             fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl.COUNT '|| lx_req_line_detail_tbl.COUNT
8090                         );
8091         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8092 
8093         IF lx_req_line_detail_tbl.COUNT > 0 THEN
8094             p := lx_req_line_detail_tbl.FIRST;
8095                 LOOP
8096                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_line_detail_tbl('|| p ||') *************'
8097                                 );
8098                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').LINE_DETAIL_INDEX : '|| lx_req_line_detail_tbl(p).LINE_DETAIL_INDEX
8099                                 );
8100                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').LINE_DETAIL_ID : '|| lx_req_line_detail_tbl(p).LINE_DETAIL_ID
8101                                 );
8102                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').LINE_DETAIL_TYPE_CODE : '|| lx_req_line_detail_tbl(p).LINE_DETAIL_TYPE_CODE
8103                                 );
8104                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').LINE_INDEX : '|| lx_req_line_detail_tbl(p).LINE_INDEX
8105                                 );
8106                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').LIST_HEADER_ID : '|| lx_req_line_detail_tbl(p).LIST_HEADER_ID
8107                                 );
8108                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').LIST_LINE_ID : '|| lx_req_line_detail_tbl(p).LIST_LINE_ID
8109                                 );
8110                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').LIST_LINE_TYPE_CODE : '|| lx_req_line_detail_tbl(p).LIST_LINE_TYPE_CODE
8111                                 );
8112                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').SUBSTITUTION_TYPE_CODE : '|| lx_req_line_detail_tbl(p).SUBSTITUTION_TYPE_CODE
8113                                 );
8114                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').SUBSTITUTION_FROM : '|| lx_req_line_detail_tbl(p).SUBSTITUTION_FROM
8115                                 );
8116                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').SUBSTITUTION_TO : '|| lx_req_line_detail_tbl(p).SUBSTITUTION_TO
8117                                 );
8118                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').AUTOMATIC_FLAG : '|| lx_req_line_detail_tbl(p).AUTOMATIC_FLAG
8119                                 );
8120                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').OPERAND_CALCULATION_CODE : '|| lx_req_line_detail_tbl(p).OPERAND_CALCULATION_CODE
8121                                 );
8122                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').OPERAND_VALUE : '|| lx_req_line_detail_tbl(p).OPERAND_VALUE
8123                                 );
8124                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').PRICING_GROUP_SEQUENCE : '|| lx_req_line_detail_tbl(p).PRICING_GROUP_SEQUENCE
8125                                 );
8126                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').PRICE_BREAK_TYPE_CODE : '|| lx_req_line_detail_tbl(p).PRICE_BREAK_TYPE_CODE
8127                                 );
8128                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').CREATED_FROM_LIST_TYPE_CODE : '|| lx_req_line_detail_tbl(p).CREATED_FROM_LIST_TYPE_CODE
8129                                 );
8130                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').PRICING_PHASE_ID : '|| lx_req_line_detail_tbl(p).PRICING_PHASE_ID
8131                                 );
8132                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').LIST_PRICE : '|| lx_req_line_detail_tbl(p).LIST_PRICE
8133                                 );
8134                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').LINE_QUANTITY : '|| lx_req_line_detail_tbl(p).LINE_QUANTITY
8135                                 );
8136                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').ADJUSTMENT_AMOUNT : '|| lx_req_line_detail_tbl(p).ADJUSTMENT_AMOUNT
8137                                 );
8138                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').APPLIED_FLAG : '|| lx_req_line_detail_tbl(p).APPLIED_FLAG
8139                                 );
8140                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').MODIFIER_LEVEL_CODE : '|| lx_req_line_detail_tbl(p).MODIFIER_LEVEL_CODE
8141                                 );
8142                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').STATUS_CODE : '|| lx_req_line_detail_tbl(p).STATUS_CODE
8143                                 );
8144                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').STATUS_TEXT : '|| lx_req_line_detail_tbl(p).STATUS_TEXT
8145                                 );
8146                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').SUBSTITUTION_ATTRIBUTE : '|| lx_req_line_detail_tbl(p).SUBSTITUTION_ATTRIBUTE
8147                                 );
8148                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').ACCRUAL_FLAG : '|| lx_req_line_detail_tbl(p).ACCRUAL_FLAG
8149                                 );
8150                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').LIST_LINE_NO : '|| lx_req_line_detail_tbl(p).LIST_LINE_NO
8151                                 );
8152                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').ESTIM_GL_VALUE : '|| lx_req_line_detail_tbl(p).ESTIM_GL_VALUE
8153                                 );
8154                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').ACCRUAL_CONVERSION_RATE : '|| lx_req_line_detail_tbl(p).ACCRUAL_CONVERSION_RATE
8155                                 );
8156                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').OVERRIDE_FLAG : '|| lx_req_line_detail_tbl(p).OVERRIDE_FLAG
8157                                 );
8158                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').PRINT_ON_INVOICE_FLAG : '|| lx_req_line_detail_tbl(p).PRINT_ON_INVOICE_FLAG
8159                                 );
8160                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').INVENTORY_ITEM_ID : '|| lx_req_line_detail_tbl(p).INVENTORY_ITEM_ID
8161                                 );
8162                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').ORGANIZATION_ID : '|| lx_req_line_detail_tbl(p).ORGANIZATION_ID
8163                                 );
8164                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').RELATED_ITEM_ID : '|| lx_req_line_detail_tbl(p).RELATED_ITEM_ID
8165                                 );
8166                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').RELATIONSHIP_TYPE_ID : '|| lx_req_line_detail_tbl(p).RELATIONSHIP_TYPE_ID
8167                                 );
8168                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').ESTIM_ACCRUAL_RATE : '|| lx_req_line_detail_tbl(p).ESTIM_ACCRUAL_RATE
8169                                 );
8170                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').EXPIRATION_DATE : '|| lx_req_line_detail_tbl(p).EXPIRATION_DATE
8171                                 );
8172                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').BENEFIT_PRICE_LIST_LINE_ID : '|| lx_req_line_detail_tbl(p).BENEFIT_PRICE_LIST_LINE_ID
8173                                 );
8174                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').RECURRING_FLAG : '|| lx_req_line_detail_tbl(p).RECURRING_FLAG
8175                                 );
8176                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').RECURRING_VALUE : '|| lx_req_line_detail_tbl(p).RECURRING_VALUE
8177                                 );
8178                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').BENEFIT_LIMIT : '|| lx_req_line_detail_tbl(p).BENEFIT_LIMIT
8179                                 );
8180                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').CHARGE_TYPE_CODE : '|| lx_req_line_detail_tbl(p).CHARGE_TYPE_CODE
8181                                 );
8182                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').CHARGE_SUBTYPE_CODE : '|| lx_req_line_detail_tbl(p).CHARGE_SUBTYPE_CODE
8183                                 );
8184                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').INCLUDE_ON_RETURNS_FLAG : '|| lx_req_line_detail_tbl(p).INCLUDE_ON_RETURNS_FLAG
8185                                 );
8186                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').BENEFIT_QTY : '|| lx_req_line_detail_tbl(p).BENEFIT_QTY
8187                                 );
8188                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').BENEFIT_UOM_CODE : '|| lx_req_line_detail_tbl(p).BENEFIT_UOM_CODE
8189                                 );
8190                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').PRORATION_TYPE_CODE : '|| lx_req_line_detail_tbl(p).PRORATION_TYPE_CODE
8191                                 );
8192                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').SOURCE_SYSTEM_CODE : '|| lx_req_line_detail_tbl(p).SOURCE_SYSTEM_CODE
8193                                 );
8194                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').REBATE_TRANSACTION_TYPE_CODE : '|| lx_req_line_detail_tbl(p).REBATE_TRANSACTION_TYPE_CODE
8195                                 );
8196                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').SECONDARY_PRICELIST_IND : '|| lx_req_line_detail_tbl(p).SECONDARY_PRICELIST_IND
8197                                 );
8198                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').GROUP_VALUE : '|| lx_req_line_detail_tbl(p).GROUP_VALUE
8199                                 );
8200                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').COMMENTS : '|| lx_req_line_detail_tbl(p).COMMENTS
8201                                 );
8202                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').UPDATED_FLAG : '|| lx_req_line_detail_tbl(p).UPDATED_FLAG
8203                                 );
8204                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').PROCESS_CODE : '|| lx_req_line_detail_tbl(p).PROCESS_CODE
8205                                 );
8206                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').LIMIT_CODE : '|| lx_req_line_detail_tbl(p).LIMIT_CODE
8207                                 );
8208                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').LIMIT_TEXT : '|| lx_req_line_detail_tbl(p).LIMIT_TEXT
8209                                 );
8210                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').FORMULA_ID : '|| lx_req_line_detail_tbl(p).FORMULA_ID
8211                                 );
8212                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').CALCULATION_CODE : '|| lx_req_line_detail_tbl(p).CALCULATION_CODE
8213                                 );
8214                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').ROUNDING_FACTOR : '|| lx_req_line_detail_tbl(p).ROUNDING_FACTOR
8215                                 );
8216                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').currency_detail_id : '|| lx_req_line_detail_tbl(p).currency_detail_id
8217                                 );
8218                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').currency_header_id : '|| lx_req_line_detail_tbl(p).currency_header_id
8219                                 );
8220                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').selling_rounding_factor : '|| lx_req_line_detail_tbl(p).selling_rounding_factor
8221                                 );
8222                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').order_currency : '|| lx_req_line_detail_tbl(p).order_currency
8223                                 );
8224                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').pricing_effective_date : '|| lx_req_line_detail_tbl(p).pricing_effective_date
8225                                 );
8226                         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').base_currency_code : '|| lx_req_line_detail_tbl(p).base_currency_code
8227                                 );
8228                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').change_reason_code : '|| lx_req_line_detail_tbl(p).change_reason_code
8229                                 );
8230                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').change_reason_text : '|| lx_req_line_detail_tbl(p).change_reason_text
8231                                 );
8232                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').break_uom_code : '|| lx_req_line_detail_tbl(p).break_uom_code
8233                                 );
8234                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').break_uom_context : '|| lx_req_line_detail_tbl(p).break_uom_context
8235                                 );
8236                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_tbl('|| p ||').break_uom_attribute : '|| lx_req_line_detail_tbl(p).break_uom_attribute
8237                                 );
8238                 EXIT WHEN lx_req_line_detail_tbl.LAST = p;
8239                 p := lx_req_line_detail_tbl.NEXT(p);
8240             END LOOP;
8241         END IF; -- lx_req_line_detail_tbl.COUNT > 0
8242 
8243     --
8244     -- Output Parameter 5: lx_req_line_detail_qual_tbl
8245     --
8246         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8247         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Output Parameter 5: lx_req_line_detail_qual_tbl ******************');
8248             fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_qual_tbl.COUNT '|| lx_req_line_detail_qual_tbl.COUNT
8249                         );
8250         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8251 
8252         IF lx_req_line_detail_qual_tbl.COUNT > 0 THEN
8253             p := lx_req_line_detail_qual_tbl.FIRST;
8254                 LOOP
8255                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_line_detail_qual_tbl('|| p ||') *************'
8256                                 );
8257                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_qual_tbl('|| p ||').LINE_DETAIL_INDEX : '|| lx_req_line_detail_qual_tbl(p).LINE_DETAIL_INDEX
8258                                 );
8259                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_qual_tbl('|| p ||').QUALIFIER_CONTEXT : '|| lx_req_line_detail_qual_tbl(p).QUALIFIER_CONTEXT
8260                                 );
8261                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_qual_tbl('|| p ||').QUALIFIER_ATTRIBUTE : '|| lx_req_line_detail_qual_tbl(p).QUALIFIER_ATTRIBUTE
8262                                 );
8263                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_qual_tbl('|| p ||').QUALIFIER_ATTR_VALUE_FROM : '|| lx_req_line_detail_qual_tbl(p).QUALIFIER_ATTR_VALUE_FROM
8264                                 );
8265                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_qual_tbl('|| p ||').QUALIFIER_ATTR_VALUE_TO : '|| lx_req_line_detail_qual_tbl(p).QUALIFIER_ATTR_VALUE_TO
8266                                 );
8267                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_qual_tbl('|| p ||').COMPARISON_OPERATOR_CODE : '|| lx_req_line_detail_qual_tbl(p).COMPARISON_OPERATOR_CODE
8268                                 );
8269                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_qual_tbl('|| p ||').VALIDATED_FLAG : '|| lx_req_line_detail_qual_tbl(p).VALIDATED_FLAG
8270                                 );
8271                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_qual_tbl('|| p ||').STATUS_CODE : '|| lx_req_line_detail_qual_tbl(p).STATUS_CODE
8272                                 );
8273                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_qual_tbl('|| p ||').STATUS_TEXT : '|| lx_req_line_detail_qual_tbl(p).STATUS_TEXT
8274                                 );
8275                 EXIT WHEN lx_req_line_detail_qual_tbl.LAST = p;
8276                 p := lx_req_line_detail_qual_tbl.NEXT(p);
8277             END LOOP;
8278         END IF; -- lx_req_line_detail_qual_tbl.COUNT > 0
8279     --
8280     -- Output Parameter 6: lx_req_line_detail_attr_tbl
8281     --
8282         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8283         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Output Parameter 6: lx_req_line_detail_attr_tbl ******************');
8284             fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_attr_tbl.COUNT '|| lx_req_line_detail_attr_tbl.COUNT
8285                         );
8286         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8287 
8288         IF lx_req_line_detail_attr_tbl.COUNT > 0 THEN
8289             p := lx_req_line_detail_attr_tbl.FIRST;
8290                 LOOP
8291                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_line_detail_attr_tbl('|| p ||') *************'
8292                                 );
8293                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_attr_tbl('|| p ||').LINE_DETAIL_INDEX : '|| lx_req_line_detail_attr_tbl(p).LINE_DETAIL_INDEX
8294                                 );
8295                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_attr_tbl('|| p ||').LINE_INDEX : '|| lx_req_line_detail_attr_tbl(p).LINE_INDEX
8296                                 );
8297                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_attr_tbl('|| p ||').PRICING_CONTEXT : '|| lx_req_line_detail_attr_tbl(p).PRICING_CONTEXT
8298                                 );
8299                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_attr_tbl('|| p ||').PRICING_ATTRIBUTE : '|| lx_req_line_detail_attr_tbl(p).PRICING_ATTRIBUTE
8300                                 );
8301                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_attr_tbl('|| p ||').PRICING_ATTR_VALUE_FROM : '|| lx_req_line_detail_attr_tbl(p).PRICING_ATTR_VALUE_FROM
8302                                 );
8303                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_attr_tbl('|| p ||').PRICING_ATTR_VALUE_TO : '|| lx_req_line_detail_attr_tbl(p).PRICING_ATTR_VALUE_TO
8304                                 );
8305                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_attr_tbl('|| p ||').VALIDATED_FLAG : '|| lx_req_line_detail_attr_tbl(p).VALIDATED_FLAG
8306                                 );
8307                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_attr_tbl('|| p ||').STATUS_CODE : '|| lx_req_line_detail_attr_tbl(p).STATUS_CODE
8308                                 );
8309                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_detail_attr_tbl('|| p ||').STATUS_TEXT : '|| lx_req_line_detail_attr_tbl(p).STATUS_TEXT
8310                                 );
8311                 EXIT WHEN lx_req_line_detail_attr_tbl.LAST = p;
8312                 p := lx_req_line_detail_attr_tbl.NEXT(p);
8313             END LOOP;
8314         END IF; -- lx_req_line_detail_attr_tbl.COUNT > 0
8315 
8316     --
8317     -- Output Parameter 7: lx_req_related_lines_tbl
8318     --
8319         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8320         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Output Parameter 7: lx_req_related_lines_tbl ******************');
8321         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_related_lines_tbl.COUNT '|| lx_req_related_lines_tbl.COUNT
8322                         );
8323         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8324 
8325         IF lx_req_related_lines_tbl.COUNT > 0 THEN
8326             p := lx_req_related_lines_tbl.FIRST;
8327                 LOOP
8328                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_related_lines_tbl('|| p ||') *************'
8329                                 );
8330                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_related_lines_tbl('|| p ||').LINE_INDEX : '|| lx_req_related_lines_tbl(p).LINE_INDEX
8331                                 );
8332                  fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_related_lines_tbl('|| p ||').LINE_DETAIL_INDEX : '|| lx_req_related_lines_tbl(p).LINE_DETAIL_INDEX
8333                                 );
8334                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_related_lines_tbl('|| p ||').RELATIONSHIP_TYPE_CODE : '|| lx_req_related_lines_tbl(p).RELATIONSHIP_TYPE_CODE
8335                                 );
8336                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_related_lines_tbl('|| p ||').RELATED_LINE_INDEX : '|| lx_req_related_lines_tbl(p).RELATED_LINE_INDEX
8337                                 );
8338                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_related_lines_tbl('|| p ||').RELATED_LINE_DETAIL_INDEX : '|| lx_req_related_lines_tbl(p).RELATED_LINE_DETAIL_INDEX
8339                                 );
8340                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_related_lines_tbl('|| p ||').STATUS_CODE : '|| lx_req_related_lines_tbl(p).STATUS_CODE
8341                                 );
8342                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_related_lines_tbl('|| p ||').STATUS_TEXT : '|| lx_req_related_lines_tbl(p).STATUS_TEXT
8343                                 );
8344                 EXIT WHEN lx_req_related_lines_tbl.LAST = p;
8345                 p := lx_req_related_lines_tbl.NEXT(p);
8346             END LOOP;
8347         END IF; -- lx_req_related_lines_tbl.COUNT > 0
8348     --
8349     -- Output Parameter 8: lx_return_status
8350     --
8351                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8352                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_return_status *************'
8353                                 );
8354                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_return_status '||lx_return_status
8355                                 );
8356                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8357     --
8358     -- Output Parameter 9: lx_return_status_text
8359     --
8360                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_return_status_text *************'
8361                                 );
8362                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_return_status_text '||lx_return_status_text
8363                                 );
8364                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8365 
8366     END IF; -- SKEKKAR end Added debug statements to print all the parameters bug 5069673
8367 
8368       IF NVL (lx_return_status, 'S') <> 'S'
8369       THEN
8370          okc_api.set_message (g_app_name,
8371                               G_QP_ENGINE_ERROR,
8372                               'ERROR_MESSAGE',
8373                               lx_return_status_text
8374                              );
8375          RAISE fnd_api.g_exc_error;
8376       END IF;
8377 
8378 --dbms_output.put_line ('*** AFTER QP CALL STATUS **** ' ||lx_return_status);
8379 --dbms_output.put_line ('*** AFTER QP CALL STATUS TEXT **** ' ||lx_return_status_text);
8380 
8381       --**************************************************************************************************************
8382 
8383       --START BLIND (REQ_LINE_DETAIL_TBL) DISPLAY
8384       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
8385       THEN
8386          fnd_log.STRING
8387             (fnd_log.level_procedure,
8388              g_module ||
8389              l_api_name,
8390              '20000:***********************OKS_QP_PKG BLING REQ_LINE_DETAIL TBL DISPLAY *********************'
8391             );
8392 --dbms_output.put_line ('***********************OKS_QP_PKG BLING REQ_LINE_DETAIL TBL DISPLAY *********************');
8393          i                          := lx_req_line_detail_tbl.FIRST;
8394 
8395          IF i IS NOT NULL
8396          THEN
8397             LOOP
8398                fnd_log.STRING
8399                   (fnd_log.level_procedure,
8400                    g_module ||
8401                    l_api_name,
8402                    '20001:*************************************************************************'
8403                   );
8404                fnd_log.STRING (fnd_log.level_procedure,
8405                                g_module ||
8406                                l_api_name,
8407                                '20002:LIST/DISCOUNT Modifier L: ' ||
8408                                lx_req_line_detail_tbl (i).modifier_level_code
8409                               );
8410                fnd_log.STRING (fnd_log.level_procedure,
8411                                g_module ||
8412                                l_api_name,
8413                                '20003:LIST/DISCOUNT Line Index: ' ||
8414                                lx_req_line_detail_tbl (i).line_index
8415                               );
8416                fnd_log.STRING (fnd_log.level_procedure,
8417                                g_module ||
8418                                l_api_name,
8419                                '20004:LIST/DISCOUNT Line Detail Index: ' ||
8420                                lx_req_line_detail_tbl (i).line_detail_index
8421                               );
8422                fnd_log.STRING (fnd_log.level_procedure,
8423                                g_module ||
8424                                l_api_name,
8425                                '20005:LIST/DISCOUNT Line Detail Type:' ||
8426                                lx_req_line_detail_tbl (i).line_detail_type_code
8427                               );
8428                fnd_log.STRING (fnd_log.level_procedure,
8429                                g_module ||
8430                                l_api_name,
8431                                '20006:LIST/DISCOUNT List Header Id: ' ||
8432                                lx_req_line_detail_tbl (i).list_header_id
8433                               );
8434                fnd_log.STRING (fnd_log.level_procedure,
8435                                g_module ||
8436                                l_api_name,
8437                                '20007:LIST/DISCOUNT List Line Id: ' ||
8438                                lx_req_line_detail_tbl (i).list_line_id
8439                               );
8440                fnd_log.STRING (fnd_log.level_procedure,
8441                                g_module ||
8442                                l_api_name,
8443                                '20008:LIST/DISCOUNT List Line Type Code: ' ||
8444                                lx_req_line_detail_tbl (i).list_line_type_code
8445                               );
8446                fnd_log.STRING (fnd_log.level_procedure,
8447                                g_module ||
8448                                l_api_name,
8449                                '20009:LIST/DISCOUNT Adjustment Amount : ' ||
8450                                lx_req_line_detail_tbl (i).adjustment_amount
8451                               );
8452                fnd_log.STRING (fnd_log.level_procedure,
8453                                g_module ||
8454                                l_api_name,
8455                                '20010:LIST/DISCOUNT Line Quantity : ' ||
8456                                lx_req_line_detail_tbl (i).line_quantity
8457                               );
8458                fnd_log.STRING
8459                           (fnd_log.level_procedure,
8460                            g_module ||
8461                            l_api_name,
8462                            '20011:LIST/DISCOUNT Operand Calculation Code: ' ||
8463                            lx_req_line_detail_tbl (i).operand_calculation_code
8464                           );
8465                fnd_log.STRING (fnd_log.level_procedure,
8466                                g_module ||
8467                                l_api_name,
8468                                '20012:LIST/DISCOUNT Operand value: ' ||
8469                                lx_req_line_detail_tbl (i).operand_value
8470                               );
8471                fnd_log.STRING (fnd_log.level_procedure,
8472                                g_module ||
8473                                l_api_name,
8474                                '20013:LIST/DISCOUNT Applied   Flag: ' ||
8475                                lx_req_line_detail_tbl (i).applied_flag
8476                               );
8477                fnd_log.STRING (fnd_log.level_procedure,
8478                                g_module ||
8479                                l_api_name,
8480                                '20014:LIST/DISCOUNT Automatic Flag: ' ||
8481                                lx_req_line_detail_tbl (i).automatic_flag
8482                               );
8483                fnd_log.STRING (fnd_log.level_procedure,
8484                                g_module ||
8485                                l_api_name,
8486                                '20015:LIST/DISCOUNT Override Flag: ' ||
8487                                lx_req_line_detail_tbl (i).override_flag
8488                               );
8489                fnd_log.STRING (fnd_log.level_procedure,
8490                                g_module ||
8491                                l_api_name,
8492                                '20016:LIST/DISCOUNT Update   Flag: ' ||
8493                                lx_req_line_detail_tbl (i).modifier_level_code
8494                               );
8495                fnd_log.STRING (fnd_log.level_procedure,
8496                                g_module ||
8497                                l_api_name,
8498                                '20017:LIST/DISCOUNT status_code: ' ||
8499                                lx_req_line_detail_tbl (i).status_code
8500                               );
8501                fnd_log.STRING (fnd_log.level_procedure,
8502                                g_module ||
8503                                l_api_name,
8504                                '20018:LIST/DISCOUNT status text: ' ||
8505                                lx_req_line_detail_tbl (i).status_text
8506                               );
8507                fnd_log.STRING
8508                           (fnd_log.level_procedure,
8509                            g_module ||
8510                            l_api_name,
8511                            '20019:-------------------------------------------'
8512                           );
8513                fnd_log.STRING
8514                   (fnd_log.level_procedure,
8515                    g_module ||
8516                    l_api_name,
8517                    '20020:*************************************************************************'
8518                   );
8519                --dbms_output.put_line ('*************************************************************************');
8520                --dbms_output.put_line ('LIST/DISCOUNT Modifier L: '||lx_req_line_detail_tbl(I).modifier_level_code);
8521                --dbms_output.put_line ('LIST/DISCOUNT Line Index: '||lx_req_line_detail_tbl(I).line_index);
8522                --dbms_output.put_line ('LIST/DISCOUNT Line Detail Index: '||lx_req_line_detail_tbl(I).line_detail_index);
8523                --dbms_output.put_line ('LIST/DISCOUNT Line Detail Type:'||lx_req_line_detail_tbl(I).line_detail_type_code);
8524                --dbms_output.put_line ('LIST/DISCOUNT List Header Id: '||lx_req_line_detail_tbl(I).list_header_id);
8525                --dbms_output.put_line ('LIST/DISCOUNT List Line Id: '||lx_req_line_detail_tbl(I).list_line_id);
8526                --dbms_output.put_line ('LIST/DISCOUNT List Line Type Code: '||lx_req_line_detail_tbl(I).list_line_type_code);
8527                --dbms_output.put_line ('LIST/DISCOUNT Adjustment Amount : '||lx_req_line_detail_tbl(I).adjustment_amount);
8528                --dbms_output.put_line ('LIST/DISCOUNT Line Quantity : '||lx_req_line_detail_tbl(I).line_quantity);
8529                --dbms_output.put_line ('LIST/DISCOUNT Operand Calculation Code: '||lx_req_line_detail_tbl(I).Operand_calculation_code);
8530                --dbms_output.put_line ('LIST/DISCOUNT Operand value: '||lx_req_line_detail_tbl(I).operand_value);
8531                --dbms_output.put_line ('LIST/DISCOUNT Applied   Flag: '||lx_req_line_detail_tbl(I).applied_flag);
8532                --dbms_output.put_line ('LIST/DISCOUNT Automatic Flag: '||lx_req_line_detail_tbl(I).automatic_flag);
8533                --dbms_output.put_line ('LIST/DISCOUNT Override Flag: '||lx_req_line_detail_tbl(I).override_flag);
8534                --dbms_output.put_line ('LIST/DISCOUNT Update   Flag: '||lx_req_line_detail_tbl(I).modifier_level_code);
8535                --dbms_output.put_line ('LIST/DISCOUNT status_code: '||lx_req_line_detail_tbl(I).status_code);
8536                --dbms_output.put_line ('LIST/DISCOUNT status text: '||lx_req_line_detail_tbl(I).status_text);
8537                --dbms_output.put_line ('-------------------------------------------');
8538                --dbms_output.put_line ('*************************************************************************');
8539                EXIT WHEN i = lx_req_line_detail_tbl.LAST;
8540                i                          := lx_req_line_detail_tbl.NEXT (i);
8541             END LOOP;
8542          END IF;
8543 
8544          fnd_log.STRING
8545             (fnd_log.level_procedure,
8546              g_module ||
8547              l_api_name,
8548              '20021:***********************OKS_QP_PKG BLING REQ_LINE_DETAIL TBL DISPLAY *********************'
8549             );
8550       END IF;
8551 
8552 --dbms_output.put_line ('***********************OKS_QP_PKG BLING REQ_LINE_DETAIL TBL DISPLAY *********************');
8553 
8554       --END BLIND (REQ_LINE_DETAIL_TBL) DISPLAY
8555 
8556       --**************************************************************************************************************
8557 
8558       --**************************************************************************************************************
8559 --APPLY MODIFIERS
8560       IF NOT NVL (p_detail_rec.intent, 'JA') IN ('HM', 'LM', 'SM')
8561       THEN                                      --Apply Modifiers Intent Check
8562          i                          := lx_req_line_detail_tbl.FIRST;
8563 
8564          IF i IS NOT NULL
8565          THEN
8566             LOOP
8567                IF lx_req_line_detail_tbl (i).applied_flag = 'Y'          AND
8568                   (lx_req_line_detail_tbl (i).list_line_type_code = 'DIS' OR
8569                    lx_req_line_detail_tbl (i).list_line_type_code = 'SUR'
8570                   )
8571                THEN
8572                   IF (lx_req_line_detail_tbl (i).line_index = 1 AND
8573                       l_hdrtop_rec.tl_line_style IN (12, 46)
8574                      )                                              OR
8575                      (lx_req_line_detail_tbl (i).line_index = 2 AND
8576                       l_hdrtop_rec.tl_line_style IN (1, 19)
8577                      )
8578 --Or       (lx_req_line_detail_tbl(I).line_index          = 2 and l_hdrtop_rec.tl_line_style = 46 and
8579 --          lx_req_line_detail_tbl(I).modifier_level_code = 'ORDER'                                    ) Or
8580 --         (lx_req_line_detail_tbl(I).line_index          = 3 and l_hdrtop_rec.tl_line_style in (1,19) and
8581 --          lx_req_line_detail_tbl(I).modifier_level_code = 'ORDER'                                    )
8582                   THEN
8583                      x_modifier_details (i)     := lx_req_line_detail_tbl (i);
8584                   END IF;                                   --line_style Check
8585                END IF;                                         --DIS/SUR check
8586 
8587                EXIT WHEN i = lx_req_line_detail_tbl.LAST;
8588                i                          := lx_req_line_detail_tbl.NEXT (i);
8589             END LOOP;
8590          END IF;                                         --End of I loop Check
8591 
8592          l_return_status            := NULL;
8593 
8594          IF l_hdrtop_rec.tl_line_style = 46
8595          THEN
8596             modifier_handling (p_cle_id                           => p_detail_rec.line_id,
8597                                p_modifier_details                 => x_modifier_details,
8598                                x_return_status                    => l_return_status
8599                               );
8600 
8601             IF l_return_status <> 'S'
8602             THEN
8603                okc_api.set_message (g_app_name,
8604                                     g_required_value,
8605                                     g_col_name_token,
8606                                     'Modifier Creation Error - Subscription '
8607                                    );
8608                RAISE fnd_api.g_exc_error;
8609             END IF;
8610          ELSIF l_hdrtop_rec.tl_line_style = 12
8611          THEN
8612             modifier_4_usg (p_bsl_id                           => p_detail_rec.bsl_id,
8613                             p_modifier_details                 => x_modifier_details,
8614                             x_return_status                    => l_return_status
8615                            );
8616 
8617             IF l_return_status <> 'S'
8618             THEN
8619                okc_api.set_message (g_app_name,
8620                                     g_required_value,
8621                                     g_col_name_token,
8622                                     'Modifier Creation Error - Usage'
8623                                    );
8624                RAISE fnd_api.g_exc_error;
8625             END IF;
8626          ELSIF l_hdrtop_rec.tl_line_style IN (1, 19)
8627          THEN
8628             modifier_handling (p_cle_id                           => p_detail_rec.subline_id,
8629                                p_modifier_details                 => x_modifier_details,
8630                                x_return_status                    => l_return_status
8631                               );
8632 
8633             IF l_return_status <> 'S'
8634             THEN
8635                okc_api.set_message
8636                                (g_app_name,
8637                                 g_required_value,
8638                                 g_col_name_token,
8639                                 'Modifier Creation Error - Service/Warranty '
8640                                );
8641                RAISE fnd_api.g_exc_error;
8642             END IF;
8643          END IF;
8644       END IF;                                   --Apply Modifiers Intent Check
8645 
8646 --APPLY MODIFIERS --END
8647 --**************************************************************************************************************
8648 
8649       --**************************************************************************************************************
8650 --Modifiers
8651 -- below modifiers will be used to build the dynamic LOV in Adjustments form
8652 -- HM : Header Adjustment, LM: Line Adjustment, SM : Subline Adjustment
8653 -- At Header and Subline, override modifiers are Allowed, while at Line override modifier
8654 -- are NOT allowed as Line Price is protected from update
8655 -- Even for Sublines, intent will be SM BUT we look at the modifier at line_index = 2 i.e
8656 -- modifier for service for product
8657 
8658       IF NVL (p_detail_rec.intent, 'JA') IN ('HM', 'LM', 'SM')
8659       THEN
8660          i                          := lx_req_line_detail_tbl.FIRST;
8661 
8662          IF i IS NOT NULL
8663          THEN
8664             LOOP
8665                IF (NVL (p_detail_rec.intent, 'JA') = 'HM'         OR
8666                    (lx_req_line_detail_tbl (i).line_index = 2 AND
8667                     l_hdrtop_rec.tl_line_style IN (1, 19)
8668                    )                                              OR
8669                    (lx_req_line_detail_tbl (i).line_index = 1 AND
8670                     l_hdrtop_rec.tl_line_style IN (12, 46)
8671                    )
8672                   )                                                   AND
8673                   lx_req_line_detail_tbl (i).list_line_type_code IN
8674                                                            ('DIS', 'SUR') AND
8675                   lx_req_line_detail_tbl (i).automatic_flag <> 'Y'
8676                THEN
8677                   IF NVL (p_detail_rec.intent, 'JA') = 'LM'
8678                   THEN
8679                     -- At Line Level, Only modifiers allowed are with override_flag as N
8680                      IF NVL (lx_req_line_detail_tbl (i).override_flag, 'N') =
8681                                                                           'N'
8682                      THEN
8683                         x_modifier_details (i)     :=
8684                                                    lx_req_line_detail_tbl (i);
8685                      ELSE
8686                         -- either HM or SM
8687                         IF l_hdrtop_rec.tl_line_style IN (46, 12)
8688                         THEN
8689                            x_modifier_details (i)     :=
8690                                                    lx_req_line_detail_tbl (i);
8691                         END IF;
8692                      END IF;
8693                   ELSE
8694                      x_modifier_details (i)     := lx_req_line_detail_tbl (i);
8695                   END IF;
8696                END IF;
8697 
8698                EXIT WHEN i = lx_req_line_detail_tbl.LAST;
8699                i                          := lx_req_line_detail_tbl.NEXT (i);
8700             END LOOP;
8701          END IF;
8702       END IF;
8703 
8704 --End For ('HM','LM','SM') Check
8705 --**************************************************************************************************************
8706 
8707       --**************************************************************************************************************
8708 --Pricing Details
8709       i                          := lx_req_line_tbl.FIRST;
8710 
8711       IF i IS NOT NULL
8712       THEN
8713          LOOP
8714             IF MOD (i, 2) = 1 AND
8715                i IN (1, 2)
8716             THEN
8717                -- MOD (i, 2) = 1  means its Product Line or Usage / Subscription Line
8718                x_price_details.prod_qty   :=
8719                                             lx_req_line_tbl (i).line_quantity;
8720                x_price_details.prod_qty_uom :=
8721                                             lx_req_line_tbl (i).line_uom_code;
8722                x_price_details.prod_list_unit_price :=
8723                                    ROUND (lx_req_line_tbl (i).unit_price, 29);
8724                x_price_details.prod_adj_unit_price :=
8725                           ROUND (lx_req_line_tbl (i).adjusted_unit_price, 29);
8726                x_price_details.prod_ext_amount :=
8727                   ROUND (NVL (lx_req_line_tbl (i).adjusted_unit_price,
8728                               lx_req_line_tbl (i).unit_price) *
8729                          lx_req_line_tbl (i).priced_quantity,
8730                          29);
8731 
8732                IF x_price_details.prod_ext_amount IS NULL
8733                THEN
8734                   x_price_details.prod_ext_amount := 0;
8735                END IF;
8736 
8737                x_price_details.prod_priced_qty :=
8738                                            lx_req_line_tbl (i).priced_quantity;
8739                x_price_details.prod_priced_uom :=
8740                                            lx_req_line_tbl (i).priced_uom_code;
8741 
8742                IF l_hdrtop_rec.tl_line_style IN (1, 19)
8743                THEN
8744                   x_price_details.serv_qty   :=
8745                                         lx_req_line_tbl (i +
8746                                                          1).line_quantity;
8747                   x_price_details.serv_qty_uom :=
8748                                          lx_req_line_tbl (i +
8749                                                           1).line_uom_code;
8750                   x_price_details.serv_list_unit_price :=
8751                                 ROUND (lx_req_line_tbl (i +
8752                                                         1).unit_price, 29);
8753                   x_price_details.serv_adj_unit_price :=
8754                        ROUND (lx_req_line_tbl (i +
8755                                                1).adjusted_unit_price, 29);
8756                   x_price_details.serv_priced_qty :=
8757                            ROUND (lx_req_line_tbl (i +
8758                                                    1).priced_quantity, 29);
8759                   x_price_details.serv_priced_uom :=
8760                                        lx_req_line_tbl (i +
8761                                                         1).priced_uom_code;
8762                   x_price_details.serv_ext_amount :=
8763                      ROUND (NVL (lx_req_line_tbl (i +
8764                                                   1).adjusted_unit_price,
8765                                  lx_req_line_tbl (i +
8766                                                   1).unit_price) *
8767                             lx_req_line_tbl (i).line_quantity *
8768                             lx_req_line_tbl (i +
8769                                              1).priced_quantity,
8770                             29);
8771 
8772                   IF x_price_details.serv_ext_amount IS NULL
8773                   THEN
8774                      x_price_details.serv_ext_amount := 0;
8775                   END IF;
8776                END IF;
8777 
8778                -- populate SL status text when error else TL status text
8779                IF lx_req_line_tbl (i).status_text IS NOT NULL
8780                THEN
8781                   x_price_details.status_code :=
8782                                               lx_req_line_tbl (i).status_code;
8783                   x_price_details.status_text :=
8784                                               lx_req_line_tbl (i).status_text;
8785                ELSIF l_hdrtop_rec.tl_line_style IN (1, 19)
8786                THEN
8787                   IF lx_req_line_tbl (i +
8788                                       1).status_text IS NOT NULL
8789                   THEN
8790                      x_price_details.status_code :=
8791                                           lx_req_line_tbl (i +
8792                                                            1).status_code;
8793                      x_price_details.status_text :=
8794                                            lx_req_line_tbl (i +
8795                                                             1).status_text;
8796                   END IF;
8797                END IF;
8798 
8799                -- Bug fix for 3641535. Depending on this status code, Authoring decides whether or not to call Pricebreaks form.
8800                IF NVL (x_price_details.status_code, qp_preq_grp.g_status_new) IN
8801                      (qp_preq_grp.g_status_updated,
8802                       qp_preq_grp.g_status_system_generated,
8803                       qp_preq_grp.g_by_engine,
8804                       qp_preq_grp.g_status_unchanged,
8805                       qp_preq_grp.g_status_new
8806                      )
8807                THEN
8808                   x_price_details.status_code := 'OKS_S';
8809                ELSE
8810                   x_price_details.status_code := 'OKS_E';
8811                END IF;
8812 
8813                i2                         := lx_req_line_detail_tbl.FIRST;
8814 
8815                IF i2 IS NOT NULL
8816                THEN
8817                   LOOP                                              --I2 LOOP
8818                      IF lx_req_line_detail_tbl (i2).line_index = i    AND
8819                         ((lx_req_line_detail_tbl (i2).list_line_type_code =
8820                                                                      'PLL'   AND
8821                           lx_req_line_detail_tbl (i2).applied_flag = 'Y'
8822                          )                                              OR
8823                          (lx_req_line_detail_tbl (i2).list_line_type_code =
8824                                                                      'PBH'   AND
8825                           lx_req_line_detail_tbl (i2).applied_flag = 'Y'
8826                          )
8827                         ) AND
8828                           lx_req_line_detail_tbl (i2).created_from_list_type_code IN ('PRL', 'AGR') --bug 5069673
8829                      THEN
8830                         x_price_details.prod_price_list_id :=
8831                                    lx_req_line_detail_tbl (i2).list_header_id;
8832                         x_price_details.prod_price_list_line_id :=
8833                                      lx_req_line_detail_tbl (i2).list_line_id;
8834                      ELSIF lx_req_line_detail_tbl (i2).line_index = i +
8835                                                                     1         AND
8836                            lx_req_line_detail_tbl (i2).list_line_type_code =
8837                                                                      'PLL'    AND
8838                            lx_req_line_detail_tbl (i2).applied_flag = 'Y'
8839                      THEN
8840                         x_price_details.serv_price_list_id :=
8841                                    lx_req_line_detail_tbl (i2).list_header_id;
8842                         x_price_details.serv_price_list_line_id :=
8843                                      lx_req_line_detail_tbl (i2).list_line_id;
8844                         x_price_details.serv_operand :=
8845                            ROUND (lx_req_line_detail_tbl (i2).operand_value,
8846                                   29);
8847                         x_price_details.serv_operator :=
8848                            lx_req_line_detail_tbl (i2).operand_calculation_code;
8849                      END IF;
8850 
8851                      EXIT WHEN i2 = lx_req_line_detail_tbl.LAST;
8852                      i2                         :=
8853                                               lx_req_line_detail_tbl.NEXT (i2);
8854                   END LOOP;                                     --I2 END LOOP;
8855                END IF;
8856             END IF;
8857 
8858             EXIT WHEN i = lx_req_line_tbl.LAST;
8859             i                          := lx_req_line_tbl.NEXT (i);
8860          END LOOP;
8861       END IF;
8862 
8863 --Pricing Details
8864 --**************************************************************************************************************
8865 -- SKEKKAR
8866 -- Added debug statements to print all the OUT parameter x_price_details
8867 -- bug 5069673
8868 --
8869     IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)   THEN
8870         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8871         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** OKS Price Calculations : x_price_details ******************');
8872         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8873 
8874                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.PROD_QTY : '|| x_price_details.PROD_QTY
8875                                 );
8876                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.PROD_QTY_UOM : '|| x_price_details.PROD_QTY_UOM
8877                                 );
8878                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_QTY : '|| x_price_details.SERV_QTY
8879                                 );
8880                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_QTY_UOM : '|| x_price_details.SERV_QTY_UOM
8881                                 );
8882                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.PROD_PRICE_LIST_ID : '|| x_price_details.PROD_PRICE_LIST_ID
8883                                 );
8884                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_PRICE_LIST_ID : '|| x_price_details.SERV_PRICE_LIST_ID
8885                                 );
8886                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.PROD_PRICE_LIST_LINE_ID : '|| x_price_details.PROD_PRICE_LIST_LINE_ID
8887                                 );
8888                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_PRICE_LIST_LINE_ID : '|| x_price_details.SERV_PRICE_LIST_LINE_ID
8889                                 );
8890                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.PROD_LIST_UNIT_PRICE : '|| x_price_details.PROD_LIST_UNIT_PRICE
8891                                 );
8892                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_LIST_UNIT_PRICE : '|| x_price_details.SERV_LIST_UNIT_PRICE
8893                                 );
8894                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.PROD_ADJ_UNIT_PRICE : '|| x_price_details.PROD_ADJ_UNIT_PRICE
8895                                 );
8896                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_ADJ_UNIT_PRICE : '|| x_price_details.SERV_ADJ_UNIT_PRICE
8897                                 );
8898                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.PROD_PRICED_QTY : '|| x_price_details.PROD_PRICED_QTY
8899                                 );
8900                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.PROD_PRICED_UOM : '|| x_price_details.PROD_PRICED_UOM
8901                                 );
8902                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.PROD_EXT_AMOUNT : '|| x_price_details.PROD_EXT_AMOUNT
8903                                 );
8904                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_PRICED_QTY : '|| x_price_details.SERV_PRICED_QTY
8905                                 );
8906                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_PRICED_UOM : '|| x_price_details.SERV_PRICED_UOM
8907                                 );
8908                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_EXT_AMOUNT : '|| x_price_details.SERV_EXT_AMOUNT
8909                                 );
8910                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_OPERAND : '|| x_price_details.SERV_OPERAND
8911                                 );
8912                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_OPERATOR : '|| x_price_details.SERV_OPERATOR
8913                                 );
8914                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.STATUS_CODE : '|| x_price_details.STATUS_CODE
8915                                 );
8916                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.STATUS_TEXT : '|| x_price_details.STATUS_TEXT
8917                                 );
8918 
8919         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8920         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** END OKS Price Calculations : x_price_details ******************');
8921         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8922 
8923     END IF;-- end Added debug statements to print x_price_details bug 5069673
8924 
8925       --**************************************************************************************************************
8926 --Price Breaks
8927       IF l_hdrtop_rec.tl_line_style IN (12, 46)
8928       THEN
8929          l_top_ctr                  := lx_req_related_lines_tbl.FIRST;
8930 
8931          IF l_top_ctr IS NOT NULL
8932          THEN
8933             LOOP
8934                IF lx_req_related_lines_tbl (l_top_ctr).relationship_type_code =
8935                                                        qp_preq_grp.g_pbh_line
8936                THEN
8937                   l_rel_index                :=
8938                      lx_req_related_lines_tbl (l_top_ctr).related_line_detail_index;
8939                   l_lin_index                :=
8940                        lx_req_related_lines_tbl (l_top_ctr).line_detail_index;
8941                   l_ctr                      :=
8942                                             lx_req_line_detail_attr_tbl.FIRST;
8943 
8944                   LOOP
8945                      IF lx_req_line_detail_attr_tbl (l_ctr).line_detail_index =
8946                                                                   l_rel_index
8947                      THEN
8948                         --MCHOUDHA Fix for BUG#5341559
8949                         --used fnd_number.canonical_to_number to convert the price break value_from
8950                         --into number format which is returned in canonical format by pricing engine
8951                         l_price_break_tbl (l_top_ctr).quantity_from :=
8952                            fnd_number.canonical_to_number(lx_req_line_detail_attr_tbl (l_ctr).pricing_attr_value_from);
8953                         l_price_break_tbl (l_top_ctr).quantity_to :=
8954                            fnd_number.canonical_to_number(lx_req_line_detail_attr_tbl (l_ctr).pricing_attr_value_to);
8955                      END IF;
8956 
8957                      EXIT WHEN l_ctr = lx_req_line_detail_attr_tbl.LAST;
8958                      l_ctr                      :=
8959                                       lx_req_line_detail_attr_tbl.NEXT (l_ctr);
8960                   END LOOP;
8961 
8962                   l_ctr                      := lx_req_line_detail_tbl.FIRST;
8963 
8964                   LOOP
8965                      IF lx_req_line_detail_tbl (l_ctr).line_detail_index =
8966                                                                   l_rel_index
8967                      THEN
8968                         -- skekkar forward port Bug 4534076 added 'AGR'
8969                         IF lx_req_line_detail_tbl (l_ctr).created_from_list_type_code IN
8970                                                               ('PRL', 'AGR')
8971                         THEN
8972                            -- end FP Bug 4534076
8973                            l_price_break_tbl (l_top_ctr).list_price :=
8974                                  lx_req_line_detail_tbl (l_ctr).operand_value;
8975                            l_price_break_tbl (l_top_ctr).break_method :=
8976                               lx_req_line_detail_tbl (l_ctr).price_break_type_code;
8977 
8978                            IF lx_req_line_detail_tbl (l_ctr).created_from_list_type_code =
8979                                                                         'PBH'
8980                            THEN
8981                               IF p_detail_rec.break_uom_code IS NULL
8982                               THEN
8983                                  l_price_break_tbl (l_top_ctr).break_uom_code :=
8984                                     lx_req_line_detail_tbl (l_ctr).break_uom_code;
8985                                  l_price_break_tbl (l_top_ctr).break_uom_context :=
8986                                     lx_req_line_detail_tbl (l_ctr).break_uom_context;
8987                                  l_price_break_tbl (l_top_ctr).break_uom_attribute :=
8988                                     lx_req_line_detail_tbl (l_ctr).break_uom_attribute;
8989                               ELSE
8990                                  l_price_break_tbl (l_top_ctr).break_uom_code :=
8991                                                   p_detail_rec.break_uom_code;
8992                                  l_price_break_tbl (l_top_ctr).break_uom_context :=
8993                                                                          NULL;
8994                                  l_price_break_tbl (l_top_ctr).break_uom_attribute :=
8995                                                                          NULL;
8996                               END IF;
8997                            END IF;
8998 
8999                            l_price_break_tbl (l_top_ctr).unit_price :=
9000                               NVL
9001                                  (lx_req_line_detail_tbl (l_ctr).adjustment_amount,
9002                                   lx_req_line_detail_tbl (l_ctr).list_price);
9003                            l_price_break_tbl (l_top_ctr).quantity :=
9004                                   lx_req_line_detail_tbl (l_ctr).line_quantity;
9005                            l_price_break_tbl (l_top_ctr).amount :=
9006                               l_price_break_tbl (l_top_ctr).unit_price *
9007                               l_price_break_tbl (l_top_ctr).quantity;
9008                         ELSE
9009                            l_price_break_tbl.DELETE (l_top_ctr);
9010                         END IF;
9011                      END IF;
9012 
9013                      EXIT WHEN l_ctr = lx_req_line_detail_tbl.LAST;
9014                      l_ctr                      :=
9015                                            lx_req_line_detail_tbl.NEXT (l_ctr);
9016                   END LOOP;
9017 
9018 --BREAK UOM
9019                   l_ctr                      := lx_req_line_detail_tbl.FIRST;
9020 
9021                   LOOP
9022                      IF lx_req_line_detail_tbl (l_ctr).line_detail_index =
9023                                                                   l_lin_index
9024                      THEN
9025                         -- skekkar forward port Bug 4534076 added 'AGR'
9026                         IF lx_req_line_detail_tbl (l_ctr).created_from_list_type_code IN
9027                                                               ('PRL', 'AGR')
9028                         THEN
9029                            -- end FP Bug 4534076
9030                            IF p_detail_rec.break_uom_code IS NOT NULL
9031                            THEN
9032                               l_price_break_tbl (l_top_ctr).break_uom_code :=
9033                                                   p_detail_rec.break_uom_code;
9034                               l_price_break_tbl (l_top_ctr).break_uom_context :=
9035                                                                          NULL;
9036                               l_price_break_tbl (l_top_ctr).break_uom_attribute :=
9037                                                                          NULL;
9038                            ELSE
9039                               l_price_break_tbl (l_top_ctr).break_uom_code :=
9040                                  lx_req_line_detail_tbl (l_ctr).break_uom_code;
9041                               l_price_break_tbl (l_top_ctr).break_uom_context :=
9042                                  lx_req_line_detail_tbl (l_ctr).break_uom_context;
9043                               l_price_break_tbl (l_top_ctr).break_uom_attribute :=
9044                                  lx_req_line_detail_tbl (l_ctr).break_uom_attribute;
9045                            END IF;
9046                         ELSE
9047                            l_price_break_tbl.DELETE (l_top_ctr);
9048                         END IF;
9049                      END IF;
9050 
9051                      EXIT WHEN l_ctr = lx_req_line_detail_tbl.LAST;
9052                      l_ctr                      :=
9053                                            lx_req_line_detail_tbl.NEXT (l_ctr);
9054                   END LOOP;
9055 --END BREAK UOM
9056                END IF;
9057 
9058                EXIT WHEN l_top_ctr = lx_req_related_lines_tbl.LAST;
9059                l_top_ctr                  :=
9060                                      lx_req_related_lines_tbl.NEXT (l_top_ctr);
9061             END LOOP;
9062 
9063             x_price_break_details      := l_price_break_tbl;
9064          END IF;
9065       END IF;
9066 --**************************************************************************************************************
9067    EXCEPTION
9068       WHEN fnd_api.g_exc_error
9069       THEN
9070          x_return_status            := okc_api.g_ret_sts_error;
9071 
9072          -- end debug log
9073          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9074          THEN
9075             fnd_log.STRING (fnd_log.level_procedure,
9076                             g_module ||
9077                             l_api_name,
9078                             '2000: Leaving ' ||
9079                             g_pkg_name ||
9080                             '.' ||
9081                             l_api_name
9082                            );
9083          END IF;
9084       WHEN invalid_hdr_id_exception
9085       THEN
9086          okc_api.set_message (p_app_name                         => g_app_name,
9087                               p_msg_name                         => g_invalid_value,
9088                               p_token1                           => g_col_name_token,
9089                               p_token1_value                     => 'Header ID'
9090                              );
9091 
9092          -- end debug log
9093          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9094          THEN
9095             fnd_log.STRING (fnd_log.level_procedure,
9096                             g_module ||
9097                             l_api_name,
9098                             '6000: Leaving ' ||
9099                             g_pkg_name ||
9100                             '.' ||
9101                             l_api_name
9102                            );
9103          END IF;
9104       WHEN OTHERS
9105       THEN
9106          x_return_status            := okc_api.g_ret_sts_unexp_error;
9107          okc_api.set_message (g_app_name,
9108                               g_unexpected_error,
9109                               g_sqlcode_token,
9110                               SQLCODE,
9111                               g_sqlerrm_token,
9112                               SQLERRM
9113                              );
9114 
9115          -- end debug log
9116          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9117          THEN
9118             fnd_log.STRING (fnd_log.level_procedure,
9119                             g_module ||
9120                             l_api_name,
9121                             '4000: Leaving ' ||
9122                             g_pkg_name ||
9123                             '.' ||
9124                             l_api_name
9125                            );
9126          END IF;
9127 
9128          fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
9129    END;                                            --CALC_PRICE PROCEDURE ENDS
9130 
9131    PROCEDURE delete_locked_pricebreaks (
9132       p_api_version                   IN       NUMBER,
9133       p_list_line_id                  IN       NUMBER,
9134       p_init_msg_list                 IN       VARCHAR2,
9135       x_return_status                 IN OUT NOCOPY VARCHAR2,
9136       x_msg_count                     IN OUT NOCOPY NUMBER,
9137       x_msg_data                      IN OUT NOCOPY VARCHAR2
9138    )
9139    IS
9140       gpr_return_status                       VARCHAR2 (1) := NULL;
9141       gpr_msg_count                           NUMBER := 0;
9142       gpr_msg_data                            VARCHAR2 (2000);
9143       gpr_price_list_line_tbl                 qp_price_list_pub.price_list_line_tbl_type;
9144       gpr_price_list_line_val_tbl             qp_price_list_pub.price_list_line_val_tbl_type;
9145       ppr_price_list_rec                      qp_price_list_pub.price_list_rec_type;
9146       ppr_price_list_val_rec                  qp_price_list_pub.price_list_val_rec_type;
9147       ppr_price_list_line_tbl                 qp_price_list_pub.price_list_line_tbl_type;
9148       ppr_price_list_line_val_tbl             qp_price_list_pub.price_list_line_val_tbl_type;
9149       ppr_qualifiers_tbl                      qp_qualifier_rules_pub.qualifiers_tbl_type;
9150       ppr_qualifiers_val_tbl                  qp_qualifier_rules_pub.qualifiers_val_tbl_type;
9151       ppr_pricing_attr_tbl                    qp_price_list_pub.pricing_attr_tbl_type;
9152       ppr_pricing_attr_val_tbl                qp_price_list_pub.pricing_attr_val_tbl_type;
9153       k                                       NUMBER := 1;
9154       l_api_name                     CONSTANT VARCHAR2 (30)
9155                                                := 'Delete_locked_pricebreaks';
9156    BEGIN
9157       -- start debug log
9158       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9159       THEN
9160          fnd_log.STRING (fnd_log.level_procedure,
9161                          g_module ||
9162                          l_api_name,
9163                          '100: Entered ' ||
9164                          g_pkg_name ||
9165                          '.' ||
9166                          l_api_name
9167                         );
9168       END IF;
9169 
9170        /* Populate the list_line_id (PK) of the price list line whose list_price
9171       is to be updated, the operation and the columns to be updated with the
9172       new values. All other values are not required to be populated.*/
9173       k                          := 1;
9174       gpr_price_list_line_tbl (k).list_line_id := p_list_line_id;
9175       -- Corresponds to a the item 'dw01' on Price List 'Testing 1023'
9176       gpr_price_list_line_tbl (k).operation := qp_globals.g_opr_delete;
9177       gpr_price_list_line_tbl (k).operand := 25;
9178 
9179       -- The operand column corresponds to the listprice on a pricelist line.
9180       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9181       THEN
9182          fnd_log.STRING (fnd_log.level_procedure,
9183                          g_module ||
9184                          l_api_name,
9185                          '21000:before process price list '
9186                         );
9187       END IF;
9188 
9189       --dbms_output.put_line('before process price list ');
9190       qp_price_list_pub.process_price_list
9191                     (p_api_version_number               => 1,
9192                      p_init_msg_list                    => fnd_api.g_false,
9193                      p_return_values                    => fnd_api.g_false,
9194                      p_commit                           => fnd_api.g_false,
9195                      x_return_status                    => gpr_return_status,
9196                      x_msg_count                        => gpr_msg_count,
9197                      x_msg_data                         => gpr_msg_data,
9198                      p_price_list_line_tbl              => gpr_price_list_line_tbl,
9199                      x_price_list_rec                   => ppr_price_list_rec,
9200                      x_price_list_val_rec               => ppr_price_list_val_rec,
9201                      x_price_list_line_tbl              => ppr_price_list_line_tbl,
9202                      x_price_list_line_val_tbl          => ppr_price_list_line_val_tbl,
9203                      x_qualifiers_tbl                   => ppr_qualifiers_tbl,
9204                      x_qualifiers_val_tbl               => ppr_qualifiers_val_tbl,
9205                      x_pricing_attr_tbl                 => ppr_pricing_attr_tbl,
9206                      x_pricing_attr_val_tbl             => ppr_pricing_attr_val_tbl
9207                     );
9208 
9209       IF gpr_return_status <> fnd_api.g_ret_sts_success
9210       THEN
9211          RAISE fnd_api.g_exc_unexpected_error;
9212       ELSE
9213          x_return_status            := gpr_return_status;
9214       END IF;
9215 
9216       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9217       THEN
9218          fnd_log.STRING (fnd_log.level_procedure,
9219                          g_module ||
9220                          l_api_name,
9221                          '21001:after process price list '
9222                         );
9223       END IF;
9224    --dbms_output.put_line('after process price list ');
9225    EXCEPTION
9226       WHEN fnd_api.g_exc_error
9227       THEN
9228          gpr_return_status          := fnd_api.g_ret_sts_error;
9229 
9230          --  Get message count and data
9231          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9232          THEN
9233             fnd_log.STRING (fnd_log.level_procedure,
9234                             g_module ||
9235                             l_api_name,
9236                             '22001:err msg 1 is : ' ||
9237                             gpr_msg_data
9238                            );
9239          END IF;
9240 
9241          --dbms_output.put_line('err msg 1 is : ' || gpr_msg_data);
9242 
9243          -- end debug log
9244          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9245          THEN
9246             fnd_log.STRING (fnd_log.level_procedure,
9247                             g_module ||
9248                             l_api_name,
9249                             '2000: Leaving ' ||
9250                             g_pkg_name ||
9251                             '.' ||
9252                             l_api_name
9253                            );
9254          END IF;
9255       WHEN fnd_api.g_exc_unexpected_error
9256       THEN
9257          gpr_return_status          := fnd_api.g_ret_sts_unexp_error;
9258 
9259          --dbms_output.put_line(' msg count 2 is : ' || gpr_msg_count);
9260 
9261          /*   for k in 1 .. gpr_msg_count loop
9262             gpr_msg_data := oe_msg_pub.get( p_msg_index => k,
9263                 p_encoded => 'F'
9264                       );
9265                    oe_msg_pub.Count_And_Get
9266              (   p_count                       => gpr_msg_count
9267              ,   p_data                        => gpr_msg_data
9268              );
9269 
9270                 --  Get message count and data
9271                 --dbms_output.put_line('err msg ' || k ||'is:  ' || gpr_msg_data);
9272                   null;
9273             end loop; */
9274 
9275          -- end debug log
9276          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9277          THEN
9278             fnd_log.STRING (fnd_log.level_procedure,
9279                             g_module ||
9280                             l_api_name,
9281                             '3000: Leaving ' ||
9282                             g_pkg_name ||
9283                             '.' ||
9284                             l_api_name
9285                            );
9286          END IF;
9287       WHEN OTHERS
9288       THEN
9289          gpr_return_status          := fnd_api.g_ret_sts_unexp_error;
9290 
9291                --  Get message count and data
9292                --dbms_output.put_line('err msg 3 is : ' || gpr_msg_data);
9293          -- end debug log
9294          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9295          THEN
9296             fnd_log.STRING (fnd_log.level_procedure,
9297                             g_module ||
9298                             l_api_name,
9299                             '4000: Leaving ' ||
9300                             g_pkg_name ||
9301                             '.' ||
9302                             l_api_name
9303                            );
9304          END IF;
9305 
9306          fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
9307    END;
9308 END oks_qp_pkg;