57: x_return_status OUT NOCOPY VARCHAR2)
58: IS
59: l_msg_data varchar2(2000);
60: l_msg_count number;
61: l_return_status varchar2(1) := FND_API.g_ret_sts_success;
62: l_price_list_attribute_id NUMBER;
63: l_object_version_number NUMBER;
64:
65: l_custom_setup_id NUMBER;
71:
72: BEGIN
73: IF p_operation = QP_GLOBALS.G_OPR_CREATE THEN
74: OZF_PRICE_LIST_PVT.create_price_list(p_api_version_number => 1
75: ,p_init_msg_list => FND_API.G_FALSE
76: ,p_commit => FND_API.G_FALSE
77: ,x_return_status => l_return_status
78: ,x_msg_count => l_msg_count
79: ,x_msg_data => l_msg_data
72: BEGIN
73: IF p_operation = QP_GLOBALS.G_OPR_CREATE THEN
74: OZF_PRICE_LIST_PVT.create_price_list(p_api_version_number => 1
75: ,p_init_msg_list => FND_API.G_FALSE
76: ,p_commit => FND_API.G_FALSE
77: ,x_return_status => l_return_status
78: ,x_msg_count => l_msg_count
79: ,x_msg_data => l_msg_data
80: ,p_ozf_PRICE_LIST_rec => p_price_list_attr_rec
88: -- create attributes for this offer
89: IF l_custom_setup_id IS NOT NULL THEN
90: AMS_ObjectAttribute_PVT.create_object_attributes(
91: p_api_version => 1.0,
92: p_init_msg_list => FND_API.g_false,
93: p_commit => FND_API.g_false,
94: p_validation_level => FND_API.g_valid_level_full,
95: x_return_status => l_return_status,
96: x_msg_count => l_msg_count,
89: IF l_custom_setup_id IS NOT NULL THEN
90: AMS_ObjectAttribute_PVT.create_object_attributes(
91: p_api_version => 1.0,
92: p_init_msg_list => FND_API.g_false,
93: p_commit => FND_API.g_false,
94: p_validation_level => FND_API.g_valid_level_full,
95: x_return_status => l_return_status,
96: x_msg_count => l_msg_count,
97: x_msg_data => l_msg_data,
90: AMS_ObjectAttribute_PVT.create_object_attributes(
91: p_api_version => 1.0,
92: p_init_msg_list => FND_API.g_false,
93: p_commit => FND_API.g_false,
94: p_validation_level => FND_API.g_valid_level_full,
95: x_return_status => l_return_status,
96: x_msg_count => l_msg_count,
97: x_msg_data => l_msg_data,
98: p_object_type => 'PRIC',
104: -- end of comment
105:
106: ELSIF p_operation = QP_GLOBALS.G_OPR_UPDATE THEN
107: OZF_PRICE_LIST_PVT.update_price_list(p_api_version_number => 1
108: ,p_init_msg_list => FND_API.G_FALSE
109: ,p_commit => FND_API.G_FALSE
110: ,x_return_status => l_return_status
111: ,x_msg_count => l_msg_count
112: ,x_msg_data => l_msg_data
105:
106: ELSIF p_operation = QP_GLOBALS.G_OPR_UPDATE THEN
107: OZF_PRICE_LIST_PVT.update_price_list(p_api_version_number => 1
108: ,p_init_msg_list => FND_API.G_FALSE
109: ,p_commit => FND_API.G_FALSE
110: ,x_return_status => l_return_status
111: ,x_msg_count => l_msg_count
112: ,x_msg_data => l_msg_data
113: ,p_ozf_PRICE_LIST_rec => p_price_list_attr_rec
116:
117: ELSIF p_operation = QP_GLOBALS.G_OPR_DELETE THEN
118:
119: OZF_PRICE_LIST_PVT.delete_price_list( p_api_version_number => 1
120: ,p_init_msg_list => FND_API.G_FALSE
121: ,p_commit => FND_API.G_FALSE
122: ,x_return_status => l_return_status
123: ,x_msg_count => l_msg_count
124: ,x_msg_data => l_msg_data
117: ELSIF p_operation = QP_GLOBALS.G_OPR_DELETE THEN
118:
119: OZF_PRICE_LIST_PVT.delete_price_list( p_api_version_number => 1
120: ,p_init_msg_list => FND_API.G_FALSE
121: ,p_commit => FND_API.G_FALSE
122: ,x_return_status => l_return_status
123: ,x_msg_count => l_msg_count
124: ,x_msg_data => l_msg_data
125: ,p_price_list_attribute_id => p_price_list_attr_rec.price_list_attribute_id
135: p_price_list_line_rec IN Price_List_Line_rec_Type
136: )
137: IS
138: BEGIN
139: IF p_price_list_line_rec.list_header_id IS NULL OR p_price_list_line_rec.list_header_id = FND_API.G_MISS_NUM THEN
140: FND_MESSAGE.set_name('OZF', 'OZF_NO_PRIC_LIST');
141: FND_MSG_PUB.add;
142: RAISE FND_API.g_exc_error;
143: END IF;
138: BEGIN
139: IF p_price_list_line_rec.list_header_id IS NULL OR p_price_list_line_rec.list_header_id = FND_API.G_MISS_NUM THEN
140: FND_MESSAGE.set_name('OZF', 'OZF_NO_PRIC_LIST');
141: FND_MSG_PUB.add;
142: RAISE FND_API.g_exc_error;
143: END IF;
144: END validate_price_list;
145:
146: PROCEDURE process_price_list(
144: END validate_price_list;
145:
146: PROCEDURE process_price_list(
147: p_api_version IN NUMBER,
148: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
149: p_commit IN VARCHAR2 := FND_API.g_false,
150: p_validation_level IN NUMBER := FND_API.g_valid_level_full,
151: x_return_status OUT NOCOPY VARCHAR2,
152: x_msg_count OUT NOCOPY NUMBER,
145:
146: PROCEDURE process_price_list(
147: p_api_version IN NUMBER,
148: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
149: p_commit IN VARCHAR2 := FND_API.g_false,
150: p_validation_level IN NUMBER := FND_API.g_valid_level_full,
151: x_return_status OUT NOCOPY VARCHAR2,
152: x_msg_count OUT NOCOPY NUMBER,
153: x_msg_data OUT NOCOPY VARCHAR2,
146: PROCEDURE process_price_list(
147: p_api_version IN NUMBER,
148: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
149: p_commit IN VARCHAR2 := FND_API.g_false,
150: p_validation_level IN NUMBER := FND_API.g_valid_level_full,
151: x_return_status OUT NOCOPY VARCHAR2,
152: x_msg_count OUT NOCOPY NUMBER,
153: x_msg_data OUT NOCOPY VARCHAR2,
154: p_price_list_rec IN ozf_price_list_rec_type,
161: )
162: IS
163: l_msg_data varchar2(2000);
164: l_msg_count number;
165: l_return_status varchar2(1) := FND_API.g_ret_sts_success;
166: l_api_name constant varchar2(30) := 'process_price_list';
167: i number := 1;
168: j number := 1;
169: l_list_header_id number;
232: BEGIN
233:
234: SAVEPOINT process_price_list;
235:
236: IF FND_API.to_boolean(p_init_msg_list) THEN
237: FND_MSG_PUB.initialize;
238: END IF;
239:
240: IF NOT FND_API.compatible_api_call
236: IF FND_API.to_boolean(p_init_msg_list) THEN
237: FND_MSG_PUB.initialize;
238: END IF;
239:
240: IF NOT FND_API.compatible_api_call
241: (
242: l_api_version,
243: p_api_version,
244: l_api_name,
244: l_api_name,
245: g_pkg_name
246: )
247: THEN
248: RAISE FND_API.g_exc_unexpected_error;
249: END IF;
250:
251: x_return_status := FND_API.G_RET_STS_SUCCESS;
252:
247: THEN
248: RAISE FND_API.g_exc_unexpected_error;
249: END IF;
250:
251: x_return_status := FND_API.G_RET_STS_SUCCESS;
252:
253:
254: -- Commented to allow product association to Price Lists Created in QP
255: /* IF p_price_list_rec.operation <> QP_GLOBALS.G_OPR_CREATE THEN
257: FND_MESSAGE.SET_NAME('OZF','OZF_EVO_NO_UPDATE_ACCESS');
258: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
259: FND_MSG_PUB.ADD;
260: x_error_source := 'H';
261: RAISE FND_API.g_exc_error;
262: END IF;
263: END IF; */
264:
265: OPEN cur_get_status_code(p_price_list_rec.list_header_id);
269: IF l_existing_status_code IN ('CANCELLED') THEN
270: FND_MESSAGE.SET_NAME('OZF','OZF_PRIC_NO_CHANGES_ALLOWED');
271: FND_MSG_PUB.ADD;
272: x_error_source := 'H';
273: RAISE FND_API.g_exc_error;
274: END IF;
275:
276:
277:
274: END IF;
275:
276:
277:
278: IF p_price_list_rec.operation <> FND_API.G_MISS_CHAR THEN
279:
280: l_price_list_rec.name := p_price_list_rec.name;
281: l_price_list_rec.description := p_price_list_rec.description;
282: l_price_list_rec.currency_code := p_price_list_rec.currency_code;
291: l_price_list_rec.global_flag := 'Y';
292: END IF;
293:
294: IF l_price_list_rec.global_flag = 'Y' THEN
295: IF p_price_list_rec.org_id IS NOT NULL AND p_price_list_rec.org_id <> fnd_api.g_miss_num THEN
296: FND_MESSAGE.set_name('OZF', 'OZF_CLEAR_OU');
297: FND_MSG_PUB.add;
298: RAISE FND_API.g_exc_error;
299: ELSE
294: IF l_price_list_rec.global_flag = 'Y' THEN
295: IF p_price_list_rec.org_id IS NOT NULL AND p_price_list_rec.org_id <> fnd_api.g_miss_num THEN
296: FND_MESSAGE.set_name('OZF', 'OZF_CLEAR_OU');
297: FND_MSG_PUB.add;
298: RAISE FND_API.g_exc_error;
299: ELSE
300: l_price_list_rec.org_id := NULL; -- global offer does need org id
301: END IF;
302: ELSE -- local offer
325: -- added by julou 07-16-2002 bug 2452540
326: -- validate dates here instead of validating in QP.
327: -- QP checks twice and hence returns 2 error messages
328: IF l_price_list_rec.start_date_active IS NOT NULL
329: AND l_price_list_rec.start_date_active <> FND_API.G_MISS_DATE
330: AND l_price_list_rec.end_date_active IS NOT NULL
331: AND l_price_list_rec.end_date_active <> FND_API.G_MISS_DATE
332: THEN
333: IF l_price_list_rec.start_date_active > l_price_list_rec.end_date_active THEN
327: -- QP checks twice and hence returns 2 error messages
328: IF l_price_list_rec.start_date_active IS NOT NULL
329: AND l_price_list_rec.start_date_active <> FND_API.G_MISS_DATE
330: AND l_price_list_rec.end_date_active IS NOT NULL
331: AND l_price_list_rec.end_date_active <> FND_API.G_MISS_DATE
332: THEN
333: IF l_price_list_rec.start_date_active > l_price_list_rec.end_date_active THEN
334: FND_MESSAGE.set_name('OZF', 'OZF_PRIC_START_AFTER_END');
335: FND_MSG_PUB.add;
332: THEN
333: IF l_price_list_rec.start_date_active > l_price_list_rec.end_date_active THEN
334: FND_MESSAGE.set_name('OZF', 'OZF_PRIC_START_AFTER_END');
335: FND_MSG_PUB.add;
336: RAISE FND_API.g_exc_error;
337: END IF;
338: END IF;
339: -- ended 2452540
340:
337: END IF;
338: END IF;
339: -- ended 2452540
340:
341: IF p_price_list_rec.list_header_id IS NOT NULL AND p_price_list_rec.list_header_id <> fnd_api.g_miss_num THEN
342: OPEN c_get_old_status_id(p_price_list_rec.list_header_id);
343: FETCH c_get_old_status_id INTO l_old_status_id,l_custom_setup_id,l_old_owner_id;
344: CLOSE c_get_old_status_id;
345:
343: FETCH c_get_old_status_id INTO l_old_status_id,l_custom_setup_id,l_old_owner_id;
344: CLOSE c_get_old_status_id;
345:
346: -- check if approval is required
347: IF p_price_list_rec.user_status_id IS NOT NULL AND p_price_list_rec.user_status_id <> FND_API.G_MISS_NUM THEN
348: -- bug 3780070 exception when updating price list created from QP (QP price lists have no status code in OZF)
349: OZF_Utility_PVT.check_new_status_change(p_object_type => 'PRIC'
350: ,p_object_id => p_price_list_rec.list_header_id
351: ,p_old_status_id => l_old_status_id
370:
371: IF p_price_list_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
372: l_price_list_rec.list_type_code := 'PRL';
373: l_price_list_rec.active_flag := 'N';
374: l_price_list_rec.list_header_id := FND_API.G_MISS_NUM;
375: ELSE
376: l_price_list_rec.list_header_id := p_price_list_rec.list_header_id;
377: END IF;
378: END IF;
379:
380: IF p_price_list_line_tbl.count > 0 THEN
381: FOR i in p_price_list_line_tbl.first..p_price_list_line_tbl.last LOOP
382:
383: IF p_price_list_line_tbl.exists(i) AND p_price_list_line_tbl(i).operation <> FND_API.G_MISS_CHAR THEN
384: -- bug 2452540
385: IF p_price_list_line_tbl(i).start_date_active IS NOT NULL
386: AND p_price_list_line_tbl(i).start_date_active <> FND_API.G_MISS_DATE
387: AND p_price_list_line_tbl(i).end_date_active IS NOT NULL
382:
383: IF p_price_list_line_tbl.exists(i) AND p_price_list_line_tbl(i).operation <> FND_API.G_MISS_CHAR THEN
384: -- bug 2452540
385: IF p_price_list_line_tbl(i).start_date_active IS NOT NULL
386: AND p_price_list_line_tbl(i).start_date_active <> FND_API.G_MISS_DATE
387: AND p_price_list_line_tbl(i).end_date_active IS NOT NULL
388: AND p_price_list_line_tbl(i).end_date_active <> FND_API.G_MISS_DATE
389: THEN
390: IF p_price_list_line_tbl(i).start_date_active > p_price_list_line_tbl(i).end_date_active THEN
384: -- bug 2452540
385: IF p_price_list_line_tbl(i).start_date_active IS NOT NULL
386: AND p_price_list_line_tbl(i).start_date_active <> FND_API.G_MISS_DATE
387: AND p_price_list_line_tbl(i).end_date_active IS NOT NULL
388: AND p_price_list_line_tbl(i).end_date_active <> FND_API.G_MISS_DATE
389: THEN
390: IF p_price_list_line_tbl(i).start_date_active > p_price_list_line_tbl(i).end_date_active THEN
391: FND_MESSAGE.set_name('OZF', 'OZF_PRIC_START_AFTER_END');
392: FND_MSG_PUB.add;
389: THEN
390: IF p_price_list_line_tbl(i).start_date_active > p_price_list_line_tbl(i).end_date_active THEN
391: FND_MESSAGE.set_name('OZF', 'OZF_PRIC_START_AFTER_END');
392: FND_MSG_PUB.add;
393: RAISE FND_API.g_exc_error;
394: END IF;
395: END IF;
396: -- end bug 2452540
397: validate_price_list(p_price_list_line_rec =>p_price_list_line_tbl(i));
457:
458: IF p_pricing_attr_tbl.count > 0 THEN
459: FOR i in p_pricing_attr_tbl.first..p_pricing_attr_tbl.last LOOP
460:
461: IF p_pricing_attr_tbl.exists(i) AND p_pricing_attr_tbl(i).operation <> FND_API.G_MISS_CHAR THEN
462:
463: l_pricing_attr_tbl(i).pricing_attribute_id := p_pricing_attr_tbl(i).pricing_attribute_id;
464: l_pricing_attr_tbl(i).list_line_id := p_pricing_attr_tbl(i).list_line_id;
465: l_pricing_attr_tbl(i).operation := p_pricing_attr_tbl(i).operation ;
482: END IF;
483:
484: QP_PRICE_LIST_PUB.Process_Price_List
485: ( p_api_version_number => 1
486: , p_init_msg_list => FND_API.G_TRUE
487: , p_return_values => FND_API.G_FALSE
488: , p_commit => FND_API.G_FALSE
489: , x_return_status => l_return_status
490: , x_msg_count => l_msg_count
483:
484: QP_PRICE_LIST_PUB.Process_Price_List
485: ( p_api_version_number => 1
486: , p_init_msg_list => FND_API.G_TRUE
487: , p_return_values => FND_API.G_FALSE
488: , p_commit => FND_API.G_FALSE
489: , x_return_status => l_return_status
490: , x_msg_count => l_msg_count
491: , x_msg_data => l_msg_data
484: QP_PRICE_LIST_PUB.Process_Price_List
485: ( p_api_version_number => 1
486: , p_init_msg_list => FND_API.G_TRUE
487: , p_return_values => FND_API.G_FALSE
488: , p_commit => FND_API.G_FALSE
489: , x_return_status => l_return_status
490: , x_msg_count => l_msg_count
491: , x_msg_data => l_msg_data
492: , p_PRICE_LIST_rec => l_price_list_rec
501: , x_PRICING_ATTR_tbl => v_pricing_attr_tbl
502: , x_PRICING_ATTR_val_tbl => v_pricing_attr_val_tbl
503: );
504:
505: IF l_return_status <> fnd_api.g_ret_sts_success THEN
506: IF v_price_list_rec.return_status <> fnd_api.g_ret_sts_success THEN
507: x_error_source := 'H';
508: ELSE
509: IF v_price_list_line_tbl.count > 0 THEN
502: , x_PRICING_ATTR_val_tbl => v_pricing_attr_val_tbl
503: );
504:
505: IF l_return_status <> fnd_api.g_ret_sts_success THEN
506: IF v_price_list_rec.return_status <> fnd_api.g_ret_sts_success THEN
507: x_error_source := 'H';
508: ELSE
509: IF v_price_list_line_tbl.count > 0 THEN
510: FOR i in v_price_list_line_tbl.first..v_price_list_line_tbl.last LOOP
508: ELSE
509: IF v_price_list_line_tbl.count > 0 THEN
510: FOR i in v_price_list_line_tbl.first..v_price_list_line_tbl.last LOOP
511: IF v_price_list_line_tbl.exists(i) THEN
512: IF v_price_list_line_tbl(i).return_status <> fnd_api.g_ret_sts_success THEN
513: x_error_source := 'L';
514: x_error_location := i;
515: exit;
516: END IF;
523:
524: IF v_pricing_attr_tbl.count > 0 THEN
525: FOR i in v_pricing_attr_tbl.first..v_pricing_attr_tbl.last LOOP
526: IF v_pricing_attr_tbl.exists(i) THEN
527: IF v_pricing_attr_tbl(i).return_status <> fnd_api.g_ret_sts_success THEN
528: x_error_source := 'L';
529: x_error_location := i;
530: exit;
531: END IF;
554: END LOOP;
555:
556: QP_PRICE_LIST_PUB.Process_Price_List
557: ( p_api_version_number => 1
558: , p_init_msg_list => FND_API.G_TRUE
559: , p_return_values => FND_API.G_FALSE
560: , p_commit => FND_API.G_FALSE
561: , x_return_status => l_return_status
562: , x_msg_count => l_msg_count
555:
556: QP_PRICE_LIST_PUB.Process_Price_List
557: ( p_api_version_number => 1
558: , p_init_msg_list => FND_API.G_TRUE
559: , p_return_values => FND_API.G_FALSE
560: , p_commit => FND_API.G_FALSE
561: , x_return_status => l_return_status
562: , x_msg_count => l_msg_count
563: , x_msg_data => l_msg_data
556: QP_PRICE_LIST_PUB.Process_Price_List
557: ( p_api_version_number => 1
558: , p_init_msg_list => FND_API.G_TRUE
559: , p_return_values => FND_API.G_FALSE
560: , p_commit => FND_API.G_FALSE
561: , x_return_status => l_return_status
562: , x_msg_count => l_msg_count
563: , x_msg_data => l_msg_data
564: , p_PRICE_LIST_rec => l_price_list_rec
573: , x_PRICING_ATTR_tbl => v_pricing_attr_tbl
574: , x_PRICING_ATTR_val_tbl => v_pricing_attr_val_tbl
575: );
576:
577: IF l_return_status <> fnd_api.g_ret_sts_success THEN
578:
579: IF v_price_list_line_tbl.count > 0 THEN
580: FOR i in v_price_list_line_tbl.first..v_price_list_line_tbl.last LOOP
581: IF v_price_list_line_tbl.exists(i) THEN
578:
579: IF v_price_list_line_tbl.count > 0 THEN
580: FOR i in v_price_list_line_tbl.first..v_price_list_line_tbl.last LOOP
581: IF v_price_list_line_tbl.exists(i) THEN
582: IF v_price_list_line_tbl(i).return_status <> fnd_api.g_ret_sts_success THEN
583: x_error_source := 'L';
584: x_error_location := i;
585: exit;
586: END IF;
592: END IF;
593:
594: END IF;
595:
596: IF l_return_status = fnd_api.g_ret_sts_error THEN
597: FOR i in 1 .. l_msg_count LOOP
598: l_msg_data := oe_msg_pub.get( p_msg_index => i,
599: p_encoded => 'F' );
600: FND_MESSAGE.SET_NAME('OZF','OZF_QP_ERROR');
600: FND_MESSAGE.SET_NAME('OZF','OZF_QP_ERROR');
601: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
602: FND_MSG_PUB.ADD;
603: END LOOP;
604: RAISE FND_API.g_exc_error;
605:
606: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
607: FOR i in 1 .. l_msg_count LOOP
608: l_msg_data := oe_msg_pub.get( p_msg_index => i,
602: FND_MSG_PUB.ADD;
603: END LOOP;
604: RAISE FND_API.g_exc_error;
605:
606: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
607: FOR i in 1 .. l_msg_count LOOP
608: l_msg_data := oe_msg_pub.get( p_msg_index => i,
609: p_encoded => 'F' );
610:
611: FND_MESSAGE.SET_NAME('OZF','OZF_QP_ERROR');
612: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
613: FND_MSG_PUB.ADD;
614: END LOOP;
615: RAISE FND_API.g_exc_unexpected_error;
616: END IF;
617:
618: IF p_price_list_rec.operation <> FND_API.G_MISS_CHAR THEN
619: x_list_header_id := v_price_list_rec.list_header_id;
614: END LOOP;
615: RAISE FND_API.g_exc_unexpected_error;
616: END IF;
617:
618: IF p_price_list_rec.operation <> FND_API.G_MISS_CHAR THEN
619: x_list_header_id := v_price_list_rec.list_header_id;
620: l_ozf_price_list_attr_rec.status_code := l_new_status_code;
621: l_ozf_price_list_attr_rec.user_status_id := p_price_list_rec.user_status_id;
622: l_ozf_price_list_attr_rec.owner_id := p_price_list_rec.owner_id;
644: l_access_rec.OWNER_FLAG := 'Y';
645:
646: ams_access_PVT.create_access(
647: p_api_version => l_api_version,
648: p_init_msg_list => FND_API.g_false,
649: p_commit => FND_API.g_false,
650: p_validation_level => FND_API.g_valid_level_full,
651:
652: x_return_status => l_return_status,
645:
646: ams_access_PVT.create_access(
647: p_api_version => l_api_version,
648: p_init_msg_list => FND_API.g_false,
649: p_commit => FND_API.g_false,
650: p_validation_level => FND_API.g_valid_level_full,
651:
652: x_return_status => l_return_status,
653: x_msg_count => l_msg_count,
646: ams_access_PVT.create_access(
647: p_api_version => l_api_version,
648: p_init_msg_list => FND_API.g_false,
649: p_commit => FND_API.g_false,
650: p_validation_level => FND_API.g_valid_level_full,
651:
652: x_return_status => l_return_status,
653: x_msg_count => l_msg_count,
654: x_msg_data => l_msg_data,
655:
656: p_access_rec => l_access_rec,
657: x_access_id => l_access_id
658: );
659: IF l_return_status = fnd_api.g_ret_sts_error THEN
660: RAISE FND_API.g_exc_error;
661: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
662: RAISE FND_API.g_exc_unexpected_error;
663: END IF;
656: p_access_rec => l_access_rec,
657: x_access_id => l_access_id
658: );
659: IF l_return_status = fnd_api.g_ret_sts_error THEN
660: RAISE FND_API.g_exc_error;
661: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
662: RAISE FND_API.g_exc_unexpected_error;
663: END IF;
664:
657: x_access_id => l_access_id
658: );
659: IF l_return_status = fnd_api.g_ret_sts_error THEN
660: RAISE FND_API.g_exc_error;
661: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
662: RAISE FND_API.g_exc_unexpected_error;
663: END IF;
664:
665: process_price_list_attributes(p_price_list_attr_rec => l_ozf_price_list_attr_rec
658: );
659: IF l_return_status = fnd_api.g_ret_sts_error THEN
660: RAISE FND_API.g_exc_error;
661: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
662: RAISE FND_API.g_exc_unexpected_error;
663: END IF;
664:
665: process_price_list_attributes(p_price_list_attr_rec => l_ozf_price_list_attr_rec
666: ,p_operation => p_price_list_rec.operation
666: ,p_operation => p_price_list_rec.operation
667: ,x_return_status => l_return_status
668: );
669:
670: IF l_return_status = fnd_api.g_ret_sts_error THEN
671: x_error_source := 'H';
672: RAISE FND_API.g_exc_error;
673: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
674: x_error_source := 'H';
668: );
669:
670: IF l_return_status = fnd_api.g_ret_sts_error THEN
671: x_error_source := 'H';
672: RAISE FND_API.g_exc_error;
673: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
674: x_error_source := 'H';
675: RAISE FND_API.g_exc_unexpected_error;
676: END IF;
669:
670: IF l_return_status = fnd_api.g_ret_sts_error THEN
671: x_error_source := 'H';
672: RAISE FND_API.g_exc_error;
673: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
674: x_error_source := 'H';
675: RAISE FND_API.g_exc_unexpected_error;
676: END IF;
677: -- end of comments
671: x_error_source := 'H';
672: RAISE FND_API.g_exc_error;
673: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
674: x_error_source := 'H';
675: RAISE FND_API.g_exc_unexpected_error;
676: END IF;
677: -- end of comments
678:
679: ELSE -- operation = 'update'
679: ELSE -- operation = 'update'
680: -- get old user_status id
681: IF p_price_list_rec.operation = 'UPDATE'
682: AND ( p_price_list_rec.list_header_id IS NULL
683: or p_price_list_rec.list_header_id = FND_API.g_miss_num) THEN
684: NULL;
685: ELSE
686: IF p_price_list_rec.owner_id = fnd_api.g_miss_num THEN
687: l_owner_id := l_old_owner_id;
682: AND ( p_price_list_rec.list_header_id IS NULL
683: or p_price_list_rec.list_header_id = FND_API.g_miss_num) THEN
684: NULL;
685: ELSE
686: IF p_price_list_rec.owner_id = fnd_api.g_miss_num THEN
687: l_owner_id := l_old_owner_id;
688: ELSE
689: l_owner_id := p_price_list_rec.owner_id;
690: END IF;
688: ELSE
689: l_owner_id := p_price_list_rec.owner_id;
690: END IF;
691: -- check if approval is required
692: IF p_price_list_rec.user_status_id IS NOT NULL AND p_price_list_rec.user_status_id <> FND_API.G_MISS_NUM THEN
693: -- bug 3780070 exception when updating price list created from QP i.e. no status for QP price lists
694: IF l_approval_type IS NOT NULL THEN -- approval is required
695: l_ozf_price_list_attr_rec.user_status_id := ozf_utility_pvt.get_default_user_status('OZF_PRICELIST_STATUS','PENDING');
696: l_ozf_price_list_attr_rec.status_code := 'PENDING';
705: l_is_owner := ams_access_PVT.check_owner(p_object_id => p_price_list_rec.list_header_id
706: ,p_object_type => 'PRIC'
707: ,p_user_or_role_id => l_owner_id
708: ,p_user_or_role_type => 'USER');
709: IF l_owner_id IS NOT NULL AND l_owner_id <> FND_API.G_MISS_NUM AND l_is_owner = 'N' THEN -- owner is changed
710: -- bug 3780070 exception when updating price list created from QP i.e. no owner id for QP price lists
711: l_is_admin := ams_Access_PVT.Check_Admin_Access(l_resource_id); -- check if login user is super user
712: l_login_is_owner := ams_access_PVT.check_owner(p_object_id => p_price_list_rec.list_header_id
713: ,p_object_type => 'PRIC'
715: ,p_user_or_role_type => 'USER');
716: IF l_is_admin OR l_login_is_owner = 'Y' THEN -- only super user/owner of price list can change the owner
717: ams_access_PVT.update_object_owner(
718: p_api_version => l_api_version,
719: p_init_msg_list => FND_API.g_false,
720: p_commit => FND_API.g_false,
721: p_validation_level => FND_API.g_valid_level_full,
722: x_return_status => l_return_status,
723: x_msg_count => l_msg_count,
716: IF l_is_admin OR l_login_is_owner = 'Y' THEN -- only super user/owner of price list can change the owner
717: ams_access_PVT.update_object_owner(
718: p_api_version => l_api_version,
719: p_init_msg_list => FND_API.g_false,
720: p_commit => FND_API.g_false,
721: p_validation_level => FND_API.g_valid_level_full,
722: x_return_status => l_return_status,
723: x_msg_count => l_msg_count,
724: x_msg_data => l_msg_data,
717: ams_access_PVT.update_object_owner(
718: p_api_version => l_api_version,
719: p_init_msg_list => FND_API.g_false,
720: p_commit => FND_API.g_false,
721: p_validation_level => FND_API.g_valid_level_full,
722: x_return_status => l_return_status,
723: x_msg_count => l_msg_count,
724: x_msg_data => l_msg_data,
725: p_object_type => 'PRIC',
726: p_object_id => p_price_list_rec.list_header_id,
727: p_resource_id => p_price_list_rec.owner_id,
728: p_old_resource_id => l_old_owner_id);
729:
730: IF l_return_status = fnd_api.g_ret_sts_error THEN
731: RAISE FND_API.g_exc_error;
732: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
733: RAISE FND_API.g_exc_unexpected_error;
734: END IF;
727: p_resource_id => p_price_list_rec.owner_id,
728: p_old_resource_id => l_old_owner_id);
729:
730: IF l_return_status = fnd_api.g_ret_sts_error THEN
731: RAISE FND_API.g_exc_error;
732: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
733: RAISE FND_API.g_exc_unexpected_error;
734: END IF;
735: ELSE
728: p_old_resource_id => l_old_owner_id);
729:
730: IF l_return_status = fnd_api.g_ret_sts_error THEN
731: RAISE FND_API.g_exc_error;
732: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
733: RAISE FND_API.g_exc_unexpected_error;
734: END IF;
735: ELSE
736: OZF_Utility_PVT.error_message('OZF_PRIC_UPDT_OWNER_PERM');
729:
730: IF l_return_status = fnd_api.g_ret_sts_error THEN
731: RAISE FND_API.g_exc_error;
732: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
733: RAISE FND_API.g_exc_unexpected_error;
734: END IF;
735: ELSE
736: OZF_Utility_PVT.error_message('OZF_PRIC_UPDT_OWNER_PERM');
737: x_return_status := FND_API.g_ret_sts_error;
733: RAISE FND_API.g_exc_unexpected_error;
734: END IF;
735: ELSE
736: OZF_Utility_PVT.error_message('OZF_PRIC_UPDT_OWNER_PERM');
737: x_return_status := FND_API.g_ret_sts_error;
738: END IF;
739:
740:
741:
744: process_price_list_attributes(p_price_list_attr_rec => l_ozf_price_list_attr_rec
745: ,p_operation => p_price_list_rec.operation
746: ,x_return_status => l_return_status
747: );
748: IF l_return_status = fnd_api.g_ret_sts_error THEN
749: x_error_source := 'H';
750: RAISE FND_API.g_exc_error;
751: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
752: x_error_source := 'H';
746: ,x_return_status => l_return_status
747: );
748: IF l_return_status = fnd_api.g_ret_sts_error THEN
749: x_error_source := 'H';
750: RAISE FND_API.g_exc_error;
751: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
752: x_error_source := 'H';
753: RAISE FND_API.g_exc_unexpected_error;
754: END IF;
747: );
748: IF l_return_status = fnd_api.g_ret_sts_error THEN
749: x_error_source := 'H';
750: RAISE FND_API.g_exc_error;
751: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
752: x_error_source := 'H';
753: RAISE FND_API.g_exc_unexpected_error;
754: END IF;
755:
749: x_error_source := 'H';
750: RAISE FND_API.g_exc_error;
751: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
752: x_error_source := 'H';
753: RAISE FND_API.g_exc_unexpected_error;
754: END IF;
755:
756: IF l_approval_type IS NOT NULL THEN -- approval is required
757: ams_gen_approval_pvt.StartProcess(p_activity_type => 'PRIC'
776: OR p_price_list_line_tbl(i).operation = QP_GLOBALS.G_OPR_CREATE THEN
777: IF p_price_list_line_tbl(i).jtf_note_id IS NULL THEN
778: IF p_price_list_line_tbl(i).note IS NOT NULL THEN
779: JTF_NOTES_PUB.Create_note(
780: p_parent_note_id => FND_API.g_miss_num,
781: p_jtf_note_id => NULL,
782: p_api_version => l_api_version,
783: p_init_msg_list => FND_API.g_false,
784: p_commit => FND_API.g_false,
779: JTF_NOTES_PUB.Create_note(
780: p_parent_note_id => FND_API.g_miss_num,
781: p_jtf_note_id => NULL,
782: p_api_version => l_api_version,
783: p_init_msg_list => FND_API.g_false,
784: p_commit => FND_API.g_false,
785: p_validation_level => FND_API.g_valid_level_full,
786: x_return_status => l_return_status,
787: x_msg_count => l_msg_count,
780: p_parent_note_id => FND_API.g_miss_num,
781: p_jtf_note_id => NULL,
782: p_api_version => l_api_version,
783: p_init_msg_list => FND_API.g_false,
784: p_commit => FND_API.g_false,
785: p_validation_level => FND_API.g_valid_level_full,
786: x_return_status => l_return_status,
787: x_msg_count => l_msg_count,
788: x_msg_data => l_msg_data,
781: p_jtf_note_id => NULL,
782: p_api_version => l_api_version,
783: p_init_msg_list => FND_API.g_false,
784: p_commit => FND_API.g_false,
785: p_validation_level => FND_API.g_valid_level_full,
786: x_return_status => l_return_status,
787: x_msg_count => l_msg_count,
788: x_msg_data => l_msg_data,
789: p_org_id => NULL,
819: p_note_type => 'OZF_PRICELISTREPORT',
820: p_jtf_note_contexts_tab => JTF_NOTES_PUB.jtf_note_contexts_tab_dflt);
821: END IF;
822:
823: IF l_return_status <> FND_API.g_ret_sts_success THEN
824: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
825: FND_MESSAGE.SET_NAME('OZF', 'OZF_NOTE_ERROR');
826: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
827: FND_MSG_PUB.Add;
820: p_jtf_note_contexts_tab => JTF_NOTES_PUB.jtf_note_contexts_tab_dflt);
821: END IF;
822:
823: IF l_return_status <> FND_API.g_ret_sts_success THEN
824: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
825: FND_MESSAGE.SET_NAME('OZF', 'OZF_NOTE_ERROR');
826: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
827: FND_MSG_PUB.Add;
828: RAISE FND_API.g_exc_unexpected_error;
824: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
825: FND_MESSAGE.SET_NAME('OZF', 'OZF_NOTE_ERROR');
826: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
827: FND_MSG_PUB.Add;
828: RAISE FND_API.g_exc_unexpected_error;
829: ELSE
830: FND_MESSAGE.Set_Name('OZF', 'OZF_NOTE_ERROR');
831: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
832: FND_MSG_PUB.Add;
829: ELSE
830: FND_MESSAGE.Set_Name('OZF', 'OZF_NOTE_ERROR');
831: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
832: FND_MSG_PUB.Add;
833: RAISE FND_API.g_exc_error;
834: END IF;
835: END IF;
836: ELSE
837: JTF_NOTES_PUB.Update_note(
835: END IF;
836: ELSE
837: JTF_NOTES_PUB.Update_note(
838: p_api_version => l_api_version,
839: p_init_msg_list => FND_API.g_false,
840: p_commit => FND_API.g_false,
841: p_validation_level => FND_API.g_valid_level_full,
842: x_return_status => l_return_status,
843: x_msg_count => l_msg_count,
836: ELSE
837: JTF_NOTES_PUB.Update_note(
838: p_api_version => l_api_version,
839: p_init_msg_list => FND_API.g_false,
840: p_commit => FND_API.g_false,
841: p_validation_level => FND_API.g_valid_level_full,
842: x_return_status => l_return_status,
843: x_msg_count => l_msg_count,
844: x_msg_data => l_msg_data,
837: JTF_NOTES_PUB.Update_note(
838: p_api_version => l_api_version,
839: p_init_msg_list => FND_API.g_false,
840: p_commit => FND_API.g_false,
841: p_validation_level => FND_API.g_valid_level_full,
842: x_return_status => l_return_status,
843: x_msg_count => l_msg_count,
844: x_msg_data => l_msg_data,
845: p_jtf_note_id => p_price_list_line_tbl(i).jtf_note_id,
848: p_last_update_date => SYSDATE,
849: p_last_update_login => FND_GLOBAL.login_id,
850: p_notes => p_price_list_line_tbl(i).note,
851: p_notes_detail => NULL,
852: p_append_flag => FND_API.g_miss_char,
853: p_note_status => 'I',
854: p_note_type => 'OZF_PRICELISTREPORT',
855: p_jtf_note_contexts_tab => JTF_NOTES_PUB.jtf_note_contexts_tab_dflt);
856:
853: p_note_status => 'I',
854: p_note_type => 'OZF_PRICELISTREPORT',
855: p_jtf_note_contexts_tab => JTF_NOTES_PUB.jtf_note_contexts_tab_dflt);
856:
857: IF l_return_status <> FND_API.g_ret_sts_success THEN
858: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
859: FND_MESSAGE.SET_NAME('OZF', 'OZF_NOTE_ERROR');
860: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
861: FND_MSG_PUB.Add;
854: p_note_type => 'OZF_PRICELISTREPORT',
855: p_jtf_note_contexts_tab => JTF_NOTES_PUB.jtf_note_contexts_tab_dflt);
856:
857: IF l_return_status <> FND_API.g_ret_sts_success THEN
858: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
859: FND_MESSAGE.SET_NAME('OZF', 'OZF_NOTE_ERROR');
860: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
861: FND_MSG_PUB.Add;
862: RAISE FND_API.g_exc_unexpected_error;
858: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
859: FND_MESSAGE.SET_NAME('OZF', 'OZF_NOTE_ERROR');
860: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
861: FND_MSG_PUB.Add;
862: RAISE FND_API.g_exc_unexpected_error;
863: ELSE
864: FND_MESSAGE.Set_Name('OZF', 'OZF_NOTE_ERROR');
865: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
866: FND_MSG_PUB.Add;
863: ELSE
864: FND_MESSAGE.Set_Name('OZF', 'OZF_NOTE_ERROR');
865: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
866: FND_MSG_PUB.Add;
867: RAISE FND_API.g_exc_error;
868: END IF;
869: END IF;
870: END IF;
871: END IF;
873: END IF;
874: */
875: -- end of code added by julou
876:
877: IF p_commit = FND_API.g_true then
878: COMMIT WORK;
879: END IF;
880:
881: FND_MSG_PUB.Count_AND_Get
880:
881: FND_MSG_PUB.Count_AND_Get
882: ( p_count => x_msg_count,
883: p_data => x_msg_data,
884: p_encoded => FND_API.G_FALSE );
885:
886: EXCEPTION
887: WHEN FND_API.G_EXC_ERROR THEN
888: x_return_status := FND_API.g_ret_sts_error ;
883: p_data => x_msg_data,
884: p_encoded => FND_API.G_FALSE );
885:
886: EXCEPTION
887: WHEN FND_API.G_EXC_ERROR THEN
888: x_return_status := FND_API.g_ret_sts_error ;
889: ROLLBACK TO process_price_list;
890: FND_MSG_PUB.Count_AND_Get
891: ( p_count => x_msg_count,
884: p_encoded => FND_API.G_FALSE );
885:
886: EXCEPTION
887: WHEN FND_API.G_EXC_ERROR THEN
888: x_return_status := FND_API.g_ret_sts_error ;
889: ROLLBACK TO process_price_list;
890: FND_MSG_PUB.Count_AND_Get
891: ( p_count => x_msg_count,
892: p_data => x_msg_data,
889: ROLLBACK TO process_price_list;
890: FND_MSG_PUB.Count_AND_Get
891: ( p_count => x_msg_count,
892: p_data => x_msg_data,
893: p_encoded => FND_API.G_FALSE
894: );
895: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
896: x_return_status := FND_API.g_ret_sts_unexp_error ;
897: ROLLBACK TO process_price_list;
891: ( p_count => x_msg_count,
892: p_data => x_msg_data,
893: p_encoded => FND_API.G_FALSE
894: );
895: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
896: x_return_status := FND_API.g_ret_sts_unexp_error ;
897: ROLLBACK TO process_price_list;
898: FND_MSG_PUB.Count_AND_Get
899: ( p_count => x_msg_count,
892: p_data => x_msg_data,
893: p_encoded => FND_API.G_FALSE
894: );
895: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
896: x_return_status := FND_API.g_ret_sts_unexp_error ;
897: ROLLBACK TO process_price_list;
898: FND_MSG_PUB.Count_AND_Get
899: ( p_count => x_msg_count,
900: p_data => x_msg_data,
897: ROLLBACK TO process_price_list;
898: FND_MSG_PUB.Count_AND_Get
899: ( p_count => x_msg_count,
900: p_data => x_msg_data,
901: p_encoded => FND_API.G_FALSE
902: );
903: WHEN OTHERS THEN
904: x_return_status := FND_API.g_ret_sts_unexp_erroR ;
905: x_error_source := 'H';
900: p_data => x_msg_data,
901: p_encoded => FND_API.G_FALSE
902: );
903: WHEN OTHERS THEN
904: x_return_status := FND_API.g_ret_sts_unexp_erroR ;
905: x_error_source := 'H';
906: ROLLBACK TO process_price_list;
907: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
908: THEN
910: END IF;
911: FND_MSG_PUB.Count_AND_Get
912: ( p_count => x_msg_count,
913: p_data => x_msg_data,
914: p_encoded => FND_API.G_FALSE
915: );
916:
917: END;
918:
917: END;
918:
919: PROCEDURE move_segments (
920: p_api_version IN NUMBER,
921: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
922: p_commit IN VARCHAR2 := FND_API.g_false,
923: p_validation_level IN NUMBER := FND_API.g_valid_level_full,
924: x_return_status OUT NOCOPY VARCHAR2,
925: x_msg_count OUT NOCOPY NUMBER,
918:
919: PROCEDURE move_segments (
920: p_api_version IN NUMBER,
921: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
922: p_commit IN VARCHAR2 := FND_API.g_false,
923: p_validation_level IN NUMBER := FND_API.g_valid_level_full,
924: x_return_status OUT NOCOPY VARCHAR2,
925: x_msg_count OUT NOCOPY NUMBER,
926: x_msg_data OUT NOCOPY VARCHAR2,
919: PROCEDURE move_segments (
920: p_api_version IN NUMBER,
921: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
922: p_commit IN VARCHAR2 := FND_API.g_false,
923: p_validation_level IN NUMBER := FND_API.g_valid_level_full,
924: x_return_status OUT NOCOPY VARCHAR2,
925: x_msg_count OUT NOCOPY NUMBER,
926: x_msg_data OUT NOCOPY VARCHAR2,
927: p_price_list_id IN NUMBER
927: p_price_list_id IN NUMBER
928: )IS
929: l_msg_data varchar2(2000);
930: l_msg_count number;
931: l_return_status varchar2(1) := FND_API.g_ret_sts_success;
932: l_api_name constant varchar2(30) := 'move_segments';
933: i number := 1;
934: l_list_header_id number;
935: l_api_version CONSTANT NUMBER := 1.0;
968:
969: BEGIN
970: SAVEPOINT move_segments;
971:
972: IF FND_API.to_boolean(p_init_msg_list) THEN
973: FND_MSG_PUB.initialize;
974: END IF;
975:
976: IF NOT FND_API.compatible_api_call
972: IF FND_API.to_boolean(p_init_msg_list) THEN
973: FND_MSG_PUB.initialize;
974: END IF;
975:
976: IF NOT FND_API.compatible_api_call
977: (
978: l_api_version,
979: p_api_version,
980: l_api_name,
980: l_api_name,
981: g_pkg_name
982: )
983: THEN
984: RAISE FND_API.g_exc_unexpected_error;
985: END IF;
986:
987: x_return_status := FND_API.G_RET_STS_SUCCESS;
988:
983: THEN
984: RAISE FND_API.g_exc_unexpected_error;
985: END IF;
986:
987: x_return_status := FND_API.G_RET_STS_SUCCESS;
988:
989: --Create market segments
990: FOR market_segment_rec in cur_get_market_segments
991: LOOP
1013: IF l_qualifiers_tbl.count > 0 THEN
1014:
1015: QP_PRICE_LIST_PUB.Process_Price_List
1016: ( p_api_version_number => 1
1017: , p_init_msg_list => FND_API.G_TRUE
1018: , p_return_values => FND_API.G_FALSE
1019: , p_commit => FND_API.G_FALSE
1020: , x_return_status => l_return_status
1021: , x_msg_count => l_msg_count
1014:
1015: QP_PRICE_LIST_PUB.Process_Price_List
1016: ( p_api_version_number => 1
1017: , p_init_msg_list => FND_API.G_TRUE
1018: , p_return_values => FND_API.G_FALSE
1019: , p_commit => FND_API.G_FALSE
1020: , x_return_status => l_return_status
1021: , x_msg_count => l_msg_count
1022: , x_msg_data => l_msg_data
1015: QP_PRICE_LIST_PUB.Process_Price_List
1016: ( p_api_version_number => 1
1017: , p_init_msg_list => FND_API.G_TRUE
1018: , p_return_values => FND_API.G_FALSE
1019: , p_commit => FND_API.G_FALSE
1020: , x_return_status => l_return_status
1021: , x_msg_count => l_msg_count
1022: , x_msg_data => l_msg_data
1023: , p_PRICE_LIST_rec => l_price_list_rec
1034: , x_PRICING_ATTR_val_tbl => v_pricing_attr_val_tbl
1035: );
1036:
1037:
1038: IF l_return_status = fnd_api.g_ret_sts_error THEN
1039: FOR i in 1 .. l_msg_count LOOP
1040: l_msg_data := oe_msg_pub.get( p_msg_index => i,
1041: p_encoded => 'F' );
1042:
1043: FND_MESSAGE.SET_NAME('OZF','OZF_QP_ERROR');
1044: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
1045: FND_MSG_PUB.ADD;
1046: END LOOP;
1047: RAISE FND_API.g_exc_error;
1048:
1049: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
1050: FOR i in 1 .. l_msg_count LOOP
1051: l_msg_data := oe_msg_pub.get( p_msg_index => i,
1045: FND_MSG_PUB.ADD;
1046: END LOOP;
1047: RAISE FND_API.g_exc_error;
1048:
1049: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
1050: FOR i in 1 .. l_msg_count LOOP
1051: l_msg_data := oe_msg_pub.get( p_msg_index => i,
1052: p_encoded => 'F' );
1053:
1054: FND_MESSAGE.SET_NAME('OZF','OZF_QP_ERROR');
1055: FND_MESSAGE.SET_TOKEN('ERROR_MSG',l_msg_data);
1056: FND_MSG_PUB.ADD;
1057: END LOOP;
1058: RAISE FND_API.g_exc_unexpected_error;
1059: END IF;
1060:
1061: END IF;
1062:
1062:
1063: FND_MSG_PUB.Count_AND_Get
1064: ( p_count => x_msg_count,
1065: p_data => x_msg_data,
1066: p_encoded => FND_API.G_FALSE );
1067:
1068: EXCEPTION
1069: WHEN FND_API.G_EXC_ERROR THEN
1070: x_return_status := FND_API.g_ret_sts_error ;
1065: p_data => x_msg_data,
1066: p_encoded => FND_API.G_FALSE );
1067:
1068: EXCEPTION
1069: WHEN FND_API.G_EXC_ERROR THEN
1070: x_return_status := FND_API.g_ret_sts_error ;
1071: ROLLBACK TO move_segments;
1072: FND_MSG_PUB.Count_AND_Get
1073: ( p_count => x_msg_count,
1066: p_encoded => FND_API.G_FALSE );
1067:
1068: EXCEPTION
1069: WHEN FND_API.G_EXC_ERROR THEN
1070: x_return_status := FND_API.g_ret_sts_error ;
1071: ROLLBACK TO move_segments;
1072: FND_MSG_PUB.Count_AND_Get
1073: ( p_count => x_msg_count,
1074: p_data => x_msg_data,
1071: ROLLBACK TO move_segments;
1072: FND_MSG_PUB.Count_AND_Get
1073: ( p_count => x_msg_count,
1074: p_data => x_msg_data,
1075: p_encoded => FND_API.G_FALSE
1076: );
1077: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1078: x_return_status := FND_API.g_ret_sts_unexp_error ;
1079: ROLLBACK TO move_segments;
1073: ( p_count => x_msg_count,
1074: p_data => x_msg_data,
1075: p_encoded => FND_API.G_FALSE
1076: );
1077: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1078: x_return_status := FND_API.g_ret_sts_unexp_error ;
1079: ROLLBACK TO move_segments;
1080: FND_MSG_PUB.Count_AND_Get
1081: ( p_count => x_msg_count,
1074: p_data => x_msg_data,
1075: p_encoded => FND_API.G_FALSE
1076: );
1077: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1078: x_return_status := FND_API.g_ret_sts_unexp_error ;
1079: ROLLBACK TO move_segments;
1080: FND_MSG_PUB.Count_AND_Get
1081: ( p_count => x_msg_count,
1082: p_data => x_msg_data,
1079: ROLLBACK TO move_segments;
1080: FND_MSG_PUB.Count_AND_Get
1081: ( p_count => x_msg_count,
1082: p_data => x_msg_data,
1083: p_encoded => FND_API.G_FALSE
1084: );
1085: WHEN OTHERS THEN
1086: x_return_status := FND_API.g_ret_sts_unexp_erroR ;
1087: ROLLBACK TO move_segments;
1082: p_data => x_msg_data,
1083: p_encoded => FND_API.G_FALSE
1084: );
1085: WHEN OTHERS THEN
1086: x_return_status := FND_API.g_ret_sts_unexp_erroR ;
1087: ROLLBACK TO move_segments;
1088: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
1089: THEN
1090: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1091: END IF;
1092: FND_MSG_PUB.Count_AND_Get
1093: ( p_count => x_msg_count,
1094: p_data => x_msg_data,
1095: p_encoded => FND_API.G_FALSE
1096: );
1097:
1098: END;
1099: /**
1175:
1176:
1177: PROCEDURE add_inventory_item(
1178: p_api_version IN NUMBER,
1179: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1180: p_commit IN VARCHAR2 := FND_API.g_false,
1181: x_return_status OUT NOCOPY VARCHAR2,
1182: x_msg_count OUT NOCOPY NUMBER,
1183: x_msg_data OUT NOCOPY VARCHAR2,
1176:
1177: PROCEDURE add_inventory_item(
1178: p_api_version IN NUMBER,
1179: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1180: p_commit IN VARCHAR2 := FND_API.g_false,
1181: x_return_status OUT NOCOPY VARCHAR2,
1182: x_msg_count OUT NOCOPY NUMBER,
1183: x_msg_data OUT NOCOPY VARCHAR2,
1184: p_org_inv_item_id IN NUMBER,
1247: BEGIN
1248:
1249: SAVEPOINT add_inventory_item;
1250:
1251: IF FND_API.to_boolean(p_init_msg_list) THEN
1252: FND_MSG_PUB.initialize;
1253: END IF;
1254:
1255: IF NOT FND_API.compatible_api_call(l_api_version,
1251: IF FND_API.to_boolean(p_init_msg_list) THEN
1252: FND_MSG_PUB.initialize;
1253: END IF;
1254:
1255: IF NOT FND_API.compatible_api_call(l_api_version,
1256: p_api_version,
1257: l_api_name,
1258: g_pkg_name)
1259: THEN
1256: p_api_version,
1257: l_api_name,
1258: g_pkg_name)
1259: THEN
1260: RAISE FND_API.g_exc_unexpected_error;
1261: END IF;
1262:
1263: x_return_status := FND_API.G_RET_STS_SUCCESS;
1264:
1259: THEN
1260: RAISE FND_API.g_exc_unexpected_error;
1261: END IF;
1262:
1263: x_return_status := FND_API.G_RET_STS_SUCCESS;
1264:
1265: l_source_system_code := FND_PROFILE.VALUE('QP_SOURCE_SYSTEM_CODE');
1266:
1267: FOR l_list_header_line_id IN c_list_header_line_id(l_source_system_code) LOOP
1696:
1697: QP_PRICE_LIST_PUB.Process_Price_List
1698: ( p_api_version_number => p_api_version
1699: , p_init_msg_list => p_init_msg_list
1700: , p_return_values => FND_API.G_FALSE
1701: , p_commit => p_commit
1702: , x_return_status => x_return_status
1703: , x_msg_count => x_msg_count
1704: , x_msg_data => x_msg_data
1714: , x_pricing_attr_tbl => v_pricing_attr_tbl
1715: , x_pricing_attr_val_tbl => v_pricing_attr_val_tbl
1716: );
1717:
1718: IF x_return_status = fnd_api.g_ret_sts_error THEN
1719: FOR i in 1 .. x_msg_count LOOP
1720: x_msg_data := oe_msg_pub.get( p_msg_index => i,
1721: p_encoded => 'F' );
1722: FND_MESSAGE.SET_NAME('OZF','OZF_QP_ERROR');
1722: FND_MESSAGE.SET_NAME('OZF','OZF_QP_ERROR');
1723: FND_MESSAGE.SET_TOKEN('ERROR_MSG',x_msg_data);
1724: FND_MSG_PUB.ADD;
1725: END LOOP;
1726: RAISE FND_API.g_exc_error;
1727:
1728: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
1729: FOR i in 1 .. x_msg_count LOOP
1730: x_msg_data := oe_msg_pub.get( p_msg_index => i,
1724: FND_MSG_PUB.ADD;
1725: END LOOP;
1726: RAISE FND_API.g_exc_error;
1727:
1728: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
1729: FOR i in 1 .. x_msg_count LOOP
1730: x_msg_data := oe_msg_pub.get( p_msg_index => i,
1731: p_encoded => 'F' );
1732:
1733: FND_MESSAGE.SET_NAME('OZF','OZF_QP_ERROR');
1734: FND_MESSAGE.SET_TOKEN('ERROR_MSG',x_msg_data);
1735: FND_MSG_PUB.ADD;
1736: END LOOP;
1737: RAISE FND_API.g_exc_unexpected_error;
1738: END IF;
1739: END LOOP;
1740: */
1741: EXCEPTION
1738: END IF;
1739: END LOOP;
1740: */
1741: EXCEPTION
1742: WHEN FND_API.G_EXC_ERROR THEN
1743: x_return_status := FND_API.g_ret_sts_error ;
1744: -- ROLLBACK TO add_inventory_item;
1745: FND_MSG_PUB.Count_AND_Get
1746: ( p_count => x_msg_count,
1739: END LOOP;
1740: */
1741: EXCEPTION
1742: WHEN FND_API.G_EXC_ERROR THEN
1743: x_return_status := FND_API.g_ret_sts_error ;
1744: -- ROLLBACK TO add_inventory_item;
1745: FND_MSG_PUB.Count_AND_Get
1746: ( p_count => x_msg_count,
1747: p_data => x_msg_data,
1744: -- ROLLBACK TO add_inventory_item;
1745: FND_MSG_PUB.Count_AND_Get
1746: ( p_count => x_msg_count,
1747: p_data => x_msg_data,
1748: p_encoded => FND_API.G_FALSE
1749: );
1750: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1751: x_return_status := FND_API.g_ret_sts_unexp_error ;
1752: -- ROLLBACK TO add_inventory_item;
1746: ( p_count => x_msg_count,
1747: p_data => x_msg_data,
1748: p_encoded => FND_API.G_FALSE
1749: );
1750: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1751: x_return_status := FND_API.g_ret_sts_unexp_error ;
1752: -- ROLLBACK TO add_inventory_item;
1753: FND_MSG_PUB.Count_AND_Get
1754: ( p_count => x_msg_count,
1747: p_data => x_msg_data,
1748: p_encoded => FND_API.G_FALSE
1749: );
1750: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1751: x_return_status := FND_API.g_ret_sts_unexp_error ;
1752: -- ROLLBACK TO add_inventory_item;
1753: FND_MSG_PUB.Count_AND_Get
1754: ( p_count => x_msg_count,
1755: p_data => x_msg_data,
1752: -- ROLLBACK TO add_inventory_item;
1753: FND_MSG_PUB.Count_AND_Get
1754: ( p_count => x_msg_count,
1755: p_data => x_msg_data,
1756: p_encoded => FND_API.G_FALSE
1757: );
1758: WHEN OTHERS THEN
1759: x_return_status := FND_API.g_ret_sts_unexp_erroR ;
1760: -- ROLLBACK TO add_inventory_item;
1755: p_data => x_msg_data,
1756: p_encoded => FND_API.G_FALSE
1757: );
1758: WHEN OTHERS THEN
1759: x_return_status := FND_API.g_ret_sts_unexp_erroR ;
1760: -- ROLLBACK TO add_inventory_item;
1761: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
1762: THEN
1763: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1764: END IF;
1765: FND_MSG_PUB.Count_AND_Get
1766: ( p_count => x_msg_count,
1767: p_data => x_msg_data,
1768: p_encoded => FND_API.G_FALSE
1769: );
1770:
1771: END add_inventory_item;
1772: