1 package body zx_tax_taxware_pkg as
2 /* $Header: zxtaxwarepkgb.pls 120.3 2006/06/24 01:24:45 svaze ship $ */
3
4 /* ======================================================================*
5 | FND Logging infrastructure |
6 * ======================================================================*/
7 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ZX_TAX_TAXWARE_PKG';
8 G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
9 G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
10 G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
11 G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
12 G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
13 G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
14 G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
15 G_MODULE_NAME CONSTANT VARCHAR2(80) := 'ZX.PLSQL.ZX_TAX_TAXWARE_PKG.';
16
17 pg_TAXWARE_INSTALLED CHAR := NULL;
18
19 FUNCTION IS_GEOCODE_VALID(p_geocode IN VARCHAR2) return BOOLEAN is
20 l_api_name CONSTANT VARCHAR2(30) := 'IS_GEOCODE_VALID';
21
22 BEGIN
23
24 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
25 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
26 END IF;
27
28 IF (lengthb(p_geocode) = 9 and
29 substrb(p_geocode, 1, 2) between 'AA' and 'ZZ' and
30 substrb(p_geocode, 3, 7) between '0000000' and '9999999' )
31 THEN
32 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
33 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Geocode is valid.');
34 END IF;
35 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
36 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME || ': ' ||l_api_name||'(-)');
37 END IF;
38 return TRUE;
39 ELSE
40 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
41 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Gecode is invalid.');
42 END IF;
43 FND_MESSAGE.SET_NAME('ZX','GENERIC_MESSAGE');
44 FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','For TAXWARE, enter two letters for state follwed by five digits for ZIP code and two more digits for Geocode');
45 FND_MSG_PUB.ADD(); -- Bug 5331410
46 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
47 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME || ': ' ||l_api_name||'(-)');
48 END IF;
49 return FALSE;
50 END IF;
51
52 END;
53
54 FUNCTION IS_CITY_LIMIT_VALID(p_city_limit IN VARCHAR2)return BOOLEAN is
55 l_api_name CONSTANT VARCHAR2(30) := 'IS_CITY_LIMIT_VALID';
56 BEGIN
57
58 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
59 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
60 END IF;
61
62 IF (p_city_limit = '1' OR p_city_limit = '0') THEN
63 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
64 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'City limit is valid.');
65 END IF;
66 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
67 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME || ': ' ||l_api_name||'(-)');
68 END IF;
69 return TRUE;
70 ELSE
71 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
72 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'City limit is invalid.');
73 END IF;
74 FND_MESSAGE.SET_NAME('ZX','GENERIC_MESSAGE');
75 FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','The City Limit should be either ''0'' or ''1''');
76 FND_MSG_PUB.ADD(); -- Bug 5331410
77 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
78 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME || ': ' ||l_api_name||'(-)');
79 END IF;
80 return FALSE;
81 END IF;
82 END;
83
84 /* Bug 5139634: This function checks if Taxware has been installed in the customer instance
85 and accordingly return the existence of Taxware to api (TAX_VENDOR_EXTENSION).
86 */
87 FUNCTION INSTALLED return BOOLEAN is
88 l_api_name CONSTANT VARCHAR2(30) := 'INSTALLED';
89
90
91 BEGIN
92 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
93 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
94 END IF;
95
96 IF ( pg_TAXWARE_INSTALLED IS NULL ) THEN
97
98 /*------------------------------------------------------------+
99 | The trick is to instantiate the stub package constructor |
100 | by accessing the Taxware stub. If the stub is still |
101 | being used exception ZX_TAX_TAXWARE.TAXWARE_NOT_INSTALLED |
102 | will be raised. If Taxware is installed, We should not see |
103 | the exception and we return TRUE. |
104 | Note: Since the exception is raised from the stub |
105 | constructor (hence executed the first time the stub |
106 | is called) We need to store the result in a package |
107 | global variable. |
108 +------------------------------------------------------------*/
109 ZX_TAX_TAXWARE_GEN.SELPARMTYP := '1';
110 pg_TAXWARE_INSTALLED := 'Y';
111
112 END IF;
113
114 IF ( pg_TAXWARE_INSTALLED = 'Y' ) THEN
115 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
116 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Taxware is installed.');
117 END IF;
118
119 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
120 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME || ': ' ||l_api_name||'(-)');
121 END IF;
122 return TRUE;
123 ELSE
124 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
125 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Taxware is not installed.');
126 END IF;
127 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
128 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME || ': ' ||l_api_name||'(-)');
129 END IF;
130 return FALSE;
131 END IF;
132
133 EXCEPTION
134 when ZX_TAX_TAXWARE_PKG.TAXWARE_NOT_INSTALLED then
135 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
136 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Taxware is not installed.');
137 END IF;
141 pg_TAXWARE_INSTALLED := 'N';
138 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
139 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME || ': ' ||l_api_name||'(-)');
140 END IF;
142 return FALSE;
143
144 when OTHERS then
145 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
146 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
147 END IF;
148 pg_TAXWARE_INSTALLED := 'N';
149 return FALSE;
150 END; -- Function INSTALLED
151
152 End zx_tax_taxware_pkg;