DBA Data[Home] [Help]

PACKAGE BODY: APPS.ASO_PRICING_CALLBACK_PVT

Source


1 PACKAGE BODY ASO_PRICING_CALLBACK_PVT as
2 /* $Header: asovpclb.pls 120.3.12020000.2 2012/11/19 11:08:22 rassharm ship $ */
3 -- Start of Comments
4 -- Package name     : ASO_PRICING_CALLBACK_PVT
5 -- Purpose          :
6 -- History          :
7 -- NOTE             :
8 -- End of Comments
9 
10 
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'ASO_PRICING_CALLBACK_PVT';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asovpclb.pls';
13 
14 
15 PROCEDURE Config_Callback_Pricing_Order(
16      P_Api_Version_Number       IN   NUMBER,
17      P_Init_Msg_List            IN   VARCHAR2 := FND_API.G_FALSE,
18      P_Commit                   IN   VARCHAR2 := FND_API.G_FALSE,
19      p_control_rec              IN   ASO_PRICING_INT.PRICING_CONTROL_REC_TYPE,
20      p_qte_header_rec           IN   ASO_QUOTE_PUB.Qte_Header_Rec_Type,
21      p_hd_shipment_rec          IN   ASO_QUOTE_PUB.Shipment_Rec_Type
22                                      := ASO_QUOTE_PUB.G_Miss_Shipment_Rec,
23      p_hd_price_attr_tbl        IN   ASO_QUOTE_PUB.Price_Attributes_Tbl_Type
24                                      := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl,
25      p_qte_line_tbl             IN   ASO_QUOTE_PUB.Qte_Line_Tbl_Type,
26      p_line_rltship_tbl         IN   ASO_QUOTE_PUB.Line_Rltship_Tbl_Type
27                                      := ASO_QUOTE_PUB.G_Miss_Line_Rltship_Tbl,
28      p_qte_line_dtl_tbl         IN   ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type
29                                      := ASO_QUOTE_PUB.G_Miss_Qte_Line_Dtl_Tbl,
30      p_ln_shipment_tbl          IN   ASO_QUOTE_PUB.Shipment_Tbl_Type
31                                      := ASO_QUOTE_PUB.G_Miss_Shipment_Tbl,
32      p_ln_price_attr_tbl        IN   ASO_QUOTE_PUB.Price_Attributes_Tbl_Type
33                                      := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl,
34      x_qte_header_rec           OUT NOCOPY /* file.sql.39 change */    ASO_QUOTE_PUB.Qte_Header_Rec_Type,
35      x_qte_line_tbl             OUT NOCOPY /* file.sql.39 change */    ASO_QUOTE_PUB.Qte_Line_Tbl_Type,
36      x_qte_line_dtl_tbl         OUT NOCOPY /* file.sql.39 change */    ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type,
37      x_price_adj_tbl            OUT NOCOPY /* file.sql.39 change */    ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
38      x_price_adj_attr_tbl       OUT NOCOPY /* file.sql.39 change */    ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
39      x_price_adj_rltship_tbl    OUT NOCOPY /* file.sql.39 change */    ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type,
40      x_return_status            OUT NOCOPY /* file.sql.39 change */    VARCHAR2,
41      x_msg_count                OUT NOCOPY /* file.sql.39 change */    NUMBER,
42      x_msg_data                 OUT NOCOPY /* file.sql.39 change */    VARCHAR2)
43 IS
44     l_api_name                    CONSTANT VARCHAR2(30) := 'Config_Callback_Pricing_Order';
45     l_api_version_number          CONSTANT NUMBER   := 1.0;
46     l_request_type                VARCHAR2(60);
47     l_pricing_event               VARCHAR2(30);
48     l_control_rec                 QP_PREQ_GRP.CONTROL_RECORD_TYPE;
49     l_req_line_tbl                QP_PREQ_GRP.LINE_TBL_TYPE;
50     l_Req_qual_tbl                QP_PREQ_GRP.QUAL_TBL_TYPE;
51     l_Req_line_attr_tbl           QP_PREQ_GRP.LINE_ATTR_TBL_TYPE;
52     l_Req_LINE_DETAIL_tbl         QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE;
53     l_req_LINE_DETAIL_qual_tbl    QP_PREQ_GRP.LINE_DETAIL_QUAL_TBL_TYPE;
54     l_req_LINE_DETAIL_attr_tbl    QP_PREQ_GRP.LINE_DETAIL_ATTR_TBL_TYPE;
55     l_req_related_lines_tbl       QP_PREQ_GRP.RELATED_LINES_TBL_TYPE;
56     l_req_adj_related_lines_tbl   QP_PREQ_GRP.RELATED_LINES_TBL_TYPE;
57     l_hd_pricing_contexts_Tbl     QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type;
58     l_hd_qual_contexts_Tbl        QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type;
59     l_pricing_contexts_Tbl        QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type;
60     l_qual_contexts_Tbl           QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type;
61     lx_req_line_tbl               QP_PREQ_GRP.LINE_TBL_TYPE;
62     lx_req_qual_tbl               QP_PREQ_GRP.QUAL_TBL_TYPE;
63     lx_req_line_attr_tbl          QP_PREQ_GRP.LINE_ATTR_TBL_TYPE;
64     lx_req_LINE_DETAIL_tbl        QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE;
65     lx_req_LINE_DETAIL_qual_tbl   QP_PREQ_GRP.LINE_DETAIL_QUAL_TBL_TYPE;
66     lx_req_LINE_DETAIL_attr_tbl   QP_PREQ_GRP.LINE_DETAIL_ATTR_TBL_TYPE;
67     lx_req_related_lines_tbl      QP_PREQ_GRP.RELATED_LINES_TBL_TYPE;
68     l_qte_line_id                 NUMBER;
69     l_qte_line_dtl_rec            ASO_QUOTE_PUB.Qte_Line_Dtl_Rec_Type;
70     l_shipment_rec                ASO_QUOTE_PUB.Shipment_Rec_Type;
71     l_ln_price_attr_tbl           ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
72     l_qte_line_prcd               Index_Link_Tbl_Type;
73     l_return_status               VARCHAR2(1);
74     lv_return_status              VARCHAR2(1);
75     l_return_status_text          VARCHAR2(2000);
76     l_message_text                VARCHAR2(2000);
77     lx_req_line_rec               QP_PREQ_GRP.LINE_REC_TYPE;
78     i                             BINARY_INTEGER;
79     j                             BINARY_INTEGER;
80     l_qte_header_rec              ASO_QUOTE_PUB.Qte_Header_Rec_Type;
81     l_qte_line_tbl                ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
82     l_qte_line_dtl_tbl            ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
83     lx_qte_header_rec             ASO_QUOTE_PUB.Qte_Header_Rec_Type;
84     l_shipment_tbl                ASO_QUOTE_PUB.Shipment_Tbl_Type;
85     l_price_attr_tbl              ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
86     lx_qte_line_tbl               ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
87     lx_qte_line_dtl_tbl           ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
88     lx_price_adj_tbl              ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
89     lx_price_adj_attr_tbl         ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
90     lx_price_adj_rltship_tbl      ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
91     l_qte_line_rec                ASO_QUOTE_PUB.Qte_Line_rec_Type;
92     G_USER_ID                     NUMBER := FND_GLOBAL.USER_ID;
93     G_LOGIN_ID                    NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
94 
95 BEGIN
96 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
97   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT: Start of Config_Callback_Pricing_Order.....',1,'Y');
98 END IF;
99 -- Standard Start of API savepoint
100 SAVEPOINT ASO_PRICING_CALLBACK_PVT;
101 
102 -- Standard call to check for call compatibility.
103 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
104                                      p_api_version_number,
105                                      l_api_name,
106                                      G_PKG_NAME)
107 THEN
108    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
109 END IF;
110 
111 -- Initialize message list if p_init_msg_list is set to TRUE.
112 IF FND_API.to_Boolean( p_init_msg_list )
113 THEN
114  IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
115    aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Begin FND_API.to_Boolean'||p_init_msg_list, 1, 'Y');
116  END IF;
117  FND_MSG_PUB.initialize;
118 END IF;
119 
120 x_return_status := FND_API.G_RET_STS_SUCCESS;
121 
122 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
123   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:p_control_rec.request_type:'||p_control_rec.request_type,1,'N');
124   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:p_control_rec.pricing_event:'||p_control_rec.pricing_event,1,'N');
125 END IF;
126 l_request_type := p_control_rec.request_type;
127 l_pricing_event := p_control_rec.pricing_event;
128 
129 ASO_PRICING_INT.G_HEADER_REC := ASO_PRICING_CORE_PVT.Set_Global_Rec (
130          p_qte_header_rec     => p_qte_header_rec,
131          p_shipment_rec       => p_hd_shipment_rec);
132 
133 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
134   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:QP_ATTR_MAPPING_PUB.Build_Contexts Starts',1,'Y');
135 END IF;
136 QP_ATTR_MAPPING_PUB.Build_Contexts (
137              P_REQUEST_TYPE_CODE          => l_request_type,
138              P_PRICING_TYPE               => 'H',
139              X_PRICE_CONTEXTS_RESULT_TBL  => l_hd_pricing_contexts_tbl,
140              X_QUAL_CONTEXTS_RESULT_TBL   => l_hd_qual_contexts_tbl);
141 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
142   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:QP_ATTR_MAPPING_PUB.Build_Contexts Ends',1,'Y');
143   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Copy_Attribs_To_Req Starts',1,'Y');
144 END IF;
145 
146 Copy_Attribs_To_Req (
147          p_line_index             => 1,
148          p_pricing_contexts_tbl   => l_hd_pricing_contexts_tbl,
149          p_qualifier_contexts_tbl => l_hd_qual_contexts_tbl,
150          px_req_line_attr_tbl     => l_req_line_attr_tbl,
151          px_req_qual_tbl          => l_req_qual_tbl);
152 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
153   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Copy_Attribs_To_Req Ends',1,'Y');
154   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Append_asked_for Starts',1,'Y');
155 END IF;
156 
157 Append_asked_for(
158             p_header_id            => p_qte_header_rec.quote_header_id
159             ,p_line_index          => 1
160             ,px_Req_line_attr_tbl  => l_Req_line_attr_tbl
161             ,px_Req_qual_tbl          => l_Req_qual_tbl);
162 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
163   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Append_asked_for Ends',1,'Y');
164   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Copy_Header_To_Request Starts',1,'Y');
165 END IF;
166 
167 Copy_Header_To_Request(
168             p_Request_Type        => l_request_type,
169             p_pricing_event       => l_pricing_event,
170             p_header_rec          => p_qte_header_rec,
171             px_req_line_tbl       => l_Req_line_tbl);
172 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
173   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Copy_Header_To_Request Ends',1,'Y');
174   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:p_qte_header_rec.quote_header_id:'||p_qte_header_rec.quote_header_id,1,'N');
175 END IF;
176 
177 l_qte_line_tbl := p_qte_line_tbl;
178 
179 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
180   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT: l_qte_line_tbl.count'|| l_qte_line_tbl.count, 1, 'N');
181 END IF;
182 If l_qte_line_tbl.count > 0 Then
183 
184      FOR i IN 1..l_qte_line_tbl.count LOOP/*Main Loop for preparing Lines from Quote in the Price Req Strcture*/
185        l_qte_line_tbl(i).currency_code := p_qte_header_rec.currency_code;
186 
187        If (l_qte_line_tbl(i).price_list_id is null
188           OR l_qte_line_tbl(i).price_list_id= FND_API.G_MISS_NUM) Then
189              l_qte_line_tbl(i).price_list_id := p_qte_header_rec.price_list_id;
190        End if;
191 
192        l_qte_line_dtl_rec := ASO_QUOTE_PUB.G_Miss_Qte_Line_Dtl_REC ;
193        IF l_qte_line_dtl_tbl.count = 1 THEN
194              l_qte_line_dtl_rec := l_qte_line_dtl_tbl(1);
195        END IF;
196 
197        IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
198          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Begin Setting up the G_LINE_REC', 1, 'Y');
199        END IF;
200        ASO_PRICING_INT.G_LINE_REC := ASO_PRICING_CORE_PVT.Set_Global_Rec (
201                           p_qte_line_rec               => l_qte_line_tbl(i),
202                           p_qte_line_dtl_rec           => l_qte_line_dtl_rec,
203                           p_shipment_rec               => l_shipment_rec);
204        IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
205          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:End Setting up the G_LINE_REC', 1, 'Y');
206          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Begin Setting up the Build_Contexts', 1, 'Y');
207        END IF;
208        QP_ATTR_MAPPING_PUB.Build_Contexts (
209                           P_REQUEST_TYPE_CODE           => l_request_type,
210                           P_PRICING_TYPE                => 'L',
211                           X_PRICE_CONTEXTS_RESULT_TBL   => l_pricing_contexts_tbl,
212                           X_QUAL_CONTEXTS_RESULT_TBL    => l_qual_contexts_tbl);
213        IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
214          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:End Setting up the Build_Contexts', 1, 'Y');
215          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Begin Setting up the Copy_Attribs_To_Req', 1, 'Y');
216        END IF;
217        Copy_Attribs_To_Req (
218                           p_line_index                  => i+1,
219                           p_pricing_contexts_tbl        => l_pricing_contexts_tbl,
220                           p_qualifier_contexts_tbl      => l_qual_contexts_tbl,
221                           px_req_line_attr_tbl          => l_req_line_attr_tbl,
222                           px_req_qual_tbl               => l_req_qual_tbl);
223        IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
224          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:End Setting up the Copy_Attribs_To_Req', 1, 'Y');
225          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Begin Setting up the Copy_hdr_attr_to_line', 1, 'Y');
226        END IF;
227        Copy_hdr_attr_to_line (
228                           p_line_index                  => i+1,
229                           p_pricing_contexts_tbl        => l_hd_pricing_contexts_tbl,
230                           p_qualifier_contexts_tbl      => l_hd_qual_contexts_tbl,
231                           px_req_line_attr_tbl          => l_req_line_attr_tbl,
232                           px_req_qual_tbl               => l_req_qual_tbl);
233        IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
234          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:End Setting up the Copy_hdr_attr_to_line', 1, 'Y');
235          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Begin Setting up the Append_asked_for', 1, 'Y');
236        END IF;
237        Append_asked_for(
238                           p_header_id                   => p_qte_header_rec.quote_header_id
239                           ,p_line_id                    => l_qte_line_tbl(i).quote_line_id
240                           ,p_line_index                 => i+1
241                           ,px_Req_line_attr_tbl         => l_Req_line_attr_tbl
242                           ,px_Req_qual_tbl              => l_Req_qual_tbl);
243        IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
244          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:End Setting up the Append_asked_for', 1, 'Y');
245          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Begin Setting up the Copy_Line_To_Request', 1, 'Y');
246        END IF;
247        Copy_Line_To_Request(
248                           p_Request_Type                => l_request_type,
249                           p_pricing_event               => l_pricing_event,
250                           p_line_rec                    => l_qte_line_tbl(i),
251                           p_line_dtl_rec                => l_qte_line_dtl_rec,
252                           p_control_rec                 => p_control_rec,
253                           px_req_line_tbl               => l_Req_line_tbl);
254        IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
255          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:End Setting up the Copy_Line_To_Request', 1, 'Y');
256        END IF;
257     END LOOP; --main End loop FOR i IN 1..l_qte_line_tbl.count
258 
259     l_control_rec.pricing_event := p_control_rec.pricing_event;
260     l_control_rec.calculate_flag := p_control_rec.calculate_flag;
261     l_control_rec.simulation_flag := p_control_rec.simulation_flag;
262     l_control_rec.TEMP_TABLE_INSERT_FLAG := 'Y';
263     l_control_rec.source_order_amount_flag := 'Y';
264     l_control_rec.GSA_CHECK_FLAG := 'Y';
265     l_control_rec.GSA_DUP_CHECK_FLAG := 'Y';
266 
267 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
268   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Start of QP_PREQ_PUB.PRICE_REQUEST', 1, 'Y');
269 END IF;
270 /*   Change for populating QP_PREQ_GRP.CONTROL_RECORD_TYPE.ORG_ID Yogeshwar (MOAC)    */
271 
272 	       l_control_rec.ORG_ID :=  p_qte_header_rec.org_id;
273 
274 /*				End of Change                       (MOAC)             */
275 
276 
277 QP_PREQ_PUB.PRICE_REQUEST
278     (p_control_rec           => l_control_rec,
279      p_line_tbl              => l_Req_line_tbl,
280      p_qual_tbl              => l_Req_qual_tbl,
281      p_line_attr_tbl         => l_Req_line_attr_tbl,
282      p_line_detail_tbl       => l_req_line_detail_tbl,
283      p_line_detail_qual_tbl  => l_req_line_detail_qual_tbl,
284      p_line_detail_attr_tbl  => l_req_line_detail_attr_tbl,
285      p_related_lines_tbl     => l_req_related_lines_tbl,
286      x_line_tbl              => lx_req_line_tbl,
287      x_line_qual             => lx_Req_qual_tbl,
288      x_line_attr_tbl         => lx_Req_line_attr_tbl,
289      x_line_detail_tbl       => lx_req_line_detail_tbl,
290      x_line_detail_qual_tbl  => lx_req_line_detail_qual_tbl,
291      x_line_detail_attr_tbl  => lx_req_line_detail_attr_tbl,
292      x_related_lines_tbl     => lx_req_related_lines_tbl,
293      x_return_status         => l_return_status,
294      x_return_status_text    => l_return_status_text);
295 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
296   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:End of QP_PREQ_PUB.PRICE_REQUEST', 1, 'Y');
297   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:After PRICE_REQUEST l_return_status:'||l_return_status, 1, 'N');
298   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:After PRICE_REQUEST l_return_status_text '||l_return_status_text,1,'N');
299 END IF;
300 
301 ASO_PRICING_INT.G_LINE_REC := NULL;
302 ASO_PRICING_INT.G_HEADER_REC := NULL;
303 
304 i := lx_req_line_tbl.FIRST;
305 WHILE i IS NOT NULL LOOP
306       lx_req_line_rec := lx_req_line_tbl(i);
307       x_return_status := FND_API.G_RET_STS_SUCCESS;
308       If lx_req_line_rec.status_code in(QP_PREQ_GRP.g_status_invalid_price_list,
309                QP_PREQ_GRP.g_sts_lhs_not_found,
310                QP_PREQ_GRP.g_status_formula_error,QP_PREQ_GRP.g_status_other_errors,
311                fnd_api.g_ret_sts_unexp_error,fnd_api.g_ret_sts_error,
312                QP_PREQ_GRP.g_status_calc_error,QP_PREQ_GRP.g_status_uom_failure,
313                QP_PREQ_GRP.g_status_invalid_uom,QP_PREQ_GRP.g_status_dup_price_list,
314                QP_PREQ_GRP.g_status_invalid_uom_conv,QP_PREQ_GRP.g_status_invalid_incomp,
315                QP_PREQ_GRP.g_status_best_price_eval_error,
316                QP_PREQ_PUB.g_back_calculation_sts) THEN
317                x_return_status := FND_API.G_RET_STS_ERROR;
318       END IF;
319       If lx_req_line_rec.status_code = QP_PREQ_GRP.G_STATUS_GSA_VIOLATION Then
320          IF FND_PROFILE.value('ASO_GSA_PRICING') = 'ERROR' THEN
321             x_return_status := FND_API.G_RET_STS_ERROR;
322             FND_MESSAGE.Set_Name('ASO', 'GSA Violation in Pricing');
323             FND_MSG_PUB.ADD;
324          END IF;
325 
326          IF FND_PROFILE.value('ASO_GSA_PRICING') = 'WARNING' THEN
327             FND_MESSAGE.Set_Name('ASO', 'GSA Violation in Pricing');
328             FND_MSG_PUB.ADD;
329          END IF;
330      End if;
331 
332      If lx_req_line_rec.status_code <>QP_PREQ_GRP.G_STATUS_GSA_VIOLATION Then
333          IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
334             IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
335                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
336                 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
337                    FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
338                    FND_MESSAGE.Set_Token('ROW', 'ASO_PRICING_CALLBACK_PVT AFTER PRICING CALL', TRUE);
339                    FND_MSG_PUB.ADD;
340                 END IF;
341                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
342                 ELSE
343                 l_message_text := lx_req_line_rec.status_code || ': '||lx_req_line_rec.status_text;
344                 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
345                   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:After GSA Violation  QP ERROR '||l_message_text, 1, 'Y');
346                 END IF;
347                 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
348                    FND_MESSAGE.Set_Name('ASO', 'ASO_OM_ERROR');
349                    FND_MESSAGE.Set_Token('MSG_TXT', substr(l_message_text, 1,255), FALSE);
350                    FND_MSG_PUB.ADD;
351                 END IF;
352              END IF;
353             lv_return_status := x_return_status;
354          END IF;
355       END If;
356       i :=  lx_req_line_tbl.NEXT(i);
357  END LOOP; -- End loop WHILE i IS NOT NULL LOOP
358 
359  IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
360    aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Before Copy_Request_To_Quote', 1, 'Y');
361  END IF;
362  Copy_Request_To_Quote(
363       p_req_line_tbl              => lx_req_line_tbl,
364       p_req_line_qual             => lx_Req_qual_tbl,
365       p_req_line_attr_tbl         => lx_Req_line_attr_tbl,
366       p_req_line_detail_tbl       => lx_req_line_detail_tbl,
367       p_req_line_detail_qual_tbl  => lx_req_line_detail_qual_tbl,
368       p_req_line_detail_attr_tbl  => lx_req_line_detail_attr_tbl,
369       p_req_related_lines_tbl     => lx_req_related_lines_tbl,
370       p_qte_header_rec            => p_qte_header_rec,
371       p_qte_line_tbl              => l_qte_line_tbl,
372       p_qte_line_dtl_tbl          => ASO_QUOTE_PUB.G_Miss_Qte_Line_Dtl_Tbl,
373       x_qte_header_rec            => lx_qte_header_rec,
374       x_qte_line_tbl              => lx_qte_line_tbl,
375       x_qte_line_dtl_tbl          => lx_qte_line_dtl_tbl,
376       x_price_adj_tbl             => lx_price_adj_tbl,
377       x_price_adj_attr_tbl        => lx_price_adj_attr_tbl,
378       x_price_adj_rltship_tbl     => lx_price_adj_rltship_tbl);
379  IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
380    aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:after Copy_Request_To_Quote', 1, 'Y');
381  END IF;
382 
383  x_qte_line_tbl        := lx_qte_line_tbl;
384 
385  IF lv_return_status <> FND_API.G_RET_STS_SUCCESS THEN
386     x_return_status := lv_return_status;
387     RAISE FND_API.G_EXC_ERROR;
388  End If;
389 
390 End If; --l_qte_line_tbl.count
391 
392 
393  -- Standard check for p_commit
394 IF FND_API.to_Boolean( p_commit ) THEN
395       COMMIT WORK;
396 END IF;
397 
398  FND_MSG_PUB.Count_And_Get
399       ( p_encoded    => 'F',
400         p_count      =>   x_msg_count,
401         p_data       =>   x_msg_data
402       );
403 
404  for l in 1 .. x_msg_count loop
405     x_msg_data := fnd_msg_pub.get( p_msg_index => l, p_encoded => 'F');
406     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
407       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Messge count and get '||x_msg_data, 1, 'Y');
408       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Messge count and get '||x_msg_count, 1, 'Y');
409     END IF;
410  end loop;
411 
412 EXCEPTION
413       WHEN FND_API.G_EXC_ERROR THEN
414       IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
415         aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:After inside EXCEPTION  return status'||x_return_status, 1, 'N');
416       END IF;
417           ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
418            P_API_NAME => L_API_NAME
419           ,P_PKG_NAME => G_PKG_NAME
420           ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
421           ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
422           ,P_SQLCODE => SQLCODE
423           ,P_SQLERRM => SQLERRM
424           ,X_MSG_COUNT => X_MSG_COUNT
425           ,X_MSG_DATA => X_MSG_DATA
426           ,X_RETURN_STATUS => X_RETURN_STATUS);
427 
428       WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
429           ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
430            P_API_NAME => L_API_NAME
431           ,P_PKG_NAME => G_PKG_NAME
432           ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
433           ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
434           ,P_SQLCODE => SQLCODE
435           ,P_SQLERRM => SQLERRM
436           ,X_MSG_COUNT => X_MSG_COUNT
437           ,X_MSG_DATA => X_MSG_DATA
438           ,X_RETURN_STATUS => X_RETURN_STATUS);
439 
440       WHEN OTHERS THEN
441           ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
442            P_API_NAME => L_API_NAME
443           ,P_PKG_NAME => G_PKG_NAME
444           ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
445           ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
446           ,P_SQLCODE => SQLCODE
447           ,P_SQLERRM => SQLERRM
448           ,X_MSG_COUNT => X_MSG_COUNT
449           ,X_MSG_DATA => X_MSG_DATA
450           ,X_RETURN_STATUS => X_RETURN_STATUS);
451 
452 END Config_Callback_Pricing_Order;
453 
454 
455 PROCEDURE Config_Callback_Pricing_Order (
456         P_Api_Version_Number         IN   NUMBER,
457         P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
458         P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
459         p_control_rec                IN   ASO_PRICING_INT.PRICING_CONTROL_REC_TYPE,
460         p_qte_line_tbl               IN   ASO_QUOTE_PUB.Qte_Line_Tbl_Type,
461         p_qte_header_id              IN   NUMBER,
462         x_return_status              OUT NOCOPY /* file.sql.39 change */    VARCHAR2,
463         x_msg_count                  OUT NOCOPY /* file.sql.39 change */    NUMBER,
464         x_msg_data                   OUT NOCOPY /* file.sql.39 change */    VARCHAR2)
465 IS
466 
467     l_api_name                      CONSTANT VARCHAR2(30) := 'Config_Callback_Pricing_Order';
468     l_api_version_number            CONSTANT NUMBER   := 1.0;
469     l_control_rec                   QP_PREQ_GRP.CONTROL_RECORD_TYPE;
470     l_req_line_tbl                  QP_PREQ_GRP.LINE_TBL_TYPE;
471     l_Req_qual_tbl                  QP_PREQ_GRP.QUAL_TBL_TYPE;
472     l_Req_line_attr_tbl             QP_PREQ_GRP.LINE_ATTR_TBL_TYPE;
473     l_Req_LINE_DETAIL_tbl           QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE;
474     l_req_LINE_DETAIL_qual_tbl      QP_PREQ_GRP.LINE_DETAIL_QUAL_TBL_TYPE;
475     l_req_LINE_DETAIL_attr_tbl      QP_PREQ_GRP.LINE_DETAIL_ATTR_TBL_TYPE;
476     l_req_related_lines_tbl         QP_PREQ_GRP.RELATED_LINES_TBL_TYPE;
477     l_hd_pricing_contexts_Tbl       QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type;
478     l_hd_qual_contexts_Tbl          QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type;
479     l_pricing_contexts_Tbl          QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type;
480     l_qual_contexts_Tbl             QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type;
481     lx_req_line_tbl                 QP_PREQ_GRP.LINE_TBL_TYPE;
482     lx_req_qual_tbl                 QP_PREQ_GRP.QUAL_TBL_TYPE;
483     lx_req_line_attr_tbl            QP_PREQ_GRP.LINE_ATTR_TBL_TYPE;
484     lx_req_LINE_DETAIL_tbl          QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE;
485     lx_req_LINE_DETAIL_qual_tbl     QP_PREQ_GRP.LINE_DETAIL_QUAL_TBL_TYPE;
486     lx_req_LINE_DETAIL_attr_tbl     QP_PREQ_GRP.LINE_DETAIL_ATTR_TBL_TYPE;
487     lx_req_related_lines_tbl        QP_PREQ_GRP.RELATED_LINES_TBL_TYPE;
488     l_qte_header_rec              ASO_QUOTE_PUB.Qte_Header_Rec_Type;
489     l_shipment_tbl                  ASO_QUOTE_PUB.Shipment_Tbl_Type;
490     l_shipment_rec                  ASO_QUOTE_PUB.Shipment_Rec_Type;
491     l_price_attr_tbl                ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
492     l_qte_line_tbl                  ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
493     l_qte_line_id                   NUMBER;
494     l_qte_line_dtl_rec              ASO_QUOTE_PUB.Qte_Line_Dtl_Rec_Type;
495     l_qte_line_dtl_tbl              ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
496     l_return_status                 VARCHAR2(1);
497     l_return_status_text            VARCHAR2(2000);
498     l_request_type                  VARCHAR2(60);
499     l_pricing_event                 VARCHAR2(30);
500     l_qte_line_rec                  ASO_QUOTE_PUB.Qte_Line_rec_Type;
501     lx_qte_header_rec               ASO_QUOTE_PUB.Qte_Header_Rec_Type;
502     lx_qte_line_tbl                 ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
503     lx_qte_line_dtl_tbl             ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
504     lx_price_adj_tbl                ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
505     lx_price_adj_attr_tbl           ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
506     lx_price_adj_rltship_tbl        ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
507 
508     l_qte_line_prcd                 Index_Link_Tbl_Type;
509     l_message_text                  VARCHAR2(2000);
510     lx_req_line_rec                 QP_PREQ_GRP.LINE_REC_TYPE;
511     i                               BINARY_INTEGER;
512     ln_shipment_tbl                 ASO_QUOTE_PUB.Shipment_Tbl_Type;
513     l_line_rltship_tbl              ASO_QUOTE_PUB.Line_Rltship_Tbl_Type;
514     l_ln_price_attr_tbl             ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
515     l_hd_shipment_rec               ASO_QUOTE_PUB.Shipment_Rec_Type;
516     lx_return_status                VARCHAR2(50);
517     lx_msg_count                    NUMBER;
518     lx_msg_data                     VARCHAR2(2000);
519 
520 BEGIN
521     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
522       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT: In Config_Callback_Pricing_Order with HDR Id CALL', 1, 'Y');
523     END IF;
524     -- Standard Start of API savepoint
525     SAVEPOINT ASO_PRICING_CALLBACK_PVT;
526 
527     -- Standard call to check for call compatibility.
528     IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
529                                         p_api_version_number,
530                                         l_api_name,
531                                         G_PKG_NAME)
532     THEN
533           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
534     END IF;
535 
536 
537     -- Initialize message list if p_init_msg_list is set to TRUE.
538     IF FND_API.to_Boolean( p_init_msg_list )
539     THEN
540           FND_MSG_PUB.initialize;
541     END IF;
542 
543     x_return_status := FND_API.G_RET_STS_SUCCESS;
544     l_request_type := p_control_rec.request_type;
545     l_pricing_event := p_control_rec.pricing_event;
546 
547     l_qte_header_rec := ASO_UTILITY_PVT.Query_Header_Row(p_qte_header_id);
548     l_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows(p_qte_header_id,NULL);
549     IF l_shipment_tbl.count = 1 THEN
550       l_shipment_rec := l_shipment_tbl(1);
551     END IF;
552     l_price_attr_tbl := ASO_UTILITY_PVT.Query_Price_Attr_Rows(p_qte_header_id, null);
553     ASO_PRICING_CALLBACK_PVT.Config_Callback_Pricing_Order(
554                     P_Api_Version_Number     => 1.0,
555                     P_Init_Msg_List          => FND_API.G_FALSE,
556                     P_Commit                 => FND_API.G_FALSE,
557                     p_control_rec            => p_control_rec,
558                     p_qte_header_rec         => l_qte_header_rec,
559                     p_hd_shipment_rec        => l_shipment_rec,
560                     p_hd_price_attr_tbl      => l_price_attr_tbl,
561                     p_qte_line_tbl           =>    p_qte_line_tbl,
562                     p_line_rltship_tbl       => l_line_rltship_tbl,
563                     p_qte_line_dtl_tbl       => l_qte_line_dtl_tbl,
564                     p_ln_shipment_tbl        => ln_shipment_tbl,
565                     p_ln_price_attr_tbl      => l_ln_price_attr_tbl,
566                     x_qte_header_rec         => lx_qte_header_rec,
567                     x_qte_line_tbl           => lx_qte_line_tbl,
568                     x_qte_line_dtl_tbl       => lx_qte_line_dtl_tbl,
569                     x_price_adj_tbl          =>     lx_price_adj_tbl,
570                     x_price_adj_attr_tbl     => lx_price_adj_attr_tbl,
571                     x_price_adj_rltship_tbl  => lx_price_adj_rltship_tbl,
572                     x_return_status          => x_return_status,
573                     x_msg_count              => x_msg_count,
574                     x_msg_data               => x_msg_data );
575 
576  -- Standard check for p_commit
577       IF FND_API.to_Boolean( p_commit )
578       THEN
579       COMMIT WORK;
580       END IF;
581 
582    FND_MSG_PUB.Count_And_Get
583       (  p_count          =>   x_msg_count,
584          p_data           =>   x_msg_data
585       );
586 
587     EXCEPTION
588       WHEN FND_API.G_EXC_ERROR THEN
589           ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
590            P_API_NAME => L_API_NAME
591           ,P_PKG_NAME => G_PKG_NAME
592           ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
593           ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
594           ,P_SQLCODE => SQLCODE
595           ,P_SQLERRM => SQLERRM
596           ,X_MSG_COUNT => X_MSG_COUNT
597           ,X_MSG_DATA => X_MSG_DATA
598           ,X_RETURN_STATUS => X_RETURN_STATUS);
599 
600       WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
601           ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
602            P_API_NAME => L_API_NAME
603           ,P_PKG_NAME => G_PKG_NAME
604           ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
605           ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
606           ,P_SQLCODE => SQLCODE
607           ,P_SQLERRM => SQLERRM
608           ,X_MSG_COUNT => X_MSG_COUNT
609           ,X_MSG_DATA => X_MSG_DATA
610           ,X_RETURN_STATUS => X_RETURN_STATUS);
611 
612       WHEN OTHERS THEN
613           ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
614            P_API_NAME => L_API_NAME
615           ,P_PKG_NAME => G_PKG_NAME
616           ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
617           ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
618           ,P_SQLCODE => SQLCODE
619           ,P_SQLERRM => SQLERRM
620           ,X_MSG_COUNT => X_MSG_COUNT
621           ,X_MSG_DATA => X_MSG_DATA
622           ,X_RETURN_STATUS => X_RETURN_STATUS);
623 
624 END Config_Callback_Pricing_Order;
625 
626 
627 PROCEDURE Copy_Attribs_To_Req(
628     p_line_index                            number,
629     p_pricing_contexts_Tbl                  QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type,
630     p_qualifier_contexts_Tbl                QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type,
631     px_Req_line_attr_tbl    IN OUT NOCOPY /* file.sql.39 change */            QP_PREQ_GRP.LINE_ATTR_TBL_TYPE,
632     px_Req_qual_tbl         IN OUT NOCOPY /* file.sql.39 change */            QP_PREQ_GRP.QUAL_TBL_TYPE)
633 IS
634     l_attr_index    number := nvl(px_Req_line_attr_tbl.last,0);
635     l_qual_index    number := nvl(px_Req_qual_tbl.last,0);
636 BEGIN
637     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
638       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT: In copy attribs to req - Global Header Rec quote_status_id'
639                          ||ASO_PRICING_INT.G_HEADER_REC.quote_status_id,1,'N');
640     END IF;
641     for i in 1..p_pricing_contexts_Tbl.count loop
642         l_attr_index := l_attr_index +1;
643         IF NVL(ASO_PRICING_INT.G_HEADER_REC.quote_status_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
644             px_Req_line_attr_tbl(l_attr_index).VALIDATED_FLAG := 'N';
645         ELSE
646             px_Req_line_attr_tbl(l_attr_index).VALIDATED_FLAG := 'Y';
647         END IF;
648         px_Req_line_attr_tbl(l_attr_index).line_index := p_line_index;
649         -- Product and Pricing Contexts go into pricing contexts...
650         px_Req_line_attr_tbl(l_attr_index).PRICING_CONTEXT :=
651                                          p_pricing_contexts_Tbl(i).context_name;
652         px_Req_line_attr_tbl(l_attr_index).PRICING_ATTRIBUTE :=
653                                         p_pricing_contexts_Tbl(i).Attribute_Name;
654         px_Req_line_attr_tbl(l_attr_index).PRICING_ATTR_VALUE_FROM :=
655                                        p_pricing_contexts_Tbl(i).attribute_value;
656     end loop;
657     -- Copy the qualifiers
658     for i in 1..p_qualifier_contexts_Tbl.count loop
659         l_qual_index := l_qual_index +1;
660         IF NVL(ASO_PRICING_INT.G_HEADER_REC.quote_status_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
661                px_Req_qual_tbl(l_qual_index).VALIDATED_FLAG := 'N';
662         ELSE
663                px_Req_qual_tbl(l_qual_index).VALIDATED_FLAG := 'Y';
664         END IF;
665         px_Req_qual_tbl(l_qual_index).line_index := p_line_index;
666         px_Req_qual_tbl(l_qual_index).QUALIFIER_CONTEXT :=
667                                         p_qualifier_contexts_Tbl(i).context_name;
668         px_Req_qual_tbl(l_qual_index).QUALIFIER_ATTRIBUTE :=
669                                       p_qualifier_contexts_Tbl(i).Attribute_Name;
670         px_Req_qual_tbl(l_qual_index).QUALIFIER_ATTR_VALUE_FROM :=
671                                      p_qualifier_contexts_Tbl(i).attribute_value;
672     end loop;
673 end copy_attribs_to_Req;
674 
675 PROCEDURE Copy_hdr_attr_to_line(
676     p_line_index                           number,
677     p_pricing_contexts_Tbl                 QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type,
678     p_qualifier_contexts_Tbl               QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type,
679     px_Req_line_attr_tbl    IN OUT NOCOPY /* file.sql.39 change */           QP_PREQ_GRP.LINE_ATTR_TBL_TYPE,
680     px_Req_qual_tbl         IN OUT NOCOPY /* file.sql.39 change */           QP_PREQ_GRP.QUAL_TBL_TYPE)
681 IS
682     l_attr_index              number := nvl(px_Req_line_attr_tbl.last,0);
683     l_qual_index              number := nvl(px_Req_qual_tbl.last,0);
684     copy_hdr_rec_to_line_flag boolean := TRUE;
685 BEGIN
686     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
687       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT: copy_hdr_attribs_to_line - Global Header Rec quote_status_id:'
688                          ||ASO_PRICING_INT.G_HEADER_REC.quote_status_id,1,'N');
689     END IF;
690     for i in 1..p_pricing_contexts_Tbl.count loop
691         l_attr_index := l_attr_index +1;
692         IF NVL(ASO_PRICING_INT.G_HEADER_REC.quote_status_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
693             px_Req_line_attr_tbl(l_attr_index).VALIDATED_FLAG := 'N';
694         ELSE
695             px_Req_line_attr_tbl(l_attr_index).VALIDATED_FLAG := 'Y';
696         END IF;
697         px_Req_line_attr_tbl(l_attr_index).line_index := p_line_index;
698         -- Product and Pricing Contexts go into pricing contexts...
699         px_Req_line_attr_tbl(l_attr_index).PRICING_CONTEXT :=
700                                            p_pricing_contexts_Tbl(i).context_name;
701         px_Req_line_attr_tbl(l_attr_index).PRICING_ATTRIBUTE :=
702                                          p_pricing_contexts_Tbl(i).Attribute_Name;
703         px_Req_line_attr_tbl(l_attr_index).PRICING_ATTR_VALUE_FROM :=
704                                         p_pricing_contexts_Tbl(i).attribute_value;
705     end loop;
706     -- Copy the qualifiers
707     for i in 1..p_qualifier_contexts_Tbl.count loop
708         copy_hdr_rec_to_line_flag := TRUE;
709         for j in 1..px_Req_qual_tbl.count loop
710             if px_Req_qual_tbl(j).QUALIFIER_CONTEXT = p_qualifier_contexts_Tbl(i).context_name
711                and px_Req_qual_tbl(j).QUALIFIER_ATTRIBUTE = p_qualifier_contexts_Tbl(i).Attribute_Name
712                and p_line_index = px_Req_qual_tbl(j).line_index
713             then
714                 copy_hdr_rec_to_line_flag := FALSE;
715             end if;
716         end loop;
717 
718         if copy_hdr_rec_to_line_flag then
719            l_qual_index := l_qual_index +1;
720            IF NVL(ASO_PRICING_INT.G_HEADER_REC.quote_status_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
721                  px_Req_qual_tbl(l_qual_index).VALIDATED_FLAG := 'N';
722            ELSE
723                  px_Req_qual_tbl(l_qual_index).VALIDATED_FLAG := 'Y';
724            END IF;
725            px_Req_qual_tbl(l_qual_index).line_index := p_line_index;
726            px_Req_qual_tbl(l_qual_index).QUALIFIER_CONTEXT :=
727                                         p_qualifier_contexts_Tbl(i).context_name;
728            px_Req_qual_tbl(l_qual_index).QUALIFIER_ATTRIBUTE :=
729                                         p_qualifier_contexts_Tbl(i).Attribute_Name;
730            px_Req_qual_tbl(l_qual_index).QUALIFIER_ATTR_VALUE_FROM :=
731                                         p_qualifier_contexts_Tbl(i).attribute_value;
732         end if;
733     end loop;
734 end Copy_hdr_attr_to_line;
735 
736 procedure  Append_asked_for(
737        p_header_id                             number := null
738        ,p_Line_id                              number := null
739        ,p_line_index                           number
740        ,px_Req_line_attr_tbl    IN OUT NOCOPY /* file.sql.39 change */           QP_PREQ_GRP.LINE_ATTR_TBL_TYPE
741        ,px_Req_qual_tbl         IN OUT NOCOPY /* file.sql.39 change */           QP_PREQ_GRP.QUAL_TBL_TYPE)
742 IS
743 i                  pls_integer;
744 l_price_list_id    NUMBER;
745 
746 cursor asked_for_cur is
747     select flex_title, pricing_context, pricing_attribute1,
748     pricing_attribute2 , pricing_attribute3 , pricing_attribute4 , pricing_attribute5 ,
749     pricing_attribute6 , pricing_attribute7 , pricing_attribute8 , pricing_attribute9 ,
750     pricing_attribute10 , pricing_attribute11 , pricing_attribute12 , pricing_attribute13 ,
751     pricing_attribute14 , pricing_attribute15 , pricing_attribute16 , pricing_attribute17 ,
752     pricing_attribute18 , pricing_attribute19 , pricing_attribute20 , pricing_attribute21 ,
753     pricing_attribute22 , pricing_attribute23 , pricing_attribute24 , pricing_attribute25 ,
754     pricing_attribute26 , pricing_attribute27 , pricing_attribute28 , pricing_attribute29 ,
755     pricing_attribute30 , pricing_attribute31 , pricing_attribute32 , pricing_attribute33 ,
756     pricing_attribute34 , pricing_attribute35 , pricing_attribute36 , pricing_attribute37 ,
757     pricing_attribute38 , pricing_attribute39 , pricing_attribute40 , pricing_attribute41 ,
758     pricing_attribute42 , pricing_attribute43 , pricing_attribute44 , pricing_attribute45 ,
759     pricing_attribute46 , pricing_attribute47 , pricing_attribute48 , pricing_attribute49 ,
760     pricing_attribute50 , pricing_attribute51 , pricing_attribute52 , pricing_attribute53 ,
761     pricing_attribute54 , pricing_attribute55 , pricing_attribute56 , pricing_attribute57 ,
762     pricing_attribute58 , pricing_attribute59 , pricing_attribute60 , pricing_attribute61 ,
763     pricing_attribute62 , pricing_attribute63 , pricing_attribute64 , pricing_attribute65 ,
764     pricing_attribute66 , pricing_attribute67 , pricing_attribute68 , pricing_attribute69 ,
765     pricing_attribute70 , pricing_attribute71 , pricing_attribute72 , pricing_attribute73 ,
766     pricing_attribute74 , pricing_attribute75 , pricing_attribute76 , pricing_attribute77 ,
767     pricing_attribute78 , pricing_attribute79 , pricing_attribute80 , pricing_attribute81 ,
768     pricing_attribute82 , pricing_attribute83 , pricing_attribute84 , pricing_attribute85 ,
769     pricing_attribute86 , pricing_attribute87 , pricing_attribute88 , pricing_attribute89 ,
770     pricing_attribute90 , pricing_attribute91 , pricing_attribute92 , pricing_attribute93 ,
771     pricing_attribute94 , pricing_attribute95 , pricing_attribute96 , pricing_attribute97 ,
772     pricing_attribute98 , pricing_attribute99 , pricing_attribute100
773     ,Override_Flag
774     from aso_price_attributes a
775     where ( a.QUOTE_HEADER_ID = p_header_id )
776     and (p_header_id is not null and p_header_id <> FND_API.G_MISS_NUM)
777     and a.quote_line_id is null
778     /*
779      * New Code - Union is changed to union all
780      */
781   UNION ALL
782     select flex_title, pricing_context, pricing_attribute1,
783     pricing_attribute2 , pricing_attribute3 , pricing_attribute4 , pricing_attribute5 ,
784     pricing_attribute6 , pricing_attribute7 , pricing_attribute8 , pricing_attribute9 ,
785     pricing_attribute10 , pricing_attribute11 , pricing_attribute12 , pricing_attribute13 ,
786     pricing_attribute14 , pricing_attribute15 , pricing_attribute16 , pricing_attribute17 ,
787     pricing_attribute18 , pricing_attribute19 , pricing_attribute20 , pricing_attribute21 ,
788     pricing_attribute22 , pricing_attribute23 , pricing_attribute24 , pricing_attribute25 ,
789     pricing_attribute26 , pricing_attribute27 , pricing_attribute28 , pricing_attribute29 ,
790     pricing_attribute30 , pricing_attribute31 , pricing_attribute32 , pricing_attribute33 ,
791     pricing_attribute34 , pricing_attribute35 , pricing_attribute36 , pricing_attribute37 ,
792     pricing_attribute38 , pricing_attribute39 , pricing_attribute40 , pricing_attribute41 ,
793     pricing_attribute42 , pricing_attribute43 , pricing_attribute44 , pricing_attribute45 ,
794     pricing_attribute46 , pricing_attribute47 , pricing_attribute48 , pricing_attribute49 ,
795     pricing_attribute50 , pricing_attribute51 , pricing_attribute52 , pricing_attribute53 ,
796     pricing_attribute54 , pricing_attribute55 , pricing_attribute56 , pricing_attribute57 ,
797     pricing_attribute58 , pricing_attribute59 , pricing_attribute60 , pricing_attribute61 ,
798     pricing_attribute62 , pricing_attribute63 , pricing_attribute64 , pricing_attribute65 ,
799     pricing_attribute66 , pricing_attribute67 , pricing_attribute68 , pricing_attribute69 ,
800     pricing_attribute70 , pricing_attribute71 , pricing_attribute72 , pricing_attribute73 ,
801     pricing_attribute74 , pricing_attribute75 , pricing_attribute76 , pricing_attribute77 ,
802     pricing_attribute78 , pricing_attribute79 , pricing_attribute80 , pricing_attribute81 ,
803     pricing_attribute82 , pricing_attribute83 , pricing_attribute84 , pricing_attribute85 ,
804     pricing_attribute86 , pricing_attribute87 , pricing_attribute88 , pricing_attribute89 ,
805     pricing_attribute90 , pricing_attribute91 , pricing_attribute92 , pricing_attribute93 ,
806     pricing_attribute94 , pricing_attribute95 , pricing_attribute96 , pricing_attribute97 ,
807     pricing_attribute98 , pricing_attribute99 , pricing_attribute100
808     ,Override_Flag
809     from aso_price_attributes a
810     where ( a.QUOTE_line_id = p_line_id )
811     and (p_line_id is not null and p_line_id <> FND_API.G_MISS_NUM);
812 
813 begin
814     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
815       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT: In PL/SQL tbl,append_asked_for - Global_Header_Rec quote_status_id'
816                          ||ASO_PRICING_INT.G_HEADER_REC.quote_status_id,1,'N');
817     END IF;
818     for asked_for_rec in asked_for_cur loop
819         IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
820           aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:In append_asked_for  asked_for_rec.PRICING_ATTRIBUTE1'
821                              ||asked_for_rec.PRICING_ATTRIBUTE1,1,'Y');
822           aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:In append_asked_for  asked_for_rec.flex_title'
823                              ||asked_for_rec.flex_title,1,'Y');
824         END IF;
825         If asked_for_rec.flex_title = 'QP_ATTR_DEFNS_PRICING' then
826            if asked_for_rec.PRICING_ATTRIBUTE1 is not null then
827               i := px_Req_line_attr_tbl.count+1;
828               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
829               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
830               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
831               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE1';
832               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := asked_for_rec.PRICING_ATTRIBUTE1;
833            end if;
834         if asked_for_rec.PRICING_ATTRIBUTE2 is not null then
835             i := px_Req_line_attr_tbl.count+1;
836             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
837             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
838             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
839             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE2';
840             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := asked_for_rec.PRICING_ATTRIBUTE2;
841         end if;
842         if asked_for_rec.PRICING_ATTRIBUTE3 is not null then
843             i := px_Req_line_attr_tbl.count+1;
844             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
845             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
846             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
847             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE3';
848             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := asked_for_rec.PRICING_ATTRIBUTE3;
849         end if;
850         if asked_for_rec.PRICING_ATTRIBUTE4 is not null then
851             i := px_Req_line_attr_tbl.count+1;
852             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
853             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
854             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
855             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE4';
856             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := asked_for_rec.PRICING_ATTRIBUTE4;
857         end if;
858         if asked_for_rec.PRICING_ATTRIBUTE5 is not null then
859             i := px_Req_line_attr_tbl.count+1;
860             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
861             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
862             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
863             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE5';
864             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := asked_for_rec.PRICING_ATTRIBUTE5;
865         end if;
866         if asked_for_rec.PRICING_ATTRIBUTE6 is not null then
867            i := px_Req_line_attr_tbl.count+1;
868            px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
869            px_Req_line_attr_tbl(i).Validated_Flag := 'N';
870            px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
871            px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE6';
872            px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := asked_for_rec.PRICING_ATTRIBUTE6;
873        end if;
874        if asked_for_rec.PRICING_ATTRIBUTE7 is not null then
875             i := px_Req_line_attr_tbl.count+1;
876             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
877             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
878             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
879             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE7';
880             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := asked_for_rec.PRICING_ATTRIBUTE7;
881        end if;
882        if asked_for_rec.PRICING_ATTRIBUTE8 is not null then
883             i := px_Req_line_attr_tbl.count+1;
884             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
885             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
886             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
887             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE8';
888             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := asked_for_rec.PRICING_ATTRIBUTE8;
889        end if;
890        if asked_for_rec.PRICING_ATTRIBUTE9 is not null then
891             i := px_Req_line_attr_tbl.count+1;
892             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
893             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
894             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
895             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE9';
896             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := asked_for_rec.PRICING_ATTRIBUTE9;
897        end if;
898       if asked_for_rec.PRICING_ATTRIBUTE10 is not null then
899             i := px_Req_line_attr_tbl.count+1;
900             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
901             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
902             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
903             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE10';
904             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE10;
905       end if;
906       if asked_for_rec.PRICING_ATTRIBUTE11 is not null then
907             i := px_Req_line_attr_tbl.count+1;
908             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
909             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
910             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
911             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE11';
912             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE11;
913       end if;
914       if asked_for_rec.PRICING_ATTRIBUTE12 is not null then
915             i := px_Req_line_attr_tbl.count+1;
916             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
917             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
918             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
919             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE12';
920             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE12;
921       end if;
922       if asked_for_rec.PRICING_ATTRIBUTE13 is not null then
923             i := px_Req_line_attr_tbl.count+1;
924             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
925             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
926             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
927             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE13';
928             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE13;
929       end if;
930       if asked_for_rec.PRICING_ATTRIBUTE14 is not null then
931             i := px_Req_line_attr_tbl.count+1;
932             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
933             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
934             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
935             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE14';
936             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE14;
937       end if;
938       if asked_for_rec.PRICING_ATTRIBUTE15 is not null then
939             i := px_Req_line_attr_tbl.count+1;
940             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
941             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
942             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
943             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE15';
944             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE15;
945       end if;
946       if asked_for_rec.PRICING_ATTRIBUTE16 is not null then
947             i := px_Req_line_attr_tbl.count+1;
948             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
949             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
950             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
951             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE16';
952             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE16;
953       end if;
954       if asked_for_rec.PRICING_ATTRIBUTE17 is not null then
955             i := px_Req_line_attr_tbl.count+1;
956             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
957             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
958             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
959             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE17';
960             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE17;
961       end if;
962       if asked_for_rec.PRICING_ATTRIBUTE18 is not null then
963             i := px_Req_line_attr_tbl.count+1;
964             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
965             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
966             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
967             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE18';
968             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE18;
969       end if;
970       if asked_for_rec.PRICING_ATTRIBUTE19 is not null then
971             i := px_Req_line_attr_tbl.count+1;
972             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
973             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
974             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
975             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE19';
976             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE19;
977       end if;
978       if asked_for_rec.PRICING_ATTRIBUTE20 is not null then
979             i := px_Req_line_attr_tbl.count+1;
980             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
981             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
982             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
983             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE20';
984             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE20;
985       end if;
986       if asked_for_rec.PRICING_ATTRIBUTE21 is not null then
987             i := px_Req_line_attr_tbl.count+1;
988             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
989             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
990             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
991             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE21';
992             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE21;
993       end if;
994       if asked_for_rec.PRICING_ATTRIBUTE22 is not null then
995             i := px_Req_line_attr_tbl.count+1;
996             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
997             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
998             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
999             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE22';
1000             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE22;
1001       end if;
1002       if asked_for_rec.PRICING_ATTRIBUTE23 is not null then
1003             i := px_Req_line_attr_tbl.count+1;
1004             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1005             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1006             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1007             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE23';
1008             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE23;
1009       end if;
1010       if asked_for_rec.PRICING_ATTRIBUTE24 is not null then
1011             i := px_Req_line_attr_tbl.count+1;
1012             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1013             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1014             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1015             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE24';
1016             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE24;
1017       end if;
1018       if asked_for_rec.PRICING_ATTRIBUTE25 is not null then
1019             i := px_Req_line_attr_tbl.count+1;
1020             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1021             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1022             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1023             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE25';
1024             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE25;
1025       end if;
1026       if asked_for_rec.PRICING_ATTRIBUTE26 is not null then
1027            i := px_Req_line_attr_tbl.count+1;
1028            px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1029            px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1030            px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1031            px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE26';
1032            px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE26;
1033       end if;
1034       if asked_for_rec.PRICING_ATTRIBUTE27 is not null then
1035            i := px_Req_line_attr_tbl.count+1;
1036            px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1037            px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1038            px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1039            px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE27';
1040            px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE27;
1041       end if;
1042       if asked_for_rec.PRICING_ATTRIBUTE28 is not null then
1043             i := px_Req_line_attr_tbl.count+1;
1044             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1045             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1046             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1047             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE28';
1048             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE28;
1049       end if;
1050       if asked_for_rec.PRICING_ATTRIBUTE29 is not null then
1051             i := px_Req_line_attr_tbl.count+1;
1052             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1053             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1054             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1055             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE29';
1056             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE29;
1057       end if;
1058       if asked_for_rec.PRICING_ATTRIBUTE30 is not null then
1059             i := px_Req_line_attr_tbl.count+1;
1060             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1061             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1062             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1063             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE30';
1064             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE30;
1065       end if;
1066       if asked_for_rec.PRICING_ATTRIBUTE31 is not null then
1067             i := px_Req_line_attr_tbl.count+1;
1068             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1069             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1070             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1071             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE31';
1072             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE31;
1073       end if;
1074       if asked_for_rec.PRICING_ATTRIBUTE32 is not null then
1075             i := px_Req_line_attr_tbl.count+1;
1076             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1077             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1078             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1079             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE32';
1080             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE32;
1081       end if;
1082       if asked_for_rec.PRICING_ATTRIBUTE33 is not null then
1083             i := px_Req_line_attr_tbl.count+1;
1084             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1085             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1086             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1087             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE33';
1088             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE33;
1089       end if;
1090       if asked_for_rec.PRICING_ATTRIBUTE34 is not null then
1091             i := px_Req_line_attr_tbl.count+1;
1092             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1093             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1094             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1095             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE34';
1096             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE34;
1097       end if;
1098       if asked_for_rec.PRICING_ATTRIBUTE35 is not null then
1099             i := px_Req_line_attr_tbl.count+1;
1100             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1101             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1102             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1103             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE35';
1104             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE35;
1105       end if;
1106       if asked_for_rec.PRICING_ATTRIBUTE36 is not null then
1107             i := px_Req_line_attr_tbl.count+1;
1108             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1109             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1110             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1111             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE36';
1112             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE36;
1113       end if;
1114       if asked_for_rec.PRICING_ATTRIBUTE37 is not null then
1115             i := px_Req_line_attr_tbl.count+1;
1116             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1117             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1118             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1119             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE37';
1120             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE37;
1121       end if;
1122       if asked_for_rec.PRICING_ATTRIBUTE38 is not null then
1123             i := px_Req_line_attr_tbl.count+1;
1124             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1125             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1126             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1127             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE38';
1128             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE38;
1129       end if;
1130       if asked_for_rec.PRICING_ATTRIBUTE39 is not null then
1131            i := px_Req_line_attr_tbl.count+1;
1132            px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1133            px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1134            px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1135            px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE39';
1136            px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE39;
1137       end if;
1138       if asked_for_rec.PRICING_ATTRIBUTE40 is not null then
1139            i := px_Req_line_attr_tbl.count+1;
1140            px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1141            px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1142            px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1143            px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE40';
1144            px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE40;
1145       end if;
1146       if asked_for_rec.PRICING_ATTRIBUTE41 is not null then
1147             i := px_Req_line_attr_tbl.count+1;
1148             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1149             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1150             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1151             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE41';
1152             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE41;
1153       end if;
1154       if asked_for_rec.PRICING_ATTRIBUTE42 is not null then
1155             i := px_Req_line_attr_tbl.count+1;
1156             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1157             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1158             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1159             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE42';
1160             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE42;
1161       end if;
1162       if asked_for_rec.PRICING_ATTRIBUTE43 is not null then
1163              i := px_Req_line_attr_tbl.count+1;
1164              px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1165              px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1166              px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1167              px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE43';
1168              px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE43;
1169       end if;
1170       if asked_for_rec.PRICING_ATTRIBUTE44 is not null then
1171              i := px_Req_line_attr_tbl.count+1;
1172              px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1173              px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1174              px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1175              px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE44';
1176              px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE44;
1177       end if;
1178       if asked_for_rec.PRICING_ATTRIBUTE45 is not null then
1179              i := px_Req_line_attr_tbl.count+1;
1180              px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1181              px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1182              px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1183              px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE45';
1184              px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE45;
1185       end if;
1186       if asked_for_rec.PRICING_ATTRIBUTE46 is not null then
1187             i := px_Req_line_attr_tbl.count+1;
1188             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1189             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1190             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1191             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE46';
1192             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE46;
1193       end if;
1194       if asked_for_rec.PRICING_ATTRIBUTE47 is not null then
1195             i := px_Req_line_attr_tbl.count+1;
1196             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1197             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1198             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1199             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE47';
1200             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE47;
1201       end if;
1202         if asked_for_rec.PRICING_ATTRIBUTE48 is not null then
1203               i := px_Req_line_attr_tbl.count+1;
1204               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1205               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1206               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1207               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE48';
1208               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE48;
1209        end if;
1210      if asked_for_rec.PRICING_ATTRIBUTE49 is not null then
1211               i := px_Req_line_attr_tbl.count+1;
1212               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1213               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1214               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1215               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE49';
1216               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE49;
1217      end if;
1218      if asked_for_rec.PRICING_ATTRIBUTE50 is not null then
1219               i := px_Req_line_attr_tbl.count+1;
1220               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1221               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1222               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1223               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE50';
1224               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE50;
1225      end if;
1226      if asked_for_rec.PRICING_ATTRIBUTE51 is not null then
1227               i := px_Req_line_attr_tbl.count+1;
1228               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1229               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1230               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1231               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE51';
1232               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE51;
1233      end if;
1234      if asked_for_rec.PRICING_ATTRIBUTE52 is not null then
1235               i := px_Req_line_attr_tbl.count+1;
1236               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1237               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1238               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1239               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE52';
1240               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE52;
1241      end if;
1242      if asked_for_rec.PRICING_ATTRIBUTE53 is not null then
1243               i := px_Req_line_attr_tbl.count+1;
1244               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1245               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1246               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1247               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE53';
1248               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE53;
1249      end if;
1250      if asked_for_rec.PRICING_ATTRIBUTE54 is not null then
1251               i := px_Req_line_attr_tbl.count+1;
1252               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1253               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1254               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1255               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE54';
1256               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE54;
1257      end if;
1258      if asked_for_rec.PRICING_ATTRIBUTE55 is not null then
1259               i := px_Req_line_attr_tbl.count+1;
1260               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1261               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1262               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1263               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE55';
1264               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE55;
1265       end if;
1266       if asked_for_rec.PRICING_ATTRIBUTE56 is not null then
1267               i := px_Req_line_attr_tbl.count+1;
1268               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1269               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1270               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1271               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE56';
1272               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE56;
1273       end if;
1274       if asked_for_rec.PRICING_ATTRIBUTE57 is not null then
1275               i := px_Req_line_attr_tbl.count+1;
1276               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1277               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1278               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1279               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE57';
1280               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE57;
1281       end if;
1282       if asked_for_rec.PRICING_ATTRIBUTE58 is not null then
1283               i := px_Req_line_attr_tbl.count+1;
1284               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1285               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1286               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1287               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE58';
1288               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE58;
1289       end if;
1290       if asked_for_rec.PRICING_ATTRIBUTE59 is not null then
1291               i := px_Req_line_attr_tbl.count+1;
1292               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1293               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1294               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1295               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE59';
1296               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE59;
1297       end if;
1298 
1299       if asked_for_rec.PRICING_ATTRIBUTE60 is not null then
1300               i := px_Req_line_attr_tbl.count+1;
1301               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1302               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1303               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1304               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE60';
1305               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE60;
1306       end if;
1307       if asked_for_rec.PRICING_ATTRIBUTE61 is not null then
1308               i := px_Req_line_attr_tbl.count+1;
1309               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1310               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1311               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1312               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE61';
1313               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE61;
1314       end if;
1315       if asked_for_rec.PRICING_ATTRIBUTE62 is not null then
1316               i := px_Req_line_attr_tbl.count+1;
1317               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1318               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1319               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1320               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE62';
1321               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE62;
1322       end if;
1323       if asked_for_rec.PRICING_ATTRIBUTE63 is not null then
1324               i := px_Req_line_attr_tbl.count+1;
1325               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1326               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1327               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1328               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE63';
1329               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE63;
1330       end if;
1331       if asked_for_rec.PRICING_ATTRIBUTE64 is not null then
1332               i := px_Req_line_attr_tbl.count+1;
1333               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1334               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1335               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1336               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE64';
1337               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE64;
1338       end if;
1339       if asked_for_rec.PRICING_ATTRIBUTE65 is not null then
1340               i := px_Req_line_attr_tbl.count+1;
1341               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1342               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1343               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1344               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE65';
1345               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE65;
1346       end if;
1347       if asked_for_rec.PRICING_ATTRIBUTE66 is not null then
1348               i := px_Req_line_attr_tbl.count+1;
1349               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1350               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1351               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1352               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE66';
1353               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE66;
1354       end if;
1355       if asked_for_rec.PRICING_ATTRIBUTE67 is not null then
1356               i := px_Req_line_attr_tbl.count+1;
1357               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1358               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1359               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1360               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE67';
1361               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE67;
1362       end if;
1363       if asked_for_rec.PRICING_ATTRIBUTE68 is not null then
1364               i := px_Req_line_attr_tbl.count+1;
1365               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1366               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1367               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1368               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE68';
1369               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE68;
1370       end if;
1371       if asked_for_rec.PRICING_ATTRIBUTE69 is not null then
1372               i := px_Req_line_attr_tbl.count+1;
1373               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1374               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1375               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1376               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE69';
1377               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE69;
1378       end if;
1379 
1380       if asked_for_rec.PRICING_ATTRIBUTE70 is not null then
1381               i := px_Req_line_attr_tbl.count+1;
1382               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1383               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1384               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1385               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE70';
1386               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE70;
1387       end if;
1388       if asked_for_rec.PRICING_ATTRIBUTE71 is not null then
1389               i := px_Req_line_attr_tbl.count+1;
1390               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1391               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1392               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1393               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE71';
1394               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE71;
1395       end if;
1396       if asked_for_rec.PRICING_ATTRIBUTE72 is not null then
1397               i := px_Req_line_attr_tbl.count+1;
1398               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1399               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1400               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1401               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE72';
1402               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE72;
1403       end if;
1404       if asked_for_rec.PRICING_ATTRIBUTE73 is not null then
1405               i := px_Req_line_attr_tbl.count+1;
1406               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1407               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1408               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1409               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE73';
1410               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE73;
1411       end if;
1412       if asked_for_rec.PRICING_ATTRIBUTE74 is not null then
1413               i := px_Req_line_attr_tbl.count+1;
1414               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1415               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1416               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1417               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE74';
1418               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE74;
1419       end if;
1420       if asked_for_rec.PRICING_ATTRIBUTE75 is not null then
1421               i := px_Req_line_attr_tbl.count+1;
1422               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1423               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1424               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1425               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE75';
1426               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE75;
1427       end if;
1428       if asked_for_rec.PRICING_ATTRIBUTE76 is not null then
1429               i := px_Req_line_attr_tbl.count+1;
1430               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1431               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1432               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1433               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE76';
1434               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE76;
1435       end if;
1436       if asked_for_rec.PRICING_ATTRIBUTE77 is not null then
1437               i := px_Req_line_attr_tbl.count+1;
1438               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1439               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1440               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1441               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE77';
1442               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE77;
1443       end if;
1444       if asked_for_rec.PRICING_ATTRIBUTE78 is not null then
1445               i := px_Req_line_attr_tbl.count+1;
1446               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1447               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1448               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1449               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE78';
1450               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE78;
1451       end if;
1452       if asked_for_rec.PRICING_ATTRIBUTE79 is not null then
1453               i := px_Req_line_attr_tbl.count+1;
1454               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1455               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1456               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1457               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE79';
1458               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE79;
1459       end if;
1460 
1461       if asked_for_rec.PRICING_ATTRIBUTE80 is not null then
1462               i := px_Req_line_attr_tbl.count+1;
1463               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1464               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1465               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1466               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE80';
1467               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE80;
1468       end if;
1469       if asked_for_rec.PRICING_ATTRIBUTE81 is not null then
1470               i := px_Req_line_attr_tbl.count+1;
1471               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1472               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1473               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1474               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE81';
1475               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE81;
1476       end if;
1477       if asked_for_rec.PRICING_ATTRIBUTE82 is not null then
1478               i := px_Req_line_attr_tbl.count+1;
1479               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1480               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1481               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1482               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE82';
1483               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE82;
1484       end if;
1485       if asked_for_rec.PRICING_ATTRIBUTE83 is not null then
1486               i := px_Req_line_attr_tbl.count+1;
1487               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1488               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1489               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1490               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE83';
1491               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE83;
1492       end if;
1493       if asked_for_rec.PRICING_ATTRIBUTE84 is not null then
1494               i := px_Req_line_attr_tbl.count+1;
1495               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1496               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1497               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1498               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE84';
1499               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE84;
1500       end if;
1501       if asked_for_rec.PRICING_ATTRIBUTE85 is not null then
1502               i := px_Req_line_attr_tbl.count+1;
1503               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1504               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1505               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1506               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE85';
1507               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE85;
1508       end if;
1509       if asked_for_rec.PRICING_ATTRIBUTE86 is not null then
1510               i := px_Req_line_attr_tbl.count+1;
1511               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1512               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1513               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1514               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE86';
1515               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE86;
1516       end if;
1517       if asked_for_rec.PRICING_ATTRIBUTE87 is not null then
1518               i := px_Req_line_attr_tbl.count+1;
1519               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1520               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1521               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1522               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE87';
1523               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE87;
1524       end if;
1525       if asked_for_rec.PRICING_ATTRIBUTE88 is not null then
1526               i := px_Req_line_attr_tbl.count+1;
1527               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1528               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1529               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1530               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE88';
1531               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE88;
1532       end if;
1533       if asked_for_rec.PRICING_ATTRIBUTE89 is not null then
1534               i := px_Req_line_attr_tbl.count+1;
1535               px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1536               px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1537               px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1538               px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE89';
1539               px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE89;
1540       end if;
1541       if asked_for_rec.PRICING_ATTRIBUTE90 is not null then
1542             i := px_Req_line_attr_tbl.count+1;
1543             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1544             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1545             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1546             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE90';
1547             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE90;
1548       end if;
1549       if asked_for_rec.PRICING_ATTRIBUTE91 is not null then
1550              i := px_Req_line_attr_tbl.count+1;
1551              px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1552              px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1553              px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1554              px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE91';
1555              px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE91;
1556       end if;
1557       if asked_for_rec.PRICING_ATTRIBUTE92 is not null then
1558              i := px_Req_line_attr_tbl.count+1;
1559              px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1560              px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1561              px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1562              px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE92';
1563              px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE92;
1564       end if;
1565       if asked_for_rec.PRICING_ATTRIBUTE93 is not null then
1566              i := px_Req_line_attr_tbl.count+1;
1567              px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1568              px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1569              px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1570              px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE93';
1571              px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE93;
1572       end if;
1573       if asked_for_rec.PRICING_ATTRIBUTE94 is not null then
1574              i := px_Req_line_attr_tbl.count+1;
1575              px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1576              px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1577              px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1578              px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE94';
1579              px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE94;
1580       end if;
1581       if asked_for_rec.PRICING_ATTRIBUTE95 is not null then
1582             i := px_Req_line_attr_tbl.count+1;
1583             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1584             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1585             px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1586             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE95';
1587             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE95;
1588       end if;
1589       if asked_for_rec.PRICING_ATTRIBUTE96 is not null then
1590              i := px_Req_line_attr_tbl.count+1;
1591              px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1592              px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1593              px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1594              px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE96';
1595              px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE96;
1596       end if;
1597       if asked_for_rec.PRICING_ATTRIBUTE97 is not null then
1598              i := px_Req_line_attr_tbl.count+1;
1599              px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1600              px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1601              px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1602              px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE97';
1603              px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE97;
1604       end if;
1605       if asked_for_rec.PRICING_ATTRIBUTE98 is not null then
1606              i := px_Req_line_attr_tbl.count+1;
1607              px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1608              px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1609              px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1610              px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE98';
1611              px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE98;
1612       end if;
1613       if asked_for_rec.PRICING_ATTRIBUTE99 is not null then
1614              i := px_Req_line_attr_tbl.count+1;
1615              px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1616              px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1617              px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1618              px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE99';
1619              px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=asked_for_rec.PRICING_ATTRIBUTE99;
1620       end if;
1621       if asked_for_rec.PRICING_ATTRIBUTE100 is not null then
1622              i := px_Req_line_attr_tbl.count+1;
1623              px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1624              px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1625              px_Req_line_attr_tbl(i).pricing_context := asked_for_rec.pricing_context;
1626              px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE100';
1627              px_Req_line_attr_tbl(i).Pricing_Attr_Value_From:=asked_for_rec.PRICING_ATTRIBUTE100;
1628       end if;
1629 
1630       else -- Copy the Qualifiers
1631       if asked_for_rec.PRICING_ATTRIBUTE1 is not null then -- Promotion
1632              i := px_Req_Qual_Tbl.count+1;
1633              px_Req_Qual_Tbl(i).Line_Index := p_Line_Index;
1634              IF NVL(ASO_PRICING_INT.G_HEADER_REC.quote_status_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
1635                 px_Req_Qual_Tbl(i).Validated_Flag := 'N';
1636              ELSE
1637                 px_Req_Qual_Tbl(i).Validated_Flag := 'Y';
1638              END IF;
1639              px_Req_Qual_Tbl(i).Qualifier_Context := asked_for_rec.pricing_context;
1640              px_Req_Qual_Tbl(i).Qualifier_Attribute := 'QUALIFIER_ATTRIBUTE1';
1641              px_Req_Qual_Tbl(i).Qualifier_Attr_Value_From := asked_for_rec.PRICING_ATTRIBUTE1;
1642       end if;
1643       if asked_for_rec.PRICING_ATTRIBUTE2 is not null then --Deal Component
1644              i := px_Req_Qual_Tbl.count+1;
1645              px_Req_Qual_Tbl(i).Line_Index := p_Line_Index;
1646               --px_Req_Qual_Tbl(i).Validated_Flag := nvl(asked_for_rec.Override_Flag,'N');
1647              IF NVL(ASO_PRICING_INT.G_HEADER_REC.quote_status_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
1648                   px_Req_Qual_Tbl(i).Validated_Flag := 'N';
1649              ELSE
1650                   px_Req_Qual_Tbl(i).Validated_Flag := 'Y';
1651              END IF;
1652              px_Req_Qual_Tbl(i).Qualifier_Context := asked_for_rec.pricing_context;
1653              px_Req_Qual_Tbl(i).Qualifier_Attribute := 'QUALIFIER_ATTRIBUTE2';
1654              px_Req_Qual_Tbl(i).Qualifier_Attr_Value_From := asked_for_rec.PRICING_ATTRIBUTE2;
1655       end if;
1656       if asked_for_rec.PRICING_ATTRIBUTE3 is not null then -- Coupons
1657              i := px_Req_Qual_Tbl.count+1;
1658              px_Req_Qual_Tbl(i).Line_Index := p_Line_Index;
1659              --px_Req_Qual_Tbl(i).Validated_Flag := nvl(asked_for_rec.Override_Flag,'N');
1660              IF NVL(ASO_PRICING_INT.G_HEADER_REC.quote_status_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
1661                   px_Req_Qual_Tbl(i).Validated_Flag := 'N';
1662              ELSE
1663                   px_Req_Qual_Tbl(i).Validated_Flag := 'Y';
1664              END IF;
1665              px_Req_Qual_Tbl(i).Qualifier_Context := asked_for_rec.pricing_context;
1666              px_Req_Qual_Tbl(i).Qualifier_Attribute := 'QUALIFIER_ATTRIBUTE3';
1667              px_Req_Qual_Tbl(i).Qualifier_Attr_Value_From := asked_for_rec.PRICING_ATTRIBUTE3;
1668       end if;
1669   end if;
1670 end loop;
1671 
1672 end Append_asked_for;
1673 
1674 
1675 procedure  Append_asked_for(
1676     p_line_index                           NUMBER,
1677     p_pricing_attr_tbl                     ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
1678     px_Req_line_attr_tbl    in out nocopy  QP_PREQ_GRP.LINE_ATTR_TBL_TYPE,
1679     px_Req_qual_tbl         IN OUT NOCOPY /* file.sql.39 change */  QP_PREQ_GRP.QUAL_TBL_TYPE)
1680 IS
1681     i                  NUMBER;
1682     l_price_list_id    NUMBER;
1683     l_pricing_attr_rec ASO_QUOTE_PUB.Price_Attributes_Rec_Type;
1684 BEGIN
1685     FOR j IN 1..p_pricing_attr_tbl.count LOOP
1686     l_pricing_attr_rec := p_pricing_attr_tbl(j);
1687     IF l_pricing_attr_rec.flex_title = 'QP_ATTR_DEFNS_PRICING' THEN
1688        if l_pricing_attr_rec.PRICING_ATTRIBUTE1 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE1 <> FND_API.G_MISS_CHAR then
1689           i := px_Req_line_attr_tbl.count+1;
1690           px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1691           px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1692           px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1693           px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE1';
1694           px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := l_pricing_attr_rec.PRICING_ATTRIBUTE1;
1695         end if;
1696         if l_pricing_attr_rec.PRICING_ATTRIBUTE2  is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE2 <> FND_API.G_MISS_CHAR  then
1697             i := px_Req_line_attr_tbl.count+1;
1698             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1699             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1700             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1701             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE2';
1702             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := l_pricing_attr_rec.PRICING_ATTRIBUTE2;
1703         end if;
1704         if l_pricing_attr_rec.PRICING_ATTRIBUTE3 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE3 <> FND_API.G_MISS_CHAR  then
1705             i := px_Req_line_attr_tbl.count+1;
1706             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1707             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1708             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1709             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE3';
1710             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := l_pricing_attr_rec.PRICING_ATTRIBUTE3;
1711         end if;
1712         if l_pricing_attr_rec.PRICING_ATTRIBUTE4 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE4 <> FND_API.G_MISS_CHAR  then
1713             i := px_Req_line_attr_tbl.count+1;
1714             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1715             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1716             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1717             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE4';
1718             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := l_pricing_attr_rec.PRICING_ATTRIBUTE4;
1719         end if;
1720         if l_pricing_attr_rec.PRICING_ATTRIBUTE5 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE5 <> FND_API.G_MISS_CHAR  then
1721             i := px_Req_line_attr_tbl.count+1;
1722             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1723             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1724             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1725             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE5';
1726             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := l_pricing_attr_rec.PRICING_ATTRIBUTE5;
1727         end if;
1728         if l_pricing_attr_rec.PRICING_ATTRIBUTE6 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE6 <> FND_API.G_MISS_CHAR  then
1729             i := px_Req_line_attr_tbl.count+1;
1730             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1731             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1732             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1733             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE6';
1734             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := l_pricing_attr_rec.PRICING_ATTRIBUTE6;
1735         end if;
1736         if l_pricing_attr_rec.PRICING_ATTRIBUTE7 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE7 <> FND_API.G_MISS_CHAR  then
1737             i := px_Req_line_attr_tbl.count+1;
1738             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1739             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1740             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1741             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE7';
1742             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := l_pricing_attr_rec.PRICING_ATTRIBUTE7;
1743         end if;
1744         if l_pricing_attr_rec.PRICING_ATTRIBUTE8 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE8 <> FND_API.G_MISS_CHAR  then
1745             i := px_Req_line_attr_tbl.count+1;
1746             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1747             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1748             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1749             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE8';
1750             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := l_pricing_attr_rec.PRICING_ATTRIBUTE8;
1751         end if;
1752         if l_pricing_attr_rec.PRICING_ATTRIBUTE9 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE9 <> FND_API.G_MISS_CHAR  then
1753             i := px_Req_line_attr_tbl.count+1;
1754             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1755             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1756             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1757             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE9';
1758             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := l_pricing_attr_rec.PRICING_ATTRIBUTE9;
1759         end if;
1760 
1761         if l_pricing_attr_rec.PRICING_ATTRIBUTE10 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE10 <> FND_API.G_MISS_CHAR  then
1762             i := px_Req_line_attr_tbl.count+1;
1763             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1764             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1765             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1766             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE10';
1767             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE10;
1768         end if;
1769         if l_pricing_attr_rec.PRICING_ATTRIBUTE11 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE11 <> FND_API.G_MISS_CHAR  then
1770             i := px_Req_line_attr_tbl.count+1;
1771             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1772             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1773             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1774             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE11';
1775             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE11;
1776         end if;
1777         if l_pricing_attr_rec.PRICING_ATTRIBUTE12 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE12 <> FND_API.G_MISS_CHAR  then
1778             i := px_Req_line_attr_tbl.count+1;
1779             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1780             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1781             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1782             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE12';
1783             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE12;
1784         end if;
1785         if l_pricing_attr_rec.PRICING_ATTRIBUTE13 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE13 <> FND_API.G_MISS_CHAR  then
1786             i := px_Req_line_attr_tbl.count+1;
1787             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1788             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1789             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1790             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE13';
1791             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE13;
1792         end if;
1793         if l_pricing_attr_rec.PRICING_ATTRIBUTE14 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE14 <> FND_API.G_MISS_CHAR  then
1794             i := px_Req_line_attr_tbl.count+1;
1795             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1796             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1797             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1798             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE14';
1799             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE14;
1800         end if;
1801         if l_pricing_attr_rec.PRICING_ATTRIBUTE15 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE15 <> FND_API.G_MISS_CHAR  then
1802             i := px_Req_line_attr_tbl.count+1;
1803             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1804             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1805             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1806             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE15';
1807             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE15;
1808         end if;
1809         if l_pricing_attr_rec.PRICING_ATTRIBUTE16 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE16 <> FND_API.G_MISS_CHAR  then
1810             i := px_Req_line_attr_tbl.count+1;
1811             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1812             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1813             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1814             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE16';
1815             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE16;
1816         end if;
1817         if l_pricing_attr_rec.PRICING_ATTRIBUTE17 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE17 <> FND_API.G_MISS_CHAR  then
1818             i := px_Req_line_attr_tbl.count+1;
1819             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1820             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1821             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1822             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE17';
1823             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE17;
1824         end if;
1825         if l_pricing_attr_rec.PRICING_ATTRIBUTE18 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE18 <> FND_API.G_MISS_CHAR  then
1826             i := px_Req_line_attr_tbl.count+1;
1827             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1828             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1829             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1830             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE18';
1831             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE18;
1832         end if;
1833         if l_pricing_attr_rec.PRICING_ATTRIBUTE19 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE19 <> FND_API.G_MISS_CHAR  then
1834             i := px_Req_line_attr_tbl.count+1;
1835             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1836             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1837             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1838             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE19';
1839             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE19;
1840         end if;
1841 
1842         if l_pricing_attr_rec.PRICING_ATTRIBUTE20 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE20 <> FND_API.G_MISS_CHAR  then
1843             i := px_Req_line_attr_tbl.count+1;
1844             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1845             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1846             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1847             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE20';
1848             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE20;
1849         end if;
1850         if l_pricing_attr_rec.PRICING_ATTRIBUTE21 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE21 <> FND_API.G_MISS_CHAR  then
1851             i := px_Req_line_attr_tbl.count+1;
1852             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1853             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1854             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1855             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE21';
1856             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE21;
1857         end if;
1858         if l_pricing_attr_rec.PRICING_ATTRIBUTE22 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE22 <> FND_API.G_MISS_CHAR  then
1859             i := px_Req_line_attr_tbl.count+1;
1860             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1861             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1862             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1863             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE22';
1864             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE22;
1865         end if;
1866         if l_pricing_attr_rec.PRICING_ATTRIBUTE23 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE23 <> FND_API.G_MISS_CHAR  then
1867             i := px_Req_line_attr_tbl.count+1;
1868             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1869             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1870             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1871             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE23';
1872             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE23;
1873         end if;
1874         if l_pricing_attr_rec.PRICING_ATTRIBUTE24 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE24 <> FND_API.G_MISS_CHAR  then
1875             i := px_Req_line_attr_tbl.count+1;
1876             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1877             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1878             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1879             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE24';
1880             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE24;
1881         end if;
1882         if l_pricing_attr_rec.PRICING_ATTRIBUTE25 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE25 <> FND_API.G_MISS_CHAR  then
1883             i := px_Req_line_attr_tbl.count+1;
1884             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1885             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1886             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1887             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE25';
1888             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE25;
1889         end if;
1890         if l_pricing_attr_rec.PRICING_ATTRIBUTE26 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE26 <> FND_API.G_MISS_CHAR  then
1891             i := px_Req_line_attr_tbl.count+1;
1892             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1893             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1894             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1895             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE26';
1896             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE26;
1897         end if;
1898         if l_pricing_attr_rec.PRICING_ATTRIBUTE27 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE27 <> FND_API.G_MISS_CHAR  then
1899             i := px_Req_line_attr_tbl.count+1;
1900             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1901             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1902             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1903             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE27';
1904             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE27;
1905         end if;
1906         if l_pricing_attr_rec.PRICING_ATTRIBUTE28 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE28 <> FND_API.G_MISS_CHAR  then
1907             i := px_Req_line_attr_tbl.count+1;
1908             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1909             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1910             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1911             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE28';
1912             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE28;
1913         end if;
1914         if l_pricing_attr_rec.PRICING_ATTRIBUTE29 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE29 <> FND_API.G_MISS_CHAR  then
1915             i := px_Req_line_attr_tbl.count+1;
1916             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1917             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1918             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1919             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE29';
1920             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE29;
1921         end if;
1922 
1923         if l_pricing_attr_rec.PRICING_ATTRIBUTE30 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE30 <> FND_API.G_MISS_CHAR  then
1924             i := px_Req_line_attr_tbl.count+1;
1925             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1926             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1927             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1928             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE30';
1929             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE30;
1930         end if;
1931         if l_pricing_attr_rec.PRICING_ATTRIBUTE31 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE31 <> FND_API.G_MISS_CHAR  then
1932             i := px_Req_line_attr_tbl.count+1;
1933             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1934             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1935             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1936             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE31';
1937             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE31;
1938         end if;
1939         if l_pricing_attr_rec.PRICING_ATTRIBUTE32 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE32 <> FND_API.G_MISS_CHAR  then
1940             i := px_Req_line_attr_tbl.count+1;
1941             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1942             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1943             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1944             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE32';
1945             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE32;
1946         end if;
1947         if l_pricing_attr_rec.PRICING_ATTRIBUTE33 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE33 <> FND_API.G_MISS_CHAR  then
1948             i := px_Req_line_attr_tbl.count+1;
1949             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1950             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1951             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1952             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE33';
1953             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE33;
1954         end if;
1955         if l_pricing_attr_rec.PRICING_ATTRIBUTE34 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE34 <> FND_API.G_MISS_CHAR  then
1956             i := px_Req_line_attr_tbl.count+1;
1957             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1958             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1959             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1960             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE34';
1961             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE34;
1962         end if;
1963         if l_pricing_attr_rec.PRICING_ATTRIBUTE35 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE35 <> FND_API.G_MISS_CHAR  then
1964             i := px_Req_line_attr_tbl.count+1;
1965             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1966             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1967             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1968             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE35';
1969             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE35;
1970         end if;
1971         if l_pricing_attr_rec.PRICING_ATTRIBUTE36 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE36 <> FND_API.G_MISS_CHAR  then
1972             i := px_Req_line_attr_tbl.count+1;
1973             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1974             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1975             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1976             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE36';
1977             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE36;
1978         end if;
1979         if l_pricing_attr_rec.PRICING_ATTRIBUTE37 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE37 <> FND_API.G_MISS_CHAR  then
1980             i := px_Req_line_attr_tbl.count+1;
1981             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1982             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1983             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1984             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE37';
1985             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE37;
1986         end if;
1987         if l_pricing_attr_rec.PRICING_ATTRIBUTE38 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE38 <> FND_API.G_MISS_CHAR  then
1988             i := px_Req_line_attr_tbl.count+1;
1989             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1990             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1991             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
1992             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE38';
1993             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE38;
1994         end if;
1995         if l_pricing_attr_rec.PRICING_ATTRIBUTE39 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE39 <> FND_API.G_MISS_CHAR  then
1996             i := px_Req_line_attr_tbl.count+1;
1997             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1998             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1999             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2000             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE39';
2001             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE39;
2002          end if;
2003 
2004         if l_pricing_attr_rec.PRICING_ATTRIBUTE40 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE40 <> FND_API.G_MISS_CHAR  then
2005             i := px_Req_line_attr_tbl.count+1;
2006             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2007             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2008             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2009             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE40';
2010             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE40;
2011         end if;
2012         if l_pricing_attr_rec.PRICING_ATTRIBUTE41 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE41 <> FND_API.G_MISS_CHAR  then
2013             i := px_Req_line_attr_tbl.count+1;
2014             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2015             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2016             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2017             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE41';
2018             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE41;
2019         end if;
2020         if l_pricing_attr_rec.PRICING_ATTRIBUTE42 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE42 <> FND_API.G_MISS_CHAR  then
2021             i := px_Req_line_attr_tbl.count+1;
2022             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2023             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2024             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2025             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE42';
2026             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE42;
2027         end if;
2028         if l_pricing_attr_rec.PRICING_ATTRIBUTE43 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE43 <> FND_API.G_MISS_CHAR  then
2029             i := px_Req_line_attr_tbl.count+1;
2030             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2031             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2032             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2033             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE43';
2034             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE43;
2035         end if;
2036         if l_pricing_attr_rec.PRICING_ATTRIBUTE44 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE44 <> FND_API.G_MISS_CHAR  then
2037             i := px_Req_line_attr_tbl.count+1;
2038             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2039             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2040             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2041             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE44';
2042             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE44;
2043         end if;
2044         if l_pricing_attr_rec.PRICING_ATTRIBUTE45 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE45 <> FND_API.G_MISS_CHAR  then
2045             i := px_Req_line_attr_tbl.count+1;
2046             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2047             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2048             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2049             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE45';
2050             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE45;
2051         end if;
2052         if l_pricing_attr_rec.PRICING_ATTRIBUTE46 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE46 <> FND_API.G_MISS_CHAR  then
2053             i := px_Req_line_attr_tbl.count+1;
2054             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2055             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2056             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2057             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE46';
2058             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE46;
2059         end if;
2060         if l_pricing_attr_rec.PRICING_ATTRIBUTE47 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE47 <> FND_API.G_MISS_CHAR  then
2061             i := px_Req_line_attr_tbl.count+1;
2062             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2063             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2064             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2065             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE47';
2066             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE47;
2067         end if;
2068         if l_pricing_attr_rec.PRICING_ATTRIBUTE48 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE48 <> FND_API.G_MISS_CHAR  then
2069             i := px_Req_line_attr_tbl.count+1;
2070             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2071             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2072             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2073             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE48';
2074             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE48;
2075         end if;
2076         if l_pricing_attr_rec.PRICING_ATTRIBUTE49 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE49 <> FND_API.G_MISS_CHAR  then
2077             i := px_Req_line_attr_tbl.count+1;
2078             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2079             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2080             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2081             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE49';
2082             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE49;
2083         end if;
2084 
2085         if l_pricing_attr_rec.PRICING_ATTRIBUTE50 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE50 <> FND_API.G_MISS_CHAR  then
2086             i := px_Req_line_attr_tbl.count+1;
2087             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2088             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2089             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2090             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE50';
2091             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE50;
2092         end if;
2093         if l_pricing_attr_rec.PRICING_ATTRIBUTE51 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE51 <> FND_API.G_MISS_CHAR  then
2094             i := px_Req_line_attr_tbl.count+1;
2095             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2096             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2097             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2098             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE51';
2099             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE51;
2100         end if;
2101         if l_pricing_attr_rec.PRICING_ATTRIBUTE52 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE52 <> FND_API.G_MISS_CHAR  then
2102             i := px_Req_line_attr_tbl.count+1;
2103             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2104             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2105             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2106             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE52';
2107             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE52;
2108         end if;
2109         if l_pricing_attr_rec.PRICING_ATTRIBUTE53 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE53 <> FND_API.G_MISS_CHAR  then
2110             i := px_Req_line_attr_tbl.count+1;
2111             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2112             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2113             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2114             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE53';
2115             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE53;
2116         end if;
2117         if l_pricing_attr_rec.PRICING_ATTRIBUTE54 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE54 <> FND_API.G_MISS_CHAR  then
2118             i := px_Req_line_attr_tbl.count+1;
2119             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2120             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2121             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2122             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE54';
2123             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE54;
2124         end if;
2125         if l_pricing_attr_rec.PRICING_ATTRIBUTE55 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE55 <> FND_API.G_MISS_CHAR  then
2126             i := px_Req_line_attr_tbl.count+1;
2127             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2128             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2129             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2130             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE55';
2131             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE55;
2132         end if;
2133         if l_pricing_attr_rec.PRICING_ATTRIBUTE56 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE56 <> FND_API.G_MISS_CHAR  then
2134             i := px_Req_line_attr_tbl.count+1;
2135             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2136             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2137             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2138             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE56';
2139             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE56;
2140         end if;
2141         if l_pricing_attr_rec.PRICING_ATTRIBUTE57 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE57 <> FND_API.G_MISS_CHAR  then
2142             i := px_Req_line_attr_tbl.count+1;
2143             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2144             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2145             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2146             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE57';
2147             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE57;
2148         end if;
2149         if l_pricing_attr_rec.PRICING_ATTRIBUTE58 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE58 <> FND_API.G_MISS_CHAR  then
2150             i := px_Req_line_attr_tbl.count+1;
2151             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2152             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2153             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2154             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE58';
2155             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE58;
2156         end if;
2157         if l_pricing_attr_rec.PRICING_ATTRIBUTE59 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE59 <> FND_API.G_MISS_CHAR  then
2158             i := px_Req_line_attr_tbl.count+1;
2159             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2160             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2161             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2162             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE59';
2163             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE59;
2164         end if;
2165 
2166         if l_pricing_attr_rec.PRICING_ATTRIBUTE60 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE60 <> FND_API.G_MISS_CHAR  then
2167             i := px_Req_line_attr_tbl.count+1;
2168             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2169             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2170             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2171             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE60';
2172             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE60;
2173         end if;
2174         if l_pricing_attr_rec.PRICING_ATTRIBUTE61 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE61 <> FND_API.G_MISS_CHAR  then
2175             i := px_Req_line_attr_tbl.count+1;
2176             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2177             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2178             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2179             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE61';
2180             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE61;
2181         end if;
2182         if l_pricing_attr_rec.PRICING_ATTRIBUTE62 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE62 <> FND_API.G_MISS_CHAR  then
2183             i := px_Req_line_attr_tbl.count+1;
2184             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2185             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2186             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2187             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE62';
2188             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE62;
2189         end if;
2190         if l_pricing_attr_rec.PRICING_ATTRIBUTE63 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE63 <> FND_API.G_MISS_CHAR  then
2191             i := px_Req_line_attr_tbl.count+1;
2192             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2193             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2194             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2195             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE63';
2196             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE63;
2197         end if;
2198         if l_pricing_attr_rec.PRICING_ATTRIBUTE64 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE64 <> FND_API.G_MISS_CHAR  then
2199             i := px_Req_line_attr_tbl.count+1;
2200             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2201             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2202             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2203             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE64';
2204             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE64;
2205         end if;
2206         if l_pricing_attr_rec.PRICING_ATTRIBUTE65 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE65 <> FND_API.G_MISS_CHAR  then
2207             i := px_Req_line_attr_tbl.count+1;
2208             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2209             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2210             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2211             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE65';
2212             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE65;
2213         end if;
2214         if l_pricing_attr_rec.PRICING_ATTRIBUTE66 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE66 <> FND_API.G_MISS_CHAR  then
2215             i := px_Req_line_attr_tbl.count+1;
2216             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2217             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2218             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2219             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE66';
2220             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE66;
2221         end if;
2222         if l_pricing_attr_rec.PRICING_ATTRIBUTE67 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE67 <> FND_API.G_MISS_CHAR  then
2223             i := px_Req_line_attr_tbl.count+1;
2224             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2225             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2226             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2227             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE67';
2228             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE67;
2229         end if;
2230         if l_pricing_attr_rec.PRICING_ATTRIBUTE68 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE68 <> FND_API.G_MISS_CHAR  then
2231             i := px_Req_line_attr_tbl.count+1;
2232             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2233             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2234             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2235             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE68';
2236             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE68;
2237         end if;
2238         if l_pricing_attr_rec.PRICING_ATTRIBUTE69 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE69 <> FND_API.G_MISS_CHAR  then
2239             i := px_Req_line_attr_tbl.count+1;
2240             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2241             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2242             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2243             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE69';
2244             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE69;
2245         end if;
2246 
2247         if l_pricing_attr_rec.PRICING_ATTRIBUTE70 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE70 <> FND_API.G_MISS_CHAR  then
2248             i := px_Req_line_attr_tbl.count+1;
2249             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2250             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2251             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2252             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE70';
2253             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE70;
2254         end if;
2255         if l_pricing_attr_rec.PRICING_ATTRIBUTE71 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE71 <> FND_API.G_MISS_CHAR  then
2256             i := px_Req_line_attr_tbl.count+1;
2257             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2258             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2259             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2260             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE71';
2261             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE71;
2262         end if;
2263         if l_pricing_attr_rec.PRICING_ATTRIBUTE72 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE72 <> FND_API.G_MISS_CHAR  then
2264             i := px_Req_line_attr_tbl.count+1;
2265             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2266             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2267             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2268             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE72';
2269             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE72;
2270         end if;
2271         if l_pricing_attr_rec.PRICING_ATTRIBUTE73 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE73 <> FND_API.G_MISS_CHAR  then
2272             i := px_Req_line_attr_tbl.count+1;
2273             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2274             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2275             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2276             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE73';
2277             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE73;
2278         end if;
2279         if l_pricing_attr_rec.PRICING_ATTRIBUTE74 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE74 <> FND_API.G_MISS_CHAR  then
2280             i := px_Req_line_attr_tbl.count+1;
2281             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2282             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2283             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2284             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE74';
2285             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE74;
2286         end if;
2287         if l_pricing_attr_rec.PRICING_ATTRIBUTE75 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE75 <> FND_API.G_MISS_CHAR  then
2288             i := px_Req_line_attr_tbl.count+1;
2289             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2290             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2291             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2292             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE75';
2293             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE75;
2294         end if;
2295         if l_pricing_attr_rec.PRICING_ATTRIBUTE76 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE76 <> FND_API.G_MISS_CHAR  then
2296             i := px_Req_line_attr_tbl.count+1;
2297             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2298             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2299             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2300             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE76';
2301             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE76;
2302         end if;
2303         if l_pricing_attr_rec.PRICING_ATTRIBUTE77 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE77 <> FND_API.G_MISS_CHAR  then
2304             i := px_Req_line_attr_tbl.count+1;
2305             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2306             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2307             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2308             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE77';
2309             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE77;
2310         end if;
2311         if l_pricing_attr_rec.PRICING_ATTRIBUTE78 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE78 <> FND_API.G_MISS_CHAR  then
2312             i := px_Req_line_attr_tbl.count+1;
2313             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2314             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2315             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2316             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE78';
2317             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE78;
2318         end if;
2319         if l_pricing_attr_rec.PRICING_ATTRIBUTE79 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE79 <> FND_API.G_MISS_CHAR  then
2320             i := px_Req_line_attr_tbl.count+1;
2321             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2322             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2323             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2324             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE79';
2325             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE79;
2326         end if;
2327 
2328         if l_pricing_attr_rec.PRICING_ATTRIBUTE80 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE80 <> FND_API.G_MISS_CHAR  then
2329             i := px_Req_line_attr_tbl.count+1;
2330             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2331             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2332             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2333             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE80';
2334             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE80;
2335         end if;
2336         if l_pricing_attr_rec.PRICING_ATTRIBUTE81 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE81 <> FND_API.G_MISS_CHAR  then
2337             i := px_Req_line_attr_tbl.count+1;
2338             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2339             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2340             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2341             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE81';
2342             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE81;
2343         end if;
2344         if l_pricing_attr_rec.PRICING_ATTRIBUTE82 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE82 <> FND_API.G_MISS_CHAR  then
2345             i := px_Req_line_attr_tbl.count+1;
2346             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2347             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2348             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2349             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE82';
2350             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE82;
2351         end if;
2352         if l_pricing_attr_rec.PRICING_ATTRIBUTE83 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE83 <> FND_API.G_MISS_CHAR  then
2353             i := px_Req_line_attr_tbl.count+1;
2354             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2355             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2356             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2357             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE83';
2358             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE83;
2359         end if;
2360         if l_pricing_attr_rec.PRICING_ATTRIBUTE84 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE84 <> FND_API.G_MISS_CHAR  then
2361             i := px_Req_line_attr_tbl.count+1;
2362             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2363             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2364             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2365             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE84';
2366             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE84;
2367         end if;
2368         if l_pricing_attr_rec.PRICING_ATTRIBUTE85 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE85 <> FND_API.G_MISS_CHAR  then
2369             i := px_Req_line_attr_tbl.count+1;
2370             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2371             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2372             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2373             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE85';
2374             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE85;
2375         end if;
2376         if l_pricing_attr_rec.PRICING_ATTRIBUTE86 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE86 <> FND_API.G_MISS_CHAR  then
2377             i := px_Req_line_attr_tbl.count+1;
2378             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2379             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2380             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2381             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE86';
2382             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE86;
2383         end if;
2384         if l_pricing_attr_rec.PRICING_ATTRIBUTE87 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE87 <> FND_API.G_MISS_CHAR  then
2385             i := px_Req_line_attr_tbl.count+1;
2386             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2387             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2388             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2389             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE87';
2390             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE87;
2391         end if;
2392         if l_pricing_attr_rec.PRICING_ATTRIBUTE88 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE88 <> FND_API.G_MISS_CHAR  then
2393             i := px_Req_line_attr_tbl.count+1;
2394             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2395             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2396             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2397             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE88';
2398             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE88;
2399         end if;
2400         if l_pricing_attr_rec.PRICING_ATTRIBUTE89 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE89 <> FND_API.G_MISS_CHAR  then
2401             i := px_Req_line_attr_tbl.count+1;
2402             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2403             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2404             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2405             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE89';
2406             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE89;
2407         end if;
2408 
2409         if l_pricing_attr_rec.PRICING_ATTRIBUTE90 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE90 <> FND_API.G_MISS_CHAR  then
2410             i := px_Req_line_attr_tbl.count+1;
2411             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2412             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2413             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2414             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE90';
2415             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE90;
2416         end if;
2417         if l_pricing_attr_rec.PRICING_ATTRIBUTE91 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE91 <> FND_API.G_MISS_CHAR  then
2418             i := px_Req_line_attr_tbl.count+1;
2419             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2420             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2421             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2422             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE91';
2423             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE91;
2424         end if;
2425         if l_pricing_attr_rec.PRICING_ATTRIBUTE92 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE92 <> FND_API.G_MISS_CHAR  then
2426             i := px_Req_line_attr_tbl.count+1;
2427             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2428             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2429             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2430             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE92';
2431             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE92;
2432         end if;
2433         if l_pricing_attr_rec.PRICING_ATTRIBUTE93 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE93 <> FND_API.G_MISS_CHAR  then
2434             i := px_Req_line_attr_tbl.count+1;
2435             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2436             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2437             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2438             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE93';
2439             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE93;
2440         end if;
2441         if l_pricing_attr_rec.PRICING_ATTRIBUTE94 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE94 <> FND_API.G_MISS_CHAR  then
2442             i := px_Req_line_attr_tbl.count+1;
2443             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2444             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2445             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2446             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE94';
2447             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE94;
2448         end if;
2449         if l_pricing_attr_rec.PRICING_ATTRIBUTE95 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE95 <> FND_API.G_MISS_CHAR  then
2450             i := px_Req_line_attr_tbl.count+1;
2451             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2452             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2453             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2454             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE95';
2455             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE95;
2456         end if;
2457         if l_pricing_attr_rec.PRICING_ATTRIBUTE96 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE96 <> FND_API.G_MISS_CHAR  then
2458             i := px_Req_line_attr_tbl.count+1;
2459             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2460             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2461             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2462             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE96';
2463             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE96;
2464         end if;
2465         if l_pricing_attr_rec.PRICING_ATTRIBUTE97 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE97 <> FND_API.G_MISS_CHAR  then
2466             i := px_Req_line_attr_tbl.count+1;
2467             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2468             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2469             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2470             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE97';
2471             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE97;
2472         end if;
2473         if l_pricing_attr_rec.PRICING_ATTRIBUTE98 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE98 <> FND_API.G_MISS_CHAR  then
2474             i := px_Req_line_attr_tbl.count+1;
2475             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2476             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2477             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2478             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE98';
2479             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE98;
2480         end if;
2481         if l_pricing_attr_rec.PRICING_ATTRIBUTE99 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE99 <> FND_API.G_MISS_CHAR  then
2482             i := px_Req_line_attr_tbl.count+1;
2483             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2484             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2485             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2486             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE99';
2487             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=l_pricing_attr_rec.PRICING_ATTRIBUTE99;
2488         end if;
2489         if l_pricing_attr_rec.PRICING_ATTRIBUTE100 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE100 <> FND_API.G_MISS_CHAR  then
2490             i := px_Req_line_attr_tbl.count+1;
2491             px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2492             px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2493             px_Req_line_attr_tbl(i).pricing_context := l_pricing_attr_rec.pricing_context;
2494             px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE100';
2495             px_Req_line_attr_tbl(i).Pricing_Attr_Value_From:=l_pricing_attr_rec.PRICING_ATTRIBUTE100;
2496         end if;
2497 
2498     ELSE -- Copy the Qualifiers
2499 
2500        if ( l_pricing_attr_rec.PRICING_ATTRIBUTE1 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE1 <> FND_API.G_MISS_CHAR   )then -- Promotion
2501             i := px_Req_Qual_Tbl.count+1;
2502             px_Req_Qual_Tbl(i).Line_Index := p_Line_Index;
2503             px_Req_Qual_Tbl(i).Validated_Flag := 'N';
2504             px_Req_Qual_Tbl(i).Qualifier_Context := l_pricing_attr_rec.pricing_context;
2505             px_Req_Qual_Tbl(i).Qualifier_Attribute := 'QUALIFIER_ATTRIBUTE1';
2506             px_Req_Qual_Tbl(i).Qualifier_Attr_Value_From := l_pricing_attr_rec.PRICING_ATTRIBUTE1;
2507        end if;
2508 
2509       if (l_pricing_attr_rec.PRICING_ATTRIBUTE2 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE2 <> FND_API.G_MISS_CHAR  ) then --Deal Component
2510           i := px_Req_Qual_Tbl.count+1;
2511           px_Req_Qual_Tbl(i).Line_Index := p_Line_Index;
2512           px_Req_Qual_Tbl(i).Validated_Flag := 'N';
2513           px_Req_Qual_Tbl(i).Qualifier_Context := l_pricing_attr_rec.pricing_context;
2514           px_Req_Qual_Tbl(i).Qualifier_Attribute := 'QUALIFIER_ATTRIBUTE2';
2515           px_Req_Qual_Tbl(i).Qualifier_Attr_Value_From := l_pricing_attr_rec.PRICING_ATTRIBUTE2;
2516       end if;
2517       if (l_pricing_attr_rec.PRICING_ATTRIBUTE3 is not null and l_pricing_attr_rec.PRICING_ATTRIBUTE3 <> FND_API.G_MISS_CHAR  ) then -- Coupons
2518             i := px_Req_Qual_Tbl.count+1;
2519             px_Req_Qual_Tbl(i).Line_Index := p_Line_Index;
2520             px_Req_Qual_Tbl(i).Validated_Flag := 'N';
2521             px_Req_Qual_Tbl(i).Qualifier_Context := l_pricing_attr_rec.pricing_context;
2522             px_Req_Qual_Tbl(i).Qualifier_Attribute := 'QUALIFIER_ATTRIBUTE3';
2523             px_Req_Qual_Tbl(i).Qualifier_Attr_Value_From := l_pricing_attr_rec.PRICING_ATTRIBUTE3;
2524        end if;
2525     end if;
2526     end loop;
2527 end Append_asked_for;
2528 
2529 
2530 
2531 procedure copy_Header_to_request(
2532     p_Request_Type                      VARCHAR2,
2533     p_pricing_event                     VARCHAR2,
2534     p_header_rec                        ASO_QUOTE_PUB.Qte_Header_Rec_Type,
2535     px_req_line_tbl    IN OUT NOCOPY /* file.sql.39 change */             QP_PREQ_GRP.LINE_TBL_TYPE)
2536 IS
2537 BEGIN
2538     px_req_line_tbl(1).REQUEST_TYPE_CODE := p_Request_Type;
2539     px_req_line_tbl(1).PRICING_EVENT := p_pricing_event;
2540     px_req_line_tbl(1).LINE_INDEX := 1;
2541     px_req_line_tbl(1).LINE_TYPE_CODE := 'ORDER';
2542     px_req_line_tbl(1).CURRENCY_CODE := p_Header_rec.currency_code;
2543     px_req_line_tbl(1).PRICE_FLAG := 'Y';
2544     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2545       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:g_header_rec.PRICE_FROZEN_DATE '||ASO_PRICING_INT.G_HEADER_REC.PRICE_FROZEN_DATE,1,'N');
2546     END IF;
2547     /*FastTrak: Price effective date is assigned to the price frozen unless the price frozen date is null*/
2548     if ASO_PRICING_INT.g_header_rec.PRICE_FROZEN_DATE = FND_API.G_MISS_DATE
2549        OR ASO_PRICING_INT.g_header_rec.PRICE_FROZEN_DATE is NULL then
2550             px_req_line_tbl(1).PRICING_EFFECTIVE_DATE := trunc(sysdate);
2551     else
2552             px_req_line_tbl(1).PRICING_EFFECTIVE_DATE := trunc(ASO_PRICING_INT.g_header_rec.PRICE_FROZEN_DATE);
2553             IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2554               aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Header Request copy In else: px_req_line_tbl(1).PRICING_EFFECTIVE_DATE '
2555                                  ||px_req_line_tbl(1).PRICING_EFFECTIVE_DATE,1,'N');
2556             END IF;
2557     end if;
2558     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2559       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Header Request copy: px_req_line_tbl(1).PRICING_EFFECTIVE_DATE '
2560                          ||px_req_line_tbl(1).PRICING_EFFECTIVE_DATE,1,'N');
2561     END IF;
2562 end Copy_Header_To_Request;
2563 
2564 procedure copy_Line_to_request(
2565     p_Request_Type                      VARCHAR2,
2566     p_pricing_event                     VARCHAR2,
2567     p_line_rec                          ASO_QUOTE_PUB.Qte_Line_Rec_Type,
2568     p_line_dtl_rec                      ASO_QUOTE_PUB.Qte_Line_Dtl_Rec_Type,
2569     p_control_rec      IN               ASO_PRICING_INT.PRICING_CONTROL_REC_TYPE,
2570     px_req_line_tbl    IN OUT NOCOPY /* file.sql.39 change */             QP_PREQ_GRP.LINE_TBL_TYPE)
2571 is
2572     l_req_line_rec    QP_PREQ_GRP.LINE_REC_TYPE;
2573     l_uom_rate        NUMBER;
2574 begin
2575  /*
2576   * New Code: Passing quote line id to QP pl/sql tbl
2577   */
2578     l_req_line_rec.line_id := p_Line_rec.quote_line_id;
2579     l_req_line_rec.REQUEST_TYPE_CODE := p_Request_Type;
2580     l_req_line_rec.PRICING_EVENT :=p_pricing_event;
2581     l_req_line_rec.LINE_INDEX := px_req_line_tbl.count+1;
2582     l_req_line_rec.LINE_TYPE_CODE := 'LINE';
2583     l_req_line_rec.LINE_QUANTITY := p_Line_rec.quantity;
2584     l_req_line_rec.LINE_UOM_CODE := p_Line_rec.uom_code;
2585     l_req_line_rec.CURRENCY_CODE := p_Line_rec.currency_code;
2586     If p_Line_rec.line_list_price <> FND_API.G_MISS_NUM Then
2587        l_req_line_rec.UNIT_PRICE := p_Line_rec.line_list_price;
2588     Else
2589        l_req_line_rec.UNIT_PRICE := Null;
2590     End If;
2591     -- Added for Service Item after pathcset E
2592     If p_line_dtl_rec.service_period is not null
2593        AND p_line_dtl_rec.service_period <> fnd_api.g_miss_char then
2594        If (p_line_dtl_rec.service_period = p_Line_rec.uom_code) Then
2595           l_req_line_rec.UOM_QUANTITY := p_line_dtl_rec.service_duration;
2596        Else
2597           INV_CONVERT.INV_UM_CONVERSION(
2598                    From_Unit  => p_line_dtl_rec.service_period
2599                    ,To_Unit   => p_Line_rec.uom_code
2600                    ,Item_ID   => p_Line_rec.Inventory_item_id
2601                    ,Uom_Rate  => l_Uom_rate);
2602          l_req_line_rec.UOM_QUANTITY := p_line_dtl_rec.service_duration * l_uom_rate;
2603       End If;
2604     End If;
2605     -- Change for manual discount updating UPDATED_ADJUSTED_UNIT_PRICE
2606     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2607       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:In Copy line to req p_Line_rec.SELLING_PRICE_CHANGE  '
2608                          ||p_Line_rec.SELLING_PRICE_CHANGE,1,'Y');
2609     END IF;
2610     If p_Line_rec.SELLING_PRICE_CHANGE = 'Y' then
2611        l_req_line_rec.UPDATED_ADJUSTED_UNIT_PRICE := p_Line_rec.line_quote_price;
2612     End If;
2613 
2614     -- Bug 2430534.Should set this flag only for child service line, normal line to 'Y'
2615     -- If the line is from order or customer product set it to 'N'.
2616 
2617     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2618       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:In Copy line to req p_Line_rec.LINE_CATEGORY_CODE  :'
2619                          ||p_Line_rec.LINE_CATEGORY_CODE,1,'Y');
2620     END IF;
2621     IF p_Line_rec.LINE_CATEGORY_CODE IN ('SERVICE_REF_ORDER_LINE','SERVICE_REF_CUSTOMER_LINE') THEN
2622     	l_req_line_rec.PRICE_FLAG := 'N';
2623     ELSE
2624     	l_req_line_rec.PRICE_FLAG := 'Y';
2625     END IF;
2626     /*FastTrak: Price effective date is assigned to the price frozen unless the price frozen date is null*/
2627     if ASO_PRICING_INT.g_header_rec.PRICE_FROZEN_DATE = FND_API.G_MISS_DATE
2628        OR ASO_PRICING_INT.g_header_rec.PRICE_FROZEN_DATE is NULL then
2629           l_req_line_rec.PRICING_EFFECTIVE_DATE := trunc(sysdate);
2630     else
2631           l_req_line_rec.PRICING_EFFECTIVE_DATE := trunc(ASO_PRICING_INT.g_header_rec.PRICE_FROZEN_DATE);
2632           IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2633             aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Line Request copy in Else: l_req_line_rec.PRICING_EFFECTIVE_DATE '
2634                                ||l_req_line_rec.PRICING_EFFECTIVE_DATE,1,'N');
2635           END IF;
2636     end if;
2637     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2638       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Line Request copy: l_req_line_rec.PRICING_EFFECTIVE_DATE '
2639                          ||l_req_line_rec.PRICING_EFFECTIVE_DATE,1,'N');
2640       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:copy line request: p_Line_rec.CHARGE_PERIODICITY_CODE '
2641                          ||p_Line_rec.CHARGE_PERIODICITY_CODE,1,'N');
2642     END IF;
2643     l_req_line_rec.CHARGE_PERIODICITY_CODE := p_Line_rec.CHARGE_PERIODICITY_CODE;
2644 
2645     px_req_line_tbl(px_req_line_tbl.count+1) := l_req_line_rec;
2646 end copy_Line_to_request;
2647 
2648 PROCEDURE Copy_Request_To_Quote(
2649     p_req_line_tbl                IN  QP_PREQ_GRP.LINE_TBL_TYPE,
2650     p_req_line_qual               IN  QP_PREQ_GRP.QUAL_TBL_TYPE,
2651     p_req_line_attr_tbl           IN  QP_PREQ_GRP.LINE_ATTR_TBL_TYPE,
2652     p_req_line_detail_tbl         IN  QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
2653     p_req_line_detail_qual_tbl    IN  QP_PREQ_GRP.LINE_DETAIL_QUAL_TBL_TYPE,
2654     p_req_line_detail_attr_tbl    IN  QP_PREQ_GRP.LINE_DETAIL_ATTR_TBL_TYPE,
2655     p_req_related_lines_tbl       IN  QP_PREQ_GRP.RELATED_LINES_TBL_TYPE,
2656     p_qte_header_rec              IN  ASO_QUOTE_PUB.Qte_Header_Rec_Type,
2657     p_qte_line_tbl                IN  ASO_QUOTE_PUB.Qte_Line_Tbl_Type,
2658     p_qte_line_dtl_tbl            IN  ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type,
2659     x_qte_header_rec              OUT NOCOPY /* file.sql.39 change */   ASO_QUOTE_PUB.Qte_Header_Rec_Type,
2660     x_qte_line_tbl                OUT NOCOPY /* file.sql.39 change */   ASO_QUOTE_PUB.Qte_Line_Tbl_Type,
2661     x_qte_line_dtl_tbl            OUT NOCOPY /* file.sql.39 change */    ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type,
2662     x_price_adj_tbl               OUT NOCOPY /* file.sql.39 change */   ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
2663     x_price_adj_attr_tbl          OUT NOCOPY /* file.sql.39 change */   ASO_QUOTE_PUB.PRICE_ADJ_ATTR_Tbl_Type,
2664     x_price_adj_rltship_tbl       OUT NOCOPY /* file.sql.39 change */   ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type)
2665 IS
2666     l_index                   NUMBER;
2667     l_req_line_rec            QP_PREQ_GRP.LINE_REC_TYPE;
2668     l_req_line_dtl_rec        QP_PREQ_GRP.LINE_DETAIL_REC_TYPE;
2669     l_qte_line_rec            ASO_QUOTE_PUB.Qte_Line_Rec_Type;
2670     i                         BINARY_INTEGER;
2671     j                         BINARY_INTEGER;
2672     l_base_price              NUMBER := FND_API.G_MISS_NUM;
2673     l_price_adj_rltship_rec   ASO_QUOTE_PUB.Price_Adj_Rltship_Rec_Type;
2674     l_qte_line_prcd           Index_Link_Tbl_Type;
2675     l_price_adj_prcd          Index_Link_Tbl_Type;
2676     lx_price_adj_prcd         Index_Link_Tbl_Type;
2677     l_message_text            VARCHAR2(2000);
2678     l_count1                  NUMBER;
2679     l_my_index                NUMBER;
2680 
2681 BEGIN
2682     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2683       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Begin In Copy_Request_To_Quote', 1, 'Y');
2684       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Building the qte line table.....'||p_req_line_tbl.count,1,'N');
2685     END IF;
2686     i := p_req_line_tbl.FIRST;
2687     WHILE i IS NOT NULL LOOP
2688       l_req_line_rec := p_req_line_tbl(i);
2689       IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2690         aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Copy_Request_To_Quote:line_type_code - '
2691                            ||l_req_line_rec.line_type_code, 1, 'N');
2692       END IF;
2693       IF l_req_line_rec.line_type_code = 'LINE'  then
2694            IF p_qte_line_tbl.EXISTS(l_req_line_rec.line_index-1) THEN
2695               l_qte_line_rec := p_qte_line_tbl(l_req_line_rec.line_index-1);
2696            END IF;
2697            l_qte_line_rec.operation_code := 'UPDATE';
2698            l_qte_line_rec.line_quote_price := NVL(l_req_line_rec.adjusted_unit_price,
2699                                                                   l_req_line_rec.unit_price);
2700            l_qte_line_rec.line_list_price := l_req_line_rec.unit_price ;
2701            l_qte_line_rec.line_adjusted_amount := l_qte_line_rec.line_quote_price
2702                                                          - l_qte_line_rec.line_list_price;
2703 
2704            IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2705              aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:In Copy Req to Quote line_list_price: '
2706                                 ||l_qte_line_rec.line_list_price,1,'N');
2707              aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:In Copy Req to Quote line_adjusted_amount: '
2708                                 ||l_qte_line_rec.line_adjusted_amount,1,'N');
2709            END IF;
2710 
2711            IF l_qte_line_rec.line_list_price <> 0 THEN
2712               l_qte_line_rec.line_adjusted_percent :=
2713                     (l_qte_line_rec.line_adjusted_amount/l_qte_line_rec.line_list_price)*100;
2714            END IF;
2715            l_qte_line_rec.quantity := l_req_line_rec.priced_quantity ;
2716            l_qte_line_rec.uom_code := l_req_line_rec.priced_uom_code ;
2717 
2718            x_qte_line_tbl(x_qte_line_tbl.count+1) := l_qte_line_rec;
2719            l_qte_line_prcd(i) := x_qte_line_tbl.count;
2720         ELSE
2721             NULL;
2722       END IF;
2723       IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2724         aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:*********************NEXT LINE********************************',1,'N');
2725       END IF;
2726       i :=  p_req_line_tbl.NEXT(i);
2727     END LOOP;
2728 
2729     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2730       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Building the detail line tbl.....',1,'N');
2731     END IF;
2732     i := p_req_line_detail_tbl.FIRST;
2733     l_my_index := 1;
2734     WHILE I IS NOT NULL LOOP
2735       l_index := p_req_line_detail_Tbl(i).line_index;
2736       IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2737         aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Status_code for line_detail_tbl: '
2738                            ||p_req_line_tbl(l_index).status_code,1,'N');
2739       END IF;
2740       IF p_req_line_tbl(l_index).status_code in (
2741                                           QP_PREQ_GRP.G_STATUS_UPDATED,
2742                                           QP_PREQ_GRP.G_STATUS_GSA_VIOLATION,
2743                                           QP_PREQ_GRP.G_STATUS_UNCHANGED)
2744       THEN
2745           l_req_line_dtl_rec := p_req_line_detail_Tbl(i);
2746           IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2747             aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Req_Line_dtl_rec.created_from_list_type_code:'
2748                                ||l_req_line_dtl_rec.created_from_list_type_code, 1, 'N');
2749             aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Req_Line_dtl_rec.list_line_type_code:'
2750                                ||l_req_line_dtl_rec.list_line_type_code, 1, 'N');
2751           END IF;
2752           IF l_req_line_dtl_rec.created_from_list_type_code in ('PRL','AGR')
2753              AND l_req_line_dtl_rec.list_line_type_code in ( 'PLL','PBH') THEN
2754              --education change: changed to priced_price_list_id instead of price_list_id
2755              x_qte_line_tbl(l_qte_line_prcd(l_index)).priced_price_list_id :=
2756                                                       l_req_line_dtl_rec.list_header_id;
2757           End IF;
2758           IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2759             aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:p_req_line_tbl(l_index).line_type_code:'
2760                                ||p_req_line_tbl(l_index).line_type_code, 1, 'N');
2761           END IF;
2762           IF l_req_line_dtl_rec.created_from_list_type_code in ('PRL','AGR') AND
2763              l_req_line_dtl_rec.list_line_type_code in( 'PLL') THEN
2764              NULL;
2765           ELSIF p_req_line_tbl(l_index).line_type_code = 'ORDER' THEN
2766                 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2767                   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:In elseif Req_Line_dtl_rec.created_from_list_type_code:'
2768                                          ||l_req_line_dtl_rec.created_from_list_type_code, 1, 'N');
2769                   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:In elseif Req_Line_dtl_rec.LIST_LINE_ID:'
2770                                      ||l_req_line_dtl_rec.LIST_LINE_ID, 1, 'N');
2771                   aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:IF p_req_line_tbl(l_index).line_type_code is ORDER:'
2772                                      ||p_req_line_tbl(l_index).line_type_code,1, 'N');
2773                 END IF;
2774                 Copy_Req_Dtl_To_Price_Adj(
2775                                 p_qte_header_rec           => p_qte_header_rec,
2776                                 p_req_line_dtl_index       => i,
2777                                 p_req_line_detail_rec      => l_req_line_dtl_rec,
2778                                 p_req_line_detail_qual_tbl => p_req_line_detail_qual_tbl,
2779                                 p_req_line_detail_attr_tbl => p_req_line_detail_attr_tbl,
2780                                 px_price_adj_tbl           => x_price_adj_tbl,
2781                                 px_price_adj_attr_tbl      => x_price_adj_attr_tbl,
2782                                 px_price_adj_prcd          => l_price_adj_prcd);
2783          ELSE
2784              IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2785                aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:In Else  Req_Line_dtl_rec.created_from_list_type_code:'
2786                                   ||l_req_line_dtl_rec.created_from_list_type_code, 1, 'N');
2787                aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:In elseif Req_Line_dtl_rec.LIST_LINE_ID:'
2788                                   ||l_req_line_dtl_rec.LIST_LINE_ID, 1, 'N');
2789                aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:In Else If p_req_line_tbl(l_index).line_type_code is not Order:'
2790                                   ||p_req_line_tbl(l_index).line_type_code,1,'N');
2791              END IF;
2792              Copy_Req_Dtl_To_Price_Adj(
2793                                p_qte_line_index            => l_index-1,
2794                                p_qte_line_rec              => x_qte_line_tbl(l_qte_line_prcd(l_index)),
2795                                p_req_line_dtl_index        => i,
2796                                p_req_line_detail_rec       => l_req_line_dtl_rec,
2797                                p_req_line_detail_qual_tbl  => p_req_line_detail_qual_tbl,
2798                                p_req_line_detail_attr_tbl  => p_req_line_detail_attr_tbl,
2799                                px_price_adj_tbl            => x_price_adj_tbl,
2800                                px_price_adj_attr_tbl       => x_price_adj_attr_tbl,
2801                                px_price_adj_prcd           => l_price_adj_prcd);
2802          END IF;
2803          lx_price_adj_prcd(i):= x_price_adj_tbl.count;
2804          IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2805            aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:i: lx_price_adj_prcd(i): '||i||': '||lx_price_adj_prcd(i),1,'N');
2806          END IF;
2807       END IF;
2808       IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2809         aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:***************************NEXT ADJUST***************************',1,'N');
2810       END IF;
2811       i :=  p_req_line_detail_tbl.NEXT(i);
2812   END LOOP;
2813 
2814 /*Building the related adjustment record*/
2815   IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2816     aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Building the  p_req_related_lines_tbl with no of rec:'
2817                      ||p_req_related_lines_tbl.count,1,'N');
2818   END IF;
2819   i := p_req_related_lines_tbl.FIRST;
2820   WHILE i IS NOT NULL LOOP
2821     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2822       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Req_Line_dtl_rec.Relationship_Type_Code:'
2823                          ||p_Req_Related_Lines_Tbl(i).Relationship_Type_Code, 1, 'N');
2824     END IF;
2825     IF p_Req_Related_Lines_Tbl(i).Relationship_Type_Code
2826        IN (QP_PREQ_GRP.G_PBH_LINE ,QP_PREQ_GRP.G_GENERATED_LINE )
2827        AND p_req_related_lines_tbl(i).LINE_DETAIL_INDEX is not null
2828        AND p_req_related_lines_tbl(i).RELATED_LINE_DETAIL_INDEX is not null
2829        AND lx_price_adj_prcd.EXISTS(p_req_related_lines_tbl(i).LINE_DETAIL_INDEX)
2830        AND lx_price_adj_prcd.EXISTS(p_req_related_lines_tbl(i).RELATED_LINE_DETAIL_INDEX)
2831     THEN
2832        IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2833          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:p_req_related_lines_tbl(i).line_index:'
2834                             ||p_req_related_lines_tbl(i).line_index,1,'N');
2835          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:p_req_related_lines_tbl(i).line_detail_index:'
2836                             ||p_req_related_lines_tbl(i).line_detail_index,1,'N');
2837          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:p_req_related_lines_tbl(i).related_line_detail_index:'
2838                             ||p_req_related_lines_tbl(i).related_line_detail_index,1,'N');
2839        END IF;
2840        If l_qte_line_prcd.EXISTS(p_req_related_lines_tbl(i).line_index) Then
2841           l_price_adj_rltship_rec.QTE_LINE_INDEX :=
2842                                 l_qte_line_prcd(p_req_related_lines_tbl(i).line_index);
2843        End If;
2844 
2845        IF p_qte_line_tbl.exists((p_req_related_lines_tbl(i).line_index-1)) THEN
2846           l_price_adj_rltship_rec.quote_line_id :=
2847                                 p_qte_line_tbl((p_req_related_lines_tbl(i).line_index-1)).quote_line_id;
2848           IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2849             aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:p_qte_line_tbl((p_req_related_lines_tbl(i).line_index-1)).quote_line_id: '
2850                            ||p_qte_line_tbl((p_req_related_lines_tbl(i).line_index-1)).quote_line_id,1,'N');
2851           END IF;
2852        END IF;
2853        IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2854          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Quote Line id '||l_price_adj_rltship_rec.quote_line_id, 1, 'N');
2855          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Before  assigning  LINE_DETAIL_INDEX(=>PRICE_ADJ_INDEX) '
2856                           ||lx_price_adj_prcd(p_req_related_lines_tbl(i).LINE_DETAIL_INDEX), 1, 'N');
2857          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Before  assigning  RELATED_LINE_DETAIL_INDEX(=>RLTD_PRICE_ADJ_INDEX) '
2858                        ||lx_price_adj_prcd(p_req_related_lines_tbl(i).RELATED_LINE_DETAIL_INDEX), 1, 'N');
2859        END IF;
2860        l_price_adj_rltship_rec.PRICE_ADJ_INDEX :=
2861                         lx_price_adj_prcd(p_req_related_lines_tbl(i).LINE_DETAIL_INDEX);
2862        l_price_adj_rltship_rec.RLTD_PRICE_ADJ_INDEX :=
2863                     lx_price_adj_prcd(p_req_related_lines_tbl(i).RELATED_LINE_DETAIL_INDEX);
2864        l_count1 := x_price_adj_rltship_tbl.count;
2865        IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2866          aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:Count x_price_adj_rltship_tbl.count before assigning the record: '
2867                                                                                  ||l_count1,1,'N');
2868        END IF;
2869        x_price_adj_rltship_tbl(x_price_adj_rltship_tbl.count+1) := l_price_adj_rltship_rec;
2870     END IF;--p_Req_Related_Lines_Tbl(i).Relationship_Type_Code
2871     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
2872       aso_debug_pub.add('ASO_PRICING_CALLBACK_PVT:**************************NEXT RLTD ADJ********************************',1,'N');
2873     END IF;
2874     i := p_req_related_lines_tbl.next(i);
2875 END LOOP;
2876 
2877 END Copy_Request_To_Quote;
2878 
2879 
2880 PROCEDURE Copy_Req_Dtl_To_Price_Adj (
2881     p_qte_line_index            IN              NUMBER,
2882     p_qte_line_rec              IN              ASO_QUOTE_PUB.Qte_Line_Rec_Type,
2883     p_req_line_dtl_index        IN              NUMBER,
2884     p_req_line_detail_rec       IN              QP_PREQ_GRP.LINE_DETAIL_REC_TYPE,
2885     p_req_line_detail_qual_tbl  IN              QP_PREQ_GRP.LINE_DETAIL_QUAL_TBL_TYPE,
2886     p_req_line_detail_attr_tbl  IN              QP_PREQ_GRP.LINE_DETAIL_ATTR_TBL_TYPE,
2887     px_price_adj_tbl            IN OUT NOCOPY /* file.sql.39 change */            ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
2888     px_price_adj_attr_tbl       IN OUT NOCOPY /* file.sql.39 change */            ASO_QUOTE_PUB.PRICE_ADJ_ATTR_Tbl_Type,
2889     px_price_adj_prcd           IN OUT NOCOPY /* file.sql.39 change */            Index_Link_Tbl_Type)
2890 IS
2891     l_price_adj_rec         ASO_QUOTE_PUB.Price_Adj_Rec_Type;
2892     l_price_adj_attr_rec    ASO_QUOTE_PUB.PRICE_ADJ_ATTR_Rec_Type;
2893     i                       BINARY_INTEGER;
2894 BEGIN
2895     l_price_adj_rec.operation_code := 'CREATE';
2896     l_price_adj_rec.quote_header_id := p_qte_line_rec.quote_header_id;
2897     l_price_adj_rec.quote_line_id := p_qte_line_rec.quote_line_id;
2898     l_price_adj_rec.qte_line_index := p_qte_line_index;
2899     l_price_adj_rec.MODIFIER_HEADER_ID := p_req_line_detail_Rec.list_header_id;
2900     l_price_adj_rec.MODIFIER_LINE_ID := p_req_line_detail_Rec.list_line_id;
2901     l_price_adj_rec.MODIFIER_LINE_TYPE_CODE :=
2902                                   p_req_line_detail_Rec.list_line_type_code;
2903     l_price_adj_rec.MODIFIED_FROM := NULL;
2904                                -- p_req_line_detail_Rec.substitution_from;
2905     l_price_adj_rec.MODIFIED_TO := NULL;
2906                                -- p_req_line_detail_Rec.substitution_to;
2907     l_price_adj_rec.OPERAND := p_req_line_detail_Rec.Operand_Value;
2908     l_price_adj_rec.ARITHMETIC_OPERATOR :=
2909                                   p_req_line_detail_Rec.Operand_Calculation_Code;
2910     l_price_adj_rec.AUTOMATIC_FLAG :=
2911                                   p_req_line_detail_Rec.Automatic_flag;
2912     l_price_adj_rec.UPDATE_ALLOWABLE_FLAG :=
2913                                   p_req_line_detail_Rec.Override_flag;
2914     l_price_adj_rec.UPDATED_FLAG := p_req_line_detail_Rec.UPDATED_FLAG;
2915     l_price_adj_rec.APPLIED_FLAG := p_req_line_detail_Rec.Applied_Flag;
2916     l_price_adj_rec.ON_INVOICE_FLAG :=
2917                                   p_req_line_detail_Rec.Print_On_Invoice_Flag;
2918     /* Added on 9/27 */
2919     l_price_adj_rec.CHARGE_TYPE_CODE := p_req_line_detail_Rec.CHARGE_TYPE_CODE;
2920     l_price_adj_rec.PRICING_PHASE_ID := p_req_line_detail_Rec.Pricing_phase_id;
2921     /* Added on 10/26 by pmothkur */
2922     l_price_adj_rec.PRICING_GROUP_SEQUENCE :=
2923                                  p_req_line_detail_Rec.PRICING_GROUP_SEQUENCE;
2924     l_price_adj_rec.PRICE_BREAK_TYPE_CODE  :=
2925                                  p_req_line_detail_Rec.PRICE_BREAK_TYPE_CODE;
2926     l_price_adj_rec.ADJUSTED_AMOUNT        :=
2927                                  p_req_line_detail_Rec.ADJUSTMENT_AMOUNT;
2928     l_price_adj_rec.MODIFIER_LEVEL_CODE    :=
2929                                  p_req_line_detail_Rec.MODIFIER_LEVEL_CODE;
2930      /* for this attribute, our record has length of 30, whereas
2931          pricing attribute has 240 characters. Have to look into this */
2932 --  l_price_adj_rec.SUBSTITUTION_ATTRIBUTE := p_req_line_detail_Rec.SUBSTITUTION_ATTRIBUTE;
2933     l_price_adj_rec.ACCRUAL_FLAG := p_req_line_detail_Rec.ACCRUAL_FLAG;
2934     l_price_adj_rec.LIST_LINE_NO := p_req_line_detail_Rec.LIST_LINE_NO;
2935     l_price_adj_rec.ACCRUAL_CONVERSION_RATE  := p_req_line_detail_Rec.ACCRUAL_CONVERSION_RATE;
2936     l_price_adj_rec.EXPIRATION_DATE := p_req_line_detail_Rec.EXPIRATION_DATE;
2937     l_price_adj_rec.CHARGE_SUBTYPE_CODE :=
2938                                  p_req_line_detail_Rec.CHARGE_SUBTYPE_CODE;
2939     l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG  :=
2940                                  p_req_line_detail_Rec.INCLUDE_ON_RETURNS_FLAG;
2941     l_price_adj_rec.BENEFIT_QTY := p_req_line_detail_Rec.BENEFIT_QTY;
2942     l_price_adj_rec.BENEFIT_UOM_CODE := p_req_line_detail_Rec.BENEFIT_UOM_CODE;
2943     l_price_adj_rec.PRORATION_TYPE_CODE := p_req_line_detail_Rec.PRORATION_TYPE_CODE;
2944     l_price_adj_rec.SOURCE_SYSTEM_CODE  := p_req_line_detail_Rec.SOURCE_SYSTEM_CODE;
2945     l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE  :=
2946                                  p_req_line_detail_Rec.REBATE_TRANSACTION_TYPE_CODE;
2947     l_price_adj_rec.update_allowed  := p_req_line_detail_Rec.OVERRIDE_FLAG;
2948     l_price_adj_rec.range_break_quantity  := p_req_line_detail_Rec.Line_quantity;
2949     l_price_adj_rec.MODIFIER_MECHANISM_TYPE_CODE  := p_req_line_detail_Rec.Calculation_code;
2950     l_price_adj_rec.change_reason_code  := p_req_line_detail_Rec.change_reason_code;
2951     l_price_adj_rec.change_reason_text  := p_req_line_detail_Rec.change_reason_text;
2952     px_price_adj_tbl(px_price_adj_tbl.count+1) := l_price_adj_rec;
2953 
2954     i := p_req_line_detail_qual_tbl.first;
2955     WHILE i IS NOT NULL LOOP
2956       IF p_req_line_detail_qual_tbl(i).line_detail_index = p_req_line_dtl_index THEN
2957          l_price_adj_attr_rec.operation_code := 'CREATE';
2958          l_price_adj_attr_rec.qte_line_index := p_qte_line_index;
2959          l_price_adj_attr_rec.PRICE_ADJ_INDEX := px_price_adj_tbl.count;
2960          l_price_adj_attr_rec.PRICING_CONTEXT := p_req_line_detail_qual_tbl(i).Qualifier_Context;
2961          l_price_adj_attr_rec.pricing_attribute := p_req_line_detail_qual_tbl(i).Qualifier_Attribute;
2962          l_price_adj_attr_rec.pricing_attr_value_from :=
2963                                    p_req_line_detail_qual_tbl(i).Qualifier_Attr_Value_From;
2964          l_price_adj_attr_rec.pricing_attr_value_To :=
2965                                      p_req_line_detail_qual_tbl(i).Qualifier_Attr_Value_To;
2966          l_price_adj_attr_rec.comparison_operator :=
2967                                     p_req_line_detail_qual_tbl(i).comparison_operator_Code;
2968          px_price_adj_attr_tbl(px_price_adj_attr_tbl.count+1) := l_price_adj_attr_rec;
2969          px_price_adj_prcd(i) := px_price_adj_tbl.count;
2970       END IF;
2971       i := p_req_line_detail_qual_tbl.next(i);
2972     END LOOP;
2973 
2974     i := p_req_line_detail_attr_tbl.first;
2975     WHILE i IS NOT NULL LOOP
2976       IF p_req_line_detail_attr_tbl(i).line_detail_index = p_req_line_dtl_index THEN
2977          l_price_adj_attr_rec.operation_code := 'CREATE';
2978          l_price_adj_attr_rec.qte_line_index := p_qte_line_index;
2979          l_price_adj_attr_rec.PRICE_ADJ_INDEX := px_price_adj_tbl.count;
2980          l_price_adj_attr_rec.PRICING_CONTEXT := p_req_line_detail_attr_tbl(i).Pricing_Context;
2981          l_price_adj_attr_rec.pricing_attribute := p_req_line_detail_attr_tbl(i).Pricing_Attribute;
2982          l_price_adj_attr_rec.pricing_attr_value_from :=
2983                                          p_req_line_detail_attr_tbl(i).Pricing_Attr_Value_From;
2984          l_price_adj_attr_rec.pricing_attr_value_To :=
2985                                              p_req_line_detail_attr_tbl(i).Pricing_Attr_Value_To;
2986          px_price_adj_attr_tbl(px_price_adj_attr_tbl.count+1) := l_price_adj_attr_rec;
2987          px_price_adj_prcd(i) := px_price_adj_attr_tbl.count;
2988       END IF;
2989       i := p_req_line_detail_attr_tbl.next(i);
2990    END LOOP;
2991 END Copy_Req_Dtl_To_Price_Adj;
2992 
2993 PROCEDURE Copy_Req_Dtl_To_Price_Adj (
2994     p_qte_header_rec            IN             ASO_QUOTE_PUB.QTE_HEADER_REC_TYPE,
2995     p_req_line_dtl_index        IN             NUMBER,
2996     p_req_line_detail_rec       IN             QP_PREQ_GRP.LINE_DETAIL_REC_TYPE,
2997     p_req_line_detail_qual_tbl  IN             QP_PREQ_GRP.LINE_DETAIL_QUAL_TBL_TYPE,
2998     p_req_line_detail_attr_tbl  IN             QP_PREQ_GRP.LINE_DETAIL_ATTR_TBL_TYPE,
2999     px_price_adj_tbl            IN OUT NOCOPY /* file.sql.39 change */           ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
3000     px_price_adj_attr_tbl       IN OUT NOCOPY /* file.sql.39 change */           ASO_QUOTE_PUB.PRICE_ADJ_ATTR_Tbl_Type,
3001     px_price_adj_prcd           IN OUT NOCOPY /* file.sql.39 change */           Index_Link_Tbl_Type)
3002 IS
3003     l_price_adj_rec         ASO_QUOTE_PUB.Price_Adj_Rec_Type;
3004     l_price_adj_attr_rec    ASO_QUOTE_PUB.PRICE_ADJ_ATTR_Rec_Type;
3005     i                       BINARY_INTEGER;
3006 BEGIN
3007     l_price_adj_rec.operation_code := 'CREATE';
3008     l_price_adj_rec.quote_header_id := p_qte_header_rec.quote_header_id;
3009     l_price_adj_rec.MODIFIER_HEADER_ID := p_req_line_detail_Rec.list_header_id;
3010     l_price_adj_rec.MODIFIER_LINE_ID := p_req_line_detail_Rec.list_line_id;
3011     l_price_adj_rec.MODIFIER_LINE_TYPE_CODE := p_req_line_detail_Rec.list_line_type_code;
3012     l_price_adj_rec.MODIFIED_FROM := NULL;
3013     l_price_adj_rec.MODIFIED_TO := NULL;
3014     l_price_adj_rec.OPERAND := p_req_line_detail_Rec.Operand_Value;
3015     l_price_adj_rec.ARITHMETIC_OPERATOR := p_req_line_detail_Rec.Operand_Calculation_Code;
3016     l_price_adj_rec.AUTOMATIC_FLAG := p_req_line_detail_Rec.Automatic_flag;
3017     l_price_adj_rec.UPDATE_ALLOWABLE_FLAG := p_req_line_detail_Rec.Override_flag;
3018     l_price_adj_rec.UPDATED_FLAG := p_req_line_detail_Rec.UPDATED_FLAG;
3019     l_price_adj_rec.APPLIED_FLAG := p_req_line_detail_Rec.Applied_Flag;
3020     l_price_adj_rec.ON_INVOICE_FLAG := p_req_line_detail_Rec.Print_On_Invoice_Flag;
3021     /* Added on 9/27 */
3022     l_price_adj_rec.CHARGE_TYPE_CODE := p_req_line_detail_Rec.CHARGE_TYPE_CODE;
3023     l_price_adj_rec.PRICING_PHASE_ID := p_req_line_detail_Rec.Pricing_phase_id;
3024       /* Added on 10/26 by pmothkur */
3025     l_price_adj_rec.PRICING_GROUP_SEQUENCE :=
3026                                  p_req_line_detail_Rec.PRICING_GROUP_SEQUENCE;
3027     l_price_adj_rec.PRICE_BREAK_TYPE_CODE  :=
3028                                  p_req_line_detail_Rec.PRICE_BREAK_TYPE_CODE;
3029     l_price_adj_rec.ADJUSTED_AMOUNT        :=
3030                                  p_req_line_detail_Rec.ADJUSTMENT_AMOUNT;
3031     l_price_adj_rec.MODIFIER_LEVEL_CODE    :=
3032                                  p_req_line_detail_Rec.MODIFIER_LEVEL_CODE;
3033      /* for this attribute, our record has length of 30, whereas
3034          pricing attribute has 240 characters. Have to look into this */
3035 --  l_price_adj_rec.SUBSTITUTION_ATTRIBUTE := p_req_line_detail_Rec.SUBSTITUTION_ATTRIBUTE;
3036     l_price_adj_rec.ACCRUAL_FLAG := p_req_line_detail_Rec.ACCRUAL_FLAG;
3037     l_price_adj_rec.LIST_LINE_NO := p_req_line_detail_Rec.LIST_LINE_NO;
3038     l_price_adj_rec.ACCRUAL_CONVERSION_RATE  := p_req_line_detail_Rec.ACCRUAL_CONVERSION_RATE;
3039     l_price_adj_rec.EXPIRATION_DATE := p_req_line_detail_Rec.EXPIRATION_DATE;
3040     l_price_adj_rec.CHARGE_SUBTYPE_CODE := p_req_line_detail_Rec.CHARGE_SUBTYPE_CODE;
3041     l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG := p_req_line_detail_Rec.INCLUDE_ON_RETURNS_FLAG;
3042     l_price_adj_rec.BENEFIT_QTY := p_req_line_detail_Rec.BENEFIT_QTY;
3043     l_price_adj_rec.BENEFIT_UOM_CODE := p_req_line_detail_Rec.BENEFIT_UOM_CODE;
3044     l_price_adj_rec.PRORATION_TYPE_CODE := p_req_line_detail_Rec.PRORATION_TYPE_CODE;
3045     l_price_adj_rec.SOURCE_SYSTEM_CODE := p_req_line_detail_Rec.SOURCE_SYSTEM_CODE;
3046     l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE  := p_req_line_detail_Rec.REBATE_TRANSACTION_TYPE_CODE;
3047     l_price_adj_rec.update_allowed  := p_req_line_detail_Rec.OVERRIDE_FLAG;
3048     l_price_adj_rec.change_reason_code  := p_req_line_detail_Rec.change_reason_code;
3049     l_price_adj_rec.change_reason_text  := p_req_line_detail_Rec.change_reason_text;
3050     px_price_adj_tbl(px_price_adj_tbl.count+1) := l_price_adj_rec;
3051 
3052     i := p_req_line_detail_qual_tbl.first;
3053     WHILE i IS NOT NULL LOOP
3054       IF p_req_line_detail_qual_tbl(i).line_detail_index = p_req_line_dtl_index THEN
3055          l_price_adj_attr_rec.operation_code := 'CREATE';
3056          l_price_adj_attr_rec.PRICE_ADJ_INDEX := px_price_adj_tbl.count;
3057          l_price_adj_attr_rec.PRICING_CONTEXT :=
3058                         p_req_line_detail_qual_tbl(i).Qualifier_Context;
3059          l_price_adj_attr_rec.pricing_attribute :=
3060                       p_req_line_detail_qual_tbl(i).Qualifier_Attribute;
3061          l_price_adj_attr_rec.pricing_attr_value_from :=
3062                   p_req_line_detail_qual_tbl(i).Qualifier_Attr_Value_From;
3063          l_price_adj_attr_rec.pricing_attr_value_To :=
3064                    p_req_line_detail_qual_tbl(i).Qualifier_Attr_Value_To;
3065          l_price_adj_attr_rec.comparison_operator :=
3066                    p_req_line_detail_qual_tbl(i).comparison_operator_Code;
3067          px_price_adj_attr_tbl(px_price_adj_attr_tbl.count+1) := l_price_adj_attr_rec;
3068          px_price_adj_prcd(i) := px_price_adj_attr_tbl.count;
3069       END IF;
3070       i := p_req_line_detail_qual_tbl.next(i);
3071    END LOOP;
3072    i := p_req_line_detail_attr_tbl.first;
3073    WHILE i IS NOT NULL LOOP
3074       IF p_req_line_detail_attr_tbl(i).line_detail_index = p_req_line_dtl_index THEN
3075          l_price_adj_attr_rec.operation_code := 'CREATE';
3076          l_price_adj_attr_rec.PRICE_ADJ_INDEX := px_price_adj_tbl.count;
3077          l_price_adj_attr_rec.PRICING_CONTEXT :=
3078             p_req_line_detail_attr_tbl(i).Pricing_Context;
3079          l_price_adj_attr_rec.pricing_attribute :=
3080             p_req_line_detail_attr_tbl(i).Pricing_Attribute;
3081          l_price_adj_attr_rec.pricing_attr_value_from :=
3082             p_req_line_detail_attr_tbl(i).Pricing_Attr_Value_From;
3083          l_price_adj_attr_rec.pricing_attr_value_To :=
3084             p_req_line_detail_attr_tbl(i).Pricing_Attr_Value_To;
3085          px_price_adj_attr_tbl(px_price_adj_attr_tbl.count+1) := l_price_adj_attr_rec;
3086          px_price_adj_prcd(i) := px_price_adj_attr_tbl.count;
3087       END IF;
3088       i := p_req_line_detail_attr_tbl.next(i);
3089     END LOOP;
3090 END Copy_Req_Dtl_To_Price_Adj;
3091 
3092 
3093 -- Bug 2430068. This following procedure was copied from asoiprcb.pls.115.141 version
3094 -- This is the right version as per vakapoor.
3095 -- Original One was giving no data found.
3096 
3097 PROCEDURE Copy_Request_To_Line(
3098 	p_req_line_tbl             IN  QP_PREQ_GRP.LINE_TBL_TYPE,
3099    	p_req_line_qual            IN  QP_PREQ_GRP.QUAL_TBL_TYPE,
3100     	p_req_line_attr_tbl        IN  QP_PREQ_GRP.LINE_ATTR_TBL_TYPE,
3101 	p_req_line_detail_tbl      IN  QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
3102 	p_req_line_detail_qual_tbl IN  QP_PREQ_GRP.LINE_DETAIL_QUAL_TBL_TYPE,
3103   	p_req_line_detail_attr_tbl IN  QP_PREQ_GRP.LINE_DETAIL_ATTR_TBL_TYPE,
3104    	p_req_related_lines_tbl    IN  QP_PREQ_GRP.RELATED_LINES_TBL_TYPE,
3105 	p_qte_line_rec		   IN  ASO_QUOTE_PUB.Qte_Line_Rec_Type,
3106 	p_qte_line_dtl_rec	   IN  ASO_QUOTE_PUB.Qte_Line_Dtl_Rec_Type,
3107 	x_qte_line_tbl		   OUT NOCOPY /* file.sql.39 change */   ASO_QUOTE_PUB.Qte_Line_Tbl_Type,
3108 	x_qte_line_dtl_tbl	   OUT NOCOPY /* file.sql.39 change */   ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type,
3109 	x_price_adj_tbl		   OUT NOCOPY /* file.sql.39 change */   ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
3110 	x_price_adj_attr_tbl	   OUT NOCOPY /* file.sql.39 change */   ASO_QUOTE_PUB.PRICE_ADJ_ATTR_Tbl_Type,
3111 	x_price_adj_rltship_tbl    OUT NOCOPY /* file.sql.39 change */   ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type)
3112 IS
3113     l_index		NUMBER;
3114     l_req_line_rec	QP_PREQ_GRP.LINE_REC_TYPE;
3115     l_req_line_dtl_rec  QP_PREQ_GRP.LINE_DETAIL_REC_TYPE;
3116     l_qte_line_rec	ASO_QUOTE_PUB.Qte_Line_Rec_Type;
3117     i			BINARY_INTEGER;
3118     j			BINARY_INTEGER;
3119     l_base_price	NUMBER := FND_API.G_MISS_NUM;
3120     l_price_adj_rltship_rec    ASO_QUOTE_PUB.Price_Adj_Rltship_Rec_Type;
3121     l_qte_line_prcd	Index_Link_Tbl_Type;
3122     l_price_adj_prcd	Index_Link_Tbl_Type;
3123     l_message_text      VARCHAR2(2000);
3124 BEGIN
3125     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3126       aso_debug_pub.add('ASO_PRICING_CORE_PVT:In Copy Req to line ',1,'Y');
3127     END IF;
3128     i := p_req_line_tbl.FIRST;
3129     WHILE i IS NOT NULL LOOP
3130     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3131       aso_debug_pub.add('ASO_PRICING_CORE_PVT:In Copy Req to line  in while',1,'Y');
3132     END IF;
3133 	l_req_line_rec := p_req_line_tbl(i);
3134             IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3135               aso_debug_pub.add('ASO_PRICING_CORE_PVT:In Copy Req to line  l_req_line_rec.line_type_code'
3136 				  ||l_req_line_rec.line_type_code,1,'Y');
3137               aso_debug_pub.add('ASO_PRICING_CORE_PVT:In Copy Req to line  l_req_line_rec.status_code'
3138 				  ||l_req_line_rec.status_code,1,'Y');
3139             END IF;
3140 
3141 	IF l_req_line_rec.line_type_code = 'LINE'  AND
3142            l_req_line_rec.status_code in ( QP_PREQ_GRP.G_STATUS_UPDATED,
3143                                           QP_PREQ_GRP.G_STATUS_GSA_VIOLATION,
3144                                           QP_PREQ_GRP.G_STATUS_UNCHANGED)
3145 
3146 	Then
3147             IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3148               aso_debug_pub.add('ASO_PRICING_CORE_PVT:In Copy Req to line  in ELSEIF',1,'Y');
3149             END IF;
3150 	    --IF l_req_line_rec.line_index = 1 THEN
3151 		--l_qte_line_rec := p_qte_line_rec;
3152 	    --END IF;
3153 	    l_qte_line_rec.operation_code := 'UPDATE';
3154             l_qte_line_rec.line_quote_price :=
3155 			NVL(l_req_line_rec.adjusted_unit_price, l_req_line_rec.unit_price);
3156             l_qte_line_rec.line_list_price := l_req_line_rec.unit_price ;
3157  	    IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3158  	      aso_debug_pub.add('ASO_PRICING_CORE_PVT:In Copy Req to line line_list_price '
3159 			  ||l_qte_line_rec.line_list_price,1,'Y');
3160  	    END IF;
3161 	    l_qte_line_rec.line_adjusted_amount :=
3162 			l_qte_line_rec.line_quote_price-l_qte_line_rec.line_list_price;
3163 	    IF l_qte_line_rec.line_list_price <> 0 THEN
3164 	       l_qte_line_rec.line_adjusted_percent :=
3165 			(l_qte_line_rec.line_adjusted_amount/l_qte_line_rec.line_list_price)*100;
3166 	    END IF;
3167  	    IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3168  	      aso_debug_pub.add('ASO_PRICING_CORE_PVT:In Copy Req to line before price_list_id ',1,'Y');
3169  	    END IF;
3170 	    l_qte_line_rec.quantity := l_req_line_rec.priced_quantity ;
3171 	    l_qte_line_rec.uom_code := l_req_line_rec.priced_uom_code ;
3172 	     --l_qte_line_rec.price_list_id := p_req_line_detail_tbl(1).list_header_id ;
3173  	    IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3174  	      aso_debug_pub.add('ASO_PRICING_CORE_PVT:In Copy Req to line after price_list_id ',1,'Y');
3175 	      aso_debug_pub.add('ASO_PRICING_CORE_PVT:In Copy Req to line 11 ',1,'Y');
3176  	    END IF;
3177             --aso_debug_pub.add('ASO_PRICING_CORE_PVT:In Copy Req to line : Price List Id'||l_qte_line_rec.price_list_id,1,'Y');
3178  	    IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3179  	      aso_debug_pub.add('ASO_PRICING_CORE_PVT:after Copy Req to line ',1,'Y');
3180  	    END IF;
3181 	    -- handle the percent price
3182 	    IF NVL(l_req_line_rec.percent_price, 0) <> 0 OR
3183 		l_req_line_rec.percent_price <> FND_API.G_MISS_NUM THEN
3184 		j := p_req_related_lines_tbl.first;
3185 		WHILE j IS NOT NULL AND l_base_price = FND_API.G_MISS_NUM LOOP
3186 		    IF p_req_related_lines_tbl(j).line_index = i AND
3187 			p_req_related_lines_tbl(j).relationship_type_code =
3188 				QP_PREQ_GRP.G_RELATED_ITEM_PRICE THEN
3189 			l_base_price := p_req_line_tbl(p_req_related_lines_tbl(j).related_line_index).unit_price;
3190 		    END IF;
3191 		    j :=  p_req_related_lines_tbl.NEXT(j);
3192 		END LOOP;
3193 	        l_qte_line_rec.line_list_price := l_base_price*l_req_line_rec.percent_price;
3194 		l_qte_line_rec.line_quote_price := l_qte_line_rec.line_list_price;
3195 	    END IF;
3196 	    x_qte_line_tbl(x_qte_line_tbl.count+1) := l_qte_line_rec;
3197 	    l_qte_line_prcd(i) := x_qte_line_tbl.count;
3198 
3199 
3200         ELSE
3201   	     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3202   	       aso_debug_pub.add('ASO_PRICING_CORE_PVT:In Copy Req to line  In ELSE1',1,'Y');
3203   	     END IF;
3204              -- should be later assigned to a pricing error
3205              l_message_text := substr(l_req_line_rec.status_code || ': '||l_req_line_rec.status_text,1,200);
3206            /*
3207              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3208 		  FND_MESSAGE.Set_Name('ASO', 'ASO_OM_ERROR');
3209 		  FND_MESSAGE.Set_Token('MSG_TXT', l_message_text, FALSE);
3210 		  FND_MSG_PUB.ADD;
3211 	    END IF;
3212            */
3213         END IF;
3214         IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3215           aso_debug_pub.add('ASO_PRICING_CORE_PVT:In Copy Req to line  In ELSE2',1,'Y');
3216         END IF;
3217 	i :=  p_req_line_tbl.NEXT(i);
3218     END LOOP;
3219 
3220 END Copy_Request_To_Line;
3221 
3222 
3223 PROCEDURE Update_Quote_Rows(
3224     P_Qte_Line_Tbl     IN   ASO_QUOTE_PUB.Qte_Line_Tbl_Type
3225             := ASO_QUOTE_PUB.G_MISS_qte_line_TBL,
3226     P_Qte_Line_Dtl_tbl  IN    ASO_QUOTE_PUB.Qte_Line_Dtl_tbl_Type
3227             := ASO_QUOTE_PUB.G_MISS_qte_line_dtl_tbl,
3228     P_Price_Adj_Tbl       IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type
3229             := ASO_QUOTE_PUB.G_MISS_Price_Adj_TBL,
3230     P_Price_Adj_Attr_Tbl    IN   ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type
3231             := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl,
3232     P_Price_Adj_Rltship_Tbl     IN   ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type
3233             := ASO_QUOTE_PUB.G_Miss_Price_Adj_Rltship_Tbl)
3234 IS
3235     G_USER_ID                    NUMBER := FND_GLOBAL.USER_ID;
3236     G_LOGIN_ID                   NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
3237     l_Qte_Line_rec               ASO_QUOTE_PUB.Qte_Line_Rec_Type;
3238     l_price_adj_tbl              ASO_QUOTE_PUB.Price_Adj_Tbl_Type
3239                                    := P_Price_Adj_Tbl;
3240     l_Price_Adj_Attr_Tbl         ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type
3241                                    := P_Price_Adj_Attr_Tbl;
3242     l_Price_Adj_Rltship_Tbl      ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type
3243                                    := P_Price_Adj_Rltship_Tbl;
3244     l_price_adj_rec              ASO_QUOTE_PUB.Price_Adj_Rec_Type;
3245     l_Price_Adj_Attr_rec         ASO_QUOTE_PUB.Price_Adj_Attr_Rec_Type ;
3246     l_Price_Adj_Rltship_rec      ASO_QUOTE_PUB.Price_Adj_Rltship_Rec_Type;
3247     l_quote_line_id              NUMBER;
3248     l_price_adjustment_id        NUMBER;
3249 BEGIN
3250     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3251       aso_debug_pub.add('ASO_PRICING_CORE_PVT:In  Update_Quote_Rows', 1, 'Y');
3252     END IF;
3253     FOR i IN 1..P_Qte_Line_Tbl.count LOOP
3254       l_qte_line_rec := p_qte_line_tbl(i);
3255       IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3256         aso_debug_pub.add('ASO_PRICING_CORE_PVT:l_qte_line_rec.operation_code in Update Quote Rows is '
3257                            ||l_qte_line_rec.operation_code,1,'N');
3258       END IF;
3259       IF l_qte_line_rec.operation_code = 'UPDATE' THEN
3260          IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3261            aso_debug_pub.add('ASO_PRICING_CORE_PVT:Before  ASO_QUOTE_LINES_PKG.Update_Row QUOTE_HEADER_ID'
3262                               ||l_qte_line_rec.QUOTE_HEADER_ID, 1, 'N');
3263          END IF;
3264          ASO_QUOTE_LINES_PKG.Update_Row(
3265              p_QUOTE_LINE_ID              => l_qte_line_rec.QUOTE_LINE_ID,
3266              p_CREATION_DATE              => SYSDATE,
3267              p_CREATED_BY                 => G_USER_ID,
3268              p_LAST_UPDATE_DATE           => SYSDATE,
3269              p_LAST_UPDATED_BY            => G_USER_ID,
3270              p_LAST_UPDATE_LOGIN          => G_LOGIN_ID,
3271              p_REQUEST_ID                 => l_qte_line_rec.REQUEST_ID,
3272              p_PROGRAM_APPLICATION_ID     => l_qte_line_rec.PROGRAM_APPLICATION_ID,
3273              p_PROGRAM_ID                 => l_qte_line_rec.PROGRAM_ID,
3274              p_PROGRAM_UPDATE_DATE        => l_qte_line_rec.PROGRAM_UPDATE_DATE,
3275              p_QUOTE_HEADER_ID            => l_qte_line_rec.QUOTE_HEADER_ID,
3276              p_ORG_ID                     => l_qte_line_rec.ORG_ID        ,
3277              p_LINE_CATEGORY_CODE         => l_qte_line_rec.LINE_CATEGORY_CODE ,
3278              p_ITEM_TYPE_CODE             => l_qte_line_rec.ITEM_TYPE_CODE,
3279              p_LINE_NUMBER                => l_qte_line_rec.LINE_NUMBER,
3280              p_START_DATE_ACTIVE          => l_qte_line_rec.START_DATE_ACTIVE,
3281              p_END_DATE_ACTIVE            => l_qte_line_rec.END_DATE_ACTIVE,
3282              p_ORDER_LINE_TYPE_ID         => l_qte_line_rec.ORDER_LINE_TYPE_ID,
3283              p_INVOICE_TO_PARTY_SITE_ID   => l_qte_line_rec.INVOICE_TO_PARTY_SITE_ID,
3284              p_INVOICE_TO_PARTY_ID        => l_qte_line_rec.INVOICE_TO_PARTY_ID,
3285              p_INVOICE_TO_CUST_ACCOUNT_ID => l_qte_line_rec.INVOICE_TO_CUST_ACCOUNT_ID,
3286              p_ORGANIZATION_ID            => l_qte_line_rec.ORGANIZATION_ID,
3287              p_INVENTORY_ITEM_ID          => l_qte_line_rec.INVENTORY_ITEM_ID ,
3288              p_QUANTITY                   => l_qte_line_rec.QUANTITY,
3289              p_UOM_CODE                   => l_qte_line_rec.UOM_CODE,
3290              p_MARKETING_SOURCE_CODE_ID   => l_qte_line_rec.marketing_source_code_id,
3291              p_PRICE_LIST_ID              => l_qte_line_rec.PRICE_LIST_ID,
3292              p_PRICE_LIST_LINE_ID         => l_qte_line_rec.PRICE_LIST_LINE_ID,
3293              p_CURRENCY_CODE              => l_qte_line_rec.CURRENCY_CODE,
3294              p_LINE_LIST_PRICE            => l_qte_line_rec.LINE_LIST_PRICE,
3295              p_LINE_ADJUSTED_AMOUNT       => l_qte_line_rec.LINE_ADJUSTED_AMOUNT,
3296              p_LINE_ADJUSTED_PERCENT      => l_qte_line_rec.LINE_ADJUSTED_PERCENT,
3297              p_LINE_QUOTE_PRICE           => l_qte_line_rec.LINE_QUOTE_PRICE,
3298              p_RELATED_ITEM_ID            => l_qte_line_rec.RELATED_ITEM_ID,
3299              p_ITEM_RELATIONSHIP_TYPE     => l_qte_line_rec.ITEM_RELATIONSHIP_TYPE,
3300              p_ACCOUNTING_RULE_ID         => l_qte_line_rec.ACCOUNTING_RULE_ID,
3301              p_INVOICING_RULE_ID          => l_qte_line_rec.INVOICING_RULE_ID,
3302              p_SPLIT_SHIPMENT_FLAG        => l_qte_line_rec.SPLIT_SHIPMENT_FLAG,
3303              p_BACKORDER_FLAG             => l_qte_line_rec.BACKORDER_FLAG,
3304              p_minisite_id                => l_qte_line_rec.minisite_id,
3305              p_section_id                 => l_qte_line_rec.section_id,
3306              p_PRICED_PRICE_LIST_ID       => l_qte_line_rec.PRICED_PRICE_LIST_ID,
3307              p_COMMITMENT_ID              => l_qte_line_rec.COMMITMENT_ID,
3308              p_AGREEMENT_ID               => l_qte_line_rec.AGREEMENT_ID,
3309              p_ATTRIBUTE_CATEGORY         => l_qte_line_rec.ATTRIBUTE_CATEGORY,
3310              p_ATTRIBUTE1                 => l_qte_line_rec.ATTRIBUTE1,
3311              p_ATTRIBUTE2                 => l_qte_line_rec.ATTRIBUTE2,
3312              p_ATTRIBUTE3                 => l_qte_line_rec.ATTRIBUTE3,
3313              p_ATTRIBUTE4                 => l_qte_line_rec.ATTRIBUTE4,
3314              p_ATTRIBUTE5                 => l_qte_line_rec.ATTRIBUTE5,
3315              p_ATTRIBUTE6                 => l_qte_line_rec.ATTRIBUTE6,
3316              p_ATTRIBUTE7                 => l_qte_line_rec.ATTRIBUTE7,
3317              p_ATTRIBUTE8                 => l_qte_line_rec.ATTRIBUTE8,
3318              p_ATTRIBUTE9                 => l_qte_line_rec.ATTRIBUTE9,
3319              p_ATTRIBUTE10                => l_qte_line_rec.ATTRIBUTE10,
3320              p_ATTRIBUTE11                => l_qte_line_rec.ATTRIBUTE11,
3321              p_ATTRIBUTE12                => l_qte_line_rec.ATTRIBUTE12,
3322              p_ATTRIBUTE13                => l_qte_line_rec.ATTRIBUTE13,
3323              p_ATTRIBUTE14                => l_qte_line_rec.ATTRIBUTE14,
3324              p_ATTRIBUTE15                => l_qte_line_rec.ATTRIBUTE15,
3325              p_ATTRIBUTE16                  => l_qte_line_rec.ATTRIBUTE16,
3326              p_ATTRIBUTE17                  => l_qte_line_rec.ATTRIBUTE17,
3327              p_ATTRIBUTE18                  => l_qte_line_rec.ATTRIBUTE18,
3328              p_ATTRIBUTE19                  => l_qte_line_rec.ATTRIBUTE19,
3329              p_ATTRIBUTE20                  => l_qte_line_rec.ATTRIBUTE20,
3330 		   p_DISPLAY_ARITHMETIC_OPERATOR => l_qte_line_rec.DISPLAY_ARITHMETIC_OPERATOR,
3331 		   p_line_type_source_flag       => l_qte_line_rec.line_type_source_flag,
3332 		   p_SERVICE_ITEM_FLAG           => l_qte_line_rec.SERVICE_ITEM_FLAG,
3333 		   p_SERVICEABLE_PRODUCT_FLAG    => l_qte_line_rec.SERVICEABLE_PRODUCT_FLAG,
3334 		   p_INVOICE_TO_CUST_PARTY_ID    => l_qte_line_rec.INVOICE_TO_CUST_PARTY_ID,
3335 		   p_SELLING_PRICE_CHANGE        => l_qte_line_rec.SELLING_PRICE_CHANGE,
3336 		   p_RECALCULATE_FLAG            => l_qte_line_rec.RECALCULATE_FLAG,
3337 		   p_pricing_line_type_indicator => l_qte_line_rec.pricing_line_type_indicator,
3338              p_END_CUSTOMER_PARTY_ID         =>  l_qte_line_rec.END_CUSTOMER_PARTY_ID,
3339              p_END_CUSTOMER_CUST_PARTY_ID    =>  l_qte_line_rec.END_CUSTOMER_CUST_PARTY_ID,
3340              p_END_CUSTOMER_PARTY_SITE_ID    =>  l_qte_line_rec.END_CUSTOMER_PARTY_SITE_ID,
3341              p_END_CUSTOMER_CUST_ACCOUNT_ID  =>  l_qte_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID,
3342 		   p_OBJECT_VERSION_NUMBER       => l_qte_line_rec.OBJECT_VERSION_NUMBER,
3343              p_CHARGE_PERIODICITY_CODE     => l_qte_line_rec.CHARGE_PERIODICITY_CODE, -- Recurring charges Change
3344              p_ship_model_complete_flag      => l_qte_line_rec.ship_model_complete_flag,
3345              p_LINE_PAYNOW_CHARGES => l_qte_line_rec.LINE_PAYNOW_CHARGES,
3346              p_LINE_PAYNOW_TAX => l_qte_line_rec.LINE_PAYNOW_TAX,
3347              p_LINE_PAYNOW_SUBTOTAL => l_qte_line_rec.LINE_PAYNOW_SUBTOTAL,
3348 		   p_PRICING_QUANTITY_UOM => l_qte_line_rec.PRICING_QUANTITY_UOM,
3349 		   p_PRICING_QUANTITY => l_qte_line_rec.PRICING_QUANTITY,
3350 		   p_CONFIG_MODEL_TYPE => l_qte_line_rec.CONFIG_MODEL_TYPE
3351 		  );
3352 
3353           IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3354             aso_debug_pub.add('ASO_PRICING_CORE_PVT:After  ASO_QUOTE_LINES_PKG.Update_Row with UPDATE', 1, 'N');
3355           END IF;
3356 
3357           FOR j IN 1..l_Price_Adj_Tbl.count LOOP
3358             IF l_Price_Adj_Tbl(j).qte_line_index = i THEN
3359                l_Price_Adj_Tbl(j).quote_line_id := l_qte_line_rec.QUOTE_LINE_ID;
3360             END IF;
3361             IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3362               aso_debug_pub.add('ASO_PRICING_CORE_PVT:Update The quote line in l_Price_Adj_Tbl is '
3363                                  ||l_Price_Adj_Tbl(j).quote_line_id,1,'N');
3364             END IF;
3365           END LOOP;
3366           FOR j IN 1..l_Price_Adj_Rltship_Tbl.count LOOP
3367             IF l_Price_Adj_Rltship_Tbl(j).qte_line_index = i THEN
3368                l_Price_Adj_Rltship_Tbl(j).quote_line_id := l_qte_line_rec.QUOTE_LINE_ID;
3369             END IF;
3370             IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3371               aso_debug_pub.add('ASO_PRICING_CORE_PVT:Update The quote line in l_Price_Adj_Rltship_Tbl is '
3372                                  ||l_Price_Adj_Rltship_Tbl(j).quote_line_id,1,'N');
3373             END IF;
3374           END LOOP;
3375        ELSIF l_qte_line_rec.operation_code = 'CREATE' THEN
3376             IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3377               aso_debug_pub.add('ASO_PRICING_CORE_PVT:Before  ASO_QUOTE_LINES_PKG.Insert_Row QUOTE_HEADER_ID'
3378                                    ||l_qte_line_rec.QUOTE_HEADER_ID, 1, 'N');
3379             END IF;
3380             ASO_QUOTE_LINES_PKG.Insert_Row(
3381                 px_QUOTE_LINE_ID               => l_QUOTE_LINE_ID,
3382                 p_CREATION_DATE                => SYSDATE,
3383                 p_CREATED_BY                   => G_USER_ID,
3384                 p_LAST_UPDATE_DATE             => SYSDATE,
3385                 p_LAST_UPDATED_BY              => G_USER_ID,
3386                 p_LAST_UPDATE_LOGIN            => G_LOGIN_ID,
3387                 p_REQUEST_ID                   => l_qte_line_rec.REQUEST_ID,
3388                 p_PROGRAM_APPLICATION_ID       => l_qte_line_rec.PROGRAM_APPLICATION_ID,
3389                 p_PROGRAM_ID                   => l_qte_line_rec.PROGRAM_ID,
3390                 p_PROGRAM_UPDATE_DATE          => l_qte_line_rec.PROGRAM_UPDATE_DATE,
3391                 p_QUOTE_HEADER_ID              => l_qte_line_rec.QUOTE_HEADER_ID,
3392                 p_ORG_ID                       => l_qte_line_rec.ORG_ID,
3393                 p_LINE_CATEGORY_CODE           => l_qte_line_rec.LINE_CATEGORY_CODE,
3394                 p_ITEM_TYPE_CODE               => l_qte_line_rec.ITEM_TYPE_CODE,
3395                 p_LINE_NUMBER                  => l_qte_line_rec.LINE_NUMBER,
3396                 p_START_DATE_ACTIVE            => l_qte_line_rec.START_DATE_ACTIVE,
3397                 p_END_DATE_ACTIVE              => l_qte_line_rec.END_DATE_ACTIVE,
3398                 p_ORDER_LINE_TYPE_ID           => l_qte_line_rec.ORDER_LINE_TYPE_ID,
3399                 p_INVOICE_TO_PARTY_SITE_ID     => l_qte_line_rec.INVOICE_TO_PARTY_SITE_ID,
3400                 p_INVOICE_TO_PARTY_ID          => l_qte_line_rec.INVOICE_TO_PARTY_ID,
3401                 p_INVOICE_TO_CUST_ACCOUNT_ID   => l_qte_line_rec.INVOICE_TO_CUST_ACCOUNT_ID,
3402                 p_ORGANIZATION_ID              => l_qte_line_rec.ORGANIZATION_ID,
3403                 p_INVENTORY_ITEM_ID            => l_qte_line_rec.INVENTORY_ITEM_ID,
3404                 p_QUANTITY                     => l_qte_line_rec.QUANTITY,
3405                 p_UOM_CODE                     => l_qte_line_rec.UOM_CODE,
3406                 p_MARKETING_SOURCE_CODE_ID     => l_qte_line_rec.marketing_source_code_id,
3407                 p_PRICE_LIST_ID                => l_qte_line_rec.PRICE_LIST_ID,
3408                 p_PRICE_LIST_LINE_ID           => l_qte_line_rec.PRICE_LIST_LINE_ID,
3409                 p_CURRENCY_CODE                => l_qte_line_rec.CURRENCY_CODE,
3410                 p_LINE_LIST_PRICE              => l_qte_line_rec.LINE_LIST_PRICE,
3411                 p_LINE_ADJUSTED_AMOUNT         => l_qte_line_rec.LINE_ADJUSTED_AMOUNT,
3412                 p_LINE_ADJUSTED_PERCENT        => l_qte_line_rec.LINE_ADJUSTED_PERCENT,
3413                 p_LINE_QUOTE_PRICE             => l_qte_line_rec.LINE_QUOTE_PRICE,
3414                 p_RELATED_ITEM_ID              => l_qte_line_rec.RELATED_ITEM_ID,
3415                 p_ITEM_RELATIONSHIP_TYPE       => l_qte_line_rec.ITEM_RELATIONSHIP_TYPE,
3416                 p_ACCOUNTING_RULE_ID           => l_qte_line_rec.ACCOUNTING_RULE_ID,
3417                 p_INVOICING_RULE_ID            => l_qte_line_rec.INVOICING_RULE_ID,
3418                 p_SPLIT_SHIPMENT_FLAG          => l_qte_line_rec.SPLIT_SHIPMENT_FLAG,
3419                 p_BACKORDER_FLAG               => l_qte_line_rec.BACKORDER_FLAG,
3420                 p_minisite_id                  => l_qte_line_rec.minisite_id,
3421                 p_section_id                   => l_qte_line_rec.section_id,
3422                 p_PRICED_PRICE_LIST_ID         => l_qte_line_rec.PRICED_PRICE_LIST_ID,
3423                 p_COMMITMENT_ID                => l_qte_line_rec.COMMITMENT_ID,
3424                 p_AGREEMENT_ID                 => l_qte_line_rec.AGREEMENT_ID,
3425                 p_ATTRIBUTE_CATEGORY           => l_qte_line_rec.ATTRIBUTE_CATEGORY,
3426                 p_ATTRIBUTE1                   => l_qte_line_rec.ATTRIBUTE1,
3427                 p_ATTRIBUTE2                   => l_qte_line_rec.ATTRIBUTE2,
3428                 p_ATTRIBUTE3                   => l_qte_line_rec.ATTRIBUTE3,
3429                 p_ATTRIBUTE4                   => l_qte_line_rec.ATTRIBUTE4,
3430                 p_ATTRIBUTE5                   => l_qte_line_rec.ATTRIBUTE5,
3431                 p_ATTRIBUTE6                   => l_qte_line_rec.ATTRIBUTE6,
3432                 p_ATTRIBUTE7                   => l_qte_line_rec.ATTRIBUTE7,
3433                 p_ATTRIBUTE8                   => l_qte_line_rec.ATTRIBUTE8,
3434                 p_ATTRIBUTE9                   => l_qte_line_rec.ATTRIBUTE9,
3435                 p_ATTRIBUTE10                  => l_qte_line_rec.ATTRIBUTE10,
3436                 p_ATTRIBUTE11                  => l_qte_line_rec.ATTRIBUTE11,
3437                 p_ATTRIBUTE12                  => l_qte_line_rec.ATTRIBUTE12,
3438                 p_ATTRIBUTE13                  => l_qte_line_rec.ATTRIBUTE13,
3439                 p_ATTRIBUTE14                  => l_qte_line_rec.ATTRIBUTE14,
3440                 p_ATTRIBUTE15                  => l_qte_line_rec.ATTRIBUTE15,
3441                 p_ATTRIBUTE16                  => l_qte_line_rec.ATTRIBUTE16,
3442 			 p_ATTRIBUTE17                  => l_qte_line_rec.ATTRIBUTE17,
3443 			 p_ATTRIBUTE18                  => l_qte_line_rec.ATTRIBUTE18,
3444 			 p_ATTRIBUTE19                  => l_qte_line_rec.ATTRIBUTE19,
3445 			 p_ATTRIBUTE20                  => l_qte_line_rec.ATTRIBUTE20,
3446 			 p_DISPLAY_ARITHMETIC_OPERATOR  => l_qte_line_rec.DISPLAY_ARITHMETIC_OPERATOR,
3447                 p_line_type_source_flag        => l_qte_line_rec.line_type_source_flag,
3448                 p_SERVICE_ITEM_FLAG            => l_qte_line_rec.SERVICE_ITEM_FLAG,
3449                 p_SERVICEABLE_PRODUCT_FLAG     => l_qte_line_rec.SERVICEABLE_PRODUCT_FLAG,
3450 		   p_INVOICE_TO_CUST_PARTY_ID    => l_qte_line_rec.INVOICE_TO_CUST_PARTY_ID,
3451 		   p_SELLING_PRICE_CHANGE        => l_qte_line_rec.SELLING_PRICE_CHANGE,
3452 		   p_RECALCULATE_FLAG            => l_qte_line_rec.RECALCULATE_FLAG,
3453 		   p_pricing_line_type_indicator            => l_qte_line_rec.pricing_line_type_indicator,
3454              p_END_CUSTOMER_PARTY_ID         =>  l_qte_line_rec.END_CUSTOMER_PARTY_ID,
3455              p_END_CUSTOMER_CUST_PARTY_ID    =>  l_qte_line_rec.END_CUSTOMER_CUST_PARTY_ID,
3456              p_END_CUSTOMER_PARTY_SITE_ID    =>  l_qte_line_rec.END_CUSTOMER_PARTY_SITE_ID,
3457              p_END_CUSTOMER_CUST_ACCOUNT_ID  =>  l_qte_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID,
3458 		   p_OBJECT_VERSION_NUMBER       => l_qte_line_rec.OBJECT_VERSION_NUMBER,
3459                p_CHARGE_PERIODICITY_CODE     => l_qte_line_rec.CHARGE_PERIODICITY_CODE, -- Recurring charges Change
3460              p_ship_model_complete_flag      => l_qte_line_rec.ship_model_complete_flag,
3461              p_LINE_PAYNOW_CHARGES => l_qte_line_rec.LINE_PAYNOW_CHARGES,
3462              p_LINE_PAYNOW_TAX => l_qte_line_rec.LINE_PAYNOW_TAX,
3463              p_LINE_PAYNOW_SUBTOTAL => l_qte_line_rec.LINE_PAYNOW_SUBTOTAL,
3464 		   p_PRICING_QUANTITY_UOM => l_qte_line_rec.PRICING_QUANTITY_UOM,
3465 		   p_PRICING_QUANTITY => l_qte_line_rec.PRICING_QUANTITY,
3466              p_CONFIG_MODEL_TYPE => l_qte_line_rec.CONFIG_MODEL_TYPE
3467              );
3468 
3469             IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3470               aso_debug_pub.add('ASO_PRICING_CORE_PVT:After  ASO_QUOTE_LINES_PKG.Insert_row with CREATE', 1, 'N');
3471             END IF;
3472 
3473             FOR j IN 1..l_Price_Adj_Tbl.count LOOP
3474                 IF l_Price_Adj_Tbl(j).qte_line_index = i THEN
3475                    l_Price_Adj_Tbl(j).quote_line_id := l_QUOTE_LINE_ID;
3476                 END IF;
3477                 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3478                   aso_debug_pub.add('ASO_PRICING_CORE_PVT:The quote line in l_Price_Adj_Tbl is '
3479                                      ||l_Price_Adj_Tbl(j).quote_line_id,1,'N');
3480                 END IF;
3481             END LOOP;
3482             FOR j IN 1..l_Price_Adj_Rltship_Tbl.count LOOP
3483                 IF l_Price_Adj_Rltship_Tbl(j).qte_line_index = i THEN
3484                    l_Price_Adj_Rltship_Tbl(j).quote_line_id := l_QUOTE_LINE_ID;
3485                 END IF;
3486                 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3487                   aso_debug_pub.add('ASO_PRICING_CORE_PVT:The quote line in l_Price_Adj_Rltship_Tbl is '
3488                                      ||l_Price_Adj_Rltship_Tbl(j).quote_line_id,1,'N');
3489                 END IF;
3490             END LOOP;
3491        END IF;
3492 
3493     END LOOP;
3494 
3495     FOR i IN 1..l_Price_Adj_Tbl.count LOOP
3496         l_price_adj_rec := l_Price_Adj_Tbl(i);
3497         l_PRICE_ADJUSTMENT_ID := NULL;
3498         IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3499           aso_debug_pub.add('ASO_PRICING_CORE_PVT:Before  ASO_PRICE_ADJUSTMENTS_PKG.Insert_Row', 1, 'N');
3500         END IF;
3501         ASO_PRICE_ADJUSTMENTS_PKG.Insert_Row(
3502                 px_PRICE_ADJUSTMENT_ID             => l_PRICE_ADJUSTMENT_ID,
3503                 p_CREATION_DATE                    => SYSDATE,
3504                 p_CREATED_BY                       => G_USER_ID,
3505                 p_LAST_UPDATE_DATE                 => SYSDATE,
3506                 p_LAST_UPDATED_BY                  => G_USER_ID,
3507                 p_LAST_UPDATE_LOGIN                => G_LOGIN_ID,
3508                 p_PROGRAM_APPLICATION_ID           => l_price_adj_rec.PROGRAM_APPLICATION_ID,
3509                 p_PROGRAM_ID                       => l_price_adj_rec.PROGRAM_ID,
3510                 p_PROGRAM_UPDATE_DATE              => l_price_adj_rec.PROGRAM_UPDATE_DATE,
3511                 p_REQUEST_ID                       => l_price_adj_rec.REQUEST_ID,
3512                 p_QUOTE_HEADER_ID                  => l_price_adj_rec.QUOTE_HEADER_ID,
3513                 p_QUOTE_LINE_ID                    => l_price_adj_rec.QUOTE_LINE_ID,
3514                 p_MODIFIER_HEADER_ID               => l_price_adj_rec.MODIFIER_HEADER_ID,
3515                 p_MODIFIER_LINE_ID                 => l_price_adj_rec.MODIFIER_LINE_ID,
3516                 p_MODIFIER_LINE_TYPE_CODE          => l_price_adj_rec.MODIFIER_LINE_TYPE_CODE,
3517                 p_MODIFIER_MECHANISM_TYPE_CODE     => l_price_adj_rec.MODIFIER_MECHANISM_TYPE_CODE,
3518                 p_MODIFIED_FROM                    => l_price_adj_rec.MODIFIED_FROM,
3519                 p_MODIFIED_TO                      => l_price_adj_rec.MODIFIED_TO,
3520                 p_OPERAND                          => l_price_adj_rec.OPERAND,
3521                 p_ARITHMETIC_OPERATOR              => l_price_adj_rec.ARITHMETIC_OPERATOR,
3522                 p_AUTOMATIC_FLAG                   => l_price_adj_rec.AUTOMATIC_FLAG,
3523                 p_UPDATE_ALLOWABLE_FLAG            => l_price_adj_rec.UPDATE_ALLOWABLE_FLAG,
3524                 p_UPDATED_FLAG                     => l_price_adj_rec.UPDATED_FLAG,
3525                 p_APPLIED_FLAG                     => l_price_adj_rec.APPLIED_FLAG,
3526                 p_ON_INVOICE_FLAG                  => l_price_adj_rec.ON_INVOICE_FLAG,
3527                 p_PRICING_PHASE_ID                 => l_price_adj_rec.PRICING_PHASE_ID,
3528                 p_ATTRIBUTE_CATEGORY               => l_price_adj_rec.ATTRIBUTE_CATEGORY,
3529                 p_ATTRIBUTE1                       => l_price_adj_rec.ATTRIBUTE1,
3530                 p_ATTRIBUTE2                       => l_price_adj_rec.ATTRIBUTE2,
3531                 p_ATTRIBUTE3                       => l_price_adj_rec.ATTRIBUTE3,
3532                 p_ATTRIBUTE4                       => l_price_adj_rec.ATTRIBUTE4,
3533                 p_ATTRIBUTE5                       => l_price_adj_rec.ATTRIBUTE5,
3534                 p_ATTRIBUTE6                       => l_price_adj_rec.ATTRIBUTE6,
3535                 p_ATTRIBUTE7                       => l_price_adj_rec.ATTRIBUTE7,
3536                 p_ATTRIBUTE8                       => l_price_adj_rec.ATTRIBUTE8,
3537                 p_ATTRIBUTE9                       => l_price_adj_rec.ATTRIBUTE9,
3538                 p_ATTRIBUTE10                      => l_price_adj_rec.ATTRIBUTE10,
3539                 p_ATTRIBUTE11                      => l_price_adj_rec.ATTRIBUTE11,
3540                 p_ATTRIBUTE12                      => l_price_adj_rec.ATTRIBUTE12,
3541                 p_ATTRIBUTE13                      => l_price_adj_rec.ATTRIBUTE13,
3542                 p_ATTRIBUTE14                      => l_price_adj_rec.ATTRIBUTE14,
3543                 p_ATTRIBUTE15                      => l_price_adj_rec.ATTRIBUTE15,
3544                 p_ATTRIBUTE16                      => l_price_adj_rec.ATTRIBUTE16,
3545                 p_ATTRIBUTE17                      => l_price_adj_rec.ATTRIBUTE17,
3546                 p_ATTRIBUTE18                      => l_price_adj_rec.ATTRIBUTE18,
3547                 p_ATTRIBUTE19                      => l_price_adj_rec.ATTRIBUTE19,
3548                 p_ATTRIBUTE20                      => l_price_adj_rec.ATTRIBUTE20,
3549 
3550 			 p_ORIG_SYS_DISCOUNT_REF            => l_price_adj_rec.ORIG_SYS_DISCOUNT_REF,
3551                 p_CHANGE_SEQUENCE                  => l_price_adj_rec.CHANGE_SEQUENCE,
3552                 p_UPDATE_ALLOWED                   => l_price_adj_rec.UPDATE_ALLOWED,
3553                 p_CHANGE_REASON_CODE               => l_price_adj_rec.CHANGE_REASON_CODE,
3554                 p_CHANGE_REASON_TEXT               => l_price_adj_rec.CHANGE_REASON_TEXT,
3555                 p_COST_ID                          => l_price_adj_rec.COST_ID,
3556                 p_TAX_CODE                         => l_price_adj_rec.TAX_CODE,
3557                 p_TAX_EXEMPT_FLAG                  => l_price_adj_rec.TAX_EXEMPT_FLAG,
3558                 p_TAX_EXEMPT_NUMBER                => l_price_adj_rec.TAX_EXEMPT_NUMBER,
3559                 p_TAX_EXEMPT_REASON_CODE           => l_price_adj_rec.TAX_EXEMPT_REASON_CODE,
3560                 p_PARENT_ADJUSTMENT_ID             => l_price_adj_rec.PARENT_ADJUSTMENT_ID,
3561                 p_INVOICED_FLAG                    => l_price_adj_rec.INVOICED_FLAG,
3562                 p_ESTIMATED_FLAG                   => l_price_adj_rec.ESTIMATED_FLAG,
3563                 p_INC_IN_SALES_PERFORMANCE         => l_price_adj_rec.INC_IN_SALES_PERFORMANCE,
3564                 p_SPLIT_ACTION_CODE                => l_price_adj_rec.SPLIT_ACTION_CODE,
3565                 p_ADJUSTED_AMOUNT                  => l_price_adj_rec.ADJUSTED_AMOUNT,
3566                 p_CHARGE_TYPE_CODE                 => l_price_adj_rec.CHARGE_TYPE_CODE,
3567                 p_CHARGE_SUBTYPE_CODE              => l_price_adj_rec.CHARGE_SUBTYPE_CODE,
3568                 p_RANGE_BREAK_QUANTITY             => l_price_adj_rec.RANGE_BREAK_QUANTITY,
3569                 p_ACCRUAL_CONVERSION_RATE          => l_price_adj_rec.ACCRUAL_CONVERSION_RATE,
3570                 p_PRICING_GROUP_SEQUENCE           => l_price_adj_rec.PRICING_GROUP_SEQUENCE,
3571                 p_ACCRUAL_FLAG                     => l_price_adj_rec.ACCRUAL_FLAG,
3572                 p_LIST_LINE_NO                     => l_price_adj_rec.LIST_LINE_NO,
3573                 p_SOURCE_SYSTEM_CODE               => l_price_adj_rec.SOURCE_SYSTEM_CODE,
3574                 p_BENEFIT_QTY                      => l_price_adj_rec.BENEFIT_QTY,
3575                 p_BENEFIT_UOM_CODE                 => l_price_adj_rec.BENEFIT_UOM_CODE,
3576                 p_PRINT_ON_INVOICE_FLAG            => l_price_adj_rec.PRINT_ON_INVOICE_FLAG,
3577                 p_EXPIRATION_DATE                  => l_price_adj_rec.EXPIRATION_DATE,
3578                 p_REBATE_TRANSACTION_TYPE_CODE     => l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE,
3579                 p_REBATE_TRANSACTION_REFERENCE     => l_price_adj_rec.REBATE_TRANSACTION_REFERENCE,
3580                 p_REBATE_PAYMENT_SYSTEM_CODE       => l_price_adj_rec.REBATE_PAYMENT_SYSTEM_CODE,
3581                 p_REDEEMED_DATE                    => l_price_adj_rec.REDEEMED_DATE,
3582                 p_REDEEMED_FLAG                    => l_price_adj_rec.REDEEMED_FLAG,
3583                 p_MODIFIER_LEVEL_CODE              => l_price_adj_rec.MODIFIER_LEVEL_CODE,
3584                 p_PRICE_BREAK_TYPE_CODE            => l_price_adj_rec.PRICE_BREAK_TYPE_CODE,
3585                 p_SUBSTITUTION_ATTRIBUTE           => l_price_adj_rec.SUBSTITUTION_ATTRIBUTE,
3586                 p_PRORATION_TYPE_CODE              => l_price_adj_rec.PRORATION_TYPE_CODE,
3587                 p_INCLUDE_ON_RETURNS_FLAG          => l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG,
3588                 p_CREDIT_OR_CHARGE_FLAG            => l_price_adj_rec.CREDIT_OR_CHARGE_FLAG,
3589 			 p_OPERAND_PER_PQTY                 => l_price_adj_rec.OPERAND_PER_PQTY,
3590 			 p_ADJUSTED_AMOUNT_PER_PQTY         => l_price_adj_rec.ADJUSTED_AMOUNT_PER_PQTY,
3591 			 p_OBJECT_VERSION_NUMBER            => l_price_adj_rec.OBJECT_VERSION_NUMBER
3592             );
3593         IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3594           aso_debug_pub.add('ASO_PRICING_CORE_PVT:After ASO_PRICE_ADJUSTMENTS_PKG.Insert_Row PRICE_ADJUSTMENT_ID'
3595                              ||l_PRICE_ADJUSTMENT_ID, 1, 'N');
3596         END IF;
3597         FOR j in 1..l_price_adj_attr_tbl.count LOOP
3598             IF l_price_adj_attr_tbl(j).price_adj_index = i THEN
3599                l_price_adj_attr_tbl(j).price_adjustment_id := l_PRICE_ADJUSTMENT_ID;
3600             END IF;
3601         END LOOP;
3602 
3603         FOR j IN 1..l_price_adj_rltship_tbl.count LOOP
3604             IF l_price_adj_rltship_tbl(j).price_adj_index = i THEN
3605                 l_price_adj_rltship_tbl(j).price_adjustment_id := l_price_adjustment_id;
3606             END IF;
3607             IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3608               aso_debug_pub.add('ASO_PRICING_CORE_PVT:After price_adj_index Loop l_price_adj_rltship_tbl', 1, 'N');
3609             END IF;
3610             IF l_price_adj_rltship_tbl(j).rltd_price_adj_index = i THEN
3611                     l_price_adj_rltship_tbl(j).rltd_price_adj_id := l_price_adjustment_id;
3612             END IF;
3613        END LOOP;
3614    END LOOP;
3615    IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3616      aso_debug_pub.add('ASO_PRICING_CORE_PVT:xxxxxxxxxxStart inserting into ASO_PRICE_ADJ_ATTRIBSxxxxxxx', 1, 'N');
3617    END IF;
3618    FOR i in 1..l_price_adj_attr_tbl.count LOOP
3619        l_price_adj_attr_rec := l_price_adj_attr_tbl(i);
3620        IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3621          aso_debug_pub.add('ASO_PRICING_CORE_PVT:Before  ASO_PRICE_ADJ_ATTRIBS_PKG.Insert_Row', 1, 'N');
3622        END IF;
3623        ASO_PRICE_ADJ_ATTRIBS_PKG.Insert_Row(
3624             px_PRICE_ADJ_ATTRIB_ID          => l_price_adj_attr_rec.PRICE_ADJ_ATTRIB_ID,
3625             p_CREATION_DATE                 => SYSDATE,
3626             p_CREATED_BY                    => G_USER_ID,
3627             p_LAST_UPDATE_DATE              => SYSDATE,
3628             p_LAST_UPDATED_BY               => G_USER_ID,
3629             p_LAST_UPDATE_LOGIN             => G_LOGIN_ID,
3630             p_PROGRAM_APPLICATION_ID        =>l_price_adj_attr_rec.PROGRAM_APPLICATION_ID,
3631             p_PROGRAM_ID                    => l_price_adj_attr_rec.PROGRAM_ID,
3632             p_PROGRAM_UPDATE_DATE           => l_price_adj_attr_rec.PROGRAM_UPDATE_DATE,
3633             p_REQUEST_ID                    => l_price_adj_attr_rec.REQUEST_ID,
3634             p_PRICE_ADJUSTMENT_ID           => l_price_adj_attr_rec.PRICE_ADJUSTMENT_ID,
3635             p_PRICING_CONTEXT               => l_price_adj_attr_rec.PRICING_CONTEXT,
3636             p_PRICING_ATTRIBUTE             => l_price_adj_attr_rec.PRICING_ATTRIBUTE,
3637             p_PRICING_ATTR_VALUE_FROM       => l_price_adj_attr_rec.PRICING_ATTR_VALUE_FROM,
3638             p_PRICING_ATTR_VALUE_TO         => l_price_adj_attr_rec.PRICING_ATTR_VALUE_TO,
3639             p_COMPARISON_OPERATOR           => l_price_adj_attr_rec.COMPARISON_OPERATOR,
3640             p_FLEX_TITLE                    => l_price_adj_attr_rec.FLEX_TITLE,
3641 		  p_OBJECT_VERSION_NUMBER         => l_price_adj_attr_rec.OBJECT_VERSION_NUMBER);
3642        IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3643          aso_debug_pub.add('ASO_PRICING_CORE_PVT:After  ASO_PRICE_ADJ_ATTRIBS_PKG.Insert_Row', 1, 'N');
3644        END IF;
3645    END LOOP;
3646    IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3647      aso_debug_pub.add('ASO_PRICING_CORE_PVT:xxxxxxxxxxFinish inserting into ASO_PRICE_ADJ_ATTRIBSxxxxxx', 1, 'N');
3648    END IF;
3649 
3650    FOR i IN 1..l_price_adj_rltship_tbl.count LOOP
3651        l_price_adj_rltship_rec := l_price_adj_rltship_tbl(i);
3652        IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3653          aso_debug_pub.add('ASO_PRICING_CORE_PVT:Before  ASO_PRICE_RLTSHIPS_PKG.Insert_Row', 1, 'N');
3654          aso_debug_pub.add('ASO_PRICING_CORE_PVT:The quote line id is '
3655                                                  ||l_price_adj_rltship_rec.quote_line_id, 1, 'N');
3656          aso_debug_pub.add('ASO_PRICING_CORE_PVT:The price adjustment id is '
3657                                                  ||l_price_adj_rltship_rec.price_adjustment_id,1,'N');
3658          aso_debug_pub.add('ASO_PRICING_CORE_PVT:The rltd price adj id is '
3659                                                  ||l_price_adj_rltship_rec.rltd_price_adj_id,1,'N');
3660        END IF;
3661        ASO_PRICE_RLTSHIPS_PKG.Insert_Row(
3662             px_ADJ_RELATIONSHIP_ID       => l_price_adj_rltship_rec.ADJ_RELATIONSHIP_ID,
3663             p_creation_date              => sysdate,
3664             p_CREATED_BY                 => G_USER_ID,
3665             p_LAST_UPDATE_DATE           => sysdate,
3666             p_LAST_UPDATED_BY            => G_USER_ID,
3667             p_LAST_UPDATE_LOGIN          => G_USER_ID,
3668             p_PROGRAM_APPLICATION_ID     => l_price_adj_rltship_rec.PROGRAM_APPLICATION_ID,
3669             p_PROGRAM_ID                 => l_price_adj_rltship_rec.PROGRAM_ID,
3670             p_PROGRAM_UPDATE_DATE        => l_price_adj_rltship_rec.PROGRAM_UPDATE_DATE,
3671             p_REQUEST_ID                 => l_price_adj_rltship_rec.REQUEST_ID,
3672             p_QUOTE_LINE_ID              => l_price_adj_rltship_rec.quote_line_id,
3673             p_PRICE_ADJUSTMENT_ID        => l_price_adj_rltship_rec.price_adjustment_id,
3674             p_RLTD_PRICE_ADJ_ID          => l_price_adj_rltship_rec.rltd_price_adj_id,
3675 	    p_quote_shipment_id => l_price_adj_rltship_rec.quote_shipment_id,
3676 	    p_OBJECT_VERSION_NUMBER         => l_price_adj_rltship_rec.OBJECT_VERSION_NUMBER
3677         );
3678       IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
3679         aso_debug_pub.add('ASO_PRICING_CORE_PVT:After  ASO_PRICE_RLTSHIPS_PKG.Insert_Row', 1, 'N');
3680         aso_debug_pub.add('ASO_PRICING_CORE_PVT:The adj relationship id  is '
3681                                                 ||l_price_adj_rltship_rec.ADJ_RELATIONSHIP_ID,1,'N');
3682         aso_debug_pub.add('ASO_PRICING_CORE_PVT:IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII', 1, 'N');
3683       END IF;
3684   END LOOP;
3685 END Update_Quote_Rows;
3686 
3687 End ASO_PRICING_CALLBACK_PVT;