[Home] [Help]
PACKAGE BODY: APPS.OKL_PAY_INVOICES_DISB_PUB
Source
1 PACKAGE BODY okl_pay_invoices_disb_pub AS
2 /* $Header: OKLPPIDB.pls 120.2 2005/06/03 23:18:48 pjgomes noship $ */
3
4 PROCEDURE auto_disbursement(p_api_version IN NUMBER
5 ,p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE
6 ,x_return_status OUT NOCOPY VARCHAR2
7 ,x_msg_count OUT NOCOPY NUMBER
8 ,x_msg_data OUT NOCOPY VARCHAR2
9 ,p_from_date IN DATE
10 ,p_to_date IN DATE
11 ,p_contract_number IN VARCHAR2)
12
13 IS
14 l_api_version NUMBER ;
15 l_init_msg_list VARCHAR2(1) ;
16 l_return_status VARCHAR2(1);
17 l_msg_count NUMBER ;
18 l_msg_data VARCHAR2(2000);
19 --l_from_date DATE;
20 --l_to_date DATE;
21
22 BEGIN
23
24 SAVEPOINT auto_disbursement;
25
26
27
28
29 --dbms_output.put_line('call to pvt ');
30 okl_pay_invoices_disb_pvt.auto_disbursement(
31 p_api_version => p_api_version
32 ,p_init_msg_list => p_init_msg_list
33 ,x_return_status => x_return_status
34 ,x_msg_count => x_msg_count
35 ,x_msg_data => x_msg_data
36 ,p_from_date => p_from_date
37 ,p_to_date => p_to_date
38 ,p_contract_number => p_contract_number);
39
40 IF ( l_return_status = Fnd_Api.G_RET_STS_ERROR ) THEN
41 RAISE Fnd_Api.G_EXC_ERROR;
42 ELSIF (l_return_status = Fnd_Api.G_RET_STS_UNEXP_ERROR ) THEN
43 RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
44 END IF;
45
46
47
48
49
50 EXCEPTION
51
52 WHEN Fnd_Api.G_EXC_ERROR THEN
53 ROLLBACK TO auto_disbursement;
54 x_return_status := Fnd_Api.G_RET_STS_ERROR;
55 x_msg_count := l_msg_count ;
56 x_msg_data := l_msg_data ;
57 Fnd_Msg_Pub.count_and_get(
58 p_count => x_msg_count
59 ,p_data => x_msg_data);
60 WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
61 ROLLBACK TO auto_disbursement;
62 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
63 x_msg_count := l_msg_count ;
64 x_msg_data := l_msg_data ;
65 Fnd_Msg_Pub.count_and_get(
66 p_count => x_msg_count
67 ,p_data => x_msg_data);
68 WHEN OTHERS THEN
69 ROLLBACK TO auto_disbursement;
70 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
71 x_msg_count := l_msg_count ;
72 x_msg_data := l_msg_data ;
73 Fnd_Msg_Pub.ADD_EXC_MSG('OKL_PAY_INVOICES_DISB_PUB','AUTO_DISBURSEMENT');
74 Fnd_Msg_Pub.count_and_get(
75 p_count => x_msg_count
76 ,p_data => x_msg_data);
77 END AUTO_DISBURSEMENT;
78
79 PROCEDURE auto_disbursement
80 (errbuf OUT NOCOPY VARCHAR2
81 ,retcode OUT NOCOPY NUMBER
82 ,p_from_date IN VARCHAR2
83 ,p_to_date IN VARCHAR2
84 ,p_contract_number IN VARCHAR2) is
85
86 l_api_vesrions NUMBER := 1;
87 lx_msg_count NUMBER;
88 l_count NUMBER :=0;
89 l_count1 NUMBER :=0;
90 l_count2 NUMBER :=0;
91 lx_msg_data VARCHAR2(450);
92 i NUMBER;
93 l_msg_index_out NUMBER;
94 lx_return_status VARCHAR(1);
95 l_from_date DATE;
96 l_to_date DATE;
97
98 BEGIN
99
100 IF p_from_date IS NOT NULL THEN
101 l_from_date := FND_DATE.CANONICAL_TO_DATE(p_from_date);
102 END IF;
103
104 IF p_to_date IS NOT NULL THEN
105 l_to_date := FND_DATE.CANONICAL_TO_DATE(p_to_date);
106 END IF;
107
108 SELECT count(*) INTO l_count1 FROM OKL_TRX_AP_INVOICES_B;
109
110 FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'OKL Pay Invoices Creation By Auto-Disbursement from Consolidated Invoices');
111 FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '***********************************************');
112 FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Program Run Date:'||sysdate);
113 FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'From Consolidated Invoice Date:'||l_from_date);
114 FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'To Consolidated Invoice Date:'||l_to_date);
115 FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Contract Number:'||p_contract_number);
116 FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Success or Error Detailed Messages If Any For Each Consolidated Invoice');
117 FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '***********************************************');
118 --dbms_output.put_line('From Consolidated Invoice Date:'||l_from_date);
119 --dbms_output.put_line('To Consolidated Invoice Date:'||l_to_date);
120 auto_disbursement( p_api_version => l_api_vesrions,
121 p_init_msg_list => OKC_API.G_FALSE,
122 x_return_status => lx_return_status,
123 x_msg_count => lx_msg_count,
124 x_msg_data => errbuf,
125 p_from_date => l_from_date,
126 p_to_date => l_to_date,
127 p_contract_number => p_contract_number
128 );
129
130 SELECT count(*) INTO l_count2 FROM OKL_TRX_AP_INVOICES_B;
131
132 l_count := l_count2 - l_count1;
133
134 FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Number of Invoice Lines Created in OKL_TRX_AP_INVOICES_B :'||TO_CHAR(l_count));
135 --FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'Number of Invoice Lines in OKL_TRX_AP_INVOICES_B :'||TO_CHAR(l_count2));
136
137
138 IF lx_msg_count >= 1 THEN
139 FOR i in 1..lx_msg_count LOOP
140 fnd_msg_pub.get (p_msg_index => i,
141 p_encoded => 'F',
142 p_data => lx_msg_data,
143 p_msg_index_out => l_msg_index_out);
144
145 FND_FILE.PUT_LINE (FND_FILE.OUTPUT,to_char(i) || ': ' || lx_msg_data);
146 END LOOP;
147 END IF;
148 EXCEPTION
149 WHEN OTHERS THEN
150
151 FND_FILE.PUT_LINE (FND_FILE.OUTPUT,'Error '||TO_CHAR(SQLCODE)||': '||SQLERRM);
152 --dbms_output.put_line('Error '||TO_CHAR(SQLCODE)||': '||SQLERRM);
153
154 END;
155
156 END;