[Home] [Help]
PACKAGE BODY: APPS.OKL_VENDOR_PROGRAM_PUB
Source
1 PACKAGE BODY OKL_VENDOR_PROGRAM_PUB AS
2 /*$Header: OKLPPRMB.pls 120.2 2005/10/29 02:14:47 manumanu noship $*/
3
4
5 ---------------------------------------------------------------------------
6 -- PROCEDURE extend_contract
7 -- Public wrapper for extend contract process api
8 ---------------------------------------------------------------------------
9
10 PROCEDURE create_program(p_api_version IN NUMBER,
11 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
12 x_return_status OUT NOCOPY VARCHAR2,
13 x_msg_count OUT NOCOPY NUMBER,
14 x_msg_data OUT NOCOPY VARCHAR2,
15 p_hdr_rec IN program_header_rec_type,
16 p_parent_agreement_number IN VARCHAR2 DEFAULT NULL,
17 x_header_rec OUT NOCOPY chrv_rec_type,
18 x_k_header_rec OUT NOCOPY khrv_rec_type) IS
19
20
21 l_hdr_rec program_header_rec_type;
22 l_data VARCHAR2(100);
23 l_api_name CONSTANT VARCHAR2(30) := 'create_program';
24 l_count NUMBER ;
25 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
26 BEGIN
27 x_return_status := FND_API.G_RET_STS_SUCCESS;
28
29 l_hdr_rec := p_hdr_rec;
30
31
32
33 -- call process api to extend contract
34
35 OKL_VENDOR_PROGRAM_PVT.create_program(p_api_version => p_api_version,
36 p_init_msg_list => p_init_msg_list,
37 x_return_status => l_return_status,
38 x_msg_count => x_msg_count,
39 x_msg_data => x_msg_data,
40 p_hdr_rec => l_hdr_rec,
41 p_parent_agreement_number => p_parent_agreement_number,
42 x_header_rec => x_header_rec,
43 x_k_header_rec => x_k_header_rec);
44
45
46 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
47 RAISE FND_API.G_EXC_ERROR;
48 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
49 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
50 END IF;
51
52
53
54
55 EXCEPTION
56 WHEN FND_API.G_EXC_ERROR THEN
57 -- notify caller of an UNEXPECTED error
58 x_return_status := FND_API.G_RET_STS_ERROR;
59
60 -- store SQL error message on message stack for caller
61 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE,
62 p_count => x_msg_count,
63 p_data => x_msg_data);
64
65 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
66 -- notify caller of an UNEXPECTED error
67 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
68
69 -- store SQL error message on message stack for caller
70 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE,
71 p_count => x_msg_count,
72 p_data => x_msg_data);
73
74 WHEN OTHERS THEN
75 -- notify caller of an UNEXPECTED error
76 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
77 FND_MSG_PUB.ADD_EXC_MSG('OKL_VENDOR_PROGRAM_PUB','create_program');
78
79 -- store SQL error message on message stack for caller
80 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE,
81 p_count => x_msg_count,
82 p_data => x_msg_data);
83 END create_program;
84
85
86 PROCEDURE update_program(p_api_version IN NUMBER,
87 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
88 x_return_status OUT NOCOPY VARCHAR2,
89 x_msg_count OUT NOCOPY NUMBER,
90 x_msg_data OUT NOCOPY VARCHAR2,
91 p_hdr_rec IN program_header_rec_type,
92 p_program_id IN NUMBER,
93 p_parent_agreement_id IN okc_k_headers_v.ID%TYPE DEFAULT NULL
94 ) IS
95
96
97 l_hdr_rec program_header_rec_type;
98 l_data VARCHAR2(100);
99 l_api_name CONSTANT VARCHAR2(30) := 'update_program';
100 l_count NUMBER ;
101 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
102 BEGIN
103 x_return_status := FND_API.G_RET_STS_SUCCESS;
104
105 l_hdr_rec := p_hdr_rec;
106
107
108
109 -- call process api to update contract
110
111 OKL_VENDOR_PROGRAM_Pvt.update_program(p_api_version => p_api_version,
112 p_init_msg_list => p_init_msg_list,
113 x_return_status => l_return_status,
114 x_msg_count => x_msg_count,
115 x_msg_data => x_msg_data,
116 p_hdr_rec => l_hdr_rec,
117 p_program_id => p_program_id,
118 p_parent_agreement_id => p_parent_agreement_id
119 );
120
121
122 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
123 RAISE FND_API.G_EXC_ERROR;
124 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
125 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
126 END IF;
127
128
129
130
131 EXCEPTION
132 WHEN FND_API.G_EXC_ERROR THEN
133 -- notify caller of an UNEXPECTED error
134 x_return_status := FND_API.G_RET_STS_ERROR;
135
136 -- store SQL error message on message stack for caller
137 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE,
138 p_count => x_msg_count,
139 p_data => x_msg_data);
140
141 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
142 -- notify caller of an UNEXPECTED error
143 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
144
145 -- store SQL error message on message stack for caller
146 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE,
147 p_count => x_msg_count,
148 p_data => x_msg_data);
149
150 WHEN OTHERS THEN
151 -- notify caller of an UNEXPECTED error
152 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
153 FND_MSG_PUB.ADD_EXC_MSG('OKL_VENDOR_PROGRAM_PUB','update_program');
154
155 -- store SQL error message on message stack for caller
156 FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE,
157 p_count => x_msg_count,
158 p_data => x_msg_data);
159 END update_program;
160
161
162
163 FUNCTION Is_Process_Active(p_chr_id IN NUMBER) RETURN VARCHAR2 Is
164
165 l_wf_name OKC_PROCESS_DEFS_B.WF_NAME%TYPE;
166 l_item_key OKC_K_PROCESSES.PROCESS_ID%TYPE;
167 l_return_code VARCHAR2(1) := 'N';
168 l_end_date DATE;
169
170 -- cursor for item type and item key
171 CURSOR l_pdfv_csr IS
172 SELECT pdfv.wf_name, cpsv.process_id
173 FROM okc_process_defs_b pdfv,
174 okc_k_processes cpsv
175 WHERE pdfv.id = cpsv.pdf_id
176 AND cpsv.chr_id = p_chr_id;
177
178 -- cursor to check active process
179 CURSOR l_wfitems_csr IS
180 SELECT end_date
181 FROM wf_items
182 WHERE item_type = l_wf_name
183 AND item_key = l_item_key;
184 BEGIN
185
186 -- get item type and item key
187 OPEN l_pdfv_csr;
188 FETCH l_pdfv_csr INTO l_wf_name, l_item_key;
189 IF (l_pdfv_csr%NOTFOUND OR l_wf_name IS NULL or l_item_key IS NULL) Then
190 CLOSE l_pdfv_csr;
191 RETURN l_return_code;
192 END IF;
193 CLOSE l_pdfv_csr;
194
195 -- check whether process is active or not
196 OPEN l_wfitems_csr;
197 FETCH l_wfitems_csr into l_end_date;
198 IF (l_wfitems_csr%NOTFOUND OR l_end_date IS NOT NULL) Then
199 l_return_code := 'N';
200 ELSE
201 l_return_code := 'Y';
202 END IF;
203 CLOSE l_wfitems_csr;
204
205 RETURN l_return_code;
206 EXCEPTION
207 WHEN NO_DATA_FOUND THEN
208 RETURN (l_return_code);
209 END Is_Process_Active;
210
211
212
213 END OKL_VENDOR_PROGRAM_PUB;