14:
15: Procedure Update_Quote_From_Deal
16: ( P_Quote_Header_Id IN NUMBER,
17: P_resource_id IN NUMBER,
18: P_event IN VARCHAR2 := FND_API.G_FALSE,
19: X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
20: X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
21: X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
22: )
90:
91: l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_QUOTE_FROM_DEAL';
92: l_api_version_number CONSTANT NUMBER := 1.0;
93: p_api_version_number CONSTANT NUMBER := 1.0;
94: p_init_msg_list VARCHAR2(1) := FND_API.G_TRUE;
95:
96: l_access_level VARCHAR2(10);
97: l_db_link varchar2(240);
98: l_quote_line_id NUMBER;
202: IF aso_debug_pub.g_debug_flag = 'Y' then
203: aso_debug_pub.add('ASO_DEAL_PUB: ****** Start of Update_Quote_From_Deal API ******', 1, 'Y');
204: END IF;
205:
206: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
207: 1.0,
208: l_api_name,
209: G_PKG_NAME)
210: THEN
207: 1.0,
208: l_api_name,
209: G_PKG_NAME)
210: THEN
211: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
212: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
213: END IF;
214:
215: -- Initialize message list if p_init_msg_list is set to TRUE.
208: l_api_name,
209: G_PKG_NAME)
210: THEN
211: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
212: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
213: END IF;
214:
215: -- Initialize message list if p_init_msg_list is set to TRUE.
216: IF FND_API.to_Boolean( p_init_msg_list )
212: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
213: END IF;
214:
215: -- Initialize message list if p_init_msg_list is set to TRUE.
216: IF FND_API.to_Boolean( p_init_msg_list )
217: THEN
218: FND_MSG_PUB.initialize;
219: END IF;
220:
218: FND_MSG_PUB.initialize;
219: END IF;
220:
221: -- Initialize API return status to SUCCESS
222: x_return_status := FND_API.G_RET_STS_SUCCESS;
223:
224: --
225:
226: --pp_debug('Event:' || p_event);
240: aso_debug_pub.add('ASO_DEAL_PUB: Access Level'||l_access_level, 1, 'Y');
241: END IF;
242: --pp_debug('Access level:' || l_access_level);
243: IF ((l_access_level <> 'UPDATE') or (l_max_version_flag <> 'Y') or (l_price_request_id is not null)) THEN
244: x_return_status := fnd_api.g_ret_sts_error;
245: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
246: if (l_max_version_flag <> 'Y') then
247: FND_MESSAGE.Set_Name('QOT', 'QOT_QTE_NOT_HIGH_VERSION');
248: FND_MSG_PUB.Add;
249: elsif (l_price_request_id is not null) then
250: FND_MESSAGE.Set_Name('ASO', 'ASO_CONC_REQUEST_RUNNING');
251: FND_MSG_PUB.Add;
252: end if;
253: RAISE FND_API.G_EXC_ERROR;
254: END IF;
255:
256: ELSIF l_pricing_status IS NULL OR
257: l_pricing_status <> 'C' THEN
254: END IF;
255:
256: ELSIF l_pricing_status IS NULL OR
257: l_pricing_status <> 'C' THEN
258: x_return_status := FND_API.G_RET_STS_ERROR;
259: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
260: FND_MESSAGE.Set_Name('ASO', 'ASO_PRICING_INCOMPLETE');
261: FND_MSG_PUB.ADD;
262: END IF;
259: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
260: FND_MESSAGE.Set_Name('ASO', 'ASO_PRICING_INCOMPLETE');
261: FND_MSG_PUB.ADD;
262: END IF;
263: RAISE FND_API.G_EXC_ERROR;
264: ELSIF l_tax_status IS NULL OR
265: l_tax_status <> 'C' THEN
266: x_return_status := FND_API.G_RET_STS_ERROR;
267: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
262: END IF;
263: RAISE FND_API.G_EXC_ERROR;
264: ELSIF l_tax_status IS NULL OR
265: l_tax_status <> 'C' THEN
266: x_return_status := FND_API.G_RET_STS_ERROR;
267: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
268: FND_MESSAGE.Set_Name('ASO', 'ASO_TAX_INCOMPLETE');
269: FND_MSG_PUB.ADD;
270: END IF;
267: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
268: FND_MESSAGE.Set_Name('ASO', 'ASO_TAX_INCOMPLETE');
269: FND_MSG_PUB.ADD;
270: END IF;
271: RAISE FND_API.G_EXC_ERROR;
272: END IF;
273:
274:
275: l_qte_header_rec := ASO_UTILITY_PVT.Query_Header_Row(P_Quote_Header_Id); -- Assigning the header record
285: close C_qte_status_id;
286: --pp_debug('In Event Submitted'||ln_quote_Status_id);
287: -- Checking for the quote status transition
288: ASO_VALIDATE_PVT.Validate_Status_Transition(
289: p_init_msg_list => FND_API.G_FALSE,
290: p_source_status_id => l_quote_Status_id,
291: p_dest_status_id => ln_quote_Status_id,
292: x_return_status => x_return_status,
293: x_msg_count => x_msg_count,
295:
296:
297: --pp_debug('After status validation In Event Submitted'||ln_quote_Status_id);
298:
299: if x_return_status <> FND_API.G_RET_STS_SUCCESS then
300: --pp_debug('After status validation failure');
301: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
302: FND_MESSAGE.Set_Name('ASO', 'ASO_ERR_NO_QTE_STAT_TRANSITION');
303: FND_MSG_PUB.ADD;
300: --pp_debug('After status validation failure');
301: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
302: FND_MESSAGE.Set_Name('ASO', 'ASO_ERR_NO_QTE_STAT_TRANSITION');
303: FND_MSG_PUB.ADD;
304: RAISE FND_API.G_EXC_ERROR;
305: END IF;
306:
307: end if;
308:
335: IF aso_debug_pub.g_debug_flag = 'Y' then
336: aso_debug_pub.add('ASO_DEAL_PUB:Status ln_count=0', 1, 'Y');
337: END IF;
338:
339: if x_return_status <> FND_API.G_RET_STS_SUCCESS then
340: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
341: FND_MESSAGE.Set_Name('ASO', 'ASO_ERR_NO_QTE_STAT_TRANSITION');
342: FND_MSG_PUB.ADD;
343: RAISE FND_API.G_EXC_ERROR;
339: if x_return_status <> FND_API.G_RET_STS_SUCCESS then
340: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
341: FND_MESSAGE.Set_Name('ASO', 'ASO_ERR_NO_QTE_STAT_TRANSITION');
342: FND_MSG_PUB.ADD;
343: RAISE FND_API.G_EXC_ERROR;
344: END IF;
345: end if;
346: else -- if valid transition to price approval pending
347: IF aso_debug_pub.g_debug_flag = 'Y' then
361: aso_debug_pub.add('ASO_DEAL_PUB:Status ln_count>0'||ld_quote_Status_id||'new stat'||ln_quote_Status_id, 1, 'Y');
362: END IF;
363:
364: ASO_VALIDATE_PVT.Validate_Status_Transition(
365: p_init_msg_list => FND_API.G_FALSE,
366: p_source_status_id => ld_quote_Status_id,
367: p_dest_status_id => ln_quote_Status_id,
368: x_return_status => x_return_status,
369: x_msg_count => x_msg_count,
368: x_return_status => x_return_status,
369: x_msg_count => x_msg_count,
370: x_msg_data => x_msg_data);
371:
372: if x_return_status <> FND_API.G_RET_STS_SUCCESS then
373: --pp_debug('After status validation failure');
374: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
375: FND_MESSAGE.Set_Name('ASO', 'ASO_ERR_NO_QTE_STAT_TRANSITION');
376: FND_MSG_PUB.ADD;
373: --pp_debug('After status validation failure');
374: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
375: FND_MESSAGE.Set_Name('ASO', 'ASO_ERR_NO_QTE_STAT_TRANSITION');
376: FND_MSG_PUB.ADD;
377: RAISE FND_API.G_EXC_ERROR;
378: END IF;
379: end if;
380:
381: l_qte_header_rec.quote_status_id:=ln_quote_Status_id;
397: FND_MSG_PUB.ADD;
398: IF aso_debug_pub.g_debug_flag='Y' THEN
399: aso_debug_pub.add( 'Profile is NULL ' , 1 ) ;
400: END IF;
401: RAISE FND_API.G_EXC_ERROR;
402: END IF;
403:
404:
405: IF aso_debug_pub.g_debug_flag='Y' THEN
605: FND_MSG_PUB.ADD;
606: IF aso_debug_pub.g_debug_flag='Y' THEN
607: aso_debug_pub.add( 'Profile is NULL ' , 1 ) ;
608: END IF;
609: RAISE FND_API.G_EXC_ERROR;
610: END IF;
611:
612:
613: IF aso_debug_pub.g_debug_flag='Y' THEN
647:
648: FND_MESSAGE.SET_NAME('ASO','ASO_DEAL_PRC_ADJ_NOT_DEFINED');
649: FND_MESSAGE.SET_TOKEN('COLUMN', l_modifier_name);
650: FND_MSG_PUB.ADD;
651: RAISE FND_API.G_EXC_ERROR;
652: end if;
653:
654:
655: IF aso_debug_pub.g_debug_flag='Y' THEN
720: close C_qte_status_id;
721:
722: -- Checking for the quote status transition
723: ASO_VALIDATE_PVT.Validate_Status_Transition(
724: p_init_msg_list => FND_API.G_FALSE,
725: p_source_status_id => l_quote_Status_id,
726: p_dest_status_id => ln_quote_Status_id,
727: x_return_status => x_return_status,
728: x_msg_count => x_msg_count,
727: x_return_status => x_return_status,
728: x_msg_count => x_msg_count,
729: x_msg_data => x_msg_data);
730:
731: if x_return_status <> FND_API.G_RET_STS_SUCCESS then
732: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
733: FND_MESSAGE.Set_Name('ASO', 'ASO_ERR_NO_QTE_STAT_TRANSITION');
734: FND_MSG_PUB.ADD;
735: END IF;
732: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
733: FND_MESSAGE.Set_Name('ASO', 'ASO_ERR_NO_QTE_STAT_TRANSITION');
734: FND_MSG_PUB.ADD;
735: END IF;
736: IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
737: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
738: ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
739: RAISE FND_API.G_EXC_ERROR;
740: END IF;
733: FND_MESSAGE.Set_Name('ASO', 'ASO_ERR_NO_QTE_STAT_TRANSITION');
734: FND_MSG_PUB.ADD;
735: END IF;
736: IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
737: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
738: ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
739: RAISE FND_API.G_EXC_ERROR;
740: END IF;
741: end if;
734: FND_MSG_PUB.ADD;
735: END IF;
736: IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
737: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
738: ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
739: RAISE FND_API.G_EXC_ERROR;
740: END IF;
741: end if;
742:
735: END IF;
736: IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
737: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
738: ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
739: RAISE FND_API.G_EXC_ERROR;
740: END IF;
741: end if;
742:
743: update aso_quote_headers_All
757: mo_global.set_policy_context('S', l_qte_header_rec.org_id);
758:
759: aso_quote_pub.update_quote (
760: p_api_version_number => 1.0,
761: p_init_msg_list => fnd_api.g_false,
762: p_commit => fnd_api.g_false,
763: p_control_rec => l_control_rec,
764: p_qte_header_rec => l_qte_header_rec,
765: p_hd_price_attributes_tbl => aso_quote_pub.g_miss_price_attributes_tbl,
758:
759: aso_quote_pub.update_quote (
760: p_api_version_number => 1.0,
761: p_init_msg_list => fnd_api.g_false,
762: p_commit => fnd_api.g_false,
763: p_control_rec => l_control_rec,
764: p_qte_header_rec => l_qte_header_rec,
765: p_hd_price_attributes_tbl => aso_quote_pub.g_miss_price_attributes_tbl,
766: p_hd_payment_tbl => aso_quote_pub.g_miss_payment_tbl,
806: IF aso_debug_pub.g_debug_flag = 'Y' THEN
807: aso_debug_pub.add('ASO_DEAL_PUB: after Update_Quote', 1, 'Y');
808: END IF;
809:
810: if x_return_status = FND_API.G_RET_STS_SUCCESS then
811: Update aso_quote_lines_all
812: set PRICING_LINE_TYPE_INDICATOR=NULL
813: where quote_header_id = p_quote_header_id
814: and PRICING_LINE_TYPE_INDICATOR='D';
813: where quote_header_id = p_quote_header_id
814: and PRICING_LINE_TYPE_INDICATOR='D';
815:
816:
817: elsIF x_return_status = FND_API.G_RET_STS_ERROR THEN
818: --pp_debug('after calling aso_quote_pub error');
819: RAISE FND_API.G_EXC_ERROR;
820: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
821: --pp_debug('after calling aso_quote_pub unerror');
815:
816:
817: elsIF x_return_status = FND_API.G_RET_STS_ERROR THEN
818: --pp_debug('after calling aso_quote_pub error');
819: RAISE FND_API.G_EXC_ERROR;
820: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
821: --pp_debug('after calling aso_quote_pub unerror');
822: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
823: END IF;
816:
817: elsIF x_return_status = FND_API.G_RET_STS_ERROR THEN
818: --pp_debug('after calling aso_quote_pub error');
819: RAISE FND_API.G_EXC_ERROR;
820: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
821: --pp_debug('after calling aso_quote_pub unerror');
822: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
823: END IF;
824: END IF; -- end if status
818: --pp_debug('after calling aso_quote_pub error');
819: RAISE FND_API.G_EXC_ERROR;
820: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
821: --pp_debug('after calling aso_quote_pub unerror');
822: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
823: END IF;
824: END IF; -- end if status
825:
826:
830: p_data => x_msg_data
831: );
832:
833: EXCEPTION
834: WHEN FND_API.G_EXC_ERROR THEN
835: --pp_debug('error aso_quote_pub');
836:
837:
838: IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
839: aso_debug_pub.add('Exception in package : '|| G_PKG_NAME, 1, 'N');
840: aso_debug_pub.add('Exception in API : '|| L_API_NAME, 1, 'N');
841: end if;
842:
843: x_return_status := FND_API.G_RET_STS_ERROR;
844:
845: FND_MSG_PUB.Count_And_Get
846: ( p_count => x_msg_count,
847: p_data => x_msg_data
851: ASO_UTILITY_PVT.Get_Messages(x_msg_count, x_msg_data);
852:
853:
854:
855: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
856: --pp_debug('unerror aso_quote_pub'||DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
857:
858: IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
859: aso_debug_pub.add('Exception in package : '|| G_PKG_NAME, 1, 'N');
859: aso_debug_pub.add('Exception in package : '|| G_PKG_NAME, 1, 'N');
860: aso_debug_pub.add('Exception in API : '|| L_API_NAME, 1, 'N');
861: end if;
862:
863: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
864: FND_MSG_PUB.Count_And_Get
865: ( p_count => x_msg_count,
866: p_data => x_msg_data
867: );
888: l_err := l_err + 240;
889: FND_MSG_PUB.ADD;
890: end loop;
891:
892: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
893:
894:
895: FND_MSG_PUB.Count_And_Get
896: ( p_count => x_msg_count,