42:
43: BEGIN
44:
45: -- Initialize API return status to success
46: x_return_status := FND_API.G_RET_STS_SUCCESS;
47: x_loading_status := p_loading_status;
48: x_status := p_loading_status ;
49:
50: --Open appropriate cursor and fetch the payment plan ID
85:
86: EXCEPTION
87: WHEN OTHERS THEN
88:
89: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
90: x_loading_status := 'UNEXPECTED_ERR';
91: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
92: THEN
93: FND_MSG_PUB.Add_Exc_Msg( L_PKG_NAME ,l_api_name );
135:
136: BEGIN
137:
138: -- Initialize API return status to success
139: x_return_status := FND_API.G_RET_STS_SUCCESS;
140: x_loading_status := p_loading_status ;
141: x_status := FND_API.G_RET_STS_SUCCESS;
142:
143: --
137:
138: -- Initialize API return status to success
139: x_return_status := FND_API.G_RET_STS_SUCCESS;
140: x_loading_status := p_loading_status ;
141: x_status := FND_API.G_RET_STS_SUCCESS;
142:
143: --
144: -- Check for missing and null parameters.
145: --
146: IF ( (cn_api.chk_miss_char_para
147: (p_char_para => p_PmtPlan_rec.name,
148: p_para_name => 'Pmt Plan Name',
149: p_loading_status => x_loading_status,
150: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
151: THEN
152: RAISE FND_API.G_EXC_ERROR ;
153: END IF;
154:
148: p_para_name => 'Pmt Plan Name',
149: p_loading_status => x_loading_status,
150: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
151: THEN
152: RAISE FND_API.G_EXC_ERROR ;
153: END IF;
154:
155: IF ( (cn_api.chk_null_char_para
156: (p_char_para => p_PmtPlan_rec.name,
155: IF ( (cn_api.chk_null_char_para
156: (p_char_para => p_PmtPlan_rec.name,
157: p_obj_name => 'Pmt Plan Name',
158: p_loading_status => x_loading_status,
159: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
160: THEN
161: RAISE FND_API.G_EXC_ERROR ;
162: END IF;
163:
157: p_obj_name => 'Pmt Plan Name',
158: p_loading_status => x_loading_status,
159: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
160: THEN
161: RAISE FND_API.G_EXC_ERROR ;
162: END IF;
163:
164: IF g_mode = 'INSERT'
165: THEN
167: IF ( (cn_api.chk_miss_char_para
168: (p_char_para => p_PmtPlan_rec.credit_type_name,
169: p_para_name => 'Credit Type Name',
170: p_loading_status => x_loading_status,
171: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
172: THEN
173: RAISE FND_API.G_EXC_ERROR ;
174: END IF;
175:
169: p_para_name => 'Credit Type Name',
170: p_loading_status => x_loading_status,
171: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
172: THEN
173: RAISE FND_API.G_EXC_ERROR ;
174: END IF;
175:
176: IF ( (cn_api.chk_null_char_para
177: (p_char_para => p_PmtPlan_rec.credit_type_name,
176: IF ( (cn_api.chk_null_char_para
177: (p_char_para => p_PmtPlan_rec.credit_type_name,
178: p_obj_name => 'Credit Type Name',
179: p_loading_status => x_loading_status,
180: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
181: THEN
182: RAISE FND_API.G_EXC_ERROR ;
183: END IF;
184: END IF;
178: p_obj_name => 'Credit Type Name',
179: p_loading_status => x_loading_status,
180: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
181: THEN
182: RAISE FND_API.G_EXC_ERROR ;
183: END IF;
184: END IF;
185:
186: IF ( (cn_api.chk_miss_date_para
186: IF ( (cn_api.chk_miss_date_para
187: (p_date_para => p_PmtPlan_rec.start_date,
188: p_para_name => 'Start Date',
189: p_loading_status => x_loading_status,
190: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
191: THEN
192: RAISE FND_API.G_EXC_ERROR ;
193: END IF;
194:
188: p_para_name => 'Start Date',
189: p_loading_status => x_loading_status,
190: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
191: THEN
192: RAISE FND_API.G_EXC_ERROR ;
193: END IF;
194:
195: IF ( (cn_api.chk_null_date_para
196: (p_date_para => p_PmtPlan_rec.start_date,
195: IF ( (cn_api.chk_null_date_para
196: (p_date_para => p_PmtPlan_rec.start_date,
197: p_obj_name => 'Start Date',
198: p_loading_status => x_loading_status,
199: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
200: THEN
201: RAISE FND_API.G_EXC_ERROR ;
202: END IF;
203:
197: p_obj_name => 'Start Date',
198: p_loading_status => x_loading_status,
199: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
200: THEN
201: RAISE FND_API.G_EXC_ERROR ;
202: END IF;
203:
204: --Check to ensure start date is less than end date
205: --If not, raise an error
214: fnd_msg_pub.add;
215: END IF;
216:
217: x_loading_status := 'CN_INVALID_DATE_RANGE';
218: RAISE FND_API.G_EXC_ERROR;
219: END IF;
220:
221: -- Check Max amount must > Min amount
222: IF p_pmtplan_rec.minimum_amount IS NOT NULL
229: FND_MESSAGE.SET_NAME ('CN' , 'CN_SPP_MAX_LT_MIN');
230: FND_MSG_PUB.Add;
231: END IF;
232: x_loading_status := 'CN_SPP_MAX_LT_MIN';
233: RAISE FND_API.G_EXC_ERROR ;
234: END IF;
235: END IF;
236:
237: --Check for min_rec_flag and max_rec_flag
247: END IF;
248:
249: x_status := 'CN_INVALID_PMT_PLAN_FLAGS';
250: x_loading_status := 'CN_INVALID_PMT_PLAN_FLAGS';
251: RAISE FND_API.G_EXC_ERROR;
252: END IF;
253: END IF;
254:
255: IF p_pmtplan_rec.max_rec_flag IS NOT NULL
265: END IF;
266:
267: x_status := 'CN_INVALID_PMT_PLAN_FLAGS';
268: x_loading_status := 'CN_INVALID_PMT_PLAN_FLAGS';
269: RAISE FND_API.G_EXC_ERROR;
270: END IF;
271: END IF;
272:
273: --Added by Sundar Venkat Null check for Payment_Group_Code
276: IF ( (cn_api.chk_miss_char_para
277: (p_char_para => p_PmtPlan_rec.payment_group_code,
278: p_para_name => 'Payment Group Code',
279: p_loading_status => x_loading_status,
280: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
281: THEN
282: RAISE FND_API.G_EXC_ERROR ;
283: END IF;
284:
278: p_para_name => 'Payment Group Code',
279: p_loading_status => x_loading_status,
280: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
281: THEN
282: RAISE FND_API.G_EXC_ERROR ;
283: END IF;
284:
285: IF ( (cn_api.chk_null_char_para
286: (p_char_para => p_PmtPlan_rec.payment_group_code,
285: IF ( (cn_api.chk_null_char_para
286: (p_char_para => p_PmtPlan_rec.payment_group_code,
287: p_obj_name => 'Payment Group Code',
288: p_loading_status => x_loading_status,
289: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
290: THEN
291: RAISE FND_API.G_EXC_ERROR ;
292: END IF;
293:
287: p_obj_name => 'Payment Group Code',
288: p_loading_status => x_loading_status,
289: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
290: THEN
291: RAISE FND_API.G_EXC_ERROR ;
292: END IF;
293:
294: -- Check for a valid payment group code. Added by Raja Ramasamy on 7-oct-2005
295:
307: END IF;
308:
309: x_status := 'CN_PAY_INVALID_PG_CODE';
310: x_loading_status := 'CN_PAY_INVALID_PG_CODE';
311: RAISE FND_API.G_EXC_ERROR;
312: end if;
313:
314: -- Since payment plan names are unique in an org, check if a record already exists with the same name.
315:
337: END IF;
338:
339: x_loading_status := 'CN_INVALID_CREDIT_TYPE';
340: CLOSE get_credit_type_id;
341: RAISE FND_API.G_EXC_ERROR;
342: END IF;
343:
344: CLOSE get_credit_type_id;
345:
358: fnd_msg_pub.add;
359: END IF;
360: x_loading_status := 'CN_INVALID_PAY_INTERVAL';
361: CLOSE get_pay_interval_type_id;
362: RAISE FND_API.G_EXC_ERROR;
363: END IF;
364: CLOSE get_pay_interval_type_id;
365: END IF;
366:
372: FND_MSG_PUB.Count_And_Get
373: (
374: p_count => x_msg_count,
375: p_data => x_msg_data,
376: p_encoded => FND_API.G_FALSE
377: );
378:
379: EXCEPTION
380: WHEN FND_API.G_EXC_ERROR THEN
376: p_encoded => FND_API.G_FALSE
377: );
378:
379: EXCEPTION
380: WHEN FND_API.G_EXC_ERROR THEN
381: x_return_status := FND_API.G_RET_STS_ERROR ;
382:
383: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
384: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
377: );
378:
379: EXCEPTION
380: WHEN FND_API.G_EXC_ERROR THEN
381: x_return_status := FND_API.G_RET_STS_ERROR ;
382:
383: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
384: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
385: x_loading_status := 'UNEXPECTED_ERR';
379: EXCEPTION
380: WHEN FND_API.G_EXC_ERROR THEN
381: x_return_status := FND_API.G_RET_STS_ERROR ;
382:
383: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
384: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
385: x_loading_status := 'UNEXPECTED_ERR';
386:
387: WHEN OTHERS THEN
380: WHEN FND_API.G_EXC_ERROR THEN
381: x_return_status := FND_API.G_RET_STS_ERROR ;
382:
383: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
384: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
385: x_loading_status := 'UNEXPECTED_ERR';
386:
387: WHEN OTHERS THEN
388: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
384: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
385: x_loading_status := 'UNEXPECTED_ERR';
386:
387: WHEN OTHERS THEN
388: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
389: x_loading_status := 'UNEXPECTED_ERR';
390: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
391: THEN
392: FND_MSG_PUB.Add_Exc_Msg( L_PKG_NAME ,l_api_name );
460: SAVEPOINT Create_PmtPlan;
461: --
462: -- Standard call to check for call compatibility.
463: --
464: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
465: p_api_version ,
466: l_api_name ,
467: L_PKG_NAME )
468: THEN
465: p_api_version ,
466: l_api_name ,
467: L_PKG_NAME )
468: THEN
469: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
470: END IF;
471: --
472: -- Initialize message list if p_init_msg_list is set to TRUE.
473: --
470: END IF;
471: --
472: -- Initialize message list if p_init_msg_list is set to TRUE.
473: --
474: IF FND_API.to_Boolean( p_init_msg_list ) THEN
475: FND_MSG_PUB.initialize;
476: END IF;
477: --
478: -- Initialize API return status to success
476: END IF;
477: --
478: -- Initialize API return status to success
479: --
480: x_return_status := FND_API.G_RET_STS_SUCCESS;
481: x_loading_status := 'CN_INSERTED';
482: --
483: -- API body
484: --
497: x_loading_status => x_loading_status,
498: x_status => x_status
499: );
500:
501: IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
502: RAISE FND_API.G_EXC_ERROR ;
503: ELSIF ( x_return_status = FND_API.G_RET_STS_SUCCESS ) AND ( x_status <> 'PMT PLAN EXISTS' )
504: THEN
505:
498: x_status => x_status
499: );
500:
501: IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
502: RAISE FND_API.G_EXC_ERROR ;
503: ELSIF ( x_return_status = FND_API.G_RET_STS_SUCCESS ) AND ( x_status <> 'PMT PLAN EXISTS' )
504: THEN
505:
506: get_PmtPlan_id(
499: );
500:
501: IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
502: RAISE FND_API.G_EXC_ERROR ;
503: ELSIF ( x_return_status = FND_API.G_RET_STS_SUCCESS ) AND ( x_status <> 'PMT PLAN EXISTS' )
504: THEN
505:
506: get_PmtPlan_id(
507: x_return_status => x_return_status,
572: END IF;
573:
574: x_status := 'CN_INV_PAY_INT_AND_REC';
575: x_loading_status := 'CCN_INV_PAY_INT_AND_REC';
576: RAISE FND_API.G_EXC_ERROR;
577: end if;
578:
579: end if;
580:
590: END IF;
591:
592: x_status := 'CN_INVALID_REC_AND_PAC';
593: x_loading_status := 'CCN_INVALID_REC_AND_PAC';
594: RAISE FND_API.G_EXC_ERROR;
595: END IF;
596:
597: -- added on 02/nov/2001 only the additional and
598: IF nvl(l_recoverable_interval_type_id,0) NOT IN ( -1001, -1002 ) AND
606: END IF;
607:
608: x_status := 'CN_INVALID_REC_AND_PAC';
609: x_loading_status := 'CCN_INVALID_REC_AND_PAC';
610: RAISE FND_API.G_EXC_ERROR;
611: END IF;
612:
613: CN_Pmt_Plans_Pkg.Begin_Record
614: (
662: FND_MESSAGE.SET_NAME ('CN' , 'CN_PMT_PLAN_EXISTS');
663: FND_MSG_PUB.Add;
664: END IF;
665: x_loading_status := 'CN_PMT_PLAN_EXISTS';
666: RAISE FND_API.G_EXC_ERROR ;
667: END IF;
668:
669: -- End of API body.
670:
668:
669: -- End of API body.
670:
671: -- Standard check of p_commit.
672: IF FND_API.To_Boolean( p_commit ) THEN
673: COMMIT WORK;
674: END IF;
675:
676: --
680: FND_MSG_PUB.Count_And_Get
681: (
682: p_count => x_msg_count ,
683: p_data => x_msg_data ,
684: p_encoded => FND_API.G_FALSE
685: );
686:
687: EXCEPTION
688: WHEN FND_API.G_EXC_ERROR THEN
684: p_encoded => FND_API.G_FALSE
685: );
686:
687: EXCEPTION
688: WHEN FND_API.G_EXC_ERROR THEN
689: ROLLBACK TO Create_PmtPlan;
690: x_return_status := FND_API.G_RET_STS_ERROR ;
691: FND_MSG_PUB.Count_And_Get
692: (
686:
687: EXCEPTION
688: WHEN FND_API.G_EXC_ERROR THEN
689: ROLLBACK TO Create_PmtPlan;
690: x_return_status := FND_API.G_RET_STS_ERROR ;
691: FND_MSG_PUB.Count_And_Get
692: (
693: p_count => x_msg_count ,
694: p_data => x_msg_data ,
691: FND_MSG_PUB.Count_And_Get
692: (
693: p_count => x_msg_count ,
694: p_data => x_msg_data ,
695: p_encoded => FND_API.G_FALSE
696: );
697: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
698: ROLLBACK TO Create_PmtPlan;
699: x_loading_status := 'UNEXPECTED_ERR';
693: p_count => x_msg_count ,
694: p_data => x_msg_data ,
695: p_encoded => FND_API.G_FALSE
696: );
697: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
698: ROLLBACK TO Create_PmtPlan;
699: x_loading_status := 'UNEXPECTED_ERR';
700: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
701: FND_MSG_PUB.Count_And_Get
696: );
697: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
698: ROLLBACK TO Create_PmtPlan;
699: x_loading_status := 'UNEXPECTED_ERR';
700: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
701: FND_MSG_PUB.Count_And_Get
702: (
703: p_count => x_msg_count ,
704: p_data => x_msg_data ,
701: FND_MSG_PUB.Count_And_Get
702: (
703: p_count => x_msg_count ,
704: p_data => x_msg_data ,
705: p_encoded => FND_API.G_FALSE
706: );
707: WHEN OTHERS THEN
708: ROLLBACK TO Create_PmtPlan;
709: x_loading_status := 'UNEXPECTED_ERR';
706: );
707: WHEN OTHERS THEN
708: ROLLBACK TO Create_PmtPlan;
709: x_loading_status := 'UNEXPECTED_ERR';
710: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
711: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
712: THEN
713: FND_MSG_PUB.Add_Exc_Msg( L_PKG_NAME ,l_api_name );
714: END IF;
715: FND_MSG_PUB.Count_And_Get
716: (
717: p_count => x_msg_count ,
718: p_data => x_msg_data ,
719: p_encoded => FND_API.G_FALSE
720: );
721: END Create_PmtPlan;
722:
723: --
831: SAVEPOINT Update_PmtPlan;
832: --
833: -- Standard call to check for call compatibility.
834: --
835: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
836: p_api_version ,
837: l_api_name ,
838: L_PKG_NAME )
839: THEN
836: p_api_version ,
837: l_api_name ,
838: L_PKG_NAME )
839: THEN
840: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
841: END IF;
842: --
843: -- Initialize message list if p_init_msg_list is set to TRUE.
844: --
841: END IF;
842: --
843: -- Initialize message list if p_init_msg_list is set to TRUE.
844: --
845: IF FND_API.to_Boolean( p_init_msg_list ) THEN
846: FND_MSG_PUB.initialize;
847: END IF;
848: --
849: -- Initialize API return status to success
847: END IF;
848: --
849: -- Initialize API return status to success
850: --
851: x_return_status := FND_API.G_RET_STS_SUCCESS;
852: x_loading_status := 'CN_UPDATED';
853: --
854: -- API body
855: --
904: --
905: --
906: --Validate if start date is less than end date
907: --
908: IF p_pmtplan_rec.start_date <> fnd_api.g_miss_date
909: AND p_pmtplan_rec.start_date IS NULL
910: THEN
911: --Error condition
912: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_error)
915: fnd_msg_pub.add;
916: END IF;
917:
918: x_loading_status := 'CN_PP_SDT_CANNOT_NULL';
919: RAISE FND_API.G_EXC_ERROR;
920: END IF;
921:
922: IF p_pmtplan_rec.start_date IS NOT NULL --start date has been updated
923: THEN
931: fnd_msg_pub.add;
932: END IF;
933:
934: x_loading_status := 'CN_INVALID_DATE_RANGE';
935: RAISE FND_API.G_EXC_ERROR;
936: END IF;
937: ELSE
938: IF l_old_PmtPlan_rec.end_date IS NOT NULL
939: AND (p_PmtPlan_rec.start_date > l_old_pmtPlan_Rec.end_date)
945: fnd_msg_pub.add;
946: END IF;
947:
948: x_loading_status := 'CN_INVALID_DATE_RANGE';
949: RAISE FND_API.G_EXC_ERROR;
950: END IF;
951: END IF;
952:
953: get_PmtPlan_id(
975: fnd_msg_pub.add;
976: END IF;
977:
978: x_loading_status := 'CN_INVALID_OBJECT_VERSION';
979: RAISE FND_API.G_EXC_ERROR;
980:
981: end if;
982:
983: IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS )
979: RAISE FND_API.G_EXC_ERROR;
980:
981: end if;
982:
983: IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS )
984: THEN
985:
986: RAISE fnd_api.g_exc_error;
987:
982:
983: IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS )
984: THEN
985:
986: RAISE fnd_api.g_exc_error;
987:
988: ELSIF x_status <> 'PMT PLAN EXISTS'
989: THEN
990:
995: FND_MSG_PUB.Add;
996: END IF;
997:
998: x_loading_status := 'CN_INVALID_PMT_PLAN';
999: RAISE FND_API.G_EXC_ERROR ;
1000:
1001: END IF;
1002:
1003: SELECT COUNT(1)
1029: FND_MSG_PUB.Add;
1030: END IF;
1031:
1032: x_loading_status := 'CN_REC_FLG_UPD_NA';
1033: RAISE FND_API.G_EXC_ERROR ;
1034: ELSE IF(p_pmtplan_rec.payment_group_code <> l_pp_rec.payment_group_code)
1035: THEN
1036: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1037: THEN
1039: FND_MSG_PUB.Add;
1040: END IF;
1041:
1042: x_loading_status := 'CN_PYMT_GRP_CODE_UPD_NA';
1043: RAISE FND_API.G_EXC_ERROR ;
1044: END IF;
1045: END IF;
1046:
1047: SELECT MIN(start_date)
1074: END IF;
1075:
1076: x_status := 'CN_PMT_PLAN_CHANGE_NA';
1077: x_loading_status := 'CN_PMT_PLAN_CHANGE_NA';
1078: RAISE FND_API.G_EXC_ERROR;
1079:
1080: END IF;
1081:
1082: END IF;
1090: x_loading_status => x_loading_status,
1091: x_status => x_status
1092: );
1093:
1094: IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS)
1095: THEN
1096: RAISE FND_API.G_EXC_ERROR ;
1097: ELSIF ( x_return_status = FND_API.G_RET_STS_SUCCESS )
1098: -- AND ( x_status = 'PMT PLAN EXISTS' )
1092: );
1093:
1094: IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS)
1095: THEN
1096: RAISE FND_API.G_EXC_ERROR ;
1097: ELSIF ( x_return_status = FND_API.G_RET_STS_SUCCESS )
1098: -- AND ( x_status = 'PMT PLAN EXISTS' )
1099: THEN
1100:
1093:
1094: IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS)
1095: THEN
1096: RAISE FND_API.G_EXC_ERROR ;
1097: ELSIF ( x_return_status = FND_API.G_RET_STS_SUCCESS )
1098: -- AND ( x_status = 'PMT PLAN EXISTS' )
1099: THEN
1100:
1101: -- At this point, credit type is already validated in Validate_PmtPlan
1145: END IF;
1146:
1147: x_status := 'CN_INV_PAY_INT_AND_REC';
1148: x_loading_status := 'CN_INV_PAY_INT_AND_REC';
1149: RAISE FND_API.G_EXC_ERROR;
1150:
1151: elsif( l_recoverable_interval_type_id = -1000 and
1152: l_recoverable_interval_type_id <> l_Pay_interval_type_id and
1153: l_pay_interval_type_id = -1001 ) THEN
1159: END IF;
1160:
1161: x_status := 'CN_INV_PAY_INT_AND_REC';
1162: x_loading_status := 'CN_INV_PAY_INT_AND_REC';
1163: RAISE FND_API.G_EXC_ERROR;
1164: end if;
1165: /**End of code Added by sjustina**/
1166: l_pay_against_commission := p_pmtplan_rec.pay_against_commission;
1167:
1180: END IF;
1181:
1182: x_status := 'CN_INV_PAY_INT_AND_REC';
1183: x_loading_status := 'CCN_INV_PAY_INT_AND_REC';
1184: RAISE FND_API.G_EXC_ERROR;
1185:
1186: end if;
1187:
1188: end if;
1197: fnd_msg_pub.add;
1198: END IF;
1199:
1200: x_loading_status := 'CN_INVALID_REC_AND_PAC';
1201: RAISE FND_API.G_EXC_ERROR;
1202: END IF;
1203:
1204: Cn_Pmt_Plans_Pkg.Begin_Record(
1205: x_operation => 'UPDATE',
1248:
1249: -- End of API body.
1250: -- Standard check of p_commit.
1251: --
1252: IF FND_API.To_Boolean( p_commit ) THEN
1253: COMMIT WORK;
1254: END IF;
1255:
1256: --
1259: FND_MSG_PUB.Count_And_Get
1260: (
1261: p_count => x_msg_count ,
1262: p_data => x_msg_data ,
1263: p_encoded => FND_API.G_FALSE
1264: );
1265: EXCEPTION
1266: WHEN FND_API.G_EXC_ERROR THEN
1267: ROLLBACK TO Update_PmtPlan;
1262: p_data => x_msg_data ,
1263: p_encoded => FND_API.G_FALSE
1264: );
1265: EXCEPTION
1266: WHEN FND_API.G_EXC_ERROR THEN
1267: ROLLBACK TO Update_PmtPlan;
1268: x_return_status := FND_API.G_RET_STS_ERROR ;
1269: FND_MSG_PUB.Count_And_Get
1270: (
1264: );
1265: EXCEPTION
1266: WHEN FND_API.G_EXC_ERROR THEN
1267: ROLLBACK TO Update_PmtPlan;
1268: x_return_status := FND_API.G_RET_STS_ERROR ;
1269: FND_MSG_PUB.Count_And_Get
1270: (
1271: p_count => x_msg_count ,
1272: p_data => x_msg_data ,
1269: FND_MSG_PUB.Count_And_Get
1270: (
1271: p_count => x_msg_count ,
1272: p_data => x_msg_data ,
1273: p_encoded => FND_API.G_FALSE
1274: );
1275: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1276: ROLLBACK TO Update_PmtPlan;
1277:
1271: p_count => x_msg_count ,
1272: p_data => x_msg_data ,
1273: p_encoded => FND_API.G_FALSE
1274: );
1275: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1276: ROLLBACK TO Update_PmtPlan;
1277:
1278: x_loading_status := 'UNEXPECTED_ERR';
1279: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1275: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1276: ROLLBACK TO Update_PmtPlan;
1277:
1278: x_loading_status := 'UNEXPECTED_ERR';
1279: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1280: FND_MSG_PUB.Count_And_Get
1281: (
1282: p_count => x_msg_count ,
1283: p_data => x_msg_data ,
1280: FND_MSG_PUB.Count_And_Get
1281: (
1282: p_count => x_msg_count ,
1283: p_data => x_msg_data ,
1284: p_encoded => FND_API.G_FALSE
1285: );
1286: WHEN OTHERS THEN
1287: ROLLBACK TO Update_PmtPlan;
1288: x_loading_status := 'UNEXPECTED_ERR';
1285: );
1286: WHEN OTHERS THEN
1287: ROLLBACK TO Update_PmtPlan;
1288: x_loading_status := 'UNEXPECTED_ERR';
1289: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1290: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1291: THEN
1292: FND_MSG_PUB.Add_Exc_Msg( L_PKG_NAME ,l_api_name );
1293: END IF;
1294: FND_MSG_PUB.Count_And_Get
1295: (
1296: p_count => x_msg_count ,
1297: p_data => x_msg_data ,
1298: p_encoded => FND_API.G_FALSE
1299: );
1300: END Update_PmtPlan;
1301:
1302: --
1340: SAVEPOINT Delete_PmtPlan ;
1341: --
1342: -- Standard call to check for call compatibility.
1343: --
1344: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
1345: p_api_version ,
1346: l_api_name ,
1347: L_PKG_NAME )
1348: THEN
1345: p_api_version ,
1346: l_api_name ,
1347: L_PKG_NAME )
1348: THEN
1349: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1350: END IF;
1351: --
1352: -- Initialize message list if p_init_msg_list is set to TRUE.
1353: --
1350: END IF;
1351: --
1352: -- Initialize message list if p_init_msg_list is set to TRUE.
1353: --
1354: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1355: FND_MSG_PUB.initialize;
1356: END IF;
1357: --
1358: -- Initialize API return status to success
1356: END IF;
1357: --
1358: -- Initialize API return status to success
1359: --
1360: x_return_status := FND_API.G_RET_STS_SUCCESS;
1361: x_loading_status := 'CN_DELETED';
1362: --
1363: -- API Body
1364: --
1378: x_loading_status => x_loading_status,
1379: x_status => x_status
1380: );
1381:
1382: IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS )
1383: THEN
1384:
1385: RAISE fnd_api.g_exc_error;
1386:
1381:
1382: IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS )
1383: THEN
1384:
1385: RAISE fnd_api.g_exc_error;
1386:
1387: ELSIF x_status <> 'PMT PLAN EXISTS'
1388: THEN
1389:
1394: FND_MSG_PUB.Add;
1395: END IF;
1396:
1397: x_loading_status := 'CN_INVALID_PMT_PLAN';
1398: RAISE FND_API.G_EXC_ERROR ;
1399:
1400: END IF;
1401:
1402: -- Payment plan cannot be deleted if there are salesreps assiged to the payment plan
1412: fnd_msg_pub.add;
1413: END IF;
1414:
1415: x_loading_status := 'CN_DELETE_NA';
1416: RAISE FND_API.G_EXC_ERROR;
1417: END IF;
1418:
1419: -- Payment plan cannot be deleted if there are roles assiged to the payment plan
1420: SELECT COUNT(1)
1428: fnd_message.set_name('CN', 'CN_DELETE_NA');
1429: fnd_msg_pub.add;
1430: END IF;
1431: x_loading_status := 'CN_DELETE_NA';
1432: RAISE FND_API.G_EXC_ERROR;
1433: END IF;
1434:
1435: cn_pmt_plans_pkg.begin_record
1436: (
1479:
1480: -- End of API body.
1481: -- Standard check of p_commit.
1482:
1483: IF FND_API.To_Boolean( p_commit ) THEN
1484: COMMIT WORK;
1485: END IF;
1486:
1487: --
1490: FND_MSG_PUB.Count_And_Get
1491: (
1492: p_count => x_msg_count ,
1493: p_data => x_msg_data ,
1494: p_encoded => FND_API.G_FALSE
1495: );
1496: EXCEPTION
1497: WHEN FND_API.G_EXC_ERROR THEN
1498: ROLLBACK TO Delete_PmtPlan;
1493: p_data => x_msg_data ,
1494: p_encoded => FND_API.G_FALSE
1495: );
1496: EXCEPTION
1497: WHEN FND_API.G_EXC_ERROR THEN
1498: ROLLBACK TO Delete_PmtPlan;
1499: x_return_status := FND_API.G_RET_STS_ERROR ;
1500: FND_MSG_PUB.Count_And_Get
1501: (
1495: );
1496: EXCEPTION
1497: WHEN FND_API.G_EXC_ERROR THEN
1498: ROLLBACK TO Delete_PmtPlan;
1499: x_return_status := FND_API.G_RET_STS_ERROR ;
1500: FND_MSG_PUB.Count_And_Get
1501: (
1502: p_count => x_msg_count ,
1503: p_data => x_msg_data ,
1500: FND_MSG_PUB.Count_And_Get
1501: (
1502: p_count => x_msg_count ,
1503: p_data => x_msg_data ,
1504: p_encoded => FND_API.G_FALSE
1505: );
1506: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1507: ROLLBACK TO Delete_PmtPlan;
1508: x_loading_status := 'UNEXPECTED_ERR';
1502: p_count => x_msg_count ,
1503: p_data => x_msg_data ,
1504: p_encoded => FND_API.G_FALSE
1505: );
1506: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1507: ROLLBACK TO Delete_PmtPlan;
1508: x_loading_status := 'UNEXPECTED_ERR';
1509: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1510: FND_MSG_PUB.Count_And_Get
1505: );
1506: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1507: ROLLBACK TO Delete_PmtPlan;
1508: x_loading_status := 'UNEXPECTED_ERR';
1509: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1510: FND_MSG_PUB.Count_And_Get
1511: (
1512: p_count => x_msg_count ,
1513: p_data => x_msg_data ,
1510: FND_MSG_PUB.Count_And_Get
1511: (
1512: p_count => x_msg_count ,
1513: p_data => x_msg_data ,
1514: p_encoded => FND_API.G_FALSE
1515: );
1516: WHEN OTHERS THEN
1517: ROLLBACK TO Delete_PmtPlan;
1518: x_loading_status := 'UNEXPECTED_ERR';
1515: );
1516: WHEN OTHERS THEN
1517: ROLLBACK TO Delete_PmtPlan;
1518: x_loading_status := 'UNEXPECTED_ERR';
1519: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1520: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1521: THEN
1522: FND_MSG_PUB.Add_Exc_Msg( L_PKG_NAME ,l_api_name );
1523: END IF;
1524: FND_MSG_PUB.Count_And_Get
1525: (
1526: p_count => x_msg_count ,
1527: p_data => x_msg_data ,
1528: p_encoded => FND_API.G_FALSE
1529: );
1530:
1531: END Delete_PmtPlan;
1532: