[Home] [Help]
45: , x_return_status => l_return_status
46: );
47: Error_Handler.Write_Debug('Query Row Returned with : ' || l_return_status);
48:
49: IF l_return_status = EGO_Globals.G_RECORD_FOUND AND
50: EGO_Globals.G_Catalog_Group_Rec.transaction_type = EGO_Globals.G_OPR_CREATE
51: THEN
52: l_token_tbl(1).token_name := 'CATALOG_GROUP_NAME';
53: l_token_tbl(1).token_value :=
46: );
47: Error_Handler.Write_Debug('Query Row Returned with : ' || l_return_status);
48:
49: IF l_return_status = EGO_Globals.G_RECORD_FOUND AND
50: EGO_Globals.G_Catalog_Group_Rec.transaction_type = EGO_Globals.G_OPR_CREATE
51: THEN
52: l_token_tbl(1).token_name := 'CATALOG_GROUP_NAME';
53: l_token_tbl(1).token_value :=
54: EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name;
50: EGO_Globals.G_Catalog_Group_Rec.transaction_type = EGO_Globals.G_OPR_CREATE
51: THEN
52: l_token_tbl(1).token_name := 'CATALOG_GROUP_NAME';
53: l_token_tbl(1).token_value :=
54: EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name;
55: Error_Handler.Add_Error_Token
56: ( x_Mesg_token_tbl => l_Mesg_Token_Tbl
57: , p_application_id => 'EGO'
58: , p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
59: , p_message_name => 'EGO_CATGRP_ALREADY_EXISTS'
60: , p_token_tbl => l_token_tbl
61: );
62: l_return_status := FND_API.G_RET_STS_ERROR;
63: ELSIF l_return_status = EGO_Globals.G_RECORD_NOT_FOUND AND
64: EGO_Globals.G_Catalog_Group_Rec.transaction_type IN
65: (EGO_Globals.G_OPR_UPDATE, EGO_Globals.G_OPR_DELETE)
66: THEN
67: l_token_tbl(1).token_name := 'CATALOG_GROUP_NAME';
60: , p_token_tbl => l_token_tbl
61: );
62: l_return_status := FND_API.G_RET_STS_ERROR;
63: ELSIF l_return_status = EGO_Globals.G_RECORD_NOT_FOUND AND
64: EGO_Globals.G_Catalog_Group_Rec.transaction_type IN
65: (EGO_Globals.G_OPR_UPDATE, EGO_Globals.G_OPR_DELETE)
66: THEN
67: l_token_tbl(1).token_name := 'CATALOG_GROUP_NAME';
68: l_token_tbl(1).token_value :=
61: );
62: l_return_status := FND_API.G_RET_STS_ERROR;
63: ELSIF l_return_status = EGO_Globals.G_RECORD_NOT_FOUND AND
64: EGO_Globals.G_Catalog_Group_Rec.transaction_type IN
65: (EGO_Globals.G_OPR_UPDATE, EGO_Globals.G_OPR_DELETE)
66: THEN
67: l_token_tbl(1).token_name := 'CATALOG_GROUP_NAME';
68: l_token_tbl(1).token_value :=
69: EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name;
65: (EGO_Globals.G_OPR_UPDATE, EGO_Globals.G_OPR_DELETE)
66: THEN
67: l_token_tbl(1).token_name := 'CATALOG_GROUP_NAME';
68: l_token_tbl(1).token_value :=
69: EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name;
70: Error_Handler.Add_Error_Token
71: ( x_Mesg_token_tbl => l_Mesg_Token_Tbl
72: , p_application_id => 'EGO'
73: , p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
83: , p_message_name => NULL
84: , p_application_id => 'EGO'
85: , p_message_text =>
86: 'Unexpected error while existence verification of ' ||
87: 'Catalog Group '|| EGO_Globals.G_Catalog_Group_Rec.Catalog_Group_Name
88: , p_token_tbl => l_token_tbl
89: );
90: l_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
91: ELSE
91: ELSE
92:
93: /* Assign the relevant transaction type for SYNC operations */
94:
95: IF EGO_Globals.G_Catalog_Group_Rec.transaction_type = 'SYNC' THEN
96: IF l_return_status = EGO_Globals.G_RECORD_FOUND THEN
97: EGO_Globals.G_Old_Catalog_Group_Rec.transaction_type :=
98: EGO_Globals.G_OPR_UPDATE;
99: ELSE
92:
93: /* Assign the relevant transaction type for SYNC operations */
94:
95: IF EGO_Globals.G_Catalog_Group_Rec.transaction_type = 'SYNC' THEN
96: IF l_return_status = EGO_Globals.G_RECORD_FOUND THEN
97: EGO_Globals.G_Old_Catalog_Group_Rec.transaction_type :=
98: EGO_Globals.G_OPR_UPDATE;
99: ELSE
100: EGO_Globals.G_Old_Catalog_Group_Rec.transaction_type :=
93: /* Assign the relevant transaction type for SYNC operations */
94:
95: IF EGO_Globals.G_Catalog_Group_Rec.transaction_type = 'SYNC' THEN
96: IF l_return_status = EGO_Globals.G_RECORD_FOUND THEN
97: EGO_Globals.G_Old_Catalog_Group_Rec.transaction_type :=
98: EGO_Globals.G_OPR_UPDATE;
99: ELSE
100: EGO_Globals.G_Old_Catalog_Group_Rec.transaction_type :=
101: EGO_Globals.G_OPR_CREATE;
94:
95: IF EGO_Globals.G_Catalog_Group_Rec.transaction_type = 'SYNC' THEN
96: IF l_return_status = EGO_Globals.G_RECORD_FOUND THEN
97: EGO_Globals.G_Old_Catalog_Group_Rec.transaction_type :=
98: EGO_Globals.G_OPR_UPDATE;
99: ELSE
100: EGO_Globals.G_Old_Catalog_Group_Rec.transaction_type :=
101: EGO_Globals.G_OPR_CREATE;
102: END IF;
96: IF l_return_status = EGO_Globals.G_RECORD_FOUND THEN
97: EGO_Globals.G_Old_Catalog_Group_Rec.transaction_type :=
98: EGO_Globals.G_OPR_UPDATE;
99: ELSE
100: EGO_Globals.G_Old_Catalog_Group_Rec.transaction_type :=
101: EGO_Globals.G_OPR_CREATE;
102: END IF;
103: END IF;
104: l_return_status := FND_API.G_RET_STS_SUCCESS;
97: EGO_Globals.G_Old_Catalog_Group_Rec.transaction_type :=
98: EGO_Globals.G_OPR_UPDATE;
99: ELSE
100: EGO_Globals.G_Old_Catalog_Group_Rec.transaction_type :=
101: EGO_Globals.G_OPR_CREATE;
102: END IF;
103: END IF;
104: l_return_status := FND_API.G_RET_STS_SUCCESS;
105:
162: BEGIN
163:
164: x_return_status := FND_API.G_RET_STS_SUCCESS;
165:
166: IF (EGO_Globals.G_Catalog_Group_Rec.catalog_group_id =
167: EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id
168: )
169: THEN
170: x_return_status := FND_API.G_RET_STS_ERROR;
163:
164: x_return_status := FND_API.G_RET_STS_SUCCESS;
165:
166: IF (EGO_Globals.G_Catalog_Group_Rec.catalog_group_id =
167: EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id
168: )
169: THEN
170: x_return_status := FND_API.G_RET_STS_ERROR;
171: Error_Handler.Add_Error_Token
174: , x_mesg_token_tbl => l_mesg_token_tbl
175: );
176: END IF;
177:
178: IF EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id IS NOT NULL AND
179: EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id <> FND_API.G_MISS_NUM
180: THEN
181:
182: BEGIN
175: );
176: END IF;
177:
178: IF EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id IS NOT NULL AND
179: EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id <> FND_API.G_MISS_NUM
180: THEN
181:
182: BEGIN
183: SELECT inactive_date INTO l_parent_inactive_date FROM mtl_item_catalog_groups_b
180: THEN
181:
182: BEGIN
183: SELECT inactive_date INTO l_parent_inactive_date FROM mtl_item_catalog_groups_b
184: WHERE item_catalog_group_id = EGO_Globals.G_Catalog_Group_Rec.parent_catalog_group_id;
185: EXCEPTION WHEN OTHERS THEN
186: x_return_status := FND_API.G_RET_STS_ERROR;
187: Error_Handler.Add_Error_Token
188: ( p_message_name => 'EGO_CG_PARENT_NOT_FOUND'
192: END;
193:
194: END IF;
195:
196: IF EGO_Globals.G_Catalog_Group_Rec.inactive_date IS NOT NULL AND
197: EGO_Globals.G_Catalog_Group_Rec.inactive_date <> FND_API.G_MISS_DATE
198: THEN
199:
200: IF trunc(EGO_Globals.G_Catalog_Group_Rec.inactive_date) <>
193:
194: END IF;
195:
196: IF EGO_Globals.G_Catalog_Group_Rec.inactive_date IS NOT NULL AND
197: EGO_Globals.G_Catalog_Group_Rec.inactive_date <> FND_API.G_MISS_DATE
198: THEN
199:
200: IF trunc(EGO_Globals.G_Catalog_Group_Rec.inactive_date) <>
201: trunc(nvl(EGO_Globals.G_Old_Catalog_Group_Rec.inactive_date,
196: IF EGO_Globals.G_Catalog_Group_Rec.inactive_date IS NOT NULL AND
197: EGO_Globals.G_Catalog_Group_Rec.inactive_date <> FND_API.G_MISS_DATE
198: THEN
199:
200: IF trunc(EGO_Globals.G_Catalog_Group_Rec.inactive_date) <>
201: trunc(nvl(EGO_Globals.G_Old_Catalog_Group_Rec.inactive_date,
202: EGO_Globals.G_Catalog_Group_Rec.inactive_date))
203: THEN
204:
197: EGO_Globals.G_Catalog_Group_Rec.inactive_date <> FND_API.G_MISS_DATE
198: THEN
199:
200: IF trunc(EGO_Globals.G_Catalog_Group_Rec.inactive_date) <>
201: trunc(nvl(EGO_Globals.G_Old_Catalog_Group_Rec.inactive_date,
202: EGO_Globals.G_Catalog_Group_Rec.inactive_date))
203: THEN
204:
205: /* Inactive date should be greater than the current date */
198: THEN
199:
200: IF trunc(EGO_Globals.G_Catalog_Group_Rec.inactive_date) <>
201: trunc(nvl(EGO_Globals.G_Old_Catalog_Group_Rec.inactive_date,
202: EGO_Globals.G_Catalog_Group_Rec.inactive_date))
203: THEN
204:
205: /* Inactive date should be greater than the current date */
206:
203: THEN
204:
205: /* Inactive date should be greater than the current date */
206:
207: IF trunc(EGO_Globals.G_Catalog_Group_Rec.inactive_date) < trunc(SYSDATE)
208: THEN
209: x_return_status := FND_API.G_RET_STS_ERROR;
210: Error_Handler.Add_Error_Token
211: ( p_message_name => 'EGO_CG_ENDDATE_LESS_CURRDATE'
215: END IF;
216:
217: /* Incative date cannnot be greater than the parent's inactive date */
218:
219: IF nvl(l_parent_inactive_date,EGO_Globals.G_Catalog_Group_Rec.inactive_date) <
220: EGO_Globals.G_Catalog_Group_Rec.inactive_date
221: THEN
222: x_return_status := FND_API.G_RET_STS_ERROR;
223: Error_Handler.Add_Error_Token
216:
217: /* Incative date cannnot be greater than the parent's inactive date */
218:
219: IF nvl(l_parent_inactive_date,EGO_Globals.G_Catalog_Group_Rec.inactive_date) <
220: EGO_Globals.G_Catalog_Group_Rec.inactive_date
221: THEN
222: x_return_status := FND_API.G_RET_STS_ERROR;
223: Error_Handler.Add_Error_Token
224: ( p_message_name => 'EGO_CG_ENDDATE_GREAT_PARENTDT'
228: END IF;
229:
230: END IF;
231:
232: ELSIF EGO_Globals.G_Catalog_Group_Rec.inactive_date = FND_API.G_MISS_DATE
233: THEN
234: /* Cannot nullify the end date for a cg when it's parent has one */
235:
236: IF l_parent_inactive_date is NOT NULL
292: BEGIN
293:
294: /*
295: l_ccid := EGO_ItemCat_Val_To_Id.Get_Catalog_Group_Id
296: (p_catalog_group_name =>EGO_Globals.G_Catalog_Group_Rec.catalog_group_name
297: , p_operation => 'FIND_COMBINATION');
298: */
299:
300: -- Work around to check the duplicate segment values since the FLEX API fails to
302:
303: BEGIN
304:
305: SELECT item_catalog_group_id INTO l_ccid FROM mtl_item_catalog_groups_kfv WHERE
306: upper(concatenated_segments) = upper(EGO_Globals.G_Catalog_Group_Rec.catalog_group_name);
307:
308: EXCEPTION WHEN NO_DATA_FOUND THEN
309: l_ccid := NULL;
310:
310:
311: WHEN OTHERS THEN
312: l_ccid := NULL;
313: Error_Handler.Add_Error_Token
314: ( p_message_text => 'Error in Check Entity : Catalog group name is '||EGO_Globals.G_Catalog_Group_Rec.Catalog_group_name||'/'||SQLERRM
315: , x_mesg_token_tbl => l_mesg_token_tbl
316: );
317: l_return_status := FND_API.G_RET_STS_ERROR;
318:
319: END;
320:
321: IF l_ccid IS NOT NULL
322: THEN
323: IF ( EGO_Globals.G_Catalog_Group_Rec.Transaction_Type = EGO_Globals.G_OPR_CREATE )
324: OR
325: ( EGO_Globals.G_Catalog_Group_Rec.Transaction_Type = EGO_Globals.G_OPR_UPDATE AND
326: EGO_Globals.G_Catalog_Group_Rec.Catalog_group_id <> l_ccid )
327: THEN
321: IF l_ccid IS NOT NULL
322: THEN
323: IF ( EGO_Globals.G_Catalog_Group_Rec.Transaction_Type = EGO_Globals.G_OPR_CREATE )
324: OR
325: ( EGO_Globals.G_Catalog_Group_Rec.Transaction_Type = EGO_Globals.G_OPR_UPDATE AND
326: EGO_Globals.G_Catalog_Group_Rec.Catalog_group_id <> l_ccid )
327: THEN
328: -- dbms_output.put_line('Duplicate error in : '||EGO_Globals.G_Catalog_Group_Rec.Transaction_Type);
329: Error_Handler.Add_Error_Token
322: THEN
323: IF ( EGO_Globals.G_Catalog_Group_Rec.Transaction_Type = EGO_Globals.G_OPR_CREATE )
324: OR
325: ( EGO_Globals.G_Catalog_Group_Rec.Transaction_Type = EGO_Globals.G_OPR_UPDATE AND
326: EGO_Globals.G_Catalog_Group_Rec.Catalog_group_id <> l_ccid )
327: THEN
328: -- dbms_output.put_line('Duplicate error in : '||EGO_Globals.G_Catalog_Group_Rec.Transaction_Type);
329: Error_Handler.Add_Error_Token
330: ( p_message_name => 'EGO_CATALOG_ALREADY_EXISTS'
324: OR
325: ( EGO_Globals.G_Catalog_Group_Rec.Transaction_Type = EGO_Globals.G_OPR_UPDATE AND
326: EGO_Globals.G_Catalog_Group_Rec.Catalog_group_id <> l_ccid )
327: THEN
328: -- dbms_output.put_line('Duplicate error in : '||EGO_Globals.G_Catalog_Group_Rec.Transaction_Type);
329: Error_Handler.Add_Error_Token
330: ( p_message_name => 'EGO_CATALOG_ALREADY_EXISTS'
331: , p_application_id => 'EGO'
332: , x_mesg_token_tbl => l_mesg_token_tbl
358:
359: -- dbms_output.put_line('Checking for items during delete');
360:
361: SELECT 'x' INTO l_dummy FROM dual WHERE EXISTS (SELECT null FROM mtl_system_items_b
362: WHERE item_catalog_group_id = EGO_Globals.G_Catalog_Group_Rec.Catalog_group_id);
363:
364: Error_Handler.Add_Error_Token
365: ( p_message_name => 'EGO_CATALOG_HAS_ITEMS'
366: , p_application_id => 'EGO'
376:
377: WHEN OTHERS
378: THEN
379: Error_Handler.Add_Error_Token
380: ( p_message_text => 'Error in Check Entity Delete : Catalog group name is '||EGO_Globals.G_Catalog_Group_Rec.Catalog_group_name||'/'||SQLERRM
381: , x_mesg_token_tbl => x_mesg_token_tbl
382: );
383: x_return_status := FND_API.G_RET_STS_ERROR;
384:
390: BEGIN
391: -- dbms_output.put_line('Checking for parent catalog group during delete');
392:
393: SELECT 'x' INTO l_dummy FROM dual WHERE EXISTS (SELECT null FROM mtl_item_catalog_groups_b
394: WHERE parent_catalog_group_id = EGO_Globals.G_Catalog_Group_Rec.Catalog_group_id);
395:
396: -- dbms_output.put_line('Found parent catalog group during delete');
397:
398: Error_Handler.Add_Error_Token
410:
411: WHEN OTHERS
412: THEN
413: Error_Handler.Add_Error_Token
414: ( p_message_text => 'Error in Check Entity Delete : Catalog group name is '||EGO_Globals.G_Catalog_Group_Rec.Catalog_group_name||'/'||SQLERRM
415: , x_mesg_token_tbl => x_mesg_token_tbl
416: );
417: x_return_status := FND_API.G_RET_STS_ERROR;
418: