1: PACKAGE BODY CN_ROLE_PAY_GROUPS_PVT AS
2: /* $Header: cnvrpgpb.pls 120.16 2010/12/16 02:47:35 rnagired ship $ */
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.16 2010/12/16 02:47:35 rnagired ship $ */
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;
68: BEGIN
69: -- get start_date, end_date org_id and pay_group_id from role_pay_groups
70: select org_id, pay_group_id, start_date, end_date
71: into l_org_id, l_pay_group_id, l_role_pg_start_date, l_role_pg_end_date
72: from cn_role_pay_groups
73: where role_pay_group_id = p_role_pay_group_id;
74:
75: -- get srp role assignment start and end dates
76: select start_date, end_date, salesrep_id
213: -- Desc : check if the pay_group_id exists in cn_roles
214: -- ---------------------------------------------------------------------------*
215: FUNCTION valid_role_pay_group_id
216: (
217: p_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE
218: ) RETURN BOOLEAN IS
219:
220: CURSOR l_cur(l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE) IS
221: SELECT *
216: (
217: p_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE
218: ) RETURN BOOLEAN IS
219:
220: CURSOR l_cur(l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE) IS
221: SELECT *
222: FROM cn_role_pay_groups
223: WHERE role_pay_group_id = l_role_pay_group_id;
224:
218: ) RETURN BOOLEAN IS
219:
220: CURSOR l_cur(l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE) IS
221: SELECT *
222: FROM cn_role_pay_groups
223: WHERE role_pay_group_id = l_role_pay_group_id;
224:
225: l_rec l_cur%ROWTYPE;
226:
240:
241:
242: -- ----------------------------------------------------------------------------*
243: -- Function : is_exist
244: -- Desc : check if the role_pay_group_id exists in cn_role_pay_groups
245: -- ---------------------------------------------------------------------------*
246: FUNCTION is_exist
247: (
248: p_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE
244: -- Desc : check if the role_pay_group_id exists in cn_role_pay_groups
245: -- ---------------------------------------------------------------------------*
246: FUNCTION is_exist
247: (
248: p_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE
249: ) RETURN BOOLEAN IS
250:
251: CURSOR l_cur(l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE) IS
252: SELECT *
247: (
248: p_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE
249: ) RETURN BOOLEAN IS
250:
251: CURSOR l_cur(l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE) IS
252: SELECT *
253: FROM cn_role_pay_groups
254: WHERE role_pay_group_id = l_role_pay_group_id;
255:
249: ) RETURN BOOLEAN IS
250:
251: CURSOR l_cur(l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE) IS
252: SELECT *
253: FROM cn_role_pay_groups
254: WHERE role_pay_group_id = l_role_pay_group_id;
255:
256: l_rec l_cur%ROWTYPE;
257:
312: END get_pg_name;
313:
314: -- --------------------------------------------------------------------------=
315: -- Function : get_role_pay_group_id
316: -- Desc : get the role_pay_group_id if it exists in cn_role_pay_groups
317: -- --------------------------------------------------------------------------=
318: FUNCTION get_role_pay_group_id
319: (
320: p_role_name IN VARCHAR2,
321: p_pay_group_name IN VARCHAR2,
322: p_start_date IN DATE,
323: p_end_date IN DATE,
324: p_org_id IN NUMBER
325: ) RETURN cn_role_pay_groups.role_pay_group_id%TYPE IS
326:
327: CURSOR l_cur(l_role_id cn_role_pay_groups.role_id%TYPE,
328: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE,
329: l_start_date cn_role_pay_groups.start_date%TYPE,
323: p_end_date IN DATE,
324: p_org_id IN NUMBER
325: ) RETURN cn_role_pay_groups.role_pay_group_id%TYPE IS
326:
327: CURSOR l_cur(l_role_id cn_role_pay_groups.role_id%TYPE,
328: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE,
329: l_start_date cn_role_pay_groups.start_date%TYPE,
330: l_end_date cn_role_pay_groups.end_date%TYPE) IS
331: SELECT role_pay_group_id
324: p_org_id IN NUMBER
325: ) RETURN cn_role_pay_groups.role_pay_group_id%TYPE IS
326:
327: CURSOR l_cur(l_role_id cn_role_pay_groups.role_id%TYPE,
328: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE,
329: l_start_date cn_role_pay_groups.start_date%TYPE,
330: l_end_date cn_role_pay_groups.end_date%TYPE) IS
331: SELECT role_pay_group_id
332: FROM cn_role_pay_groups
325: ) RETURN cn_role_pay_groups.role_pay_group_id%TYPE IS
326:
327: CURSOR l_cur(l_role_id cn_role_pay_groups.role_id%TYPE,
328: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE,
329: l_start_date cn_role_pay_groups.start_date%TYPE,
330: l_end_date cn_role_pay_groups.end_date%TYPE) IS
331: SELECT role_pay_group_id
332: FROM cn_role_pay_groups
333: WHERE role_id = l_role_id AND
326:
327: CURSOR l_cur(l_role_id cn_role_pay_groups.role_id%TYPE,
328: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE,
329: l_start_date cn_role_pay_groups.start_date%TYPE,
330: l_end_date cn_role_pay_groups.end_date%TYPE) IS
331: SELECT role_pay_group_id
332: FROM cn_role_pay_groups
333: WHERE role_id = l_role_id AND
334: pay_group_id = l_pay_group_id AND
328: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE,
329: l_start_date cn_role_pay_groups.start_date%TYPE,
330: l_end_date cn_role_pay_groups.end_date%TYPE) IS
331: SELECT role_pay_group_id
332: FROM cn_role_pay_groups
333: WHERE role_id = l_role_id AND
334: pay_group_id = l_pay_group_id AND
335: start_date = l_start_date AND
336: ((end_date = l_end_date) OR
336: ((end_date = l_end_date) OR
337: (end_date IS NULL AND l_end_date IS NULL));
338:
339: l_rec l_cur%ROWTYPE;
340: l_role_id cn_role_pay_groups.role_id%TYPE;
341: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE;
342:
343: BEGIN
344:
337: (end_date IS NULL AND l_end_date IS NULL));
338:
339: l_rec l_cur%ROWTYPE;
340: l_role_id cn_role_pay_groups.role_id%TYPE;
341: l_pay_group_id cn_role_pay_groups.pay_group_id%TYPE;
342:
343: BEGIN
344:
345: l_role_id := cn_api.get_role_id(p_role_name);
359:
360:
361: -- ----------------------------------------------------------------------------*
362: -- Procedure: check_valid_insert
363: -- Desc : check if the record is valid to insert into cn_role_pay_groups
364: -- called in create_role_pay_groups before inserting a role-paygroup
365: -- assignment
366: -- ----------------------------------------------------------------------------*
367: PROCEDURE check_valid_insert
370: x_msg_count OUT NOCOPY NUMBER,
371: x_msg_data OUT NOCOPY VARCHAR2,
372: p_role_pay_groups_rec IN role_pay_groups_rec_type,
373: x_role_id OUT NOCOPY cn_roles.role_id%TYPE,
374: x_pay_group_id OUT NOCOPY cn_role_pay_groups.pay_group_id%TYPE,
375: p_loading_status IN VARCHAR2,
376: x_loading_status OUT NOCOPY VARCHAR2
377: ) IS
378:
382: l_loading_status VARCHAR2(100);
383: l_null_date CONSTANT DATE := to_date('31-12-9999','DD-MM-YYYY');
384:
385:
386: CURSOR l_cur(l_role_id cn_roles.role_id%TYPE,l_org_id cn_role_pay_groups.org_id%TYPE) IS
387: SELECT start_date, end_date, pay_group_id
388: FROM cn_role_pay_groups
389: WHERE role_id = l_role_id and org_id=l_org_id;
390:
384:
385:
386: CURSOR l_cur(l_role_id cn_roles.role_id%TYPE,l_org_id cn_role_pay_groups.org_id%TYPE) IS
387: SELECT start_date, end_date, pay_group_id
388: FROM cn_role_pay_groups
389: WHERE role_id = l_role_id and org_id=l_org_id;
390:
391: CURSOR l_cp_cur(l_pay_group_name cn_pay_groups.name%TYPE,l_org_id cn_pay_groups.org_id%TYPE) IS
392: SELECT start_date, end_date
490: -- Check for overlapping assignments
491: -- Added new message CN_RL_ROLE_PAY_GROUP_OVERLAP for bug 3152146 and included cn_api.date_range_overlap() for checking date overlap
492: /* SELECT count(1)
493: INTO l_count
494: FROM cn_role_pay_groups
495: WHERE p_role_pay_groups_rec.start_date between start_date AND Nvl(end_date, p_role_pay_groups_rec.start_date)
496: AND role_id = x_role_id; */
497:
498:
537: --Commented the code as the overlap conditions are handled in the code above
538:
539: /* SELECT count(1)
540: INTO l_count
541: FROM cn_role_pay_groups
542: WHERE Nvl(p_role_pay_groups_rec.end_date, l_null_date) between start_date
543: AND Nvl(end_date, Nvl(p_role_pay_groups_rec.end_date, l_null_date))
544: AND role_id = x_role_id;
545:
558: END IF;
559:
560: SELECT count(1)
561: INTO l_count
562: FROM cn_role_pay_groups
563: WHERE p_role_pay_groups_rec.start_date <= start_date
564: AND Nvl(p_role_pay_groups_rec.end_date, l_null_date) >= Nvl(end_date, l_null_date) AND role_id = x_role_id;
565:
566:
789: ) IS
790:
791: l_api_name CONSTANT VARCHAR2(30) := 'Create_Role_Pay_Groups';
792: l_api_version CONSTANT NUMBER := 1.0;
793: l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE;
794: l_role_id cn_roles.role_id%TYPE;
795: l_pay_group_id cn_pay_groups.pay_group_id%TYPE;
796: l_null_date CONSTANT DATE := to_date('31-12-9999','DD-MM-YYYY');
797: l_loading_status VARCHAR2(100);
909: RAISE FND_API.G_EXC_ERROR ;
910: END IF;
911: l_role_pay_group_id := p_role_pay_groups_rec.role_pay_group_id;
912:
913: cn_role_pay_groups_pkg.INSERT_ROW
914: (
915: x_rowid => G_ROWID
916: ,x_role_pay_group_id => l_role_pay_group_id
917: ,x_role_id => l_role_id
1190: ) IS
1191:
1192: l_api_name CONSTANT VARCHAR2(30) := 'Delete_Role_Pay_Groups';
1193: l_api_version CONSTANT NUMBER := 1.0;
1194: l_role_pay_group_id cn_role_pay_groups.role_pay_group_id%TYPE;
1195: l_role_id cn_roles.role_id%TYPE;
1196: l_pay_group_id cn_pay_groups.pay_group_id%TYPE;
1197: l_org_id cn_pay_groups.org_id%TYPE;
1198: -- Declaration for user hooks
1294: l_role_id := cn_api.get_role_id(p_role_pay_groups_rec.role_name);
1295: l_pay_group_id := get_pg_id(p_role_pay_groups_rec.pay_groups_name,p_role_pay_groups_rec.org_id);
1296: l_org_id := p_role_pay_groups_rec.org_id;
1297: --check this
1298: cn_role_pay_groups_pkg.delete_row(x_role_pay_group_id => l_role_pay_group_id);
1299:
1300: FOR salesrep IN get_salesreps(l_role_id,l_pay_group_id,l_org_id)
1301:
1302: LOOP
1504: );
1505: END Delete_Role_Pay_Groups;
1506:
1507:
1508: END CN_ROLE_PAY_GROUPS_PVT;