243: ,pap1.period_name
244: INTO l_earliest_start_date
245: ,l_earliest_end_date
246: ,l_earliest_period_name
247: FROM pa_periods_all pap1
248: WHERE pap1.status IN ('O','F')
249: AND NVL(pap1.org_id, -99) = NVL(p_org_id, -99)
250: AND pap1.start_date = ( SELECT MIN(pap.start_date)
251: FROM pa_periods_all pap
247: FROM pa_periods_all pap1
248: WHERE pap1.status IN ('O','F')
249: AND NVL(pap1.org_id, -99) = NVL(p_org_id, -99)
250: AND pap1.start_date = ( SELECT MIN(pap.start_date)
251: FROM pa_periods_all pap
252: WHERE status IN ('O','F')
253: AND NVL( org_id, -99 ) = NVL( p_org_id, -99 )
254: );
255: END IF ;
271: INTO l_start_date
272: ,l_end_date
273: ,l_pa_date
274: ,l_period_name
275: FROM pa_periods_all pap
276: WHERE pap.status in ('O','F')
277: AND pap.end_date >= TRUNC(p_expenditure_item_date)
278: AND p_accounting_date BETWEEN pap.start_date and pap.end_date
279: AND NVL(org_id, -99) = NVL(p_org_id, -99) ;
285: END; /* Added for Bug 1657231 */
286:
287: /*If the l_pa_date obtained is NULL, try to find a pa_date without the accounting-date
288: *check. This approach was used even previously.
289: *This SQL will FAIL - if there are more than one row in pa_periods_all - with the same end_date.
290: */
291:
292: IF ( l_pa_date IS NULL )
293: THEN
298: INTO l_start_date
299: ,l_end_date
300: ,l_pa_date
301: ,l_period_name
302: FROM pa_periods_all pap1
303: WHERE NVL(pap1.org_id, -99) = NVL(p_org_id, -99) /*Added While fixing bug 1657231*/
304: AND pap1.start_date = ( SELECT MIN(pap.start_date)
305: FROM pa_periods_all pap
306: WHERE status IN ('O','F')
301: ,l_period_name
302: FROM pa_periods_all pap1
303: WHERE NVL(pap1.org_id, -99) = NVL(p_org_id, -99) /*Added While fixing bug 1657231*/
304: AND pap1.start_date = ( SELECT MIN(pap.start_date)
305: FROM pa_periods_all pap
306: WHERE status IN ('O','F')
307: AND pap.start_date >= TRUNC(p_expenditure_item_date)
308: AND NVL(org_id, -99) = NVL(p_org_id, -99)
309: );
326: ,pap1.period_name
327: INTO l_earliest_start_date
328: ,l_earliest_end_date
329: ,l_earliest_period_name
330: FROM pa_periods_all pap1
331: WHERE pap1.status IN ('O', 'F')
332: AND NVL( pap1.org_id, -99 ) = NVL( p_org_id, -99 )
333: AND pap1.end_date = ( SELECT MIN(pap.end_date)
334: FROM pa_periods_all pap
330: FROM pa_periods_all pap1
331: WHERE pap1.status IN ('O', 'F')
332: AND NVL( pap1.org_id, -99 ) = NVL( p_org_id, -99 )
333: AND pap1.end_date = ( SELECT MIN(pap.end_date)
334: FROM pa_periods_all pap
335: WHERE pap.status IN ('O','F')
336: -- AND p_accounting_date BETWEEN pap.start_date AND pap.end_date /* commented for bug 1982225 */
337: AND NVL( pap.org_id, -99 ) = NVL( p_org_id, -99 )
338: );
350: INTO l_start_date
351: ,l_end_date
352: ,l_pa_date
353: ,l_period_name
354: FROM pa_periods_all pap
355: WHERE status in ('O','F')
356: AND pap.end_date >= TRUNC(p_expenditure_item_date)
357: AND p_accounting_date BETWEEN pap.start_date and pap.end_date
358: AND NVL(org_id, -99) = NVL(p_org_id, -99) ;
364: END; /* Added for Bug 1657231 */
365:
366: /*If the l_pa_date obtained is NULL, try to find a pa_date without the accounting-date
367: *check. This approach was used even previously.
368: *This SQL will FAIL - if there are more than one row in pa_periods_all - with the same end_date.
369: */
370:
371: IF ( l_pa_date IS NULL )
372: THEN
377: INTO l_start_date
378: ,l_end_date
379: ,l_pa_date
380: ,l_period_name
381: FROM pa_periods_all pap1
382: WHERE pap1.end_date = ( SELECT MIN(pap.end_date)
383: FROM pa_periods_all pap
384: WHERE pap.status IN ('O','F')
385: AND pap.end_date >= TRUNC(p_expenditure_item_date)
379: ,l_pa_date
380: ,l_period_name
381: FROM pa_periods_all pap1
382: WHERE pap1.end_date = ( SELECT MIN(pap.end_date)
383: FROM pa_periods_all pap
384: WHERE pap.status IN ('O','F')
385: AND pap.end_date >= TRUNC(p_expenditure_item_date)
386: AND NVL(pap.org_id, -99) = NVL(p_org_id, -99)
387: )