1: PACKAGE BODY CN_ROLE_PAY_GROUPS_PVT AS
2: /* $Header: cnvrpgpb.pls 120.11 2006/09/06 08:28:02 sjustina noship $ */
3:
4: G_PKG_NAME CONSTANT VARCHAR2(30) := 'CN_ROLE_PAY_GROUPS_PVT';
5: G_FILE_NAME CONSTANT VARCHAR2(12) := 'cnvrpgpb.pls';
1: PACKAGE BODY CN_ROLE_PAY_GROUPS_PVT AS
2: /* $Header: cnvrpgpb.pls 120.11 2006/09/06 08:28:02 sjustina noship $ */
3:
4: G_PKG_NAME CONSTANT VARCHAR2(30) := 'CN_ROLE_PAY_GROUPS_PVT';
5: G_FILE_NAME CONSTANT VARCHAR2(12) := 'cnvrpgpb.pls';
6: G_LAST_UPDATE_DATE DATE := sysdate;
7: G_LAST_UPDATED_BY NUMBER := fnd_global.user_id;
8: G_CREATION_DATE DATE := sysdate;
65: BEGIN
66: -- get start_date, end_date org_id and pay_group_id from role_pay_groups
67: select org_id, pay_group_id, start_date, end_date
68: into l_org_id, l_pay_group_id, l_role_pg_start_date, l_role_pg_end_date
69: from cn_role_pay_groups
70: where role_pay_group_id = p_role_pay_group_id;
71:
72: -- get srp role assignment start and end dates
73: select start_date, end_date, salesrep_id
190: -- Desc : check if the pay_group_id exists in cn_roles
191: -- ---------------------------------------------------------------------------*
192: FUNCTION valid_role_pay_group_id
193: (
194: p_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE
195: ) RETURN BOOLEAN IS
196:
197: CURSOR l_cur(l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE) IS
198: SELECT *
193: (
194: p_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE
195: ) RETURN BOOLEAN IS
196:
197: CURSOR l_cur(l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE) IS
198: SELECT *
199: FROM cn_role_pay_groups
200: WHERE role_pay_group_id = l_role_pay_group_id;
201:
195: ) RETURN BOOLEAN IS
196:
197: CURSOR l_cur(l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE) IS
198: SELECT *
199: FROM cn_role_pay_groups
200: WHERE role_pay_group_id = l_role_pay_group_id;
201:
202: l_rec l_cur%ROWTYPE;
203:
217:
218:
219: -- ----------------------------------------------------------------------------*
220: -- Function : is_exist
221: -- Desc : check if the role_pay_group_id exists in cn_role_pay_groups
222: -- ---------------------------------------------------------------------------*
223: FUNCTION is_exist
224: (
225: p_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE
221: -- Desc : check if the role_pay_group_id exists in cn_role_pay_groups
222: -- ---------------------------------------------------------------------------*
223: FUNCTION is_exist
224: (
225: p_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE
226: ) RETURN BOOLEAN IS
227:
228: CURSOR l_cur(l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE) IS
229: SELECT *
224: (
225: p_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE
226: ) RETURN BOOLEAN IS
227:
228: CURSOR l_cur(l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE) IS
229: SELECT *
230: FROM cn_role_pay_groups
231: WHERE role_pay_group_id = l_role_pay_group_id;
232:
226: ) RETURN BOOLEAN IS
227:
228: CURSOR l_cur(l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE) IS
229: SELECT *
230: FROM cn_role_pay_groups
231: WHERE role_pay_group_id = l_role_pay_group_id;
232:
233: l_rec l_cur%ROWTYPE;
234:
289: END get_pg_name;
290:
291: -- --------------------------------------------------------------------------=
292: -- Function : get_role_pay_group_id
293: -- Desc : get the role_pay_group_id if it exists in cn_role_pay_groups
294: -- --------------------------------------------------------------------------=
295: FUNCTION get_role_pay_group_id
296: (
297: p_role_name IN VARCHAR2,
298: p_pay_group_name IN VARCHAR2,
299: p_start_date IN DATE,
300: p_end_date IN DATE,
301: p_org_id IN NUMBER
302: ) RETURN cn_role_pay_groups.role_pay_group_id%TYPE IS
303:
304: CURSOR l_cur(l_role_id cn_role_pay_groups.role_id%TYPE,
305: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE,
306: l_start_date cn_role_pay_groups.start_date%TYPE,
300: p_end_date IN DATE,
301: p_org_id IN NUMBER
302: ) RETURN cn_role_pay_groups.role_pay_group_id%TYPE IS
303:
304: CURSOR l_cur(l_role_id cn_role_pay_groups.role_id%TYPE,
305: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE,
306: l_start_date cn_role_pay_groups.start_date%TYPE,
307: l_end_date cn_role_pay_groups.end_date%TYPE) IS
308: SELECT role_pay_group_id
301: p_org_id IN NUMBER
302: ) RETURN cn_role_pay_groups.role_pay_group_id%TYPE IS
303:
304: CURSOR l_cur(l_role_id cn_role_pay_groups.role_id%TYPE,
305: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE,
306: l_start_date cn_role_pay_groups.start_date%TYPE,
307: l_end_date cn_role_pay_groups.end_date%TYPE) IS
308: SELECT role_pay_group_id
309: FROM cn_role_pay_groups
302: ) RETURN cn_role_pay_groups.role_pay_group_id%TYPE IS
303:
304: CURSOR l_cur(l_role_id cn_role_pay_groups.role_id%TYPE,
305: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE,
306: l_start_date cn_role_pay_groups.start_date%TYPE,
307: l_end_date cn_role_pay_groups.end_date%TYPE) IS
308: SELECT role_pay_group_id
309: FROM cn_role_pay_groups
310: WHERE role_id = l_role_id AND
303:
304: CURSOR l_cur(l_role_id cn_role_pay_groups.role_id%TYPE,
305: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE,
306: l_start_date cn_role_pay_groups.start_date%TYPE,
307: l_end_date cn_role_pay_groups.end_date%TYPE) IS
308: SELECT role_pay_group_id
309: FROM cn_role_pay_groups
310: WHERE role_id = l_role_id AND
311: pay_group_id = l_pay_group_id AND
305: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE,
306: l_start_date cn_role_pay_groups.start_date%TYPE,
307: l_end_date cn_role_pay_groups.end_date%TYPE) IS
308: SELECT role_pay_group_id
309: FROM cn_role_pay_groups
310: WHERE role_id = l_role_id AND
311: pay_group_id = l_pay_group_id AND
312: start_date = l_start_date AND
313: ((end_date = l_end_date) OR
313: ((end_date = l_end_date) OR
314: (end_date IS NULL AND l_end_date IS NULL));
315:
316: l_rec l_cur%ROWTYPE;
317: l_role_id cn_role_pay_groups.role_id%TYPE;
318: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE;
319:
320: BEGIN
321:
314: (end_date IS NULL AND l_end_date IS NULL));
315:
316: l_rec l_cur%ROWTYPE;
317: l_role_id cn_role_pay_groups.role_id%TYPE;
318: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE;
319:
320: BEGIN
321:
322: l_role_id := cn_api.get_role_id(p_role_name);
336:
337:
338: -- ----------------------------------------------------------------------------*
339: -- Procedure: check_valid_insert
340: -- Desc : check if the record is valid to insert into cn_role_pay_groups
341: -- called in create_role_pay_groups before inserting a role-paygroup
342: -- assignment
343: -- ----------------------------------------------------------------------------*
344: PROCEDURE check_valid_insert
347: x_msg_count OUT NOCOPY NUMBER,
348: x_msg_data OUT NOCOPY VARCHAR2,
349: p_role_pay_groups_rec IN role_pay_groups_rec_type,
350: x_role_id OUT NOCOPY cn_roles.role_id%TYPE,
351: x_pay_group_id OUT NOCOPY cn_role_pay_groups.pay_group_id%TYPE,
352: p_loading_status IN VARCHAR2,
353: x_loading_status OUT NOCOPY VARCHAR2
354: ) IS
355:
359: l_loading_status VARCHAR2(100);
360: l_null_date CONSTANT DATE := to_date('31-12-9999','DD-MM-YYYY');
361:
362:
363: CURSOR l_cur(l_role_id cn_roles.role_id%TYPE,l_org_id cn_role_pay_groups.org_id%TYPE) IS
364: SELECT start_date, end_date, pay_group_id
365: FROM cn_role_pay_groups
366: WHERE role_id = l_role_id and org_id=l_org_id;
367:
361:
362:
363: CURSOR l_cur(l_role_id cn_roles.role_id%TYPE,l_org_id cn_role_pay_groups.org_id%TYPE) IS
364: SELECT start_date, end_date, pay_group_id
365: FROM cn_role_pay_groups
366: WHERE role_id = l_role_id and org_id=l_org_id;
367:
368: CURSOR l_cp_cur(l_pay_group_name cn_pay_groups.name%TYPE,l_org_id cn_pay_groups.org_id%TYPE) IS
369: SELECT start_date, end_date
467: -- Check for overlapping assignments
468: -- Added new message CN_RL_ROLE_PAY_GROUP_OVERLAP for bug 3152146 and included cn_api.date_range_overlap() for checking date overlap
469: /* SELECT count(1)
470: INTO l_count
471: FROM cn_role_pay_groups
472: WHERE p_role_pay_groups_rec.start_date between start_date AND Nvl(end_date, p_role_pay_groups_rec.start_date)
473: AND role_id = x_role_id; */
474:
475:
514: --Commented the code as the overlap conditions are handled in the code above
515:
516: /* SELECT count(1)
517: INTO l_count
518: FROM cn_role_pay_groups
519: WHERE Nvl(p_role_pay_groups_rec.end_date, l_null_date) between start_date
520: AND Nvl(end_date, Nvl(p_role_pay_groups_rec.end_date, l_null_date))
521: AND role_id = x_role_id;
522:
535: END IF;
536:
537: SELECT count(1)
538: INTO l_count
539: FROM cn_role_pay_groups
540: WHERE p_role_pay_groups_rec.start_date <= start_date
541: AND Nvl(p_role_pay_groups_rec.end_date, l_null_date) >= Nvl(end_date, l_null_date) AND role_id = x_role_id;
542:
543:
766: ) IS
767:
768: l_api_name CONSTANT VARCHAR2(30) := 'Create_Role_Pay_Groups';
769: l_api_version CONSTANT NUMBER := 1.0;
770: l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE;
771: l_role_id cn_roles.role_id%TYPE;
772: l_pay_group_id cn_pay_groups.pay_group_id%TYPE;
773: l_null_date CONSTANT DATE := to_date('31-12-9999','DD-MM-YYYY');
774: l_loading_status VARCHAR2(100);
859: RAISE FND_API.G_EXC_ERROR ;
860: END IF;
861: l_role_pay_group_id := p_role_pay_groups_rec.role_pay_group_id;
862:
863: cn_role_pay_groups_pkg.INSERT_ROW
864: (
865: x_rowid => G_ROWID
866: ,x_role_pay_group_id => l_role_pay_group_id
867: ,x_role_id => l_role_id
1140: ) IS
1141:
1142: l_api_name CONSTANT VARCHAR2(30) := 'Delete_Role_Pay_Groups';
1143: l_api_version CONSTANT NUMBER := 1.0;
1144: l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE;
1145: l_role_id cn_roles.role_id%TYPE;
1146: l_pay_group_id cn_pay_groups.pay_group_id%TYPE;
1147: l_org_id cn_pay_groups.org_id%TYPE;
1148: -- Declaration for user hooks
1244: l_role_id := cn_api.get_role_id(p_role_pay_groups_rec.role_name);
1245: l_pay_group_id := get_pg_id(p_role_pay_groups_rec.pay_groups_name,p_role_pay_groups_rec.org_id);
1246: l_org_id := p_role_pay_groups_rec.org_id;
1247: --check this
1248: cn_role_pay_groups_pkg.delete_row(x_role_pay_group_id => l_role_pay_group_id);
1249:
1250: FOR salesrep IN get_salesreps(l_role_id,l_pay_group_id,l_org_id)
1251:
1252: LOOP
1454: );
1455: END Delete_Role_Pay_Groups;
1456:
1457:
1458: END CN_ROLE_PAY_GROUPS_PVT;