1: PACKAGE BODY AP_AWT_TAX_RATES_PKG AS
2: /* $Header: aptaxckb.pls 120.3 2005/05/12 06:30:38 sguddeti noship $ */
3:
4: PROCEDURE CHECK_AMOUNT_OVERLAP(X_tax_name IN VARCHAR2,
5: X_calling_sequence In VARCHAR2) IS
5: X_calling_sequence In VARCHAR2) IS
6:
7: CURSOR c_rate_type(v_tax_name VARCHAR2) IS
8: SELECT DISTINCT RATE_TYPE
9: FROM AP_AWT_TAX_RATES
10: WHERE TAX_NAME = v_tax_name
11: -- For bug2995926
12: -- Removing 'CERTIFICATE' and 'EXCEPTION' type in the
13: -- validation.
14: AND RATE_TYPE NOT IN ('CERTIFICATE','EXCEPTION');
15:
16:
17: CURSOR c_rate_date(v_tax_name VARCHAR2,
18: v_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE) IS
19: SELECT nvl(Start_date,to_date('01-01-1000','DD-MM-YYYY')),
20: nvl(END_DATE,to_date('01-12-3000','DD-MM-YYYY')),
21: vendor_id, --BUG 1974076
22: vendor_site_id --BUG 1974076
19: SELECT nvl(Start_date,to_date('01-01-1000','DD-MM-YYYY')),
20: nvl(END_DATE,to_date('01-12-3000','DD-MM-YYYY')),
21: vendor_id, --BUG 1974076
22: vendor_site_id --BUG 1974076
23: FROM AP_AWT_TAX_RATES
24: WHERE TAX_NAME = v_tax_name
25: AND RATE_TYPE = v_rate_type
26: GROUP BY nvl(Start_date,to_date('01-01-1000','DD-MM-YYYY')),
27: nvl(END_DATE,to_date('01-12-3000','DD-MM-YYYY')),
28: vendor_id, --BUG 1974076
29: vendor_site_id; --BUG 1974076
30:
31: CURSOR c_start_end(v_tax_name VARCHAR2,
32: v_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE,
33: v_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE,
34: v_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE) IS
35: SELECT NVL(START_AMOUNT,0),
36: NVL(END_AMOUNT, 99999999999999), TAX_RATE_ID, TAX_NAME
29: vendor_site_id; --BUG 1974076
30:
31: CURSOR c_start_end(v_tax_name VARCHAR2,
32: v_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE,
33: v_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE,
34: v_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE) IS
35: SELECT NVL(START_AMOUNT,0),
36: NVL(END_AMOUNT, 99999999999999), TAX_RATE_ID, TAX_NAME
37: FROM AP_AWT_TAX_RATES
30:
31: CURSOR c_start_end(v_tax_name VARCHAR2,
32: v_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE,
33: v_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE,
34: v_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE) IS
35: SELECT NVL(START_AMOUNT,0),
36: NVL(END_AMOUNT, 99999999999999), TAX_RATE_ID, TAX_NAME
37: FROM AP_AWT_TAX_RATES
38: WHERE TAX_NAME = v_tax_name
33: v_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE,
34: v_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE) IS
35: SELECT NVL(START_AMOUNT,0),
36: NVL(END_AMOUNT, 99999999999999), TAX_RATE_ID, TAX_NAME
37: FROM AP_AWT_TAX_RATES
38: WHERE TAX_NAME = v_tax_name
39: AND RATE_TYPE = v_rate_type
40: AND nvl(Start_date,to_date('01-01-1000','DD-MM-YYYY')) = v_start_dt
41: AND nvl(END_DATE,to_date('01-12-3000','DD-MM-YYYY')) = v_end_dt;
39: AND RATE_TYPE = v_rate_type
40: AND nvl(Start_date,to_date('01-01-1000','DD-MM-YYYY')) = v_start_dt
41: AND nvl(END_DATE,to_date('01-12-3000','DD-MM-YYYY')) = v_end_dt;
42:
43: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
44: var_end AP_AWT_TAX_RATES.END_AMOUNT%TYPE;
45: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
46: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
47: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
40: AND nvl(Start_date,to_date('01-01-1000','DD-MM-YYYY')) = v_start_dt
41: AND nvl(END_DATE,to_date('01-12-3000','DD-MM-YYYY')) = v_end_dt;
42:
43: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
44: var_end AP_AWT_TAX_RATES.END_AMOUNT%TYPE;
45: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
46: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
47: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
48: duplicate_check NUMBER;
41: AND nvl(END_DATE,to_date('01-12-3000','DD-MM-YYYY')) = v_end_dt;
42:
43: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
44: var_end AP_AWT_TAX_RATES.END_AMOUNT%TYPE;
45: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
46: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
47: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
48: duplicate_check NUMBER;
49: num_duplicate NUMBER;
42:
43: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
44: var_end AP_AWT_TAX_RATES.END_AMOUNT%TYPE;
45: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
46: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
47: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
48: duplicate_check NUMBER;
49: num_duplicate NUMBER;
50: var_check NUMBER;
43: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
44: var_end AP_AWT_TAX_RATES.END_AMOUNT%TYPE;
45: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
46: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
47: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
48: duplicate_check NUMBER;
49: num_duplicate NUMBER;
50: var_check NUMBER;
51: var_tax_id AP_AWT_TAX_RATES.TAX_RATE_ID%TYPE;
47: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
48: duplicate_check NUMBER;
49: num_duplicate NUMBER;
50: var_check NUMBER;
51: var_tax_id AP_AWT_TAX_RATES.TAX_RATE_ID%TYPE;
52: var_tax_name AP_AWT_TAX_RATES.TAX_NAME%TYPE;
53: var_vendor_id AP_AWT_TAX_RATES.VENDOR_ID%TYPE; --BUG 1974076
54: var_vendor_site_id AP_AWT_TAX_RATES.VENDOR_SITE_ID%TYPE; --BUG 1974076
55:
48: duplicate_check NUMBER;
49: num_duplicate NUMBER;
50: var_check NUMBER;
51: var_tax_id AP_AWT_TAX_RATES.TAX_RATE_ID%TYPE;
52: var_tax_name AP_AWT_TAX_RATES.TAX_NAME%TYPE;
53: var_vendor_id AP_AWT_TAX_RATES.VENDOR_ID%TYPE; --BUG 1974076
54: var_vendor_site_id AP_AWT_TAX_RATES.VENDOR_SITE_ID%TYPE; --BUG 1974076
55:
56: current_calling_sequence VARCHAR2(2000);
49: num_duplicate NUMBER;
50: var_check NUMBER;
51: var_tax_id AP_AWT_TAX_RATES.TAX_RATE_ID%TYPE;
52: var_tax_name AP_AWT_TAX_RATES.TAX_NAME%TYPE;
53: var_vendor_id AP_AWT_TAX_RATES.VENDOR_ID%TYPE; --BUG 1974076
54: var_vendor_site_id AP_AWT_TAX_RATES.VENDOR_SITE_ID%TYPE; --BUG 1974076
55:
56: current_calling_sequence VARCHAR2(2000);
57: debug_info VARCHAR2(100);
50: var_check NUMBER;
51: var_tax_id AP_AWT_TAX_RATES.TAX_RATE_ID%TYPE;
52: var_tax_name AP_AWT_TAX_RATES.TAX_NAME%TYPE;
53: var_vendor_id AP_AWT_TAX_RATES.VENDOR_ID%TYPE; --BUG 1974076
54: var_vendor_site_id AP_AWT_TAX_RATES.VENDOR_SITE_ID%TYPE; --BUG 1974076
55:
56: current_calling_sequence VARCHAR2(2000);
57: debug_info VARCHAR2(100);
58:
64: test3 VARCHAR2(10);
65: test4 VARCHAR2(10);
66:
67: BEGIN
68: current_calling_sequence := 'AP_AWT_TAX_RATES_PKG.CHECK_AMOUNT_OVERLAP<-'||X_calling_sequence;
69:
70: duplicate_check := 0;
71: num_duplicate :=0;
72: var_check := 0;
88: */
89:
90: SELECT COUNT(*)
91: INTO duplicate_check
92: FROM AP_AWT_TAX_RATES
93: WHERE TAX_NAME = X_tax_name
94: AND RATE_TYPE = var_rate_type
95: AND NOT (
96: START_AMOUNT IS NULL AND END_AMOUNT IS NULL
104: -- this anymore in this package.
105:
106: SELECT Count(*)
107: INTO num_duplicate
108: FROM AP_AWT_TAX_RATES
109: WHERE TAX_NAME = X_tax_name
110: AND RATE_TYPE = var_rate_type
111: AND nvl(start_date,to_date('01-01-1000','DD-MM-YYYY'))
112: IN ( Select nvl(start_date,to_date('01-01-1000','DD-MM-YYYY'))
109: WHERE TAX_NAME = X_tax_name
110: AND RATE_TYPE = var_rate_type
111: AND nvl(start_date,to_date('01-01-1000','DD-MM-YYYY'))
112: IN ( Select nvl(start_date,to_date('01-01-1000','DD-MM-YYYY'))
113: FROM ap_awt_tax_rates
114: WHERE TAX_NAME = X_tax_name /* BUG 1666209 */
115: AND RATE_TYPE = var_rate_type -- BUG 1974076
116: GROUP BY nvl(start_date,to_date('01-01-1000','DD-MM-YYYY')),
117: nvl(end_date,to_date('31-12-3000','DD-MM-YYYY'))
116: GROUP BY nvl(start_date,to_date('01-01-1000','DD-MM-YYYY')),
117: nvl(end_date,to_date('31-12-3000','DD-MM-YYYY'))
118: HAVING count(*)>1
119: AND nvl(end_date,to_date('31-12-3000','DD-MM-YYYY')) =
120: nvl(ap_awt_tax_rates.end_date,
121: to_date('31-12-3000','DD-MM-YYYY'))
122: )
123: ORDER BY start_date, end_date;
124:
144:
145:
146: SELECT COUNT(*)
147: INTO var_check
148: FROM AP_AWT_TAX_RATES
149: WHERE TAX_NAME = X_tax_name
150: AND RATE_TYPE = var_rate_type
151: AND NOT (
152:
184: EXIT WHEN c_start_end%NOTFOUND;
185:
186: SELECT COUNT(*)
187: INTO var_check
188: FROM AP_AWT_TAX_RATES
189: WHERE TAX_NAME = X_tax_name
190: AND RATE_TYPE = var_rate_type
191: AND nvl(START_DATE,to_date('01-01-1000','DD-MM-YYYY'))
192: = var_start_dt
230: X_calling_sequence IN VARCHAR2) IS
231:
232: CURSOR c_rate_type(v_tax_name VARCHAR2) IS
233: SELECT RATE_TYPE
234: FROM AP_AWT_TAX_RATES
235: WHERE TAX_NAME = v_tax_name
236: -- For bug 2995926
237: -- Removing 'CERTIFICATE' and 'EXCEPTION' type in the
238: -- validation.
239: AND RATE_TYPE NOT IN ('CERTIFICATE','EXCEPTION');
240:
241:
242: CURSOR c_rate_date(v_tax_name VARCHAR2,
243: v_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE) IS
244: SELECT nvl(Start_date,to_date('01-01-1000','DD-MM-YYYY')), nvl(END_DATE,to_date('01-12-1000','DD-MM-YYYY'))
245: FROM AP_AWT_TAX_RATES
246: WHERE TAX_NAME = v_tax_name
247: AND RATE_TYPE = v_rate_type;
241:
242: CURSOR c_rate_date(v_tax_name VARCHAR2,
243: v_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE) IS
244: SELECT nvl(Start_date,to_date('01-01-1000','DD-MM-YYYY')), nvl(END_DATE,to_date('01-12-1000','DD-MM-YYYY'))
245: FROM AP_AWT_TAX_RATES
246: WHERE TAX_NAME = v_tax_name
247: AND RATE_TYPE = v_rate_type;
248:
249: CURSOR c_start_amount(v_tax_name VARCHAR2,
246: WHERE TAX_NAME = v_tax_name
247: AND RATE_TYPE = v_rate_type;
248:
249: CURSOR c_start_amount(v_tax_name VARCHAR2,
250: v_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE,
251: v_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE,
252: v_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE) IS
253: SELECT START_AMOUNT
254: FROM AP_AWT_TAX_RATES
247: AND RATE_TYPE = v_rate_type;
248:
249: CURSOR c_start_amount(v_tax_name VARCHAR2,
250: v_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE,
251: v_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE,
252: v_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE) IS
253: SELECT START_AMOUNT
254: FROM AP_AWT_TAX_RATES
255: WHERE TAX_NAME = v_tax_name
248:
249: CURSOR c_start_amount(v_tax_name VARCHAR2,
250: v_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE,
251: v_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE,
252: v_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE) IS
253: SELECT START_AMOUNT
254: FROM AP_AWT_TAX_RATES
255: WHERE TAX_NAME = v_tax_name
256: AND RATE_TYPE = v_rate_type
250: v_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE,
251: v_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE,
252: v_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE) IS
253: SELECT START_AMOUNT
254: FROM AP_AWT_TAX_RATES
255: WHERE TAX_NAME = v_tax_name
256: AND RATE_TYPE = v_rate_type
257: AND nvl(START_DATE,to_date('01-01-1000','DD-MM-YYYY')) = v_start_dt
258: AND nvl(END_DATE,to_date('01-12-2999','DD-MM-YYYY')) = v_end_dt
257: AND nvl(START_DATE,to_date('01-01-1000','DD-MM-YYYY')) = v_start_dt
258: AND nvl(END_DATE,to_date('01-12-2999','DD-MM-YYYY')) = v_end_dt
259: AND START_AMOUNT <> 0;
260:
261: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
262: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
263: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
264: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
265: var_check NUMBER;
258: AND nvl(END_DATE,to_date('01-12-2999','DD-MM-YYYY')) = v_end_dt
259: AND START_AMOUNT <> 0;
260:
261: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
262: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
263: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
264: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
265: var_check NUMBER;
266:
259: AND START_AMOUNT <> 0;
260:
261: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
262: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
263: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
264: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
265: var_check NUMBER;
266:
267: current_calling_sequence VARCHAR2(2000);
260:
261: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
262: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
263: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
264: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
265: var_check NUMBER;
266:
267: current_calling_sequence VARCHAR2(2000);
268: debug_info VARCHAR2(100);
269:
270: AMOUNT_GAP EXCEPTION;
271:
272: BEGIN
273: current_calling_sequence := 'AP_AWT_TAX_RATES_PKG.CHECK_AMOUNT_GAPS<-'||X_calling_sequence;
274: var_check := 0;
275:
276: OPEN c_rate_type(X_tax_name);
277: LOOP
289: EXIT WHEN c_start_amount%NOTFOUND;
290:
291: SELECT COUNT(*)
292: INTO var_check
293: FROM AP_AWT_TAX_RATES
294: WHERE TAX_NAME = X_tax_name
295: AND RATE_TYPE = var_rate_type
296: AND nvl(START_DATE,to_date('01-01-1000','DD-MM-YYYY')) = var_start_dt
297: AND nvl(END_DATE,to_date('01-12-2999','DD-MM-YYYY')) = var_end_dt
324: PROCEDURE CHECK_LAST_AMOUNT(X_tax_name IN VARCHAR2,
325: X_calling_sequence IN VARCHAR2) IS
326: CURSOR c_rate_type(v_tax_name VARCHAR2) IS
327: SELECT RATE_TYPE
328: FROM AP_AWT_TAX_RATES
329: WHERE TAX_NAME = v_tax_name
330: -- For Bug 2995926
331: -- Removing 'CERTIFICATE' and 'EXCEPTION' type in the
332: -- validation.
333: AND RATE_TYPE NOT IN ('CERTIFICATE','EXCEPTION');
334:
335:
336: CURSOR c_rate_date(v_tax_name VARCHAR2,
337: v_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE) IS
338: SELECT nvl(START_DATE,to_date('01-01-1000','DD-MM-YYYY')), nvl(END_DATE,to_date('01-12-2999','DD-MM-YYYY'))
339: FROM AP_AWT_TAX_RATES
340: WHERE TAX_NAME = v_tax_name
341: AND RATE_TYPE = v_rate_type;
335:
336: CURSOR c_rate_date(v_tax_name VARCHAR2,
337: v_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE) IS
338: SELECT nvl(START_DATE,to_date('01-01-1000','DD-MM-YYYY')), nvl(END_DATE,to_date('01-12-2999','DD-MM-YYYY'))
339: FROM AP_AWT_TAX_RATES
340: WHERE TAX_NAME = v_tax_name
341: AND RATE_TYPE = v_rate_type;
342:
343: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
339: FROM AP_AWT_TAX_RATES
340: WHERE TAX_NAME = v_tax_name
341: AND RATE_TYPE = v_rate_type;
342:
343: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
344: var_max_end AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
345: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
346: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
347: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
340: WHERE TAX_NAME = v_tax_name
341: AND RATE_TYPE = v_rate_type;
342:
343: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
344: var_max_end AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
345: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
346: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
347: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
348:
341: AND RATE_TYPE = v_rate_type;
342:
343: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
344: var_max_end AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
345: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
346: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
347: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
348:
349: current_calling_sequence VARCHAR2(2000);
342:
343: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
344: var_max_end AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
345: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
346: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
347: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
348:
349: current_calling_sequence VARCHAR2(2000);
350: debug_info VARCHAR2(100);
343: var_start AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
344: var_max_end AP_AWT_TAX_RATES.START_AMOUNT%TYPE;
345: var_rate_type AP_AWT_TAX_RATES.RATE_TYPE%TYPE;
346: var_start_dt AP_AWT_TAX_RATES.START_DATE%TYPE;
347: var_end_dt AP_AWT_TAX_RATES.END_DATE%TYPE;
348:
349: current_calling_sequence VARCHAR2(2000);
350: debug_info VARCHAR2(100);
351:
351:
352: LAST_AMOUNT_ERROR EXCEPTION;
353:
354: BEGIN
355: current_calling_sequence := 'AP_AWT_TAX_RATES_PKG.CHECK_AMOUNT_GAPS<-'||X_calling_sequence;
356: var_max_end := 0;
357: OPEN c_rate_type(X_tax_name);
358: LOOP
359: FETCH c_rate_type INTO var_rate_type;
365: EXIT WHEN c_rate_date%NOTFOUND;
366:
367: SELECT START_AMOUNT
368: INTO var_start
369: FROM AP_AWT_TAX_RATES
370: WHERE TAX_NAME = X_tax_name
371: AND RATE_TYPE = var_rate_type
372: AND nvl(START_DATE,to_date('01-01-1000','DD-MM-YYYY')) = var_start_dt
373: AND nvl(END_DATE,to_date('01-12-2999','DD-MM-YYYY')) = var_end_dt
374: AND END_AMOUNT IS NULL;
375: IF SQL%FOUND THEN
376: SELECT MAX(END_AMOUNT)
377: INTO var_max_end
378: FROM AP_AWT_TAX_RATES
379: WHERE TAX_NAME = X_tax_name
380: AND RATE_TYPE = var_rate_type
381: AND nvl(START_DATE,to_date('01-01-1000','DD-MM-YYYY')) = var_start_dt
382: AND nvl(END_DATE,to_date('01-12-2999','DD-MM-YYYY')) = var_end_dt;
409: END IF;
410: APP_EXCEPTION.RAISE_EXCEPTION;
411: END CHECK_LAST_AMOUNT;
412:
413: END AP_AWT_TAX_RATES_PKG;