DBA Data[Home] [Help]

PACKAGE BODY: APPS.ZX_TAX_TAXWARE_PKG

Source


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;