1326: END IF;
1327:
1328: x_return_status := fnd_api.g_ret_sts_success;
1329:
1330: IF csf_util_pvt.g_timing_activated THEN
1331: csf_util_pvt.add_timer(105, 'Get resources to schedule (init)', 0, NULL);
1332: END IF;
1333:
1334:
1327:
1328: x_return_status := fnd_api.g_ret_sts_success;
1329:
1330: IF csf_util_pvt.g_timing_activated THEN
1331: csf_util_pvt.add_timer(105, 'Get resources to schedule (init)', 0, NULL);
1332: END IF;
1333:
1334:
1335: debug( fnd_log.level_statement, l_api_name, ' Task ID:' || p_task_id
1390: -- Convert the given Task ID or the Qualifier Table to SR Task Record
1391: IF l_contracts_flag = 'Y' OR l_ib_flag = 'Y' OR l_territory_flag = 'Y' THEN
1392: debug( fnd_log.level_statement, l_api_name, 'The input resource qualifier table count:'||p_res_qualifier_tbl.COUNT);
1393: IF p_res_qualifier_tbl.COUNT > 0 THEN
1394: IF csf_util_pvt.g_timing_activated THEN
1395: csf_util_pvt.add_timer(106, 'convert territory qualifiers to record', 0, NULL);
1396: END IF;
1397: l_sr_task_rec := get_qualified_task_rec(p_res_qualifier_tbl);
1398: IF csf_util_pvt.g_timing_activated THEN
1391: IF l_contracts_flag = 'Y' OR l_ib_flag = 'Y' OR l_territory_flag = 'Y' THEN
1392: debug( fnd_log.level_statement, l_api_name, 'The input resource qualifier table count:'||p_res_qualifier_tbl.COUNT);
1393: IF p_res_qualifier_tbl.COUNT > 0 THEN
1394: IF csf_util_pvt.g_timing_activated THEN
1395: csf_util_pvt.add_timer(106, 'convert territory qualifiers to record', 0, NULL);
1396: END IF;
1397: l_sr_task_rec := get_qualified_task_rec(p_res_qualifier_tbl);
1398: IF csf_util_pvt.g_timing_activated THEN
1399: csf_util_pvt.add_timer(106, 'convert territory qualifiers to record', 1, NULL);
1394: IF csf_util_pvt.g_timing_activated THEN
1395: csf_util_pvt.add_timer(106, 'convert territory qualifiers to record', 0, NULL);
1396: END IF;
1397: l_sr_task_rec := get_qualified_task_rec(p_res_qualifier_tbl);
1398: IF csf_util_pvt.g_timing_activated THEN
1399: csf_util_pvt.add_timer(106, 'convert territory qualifiers to record', 1, NULL);
1400: END IF;
1401: ELSE
1402: IF csf_util_pvt.g_timing_activated THEN
1395: csf_util_pvt.add_timer(106, 'convert territory qualifiers to record', 0, NULL);
1396: END IF;
1397: l_sr_task_rec := get_qualified_task_rec(p_res_qualifier_tbl);
1398: IF csf_util_pvt.g_timing_activated THEN
1399: csf_util_pvt.add_timer(106, 'convert territory qualifiers to record', 1, NULL);
1400: END IF;
1401: ELSE
1402: IF csf_util_pvt.g_timing_activated THEN
1403: csf_util_pvt.add_timer(107, 'get territory qualifiers for task', 0, NULL);
1398: IF csf_util_pvt.g_timing_activated THEN
1399: csf_util_pvt.add_timer(106, 'convert territory qualifiers to record', 1, NULL);
1400: END IF;
1401: ELSE
1402: IF csf_util_pvt.g_timing_activated THEN
1403: csf_util_pvt.add_timer(107, 'get territory qualifiers for task', 0, NULL);
1404: END IF;
1405: l_sr_task_rec := get_qualified_task_rec(get_res_qualifier_table(p_task_id));
1406: IF csf_util_pvt.g_timing_activated THEN
1399: csf_util_pvt.add_timer(106, 'convert territory qualifiers to record', 1, NULL);
1400: END IF;
1401: ELSE
1402: IF csf_util_pvt.g_timing_activated THEN
1403: csf_util_pvt.add_timer(107, 'get territory qualifiers for task', 0, NULL);
1404: END IF;
1405: l_sr_task_rec := get_qualified_task_rec(get_res_qualifier_table(p_task_id));
1406: IF csf_util_pvt.g_timing_activated THEN
1407: csf_util_pvt.add_timer(107, 'get territory qualifiers for task', 1, NULL);
1402: IF csf_util_pvt.g_timing_activated THEN
1403: csf_util_pvt.add_timer(107, 'get territory qualifiers for task', 0, NULL);
1404: END IF;
1405: l_sr_task_rec := get_qualified_task_rec(get_res_qualifier_table(p_task_id));
1406: IF csf_util_pvt.g_timing_activated THEN
1407: csf_util_pvt.add_timer(107, 'get territory qualifiers for task', 1, NULL);
1408: END IF;
1409: END IF;
1410: l_sr_task_rec.task_id := p_task_id;
1403: csf_util_pvt.add_timer(107, 'get territory qualifiers for task', 0, NULL);
1404: END IF;
1405: l_sr_task_rec := get_qualified_task_rec(get_res_qualifier_table(p_task_id));
1406: IF csf_util_pvt.g_timing_activated THEN
1407: csf_util_pvt.add_timer(107, 'get territory qualifiers for task', 1, NULL);
1408: END IF;
1409: END IF;
1410: l_sr_task_rec.task_id := p_task_id;
1411: l_sr_task_rec.service_request_id := p_incident_id;
1438: || ' DAY_OF_WEEK:' || l_sr_task_rec.DAY_OF_WEEK
1439: || ' TIME_OF_DAY:' || l_sr_task_rec.TIME_OF_DAY
1440: || ' ORGANIZATION_ID:' || l_sr_task_rec.ORGANIZATION_ID
1441: );
1442: IF csf_util_pvt.g_timing_activated THEN
1443: csf_util_pvt.add_timer(105, 'get resources to schedule (init)', 1, NULL);
1444: END IF;
1445:
1446: l_continue_search := TRUE;
1439: || ' TIME_OF_DAY:' || l_sr_task_rec.TIME_OF_DAY
1440: || ' ORGANIZATION_ID:' || l_sr_task_rec.ORGANIZATION_ID
1441: );
1442: IF csf_util_pvt.g_timing_activated THEN
1443: csf_util_pvt.add_timer(105, 'get resources to schedule (init)', 1, NULL);
1444: END IF;
1445:
1446: l_continue_search := TRUE;
1447:
1459: );
1460:
1461: -- Retrieve the Resources defined in Contracts / IB
1462: IF l_contracts_flag = 'Y' OR l_ib_flag = 'Y' THEN
1463: IF csf_util_pvt.g_timing_activated THEN
1464: csf_util_pvt.add_timer(108, 'Get contract/IB resources', 0, NULL);
1465: END IF;
1466:
1467: IF l_contracts_flag = 'Y' THEN
1460:
1461: -- Retrieve the Resources defined in Contracts / IB
1462: IF l_contracts_flag = 'Y' OR l_ib_flag = 'Y' THEN
1463: IF csf_util_pvt.g_timing_activated THEN
1464: csf_util_pvt.add_timer(108, 'Get contract/IB resources', 0, NULL);
1465: END IF;
1466:
1467: IF l_contracts_flag = 'Y' THEN
1468: -- Added by lokumar for bug#7340932
1526: -- Since JTF Assignment Manager doesnt return End Windows properly,
1527: -- setting them to the given Plan Window.
1528: set_generic_planwindow(l_contracts_ib_res_tbl, p_start, l_end_date);
1529:
1530: IF csf_util_pvt.g_timing_activated THEN
1531: csf_util_pvt.add_timer(108, 'get contract/IB resources', 1, NULL);
1532: END IF;
1533: END IF;
1534:
1527: -- setting them to the given Plan Window.
1528: set_generic_planwindow(l_contracts_ib_res_tbl, p_start, l_end_date);
1529:
1530: IF csf_util_pvt.g_timing_activated THEN
1531: csf_util_pvt.add_timer(108, 'get contract/IB resources', 1, NULL);
1532: END IF;
1533: END IF;
1534:
1535: -- Retrieve Resources from Territory
1533: END IF;
1534:
1535: -- Retrieve Resources from Territory
1536: IF l_territory_flag = 'Y' AND l_continue_search THEN
1537: IF csf_util_pvt.g_timing_activated THEN
1538: csf_util_pvt.add_timer(109, 'get territory resources', 0, NULL);
1539: END IF;
1540:
1541: l_stic := l_stic + 4;
1534:
1535: -- Retrieve Resources from Territory
1536: IF l_territory_flag = 'Y' AND l_continue_search THEN
1537: IF csf_util_pvt.g_timing_activated THEN
1538: csf_util_pvt.add_timer(109, 'get territory resources', 0, NULL);
1539: END IF;
1540:
1541: l_stic := l_stic + 4;
1542:
1587: -- Since JTF Assignment Manager doesnt return End Windows properly,
1588: -- setting them to the given Plan Window.
1589: set_generic_planwindow(l_territory_res_tbl, p_start, l_end_date);
1590:
1591: IF csf_util_pvt.g_timing_activated THEN
1592: csf_util_pvt.add_timer(109, 'get territory resources', 1, NULL);
1593: END IF;
1594: END IF;
1595:
1588: -- setting them to the given Plan Window.
1589: set_generic_planwindow(l_territory_res_tbl, p_start, l_end_date);
1590:
1591: IF csf_util_pvt.g_timing_activated THEN
1592: csf_util_pvt.add_timer(109, 'get territory resources', 1, NULL);
1593: END IF;
1594: END IF;
1595:
1596: -- This is done for two cases: a) when res found in TQ/IB/Cont or b) when TQ/IB/Cont
1673:
1674: IF p_scheduling_mode <> 'A' THEN
1675: debug( fnd_log.level_statement, l_api_name, 'Non-Assisted Mode; Sorting by distance');
1676: -- Sort the Resources by their distance to the Task.
1677: IF csf_util_pvt.g_timing_activated THEN
1678: csf_util_pvt.add_timer(113, 'sort resources list', 0, NULL);
1679: END IF;
1680:
1681: IF x_res_tbl.COUNT > 1 AND NVL(p_sort_flag, 'Y') = 'Y' THEN
1674: IF p_scheduling_mode <> 'A' THEN
1675: debug( fnd_log.level_statement, l_api_name, 'Non-Assisted Mode; Sorting by distance');
1676: -- Sort the Resources by their distance to the Task.
1677: IF csf_util_pvt.g_timing_activated THEN
1678: csf_util_pvt.add_timer(113, 'sort resources list', 0, NULL);
1679: END IF;
1680:
1681: IF x_res_tbl.COUNT > 1 AND NVL(p_sort_flag, 'Y') = 'Y' THEN
1682: x_res_tbl := sort_resource_by_distance(x_res_tbl, p_task_id, p_start, l_end_date);
1686: LOOP
1687: debug( fnd_log.level_statement, l_api_name, 'After Sorting resource:' || x_res_tbl(i).resource_id || x_res_tbl(i).resource_type );
1688: END LOOP;
1689:
1690: IF csf_util_pvt.g_timing_activated THEN
1691: csf_util_pvt.add_timer(113, 'sort resources list', 1, NULL);
1692: END IF;
1693:
1694: END IF;
1687: debug( fnd_log.level_statement, l_api_name, 'After Sorting resource:' || x_res_tbl(i).resource_id || x_res_tbl(i).resource_type );
1688: END LOOP;
1689:
1690: IF csf_util_pvt.g_timing_activated THEN
1691: csf_util_pvt.add_timer(113, 'sort resources list', 1, NULL);
1692: END IF;
1693:
1694: END IF;
1695:
1694: END IF;
1695:
1696:
1697: -- The number of Resources are restricted from the Sorted List.
1698: IF csf_util_pvt.g_timing_activated THEN
1699: csf_util_pvt.add_timer(114, 'reduce sorted resources list', 0, NULL);
1700: END IF;
1701:
1702: x_res_tbl := reduce_resource_list(x_res_tbl, p_start, l_end_date);
1695:
1696:
1697: -- The number of Resources are restricted from the Sorted List.
1698: IF csf_util_pvt.g_timing_activated THEN
1699: csf_util_pvt.add_timer(114, 'reduce sorted resources list', 0, NULL);
1700: END IF;
1701:
1702: x_res_tbl := reduce_resource_list(x_res_tbl, p_start, l_end_date);
1703:
1708: || 'x_Resource End:' ||to_char(x_res_tbl(i).end_date, 'DD-MON-YYYY HH24:MI:SS')
1709: );
1710: END LOOP;
1711:
1712: IF csf_util_pvt.g_timing_activated THEN
1713: csf_util_pvt.add_timer(114, 'reduce sorted resources list', 1, NULL);
1714: END IF;
1715: EXCEPTION
1716: WHEN e_no_res THEN
1709: );
1710: END LOOP;
1711:
1712: IF csf_util_pvt.g_timing_activated THEN
1713: csf_util_pvt.add_timer(114, 'reduce sorted resources list', 1, NULL);
1714: END IF;
1715: EXCEPTION
1716: WHEN e_no_res THEN
1717: x_return_status := fnd_api.g_ret_sts_error;