236: -- 1) Convert format
237: -- 2) Remove time component
238: IF p_date_from is NOT NULL
239: THEN
240: -- For R11.5, the FND date format is 'YYYY/MM/DD HH24:MI:SS'.
241: l_date_from := to_date(p_date_from, fnd_date.canonical_dt_mask);
242: l_date_from := trunc(l_date_from);
243: ELSE
244: l_date_from := trunc(sysdate);
237: -- 2) Remove time component
238: IF p_date_from is NOT NULL
239: THEN
240: -- For R11.5, the FND date format is 'YYYY/MM/DD HH24:MI:SS'.
241: l_date_from := to_date(p_date_from, fnd_date.canonical_dt_mask);
242: l_date_from := trunc(l_date_from);
243: ELSE
244: l_date_from := trunc(sysdate);
245: END IF;
245: END IF;
246: --
247: IF p_date_to is NOT NULL
248: THEN
249: l_date_to := to_date(p_date_to, fnd_date.canonical_dt_mask);
250: l_date_to := trunc(l_date_to);
251: ELSE
252: -- Default date_to to end of time so that we can allow future date
253: -- execution. For example, date_from is a future date with respective to
264: END IF;
265: --
266: -- Now, convert the date to varchar2 format for use in dynamic sql statement.
267: -- In R11.5, use the FND standard date format, which is 'YYYY/MM/DD'
268: l_date_from_char := to_char(l_date_from, fnd_date.canonical_mask);
269: l_date_to_char := to_char(l_date_to, fnd_date.canonical_mask);
270: --
271: -------------------------------------------------------------------------------
272: -- NOTE: If users enter Organization Hierarchy and Version, then the
265: --
266: -- Now, convert the date to varchar2 format for use in dynamic sql statement.
267: -- In R11.5, use the FND standard date format, which is 'YYYY/MM/DD'
268: l_date_from_char := to_char(l_date_from, fnd_date.canonical_mask);
269: l_date_to_char := to_char(l_date_to, fnd_date.canonical_mask);
270: --
271: -------------------------------------------------------------------------------
272: -- NOTE: If users enter Organization Hierarchy and Version, then the
273: -- p_single_org_id is ignored. Organization Hierarchy and Single Org
352: -- between the p_date_from and p_date_to dates
353: l_new_hires_matching :=
354: ' AND (ppf.effective_start_date >= to_date(''' ||
355: l_date_from_char ||
356: ''', ''' || fnd_date.canonical_mask || ''')' ||
357: ' and ppf.effective_start_date <= to_date(''' ||
358: l_date_to_char ||
359: ''', ''' || fnd_date.canonical_mask || ''')' ||
360: ' and ppf.effective_end_date >= to_date(''' ||
355: l_date_from_char ||
356: ''', ''' || fnd_date.canonical_mask || ''')' ||
357: ' and ppf.effective_start_date <= to_date(''' ||
358: l_date_to_char ||
359: ''', ''' || fnd_date.canonical_mask || ''')' ||
360: ' and ppf.effective_end_date >= to_date(''' ||
361: l_date_to_char ||
362: ''', ''' || fnd_date.canonical_mask || '''))' ||
363: ' AND (paf.effective_start_date >= to_date(''' ||
358: l_date_to_char ||
359: ''', ''' || fnd_date.canonical_mask || ''')' ||
360: ' and ppf.effective_end_date >= to_date(''' ||
361: l_date_to_char ||
362: ''', ''' || fnd_date.canonical_mask || '''))' ||
363: ' AND (paf.effective_start_date >= to_date(''' ||
364: l_date_from_char ||
365: ''', ''' || fnd_date.canonical_mask || ''')' ||
366: ' and paf.effective_end_date >= to_date(''' ||
361: l_date_to_char ||
362: ''', ''' || fnd_date.canonical_mask || '''))' ||
363: ' AND (paf.effective_start_date >= to_date(''' ||
364: l_date_from_char ||
365: ''', ''' || fnd_date.canonical_mask || ''')' ||
366: ' and paf.effective_end_date >= to_date(''' ||
367: l_date_to_char ||
368: ''', ''' || fnd_date.canonical_mask || '''))' ||
369: ' AND ((ppos.date_start >= to_date(''' ||
364: l_date_from_char ||
365: ''', ''' || fnd_date.canonical_mask || ''')' ||
366: ' and paf.effective_end_date >= to_date(''' ||
367: l_date_to_char ||
368: ''', ''' || fnd_date.canonical_mask || '''))' ||
369: ' AND ((ppos.date_start >= to_date(''' ||
370: l_date_from_char || ''', ''' ||
371: fnd_date.canonical_mask || ''')' ||
372: ' AND ppos.date_start <= to_date(''' ||
367: l_date_to_char ||
368: ''', ''' || fnd_date.canonical_mask || '''))' ||
369: ' AND ((ppos.date_start >= to_date(''' ||
370: l_date_from_char || ''', ''' ||
371: fnd_date.canonical_mask || ''')' ||
372: ' AND ppos.date_start <= to_date(''' ||
373: l_date_to_char || ''', ''' ||
374: fnd_date.canonical_mask || '''))' ||
375: --
370: l_date_from_char || ''', ''' ||
371: fnd_date.canonical_mask || ''')' ||
372: ' AND ppos.date_start <= to_date(''' ||
373: l_date_to_char || ''', ''' ||
374: fnd_date.canonical_mask || '''))' ||
375: --
376: -- ---------------------------------------------------------------------------
377: -- The following is commented out. If we need to change the termination_date
378: -- comparison, we can re-evaluate the comparsion.
377: -- The following is commented out. If we need to change the termination_date
378: -- comparison, we can re-evaluate the comparsion.
379: ' AND nvl(ppos.actual_termination_date, to_date(''' ||
380: l_date_to_char || ''', ''' ||
381: fnd_date.canonical_mask || '''))' ||
382: ' <= to_date(''' || l_date_to_char ||
383: ''', ''' || fnd_date.canonical_mask || '''))' ||
384: -- ---------------------------------------------------------------------------
385: --
379: ' AND nvl(ppos.actual_termination_date, to_date(''' ||
380: l_date_to_char || ''', ''' ||
381: fnd_date.canonical_mask || '''))' ||
382: ' <= to_date(''' || l_date_to_char ||
383: ''', ''' || fnd_date.canonical_mask || '''))' ||
384: -- ---------------------------------------------------------------------------
385: --
386: -- ' AND ppos.actual_termination_date IS NULL)' ||
387: ' AND ppos.person_id = ppf.person_id ' ||
446: l_all_ee_matching :=
447: ' AND ppf.person_type_id in (' || l_per_type_id_list || ')' ||
448: ' AND (ppf.effective_start_date <= to_date(''' ||
449: l_date_to_char ||
450: ''', ''' || fnd_date.canonical_mask || ''')' ||
451: ' and ppf.effective_end_date >= to_date(''' ||
452: l_date_to_char ||
453: ''', ''' || fnd_date.canonical_mask || '''))' ||
454: ' AND (paf.effective_start_date <= to_date(''' ||
449: l_date_to_char ||
450: ''', ''' || fnd_date.canonical_mask || ''')' ||
451: ' and ppf.effective_end_date >= to_date(''' ||
452: l_date_to_char ||
453: ''', ''' || fnd_date.canonical_mask || '''))' ||
454: ' AND (paf.effective_start_date <= to_date(''' ||
455: l_date_to_char ||
456: ''', ''' || fnd_date.canonical_mask || ''')' ||
457: ' and paf.effective_end_date >= to_date(''' ||
452: l_date_to_char ||
453: ''', ''' || fnd_date.canonical_mask || '''))' ||
454: ' AND (paf.effective_start_date <= to_date(''' ||
455: l_date_to_char ||
456: ''', ''' || fnd_date.canonical_mask || ''')' ||
457: ' and paf.effective_end_date >= to_date(''' ||
458: l_date_to_char ||
459: ''', ''' || fnd_date.canonical_mask || '''))' ||
460: ' AND (ppos.date_start <= to_date(''' ||
455: l_date_to_char ||
456: ''', ''' || fnd_date.canonical_mask || ''')' ||
457: ' and paf.effective_end_date >= to_date(''' ||
458: l_date_to_char ||
459: ''', ''' || fnd_date.canonical_mask || '''))' ||
460: ' AND (ppos.date_start <= to_date(''' ||
461: l_date_to_char || ''', ''' || fnd_date.canonical_mask || ''')' ||
462: ' AND nvl(ppos.actual_termination_date, to_date(''' ||
463: l_date_to_char || ''', ''' || fnd_date.canonical_mask || '''))' ||
457: ' and paf.effective_end_date >= to_date(''' ||
458: l_date_to_char ||
459: ''', ''' || fnd_date.canonical_mask || '''))' ||
460: ' AND (ppos.date_start <= to_date(''' ||
461: l_date_to_char || ''', ''' || fnd_date.canonical_mask || ''')' ||
462: ' AND nvl(ppos.actual_termination_date, to_date(''' ||
463: l_date_to_char || ''', ''' || fnd_date.canonical_mask || '''))' ||
464: ' >= to_date(''' || l_date_to_char ||
465: ''', ''' || fnd_date.canonical_mask || '''))' ||
459: ''', ''' || fnd_date.canonical_mask || '''))' ||
460: ' AND (ppos.date_start <= to_date(''' ||
461: l_date_to_char || ''', ''' || fnd_date.canonical_mask || ''')' ||
462: ' AND nvl(ppos.actual_termination_date, to_date(''' ||
463: l_date_to_char || ''', ''' || fnd_date.canonical_mask || '''))' ||
464: ' >= to_date(''' || l_date_to_char ||
465: ''', ''' || fnd_date.canonical_mask || '''))' ||
466: ' AND ppos.person_id = ppf.person_id ' ||
467: ' and paf.period_of_service_id = ppos.period_of_service_id ' ||
461: l_date_to_char || ''', ''' || fnd_date.canonical_mask || ''')' ||
462: ' AND nvl(ppos.actual_termination_date, to_date(''' ||
463: l_date_to_char || ''', ''' || fnd_date.canonical_mask || '''))' ||
464: ' >= to_date(''' || l_date_to_char ||
465: ''', ''' || fnd_date.canonical_mask || '''))' ||
466: ' AND ppos.person_id = ppf.person_id ' ||
467: ' and paf.period_of_service_id = ppos.period_of_service_id ' ||
468: ' AND ppos.business_group_id + 0 = ' || to_char(p_business_group_id);
469: --
586: AND paf.person_id = ppos.person_id
587: AND ppf.business_group_id + 0 = ' ||
588: to_char(p_business_group_id) ||
589: ' AND ppf.effective_end_date BETWEEN to_date(''' ||
590: l_date_from_char || ''', ''' || fnd_date.canonical_mask
591: || ''')'||
592: ' AND to_date(''' ||
593: l_date_to_char || ''', ''' || fnd_date.canonical_mask
594: || ''')' ||
589: ' AND ppf.effective_end_date BETWEEN to_date(''' ||
590: l_date_from_char || ''', ''' || fnd_date.canonical_mask
591: || ''')'||
592: ' AND to_date(''' ||
593: l_date_to_char || ''', ''' || fnd_date.canonical_mask
594: || ''')' ||
595: ' AND paf.primary_flag = ''Y''';
596:
597: --
621: ' where b.person_id=ppf.person_id '||
622: ' and business_group_id + 0 = ' || to_char(p_business_group_id) ||
623: ' and ppos.person_id= paf.person_id '||
624: ' and b.actual_termination_date BETWEEN to_date(''' ||
625: l_date_from_char || ''', ''' || fnd_date.canonical_mask
626: || ''')'||
627: ' AND to_date(''' ||
628: l_date_to_char || ''', ''' || fnd_date.canonical_mask
629: || ''')' ||
624: ' and b.actual_termination_date BETWEEN to_date(''' ||
625: l_date_from_char || ''', ''' || fnd_date.canonical_mask
626: || ''')'||
627: ' AND to_date(''' ||
628: l_date_to_char || ''', ''' || fnd_date.canonical_mask
629: || ''')' ||
630: ' ) AND ppf.person_id not in( '||
631: ' select a.person_id from per_all_people_f a,'||
632: ' per_periods_of_service b'||