DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_CI_SUPPLIER_PKG

Source


1 package body PA_CI_SUPPLIER_PKG as
2 -- $Header: PACISIIB.pls 115.5 2002/12/02 23:35:18 riyengar noship $
3 PROCEDURE print_msg(p_msg  varchar2) IS
4 BEGIN
5       --dbms_output.put_line('Log:'||p_msg);
6       --r_debug.r_msg('Log:'||p_msg);
7 	PA_DEBUG.g_err_stage := p_msg;
8         PA_DEBUG.write_file('LOG',pa_debug.g_err_stage);
9 	null;
10 END print_msg;
11 
12 PROCEDURE insert_row (
13 	x_rowid                        IN OUT NOCOPY VARCHAR2
14 	,x_CI_TRANSACTION_ID           IN OUT NOCOPY NUMBER
15  	,p_CI_TYPE_ID                  IN   NUMBER
16  	,p_CI_ID                       IN   NUMBER
17  	,p_CI_IMPACT_ID                IN   NUMBER
18  	,p_VENDOR_ID                   IN   NUMBER
19  	,p_PO_HEADER_ID                IN   NUMBER
20  	,p_PO_LINE_ID                  IN   NUMBER
21  	,p_ADJUSTED_TRANSACTION_ID     IN   NUMBER
22  	,p_CURRENCY_CODE               IN   VARCHAR2
23  	,p_CHANGE_AMOUNT               IN   NUMBER
24  	,p_CHANGE_TYPE                 IN   VARCHAR2
25  	,p_CHANGE_DESCRIPTION          IN   VARCHAR2
26         ,p_CREATED_BY                  IN   NUMBER
27         ,p_CREATION_DATE               IN   DATE
28         ,p_LAST_UPDATED_BY             IN   NUMBER
29         ,p_LAST_UPDATE_DATE            IN   DATE
30         ,p_LAST_UPDATE_LOGIN           IN   NUMBER
31 	,p_ci_status            	IN   VARCHAR2
32 	,x_return_status               OUT NOCOPY  VARCHAR2
33 	,x_error_msg_code              OUT NOCOPY  VARCHAR2
34                       )IS
35   cursor return_rowid is
36    select rowid
37    from pa_ci_supplier_details
38    where ci_transaction_id = x_ci_transaction_id;
39 
40   cursor get_itemid is
41    select pa_ci_supplier_details_s.nextval
42    from sys.dual;
43 
44    l_return_status        varchar2(100) := 'S';
45    l_error_msg_code       varchar2(100) := NULL;
46    l_debug_mode           varchar2(1) := 'N';
47  BEGIN
48 
49    fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
50    l_debug_mode := NVL(l_debug_mode, 'N');
51 
52    pa_debug.set_process('PLSQL','LOG',l_debug_mode);
53 
54   IF l_debug_mode = 'Y' THEN
55 	print_msg('Inside pa_ci_supplier_pkg table handler..');
56   End IF;
57 
58   if (x_ci_transaction_id is null) then
59     open get_itemid;
60     fetch get_itemid into x_ci_transaction_id;
61     close get_itemid;
62   end if;
63 
64   IF l_debug_mode = 'Y' THEN
65 	print_msg('Info transacton id ..'||x_ci_transaction_id);
66   End IF;
67 
68   INSERT into pa_ci_supplier_details
69 	(  CI_TRANSACTION_ID
70  	  ,CI_TYPE_ID
71  	  ,CI_ID
72  	  ,CI_IMPACT_ID
73  	  ,VENDOR_ID
74  	  ,PO_HEADER_ID
75  	  ,PO_LINE_ID
76  	  ,ADJUSTED_CI_TRANSACTION_ID
77  	  ,CURRENCY_CODE
78  	  ,CHANGE_AMOUNT
79  	  ,CHANGE_TYPE
80  	  ,CHANGE_DESCRIPTION
81  	  ,CREATED_BY
82  	  ,CREATION_DATE
83  	  ,LAST_UPDATED_BY
84  	  ,LAST_UPDATE_DATE
85  	  ,LAST_UPDATE_LOGIN
86 	) VALUES
87         ( x_CI_TRANSACTION_ID
88           ,p_CI_TYPE_ID
89           ,p_CI_ID
90           ,p_CI_IMPACT_ID
91           ,p_VENDOR_ID
92           ,p_PO_HEADER_ID
93           ,p_PO_LINE_ID
94           ,p_ADJUSTED_TRANSACTION_ID
95           ,p_CURRENCY_CODE
96           ,pa_currency.round_trans_currency_amt
97                      (decode(p_CHANGE_AMOUNT,null,0,p_CHANGE_AMOUNT),p_CURRENCY_CODE)
98           ,p_CHANGE_TYPE
99           ,p_CHANGE_DESCRIPTION
100           ,p_CREATED_BY
101           ,p_CREATION_DATE
102           ,p_LAST_UPDATED_BY
103           ,p_LAST_UPDATE_DATE
104           ,p_LAST_UPDATE_LOGIN
105         );
106      OPEN return_rowid;
107      FETCH return_rowid into x_rowid;
108      IF  (return_rowid%notfound) then
109 	l_return_status := 'E';
110 	l_error_msg_code := 'NO_DATA_FOUND';
111 	IF l_debug_mode = 'Y' THEN
112 		print_msg('rowid not found raise insert failed');
113 	End If;
114         raise NO_DATA_FOUND;  -- should we return something else?
115      Else
116 	IF l_debug_mode = 'Y' THEN
117 		print_msg('Insert success');
118 	End If;
119 	l_return_status := 'S';
120 	l_error_msg_code := NULL;
121      End if;
122      CLOSE return_rowid;
123 
124 	x_return_status := l_return_status;
125 	x_error_msg_code := l_error_msg_code;
126  EXCEPTION
127 	when others then
128 	    x_error_msg_code := sqlcode||sqlerrm;
129 	    IF l_debug_mode = 'Y' THEN
130 	    	print_msg('x_err_msg_code exception:'||x_error_msg_code);
131 	    End If;
132 	    Raise;
133 
134  END insert_row;
135 
136  PROCEDURE update_row
137         (p_rowid                       	IN   VARCHAR2
138         ,p_ci_transaction_id         	IN   NUMBER
139         ,p_CI_TYPE_ID           	IN   NUMBER
140         ,p_CI_ID                	IN   NUMBER
141         ,p_CI_IMPACT_ID                IN   NUMBER
142         ,p_VENDOR_ID                   IN   NUMBER
143         ,p_PO_HEADER_ID                IN   NUMBER
144         ,p_PO_LINE_ID                  IN   NUMBER
145         ,p_ADJUSTED_TRANSACTION_ID     IN   NUMBER
146         ,p_CURRENCY_CODE               IN   VARCHAR2
147         ,p_CHANGE_AMOUNT               IN   NUMBER
148         ,p_CHANGE_TYPE                 IN   VARCHAR2
149         ,p_CHANGE_DESCRIPTION          IN   VARCHAR2
150         ,p_LAST_UPDATED_BY             IN   NUMBER
151         ,p_LAST_UPDATE_DATE            IN   DATE
152         ,p_LAST_UPDATE_LOGIN           IN   NUMBER
153 	,p_ci_status            	IN   VARCHAR2
154         ,x_return_status               OUT NOCOPY  VARCHAR2
155         ,x_error_msg_code              OUT NOCOPY  VARCHAR2
156                       )IS
157 	CURSOR cur_row is
158 	SELECT CI_TYPE_ID
159           ,CI_ID
160           ,CI_IMPACT_ID
161           ,VENDOR_ID
162           ,PO_HEADER_ID
163           ,PO_LINE_ID
164           ,ADJUSTED_CI_TRANSACTION_ID
165           ,CURRENCY_CODE
166           ,CHANGE_AMOUNT
167           ,CHANGE_TYPE
168           ,CHANGE_DESCRIPTION
169 	FROM pa_ci_supplier_details
170 	WHERE ci_transaction_id = p_ci_transaction_id
171 	FOR UPDATE OF ci_transaction_id NOWAIT;
172 
173 	recinfo cur_row%rowtype;
174    	l_debug_mode           varchar2(1) := 'N';
175  BEGIN
176 
177    	fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
178    	l_debug_mode := NVL(l_debug_mode, 'N');
179 
180    	pa_debug.set_process('PLSQL','LOG',l_debug_mode);
181 
182 	/** set the return status to success **/
183 	x_return_status := 'S';
184 	x_error_msg_code := NULL;
185 
186 	If l_debug_mode = 'Y' Then
187 		print_msg('Inside update row.');
188 	End If;
189 
190 	OPEN cur_row;
191 	FETCH cur_row INTO recinfo;
192 	If cur_row%NOTFOUND then
193 		If l_debug_mode = 'Y' Then
194 			print_msg('row not found return');
195 		End If;
196 		return;
197 	End If;
198 	CLOSE cur_row;
199 
200 	/** check if any of the attributes changed then update else donot **/
201 	IF Nvl(recinfo.vendor_id,0) <> nvl(p_vendor_id,0) OR
202            Nvl(recinfo.po_header_id,0) <> nvl(p_po_header_id,0) OR
203 	   Nvl(recinfo.po_line_id,0) <> nvl(p_po_line_id,0) OR
204 	   Nvl(recinfo.currency_code,'X') <> nvl(p_currency_code,'X') OR
205 	   Nvl(recinfo.change_amount,0) <> nvl(p_change_amount,0) OR
206 	   nvl(recinfo.change_type,'X') <> nvl(p_change_type,'X') OR
207 	   Nvl(recinfo.change_description,'X') <> nvl(p_change_description,'X')  THEN
208 		If l_debug_mode = 'Y' Then
209 			print_msg('firing update query');
210 		End If;
211 		UPDATE  pa_ci_supplier_details SET
212           	VENDOR_ID               = p_vendor_id
213           	,PO_HEADER_ID            = p_po_header_id
214           	,PO_LINE_ID              = p_po_line_id
215           	,ADJUSTED_CI_TRANSACTION_ID = p_adjusted_transaction_id
216           	,CURRENCY_CODE           = p_currency_code
217           	,CHANGE_AMOUNT           = pa_currency.round_trans_currency_amt
218                                            (decode(p_CHANGE_AMOUNT,null,0,p_CHANGE_AMOUNT),p_CURRENCY_CODE)
219           	,CHANGE_TYPE             = p_change_type
220           	,CHANGE_DESCRIPTION      = p_change_description
221           	,LAST_UPDATED_BY         = p_last_updated_by
222           	,LAST_UPDATE_DATE        = p_last_update_date
223           	,LAST_UPDATE_LOGIN	 = p_last_update_login
224 		WHERE ci_transaction_id  = p_ci_transaction_id;
225         	If sql%found then
226                 	x_return_status := 'S';
227         	Else
228                 	x_return_status := 'E';
229                 	x_error_msg_code := 'NO_DATA_FOUND';
230 			If l_debug_mode = 'Y' Then
231 				print_msg('Update failure:'||x_error_msg_code);
232 			End If;
233                 	raise NO_DATA_FOUND;
234         	End If;
235 
236 	End IF;
237 
238  EXCEPTION
239         when others then
240             x_error_msg_code := sqlcode||sqlerrm;
241 	    If l_debug_mode = 'Y' Then
242 	    	print_msg('Exception:'||x_error_msg_code);
243 	    End if;
244             Raise;
245 
246  END update_row;
247 
248 
249  PROCEDURE  delete_row (p_ci_transaction_id in NUMBER)IS
250 
251         l_debug_mode           varchar2(1) := 'N';
252  BEGIN
253 
254         fnd_profile.get('PA_DEBUG_MODE',l_debug_mode);
255         l_debug_mode := NVL(l_debug_mode, 'N');
256 
257         pa_debug.set_process('PLSQL','LOG',l_debug_mode);
258 
259 	DELETE FROM PA_CI_SUPPLIER_DETAILS
260 	WHERE CI_TRANSACTION_ID = P_CI_TRANSACTION_ID;
261 	if sql%found then
262 		If l_debug_mode = 'Y' Then
263 			print_msg('Delete Success');
264 		End iF;
265 	Else
266 		If l_debug_mode = 'Y' Then
267 			print_msg('Delete Failure');
268 		End If;
269 	End if;
270 
271  END delete_row;
272 
273  PROCEDURE delete_row (x_rowid                  in VARCHAR2)IS
274 
275 	cursor get_itemid is
276 	select ci_transaction_id
277 	from pa_ci_supplier_details
278         where rowid = x_rowid;
279 
280 	l_ci_transaction_id  Number;
281 
282  BEGIN
283   	open get_itemid;
284   	fetch get_itemid into l_ci_transaction_id;
285 	close get_itemid;
286 
287   	delete_row (l_ci_transaction_id);
288 
289  END delete_row;
290 
291  PROCEDURE lock_row (x_rowid    in VARCHAR2)IS
292  BEGIN
293   null;
294  END lock_row;
295 
296 END PA_CI_SUPPLIER_PKG;