48: SAVEPOINT Refresh_Payrun;
49: --
50: -- Standard call to check for call compatibility.
51: --
52: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
53: p_api_version ,
54: l_api_name ,
55: G_PKG_NAME )
56: THEN
53: p_api_version ,
54: l_api_name ,
55: G_PKG_NAME )
56: THEN
57: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
58: END IF;
59: --
60: -- Initialize message list if p_init_msg_list is set to TRUE.
61: --
58: END IF;
59: --
60: -- Initialize message list if p_init_msg_list is set to TRUE.
61: --
62: IF FND_API.to_Boolean( p_init_msg_list ) THEN
63: FND_MSG_PUB.initialize;
64: END IF;
65: --
66: -- Initialize API return status to success
64: END IF;
65: --
66: -- Initialize API return status to success
67: --
68: x_return_status := FND_API.G_RET_STS_SUCCESS;
69: x_loading_status := 'CN_DELETED';
70: --
71: -- API Body
72: --
80: fnd_message.set_name('CN', 'CN_PAYRUN_DOES_NOT_EXIST');
81: fnd_msg_pub.add;
82: END IF;
83: x_loading_status := 'CN_PAYRUN_DOES_NOT_EXIST';
84: RAISE FND_API.G_EXC_ERROR;
85: END IF;
86:
87: CLOSE get_old_record;
88:
92: fnd_message.set_name('CN', 'CN_PAYRUN_PAID');
93: fnd_msg_pub.add;
94: END IF;
95: x_loading_status := 'CN_PAYRUN_PAID';
96: RAISE FND_API.G_EXC_ERROR;
97: END IF;
98:
99: IF l_old_record.status = 'FROZEN' THEN
100: --Error condition
102: fnd_message.set_name('CN', 'CN_PAYRUN_FROZEN');
103: fnd_msg_pub.add;
104: END IF;
105: x_loading_status := 'CN_PAYRUN_FROZEN';
106: RAISE FND_API.G_EXC_ERROR;
107: END IF;
108:
109: -- Section included by Sundar Venkat on 07 Mar 2002
110: -- Procedure to check if the payrun action is valid.
109: -- Section included by Sundar Venkat on 07 Mar 2002
110: -- Procedure to check if the payrun action is valid.
111: CN_PAYMENT_SECURITY_PVT.Payrun_Action
112: ( p_api_version => 1.0,
113: p_init_msg_list => fnd_api.g_true,
114: p_validation_level => fnd_api.g_valid_level_full,
115: x_return_status => x_return_status,
116: x_msg_count => x_msg_count,
117: x_msg_data => x_msg_data,
110: -- Procedure to check if the payrun action is valid.
111: CN_PAYMENT_SECURITY_PVT.Payrun_Action
112: ( p_api_version => 1.0,
113: p_init_msg_list => fnd_api.g_true,
114: p_validation_level => fnd_api.g_valid_level_full,
115: x_return_status => x_return_status,
116: x_msg_count => x_msg_count,
117: x_msg_data => x_msg_data,
118: p_payrun_id => p_payrun_id,
118: p_payrun_id => p_payrun_id,
119: p_action => 'REFRESH'
120: );
121:
122: IF x_return_status <> FND_API.g_ret_sts_success
123: THEN
124: RAISE FND_API.G_EXC_ERROR;
125: END IF;
126:
120: );
121:
122: IF x_return_status <> FND_API.g_ret_sts_success
123: THEN
124: RAISE FND_API.G_EXC_ERROR;
125: END IF;
126:
127:
128: FOR worksheets in get_worksheets(l_old_record.org_id)
129: LOOP
130: cn_payment_worksheet_pvt.update_Worksheet
131: (p_api_version => p_api_version,
132: p_init_msg_list => p_init_msg_list,
133: p_commit => fnd_api.g_false,
134: p_validation_level => p_validation_level,
135: x_return_status => x_return_status,
136: x_msg_count => x_msg_count,
137: x_msg_data => x_msg_data,
141: x_loading_status => x_loading_status,
142: --R12
143: x_ovn => worksheets.object_version_number );
144:
145: IF x_return_status <> FND_API.g_ret_sts_success
146: THEN
147: RAISE FND_API.G_EXC_ERROR;
148: END IF;
149:
143: x_ovn => worksheets.object_version_number );
144:
145: IF x_return_status <> FND_API.g_ret_sts_success
146: THEN
147: RAISE FND_API.G_EXC_ERROR;
148: END IF;
149:
150: END LOOP;
151:
152:
153: -- End of API body.
154: -- Standard check of p_commit.
155:
156: IF FND_API.To_Boolean( p_commit ) THEN
157: COMMIT WORK;
158: END IF;
159:
160: --
163: FND_MSG_PUB.Count_And_Get
164: (
165: p_count => x_msg_count ,
166: p_data => x_msg_data ,
167: p_encoded => FND_API.G_FALSE
168: );
169: EXCEPTION
170: WHEN FND_API.G_EXC_ERROR THEN
171: ROLLBACK TO Refresh_Payrun;
166: p_data => x_msg_data ,
167: p_encoded => FND_API.G_FALSE
168: );
169: EXCEPTION
170: WHEN FND_API.G_EXC_ERROR THEN
171: ROLLBACK TO Refresh_Payrun;
172: x_return_status := FND_API.G_RET_STS_ERROR ;
173: FND_MSG_PUB.Count_And_Get
174: (
168: );
169: EXCEPTION
170: WHEN FND_API.G_EXC_ERROR THEN
171: ROLLBACK TO Refresh_Payrun;
172: x_return_status := FND_API.G_RET_STS_ERROR ;
173: FND_MSG_PUB.Count_And_Get
174: (
175: p_count => x_msg_count ,
176: p_data => x_msg_data ,
173: FND_MSG_PUB.Count_And_Get
174: (
175: p_count => x_msg_count ,
176: p_data => x_msg_data ,
177: p_encoded => FND_API.G_FALSE
178: );
179: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
180: ROLLBACK TO Refresh_Payrun;
181: x_loading_status := 'UNEXPECTED_ERR';
175: p_count => x_msg_count ,
176: p_data => x_msg_data ,
177: p_encoded => FND_API.G_FALSE
178: );
179: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
180: ROLLBACK TO Refresh_Payrun;
181: x_loading_status := 'UNEXPECTED_ERR';
182: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
183: FND_MSG_PUB.Count_And_Get
178: );
179: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
180: ROLLBACK TO Refresh_Payrun;
181: x_loading_status := 'UNEXPECTED_ERR';
182: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
183: FND_MSG_PUB.Count_And_Get
184: (
185: p_count => x_msg_count ,
186: p_data => x_msg_data ,
183: FND_MSG_PUB.Count_And_Get
184: (
185: p_count => x_msg_count ,
186: p_data => x_msg_data ,
187: p_encoded => FND_API.G_FALSE
188: );
189: WHEN OTHERS THEN
190: ROLLBACK TO Refresh_Payrun;
191: x_loading_status := 'UNEXPECTED_ERR';
188: );
189: WHEN OTHERS THEN
190: ROLLBACK TO Refresh_Payrun;
191: x_loading_status := 'UNEXPECTED_ERR';
192: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
193: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
194: THEN
195: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
196: END IF;
197: FND_MSG_PUB.Count_And_Get
198: (
199: p_count => x_msg_count ,
200: p_data => x_msg_data ,
201: p_encoded => FND_API.G_FALSE
202: );
203:
204: END;
205: -- ===========================================================================
406: --
407: -- Set the status
408: --
409: x_loading_status := p_loading_status;
410: x_return_status := FND_API.G_RET_STS_SUCCESS;
411:
412: --
413: -- get Payruns detail, org_id, period_id, pay_date, name
414: --
615: fnd_msg_pub.add;
616: END IF;
617:
618: x_loading_status := 'CN_BATCH_HEADER_FAILED';
619: RAISE FND_API.G_EXC_ERROR;
620:
621: END IF;
622: END IF;
623:
659: fnd_msg_pub.add;
660: END IF;
661:
662: x_loading_status := 'CN_BATCH_LINE_FAILED';
663: RAISE FND_API.G_EXC_ERROR;
664:
665: END IF;
666:
667: end loop;
679: FND_MSG_PUB.Count_And_Get
680: (
681: p_count => x_msg_count,
682: p_data => x_msg_data,
683: p_encoded => FND_API.G_FALSE
684: );
685:
686: EXCEPTION
687: WHEN FND_API.G_EXC_ERROR THEN
683: p_encoded => FND_API.G_FALSE
684: );
685:
686: EXCEPTION
687: WHEN FND_API.G_EXC_ERROR THEN
688: x_return_status := FND_API.G_RET_STS_ERROR ;
689:
690: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
691: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
684: );
685:
686: EXCEPTION
687: WHEN FND_API.G_EXC_ERROR THEN
688: x_return_status := FND_API.G_RET_STS_ERROR ;
689:
690: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
691: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
692: x_loading_status := 'UNEXPECTED_ERR';
686: EXCEPTION
687: WHEN FND_API.G_EXC_ERROR THEN
688: x_return_status := FND_API.G_RET_STS_ERROR ;
689:
690: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
691: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
692: x_loading_status := 'UNEXPECTED_ERR';
693:
694: WHEN OTHERS THEN
687: WHEN FND_API.G_EXC_ERROR THEN
688: x_return_status := FND_API.G_RET_STS_ERROR ;
689:
690: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
691: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
692: x_loading_status := 'UNEXPECTED_ERR';
693:
694: WHEN OTHERS THEN
695: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
691: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
692: x_loading_status := 'UNEXPECTED_ERR';
693:
694: WHEN OTHERS THEN
695: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
696: x_loading_status := 'UNEXPECTED_ERR';
697: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
698: THEN
699: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name );
741: --
742: -- Initialize API return status to success
743: --
744: x_loading_status := p_loading_status ;
745: x_return_status := FND_API.G_RET_STS_SUCCESS;
746:
747: IF p_payrun_id IS NULL THEN
748: --Error condition
749: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_error)
751: fnd_message.set_name('CN', 'CN_INVALID_PAYRUN');
752: fnd_msg_pub.add;
753: END IF;
754: x_loading_status := 'CN_INVALID_PAYRUN';
755: RAISE FND_API.G_EXC_ERROR;
756: END IF;
757:
758:
759: FOR payment IN payment_curs LOOP
771: p_loading_status => x_loading_status,
772: x_loading_status => x_loading_status,
773: x_batch_id => x_batch_id);
774:
775: IF x_return_status <> FND_API.g_ret_sts_success THEN
776: RAISE FND_API.G_EXC_ERROR;
777: END IF;
778: END LOOP;
779:
772: x_loading_status => x_loading_status,
773: x_batch_id => x_batch_id);
774:
775: IF x_return_status <> FND_API.g_ret_sts_success THEN
776: RAISE FND_API.G_EXC_ERROR;
777: END IF;
778: END LOOP;
779:
780:
785: FND_MSG_PUB.Count_And_Get
786: (
787: p_count => x_msg_count,
788: p_data => x_msg_data,
789: p_encoded => FND_API.G_FALSE
790: );
791:
792: EXCEPTION
793: WHEN FND_API.G_EXC_ERROR THEN
789: p_encoded => FND_API.G_FALSE
790: );
791:
792: EXCEPTION
793: WHEN FND_API.G_EXC_ERROR THEN
794: x_return_status := FND_API.G_RET_STS_ERROR ;
795:
796: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
797: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
790: );
791:
792: EXCEPTION
793: WHEN FND_API.G_EXC_ERROR THEN
794: x_return_status := FND_API.G_RET_STS_ERROR ;
795:
796: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
797: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
798: x_loading_status := 'UNEXPECTED_ERR';
792: EXCEPTION
793: WHEN FND_API.G_EXC_ERROR THEN
794: x_return_status := FND_API.G_RET_STS_ERROR ;
795:
796: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
797: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
798: x_loading_status := 'UNEXPECTED_ERR';
799:
800: WHEN OTHERS THEN
793: WHEN FND_API.G_EXC_ERROR THEN
794: x_return_status := FND_API.G_RET_STS_ERROR ;
795:
796: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
797: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
798: x_loading_status := 'UNEXPECTED_ERR';
799:
800: WHEN OTHERS THEN
801: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
797: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
798: x_loading_status := 'UNEXPECTED_ERR';
799:
800: WHEN OTHERS THEN
801: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
802: x_loading_status := 'UNEXPECTED_ERR';
803: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
804: THEN
805: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name );
877: fnd_msg_pub.add;
878: END IF;
879:
880: x_loading_status := 'CN_PE_PAYE_MAPPING';
881: RAISE FND_API.G_EXC_ERROR;
882: END IF;
883:
884: OPEN get_num_pe_mapping(quotas.quota_id);
885: FETCH get_num_pe_mapping INTO l_num_pe_mapping;
893: fnd_msg_pub.add;
894: END IF;
895:
896: x_loading_status := 'CN_PE_MAPPING';
897: RAISE FND_API.G_EXC_ERROR;
898: END IF;
899:
900: END LOOP;
901:
901:
902: RETURN TRUE;
903:
904: EXCEPTION
905: WHEN FND_API.G_EXC_ERROR THEN
906: RETURN FALSE;
907:
908: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
909: x_loading_status := 'UNEXPECTED_ERR';
904: EXCEPTION
905: WHEN FND_API.G_EXC_ERROR THEN
906: RETURN FALSE;
907:
908: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
909: x_loading_status := 'UNEXPECTED_ERR';
910: RETURN FALSE;
911:
912: WHEN OTHERS THEN
956: fnd_msg_pub.add;
957: END IF;
958:
959: x_loading_status := 'CN_INVALID_PAY_DATE';
960: RAISE FND_API.G_EXC_ERROR;
961:
962: END IF;
963:
964: RETURN fnd_api.g_false;
960: RAISE FND_API.G_EXC_ERROR;
961:
962: END IF;
963:
964: RETURN fnd_api.g_false;
965:
966: EXCEPTION
967: WHEN FND_API.G_EXC_ERROR THEN
968: RETURN fnd_api.g_true;
963:
964: RETURN fnd_api.g_false;
965:
966: EXCEPTION
967: WHEN FND_API.G_EXC_ERROR THEN
968: RETURN fnd_api.g_true;
969:
970: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
971: x_loading_status := 'UNEXPECTED_ERR';
964: RETURN fnd_api.g_false;
965:
966: EXCEPTION
967: WHEN FND_API.G_EXC_ERROR THEN
968: RETURN fnd_api.g_true;
969:
970: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
971: x_loading_status := 'UNEXPECTED_ERR';
972: RETURN fnd_api.g_true;
966: EXCEPTION
967: WHEN FND_API.G_EXC_ERROR THEN
968: RETURN fnd_api.g_true;
969:
970: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
971: x_loading_status := 'UNEXPECTED_ERR';
972: RETURN fnd_api.g_true;
973:
974: WHEN OTHERS THEN
968: RETURN fnd_api.g_true;
969:
970: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
971: x_loading_status := 'UNEXPECTED_ERR';
972: RETURN fnd_api.g_true;
973:
974: WHEN OTHERS THEN
975: x_loading_status := 'UNEXPECTED_ERR';
976: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
976: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
977: THEN
978: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
979: END IF;
980: RETURN fnd_api.g_true;
981:
982: END validate_pay_date;
983:
984:
1017: fnd_msg_pub.add;
1018: END IF;
1019:
1020: x_loading_status := 'CN_INVALID_PAYRUN_STATUS';
1021: RAISE FND_API.G_EXC_ERROR;
1022:
1023: END IF;
1024:
1025: RETURN fnd_api.g_false;
1021: RAISE FND_API.G_EXC_ERROR;
1022:
1023: END IF;
1024:
1025: RETURN fnd_api.g_false;
1026:
1027: EXCEPTION
1028: WHEN FND_API.G_EXC_ERROR THEN
1029: RETURN fnd_api.g_true;
1024:
1025: RETURN fnd_api.g_false;
1026:
1027: EXCEPTION
1028: WHEN FND_API.G_EXC_ERROR THEN
1029: RETURN fnd_api.g_true;
1030:
1031: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1032: x_loading_status := 'UNEXPECTED_ERR';
1025: RETURN fnd_api.g_false;
1026:
1027: EXCEPTION
1028: WHEN FND_API.G_EXC_ERROR THEN
1029: RETURN fnd_api.g_true;
1030:
1031: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1032: x_loading_status := 'UNEXPECTED_ERR';
1033: RETURN fnd_api.g_true;
1027: EXCEPTION
1028: WHEN FND_API.G_EXC_ERROR THEN
1029: RETURN fnd_api.g_true;
1030:
1031: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1032: x_loading_status := 'UNEXPECTED_ERR';
1033: RETURN fnd_api.g_true;
1034:
1035: WHEN OTHERS THEN
1029: RETURN fnd_api.g_true;
1030:
1031: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1032: x_loading_status := 'UNEXPECTED_ERR';
1033: RETURN fnd_api.g_true;
1034:
1035: WHEN OTHERS THEN
1036: x_loading_status := 'UNEXPECTED_ERR';
1037:
1038: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1039: THEN
1040: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
1041: END IF;
1042: RETURN fnd_api.g_true;
1043:
1044: END validate_payrun_status;
1045: -- ===========================================================================
1046: --
1087: fnd_msg_pub.add;
1088: END IF;
1089:
1090: x_loading_status := 'CN_NUNIQUE_PAYRUN_NAME';
1091: RAISE FND_API.G_EXC_ERROR;
1092:
1093: END IF;
1094:
1095: RETURN fnd_api.g_false;
1091: RAISE FND_API.G_EXC_ERROR;
1092:
1093: END IF;
1094:
1095: RETURN fnd_api.g_false;
1096:
1097: EXCEPTION
1098: WHEN FND_API.G_EXC_ERROR THEN
1099: RETURN fnd_api.g_true;
1094:
1095: RETURN fnd_api.g_false;
1096:
1097: EXCEPTION
1098: WHEN FND_API.G_EXC_ERROR THEN
1099: RETURN fnd_api.g_true;
1100:
1101: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1102: x_loading_status := 'UNEXPECTED_ERR';
1095: RETURN fnd_api.g_false;
1096:
1097: EXCEPTION
1098: WHEN FND_API.G_EXC_ERROR THEN
1099: RETURN fnd_api.g_true;
1100:
1101: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1102: x_loading_status := 'UNEXPECTED_ERR';
1103: RETURN fnd_api.g_true;
1097: EXCEPTION
1098: WHEN FND_API.G_EXC_ERROR THEN
1099: RETURN fnd_api.g_true;
1100:
1101: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1102: x_loading_status := 'UNEXPECTED_ERR';
1103: RETURN fnd_api.g_true;
1104:
1105: WHEN OTHERS THEN
1099: RETURN fnd_api.g_true;
1100:
1101: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1102: x_loading_status := 'UNEXPECTED_ERR';
1103: RETURN fnd_api.g_true;
1104:
1105: WHEN OTHERS THEN
1106: x_loading_status := 'UNEXPECTED_ERR';
1107:
1108: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1109: THEN
1110: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
1111: END IF;
1112: RETURN fnd_api.g_true;
1113:
1114: END validate_name_unique;
1115:
1116:
1159: fnd_msg_pub.add;
1160: END IF;
1161:
1162: x_loading_status := 'CN_INVALID_PAY_GROUP';
1163: RAISE FND_API.G_EXC_ERROR;
1164:
1165: END IF;
1166:
1167: RETURN fnd_api.g_false;
1163: RAISE FND_API.G_EXC_ERROR;
1164:
1165: END IF;
1166:
1167: RETURN fnd_api.g_false;
1168:
1169: EXCEPTION
1170: WHEN FND_API.G_EXC_ERROR THEN
1171: RETURN fnd_api.g_true;
1166:
1167: RETURN fnd_api.g_false;
1168:
1169: EXCEPTION
1170: WHEN FND_API.G_EXC_ERROR THEN
1171: RETURN fnd_api.g_true;
1172:
1173: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1174: x_loading_status := 'UNEXPECTED_ERR';
1167: RETURN fnd_api.g_false;
1168:
1169: EXCEPTION
1170: WHEN FND_API.G_EXC_ERROR THEN
1171: RETURN fnd_api.g_true;
1172:
1173: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1174: x_loading_status := 'UNEXPECTED_ERR';
1175: RETURN fnd_api.g_true;
1169: EXCEPTION
1170: WHEN FND_API.G_EXC_ERROR THEN
1171: RETURN fnd_api.g_true;
1172:
1173: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1174: x_loading_status := 'UNEXPECTED_ERR';
1175: RETURN fnd_api.g_true;
1176:
1177: WHEN OTHERS THEN
1171: RETURN fnd_api.g_true;
1172:
1173: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1174: x_loading_status := 'UNEXPECTED_ERR';
1175: RETURN fnd_api.g_true;
1176:
1177: WHEN OTHERS THEN
1178: x_loading_status := 'UNEXPECTED_ERR';
1179:
1180: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1181: THEN
1182: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
1183: END IF;
1184: RETURN fnd_api.g_true;
1185:
1186: END validate_pay_group;
1187:
1188:
1236: fnd_msg_pub.add;
1237: END IF;
1238:
1239: x_loading_status := 'CN_INVALID_PAY_PERIOD';
1240: RAISE FND_API.G_EXC_ERROR;
1241:
1242: END IF;
1243:
1244: RETURN fnd_api.g_false;
1240: RAISE FND_API.G_EXC_ERROR;
1241:
1242: END IF;
1243:
1244: RETURN fnd_api.g_false;
1245:
1246: EXCEPTION
1247: WHEN FND_API.G_EXC_ERROR THEN
1248: RETURN fnd_api.g_true;
1243:
1244: RETURN fnd_api.g_false;
1245:
1246: EXCEPTION
1247: WHEN FND_API.G_EXC_ERROR THEN
1248: RETURN fnd_api.g_true;
1249:
1250: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1251: x_loading_status := 'UNEXPECTED_ERR';
1244: RETURN fnd_api.g_false;
1245:
1246: EXCEPTION
1247: WHEN FND_API.G_EXC_ERROR THEN
1248: RETURN fnd_api.g_true;
1249:
1250: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1251: x_loading_status := 'UNEXPECTED_ERR';
1252: RETURN fnd_api.g_true;
1246: EXCEPTION
1247: WHEN FND_API.G_EXC_ERROR THEN
1248: RETURN fnd_api.g_true;
1249:
1250: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1251: x_loading_status := 'UNEXPECTED_ERR';
1252: RETURN fnd_api.g_true;
1253:
1254: WHEN OTHERS THEN
1248: RETURN fnd_api.g_true;
1249:
1250: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1251: x_loading_status := 'UNEXPECTED_ERR';
1252: RETURN fnd_api.g_true;
1253:
1254: WHEN OTHERS THEN
1255: x_loading_status := 'UNEXPECTED_ERR';
1256:
1257: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1258: THEN
1259: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
1260: END IF;
1261: RETURN fnd_api.g_true;
1262:
1263: END validate_pay_period;
1264:
1265:
1308: fnd_msg_pub.add;
1309: END IF;
1310:
1311: x_loading_status := 'CN_UNPAID_PAYRUN_EXISTS';
1312: RAISE FND_API.G_EXC_ERROR;
1313:
1314: END IF;
1315:
1316: RETURN fnd_api.g_false;
1312: RAISE FND_API.G_EXC_ERROR;
1313:
1314: END IF;
1315:
1316: RETURN fnd_api.g_false;
1317:
1318: EXCEPTION
1319: WHEN FND_API.G_EXC_ERROR THEN
1320: RETURN fnd_api.g_true;
1315:
1316: RETURN fnd_api.g_false;
1317:
1318: EXCEPTION
1319: WHEN FND_API.G_EXC_ERROR THEN
1320: RETURN fnd_api.g_true;
1321:
1322: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1323: x_loading_status := 'UNEXPECTED_ERR';
1316: RETURN fnd_api.g_false;
1317:
1318: EXCEPTION
1319: WHEN FND_API.G_EXC_ERROR THEN
1320: RETURN fnd_api.g_true;
1321:
1322: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1323: x_loading_status := 'UNEXPECTED_ERR';
1324: RETURN fnd_api.g_true;
1318: EXCEPTION
1319: WHEN FND_API.G_EXC_ERROR THEN
1320: RETURN fnd_api.g_true;
1321:
1322: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1323: x_loading_status := 'UNEXPECTED_ERR';
1324: RETURN fnd_api.g_true;
1325:
1326: WHEN OTHERS THEN
1320: RETURN fnd_api.g_true;
1321:
1322: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1323: x_loading_status := 'UNEXPECTED_ERR';
1324: RETURN fnd_api.g_true;
1325:
1326: WHEN OTHERS THEN
1327: x_loading_status := 'UNEXPECTED_ERR';
1328:
1329: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1330: THEN
1331: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
1332: END IF;
1333: RETURN fnd_api.g_true;
1334:
1335: END check_unpaid_payrun;
1336:
1337: -- ===========================================================================
1403: fnd_msg_pub.add;
1404: END IF;
1405:
1406: x_loading_status := 'CN_NEWER_PAYRUN_EXISTS';
1407: RAISE FND_API.G_EXC_ERROR;
1408:
1409: END IF;
1410:
1411: RETURN fnd_api.g_false;
1407: RAISE FND_API.G_EXC_ERROR;
1408:
1409: END IF;
1410:
1411: RETURN fnd_api.g_false;
1412:
1413: EXCEPTION
1414: WHEN FND_API.G_EXC_ERROR THEN
1415: RETURN fnd_api.g_true;
1410:
1411: RETURN fnd_api.g_false;
1412:
1413: EXCEPTION
1414: WHEN FND_API.G_EXC_ERROR THEN
1415: RETURN fnd_api.g_true;
1416:
1417: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1418: x_loading_status := 'UNEXPECTED_ERR';
1411: RETURN fnd_api.g_false;
1412:
1413: EXCEPTION
1414: WHEN FND_API.G_EXC_ERROR THEN
1415: RETURN fnd_api.g_true;
1416:
1417: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1418: x_loading_status := 'UNEXPECTED_ERR';
1419: RETURN fnd_api.g_true;
1413: EXCEPTION
1414: WHEN FND_API.G_EXC_ERROR THEN
1415: RETURN fnd_api.g_true;
1416:
1417: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1418: x_loading_status := 'UNEXPECTED_ERR';
1419: RETURN fnd_api.g_true;
1420:
1421: WHEN OTHERS THEN
1415: RETURN fnd_api.g_true;
1416:
1417: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1418: x_loading_status := 'UNEXPECTED_ERR';
1419: RETURN fnd_api.g_true;
1420:
1421: WHEN OTHERS THEN
1422: x_loading_status := 'UNEXPECTED_ERR';
1423:
1424: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1425: THEN
1426: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
1427: END IF;
1428: RETURN fnd_api.g_true;
1429:
1430: END chk_last_paid_prd;
1431:
1432:
1651: END LOOP;
1652:
1653: END LOOP;
1654:
1655: RETURN fnd_api.g_false;
1656:
1657: EXCEPTION
1658: WHEN FND_API.G_EXC_ERROR THEN
1659: RETURN fnd_api.g_true;
1654:
1655: RETURN fnd_api.g_false;
1656:
1657: EXCEPTION
1658: WHEN FND_API.G_EXC_ERROR THEN
1659: RETURN fnd_api.g_true;
1660:
1661: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1662: x_loading_status := 'UNEXPECTED_ERR';
1655: RETURN fnd_api.g_false;
1656:
1657: EXCEPTION
1658: WHEN FND_API.G_EXC_ERROR THEN
1659: RETURN fnd_api.g_true;
1660:
1661: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1662: x_loading_status := 'UNEXPECTED_ERR';
1663: RETURN fnd_api.g_true;
1657: EXCEPTION
1658: WHEN FND_API.G_EXC_ERROR THEN
1659: RETURN fnd_api.g_true;
1660:
1661: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1662: x_loading_status := 'UNEXPECTED_ERR';
1663: RETURN fnd_api.g_true;
1664:
1665: WHEN OTHERS THEN
1659: RETURN fnd_api.g_true;
1660:
1661: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1662: x_loading_status := 'UNEXPECTED_ERR';
1663: RETURN fnd_api.g_true;
1664:
1665: WHEN OTHERS THEN
1666: x_loading_status := 'UNEXPECTED_ERR';
1667:
1668: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1669: THEN
1670: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
1671: END IF;
1672: RETURN fnd_api.g_true;
1673:
1674: END populate_ap_interface;
1675:
1676: -- ===========================================================================
1756: END LOOP;
1757:
1758: END IF;
1759:
1760: RETURN fnd_api.g_false;
1761:
1762: EXCEPTION
1763: WHEN FND_API.G_EXC_ERROR THEN
1764: RETURN fnd_api.g_true;
1759:
1760: RETURN fnd_api.g_false;
1761:
1762: EXCEPTION
1763: WHEN FND_API.G_EXC_ERROR THEN
1764: RETURN fnd_api.g_true;
1765:
1766: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1767: x_loading_status := 'UNEXPECTED_ERR';
1760: RETURN fnd_api.g_false;
1761:
1762: EXCEPTION
1763: WHEN FND_API.G_EXC_ERROR THEN
1764: RETURN fnd_api.g_true;
1765:
1766: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1767: x_loading_status := 'UNEXPECTED_ERR';
1768: RETURN fnd_api.g_true;
1762: EXCEPTION
1763: WHEN FND_API.G_EXC_ERROR THEN
1764: RETURN fnd_api.g_true;
1765:
1766: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1767: x_loading_status := 'UNEXPECTED_ERR';
1768: RETURN fnd_api.g_true;
1769:
1770: WHEN OTHERS THEN
1764: RETURN fnd_api.g_true;
1765:
1766: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1767: x_loading_status := 'UNEXPECTED_ERR';
1768: RETURN fnd_api.g_true;
1769:
1770: WHEN OTHERS THEN
1771: x_loading_status := 'UNEXPECTED_ERR';
1772:
1773: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1774: THEN
1775: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
1776: END IF;
1777: RETURN fnd_api.g_true;
1778:
1779: END populate_ccids;
1780:
1781: -- ===========================================================================
1822: SAVEPOINT Create_Payrun;
1823: --
1824: -- Standard call to check for call compatibility.
1825: --
1826: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
1827: p_api_version ,
1828: l_api_name ,
1829: G_PKG_NAME )
1830: THEN
1827: p_api_version ,
1828: l_api_name ,
1829: G_PKG_NAME )
1830: THEN
1831: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1832: END IF;
1833: --
1834: -- Initialize message list if p_init_msg_list is set to TRUE.
1835: --
1832: END IF;
1833: --
1834: -- Initialize message list if p_init_msg_list is set to TRUE.
1835: --
1836: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1837: FND_MSG_PUB.initialize;
1838: END IF;
1839: --
1840: -- Initialize API return status to success
1838: END IF;
1839: --
1840: -- Initialize API return status to success
1841: --
1842: x_return_status := FND_API.G_RET_STS_SUCCESS;
1843: x_loading_status := 'CN_INSERTED';
1844: --
1845: -- API body
1846: --Added for R12 payment security check begin.
1848: CN_PAYMENT_SECURITY_PVT.g_type_payrun,
1849: CN_PAYMENT_SECURITY_PVT.g_access_payrun_create);
1850: IF ( l_has_access = FALSE)
1851: THEN
1852: RAISE FND_API.G_EXC_ERROR ;
1853: END IF;
1854: --Added for R12 payment security check end.
1855:
1856: -- Mandatory parameters check for name, pay group id, pay period id, pay date
1859: (p_char_para => p_payrun_rec.name,
1860: p_obj_name =>
1861: cn_api.get_lkup_meaning('PAY_RUN_NAME', 'PAY_RUN_VALIDATION_TYPE'),
1862: p_loading_status => x_loading_status,
1863: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
1864: THEN
1865: RAISE FND_API.G_EXC_ERROR ;
1866: END IF;
1867:
1861: cn_api.get_lkup_meaning('PAY_RUN_NAME', 'PAY_RUN_VALIDATION_TYPE'),
1862: p_loading_status => x_loading_status,
1863: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
1864: THEN
1865: RAISE FND_API.G_EXC_ERROR ;
1866: END IF;
1867:
1868: IF ( (cn_api.chk_miss_null_num_para
1869: (p_num_para => p_payrun_rec.pay_group_id,
1869: (p_num_para => p_payrun_rec.pay_group_id,
1870: p_obj_name =>
1871: cn_api.get_lkup_meaning('PAY_GROUP_NAME', 'PAY_RUN_VALIDATION_TYPE'),
1872: p_loading_status => x_loading_status,
1873: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
1874: THEN
1875: RAISE FND_API.G_EXC_ERROR ;
1876: END IF;
1877:
1871: cn_api.get_lkup_meaning('PAY_GROUP_NAME', 'PAY_RUN_VALIDATION_TYPE'),
1872: p_loading_status => x_loading_status,
1873: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
1874: THEN
1875: RAISE FND_API.G_EXC_ERROR ;
1876: END IF;
1877:
1878: IF ( (cn_api.chk_miss_null_num_para
1879: (p_num_para => p_payrun_rec.pay_period_id,
1879: (p_num_para => p_payrun_rec.pay_period_id,
1880: p_obj_name =>
1881: cn_api.get_lkup_meaning('PAY_PERIOD', 'PAY_RUN_VALIDATION_TYPE'),
1882: p_loading_status => x_loading_status,
1883: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
1884: THEN
1885: RAISE FND_API.G_EXC_ERROR ;
1886: END IF;
1887:
1881: cn_api.get_lkup_meaning('PAY_PERIOD', 'PAY_RUN_VALIDATION_TYPE'),
1882: p_loading_status => x_loading_status,
1883: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
1884: THEN
1885: RAISE FND_API.G_EXC_ERROR ;
1886: END IF;
1887:
1888: IF ( (cn_api.chk_miss_null_date_para
1889: (p_date_para => p_payrun_rec.pay_date,
1889: (p_date_para => p_payrun_rec.pay_date,
1890: p_obj_name =>
1891: cn_api.get_lkup_meaning('PAY_DATE', 'PAY_RUN_VALIDATION_TYPE'),
1892: p_loading_status => x_loading_status,
1893: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
1894: THEN
1895: RAISE FND_API.G_EXC_ERROR ;
1896: END IF;
1897:
1891: cn_api.get_lkup_meaning('PAY_DATE', 'PAY_RUN_VALIDATION_TYPE'),
1892: p_loading_status => x_loading_status,
1893: x_loading_status => x_loading_status)) = FND_API.G_TRUE )
1894: THEN
1895: RAISE FND_API.G_EXC_ERROR ;
1896: END IF;
1897:
1898:
1899: -- The following validations are performed by this API
1914: p_pay_group_id => p_payrun_rec.pay_group_id,
1915: -- p_org_id => p_payrun_rec.org_id,
1916: p_loading_status => x_loading_status,
1917: x_loading_status => x_loading_status
1918: ) = fnd_api.g_true
1919: THEN
1920: RAISE fnd_api.g_exc_error;
1921: END IF;
1922:
1916: p_loading_status => x_loading_status,
1917: x_loading_status => x_loading_status
1918: ) = fnd_api.g_true
1919: THEN
1920: RAISE fnd_api.g_exc_error;
1921: END IF;
1922:
1923:
1924: -- Check if newer payruns exist for the current pay group
1928: p_org_id => p_payrun_rec.org_id,
1929: p_pay_period_id => p_payrun_rec.pay_period_id,
1930: p_loading_status => x_loading_status,
1931: x_loading_status => x_loading_status
1932: ) = fnd_api.g_true
1933: THEN
1934: RAISE fnd_api.g_exc_error;
1935: END IF;
1936:
1930: p_loading_status => x_loading_status,
1931: x_loading_status => x_loading_status
1932: ) = fnd_api.g_true
1933: THEN
1934: RAISE fnd_api.g_exc_error;
1935: END IF;
1936:
1937:
1938:
1943: p_pay_date => p_payrun_rec.pay_date,
1944: p_start_date => p_payrun_rec.pay_period_start_date,
1945: p_loading_status => x_loading_status,
1946: x_loading_status => x_loading_status
1947: ) = fnd_api.g_true
1948: THEN
1949: RAISE fnd_api.g_exc_error;
1950: END IF;
1951:
1945: p_loading_status => x_loading_status,
1946: x_loading_status => x_loading_status
1947: ) = fnd_api.g_true
1948: THEN
1949: RAISE fnd_api.g_exc_error;
1950: END IF;
1951:
1952:
1953: IF validate_payrun_status(
1953: IF validate_payrun_status(
1954: p_status => p_payrun_rec.status,
1955: p_loading_status => x_loading_status,
1956: x_loading_status => x_loading_status
1957: ) = fnd_api.g_true
1958: THEN
1959: RAISE fnd_api.g_exc_error;
1960: END IF;
1961:
1955: p_loading_status => x_loading_status,
1956: x_loading_status => x_loading_status
1957: ) = fnd_api.g_true
1958: THEN
1959: RAISE fnd_api.g_exc_error;
1960: END IF;
1961:
1962:
1963: IF validate_name_unique(
1964: p_name => p_payrun_rec.name,
1965: p_org_id => p_payrun_rec.org_id,
1966: p_loading_status => x_loading_status,
1967: x_loading_status => x_loading_status
1968: ) = fnd_api.g_true
1969: THEN
1970: RAISE fnd_api.g_exc_error;
1971: END IF;
1972:
1966: p_loading_status => x_loading_status,
1967: x_loading_status => x_loading_status
1968: ) = fnd_api.g_true
1969: THEN
1970: RAISE fnd_api.g_exc_error;
1971: END IF;
1972:
1973:
1974: IF validate_pay_group(
1974: IF validate_pay_group(
1975: p_pay_group_id => p_payrun_rec.pay_group_id,
1976: p_loading_status => x_loading_status,
1977: x_loading_status => x_loading_status
1978: ) = fnd_api.g_true
1979: THEN
1980: RAISE fnd_api.g_exc_error;
1981: END IF;
1982:
1976: p_loading_status => x_loading_status,
1977: x_loading_status => x_loading_status
1978: ) = fnd_api.g_true
1979: THEN
1980: RAISE fnd_api.g_exc_error;
1981: END IF;
1982:
1983:
1984: IF validate_pay_period(
1985: p_pay_group_id => p_payrun_rec.pay_group_id,
1986: p_pay_period_id => p_payrun_rec.pay_period_id,
1987: p_loading_status => x_loading_status,
1988: x_loading_status => x_loading_status
1989: ) = fnd_api.g_true
1990: THEN
1991: RAISE fnd_api.g_exc_error;
1992: END IF;
1993:
1987: p_loading_status => x_loading_status,
1988: x_loading_status => x_loading_status
1989: ) = fnd_api.g_true
1990: THEN
1991: RAISE fnd_api.g_exc_error;
1992: END IF;
1993:
1994: IF p_payrun_rec.incentive_type_code NOT IN ('ALL', 'COMMISSION', 'BONUS')
1995: THEN
2000: fnd_msg_pub.add;
2001: END IF;
2002:
2003: x_loading_status := 'CN_INVALID_INCENTIVE_TYPE';
2004: RAISE FND_API.G_EXC_ERROR;
2005: END IF;
2006:
2007:
2008: l_profile_value := fnd_profile.value('CN_PAY_BY_TRANSACTION');
2014: fnd_message.set_name('CN', 'CN_PAY_BY_TRANSACTION_PROFILE');
2015: fnd_msg_pub.add;
2016: END IF;
2017: x_loading_status := 'CN_PAY_BY_TRANSACTION_PROFILE';
2018: RAISE FND_API.G_EXC_ERROR;
2019: END IF;
2020:
2021: cn_payruns_pkg.insert_record(
2022: x_payrun_id => p_payrun_rec.payrun_id
2061: p_event_name => 'create',
2062: p_payrun_id => p_payrun_rec.payrun_id ) ;
2063:
2064: -- Standard check of p_commit.
2065: IF FND_API.To_Boolean( p_commit ) THEN
2066: COMMIT WORK;
2067: END IF;
2068:
2069: --
2073: FND_MSG_PUB.Count_And_Get
2074: (
2075: p_count => x_msg_count ,
2076: p_data => x_msg_data ,
2077: p_encoded => FND_API.G_FALSE
2078: );
2079:
2080: EXCEPTION
2081: WHEN FND_API.G_EXC_ERROR THEN
2077: p_encoded => FND_API.G_FALSE
2078: );
2079:
2080: EXCEPTION
2081: WHEN FND_API.G_EXC_ERROR THEN
2082: ROLLBACK TO Create_Payrun;
2083: x_return_status := FND_API.G_RET_STS_ERROR ;
2084: FND_MSG_PUB.Count_And_Get
2085: (
2079:
2080: EXCEPTION
2081: WHEN FND_API.G_EXC_ERROR THEN
2082: ROLLBACK TO Create_Payrun;
2083: x_return_status := FND_API.G_RET_STS_ERROR ;
2084: FND_MSG_PUB.Count_And_Get
2085: (
2086: p_count => x_msg_count ,
2087: p_data => x_msg_data ,
2084: FND_MSG_PUB.Count_And_Get
2085: (
2086: p_count => x_msg_count ,
2087: p_data => x_msg_data ,
2088: p_encoded => FND_API.G_FALSE
2089: );
2090: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2091: ROLLBACK TO Create_Payrun;
2092: x_loading_status := 'UNEXPECTED_ERR';
2086: p_count => x_msg_count ,
2087: p_data => x_msg_data ,
2088: p_encoded => FND_API.G_FALSE
2089: );
2090: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2091: ROLLBACK TO Create_Payrun;
2092: x_loading_status := 'UNEXPECTED_ERR';
2093: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2094: FND_MSG_PUB.Count_And_Get
2089: );
2090: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2091: ROLLBACK TO Create_Payrun;
2092: x_loading_status := 'UNEXPECTED_ERR';
2093: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2094: FND_MSG_PUB.Count_And_Get
2095: (
2096: p_count => x_msg_count ,
2097: p_data => x_msg_data ,
2094: FND_MSG_PUB.Count_And_Get
2095: (
2096: p_count => x_msg_count ,
2097: p_data => x_msg_data ,
2098: p_encoded => FND_API.G_FALSE
2099: );
2100: WHEN OTHERS THEN
2101: ROLLBACK TO Create_Payrun;
2102: x_loading_status := 'UNEXPECTED_ERR';
2099: );
2100: WHEN OTHERS THEN
2101: ROLLBACK TO Create_Payrun;
2102: x_loading_status := 'UNEXPECTED_ERR';
2103: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2104: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2105: THEN
2106: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
2107: END IF;
2108: FND_MSG_PUB.Count_And_Get
2109: (
2110: p_count => x_msg_count ,
2111: p_data => x_msg_data ,
2112: p_encoded => FND_API.G_FALSE
2113: );
2114: END Create_Payrun;
2115: -- ===========================================================================
2116: -- Procedure : Update Payrun
2172: -- Standard Start of API savepoint
2173: SAVEPOINT Update_Payrun;
2174:
2175: -- Standard call to check for call compatibility.
2176: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
2177: p_api_version ,
2178: l_api_name ,
2179: G_PKG_NAME )
2180: THEN
2177: p_api_version ,
2178: l_api_name ,
2179: G_PKG_NAME )
2180: THEN
2181: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2182: END IF;
2183:
2184: -- Initialize message list if p_init_msg_list is set to TRUE.
2185: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2181: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2182: END IF;
2183:
2184: -- Initialize message list if p_init_msg_list is set to TRUE.
2185: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2186: FND_MSG_PUB.initialize;
2187: END IF;
2188:
2189: -- Initialize API return status to success
2186: FND_MSG_PUB.initialize;
2187: END IF;
2188:
2189: -- Initialize API return status to success
2190: x_return_status := FND_API.G_RET_STS_SUCCESS;
2191: x_loading_status := 'CN_UPDATED';
2192:
2193: -- API Body
2194: OPEN get_old_record;
2204: fnd_message.set_name ('CN', 'CN_RECORD_CHANGED');
2205: fnd_msg_pub.ADD;
2206: END IF;
2207:
2208: RAISE fnd_api.g_exc_error;
2209: END IF;
2210:
2211:
2212: -- Step 1
2212: -- Step 1
2213: -- Procedure to check if the payrun action is valid.
2214: CN_PAYMENT_SECURITY_PVT.Payrun_Action
2215: ( p_api_version => 1.0,
2216: p_init_msg_list => fnd_api.g_true,
2217: p_validation_level => fnd_api.g_valid_level_full,
2218: x_return_status => x_return_status,
2219: x_msg_count => x_msg_count,
2220: x_msg_data => x_msg_data,
2213: -- Procedure to check if the payrun action is valid.
2214: CN_PAYMENT_SECURITY_PVT.Payrun_Action
2215: ( p_api_version => 1.0,
2216: p_init_msg_list => fnd_api.g_true,
2217: p_validation_level => fnd_api.g_valid_level_full,
2218: x_return_status => x_return_status,
2219: x_msg_count => x_msg_count,
2220: x_msg_data => x_msg_data,
2221: p_payrun_id => p_payrun_id,
2219: x_msg_count => x_msg_count,
2220: x_msg_data => x_msg_data,
2221: p_payrun_id => p_payrun_id,
2222: p_action => p_action ,
2223: p_do_audit => fnd_api.g_false
2224: );
2225:
2226: IF x_return_status <> FND_API.g_ret_sts_success THEN
2227: RAISE FND_API.G_EXC_ERROR;
2222: p_action => p_action ,
2223: p_do_audit => fnd_api.g_false
2224: );
2225:
2226: IF x_return_status <> FND_API.g_ret_sts_success THEN
2227: RAISE FND_API.G_EXC_ERROR;
2228: END IF;
2229:
2230: -- Step 2
2223: p_do_audit => fnd_api.g_false
2224: );
2225:
2226: IF x_return_status <> FND_API.g_ret_sts_success THEN
2227: RAISE FND_API.G_EXC_ERROR;
2228: END IF;
2229:
2230: -- Step 2
2231: -- Check Action Type and perform action accordingly
2238: --Bug fix 2502453
2239:
2240: Refresh_Payrun
2241: ( p_api_version => 1.0,
2242: p_init_msg_list => fnd_api.g_true,
2243: p_commit => fnd_api.g_false,
2244: p_validation_level => fnd_api.g_valid_level_full,
2245: p_payrun_id => p_payrun_id,
2246: x_return_status => x_return_status,
2239:
2240: Refresh_Payrun
2241: ( p_api_version => 1.0,
2242: p_init_msg_list => fnd_api.g_true,
2243: p_commit => fnd_api.g_false,
2244: p_validation_level => fnd_api.g_valid_level_full,
2245: p_payrun_id => p_payrun_id,
2246: x_return_status => x_return_status,
2247: x_msg_count => x_msg_count,
2240: Refresh_Payrun
2241: ( p_api_version => 1.0,
2242: p_init_msg_list => fnd_api.g_true,
2243: p_commit => fnd_api.g_false,
2244: p_validation_level => fnd_api.g_valid_level_full,
2245: p_payrun_id => p_payrun_id,
2246: x_return_status => x_return_status,
2247: x_msg_count => x_msg_count,
2248: x_msg_data => x_msg_data,
2249: x_status => x_status,
2250: x_loading_status => x_loading_status
2251: );
2252:
2253: IF x_return_status <> FND_API.g_ret_sts_success THEN
2254: RAISE FND_API.G_EXC_ERROR;
2255: END IF;
2256:
2257:
2250: x_loading_status => x_loading_status
2251: );
2252:
2253: IF x_return_status <> FND_API.g_ret_sts_success THEN
2254: RAISE FND_API.G_EXC_ERROR;
2255: END IF;
2256:
2257:
2258: ELSIF p_action in ('FREEZE','UNFREEZE') THEN
2266: x_msg_count => x_msg_count,
2267: x_msg_data => x_msg_data,
2268: p_worksheet_id => l_wksht_rec.payment_worksheet_id
2269: );
2270: IF x_return_status <> FND_API.g_ret_sts_success THEN
2271: RAISE FND_API.G_EXC_ERROR;
2272: END IF;
2273: END LOOP;
2274: END IF;
2267: x_msg_data => x_msg_data,
2268: p_worksheet_id => l_wksht_rec.payment_worksheet_id
2269: );
2270: IF x_return_status <> FND_API.g_ret_sts_success THEN
2271: RAISE FND_API.G_EXC_ERROR;
2272: END IF;
2273: END LOOP;
2274: END IF;
2275:
2283: x_return_status => x_return_status,
2284: x_msg_count => x_msg_count,
2285: x_msg_data => x_msg_data);
2286:
2287: IF x_return_status <> FND_API.g_ret_sts_success THEN
2288: RAISE FND_API.G_EXC_ERROR;
2289: END IF;
2290:
2291: END IF;
2284: x_msg_count => x_msg_count,
2285: x_msg_data => x_msg_data);
2286:
2287: IF x_return_status <> FND_API.g_ret_sts_success THEN
2288: RAISE FND_API.G_EXC_ERROR;
2289: END IF;
2290:
2291: END IF;
2292:
2319:
2320: -- End of API body.
2321: -- Standard check of p_commit.
2322:
2323: IF FND_API.To_Boolean( p_commit ) THEN
2324: COMMIT WORK;
2325: END IF;
2326:
2327: -- Standard call to get message count and if count is 1, get message info.
2328: FND_MSG_PUB.Count_And_Get
2329: (
2330: p_count => x_msg_count ,
2331: p_data => x_msg_data ,
2332: p_encoded => FND_API.G_FALSE
2333: );
2334: EXCEPTION
2335: WHEN FND_API.G_EXC_ERROR THEN
2336: ROLLBACK TO Update_Payrun;
2331: p_data => x_msg_data ,
2332: p_encoded => FND_API.G_FALSE
2333: );
2334: EXCEPTION
2335: WHEN FND_API.G_EXC_ERROR THEN
2336: ROLLBACK TO Update_Payrun;
2337: x_return_status := FND_API.G_RET_STS_ERROR ;
2338: FND_MSG_PUB.Count_And_Get
2339: (
2333: );
2334: EXCEPTION
2335: WHEN FND_API.G_EXC_ERROR THEN
2336: ROLLBACK TO Update_Payrun;
2337: x_return_status := FND_API.G_RET_STS_ERROR ;
2338: FND_MSG_PUB.Count_And_Get
2339: (
2340: p_count => x_msg_count ,
2341: p_data => x_msg_data ,
2338: FND_MSG_PUB.Count_And_Get
2339: (
2340: p_count => x_msg_count ,
2341: p_data => x_msg_data ,
2342: p_encoded => FND_API.G_FALSE
2343: );
2344: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2345: ROLLBACK TO Update_Payrun;
2346: x_loading_status := 'UNEXPECTED_ERR';
2340: p_count => x_msg_count ,
2341: p_data => x_msg_data ,
2342: p_encoded => FND_API.G_FALSE
2343: );
2344: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2345: ROLLBACK TO Update_Payrun;
2346: x_loading_status := 'UNEXPECTED_ERR';
2347: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2348: FND_MSG_PUB.Count_And_Get
2343: );
2344: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2345: ROLLBACK TO Update_Payrun;
2346: x_loading_status := 'UNEXPECTED_ERR';
2347: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2348: FND_MSG_PUB.Count_And_Get
2349: (
2350: p_count => x_msg_count ,
2351: p_data => x_msg_data ,
2348: FND_MSG_PUB.Count_And_Get
2349: (
2350: p_count => x_msg_count ,
2351: p_data => x_msg_data ,
2352: p_encoded => FND_API.G_FALSE
2353: );
2354: WHEN OTHERS THEN
2355: ROLLBACK TO Update_Payrun;
2356: x_loading_status := 'UNEXPECTED_ERR';
2353: );
2354: WHEN OTHERS THEN
2355: ROLLBACK TO Update_Payrun;
2356: x_loading_status := 'UNEXPECTED_ERR';
2357: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2358: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2359: THEN
2360: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
2361: END IF;
2362: FND_MSG_PUB.Count_And_Get
2363: (
2364: p_count => x_msg_count ,
2365: p_data => x_msg_data ,
2366: p_encoded => FND_API.G_FALSE
2367: );
2368:
2369: END update_payrun;
2370: -- ===========================================================================
2423: SAVEPOINT Delete_Payrun;
2424: --
2425: -- Standard call to check for call compatibility.
2426: --
2427: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
2428: p_api_version ,
2429: l_api_name ,
2430: G_PKG_NAME )
2431: THEN
2428: p_api_version ,
2429: l_api_name ,
2430: G_PKG_NAME )
2431: THEN
2432: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2433: END IF;
2434: --
2435: -- Initialize message list if p_init_msg_list is set to TRUE.
2436: --
2433: END IF;
2434: --
2435: -- Initialize message list if p_init_msg_list is set to TRUE.
2436: --
2437: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2438: FND_MSG_PUB.initialize;
2439: END IF;
2440: --
2441: -- Initialize API return status to success
2439: END IF;
2440: --
2441: -- Initialize API return status to success
2442: --
2443: x_return_status := FND_API.G_RET_STS_SUCCESS;
2444: x_loading_status := 'CN_DELETED';
2445: --
2446: -- API Body
2447: --
2458: fnd_msg_pub.add;
2459: END IF;
2460:
2461: x_loading_status := 'CN_PAYRUN_DOES_NOT_EXIST';
2462: RAISE FND_API.G_EXC_ERROR;
2463:
2464: END IF;
2465: CLOSE get_old_record;
2466:
2476: fnd_msg_pub.add;
2477: END IF;
2478:
2479: x_loading_status := 'CN_PAYRUN_PAID';
2480: RAISE FND_API.G_EXC_ERROR;
2481:
2482: END IF;
2483:
2484: -- Section included by Sundar Venkat on 07 Mar 2002
2484: -- Section included by Sundar Venkat on 07 Mar 2002
2485: -- Procedure to check if the payrun action is valid.
2486: CN_PAYMENT_SECURITY_PVT.Payrun_Action
2487: ( p_api_version => 1.0,
2488: p_init_msg_list => fnd_api.g_true,
2489: p_validation_level => fnd_api.g_valid_level_full,
2490: x_return_status => x_return_status,
2491: x_msg_count => x_msg_count,
2492: x_msg_data => x_msg_data,
2485: -- Procedure to check if the payrun action is valid.
2486: CN_PAYMENT_SECURITY_PVT.Payrun_Action
2487: ( p_api_version => 1.0,
2488: p_init_msg_list => fnd_api.g_true,
2489: p_validation_level => fnd_api.g_valid_level_full,
2490: x_return_status => x_return_status,
2491: x_msg_count => x_msg_count,
2492: x_msg_data => x_msg_data,
2493: p_payrun_id => p_payrun_id,
2493: p_payrun_id => p_payrun_id,
2494: p_action => 'REMOVE'
2495: );
2496:
2497: IF x_return_status <> FND_API.g_ret_sts_success THEN
2498: RAISE FND_API.G_EXC_ERROR;
2499: END IF;
2500:
2501:
2494: p_action => 'REMOVE'
2495: );
2496:
2497: IF x_return_status <> FND_API.g_ret_sts_success THEN
2498: RAISE FND_API.G_EXC_ERROR;
2499: END IF;
2500:
2501:
2502:
2505:
2506: cn_payment_worksheet_pvt.delete_worksheet(
2507: p_api_version => p_api_version,
2508: p_init_msg_list => p_init_msg_list,
2509: p_commit => fnd_api.g_false,
2510: p_validation_level => p_validation_level,
2511: x_return_status => x_return_status,
2512: x_msg_count => x_msg_count,
2513: x_msg_data => x_msg_data,
2516: x_status => x_status,
2517: x_loading_status => x_loading_status,
2518: p_ovn =>worksheets.object_version_number);
2519:
2520: IF x_return_status <> FND_API.g_ret_sts_success THEN
2521: RAISE FND_API.G_EXC_ERROR;
2522: END IF;
2523:
2524: END LOOP;
2517: x_loading_status => x_loading_status,
2518: p_ovn =>worksheets.object_version_number);
2519:
2520: IF x_return_status <> FND_API.g_ret_sts_success THEN
2521: RAISE FND_API.G_EXC_ERROR;
2522: END IF;
2523:
2524: END LOOP;
2525:
2549: );
2550: END IF;
2551: END IF;
2552:
2553: IF FND_API.To_Boolean( p_commit ) THEN
2554: COMMIT WORK;
2555: END IF;
2556:
2557: --
2560: FND_MSG_PUB.Count_And_Get
2561: (
2562: p_count => x_msg_count ,
2563: p_data => x_msg_data ,
2564: p_encoded => FND_API.G_FALSE
2565: );
2566: EXCEPTION
2567: WHEN FND_API.G_EXC_ERROR THEN
2568: ROLLBACK TO Delete_Payrun;
2563: p_data => x_msg_data ,
2564: p_encoded => FND_API.G_FALSE
2565: );
2566: EXCEPTION
2567: WHEN FND_API.G_EXC_ERROR THEN
2568: ROLLBACK TO Delete_Payrun;
2569: x_return_status := FND_API.G_RET_STS_ERROR ;
2570: FND_MSG_PUB.Count_And_Get
2571: (
2565: );
2566: EXCEPTION
2567: WHEN FND_API.G_EXC_ERROR THEN
2568: ROLLBACK TO Delete_Payrun;
2569: x_return_status := FND_API.G_RET_STS_ERROR ;
2570: FND_MSG_PUB.Count_And_Get
2571: (
2572: p_count => x_msg_count ,
2573: p_data => x_msg_data ,
2570: FND_MSG_PUB.Count_And_Get
2571: (
2572: p_count => x_msg_count ,
2573: p_data => x_msg_data ,
2574: p_encoded => FND_API.G_FALSE
2575: );
2576: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2577: ROLLBACK TO Delete_Payrun;
2578: x_loading_status := 'UNEXPECTED_ERR';
2572: p_count => x_msg_count ,
2573: p_data => x_msg_data ,
2574: p_encoded => FND_API.G_FALSE
2575: );
2576: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2577: ROLLBACK TO Delete_Payrun;
2578: x_loading_status := 'UNEXPECTED_ERR';
2579: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2580: FND_MSG_PUB.Count_And_Get
2575: );
2576: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2577: ROLLBACK TO Delete_Payrun;
2578: x_loading_status := 'UNEXPECTED_ERR';
2579: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2580: FND_MSG_PUB.Count_And_Get
2581: (
2582: p_count => x_msg_count ,
2583: p_data => x_msg_data ,
2580: FND_MSG_PUB.Count_And_Get
2581: (
2582: p_count => x_msg_count ,
2583: p_data => x_msg_data ,
2584: p_encoded => FND_API.G_FALSE
2585: );
2586: WHEN OTHERS THEN
2587: ROLLBACK TO Delete_Payrun;
2588: x_loading_status := 'UNEXPECTED_ERR';
2585: );
2586: WHEN OTHERS THEN
2587: ROLLBACK TO Delete_Payrun;
2588: x_loading_status := 'UNEXPECTED_ERR';
2589: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2590: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2591: THEN
2592: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
2593: END IF;
2594: FND_MSG_PUB.Count_And_Get
2595: (
2596: p_count => x_msg_count ,
2597: p_data => x_msg_data ,
2598: p_encoded => FND_API.G_FALSE
2599: );
2600:
2601: END Delete_Payrun;
2602:
2605: -- Description: Approve all whskt before pay a payrun
2606: -- ===========================================================================
2607:
2608: PROCEDURE Pay_Payrun_Approve_Wksht
2609: (p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2610: x_return_status OUT NOCOPY VARCHAR2,
2611: x_msg_count OUT NOCOPY NUMBER,
2612: x_msg_data OUT NOCOPY VARCHAR2,
2613: p_payrun_id IN cn_payruns.payrun_id%TYPE )
2635: SAVEPOINT Pay_Payrun_Approve_Wksht;
2636: --
2637: -- Initialize API return status to success
2638: --
2639: x_return_status := FND_API.G_RET_STS_SUCCESS;
2640: --
2641: -- API body
2642: --
2643:
2651: x_msg_data => x_msg_data,
2652: p_worksheet_id => unpaid_rec.payment_worksheet_id
2653: );
2654:
2655: IF x_return_status <> FND_API.g_ret_sts_success THEN
2656: RAISE FND_API.G_EXC_ERROR;
2657: END IF;
2658:
2659: -- validate lock and audit worksheet
2652: p_worksheet_id => unpaid_rec.payment_worksheet_id
2653: );
2654:
2655: IF x_return_status <> FND_API.g_ret_sts_success THEN
2656: RAISE FND_API.G_EXC_ERROR;
2657: END IF;
2658:
2659: -- validate lock and audit worksheet
2660: cn_payment_security_pvt.worksheet_action(p_api_version => 1.0,
2657: END IF;
2658:
2659: -- validate lock and audit worksheet
2660: cn_payment_security_pvt.worksheet_action(p_api_version => 1.0,
2661: p_init_msg_list => fnd_api.g_false,
2662: p_commit => 'F',
2663: p_validation_level => p_validation_level,
2664: x_return_status => x_return_status,
2665: x_msg_count => x_msg_count,
2665: x_msg_count => x_msg_count,
2666: x_msg_data => x_msg_data,
2667: p_worksheet_id => unpaid_rec.payment_worksheet_id,
2668: p_action => 'LOCK',
2669: p_do_audit => fnd_api.g_true
2670: );
2671:
2672: IF x_return_status <> FND_API.g_ret_sts_success THEN
2673: RAISE FND_API.G_EXC_ERROR;
2668: p_action => 'LOCK',
2669: p_do_audit => fnd_api.g_true
2670: );
2671:
2672: IF x_return_status <> FND_API.g_ret_sts_success THEN
2673: RAISE FND_API.G_EXC_ERROR;
2674: END IF;
2675: END LOOP;
2676:
2669: p_do_audit => fnd_api.g_true
2670: );
2671:
2672: IF x_return_status <> FND_API.g_ret_sts_success THEN
2673: RAISE FND_API.G_EXC_ERROR;
2674: END IF;
2675: END LOOP;
2676:
2677: -- Approve all wksht
2677: -- Approve all wksht
2678: FOR unapprove_rec IN get_unapprove_wksht LOOP
2679: -- validate
2680: cn_payment_security_pvt.worksheet_action(p_api_version => 1.0,
2681: p_init_msg_list => fnd_api.g_false,
2682: p_commit => 'F',
2683: p_validation_level => p_validation_level,
2684: x_return_status => x_return_status,
2685: x_msg_count => x_msg_count,
2685: x_msg_count => x_msg_count,
2686: x_msg_data => x_msg_data,
2687: p_worksheet_id => unapprove_rec.payment_worksheet_id,
2688: p_action => 'APPROVE',
2689: p_do_audit => fnd_api.g_false
2690: );
2691:
2692: -- set wksht audit
2693: CN_PAYMENT_SECURITY_PVT.Worksheet_Audit
2694: (p_worksheet_id => unapprove_rec.payment_worksheet_id,
2695: p_payrun_id => p_payrun_id,
2696: p_salesrep_id => unapprove_rec.salesrep_id,
2697: p_action => 'APPROVE',
2698: p_do_approval_flow => FND_API.G_FALSE,
2699: x_return_status => x_return_status,
2700: x_msg_count => x_msg_count,
2701: x_msg_data => x_msg_data);
2702:
2699: x_return_status => x_return_status,
2700: x_msg_count => x_msg_count,
2701: x_msg_data => x_msg_data);
2702:
2703: IF x_return_status <> FND_API.g_ret_sts_success THEN
2704: RAISE FND_API.G_EXC_ERROR;
2705: END IF;
2706: END LOOP;
2707:
2700: x_msg_count => x_msg_count,
2701: x_msg_data => x_msg_data);
2702:
2703: IF x_return_status <> FND_API.g_ret_sts_success THEN
2704: RAISE FND_API.G_EXC_ERROR;
2705: END IF;
2706: END LOOP;
2707:
2708: -- End of API body
2713:
2714: FND_MSG_PUB.Count_And_Get
2715: (p_count => x_msg_count ,
2716: p_data => x_msg_data ,
2717: p_encoded => FND_API.G_FALSE);
2718:
2719: EXCEPTION
2720: WHEN FND_API.G_EXC_ERROR THEN
2721: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2716: p_data => x_msg_data ,
2717: p_encoded => FND_API.G_FALSE);
2718:
2719: EXCEPTION
2720: WHEN FND_API.G_EXC_ERROR THEN
2721: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2722: x_return_status := FND_API.G_RET_STS_ERROR ;
2723: FND_MSG_PUB.Count_And_Get
2724: (p_count => x_msg_count ,
2718:
2719: EXCEPTION
2720: WHEN FND_API.G_EXC_ERROR THEN
2721: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2722: x_return_status := FND_API.G_RET_STS_ERROR ;
2723: FND_MSG_PUB.Count_And_Get
2724: (p_count => x_msg_count ,
2725: p_data => x_msg_data ,
2726: p_encoded => FND_API.G_FALSE
2722: x_return_status := FND_API.G_RET_STS_ERROR ;
2723: FND_MSG_PUB.Count_And_Get
2724: (p_count => x_msg_count ,
2725: p_data => x_msg_data ,
2726: p_encoded => FND_API.G_FALSE
2727: );
2728: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2729: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2730: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2724: (p_count => x_msg_count ,
2725: p_data => x_msg_data ,
2726: p_encoded => FND_API.G_FALSE
2727: );
2728: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2729: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2730: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2731: FND_MSG_PUB.Count_And_Get
2732: (
2726: p_encoded => FND_API.G_FALSE
2727: );
2728: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2729: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2730: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2731: FND_MSG_PUB.Count_And_Get
2732: (
2733: p_count => x_msg_count ,
2734: p_data => x_msg_data ,
2731: FND_MSG_PUB.Count_And_Get
2732: (
2733: p_count => x_msg_count ,
2734: p_data => x_msg_data ,
2735: p_encoded => FND_API.G_FALSE
2736: );
2737: WHEN OTHERS THEN
2738: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2739: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2735: p_encoded => FND_API.G_FALSE
2736: );
2737: WHEN OTHERS THEN
2738: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2739: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2740: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2741: THEN
2742: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
2743: END IF;
2744: FND_MSG_PUB.Count_And_Get
2745: (
2746: p_count => x_msg_count ,
2747: p_data => x_msg_data ,
2748: p_encoded => FND_API.G_FALSE
2749: );
2750: END Pay_Payrun_Approve_Wksht;
2751:
2752: -- ===========================================================================
2980: SAVEPOINT Pay_Payrun;
2981: --
2982: -- Standard call to check for call compatibility.
2983: --
2984: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
2985: p_api_version ,
2986: l_api_name ,
2987: G_PKG_NAME )
2988: THEN
2985: p_api_version ,
2986: l_api_name ,
2987: G_PKG_NAME )
2988: THEN
2989: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2990: END IF;
2991: --
2992: -- Initialize message list if p_init_msg_list is set to TRUE.
2993: --
2990: END IF;
2991: --
2992: -- Initialize message list if p_init_msg_list is set to TRUE.
2993: --
2994: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2995: FND_MSG_PUB.initialize;
2996: END IF;
2997: --
2998: -- Initialize API return status to success
2996: END IF;
2997: --
2998: -- Initialize API return status to success
2999: --
3000: x_return_status := FND_API.G_RET_STS_SUCCESS;
3001: x_loading_status := 'CN_UPDATED';
3002:
3003:
3004:
3007: (p_num_para => p_payrun_id,
3008: p_obj_name =>
3009: cn_api.get_lkup_meaning('PAY_RUN_NAME', 'PAY_RUN_VALIDATION_TYPE'),
3010: p_loading_status => x_loading_status,
3011: x_loading_status => x_loading_status)) = FND_API.G_TRUE)
3012: THEN
3013: RAISE FND_API.G_EXC_ERROR ;
3014: END IF;
3015:
3009: cn_api.get_lkup_meaning('PAY_RUN_NAME', 'PAY_RUN_VALIDATION_TYPE'),
3010: p_loading_status => x_loading_status,
3011: x_loading_status => x_loading_status)) = FND_API.G_TRUE)
3012: THEN
3013: RAISE FND_API.G_EXC_ERROR ;
3014: END IF;
3015:
3016: OPEN get_payrun;
3017: FETCH get_payrun INTO l_payrun_rec;
3024: END IF;
3025:
3026: x_loading_status := 'CN_INVALID_PAYRUN';
3027: CLOSE get_payrun;
3028: RAISE FND_API.G_EXC_ERROR;
3029:
3030: END IF;
3031: CLOSE get_payrun;
3032: l_status_meaning := l_payrun_rec.statusmeaning;
3038: x_msg_count => x_msg_count,
3039: x_msg_data => x_msg_data,
3040: p_payrun_id => p_payrun_id,
3041: p_action => 'PAY');
3042: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3043: RAISE FND_API.G_EXC_ERROR;
3044: END IF;
3045:
3046: -- Need to auto-approve all wkshts if CN_CHK_WKSHT_STATUS = N
3039: x_msg_data => x_msg_data,
3040: p_payrun_id => p_payrun_id,
3041: p_action => 'PAY');
3042: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3043: RAISE FND_API.G_EXC_ERROR;
3044: END IF;
3045:
3046: -- Need to auto-approve all wkshts if CN_CHK_WKSHT_STATUS = N
3047: IF nvl(fnd_profile.value('CN_CHK_WKSHT_STATUS'), 'Y') = 'N' THEN
3050: (x_return_status => x_return_status,
3051: x_msg_count => x_msg_count,
3052: x_msg_data => x_msg_data,
3053: p_payrun_id => p_payrun_id);
3054: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3055: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3056: END IF;
3057: END IF;
3058:
3051: x_msg_count => x_msg_count,
3052: x_msg_data => x_msg_data,
3053: p_payrun_id => p_payrun_id);
3054: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3055: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3056: END IF;
3057: END IF;
3058:
3059: -- Check if AP / Payroll integration has been enabled.
3068: p_pay_date =>l_payrun_rec.pay_date,
3069: p_loading_status =>x_loading_status,
3070: x_loading_status =>x_loading_status)
3071: THEN
3072: RAISE fnd_api.g_exc_error;
3073: END IF;
3074: END IF;
3075:
3076: -- process hold transactions
3221: x_msg_data => x_msg_data,
3222: p_del_srp_prd_rec => l_srp_prd_rec,
3223: x_loading_status => l_loading_status);
3224:
3225: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
3226: THEN
3227: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3228: END IF;
3229: END LOOP; -- end get_srp_period cursor loop
3223: x_loading_status => l_loading_status);
3224:
3225: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
3226: THEN
3227: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3228: END IF;
3229: END LOOP; -- end get_srp_period cursor loop
3230:
3231: -- quota not active in this period, use carry over quota
3255: x_msg_data => x_msg_data,
3256: p_del_srp_prd_rec => l_srp_prd_rec,
3257: x_loading_status => l_loading_status);
3258:
3259: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
3260: THEN
3261: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3262: END IF;
3263: END IF; -- end IF get_srp_period%ROWCOUNT = 0 THEN
3257: x_loading_status => l_loading_status);
3258:
3259: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
3260: THEN
3261: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3262: END IF;
3263: END IF; -- end IF get_srp_period%ROWCOUNT = 0 THEN
3264:
3265: CLOSE get_srp_period;
3321: (p_payrun_id => p_payrun_id,
3322: x_return_status => x_return_status,
3323: x_msg_count => x_msg_count,
3324: x_msg_data => x_msg_data);
3325: if x_return_status <> FND_API.G_RET_STS_SUCCESS then
3326: RAISE FND_API.G_EXC_ERROR;
3327: end if;
3328:
3329: -- use if AP / Payroll integration has been enabled.
3322: x_return_status => x_return_status,
3323: x_msg_count => x_msg_count,
3324: x_msg_data => x_msg_data);
3325: if x_return_status <> FND_API.G_RET_STS_SUCCESS then
3326: RAISE FND_API.G_EXC_ERROR;
3327: end if;
3328:
3329: -- use if AP / Payroll integration has been enabled.
3330: IF l_payables_flag = 'Y'
3333: /* IF (populate_ccids
3334: (p_payrun_id => p_payrun_id,
3335: p_loading_status => x_loading_status,
3336: x_loading_status => x_loading_status
3337: )) = fnd_api.g_true
3338: THEN
3339: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3340: END IF;
3341: */
3335: p_loading_status => x_loading_status,
3336: x_loading_status => x_loading_status
3337: )) = fnd_api.g_true
3338: THEN
3339: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3340: END IF;
3341: */
3342:
3343: -- populate ap interface
3344: IF (populate_ap_interface
3345: (p_payrun_id => p_payrun_id,
3346: p_loading_status => x_loading_status,
3347: x_loading_status => x_loading_status
3348: )) = fnd_api.g_true
3349: THEN
3350: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3351: END IF;
3352:
3346: p_loading_status => x_loading_status,
3347: x_loading_status => x_loading_status
3348: )) = fnd_api.g_true
3349: THEN
3350: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3351: END IF;
3352:
3353: END IF;
3354: x_loading_status := 'CN_UPDATED';
3364: p_payrun_id => p_payrun_id,
3365: p_loading_status => x_loading_status,
3366: x_loading_status => x_loading_status);
3367:
3368: IF x_return_status <> FND_API.g_ret_sts_success THEN
3369: RAISE FND_API.G_EXC_ERROR;
3370: END IF;
3371: END IF;
3372:
3365: p_loading_status => x_loading_status,
3366: x_loading_status => x_loading_status);
3367:
3368: IF x_return_status <> FND_API.g_ret_sts_success THEN
3369: RAISE FND_API.G_EXC_ERROR;
3370: END IF;
3371: END IF;
3372:
3373: OPEN get_payrun;
3393:
3394:
3395: -- End of API body
3396: -- Standard check of p_commit.
3397: IF FND_API.To_Boolean( p_commit ) THEN
3398: COMMIT WORK;
3399: END IF;
3400:
3401: --
3405: FND_MSG_PUB.Count_And_Get
3406: (
3407: p_count => x_msg_count ,
3408: p_data => x_msg_data ,
3409: p_encoded => FND_API.G_FALSE
3410: );
3411:
3412: EXCEPTION
3413: WHEN FND_API.G_EXC_ERROR THEN
3409: p_encoded => FND_API.G_FALSE
3410: );
3411:
3412: EXCEPTION
3413: WHEN FND_API.G_EXC_ERROR THEN
3414: ROLLBACK TO Pay_Payrun;
3415: x_return_status := FND_API.G_RET_STS_ERROR ;
3416: FND_MSG_PUB.Count_And_Get
3417: (
3411:
3412: EXCEPTION
3413: WHEN FND_API.G_EXC_ERROR THEN
3414: ROLLBACK TO Pay_Payrun;
3415: x_return_status := FND_API.G_RET_STS_ERROR ;
3416: FND_MSG_PUB.Count_And_Get
3417: (
3418: p_count => x_msg_count ,
3419: p_data => x_msg_data ,
3416: FND_MSG_PUB.Count_And_Get
3417: (
3418: p_count => x_msg_count ,
3419: p_data => x_msg_data ,
3420: p_encoded => FND_API.G_FALSE
3421: );
3422: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3423: ROLLBACK TO Pay_Payrun;
3424: x_loading_status := 'UNEXPECTED_ERR';
3418: p_count => x_msg_count ,
3419: p_data => x_msg_data ,
3420: p_encoded => FND_API.G_FALSE
3421: );
3422: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3423: ROLLBACK TO Pay_Payrun;
3424: x_loading_status := 'UNEXPECTED_ERR';
3425: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3426: FND_MSG_PUB.Count_And_Get
3421: );
3422: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3423: ROLLBACK TO Pay_Payrun;
3424: x_loading_status := 'UNEXPECTED_ERR';
3425: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3426: FND_MSG_PUB.Count_And_Get
3427: (
3428: p_count => x_msg_count ,
3429: p_data => x_msg_data ,
3426: FND_MSG_PUB.Count_And_Get
3427: (
3428: p_count => x_msg_count ,
3429: p_data => x_msg_data ,
3430: p_encoded => FND_API.G_FALSE
3431: );
3432: WHEN OTHERS THEN
3433: ROLLBACK TO Pay_Payrun;
3434: x_loading_status := 'UNEXPECTED_ERR';
3431: );
3432: WHEN OTHERS THEN
3433: ROLLBACK TO Pay_Payrun;
3434: x_loading_status := 'UNEXPECTED_ERR';
3435: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3436: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3437: THEN
3438: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
3439: END IF;
3440: FND_MSG_PUB.Count_And_Get
3441: (
3442: p_count => x_msg_count ,
3443: p_data => x_msg_data ,
3444: p_encoded => FND_API.G_FALSE
3445: );
3446: END Pay_Payrun;
3447:
3448: --============================================================================
3506:
3507: --call the create worksheet api
3508: CN_Payrun_PVT.delete_payrun
3509: (p_api_version => 1.0,
3510: p_init_msg_list => fnd_api.g_true,
3511: p_commit => fnd_api.g_false,
3512: p_validation_level => fnd_api.g_valid_level_full,
3513: x_return_status => l_return_status,
3514: x_msg_count => l_msg_count,
3507: --call the create worksheet api
3508: CN_Payrun_PVT.delete_payrun
3509: (p_api_version => 1.0,
3510: p_init_msg_list => fnd_api.g_true,
3511: p_commit => fnd_api.g_false,
3512: p_validation_level => fnd_api.g_valid_level_full,
3513: x_return_status => l_return_status,
3514: x_msg_count => l_msg_count,
3515: x_msg_data => l_msg_data,
3508: CN_Payrun_PVT.delete_payrun
3509: (p_api_version => 1.0,
3510: p_init_msg_list => fnd_api.g_true,
3511: p_commit => fnd_api.g_false,
3512: p_validation_level => fnd_api.g_valid_level_full,
3513: x_return_status => l_return_status,
3514: x_msg_count => l_msg_count,
3515: x_msg_data => l_msg_data,
3516: p_payrun_id => l_payrun_id,
3517: p_validation_only => 'N',
3518: x_status => l_status,
3519: x_loading_status => l_loading_status );
3520:
3521: IF l_return_status <> FND_API.g_ret_sts_success
3522: THEN
3523: retcode := 2;
3524: errbuf := FND_MSG_PUB.get(p_msg_index => fnd_msg_pub.G_LAST,
3525: p_encoded => FND_API.G_FALSE);
3521: IF l_return_status <> FND_API.g_ret_sts_success
3522: THEN
3523: retcode := 2;
3524: errbuf := FND_MSG_PUB.get(p_msg_index => fnd_msg_pub.G_LAST,
3525: p_encoded => FND_API.G_FALSE);
3526: cn_message_pkg.debug('Error for delete payrun : '||errbuf);
3527: ELSE
3528: COMMIT;
3529: END IF;