DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGI_CIS2007_UTIL_PKG

Source


1 PACKAGE BODY IGI_CIS2007_UTIL_PKG AS
2 -- $Header: igiputlb.pls 120.2.12010000.4 2009/09/17 12:43:03 gaprasad ship $
3 
4     /*
5     * Type: Procedure
6     * Access: Public API
7     *
8     * Description: This function calls the certificate insertion logic
9     * for the supplier if CIS is enabled
10     *
11     * Note: This procedure is called from package AP_VENDORS_PKG (apvndhrb.pls)
12     * Care should be taken while modifying this package
13     */
14     PROCEDURE SUPPLIER_UPDATE(
15         p_vendor_id IN ap_suppliers.vendor_id%TYPE,
16         p_tax_grp_id IN ap_awt_group_taxes_all.group_id%TYPE,
17         p_pay_tax_grp_id IN ap_awt_group_taxes_all.group_id%TYPE	     /* Bug 7218825 */
18     )
19     IS
20         l_cis_installed number;
21     BEGIN
22         l_cis_installed := 0;
23         BEGIN
24             SELECT count(1)
25             INTO l_cis_installed
26             FROM   igi_gcc_inst_options_all
27             WHERE  option_name = 'CIS'
28              AND status_flag = 'Y';
29         EXCEPTION
30             WHEN OTHERS THEN
31                 l_cis_installed := 0;
32         END;
33         IF l_cis_installed > 0 THEN
34             IGI_CIS2007_TAX_EFF_DATE.main (
35                  p_vendor_id      => p_vendor_id,
36                  p_vendor_site_id => NULL,
37                  p_tax_grp_id     => p_tax_grp_id,
38                  p_pay_tax_grp_id => p_pay_tax_grp_id, 	                 /* Bug 7218825 */
39                  p_source         => 'VENDOR FORM',
40                  p_effective_date => sysdate
41                 );
42         END IF;
43 
44     EXCEPTION
45         WHEN OTHERS THEN
46             NULL;
47     END;
48 
49 
50     /*
51     * Type: Procedure
52     * Access: Public API
53     *
54     * Description: This function calls the certificate insertion logic
55     * for supplier site if CIS is enabled
56     *
57     * Note: This procedure is called from package AP_VENDOR_SITES_PKG (apvndsib.pls)
58     * Care should be taken while modifying this package
59     */
60     PROCEDURE SUPPLIER_SITE_UPDATE(
61         p_vendor_id IN ap_suppliers.vendor_id%TYPE,
62         p_vendor_site_id IN ap_supplier_sites_all.vendor_site_id%TYPE,
63         p_tax_grp_id IN ap_awt_group_taxes_all.group_id%TYPE,
64         p_pay_tax_grp_id IN ap_awt_group_taxes_all.group_id%TYPE	   /* Bug 7218825 */
65     )
66     IS
67     BEGIN
68     IF igi_gen.is_req_installed('CIS',mo_global.get_current_org_id) = 'Y' THEN
69             IGI_CIS2007_TAX_EFF_DATE.main (
70              p_vendor_id      => p_vendor_id,
71              p_vendor_site_id => p_vendor_site_id,
72              p_tax_grp_id     => p_tax_grp_id,
73              p_pay_tax_grp_id => p_pay_tax_grp_id,                   	  /* Bug 7218825 */
74              p_source         => 'VENDOR SITE FORM',
75              p_effective_date => sysdate
76             );
77     END IF;
78     EXCEPTION
79         WHEN OTHERS THEN
80             NULL;
81     END;
82 
83 /* This Function Added for CIS Bug 7218825 */
84 
85   FUNCTION get_payables_option_based_awt(l_vendor_id NUMBER,l_vendor_site_id NUMBER,l_tax_grp_id NUMBER,l_pay_tax_grp_id NUMBER)
86   RETURN NUMBER IS
87 
88 	l_org_id                  ap_supplier_sites_all.org_id%TYPE;
89       l_awt_group_id_po    	  ap_suppliers.awt_group_id%TYPE;
90       l_pay_awt_group_id_po	  ap_suppliers.pay_awt_group_id%TYPE;
91       l_awt_group_id_pvs	  ap_supplier_sites_all.awt_group_id%TYPE;
92       l_pay_awt_group_id_pvs	  ap_supplier_sites_all.pay_awt_group_id%TYPE;
93 	l_create_awt_dists_type   ap_system_parameters_all.CREATE_AWT_DISTS_TYPE%TYPE;
94 
95   BEGIN
96 
97      IF (l_vendor_id IS NOT NULL) AND (l_vendor_site_id IS NOT NULL) THEN       /* FOR VENDOR SITE */
98 
99          IF  (l_tax_grp_id IS NULL) and (l_pay_tax_grp_id IS NULL) THEN
100 
101 	        select org_id,awt_group_id,pay_awt_group_id
102 	        into   l_org_id,l_awt_group_id_pvs,l_pay_awt_group_id_pvs
103 	        from ap_supplier_sites_all
104 	        where
105 	        vendor_id = l_vendor_id and
106 	        vendor_site_id = l_vendor_site_id and
107               upper(allow_awt_flag) = 'Y';
108 
109 		  select CREATE_AWT_DISTS_TYPE
110 	        into l_create_awt_dists_type
111 	 	  from ap_system_parameters_all
112 		  where
113 	        org_id = l_org_id  and
114               upper(allow_awt_flag) = 'Y';
115 
116 	        If l_create_awt_dists_type = 'APPROVAL'
117 	        then
118 	          RETURN l_awt_group_id_pvs;
119 	        elsif  l_create_awt_dists_type = 'PAYMENT'
120 	        then
121 	          RETURN l_pay_awt_group_id_pvs;
122 	        elsif  l_create_awt_dists_type = 'BOTH'
123 	        then
124 	          RETURN NULL;
125 	        else
126 	          RETURN NULL;
127 	        end if;
128 
129           ELSIF (l_tax_grp_id IS NOT NULL) and (l_pay_tax_grp_id IS NULL) THEN
130 
131                RETURN l_tax_grp_id;
132 
133           ELSIF (l_tax_grp_id IS NULL) and (l_pay_tax_grp_id IS NOT NULL) THEN
134 
135                RETURN l_pay_tax_grp_id;
136 
137           ELSIF (l_tax_grp_id IS NOT NULL) and (l_pay_tax_grp_id IS NOT NULL) AND
138      	          (l_tax_grp_id  = l_pay_tax_grp_id) THEN
139 
140                RETURN l_tax_grp_id;
141 
142           ELSIF (l_tax_grp_id IS NOT NULL) and (l_pay_tax_grp_id IS NOT NULL) AND
143      	          (l_tax_grp_id  <> l_pay_tax_grp_id) THEN
144 
145                RETURN NULL;
146 
147           END IF;
148 
149 
150      END IF;         /* FOR VENDOR SITE */
151 
152      IF (l_vendor_id IS NOT NULL) AND (l_vendor_site_id IS NULL) THEN                      /* FOR VENDOR */
153 
154           IF  (l_tax_grp_id IS NULL) and (l_pay_tax_grp_id IS NULL) THEN
155 
156 		  select awt_group_id,pay_awt_group_id
157 	        into   l_awt_group_id_po,l_pay_awt_group_id_po
158 		  from ap_suppliers
159 	        where
160               vendor_id = l_vendor_id;
161 
162 	        If (l_awt_group_id_po IS NOT NULL) and (l_pay_awt_group_id_po IS NOT NULL) and
163 	           (l_awt_group_id_po  = l_pay_awt_group_id_po)
164 	        then
165 		     RETURN l_awt_group_id_po;
166 	        elsif  (l_awt_group_id_po IS NOT NULL) and (l_pay_awt_group_id_po IS NOT NULL) and
167 	               (l_awt_group_id_po  <> l_pay_awt_group_id_po)
168 	        then
169 	           RETURN NULL;
170 	        elsif  (l_awt_group_id_po IS NOT NULL) and (l_pay_awt_group_id_po IS NULL)
171 	        then
172 	           RETURN l_awt_group_id_po;
173 	        elsif  (l_awt_group_id_po IS NULL) and (l_pay_awt_group_id_po IS NOT NULL)
174 	        then
175 	           RETURN l_pay_awt_group_id_po;
176 	        end if;
177 
178           ELSIF (l_tax_grp_id IS NOT NULL) and (l_pay_tax_grp_id IS NULL) THEN
179 
180                RETURN l_tax_grp_id;
181 
182           ELSIF (l_tax_grp_id IS NULL) and (l_pay_tax_grp_id IS NOT NULL) THEN
183 
184                RETURN l_pay_tax_grp_id;
185 
186           ELSIF (l_tax_grp_id IS NOT NULL) and (l_pay_tax_grp_id IS NOT NULL) AND
187      	          (l_tax_grp_id  = l_pay_tax_grp_id) THEN
188 
189                RETURN l_tax_grp_id;
190 
191           ELSIF (l_tax_grp_id IS NOT NULL) and (l_pay_tax_grp_id IS NOT NULL) AND
192      	          (l_tax_grp_id  <> l_pay_tax_grp_id) THEN
193 
194                RETURN NULL;
195 
196           END IF;
197 
198      END IF;              /* FOR VENDOR */
199 
200      IF (l_vendor_id IS NULL) AND (l_vendor_site_id IS NULL) THEN                      /* FOR INVOICE AND PAY TAX GROUP IDS */
201 
202           IF (l_tax_grp_id IS NOT NULL) and (l_pay_tax_grp_id IS NULL) THEN
203 
204                RETURN l_tax_grp_id;
205 
206           ELSIF (l_tax_grp_id IS NULL) and (l_pay_tax_grp_id IS NOT NULL) THEN
207 
208                RETURN l_pay_tax_grp_id;
209 
210           ELSIF (l_tax_grp_id IS NOT NULL) and (l_pay_tax_grp_id IS NOT NULL) AND
211      	          (l_tax_grp_id  = l_pay_tax_grp_id) THEN
212 
213                RETURN l_tax_grp_id;
214 
215           ELSIF (l_tax_grp_id IS NOT NULL) and (l_pay_tax_grp_id IS NOT NULL) AND
216      	          (l_tax_grp_id  <> l_pay_tax_grp_id) THEN
217 
218                RETURN NULL;
219 
220           ELSIF (l_tax_grp_id IS NULL) and (l_pay_tax_grp_id IS  NULL) THEN
221 
222                RETURN NULL;
223 
224 
225           END IF;
226 
227      END IF;              /* FOR INVOICE AND PAY TAX GROUP IDS */
228 
229   END;
230 
231 END IGI_CIS2007_UTIL_PKG;
232