DBA Data[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;