32: begin
33:
34: if p_name is NULL then
35: /* Name must be entered */
36: x_return_status := FND_API.G_RET_STS_ERROR;
37: PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
38: p_msg_name => 'PA_MANDATORY_INFO_MISSING');
39: end if;
40:
54: and fin_plan_type_id <> p_fin_plan_type_id
55: and rownum < 2;
56:
57: /* Duplicate Name should not be entered */
58: x_return_status := FND_API.G_RET_STS_ERROR;
59: PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
60: p_msg_name => 'PA_ALL_UNIQUE_NAME_EXISTS');
61: /*Initialise the boolean variable here. bug 2625505)*/
62: l_name_exists:=true;
118: AND nvl
119: (f.migrated_frm_bdgt_typ_code,'-99')=a.budget_type_code);
120:
121: /* Duplicate Name should not be entered */
122: x_return_status := FND_API.G_RET_STS_ERROR;
123: PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
124: p_msg_name =>
125: 'PA_FP_RESERVED_PLAN_TYPE_NAME');/*Changed the message name (bug 2625505)*/
126: EXCEPTION
134:
135: if l_msg_count > 0 then
136: if l_msg_count = 1 then
137: PA_INTERFACE_UTILS_PUB.get_messages
138: (p_encoded => FND_API.G_TRUE,
139: p_msg_index => 1,
140: p_msg_count => l_msg_count,
141: p_msg_data => l_msg_data,
142: p_data => l_data,
147: x_msg_count := l_msg_count;
148: end if;
149: return;
150: else
151: x_return_status := FND_API.G_RET_STS_SUCCESS;
152: end if;
153:
154:
155: Exception
153:
154:
155: Exception
156: when OTHERS then
157: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
158: x_msg_count := 1;
159: x_msg_data := SQLERRM;
160: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
161: p_procedure_name => 'name_val');
158: x_msg_count := 1;
159: x_msg_data := SQLERRM;
160: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
161: p_procedure_name => 'name_val');
162: raise FND_API.G_EXC_UNEXPECTED_ERROR;
163: end name_val;
164:
165: /****************************************************************************************
166: Commented as part of Dusan changes and moved the api to PA_FIN_PLAN_UTILS
180: begin
181:
182: if p_start_date_active is null then
183: -- Start date must be entered
184: x_return_status := FND_API.G_RET_STS_ERROR;
185: PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
186: p_msg_name => 'PA_MANDATORY_INFO_MISSING');
187: end if;
188:
187: end if;
188:
189: if p_start_date_active > nvl(p_end_date_active,p_start_date_active) then
190: -- The End Date cannot be earlier than the Start Date.
191: x_return_status := FND_API.G_RET_STS_ERROR;
192: PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
193: p_msg_name => 'PA_INVALID_END_DATE');
194: end if;
195:
197:
198: if l_msg_count > 0 then
199: if l_msg_count = 1 then
200: PA_INTERFACE_UTILS_PUB.get_messages
201: (p_encoded => FND_API.G_TRUE,
202: p_msg_index => 1,
203: p_msg_count => l_msg_count,
204: p_msg_data => l_msg_data,
205: p_data => l_data,
210: x_msg_count := l_msg_count;
211: end if;
212: return;
213: else
214: x_return_status := FND_API.G_RET_STS_SUCCESS;
215: end if;
216:
217: exception
218: when OTHERS then
215: end if;
216:
217: exception
218: when OTHERS then
219: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
220: x_msg_count := 1;
221: x_msg_data := SQLERRM;
222: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
223: p_procedure_name => 'end_date_active_val');
220: x_msg_count := 1;
221: x_msg_data := SQLERRM;
222: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
223: p_procedure_name => 'end_date_active_val');
224: raise FND_API.G_EXC_UNEXPECTED_ERROR;
225: end end_date_active_val;
226: ***********************************************************************************/
227:
228: /************************************************************************************
252: if p_fin_plan_type_code = 'ORG_FORECAST' and
253: p_pre_defined_flag = 'Y' and
254: p_generated_flag = 'N' then
255: -- Generated_flag should be 'Y' for ORG_FORECAST finplantype
256: x_return_status := FND_API.G_RET_STS_ERROR;
257: PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
258: p_msg_name => 'PA_FPTYPE_GENFLAG_NOUPD',
259: p_token1 => 'PLAN_TYPE',
260: p_value1 => p_name);
265:
266: if l_msg_count > 0 then
267: if l_msg_count = 1 then
268: PA_INTERFACE_UTILS_PUB.get_messages
269: (p_encoded => FND_API.G_TRUE,
270: p_msg_index => 1,
271: p_msg_count => l_msg_count,
272: p_msg_data => l_msg_data,
273: p_data => l_data,
278: x_msg_count := l_msg_count;
279: end if;
280: return;
281: else
282: x_return_status := FND_API.G_RET_STS_SUCCESS;
283: end if;
284:
285: exception
286: when others then
283: end if;
284:
285: exception
286: when others then
287: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
288: x_msg_count := 1;
289: x_msg_data := SQLERRM;
290: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
291: p_procedure_name => 'generated_flag_val');
288: x_msg_count := 1;
289: x_msg_data := SQLERRM;
290: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
291: p_procedure_name => 'generated_flag_val');
292: raise FND_API.G_EXC_UNEXPECTED_ERROR;
293: end generated_flag_val;
294:
295: procedure used_in_billing_flag_val
296: (p_fin_plan_type_id IN
315: and used_in_billing_flag = 'Y';
316:
317: if p_used_in_billing_flag = 'Y' and l_count > 0 then
318: -- Only one financial plan type should have USED_IN_BILLING_FLAG as 'Y'
319: x_return_status := FND_API.G_RET_STS_ERROR;
320: PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
321: p_msg_name =>
322: 'PA_FPTYPE_USED_IN_BILL_NOUPD');
323: end if;
326:
327: if l_msg_count > 0 then
328: if l_msg_count = 1 then
329: PA_INTERFACE_UTILS_PUB.get_messages
330: (p_encoded => FND_API.G_TRUE,
331: p_msg_index => 1,
332: p_msg_count => l_msg_count,
333: p_msg_data => l_msg_data,
334: p_data => l_data,
339: x_msg_count := l_msg_count;
340: end if;
341: return;
342: else
343: x_return_status := FND_API.G_RET_STS_SUCCESS;
344: end if;
345:
346: exception
347: when others then
344: end if;
345:
346: exception
347: when others then
348: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
349: x_msg_count := 1;
350: x_msg_data := SQLERRM;
351: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
352: p_procedure_name => 'used_in_billing_flag_val');
349: x_msg_count := 1;
350: x_msg_data := SQLERRM;
351: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
352: p_procedure_name => 'used_in_billing_flag_val');
353: raise FND_API.G_EXC_UNEXPECTED_ERROR;
354: end used_in_billing_flag_val;
355:
356: ************************************************************************************/
357:
371: if pa_fin_plan_types_utils.isfptypeused(p_fin_plan_type_id => p_fin_plan_type_id) =
372: 'Y' then
373: /* If a plan type has already been used by a project, that plan type should not
374: be deleted */
375: x_return_status := FND_API.G_RET_STS_ERROR;
376: PA_UTILS.ADD_MESSAGE(p_app_short_name => 'PA',
377: p_msg_name => 'PA_FPTYPE_IN_USE');
378: end if;
379:
381:
382: if l_msg_count > 0 then
383: if l_msg_count = 1 then
384: PA_INTERFACE_UTILS_PUB.get_messages
385: (p_encoded => FND_API.G_TRUE,
386: p_msg_index => 1,
387: p_msg_count => l_msg_count,
388: p_msg_data => l_msg_data,
389: p_data => l_data,
394: x_msg_count := l_msg_count;
395: end if;
396: return;
397: else
398: x_return_status := FND_API.G_RET_STS_SUCCESS;
399: end if;
400:
401: exception
402: when others then
399: end if;
400:
401: exception
402: when others then
403: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
404: x_msg_count := 1;
405: x_msg_data := SQLERRM;
406: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
407: p_procedure_name => 'delete_val');
404: x_msg_count := 1;
405: x_msg_data := SQLERRM;
406: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
407: p_procedure_name => 'delete_val');
408: raise FND_API.G_EXC_UNEXPECTED_ERROR;
409: end delete_val;
410:
411:
412: procedure validate
433: l_data VARCHAR2(2000);
434: l_msg_data VARCHAR2(2000);
435: begin
436:
437: x_return_status := FND_API.G_RET_STS_SUCCESS;
438:
439: pa_fin_plan_types_utils.name_val
440: (p_name => p_name,
441: p_fin_plan_type_id => p_fin_plan_type_id,
476:
477: if l_msg_count > 0 then
478: if l_msg_count = 1 then
479: PA_INTERFACE_UTILS_PUB.get_messages
480: (p_encoded => FND_API.G_TRUE,
481: p_msg_index => 1,
482: p_msg_count => l_msg_count,
483: p_msg_data => l_msg_data,
484: p_data => l_data,
491: return;
492: end if;
493: exception
494: when others then
495: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
496: x_msg_count := 1;
497: x_msg_data := SQLERRM;
498: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
499: p_procedure_name => 'validate');
496: x_msg_count := 1;
497: x_msg_data := SQLERRM;
498: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
499: p_procedure_name => 'validate');
500: raise FND_API.G_EXC_UNEXPECTED_ERROR;
501: end validate;
502:
503: function isfptypeused
504: (p_fin_plan_type_id IN pa_fin_plan_types_b.fin_plan_type_id%type)
755: pa_debug.g_err_stage:= 'Entering GET_WORKPLAN_PT_DETAILS';
756: pa_debug.write(l_module_name,pa_debug.g_err_stage,l_debug_level3);
757: END IF;
758:
759: x_return_status := FND_API.G_RET_STS_SUCCESS;
760:
761: BEGIN
762:
763: SELECT fin_plan_type_id
797:
798:
799: EXCEPTION
800: WHEN OTHERS THEN
801: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
802: x_msg_count := 1;
803: x_msg_data := SQLERRM;
804: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
805: p_procedure_name => 'get_workplan_pt_details');
802: x_msg_count := 1;
803: x_msg_data := SQLERRM;
804: FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_FIN_PLAN_TYPES_UTILS',
805: p_procedure_name => 'get_workplan_pt_details');
806: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
807:
808: END GET_WORKPLAN_PT_DETAILS;
809:
810: /* The following function returns the value 'Y' or 'N' depending upon