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: -- ===========================================================================
2431: SAVEPOINT Delete_Payrun;
2432: --
2433: -- Standard call to check for call compatibility.
2434: --
2435: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
2436: p_api_version ,
2437: l_api_name ,
2438: G_PKG_NAME )
2439: THEN
2436: p_api_version ,
2437: l_api_name ,
2438: G_PKG_NAME )
2439: THEN
2440: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2441: END IF;
2442: --
2443: -- Initialize message list if p_init_msg_list is set to TRUE.
2444: --
2441: END IF;
2442: --
2443: -- Initialize message list if p_init_msg_list is set to TRUE.
2444: --
2445: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2446: FND_MSG_PUB.initialize;
2447: END IF;
2448: --
2449: -- Initialize API return status to success
2447: END IF;
2448: --
2449: -- Initialize API return status to success
2450: --
2451: x_return_status := FND_API.G_RET_STS_SUCCESS;
2452: x_loading_status := 'CN_DELETED';
2453: --
2454: -- API Body
2455: --
2466: fnd_msg_pub.add;
2467: END IF;
2468:
2469: x_loading_status := 'CN_PAYRUN_DOES_NOT_EXIST';
2470: RAISE FND_API.G_EXC_ERROR;
2471:
2472: END IF;
2473: CLOSE get_old_record;
2474:
2488: fnd_msg_pub.add;
2489: END IF;
2490:
2491: x_loading_status := 'CN_CONC_CREATE_WKSHEET_PENDING';
2492: RAISE FND_API.G_EXC_ERROR;
2493:
2494: END IF;
2495: CLOSE get_conc_request;
2496:
2503: fnd_msg_pub.add;
2504: END IF;
2505:
2506: x_loading_status := 'CN_PAYRUN_PAID';
2507: RAISE FND_API.G_EXC_ERROR;
2508:
2509: END IF;
2510:
2511: -- Section included by Sundar Venkat on 07 Mar 2002
2511: -- Section included by Sundar Venkat on 07 Mar 2002
2512: -- Procedure to check if the payrun action is valid.
2513: CN_PAYMENT_SECURITY_PVT.Payrun_Action
2514: ( p_api_version => 1.0,
2515: p_init_msg_list => fnd_api.g_true,
2516: p_validation_level => fnd_api.g_valid_level_full,
2517: x_return_status => x_return_status,
2518: x_msg_count => x_msg_count,
2519: x_msg_data => x_msg_data,
2512: -- Procedure to check if the payrun action is valid.
2513: CN_PAYMENT_SECURITY_PVT.Payrun_Action
2514: ( p_api_version => 1.0,
2515: p_init_msg_list => fnd_api.g_true,
2516: p_validation_level => fnd_api.g_valid_level_full,
2517: x_return_status => x_return_status,
2518: x_msg_count => x_msg_count,
2519: x_msg_data => x_msg_data,
2520: p_payrun_id => p_payrun_id,
2520: p_payrun_id => p_payrun_id,
2521: p_action => 'REMOVE'
2522: );
2523:
2524: IF x_return_status <> FND_API.g_ret_sts_success THEN
2525: RAISE FND_API.G_EXC_ERROR;
2526: END IF;
2527:
2528:
2521: p_action => 'REMOVE'
2522: );
2523:
2524: IF x_return_status <> FND_API.g_ret_sts_success THEN
2525: RAISE FND_API.G_EXC_ERROR;
2526: END IF;
2527:
2528:
2529:
2532:
2533: cn_payment_worksheet_pvt.delete_worksheet(
2534: p_api_version => p_api_version,
2535: p_init_msg_list => p_init_msg_list,
2536: p_commit => fnd_api.g_false,
2537: p_validation_level => p_validation_level,
2538: x_return_status => x_return_status,
2539: x_msg_count => x_msg_count,
2540: x_msg_data => x_msg_data,
2543: x_status => x_status,
2544: x_loading_status => x_loading_status,
2545: p_ovn =>worksheets.object_version_number);
2546:
2547: IF x_return_status <> FND_API.g_ret_sts_success THEN
2548: RAISE FND_API.G_EXC_ERROR;
2549: END IF;
2550:
2551: END LOOP;
2544: x_loading_status => x_loading_status,
2545: p_ovn =>worksheets.object_version_number);
2546:
2547: IF x_return_status <> FND_API.g_ret_sts_success THEN
2548: RAISE FND_API.G_EXC_ERROR;
2549: END IF;
2550:
2551: END LOOP;
2552:
2576: );
2577: END IF;
2578: END IF;
2579:
2580: IF FND_API.To_Boolean( p_commit ) THEN
2581: COMMIT WORK;
2582: END IF;
2583:
2584: --
2587: FND_MSG_PUB.Count_And_Get
2588: (
2589: p_count => x_msg_count ,
2590: p_data => x_msg_data ,
2591: p_encoded => FND_API.G_FALSE
2592: );
2593: EXCEPTION
2594: WHEN FND_API.G_EXC_ERROR THEN
2595: ROLLBACK TO Delete_Payrun;
2590: p_data => x_msg_data ,
2591: p_encoded => FND_API.G_FALSE
2592: );
2593: EXCEPTION
2594: WHEN FND_API.G_EXC_ERROR THEN
2595: ROLLBACK TO Delete_Payrun;
2596: x_return_status := FND_API.G_RET_STS_ERROR ;
2597: FND_MSG_PUB.Count_And_Get
2598: (
2592: );
2593: EXCEPTION
2594: WHEN FND_API.G_EXC_ERROR THEN
2595: ROLLBACK TO Delete_Payrun;
2596: x_return_status := FND_API.G_RET_STS_ERROR ;
2597: FND_MSG_PUB.Count_And_Get
2598: (
2599: p_count => x_msg_count ,
2600: p_data => x_msg_data ,
2597: FND_MSG_PUB.Count_And_Get
2598: (
2599: p_count => x_msg_count ,
2600: p_data => x_msg_data ,
2601: p_encoded => FND_API.G_FALSE
2602: );
2603: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2604: ROLLBACK TO Delete_Payrun;
2605: x_loading_status := 'UNEXPECTED_ERR';
2599: p_count => x_msg_count ,
2600: p_data => x_msg_data ,
2601: p_encoded => FND_API.G_FALSE
2602: );
2603: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2604: ROLLBACK TO Delete_Payrun;
2605: x_loading_status := 'UNEXPECTED_ERR';
2606: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2607: FND_MSG_PUB.Count_And_Get
2602: );
2603: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2604: ROLLBACK TO Delete_Payrun;
2605: x_loading_status := 'UNEXPECTED_ERR';
2606: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2607: FND_MSG_PUB.Count_And_Get
2608: (
2609: p_count => x_msg_count ,
2610: p_data => x_msg_data ,
2607: FND_MSG_PUB.Count_And_Get
2608: (
2609: p_count => x_msg_count ,
2610: p_data => x_msg_data ,
2611: p_encoded => FND_API.G_FALSE
2612: );
2613: WHEN OTHERS THEN
2614: ROLLBACK TO Delete_Payrun;
2615: x_loading_status := 'UNEXPECTED_ERR';
2612: );
2613: WHEN OTHERS THEN
2614: ROLLBACK TO Delete_Payrun;
2615: x_loading_status := 'UNEXPECTED_ERR';
2616: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2617: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2618: THEN
2619: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
2620: END IF;
2621: FND_MSG_PUB.Count_And_Get
2622: (
2623: p_count => x_msg_count ,
2624: p_data => x_msg_data ,
2625: p_encoded => FND_API.G_FALSE
2626: );
2627:
2628: END Delete_Payrun;
2629:
2632: -- Description: Approve all whskt before pay a payrun
2633: -- ===========================================================================
2634:
2635: PROCEDURE Pay_Payrun_Approve_Wksht
2636: (p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2637: x_return_status OUT NOCOPY VARCHAR2,
2638: x_msg_count OUT NOCOPY NUMBER,
2639: x_msg_data OUT NOCOPY VARCHAR2,
2640: p_payrun_id IN cn_payruns.payrun_id%TYPE )
2662: SAVEPOINT Pay_Payrun_Approve_Wksht;
2663: --
2664: -- Initialize API return status to success
2665: --
2666: x_return_status := FND_API.G_RET_STS_SUCCESS;
2667: --
2668: -- API body
2669: --
2670:
2678: x_msg_data => x_msg_data,
2679: p_worksheet_id => unpaid_rec.payment_worksheet_id
2680: );
2681:
2682: IF x_return_status <> FND_API.g_ret_sts_success THEN
2683: RAISE FND_API.G_EXC_ERROR;
2684: END IF;
2685:
2686: -- validate lock and audit worksheet
2679: p_worksheet_id => unpaid_rec.payment_worksheet_id
2680: );
2681:
2682: IF x_return_status <> FND_API.g_ret_sts_success THEN
2683: RAISE FND_API.G_EXC_ERROR;
2684: END IF;
2685:
2686: -- validate lock and audit worksheet
2687: cn_payment_security_pvt.worksheet_action(p_api_version => 1.0,
2684: END IF;
2685:
2686: -- validate lock and audit worksheet
2687: cn_payment_security_pvt.worksheet_action(p_api_version => 1.0,
2688: p_init_msg_list => fnd_api.g_false,
2689: p_commit => 'F',
2690: p_validation_level => p_validation_level,
2691: x_return_status => x_return_status,
2692: x_msg_count => x_msg_count,
2692: x_msg_count => x_msg_count,
2693: x_msg_data => x_msg_data,
2694: p_worksheet_id => unpaid_rec.payment_worksheet_id,
2695: p_action => 'LOCK',
2696: p_do_audit => fnd_api.g_true
2697: );
2698:
2699: IF x_return_status <> FND_API.g_ret_sts_success THEN
2700: RAISE FND_API.G_EXC_ERROR;
2695: p_action => 'LOCK',
2696: p_do_audit => fnd_api.g_true
2697: );
2698:
2699: IF x_return_status <> FND_API.g_ret_sts_success THEN
2700: RAISE FND_API.G_EXC_ERROR;
2701: END IF;
2702: END LOOP;
2703:
2696: p_do_audit => fnd_api.g_true
2697: );
2698:
2699: IF x_return_status <> FND_API.g_ret_sts_success THEN
2700: RAISE FND_API.G_EXC_ERROR;
2701: END IF;
2702: END LOOP;
2703:
2704: -- Approve all wksht
2704: -- Approve all wksht
2705: FOR unapprove_rec IN get_unapprove_wksht LOOP
2706: -- validate
2707: cn_payment_security_pvt.worksheet_action(p_api_version => 1.0,
2708: p_init_msg_list => fnd_api.g_false,
2709: p_commit => 'F',
2710: p_validation_level => p_validation_level,
2711: x_return_status => x_return_status,
2712: x_msg_count => x_msg_count,
2712: x_msg_count => x_msg_count,
2713: x_msg_data => x_msg_data,
2714: p_worksheet_id => unapprove_rec.payment_worksheet_id,
2715: p_action => 'APPROVE',
2716: p_do_audit => fnd_api.g_false
2717: );
2718:
2719: -- set wksht audit
2720: CN_PAYMENT_SECURITY_PVT.Worksheet_Audit
2721: (p_worksheet_id => unapprove_rec.payment_worksheet_id,
2722: p_payrun_id => p_payrun_id,
2723: p_salesrep_id => unapprove_rec.salesrep_id,
2724: p_action => 'APPROVE',
2725: p_do_approval_flow => FND_API.G_FALSE,
2726: x_return_status => x_return_status,
2727: x_msg_count => x_msg_count,
2728: x_msg_data => x_msg_data);
2729:
2726: x_return_status => x_return_status,
2727: x_msg_count => x_msg_count,
2728: x_msg_data => x_msg_data);
2729:
2730: IF x_return_status <> FND_API.g_ret_sts_success THEN
2731: RAISE FND_API.G_EXC_ERROR;
2732: END IF;
2733: END LOOP;
2734:
2727: x_msg_count => x_msg_count,
2728: x_msg_data => x_msg_data);
2729:
2730: IF x_return_status <> FND_API.g_ret_sts_success THEN
2731: RAISE FND_API.G_EXC_ERROR;
2732: END IF;
2733: END LOOP;
2734:
2735: -- End of API body
2740:
2741: FND_MSG_PUB.Count_And_Get
2742: (p_count => x_msg_count ,
2743: p_data => x_msg_data ,
2744: p_encoded => FND_API.G_FALSE);
2745:
2746: EXCEPTION
2747: WHEN FND_API.G_EXC_ERROR THEN
2748: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2743: p_data => x_msg_data ,
2744: p_encoded => FND_API.G_FALSE);
2745:
2746: EXCEPTION
2747: WHEN FND_API.G_EXC_ERROR THEN
2748: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2749: x_return_status := FND_API.G_RET_STS_ERROR ;
2750: FND_MSG_PUB.Count_And_Get
2751: (p_count => x_msg_count ,
2745:
2746: EXCEPTION
2747: WHEN FND_API.G_EXC_ERROR THEN
2748: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2749: x_return_status := FND_API.G_RET_STS_ERROR ;
2750: FND_MSG_PUB.Count_And_Get
2751: (p_count => x_msg_count ,
2752: p_data => x_msg_data ,
2753: p_encoded => FND_API.G_FALSE
2749: x_return_status := FND_API.G_RET_STS_ERROR ;
2750: FND_MSG_PUB.Count_And_Get
2751: (p_count => x_msg_count ,
2752: p_data => x_msg_data ,
2753: p_encoded => FND_API.G_FALSE
2754: );
2755: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2756: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2757: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2751: (p_count => x_msg_count ,
2752: p_data => x_msg_data ,
2753: p_encoded => FND_API.G_FALSE
2754: );
2755: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2756: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2757: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2758: FND_MSG_PUB.Count_And_Get
2759: (
2753: p_encoded => FND_API.G_FALSE
2754: );
2755: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2756: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2757: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2758: FND_MSG_PUB.Count_And_Get
2759: (
2760: p_count => x_msg_count ,
2761: p_data => x_msg_data ,
2758: FND_MSG_PUB.Count_And_Get
2759: (
2760: p_count => x_msg_count ,
2761: p_data => x_msg_data ,
2762: p_encoded => FND_API.G_FALSE
2763: );
2764: WHEN OTHERS THEN
2765: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2766: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2762: p_encoded => FND_API.G_FALSE
2763: );
2764: WHEN OTHERS THEN
2765: ROLLBACK TO Pay_Payrun_Approve_Wksht;
2766: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2767: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2768: THEN
2769: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
2770: END IF;
2771: FND_MSG_PUB.Count_And_Get
2772: (
2773: p_count => x_msg_count ,
2774: p_data => x_msg_data ,
2775: p_encoded => FND_API.G_FALSE
2776: );
2777: END Pay_Payrun_Approve_Wksht;
2778:
2779: -- ===========================================================================
3007: SAVEPOINT Pay_Payrun;
3008: --
3009: -- Standard call to check for call compatibility.
3010: --
3011: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
3012: p_api_version ,
3013: l_api_name ,
3014: G_PKG_NAME )
3015: THEN
3012: p_api_version ,
3013: l_api_name ,
3014: G_PKG_NAME )
3015: THEN
3016: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3017: END IF;
3018: --
3019: -- Initialize message list if p_init_msg_list is set to TRUE.
3020: --
3017: END IF;
3018: --
3019: -- Initialize message list if p_init_msg_list is set to TRUE.
3020: --
3021: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3022: FND_MSG_PUB.initialize;
3023: END IF;
3024: --
3025: -- Initialize API return status to success
3023: END IF;
3024: --
3025: -- Initialize API return status to success
3026: --
3027: x_return_status := FND_API.G_RET_STS_SUCCESS;
3028: x_loading_status := 'CN_UPDATED';
3029:
3030:
3031:
3034: (p_num_para => p_payrun_id,
3035: p_obj_name =>
3036: cn_api.get_lkup_meaning('PAY_RUN_NAME', 'PAY_RUN_VALIDATION_TYPE'),
3037: p_loading_status => x_loading_status,
3038: x_loading_status => x_loading_status)) = FND_API.G_TRUE)
3039: THEN
3040: RAISE FND_API.G_EXC_ERROR ;
3041: END IF;
3042:
3036: cn_api.get_lkup_meaning('PAY_RUN_NAME', 'PAY_RUN_VALIDATION_TYPE'),
3037: p_loading_status => x_loading_status,
3038: x_loading_status => x_loading_status)) = FND_API.G_TRUE)
3039: THEN
3040: RAISE FND_API.G_EXC_ERROR ;
3041: END IF;
3042:
3043: OPEN get_payrun;
3044: FETCH get_payrun INTO l_payrun_rec;
3051: END IF;
3052:
3053: x_loading_status := 'CN_INVALID_PAYRUN';
3054: CLOSE get_payrun;
3055: RAISE FND_API.G_EXC_ERROR;
3056:
3057: END IF;
3058: CLOSE get_payrun;
3059: l_status_meaning := l_payrun_rec.statusmeaning;
3065: x_msg_count => x_msg_count,
3066: x_msg_data => x_msg_data,
3067: p_payrun_id => p_payrun_id,
3068: p_action => 'PAY');
3069: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3070: RAISE FND_API.G_EXC_ERROR;
3071: END IF;
3072:
3073: -- Need to auto-approve all wkshts if CN_CHK_WKSHT_STATUS = N
3066: x_msg_data => x_msg_data,
3067: p_payrun_id => p_payrun_id,
3068: p_action => 'PAY');
3069: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3070: RAISE FND_API.G_EXC_ERROR;
3071: END IF;
3072:
3073: -- Need to auto-approve all wkshts if CN_CHK_WKSHT_STATUS = N
3074: IF nvl(fnd_profile.value('CN_CHK_WKSHT_STATUS'), 'Y') = 'N' THEN
3077: (x_return_status => x_return_status,
3078: x_msg_count => x_msg_count,
3079: x_msg_data => x_msg_data,
3080: p_payrun_id => p_payrun_id);
3081: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3082: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3083: END IF;
3084: END IF;
3085:
3078: x_msg_count => x_msg_count,
3079: x_msg_data => x_msg_data,
3080: p_payrun_id => p_payrun_id);
3081: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3082: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3083: END IF;
3084: END IF;
3085:
3086: -- Check if AP / Payroll integration has been enabled.
3095: p_pay_date =>l_payrun_rec.pay_date,
3096: p_loading_status =>x_loading_status,
3097: x_loading_status =>x_loading_status)
3098: THEN
3099: RAISE fnd_api.g_exc_error;
3100: END IF;
3101: END IF;
3102:
3103: -- process hold transactions
3248: x_msg_data => x_msg_data,
3249: p_del_srp_prd_rec => l_srp_prd_rec,
3250: x_loading_status => l_loading_status);
3251:
3252: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
3253: THEN
3254: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3255: END IF;
3256: END LOOP; -- end get_srp_period cursor loop
3250: x_loading_status => l_loading_status);
3251:
3252: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
3253: THEN
3254: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3255: END IF;
3256: END LOOP; -- end get_srp_period cursor loop
3257:
3258: -- quota not active in this period, use carry over quota
3282: x_msg_data => x_msg_data,
3283: p_del_srp_prd_rec => l_srp_prd_rec,
3284: x_loading_status => l_loading_status);
3285:
3286: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
3287: THEN
3288: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3289: END IF;
3290: END IF; -- end IF get_srp_period%ROWCOUNT = 0 THEN
3284: x_loading_status => l_loading_status);
3285:
3286: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS)
3287: THEN
3288: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3289: END IF;
3290: END IF; -- end IF get_srp_period%ROWCOUNT = 0 THEN
3291:
3292: CLOSE get_srp_period;
3348: (p_payrun_id => p_payrun_id,
3349: x_return_status => x_return_status,
3350: x_msg_count => x_msg_count,
3351: x_msg_data => x_msg_data);
3352: if x_return_status <> FND_API.G_RET_STS_SUCCESS then
3353: RAISE FND_API.G_EXC_ERROR;
3354: end if;
3355:
3356: -- use if AP / Payroll integration has been enabled.
3349: x_return_status => x_return_status,
3350: x_msg_count => x_msg_count,
3351: x_msg_data => x_msg_data);
3352: if x_return_status <> FND_API.G_RET_STS_SUCCESS then
3353: RAISE FND_API.G_EXC_ERROR;
3354: end if;
3355:
3356: -- use if AP / Payroll integration has been enabled.
3357: IF l_payables_flag = 'Y'
3360: /* IF (populate_ccids
3361: (p_payrun_id => p_payrun_id,
3362: p_loading_status => x_loading_status,
3363: x_loading_status => x_loading_status
3364: )) = fnd_api.g_true
3365: THEN
3366: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3367: END IF;
3368: */
3362: p_loading_status => x_loading_status,
3363: x_loading_status => x_loading_status
3364: )) = fnd_api.g_true
3365: THEN
3366: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3367: END IF;
3368: */
3369:
3370: -- populate ap interface
3371: IF (populate_ap_interface
3372: (p_payrun_id => p_payrun_id,
3373: p_loading_status => x_loading_status,
3374: x_loading_status => x_loading_status
3375: )) = fnd_api.g_true
3376: THEN
3377: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3378: END IF;
3379:
3373: p_loading_status => x_loading_status,
3374: x_loading_status => x_loading_status
3375: )) = fnd_api.g_true
3376: THEN
3377: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3378: END IF;
3379:
3380: END IF;
3381: x_loading_status := 'CN_UPDATED';
3391: p_payrun_id => p_payrun_id,
3392: p_loading_status => x_loading_status,
3393: x_loading_status => x_loading_status);
3394:
3395: IF x_return_status <> FND_API.g_ret_sts_success THEN
3396: RAISE FND_API.G_EXC_ERROR;
3397: END IF;
3398: END IF;
3399:
3392: p_loading_status => x_loading_status,
3393: x_loading_status => x_loading_status);
3394:
3395: IF x_return_status <> FND_API.g_ret_sts_success THEN
3396: RAISE FND_API.G_EXC_ERROR;
3397: END IF;
3398: END IF;
3399:
3400: OPEN get_payrun;
3420:
3421:
3422: -- End of API body
3423: -- Standard check of p_commit.
3424: IF FND_API.To_Boolean( p_commit ) THEN
3425: COMMIT WORK;
3426: END IF;
3427:
3428: --
3432: FND_MSG_PUB.Count_And_Get
3433: (
3434: p_count => x_msg_count ,
3435: p_data => x_msg_data ,
3436: p_encoded => FND_API.G_FALSE
3437: );
3438:
3439: EXCEPTION
3440: WHEN FND_API.G_EXC_ERROR THEN
3436: p_encoded => FND_API.G_FALSE
3437: );
3438:
3439: EXCEPTION
3440: WHEN FND_API.G_EXC_ERROR THEN
3441: ROLLBACK TO Pay_Payrun;
3442: x_return_status := FND_API.G_RET_STS_ERROR ;
3443: FND_MSG_PUB.Count_And_Get
3444: (
3438:
3439: EXCEPTION
3440: WHEN FND_API.G_EXC_ERROR THEN
3441: ROLLBACK TO Pay_Payrun;
3442: x_return_status := FND_API.G_RET_STS_ERROR ;
3443: FND_MSG_PUB.Count_And_Get
3444: (
3445: p_count => x_msg_count ,
3446: p_data => x_msg_data ,
3443: FND_MSG_PUB.Count_And_Get
3444: (
3445: p_count => x_msg_count ,
3446: p_data => x_msg_data ,
3447: p_encoded => FND_API.G_FALSE
3448: );
3449: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3450: ROLLBACK TO Pay_Payrun;
3451: x_loading_status := 'UNEXPECTED_ERR';
3445: p_count => x_msg_count ,
3446: p_data => x_msg_data ,
3447: p_encoded => FND_API.G_FALSE
3448: );
3449: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3450: ROLLBACK TO Pay_Payrun;
3451: x_loading_status := 'UNEXPECTED_ERR';
3452: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3453: FND_MSG_PUB.Count_And_Get
3448: );
3449: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3450: ROLLBACK TO Pay_Payrun;
3451: x_loading_status := 'UNEXPECTED_ERR';
3452: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3453: FND_MSG_PUB.Count_And_Get
3454: (
3455: p_count => x_msg_count ,
3456: p_data => x_msg_data ,
3453: FND_MSG_PUB.Count_And_Get
3454: (
3455: p_count => x_msg_count ,
3456: p_data => x_msg_data ,
3457: p_encoded => FND_API.G_FALSE
3458: );
3459: WHEN OTHERS THEN
3460: ROLLBACK TO Pay_Payrun;
3461: x_loading_status := 'UNEXPECTED_ERR';
3458: );
3459: WHEN OTHERS THEN
3460: ROLLBACK TO Pay_Payrun;
3461: x_loading_status := 'UNEXPECTED_ERR';
3462: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3463: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3464: THEN
3465: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME ,l_api_name );
3466: END IF;
3467: FND_MSG_PUB.Count_And_Get
3468: (
3469: p_count => x_msg_count ,
3470: p_data => x_msg_data ,
3471: p_encoded => FND_API.G_FALSE
3472: );
3473: END Pay_Payrun;
3474:
3475: --============================================================================
3533:
3534: --call the create worksheet api
3535: CN_Payrun_PVT.delete_payrun
3536: (p_api_version => 1.0,
3537: p_init_msg_list => fnd_api.g_true,
3538: p_commit => fnd_api.g_false,
3539: p_validation_level => fnd_api.g_valid_level_full,
3540: x_return_status => l_return_status,
3541: x_msg_count => l_msg_count,
3534: --call the create worksheet api
3535: CN_Payrun_PVT.delete_payrun
3536: (p_api_version => 1.0,
3537: p_init_msg_list => fnd_api.g_true,
3538: p_commit => fnd_api.g_false,
3539: p_validation_level => fnd_api.g_valid_level_full,
3540: x_return_status => l_return_status,
3541: x_msg_count => l_msg_count,
3542: x_msg_data => l_msg_data,
3535: CN_Payrun_PVT.delete_payrun
3536: (p_api_version => 1.0,
3537: p_init_msg_list => fnd_api.g_true,
3538: p_commit => fnd_api.g_false,
3539: p_validation_level => fnd_api.g_valid_level_full,
3540: x_return_status => l_return_status,
3541: x_msg_count => l_msg_count,
3542: x_msg_data => l_msg_data,
3543: p_payrun_id => l_payrun_id,
3544: p_validation_only => 'N',
3545: x_status => l_status,
3546: x_loading_status => l_loading_status );
3547:
3548: IF l_return_status <> FND_API.g_ret_sts_success
3549: THEN
3550: retcode := 2;
3551: errbuf := FND_MSG_PUB.get(p_msg_index => fnd_msg_pub.G_LAST,
3552: p_encoded => FND_API.G_FALSE);
3548: IF l_return_status <> FND_API.g_ret_sts_success
3549: THEN
3550: retcode := 2;
3551: errbuf := FND_MSG_PUB.get(p_msg_index => fnd_msg_pub.G_LAST,
3552: p_encoded => FND_API.G_FALSE);
3553: cn_message_pkg.debug('Error for delete payrun : '||errbuf);
3554: ELSE
3555: COMMIT;
3556: END IF;