[Home] [Help]
PACKAGE BODY: APPS.AP_TERMS_CAL_EXISTS_PKG
Source
1 PACKAGE BODY AP_TERMS_CAL_EXISTS_PKG AS
2 /*$Header: aptmcalb.pls 120.4 2005/05/12 11:21:25 sguddeti noship $*/
3
4 PROCEDURE Check_For_Calendar
5 (p_terms_name IN varchar2,
6 p_terms_date IN date,
7 p_no_cal IN OUT NOCOPY varchar2,
8 p_calling_sequence IN varchar2) IS
9 CURSOR c IS
10 SELECT calendar
11 FROM ap_terms,
12 ap_terms_lines
13 WHERE ap_terms.term_id = ap_terms_lines.term_id
14 AND ap_terms.name = p_terms_name
15 AND ap_terms_lines.calendar is not null;
16
17 l_calendar VARCHAR2(30);
18 l_cal_exists VARCHAR2(1);
19 l_debug_info VARCHAR2(100);
20 l_curr_calling_sequence VARCHAR2(2000);
21
22 BEGIN
23 -- Update the calling sequence
24 --
25 l_curr_calling_sequence :=
26 'AP_TERMS_CAL_EXISTS_PKG.Check_For_Calendar<-'||p_calling_sequence;
27
28 --------------------------------------------------------
29 l_debug_info := 'OPEN cursor c';
30 --------------------------------------------------------
31
32 l_cal_exists := '';
33 OPEN c;
34
35 LOOP
36 --------------------------------------------------------
37 l_debug_info := 'Fetch cursor C';
38 --------------------------------------------------------
39 FETCH c INTO l_calendar;
40 EXIT WHEN c%NOTFOUND;
41
42 --------------------------------------------------------
43 l_debug_info := 'Check for calendar';
44 --------------------------------------------------------
45 BEGIN
46
47 -- Bug1769230 Added truncate function to eliminate time part
48 -- from p_terms_date variable.
49 SELECT 'Y'
50 INTO l_cal_exists
51 FROM ap_other_periods aop,
52 ap_other_period_types aopt
53 WHERE aopt.period_type = l_calendar
54 AND aopt.module = 'PAYMENT TERMS'
55 AND aopt.module = aop.module -- bug 2902681
56 AND aopt.period_type = aop.period_type
57 AND aop.start_date <= trunc(p_terms_date)
58 AND aop.end_date >= trunc(p_terms_date);
59 EXCEPTION
60 WHEN NO_DATA_FOUND then
61 null;
62 END;
63
64 if (l_cal_exists <> 'Y') or (l_cal_exists is null) then
65 p_no_cal := 'Y';
66 return;
67 end if;
68
69 END LOOP;
70 --------------------------------------------------------
71 l_debug_info := 'CLOSE cursor c';
72 --------------------------------------------------------
73 CLOSE c;
74
75 EXCEPTION
76 WHEN OTHERS THEN
77 IF (SQLCODE <> -20001) THEN
78 FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
79 FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
80 FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE', l_curr_calling_sequence);
81 FND_MESSAGE.SET_TOKEN('PARAMETERS',
82 'Payment Terms = '|| p_terms_name
83 ||' Terms date = '||to_char(p_terms_date));
84 FND_MESSAGE.SET_TOKEN('DEBUG_INFO',l_debug_info);
85 END IF;
86 APP_EXCEPTION.RAISE_EXCEPTION;
87 End Check_For_Calendar;
88
89 END Ap_Terms_Cal_Exists_Pkg;