DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGI_CIS_IGIPMTHP_PKG

Source


1 PACKAGE BODY igi_cis_igipmthp_pkg AS
2 -- $Header: igipmthpb.pls 120.4.12020000.2 2012/09/18 20:32:59 sasukuma ship $
3 -- $Header: igipmthpb.pls 120.4.12020000.2 2012/09/18 20:32:59 sasukuma ship $
4 
5   --==========================================================================
6   ----Logging Declarations
7   --==========================================================================
8   C_STATE_LEVEL CONSTANT NUMBER       :=  FND_LOG.LEVEL_STATEMENT;
9   C_PROC_LEVEL  CONSTANT  NUMBER     :=  FND_LOG.LEVEL_PROCEDURE;
10   C_EVENT_LEVEL CONSTANT NUMBER       :=  FND_LOG.LEVEL_EVENT;
11   C_EXCEP_LEVEL CONSTANT NUMBER       :=  FND_LOG.LEVEL_EXCEPTION;
12   C_ERROR_LEVEL CONSTANT NUMBER       :=  FND_LOG.LEVEL_ERROR;
13   C_UNEXP_LEVEL CONSTANT NUMBER       :=  FND_LOG.LEVEL_UNEXPECTED;
14   g_log_level   CONSTANT NUMBER      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
15   g_path_name   CONSTANT VARCHAR2(100)  := 'igi.plsql.igipmthpb.igi_cis_igipmthp_pkg';
16 
17   PROCEDURE log
18   (
19     p_level             IN NUMBER,
20     p_procedure_name    IN VARCHAR2,
21     p_debug_info        IN VARCHAR2
22   )
23   IS
24 
25   BEGIN
26     IF (p_level >= g_log_level ) THEN
27       FND_LOG.STRING(p_level, p_procedure_name, p_debug_info);
28     END IF;
29   END log;
30 
31   PROCEDURE init
32   IS
33     l_procedure_name       VARCHAR2(100) :='.init';
34   BEGIN
35     log(C_STATE_LEVEL, l_procedure_name, 'Package Information');
36     log(C_STATE_LEVEL, l_procedure_name, '$Header: igipmthpb.pls 120.4.12020000.2 2012/09/18 20:32:59 sasukuma ship $');
37   END;
38 
39   FUNCTION BeforeReport RETURN BOOLEAN IS
40      l_procedure_name         VARCHAR2(100):='.BeforeReport';
41      SINGLE_QUOTE constant varchar2(3) := '''';
42      TWO_SINGLE_QUOTE constant varchar2(6) := '''''';
43   BEGIN
44     l_procedure_name := g_path_name || l_procedure_name;
45     log(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
46     log(C_STATE_LEVEL, l_procedure_name, 'p_supplier_from='||p_supplier_from);
47     log(C_STATE_LEVEL, l_procedure_name, 'p_supplier_to='||p_supplier_to);
48     log(C_STATE_LEVEL, l_procedure_name, 'p_period='||p_period);
49     log(C_STATE_LEVEL, l_procedure_name, 'p_mode='||p_mode);
50     log(C_STATE_LEVEL, l_procedure_name, 'p_sort_by='||p_sort_by);
51     log(C_STATE_LEVEL, l_procedure_name, 'p_report_lev='||p_report_lev);
52     log(C_STATE_LEVEL, l_procedure_name, 'p_amt_type='||p_amt_type);
53       pwhereclause := ' ';
54       tableclause := ' ';
55 
56       --bug 6124461 AP_SUPPLIERS table has been included in the query
57       IF (p_supplier_from IS NOT NULL) THEN
58          tableclause := 'AP_SUPPLIERS po_ven,';
59          pwhereclause  := pwhereclause || ' and lines.vendor_id = po_ven.vendor_id and po_ven.vendor_name >=  ''' || replace(p_supplier_from, SINGLE_QUOTE, TWO_SINGLE_QUOTE) || '''';
60       END IF;
61 
62       IF (p_supplier_to IS NOT NULL) THEN
63          IF (p_supplier_from IS NOT NULL) THEN
64             pwhereclause  := pwhereclause || ' and po_ven.vendor_name <= ''' || replace(p_supplier_to, SINGLE_QUOTE, TWO_SINGLE_QUOTE) || '''';
65           ELSE
66             tableclause := 'AP_SUPPLIERS po_ven,';
67             pwhereclause  := pwhereclause || ' and lines.vendor_id = po_ven.vendor_id and po_ven.vendor_name <= ''' || replace(p_supplier_to, SINGLE_QUOTE, TWO_SINGLE_QUOTE) || '''';
68           END IF;
69       END IF;
70       --end bug 6124461
71       --Bug 5933093 start
72       IF (p_period IS NOT NULL ) THEN
73          pwhereclause := pwhereclause || ' AND hdr.period_name = ''' || p_period || '''';
74          IF p_mode = 'P' THEN
75             pwhereclause := pwhereclause || ' AND hdr.header_id = (select max(header_id) from IGI_CIS_MTH_RET_HDR_T where period_name = ''' || p_period || '''';
76             pwhereclause := pwhereclause || ' AND request_status_code = ''P'')';
77          ELSE
78             pwhereclause := pwhereclause || ' AND hdr.header_id = (select max(header_id) from IGI_CIS_MTH_RET_HDR_H where period_name = ''' || p_period || '''';
79             pwhereclause := pwhereclause || ' AND request_status_code = ''C'')';
80          END IF;
81       END IF ;
82       --Bug 5933093 end
83 
84       IF p_mode = 'P' THEN
85          pwhereclause := pwhereclause || ' AND request_status_code = ''P''';
86          tableclause  := tableclause||' IGI_CIS_MTH_RET_HDR_T hdr, IGI_CIS_MTH_RET_LINES_T lines, IGI_CIS_MTH_RET_PAY_T pay ';
87       ELSE
88          pwhereclause := pwhereclause || ' AND request_status_code = ''C''';
89          tableclause  := tableclause||' IGI_CIS_MTH_RET_HDR_H hdr, IGI_CIS_MTH_RET_LINES_H lines, IGI_CIS_MTH_RET_PAY_H pay ';
90       END IF ;
91 
92       IF (p_sort_by IS NOT NULL ) THEN
93          IF p_sort_by = 'VENDOR_NAME' Then
94             orderbyclause := ' ORDER BY ' || p_sort_by;
95          ELSE
96             orderbyclause := ' ORDER BY ' || p_sort_by || ', lines.vendor_name';
97          END IF;
98       ELSE
99          orderbyclause := ' ORDER BY lines.vendor_name';
100       END IF;
101       IF p_report_lev = 'S' then
102         partselect := ' '''' invoice_num, ';
103         partgroupby := ' ';
104       Elsif p_report_lev ='D' then
105         partselect := 'nvl((select invoice_num from ap_invoices where pay.invoice_id = invoice_id),'''') invoice_num, ';
106         partgroupby := ',pay.invoice_id ';
107       End if;
111          pwhereclause := pwhereclause ||' and ((nvl(lines.total_payments,0) + nvl(lines.total_deductions,0)) >=0 and
108 
109       --ER6137652 Start
110       IF nvl(p_amt_type,'P') = 'P' THEN
112                            nvl(lines.material_cost,0) >= 0 and
113                            nvl(lines.labour_cost,0) >= 0 and
114                            nvl(lines.total_deductions,0) >= 0) ';
115       ELSIF nvl(p_amt_type,'P') = 'N' THEN
116          pwhereclause := pwhereclause || ' and ((nvl(lines.total_payments,0) + nvl(lines.total_deductions,0)) < 0 or
117                            nvl(lines.material_cost,0) < 0 or
118                            nvl(lines.labour_cost,0) < 0 or
119                            nvl(lines.total_deductions,0) < 0) ';
120       END IF;
121       --ER6137652 End
122 
123       -- for debugging
124       FND_FILE.PUT_LINE(FND_FILE.LOG,'p_mode to trigger: ' || p_mode);
125       FND_FILE.PUT_LINE(FND_FILE.LOG,'where clause:' || pwhereclause);
126       FND_FILE.PUT_LINE(FND_FILE.LOG,'orderby clause:' || orderbyclause);
127       FND_FILE.PUT_LINE(FND_FILE.LOG,'partselect :' || partselect);
128       FND_FILE.PUT_LINE(FND_FILE.LOG,'partgroupby:' || partgroupby);
129       FND_FILE.PUT_LINE(FND_FILE.LOG,'amount type:' || p_amt_type);
130 
131     log(C_STATE_LEVEL, l_procedure_name, 'pwhereclause='||pwhereclause);
132     log(C_STATE_LEVEL, l_procedure_name, 'orderbyclause='||orderbyclause);
133     log(C_STATE_LEVEL, l_procedure_name, 'partselect='||partselect);
134     log(C_STATE_LEVEL, l_procedure_name, 'partgroupby='||partgroupby);
135     log(C_STATE_LEVEL, l_procedure_name, 'END');
136       RETURN(TRUE);
137   END BeforeReport;
138 
139   FUNCTION AfterReport RETURN BOOLEAN IS
140     l_procedure_name         VARCHAR2(100):='.AfterReport';
141     l_header_id number := 0;
142   BEGIN
143     l_procedure_name := g_path_name || l_procedure_name;
144     log(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
145     log(C_STATE_LEVEL, l_procedure_name, 'p_mode='||p_mode);
146     log(C_STATE_LEVEL, l_procedure_name, 'p_del_preview='||p_del_preview);
147     IF p_mode = 'P' and p_del_preview = 'Y' THEN
148       Select max(header_id) --Bug 5933093
149       into l_header_id
150       from igi_cis_mth_ret_hdr_t
151       where period_name = p_period
152       and request_status_code = 'P';
153       log(C_STATE_LEVEL, l_procedure_name, 'l_header_id='||l_header_id);
154       delete from igi_cis_mth_ret_hdr_t where header_id = l_header_id;
155       log(C_STATE_LEVEL, l_procedure_name, 'Deleted '||SQL%ROWCOUNT||' rows from igi_cis_mth_ret_hdr_t');
156       delete from igi_cis_mth_ret_lines_t where header_id = l_header_id;
157       log(C_STATE_LEVEL, l_procedure_name, 'Deleted '||SQL%ROWCOUNT||' rows from igi_cis_mth_ret_lines_t');
158       delete from igi_cis_mth_ret_pay_t where header_id = l_header_id;
159       log(C_STATE_LEVEL, l_procedure_name, 'Deleted '||SQL%ROWCOUNT||' rows from igi_cis_mth_ret_pay_t');
160       commit;
161     END IF;
162     log(C_STATE_LEVEL, l_procedure_name, 'END');
163     RETURN(TRUE);
164   END AfterReport;
165 
166   FUNCTION get_p_supplier_from RETURN VARCHAR2 IS
167     l_procedure_name         VARCHAR2(100):='.get_p_supplier_from';
168   BEGIN
169         RETURN (p_supplier_from);
170   END get_p_supplier_from;
171 
172 
173   FUNCTION get_p_supplier_to RETURN VARCHAR2 IS
174     l_procedure_name         VARCHAR2(100):='.get_p_supplier_to';
175   BEGIN
176         RETURN (p_supplier_to);
177   END get_p_supplier_to;
178 
179   FUNCTION get_p_rep_mode RETURN VARCHAR2 IS
180     l_procedure_name         VARCHAR2(100):='.get_p_rep_mode';
181   BEGIN
182         RETURN(p_report_lev);
183   END get_p_rep_mode;
184 
185   FUNCTION get_period_start_date RETURN VARCHAR2 IS
186     l_procedure_name         VARCHAR2(100):='.get_period_start_date';
187       l_period_type ap_other_periods.period_type%TYPE;
188       l_start_date    ap_other_periods.start_date%TYPE;
189   BEGIN
190     l_procedure_name := g_path_name || l_procedure_name;
191     log(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
192      l_period_type := fnd_profile.value('IGI_CIS2007_CALENDAR');
193 
194      SELECT start_date
195        INTO l_start_date
196        FROM ap_other_periods
197       WHERE period_type = l_period_type
198         AND period_name = p_period;
199 
200     log(C_STATE_LEVEL, l_procedure_name, 'END');
201      RETURN(l_start_date);
202   EXCEPTION
203       WHEN no_data_found THEN
204     log(C_STATE_LEVEL, l_procedure_name, 'EXCEPTION:'||SQLERRM);
205         RETURN(NULL);
206   END get_period_start_date;
207 
208 
209   FUNCTION get_period_end_date RETURN VARCHAR2 IS
210     l_procedure_name         VARCHAR2(100):='.get_period_end_date';
211             l_period_type ap_other_periods.period_type%TYPE;
212             l_end_date    ap_other_periods.start_date%TYPE;
213   BEGIN
214     l_procedure_name := g_path_name || l_procedure_name;
215     log(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
216      l_period_type := fnd_profile.value('IGI_CIS2007_CALENDAR');
217 
218      SELECT end_date
219        INTO l_end_date
220        FROM ap_other_periods
221       WHERE period_type = l_period_type
222         AND period_name = p_period;
223 
224     log(C_STATE_LEVEL, l_procedure_name, 'END');
225       RETURN (l_end_date);
226   EXCEPTION
227      WHEN no_data_found THEN
228     log(C_STATE_LEVEL, l_procedure_name, 'EXCEPTION:'||SQLERRM);
229        RETURN(NULL);
230   END get_period_end_date;
231 
232 
233   FUNCTION get_print_type RETURN VARCHAR2 IS
234     l_procedure_name         VARCHAR2(100):='.get_print_type';
235           l_print_type igi_lookups.meaning%TYPE := null;
236   BEGIN
237     l_procedure_name := g_path_name || l_procedure_name;
241        FROM igi_lookups
238     log(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
239      SELECT meaning
240        INTO l_print_type
242       WHERE lookup_type = 'IGI_CIS2007_PRINT_TYPES'
243         AND lookup_code = p_print_type;
244 
245     log(C_STATE_LEVEL, l_procedure_name, 'END');
246      RETURN (l_print_type);
247   EXCEPTION
248      WHEN no_data_found THEN
249     log(C_STATE_LEVEL, l_procedure_name, 'EXCEPTION:'||SQLERRM);
250         RETURN(NULL);
251   END get_print_type;
252 
253 
254   FUNCTION get_org_name RETURN VARCHAR2 IS
255     l_procedure_name         VARCHAR2(100):='.get_org_name';
256       l_org_id  hr_operating_units.organization_id%TYPE   := NULL ;
257       l_org_name hr_operating_units.name%TYPE := NULL ;
258   BEGIN
259     l_procedure_name := g_path_name || l_procedure_name;
260     log(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
261   --   l_org_id := fnd_profile.value('ORG_ID');
262 
263      l_org_id:=  mo_global.get_current_org_id;
264      if(l_org_id is null) then
265       l_org_id := fnd_profile.value('ORG_ID');
266      end if;
267 
268      SELECT name
269        INTO l_org_name
270        FROM hr_operating_units
271       WHERE organization_id = l_org_id;
272 
273     log(C_STATE_LEVEL, l_procedure_name, 'END');
274      RETURN(l_org_name);
275   EXCEPTION
276      WHEN no_data_found THEN
277     log(C_STATE_LEVEL, l_procedure_name, 'EXCEPTION:'||SQLERRM);
278         RETURN(NULL);
279   END get_org_name;
280 
281   FUNCTION get_p_sort_by RETURN VARCHAR2 IS
282     l_procedure_name         VARCHAR2(100):='.get_p_sort_by';
283       l_sort_by igi_lookups.meaning%TYPE := NULL ;
284   BEGIN
285     l_procedure_name := g_path_name || l_procedure_name;
286     log(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
287 
288      SELECT meaning
289        INTO l_sort_by
290        FROM igi_lookups
291       WHERE lookup_type='IGI_CIS2007_MTHR_SORT_COLS'
292         AND lookup_code=p_sort_by;
293 
294     log(C_STATE_LEVEL, l_procedure_name, 'END');
295      RETURN(l_sort_by);
296   EXCEPTION
297      WHEN no_data_found THEN
298     log(C_STATE_LEVEL, l_procedure_name, 'EXCEPTION:'||SQLERRM);
299         RETURN(NULL);
300   END get_p_sort_by;
301 
302 
303   FUNCTION get_p_report_title RETURN VARCHAR2 IS
304     l_procedure_name         VARCHAR2(100):='.get_p_report_title';
305       l_report_title igi_lookups.meaning%TYPE := NULL;
306   BEGIN
307     l_procedure_name := g_path_name || l_procedure_name;
308     log(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
309       SELECT meaning
310         INTO l_report_title
311         FROM igi_lookups
312        WHERE lookup_type = 'IGI_CIS2007_NEW_REPORTS'
313          AND lookup_code = decode(p_mode||p_report_lev,'PS','IGIPMTPS',
314                                                      'PD','IGIPMTPD',
315                                                      'FD','IGIPMTRD',
316                                                      'FS','IGIPMTRS');
317     log(C_STATE_LEVEL, l_procedure_name, 'END');
318      RETURN(l_report_title);
319   EXCEPTION
320       WHEN no_data_found THEN
321     log(C_STATE_LEVEL, l_procedure_name, 'EXCEPTION:'||SQLERRM);
322          RETURN(NULL);
323   END get_p_report_title;
324 
325   FUNCTION get_tax_status(p_awt_group_code IN VARCHAR2) RETURN VARCHAR2 IS
326     l_procedure_name         VARCHAR2(100):='.get_tax_status';
327       l_net_group VARCHAR2(10) := NULL;
328       l_unmatch_group VARCHAR2(10) := NULL;
329       l_gross_group VARCHAR2(10) := NULL;
330       l_tax_status VARCHAR2(10) := NULL;
331   BEGIN
332     l_procedure_name := g_path_name || l_procedure_name;
333     log(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
334     l_net_group := fnd_profile.VALUE('IGI_CIS2007_NET_WTH_GROUP');
335     l_unmatch_group := fnd_profile.VALUE('IGI_CIS2007_UNMATCHED_WTH_GROUP');
336     l_gross_group  := fnd_profile.VALUE('IGI_CIS2007_GROSS_WTH_GROUP');
337 
338     SELECT meaning
339        INTO l_tax_status
340        FROM igi_lookups
341        WHERE lookup_type = 'IGI_CIS2007_TAX_STATUS'
342        AND lookup_code = decode(nvl(p_awt_group_code,' '),l_gross_group,'G',
343                                                  l_net_group,'N',
344                                                  l_unmatch_group,'U');
345     /*if p_awt_group_code = l_gross_group then
346  *       l_tax_status := 'Gross';
347  *           Elsif p_awt_group_code = l_net_group then
348  *                 l_tax_status := 'Net';
349  *                     Elsif p_awt_group_code = l_unmatch_group then
350  *                           l_tax_status := 'Unmatched';
351  *                               End if; */
352     log(C_STATE_LEVEL, l_procedure_name, 'END');
353     RETURN(l_tax_status);
354   EXCEPTION
355     WHEN OTHERS THEN
356     log(C_STATE_LEVEL, l_procedure_name, 'EXCEPTION:'||SQLERRM);
357       RETURN(NULL);
358   END get_tax_status;
359 
360   --Function Added for ER6137652
361   FUNCTION get_p_amt_type RETURN VARCHAR2 IS
362     l_procedure_name         VARCHAR2(100):='.get_p_amt_type';
363       l_amt_type igi_lookups.meaning%TYPE := NULL;
364   BEGIN
365     l_procedure_name := g_path_name || l_procedure_name;
366     log(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
367       SELECT meaning
368         INTO l_amt_type
369         FROM igi_lookups
370        WHERE lookup_type = 'IGI_CIS2007_MTH_RET_AMT_TYPE'
371          AND lookup_code = nvl(p_amt_type,'P');
372     log(C_STATE_LEVEL, l_procedure_name, 'END');
373      RETURN(l_amt_type);
374   EXCEPTION
375       WHEN no_data_found THEN
376     log(C_STATE_LEVEL, l_procedure_name, 'EXCEPTION:'||SQLERRM);
380 init;
377          RETURN(NULL);
378   END get_p_amt_type;
379 BEGIN
381 END igi_cis_igipmthp_pkg ;