DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_QP_PKG

Source


1 PACKAGE BODY oks_qp_pkg AS
2 /* $Header: OKSRAQPB.pls 120.17.12020000.3 2013/02/01 05:54:49 spingali 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 (lx_req_line_detail_tbl (i).list_line_type_code IN('DIS','SUR','PBH') AND lx_req_line_detail_tbl (i).CREATED_FROM_LIST_TYPE_CODE <>'PRL' )   /*Modified IF Condition for bug 10281285*/
8568                THEN
8569                   IF (lx_req_line_detail_tbl (i).line_index = 1 AND
8570                       l_hdrtop_rec.tl_line_style IN (12, 46)
8571                      )                                              OR
8572                      (lx_req_line_detail_tbl (i).line_index = 2 AND
8573                       l_hdrtop_rec.tl_line_style IN (1, 19)
8574                      )
8575 --Or       (lx_req_line_detail_tbl(I).line_index          = 2 and l_hdrtop_rec.tl_line_style = 46 and
8576 --          lx_req_line_detail_tbl(I).modifier_level_code = 'ORDER'                                    ) Or
8577 --         (lx_req_line_detail_tbl(I).line_index          = 3 and l_hdrtop_rec.tl_line_style in (1,19) and
8578 --          lx_req_line_detail_tbl(I).modifier_level_code = 'ORDER'                                    )
8579                   THEN
8580                      x_modifier_details (i)     := lx_req_line_detail_tbl (i);
8581                   END IF;                                   --line_style Check
8582                END IF;                                         --DIS/SUR check
8583 
8584                EXIT WHEN i = lx_req_line_detail_tbl.LAST;
8585                i                          := lx_req_line_detail_tbl.NEXT (i);
8586             END LOOP;
8587          END IF;                                         --End of I loop Check
8588 
8589          l_return_status            := NULL;
8590 
8591          IF l_hdrtop_rec.tl_line_style = 46
8592          THEN
8593             modifier_handling (p_cle_id                           => p_detail_rec.line_id,
8594                                p_modifier_details                 => x_modifier_details,
8595                                x_return_status                    => l_return_status
8596                               );
8597 
8598             IF l_return_status <> 'S'
8599             THEN
8600                okc_api.set_message (g_app_name,
8601                                     g_required_value,
8602                                     g_col_name_token,
8603                                     'Modifier Creation Error - Subscription '
8604                                    );
8605                RAISE fnd_api.g_exc_error;
8606             END IF;
8607          ELSIF l_hdrtop_rec.tl_line_style = 12
8608          THEN
8609             modifier_4_usg (p_bsl_id                           => p_detail_rec.bsl_id,
8610                             p_modifier_details                 => x_modifier_details,
8611                             x_return_status                    => l_return_status
8612                            );
8613 
8614             IF l_return_status <> 'S'
8615             THEN
8616                okc_api.set_message (g_app_name,
8617                                     g_required_value,
8618                                     g_col_name_token,
8619                                     'Modifier Creation Error - Usage'
8620                                    );
8621                RAISE fnd_api.g_exc_error;
8622             END IF;
8623          ELSIF l_hdrtop_rec.tl_line_style IN (1, 19)
8624          THEN
8625             modifier_handling (p_cle_id                           => p_detail_rec.subline_id,
8626                                p_modifier_details                 => x_modifier_details,
8627                                x_return_status                    => l_return_status
8628                               );
8629 
8630             IF l_return_status <> 'S'
8631             THEN
8632                okc_api.set_message
8633                                (g_app_name,
8634                                 g_required_value,
8635                                 g_col_name_token,
8636                                 'Modifier Creation Error - Service/Warranty '
8637                                );
8638                RAISE fnd_api.g_exc_error;
8639             END IF;
8640          END IF;
8641       END IF;                                   --Apply Modifiers Intent Check
8642 
8643 --APPLY MODIFIERS --END
8644 --**************************************************************************************************************
8645 
8646       --**************************************************************************************************************
8647 --Modifiers
8648 -- below modifiers will be used to build the dynamic LOV in Adjustments form
8649 -- HM : Header Adjustment, LM: Line Adjustment, SM : Subline Adjustment
8650 -- At Header and Subline, override modifiers are Allowed, while at Line override modifier
8651 -- are NOT allowed as Line Price is protected from update
8652 -- Even for Sublines, intent will be SM BUT we look at the modifier at line_index = 2 i.e
8653 -- modifier for service for product
8654 
8655       IF NVL (p_detail_rec.intent, 'JA') IN ('HM', 'LM', 'SM')
8656       THEN
8657          i                          := lx_req_line_detail_tbl.FIRST;
8658 
8659          IF i IS NOT NULL
8660          THEN
8661             LOOP
8662                IF (NVL (p_detail_rec.intent, 'JA') = 'HM'         OR
8663                    (lx_req_line_detail_tbl (i).line_index = 2 AND
8664                     l_hdrtop_rec.tl_line_style IN (1, 19)
8665                    )                                              OR
8666                    (lx_req_line_detail_tbl (i).line_index = 1 AND
8667                     l_hdrtop_rec.tl_line_style IN (12, 46)
8668                    )
8669                   )                                                   AND
8670                   lx_req_line_detail_tbl (i).list_line_type_code IN
8671                                                            ('DIS', 'SUR') AND
8672                   lx_req_line_detail_tbl (i).automatic_flag <> 'Y'
8673                THEN
8674                   IF NVL (p_detail_rec.intent, 'JA') = 'LM'
8675                   THEN
8676                     -- At Line Level, Only modifiers allowed are with override_flag as N
8677                      IF NVL (lx_req_line_detail_tbl (i).override_flag, 'N') =
8678                                                                           'N'
8679                      THEN
8680                         x_modifier_details (i)     :=
8681                                                    lx_req_line_detail_tbl (i);
8682                      ELSE
8683                         -- either HM or SM
8684                         IF l_hdrtop_rec.tl_line_style IN (46, 12)
8685                         THEN
8686                            x_modifier_details (i)     :=
8687                                                    lx_req_line_detail_tbl (i);
8688                         END IF;
8689                      END IF;
8690                   ELSE
8691                      x_modifier_details (i)     := lx_req_line_detail_tbl (i);
8692                   END IF;
8693                END IF;
8694 
8695                EXIT WHEN i = lx_req_line_detail_tbl.LAST;
8696                i                          := lx_req_line_detail_tbl.NEXT (i);
8697             END LOOP;
8698          END IF;
8699       END IF;
8700 
8701 --End For ('HM','LM','SM') Check
8702 --**************************************************************************************************************
8703 
8704       --**************************************************************************************************************
8705 --Pricing Details
8706       i                          := lx_req_line_tbl.FIRST;
8707 
8708       IF i IS NOT NULL
8709       THEN
8710          LOOP
8711             IF MOD (i, 2) = 1 AND
8712                i IN (1, 2)
8713             THEN
8714                -- MOD (i, 2) = 1  means its Product Line or Usage / Subscription Line
8715                x_price_details.prod_qty   :=
8716                                             lx_req_line_tbl (i).line_quantity;
8717                x_price_details.prod_qty_uom :=
8718                                             lx_req_line_tbl (i).line_uom_code;
8719               If nvl(FND_PROFILE.value('OKS_PRICE_ROUNDING'),'N') ='N' THEN     /*Added for GSI bug 14102072 */
8720                x_price_details.prod_list_unit_price :=
8721                                    ROUND (lx_req_line_tbl (i).unit_price, 29);
8722                x_price_details.prod_adj_unit_price :=
8723                           ROUND (lx_req_line_tbl (i).adjusted_unit_price, 29);
8724                x_price_details.prod_ext_amount :=
8725                   ROUND (NVL (lx_req_line_tbl (i).adjusted_unit_price,
8726                               lx_req_line_tbl (i).unit_price) *
8727                          lx_req_line_tbl (i).priced_quantity,
8728                          29);
8729 /*Added for GSI bug 14102072 */
8730              Else
8731              x_price_details.prod_list_unit_price := OKS_EXTWAR_UTIL_PVT.round_currency_amt(lx_req_line_tbl (i).unit_price,l_currency);
8732              x_price_details.prod_adj_unit_price := OKS_EXTWAR_UTIL_PVT.round_currency_amt(lx_req_line_tbl (i).adjusted_unit_price,l_currency);
8733              x_price_details.prod_ext_amount := OKS_EXTWAR_UTIL_PVT.round_currency_amt((NVL (lx_req_line_tbl (i).adjusted_unit_price,lx_req_line_tbl (i).unit_price) * lx_req_line_tbl (i).priced_quantity),l_currency);
8734             End if;
8735 /*Added for GSI bug 14102072 */
8736 
8737                IF x_price_details.prod_ext_amount IS NULL
8738                THEN
8739                   x_price_details.prod_ext_amount := 0;
8740                END IF;
8741 
8742                x_price_details.prod_priced_qty :=
8743                                            lx_req_line_tbl (i).priced_quantity;
8744                x_price_details.prod_priced_uom :=
8745                                            lx_req_line_tbl (i).priced_uom_code;
8746 
8747                IF l_hdrtop_rec.tl_line_style IN (1, 19)
8748                THEN
8749                   x_price_details.serv_qty   :=
8750                                         lx_req_line_tbl (i +
8751                                                          1).line_quantity;
8752                   x_price_details.serv_qty_uom :=
8753                                          lx_req_line_tbl (i +
8754                                                           1).line_uom_code;
8755 
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    /*Added for GSI bug 14102072 */
8763 If nvl(FND_PROFILE.value('OKS_PRICE_ROUNDING'),'N') ='N' THEN
8764                   x_price_details.serv_list_unit_price :=
8765                                 ROUND (lx_req_line_tbl (i +
8766                                                         1).unit_price, 29);
8767                   x_price_details.serv_adj_unit_price :=
8768                        ROUND (lx_req_line_tbl (i +
8769                                                1).adjusted_unit_price, 29);
8770                   x_price_details.serv_ext_amount :=
8771                      ROUND (NVL (lx_req_line_tbl (i +
8772                                                   1).adjusted_unit_price,
8773                                  lx_req_line_tbl (i +
8774                                                   1).unit_price) *
8775                             lx_req_line_tbl (i).line_quantity *
8776                             lx_req_line_tbl (i +
8777                                              1).priced_quantity,
8778                             29);
8779 ELSE
8780 x_price_details.serv_list_unit_price := OKS_EXTWAR_UTIL_PVT.round_currency_amt(lx_req_line_tbl (i +1).unit_price,l_currency);
8781 x_price_details.serv_adj_unit_price := OKS_EXTWAR_UTIL_PVT.round_currency_amt(lx_req_line_tbl (i + 1 ).adjusted_unit_price,l_currency);
8782 x_price_details.serv_ext_amount := OKS_EXTWAR_UTIL_PVT.round_currency_amt((NVL (lx_req_line_tbl (i + 1).adjusted_unit_price,lx_req_line_tbl (i +1).unit_price) *
8783 lx_req_line_tbl (i).line_quantity * lx_req_line_tbl (i + 1 ).priced_quantity),l_currency);
8784 End if;
8785 /*Added for GSI Bug 14102072 */
8786                   IF x_price_details.serv_ext_amount IS NULL
8787                   THEN
8788                      x_price_details.serv_ext_amount := 0;
8789                   END IF;
8790                END IF;
8791 
8792                -- populate SL status text when error else TL status text
8793                IF lx_req_line_tbl (i).status_text IS NOT NULL
8794                THEN
8795                   x_price_details.status_code :=
8796                                               lx_req_line_tbl (i).status_code;
8797                   x_price_details.status_text :=
8798                                               lx_req_line_tbl (i).status_text;
8799                ELSIF l_hdrtop_rec.tl_line_style IN (1, 19)
8800                THEN
8801                   IF lx_req_line_tbl (i +
8802                                       1).status_text IS NOT NULL
8803                   THEN
8804                      x_price_details.status_code :=
8805                                           lx_req_line_tbl (i +
8806                                                            1).status_code;
8807                      x_price_details.status_text :=
8808                                            lx_req_line_tbl (i +
8809                                                             1).status_text;
8810                   END IF;
8811                END IF;
8812 
8813                -- Bug fix for 3641535. Depending on this status code, Authoring decides whether or not to call Pricebreaks form.
8814                IF NVL (x_price_details.status_code, qp_preq_grp.g_status_new) IN
8815                      (qp_preq_grp.g_status_updated,
8816                       qp_preq_grp.g_status_system_generated,
8817                       qp_preq_grp.g_by_engine,
8818                       qp_preq_grp.g_status_unchanged,
8819                       qp_preq_grp.g_status_new
8820                      )
8821                THEN
8822                   x_price_details.status_code := 'OKS_S';
8823                ELSE
8824                   x_price_details.status_code := 'OKS_E';
8825                END IF;
8826 
8827 
8828       /*added for bug 9927490*/
8829 
8830             IF x_price_details.status_code = 'OKS_E' AND
8831                lx_req_line_tbl (i).status_code ='DUPLICATE_PRICE_LIST' THEN
8832                   x_price_details.status_code := 'OKS_DUPLICATE_PRICE_LIST_LINES';
8833             END IF;
8834       /*Added for bug 9927490*/
8835 
8836                i2                         := lx_req_line_detail_tbl.FIRST;
8837 
8838                IF i2 IS NOT NULL
8839                THEN
8840                   LOOP                                              --I2 LOOP
8841                      IF lx_req_line_detail_tbl (i2).line_index = i    AND
8842                         ((lx_req_line_detail_tbl (i2).list_line_type_code =
8843                                                                      'PLL'   AND
8844                           lx_req_line_detail_tbl (i2).applied_flag = 'Y'
8845                          )                                              OR
8846                          (lx_req_line_detail_tbl (i2).list_line_type_code =
8847                                                                      'PBH'   AND
8848                           lx_req_line_detail_tbl (i2).applied_flag = 'Y'
8849                          )
8850                         ) AND
8851                           lx_req_line_detail_tbl (i2).created_from_list_type_code IN ('PRL', 'AGR') --bug 5069673
8852                      THEN
8853                         x_price_details.prod_price_list_id :=
8854                                    lx_req_line_detail_tbl (i2).list_header_id;
8855                         x_price_details.prod_price_list_line_id :=
8856                                      lx_req_line_detail_tbl (i2).list_line_id;
8857                      ELSIF lx_req_line_detail_tbl (i2).line_index = i +
8858                                                                     1         AND
8859                            lx_req_line_detail_tbl (i2).list_line_type_code =
8860                                                                      'PLL'    AND
8861                            lx_req_line_detail_tbl (i2).applied_flag = 'Y'
8862                      THEN
8863                         x_price_details.serv_price_list_id :=
8864                                    lx_req_line_detail_tbl (i2).list_header_id;
8865                         x_price_details.serv_price_list_line_id :=
8866                                      lx_req_line_detail_tbl (i2).list_line_id;
8867                         x_price_details.serv_operand :=
8868                            ROUND (lx_req_line_detail_tbl (i2).operand_value,
8869                                   29);
8870                         x_price_details.serv_operator :=
8871                            lx_req_line_detail_tbl (i2).operand_calculation_code;
8872                      END IF;
8873 
8874                      EXIT WHEN i2 = lx_req_line_detail_tbl.LAST;
8875                      i2                         :=
8876                                               lx_req_line_detail_tbl.NEXT (i2);
8877                   END LOOP;                                     --I2 END LOOP;
8878                END IF;
8879             END IF;
8880 
8881             EXIT WHEN i = lx_req_line_tbl.LAST;
8882             i                          := lx_req_line_tbl.NEXT (i);
8883          END LOOP;
8884       END IF;
8885 
8886 --Pricing Details
8887 --**************************************************************************************************************
8888 -- SKEKKAR
8889 -- Added debug statements to print all the OUT parameter x_price_details
8890 -- bug 5069673
8891 --
8892     IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)   THEN
8893         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8894         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** OKS Price Calculations : x_price_details ******************');
8895         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8896 
8897                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.PROD_QTY : '|| x_price_details.PROD_QTY
8898                                 );
8899                 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
8900                                 );
8901                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_QTY : '|| x_price_details.SERV_QTY
8902                                 );
8903                 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
8904                                 );
8905                 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
8906                                 );
8907                 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
8908                                 );
8909                 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
8910                                 );
8911                 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
8912                                 );
8913                 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
8914                                 );
8915                 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
8916                                 );
8917                 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
8918                                 );
8919                 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
8920                                 );
8921                 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
8922                                 );
8923                 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
8924                                 );
8925                 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
8926                                 );
8927                 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
8928                                 );
8929                 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
8930                                 );
8931                 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
8932                                 );
8933                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_OPERAND : '|| x_price_details.SERV_OPERAND
8934                                 );
8935                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_OPERATOR : '|| x_price_details.SERV_OPERATOR
8936                                 );
8937                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.STATUS_CODE : '|| x_price_details.STATUS_CODE
8938                                 );
8939                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.STATUS_TEXT : '|| x_price_details.STATUS_TEXT
8940                                 );
8941 
8942         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8943         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** END OKS Price Calculations : x_price_details ******************');
8944         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
8945 
8946     END IF;-- end Added debug statements to print x_price_details bug 5069673
8947 
8948       --**************************************************************************************************************
8949 --Price Breaks
8950       IF l_hdrtop_rec.tl_line_style IN (12, 46)
8951       THEN
8952          l_top_ctr                  := lx_req_related_lines_tbl.FIRST;
8953 
8954          IF l_top_ctr IS NOT NULL
8955          THEN
8956             LOOP
8957                IF lx_req_related_lines_tbl (l_top_ctr).relationship_type_code =
8958                                                        qp_preq_grp.g_pbh_line
8959                THEN
8960                   l_rel_index                :=
8961                      lx_req_related_lines_tbl (l_top_ctr).related_line_detail_index;
8962                   l_lin_index                :=
8963                        lx_req_related_lines_tbl (l_top_ctr).line_detail_index;
8964                   l_ctr                      :=
8965                                             lx_req_line_detail_attr_tbl.FIRST;
8966 
8967                   LOOP
8968                      IF lx_req_line_detail_attr_tbl (l_ctr).line_detail_index =
8969                                                                   l_rel_index
8970                      THEN
8971                         --MCHOUDHA Fix for BUG#5341559
8972                         --used fnd_number.canonical_to_number to convert the price break value_from
8973                         --into number format which is returned in canonical format by pricing engine
8974                         l_price_break_tbl (l_top_ctr).quantity_from :=
8975                            fnd_number.canonical_to_number(lx_req_line_detail_attr_tbl (l_ctr).pricing_attr_value_from);
8976                         l_price_break_tbl (l_top_ctr).quantity_to :=
8977                            fnd_number.canonical_to_number(lx_req_line_detail_attr_tbl (l_ctr).pricing_attr_value_to);
8978                      END IF;
8979 
8980                      EXIT WHEN l_ctr = lx_req_line_detail_attr_tbl.LAST;
8981                      l_ctr                      :=
8982                                       lx_req_line_detail_attr_tbl.NEXT (l_ctr);
8983                   END LOOP;
8984 
8985                   l_ctr                      := lx_req_line_detail_tbl.FIRST;
8986 
8987                   LOOP
8988                      IF lx_req_line_detail_tbl (l_ctr).line_detail_index =
8989                                                                   l_rel_index
8990                      THEN
8991                         -- skekkar forward port Bug 4534076 added 'AGR'
8992                         IF lx_req_line_detail_tbl (l_ctr).created_from_list_type_code IN
8993                                                               ('PRL', 'AGR')
8994                         THEN
8995                            -- end FP Bug 4534076
8996                            l_price_break_tbl (l_top_ctr).list_price :=
8997                                  lx_req_line_detail_tbl (l_ctr).operand_value;
8998                            l_price_break_tbl (l_top_ctr).break_method :=
8999                               lx_req_line_detail_tbl (l_ctr).price_break_type_code;
9000 
9001                            IF lx_req_line_detail_tbl (l_ctr).created_from_list_type_code =
9002                                                                         'PBH'
9003                            THEN
9004                               IF p_detail_rec.break_uom_code IS NULL
9005                               THEN
9006                                  l_price_break_tbl (l_top_ctr).break_uom_code :=
9007                                     lx_req_line_detail_tbl (l_ctr).break_uom_code;
9008                                  l_price_break_tbl (l_top_ctr).break_uom_context :=
9009                                     lx_req_line_detail_tbl (l_ctr).break_uom_context;
9010                                  l_price_break_tbl (l_top_ctr).break_uom_attribute :=
9011                                     lx_req_line_detail_tbl (l_ctr).break_uom_attribute;
9012                               ELSE
9013                                  l_price_break_tbl (l_top_ctr).break_uom_code :=
9014                                                   p_detail_rec.break_uom_code;
9015                                  l_price_break_tbl (l_top_ctr).break_uom_context :=
9016                                                                          NULL;
9017                                  l_price_break_tbl (l_top_ctr).break_uom_attribute :=
9018                                                                          NULL;
9019                               END IF;
9020                            END IF;
9021 
9022                            l_price_break_tbl (l_top_ctr).unit_price :=
9023                               NVL
9024                                  (lx_req_line_detail_tbl (l_ctr).adjustment_amount,
9025                                   lx_req_line_detail_tbl (l_ctr).list_price);
9026                            l_price_break_tbl (l_top_ctr).quantity :=
9027                                   lx_req_line_detail_tbl (l_ctr).line_quantity;
9028 /*Added for bug:8884393*/ IF (lx_req_line_detail_tbl(l_ctr).OPERAND_CALCULATION_CODE='BLOCK_PRICE') AND (l_hdrtop_rec.tl_line_style = 12) THEN
9029                               l_price_break_tbl (l_top_ctr).amount :=
9030                               l_price_break_tbl (l_top_ctr).unit_price;
9031                           else
9032                                l_price_break_tbl (l_top_ctr).amount :=
9033                               l_price_break_tbl (l_top_ctr).unit_price *
9034                               l_price_break_tbl (l_top_ctr).quantity;
9035                           END IF;
9036                           /* l_price_break_tbl (l_top_ctr).amount :=
9037                               l_price_break_tbl (l_top_ctr).unit_price *
9038                               l_price_break_tbl (l_top_ctr).quantity;*/
9039                         ELSE
9040                            l_price_break_tbl.DELETE (l_top_ctr);
9041                         END IF;
9042                      END IF;
9043 
9044                      EXIT WHEN l_ctr = lx_req_line_detail_tbl.LAST;
9045                      l_ctr                      :=
9046                                            lx_req_line_detail_tbl.NEXT (l_ctr);
9047                   END LOOP;
9048 
9049 --BREAK UOM
9050                   l_ctr                      := lx_req_line_detail_tbl.FIRST;
9051 
9052                   LOOP
9053                      IF lx_req_line_detail_tbl (l_ctr).line_detail_index =
9054                                                                   l_lin_index
9055                      THEN
9056                         -- skekkar forward port Bug 4534076 added 'AGR'
9057                         IF lx_req_line_detail_tbl (l_ctr).created_from_list_type_code IN
9058                                                               ('PRL', 'AGR')
9059                         THEN
9060                            -- end FP Bug 4534076
9061                            IF p_detail_rec.break_uom_code IS NOT NULL
9062                            THEN
9063                               l_price_break_tbl (l_top_ctr).break_uom_code :=
9064                                                   p_detail_rec.break_uom_code;
9065                               l_price_break_tbl (l_top_ctr).break_uom_context :=
9066                                                                          NULL;
9067                               l_price_break_tbl (l_top_ctr).break_uom_attribute :=
9068                                                                          NULL;
9069                            ELSE
9070                               l_price_break_tbl (l_top_ctr).break_uom_code :=
9071                                  lx_req_line_detail_tbl (l_ctr).break_uom_code;
9072                               l_price_break_tbl (l_top_ctr).break_uom_context :=
9073                                  lx_req_line_detail_tbl (l_ctr).break_uom_context;
9074                               l_price_break_tbl (l_top_ctr).break_uom_attribute :=
9075                                  lx_req_line_detail_tbl (l_ctr).break_uom_attribute;
9076                            END IF;
9077                         ELSE
9078                            l_price_break_tbl.DELETE (l_top_ctr);
9079                         END IF;
9080                      END IF;
9081 
9082                      EXIT WHEN l_ctr = lx_req_line_detail_tbl.LAST;
9083                      l_ctr                      :=
9084                                            lx_req_line_detail_tbl.NEXT (l_ctr);
9085                   END LOOP;
9086 --END BREAK UOM
9087                END IF;
9088 
9089                EXIT WHEN l_top_ctr = lx_req_related_lines_tbl.LAST;
9090                l_top_ctr                  :=
9091                                      lx_req_related_lines_tbl.NEXT (l_top_ctr);
9092             END LOOP;
9093 
9094             x_price_break_details      := l_price_break_tbl;
9095          END IF;
9096       END IF;
9097 --**************************************************************************************************************
9098    EXCEPTION
9099       WHEN fnd_api.g_exc_error
9100       THEN
9101          x_return_status            := okc_api.g_ret_sts_error;
9102 
9103          -- end debug log
9104          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9105          THEN
9106             fnd_log.STRING (fnd_log.level_procedure,
9107                             g_module ||
9108                             l_api_name,
9109                             '2000: Leaving ' ||
9110                             g_pkg_name ||
9111                             '.' ||
9112                             l_api_name
9113                            );
9114          END IF;
9115       WHEN invalid_hdr_id_exception
9116       THEN
9117          okc_api.set_message (p_app_name                         => g_app_name,
9118                               p_msg_name                         => g_invalid_value,
9119                               p_token1                           => g_col_name_token,
9120                               p_token1_value                     => 'Header ID'
9121                              );
9122 
9123          -- end debug log
9124          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9125          THEN
9126             fnd_log.STRING (fnd_log.level_procedure,
9127                             g_module ||
9128                             l_api_name,
9129                             '6000: Leaving ' ||
9130                             g_pkg_name ||
9131                             '.' ||
9132                             l_api_name
9133                            );
9134          END IF;
9135       WHEN OTHERS
9136       THEN
9137          x_return_status            := okc_api.g_ret_sts_unexp_error;
9138          okc_api.set_message (g_app_name,
9139                               g_unexpected_error,
9140                               g_sqlcode_token,
9141                               SQLCODE,
9142                               g_sqlerrm_token,
9143                               SQLERRM
9144                              );
9145 
9146          -- end debug log
9147          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9148          THEN
9149             fnd_log.STRING (fnd_log.level_procedure,
9150                             g_module ||
9151                             l_api_name,
9152                             '4000: Leaving ' ||
9153                             g_pkg_name ||
9154                             '.' ||
9155                             l_api_name
9156                            );
9157          END IF;
9158 
9159          fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
9160    END;                                            --CALC_PRICE PROCEDURE ENDS
9161 
9162    PROCEDURE delete_locked_pricebreaks (
9163       p_api_version                   IN       NUMBER,
9164       p_list_line_id                  IN       NUMBER,
9165       p_init_msg_list                 IN       VARCHAR2,
9166       x_return_status                 IN OUT NOCOPY VARCHAR2,
9167       x_msg_count                     IN OUT NOCOPY NUMBER,
9168       x_msg_data                      IN OUT NOCOPY VARCHAR2
9169    )
9170    IS
9171       gpr_return_status                       VARCHAR2 (1) := NULL;
9172       gpr_msg_count                           NUMBER := 0;
9173       gpr_msg_data                            VARCHAR2 (2000);
9174       gpr_price_list_line_tbl                 qp_price_list_pub.price_list_line_tbl_type;
9175       gpr_price_list_line_val_tbl             qp_price_list_pub.price_list_line_val_tbl_type;
9176       ppr_price_list_rec                      qp_price_list_pub.price_list_rec_type;
9177       ppr_price_list_val_rec                  qp_price_list_pub.price_list_val_rec_type;
9178       ppr_price_list_line_tbl                 qp_price_list_pub.price_list_line_tbl_type;
9179       ppr_price_list_line_val_tbl             qp_price_list_pub.price_list_line_val_tbl_type;
9180       ppr_qualifiers_tbl                      qp_qualifier_rules_pub.qualifiers_tbl_type;
9181       ppr_qualifiers_val_tbl                  qp_qualifier_rules_pub.qualifiers_val_tbl_type;
9182       ppr_pricing_attr_tbl                    qp_price_list_pub.pricing_attr_tbl_type;
9183       ppr_pricing_attr_val_tbl                qp_price_list_pub.pricing_attr_val_tbl_type;
9184       k                                       NUMBER := 1;
9185       l_api_name                     CONSTANT VARCHAR2 (30)
9186                                                := 'Delete_locked_pricebreaks';
9187    BEGIN
9188       -- start debug log
9189       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9190       THEN
9191          fnd_log.STRING (fnd_log.level_procedure,
9192                          g_module ||
9193                          l_api_name,
9194                          '100: Entered ' ||
9195                          g_pkg_name ||
9196                          '.' ||
9197                          l_api_name
9198                         );
9199       END IF;
9200 
9201        /* Populate the list_line_id (PK) of the price list line whose list_price
9202       is to be updated, the operation and the columns to be updated with the
9203       new values. All other values are not required to be populated.*/
9204       k                          := 1;
9205       gpr_price_list_line_tbl (k).list_line_id := p_list_line_id;
9206       -- Corresponds to a the item 'dw01' on Price List 'Testing 1023'
9207       gpr_price_list_line_tbl (k).operation := qp_globals.g_opr_delete;
9208       gpr_price_list_line_tbl (k).operand := 25;
9209 
9210       -- The operand column corresponds to the listprice on a pricelist line.
9211       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9212       THEN
9213          fnd_log.STRING (fnd_log.level_procedure,
9214                          g_module ||
9215                          l_api_name,
9216                          '21000:before process price list '
9217                         );
9218       END IF;
9219 
9220       --dbms_output.put_line('before process price list ');
9221       qp_price_list_pub.process_price_list
9222                     (p_api_version_number               => 1,
9223                      p_init_msg_list                    => fnd_api.g_false,
9224                      p_return_values                    => fnd_api.g_false,
9225                      p_commit                           => fnd_api.g_false,
9226                      x_return_status                    => gpr_return_status,
9227                      x_msg_count                        => gpr_msg_count,
9228                      x_msg_data                         => gpr_msg_data,
9229                      p_price_list_line_tbl              => gpr_price_list_line_tbl,
9230                      x_price_list_rec                   => ppr_price_list_rec,
9231                      x_price_list_val_rec               => ppr_price_list_val_rec,
9232                      x_price_list_line_tbl              => ppr_price_list_line_tbl,
9233                      x_price_list_line_val_tbl          => ppr_price_list_line_val_tbl,
9234                      x_qualifiers_tbl                   => ppr_qualifiers_tbl,
9235                      x_qualifiers_val_tbl               => ppr_qualifiers_val_tbl,
9236                      x_pricing_attr_tbl                 => ppr_pricing_attr_tbl,
9237                      x_pricing_attr_val_tbl             => ppr_pricing_attr_val_tbl
9238                     );
9239 
9240       IF gpr_return_status <> fnd_api.g_ret_sts_success
9241       THEN
9242          RAISE fnd_api.g_exc_unexpected_error;
9243       ELSE
9244          x_return_status            := gpr_return_status;
9245       END IF;
9246 
9247       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9248       THEN
9249          fnd_log.STRING (fnd_log.level_procedure,
9250                          g_module ||
9251                          l_api_name,
9252                          '21001:after process price list '
9253                         );
9254       END IF;
9255    --dbms_output.put_line('after process price list ');
9256    EXCEPTION
9257       WHEN fnd_api.g_exc_error
9258       THEN
9259          gpr_return_status          := fnd_api.g_ret_sts_error;
9260 
9261          --  Get message count and data
9262          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9263          THEN
9264             fnd_log.STRING (fnd_log.level_procedure,
9265                             g_module ||
9266                             l_api_name,
9267                             '22001:err msg 1 is : ' ||
9268                             gpr_msg_data
9269                            );
9270          END IF;
9271 
9272          --dbms_output.put_line('err msg 1 is : ' || gpr_msg_data);
9273 
9274          -- end debug log
9275          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9276          THEN
9277             fnd_log.STRING (fnd_log.level_procedure,
9278                             g_module ||
9279                             l_api_name,
9280                             '2000: Leaving ' ||
9281                             g_pkg_name ||
9282                             '.' ||
9283                             l_api_name
9284                            );
9285          END IF;
9286       WHEN fnd_api.g_exc_unexpected_error
9287       THEN
9288          gpr_return_status          := fnd_api.g_ret_sts_unexp_error;
9289 
9290          --dbms_output.put_line(' msg count 2 is : ' || gpr_msg_count);
9291 
9292          /*   for k in 1 .. gpr_msg_count loop
9293             gpr_msg_data := oe_msg_pub.get( p_msg_index => k,
9294                 p_encoded => 'F'
9295                       );
9296                    oe_msg_pub.Count_And_Get
9297              (   p_count                       => gpr_msg_count
9298              ,   p_data                        => gpr_msg_data
9299              );
9300 
9301                 --  Get message count and data
9302                 --dbms_output.put_line('err msg ' || k ||'is:  ' || gpr_msg_data);
9303                   null;
9304             end loop; */
9305 
9306          -- end debug log
9307          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9308          THEN
9309             fnd_log.STRING (fnd_log.level_procedure,
9310                             g_module ||
9311                             l_api_name,
9312                             '3000: Leaving ' ||
9313                             g_pkg_name ||
9314                             '.' ||
9315                             l_api_name
9316                            );
9317          END IF;
9318       WHEN OTHERS
9319       THEN
9320          gpr_return_status          := fnd_api.g_ret_sts_unexp_error;
9321 
9322                --  Get message count and data
9323                --dbms_output.put_line('err msg 3 is : ' || gpr_msg_data);
9324          -- end debug log
9325          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9326          THEN
9327             fnd_log.STRING (fnd_log.level_procedure,
9328                             g_module ||
9329                             l_api_name,
9330                             '4000: Leaving ' ||
9331                             g_pkg_name ||
9332                             '.' ||
9333                             l_api_name
9334                            );
9335          END IF;
9336 
9337          fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
9338    END;
9339 
9340 /*skuchima Proceure to do preprocessing before QP call Bug:7539977 */
9341 PROCEDURE calc_price_pre (
9342                 p_detail_rec                    IN       input_details,
9343                 l_control_rec  OUT NOCOPY qp_preq_grp.control_record_type,
9344                 l_req_line_tbl OUT NOCOPY qp_preq_grp.line_tbl_type,
9345                 l_req_qual_tbl OUT NOCOPY qp_preq_grp.qual_tbl_type,
9346                 l_req_line_attr_tbl OUT NOCOPY qp_preq_grp.line_attr_tbl_type,
9347                 l_req_line_detail_tbl OUT NOCOPY qp_preq_grp.line_detail_tbl_type,
9348                 l_req_line_detail_qual_tbl OUT NOCOPY qp_preq_grp.line_detail_qual_tbl_type,
9349                 l_req_line_detail_attr_tbl OUT NOCOPY qp_preq_grp.line_detail_attr_tbl_type,
9350                 l_req_related_lines_tbl OUT NOCOPY qp_preq_grp.related_lines_tbl_type,
9351                 x_return_status         OUT NOCOPY VARCHAR2
9352                          )
9353    IS
9354       l_api_name                     CONSTANT VARCHAR2 (30) := 'CALC_PRICE_PRE';
9355 --QP Variables
9356      /* l_control_rec                           qp_preq_grp.control_record_type;
9357       l_req_line_tbl                          qp_preq_grp.line_tbl_type;
9358       l_req_line_detail_tbl                   qp_preq_grp.line_detail_tbl_type;
9359       l_req_related_lines_tbl                 qp_preq_grp.related_lines_tbl_type;
9360       l_req_qual_tbl                          qp_preq_grp.qual_tbl_type;
9361       l_req_line_attr_tbl                     qp_preq_grp.line_attr_tbl_type;
9362       l_req_line_detail_qual_tbl              qp_preq_grp.line_detail_qual_tbl_type;
9363       l_req_line_detail_attr_tbl              qp_preq_grp.line_detail_attr_tbl_type;*/
9364       l_req_line_rec                          qp_preq_grp.line_rec_type;
9365       l_req_line_rec2                         qp_preq_grp.line_rec_type;
9366       l_req_line_rec3                         qp_preq_grp.line_rec_type;
9367       l_req_line_rec4                         qp_preq_grp.line_rec_type;
9368       l_req_qual_rec                          qp_preq_grp.qual_rec_type;
9369       l_req_line_attr_rec                     qp_preq_grp.line_attr_rec_type;
9370       l_req_line_detail_rec                   qp_preq_grp.line_detail_rec_type;
9371       l_req_line_detail_rec2                  qp_preq_grp.line_detail_rec_type;
9372       l_req_related_lines_rec                 qp_preq_grp.related_lines_rec_type;
9373       lx_req_line_tbl                         qp_preq_grp.line_tbl_type;
9374       lx_req_qual_tbl                         qp_preq_grp.qual_tbl_type;
9375       lx_req_line_attr_tbl                    qp_preq_grp.line_attr_tbl_type;
9376       lx_req_line_detail_tbl                  qp_preq_grp.line_detail_tbl_type;
9377       lx_req_line_detail_qual_tbl             qp_preq_grp.line_detail_qual_tbl_type;
9378       lx_req_line_detail_attr_tbl             qp_preq_grp.line_detail_attr_tbl_type;
9379       lx_req_related_lines_tbl                qp_preq_grp.related_lines_tbl_type;
9380       lx_return_status                        VARCHAR2 (1);
9381       lx_return_status_text                   VARCHAR2 (2000);
9382 --General Variables;
9383       l_ctr                                   NUMBER;
9384       l_top_ctr                               NUMBER;
9385       i                                       NUMBER;
9386       i2                                      NUMBER;
9387       l_return_status                         VARCHAR2 (200);
9388       l_msg_count                             NUMBER;
9389       l_msg_data                              VARCHAR2 (2000);
9390       l_index                                 NUMBER;
9391       l_line_tbl_ctr                          NUMBER := 0;
9392       l_line_detl_tbl_ctr                     NUMBER := 0;
9393       l_line_attr_tbl_ctr                     NUMBER := 0;
9394       l_line_qual_tbl_ctr                     NUMBER := 0;
9395       l_line_rela_tbl_ctr                     NUMBER := 0;
9396       l_product_index                         NUMBER := 0;
9397       l_product_hdr_index                     NUMBER := 0;
9398       l_service_index                         NUMBER := 0;
9399       l_service_hdr_index                     NUMBER := 0;
9400       l_pricing_event                         VARCHAR2 (20);
9401       l_request_type_code                     VARCHAR2 (20);
9402       l_line_type_code                        VARCHAR2 (20);
9403       l_price_id                              NUMBER;
9404       l_def_pricing_date                      DATE;
9405       l_def_pricing_profile                   VARCHAR2 (240);
9406       l_currency                              VARCHAR2 (240);
9407       l_qpprod_inv_id                         NUMBER;
9408       l_qpprod_quantity                       NUMBER;
9409       l_qpprod_uom_code                       VARCHAR2 (240);
9410       l_qpserv_inv_id                         NUMBER;
9411       l_qpserv_quantity                       NUMBER;
9412       l_qpserv_uom_code                       VARCHAR2 (240);
9413       l_tangible                              BOOLEAN;
9414       p                                       NUMBER; -- fnd_debug variable bug 5069673
9415 --Table Handler Variables
9416       l_rule_rec                              okc_rule_pvt.rulv_rec_type;
9417       l_patv_tbl                              okc_price_adjustment_pub.patv_tbl_type;
9418       lx_patv_tbl                             okc_price_adjustment_pub.patv_tbl_type;
9419 --Variables for Price Break
9420       l_price_break_tbl                       g_price_break_tbl_type;
9421       l_rel_index                             NUMBER;
9422       l_lin_index                             NUMBER;
9423       l_party_id                              NUMBER;
9424       l_customer_id                           NUMBER;
9425       l_pricing_contexts_tbl                  qp_attr_mapping_pub.contexts_result_tbl_type;
9426       l_qual_contexts_tbl                     qp_attr_mapping_pub.contexts_result_tbl_type;
9427 --variables for partial periods logic
9428       l_period_type                           VARCHAR2 (30);
9429       l_period_start                          VARCHAR2 (30);
9430       l_price_uom                             VARCHAR2 (30);
9431       l_chr_id                                NUMBER;
9432       invalid_hdr_id_exception                EXCEPTION;
9433 
9434 --Cursor Variables
9435       CURSOR l_skg_csr
9436       IS
9437          SELECT kh.ID kh_id,
9438                 kh.start_date kh_start_date,
9439                 kh.date_signed kh_signed_date,
9440                 kh.currency_code kh_currency_code,
9441                 kh.authoring_org_id kh_auth_org,
9442                 kh.inv_organization_id inv_org,
9443                 kh.price_list_id price_list_id,
9444                 kh.bill_to_site_use_id kh_bill_to,
9445                 kh.ship_to_site_use_id kh_ship_to,
9446                 kh.payment_term_id kh_payment_term_id
9447            FROM okc_k_headers_all_b kh
9448           WHERE kh.ID = p_detail_rec.chr_id;
9449 
9450       l_skg_rec                               l_skg_csr%ROWTYPE;
9451 
9452       -- GCHADHA --
9453       -- 20 OCT 2004  --
9454       -- MULTI CURRENCY PRICELIST --
9455       --  Added Conversion_type and conversion_rate in the cursor
9456       CURSOR l_hdrtop_csr
9457       IS
9458          SELECT kh.ID kh_id,
9459                 kh.start_date kh_start_date,
9460                 kh.date_signed kh_signed_date,
9461                 kh.currency_code kh_currency_code,
9462                 kh.conversion_type kh_conversion_type,                  -- new
9463                 kh.conversion_rate kh_conversion_rate,                  -- new
9464                 kh.authoring_org_id kh_auth_org,
9465                 kh.inv_organization_id inv_org,
9466                 NVL (kl.price_list_id, kh.price_list_id) price_list_id,
9467                 kh.bill_to_site_use_id kh_bill_to,
9468                 kh.ship_to_site_use_id kh_ship_to,
9469                 kh.payment_term_id kh_payment_term_id,
9470                 kl.ID tl_id,
9471                 kl.start_date tl_start_date,
9472                 kl.end_date tl_end_date,
9473                 kl.lse_id tl_line_style,
9474                 kl.bill_to_site_use_id tl_bill_to,
9475                 kl.ship_to_site_use_id tl_ship_to,
9476                 kl.payment_term_id tl_payment_term_id,
9477                 ki.object1_id1 tl_object_id,
9478                 ki.number_of_items tl_qty,
9479                 ki.uom_code tl_uom_code
9480            FROM okc_k_headers_all_b kh,
9481                 okc_k_lines_b kl,
9482                 okc_k_items ki
9483           WHERE kh.ID = kl.chr_id            AND
9484                 kl.ID = p_detail_rec.line_id AND
9485                 ki.cle_id = kl.ID;
9486 
9487       l_hdrtop_rec                            l_hdrtop_csr%ROWTYPE;
9488 
9489       CURSOR l_subline_csr
9490       IS
9491          SELECT kl.ID sl_id,
9492                 kl.start_date sl_start_date,
9493                 kl.end_date sl_end_date,
9494                 kl.lse_id sl_line_style,
9495                 ki.object1_id1 sl_object_id,
9496                 ki.number_of_items sl_qty,
9497                 ki.uom_code sl_uom_code,
9498                 ks.price_uom sl_price_uom
9499            FROM okc_k_lines_b kl,
9500                 okc_k_items ki,
9501                 oks_k_lines_b ks
9502           WHERE kl.ID = p_detail_rec.subline_id AND
9503                 ks.cle_id = kl.ID               AND
9504                 ki.cle_id = kl.ID;
9505 
9506       l_subline_rec                           l_subline_csr%ROWTYPE;
9507 
9508       CURSOR l_get_hdrid_csr (
9509          p_cle_id                                 NUMBER
9510       )
9511       IS
9512          SELECT dnz_chr_id
9513            FROM okc_k_lines_b
9514           WHERE ID = p_cle_id;
9515 
9516       FUNCTION get_customer_id (
9517          p_chr_id                        IN       NUMBER,
9518          p_cle_id                        IN       NUMBER
9519       )
9520          RETURN NUMBER
9521       IS
9522          l_cust_id                               NUMBER;
9523          l_api_name                     CONSTANT VARCHAR2 (30)
9524                                                          := 'get_customer_id';
9525       BEGIN
9526          -- start debug log
9527          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9528          THEN
9529             fnd_log.STRING (fnd_log.level_procedure,
9530                             g_module ||
9531                             l_api_name,
9532                             '100: Entered ' ||
9533                             g_pkg_name ||
9534                             '.' ||
9535                             l_api_name
9536                            );
9537          END IF;
9538 
9539 /*
9540       Select object1_id1 Into l_cust_id
9541       From OKC_RULE_GROUPS_B rgp,
9542          OKC_RULES_B rl
9543       Where rgp.dnz_chr_id = p_chr_id  and
9544          rgp.cle_id     = p_cle_id  and
9545          rgp.id         = rl.rgp_id and
9546          rl.rule_information_category = 'CAN';
9547 */
9548          SELECT cust_acct_id
9549            INTO l_cust_id
9550            FROM okc_k_lines_b
9551           WHERE ID = p_cle_id;
9552 
9553          -- end debug log
9554          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9555          THEN
9556             fnd_log.STRING (fnd_log.level_procedure,
9557                             g_module ||
9558                             l_api_name,
9559                             '1000: Leaving ' ||
9560                             g_pkg_name ||
9561                             '.' ||
9562                             l_api_name
9563                            );
9564          END IF;
9565 
9566          RETURN l_cust_id;
9567       EXCEPTION
9568          WHEN NO_DATA_FOUND
9569          THEN
9570             -- end debug log
9571             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9572             THEN
9573                fnd_log.STRING (fnd_log.level_procedure,
9574                                g_module ||
9575                                l_api_name,
9576                                '5000: Leaving ' ||
9577                                g_pkg_name ||
9578                                '.' ||
9579                                l_api_name
9580                               );
9581             END IF;
9582 
9583             RETURN NULL;
9584          WHEN OTHERS
9585          THEN
9586             -- end debug log
9587             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9588             THEN
9589                fnd_log.STRING (fnd_log.level_procedure,
9590                                g_module ||
9591                                l_api_name,
9592                                '4000: Leaving ' ||
9593                                g_pkg_name ||
9594                                '.' ||
9595                                l_api_name
9596                               );
9597             END IF;
9598 
9599             fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
9600             RETURN NULL;
9601       END;
9602 
9603       FUNCTION get_customer_from_siteuse (
9604          p_site_use_id                   IN       NUMBER
9605       )
9606          RETURN NUMBER
9607       IS
9608          l_cust_id                               NUMBER;
9609          l_api_name                     CONSTANT VARCHAR2 (30)
9610                                                := 'get_customer_from_siteuse';
9611       BEGIN
9612          -- start debug log
9613          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9614          THEN
9615             fnd_log.STRING (fnd_log.level_procedure,
9616                             g_module ||
9617                             l_api_name,
9618                             '100: Entered ' ||
9619                             g_pkg_name ||
9620                             '.' ||
9621                             l_api_name
9622                            );
9623          END IF;
9624 
9625          SELECT cust_account_id
9626            INTO l_cust_id
9627            FROM hz_cust_site_uses_all cs,
9628                 hz_cust_acct_sites_all ca
9629           WHERE site_use_id = p_site_use_id                 AND
9630                 ca.cust_acct_site_id = cs.cust_acct_site_id;
9631 
9632          -- end debug log
9633          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9634          THEN
9635             fnd_log.STRING (fnd_log.level_procedure,
9636                             g_module ||
9637                             l_api_name,
9638                             '1000: Leaving ' ||
9639                             g_pkg_name ||
9640                             '.' ||
9641                             l_api_name
9642                            );
9643          END IF;
9644 
9645          RETURN l_cust_id;
9646       EXCEPTION
9647          WHEN NO_DATA_FOUND
9648          THEN
9649             -- end debug log
9650             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9651             THEN
9652                fnd_log.STRING (fnd_log.level_procedure,
9653                                g_module ||
9654                                l_api_name,
9655                                '5000: Leaving ' ||
9656                                g_pkg_name ||
9657                                '.' ||
9658                                l_api_name
9659                               );
9660             END IF;
9661 
9662             RETURN NULL;
9663          WHEN OTHERS
9664          THEN
9665             -- end debug log
9666             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9667             THEN
9668                fnd_log.STRING (fnd_log.level_procedure,
9669                                g_module ||
9670                                l_api_name,
9671                                '4000: Leaving ' ||
9672                                g_pkg_name ||
9673                                '.' ||
9674                                l_api_name
9675                               );
9676             END IF;
9677 
9678             fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
9679             RETURN NULL;
9680       END;
9681 
9682       FUNCTION get_agreement_id (
9683          p_chr_id                        IN       NUMBER
9684       )
9685          RETURN NUMBER
9686       IS
9687          l_id                                    NUMBER;
9688          l_api_name                     CONSTANT VARCHAR2 (30)
9689                                                         := 'get_agreement_id';
9690       BEGIN
9691          -- start debug log
9692          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9693          THEN
9694             fnd_log.STRING (fnd_log.level_procedure,
9695                             g_module ||
9696                             l_api_name,
9697                             '100: Entered ' ||
9698                             g_pkg_name ||
9699                             '.' ||
9700                             l_api_name
9701                            );
9702          END IF;
9703 
9704          SELECT isa_agreement_id
9705            INTO l_id
9706            FROM okc_governances
9707           WHERE chr_id = p_chr_id;
9708 
9709          -- end debug log
9710          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9711          THEN
9712             fnd_log.STRING (fnd_log.level_procedure,
9713                             g_module ||
9714                             l_api_name,
9715                             '1000: Leaving ' ||
9716                             g_pkg_name ||
9717                             '.' ||
9718                             l_api_name
9719                            );
9720          END IF;
9721 
9722          RETURN l_id;
9723       EXCEPTION
9724          WHEN NO_DATA_FOUND
9725          THEN
9726             -- end debug log
9727             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9728             THEN
9729                fnd_log.STRING (fnd_log.level_procedure,
9730                                g_module ||
9731                                l_api_name,
9732                                '5000: Leaving ' ||
9733                                g_pkg_name ||
9734                                '.' ||
9735                                l_api_name
9736                               );
9737             END IF;
9738 
9739             RETURN NULL;
9740          WHEN OTHERS
9741          THEN
9742             -- end debug log
9743             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9744             THEN
9745                fnd_log.STRING (fnd_log.level_procedure,
9746                                g_module ||
9747                                l_api_name,
9748                                '4000: Leaving ' ||
9749                                g_pkg_name ||
9750                                '.' ||
9751                                l_api_name
9752                               );
9753             END IF;
9754 
9755             RETURN NULL;
9756       END;
9757 
9758       FUNCTION get_party_id (
9759          p_chr_id                        IN       NUMBER
9760       )
9761          RETURN NUMBER
9762       IS
9763          l_id                                    NUMBER;
9764          l_api_name                     CONSTANT VARCHAR2 (30)
9765                                                             := 'get_party_id';
9766       BEGIN
9767          -- start debug log
9768          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9769          THEN
9770             fnd_log.STRING (fnd_log.level_procedure,
9771                             g_module ||
9772                             l_api_name,
9773                             '100: Entered ' ||
9774                             g_pkg_name ||
9775                             '.' ||
9776                             l_api_name
9777                            );
9778          END IF;
9779 
9780          SELECT object1_id1
9781            INTO l_id
9782            FROM okc_k_party_roles_b
9783           WHERE chr_id = p_chr_id                      AND
9784                 dnz_chr_id = p_chr_id                  AND
9785                 cle_id IS NULL                         AND
9786                 rle_code IN ('CUSTOMER', 'SUBSCRIBER');
9787 
9788          -- end debug log
9789          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9790          THEN
9791             fnd_log.STRING (fnd_log.level_procedure,
9792                             g_module ||
9793                             l_api_name,
9794                             '1000: Leaving ' ||
9795                             g_pkg_name ||
9796                             '.' ||
9797                             l_api_name
9798                            );
9799          END IF;
9800 
9801          RETURN l_id;
9802       EXCEPTION
9803          WHEN NO_DATA_FOUND
9804          THEN
9805             -- end debug log
9806             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9807             THEN
9808                fnd_log.STRING (fnd_log.level_procedure,
9809                                g_module ||
9810                                l_api_name,
9811                                '5000: Leaving ' ||
9812                                g_pkg_name ||
9813                                '.' ||
9814                                l_api_name
9815                               );
9816             END IF;
9817 
9818             RETURN NULL;
9819          WHEN OTHERS
9820          THEN
9821             -- end debug log
9822             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9823             THEN
9824                fnd_log.STRING (fnd_log.level_procedure,
9825                                g_module ||
9826                                l_api_name,
9827                                '4000: Leaving ' ||
9828                                g_pkg_name ||
9829                                '.' ||
9830                                l_api_name
9831                               );
9832             END IF;
9833 
9834             fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
9835             RETURN NULL;
9836       END;
9837 -- CALC PROCEDURE STARTS
9838    BEGIN
9839       -- start debug log
9840       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9841       THEN
9842          fnd_log.STRING (fnd_log.level_procedure,
9843                          g_module ||
9844                          l_api_name,
9845                          '100: Entered ' ||
9846                          g_pkg_name ||
9847                          '.' ||
9848                          l_api_name
9849                         );
9850       END IF;
9851 
9852       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
9853       THEN
9854          fnd_log.STRING (fnd_log.level_procedure,
9855                          g_module ||
9856                          l_api_name,
9857                          '401:******** INTENT ***************** ' ||
9858                          p_detail_rec.intent
9859                         );
9860          fnd_log.STRING (fnd_log.level_procedure,
9861                          g_module ||
9862                          l_api_name,
9863                          '402:******** CHR ID         ********* ' ||
9864                          p_detail_rec.chr_id
9865                         );
9866          fnd_log.STRING (fnd_log.level_procedure,
9867                          g_module ||
9868                          l_api_name,
9869                          '403:******** LINE_ID **************** ' ||
9870                          p_detail_rec.line_id
9871                         );
9872          fnd_log.STRING (fnd_log.level_procedure,
9873                          g_module ||
9874                          l_api_name,
9875                          '404:******** SUB_LINE_ID************* ' ||
9876                          p_detail_rec.subline_id
9877                         );
9878          fnd_log.STRING (fnd_log.level_procedure,
9879                          g_module ||
9880                          l_api_name,
9881                          '405:******** PRICE LIST     ********* ' ||
9882                          p_detail_rec.price_list
9883                         );
9884          fnd_log.STRING (fnd_log.level_procedure,
9885                          g_module ||
9886                          l_api_name,
9887                          '406:******** PRICE LIST LINE ID   *** ' ||
9888                          p_detail_rec.price_list_line_id
9889                         );
9890          fnd_log.STRING (fnd_log.level_procedure,
9891                          g_module ||
9892                          l_api_name,
9893                          '407:******** CURRENCY       ********* ' ||
9894                          p_detail_rec.currency
9895                         );
9896          fnd_log.STRING (fnd_log.level_procedure,
9897                          g_module ||
9898                          l_api_name,
9899                          '408:******** BCL ID         ********* ' ||
9900                          p_detail_rec.bcl_id
9901                         );
9902          fnd_log.STRING (fnd_log.level_procedure,
9903                          g_module ||
9904                          l_api_name,
9905                          '409:******** BSL ID         ********* ' ||
9906                          p_detail_rec.bsl_id
9907                         );
9908          fnd_log.STRING (fnd_log.level_procedure,
9909                          g_module ||
9910                          l_api_name,
9911                          '410:******** USAGE QTY      ********* ' ||
9912                          p_detail_rec.usage_qty
9913                         );
9914          fnd_log.STRING (fnd_log.level_procedure,
9915                          g_module ||
9916                          l_api_name,
9917                          '411:******** USAGE UOM      ********* ' ||
9918                          p_detail_rec.usage_uom_code
9919                         );
9920          fnd_log.STRING (fnd_log.level_procedure,
9921                          g_module ||
9922                          l_api_name,
9923                          '412:******** BREAK UOM      ********* ' ||
9924                          p_detail_rec.break_uom_code
9925                         );
9926          fnd_log.STRING (fnd_log.level_procedure,
9927                          g_module ||
9928                          l_api_name,
9929                          '413:******** PRORATION YN   ********* ' ||
9930                          p_detail_rec.proration_yn
9931                         );
9932          fnd_log.STRING (fnd_log.level_procedure,
9933                          g_module ||
9934                          l_api_name,
9935                          '414:******** PRORATION YN   ********* ' ||
9936                          p_detail_rec.proration_yn
9937                         );
9938          fnd_log.STRING (fnd_log.level_procedure,
9939                          g_module ||
9940                          l_api_name,
9941                          '415:******** BILL FROM DT   ********* ' ||
9942                          p_detail_rec.bill_from_date
9943                         );
9944          fnd_log.STRING (fnd_log.level_procedure,
9945                          g_module ||
9946                          l_api_name,
9947                          '416:******** BILL TO   DT   ********* ' ||
9948                          p_detail_rec.bill_to_date
9949                         );
9950          fnd_log.STRING (fnd_log.level_procedure,
9951                          g_module ||
9952                          l_api_name,
9953                          '417:******** ASKING_UNIT_PRICE ****** ' ||
9954                          p_detail_rec.asking_unit_price
9955                         );
9956       END IF;
9957 
9958 --dbms_output.put_line ('******** INTENT ***************** ' || p_detail_rec.intent);
9959 --dbms_output.put_line ('******** CHR ID         ********* ' || p_detail_rec.chr_id);
9960 --dbms_output.put_line ('******** LINE_ID **************** ' || p_detail_rec.line_id);
9961 --dbms_output.put_line ('******** SUB_LINE_ID************* ' || p_detail_rec.subline_id);
9962 --dbms_output.put_line ('******** PRICE LIST     ********* ' || p_detail_rec.price_list);
9963 --dbms_output.put_line ('******** PRICE LIST LINE ID   *** ' || p_detail_rec.price_list_line_id);
9964 --dbms_output.put_line ('******** CURRENCY       ********* ' || p_detail_rec.currency);
9965 --dbms_output.put_line ('******** BCL ID         ********* ' || p_detail_rec.bcl_id);
9966 --dbms_output.put_line ('******** BSL ID         ********* ' || p_detail_rec.bsl_id);
9967 --dbms_output.put_line ('******** USAGE QTY      ********* ' || p_detail_rec.usage_qty);
9968 --dbms_output.put_line ('******** USAGE UOM      ********* ' || p_detail_rec.usage_uom_code);
9969 --dbms_output.put_line ('******** BREAK UOM      ********* ' || p_detail_rec.break_uom_code);
9970 --dbms_output.put_line ('******** PRORATION YN   ********* ' || p_detail_rec.proration_yn);
9971 --dbms_output.put_line ('******** PRORATION YN   ********* ' || p_detail_rec.proration_yn);
9972 --dbms_output.put_line ('******** BILL FROM DT   ********* ' || p_detail_rec.bill_from_date);
9973 --dbms_output.put_line ('******** BILL TO   DT   ********* ' || p_detail_rec.bill_to_date);
9974 --dbms_output.put_line ('******** ASKING_UNIT_PRICE ****** ' || p_detail_rec.asking_unit_price);
9975 
9976       --Hdr-TopLine Cursor
9977       x_return_status            := 'S';
9978 
9979       OPEN l_hdrtop_csr;
9980 
9981       FETCH l_hdrtop_csr
9982        INTO l_hdrtop_rec;
9983 
9984       CLOSE l_hdrtop_csr;
9985 
9986 --SubLine Cursor
9987       OPEN l_subline_csr;
9988 
9989       FETCH l_subline_csr
9990        INTO l_subline_rec;
9991 
9992       CLOSE l_subline_csr;
9993 
9994 -- GCHADHA --
9995 -- 20 OCT 2004 --
9996 -- MULTI CURRENCY PRICELIST --
9997       l_control_rec.user_conversion_type := l_hdrtop_rec.kh_conversion_type;
9998       -- Get the Functional currency  --
9999       l_control_rec.function_currency :=
10000                    okc_currency_api.get_ou_currency (l_hdrtop_rec.kh_auth_org);
10001 
10002       -- If conversion type is 'USER' pass conversion rate to QP
10003       IF UPPER (NVL (l_hdrtop_rec.kh_conversion_type, '!')) = 'USER'
10004       THEN
10005          l_control_rec.user_conversion_rate :=
10006                                               l_hdrtop_rec.kh_conversion_rate;
10007       ELSE
10008          l_control_rec.user_conversion_rate := NULL;
10009       END IF;
10010 
10011       -- END GCHADHA --
10012 
10013       --TOP LINE REC DISPLAY
10014       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10015       THEN
10016          fnd_log.STRING (fnd_log.level_procedure,
10017                          g_module ||
10018                          l_api_name,
10019                          '501:*** TL-CONTRACT ID **** ' ||
10020                          l_hdrtop_rec.kh_id
10021                         );
10022          fnd_log.STRING (fnd_log.level_procedure,
10023                          g_module ||
10024                          l_api_name,
10025                          '502:*** TL-KH STRT  DT **** ' ||
10026                          l_hdrtop_rec.kh_start_date
10027                         );
10028          fnd_log.STRING (fnd_log.level_procedure,
10029                          g_module ||
10030                          l_api_name,
10031                          '503:*** TL-KH SIGN  DT **** ' ||
10032                          l_hdrtop_rec.kh_signed_date
10033                         );
10034          fnd_log.STRING (fnd_log.level_procedure,
10035                          g_module ||
10036                          l_api_name,
10037                          '504:*** TL-KH CURR  CD **** ' ||
10038                          l_hdrtop_rec.kh_currency_code
10039                         );
10040          fnd_log.STRING (fnd_log.level_procedure,
10041                          g_module ||
10042                          l_api_name,
10043                          '505:*** TL-TL LINE  ID **** ' ||
10044                          l_hdrtop_rec.tl_id
10045                         );
10046          fnd_log.STRING (fnd_log.level_procedure,
10047                          g_module ||
10048                          l_api_name,
10049                          '506:*** TL-TL START DT **** ' ||
10050                          l_hdrtop_rec.tl_start_date
10051                         );
10052          fnd_log.STRING (fnd_log.level_procedure,
10053                          g_module ||
10054                          l_api_name,
10055                          '507:*** TL-TL END   DT **** ' ||
10056                          l_hdrtop_rec.tl_end_date
10057                         );
10058          fnd_log.STRING (fnd_log.level_procedure,
10059                          g_module ||
10060                          l_api_name,
10061                          '508:*** TL-TL LINE STY **** ' ||
10062                          l_hdrtop_rec.tl_line_style
10063                         );
10064          fnd_log.STRING (fnd_log.level_procedure,
10065                          g_module ||
10066                          l_api_name,
10067                          '509:*** TL-TL OBJ1_ID1 **** ' ||
10068                          l_hdrtop_rec.tl_object_id
10069                         );
10070          fnd_log.STRING (fnd_log.level_procedure,
10071                          g_module ||
10072                          l_api_name,
10073                          '510:*** TL-TL OBJ  QTY **** ' ||
10074                          l_hdrtop_rec.tl_qty
10075                         );
10076          fnd_log.STRING (fnd_log.level_procedure,
10077                          g_module ||
10078                          l_api_name,
10079                          '511:*** TL-TL OBJ  UOM **** ' ||
10080                          l_hdrtop_rec.tl_uom_code
10081                         );
10082          fnd_log.STRING (fnd_log.level_procedure,
10083                          g_module ||
10084                          l_api_name,
10085                          '511:*** TL-TL PRICE LIST **** ' ||
10086                          l_hdrtop_rec.price_list_id
10087                         );
10088          fnd_log.STRING
10089             (fnd_log.level_procedure,
10090              g_module ||
10091              l_api_name,
10092              '512:*************************************************************************'
10093             );
10094       END IF;
10095 
10096 --dbms_output.put_line ('*** TL-CONTRACT ID **** ' ||l_hdrtop_rec.kh_id);
10097 --dbms_output.put_line ('*** TL-KH STRT  DT **** ' ||l_hdrtop_rec.kh_start_date);
10098 --dbms_output.put_line ('*** TL-KH SIGN  DT **** ' ||l_hdrtop_rec.kh_signed_date);
10099 --dbms_output.put_line ('*** TL-KH CURR  CD **** ' ||l_hdrtop_rec.kh_currency_code);
10100 --dbms_output.put_line ('*** TL-TL LINE  ID **** ' ||l_hdrtop_rec.tl_id);
10101 --dbms_output.put_line ('*** TL-TL START DT **** ' ||l_hdrtop_rec.tl_start_date);
10102 --dbms_output.put_line ('*** TL-TL END   DT **** ' ||l_hdrtop_rec.tl_end_date);
10103 --dbms_output.put_line ('*** TL-TL LINE STY **** ' ||l_hdrtop_rec.tl_line_style);
10104 --dbms_output.put_line ('*** TL-TL OBJ1_ID1 **** ' ||l_hdrtop_rec.tl_object_id);
10105 --dbms_output.put_line ('*** TL-TL OBJ  QTY **** ' ||l_hdrtop_rec.tl_qty);
10106 --dbms_output.put_line ('*** TL-TL OBJ  UOM **** ' ||l_hdrtop_rec.tl_uom_code);
10107 
10108       --dbms_output.put_line ('*************************************************************************');
10109 
10110       --SUB LINE REC DISPLAY
10111       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10112       THEN
10113          fnd_log.STRING (fnd_log.level_procedure,
10114                          g_module ||
10115                          l_api_name,
10116                          '601:*** SL-SL LINE  ID **** ' ||
10117                          l_subline_rec.sl_id
10118                         );
10119          fnd_log.STRING (fnd_log.level_procedure,
10120                          g_module ||
10121                          l_api_name,
10122                          '602:*** SL-SL START DT **** ' ||
10123                          l_subline_rec.sl_start_date
10124                         );
10125          fnd_log.STRING (fnd_log.level_procedure,
10126                          g_module ||
10127                          l_api_name,
10128                          '603:*** SL-SL END   DT **** ' ||
10129                          l_subline_rec.sl_end_date
10130                         );
10131          fnd_log.STRING (fnd_log.level_procedure,
10132                          g_module ||
10133                          l_api_name,
10134                          '604:*** SL-SL LINE STY **** ' ||
10135                          l_subline_rec.sl_line_style
10136                         );
10137          fnd_log.STRING (fnd_log.level_procedure,
10138                          g_module ||
10139                          l_api_name,
10140                          '605:*** SL-SL OBJ1_ID1 **** ' ||
10141                          l_subline_rec.sl_object_id
10142                         );
10143          fnd_log.STRING
10144             (fnd_log.level_procedure,
10145              g_module ||
10146              l_api_name,
10147              '606:*************************************************************************'
10148             );
10149       END IF;
10150 
10151 --dbms_output.put_line ('*** SL-SL LINE  ID **** ' ||l_subline_rec.sl_id);
10152 --dbms_output.put_line ('*** SL-SL START DT **** ' ||l_subline_rec.sl_start_date);
10153 --dbms_output.put_line ('*** SL-SL END   DT **** ' ||l_subline_rec.sl_end_date);
10154 --dbms_output.put_line ('*** SL-SL LINE STY **** ' ||l_subline_rec.sl_line_style);
10155 --dbms_output.put_line ('*** SL-SL OBJ1_ID1 **** ' ||l_subline_rec.sl_object_id);
10156 
10157       --dbms_output.put_line ('*************************************************************************');
10158 
10159       --Ctr Variables for pricing tables
10160       l_product_index            := 1;
10161       l_service_index            := 2;
10162       l_line_tbl_ctr             := 0;
10163       l_line_attr_tbl_ctr        := 0;
10164       l_line_detl_tbl_ctr        := 0;
10165       l_line_qual_tbl_ctr        := 0;
10166 --Variables to be populated
10167       l_pricing_event            := 'BATCH';
10168 
10169       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10170       THEN
10171          fnd_log.STRING (fnd_log.level_procedure,
10172                          g_module ||
10173                          l_api_name,
10174                          '701:*** INTENT *********** ' ||
10175                          p_detail_rec.intent
10176                         );
10177          fnd_log.STRING (fnd_log.level_procedure,
10178                          g_module ||
10179                          l_api_name,
10180                          '702:*** PRICING EVENT **** ' ||
10181                          l_pricing_event
10182                         );
10183       END IF;
10184 
10185 --dbms_output.put_line ('*** INTENT *********** ' || p_detail_rec.intent);
10186 --dbms_output.put_line ('*** PRICING EVENT **** ' || l_pricing_event);
10187       l_request_type_code        := 'ONT';
10188 
10189       IF NVL (p_detail_rec.intent, 'JA') = 'HM'
10190       THEN
10191          l_line_type_code           := 'ORDER';
10192       ELSE
10193          l_line_type_code           := 'LINE';
10194       END IF;
10195 
10196       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10197       THEN
10198          fnd_log.STRING (fnd_log.level_procedure,
10199                          g_module ||
10200                          l_api_name,
10201                          '801:*** LINE_TYPE_CODE **** ' ||
10202                          l_line_type_code
10203                         );
10204       END IF;
10205 
10206 --dbms_output.put_line ('*** LINE_TYPE_CODE **** ' || l_line_type_code);
10207       l_def_pricing_profile      := fnd_profile.VALUE ('OKS_DEF_PRICING_DATE');
10208 
10209       IF l_def_pricing_profile = 'KSDT'
10210       THEN
10211          l_def_pricing_date         := l_hdrtop_rec.kh_start_date;
10212       ELSIF l_def_pricing_profile = 'SYDT'
10213       THEN
10214          l_def_pricing_date         := SYSDATE;
10215       ELSIF l_def_pricing_profile = 'TSDT'
10216       THEN
10217          l_def_pricing_date         := l_hdrtop_rec.tl_start_date;
10218       ELSIF l_def_pricing_profile = 'KGDT'
10219       THEN
10220          l_def_pricing_date         := l_hdrtop_rec.kh_signed_date;
10221       ELSIF l_def_pricing_profile = 'CSDT'
10222       THEN
10223          IF l_hdrtop_rec.tl_line_style IN (12, 46)
10224          THEN
10225             l_def_pricing_date         := l_hdrtop_rec.tl_start_date;
10226          ELSE
10227             l_def_pricing_date         := l_subline_rec.sl_start_date;
10228          END IF;
10229       END IF;
10230 
10231       l_def_pricing_date         := NVL (l_def_pricing_date, SYSDATE);
10232 
10233       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10234       THEN
10235          fnd_log.STRING (fnd_log.level_procedure,
10236                          g_module ||
10237                          l_api_name,
10238                          '901:*** DEF PRICING PROFILE **** ' ||
10239                          l_def_pricing_profile
10240                         );
10241          fnd_log.STRING (fnd_log.level_procedure,
10242                          g_module ||
10243                          l_api_name,
10244                          '902:*** PRICING DATE **** ' ||
10245                          l_def_pricing_date
10246                         );
10247       END IF;
10248 
10249 --dbms_output.put_line ('*** DEF PRICING PROFILE **** ' || l_def_pricing_profile);
10250 --dbms_output.put_line ('*** PRICING DATE **** ' || l_def_pricing_date);
10251       IF NVL (p_detail_rec.intent, 'JA') = 'HM'
10252       THEN
10253          l_currency                 := p_detail_rec.currency;
10254       ELSE
10255          l_currency                 := l_hdrtop_rec.kh_currency_code;
10256       END IF;
10257 
10258       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10259       THEN
10260          fnd_log.STRING (fnd_log.level_procedure,
10261                          g_module ||
10262                          l_api_name,
10263                          '1001:*** CURRENCY CODE **** ' ||
10264                          l_currency
10265                         );
10266          fnd_log.STRING
10267             (fnd_log.level_procedure,
10268              g_module ||
10269              l_api_name,
10270              '1002:************************** SET GLOBAL VARIABLES ********************************************'
10271             );
10272       END IF;
10273 
10274 --dbms_output.put_line ('*** CURRENCY CODE **** ' || l_currency);
10275 
10276       --dbms_output.put_line ('************************** SET GLOBAL VARIABLES ********************************************');
10277 
10278       --Assemble variables
10279       l_customer_id              :=
10280                       get_customer_id (l_hdrtop_rec.kh_id, l_hdrtop_rec.tl_id);
10281 
10282       BEGIN
10283          SELECT party_id
10284            INTO l_party_id
10285            FROM hz_cust_accounts_all
10286           WHERE cust_account_id = l_customer_id;
10287       EXCEPTION
10288          WHEN NO_DATA_FOUND
10289          THEN
10290             l_party_id                 := NULL;
10291 
10292             -- end debug log
10293             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10294             THEN
10295                fnd_log.STRING (fnd_log.level_procedure,
10296                                g_module ||
10297                                l_api_name,
10298                                '5000: Leaving ' ||
10299                                g_pkg_name ||
10300                                '.' ||
10301                                l_api_name
10302                               );
10303             END IF;
10304          WHEN OTHERS
10305          THEN
10306             l_party_id                 := NULL;
10307 
10308             -- end debug log
10309             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10310             THEN
10311                fnd_log.STRING (fnd_log.level_procedure,
10312                                g_module ||
10313                                l_api_name,
10314                                '4000: Leaving ' ||
10315                                g_pkg_name ||
10316                                '.' ||
10317                                l_api_name
10318                               );
10319             END IF;
10320 
10321             fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
10322       END;
10323 IF p_detail_rec.intent = 'HM'
10324       THEN
10325          OPEN l_skg_csr;
10326 
10327          FETCH l_skg_csr
10328           INTO l_skg_rec;
10329 
10330          CLOSE l_skg_csr;
10331 
10332          oks_qpattrib_pvt.g_contract_hdrrec.chr_id := l_skg_rec.kh_id;
10333          oks_qpattrib_pvt.g_contract_hdrrec.top_line_id := NULL;
10334          oks_qpattrib_pvt.g_contract_hdrrec.cov_line_id := NULL;
10335          oks_qpattrib_pvt.g_contract_hdrrec.inventory_item_id := NULL;
10336          oks_qpattrib_pvt.g_contract_hdrrec.invt_org_id := l_skg_rec.inv_org;
10337          oks_qpattrib_pvt.g_contract_hdrrec.auth_org_id :=
10338                                                          l_skg_rec.kh_auth_org;
10339          oks_qpattrib_pvt.g_contract_hdrrec.pricing_date := l_def_pricing_date;
10340          oks_qpattrib_pvt.g_contract_hdrrec.party_id :=
10341                                                 get_party_id (l_skg_rec.kh_id);
10342          oks_qpattrib_pvt.g_contract_hdrrec.customer_id :=
10343                               get_customer_from_siteuse (l_skg_rec.kh_bill_to);
10344          oks_qpattrib_pvt.g_contract_hdrrec.agreement_id :=
10345                                             get_agreement_id (l_skg_rec.kh_id);
10346          oks_qpattrib_pvt.g_contract_hdrrec.bill_to := l_skg_rec.kh_bill_to;
10347          oks_qpattrib_pvt.g_contract_hdrrec.ship_to := l_skg_rec.kh_ship_to;
10348          oks_qpattrib_pvt.g_contract_hdrrec.payment_term_id :=
10349                                                   l_skg_rec.kh_payment_term_id;
10350          oks_qpattrib_pvt.g_contract_linrec.chr_id := NULL;
10351          oks_qpattrib_pvt.g_contract_linrec.top_line_id := NULL;
10352          oks_qpattrib_pvt.g_contract_linrec.cov_line_id := NULL;
10353          oks_qpattrib_pvt.g_contract_linrec.inventory_item_id := NULL;
10354          oks_qpattrib_pvt.g_contract_linrec.invt_org_id := NULL;
10355          oks_qpattrib_pvt.g_contract_linrec.auth_org_id := NULL;
10356          oks_qpattrib_pvt.g_contract_linrec.pricing_date := NULL;
10357          oks_qpattrib_pvt.g_contract_linrec.party_id := NULL;
10358          oks_qpattrib_pvt.g_contract_linrec.customer_id := NULL;
10359          oks_qpattrib_pvt.g_contract_linrec.bill_to := NULL;
10360          oks_qpattrib_pvt.g_contract_linrec.ship_to := NULL;
10361          oks_qpattrib_pvt.g_contract_linrec.payment_term_id := NULL;
10362       ELSE
10363          oks_qpattrib_pvt.g_contract_hdrrec.chr_id := l_hdrtop_rec.kh_id;
10364          oks_qpattrib_pvt.g_contract_hdrrec.top_line_id := l_hdrtop_rec.tl_id;
10365          oks_qpattrib_pvt.g_contract_hdrrec.cov_line_id :=
10366                                                           l_subline_rec.sl_id;
10367          oks_qpattrib_pvt.g_contract_hdrrec.inventory_item_id :=
10368                                                     l_hdrtop_rec.tl_object_id;
10369          oks_qpattrib_pvt.g_contract_hdrrec.invt_org_id :=
10370                                                          l_hdrtop_rec.inv_org;
10371          oks_qpattrib_pvt.g_contract_hdrrec.auth_org_id :=
10372                                                      l_hdrtop_rec.kh_auth_org;
10373          oks_qpattrib_pvt.g_contract_hdrrec.pricing_date :=
10374                                                            l_def_pricing_date;
10375          oks_qpattrib_pvt.g_contract_hdrrec.party_id :=
10376                                             get_party_id (l_hdrtop_rec.kh_id);
10377          oks_qpattrib_pvt.g_contract_hdrrec.customer_id :=
10378                           get_customer_from_siteuse (l_hdrtop_rec.kh_bill_to);
10379          oks_qpattrib_pvt.g_contract_hdrrec.agreement_id :=
10380                                         get_agreement_id (l_hdrtop_rec.kh_id);
10381          oks_qpattrib_pvt.g_contract_hdrrec.bill_to :=
10382                                                       l_hdrtop_rec.kh_bill_to;
10383          oks_qpattrib_pvt.g_contract_hdrrec.ship_to :=
10384                                                       l_hdrtop_rec.kh_ship_to;
10385          oks_qpattrib_pvt.g_contract_hdrrec.payment_term_id :=
10386                                               l_hdrtop_rec.kh_payment_term_id;
10387          oks_qpattrib_pvt.g_contract_linrec.chr_id := l_hdrtop_rec.kh_id;
10388          oks_qpattrib_pvt.g_contract_linrec.top_line_id := l_hdrtop_rec.tl_id;
10389          oks_qpattrib_pvt.g_contract_linrec.cov_line_id :=
10390                                                           l_subline_rec.sl_id;
10391          oks_qpattrib_pvt.g_contract_linrec.inventory_item_id :=
10392                                                     l_hdrtop_rec.tl_object_id;
10393          oks_qpattrib_pvt.g_contract_linrec.invt_org_id :=
10394                                                          l_hdrtop_rec.inv_org;
10395          oks_qpattrib_pvt.g_contract_linrec.auth_org_id :=
10396                                                      l_hdrtop_rec.kh_auth_org;
10397          oks_qpattrib_pvt.g_contract_linrec.pricing_date :=
10398                                                            l_def_pricing_date;
10399          oks_qpattrib_pvt.g_contract_linrec.party_id := l_party_id;
10400          oks_qpattrib_pvt.g_contract_linrec.customer_id := l_customer_id;
10401          oks_qpattrib_pvt.g_contract_linrec.bill_to :=
10402                                                       l_hdrtop_rec.tl_bill_to;
10403          oks_qpattrib_pvt.g_contract_linrec.ship_to :=
10404                                                       l_hdrtop_rec.tl_ship_to;
10405          oks_qpattrib_pvt.g_contract_linrec.payment_term_id :=
10406                                               l_hdrtop_rec.tl_payment_term_id;
10407       END IF;
10408 
10409       IF p_detail_rec.break_uom_code IS NOT NULL
10410       THEN
10411          oks_qpattrib_pvt.g_contract_linrec.break_uom :=
10412                                                   p_detail_rec.break_uom_code;
10413       ELSE
10414          oks_qpattrib_pvt.g_contract_linrec.break_uom := NULL;
10415       END IF;
10416 
10417       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10418       THEN
10419          fnd_log.STRING (fnd_log.level_procedure,
10420                          g_module ||
10421                          l_api_name,
10422                          '2001:*** GLOBAL VARIABLE - CHR-ID        **** ' ||
10423                          oks_qpattrib_pvt.g_contract_hdrrec.chr_id
10424                         );
10425          fnd_log.STRING (fnd_log.level_procedure,
10426                          g_module ||
10427                          l_api_name,
10428                          '2002:*** GLOBAL VARIABLE - TOP-LINE ID   **** ' ||
10429                          oks_qpattrib_pvt.g_contract_hdrrec.top_line_id
10430                         );
10431          fnd_log.STRING (fnd_log.level_procedure,
10432                          g_module ||
10433                          l_api_name,
10434                          '2003:*** GLOBAL VARIABLE - COV-LINE-ID   **** ' ||
10435                          oks_qpattrib_pvt.g_contract_hdrrec.cov_line_id
10436                         );
10437          fnd_log.STRING (fnd_log.level_procedure,
10438                          g_module ||
10439                          l_api_name,
10440                          '2004:*** GLOBAL VARIABLE - INV-ITEM-ID   **** ' ||
10441                          oks_qpattrib_pvt.g_contract_hdrrec.inventory_item_id
10442                         );
10443          fnd_log.STRING (fnd_log.level_procedure,
10444                          g_module ||
10445                          l_api_name,
10446                          '2005:*** GLOBAL VARIABLE - INV- ORG-ID   **** ' ||
10447                          oks_qpattrib_pvt.g_contract_hdrrec.invt_org_id
10448                         );
10449          fnd_log.STRING (fnd_log.level_procedure,
10450                          g_module ||
10451                          l_api_name,
10452                          '2006:*** GLOBAL VARIABLE - AUT- ORG-ID   **** ' ||
10453                          oks_qpattrib_pvt.g_contract_hdrrec.auth_org_id
10454                         );
10455          fnd_log.STRING (fnd_log.level_procedure,
10456                          g_module ||
10457                          l_api_name,
10458                          '2007:*** GLOBAL VARIABLE - PRICE -DATE   **** ' ||
10459                          oks_qpattrib_pvt.g_contract_hdrrec.pricing_date
10460                         );
10461          fnd_log.STRING (fnd_log.level_procedure,
10462                          g_module ||
10463                          l_api_name,
10464                          '2008:*** GLOBAL VARIABLE - PARTY -  ID   **** ' ||
10465                          oks_qpattrib_pvt.g_contract_hdrrec.party_id
10466                         );
10467          fnd_log.STRING (fnd_log.level_procedure,
10468                          g_module ||
10469                          l_api_name,
10470                          '2009:*** GLOBAL VARIABLE - CUST  -  ID   **** ' ||
10471                          oks_qpattrib_pvt.g_contract_hdrrec.customer_id
10472                         );
10473          fnd_log.STRING (fnd_log.level_procedure,
10474                          g_module ||
10475                          l_api_name,
10476                          '2010:*** GLOBAL VARIABLE - AGREEM-  ID   **** ' ||
10477                          oks_qpattrib_pvt.g_contract_hdrrec.agreement_id
10478                         );
10479          fnd_log.STRING (fnd_log.level_procedure,
10480                          g_module ||
10481                          l_api_name,
10482                          '2011:*** GLOBAL VARIABLE - BILL  -  TO   **** ' ||
10483                          oks_qpattrib_pvt.g_contract_hdrrec.bill_to
10484                         );
10485          fnd_log.STRING (fnd_log.level_procedure,
10486                          g_module ||
10487                          l_api_name,
10488                          '2012:*** GLOBAL VARIABLE - SHIP  -  TO   **** ' ||
10489                          oks_qpattrib_pvt.g_contract_hdrrec.ship_to
10490                         );
10491          fnd_log.STRING (fnd_log.level_procedure,
10492                          g_module ||
10493                          l_api_name,
10494                          '2013:*** GLOBAL VARIABLE - PAYMENT  ID   **** ' ||
10495                          oks_qpattrib_pvt.g_contract_hdrrec.payment_term_id
10496                         );
10497          fnd_log.STRING (fnd_log.level_procedure,
10498                          g_module ||
10499                          l_api_name,
10500                          '2014:*** GLOBAL VARIABLE - BREAK UOM     **** ' ||
10501                          oks_qpattrib_pvt.g_contract_hdrrec.break_uom
10502                         );
10503          fnd_log.STRING (fnd_log.level_procedure,
10504                          g_module ||
10505                          l_api_name,
10506                          '2015:*** GLOBAL VARIABLE - CHR-ID        **** ' ||
10507                          oks_qpattrib_pvt.g_contract_linrec.chr_id
10508                         );
10509          fnd_log.STRING (fnd_log.level_procedure,
10510                          g_module ||
10511                          l_api_name,
10512                          '2016:*** GLOBAL VARIABLE - TOP-LINE ID   **** ' ||
10513                          oks_qpattrib_pvt.g_contract_linrec.top_line_id
10514                         );
10515          fnd_log.STRING (fnd_log.level_procedure,
10516                          g_module ||
10517                          l_api_name,
10518                          '2017:*** GLOBAL VARIABLE - COV-LINE-ID   **** ' ||
10519                          oks_qpattrib_pvt.g_contract_linrec.cov_line_id
10520                         );
10521          fnd_log.STRING (fnd_log.level_procedure,
10522                          g_module ||
10523                          l_api_name,
10524                          '2018:*** GLOBAL VARIABLE - INV-ITEM-ID   **** ' ||
10525                          oks_qpattrib_pvt.g_contract_linrec.inventory_item_id
10526                         );
10527          fnd_log.STRING (fnd_log.level_procedure,
10528                          g_module ||
10529                          l_api_name,
10530                          '2019:*** GLOBAL VARIABLE - INV- ORG-ID   **** ' ||
10531                          oks_qpattrib_pvt.g_contract_linrec.invt_org_id
10532                         );
10533          fnd_log.STRING (fnd_log.level_procedure,
10534                          g_module ||
10535                          l_api_name,
10536                          '2020:*** GLOBAL VARIABLE - AUT- ORG-ID   **** ' ||
10537                          oks_qpattrib_pvt.g_contract_linrec.auth_org_id
10538                         );
10539          fnd_log.STRING (fnd_log.level_procedure,
10540                          g_module ||
10541                          l_api_name,
10542                          '2021:*** GLOBAL VARIABLE - PRICE -DATE   **** ' ||
10543                          oks_qpattrib_pvt.g_contract_linrec.pricing_date
10544                         );
10545          fnd_log.STRING (fnd_log.level_procedure,
10546                          g_module ||
10547                          l_api_name,
10548                          '2022:*** GLOBAL VARIABLE - PARTY -  ID   **** ' ||
10549                          oks_qpattrib_pvt.g_contract_linrec.party_id
10550                         );
10551          fnd_log.STRING (fnd_log.level_procedure,
10552                          g_module ||
10553                          l_api_name,
10554                          '2023:*** GLOBAL VARIABLE - CUST  -  ID   **** ' ||
10555                          oks_qpattrib_pvt.g_contract_linrec.customer_id
10556                         );
10557          fnd_log.STRING (fnd_log.level_procedure,
10558                          g_module ||
10559                          l_api_name,
10560                          '2024:*** GLOBAL VARIABLE - BREAK UOM     **** ' ||
10561                          oks_qpattrib_pvt.g_contract_linrec.break_uom
10562                         );
10563          fnd_log.STRING (fnd_log.level_procedure,
10564                          g_module ||
10565                          l_api_name,
10566                          '2025:*** GLOBAL VARIABLE - BILL  -  TO   **** ' ||
10567                          oks_qpattrib_pvt.g_contract_linrec.bill_to
10568                         );
10569          fnd_log.STRING (fnd_log.level_procedure,
10570                          g_module ||
10571                          l_api_name,
10572                          '2026:*** GLOBAL VARIABLE - SHIP  -  TO   **** ' ||
10573                          oks_qpattrib_pvt.g_contract_linrec.ship_to
10574                         );
10575          fnd_log.STRING (fnd_log.level_procedure,
10576                          g_module ||
10577                          l_api_name,
10578                          '2027:*** GLOBAL VARIABLE - PAYMENT  ID   **** ' ||
10579                          oks_qpattrib_pvt.g_contract_linrec.payment_term_id
10580                         );
10581          fnd_log.STRING (fnd_log.level_procedure,
10582                          g_module ||
10583                          l_api_name,
10584                          '2028:*** GLOBAL VARIABLE - BREAK UOM     **** ' ||
10585                          oks_qpattrib_pvt.g_contract_linrec.break_uom
10586                         );
10587       END IF;
10588 
10589 --dbms_output.put_line ('*** GLOBAL VARIABLE - CHR-ID        **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.CHR_ID);
10590 --dbms_output.put_line ('*** GLOBAL VARIABLE - TOP-LINE ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.TOP_LINE_ID);
10591 --dbms_output.put_line ('*** GLOBAL VARIABLE - COV-LINE-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.COV_LINE_ID);
10592 --dbms_output.put_line ('*** GLOBAL VARIABLE - INV-ITEM-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.INVENTORY_ITEM_ID);
10593 --dbms_output.put_line ('*** GLOBAL VARIABLE - INV- ORG-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.INVT_ORG_ID);
10594 --dbms_output.put_line ('*** GLOBAL VARIABLE - AUT- ORG-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.AUTH_ORG_ID);
10595 --dbms_output.put_line ('*** GLOBAL VARIABLE - PRICE -DATE   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.PRICING_DATE);
10596 --dbms_output.put_line ('*** GLOBAL VARIABLE - PARTY -  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.PARTY_ID);
10597 --dbms_output.put_line ('*** GLOBAL VARIABLE - CUST  -  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.CUSTOMER_ID);
10598 --dbms_output.put_line ('*** GLOBAL VARIABLE - AGREEM-  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.AGREEMENT_ID);
10599 --dbms_output.put_line ('*** GLOBAL VARIABLE - BILL  -  TO   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.BILL_TO);
10600 --dbms_output.put_line ('*** GLOBAL VARIABLE - SHIP  -  TO   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.SHIP_TO);
10601 --dbms_output.put_line ('*** GLOBAL VARIABLE - PAYMENT  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.PAYMENT_TERM_ID);
10602 --dbms_output.put_line ('*** GLOBAL VARIABLE - BREAK UOM     **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_HDRREC.BREAK_UOM);
10603 
10604       --dbms_output.put_line ('*** GLOBAL VARIABLE - CHR-ID        **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.CHR_ID);
10605 --dbms_output.put_line ('*** GLOBAL VARIABLE - TOP-LINE ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.TOP_LINE_ID);
10606 --dbms_output.put_line ('*** GLOBAL VARIABLE - COV-LINE-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.COV_LINE_ID);
10607 --dbms_output.put_line ('*** GLOBAL VARIABLE - INV-ITEM-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.INVENTORY_ITEM_ID);
10608 --dbms_output.put_line ('*** GLOBAL VARIABLE - INV- ORG-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.INVT_ORG_ID);
10609 --dbms_output.put_line ('*** GLOBAL VARIABLE - AUT- ORG-ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.AUTH_ORG_ID);
10610 --dbms_output.put_line ('*** GLOBAL VARIABLE - PRICE -DATE   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.PRICING_DATE);
10611 --dbms_output.put_line ('*** GLOBAL VARIABLE - PARTY -  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.PARTY_ID);
10612 --dbms_output.put_line ('*** GLOBAL VARIABLE - CUST  -  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.CUSTOMER_ID);
10613 --dbms_output.put_line ('*** GLOBAL VARIABLE - BREAK UOM     **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.BREAK_UOM);
10614 --dbms_output.put_line ('*** GLOBAL VARIABLE - BILL  -  TO   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.BILL_TO);
10615 --dbms_output.put_line ('*** GLOBAL VARIABLE - SHIP  -  TO   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.SHIP_TO);
10616 --dbms_output.put_line ('*** GLOBAL VARIABLE - PAYMENT  ID   **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.PAYMENT_TERM_ID);
10617 --dbms_output.put_line ('*** GLOBAL VARIABLE - BREAK UOM     **** ' || OKS_QPATTRIB_PVT.G_CONTRACT_LINREC.BREAK_UOM);
10618 
10619       IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
10620          fnd_log.STRING (fnd_log.level_statement,g_module ||l_api_name,
10621                          '2029:*** Calling qp_attr_mapping_pub.build_contexts **** '
10622                         );
10623       END IF;
10624 
10625       qp_attr_mapping_pub.build_contexts
10626                        (p_request_type_code                => 'OKS',
10627                         p_pricing_type                     => 'H',
10628                         x_price_contexts_result_tbl        => l_pricing_contexts_tbl,
10629                         x_qual_contexts_result_tbl         => l_qual_contexts_tbl
10630                        );
10631 
10632       IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
10633          fnd_log.STRING (fnd_log.level_statement,g_module ||l_api_name,
10634                          '2030:*** After Calling qp_attr_mapping_pub.build_contexts **** '
10635                         );
10636       END IF;
10637 
10638 --dbms_output.put_line ('*** BUILD CONTEXT HDR  LEVEL - PRICING TBL   **** ' || l_pricing_contexts_tbl.count);
10639 --dbms_output.put_line ('*** BUILD CONTEXT HDR  LEVEL - QUALIFY TBL   **** ' || l_qual_contexts_tbl.count);
10640 
10641       IF NOT NVL (p_detail_rec.intent, 'JA') = 'HM'
10642       THEN
10643           IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
10644               fnd_log.STRING (fnd_log.level_statement,g_module ||l_api_name,
10645                          '2031:*** Calling qp_attr_mapping_pub.build_contexts **** '
10646                         );
10647           END IF;
10648          qp_attr_mapping_pub.build_contexts
10649                       (p_request_type_code                => 'OKS',
10650                        p_pricing_type                     => 'L',
10651                        x_price_contexts_result_tbl        => l_pricing_contexts_tbl,
10652                        x_qual_contexts_result_tbl         => l_qual_contexts_tbl
10653                       );
10654           IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level) THEN
10655               fnd_log.STRING (fnd_log.level_statement,g_module ||l_api_name,
10656                          '2032:*** After Calling qp_attr_mapping_pub.build_contexts **** '
10657                         );
10658           END IF;
10659       END IF; -- IF NOT NVL (p_detail_rec.intent, 'JA') = 'HM'
10660 
10661       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10662       THEN
10663          fnd_log.STRING
10664                 (fnd_log.level_procedure,
10665                  g_module ||
10666                  l_api_name,
10667                  '3001:*** BUILD CONTEXT LINE LEVEL - PRICING TBL   **** ' ||
10668                  l_pricing_contexts_tbl.COUNT
10669                 );
10670          fnd_log.STRING
10671                  (fnd_log.level_procedure,
10672                   g_module ||
10673                   l_api_name,
10674                   '3002:*** BUILD CONTEXT LINE LEVEL - QUALIFY TBL   **** ' ||
10675                   l_qual_contexts_tbl.COUNT
10676                  );
10677       END IF;
10678 
10679 --dbms_output.put_line ('*** BUILD CONTEXT LINE LEVEL - PRICING TBL   **** ' || l_pricing_contexts_tbl.count);
10680 --dbms_output.put_line ('*** BUILD CONTEXT LINE LEVEL - QUALIFY TBL   **** ' || l_qual_contexts_tbl.count);
10681       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10682       THEN
10683          fnd_log.STRING
10684             (fnd_log.level_procedure,
10685              g_module ||
10686              l_api_name,
10687              '4001:************************** ASSEMBLING ********************************************'
10688             );
10689       END IF;
10690 
10691 --dbms_output.put_line ('************************** ASSEMBLING ********************************************');
10692  --GROUP I.I
10693       l_control_rec.pricing_event := l_pricing_event;
10694       l_control_rec.calculate_flag := 'Y';
10695       l_control_rec.simulation_flag := 'Y';
10696       l_control_rec.rounding_flag := 'N';
10697       l_control_rec.source_order_amount_flag := 'Y';
10698       l_control_rec.temp_table_insert_flag := 'Y';
10699 
10700       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10701       THEN
10702          fnd_log.STRING
10703             (fnd_log.level_procedure,
10704              g_module ||
10705              l_api_name,
10706              '4002:*************************************************************************'
10707             );
10708       END IF;
10709 
10710 --dbms_output.put_line ('*************************************************************************');
10711 
10712       --GROUP I.II
10713       l_line_tbl_ctr             := l_line_tbl_ctr +
10714                                     1;
10715       l_req_line_rec.request_type_code := l_request_type_code;
10716 
10717 --get line_id for product
10718       IF l_hdrtop_rec.tl_line_style IN (12, 46)
10719       THEN
10720          l_req_line_rec.line_id     := p_detail_rec.line_id;
10721       ELSE
10722          l_req_line_rec.line_id     := p_detail_rec.subline_id;
10723       END IF;
10724 
10725       l_req_line_rec.line_index  := 1;
10726       l_req_line_rec.line_type_code := l_line_type_code;
10727       l_req_line_rec.pricing_effective_date := l_def_pricing_date;
10728 
10729 --Get Lineqty/Lineuom
10730       IF l_hdrtop_rec.tl_line_style = 46
10731       THEN
10732          oks_subscription_pub.get_subs_qty
10733                                          (p_cle_id                           => p_detail_rec.line_id,
10734                                           x_return_status                    => l_return_status,
10735                                           x_quantity                         => l_qpprod_quantity,
10736                                           x_uom_code                         => l_qpprod_uom_code
10737                                          );
10738 
10739          IF l_return_status <> 'S'
10740          THEN
10741             okc_api.set_message
10742                            (g_app_name,
10743                             g_required_value,
10744                             g_col_name_token,
10745                             'JA-J-is returning error on subscription qty-uom'
10746                            );
10747             RAISE fnd_api.g_exc_error;
10748          END IF;
10749       ELSIF l_hdrtop_rec.tl_line_style = 12
10750       THEN
10751          l_req_line_rec.usage_pricing_type := 'REGULAR';
10752 
10753          IF NVL (p_detail_rec.intent, 'JA') IN ('PB', 'LM', 'SM')
10754          THEN
10755             l_qpprod_quantity          := 1;
10756             l_qpprod_uom_code          :=
10757                get_uom (p_id                               => l_hdrtop_rec.tl_object_id,
10758                         p_inv_org                          => l_hdrtop_rec.inv_org);
10759          ELSE
10760             l_qpprod_quantity          := p_detail_rec.usage_qty;
10761             l_qpprod_uom_code          := p_detail_rec.usage_uom_code;
10762          END IF;
10763       ELSE
10764          l_qpprod_quantity          := l_subline_rec.sl_qty;
10765          l_qpprod_uom_code          := l_subline_rec.sl_uom_code;
10766       END IF;
10767 
10768       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10769       THEN
10770          fnd_log.STRING
10771             (fnd_log.level_procedure,
10772              g_module ||
10773              l_api_name,
10774              '5001:*************************************************************************'
10775             );
10776          fnd_log.STRING (fnd_log.level_procedure,
10777                          g_module ||
10778                          l_api_name,
10779                          '5002:*** QPPROD-LINE UOM CODE **** ' ||
10780                          l_qpprod_uom_code
10781                         );
10782          fnd_log.STRING (fnd_log.level_procedure,
10783                          g_module ||
10784                          l_api_name,
10785                          '5003:*** QPPROD-LINE QUANTITY **** ' ||
10786                          l_qpprod_quantity
10787                         );
10788          fnd_log.STRING
10789             (fnd_log.level_procedure,
10790              g_module ||
10791              l_api_name,
10792              '5004:*************************************************************************'
10793             );
10794       END IF;
10795 
10796 --dbms_output.put_line ('*************************************************************************');
10797 --dbms_output.put_line ('*** QPPROD-LINE UOM CODE **** ' ||l_qpprod_uom_code);
10798 --dbms_output.put_line ('*** QPPROD-LINE QUANTITY **** ' ||l_qpprod_quantity);
10799 --dbms_output.put_line ('*************************************************************************');
10800       l_req_line_rec.line_quantity := l_qpprod_quantity;
10801       l_req_line_rec.line_uom_code := l_qpprod_uom_code;
10802       l_req_line_rec.currency_code := l_currency;
10803       l_req_line_rec.price_flag  := 'Y';
10804 
10805       IF NVL (p_detail_rec.intent, 'JA') = 'SB_O'
10806       THEN
10807          l_req_line_rec.updated_adjusted_unit_price :=
10808                                                p_detail_rec.asking_unit_price;
10809       END IF;
10810 
10811       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10812       THEN
10813          fnd_log.STRING (fnd_log.level_procedure,
10814                          g_module ||
10815                          l_api_name,
10816                          '6001:*** QPPROD-ADJUSTED AMOUNT **** ' ||
10817                          l_req_line_rec.updated_adjusted_unit_price
10818                         );
10819       END IF;
10820 
10821 --dbms_output.put_line ('*** QPPROD-ADJUSTED AMOUNT **** ' ||l_req_line_rec.updated_adjusted_unit_price);
10822       IF p_detail_rec.bill_from_date IS NOT NULL AND
10823          p_detail_rec.bill_to_date IS NOT NULL
10824       THEN
10825          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10826          THEN
10827             fnd_log.STRING
10828                   (fnd_log.level_procedure,
10829                    g_module ||
10830                    l_api_name,
10831                    '7001:*** BILL FROM DATES POPULATED IN PARENT ITEM ** ' ||
10832                    l_req_line_rec.updated_adjusted_unit_price
10833                   );
10834          END IF;
10835 
10836 --dbms_output.put_line ('*** BILL FROM DATES POPULATED IN PARENT ITEM ** ' ||l_req_line_rec.updated_adjusted_unit_price);
10837          l_req_line_rec.contract_start_date := p_detail_rec.bill_from_date;
10838          l_req_line_rec.contract_end_date := p_detail_rec.bill_to_date;
10839       END IF;
10840 
10841       l_req_line_tbl (l_line_tbl_ctr) := l_req_line_rec;
10842 
10843       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10844       THEN
10845          fnd_log.STRING
10846             (fnd_log.level_procedure,
10847              g_module ||
10848              l_api_name,
10849              '8001:*************************************************************************'
10850             );
10851          fnd_log.STRING (fnd_log.level_procedure,
10852                          g_module ||
10853                          l_api_name,
10854                          '8002:*** QPPROD-LINE TBL COUNT **** ' ||
10855                          l_req_line_tbl.COUNT ||
10856                          ' ***** LINE TBL CTR ' ||
10857                          l_line_tbl_ctr
10858                         );
10859          fnd_log.STRING
10860             (fnd_log.level_procedure,
10861              g_module ||
10862              l_api_name,
10863              '8003:*************************************************************************'
10864             );
10865       END IF;
10866 
10867 --dbms_output.put_line ('*************************************************************************');
10868 --dbms_output.put_line ('*** QPPROD-LINE TBL COUNT **** ' ||l_req_line_tbl.count || ' ***** LINE TBL CTR '|| l_line_tbl_ctr);
10869 --dbms_output.put_line ('*************************************************************************');
10870 
10871       --GROUP I.III
10872 -- /*
10873 -- bug 5069673
10874 --Product Context
10875     l_line_attr_tbl_ctr                      := l_line_attr_tbl_ctr + 1;
10876 
10877     l_req_line_attr_rec.LINE_INDEX           := 1;
10878     l_req_line_attr_rec.PRICING_CONTEXT      :='ITEM';
10879     l_req_line_attr_rec.PRICING_ATTRIBUTE    :='PRICING_ATTRIBUTE3';
10880     l_req_line_attr_rec.PRICING_ATTR_VALUE_FROM  := 'ALL';
10881     l_req_line_attr_rec.VALIDATED_FLAG       :='N';
10882 
10883     l_req_line_attr_tbl(l_line_attr_tbl_ctr) := l_req_line_attr_rec;
10884 -- */
10885 -- end bug 5069673
10886 
10887       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10888       THEN
10889          fnd_log.STRING
10890             (fnd_log.level_procedure,
10891              g_module ||
10892              l_api_name,
10893              '9001:*************************************************************************'
10894             );
10895       END IF;
10896 
10897 --dbms_output.put_line ('*************************************************************************');
10898 
10899       --GROUP I.III.A
10900       IF NVL (p_detail_rec.intent, 'JA') IN ('PB', 'USG') AND
10901          p_detail_rec.price_list_line_id IS NOT NULL
10902       THEN
10903          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10904          THEN
10905             fnd_log.STRING
10906                     (fnd_log.level_procedure,
10907                      g_module ||
10908                      l_api_name,
10909                      '9002:*** GROUP I - INSIDE LOCK LIST LINE BUILD   **** '
10910                     );
10911          END IF;
10912 
10913 --dbms_output.put_line ('*** GROUP I - INSIDE LOCK LIST LINE BUILD   **** ' );
10914          l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
10915                                        1;
10916          l_req_line_attr_rec.line_index := 1;
10917          l_req_line_attr_rec.pricing_context := 'QP_INTERNAL';
10918          l_req_line_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE1';
10919          l_req_line_attr_rec.pricing_attr_value_from :=
10920                                                p_detail_rec.price_list_line_id;
10921          l_req_line_attr_rec.validated_flag := 'N';
10922          l_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec;
10923       END IF;
10924 
10925       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10926       THEN
10927          fnd_log.STRING
10928             (fnd_log.level_procedure,
10929              g_module ||
10930              l_api_name,
10931              '9003:*************************************************************************'
10932             );
10933       END IF;
10934 
10935 --dbms_output.put_line ('*************************************************************************');
10936 
10937       --GROUP I.IV
10938       l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
10939                                     1;
10940       l_req_line_attr_rec.line_index := 1;
10941       l_req_line_attr_rec.pricing_context := 'ITEM';
10942       l_req_line_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE1';
10943 
10944       IF l_hdrtop_rec.tl_line_style IN (12, 46)
10945       THEN
10946          l_qpprod_inv_id            := l_hdrtop_rec.tl_object_id;
10947       ELSE
10948          IF l_subline_rec.sl_line_style IN (9, 25)
10949          THEN
10950             l_qpprod_inv_id            :=
10951                                    get_cp_inv_id (l_subline_rec.sl_object_id);
10952          ELSIF l_subline_rec.sl_line_style = 7
10953          THEN
10954             l_qpprod_inv_id            := l_subline_rec.sl_object_id;
10955          END IF;
10956       END IF;
10957 
10958       IF NVL (p_detail_rec.intent, 'JA') = 'HM'
10959       THEN
10960          l_req_line_attr_rec.pricing_attr_value_from := 99;
10961       ELSE
10962          IF NVL (p_detail_rec.intent, 'JA') = 'LM'
10963          THEN
10964             IF l_hdrtop_rec.tl_line_style IN (12, 46)
10965             THEN
10966                l_req_line_attr_rec.pricing_attr_value_from := l_qpprod_inv_id;
10967             ELSE
10968                l_req_line_attr_rec.pricing_attr_value_from := 99;
10969             END IF;
10970          ELSE
10971             l_req_line_attr_rec.pricing_attr_value_from := l_qpprod_inv_id;
10972          END IF;
10973       END IF;
10974 
10975       l_req_line_attr_rec.validated_flag := 'N';
10976       l_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec;
10977 
10978       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
10979       THEN
10980          fnd_log.STRING (fnd_log.level_procedure,
10981                          g_module ||
10982                          l_api_name,
10983                          '9101:*** PASSED QPPROD-INVENTORY ITEM ID **** ' ||
10984                          l_req_line_attr_rec.pricing_attr_value_from
10985                         );
10986          fnd_log.STRING
10987             (fnd_log.level_procedure,
10988              g_module ||
10989              l_api_name,
10990              '9102:*************************************************************************'
10991             );
10992       END IF;
10993 
10994 --dbms_output.put_line ('*** PASSED QPPROD-INVENTORY ITEM ID **** ' ||l_req_line_attr_rec.pricing_attr_Value_from);
10995 --dbms_output.put_line ('*************************************************************************');
10996 
10997       --GROUP I.V
10998       l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
10999                                     1;
11000       l_req_qual_rec.line_index  := 1;
11001       l_req_qual_rec.qualifier_context := 'MODLIST';
11002       l_req_qual_rec.qualifier_attribute := 'QUALIFIER_ATTRIBUTE4';
11003 
11004       IF p_detail_rec.price_list IS NOT NULL
11005       THEN
11006          l_price_id                 := p_detail_rec.price_list;
11007       ELSE
11008          l_price_id                 := l_hdrtop_rec.price_list_id;
11009       END IF;
11010 
11011       IF NVL (p_detail_rec.intent, 'JA') = 'HM'
11012       THEN
11013          l_req_qual_rec.qualifier_attr_value_from := 99;
11014       ELSE
11015          l_req_qual_rec.qualifier_attr_value_from := l_price_id;
11016       END IF;
11017 
11018       l_req_qual_rec.comparison_operator_code := '=';
11019       l_req_qual_rec.validated_flag := 'Y';
11020       l_req_qual_tbl (l_line_qual_tbl_ctr) := l_req_qual_rec;
11021 
11022       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
11023       THEN
11024          fnd_log.STRING (fnd_log.level_procedure,
11025                          g_module ||
11026                          l_api_name,
11027                          '9201:*** QPPROD-PRICE LIST ID **** ' ||
11028                          l_req_qual_rec.qualifier_attr_value_from
11029                         );
11030          fnd_log.STRING
11031             (fnd_log.level_procedure,
11032              g_module ||
11033              l_api_name,
11034              '9202:*************************************************************************'
11035             );
11036       END IF;
11037 
11038 --dbms_output.put_line ('*** QPPROD-PRICE LIST ID **** ' ||l_req_qual_rec.QUALIFIER_ATTR_VALUE_FROM );
11039 --dbms_output.put_line ('*************************************************************************');
11040 
11041       --START p_detail_rec.intent CHECK
11042       IF NOT NVL (p_detail_rec.intent, 'JA') = 'HM'
11043       THEN
11044 --GROUP I.VI
11045          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
11046          THEN
11047             fnd_log.STRING
11048                     (fnd_log.level_procedure,
11049                      g_module ||
11050                      l_api_name,
11051                      '9301:*** BEFORE PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||
11052                      l_req_line_attr_tbl.COUNT
11053                     );
11054          END IF;
11055 
11056          --dbms_output.put_line ('*** BEFORE PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||l_req_line_attr_tbl.count);
11057          IF l_hdrtop_rec.tl_line_style IN (12, 46)
11058          THEN
11059 --ADDED FOR AICPA
11060             IF l_pricing_contexts_tbl.COUNT > 0
11061             THEN
11062                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
11063                   )
11064                THEN
11065                   fnd_log.STRING
11066                      (fnd_log.level_procedure,
11067                       g_module ||
11068                       l_api_name,
11069                       '9401:*** GROUP I.VI - INSIDE PRICING CONTEXT BUILD ROUTINE   **** '
11070                      );
11071                END IF;
11072 
11073 --dbms_output.put_line ('*** GROUP I.VI - INSIDE PRICING CONTEXT BUILD ROUTINE   **** ' );
11074                l_ctr                      := l_pricing_contexts_tbl.FIRST;
11075 
11076                LOOP
11077                   l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
11078                                                 1;
11079                   l_req_line_attr_tbl (l_line_attr_tbl_ctr).line_index := 1;
11080                   l_req_line_attr_tbl (l_line_attr_tbl_ctr).validated_flag :=
11081                                                                            'N';
11082                   l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_context :=
11083                                    l_pricing_contexts_tbl (l_ctr).context_name;
11084                   l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attribute :=
11085                                  l_pricing_contexts_tbl (l_ctr).attribute_name;
11086                   l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attr_value_from :=
11087                                 l_pricing_contexts_tbl (l_ctr).attribute_value;
11088                   EXIT WHEN l_pricing_contexts_tbl.LAST = l_ctr;
11089                   l_ctr                      :=
11090                                            l_pricing_contexts_tbl.NEXT (l_ctr);
11091                END LOOP;
11092             END IF;
11093 
11094             build_top_pa (p_cle_id                           => p_detail_rec.line_id,
11095                           p_service_index                    => 1,
11096                           px_line_attr_tbl_ctr               => l_line_attr_tbl_ctr,
11097                           px_req_line_attr_tbl               => l_req_line_attr_tbl
11098                          );
11099          ELSIF l_subline_rec.sl_line_style IN (9, 25)
11100          THEN
11101             build_cp_pa (p_inst_id                          => l_subline_rec.sl_object_id,
11102                          p_service_index                    => 1,
11103                          px_line_attr_tbl_ctr               => l_line_attr_tbl_ctr,
11104                          px_req_line_attr_tbl               => l_req_line_attr_tbl
11105                         );
11106          END IF;
11107 
11108          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
11109          THEN
11110             fnd_log.STRING
11111                     (fnd_log.level_procedure,
11112                      g_module ||
11113                      l_api_name,
11114                      '9501:*** AFTER  PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||
11115                      l_req_line_attr_tbl.COUNT
11116                     );
11117             fnd_log.STRING
11118                (fnd_log.level_procedure,
11119                 g_module ||
11120                 l_api_name,
11121                 '9502:*************************************************************************'
11122                );
11123          END IF;
11124 
11125          --dbms_output.put_line ('*** AFTER  PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||l_req_line_attr_tbl.count);
11126          --dbms_output.put_line ('*************************************************************************');
11127 
11128          --GROUP I.VII
11129          IF l_hdrtop_rec.tl_line_style IN (12, 46)
11130          THEN                              --Check for Usage/Subscription Only
11131 --For Order Type
11132             IF check_hdr_discount (p_chr_id                           => l_hdrtop_rec.kh_id)
11133             THEN
11134                l_line_tbl_ctr             := l_line_tbl_ctr +
11135                                              1;
11136                l_req_line_rec3.request_type_code := 'ONT';
11137                l_req_line_rec3.line_index := l_line_tbl_ctr;
11138                l_req_line_rec3.line_type_code := 'ORDER';
11139                l_req_line_rec3.pricing_effective_date := l_def_pricing_date;
11140                l_req_line_rec3.currency_code := l_currency;
11141                l_req_line_rec3.price_flag := 'Y';
11142                l_req_line_tbl (l_line_tbl_ctr) := l_req_line_rec3;
11143 
11144                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
11145                   )
11146                THEN
11147                   fnd_log.STRING (fnd_log.level_procedure,
11148                                   g_module ||
11149                                   l_api_name,
11150                                   '9601:*** QPPROD-LINE TBL COUNT **** ' ||
11151                                   l_req_line_tbl.COUNT ||
11152                                   ' ***** LINE TBL CTR ' ||
11153                                   l_line_tbl_ctr
11154                                  );
11155                   fnd_log.STRING
11156                      (fnd_log.level_procedure,
11157                       g_module ||
11158                       l_api_name,
11159                       '9602:*************************************************************************'
11160                      );
11161                   fnd_log.STRING
11162                      (fnd_log.level_procedure,
11163                       g_module ||
11164                       l_api_name,
11165                       '9603:*** BEFORE HDR ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
11166                       l_req_line_detail_tbl.COUNT
11167                      );
11168                END IF;
11169 
11170                --dbms_output.put_line ('*** QPPROD-LINE TBL COUNT **** ' ||l_req_line_tbl.count || ' ***** LINE TBL CTR '|| l_line_tbl_ctr);
11171                --dbms_output.put_line ('*************************************************************************');
11172 
11173                --dbms_output.put_line ('*** BEFORE HDR ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
11174                build_hdr_adj (p_chr_id                           => l_hdrtop_rec.kh_id,
11175                               p_item_id                          => l_qpprod_inv_id,
11176                               p_service_index                    => l_line_tbl_ctr,
11177                               p_line_detl_tbl_ctr                => l_line_detl_tbl_ctr,
11178                               p_req_line_detail_tbl              => l_req_line_detail_tbl
11179                              );
11180 
11181                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
11182                   )
11183                THEN
11184                   fnd_log.STRING
11185                      (fnd_log.level_procedure,
11186                       g_module ||
11187                       l_api_name,
11188                       '9701:*** AFTER  HDR ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
11189                       l_req_line_detail_tbl.COUNT
11190                      );
11191                   fnd_log.STRING
11192                      (fnd_log.level_procedure,
11193                       g_module ||
11194                       l_api_name,
11195                       '9702:*** BEFORE LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
11196                       l_req_line_detail_tbl.COUNT
11197                      );
11198                END IF;
11199             --dbms_output.put_line ('*** AFTER  HDR ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
11200 
11201             --dbms_output.put_line ('*** BEFORE LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
11202             END IF;
11203 
11204             build_top_adj (p_cle_id                           => p_detail_rec.line_id,
11205                            p_item_id                          => l_qpprod_inv_id,
11206                            p_service_index                    => 1,
11207                            p_line_detl_tbl_ctr                => l_line_detl_tbl_ctr,
11208                            p_req_line_detail_tbl              => l_req_line_detail_tbl
11209                           );
11210             build_top_adj (p_cle_id                           => p_detail_rec.subline_id,
11211                            p_item_id                          => l_qpprod_inv_id,
11212                            p_service_index                    => 1,
11213                            p_line_detl_tbl_ctr                => l_line_detl_tbl_ctr,
11214                            p_req_line_detail_tbl              => l_req_line_detail_tbl
11215                           );
11216 
11217             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
11218             THEN
11219                fnd_log.STRING
11220                   (fnd_log.level_procedure,
11221                    g_module ||
11222                    l_api_name,
11223                    '9801:*** AFTER  LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
11224                    l_req_line_detail_tbl.COUNT
11225                   );
11226                fnd_log.STRING
11227                   (fnd_log.level_procedure,
11228                    g_module ||
11229                    l_api_name,
11230                    '9802:*************************************************************************'
11231                   );
11232             END IF;
11233 
11234             --dbms_output.put_line ('*** AFTER  LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
11235             --dbms_output.put_line ('*************************************************************************');
11236 
11237             --GROUP I.VIII
11238             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
11239             THEN
11240                fnd_log.STRING
11241                     (fnd_log.level_procedure,
11242                      g_module ||
11243                      l_api_name,
11244                      '9901:*** *** BEFORE QUAL (REQ QUAL_TBL_COUNT) **** ' ||
11245                      l_req_qual_tbl.COUNT
11246                     );
11247             END IF;
11248 
11249             --dbms_output.put_line ('*** BEFORE QUAL (REQ QUAL_TBL_COUNT) **** ' ||l_req_qual_tbl.count);
11250 
11251             --removing from xxx
11252 
11253             --ADDED FOR AICPA
11254             IF l_qual_contexts_tbl.COUNT > 0
11255             THEN
11256                l_ctr                      := l_qual_contexts_tbl.FIRST;
11257 
11258                LOOP
11259                   l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
11260                                                 1;
11261                   l_req_qual_tbl (l_line_qual_tbl_ctr).line_index := 1;
11262                   l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_context :=
11263                                       l_qual_contexts_tbl (l_ctr).context_name;
11264                   l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attribute :=
11265                                     l_qual_contexts_tbl (l_ctr).attribute_name;
11266                   l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attr_value_from :=
11267                                    l_qual_contexts_tbl (l_ctr).attribute_value;
11268                   l_req_qual_tbl (l_line_qual_tbl_ctr).validated_flag := 'N';
11269                   EXIT WHEN l_qual_contexts_tbl.LAST = l_ctr;
11270                   l_ctr                      :=
11271                                               l_qual_contexts_tbl.NEXT (l_ctr);
11272                END LOOP;
11273             END IF;
11274 
11275 --removing from xxx
11276             build_top_qa (p_cle_id                           => p_detail_rec.line_id,
11277                           p_item_id                          => NULL,
11278                           p_service_index                    => 1,
11279                           p_line_qual_tbl_ctr                => l_line_qual_tbl_ctr,
11280                           p_req_qual_tbl                     => l_req_qual_tbl
11281                          );
11282 
11283             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
11284             THEN
11285                fnd_log.STRING
11286                        (fnd_log.level_procedure,
11287                         g_module ||
11288                         l_api_name,
11289                         '10001:*** AFTER  QUAL (REQ QUAL_TBL_COUNT) **** ' ||
11290                         l_req_qual_tbl.COUNT
11291                        );
11292                fnd_log.STRING
11293                   (fnd_log.level_procedure,
11294                    g_module ||
11295                    l_api_name,
11296                    '10002:*************************************************************************'
11297                   );
11298             END IF;
11299          --dbms_output.put_line ('*** AFTER  QUAL (REQ QUAL_TBL_COUNT) **** ' ||l_req_qual_tbl.count);
11300          --dbms_output.put_line ('*************************************************************************');
11301          END IF;                           --Check for Usage/Subscription Only
11302 
11303          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
11304          THEN
11305             fnd_log.STRING
11306                (fnd_log.level_procedure,
11307                 g_module ||
11308                 l_api_name,
11309                 '11001:*************************************************************************'
11310                );
11311          END IF;
11312 
11313          --dbms_output.put_line ('*************************************************************************');
11314 
11315          --START DEPENDENT CONDITION
11316          IF l_hdrtop_rec.tl_line_style IN (1, 19)
11317          THEN
11318             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
11319             THEN
11320                fnd_log.STRING
11321                   (fnd_log.level_procedure,
11322                    g_module ||
11323                    l_api_name,
11324                    '12001:*************************************************************************'
11325                   );
11326                fnd_log.STRING
11327                   (fnd_log.level_procedure,
11328                    g_module ||
11329                    l_api_name,
11330                    '12002:*******************ENTERING DEPENDENT MODULE*****************************'
11331                   );
11332                fnd_log.STRING
11333                   (fnd_log.level_procedure,
11334                    g_module ||
11335                    l_api_name,
11336                    '12003:*************************************************************************'
11337                   );
11338             END IF;
11339 
11340             --dbms_output.put_line ('*************************************************************************');
11341             --dbms_output.put_line ('*******************ENTERING DEPENDENT MODULE*****************************');
11342             --dbms_output.put_line ('*************************************************************************');
11343 
11344             ---DURATION DERIVE
11345             IF NVL (p_detail_rec.intent, 'JA') = 'LM'
11346             THEN
11347                okc_time_util_pub.get_duration
11348                           (p_start_date                       => TRUNC
11349                                                                     (l_hdrtop_rec.tl_start_date),
11350                            p_end_date                         => TRUNC
11351                                                                     (l_hdrtop_rec.tl_end_date),
11352                            x_duration                         => l_qpserv_quantity,
11353                            x_timeunit                         => l_qpserv_uom_code,
11354                            x_return_status                    => l_return_status
11355                           );
11356 
11357                IF l_return_status <> 'S'
11358                THEN
11359                   okc_api.set_message
11360                                 (g_app_name,
11361                                  g_required_value,
11362                                  g_col_name_token,
11363                                  '(1) Service get_duration Fails -StDate ' ||
11364                                  l_hdrtop_rec.tl_start_date ||
11365                                  ' EndDate ' ||
11366                                  l_hdrtop_rec.tl_end_date
11367                                 );
11368                   RAISE fnd_api.g_exc_error;
11369                END IF;
11370             ELSE
11371                --begin new logic for partial periods
11372                OPEN l_get_hdrid_csr (l_subline_rec.sl_id);
11373 
11374                FETCH l_get_hdrid_csr
11375                 INTO l_chr_id;
11376 
11377                CLOSE l_get_hdrid_csr;
11378 
11379                IF l_chr_id IS NOT NULL
11380                THEN
11381                   oks_renew_util_pub.get_period_defaults
11382                                           (p_hdr_id                           => l_chr_id,
11383                                            p_org_id                           => NULL,
11384                                            x_period_type                      => l_period_type,
11385                                            x_period_start                     => l_period_start,
11386                                            x_price_uom                        => l_price_uom,
11387                                            x_return_status                    => x_return_status
11388                                           );
11389 
11390                   IF x_return_status <> 'S'
11391                   THEN
11392                      RAISE fnd_api.g_exc_error;
11393                   END IF;
11394                ELSE
11395                   RAISE invalid_hdr_id_exception;
11396                END IF;
11397 
11398                --End  logic for Partial Periods
11399                IF l_subline_rec.sl_price_uom IS NOT NULL
11400                THEN
11401                   l_qpserv_uom_code          := l_subline_rec.sl_price_uom;
11402                   l_qpserv_quantity          :=
11403                      oks_time_measures_pub.get_quantity
11404                                                 (l_subline_rec.sl_start_date,
11405                                                  l_subline_rec.sl_end_date,
11406                                                  l_subline_rec.sl_price_uom,
11407                                                  l_period_type,
11408                                                  l_period_start
11409                                                 );
11410                ELSE
11411                   IF (fnd_log.level_procedure >=
11412                                                fnd_log.g_current_runtime_level
11413                      )
11414                   THEN
11415                      fnd_log.STRING
11416                         (fnd_log.level_procedure,
11417                          g_module ||
11418                          l_api_name,
11419                          '13001:*************************************************************************'
11420                         );
11421                      fnd_log.STRING (fnd_log.level_procedure,
11422                                      g_module ||
11423                                      l_api_name,
11424                                      '13002:*** QPSERV-SL_START_DATE **** ' ||
11425                                      l_subline_rec.sl_start_date
11426                                     );
11427                      fnd_log.STRING (fnd_log.level_procedure,
11428                                      g_module ||
11429                                      l_api_name,
11430                                      '13003:*** QPSERV-SL_END  _DATE **** ' ||
11431                                      l_subline_rec.sl_end_date
11432                                     );
11433                      fnd_log.STRING
11434                         (fnd_log.level_procedure,
11435                          g_module ||
11436                          l_api_name,
11437                          '13004:*************************************************************************'
11438                         );
11439                   END IF;
11440 
11441                   --dbms_output.put_line ('*************************************************************************');
11442                   --dbms_output.put_line ('*** QPSERV-SL_START_DATE **** ' ||l_subline_rec.sl_start_date);
11443                   --dbms_output.put_line ('*** QPSERV-SL_END  _DATE **** ' ||l_subline_rec.sl_end_date);
11444                   --dbms_output.put_line ('*************************************************************************');
11445                   okc_time_util_pub.get_duration
11446                           (p_start_date                       => TRUNC
11447                                                                     (l_subline_rec.sl_start_date),
11448                            p_end_date                         => TRUNC
11449                                                                     (l_subline_rec.sl_end_date),
11450                            x_duration                         => l_qpserv_quantity,
11451                            x_timeunit                         => l_qpserv_uom_code,
11452                            x_return_status                    => l_return_status
11453                           );
11454 
11455                   IF l_return_status <> 'S'
11456                   THEN
11457                      okc_api.set_message
11458                                 (g_app_name,
11459                                  g_required_value,
11460                                  g_col_name_token,
11461                                  '(2) Service get_duration Fails -StDate ' ||
11462                                  l_hdrtop_rec.tl_start_date ||
11463                                  ' EndDate ' ||
11464                                  l_hdrtop_rec.tl_end_date
11465                                 );
11466                      RAISE fnd_api.g_exc_error;
11467                   END IF;
11468                END IF;
11469             END IF;                                     -- END LM INTENT CHECK
11470 
11471 ---DURATION DERIVE
11472 
11473             --GROUP II.I
11474             l_line_tbl_ctr             := l_line_tbl_ctr +
11475                                           1;
11476             l_req_line_rec2.request_type_code := l_request_type_code;
11477             l_req_line_rec2.line_index := 2;
11478             l_req_line_rec2.line_type_code := l_line_type_code;
11479             l_req_line_rec2.pricing_effective_date := l_def_pricing_date;
11480             l_req_line_rec2.line_quantity := l_qpserv_quantity;
11481             l_req_line_rec2.line_uom_code := l_qpserv_uom_code;
11482             l_req_line_rec2.currency_code := l_currency;
11483             l_req_line_rec2.contract_start_date := l_subline_rec.sl_start_date;
11484             l_req_line_rec2.contract_end_date := l_subline_rec.sl_end_date;
11485             l_req_line_rec2.price_flag := 'Y';
11486 
11487             IF NVL (p_detail_rec.intent, 'JA') = 'OA'
11488             THEN
11489                l_req_line_rec2.updated_adjusted_unit_price :=
11490                                                p_detail_rec.asking_unit_price;
11491             END IF;
11492  l_req_line_tbl (l_line_tbl_ctr) := l_req_line_rec2;
11493 
11494             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
11495             THEN
11496                fnd_log.STRING
11497                   (fnd_log.level_procedure,
11498                    g_module ||
11499                    l_api_name,
11500                    '14001:*************************************************************************'
11501                   );
11502                fnd_log.STRING (fnd_log.level_procedure,
11503                                g_module ||
11504                                l_api_name,
11505                                '14002:*** QPSERV-LINE UOM CODE **** ' ||
11506                                l_qpserv_uom_code
11507                               );
11508                fnd_log.STRING (fnd_log.level_procedure,
11509                                g_module ||
11510                                l_api_name,
11511                                '14003:*** QPSERV-LINE QUANTITY **** ' ||
11512                                l_qpserv_quantity
11513                               );
11514                fnd_log.STRING
11515                   (fnd_log.level_procedure,
11516                    g_module ||
11517                    l_api_name,
11518                    '14004:*************************************************************************'
11519                   );
11520                fnd_log.STRING (fnd_log.level_procedure,
11521                                g_module ||
11522                                l_api_name,
11523                                '14005:*** QPPROD-LINE TBL COUNT **** ' ||
11524                                l_req_line_tbl.COUNT ||
11525                                ' ***** LINE TBL CTR ' ||
11526                                l_line_tbl_ctr
11527                               );
11528                fnd_log.STRING
11529                   (fnd_log.level_procedure,
11530                    g_module ||
11531                    l_api_name,
11532                    '14006:*************************************************************************'
11533                   );
11534             END IF;
11535 
11536 --dbms_output.put_line ('*************************************************************************');
11537 --dbms_output.put_line ('*** QPSERV-LINE UOM CODE **** ' ||l_qpserv_uom_code);
11538 --dbms_output.put_line ('*** QPSERV-LINE QUANTITY **** ' ||l_qpserv_quantity);
11539 --dbms_output.put_line ('*************************************************************************');
11540 
11541             --dbms_output.put_line ('*** QPPROD-LINE TBL COUNT **** ' ||l_req_line_tbl.count || ' ***** LINE TBL CTR '|| l_line_tbl_ctr);
11542 --dbms_output.put_line ('*************************************************************************');
11543 
11544             --GROUP II.II
11545 --/*
11546 -- bug 5069673
11547 --Product Context
11548          l_line_attr_tbl_ctr                          := l_line_attr_tbl_ctr + 1;
11549 
11550          l_req_line_attr_rec.LINE_INDEX               := 2;
11551          l_req_line_attr_rec.PRICING_CONTEXT          :='ITEM';
11552          l_req_line_attr_rec.PRICING_ATTRIBUTE        :='PRICING_ATTRIBUTE3';
11553          l_req_line_attr_rec.PRICING_ATTR_VALUE_FROM  := 'ALL';
11554          l_req_line_attr_rec.VALIDATED_FLAG           :='N';
11555          l_req_line_attr_tbl(l_line_attr_tbl_ctr)     := l_req_line_attr_rec;
11556 
11557 --*/
11558 -- end bug 5069673
11559 
11560 --GROUP II.III
11561             l_qpserv_inv_id            := l_hdrtop_rec.tl_object_id;
11562             l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
11563                                           1;
11564             l_req_line_attr_rec.line_index := 2;
11565             l_req_line_attr_rec.pricing_context := 'ITEM';
11566             l_req_line_attr_rec.pricing_attribute := 'PRICING_ATTRIBUTE1';
11567             l_req_line_attr_rec.pricing_attr_value_from := l_qpserv_inv_id;
11568             l_req_line_attr_rec.validated_flag := 'N';
11569             l_req_line_attr_tbl (l_line_attr_tbl_ctr) := l_req_line_attr_rec;
11570 
11571             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
11572             THEN
11573                fnd_log.STRING
11574                   (fnd_log.level_procedure,
11575                    g_module ||
11576                    l_api_name,
11577                    '15001:*************************************************************************'
11578                   );
11579                fnd_log.STRING (fnd_log.level_procedure,
11580                                g_module ||
11581                                l_api_name,
11582                                '15002:*** QPSERV-INVENTORY ID **** ' ||
11583                                l_req_line_attr_rec.pricing_attr_value_from
11584                               );
11585                fnd_log.STRING
11586                   (fnd_log.level_procedure,
11587                    g_module ||
11588                    l_api_name,
11589                    '15003:*************************************************************************'
11590                   );
11591             END IF;
11592 
11593 --dbms_output.put_line ('*************************************************************************');
11594 --dbms_output.put_line ('*** QPSERV-INVENTORY ID **** ' || l_req_line_attr_rec.PRICING_ATTR_VALUE_FROM  );
11595 --dbms_output.put_line ('*************************************************************************');
11596 
11597             --GROUP II.IV
11598             l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
11599                                           1;
11600             l_req_qual_rec.line_index  := 2;
11601             l_req_qual_rec.qualifier_context := 'MODLIST';
11602             l_req_qual_rec.qualifier_attribute := 'QUALIFIER_ATTRIBUTE4';
11603 
11604             IF NVL (p_detail_rec.intent, 'JA') = 'HM'
11605             THEN
11606                l_req_qual_rec.qualifier_attr_value_from := 99;
11607             ELSE
11608                l_req_qual_rec.qualifier_attr_value_from := l_price_id;
11609             END IF;
11610 
11611             l_req_qual_rec.comparison_operator_code := '=';
11612             l_req_qual_rec.validated_flag := 'Y';
11613             l_req_qual_tbl (l_line_qual_tbl_ctr) := l_req_qual_rec;
11614 
11615             IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
11616             THEN
11617                fnd_log.STRING
11618                   (fnd_log.level_procedure,
11619                    g_module ||
11620                    l_api_name,
11621                    '16001:*************************************************************************'
11622                   );
11623                fnd_log.STRING (fnd_log.level_procedure,
11624                                g_module ||
11625                                l_api_name,
11626                                '16002:*** QPSERV-PRICE LIST ID **** ' ||
11627                                l_req_qual_rec.qualifier_attr_value_from
11628                               );
11629                fnd_log.STRING
11630                   (fnd_log.level_procedure,
11631                    g_module ||
11632                    l_api_name,
11633                    '16003:*************************************************************************'
11634                   );
11635             END IF;
11636 
11637 --dbms_output.put_line ('*************************************************************************');
11638 --dbms_output.put_line ('*** QPSERV-PRICE LIST ID **** ' || l_req_qual_rec.QUALIFIER_ATTR_VALUE_FROM);
11639 --dbms_output.put_line ('*************************************************************************');
11640             IF NOT NVL (p_detail_rec.intent, 'JA') = 'LM'
11641             THEN                                              --LM CHECK START
11642 --GROUP II.V
11643 
11644                --ADDED FOR AICPA
11645                IF l_pricing_contexts_tbl.COUNT > 0
11646                THEN
11647                   l_ctr                      := l_pricing_contexts_tbl.FIRST;
11648 
11649                   LOOP
11650                      l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
11651                                                    1;
11652                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).line_index := 2;
11653                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).validated_flag :=
11654                                                                            'N';
11655                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_context :=
11656                                    l_pricing_contexts_tbl (l_ctr).context_name;
11657                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attribute :=
11658                                  l_pricing_contexts_tbl (l_ctr).attribute_name;
11659                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attr_value_from :=
11660                                 l_pricing_contexts_tbl (l_ctr).attribute_value;
11661                      EXIT WHEN l_pricing_contexts_tbl.LAST = l_ctr;
11662                      l_ctr                      :=
11663                                            l_pricing_contexts_tbl.NEXT (l_ctr);
11664                   END LOOP;
11665                END IF;
11666 
11667                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
11668                   )
11669                THEN
11670                   fnd_log.STRING
11671                      (fnd_log.level_procedure,
11672                       g_module ||
11673                       l_api_name,
11674                       '17001:*************************************************************************'
11675                      );
11676                   fnd_log.STRING
11677                      (fnd_log.level_procedure,
11678                       g_module ||
11679                       l_api_name,
11680                       '17002:*** SERV BEFORE PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||
11681                       l_req_line_attr_tbl.COUNT
11682                      );
11683                END IF;
11684 
11685                --dbms_output.put_line ('*************************************************************************');
11686                --dbms_output.put_line ('*** SERV BEFORE PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||l_req_line_attr_tbl.count);
11687                build_top_pa (p_cle_id                           => p_detail_rec.subline_id,
11688                              p_service_index                    => 2,
11689                              px_line_attr_tbl_ctr               => l_line_attr_tbl_ctr,
11690                              px_req_line_attr_tbl               => l_req_line_attr_tbl
11691                             );
11692 
11693                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
11694                   )
11695                THEN
11696                   fnd_log.STRING
11697                      (fnd_log.level_procedure,
11698                       g_module ||
11699                       l_api_name,
11700                       '17003:*** SERV AFTER  PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||
11701                       l_req_line_attr_tbl.COUNT
11702                      );
11703                   fnd_log.STRING
11704                      (fnd_log.level_procedure,
11705                       g_module ||
11706                       l_api_name,
11707                       '17004:*************************************************************************'
11708                      );
11709                END IF;
11710 
11711                --dbms_output.put_line ('*** SERV AFTER  PA (REQ_LINE_ATTR_TBL_COUNT ) **** ' ||l_req_line_attr_tbl.count);
11712                --dbms_output.put_line ('*************************************************************************');
11713 
11714                --GROUP II.VI
11715                IF check_hdr_discount (p_chr_id                           => l_hdrtop_rec.kh_id)
11716                THEN
11717 --For Order Type
11718                   l_line_tbl_ctr             := l_line_tbl_ctr +
11719                                                 1;
11720                   l_req_line_rec4.request_type_code := 'ONT';
11721                   l_req_line_rec4.line_index := l_line_tbl_ctr;
11722                   l_req_line_rec4.line_type_code := 'ORDER';
11723                   l_req_line_rec4.pricing_effective_date := l_def_pricing_date;
11724                   l_req_line_rec4.currency_code := l_currency;
11725                   l_req_line_rec4.price_flag := 'Y';
11726                   l_req_line_tbl (l_line_tbl_ctr) := l_req_line_rec4;
11727 
11728                   IF (fnd_log.level_procedure >=
11729                                                fnd_log.g_current_runtime_level
11730                      )
11731                   THEN
11732                      fnd_log.STRING
11733                         (fnd_log.level_procedure,
11734                          g_module ||
11735                          l_api_name,
11736                          '17001:*************************************************************************'
11737                         );
11738                      fnd_log.STRING
11739                             (fnd_log.level_procedure,
11740                              g_module ||
11741                              l_api_name,
11742                              '17002:******** SERV HDR ADJUST CURRENCY *** ' ||
11743                              l_currency ||
11744                              ' PRICING DATE ' ||
11745                              l_def_pricing_date
11746                             );
11747                      fnd_log.STRING
11748                         (fnd_log.level_procedure,
11749                          g_module ||
11750                          l_api_name,
11751                          '17003:*************************************************************************'
11752                         );
11753                      fnd_log.STRING
11754                                    (fnd_log.level_procedure,
11755                                     g_module ||
11756                                     l_api_name,
11757                                     '17004:*** QPPROD-LINE TBL COUNT **** ' ||
11758                                     l_req_line_tbl.COUNT ||
11759                                     ' ***** LINE TBL CTR ' ||
11760                                     l_line_tbl_ctr
11761                                    );
11762                      fnd_log.STRING
11763                         (fnd_log.level_procedure,
11764                          g_module ||
11765                          l_api_name,
11766                          '17005:*************************************************************************'
11767                         );
11768                      fnd_log.STRING
11769                         (fnd_log.level_procedure,
11770                          g_module ||
11771                          l_api_name,
11772                          '17006:*************************************************************************'
11773                         );
11774                      fnd_log.STRING
11775                         (fnd_log.level_procedure,
11776                          g_module ||
11777                          l_api_name,
11778                          '17007:*** SERV BEFORE HDR ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
11779                          l_req_line_detail_tbl.COUNT
11780                         );
11781                   END IF;
11782 
11783 --dbms_output.put_line ('*************************************************************************');
11784 --dbms_output.put_line ('******** SERV HDR ADJUST CURRENCY *** ' || l_currency || ' PRICING DATE ' || l_def_pricing_date);
11785 --dbms_output.put_line ('*************************************************************************');
11786 --dbms_output.put_line ('*** QPPROD-LINE TBL COUNT **** ' ||l_req_line_tbl.count || ' ***** LINE TBL CTR '|| l_line_tbl_ctr);
11787 --dbms_output.put_line ('*************************************************************************');
11788 
11789                   --dbms_output.put_line ('*************************************************************************');
11790                   --dbms_output.put_line ('*** SERV BEFORE HDR ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
11791                   build_hdr_adj
11792                                (p_chr_id                           => l_hdrtop_rec.kh_id,
11793                                 p_item_id                          => l_qpserv_inv_id,
11794                                 p_service_index                    => l_line_tbl_ctr,
11795                                 p_line_detl_tbl_ctr                => l_line_detl_tbl_ctr,
11796                                 p_req_line_detail_tbl              => l_req_line_detail_tbl
11797                                );
11798  IF (fnd_log.level_procedure >=
11799                                                fnd_log.g_current_runtime_level
11800                      )
11801                   THEN
11802                      fnd_log.STRING
11803                         (fnd_log.level_procedure,
11804                          g_module ||
11805                          l_api_name,
11806                          '18001:*** SERV AFTER  HDR ADJ REQ LINE_DETL_TBL_COUNT **** ' ||
11807                          l_req_line_detail_tbl.COUNT
11808                         );
11809                      fnd_log.STRING
11810                         (fnd_log.level_procedure,
11811                          g_module ||
11812                          l_api_name,
11813                          '18002:*************************************************************************'
11814                         );
11815                   END IF;
11816                --dbms_output.put_line ('*** SERV AFTER  HDR ADJ REQ LINE_DETL_TBL_COUNT **** ' ||l_req_line_detail_tbl.count);
11817                --dbms_output.put_line ('*************************************************************************');
11818                END IF;
11819 
11820 --GROUP II.VII
11821                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
11822                   )
11823                THEN
11824                   fnd_log.STRING
11825                      (fnd_log.level_procedure,
11826                       g_module ||
11827                       l_api_name,
11828                       '19001:*************************************************************************'
11829                      );
11830                   fnd_log.STRING
11831                      (fnd_log.level_procedure,
11832                       g_module ||
11833                       l_api_name,
11834                       '19002:*** SERV BEFORE LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
11835                       l_req_line_detail_tbl.COUNT
11836                      );
11837                END IF;
11838 
11839                --dbms_output.put_line ('*************************************************************************');
11840                --dbms_output.put_line ('*** SERV BEFORE LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
11841                build_top_adj (p_cle_id                           => p_detail_rec.line_id,
11842                               p_item_id                          => l_qpserv_inv_id,
11843                               p_service_index                    => 2,
11844                               p_line_detl_tbl_ctr                => l_line_detl_tbl_ctr,
11845                               p_req_line_detail_tbl              => l_req_line_detail_tbl
11846                              );
11847 
11848                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
11849                   )
11850                THEN
11851                   fnd_log.STRING
11852                      (fnd_log.level_procedure,
11853                       g_module ||
11854                       l_api_name,
11855                       '19003:*** SERV AFTER LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
11856                       l_req_line_detail_tbl.COUNT
11857                      );
11858                   fnd_log.STRING
11859                      (fnd_log.level_procedure,
11860                       g_module ||
11861                       l_api_name,
11862                       '19004:*************************************************************************'
11863                      );
11864                END IF;
11865 
11866                --dbms_output.put_line ('*** SERV AFTER LIN ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
11867                --dbms_output.put_line ('*************************************************************************');
11868 
11869                --GROUP II.VIII
11870                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
11871                   )
11872                THEN
11873                   fnd_log.STRING
11874                      (fnd_log.level_procedure,
11875                       g_module ||
11876                       l_api_name,
11877                       '19005:*************************************************************************'
11878                      );
11879                   fnd_log.STRING
11880                      (fnd_log.level_procedure,
11881                       g_module ||
11882                       l_api_name,
11883                       '19006:*** SERV BEFORE SUB LINE ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
11884                       l_req_line_detail_tbl.COUNT
11885                      );
11886                END IF;
11887 
11888                --dbms_output.put_line ('*************************************************************************');
11889                --dbms_output.put_line ('*** SERV BEFORE SUB LINE ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
11890                build_top_adj (p_cle_id                           => p_detail_rec.subline_id,
11891                               p_item_id                          => l_qpserv_inv_id,
11892                               p_service_index                    => 2,
11893                               p_line_detl_tbl_ctr                => l_line_detl_tbl_ctr,
11894                               p_req_line_detail_tbl              => l_req_line_detail_tbl
11895                              );
11896 
11897                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
11898                   )
11899                THEN
11900                   fnd_log.STRING
11901                      (fnd_log.level_procedure,
11902                       g_module ||
11903                       l_api_name,
11904                       '19007:*** SERV BEFORE SUB LINE ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||
11905                       l_req_line_detail_tbl.COUNT
11906                      );
11907                   fnd_log.STRING
11908                      (fnd_log.level_procedure,
11909                       g_module ||
11910                       l_api_name,
11911                       '19008:*************************************************************************'
11912                      );
11913                END IF;
11914 
11915                --dbms_output.put_line ('*** SERV BEFORE SUB LINE ADJ (REQ LINE_DETL_TBL_COUNT) **** ' ||l_req_line_detail_tbl.count);
11916                --dbms_output.put_line ('*************************************************************************');
11917 
11918                --GROUP II.IX
11919 
11920                --ADDED FOR AICPA
11921                IF l_qual_contexts_tbl.COUNT > 0
11922                THEN
11923                   l_ctr                      := l_qual_contexts_tbl.FIRST;
11924 
11925                   LOOP
11926                      l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
11927                                                    1;
11928                      l_req_qual_tbl (l_line_qual_tbl_ctr).line_index := 2;
11929                      l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_context :=
11930                                       l_qual_contexts_tbl (l_ctr).context_name;
11931                      l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attribute :=
11932                                     l_qual_contexts_tbl (l_ctr).attribute_name;
11933                      l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attr_value_from :=
11934                                    l_qual_contexts_tbl (l_ctr).attribute_value;
11935                      l_req_qual_tbl (l_line_qual_tbl_ctr).validated_flag :=
11936                                                                            'N';
11937                      EXIT WHEN l_qual_contexts_tbl.LAST = l_ctr;
11938                      l_ctr                      :=
11939                                               l_qual_contexts_tbl.NEXT (l_ctr);
11940                   END LOOP;
11941                END IF;
11942 
11943                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
11944                   )
11945                THEN
11946                   fnd_log.STRING
11947                      (fnd_log.level_procedure,
11948                       g_module ||
11949                       l_api_name,
11950                       '19009:*************************************************************************'
11951                      );
11952                   fnd_log.STRING
11953                      (fnd_log.level_procedure,
11954                       g_module ||
11955                       l_api_name,
11956                       '19010:*** SERV BEFORE QUAL (REQ QUAL_TBL_COUNT) **** ' ||
11957                       l_req_qual_tbl.COUNT
11958                      );
11959                END IF;
11960 
11961                --dbms_output.put_line ('*************************************************************************');
11962                --dbms_output.put_line ('*** SERV BEFORE QUAL (REQ QUAL_TBL_COUNT) **** ' ||l_req_qual_tbl.count);
11963                build_top_qa (p_cle_id                           => p_detail_rec.line_id,
11964                              p_item_id                          => NULL,
11965                              p_service_index                    => 2,
11966                              p_line_qual_tbl_ctr                => l_line_qual_tbl_ctr,
11967                              p_req_qual_tbl                     => l_req_qual_tbl
11968                             );
11969 
11970                IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level
11971                   )
11972                THEN
11973                   fnd_log.STRING
11974                      (fnd_log.level_procedure,
11975                       g_module ||
11976                       l_api_name,
11977                       '19011:*************************************************************************'
11978                      );
11979                   fnd_log.STRING
11980                      (fnd_log.level_procedure,
11981                       g_module ||
11982                       l_api_name,
11983                       '19012:*** SERV AFTER QUAL (REQ QUAL_TBL_COUNT) **** ' ||
11984                       l_req_qual_tbl.COUNT
11985                      );
11986                END IF;
11987             --dbms_output.put_line ('*************************************************************************');
11988             --dbms_output.put_line ('*** SERV AFTER QUAL (REQ QUAL_TBL_COUNT) **** ' ||l_req_qual_tbl.count);
11989             ELSE
11990                IF l_pricing_contexts_tbl.COUNT > 0
11991                THEN
11992                   l_ctr                      := l_pricing_contexts_tbl.FIRST;
11993 
11994                   LOOP
11995                      l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
11996                                                    1;
11997                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).line_index := 2;
11998                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).validated_flag :=
11999                                                                            'N';
12000                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_context :=
12001                                    l_pricing_contexts_tbl (l_ctr).context_name;
12002                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attribute :=
12003                                  l_pricing_contexts_tbl (l_ctr).attribute_name;
12004                      l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attr_value_from :=
12005                                 l_pricing_contexts_tbl (l_ctr).attribute_value;
12006                      EXIT WHEN l_pricing_contexts_tbl.LAST = l_ctr;
12007                      l_ctr                      :=
12008                                            l_pricing_contexts_tbl.NEXT (l_ctr);
12009                   END LOOP;
12010                END IF;
12011 
12012                IF l_qual_contexts_tbl.COUNT > 0
12013                THEN
12014                   l_ctr                      := l_qual_contexts_tbl.FIRST;
12015 
12016                   LOOP
12017                      l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
12018                                                    1;
12019                      l_req_qual_tbl (l_line_qual_tbl_ctr).line_index := 2;
12020                      l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_context :=
12021                                       l_qual_contexts_tbl (l_ctr).context_name;
12022                      l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attribute :=
12023                                     l_qual_contexts_tbl (l_ctr).attribute_name;
12024                      l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attr_value_from :=
12025                                    l_qual_contexts_tbl (l_ctr).attribute_value;
12026                      l_req_qual_tbl (l_line_qual_tbl_ctr).validated_flag :=
12027                                                                            'N';
12028                      EXIT WHEN l_qual_contexts_tbl.LAST = l_ctr;
12029                      l_ctr                      :=
12030                                               l_qual_contexts_tbl.NEXT (l_ctr);
12031                   END LOOP;
12032                END IF;
12033             END IF;                                             --LM CHECK END
12034 
12035 --GROUP II.X
12036             l_line_rela_tbl_ctr        := l_line_rela_tbl_ctr +
12037                                           1;
12038             l_req_related_lines_rec.line_index := 1;
12039             l_req_related_lines_rec.relationship_type_code := 'SERVICE_LINE';
12040             l_req_related_lines_rec.related_line_index := 2;
12041             l_req_related_lines_tbl (l_line_rela_tbl_ctr) :=
12042                                                        l_req_related_lines_rec;
12043          END IF;
12044 --END DEPENDENT CONDITION
12045       ELSE
12046          IF l_pricing_contexts_tbl.COUNT > 0
12047          THEN
12048             l_ctr                      := l_pricing_contexts_tbl.FIRST;
12049 
12050             LOOP
12051                l_line_attr_tbl_ctr        := l_line_attr_tbl_ctr +
12052                                              1;
12053                l_req_line_attr_tbl (l_line_attr_tbl_ctr).line_index := 1;
12054                l_req_line_attr_tbl (l_line_attr_tbl_ctr).validated_flag := 'N';
12055                l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_context :=
12056                                    l_pricing_contexts_tbl (l_ctr).context_name;
12057                l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attribute :=
12058                                  l_pricing_contexts_tbl (l_ctr).attribute_name;
12059                l_req_line_attr_tbl (l_line_attr_tbl_ctr).pricing_attr_value_from :=
12060                                 l_pricing_contexts_tbl (l_ctr).attribute_value;
12061                EXIT WHEN l_pricing_contexts_tbl.LAST = l_ctr;
12062                l_ctr                      :=
12063                                            l_pricing_contexts_tbl.NEXT (l_ctr);
12064             END LOOP;
12065          END IF;
12066 
12067          IF l_qual_contexts_tbl.COUNT > 0
12068          THEN
12069             l_ctr                      := l_qual_contexts_tbl.FIRST;
12070 
12071             LOOP
12072                l_line_qual_tbl_ctr        := l_line_qual_tbl_ctr +
12073                                              1;
12074                l_req_qual_tbl (l_line_qual_tbl_ctr).line_index := 1;
12075                l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_context :=
12076                                       l_qual_contexts_tbl (l_ctr).context_name;
12077                l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attribute :=
12078                                     l_qual_contexts_tbl (l_ctr).attribute_name;
12079                l_req_qual_tbl (l_line_qual_tbl_ctr).qualifier_attr_value_from :=
12080                                    l_qual_contexts_tbl (l_ctr).attribute_value;
12081                l_req_qual_tbl (l_line_qual_tbl_ctr).validated_flag := 'N';
12082                EXIT WHEN l_qual_contexts_tbl.LAST = l_ctr;
12083                l_ctr                      := l_qual_contexts_tbl.NEXT (l_ctr);
12084             END LOOP;
12085          END IF;
12086       END IF;
12087 
12088 --END p_detail_rec.intent CHECK
12089 
12090 -- SKEKKAR
12091 -- Added debug statements to print all the parameters that we pass and get back from QP
12092 -- bug 5069673
12093 --
12094     IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)   THEN
12095     --
12096     -- Input Parameter 1: l_control_rec
12097     --
12098                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************'
12099                                );
12100                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Input Parameter l_control_rec *************'
12101                                 );
12102                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************'
12103                                );
12104                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.PRICING_EVENT : '|| l_control_rec.PRICING_EVENT
12105                                 );
12106                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.CALCULATE_FLAG : '|| l_control_rec.CALCULATE_FLAG
12107                                 );
12108                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.SIMULATION_FLAG : '|| l_control_rec.SIMULATION_FLAG
12109                                 );
12110                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.ROUNDING_FLAG : '|| l_control_rec.ROUNDING_FLAG
12111                                 );
12112                 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
12113                                 );
12114                 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
12115                                 );
12116                 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
12117                                 );
12118                 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
12119                                 );
12120                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.DEBUG_FLAG : '|| l_control_rec.DEBUG_FLAG
12121                                 );
12122                 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
12123                                 );
12124                 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
12125                                 );
12126                 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
12127                                 );
12128                 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
12129                                 );
12130                 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
12131                                 );
12132                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.VIEW_CODE : '|| l_control_rec.VIEW_CODE
12133                                 );
12134                 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
12135                                 );
12136                 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
12137                                 );
12138                 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
12139                                 );
12140                 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
12141                                 );
12142                 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
12143                                 );
12144                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.FUNCTION_CURRENCY : '|| l_control_rec.FUNCTION_CURRENCY
12145                                 );
12146                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_control_rec.ORG_ID : '|| l_control_rec.ORG_ID
12147                                 );
12148 
12149     --
12150     -- Input Parameter 2: l_req_line_tbl
12151     --
12152         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12153         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ********** Input Parameter 2: l_req_line_tbl ****************');
12154         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_line_tbl.COUNT '|| l_req_line_tbl.COUNT
12155                         );
12156         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12157         IF l_req_line_tbl.COUNT > 0 THEN
12158             p := l_req_line_tbl.FIRST;
12159                 LOOP
12160                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_line_tbl('|| p ||') *************'
12161                                 );
12162                 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
12163                                 );
12164                 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
12165                                 );
12166                 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
12167                                 );
12168                 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
12169                                 );
12170                 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
12171                                 );
12172                 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
12173                                 );
12174                 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
12175                                 );
12176                 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
12177                                 );
12178                 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
12179                                 );
12180                 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
12181                                 );
12182                 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
12183                                 );
12184                 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
12185                                 );
12186                 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
12187                                 );
12188                 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
12189                                 );
12190                 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
12191                                 );
12192                 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
12193                                 );
12194                 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
12195                                 );
12196                 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
12197                                 );
12198                 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
12199                                 );
12200                 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
12201                                 );
12202                 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
12203                                 );
12204                 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
12205                                 );
12206                 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
12207                                 );
12208                 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
12209                                 );
12210                 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
12211                                 );
12212                 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
12213                                 );
12214                 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
12215                                 );
12216                 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
12217                                 );
12218                 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
12219                                 );
12220                 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
12221                                 );
12222                 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
12223                                 );
12224                 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
12225                                 );
12226                 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
12227                                 );
12228                 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
12229                                 );
12230                 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
12231                                 );
12232                 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
12233                                 );
12234                 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
12235                                 );
12236                 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
12237                                 );
12238                 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
12239                                 );
12240                 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
12241                                 );
12242                 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
12243                                 );
12244                 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
12245                                 );
12246                 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
12247                                 );
12248                 EXIT WHEN l_req_line_tbl.LAST = p;
12249                 p := l_req_line_tbl.NEXT(p);
12250             END LOOP;
12251         END IF; -- l_req_line_tbl.COUNT > 0
12252 
12253     --
12254     -- Input Parameter 3: l_req_qual_tbl
12255     --
12256         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12257         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************** Input Parameter 3: l_req_qual_tbl ******************');
12258         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: l_req_qual_tbl.COUNT '|| l_req_qual_tbl.COUNT
12259                         );
12260         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12261         IF l_req_qual_tbl.COUNT > 0 THEN
12262             p := l_req_qual_tbl.FIRST;
12263                 LOOP
12264                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_qual_tbl('|| p ||') *************'
12265                                 );
12266                 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
12267                                 );
12268                 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
12269                                 );
12270                 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
12271                                 );
12272                 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
12273                                 );
12274                 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
12275                                 );
12276                 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
12277                                 );
12278                 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
12279                                 );
12280                 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
12281                                 );
12282                 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
12283                                 );
12284                 EXIT WHEN l_req_qual_tbl.LAST = p;
12285                 p := l_req_qual_tbl.NEXT(p);
12286             END LOOP;
12287         END IF; -- l_req_qual_tbl.COUNT > 0
12288     --
12289     -- Input Parameter 4: l_req_line_attr_tbl
12290     --
12291         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12292         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Input Parameter 4: l_req_line_attr_tbl ******************');
12293         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
12294                         );
12295         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12296         IF l_req_line_attr_tbl.COUNT > 0 THEN
12297            p := l_req_line_attr_tbl.FIRST;
12298                 LOOP
12299                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_line_attr_tbl('|| p ||') *************'
12300                                 );
12301                 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
12302                                 );
12303                 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
12304                                 );
12305                 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
12306                                 );
12307                 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
12308                                 );
12309                 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
12310                                 );
12311                 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
12312                                 );
12313                 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
12314                                 );
12315                 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
12316                                 );
12317                 EXIT WHEN l_req_line_attr_tbl.LAST = p;
12318                 p := l_req_line_attr_tbl.NEXT(p);
12319             END LOOP;
12320         END IF; -- l_req_line_attr_tbl.COUNT > 0
12321 
12322     --
12323     -- Input Parameter 5: l_req_line_detail_tbl
12324     --
12325         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12326         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Input Parameter 5: l_req_line_detail_tbl ******************');
12327             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
12328                         );
12329         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12330 
12331         IF l_req_line_detail_tbl.COUNT > 0 THEN
12332             p := l_req_line_detail_tbl.FIRST;
12333                 LOOP
12334                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_line_detail_tbl('|| p ||') *************'
12335                                 );
12336                 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
12337                                 );
12338                 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
12339                                 );
12340                 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
12341                                 );
12342                 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
12343                                 );
12344                 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
12345                                 );
12346                 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
12347                                 );
12348                 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
12349                                 );
12350                 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
12351                                 );
12352                 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
12353                                 );
12354                         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
12355                                 );
12356                 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
12357                                 );
12358                 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
12359                                 );
12360                 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
12361                                 );
12362                 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
12363                                 );
12364                         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
12365                                 );
12366                 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
12367                                 );
12368                 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
12369                                 );
12370                 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
12371                                 );
12372                 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
12373                                 );
12374                         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
12375                                 );
12376                 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
12377                                 );
12378                 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
12379                                 );
12380                 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
12381                                 );
12382                 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
12383                                 );
12384                         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
12385                                 );
12386                 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
12387                                 );
12388                 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
12389                                 );
12390                 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
12391                                 );
12392                 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
12393                                 );
12394                         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
12395                                 );
12396                 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
12397                                 );
12398                 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
12399                                 );
12400                 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
12401                                 );
12402                 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
12403                                 );
12404                         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
12405                                 );
12406                 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
12407                                 );
12408                 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
12409                                 );
12410                 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
12411                                 );
12412                 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
12413                                 );
12414                         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
12415                                 );
12416                 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
12417                                 );
12418                 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
12419                                 );
12420                 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
12421                                 );
12422                 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
12423                                 );
12424                         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
12425                                 );
12426                 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
12427                                 );
12428                 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
12429                                 );
12430                 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
12431                                 );
12432                 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
12433                                 );
12434                         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
12435                                 );
12436                 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
12437                                 );
12438                 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
12439                                 );
12440                 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
12441                                 );
12442                 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
12443                                 );
12444                         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
12445                                 );
12446                 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
12447                                 );
12448                 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
12449                                 );
12450                 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
12451                                 );
12452                 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
12453                                 );
12454                         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
12455                                 );
12456                 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
12457                                 );
12458                 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
12459                                 );
12460                 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
12461                                 );
12462                 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
12463                                 );
12464                         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
12465                                 );
12466                 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
12467                                 );
12468                 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
12469                                 );
12470                 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
12471                                 );
12472                 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
12473                                 );
12474                 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
12475                                 );
12476                 EXIT WHEN l_req_line_detail_tbl.LAST = p;
12477                 p := l_req_line_detail_tbl.NEXT(p);
12478             END LOOP;
12479         END IF; -- l_req_line_detail_tbl.COUNT > 0
12480     --
12481     -- Input Parameter 6: l_req_line_detail_qual_tbl
12482     --
12483         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12484         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Input Parameter 6: l_req_line_detail_qual_tbl ******************');
12485             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
12486                         );
12487         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12488 
12489         IF l_req_line_detail_qual_tbl.COUNT > 0 THEN
12490            p := l_req_line_detail_qual_tbl.FIRST;
12491                 LOOP
12492                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_line_detail_qual_tbl('|| p ||') *************'
12493                                 );
12494                 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
12495                                 );
12496                 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
12497                                 );
12498                 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
12499                                 );
12500                 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
12501                                 );
12502                 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
12503                                 );
12504                 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
12505                                 );
12506                 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
12507                                 );
12508                 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
12509                                 );
12510                 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
12511                                 );
12512                 EXIT WHEN l_req_line_detail_qual_tbl.LAST = p;
12513                 p := l_req_line_detail_qual_tbl.NEXT(p);
12514             END LOOP;
12515         END IF; -- l_req_line_detail_qual_tbl.COUNT > 0
12516     --
12517     -- Input Parameter 7: l_req_line_detail_attr_tbl
12518     --
12519         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12520         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Input Parameter 7: l_req_line_detail_attr_tbl ******************');
12521             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
12522                         );
12523         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12524 
12525         IF l_req_line_detail_attr_tbl.COUNT > 0 THEN
12526            p := l_req_line_detail_attr_tbl.FIRST;
12527                 LOOP
12528                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_line_detail_attr_tbl('|| p ||') *************'
12529                                 );
12530                 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
12531                                 );
12532                 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
12533                                 );
12534                 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
12535                                 );
12536                 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
12537                                 );
12538                 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
12539                                 );
12540                 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
12541                                 );
12542                 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
12543                                 );
12544                 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
12545                                 );
12546                 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
12547                                 );
12548                 EXIT WHEN l_req_line_detail_attr_tbl.LAST = p;
12549                 p := l_req_line_detail_attr_tbl.NEXT(p);
12550             END LOOP;
12551         END IF; -- l_req_line_detail_attr_tbl.COUNT > 0
12552 
12553     --
12554     -- Input Parameter 8: l_req_related_lines_tbl
12555     --
12556         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12557         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Input Parameter 8: l_req_related_lines_tbl ******************');
12558         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
12559                         );
12560         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12561 
12562         IF l_req_related_lines_tbl.COUNT > 0 THEN
12563            p := l_req_related_lines_tbl.FIRST;
12564                 LOOP
12565                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter l_req_related_lines_tbl('|| p ||') *************'
12566                                 );
12567                 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
12568                                 );
12569                  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
12570                                 );
12571                 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
12572                                 );
12573                 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
12574                                 );
12575                 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
12576                                 );
12577                 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
12578                                 );
12579                 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
12580                                 );
12581                 EXIT WHEN l_req_related_lines_tbl.LAST = p;
12582                 p := l_req_related_lines_tbl.NEXT(p);
12583             END LOOP;
12584         END IF; -- l_req_related_lines_tbl.COUNT > 0
12585 
12586     END IF; -- SKEKKAR end Added debug statements to print all the parameters bug 5069673
12587 
12588 
12589    END calc_price_pre;
12590 
12591 /*skuchima Proceure to do postprocessing after  QP call Bug:7539977 */
12592  PROCEDURE calc_price_post(p_detail_rec                    IN       input_details,
12593                          lx_req_line_tbl                    in     qp_preq_grp.line_tbl_type,
12594       lx_req_qual_tbl                   in      qp_preq_grp.qual_tbl_type,
12595       lx_req_line_attr_tbl              in      qp_preq_grp.line_attr_tbl_type,
12596       lx_req_line_detail_tbl            in      qp_preq_grp.line_detail_tbl_type,
12597       lx_req_line_detail_qual_tbl       in      qp_preq_grp.line_detail_qual_tbl_type,
12598       lx_req_line_detail_attr_tbl       in      qp_preq_grp.line_detail_attr_tbl_type,
12599       lx_req_related_lines_tbl          in      qp_preq_grp.related_lines_tbl_type,
12600                         x_price_details                 OUT NOCOPY price_details,
12601       x_modifier_details              OUT NOCOPY qp_preq_grp.line_detail_tbl_type,
12602       x_price_break_details           OUT NOCOPY g_price_break_tbl_type,
12603       x_return_status                 OUT NOCOPY VARCHAR2,
12604       x_msg_count                     OUT NOCOPY NUMBER,
12605       x_msg_data                      OUT NOCOPY VARCHAR2
12606 ) IS
12607        l_api_name                     CONSTANT VARCHAR2 (30) := 'CALC_PRICE_POST';
12608 --QP Variables
12609      /* l_control_rec                           qp_preq_grp.control_record_type;
12610       l_req_line_tbl                          qp_preq_grp.line_tbl_type;
12611       l_req_line_detail_tbl                   qp_preq_grp.line_detail_tbl_type;
12612       l_req_related_lines_tbl                 qp_preq_grp.related_lines_tbl_type;
12613       l_req_qual_tbl                          qp_preq_grp.qual_tbl_type;
12614       l_req_line_attr_tbl                     qp_preq_grp.line_attr_tbl_type;
12615       l_req_line_detail_qual_tbl              qp_preq_grp.line_detail_qual_tbl_type;
12616       l_req_line_detail_attr_tbl              qp_preq_grp.line_detail_attr_tbl_type;*/
12617       l_req_line_rec                          qp_preq_grp.line_rec_type;
12618       l_req_line_rec2                         qp_preq_grp.line_rec_type;
12619       l_req_line_rec3                         qp_preq_grp.line_rec_type;
12620       l_req_line_rec4                         qp_preq_grp.line_rec_type;
12621       l_req_qual_rec                          qp_preq_grp.qual_rec_type;
12622       l_req_line_attr_rec                     qp_preq_grp.line_attr_rec_type;
12623       l_req_line_detail_rec                   qp_preq_grp.line_detail_rec_type;
12624       l_req_line_detail_rec2                  qp_preq_grp.line_detail_rec_type;
12625       l_req_related_lines_rec                 qp_preq_grp.related_lines_rec_type;
12626       /*lx_req_line_tbl                         qp_preq_grp.line_tbl_type;
12627       lx_req_qual_tbl                         qp_preq_grp.qual_tbl_type;
12628       lx_req_line_attr_tbl                    qp_preq_grp.line_attr_tbl_type;
12629       lx_req_line_detail_tbl                  qp_preq_grp.line_detail_tbl_type;
12630       lx_req_line_detail_qual_tbl             qp_preq_grp.line_detail_qual_tbl_type;
12631       lx_req_line_detail_attr_tbl             qp_preq_grp.line_detail_attr_tbl_type;
12632       lx_req_related_lines_tbl                qp_preq_grp.related_lines_tbl_type;*/
12633       lx_return_status                        VARCHAR2 (1);
12634       lx_return_status_text                   VARCHAR2 (2000);
12635 --General Variables;
12636       l_ctr                                   NUMBER;
12637       l_top_ctr                               NUMBER;
12638       i                                       NUMBER;
12639       i2                                      NUMBER;
12640       l_return_status                         VARCHAR2 (200);
12641       l_msg_count                             NUMBER;
12642       l_msg_data                              VARCHAR2 (2000);
12643       l_index                                 NUMBER;
12644       l_line_tbl_ctr                          NUMBER := 0;
12645       l_line_detl_tbl_ctr                     NUMBER := 0;
12646       l_line_attr_tbl_ctr                     NUMBER := 0;
12647       l_line_qual_tbl_ctr                     NUMBER := 0;
12648       l_line_rela_tbl_ctr                     NUMBER := 0;
12649       l_product_index                         NUMBER := 0;
12650       l_product_hdr_index                     NUMBER := 0;
12651       l_service_index                         NUMBER := 0;
12652       l_service_hdr_index                     NUMBER := 0;
12653       l_pricing_event                         VARCHAR2 (20);
12654       l_request_type_code                     VARCHAR2 (20);
12655       l_line_type_code                        VARCHAR2 (20);
12656       l_price_id                              NUMBER;
12657       l_def_pricing_date                      DATE;
12658       l_def_pricing_profile                   VARCHAR2 (240);
12659       l_currency                              VARCHAR2 (240);
12660       l_qpprod_inv_id                         NUMBER;
12661       l_qpprod_quantity                       NUMBER;
12662       l_qpprod_uom_code                       VARCHAR2 (240);
12663       l_qpserv_inv_id                         NUMBER;
12664       l_qpserv_quantity                       NUMBER;
12665       l_qpserv_uom_code                       VARCHAR2 (240);
12666       l_tangible                              BOOLEAN;
12667       p                                       NUMBER; -- fnd_debug variable bug 5069673
12668 --Table Handler Variables
12669       l_rule_rec                              okc_rule_pvt.rulv_rec_type;
12670       l_patv_tbl                              okc_price_adjustment_pub.patv_tbl_type;
12671       lx_patv_tbl                             okc_price_adjustment_pub.patv_tbl_type;
12672 --Variables for Price Break
12673       l_price_break_tbl                       g_price_break_tbl_type;
12674       l_rel_index                             NUMBER;
12675       l_lin_index                             NUMBER;
12676       l_party_id                              NUMBER;
12677       l_customer_id                           NUMBER;
12678       l_pricing_contexts_tbl                  qp_attr_mapping_pub.contexts_result_tbl_type;
12679       l_qual_contexts_tbl                     qp_attr_mapping_pub.contexts_result_tbl_type;
12680 --variables for partial periods logic
12681       l_period_type                           VARCHAR2 (30);
12682       l_period_start                          VARCHAR2 (30);
12683       l_price_uom                             VARCHAR2 (30);
12684       l_chr_id                                NUMBER;
12685       invalid_hdr_id_exception                EXCEPTION;
12686 
12687 --Cursor Variables
12688       CURSOR l_skg_csr
12689       IS
12690          SELECT kh.ID kh_id,
12691                 kh.start_date kh_start_date,
12692                 kh.date_signed kh_signed_date,
12693                 kh.currency_code kh_currency_code,
12694                 kh.authoring_org_id kh_auth_org,
12695                 kh.inv_organization_id inv_org,
12696                 kh.price_list_id price_list_id,
12697                 kh.bill_to_site_use_id kh_bill_to,
12698                 kh.ship_to_site_use_id kh_ship_to,
12699                 kh.payment_term_id kh_payment_term_id
12700            FROM okc_k_headers_all_b kh
12701           WHERE kh.ID = p_detail_rec.chr_id;
12702 
12703       l_skg_rec                               l_skg_csr%ROWTYPE;
12704 
12705       -- GCHADHA --
12706       -- 20 OCT 2004  --
12707       -- MULTI CURRENCY PRICELIST --
12708       --  Added Conversion_type and conversion_rate in the cursor
12709       CURSOR l_hdrtop_csr
12710       IS
12711          SELECT kh.ID kh_id,
12712                 kh.start_date kh_start_date,
12713                 kh.date_signed kh_signed_date,
12714                 kh.currency_code kh_currency_code,
12715                 kh.conversion_type kh_conversion_type,                  -- new
12716                 kh.conversion_rate kh_conversion_rate,                  -- new
12717                 kh.authoring_org_id kh_auth_org,
12718                 kh.inv_organization_id inv_org,
12719                 NVL (kl.price_list_id, kh.price_list_id) price_list_id,
12720                 kh.bill_to_site_use_id kh_bill_to,
12721                 kh.ship_to_site_use_id kh_ship_to,
12722                 kh.payment_term_id kh_payment_term_id,
12723                 kl.ID tl_id,
12724                 kl.start_date tl_start_date,
12725                 kl.end_date tl_end_date,
12726                 kl.lse_id tl_line_style,
12727                 kl.bill_to_site_use_id tl_bill_to,
12728                 kl.ship_to_site_use_id tl_ship_to,
12729                 kl.payment_term_id tl_payment_term_id,
12730                 ki.object1_id1 tl_object_id,
12731                 ki.number_of_items tl_qty,
12732                 ki.uom_code tl_uom_code
12733            FROM okc_k_headers_all_b kh,
12734                 okc_k_lines_b kl,
12735                 okc_k_items ki
12736           WHERE kh.ID = kl.chr_id            AND
12737                 kl.ID = p_detail_rec.line_id AND
12738                 ki.cle_id = kl.ID;
12739 
12740       l_hdrtop_rec                            l_hdrtop_csr%ROWTYPE;
12741 
12742       CURSOR l_subline_csr
12743       IS
12744          SELECT kl.ID sl_id,
12745                 kl.start_date sl_start_date,
12746                 kl.end_date sl_end_date,
12747                 kl.lse_id sl_line_style,
12748                 ki.object1_id1 sl_object_id,
12749                 ki.number_of_items sl_qty,
12750                 ki.uom_code sl_uom_code,
12751                 ks.price_uom sl_price_uom
12752            FROM okc_k_lines_b kl,
12753                 okc_k_items ki,
12754                 oks_k_lines_b ks
12755           WHERE kl.ID = p_detail_rec.subline_id AND
12756                 ks.cle_id = kl.ID               AND
12757                 ki.cle_id = kl.ID;
12758 
12759       l_subline_rec                           l_subline_csr%ROWTYPE;
12760 
12761       CURSOR l_get_hdrid_csr (
12762          p_cle_id                                 NUMBER
12763       )
12764       IS
12765          SELECT dnz_chr_id
12766            FROM okc_k_lines_b
12767           WHERE ID = p_cle_id;
12768 
12769 
12770      BEGIN
12771 
12772 
12773       OPEN l_hdrtop_csr;
12774 
12775       FETCH l_hdrtop_csr
12776        INTO l_hdrtop_rec;
12777 
12778       CLOSE l_hdrtop_csr;
12779 
12780        -- skekkar
12781 -- added debug statements to print all the parameters that we pass and get back from qp
12782 -- bug 5069673
12783 --
12784     if (fnd_log.level_statement >= fnd_log.g_current_runtime_level)   then
12785     --
12786     -- output parameter 1: lx_req_line_tbl
12787     --
12788         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12789         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_line_tbl.COUNT '|| lx_req_line_tbl.COUNT
12790                         );
12791         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12792         IF lx_req_line_tbl.COUNT > 0 THEN
12793             p := lx_req_line_tbl.FIRST;
12794                 LOOP
12795                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_line_tbl('|| p ||') *************'
12796                                 );
12797                 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
12798                                 );
12799                 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
12800                                 );
12801                 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
12802                                 );
12803                 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
12804                                 );
12805                 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
12806                                 );
12807                 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
12808                                 );
12809                 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
12810                                 );
12811                 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
12812                                 );
12813                 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
12814                                 );
12815                 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
12816                                 );
12817                 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
12818                                 );
12819                 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
12820                                 );
12821                 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
12822                                 );
12823                 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
12824                                 );
12825                 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
12826                                 );
12827                 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
12828                                 );
12829                 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
12830                                 );
12831                 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
12832                                 );
12833                 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
12834                                 );
12835                 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
12836                                 );
12837                 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
12838                                 );
12839                 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
12840                                 );
12841                 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
12842                                 );
12843                 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
12844                                 );
12845                 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
12846                                 );
12847                 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
12848                                 );
12849                 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
12850                                 );
12851                 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
12852                                 );
12853                 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
12854                                 );
12855                 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
12856                                 );
12857                 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
12858                                 );
12859                 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
12860                                 );
12861                 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
12862                                 );
12863                 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
12864                                 );
12865                 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
12866                                 );
12867                 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
12868                                 );
12869                 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
12870                                 );
12871                 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
12872                                 );
12873                 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
12874                                 );
12875                 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
12876                                 );
12877                 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
12878                                 );
12879                 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
12880                                 );
12881                 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
12882                                 );
12883                 EXIT WHEN lx_req_line_tbl.LAST = p;
12884                 p := lx_req_line_tbl.NEXT(p);
12885             END LOOP;
12886         END IF; -- lx_req_line_tbl.COUNT > 0
12887 
12888     --
12889     -- Output Parameter 2: lx_req_qual_tbl
12890     --
12891         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12892         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Output Parameter 2: lx_req_qual_tbl ************');
12893         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_req_qual_tbl.COUNT '|| lx_req_qual_tbl.COUNT
12894                         );
12895         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12896         IF lx_req_qual_tbl.COUNT > 0 THEN
12897             p := lx_req_qual_tbl.FIRST;
12898                 LOOP
12899                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_qual_tbl('|| p ||') *************'
12900                                 );
12901                 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
12902                                 );
12903                 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
12904                                 );
12905                 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
12906                                 );
12907                 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
12908                                 );
12909                 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
12910                                 );
12911                 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
12912                                 );
12913                 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
12914                                 );
12915                 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
12916                                 );
12917                 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
12918                                 );
12919                 EXIT WHEN lx_req_qual_tbl.LAST = p;
12920                 p := lx_req_qual_tbl.NEXT(p);
12921             END LOOP;
12922         END IF; -- lx_req_qual_tbl.COUNT > 0
12923     --
12924     -- Output Parameter 3: lx_req_line_attr_tbl
12925     --
12926         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12927         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ****************** Output Parameter 3: lx_req_line_attr_tbl ************');
12928         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
12929                         );
12930         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12931         IF lx_req_line_attr_tbl.COUNT > 0 THEN
12932             p := lx_req_line_attr_tbl.FIRST;
12933                 LOOP
12934                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_line_attr_tbl('|| p ||') *************'
12935                                 );
12936                 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
12937                                 );
12938                 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
12939                                 );
12940                 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
12941                                 );
12942                 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
12943                                 );
12944                 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
12945                                 );
12946                 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
12947                                 );
12948                 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
12949                                 );
12950                 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
12951                                 );
12952                 EXIT WHEN lx_req_line_attr_tbl.LAST = p;
12953                 p := lx_req_line_attr_tbl.NEXT(p);
12954             END LOOP;
12955         END IF; -- lx_req_line_attr_tbl.COUNT > 0
12956 
12957     --
12958     -- Output Parameter 4: lx_req_line_detail_tbl
12959     --
12960         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12961         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ****************** Output Parameter 4: lx_req_line_detail_tbl ************');
12962             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
12963                         );
12964         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
12965 
12966         IF lx_req_line_detail_tbl.COUNT > 0 THEN
12967             p := lx_req_line_detail_tbl.FIRST;
12968                 LOOP
12969                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_line_detail_tbl('|| p ||') *************'
12970                                 );
12971                 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
12972                                 );
12973                 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
12974                                 );
12975                 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
12976                                 );
12977                 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
12978                                 );
12979                 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
12980                                 );
12981                 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
12982                                 );
12983                 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
12984                                 );
12985                 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
12986                                 );
12987                 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
12988                                 );
12989                         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
12990                                 );
12991                 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
12992                                 );
12993                 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
12994                                 );
12995                 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
12996                                 );
12997                 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
12998                                 );
12999                         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
13000                                 );
13001                 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
13002                                 );
13003                 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
13004                                 );
13005                 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
13006                                 );
13007                 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
13008                                 );
13009                         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
13010                                 );
13011                 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
13012                                 );
13013                 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
13014                                 );
13015                 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
13016                                 );
13017                 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
13018                                 );
13019                         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
13020                                 );
13021                 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
13022                                 );
13023                 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
13024                                 );
13025                 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
13026                                 );
13027                 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
13028                                 );
13029                         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
13030                                 );
13031                 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
13032                                 );
13033                 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
13034                                 );
13035                 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
13036                                 );
13037                 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
13038                                 );
13039                         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
13040                                 );
13041                 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
13042                                 );
13043                 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
13044                                 );
13045                 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
13046                                 );
13047                 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
13048                                 );
13049                         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
13050                                 );
13051                 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
13052                                 );
13053                 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
13054                                 );
13055                 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
13056                                 );
13057                 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
13058                                 );
13059                         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
13060                                 );
13061                 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
13062                                 );
13063                 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
13064                                 );
13065                 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
13066                                 );
13067                 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
13068                                 );
13069                         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
13070                                 );
13071                 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
13072                                 );
13073                 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
13074                                 );
13075                 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
13076                                 );
13077                 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
13078                                 );
13079                         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
13080                                 );
13081                 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
13082                                 );
13083                 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
13084                                 );
13085                 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
13086                                 );
13087                 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
13088                                 );
13089                         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
13090                                 );
13091                 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
13092                                 );
13093                 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
13094                                 );
13095                 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
13096                                 );
13097                 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
13098                                 );
13099                         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
13100                                 );
13101                 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
13102                                 );
13103                 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
13104                                 );
13105                 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
13106                                 );
13107                 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
13108                                 );
13109                 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
13110                                 );
13111                 EXIT WHEN lx_req_line_detail_tbl.LAST = p;
13112                 p := lx_req_line_detail_tbl.NEXT(p);
13113             END LOOP;
13114         END IF; -- lx_req_line_detail_tbl.COUNT > 0
13115 
13116     --
13117     -- Output Parameter 5: lx_req_line_detail_qual_tbl
13118     --
13119         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
13120         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Output Parameter 5: lx_req_line_detail_qual_tbl ******************');
13121             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
13122                         );
13123         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
13124 
13125         IF lx_req_line_detail_qual_tbl.COUNT > 0 THEN
13126             p := lx_req_line_detail_qual_tbl.FIRST;
13127                 LOOP
13128                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_line_detail_qual_tbl('|| p ||') *************'
13129                                 );
13130                 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
13131                                 );
13132                 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
13133                                 );
13134                 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
13135                                 );
13136                 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
13137                                 );
13138                 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
13139                                 );
13140                 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
13141                                 );
13142                 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
13143                                 );
13144                 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
13145                                 );
13146                 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
13147                                 );
13148                 EXIT WHEN lx_req_line_detail_qual_tbl.LAST = p;
13149                 p := lx_req_line_detail_qual_tbl.NEXT(p);
13150             END LOOP;
13151         END IF; -- lx_req_line_detail_qual_tbl.COUNT > 0
13152     --
13153     -- Output Parameter 6: lx_req_line_detail_attr_tbl
13154     --
13155         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
13156         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Output Parameter 6: lx_req_line_detail_attr_tbl ******************');
13157             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
13158                         );
13159         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
13160 
13161         IF lx_req_line_detail_attr_tbl.COUNT > 0 THEN
13162             p := lx_req_line_detail_attr_tbl.FIRST;
13163                 LOOP
13164                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_line_detail_attr_tbl('|| p ||') *************'
13165                                 );
13166                 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
13167                                 );
13168                 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
13169                                 );
13170                 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
13171                                 );
13172                 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
13173                                 );
13174                 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
13175                                 );
13176                 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
13177                                 );
13178                 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
13179                                 );
13180                 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
13181                                 );
13182                 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
13183                                 );
13184                 EXIT WHEN lx_req_line_detail_attr_tbl.LAST = p;
13185                 p := lx_req_line_detail_attr_tbl.NEXT(p);
13186             END LOOP;
13187         END IF; -- lx_req_line_detail_attr_tbl.COUNT > 0
13188 
13189     --
13190     -- Output Parameter 7: lx_req_related_lines_tbl
13191     --
13192         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
13193         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** Output Parameter 7: lx_req_related_lines_tbl ******************');
13194         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
13195                         );
13196         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
13197 
13198         IF lx_req_related_lines_tbl.COUNT > 0 THEN
13199             p := lx_req_related_lines_tbl.FIRST;
13200                 LOOP
13201                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_req_related_lines_tbl('|| p ||') *************'
13202                                 );
13203                 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
13204                                 );
13205                  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
13206                                 );
13207                 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
13208                                 );
13209                 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
13210                                 );
13211                 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
13212                                 );
13213                 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
13214                                 );
13215                 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
13216                                 );
13217                 EXIT WHEN lx_req_related_lines_tbl.LAST = p;
13218                 p := lx_req_related_lines_tbl.NEXT(p);
13219             END LOOP;
13220         END IF; -- lx_req_related_lines_tbl.COUNT > 0
13221     --
13222     -- Output Parameter 8: lx_return_status
13223     --
13224                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
13225                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_return_status *************'
13226                                 );
13227                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_return_status '||lx_return_status
13228                                 );
13229                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
13230     --
13231     -- Output Parameter 9: lx_return_status_text
13232     --
13233                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ************* Parameter lx_return_status_text *************'
13234                                 );
13235                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: lx_return_status_text '||lx_return_status_text
13236                                 );
13237                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
13238 
13239     END IF; -- SKEKKAR end Added debug statements to print all the parameters bug 5069673
13240 
13241       IF NVL (lx_return_status, 'S') <> 'S'
13242       THEN
13243          okc_api.set_message (g_app_name,
13244                               G_QP_ENGINE_ERROR,
13245                               'ERROR_MESSAGE',
13246                               lx_return_status_text
13247                              );
13248          RAISE fnd_api.g_exc_error;
13249       END IF;
13250 
13251 --dbms_output.put_line ('*** AFTER QP CALL STATUS **** ' ||lx_return_status);
13252 --dbms_output.put_line ('*** AFTER QP CALL STATUS TEXT **** ' ||lx_return_status_text);
13253 
13254       --**************************************************************************************************************
13255 
13256       --START BLIND (REQ_LINE_DETAIL_TBL) DISPLAY
13257       IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
13258       THEN
13259          fnd_log.STRING
13260             (fnd_log.level_procedure,
13261              g_module ||
13262              l_api_name,
13263              '20000:***********************OKS_QP_PKG BLING REQ_LINE_DETAIL TBL DISPLAY *********************'
13264             );
13265 --dbms_output.put_line ('***********************OKS_QP_PKG BLING REQ_LINE_DETAIL TBL DISPLAY *********************');
13266          i                          := lx_req_line_detail_tbl.FIRST;
13267 
13268          IF i IS NOT NULL
13269          THEN
13270             LOOP
13271                fnd_log.STRING
13272                   (fnd_log.level_procedure,
13273                    g_module ||
13274                    l_api_name,
13275                    '20001:*************************************************************************'
13276                   );
13277                fnd_log.STRING (fnd_log.level_procedure,
13278                                g_module ||
13279                                l_api_name,
13280                                '20002:LIST/DISCOUNT Modifier L: ' ||
13281                                lx_req_line_detail_tbl (i).modifier_level_code
13282                               );
13283                fnd_log.STRING (fnd_log.level_procedure,
13284                                g_module ||
13285                                l_api_name,
13286                                '20003:LIST/DISCOUNT Line Index: ' ||
13287                                lx_req_line_detail_tbl (i).line_index
13288                               );
13289                fnd_log.STRING (fnd_log.level_procedure,
13290                                g_module ||
13291                                l_api_name,
13292                                '20004:LIST/DISCOUNT Line Detail Index: ' ||
13293                                lx_req_line_detail_tbl (i).line_detail_index
13294                               );
13295                fnd_log.STRING (fnd_log.level_procedure,
13296                                g_module ||
13297                                l_api_name,
13298                                '20005:LIST/DISCOUNT Line Detail Type:' ||
13299                                lx_req_line_detail_tbl (i).line_detail_type_code
13300                               );
13301                fnd_log.STRING (fnd_log.level_procedure,
13302                                g_module ||
13303                                l_api_name,
13304                                '20006:LIST/DISCOUNT List Header Id: ' ||
13305                                lx_req_line_detail_tbl (i).list_header_id
13306                               );
13307                fnd_log.STRING (fnd_log.level_procedure,
13308                                g_module ||
13309                                l_api_name,
13310                                '20007:LIST/DISCOUNT List Line Id: ' ||
13311                                lx_req_line_detail_tbl (i).list_line_id
13312                               );
13313                fnd_log.STRING (fnd_log.level_procedure,
13314                                g_module ||
13315                                l_api_name,
13316                                '20008:LIST/DISCOUNT List Line Type Code: ' ||
13317                                lx_req_line_detail_tbl (i).list_line_type_code
13318                               );
13319                fnd_log.STRING (fnd_log.level_procedure,
13320                                g_module ||
13321                                l_api_name,
13322                                '20009:LIST/DISCOUNT Adjustment Amount : ' ||
13323                                lx_req_line_detail_tbl (i).adjustment_amount
13324                               );
13325                fnd_log.STRING (fnd_log.level_procedure,
13326                                g_module ||
13327                                l_api_name,
13328                                '20010:LIST/DISCOUNT Line Quantity : ' ||
13329                                lx_req_line_detail_tbl (i).line_quantity
13330                               );
13331                fnd_log.STRING
13332                           (fnd_log.level_procedure,
13333                            g_module ||
13334                            l_api_name,
13335                            '20011:LIST/DISCOUNT Operand Calculation Code: ' ||
13336                            lx_req_line_detail_tbl (i).operand_calculation_code
13337                           );
13338                fnd_log.STRING (fnd_log.level_procedure,
13339                                g_module ||
13340                                l_api_name,
13341                                '20012:LIST/DISCOUNT Operand value: ' ||
13342                                lx_req_line_detail_tbl (i).operand_value
13343                               );
13344                fnd_log.STRING (fnd_log.level_procedure,
13345                                g_module ||
13346                                l_api_name,
13347                                '20013:LIST/DISCOUNT Applied   Flag: ' ||
13348                                lx_req_line_detail_tbl (i).applied_flag
13349                               );
13350                fnd_log.STRING (fnd_log.level_procedure,
13351                                g_module ||
13352                                l_api_name,
13353                                '20014:LIST/DISCOUNT Automatic Flag: ' ||
13354                                lx_req_line_detail_tbl (i).automatic_flag
13355                               );
13356                fnd_log.STRING (fnd_log.level_procedure,
13357                                g_module ||
13358                                l_api_name,
13359                                '20015:LIST/DISCOUNT Override Flag: ' ||
13360                                lx_req_line_detail_tbl (i).override_flag
13361                               );
13362                fnd_log.STRING (fnd_log.level_procedure,
13363                                g_module ||
13364                                l_api_name,
13365                                '20016:LIST/DISCOUNT Update   Flag: ' ||
13366                                lx_req_line_detail_tbl (i).modifier_level_code
13367                               );
13368                fnd_log.STRING (fnd_log.level_procedure,
13369                                g_module ||
13370                                l_api_name,
13371                                '20017:LIST/DISCOUNT status_code: ' ||
13372                                lx_req_line_detail_tbl (i).status_code
13373                               );
13374                fnd_log.STRING (fnd_log.level_procedure,
13375                                g_module ||
13376                                l_api_name,
13377                                '20018:LIST/DISCOUNT status text: ' ||
13378                                lx_req_line_detail_tbl (i).status_text
13379                               );
13380                fnd_log.STRING
13381                           (fnd_log.level_procedure,
13382                            g_module ||
13383                            l_api_name,
13384                            '20019:-------------------------------------------'
13385                           );
13386                fnd_log.STRING
13387                   (fnd_log.level_procedure,
13388                    g_module ||
13389                    l_api_name,
13390                    '20020:*************************************************************************'
13391                   );
13392                --dbms_output.put_line ('*************************************************************************');
13393                --dbms_output.put_line ('LIST/DISCOUNT Modifier L: '||lx_req_line_detail_tbl(I).modifier_level_code);
13394                --dbms_output.put_line ('LIST/DISCOUNT Line Index: '||lx_req_line_detail_tbl(I).line_index);
13395                --dbms_output.put_line ('LIST/DISCOUNT Line Detail Index: '||lx_req_line_detail_tbl(I).line_detail_index);
13396                --dbms_output.put_line ('LIST/DISCOUNT Line Detail Type:'||lx_req_line_detail_tbl(I).line_detail_type_code);
13397                --dbms_output.put_line ('LIST/DISCOUNT List Header Id: '||lx_req_line_detail_tbl(I).list_header_id);
13398                --dbms_output.put_line ('LIST/DISCOUNT List Line Id: '||lx_req_line_detail_tbl(I).list_line_id);
13399                --dbms_output.put_line ('LIST/DISCOUNT List Line Type Code: '||lx_req_line_detail_tbl(I).list_line_type_code);
13400                --dbms_output.put_line ('LIST/DISCOUNT Adjustment Amount : '||lx_req_line_detail_tbl(I).adjustment_amount);
13401                --dbms_output.put_line ('LIST/DISCOUNT Line Quantity : '||lx_req_line_detail_tbl(I).line_quantity);
13402                --dbms_output.put_line ('LIST/DISCOUNT Operand Calculation Code: '||lx_req_line_detail_tbl(I).Operand_calculation_code);
13403                --dbms_output.put_line ('LIST/DISCOUNT Operand value: '||lx_req_line_detail_tbl(I).operand_value);
13404                --dbms_output.put_line ('LIST/DISCOUNT Applied   Flag: '||lx_req_line_detail_tbl(I).applied_flag);
13405                --dbms_output.put_line ('LIST/DISCOUNT Automatic Flag: '||lx_req_line_detail_tbl(I).automatic_flag);
13406                --dbms_output.put_line ('LIST/DISCOUNT Override Flag: '||lx_req_line_detail_tbl(I).override_flag);
13407                --dbms_output.put_line ('LIST/DISCOUNT Update   Flag: '||lx_req_line_detail_tbl(I).modifier_level_code);
13408                --dbms_output.put_line ('LIST/DISCOUNT status_code: '||lx_req_line_detail_tbl(I).status_code);
13409                --dbms_output.put_line ('LIST/DISCOUNT status text: '||lx_req_line_detail_tbl(I).status_text);
13410                --dbms_output.put_line ('-------------------------------------------');
13411                --dbms_output.put_line ('*************************************************************************');
13412                EXIT WHEN i = lx_req_line_detail_tbl.LAST;
13413                i                          := lx_req_line_detail_tbl.NEXT (i);
13414             END LOOP;
13415          END IF;
13416 
13417          fnd_log.STRING
13418             (fnd_log.level_procedure,
13419              g_module ||
13420              l_api_name,
13421              '20021:***********************OKS_QP_PKG BLING REQ_LINE_DETAIL TBL DISPLAY *********************'
13422             );
13423       END IF;
13424 
13425 --dbms_output.put_line ('***********************OKS_QP_PKG BLING REQ_LINE_DETAIL TBL DISPLAY *********************');
13426 
13427       --END BLIND (REQ_LINE_DETAIL_TBL) DISPLAY
13428 
13429       --**************************************************************************************************************
13430 
13431       --**************************************************************************************************************
13432 --APPLY MODIFIERS
13433       IF NOT NVL (p_detail_rec.intent, 'JA') IN ('HM', 'LM', 'SM')
13434       THEN                                      --Apply Modifiers Intent Check
13435          i                          := lx_req_line_detail_tbl.FIRST;
13436 
13437          IF i IS NOT NULL
13438          THEN
13439             LOOP
13440                IF lx_req_line_detail_tbl (i).applied_flag = 'Y'          AND
13441                   (lx_req_line_detail_tbl (i).list_line_type_code = 'DIS' OR
13442                    lx_req_line_detail_tbl (i).list_line_type_code = 'SUR'
13443                   )
13444                THEN
13445                   IF (lx_req_line_detail_tbl (i).line_index = 1 AND
13446                       l_hdrtop_rec.tl_line_style IN (12, 46)
13447                      )                                              OR
13448                      (lx_req_line_detail_tbl (i).line_index = 2 AND
13449                       l_hdrtop_rec.tl_line_style IN (1, 19)
13450                      )
13451 --Or       (lx_req_line_detail_tbl(I).line_index          = 2 and l_hdrtop_rec.tl_line_style = 46 and
13452 --          lx_req_line_detail_tbl(I).modifier_level_code = 'ORDER'                                    ) Or
13453 --         (lx_req_line_detail_tbl(I).line_index          = 3 and l_hdrtop_rec.tl_line_style in (1,19) and
13454 --          lx_req_line_detail_tbl(I).modifier_level_code = 'ORDER'                                    )
13455                   THEN
13456                      x_modifier_details (i)     := lx_req_line_detail_tbl (i);
13457                   END IF;                                   --line_style Check
13458                END IF;                                         --DIS/SUR check
13459 
13460                EXIT WHEN i = lx_req_line_detail_tbl.LAST;
13461                i                          := lx_req_line_detail_tbl.NEXT (i);
13462             END LOOP;
13463          END IF;                                         --End of I loop Check
13464 
13465          l_return_status            := NULL;
13466 
13467          IF l_hdrtop_rec.tl_line_style = 46
13468          THEN
13469             modifier_handling (p_cle_id                           => p_detail_rec.line_id,
13470                                p_modifier_details                 => x_modifier_details,
13471                                x_return_status                    => l_return_status
13472                               );
13473 
13474             IF l_return_status <> 'S'
13475             THEN
13476                okc_api.set_message (g_app_name,
13477                                     g_required_value,
13478                                     g_col_name_token,
13479                                     'Modifier Creation Error - Subscription '
13480                                    );
13481                RAISE fnd_api.g_exc_error;
13482             END IF;
13483          ELSIF l_hdrtop_rec.tl_line_style = 12
13484          THEN
13485             modifier_4_usg (p_bsl_id                           => p_detail_rec.bsl_id,
13486                             p_modifier_details                 => x_modifier_details,
13487                             x_return_status                    => l_return_status
13488                            );
13489 
13490             IF l_return_status <> 'S'
13491             THEN
13492                okc_api.set_message (g_app_name,
13493                                     g_required_value,
13494                                     g_col_name_token,
13495                                     'Modifier Creation Error - Usage'
13496                                    );
13497                RAISE fnd_api.g_exc_error;
13498             END IF;
13499          ELSIF l_hdrtop_rec.tl_line_style IN (1, 19)
13500          THEN
13501             modifier_handling (p_cle_id                           => p_detail_rec.subline_id,
13502                                p_modifier_details                 => x_modifier_details,
13503                                x_return_status                    => l_return_status
13504                               );
13505 
13506             IF l_return_status <> 'S'
13507             THEN
13508                okc_api.set_message
13509                                (g_app_name,
13510                                 g_required_value,
13511                                 g_col_name_token,
13512                                 'Modifier Creation Error - Service/Warranty '
13513                                );
13514                RAISE fnd_api.g_exc_error;
13515             END IF;
13516          END IF;
13517       END IF;                                   --Apply Modifiers Intent Check
13518 
13519 --APPLY MODIFIERS --END
13520 --**************************************************************************************************************
13521 
13522       --**************************************************************************************************************
13523 --Modifiers
13524 -- below modifiers will be used to build the dynamic LOV in Adjustments form
13525 -- HM : Header Adjustment, LM: Line Adjustment, SM : Subline Adjustment
13526 -- At Header and Subline, override modifiers are Allowed, while at Line override modifier
13527 -- are NOT allowed as Line Price is protected from update
13528 -- Even for Sublines, intent will be SM BUT we look at the modifier at line_index = 2 i.e
13529 -- modifier for service for product
13530 
13531       IF NVL (p_detail_rec.intent, 'JA') IN ('HM', 'LM', 'SM')
13532       THEN
13533          i                          := lx_req_line_detail_tbl.FIRST;
13534 
13535          IF i IS NOT NULL
13536          THEN
13537             LOOP
13538                IF (NVL (p_detail_rec.intent, 'JA') = 'HM'         OR
13539                    (lx_req_line_detail_tbl (i).line_index = 2 AND
13540                     l_hdrtop_rec.tl_line_style IN (1, 19)
13541                    )                                              OR
13542                    (lx_req_line_detail_tbl (i).line_index = 1 AND
13543                     l_hdrtop_rec.tl_line_style IN (12, 46)
13544                    )
13545                   )                                                   AND
13546                   lx_req_line_detail_tbl (i).list_line_type_code IN
13547                                                            ('DIS', 'SUR') AND
13548                   lx_req_line_detail_tbl (i).automatic_flag <> 'Y'
13549                THEN
13550                   IF NVL (p_detail_rec.intent, 'JA') = 'LM'
13551                   THEN
13552                     -- At Line Level, Only modifiers allowed are with override_flag as N
13553                      IF NVL (lx_req_line_detail_tbl (i).override_flag, 'N') =
13554                                                                           'N'
13555                      THEN
13556                         x_modifier_details (i)     :=
13557                                                    lx_req_line_detail_tbl (i);
13558                      ELSE
13559                         -- either HM or SM
13560                         IF l_hdrtop_rec.tl_line_style IN (46, 12)
13561                         THEN
13562                            x_modifier_details (i)     :=
13563                                                    lx_req_line_detail_tbl (i);
13564                         END IF;
13565                      END IF;
13566                   ELSE
13567                      x_modifier_details (i)     := lx_req_line_detail_tbl (i);
13568                   END IF;
13569                END IF;
13570 
13571                EXIT WHEN i = lx_req_line_detail_tbl.LAST;
13572                i                          := lx_req_line_detail_tbl.NEXT (i);
13573             END LOOP;
13574          END IF;
13575       END IF;
13576 
13577 --End For ('HM','LM','SM') Check
13578 --**************************************************************************************************************
13579 
13580       --**************************************************************************************************************
13581 --Pricing Details
13582       i                          := lx_req_line_tbl.FIRST;
13583 
13584       IF i IS NOT NULL
13585       THEN
13586          LOOP
13587             IF MOD (i, 2) = 1 AND
13588                i IN (1, 2)
13589             THEN
13590                -- MOD (i, 2) = 1  means its Product Line or Usage / Subscription Line
13591                x_price_details.prod_qty   :=
13592                                             lx_req_line_tbl (i).line_quantity;
13593                x_price_details.prod_qty_uom :=
13594                                             lx_req_line_tbl (i).line_uom_code;
13595 /*Added for GSI 14102072 */
13596 If nvl(FND_PROFILE.value('OKS_PRICE_ROUNDING'),'N') ='N' THEN
13597                x_price_details.prod_list_unit_price :=
13598                                    ROUND (lx_req_line_tbl (i).unit_price, 29);
13599                x_price_details.prod_adj_unit_price :=
13600                           ROUND (lx_req_line_tbl (i).adjusted_unit_price, 29);
13601                x_price_details.prod_ext_amount :=
13602                   ROUND (NVL (lx_req_line_tbl (i).adjusted_unit_price,
13603                               lx_req_line_tbl (i).unit_price) *
13604                          lx_req_line_tbl (i).priced_quantity,
13605                          29);
13606 Else
13607 x_price_details.prod_list_unit_price := OKS_EXTWAR_UTIL_PVT.round_currency_amt(lx_req_line_tbl (i).unit_price,l_hdrtop_rec.kh_currency_code);
13608 x_price_details.prod_adj_unit_price := OKS_EXTWAR_UTIL_PVT.round_currency_amt(lx_req_line_tbl (i).adjusted_unit_price,l_hdrtop_rec.kh_currency_code);
13609 x_price_details.prod_ext_amount := OKS_EXTWAR_UTIL_PVT.round_currency_amt((NVL (lx_req_line_tbl (i).adjusted_unit_price,lx_req_line_tbl (i).unit_price) * lx_req_line_tbl (i).priced_quantity),l_hdrtop_rec.kh_currency_code);
13610 End If;
13611 /*Added for GSI Bug 14102072 */
13612 
13613                IF x_price_details.prod_ext_amount IS NULL
13614                THEN
13615                   x_price_details.prod_ext_amount := 0;
13616                END IF;
13617 
13618                x_price_details.prod_priced_qty :=
13619                                            lx_req_line_tbl (i).priced_quantity;
13620                x_price_details.prod_priced_uom :=
13621                                            lx_req_line_tbl (i).priced_uom_code;
13622 
13623                IF l_hdrtop_rec.tl_line_style IN (1, 19)
13624                THEN
13625                   x_price_details.serv_qty   :=
13626                                         lx_req_line_tbl (i +
13627                                                          1).line_quantity;
13628                   x_price_details.serv_qty_uom :=
13629                                          lx_req_line_tbl (i +
13630                                                           1).line_uom_code;
13631                   x_price_details.serv_priced_qty :=
13632                            ROUND (lx_req_line_tbl (i +
13633                                                    1).priced_quantity, 29);
13634                   x_price_details.serv_priced_uom :=
13635                                        lx_req_line_tbl (i +
13636                                                         1).priced_uom_code;
13637 /*Added for GSI Bug 14102072*/
13638 
13639 If  nvl(FND_PROFILE.value('OKS_PRICE_ROUNDING'),'N') ='N' THEN
13640                    x_price_details.serv_list_unit_price :=
13641                                 ROUND (lx_req_line_tbl (i +
13642                                                         1).unit_price, 29);
13643                   x_price_details.serv_adj_unit_price :=
13644                        ROUND (lx_req_line_tbl (i +
13645                                                1).adjusted_unit_price, 29);
13646                   x_price_details.serv_ext_amount :=
13647                      ROUND (NVL (lx_req_line_tbl (i +
13648                                                   1).adjusted_unit_price,
13649                                  lx_req_line_tbl (i +
13650                                                   1).unit_price) *
13651                             lx_req_line_tbl (i).line_quantity *
13652                             lx_req_line_tbl (i +
13653                                              1).priced_quantity,
13654                             29);
13655 
13656 Else
13657 x_price_details.serv_list_unit_price := OKS_EXTWAR_UTIL_PVT.round_currency_amt(lx_req_line_tbl (i +1).unit_price,l_hdrtop_rec.kh_currency_code);
13658 x_price_details.serv_adj_unit_price := OKS_EXTWAR_UTIL_PVT.round_currency_amt(lx_req_line_tbl (i + 1 ).adjusted_unit_price,l_hdrtop_rec.kh_currency_code);
13659 x_price_details.serv_ext_amount := OKS_EXTWAR_UTIL_PVT.round_currency_amt((NVL (lx_req_line_tbl (i + 1).adjusted_unit_price,lx_req_line_tbl (i +1).unit_price) *
13660 lx_req_line_tbl (i).line_quantity *  lx_req_line_tbl (i + 1 ).priced_quantity),l_hdrtop_rec.kh_currency_code);
13661 End if;
13662 
13663                   IF x_price_details.serv_ext_amount IS NULL
13664                   THEN
13665                      x_price_details.serv_ext_amount := 0;
13666                   END IF;
13667                END IF;
13668 
13669                -- populate SL status text when error else TL status text
13670                IF lx_req_line_tbl (i).status_text IS NOT NULL
13671                THEN
13672                   x_price_details.status_code :=
13673                                               lx_req_line_tbl (i).status_code;
13674                   x_price_details.status_text :=
13675                                               lx_req_line_tbl (i).status_text;
13676                ELSIF l_hdrtop_rec.tl_line_style IN (1, 19)
13677                THEN
13678                   IF lx_req_line_tbl (i +
13679                                       1).status_text IS NOT NULL
13680                   THEN
13681                      x_price_details.status_code :=
13682                                           lx_req_line_tbl (i +
13683                                                            1).status_code;
13684                      x_price_details.status_text :=
13685                                            lx_req_line_tbl (i +
13686                                                             1).status_text;
13687                   END IF;
13688                END IF;
13689 
13690                -- Bug fix for 3641535. Depending on this status code, Authoring decides whether or not to call Pricebreaks form.
13691                IF NVL (x_price_details.status_code, qp_preq_grp.g_status_new) IN
13692                      (qp_preq_grp.g_status_updated,
13693                       qp_preq_grp.g_status_system_generated,
13694                       qp_preq_grp.g_by_engine,
13695                       qp_preq_grp.g_status_unchanged,
13696                       qp_preq_grp.g_status_new
13697                      )
13698                THEN
13699                   x_price_details.status_code := 'OKS_S';
13700                ELSE
13701                   x_price_details.status_code := 'OKS_E';
13702                END IF;
13703 
13704                i2                         := lx_req_line_detail_tbl.FIRST;
13705 
13706                IF i2 IS NOT NULL
13707                THEN
13708                   LOOP                                              --I2 LOOP
13709                      IF lx_req_line_detail_tbl (i2).line_index = i    AND
13710                         ((lx_req_line_detail_tbl (i2).list_line_type_code =
13711                                                                      'PLL'   AND
13712                           lx_req_line_detail_tbl (i2).applied_flag = 'Y'
13713                          )                                              OR
13714                          (lx_req_line_detail_tbl (i2).list_line_type_code =
13715                                                                      'PBH'   AND
13716                           lx_req_line_detail_tbl (i2).applied_flag = 'Y'
13717                          )
13718                         ) AND
13719                           lx_req_line_detail_tbl (i2).created_from_list_type_code IN ('PRL', 'AGR') --bug 5069673
13720                      THEN
13721                         x_price_details.prod_price_list_id :=
13722                                    lx_req_line_detail_tbl (i2).list_header_id;
13723                         x_price_details.prod_price_list_line_id :=
13724                                      lx_req_line_detail_tbl (i2).list_line_id;
13725                      ELSIF lx_req_line_detail_tbl (i2).line_index = i +
13726                                                                     1         AND
13727                            lx_req_line_detail_tbl (i2).list_line_type_code =
13728                                                                      'PLL'    AND
13729                            lx_req_line_detail_tbl (i2).applied_flag = 'Y'
13730                      THEN
13731                         x_price_details.serv_price_list_id :=
13732                                    lx_req_line_detail_tbl (i2).list_header_id;
13733                         x_price_details.serv_price_list_line_id :=
13734                                      lx_req_line_detail_tbl (i2).list_line_id;
13735                         x_price_details.serv_operand :=
13736                            ROUND (lx_req_line_detail_tbl (i2).operand_value,
13737                                   29);
13738                         x_price_details.serv_operator :=
13739                            lx_req_line_detail_tbl (i2).operand_calculation_code;
13740                      END IF;
13741 
13742                      EXIT WHEN i2 = lx_req_line_detail_tbl.LAST;
13743                      i2                         :=
13744                                               lx_req_line_detail_tbl.NEXT (i2);
13745                   END LOOP;                                     --I2 END LOOP;
13746                END IF;
13747             END IF;
13748 
13749             EXIT WHEN i = lx_req_line_tbl.LAST;
13750             i                          := lx_req_line_tbl.NEXT (i);
13751          END LOOP;
13752       END IF;
13753 
13754 --Pricing Details
13755 --**************************************************************************************************************
13756 -- SKEKKAR
13757 -- Added debug statements to print all the OUT parameter x_price_details
13758 -- bug 5069673
13759 --
13760     IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)   THEN
13761         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
13762         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** OKS Price Calculations : x_price_details ******************');
13763         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
13764 
13765                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.PROD_QTY : '|| x_price_details.PROD_QTY
13766                                 );
13767                 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
13768                                 );
13769                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_QTY : '|| x_price_details.SERV_QTY
13770                                 );
13771                 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
13772                                 );
13773                 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
13774                                 );
13775                 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
13776                                 );
13777                 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
13778                                 );
13779                 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
13780                                 );
13781                 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
13782                                 );
13783                 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
13784                                 );
13785                 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
13786                                 );
13787                 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
13788                                 );
13789                 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
13790                                 );
13791                 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
13792                                 );
13793                 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
13794                                 );
13795                 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
13796                                 );
13797                 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
13798                                 );
13799                 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
13800                                 );
13801                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_OPERAND : '|| x_price_details.SERV_OPERAND
13802                                 );
13803                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.SERV_OPERATOR : '|| x_price_details.SERV_OPERATOR
13804                                 );
13805                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.STATUS_CODE : '|| x_price_details.STATUS_CODE
13806                                 );
13807                 fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: x_price_details.STATUS_TEXT : '|| x_price_details.STATUS_TEXT
13808                                 );
13809 
13810         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
13811         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: ***************** END OKS Price Calculations : x_price_details ******************');
13812         fnd_log.STRING (fnd_log.level_statement, g_module || l_api_name,'QP_CALL: *********************************************************');
13813 
13814     END IF;-- end Added debug statements to print x_price_details bug 5069673
13815 
13816       --**************************************************************************************************************
13817 --Price Breaks
13818       IF l_hdrtop_rec.tl_line_style IN (12, 46)
13819       THEN
13820          l_top_ctr                  := lx_req_related_lines_tbl.FIRST;
13821 
13822          IF l_top_ctr IS NOT NULL
13823          THEN
13824             LOOP
13825                IF lx_req_related_lines_tbl (l_top_ctr).relationship_type_code =
13826                                                        qp_preq_grp.g_pbh_line
13827                THEN
13828                   l_rel_index                :=
13829                      lx_req_related_lines_tbl (l_top_ctr).related_line_detail_index;
13830                   l_lin_index                :=
13831                        lx_req_related_lines_tbl (l_top_ctr).line_detail_index;
13832                   l_ctr                      :=
13833                                             lx_req_line_detail_attr_tbl.FIRST;
13834 
13835                   LOOP
13836                      IF lx_req_line_detail_attr_tbl (l_ctr).line_detail_index =
13837                                                                   l_rel_index
13838                      THEN
13839                         --MCHOUDHA Fix for BUG#5341559
13840                         --used fnd_number.canonical_to_number to convert the price break value_from
13841                         --into number format which is returned in canonical format by pricing engine
13842                         l_price_break_tbl (l_top_ctr).quantity_from :=
13843                            fnd_number.canonical_to_number(lx_req_line_detail_attr_tbl (l_ctr).pricing_attr_value_from);
13844                         l_price_break_tbl (l_top_ctr).quantity_to :=
13845                            fnd_number.canonical_to_number(lx_req_line_detail_attr_tbl (l_ctr).pricing_attr_value_to);
13846                      END IF;
13847 
13848                      EXIT WHEN l_ctr = lx_req_line_detail_attr_tbl.LAST;
13849                      l_ctr                      :=
13850                                       lx_req_line_detail_attr_tbl.NEXT (l_ctr);
13851                   END LOOP;
13852 
13853                   l_ctr                      := lx_req_line_detail_tbl.FIRST;
13854 
13855                   LOOP
13856                      IF lx_req_line_detail_tbl (l_ctr).line_detail_index =
13857                                                                   l_rel_index
13858                      THEN
13859                         -- skekkar forward port Bug 4534076 added 'AGR'
13860                         IF lx_req_line_detail_tbl (l_ctr).created_from_list_type_code IN
13861                                                               ('PRL', 'AGR')
13862                         THEN
13863                            -- end FP Bug 4534076
13864                            l_price_break_tbl (l_top_ctr).list_price :=
13865                                  lx_req_line_detail_tbl (l_ctr).operand_value;
13866                            l_price_break_tbl (l_top_ctr).break_method :=
13867                               lx_req_line_detail_tbl (l_ctr).price_break_type_code;
13868 
13869                            IF lx_req_line_detail_tbl (l_ctr).created_from_list_type_code =
13870                                                                         'PBH'
13871                            THEN
13872                               IF p_detail_rec.break_uom_code IS NULL
13873                               THEN
13874                                  l_price_break_tbl (l_top_ctr).break_uom_code :=
13875                                     lx_req_line_detail_tbl (l_ctr).break_uom_code;
13876                                  l_price_break_tbl (l_top_ctr).break_uom_context :=
13877                                     lx_req_line_detail_tbl (l_ctr).break_uom_context;
13878                                  l_price_break_tbl (l_top_ctr).break_uom_attribute :=
13879                                     lx_req_line_detail_tbl (l_ctr).break_uom_attribute;
13880                               ELSE
13881                                  l_price_break_tbl (l_top_ctr).break_uom_code :=
13882                                                   p_detail_rec.break_uom_code;
13883                                  l_price_break_tbl (l_top_ctr).break_uom_context :=
13884                                                                          NULL;
13885                                  l_price_break_tbl (l_top_ctr).break_uom_attribute :=
13886                                                                          NULL;
13887                               END IF;
13888                            END IF;
13889 
13890                            l_price_break_tbl (l_top_ctr).unit_price :=
13891                               NVL
13892                                  (lx_req_line_detail_tbl (l_ctr).adjustment_amount,
13893                                   lx_req_line_detail_tbl (l_ctr).list_price);
13894                            l_price_break_tbl (l_top_ctr).quantity :=
13895                                   lx_req_line_detail_tbl (l_ctr).line_quantity;
13896                            l_price_break_tbl (l_top_ctr).amount :=
13897                               l_price_break_tbl (l_top_ctr).unit_price *
13898                               l_price_break_tbl (l_top_ctr).quantity;
13899                         ELSE
13900                            l_price_break_tbl.DELETE (l_top_ctr);
13901                         END IF;
13902                      END IF;
13903 
13904                      EXIT WHEN l_ctr = lx_req_line_detail_tbl.LAST;
13905                      l_ctr                      :=
13906                                            lx_req_line_detail_tbl.NEXT (l_ctr);
13907                   END LOOP;
13908 
13909 --BREAK UOM
13910                   l_ctr                      := lx_req_line_detail_tbl.FIRST;
13911 
13912                   LOOP
13913                      IF lx_req_line_detail_tbl (l_ctr).line_detail_index =
13914                                                                   l_lin_index
13915                      THEN
13916                         -- skekkar forward port Bug 4534076 added 'AGR'
13917                         IF lx_req_line_detail_tbl (l_ctr).created_from_list_type_code IN
13918                                                               ('PRL', 'AGR')
13919                         THEN
13920                            -- end FP Bug 4534076
13921                            IF p_detail_rec.break_uom_code IS NOT NULL
13922                            THEN
13923                               l_price_break_tbl (l_top_ctr).break_uom_code :=
13924                                                   p_detail_rec.break_uom_code;
13925                               l_price_break_tbl (l_top_ctr).break_uom_context :=
13926                                                                          NULL;
13927                               l_price_break_tbl (l_top_ctr).break_uom_attribute :=
13928                                                                          NULL;
13929                            ELSE
13930                               l_price_break_tbl (l_top_ctr).break_uom_code :=
13931                                  lx_req_line_detail_tbl (l_ctr).break_uom_code;
13932                               l_price_break_tbl (l_top_ctr).break_uom_context :=
13933                                  lx_req_line_detail_tbl (l_ctr).break_uom_context;
13934                               l_price_break_tbl (l_top_ctr).break_uom_attribute :=
13935                                  lx_req_line_detail_tbl (l_ctr).break_uom_attribute;
13936                            END IF;
13937                         ELSE
13938                            l_price_break_tbl.DELETE (l_top_ctr);
13939                         END IF;
13940                      END IF;
13941 
13942                      EXIT WHEN l_ctr = lx_req_line_detail_tbl.LAST;
13943                      l_ctr                      :=
13944                                            lx_req_line_detail_tbl.NEXT (l_ctr);
13945                   END LOOP;
13946 --END BREAK UOM
13947                END IF;
13948 
13949                EXIT WHEN l_top_ctr = lx_req_related_lines_tbl.LAST;
13950                l_top_ctr                  :=
13951                                      lx_req_related_lines_tbl.NEXT (l_top_ctr);
13952             END LOOP;
13953 
13954             x_price_break_details      := l_price_break_tbl;
13955          END IF;
13956       END IF;
13957 --**************************************************************************************************************
13958    EXCEPTION
13959       WHEN fnd_api.g_exc_error
13960       THEN
13961          x_return_status            := okc_api.g_ret_sts_error;
13962 
13963          -- end debug log
13964          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
13965          THEN
13966             fnd_log.STRING (fnd_log.level_procedure,
13967                             g_module ||
13968                             l_api_name,
13969                             '2000: Leaving ' ||
13970                             g_pkg_name ||
13971                             '.' ||
13972                             l_api_name
13973                            );
13974          END IF;
13975       WHEN invalid_hdr_id_exception
13976       THEN
13977          okc_api.set_message (p_app_name                         => g_app_name,
13978                               p_msg_name                         => g_invalid_value,
13979                               p_token1                           => g_col_name_token,
13980                               p_token1_value                     => 'Header ID'
13981                              );
13982 
13983          -- end debug log
13984          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
13985          THEN
13986             fnd_log.STRING (fnd_log.level_procedure,
13987                             g_module ||
13988                             l_api_name,
13989                             '6000: Leaving ' ||
13990                             g_pkg_name ||
13991                             '.' ||
13992                             l_api_name
13993                            );
13994          END IF;
13995       WHEN OTHERS
13996       THEN
13997          x_return_status            := okc_api.g_ret_sts_unexp_error;
13998          okc_api.set_message (g_app_name,
13999                               g_unexpected_error,
14000                               g_sqlcode_token,
14001                               SQLCODE,
14002                               g_sqlerrm_token,
14003                               SQLERRM
14004                              );
14005 
14006          -- end debug log
14007          IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)
14008          THEN
14009             fnd_log.STRING (fnd_log.level_procedure,
14010                             g_module ||
14011                             l_api_name,
14012                             '4000: Leaving ' ||
14013                             g_pkg_name ||
14014                             '.' ||
14015                             l_api_name
14016                            );
14017          END IF;
14018 
14019          fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
14020    END calc_price_post;
14021 
14022 
14023 END oks_qp_pkg;