31:
32: PROCEDURE Duplicate_Check
33: (
34: p_api_version IN NUMBER,
35: p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
36: p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
37: p_validation_level IN NUMBER DEFAULT fnd_api.g_valid_level_full,
38: p_incident_id IN NUMBER,
39: p_incident_type_id IN NUMBER,
32: PROCEDURE Duplicate_Check
33: (
34: p_api_version IN NUMBER,
35: p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
36: p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
37: p_validation_level IN NUMBER DEFAULT fnd_api.g_valid_level_full,
38: p_incident_id IN NUMBER,
39: p_incident_type_id IN NUMBER,
40: p_customer_product_ID IN NUMBER,
33: (
34: p_api_version IN NUMBER,
35: p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
36: p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
37: p_validation_level IN NUMBER DEFAULT fnd_api.g_valid_level_full,
38: p_incident_id IN NUMBER,
39: p_incident_type_id IN NUMBER,
40: p_customer_product_ID IN NUMBER,
41: p_instance_serial_number IN VARCHAR2,
52: x_msg_count OUT NOCOPY NUMBER,
53: x_msg_data OUT NOCOPY VARCHAR2
54: )
55: IS
56: l_ea_attr_dup_flag VARCHAR2(1) := FND_API.g_false;
57: l_cs_sr_dup_flag VARCHAR2(1) := FND_API.g_false;
58:
59: l_api_name CONSTANT VARCHAR2(30) := 'SR_DUPLICATE_CHECK_API';
60: l_api_version CONSTANT NUMBER := 1.0;
53: x_msg_data OUT NOCOPY VARCHAR2
54: )
55: IS
56: l_ea_attr_dup_flag VARCHAR2(1) := FND_API.g_false;
57: l_cs_sr_dup_flag VARCHAR2(1) := FND_API.g_false;
58:
59: l_api_name CONSTANT VARCHAR2(30) := 'SR_DUPLICATE_CHECK_API';
60: l_api_version CONSTANT NUMBER := 1.0;
61: l_return_status VARCHAR2(1);
68: l_ea_ea_dup VARCHAR2(1);
69:
70: BEGIN
71:
72: IF NOT FND_API.Compatible_API_Call
73: (l_api_version, p_api_version , l_api_name, G_PKG_NAME )
74: THEN
75: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
76: END IF;
71:
72: IF NOT FND_API.Compatible_API_Call
73: (l_api_version, p_api_version , l_api_name, G_PKG_NAME )
74: THEN
75: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
76: END IF;
77:
78: -- Initialize message list if p_init_msg_list is set to TRUE.
79: IF FND_API.to_Boolean( p_init_msg_list ) THEN
75: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
76: END IF;
77:
78: -- Initialize message list if p_init_msg_list is set to TRUE.
79: IF FND_API.to_Boolean( p_init_msg_list ) THEN
80: FND_MSG_PUB.initialize;
81: END IF;
82:
83: -- Initialize API return status to success
80: FND_MSG_PUB.initialize;
81: END IF;
82:
83: -- Initialize API return status to success
84: x_return_status := FND_API.G_RET_STS_SUCCESS;
85:
86: IF (p_cs_extended_attr.count > 0 or
87: ( p_incident_address.incident_address is not NULL
88: or p_incident_address.incident_city is not NULL
103: p_return_status => l_return_status
104: );
105: END IF;
106:
107: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
108: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
109: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
110: RAISE FND_API.G_EXC_ERROR;
111: END IF;
104: );
105: END IF;
106:
107: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
108: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
109: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
110: RAISE FND_API.G_EXC_ERROR;
111: END IF;
112:
105: END IF;
106:
107: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
108: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
109: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
110: RAISE FND_API.G_EXC_ERROR;
111: END IF;
112:
113: IF ( ( p_customer_product_id is not NULL
106:
107: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
108: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
109: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
110: RAISE FND_API.G_EXC_ERROR;
111: END IF;
112:
113: IF ( ( p_customer_product_id is not NULL
114: or p_current_serial_number is not NULL
132: p_return_status => l_return_status
133: );
134: END IF;
135:
136: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
137: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
138: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
139: RAISE FND_API.G_EXC_ERROR;
140: END IF;
133: );
134: END IF;
135:
136: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
137: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
138: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
139: RAISE FND_API.G_EXC_ERROR;
140: END IF;
141:
134: END IF;
135:
136: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
137: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
138: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
139: RAISE FND_API.G_EXC_ERROR;
140: END IF;
141:
142: IF l_ea_attr_dup_flag = fnd_api.g_true and l_cs_sr_dup_flag = fnd_api.g_true THEN
135:
136: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
137: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
138: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
139: RAISE FND_API.G_EXC_ERROR;
140: END IF;
141:
142: IF l_ea_attr_dup_flag = fnd_api.g_true and l_cs_sr_dup_flag = fnd_api.g_true THEN
143: x_dup_found_at := 'BOTH';
138: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
139: RAISE FND_API.G_EXC_ERROR;
140: END IF;
141:
142: IF l_ea_attr_dup_flag = fnd_api.g_true and l_cs_sr_dup_flag = fnd_api.g_true THEN
143: x_dup_found_at := 'BOTH';
144: Construct_Unique_List_Dup_SR(
145: p_cs_ea_dup_rec => l_cs_ea_dup_rec,
146: p_ea_attr_dup_flag => l_ea_attr_dup_flag,
153: p_duplicate_flag => x_duplicate_flag,
154: p_return_status => l_return_status
155: );
156:
157: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
158: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
159: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
160: RAISE FND_API.G_EXC_ERROR;
161: END IF;
154: p_return_status => l_return_status
155: );
156:
157: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
158: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
159: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
160: RAISE FND_API.G_EXC_ERROR;
161: END IF;
162:
155: );
156:
157: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
158: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
159: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
160: RAISE FND_API.G_EXC_ERROR;
161: END IF;
162:
163: ELSIF l_ea_attr_dup_flag = fnd_api.g_true and l_cs_sr_dup_flag = fnd_api.g_false THEN
156:
157: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
158: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
159: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
160: RAISE FND_API.G_EXC_ERROR;
161: END IF;
162:
163: ELSIF l_ea_attr_dup_flag = fnd_api.g_true and l_cs_sr_dup_flag = fnd_api.g_false THEN
164: x_dup_found_at := 'EA';
159: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
160: RAISE FND_API.G_EXC_ERROR;
161: END IF;
162:
163: ELSIF l_ea_attr_dup_flag = fnd_api.g_true and l_cs_sr_dup_flag = fnd_api.g_false THEN
164: x_dup_found_at := 'EA';
165: x_sr_dupl_rec := l_cs_ea_dup_rec;
166: x_duplicate_flag := fnd_api.g_true;
167:
162:
163: ELSIF l_ea_attr_dup_flag = fnd_api.g_true and l_cs_sr_dup_flag = fnd_api.g_false THEN
164: x_dup_found_at := 'EA';
165: x_sr_dupl_rec := l_cs_ea_dup_rec;
166: x_duplicate_flag := fnd_api.g_true;
167:
168: ELSIF l_cs_sr_dup_flag = fnd_api.g_true and l_ea_attr_dup_flag = fnd_api.g_false THEN
169: x_dup_found_at := 'SR';
170: x_sr_dupl_rec := l_cs_sr_dup_rec;
164: x_dup_found_at := 'EA';
165: x_sr_dupl_rec := l_cs_ea_dup_rec;
166: x_duplicate_flag := fnd_api.g_true;
167:
168: ELSIF l_cs_sr_dup_flag = fnd_api.g_true and l_ea_attr_dup_flag = fnd_api.g_false THEN
169: x_dup_found_at := 'SR';
170: x_sr_dupl_rec := l_cs_sr_dup_rec;
171: x_duplicate_flag := fnd_api.g_true;
172:
167:
168: ELSIF l_cs_sr_dup_flag = fnd_api.g_true and l_ea_attr_dup_flag = fnd_api.g_false THEN
169: x_dup_found_at := 'SR';
170: x_sr_dupl_rec := l_cs_sr_dup_rec;
171: x_duplicate_flag := fnd_api.g_true;
172:
173: ELSE
174: x_dup_found_at := 'NONE';
175: END IF;
172:
173: ELSE
174: x_dup_found_at := 'NONE';
175: END IF;
176: x_return_status := FND_API.G_RET_STS_SUCCESS;
177:
178: EXCEPTION
179: WHEN FND_API.G_EXC_ERROR THEN
180: x_return_status := FND_API.G_RET_STS_ERROR ;
175: END IF;
176: x_return_status := FND_API.G_RET_STS_SUCCESS;
177:
178: EXCEPTION
179: WHEN FND_API.G_EXC_ERROR THEN
180: x_return_status := FND_API.G_RET_STS_ERROR ;
181: FND_MSG_PUB.Count_And_Get
182: (p_count => x_msg_count,
183: p_data => x_msg_data);
176: x_return_status := FND_API.G_RET_STS_SUCCESS;
177:
178: EXCEPTION
179: WHEN FND_API.G_EXC_ERROR THEN
180: x_return_status := FND_API.G_RET_STS_ERROR ;
181: FND_MSG_PUB.Count_And_Get
182: (p_count => x_msg_count,
183: p_data => x_msg_data);
184: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
180: x_return_status := FND_API.G_RET_STS_ERROR ;
181: FND_MSG_PUB.Count_And_Get
182: (p_count => x_msg_count,
183: p_data => x_msg_data);
184: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
185: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
186: FND_MSG_PUB.Count_And_Get
187: (p_count => x_msg_count,
188: p_data => x_msg_data);
181: FND_MSG_PUB.Count_And_Get
182: (p_count => x_msg_count,
183: p_data => x_msg_data);
184: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
185: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
186: FND_MSG_PUB.Count_And_Get
187: (p_count => x_msg_count,
188: p_data => x_msg_data);
189: WHEN OTHERS THEN
186: FND_MSG_PUB.Count_And_Get
187: (p_count => x_msg_count,
188: p_data => x_msg_data);
189: WHEN OTHERS THEN
190: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
191: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
192: THEN
193: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,
194: l_api_name );
228: cs_ea_dup_rec sr_dupl_tbl;
229: cs_dup_prof_value varchar2(100);
230:
231: BEGIN
232: p_return_status := FND_API.G_RET_STS_SUCCESS;
233: OPEN c_CheckIfDupCheckOn_Csr;
234: FETCH c_CheckIfDupCheckOn_Csr INTO c_CheckIfDupCheckOn_rec;
235:
236: IF (c_CheckIfDupCheckOn_csr%NOTFOUND) THEN
233: OPEN c_CheckIfDupCheckOn_Csr;
234: FETCH c_CheckIfDupCheckOn_Csr INTO c_CheckIfDupCheckOn_rec;
235:
236: IF (c_CheckIfDupCheckOn_csr%NOTFOUND) THEN
237: p_ea_attr_dup_flag := fnd_api.g_false;
238: return;
239: END IF;
240: CLOSE c_CheckIfDupCheckOn_csr;
241:
239: END IF;
240: CLOSE c_CheckIfDupCheckOn_csr;
241:
242: IF c_CheckIfDupCheckOn_rec.sr_dup_check_flag <> 'Y' THEN
243: p_ea_attr_dup_flag := fnd_api.g_false;
244: return;
245: END IF;
246:
247: cs_dup_prof_value := fnd_profile.value('CS_SR_DUP_CHK_CRITERIA');
248:
249: IF p_incident_id is not null and
250: (cs_dup_prof_value NOT IN ('CS_DUP_CRIT_EA_ADDR', 'CS_DUP_CRIT_WITHNO_SERIAL', 'CS_DUP_CRIT_WITH_SERIAL') or cs_dup_prof_value is null)
251: THEN
252: p_ea_attr_dup_flag := fnd_api.g_false;
253: return;
254: END IF;
255:
256: Perform_EA_Duplicate(
264: p_ea_ea_dup => p_ea_ea_dup,
265: p_return_status => p_return_status
266: );
267:
268: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
269: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
270: return;
271: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
272: p_return_status := FND_API.G_RET_STS_ERROR;
265: p_return_status => p_return_status
266: );
267:
268: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
269: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
270: return;
271: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
272: p_return_status := FND_API.G_RET_STS_ERROR;
273: return;
267:
268: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
269: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
270: return;
271: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
272: p_return_status := FND_API.G_RET_STS_ERROR;
273: return;
274: END IF;
275: p_cs_ea_dup_rec := cs_ea_dup_rec;
268: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
269: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
270: return;
271: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
272: p_return_status := FND_API.G_RET_STS_ERROR;
273: return;
274: END IF;
275: p_cs_ea_dup_rec := cs_ea_dup_rec;
276:
275: p_cs_ea_dup_rec := cs_ea_dup_rec;
276:
277: EXCEPTION
278: WHEN OTHERS THEN
279: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
280: return;
281: END Check_EA_Duplicate_Setup;
282:
283:
507: incident_id = l_incident_Id;
508:
509: BEGIN
510:
511: p_return_status := FND_API.G_RET_STS_SUCCESS;
512: OPEN c_DuplicateTimeInfo_csr;
513: FETCH c_DuplicateTimeInfo_csr INTO l_DuplicateTimeInfo_rec;
514:
515: CALCULATE_DUPLICATE_TIME_FRAME( p_incident_type_id => l_incident_type_id,
553: END IF;
554: END LOOP;
555:
556: IF match_found <> 0 OR l_DuplicateCheckAttrs_csr%ROWCOUNT = 0 THEN
557: p_ea_attr_dup_flag := fnd_api.g_true;
558: cnt := cnt + 1;
559: l_ea_dup_found_tbl(cnt).incident_id := l_IncidentId_withAddr_rec.incident_id;
560: l_ea_dup_found_tbl(cnt).incident_link_id := l_IncidentId_withAddr_rec.incident_link_id;
561: l_ea_dup_found_tbl(cnt).incident_link_number := l_IncidentId_withAddr_rec.incident_link_number;
608: END IF;
609: END LOOP;
610:
611: IF match_found <> 0 OR l_DuplicateCheckAttrs_csr%ROWCOUNT = 0 THEN
612: p_ea_attr_dup_flag := fnd_api.g_true;
613: cnt := cnt + 1;
614: p_ea_ea_dup := 'Y';
615: l_ea_dup_found_tbl(cnt).incident_id := l_IncidentId_NoAddr_rec.incident_id;
616: l_ea_dup_found_tbl(cnt).incident_link_id := l_IncidentId_NoAddr_rec.incident_link_id;
666: END IF;
667: END LOOP;
668:
669: IF match_found <> 0 OR l_DuplicateCheckAttrs_csr%ROWCOUNT = 0 THEN
670: p_ea_attr_dup_flag := fnd_api.g_true;
671: cnt := cnt + 1;
672: l_ea_dup_found_tbl(cnt).incident_id := l_IncidentId_withAddrUpd_rec.incident_id;
673: l_ea_dup_found_tbl(cnt).incident_link_id := l_IncidentId_withAddrUpd_rec.incident_link_id;
674: l_ea_dup_found_tbl(cnt).incident_link_number := l_IncidentId_withAddrUpd_rec.incident_link_number;
718: END IF;
719: END LOOP;
720:
721: IF match_found <> 0 THEN
722: p_ea_attr_dup_flag := fnd_api.g_true;
723: cnt := cnt + 1;
724: p_ea_ea_dup := 'Y';
725: l_ea_dup_found_tbl(cnt).incident_id := l_IncidentId_NoAddrUpd_rec.incident_id;
726: l_ea_dup_found_tbl(cnt).incident_link_id := l_IncidentId_NoAddrUpd_rec.incident_link_id;
748: p_dup_tbl => p_cs_ea_dup_rec,
749: p_return_status => p_return_status
750: );
751:
752: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
753: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
754: return;
755: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
756: p_return_status := FND_API.G_RET_STS_ERROR;
749: p_return_status => p_return_status
750: );
751:
752: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
753: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
754: return;
755: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
756: p_return_status := FND_API.G_RET_STS_ERROR;
757: return;
751:
752: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
753: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
754: return;
755: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
756: p_return_status := FND_API.G_RET_STS_ERROR;
757: return;
758: END IF;
759:
752: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
753: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
754: return;
755: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
756: p_return_status := FND_API.G_RET_STS_ERROR;
757: return;
758: END IF;
759:
760: p_ea_attr_dup_flag := FND_API.g_true;
756: p_return_status := FND_API.G_RET_STS_ERROR;
757: return;
758: END IF;
759:
760: p_ea_attr_dup_flag := FND_API.g_true;
761: p_cs_ea_dup_rec := p_cs_ea_dup_rec;
762: ELSE
763: p_ea_attr_dup_flag := FND_API.g_false;
764: END IF;
759:
760: p_ea_attr_dup_flag := FND_API.g_true;
761: p_cs_ea_dup_rec := p_cs_ea_dup_rec;
762: ELSE
763: p_ea_attr_dup_flag := FND_API.g_false;
764: END IF;
765: EXCEPTION
766: WHEN OTHERS THEN
767: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
763: p_ea_attr_dup_flag := FND_API.g_false;
764: END IF;
765: EXCEPTION
766: WHEN OTHERS THEN
767: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
768: return;
769:
770: END Perform_EA_Duplicate;
771:
791: IS
792: l_cs_sr_dup_link_rec SR_Dupl_Link_Tbl;
793: BEGIN
794:
795: p_return_status := FND_API.G_RET_STS_SUCCESS;
796: IF p_customer_product_id is not NULL THEN
797: p_dup_from := 1;
798: Check_SR_Instance_Dup
799: ( p_customer_product_id => p_customer_product_id,
849: p_return_status => p_return_status
850: );
851: END IF;
852:
853: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
854: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
855: return;
856: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
857: p_return_status := FND_API.G_RET_STS_ERROR;
850: );
851: END IF;
852:
853: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
854: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
855: return;
856: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
857: p_return_status := FND_API.G_RET_STS_ERROR;
858: return;
852:
853: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
854: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
855: return;
856: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
857: p_return_status := FND_API.G_RET_STS_ERROR;
858: return;
859: END IF;
860:
853: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
854: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
855: return;
856: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
857: p_return_status := FND_API.G_RET_STS_ERROR;
858: return;
859: END IF;
860:
861: IF p_cs_sr_dup_flag = FND_API.g_true THEN
857: p_return_status := FND_API.G_RET_STS_ERROR;
858: return;
859: END IF;
860:
861: IF p_cs_sr_dup_flag = FND_API.g_true THEN
862: Check_Dup_SR_Link
863: ( p_dup_found_tbl => l_cs_sr_dup_link_rec,
864: p_dup_tbl => p_cs_sr_dup_rec,
865: p_return_status => p_return_status
864: p_dup_tbl => p_cs_sr_dup_rec,
865: p_return_status => p_return_status
866: );
867:
868: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
869: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
870: return;
871: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
872: p_return_status := FND_API.G_RET_STS_ERROR;
865: p_return_status => p_return_status
866: );
867:
868: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
869: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
870: return;
871: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
872: p_return_status := FND_API.G_RET_STS_ERROR;
873: return;
867:
868: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
869: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
870: return;
871: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
872: p_return_status := FND_API.G_RET_STS_ERROR;
873: return;
874: END IF;
875: p_cs_sr_dup_flag := FND_API.g_true;
868: IF p_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
869: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
870: return;
871: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
872: p_return_status := FND_API.G_RET_STS_ERROR;
873: return;
874: END IF;
875: p_cs_sr_dup_flag := FND_API.g_true;
876: END IF;
871: ELSIF p_return_status = FND_API.G_RET_STS_ERROR THEN
872: p_return_status := FND_API.G_RET_STS_ERROR;
873: return;
874: END IF;
875: p_cs_sr_dup_flag := FND_API.g_true;
876: END IF;
877: EXCEPTION
878: WHEN OTHERS THEN
879: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
875: p_cs_sr_dup_flag := FND_API.g_true;
876: END IF;
877: EXCEPTION
878: WHEN OTHERS THEN
879: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
880: return;
881:
882: END Perform_Dup_on_SR_Field;
883:
1004:
1005: BEGIN
1006:
1007:
1008: p_return_status := FND_API.G_RET_STS_SUCCESS;
1009:
1010: CALCULATE_DUPLICATE_TIME_FRAME( p_duplicate_time_frame => l_duplicate_date);
1011:
1012: l_incident_id := p_incident_id;
1097: END IF;
1098: END IF;
1099:
1100: IF l_dup_counter > 0 THEN
1101: p_cs_sr_dup_flag := fnd_api.g_true;
1102: ELSE
1103: p_cs_sr_dup_flag := fnd_api.g_false;
1104: END IF;
1105: p_cs_sr_dup_link_rec := l_cs_sr_dup_link_rec;
1099:
1100: IF l_dup_counter > 0 THEN
1101: p_cs_sr_dup_flag := fnd_api.g_true;
1102: ELSE
1103: p_cs_sr_dup_flag := fnd_api.g_false;
1104: END IF;
1105: p_cs_sr_dup_link_rec := l_cs_sr_dup_link_rec;
1106:
1107: EXCEPTION
1105: p_cs_sr_dup_link_rec := l_cs_sr_dup_link_rec;
1106:
1107: EXCEPTION
1108: WHEN OTHERS THEN
1109: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1110: return;
1111: END Check_SR_SerialNum_Dup;
1112:
1113:
1162:
1163: BEGIN
1164:
1165:
1166: p_return_status := FND_API.G_RET_STS_SUCCESS;
1167:
1168: CALCULATE_DUPLICATE_TIME_FRAME( p_duplicate_time_frame => l_duplicate_date);
1169:
1170: l_incident_id := p_incident_id;
1200: END LOOP;
1201: END IF;
1202:
1203: if l_dup_counter > 0 then
1204: p_cs_sr_dup_flag := fnd_api.g_true;
1205: else
1206: p_cs_sr_dup_flag := fnd_api.g_false;
1207: end if;
1208: p_cs_sr_dup_link_rec := l_cs_sr_dup_link_rec;
1202:
1203: if l_dup_counter > 0 then
1204: p_cs_sr_dup_flag := fnd_api.g_true;
1205: else
1206: p_cs_sr_dup_flag := fnd_api.g_false;
1207: end if;
1208: p_cs_sr_dup_link_rec := l_cs_sr_dup_link_rec;
1209:
1210: EXCEPTION
1208: p_cs_sr_dup_link_rec := l_cs_sr_dup_link_rec;
1209:
1210: EXCEPTION
1211: WHEN OTHERS THEN
1212: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1213: return;
1214: END Check_SR_Instance_Dup;
1215:
1216:
1266: l_dup_sr_custprodupd_rec l_dup_sr_custprodUpd_csr%rowtype;
1267:
1268: BEGIN
1269:
1270: p_return_status := FND_API.G_RET_STS_SUCCESS;
1271: CALCULATE_DUPLICATE_TIME_FRAME( p_duplicate_time_frame => l_duplicate_date);
1272:
1273: l_incident_id := p_incident_id;
1274: l_customer_id := p_customer_id;
1302: END LOOP;
1303: END IF;
1304:
1305: if l_dup_counter > 0 then
1306: p_cs_sr_dup_flag := fnd_api.g_true;
1307: else
1308: p_cs_sr_dup_flag := fnd_api.g_false;
1309: end if;
1310: p_cs_sr_dup_link_rec := l_cs_sr_dup_link_rec;
1304:
1305: if l_dup_counter > 0 then
1306: p_cs_sr_dup_flag := fnd_api.g_true;
1307: else
1308: p_cs_sr_dup_flag := fnd_api.g_false;
1309: end if;
1310: p_cs_sr_dup_link_rec := l_cs_sr_dup_link_rec;
1311:
1312: EXCEPTION
1310: p_cs_sr_dup_link_rec := l_cs_sr_dup_link_rec;
1311:
1312: EXCEPTION
1313: WHEN OTHERS THEN
1314: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1315: return;
1316: END Check_SR_CustProd_Dup;
1317:
1318:
1451:
1452: BEGIN
1453:
1454:
1455: p_return_status := FND_API.G_RET_STS_SUCCESS;
1456: CALCULATE_DUPLICATE_TIME_FRAME( p_duplicate_time_frame => l_duplicate_date);
1457:
1458: l_incident_id := p_incident_id;
1459: l_customer_id := p_customer_id;
1545:
1546: END IF;
1547:
1548: if l_dup_counter > 0 then
1549: p_cs_sr_dup_flag := fnd_api.g_true;
1550: else
1551: p_cs_sr_dup_flag := fnd_api.g_false;
1552: end if;
1553: p_cs_sr_dup_link_rec := l_cs_sr_dup_link_rec;
1547:
1548: if l_dup_counter > 0 then
1549: p_cs_sr_dup_flag := fnd_api.g_true;
1550: else
1551: p_cs_sr_dup_flag := fnd_api.g_false;
1552: end if;
1553: p_cs_sr_dup_link_rec := l_cs_sr_dup_link_rec;
1554:
1555: EXCEPTION
1553: p_cs_sr_dup_link_rec := l_cs_sr_dup_link_rec;
1554:
1555: EXCEPTION
1556: WHEN OTHERS THEN
1557: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1558: return;
1559: END Check_SR_CustProdSerial_Dup;
1560:
1561:
1589: -- end of bug fix 3332447
1590:
1591: BEGIN
1592:
1593: p_return_status := FND_API.G_RET_STS_SUCCESS;
1594: l_loop_dup_rec_tbl := p_dup_found_tbl;
1595:
1596: FOR i IN l_loop_dup_rec_tbl.first..l_loop_dup_rec_tbl.last loop
1597: IF l_loop_dup_rec_tbl(i).incident_link_id is not null THEN
1666: END LOOP;
1667:
1668: EXCEPTION
1669: WHEN OTHERS THEN
1670: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1671: return;
1672: END Check_Dup_SR_Link;
1673:
1674:
1691: l_sr_dup_rec Sr_Dupl_Tbl;
1692: l_found_incident_id number;
1693:
1694: BEGIN
1695: p_return_status := FND_API.G_RET_STS_SUCCESS;
1696: IF p_ea_attr_dup_flag = fnd_api.g_true THEN
1697:
1698: FOR i in p_cs_ea_dup_rec.first..p_cs_ea_dup_rec.last LOOP
1699: l_counter := l_counter + 1;
1692: l_found_incident_id number;
1693:
1694: BEGIN
1695: p_return_status := FND_API.G_RET_STS_SUCCESS;
1696: IF p_ea_attr_dup_flag = fnd_api.g_true THEN
1697:
1698: FOR i in p_cs_ea_dup_rec.first..p_cs_ea_dup_rec.last LOOP
1699: l_counter := l_counter + 1;
1700: l_sr_dup_rec(l_counter).incident_id := p_cs_ea_dup_rec(i).incident_id;
1702: END LOOP;
1703:
1704: END IF;
1705:
1706: IF p_cs_sr_dup_flag = fnd_api.g_true THEN
1707: FOR i in p_cs_sr_dup_rec.first..p_cs_sr_dup_rec.last LOOP
1708:
1709: l_included_inList := 'N';
1710: FOR x in p_cs_ea_dup_rec.first..p_cs_ea_dup_Rec.last LOOP
1786: END LOOP;
1787: END IF;
1788:
1789: IF l_counter > 0 THEN
1790: p_duplicate_flag := fnd_api.g_true;
1791: ELSE
1792: p_duplicate_flag := fnd_api.g_false;
1793: END IF;
1794: p_sr_dup_rec := l_sr_dup_rec;
1788:
1789: IF l_counter > 0 THEN
1790: p_duplicate_flag := fnd_api.g_true;
1791: ELSE
1792: p_duplicate_flag := fnd_api.g_false;
1793: END IF;
1794: p_sr_dup_rec := l_sr_dup_rec;
1795:
1796: EXCEPTION
1794: p_sr_dup_rec := l_sr_dup_rec;
1795:
1796: EXCEPTION
1797: WHEN OTHERS THEN
1798: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1799: return;
1800: END Construct_Unique_List_Dup_Sr;
1801:
1802:
1865:
1866: OPEN c_DuplicateTimeInfo_csr;
1867: FETCH c_DuplicateTimeInfo_csr INTO l_DuplicateTimeInfo_rec;
1868: IF (c_DuplicateTimeInfo_csr%NOTFOUND) THEN
1869: RAISE fnd_api.g_exc_unexpected_error;
1870: END IF;
1871:
1872: l_duplicate_uom := l_DuplicateTimeInfo_rec.duplicate_uom;
1873:
1873:
1874: OPEN c_UOM_Conversion_Rate_csr;
1875: FETCH c_UOM_Conversion_Rate_csr into l_UOM_Conversion_Rate_rec;
1876: IF (c_UOM_Conversion_Rate_csr%NOTFOUND) THEN
1877: RAISE fnd_api.g_exc_unexpected_error;
1878: END IF;
1879:
1880: IF ( l_DuplicateTimeInfo_rec.duplicate_uom = 'Day') THEN
1881: l_multiple_by := l_DuplicateTimeInfo_rec.duplicate_offset;
1941:
1942: OPEN c_UOM_Conversion_Rate_csr;
1943: FETCH c_UOM_Conversion_Rate_csr into l_UOM_Conversion_Rate_rec;
1944: IF (c_UOM_Conversion_Rate_csr%NOTFOUND) THEN
1945: RAISE fnd_api.g_exc_unexpected_error;
1946: END IF;
1947:
1948: l_multiple_by := (l_duplicate_offset*l_UOM_Conversion_Rate_rec.conversion_rate)/24;
1949: