DBA Data[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;