75: ( p_return_status OUT NOCOPY VARCHAR2,
76: p_distribution_id IN OUT NOCOPY NUMBER,
77: p_position_id IN NUMBER,
78: p_data_extract_id IN NUMBER,
79: p_worksheet_id IN NUMBER := FND_API.G_MISS_NUM,
80: p_effective_start_date IN DATE,
81: p_effective_end_date IN DATE,
82: p_chart_of_accounts_id IN NUMBER,
83: p_code_combination_id IN NUMBER,
98:
99: --
100: PROCEDURE INSERT_ROW
101: ( p_api_version IN NUMBER,
102: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
103: p_commit IN VARCHAR2 := fnd_api.g_false,
104: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
105: p_return_status OUT NOCOPY VARCHAR2,
106: p_msg_count OUT NOCOPY NUMBER,
99: --
100: PROCEDURE INSERT_ROW
101: ( p_api_version IN NUMBER,
102: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
103: p_commit IN VARCHAR2 := fnd_api.g_false,
104: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
105: p_return_status OUT NOCOPY VARCHAR2,
106: p_msg_count OUT NOCOPY NUMBER,
107: p_msg_data OUT NOCOPY VARCHAR2,
100: PROCEDURE INSERT_ROW
101: ( p_api_version IN NUMBER,
102: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
103: p_commit IN VARCHAR2 := fnd_api.g_false,
104: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
105: p_return_status OUT NOCOPY VARCHAR2,
106: p_msg_count OUT NOCOPY NUMBER,
107: p_msg_data OUT NOCOPY VARCHAR2,
108: p_rowid IN OUT NOCOPY VARCHAR2,
108: p_rowid IN OUT NOCOPY VARCHAR2,
109: p_distribution_id IN NUMBER,
110: p_position_id IN NUMBER,
111: p_data_extract_id IN NUMBER,
112: p_worksheet_id IN NUMBER := FND_API.G_MISS_NUM,
113: p_effective_start_date IN DATE,
114: p_effective_end_date IN DATE,
115: p_chart_of_accounts_id IN NUMBER,
116: p_code_combination_id IN NUMBER,
116: p_code_combination_id IN NUMBER,
117: p_distribution_percent IN NUMBER,
118: p_global_default_flag IN VARCHAR2,
119: p_distribution_default_rule_id IN NUMBER,
120: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
121: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
122: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
123: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
124: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
117: p_distribution_percent IN NUMBER,
118: p_global_default_flag IN VARCHAR2,
119: p_distribution_default_rule_id IN NUMBER,
120: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
121: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
122: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
123: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
124: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
125: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
118: p_global_default_flag IN VARCHAR2,
119: p_distribution_default_rule_id IN NUMBER,
120: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
121: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
122: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
123: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
124: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
125: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
126: p_mode in varchar2 := 'R'
119: p_distribution_default_rule_id IN NUMBER,
120: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
121: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
122: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
123: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
124: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
125: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
126: p_mode in varchar2 := 'R'
127: ) is
120: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
121: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
122: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
123: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
124: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
125: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
126: p_mode in varchar2 := 'R'
127: ) is
128: cursor C is select ROWID from PSB_POSITION_PAY_DISTRIBUTIONS
121: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
122: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
123: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
124: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
125: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
126: p_mode in varchar2 := 'R'
127: ) is
128: cursor C is select ROWID from PSB_POSITION_PAY_DISTRIBUTIONS
129: where distribution_id = P_distribution_id;
138: BEGIN
139: --
140: SAVEPOINT Insert_Row ;
141: --
142: if FND_API.to_Boolean (p_init_msg_list) then
143: FND_MSG_PUB.initialize;
144: end if;
145: --
146: --
159: end if;
160: else
161: FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
162: FND_MSG_PUB.Add ;
163: raise FND_API.G_EXC_ERROR;
164: end if;
165: --
166: insert into PSB_POSITION_PAY_DISTRIBUTIONS(
167: distribution_id ,
189: ) values (
190: p_distribution_id ,
191: p_position_id ,
192: p_data_extract_id ,
193: decode(p_worksheet_id,FND_API.G_MISS_NUM,null,p_worksheet_id),
194: p_effective_start_date ,
195: p_effective_end_date ,
196: p_chart_of_accounts_id ,
197: p_code_combination_id ,
197: p_code_combination_id ,
198: p_distribution_percent ,
199: p_global_default_flag ,
200: p_distribution_default_rule_id ,
201: decode(p_project_id, FND_API.G_MISS_NUM, null, p_project_id),
202: decode(p_task_id, FND_API.G_MISS_NUM, null, p_task_id),
203: decode(p_award_id, FND_API.G_MISS_NUM, null, p_award_id),
204: decode(p_expenditure_type, FND_API.G_MISS_CHAR, null, p_expenditure_type),
205: decode(p_expenditure_organization_id, FND_API.G_MISS_NUM, null, p_expenditure_organization_id),
198: p_distribution_percent ,
199: p_global_default_flag ,
200: p_distribution_default_rule_id ,
201: decode(p_project_id, FND_API.G_MISS_NUM, null, p_project_id),
202: decode(p_task_id, FND_API.G_MISS_NUM, null, p_task_id),
203: decode(p_award_id, FND_API.G_MISS_NUM, null, p_award_id),
204: decode(p_expenditure_type, FND_API.G_MISS_CHAR, null, p_expenditure_type),
205: decode(p_expenditure_organization_id, FND_API.G_MISS_NUM, null, p_expenditure_organization_id),
206: decode(p_description, FND_API.G_MISS_CHAR, null, p_description),
199: p_global_default_flag ,
200: p_distribution_default_rule_id ,
201: decode(p_project_id, FND_API.G_MISS_NUM, null, p_project_id),
202: decode(p_task_id, FND_API.G_MISS_NUM, null, p_task_id),
203: decode(p_award_id, FND_API.G_MISS_NUM, null, p_award_id),
204: decode(p_expenditure_type, FND_API.G_MISS_CHAR, null, p_expenditure_type),
205: decode(p_expenditure_organization_id, FND_API.G_MISS_NUM, null, p_expenditure_organization_id),
206: decode(p_description, FND_API.G_MISS_CHAR, null, p_description),
207: p_last_update_date,
200: p_distribution_default_rule_id ,
201: decode(p_project_id, FND_API.G_MISS_NUM, null, p_project_id),
202: decode(p_task_id, FND_API.G_MISS_NUM, null, p_task_id),
203: decode(p_award_id, FND_API.G_MISS_NUM, null, p_award_id),
204: decode(p_expenditure_type, FND_API.G_MISS_CHAR, null, p_expenditure_type),
205: decode(p_expenditure_organization_id, FND_API.G_MISS_NUM, null, p_expenditure_organization_id),
206: decode(p_description, FND_API.G_MISS_CHAR, null, p_description),
207: p_last_update_date,
208: p_last_updated_by,
201: decode(p_project_id, FND_API.G_MISS_NUM, null, p_project_id),
202: decode(p_task_id, FND_API.G_MISS_NUM, null, p_task_id),
203: decode(p_award_id, FND_API.G_MISS_NUM, null, p_award_id),
204: decode(p_expenditure_type, FND_API.G_MISS_CHAR, null, p_expenditure_type),
205: decode(p_expenditure_organization_id, FND_API.G_MISS_NUM, null, p_expenditure_organization_id),
206: decode(p_description, FND_API.G_MISS_CHAR, null, p_description),
207: p_last_update_date,
208: p_last_updated_by,
209: p_last_update_date,
202: decode(p_task_id, FND_API.G_MISS_NUM, null, p_task_id),
203: decode(p_award_id, FND_API.G_MISS_NUM, null, p_award_id),
204: decode(p_expenditure_type, FND_API.G_MISS_CHAR, null, p_expenditure_type),
205: decode(p_expenditure_organization_id, FND_API.G_MISS_NUM, null, p_expenditure_organization_id),
206: decode(p_description, FND_API.G_MISS_CHAR, null, p_description),
207: p_last_update_date,
208: p_last_updated_by,
209: p_last_update_date,
210: p_last_updated_by,
214: open c;
215: fetch c into P_ROWID;
216: if (c%notfound) then
217: close c;
218: raise FND_API.G_EXC_ERROR ;
219: --raise no_data_found;
220: end if;
221: close c;
222: --
220: end if;
221: close c;
222: --
223: --
224: p_return_status := FND_API.G_RET_STS_SUCCESS ;
225:
226: -- Standard check of p_commit.
227: if FND_API.to_Boolean (p_commit) then
228: commit work;
223: --
224: p_return_status := FND_API.G_RET_STS_SUCCESS ;
225:
226: -- Standard check of p_commit.
227: if FND_API.to_Boolean (p_commit) then
228: commit work;
229: end if;
230: -- Standard call to get message count and if count is 1, get message info.
231: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
232: p_data => p_msg_data);
233: --
234: EXCEPTION
235: --
236: when FND_API.G_EXC_ERROR then
237: --
238: rollback to INSERT_ROW ;
239: p_return_status := FND_API.G_RET_STS_ERROR;
240: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
235: --
236: when FND_API.G_EXC_ERROR then
237: --
238: rollback to INSERT_ROW ;
239: p_return_status := FND_API.G_RET_STS_ERROR;
240: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
241: p_data => p_msg_data);
242: --
243: when FND_API.G_EXC_UNEXPECTED_ERROR then
239: p_return_status := FND_API.G_RET_STS_ERROR;
240: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
241: p_data => p_msg_data);
242: --
243: when FND_API.G_EXC_UNEXPECTED_ERROR then
244: --
245: rollback to INSERT_ROW ;
246: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
247: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
242: --
243: when FND_API.G_EXC_UNEXPECTED_ERROR then
244: --
245: rollback to INSERT_ROW ;
246: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
247: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
248: p_data => p_msg_data);
249: --
250: when OTHERS then
249: --
250: when OTHERS then
251: --
252: rollback to INSERT_ROW ;
253: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
254: if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
255: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
256: l_api_name);
257: END if;
262: --
263:
264: PROCEDURE LOCK_ROW
265: ( p_api_version IN NUMBER,
266: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
267: p_commit IN VARCHAR2 := fnd_api.g_false,
268: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
269: p_return_status OUT NOCOPY VARCHAR2,
270: p_msg_count OUT NOCOPY NUMBER,
263:
264: PROCEDURE LOCK_ROW
265: ( p_api_version IN NUMBER,
266: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
267: p_commit IN VARCHAR2 := fnd_api.g_false,
268: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
269: p_return_status OUT NOCOPY VARCHAR2,
270: p_msg_count OUT NOCOPY NUMBER,
271: p_msg_data OUT NOCOPY VARCHAR2,
264: PROCEDURE LOCK_ROW
265: ( p_api_version IN NUMBER,
266: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
267: p_commit IN VARCHAR2 := fnd_api.g_false,
268: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
269: p_return_status OUT NOCOPY VARCHAR2,
270: p_msg_count OUT NOCOPY NUMBER,
271: p_msg_data OUT NOCOPY VARCHAR2,
272: p_row_locked OUT NOCOPY VARCHAR2,
272: p_row_locked OUT NOCOPY VARCHAR2,
273: p_distribution_id IN NUMBER,
274: p_position_id IN NUMBER,
275: p_data_extract_id IN NUMBER,
276: p_worksheet_id IN NUMBER := FND_API.G_MISS_NUM,
277: p_effective_start_date IN DATE,
278: p_effective_end_date IN DATE,
279: p_chart_of_accounts_id IN NUMBER,
280: p_code_combination_id IN NUMBER,
280: p_code_combination_id IN NUMBER,
281: p_distribution_percent IN NUMBER,
282: p_global_default_flag IN VARCHAR2,
283: p_distribution_default_rule_id IN NUMBER,
284: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
285: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
286: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
287: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
288: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
281: p_distribution_percent IN NUMBER,
282: p_global_default_flag IN VARCHAR2,
283: p_distribution_default_rule_id IN NUMBER,
284: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
285: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
286: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
287: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
288: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
289: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR
282: p_global_default_flag IN VARCHAR2,
283: p_distribution_default_rule_id IN NUMBER,
284: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
285: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
286: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
287: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
288: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
289: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR
290:
283: p_distribution_default_rule_id IN NUMBER,
284: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
285: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
286: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
287: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
288: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
289: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR
290:
291: ) is
284: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
285: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
286: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
287: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
288: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
289: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR
290:
291: ) is
292: cursor c1 is select
285: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
286: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
287: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
288: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
289: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR
290:
291: ) is
292: cursor c1 is select
293: distribution_id,
319: BEGIN
320: --
321: SAVEPOINT Lock_Row ;
322: --
323: if FND_API.to_Boolean (p_init_msg_list) then
324: FND_MSG_PUB.initialize;
325: end if;
326: --
327: p_row_locked := FND_API.G_TRUE ;
323: if FND_API.to_Boolean (p_init_msg_list) then
324: FND_MSG_PUB.initialize;
325: end if;
326: --
327: p_row_locked := FND_API.G_TRUE ;
328: --
329: open c1;
330: fetch c1 into tlinfo;
331: if (c1%notfound) then
331: if (c1%notfound) then
332: fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
333: fnd_msg_pub.add ;
334: close c1;
335: raise fnd_api.g_exc_error ;
336: end if;
337: close c1;
338: --
339: if ( (tlinfo.position_id = p_position_id)
365:
366: AND ((tlinfo.project_id = p_project_id)
367: OR ((tlinfo.project_id is null)
368: AND (p_project_id is null))
369: OR ( (p_project_id = FND_API.G_MISS_NUM )))
370:
371: AND ((tlinfo.task_id = p_task_id)
372: OR ((tlinfo.task_id is null)
373: AND (p_task_id is null))
370:
371: AND ((tlinfo.task_id = p_task_id)
372: OR ((tlinfo.task_id is null)
373: AND (p_task_id is null))
374: OR ( (p_task_id = FND_API.G_MISS_NUM )))
375:
376: AND ((tlinfo.award_id = p_award_id)
377: OR ((tlinfo.award_id is null)
378: AND (p_award_id is null))
375:
376: AND ((tlinfo.award_id = p_award_id)
377: OR ((tlinfo.award_id is null)
378: AND (p_award_id is null))
379: OR ( (p_award_id = FND_API.G_MISS_NUM)))
380:
381: AND ((tlinfo.expenditure_type = p_expenditure_type)
382: OR ((tlinfo.expenditure_type is null)
383: AND (p_expenditure_type is null))
380:
381: AND ((tlinfo.expenditure_type = p_expenditure_type)
382: OR ((tlinfo.expenditure_type is null)
383: AND (p_expenditure_type is null))
384: OR ((p_expenditure_type = FND_API.G_MISS_CHAR)))
385:
386: AND ((tlinfo.expenditure_organization_id = p_expenditure_organization_id)
387: OR ((tlinfo.expenditure_organization_id is null)
388: AND (p_expenditure_organization_id is null))
385:
386: AND ((tlinfo.expenditure_organization_id = p_expenditure_organization_id)
387: OR ((tlinfo.expenditure_organization_id is null)
388: AND (p_expenditure_organization_id is null))
389: OR ((p_expenditure_organization_id = FND_API.G_MISS_NUM)))
390:
391: AND ((tlinfo.description = p_description)
392: OR ((tlinfo.description is null)
393: AND (p_description is null))
390:
391: AND ((tlinfo.description = p_description)
392: OR ((tlinfo.description is null)
393: AND (p_description is null))
394: OR ( (p_description = FND_API.G_MISS_CHAR)))
395:
396:
397: ) then
398: null;
398: null;
399: else
400: fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
401: fnd_msg_pub.add ;
402: raise fnd_api.g_exc_error ;
403: end if;
404:
405: p_return_status := FND_API.G_RET_STS_SUCCESS ;
406:
401: fnd_msg_pub.add ;
402: raise fnd_api.g_exc_error ;
403: end if;
404:
405: p_return_status := FND_API.G_RET_STS_SUCCESS ;
406:
407: EXCEPTION
408: when app_exception.record_lock_exception then
409: --
407: EXCEPTION
408: when app_exception.record_lock_exception then
409: --
410: rollback to LOCK_ROW ;
411: p_row_locked := FND_API.G_FALSE ;
412: p_return_status := FND_API.G_RET_STS_ERROR;
413: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
414: p_data => p_msg_data);
415: --
408: when app_exception.record_lock_exception then
409: --
410: rollback to LOCK_ROW ;
411: p_row_locked := FND_API.G_FALSE ;
412: p_return_status := FND_API.G_RET_STS_ERROR;
413: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
414: p_data => p_msg_data);
415: --
416: when FND_API.G_EXC_ERROR then
412: p_return_status := FND_API.G_RET_STS_ERROR;
413: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
414: p_data => p_msg_data);
415: --
416: when FND_API.G_EXC_ERROR then
417: --
418: rollback to LOCK_ROW ;
419: p_return_status := FND_API.G_RET_STS_ERROR;
420: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
415: --
416: when FND_API.G_EXC_ERROR then
417: --
418: rollback to LOCK_ROW ;
419: p_return_status := FND_API.G_RET_STS_ERROR;
420: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
421: p_data => p_msg_data);
422: --
423: when FND_API.G_EXC_UNEXPECTED_ERROR then
419: p_return_status := FND_API.G_RET_STS_ERROR;
420: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
421: p_data => p_msg_data);
422: --
423: when FND_API.G_EXC_UNEXPECTED_ERROR then
424: --
425: rollback to LOCK_ROW ;
426: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
427: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
422: --
423: when FND_API.G_EXC_UNEXPECTED_ERROR then
424: --
425: rollback to LOCK_ROW ;
426: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
427: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
428: p_data => p_msg_data);
429: --
430: when OTHERS then
429: --
430: when OTHERS then
431: --
432: rollback to LOCK_ROW ;
433: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
434: if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
435: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
436: l_api_name);
437: END if;
442:
443: --
444: PROCEDURE UPDATE_ROW (
445: p_api_version IN NUMBER,
446: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
447: p_commit IN VARCHAR2 := fnd_api.g_false,
448: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
449: p_return_status OUT NOCOPY VARCHAR2,
450: p_msg_count OUT NOCOPY NUMBER,
443: --
444: PROCEDURE UPDATE_ROW (
445: p_api_version IN NUMBER,
446: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
447: p_commit IN VARCHAR2 := fnd_api.g_false,
448: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
449: p_return_status OUT NOCOPY VARCHAR2,
450: p_msg_count OUT NOCOPY NUMBER,
451: p_msg_data OUT NOCOPY VARCHAR2,
444: PROCEDURE UPDATE_ROW (
445: p_api_version IN NUMBER,
446: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
447: p_commit IN VARCHAR2 := fnd_api.g_false,
448: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
449: p_return_status OUT NOCOPY VARCHAR2,
450: p_msg_count OUT NOCOPY NUMBER,
451: p_msg_data OUT NOCOPY VARCHAR2,
452: p_distribution_id IN NUMBER,
450: p_msg_count OUT NOCOPY NUMBER,
451: p_msg_data OUT NOCOPY VARCHAR2,
452: p_distribution_id IN NUMBER,
453: p_code_combination_id IN NUMBER,
454: p_effective_start_date IN DATE := FND_API.G_MISS_DATE,
455: p_effective_end_date IN DATE := FND_API.G_MISS_DATE,
456: p_distribution_percent IN NUMBER,
457: p_global_default_flag IN VARCHAR2,
458: p_distribution_default_rule_id IN NUMBER,
451: p_msg_data OUT NOCOPY VARCHAR2,
452: p_distribution_id IN NUMBER,
453: p_code_combination_id IN NUMBER,
454: p_effective_start_date IN DATE := FND_API.G_MISS_DATE,
455: p_effective_end_date IN DATE := FND_API.G_MISS_DATE,
456: p_distribution_percent IN NUMBER,
457: p_global_default_flag IN VARCHAR2,
458: p_distribution_default_rule_id IN NUMBER,
459: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
455: p_effective_end_date IN DATE := FND_API.G_MISS_DATE,
456: p_distribution_percent IN NUMBER,
457: p_global_default_flag IN VARCHAR2,
458: p_distribution_default_rule_id IN NUMBER,
459: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
460: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
461: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
462: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
463: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
456: p_distribution_percent IN NUMBER,
457: p_global_default_flag IN VARCHAR2,
458: p_distribution_default_rule_id IN NUMBER,
459: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
460: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
461: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
462: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
463: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
464: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
457: p_global_default_flag IN VARCHAR2,
458: p_distribution_default_rule_id IN NUMBER,
459: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
460: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
461: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
462: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
463: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
464: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
465: p_mode in varchar2 := 'R'
458: p_distribution_default_rule_id IN NUMBER,
459: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
460: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
461: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
462: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
463: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
464: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
465: p_mode in varchar2 := 'R'
466:
459: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
460: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
461: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
462: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
463: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
464: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
465: p_mode in varchar2 := 'R'
466:
467: ) is
460: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
461: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
462: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
463: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
464: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
465: p_mode in varchar2 := 'R'
466:
467: ) is
468: P_LAST_UPDATE_DATE DATE;
476: BEGIN
477: --
478: SAVEPOINT Update_Row ;
479: --
480: if FND_API.to_Boolean (p_init_msg_list) then
481: FND_MSG_PUB.initialize;
482: end if;
483:
484: --
497: end if;
498: else
499: FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
500: FND_MSG_PUB.Add ;
501: raise FND_API.G_EXC_ERROR ;
502: end if;
503:
504: -- do the update of the record
505: --
504: -- do the update of the record
505: --
506: update PSB_POSITION_PAY_DISTRIBUTIONS set
507: code_combination_id = p_code_combination_id,
508: effective_start_date = decode(p_effective_start_date, FND_API.G_MISS_DATE, effective_start_date, p_effective_start_date),
509: effective_end_date = decode(p_effective_end_date, FND_API.G_MISS_DATE, effective_end_date, p_effective_end_date),
510: distribution_percent = p_distribution_percent,
511: global_default_flag = p_global_default_flag,
512: distribution_default_rule_id = p_distribution_default_rule_id,
505: --
506: update PSB_POSITION_PAY_DISTRIBUTIONS set
507: code_combination_id = p_code_combination_id,
508: effective_start_date = decode(p_effective_start_date, FND_API.G_MISS_DATE, effective_start_date, p_effective_start_date),
509: effective_end_date = decode(p_effective_end_date, FND_API.G_MISS_DATE, effective_end_date, p_effective_end_date),
510: distribution_percent = p_distribution_percent,
511: global_default_flag = p_global_default_flag,
512: distribution_default_rule_id = p_distribution_default_rule_id,
513: project_id = decode(p_project_id,FND_API.G_MISS_NUM,
509: effective_end_date = decode(p_effective_end_date, FND_API.G_MISS_DATE, effective_end_date, p_effective_end_date),
510: distribution_percent = p_distribution_percent,
511: global_default_flag = p_global_default_flag,
512: distribution_default_rule_id = p_distribution_default_rule_id,
513: project_id = decode(p_project_id,FND_API.G_MISS_NUM,
514: project_id, p_project_id),
515: task_id = decode(p_task_id,FND_API.G_MISS_NUM,
516: task_id, p_task_id),
517: award_id = decode(p_award_id,FND_API.G_MISS_NUM,
511: global_default_flag = p_global_default_flag,
512: distribution_default_rule_id = p_distribution_default_rule_id,
513: project_id = decode(p_project_id,FND_API.G_MISS_NUM,
514: project_id, p_project_id),
515: task_id = decode(p_task_id,FND_API.G_MISS_NUM,
516: task_id, p_task_id),
517: award_id = decode(p_award_id,FND_API.G_MISS_NUM,
518: award_id, p_award_id),
519: expenditure_type = decode(p_expenditure_type,
513: project_id = decode(p_project_id,FND_API.G_MISS_NUM,
514: project_id, p_project_id),
515: task_id = decode(p_task_id,FND_API.G_MISS_NUM,
516: task_id, p_task_id),
517: award_id = decode(p_award_id,FND_API.G_MISS_NUM,
518: award_id, p_award_id),
519: expenditure_type = decode(p_expenditure_type,
520: FND_API.G_MISS_CHAR, expenditure_type,
521: p_expenditure_type),
516: task_id, p_task_id),
517: award_id = decode(p_award_id,FND_API.G_MISS_NUM,
518: award_id, p_award_id),
519: expenditure_type = decode(p_expenditure_type,
520: FND_API.G_MISS_CHAR, expenditure_type,
521: p_expenditure_type),
522: expenditure_organization_id = decode(p_expenditure_organization_id,
523: FND_API.G_MISS_NUM, expenditure_organization_id,
524: p_expenditure_organization_id),
519: expenditure_type = decode(p_expenditure_type,
520: FND_API.G_MISS_CHAR, expenditure_type,
521: p_expenditure_type),
522: expenditure_organization_id = decode(p_expenditure_organization_id,
523: FND_API.G_MISS_NUM, expenditure_organization_id,
524: p_expenditure_organization_id),
525: description = decode(p_description,
526: FND_API.G_MISS_CHAR, description,
527: p_description),
522: expenditure_organization_id = decode(p_expenditure_organization_id,
523: FND_API.G_MISS_NUM, expenditure_organization_id,
524: p_expenditure_organization_id),
525: description = decode(p_description,
526: FND_API.G_MISS_CHAR, description,
527: p_description),
528: last_update_date = p_last_update_date,
529: last_updated_by = p_last_updated_by,
530: last_update_login = p_last_update_login
531: where distribution_id = p_distribution_id;
532:
533: if (sql%notfound) then
534: -- raise no_data_found;
535: raise FND_API.G_EXC_ERROR ;
536: end if;
537:
538:
539: -- Initialize API return status to success
537:
538:
539: -- Initialize API return status to success
540:
541: p_return_status := FND_API.G_RET_STS_SUCCESS ;
542:
543: --
544: --
545: -- Standard check of p_commit.
543: --
544: --
545: -- Standard check of p_commit.
546:
547: if FND_API.to_Boolean (p_commit) then
548: commit work;
549: end if;
550:
551: -- Standard call to get message count and if count is 1, get message info.
554: p_data => p_msg_data);
555: --
556: EXCEPTION
557:
558: when FND_API.G_EXC_ERROR then
559: --
560: rollback to Update_Row ;
561: p_return_status := FND_API.G_RET_STS_ERROR;
562: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
557:
558: when FND_API.G_EXC_ERROR then
559: --
560: rollback to Update_Row ;
561: p_return_status := FND_API.G_RET_STS_ERROR;
562: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
563: p_data => p_msg_data);
564: --
565: when FND_API.G_EXC_UNEXPECTED_ERROR then
561: p_return_status := FND_API.G_RET_STS_ERROR;
562: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
563: p_data => p_msg_data);
564: --
565: when FND_API.G_EXC_UNEXPECTED_ERROR then
566: --
567: rollback to Update_Row ;
568: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
569: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
564: --
565: when FND_API.G_EXC_UNEXPECTED_ERROR then
566: --
567: rollback to Update_Row ;
568: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
569: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
570: p_data => p_msg_data);
571: --
572: when OTHERS then
571: --
572: when OTHERS then
573: --
574: rollback to Update_Row ;
575: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
576: if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
577: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
578: l_api_name);
579: end if;
584: END UPDATE_ROW;
585: --
586: PROCEDURE ADD_ROW (
587: p_api_version IN NUMBER,
588: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
589: p_commit IN VARCHAR2 := fnd_api.g_false,
590: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
591: p_return_status OUT NOCOPY VARCHAR2,
592: p_msg_count OUT NOCOPY NUMBER,
585: --
586: PROCEDURE ADD_ROW (
587: p_api_version IN NUMBER,
588: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
589: p_commit IN VARCHAR2 := fnd_api.g_false,
590: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
591: p_return_status OUT NOCOPY VARCHAR2,
592: p_msg_count OUT NOCOPY NUMBER,
593: p_msg_data OUT NOCOPY VARCHAR2,
586: PROCEDURE ADD_ROW (
587: p_api_version IN NUMBER,
588: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
589: p_commit IN VARCHAR2 := fnd_api.g_false,
590: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
591: p_return_status OUT NOCOPY VARCHAR2,
592: p_msg_count OUT NOCOPY NUMBER,
593: p_msg_data OUT NOCOPY VARCHAR2,
594: p_rowid IN OUT NOCOPY VARCHAR2,
602: p_code_combination_id IN NUMBER,
603: p_distribution_percent IN NUMBER,
604: p_global_default_flag IN VARCHAR2,
605: p_distribution_default_rule_id IN NUMBER,
606: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
607: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
608: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
609: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
610: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
603: p_distribution_percent IN NUMBER,
604: p_global_default_flag IN VARCHAR2,
605: p_distribution_default_rule_id IN NUMBER,
606: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
607: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
608: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
609: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
610: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
611: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
604: p_global_default_flag IN VARCHAR2,
605: p_distribution_default_rule_id IN NUMBER,
606: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
607: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
608: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
609: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
610: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
611: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
612: p_mode in varchar2 := 'R'
605: p_distribution_default_rule_id IN NUMBER,
606: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
607: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
608: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
609: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
610: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
611: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
612: p_mode in varchar2 := 'R'
613:
606: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
607: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
608: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
609: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
610: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
611: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
612: p_mode in varchar2 := 'R'
613:
614:
607: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
608: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
609: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
610: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
611: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
612: p_mode in varchar2 := 'R'
613:
614:
615: ) is
626: SAVEPOINT Add_Row ;
627: --
628: -- Initialize message list if p_init_msg_list is set to TRUE.
629: --
630: if FND_API.to_Boolean (p_init_msg_list) then
631: FND_MSG_PUB.initialize;
632: end if;
633: --
634: p_return_status := FND_API.G_RET_STS_SUCCESS ;
630: if FND_API.to_Boolean (p_init_msg_list) then
631: FND_MSG_PUB.initialize;
632: end if;
633: --
634: p_return_status := FND_API.G_RET_STS_SUCCESS ;
635: --
636: open c1;
637: fetch c1 into dummy;
638: if (c1%notfound) then
665: p_description => p_description,
666: p_mode => p_mode
667: );
668: --
669: if FND_API.to_Boolean (p_commit) then
670: commit work;
671: end if;
672: -- Standard call to get message count and if count is 1, get message info.
673: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
700: p_mode => p_mode
701: );
702: -- Standard check of p_commit.
703:
704: if FND_API.to_Boolean (p_commit) then
705: commit work;
706: end if;
707:
708: -- Standard call to get message count and if count is 1, get message info.
713: END ADD_ROW;
714: --
715: PROCEDURE DELETE_ROW (
716: p_api_version in number,
717: p_init_msg_list in varchar2 := fnd_api.g_false,
718: p_commit in varchar2 := fnd_api.g_false,
719: p_validation_level in number := fnd_api.g_valid_level_full,
720: p_return_status OUT NOCOPY varchar2,
721: p_msg_count OUT NOCOPY number,
714: --
715: PROCEDURE DELETE_ROW (
716: p_api_version in number,
717: p_init_msg_list in varchar2 := fnd_api.g_false,
718: p_commit in varchar2 := fnd_api.g_false,
719: p_validation_level in number := fnd_api.g_valid_level_full,
720: p_return_status OUT NOCOPY varchar2,
721: p_msg_count OUT NOCOPY number,
722: p_msg_data OUT NOCOPY varchar2,
715: PROCEDURE DELETE_ROW (
716: p_api_version in number,
717: p_init_msg_list in varchar2 := fnd_api.g_false,
718: p_commit in varchar2 := fnd_api.g_false,
719: p_validation_level in number := fnd_api.g_valid_level_full,
720: p_return_status OUT NOCOPY varchar2,
721: p_msg_count OUT NOCOPY number,
722: p_msg_data OUT NOCOPY varchar2,
723: p_distribution_id in number
733: SAVEPOINT Delete_Row ;
734: --
735: -- Initialize message list if p_init_msg_list is set to TRUE.
736: --
737: if FND_API.to_Boolean (p_init_msg_list) then
738: FND_MSG_PUB.initialize;
739: end if;
740: --
741: p_return_status := FND_API.G_RET_STS_SUCCESS ;
737: if FND_API.to_Boolean (p_init_msg_list) then
738: FND_MSG_PUB.initialize;
739: end if;
740: --
741: p_return_status := FND_API.G_RET_STS_SUCCESS ;
742:
743: --
744: delete from PSB_POSITION_PAY_DISTRIBUTIONS
745: where distribution_id = p_distribution_id;
748: end if;
749:
750: -- Standard check of p_commit.
751: --
752: if FND_API.to_Boolean (p_commit) then
753: commit work;
754: end if;
755:
756: -- Standard call to get message count and if count is 1, get message info.
758: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
759: p_data => p_msg_data);
760: --
761: EXCEPTION
762: when FND_API.G_EXC_ERROR then
763: --
764: rollback to Delete_Row;
765: p_return_status := FND_API.G_RET_STS_ERROR;
766: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
761: EXCEPTION
762: when FND_API.G_EXC_ERROR then
763: --
764: rollback to Delete_Row;
765: p_return_status := FND_API.G_RET_STS_ERROR;
766: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
767: p_data => p_msg_data);
768: --
769: when FND_API.G_EXC_UNEXPECTED_ERROR then
765: p_return_status := FND_API.G_RET_STS_ERROR;
766: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
767: p_data => p_msg_data);
768: --
769: when FND_API.G_EXC_UNEXPECTED_ERROR then
770: --
771: rollback to Delete_Row;
772: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
773: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
768: --
769: when FND_API.G_EXC_UNEXPECTED_ERROR then
770: --
771: rollback to Delete_Row;
772: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
773: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
774: p_data => p_msg_data);
775: --
776: when OTHERS then
775: --
776: when OTHERS then
777: --
778: rollback to Delete_Row ;
779: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
780: if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
781: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
782: l_api_name);
783: end if;
789: /* ----------------------------------------------------------------------- */
790:
791: PROCEDURE Delete_Distributions
792: ( p_api_version IN NUMBER,
793: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
794: p_commit IN VARCHAR2 := FND_API.G_FALSE,
795: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
796: p_return_status OUT NOCOPY VARCHAR2,
797: p_msg_count OUT NOCOPY NUMBER,
790:
791: PROCEDURE Delete_Distributions
792: ( p_api_version IN NUMBER,
793: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
794: p_commit IN VARCHAR2 := FND_API.G_FALSE,
795: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
796: p_return_status OUT NOCOPY VARCHAR2,
797: p_msg_count OUT NOCOPY NUMBER,
798: p_msg_data OUT NOCOPY VARCHAR2,
791: PROCEDURE Delete_Distributions
792: ( p_api_version IN NUMBER,
793: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
794: p_commit IN VARCHAR2 := FND_API.G_FALSE,
795: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
796: p_return_status OUT NOCOPY VARCHAR2,
797: p_msg_count OUT NOCOPY NUMBER,
798: p_msg_data OUT NOCOPY VARCHAR2,
799: p_data_extract_id IN NUMBER
810:
811:
812: -- Standard call to check for call compatibility
813:
814: if not FND_API.Compatible_API_Call (l_api_version,
815: p_api_version,
816: l_api_name,
817: G_PKG_NAME)
818: then
815: p_api_version,
816: l_api_name,
817: G_PKG_NAME)
818: then
819: raise FND_API.G_EXC_UNEXPECTED_ERROR;
820: end if;
821:
822:
823: -- Initialize message list if p_init_msg_list is set to TRUE
821:
822:
823: -- Initialize message list if p_init_msg_list is set to TRUE
824:
825: if FND_API.to_Boolean (p_init_msg_list) then
826: FND_MSG_PUB.initialize;
827: end if;
828:
829: delete from PSB_POSITION_PAY_DISTRIBUTIONS
831:
832:
833: -- Standard check of p_commit
834:
835: if FND_API.to_Boolean (p_commit) then
836: commit work;
837: end if;
838:
839:
838:
839:
840: -- Initialize API return status to success
841:
842: p_return_status := FND_API.G_RET_STS_SUCCESS;
843:
844:
845: -- Standard call to get message count and if count is 1, get message info
846:
848: p_data => p_msg_data);
849:
850: EXCEPTION
851:
852: when FND_API.G_EXC_ERROR then
853: rollback to Delete_Distributions_Pvt;
854: p_return_status := FND_API.G_RET_STS_ERROR;
855:
856: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
850: EXCEPTION
851:
852: when FND_API.G_EXC_ERROR then
853: rollback to Delete_Distributions_Pvt;
854: p_return_status := FND_API.G_RET_STS_ERROR;
855:
856: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
857: p_data => p_msg_data);
858:
856: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
857: p_data => p_msg_data);
858:
859:
860: when FND_API.G_EXC_UNEXPECTED_ERROR then
861: rollback to Delete_Distributions_Pvt;
862: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
863:
864: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
858:
859:
860: when FND_API.G_EXC_UNEXPECTED_ERROR then
861: rollback to Delete_Distributions_Pvt;
862: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
863:
864: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
865: p_data => p_msg_data);
866:
866:
867:
868: when OTHERS then
869: rollback to Delete_Distributions_Pvt;
870: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
871:
872: if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
873:
874: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
883: /* ----------------------------------------------------------------------- */
884:
885: PROCEDURE Delete_Distributions_Position
886: ( p_api_version IN NUMBER,
887: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
888: p_commit IN VARCHAR2 := FND_API.G_FALSE,
889: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
890: p_return_status OUT NOCOPY VARCHAR2,
891: p_msg_count OUT NOCOPY NUMBER,
884:
885: PROCEDURE Delete_Distributions_Position
886: ( p_api_version IN NUMBER,
887: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
888: p_commit IN VARCHAR2 := FND_API.G_FALSE,
889: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
890: p_return_status OUT NOCOPY VARCHAR2,
891: p_msg_count OUT NOCOPY NUMBER,
892: p_msg_data OUT NOCOPY VARCHAR2,
885: PROCEDURE Delete_Distributions_Position
886: ( p_api_version IN NUMBER,
887: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
888: p_commit IN VARCHAR2 := FND_API.G_FALSE,
889: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
890: p_return_status OUT NOCOPY VARCHAR2,
891: p_msg_count OUT NOCOPY NUMBER,
892: p_msg_data OUT NOCOPY VARCHAR2,
893: p_position_id IN NUMBER,
905:
906:
907: -- Standard call to check for call compatibility
908:
909: if not FND_API.Compatible_API_Call (l_api_version,
910: p_api_version,
911: l_api_name,
912: G_PKG_NAME)
913: then
910: p_api_version,
911: l_api_name,
912: G_PKG_NAME)
913: then
914: raise FND_API.G_EXC_UNEXPECTED_ERROR;
915: end if;
916:
917:
918: -- Initialize message list if p_init_msg_list is set to TRUE
916:
917:
918: -- Initialize message list if p_init_msg_list is set to TRUE
919:
920: if FND_API.to_Boolean (p_init_msg_list) then
921: FND_MSG_PUB.initialize;
922: end if;
923:
924: DELETE from PSB_POSITION_PAY_DISTRIBUTIONS
930:
931:
932: -- Standard check of p_commit
933:
934: if FND_API.to_Boolean (p_commit) then
935: commit work;
936: end if;
937:
938:
937:
938:
939: -- Initialize API return status to success
940:
941: p_return_status := FND_API.G_RET_STS_SUCCESS;
942:
943:
944: -- Standard call to get message count and if count is 1, get message info
945:
947: p_data => p_msg_data);
948:
949: EXCEPTION
950:
951: when FND_API.G_EXC_ERROR then
952: rollback to Delete_Dist_Position_Pvt;
953: p_return_status := FND_API.G_RET_STS_ERROR;
954:
955: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
949: EXCEPTION
950:
951: when FND_API.G_EXC_ERROR then
952: rollback to Delete_Dist_Position_Pvt;
953: p_return_status := FND_API.G_RET_STS_ERROR;
954:
955: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
956: p_data => p_msg_data);
957:
955: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
956: p_data => p_msg_data);
957:
958:
959: when FND_API.G_EXC_UNEXPECTED_ERROR then
960: rollback to Delete_Dist_Position_Pvt;
961: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
962:
963: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
957:
958:
959: when FND_API.G_EXC_UNEXPECTED_ERROR then
960: rollback to Delete_Dist_Position_Pvt;
961: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
962:
963: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
964: p_data => p_msg_data);
965:
965:
966:
967: when OTHERS then
968: rollback to Delete_Dist_Position_Pvt;
969: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
970:
971: if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
972:
973: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
982: /* ----------------------------------------------------------------------- */
983:
984: PROCEDURE Modify_Distribution_WS
985: ( p_api_version IN NUMBER,
986: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
987: p_commit IN VARCHAR2 := FND_API.G_FALSE,
988: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
989: p_return_status OUT NOCOPY VARCHAR2,
990: p_msg_count OUT NOCOPY NUMBER,
983:
984: PROCEDURE Modify_Distribution_WS
985: ( p_api_version IN NUMBER,
986: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
987: p_commit IN VARCHAR2 := FND_API.G_FALSE,
988: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
989: p_return_status OUT NOCOPY VARCHAR2,
990: p_msg_count OUT NOCOPY NUMBER,
991: p_msg_data OUT NOCOPY VARCHAR2,
984: PROCEDURE Modify_Distribution_WS
985: ( p_api_version IN NUMBER,
986: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
987: p_commit IN VARCHAR2 := FND_API.G_FALSE,
988: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
989: p_return_status OUT NOCOPY VARCHAR2,
990: p_msg_count OUT NOCOPY NUMBER,
991: p_msg_data OUT NOCOPY VARCHAR2,
992: p_distribution_id IN OUT NOCOPY NUMBER,
989: p_return_status OUT NOCOPY VARCHAR2,
990: p_msg_count OUT NOCOPY NUMBER,
991: p_msg_data OUT NOCOPY VARCHAR2,
992: p_distribution_id IN OUT NOCOPY NUMBER,
993: p_worksheet_id IN NUMBER := FND_API.G_MISS_NUM,
994: p_position_id IN NUMBER,
995: p_data_extract_id IN NUMBER,
996: p_effective_start_date IN DATE,
997: p_effective_end_date IN DATE,
1001: p_distribution_percent IN NUMBER,
1002: p_global_default_flag IN VARCHAR2,
1003: p_distribution_default_rule_id IN NUMBER,
1004: p_rowid IN OUT NOCOPY VARCHAR2,
1005: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
1006: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
1007: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
1008: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
1009: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
1002: p_global_default_flag IN VARCHAR2,
1003: p_distribution_default_rule_id IN NUMBER,
1004: p_rowid IN OUT NOCOPY VARCHAR2,
1005: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
1006: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
1007: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
1008: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
1009: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
1010: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
1003: p_distribution_default_rule_id IN NUMBER,
1004: p_rowid IN OUT NOCOPY VARCHAR2,
1005: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
1006: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
1007: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
1008: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
1009: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
1010: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
1011: p_budget_revision_pos_line_id IN NUMBER:= FND_API.G_MISS_NUM,
1004: p_rowid IN OUT NOCOPY VARCHAR2,
1005: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
1006: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
1007: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
1008: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
1009: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
1010: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
1011: p_budget_revision_pos_line_id IN NUMBER:= FND_API.G_MISS_NUM,
1012: p_mode IN VARCHAR2 := 'R',
1005: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
1006: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
1007: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
1008: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
1009: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
1010: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
1011: p_budget_revision_pos_line_id IN NUMBER:= FND_API.G_MISS_NUM,
1012: p_mode IN VARCHAR2 := 'R',
1013: p_ruleset_id IN NUMBER -- 1308558
1006: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
1007: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
1008: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
1009: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
1010: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
1011: p_budget_revision_pos_line_id IN NUMBER:= FND_API.G_MISS_NUM,
1012: p_mode IN VARCHAR2 := 'R',
1013: p_ruleset_id IN NUMBER -- 1308558
1014: ) IS
1007: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
1008: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
1009: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
1010: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
1011: p_budget_revision_pos_line_id IN NUMBER:= FND_API.G_MISS_NUM,
1012: p_mode IN VARCHAR2 := 'R',
1013: p_ruleset_id IN NUMBER -- 1308558
1014: ) IS
1015:
1023: l_set_of_books_id NUMBER;
1024: l_flex_code NUMBER;
1025:
1026: l_concat_segments VARCHAR2(2000);
1027: l_ccid_valid VARCHAR2(1) := FND_API.G_FALSE;
1028:
1029: l_msg_count NUMBER;
1030: l_msg_data VARCHAR2(2000);
1031:
1084:
1085:
1086: -- Standard call to check for call compatibility
1087:
1088: if not FND_API.Compatible_API_Call (l_api_version,
1089: p_api_version,
1090: l_api_name,
1091: G_PKG_NAME)
1092: then
1089: p_api_version,
1090: l_api_name,
1091: G_PKG_NAME)
1092: then
1093: raise FND_API.G_EXC_UNEXPECTED_ERROR;
1094: end if;
1095:
1096:
1097: -- Initialize message list if p_init_msg_list is set to TRUE
1095:
1096:
1097: -- Initialize message list if p_init_msg_list is set to TRUE
1098:
1099: if FND_API.to_Boolean (p_init_msg_list) then
1100: FND_MSG_PUB.initialize;
1101: end if;
1102:
1103: if nvl(p_worksheet_id, FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM then
1099: if FND_API.to_Boolean (p_init_msg_list) then
1100: FND_MSG_PUB.initialize;
1101: end if;
1102:
1103: if nvl(p_worksheet_id, FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM then
1104: l_ccid_valid := FND_API.G_TRUE;
1105: else
1106:
1107:
1100: FND_MSG_PUB.initialize;
1101: end if;
1102:
1103: if nvl(p_worksheet_id, FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM then
1104: l_ccid_valid := FND_API.G_TRUE;
1105: else
1106:
1107:
1108: if p_budget_revision_pos_line_id <> FND_API.G_MISS_NUM then
1104: l_ccid_valid := FND_API.G_TRUE;
1105: else
1106:
1107:
1108: if p_budget_revision_pos_line_id <> FND_API.G_MISS_NUM then
1109: -- budget revision
1110:
1111: begin
1112:
1163: p_msg_data => l_msg_data,
1164: p_parent_budget_group_id => l_rev_budget_group_id,
1165: p_startdate_pp => l_rv_start_date,
1166: p_enddate_cy => l_rv_end_date,
1167: p_create_budget_account => FND_API.G_TRUE,
1168: p_set_of_books_id => l_set_of_books_id,
1169: p_flex_code => l_flex_code,
1170: p_in_ccid => p_code_combination_id,
1171: p_out_ccid => l_out_ccid,
1170: p_in_ccid => p_code_combination_id,
1171: p_out_ccid => l_out_ccid,
1172: p_budget_group_id => l_out_budget_group_id );
1173:
1174: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1175:
1176: l_concat_segments := FND_FLEX_EXT.Get_Segs
1177: (application_short_name => 'SQLGL',
1178: key_flex_code => 'GL#',
1182: message_token('CCID', l_concat_segments);
1183: message_token('BUDGET_GROUP', l_name);
1184: add_message('PSB', 'PSB_CCID_NOTIN_BUDGET_GROUP');
1185:
1186: l_ccid_valid := FND_API.G_FALSE;
1187:
1188: else
1189: l_ccid_valid := FND_API.G_TRUE;
1190: end if;
1185:
1186: l_ccid_valid := FND_API.G_FALSE;
1187:
1188: else
1189: l_ccid_valid := FND_API.G_TRUE;
1190: end if;
1191:
1192: end; -- of rev
1193:
1206: l_set_of_books_id := c_BG_Rec.set_of_books_id;
1207: l_flex_code := c_BG_Rec.flex_code;
1208: end loop;
1209:
1210: if l_budget_calendar_id <> nvl(PSB_WS_ACCT1.g_budget_calendar_id, FND_API.G_MISS_NUM) then
1211: begin
1212:
1213: PSB_WS_ACCT1.Cache_Budget_Calendar
1214: (p_return_status => l_return_status,
1213: PSB_WS_ACCT1.Cache_Budget_Calendar
1214: (p_return_status => l_return_status,
1215: p_budget_calendar_id => l_budget_calendar_id);
1216:
1217: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1218: raise FND_API.G_EXC_ERROR;
1219: end if;
1220:
1221: end;
1214: (p_return_status => l_return_status,
1215: p_budget_calendar_id => l_budget_calendar_id);
1216:
1217: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1218: raise FND_API.G_EXC_ERROR;
1219: end if;
1220:
1221: end;
1222: end if;
1228: p_msg_data => l_msg_data,
1229: p_parent_budget_group_id => l_budget_group_id,
1230: p_startdate_pp => PSB_WS_ACCT1.g_startdate_pp,
1231: p_enddate_cy => PSB_WS_ACCT1.g_enddate_cy,
1232: p_create_budget_account => FND_API.G_TRUE,
1233: p_set_of_books_id => l_set_of_books_id,
1234: p_flex_code => l_flex_code,
1235: p_in_ccid => p_code_combination_id,
1236: p_out_ccid => l_out_ccid,
1235: p_in_ccid => p_code_combination_id,
1236: p_out_ccid => l_out_ccid,
1237: p_budget_group_id => l_out_budget_group_id);
1238:
1239: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1240: begin
1241:
1242: l_concat_segments := FND_FLEX_EXT.Get_Segs
1243: (application_short_name => 'SQLGL',
1248: message_token('CCID', l_concat_segments);
1249: message_token('BUDGET_GROUP', l_name);
1250: add_message('PSB', 'PSB_CCID_NOTIN_BUDGET_GROUP');
1251:
1252: l_ccid_valid := FND_API.G_FALSE;
1253:
1254: end;
1255: else
1256: l_ccid_valid := FND_API.G_TRUE;
1252: l_ccid_valid := FND_API.G_FALSE;
1253:
1254: end;
1255: else
1256: l_ccid_valid := FND_API.G_TRUE;
1257: end if;
1258:
1259: end;
1260: end if;
1259: end;
1260: end if;
1261: end if;
1262:
1263: if FND_API.to_Boolean(l_ccid_valid) then
1264: begin
1265:
1266: -- 1308558. Mass Position Assignment Rules
1267: IF p_ruleset_id IS NULL THEN
1317: p_description => p_description,
1318: p_rowid => p_rowid,
1319: p_mode => p_mode);
1320: END IF;
1321: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1322: raise FND_API.G_EXC_ERROR;
1323: end if;
1324:
1325: end;
1318: p_rowid => p_rowid,
1319: p_mode => p_mode);
1320: END IF;
1321: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1322: raise FND_API.G_EXC_ERROR;
1323: end if;
1324:
1325: end;
1326: -- Added for Bug: 3325171
1324:
1325: end;
1326: -- Added for Bug: 3325171
1327: else
1328: raise FND_API.G_EXC_ERROR;
1329: end if;
1330:
1331:
1332: -- Standard check of p_commit
1330:
1331:
1332: -- Standard check of p_commit
1333:
1334: if FND_API.to_Boolean (p_commit) then
1335: commit work;
1336: end if;
1337:
1338:
1337:
1338:
1339: -- Initialize API return status to success
1340:
1341: p_return_status := FND_API.G_RET_STS_SUCCESS;
1342:
1343:
1344: -- Standard call to get message count and if count is 1, get message info
1345:
1347: p_data => p_msg_data);
1348:
1349: EXCEPTION
1350:
1351: when FND_API.G_EXC_ERROR then
1352: rollback to Modify_Distribution_WS_Pvt;
1353: p_return_status := FND_API.G_RET_STS_ERROR;
1354:
1355: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
1349: EXCEPTION
1350:
1351: when FND_API.G_EXC_ERROR then
1352: rollback to Modify_Distribution_WS_Pvt;
1353: p_return_status := FND_API.G_RET_STS_ERROR;
1354:
1355: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
1356: p_data => p_msg_data);
1357:
1355: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
1356: p_data => p_msg_data);
1357:
1358:
1359: when FND_API.G_EXC_UNEXPECTED_ERROR then
1360: rollback to Modify_Distribution_WS_Pvt;
1361: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1362:
1363: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
1357:
1358:
1359: when FND_API.G_EXC_UNEXPECTED_ERROR then
1360: rollback to Modify_Distribution_WS_Pvt;
1361: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1362:
1363: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
1364: p_data => p_msg_data);
1365:
1365:
1366:
1367: when OTHERS then
1368: rollback to Modify_Distribution_WS_Pvt;
1369: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1370:
1371: if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
1372:
1373: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
1382: /* ----------------------------------------------------------------------- */
1383:
1384: PROCEDURE Modify_Distribution
1385: ( p_api_version IN NUMBER,
1386: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1387: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1388: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1389: p_return_status OUT NOCOPY VARCHAR2,
1390: p_msg_count OUT NOCOPY NUMBER,
1383:
1384: PROCEDURE Modify_Distribution
1385: ( p_api_version IN NUMBER,
1386: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1387: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1388: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1389: p_return_status OUT NOCOPY VARCHAR2,
1390: p_msg_count OUT NOCOPY NUMBER,
1391: p_msg_data OUT NOCOPY VARCHAR2,
1384: PROCEDURE Modify_Distribution
1385: ( p_api_version IN NUMBER,
1386: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1387: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1388: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1389: p_return_status OUT NOCOPY VARCHAR2,
1390: p_msg_count OUT NOCOPY NUMBER,
1391: p_msg_data OUT NOCOPY VARCHAR2,
1392: p_distribution_id IN OUT NOCOPY NUMBER,
1391: p_msg_data OUT NOCOPY VARCHAR2,
1392: p_distribution_id IN OUT NOCOPY NUMBER,
1393: p_position_id IN NUMBER,
1394: p_data_extract_id IN NUMBER,
1395: p_worksheet_id IN NUMBER := FND_API.G_MISS_NUM,
1396: p_effective_start_date IN DATE,
1397: p_effective_end_date IN DATE,
1398: p_chart_of_accounts_id IN NUMBER,
1399: p_code_combination_id IN NUMBER,
1400: p_distribution_percent IN NUMBER,
1401: p_global_default_flag IN VARCHAR2,
1402: p_distribution_default_rule_id IN NUMBER,
1403: p_rowid IN OUT NOCOPY VARCHAR2,
1404: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
1405: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
1406: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
1407: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
1408: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
1401: p_global_default_flag IN VARCHAR2,
1402: p_distribution_default_rule_id IN NUMBER,
1403: p_rowid IN OUT NOCOPY VARCHAR2,
1404: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
1405: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
1406: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
1407: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
1408: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
1409: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
1402: p_distribution_default_rule_id IN NUMBER,
1403: p_rowid IN OUT NOCOPY VARCHAR2,
1404: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
1405: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
1406: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
1407: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
1408: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
1409: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
1410: p_mode IN VARCHAR2 := 'R'
1403: p_rowid IN OUT NOCOPY VARCHAR2,
1404: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
1405: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
1406: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
1407: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
1408: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
1409: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
1410: p_mode IN VARCHAR2 := 'R'
1411: ) IS
1404: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
1405: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
1406: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
1407: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
1408: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
1409: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
1410: p_mode IN VARCHAR2 := 'R'
1411: ) IS
1412:
1405: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
1406: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
1407: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
1408: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
1409: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
1410: p_mode IN VARCHAR2 := 'R'
1411: ) IS
1412:
1413: l_api_name CONSTANT VARCHAR2(30) := 'Modify_Distribution';
1420: l_dist_index BINARY_INTEGER;
1421:
1422: l_distribution_id NUMBER;
1423:
1424: l_created_record VARCHAR2(1) := FND_API.G_FALSE;
1425: l_updated_record VARCHAR2(1);
1426:
1427: l_rowid VARCHAR2(100);
1428:
1426:
1427: l_rowid VARCHAR2(100);
1428:
1429: l_return_status VARCHAR2(1);
1430: l_dis_overlap VARCHAR2(1):= FND_API.G_FALSE;
1431:
1432: cursor c_Seq is
1433: select psb_position_pay_distr_s.nextval DistID
1434: from dual;
1474:
1475:
1476: -- Standard call to check for call compatibility
1477:
1478: if not FND_API.Compatible_API_Call (l_api_version,
1479: p_api_version,
1480: l_api_name,
1481: G_PKG_NAME)
1482: then
1479: p_api_version,
1480: l_api_name,
1481: G_PKG_NAME)
1482: then
1483: raise FND_API.G_EXC_UNEXPECTED_ERROR;
1484: end if;
1485:
1486: -- Initialize message list if p_init_msg_list is set to TRUE
1487:
1484: end if;
1485:
1486: -- Initialize message list if p_init_msg_list is set to TRUE
1487:
1488: if FND_API.to_Boolean (p_init_msg_list) then
1489: FND_MSG_PUB.initialize;
1490: end if;
1491:
1492: l_userid := FND_GLOBAL.USER_ID;
1495: update PSB_POSITION_PAY_DISTRIBUTIONS
1496: set distribution_percent = decode(p_distribution_percent, null, distribution_percent, p_distribution_percent),
1497: global_default_flag = decode(p_global_default_flag, null, global_default_flag, p_global_default_flag),
1498: distribution_default_rule_id = decode(p_distribution_default_rule_id, null, distribution_default_rule_id, p_distribution_default_rule_id),
1499: project_id = decode(p_project_id, null, project_id, FND_API.G_MISS_NUM, project_id, p_project_id),
1500: task_id = decode(p_task_id, null, project_id, FND_API.G_MISS_NUM, task_id, p_task_id),
1501: award_id = decode(p_award_id, null, award_id, FND_API.G_MISS_NUM, award_id, p_award_id),
1502: expenditure_type = decode(p_expenditure_type, null, expenditure_type, FND_API.G_MISS_CHAR, expenditure_type, p_expenditure_type),
1503: expenditure_organization_id = decode(p_expenditure_organization_id, null, expenditure_organization_id, FND_API.G_MISS_NUM, expenditure_organization_id, p_expenditure_organization_id),
1496: set distribution_percent = decode(p_distribution_percent, null, distribution_percent, p_distribution_percent),
1497: global_default_flag = decode(p_global_default_flag, null, global_default_flag, p_global_default_flag),
1498: distribution_default_rule_id = decode(p_distribution_default_rule_id, null, distribution_default_rule_id, p_distribution_default_rule_id),
1499: project_id = decode(p_project_id, null, project_id, FND_API.G_MISS_NUM, project_id, p_project_id),
1500: task_id = decode(p_task_id, null, project_id, FND_API.G_MISS_NUM, task_id, p_task_id),
1501: award_id = decode(p_award_id, null, award_id, FND_API.G_MISS_NUM, award_id, p_award_id),
1502: expenditure_type = decode(p_expenditure_type, null, expenditure_type, FND_API.G_MISS_CHAR, expenditure_type, p_expenditure_type),
1503: expenditure_organization_id = decode(p_expenditure_organization_id, null, expenditure_organization_id, FND_API.G_MISS_NUM, expenditure_organization_id, p_expenditure_organization_id),
1504: description = decode(p_description, null, description, FND_API.G_MISS_CHAR, description, p_description),
1497: global_default_flag = decode(p_global_default_flag, null, global_default_flag, p_global_default_flag),
1498: distribution_default_rule_id = decode(p_distribution_default_rule_id, null, distribution_default_rule_id, p_distribution_default_rule_id),
1499: project_id = decode(p_project_id, null, project_id, FND_API.G_MISS_NUM, project_id, p_project_id),
1500: task_id = decode(p_task_id, null, project_id, FND_API.G_MISS_NUM, task_id, p_task_id),
1501: award_id = decode(p_award_id, null, award_id, FND_API.G_MISS_NUM, award_id, p_award_id),
1502: expenditure_type = decode(p_expenditure_type, null, expenditure_type, FND_API.G_MISS_CHAR, expenditure_type, p_expenditure_type),
1503: expenditure_organization_id = decode(p_expenditure_organization_id, null, expenditure_organization_id, FND_API.G_MISS_NUM, expenditure_organization_id, p_expenditure_organization_id),
1504: description = decode(p_description, null, description, FND_API.G_MISS_CHAR, description, p_description),
1505: -- Added for Bug: 3325171
1498: distribution_default_rule_id = decode(p_distribution_default_rule_id, null, distribution_default_rule_id, p_distribution_default_rule_id),
1499: project_id = decode(p_project_id, null, project_id, FND_API.G_MISS_NUM, project_id, p_project_id),
1500: task_id = decode(p_task_id, null, project_id, FND_API.G_MISS_NUM, task_id, p_task_id),
1501: award_id = decode(p_award_id, null, award_id, FND_API.G_MISS_NUM, award_id, p_award_id),
1502: expenditure_type = decode(p_expenditure_type, null, expenditure_type, FND_API.G_MISS_CHAR, expenditure_type, p_expenditure_type),
1503: expenditure_organization_id = decode(p_expenditure_organization_id, null, expenditure_organization_id, FND_API.G_MISS_NUM, expenditure_organization_id, p_expenditure_organization_id),
1504: description = decode(p_description, null, description, FND_API.G_MISS_CHAR, description, p_description),
1505: -- Added for Bug: 3325171
1506: effective_end_date = decode(p_effective_end_date, null, effective_end_date, FND_API.G_MISS_DATE, effective_end_date, p_effective_end_date),
1499: project_id = decode(p_project_id, null, project_id, FND_API.G_MISS_NUM, project_id, p_project_id),
1500: task_id = decode(p_task_id, null, project_id, FND_API.G_MISS_NUM, task_id, p_task_id),
1501: award_id = decode(p_award_id, null, award_id, FND_API.G_MISS_NUM, award_id, p_award_id),
1502: expenditure_type = decode(p_expenditure_type, null, expenditure_type, FND_API.G_MISS_CHAR, expenditure_type, p_expenditure_type),
1503: expenditure_organization_id = decode(p_expenditure_organization_id, null, expenditure_organization_id, FND_API.G_MISS_NUM, expenditure_organization_id, p_expenditure_organization_id),
1504: description = decode(p_description, null, description, FND_API.G_MISS_CHAR, description, p_description),
1505: -- Added for Bug: 3325171
1506: effective_end_date = decode(p_effective_end_date, null, effective_end_date, FND_API.G_MISS_DATE, effective_end_date, p_effective_end_date),
1507: last_update_date = sysdate,
1500: task_id = decode(p_task_id, null, project_id, FND_API.G_MISS_NUM, task_id, p_task_id),
1501: award_id = decode(p_award_id, null, award_id, FND_API.G_MISS_NUM, award_id, p_award_id),
1502: expenditure_type = decode(p_expenditure_type, null, expenditure_type, FND_API.G_MISS_CHAR, expenditure_type, p_expenditure_type),
1503: expenditure_organization_id = decode(p_expenditure_organization_id, null, expenditure_organization_id, FND_API.G_MISS_NUM, expenditure_organization_id, p_expenditure_organization_id),
1504: description = decode(p_description, null, description, FND_API.G_MISS_CHAR, description, p_description),
1505: -- Added for Bug: 3325171
1506: effective_end_date = decode(p_effective_end_date, null, effective_end_date, FND_API.G_MISS_DATE, effective_end_date, p_effective_end_date),
1507: last_update_date = sysdate,
1508: last_updated_by = l_userid,
1502: expenditure_type = decode(p_expenditure_type, null, expenditure_type, FND_API.G_MISS_CHAR, expenditure_type, p_expenditure_type),
1503: expenditure_organization_id = decode(p_expenditure_organization_id, null, expenditure_organization_id, FND_API.G_MISS_NUM, expenditure_organization_id, p_expenditure_organization_id),
1504: description = decode(p_description, null, description, FND_API.G_MISS_CHAR, description, p_description),
1505: -- Added for Bug: 3325171
1506: effective_end_date = decode(p_effective_end_date, null, effective_end_date, FND_API.G_MISS_DATE, effective_end_date, p_effective_end_date),
1507: last_update_date = sysdate,
1508: last_updated_by = l_userid,
1509: last_update_login = l_loginid
1510: where position_id = p_position_id
1508: last_updated_by = l_userid,
1509: last_update_login = l_loginid
1510: where position_id = p_position_id
1511: and effective_start_date = p_effective_start_date
1512: and nvl(effective_end_date, FND_API.G_MISS_DATE) = nvl(p_effective_end_date, FND_API.G_MISS_DATE)
1513: and nvl(worksheet_id, FND_API.G_MISS_NUM) = nvl(p_worksheet_id, FND_API.G_MISS_NUM)
1514: and chart_of_accounts_id = p_chart_of_accounts_id
1515: and code_combination_id = p_code_combination_id;
1516:
1509: last_update_login = l_loginid
1510: where position_id = p_position_id
1511: and effective_start_date = p_effective_start_date
1512: and nvl(effective_end_date, FND_API.G_MISS_DATE) = nvl(p_effective_end_date, FND_API.G_MISS_DATE)
1513: and nvl(worksheet_id, FND_API.G_MISS_NUM) = nvl(p_worksheet_id, FND_API.G_MISS_NUM)
1514: and chart_of_accounts_id = p_chart_of_accounts_id
1515: and code_combination_id = p_code_combination_id;
1516:
1517: if SQL%NOTFOUND then
1560: g_pay_dist(g_num_pay_dist).award_id:= c_Dist_Rec.award_id;
1561: g_pay_dist(g_num_pay_dist).expenditure_type:= c_Dist_Rec.expenditure_type;
1562: g_pay_dist(g_num_pay_dist).expenditure_organization_id:= c_Dist_Rec.expenditure_organization_id;
1563: g_pay_dist(g_num_pay_dist).description:= c_Dist_Rec.description;
1564: g_pay_dist(g_num_pay_dist).delete_flag := FND_API.G_TRUE;
1565:
1566: if g_pay_dist(g_num_pay_dist).worksheet_id = p_worksheet_id then
1567: begin
1568:
1565:
1566: if g_pay_dist(g_num_pay_dist).worksheet_id = p_worksheet_id then
1567: begin
1568:
1569: if not FND_API.to_Boolean(l_dis_overlap) then
1570: l_dis_overlap := FND_API.G_TRUE;
1571: end if;
1572:
1573: end;
1566: if g_pay_dist(g_num_pay_dist).worksheet_id = p_worksheet_id then
1567: begin
1568:
1569: if not FND_API.to_Boolean(l_dis_overlap) then
1570: l_dis_overlap := FND_API.G_TRUE;
1571: end if;
1572:
1573: end;
1574: end if;
1606: p_expenditure_organization_id => p_expenditure_organization_id,
1607: p_description => p_description,
1608: p_mode => p_mode);
1609:
1610: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1611: raise FND_API.G_EXC_ERROR;
1612: end if;
1613:
1614: p_rowid := l_rowid;
1607: p_description => p_description,
1608: p_mode => p_mode);
1609:
1610: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1611: raise FND_API.G_EXC_ERROR;
1612: end if;
1613:
1614: p_rowid := l_rowid;
1615: p_distribution_id := l_distribution_id;
1619: begin -- Matching Records Check for different overlaps
1620:
1621: for l_dist_index in 1..g_num_pay_dist loop
1622:
1623: l_updated_record := FND_API.G_FALSE;
1624:
1625: if (g_pay_dist(l_dist_index).effective_start_date = p_effective_start_date) then
1626: begin
1627:
1624:
1625: if (g_pay_dist(l_dist_index).effective_start_date = p_effective_start_date) then
1626: begin
1627:
1628: if nvl(g_pay_dist(l_dist_index).worksheet_id,FND_API.G_MISS_NUM) = nvl(p_worksheet_id,FND_API.G_MISS_NUM) then
1629: begin
1630:
1631: Update_Row
1632: (p_api_version => 1.0,
1646: p_expenditure_organization_id => p_expenditure_organization_id,
1647: p_description => p_description,
1648: p_mode => p_mode);
1649:
1650: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1651: raise FND_API.G_EXC_ERROR;
1652: end if;
1653:
1654: g_pay_dist(l_dist_index).delete_flag := FND_API.G_FALSE;
1647: p_description => p_description,
1648: p_mode => p_mode);
1649:
1650: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1651: raise FND_API.G_EXC_ERROR;
1652: end if;
1653:
1654: g_pay_dist(l_dist_index).delete_flag := FND_API.G_FALSE;
1655:
1650: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1651: raise FND_API.G_EXC_ERROR;
1652: end if;
1653:
1654: g_pay_dist(l_dist_index).delete_flag := FND_API.G_FALSE;
1655:
1656: end;
1657: elsif ((g_pay_dist(l_dist_index).worksheet_id is null) and (p_worksheet_id is not null) and
1658: (not FND_API.to_Boolean(l_dis_overlap))) then
1654: g_pay_dist(l_dist_index).delete_flag := FND_API.G_FALSE;
1655:
1656: end;
1657: elsif ((g_pay_dist(l_dist_index).worksheet_id is null) and (p_worksheet_id is not null) and
1658: (not FND_API.to_Boolean(l_dis_overlap))) then
1659: begin
1660:
1661: for c_Seq_Rec in c_Seq loop
1662: l_distribution_id := c_Seq_Rec.DistID;
1686: p_expenditure_organization_id => p_expenditure_organization_id,
1687: p_description => p_description,
1688: p_mode => p_mode);
1689:
1690: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1691: raise FND_API.G_EXC_ERROR;
1692: end if;
1693:
1694: p_rowid := l_rowid;
1687: p_description => p_description,
1688: p_mode => p_mode);
1689:
1690: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1691: raise FND_API.G_EXC_ERROR;
1692: end if;
1693:
1694: p_rowid := l_rowid;
1695: p_distribution_id := l_distribution_id;
1706: ((g_pay_dist(l_dist_index).effective_end_date is null) or
1707: (g_pay_dist(l_dist_index).effective_end_date > (p_effective_end_date + 1))))) then
1708: begin
1709:
1710: if ((nvl(g_pay_dist(l_dist_index).worksheet_id, FND_API.G_MISS_NUM) = nvl(p_worksheet_id, FND_API.G_MISS_NUM))) then
1711: begin
1712: --++ both either base or ws specific rec
1713:
1714: if ((g_pay_dist(l_dist_index).effective_start_date < (p_effective_start_date - 1)) and
1734: p_expenditure_organization_id => g_pay_dist(l_dist_index).expenditure_organization_id,
1735: p_description => g_pay_dist(l_dist_index).description,
1736: p_mode => p_mode);
1737:
1738: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1739: raise FND_API.G_EXC_ERROR;
1740: else
1741: l_updated_record := FND_API.G_TRUE;
1742: end if;
1735: p_description => g_pay_dist(l_dist_index).description,
1736: p_mode => p_mode);
1737:
1738: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1739: raise FND_API.G_EXC_ERROR;
1740: else
1741: l_updated_record := FND_API.G_TRUE;
1742: end if;
1743:
1737:
1738: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1739: raise FND_API.G_EXC_ERROR;
1740: else
1741: l_updated_record := FND_API.G_TRUE;
1742: end if;
1743:
1744: g_pay_dist(l_dist_index).delete_flag := FND_API.G_FALSE;
1745:
1740: else
1741: l_updated_record := FND_API.G_TRUE;
1742: end if;
1743:
1744: g_pay_dist(l_dist_index).delete_flag := FND_API.G_FALSE;
1745:
1746: end; --
1747: elsif ((g_pay_dist(l_dist_index).effective_start_date > p_effective_start_date) and
1748: ((p_effective_end_date is not null) and
1768: p_expenditure_organization_id => g_pay_dist(l_dist_index).expenditure_organization_id,
1769: p_description => g_pay_dist(l_dist_index).description,
1770: p_mode => p_mode);
1771:
1772: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1773: raise FND_API.G_EXC_ERROR;
1774: else
1775: l_updated_record := FND_API.G_FALSE;
1776: end if;
1769: p_description => g_pay_dist(l_dist_index).description,
1770: p_mode => p_mode);
1771:
1772: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1773: raise FND_API.G_EXC_ERROR;
1774: else
1775: l_updated_record := FND_API.G_FALSE;
1776: end if;
1777:
1771:
1772: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1773: raise FND_API.G_EXC_ERROR;
1774: else
1775: l_updated_record := FND_API.G_FALSE;
1776: end if;
1777:
1778: g_pay_dist(l_dist_index).delete_flag := FND_API.G_FALSE;
1779:
1774: else
1775: l_updated_record := FND_API.G_FALSE;
1776: end if;
1777:
1778: g_pay_dist(l_dist_index).delete_flag := FND_API.G_FALSE;
1779:
1780: end;
1781: end if; -- end start date test
1782:
1779:
1780: end;
1781: end if; -- end start date test
1782:
1783: if not FND_API.to_Boolean(l_created_record) then
1784: begin
1785:
1786: for c_Seq_Rec in c_Seq loop
1787: l_distribution_id := c_Seq_Rec.DistID;
1811: p_expenditure_organization_id => p_expenditure_organization_id,
1812: p_description => p_description,
1813: p_mode => p_mode);
1814:
1815: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1816: raise FND_API.G_EXC_ERROR;
1817: else
1818: l_created_record := FND_API.G_TRUE;
1819: end if;
1812: p_description => p_description,
1813: p_mode => p_mode);
1814:
1815: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1816: raise FND_API.G_EXC_ERROR;
1817: else
1818: l_created_record := FND_API.G_TRUE;
1819: end if;
1820:
1814:
1815: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1816: raise FND_API.G_EXC_ERROR;
1817: else
1818: l_created_record := FND_API.G_TRUE;
1819: end if;
1820:
1821: p_rowid := l_rowid;
1822: p_distribution_id := l_distribution_id;
1829:
1830: if nvl(g_pay_dist(l_dist_index).effective_end_date, (p_effective_end_date + 1)) > (p_effective_end_date + 1) then
1831: begin
1832:
1833: if FND_API.to_Boolean(l_updated_record) then
1834: begin
1835:
1836: for c_Seq_Rec in c_Seq loop
1837: l_distribution_id := c_Seq_Rec.DistID;
1861: p_expenditure_organization_id => g_pay_dist(l_dist_index).expenditure_organization_id,
1862: p_description => g_pay_dist(l_dist_index).description,
1863: p_mode => p_mode);
1864:
1865: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1866: raise FND_API.G_EXC_ERROR;
1867: end if;
1868:
1869: p_rowid := l_rowid;
1862: p_description => g_pay_dist(l_dist_index).description,
1863: p_mode => p_mode);
1864:
1865: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1866: raise FND_API.G_EXC_ERROR;
1867: end if;
1868:
1869: p_rowid := l_rowid;
1870: p_distribution_id := l_distribution_id;
1892: p_expenditure_organization_id => g_pay_dist(l_dist_index).expenditure_organization_id,
1893: p_description => g_pay_dist(l_dist_index).description,
1894: p_mode => p_mode);
1895:
1896: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1897: raise FND_API.G_EXC_ERROR;
1898: end if;
1899:
1900: g_pay_dist(l_dist_index).delete_flag := FND_API.G_FALSE;
1893: p_description => g_pay_dist(l_dist_index).description,
1894: p_mode => p_mode);
1895:
1896: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1897: raise FND_API.G_EXC_ERROR;
1898: end if;
1899:
1900: g_pay_dist(l_dist_index).delete_flag := FND_API.G_FALSE;
1901:
1896: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1897: raise FND_API.G_EXC_ERROR;
1898: end if;
1899:
1900: g_pay_dist(l_dist_index).delete_flag := FND_API.G_FALSE;
1901:
1902: end;
1903: end if;
1904:
1909: end if;
1910:
1911: end;
1912: elsif ((g_pay_dist(l_dist_index).worksheet_id is null) and (p_worksheet_id is not null) and
1913: (not FND_API.to_Boolean(l_dis_overlap))) then
1914: begin
1915:
1916: if ((g_pay_dist(l_dist_index).effective_start_date <= (p_effective_start_date - 1)) and
1917: ((g_pay_dist(l_dist_index).effective_end_date is null) or
1939: p_expenditure_organization_id => g_pay_dist(l_dist_index).expenditure_organization_id,
1940: p_description => g_pay_dist(l_dist_index).description,
1941: p_mode => p_mode);
1942:
1943: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1944: raise FND_API.G_EXC_ERROR;
1945: end if;
1946:
1947: p_rowid := l_rowid;
1940: p_description => g_pay_dist(l_dist_index).description,
1941: p_mode => p_mode);
1942:
1943: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1944: raise FND_API.G_EXC_ERROR;
1945: end if;
1946:
1947: p_rowid := l_rowid;
1948: p_distribution_id := l_distribution_id;
1975: p_expenditure_organization_id => g_pay_dist(l_dist_index).expenditure_organization_id,
1976: p_description => g_pay_dist(l_dist_index).description,
1977: p_mode => p_mode);
1978:
1979: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1980: raise FND_API.G_EXC_ERROR;
1981: end if;
1982:
1983: p_rowid := l_rowid;
1976: p_description => g_pay_dist(l_dist_index).description,
1977: p_mode => p_mode);
1978:
1979: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1980: raise FND_API.G_EXC_ERROR;
1981: end if;
1982:
1983: p_rowid := l_rowid;
1984: p_distribution_id := l_distribution_id;
1985:
1986: end;
1987: end if;
1988:
1989: if not FND_API.to_Boolean(l_created_record) then
1990: begin
1991:
1992: for c_Seq_Rec in c_Seq loop
1993: l_distribution_id := c_Seq_Rec.DistID;
2017: p_expenditure_organization_id => p_expenditure_organization_id,
2018: p_description => p_description,
2019: p_mode => p_mode);
2020:
2021: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2022: raise FND_API.G_EXC_ERROR;
2023: else
2024: l_created_record := FND_API.G_TRUE;
2025: end if;
2018: p_description => p_description,
2019: p_mode => p_mode);
2020:
2021: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2022: raise FND_API.G_EXC_ERROR;
2023: else
2024: l_created_record := FND_API.G_TRUE;
2025: end if;
2026:
2020:
2021: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2022: raise FND_API.G_EXC_ERROR;
2023: else
2024: l_created_record := FND_API.G_TRUE;
2025: end if;
2026:
2027: p_rowid := l_rowid;
2028: p_distribution_id := l_distribution_id;
2057: p_expenditure_organization_id => g_pay_dist(l_dist_index).expenditure_organization_id,
2058: p_description => g_pay_dist(l_dist_index).description,
2059: p_mode => p_mode);
2060:
2061: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2062: raise FND_API.G_EXC_ERROR;
2063: end if;
2064:
2065: p_rowid := l_rowid;
2058: p_description => g_pay_dist(l_dist_index).description,
2059: p_mode => p_mode);
2060:
2061: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2062: raise FND_API.G_EXC_ERROR;
2063: end if;
2064:
2065: p_rowid := l_rowid;
2066: p_distribution_id := l_distribution_id;
2083: end if;
2084:
2085: for l_dist_index in 1..g_num_pay_dist loop
2086:
2087: if ((FND_API.to_Boolean(g_pay_dist(l_dist_index).delete_flag)) and (g_pay_dist(l_dist_index).worksheet_id is not null)) then
2088: begin
2089:
2090: Delete_Row
2091: (p_api_version => 1.0,
2093: p_msg_count => p_msg_count,
2094: p_msg_data => p_msg_data,
2095: p_distribution_id => g_pay_dist(l_dist_index).distribution_id);
2096:
2097: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2098: raise FND_API.G_EXC_ERROR;
2099: end if;
2100:
2101: end;
2094: p_msg_data => p_msg_data,
2095: p_distribution_id => g_pay_dist(l_dist_index).distribution_id);
2096:
2097: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2098: raise FND_API.G_EXC_ERROR;
2099: end if;
2100:
2101: end;
2102: end if;
2107: end if;
2108:
2109: -- Standard check of p_commit
2110:
2111: if FND_API.to_Boolean (p_commit) then
2112: commit work;
2113: end if;
2114:
2115:
2114:
2115:
2116: -- Initialize API return status to success
2117:
2118: p_return_status := FND_API.G_RET_STS_SUCCESS;
2119:
2120:
2121: -- Standard call to get message count and if count is 1, get message info
2122:
2124: p_data => p_msg_data);
2125:
2126: EXCEPTION
2127:
2128: when FND_API.G_EXC_ERROR then
2129: rollback to Modify_Distribution_Pvt;
2130: p_return_status := FND_API.G_RET_STS_ERROR;
2131:
2132: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
2126: EXCEPTION
2127:
2128: when FND_API.G_EXC_ERROR then
2129: rollback to Modify_Distribution_Pvt;
2130: p_return_status := FND_API.G_RET_STS_ERROR;
2131:
2132: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
2133: p_data => p_msg_data);
2134:
2131:
2132: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
2133: p_data => p_msg_data);
2134:
2135: when FND_API.G_EXC_UNEXPECTED_ERROR then
2136: rollback to Modify_Distribution_Pvt;
2137: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2138:
2139: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
2133: p_data => p_msg_data);
2134:
2135: when FND_API.G_EXC_UNEXPECTED_ERROR then
2136: rollback to Modify_Distribution_Pvt;
2137: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2138:
2139: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
2140: p_data => p_msg_data);
2141:
2140: p_data => p_msg_data);
2141:
2142: when OTHERS then
2143: rollback to Modify_Distribution_Pvt;
2144: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2145:
2146: if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
2147:
2148: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
2159: ( p_return_status OUT NOCOPY VARCHAR2,
2160: p_distribution_id IN OUT NOCOPY NUMBER,
2161: p_position_id IN NUMBER,
2162: p_data_extract_id IN NUMBER,
2163: p_worksheet_id IN NUMBER := FND_API.G_MISS_NUM,
2164: p_effective_start_date IN DATE,
2165: p_effective_end_date IN DATE,
2166: p_chart_of_accounts_id IN NUMBER,
2167: p_code_combination_id IN NUMBER,
2183: l_msg_data VARCHAR2(2000);
2184:
2185: l_distribution_id NUMBER;
2186: l_rowid VARCHAR2(100);
2187: l_distr_found VARCHAR2(1) := FND_API.G_FALSE;
2188:
2189: cursor c_Seq is
2190: select psb_position_pay_distr_s.nextval DistID
2191: from dual;
2209:
2210: BEGIN
2211:
2212: for c_Overlap_Rec in c_Overlap loop
2213: l_distr_found := FND_API.G_TRUE;
2214: end loop;
2215:
2216: if not FND_API.to_Boolean(l_distr_found) then
2217: begin
2212: for c_Overlap_Rec in c_Overlap loop
2213: l_distr_found := FND_API.G_TRUE;
2214: end loop;
2215:
2216: if not FND_API.to_Boolean(l_distr_found) then
2217: begin
2218:
2219: for c_Seq_Rec in c_Seq loop
2220: l_distribution_id := c_Seq_Rec.DistID;
2244: p_expenditure_organization_id => p_expenditure_organization_id,
2245: p_description => p_description,
2246: p_mode => p_mode );
2247:
2248: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2249: raise FND_API.G_EXC_ERROR;
2250: end if;
2251:
2252: p_rowid := l_rowid;
2245: p_description => p_description,
2246: p_mode => p_mode );
2247:
2248: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2249: raise FND_API.G_EXC_ERROR;
2250: end if;
2251:
2252: p_rowid := l_rowid;
2253: p_distribution_id := l_distribution_id;
2254:
2255: end;
2256: end if;
2257:
2258: p_return_status := FND_API.G_RET_STS_SUCCESS;
2259:
2260:
2261: EXCEPTION
2262:
2259:
2260:
2261: EXCEPTION
2262:
2263: when FND_API.G_EXC_ERROR then
2264: p_return_status := FND_API.G_RET_STS_ERROR;
2265:
2266: when FND_API.G_EXC_UNEXPECTED_ERROR then
2267: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2260:
2261: EXCEPTION
2262:
2263: when FND_API.G_EXC_ERROR then
2264: p_return_status := FND_API.G_RET_STS_ERROR;
2265:
2266: when FND_API.G_EXC_UNEXPECTED_ERROR then
2267: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2268:
2262:
2263: when FND_API.G_EXC_ERROR then
2264: p_return_status := FND_API.G_RET_STS_ERROR;
2265:
2266: when FND_API.G_EXC_UNEXPECTED_ERROR then
2267: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2268:
2269: when OTHERS then
2270: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2263: when FND_API.G_EXC_ERROR then
2264: p_return_status := FND_API.G_RET_STS_ERROR;
2265:
2266: when FND_API.G_EXC_UNEXPECTED_ERROR then
2267: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2268:
2269: when OTHERS then
2270: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2271:
2266: when FND_API.G_EXC_UNEXPECTED_ERROR then
2267: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2268:
2269: when OTHERS then
2270: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2271:
2272: END Modify_WS_Distribution;
2273:
2274: --+++
2274: --+++
2275:
2276: PROCEDURE Modify_Extract_Distribution
2277: ( p_api_version IN NUMBER,
2278: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2279: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2280: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2281: p_return_status OUT NOCOPY VARCHAR2,
2282: p_msg_count OUT NOCOPY NUMBER,
2275:
2276: PROCEDURE Modify_Extract_Distribution
2277: ( p_api_version IN NUMBER,
2278: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2279: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2280: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2281: p_return_status OUT NOCOPY VARCHAR2,
2282: p_msg_count OUT NOCOPY NUMBER,
2283: p_msg_data OUT NOCOPY VARCHAR2,
2276: PROCEDURE Modify_Extract_Distribution
2277: ( p_api_version IN NUMBER,
2278: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2279: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2280: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2281: p_return_status OUT NOCOPY VARCHAR2,
2282: p_msg_count OUT NOCOPY NUMBER,
2283: p_msg_data OUT NOCOPY VARCHAR2,
2284: p_position_id IN NUMBER,
2329:
2330:
2331: -- Standard call to check for call compatibility
2332:
2333: if not FND_API.Compatible_API_Call (l_api_version,
2334: p_api_version,
2335: l_api_name,
2336: G_PKG_NAME)
2337: then
2334: p_api_version,
2335: l_api_name,
2336: G_PKG_NAME)
2337: then
2338: raise FND_API.G_EXC_UNEXPECTED_ERROR;
2339: end if;
2340:
2341:
2342: -- Initialize message list if p_init_msg_list is set to TRUE
2340:
2341:
2342: -- Initialize message list if p_init_msg_list is set to TRUE
2343:
2344: if FND_API.to_Boolean (p_init_msg_list) then
2345: FND_MSG_PUB.initialize;
2346: end if;
2347:
2348: for C_Distribution_Rec in C_Distributions
2390: p_expenditure_organization_id => p_distribution(j).expenditure_org_id,
2391: p_description => p_distribution(j).description,
2392: p_mode => 'R');
2393:
2394: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2395: raise FND_API.G_EXC_ERROR;
2396: end if;
2397: end if;
2398: End Loop;
2391: p_description => p_distribution(j).description,
2392: p_mode => 'R');
2393:
2394: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2395: raise FND_API.G_EXC_ERROR;
2396: end if;
2397: end if;
2398: End Loop;
2399:
2399:
2400: if (del_flag = 'Y') then
2401: DELETE_ROW (
2402: p_api_version => 1.0,
2403: p_init_msg_list => fnd_api.g_false,
2404: p_commit => p_commit,
2405: p_validation_level => fnd_api.g_valid_level_full,
2406: p_return_status => l_return_status,
2407: p_msg_count => l_msg_count,
2401: DELETE_ROW (
2402: p_api_version => 1.0,
2403: p_init_msg_list => fnd_api.g_false,
2404: p_commit => p_commit,
2405: p_validation_level => fnd_api.g_valid_level_full,
2406: p_return_status => l_return_status,
2407: p_msg_count => l_msg_count,
2408: p_msg_data => l_msg_data,
2409: p_distribution_id => C_Distribution_Rec.distribution_id);
2407: p_msg_count => l_msg_count,
2408: p_msg_data => l_msg_data,
2409: p_distribution_id => C_Distribution_Rec.distribution_id);
2410:
2411: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2412: raise FND_API.G_EXC_ERROR;
2413: end if;
2414: end if;
2415: End Loop;
2408: p_msg_data => l_msg_data,
2409: p_distribution_id => C_Distribution_Rec.distribution_id);
2410:
2411: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2412: raise FND_API.G_EXC_ERROR;
2413: end if;
2414: end if;
2415: End Loop;
2416:
2445: p_expenditure_organization_id => p_distribution(j).expenditure_org_id,
2446: p_description => p_distribution(j).description,
2447: p_mode => 'R');
2448:
2449: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2450: raise FND_API.G_EXC_ERROR;
2451: end if;
2452:
2453: end if;
2446: p_description => p_distribution(j).description,
2447: p_mode => 'R');
2448:
2449: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
2450: raise FND_API.G_EXC_ERROR;
2451: end if;
2452:
2453: end if;
2454: End Loop;
2454: End Loop;
2455:
2456: -- Standard check of p_commit
2457:
2458: if FND_API.to_Boolean (p_commit) then
2459: commit work;
2460: end if;
2461:
2462:
2461:
2462:
2463: -- Initialize API return status to success
2464:
2465: p_return_status := FND_API.G_RET_STS_SUCCESS;
2466:
2467:
2468: -- Standard call to get message count and if count is 1, get message info
2469:
2471: p_data => p_msg_data);
2472:
2473: EXCEPTION
2474:
2475: when FND_API.G_EXC_ERROR then
2476: rollback to Modify_Extract_Dist_Pvt;
2477: p_return_status := FND_API.G_RET_STS_ERROR;
2478:
2479: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
2473: EXCEPTION
2474:
2475: when FND_API.G_EXC_ERROR then
2476: rollback to Modify_Extract_Dist_Pvt;
2477: p_return_status := FND_API.G_RET_STS_ERROR;
2478:
2479: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
2480: p_data => p_msg_data);
2481:
2479: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
2480: p_data => p_msg_data);
2481:
2482:
2483: when FND_API.G_EXC_UNEXPECTED_ERROR then
2484: rollback to Modify_Extract_Dist_Pvt;
2485: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2486:
2487: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
2481:
2482:
2483: when FND_API.G_EXC_UNEXPECTED_ERROR then
2484: rollback to Modify_Extract_Dist_Pvt;
2485: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2486:
2487: FND_MSG_PUB.Count_And_Get (p_count => p_msg_count,
2488: p_data => p_msg_data);
2489:
2489:
2490:
2491: when OTHERS then
2492: rollback to Modify_Extract_Dist_Pvt;
2493: p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2494:
2495: if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) then
2496:
2497: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,
2583: -- positions
2584:
2585: PROCEDURE Apply_Position_Pay_Distr
2586: ( p_api_version IN NUMBER,
2587: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2588: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2589: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2590: x_return_status OUT NOCOPY VARCHAR2,
2591: x_msg_count OUT NOCOPY NUMBER,
2584:
2585: PROCEDURE Apply_Position_Pay_Distr
2586: ( p_api_version IN NUMBER,
2587: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2588: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2589: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2590: x_return_status OUT NOCOPY VARCHAR2,
2591: x_msg_count OUT NOCOPY NUMBER,
2592: x_msg_data OUT NOCOPY VARCHAR2,
2585: PROCEDURE Apply_Position_Pay_Distr
2586: ( p_api_version IN NUMBER,
2587: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2588: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2589: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2590: x_return_status OUT NOCOPY VARCHAR2,
2591: x_msg_count OUT NOCOPY NUMBER,
2592: x_msg_data OUT NOCOPY VARCHAR2,
2593: p_distribution_id IN OUT NOCOPY NUMBER,
2602: p_distribution_percent IN NUMBER,
2603: p_global_default_flag IN VARCHAR2,
2604: p_distribution_default_rule_id IN NUMBER,
2605: p_rowid IN OUT NOCOPY VARCHAR2,
2606: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
2607: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
2608: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
2609: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
2610: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
2603: p_global_default_flag IN VARCHAR2,
2604: p_distribution_default_rule_id IN NUMBER,
2605: p_rowid IN OUT NOCOPY VARCHAR2,
2606: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
2607: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
2608: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
2609: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
2610: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
2611: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
2604: p_distribution_default_rule_id IN NUMBER,
2605: p_rowid IN OUT NOCOPY VARCHAR2,
2606: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
2607: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
2608: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
2609: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
2610: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
2611: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
2612: p_mode IN VARCHAR2 := 'R'
2605: p_rowid IN OUT NOCOPY VARCHAR2,
2606: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
2607: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
2608: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
2609: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
2610: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
2611: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
2612: p_mode IN VARCHAR2 := 'R'
2613: ) IS
2606: p_project_id IN NUMBER:= FND_API.G_MISS_NUM,
2607: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
2608: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
2609: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
2610: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
2611: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
2612: p_mode IN VARCHAR2 := 'R'
2613: ) IS
2614:
2607: p_task_id IN NUMBER:= FND_API.G_MISS_NUM,
2608: p_award_id IN NUMBER:= FND_API.G_MISS_NUM,
2609: p_expenditure_type IN VARCHAR2:= FND_API.G_MISS_CHAR,
2610: p_expenditure_organization_id IN NUMBER:= FND_API.G_MISS_NUM,
2611: p_description IN VARCHAR2:= FND_API.G_MISS_CHAR,
2612: p_mode IN VARCHAR2 := 'R'
2613: ) IS
2614:
2615: l_api_name CONSTANT VARCHAR2(30) := 'Apply_Position_Pay_Distr';
2622: l_dist_index BINARY_INTEGER;
2623:
2624: l_distribution_id NUMBER;
2625:
2626: l_created_record VARCHAR2(1) := FND_API.G_FALSE;
2627: l_updated_record VARCHAR2(1);
2628:
2629: l_rowid VARCHAR2(100);
2630:
2628:
2629: l_rowid VARCHAR2(100);
2630:
2631: l_return_status VARCHAR2(1);
2632: l_dis_overlap VARCHAR2(1):= FND_API.G_FALSE;
2633: l_dist_percent_sum NUMBER;
2634: l_distribution_percent NUMBER;
2635: l_ccid_exists BOOLEAN:=FALSE;
2636:
2696:
2697:
2698: -- Standard call to check for call compatibility
2699:
2700: IF NOT FND_API.Compatible_API_Call (l_api_version,
2701: p_api_version,
2702: l_api_name,
2703: G_PKG_NAME)
2704: THEN
2701: p_api_version,
2702: l_api_name,
2703: G_PKG_NAME)
2704: THEN
2705: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2706: END IF;
2707:
2708: -- Initialize message list if p_init_msg_list is set to TRUE
2709:
2706: END IF;
2707:
2708: -- Initialize message list if p_init_msg_list is set to TRUE
2709:
2710: IF FND_API.to_Boolean (p_init_msg_list) THEN
2711: FND_MSG_PUB.initialize;
2712: END IF;
2713:
2714: l_userid := FND_GLOBAL.USER_ID;
2758: g_pay_dist(g_num_pay_dist).award_id:= c_Dist_Rec.award_id;
2759: g_pay_dist(g_num_pay_dist).expenditure_type:= c_Dist_Rec.expenditure_type;
2760: g_pay_dist(g_num_pay_dist).expenditure_organization_id:= c_Dist_Rec.expenditure_organization_id;
2761: g_pay_dist(g_num_pay_dist).description:= c_Dist_Rec.description;
2762: g_pay_dist(g_num_pay_dist).delete_flag := FND_API.G_TRUE;
2763:
2764: END LOOP;
2765:
2766: FOR l_exists_rec in l_exists
2830: p_mode => p_mode);
2831:
2832: END IF;
2833:
2834: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2835: RAISE FND_API.G_EXC_ERROR;
2836: END IF;
2837:
2838: p_rowid := l_rowid;
2831:
2832: END IF;
2833:
2834: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2835: RAISE FND_API.G_EXC_ERROR;
2836: END IF;
2837:
2838: p_rowid := l_rowid;
2839: p_distribution_id := l_distribution_id;
2873: p_expenditure_organization_id => p_expenditure_organization_id,
2874: p_description => p_description,
2875: p_mode => p_mode);
2876:
2877: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2878: RAISE FND_API.G_EXC_ERROR;
2879: END IF;
2880: l_ccid_exists := TRUE;
2881:
2874: p_description => p_description,
2875: p_mode => p_mode);
2876:
2877: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2878: RAISE FND_API.G_EXC_ERROR;
2879: END IF;
2880: l_ccid_exists := TRUE;
2881:
2882: END IF;
2917: END IF;
2918:
2919: -- Standard check of p_commit
2920:
2921: IF FND_API.to_Boolean (p_commit) THEN
2922: COMMIT WORK;
2923: END IF;
2924:
2925:
2924:
2925:
2926: -- Initialize API return status to success
2927:
2928: x_return_status := FND_API.G_RET_STS_SUCCESS;
2929:
2930:
2931: -- Standard call to get message count and if count is 1, get message info
2932:
2934: p_data => x_msg_data);
2935:
2936: EXCEPTION
2937:
2938: WHEN FND_API.G_EXC_ERROR THEN
2939: ROLLBACK TO Apply_Position_Pay_Distr;
2940: x_return_status := FND_API.G_RET_STS_ERROR;
2941:
2942: FND_MSG_PUB.Count_And_Get (p_count => x_msg_count,
2936: EXCEPTION
2937:
2938: WHEN FND_API.G_EXC_ERROR THEN
2939: ROLLBACK TO Apply_Position_Pay_Distr;
2940: x_return_status := FND_API.G_RET_STS_ERROR;
2941:
2942: FND_MSG_PUB.Count_And_Get (p_count => x_msg_count,
2943: p_data => x_msg_data);
2944:
2941:
2942: FND_MSG_PUB.Count_And_Get (p_count => x_msg_count,
2943: p_data => x_msg_data);
2944:
2945: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2946: ROLLBACK TO Apply_Position_Pay_Distr;
2947: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2948:
2949: FND_MSG_PUB.Count_And_Get (p_count => x_msg_count,
2943: p_data => x_msg_data);
2944:
2945: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2946: ROLLBACK TO Apply_Position_Pay_Distr;
2947: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2948:
2949: FND_MSG_PUB.Count_And_Get (p_count => x_msg_count,
2950: p_data => x_msg_data);
2951:
2950: p_data => x_msg_data);
2951:
2952: WHEN OTHERS THEN
2953: ROLLBACK TO Apply_Position_Pay_Distr;
2954: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2955:
2956: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2957:
2958: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME,