DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMF_LOTCOSTADJUSTMENT_PVT

Source


1 PACKAGE BODY GMF_LOTCOSTADJUSTMENT_PVT AS
2 /* $Header: GMFVLCAB.pls 120.3.12000000.2 2007/03/15 10:15:08 pmarada ship $ */
3 
4 --+==========================================================================+
5 --|                   Copyright (c) 1998 Oracle Corporation                  |
6 --|                   Copyright (c) 1998 Oracle Corporation                  |
7 --|                          Redwood Shores, CA, USA                         |
8 --|                            All rights reserved.                          |
9 --+==========================================================================+
10 --| File Name          : GMFVLCAB.pls                                        |
11 --| Package Name       : GMF_LotCostAdjustment_PVT                           |
12 --| API name           : GMF_LotCostAdjustment_PVT			     |
13 --| Type               : Private                                             |
14 --| Pre-reqs	       : N/A                                                 |
15 --| Function	       : Lot Cost Adjustment Creation, Updation, Query and   |
16 --|			 Deletion 					     |
17 --|                                                                          |
18 --| Parameters	       : N/A                                                 |
19 --|                                                                          |
20 --| Current Vers       : 1.0                                                 |
21 --| Previous Vers      : None                                                |
22 --| Initial Vers       : 1.0                                                 |
23 --|                                                                          |
24 --| Notes                                                                    |
25 --|     This package contains public procedures relating to Lot Cost 	     |
26 --|	Adjustment Creation, Updation, Query and Deletion		     |
27 --|  Pre-defined API message levels					     |
28 --|                                                                          |
29 --|     Valid values for message levels are from 1-50.			     |
30 --|      1 being least severe and 50 highest.				     |
31 --|                                                                          |
32 --|     The pre-defined levels correspond to standard API     		     |
33 --|     return status. Debug levels are used to control the amount of        |
34 --|      debug information a program writes to the PL/SQL message table.     |
35 --|                                                                          |
36 --| G_MSG_LVL_UNEXP_ERROR   CONSTANT NUMBER := 60;                           |
37 --| G_MSG_LVL_ERROR         CONSTANT NUMBER := 50;                           |
38 --| G_MSG_LVL_SUCCESS       CONSTANT NUMBER := 40;                           |
39 --| G_MSG_LVL_DEBUG_HIGH    CONSTANT NUMBER := 30;                           |
40 --| G_MSG_LVL_DEBUG_MEDIUM  CONSTANT NUMBER := 20;                           |
41 --| G_MSG_LVL_DEBUG_LOW     CONSTANT NUMBER := 10;                           |
42 --|                                                                          |
43 --| HISTORY                                                                  |
44 --|    	22-Mar-2004  			Anand Thiyagarajan  Created	     |
45 --|	12-Jul-2004  	BUG # 3755374	Anand Thiyagarajan 		     |
46 --|		Modified Code to insert text_code in Lot Cost Adjustment     |
47 --|		Details Table						     |
48 --|                                                                          |
49 --+==========================================================================+
50 
51 -- Procedure to log Error messages
52 PROCEDURE log_msg(p_msg_text      IN VARCHAR2);
53 
54 -- Global variables
55 G_PKG_NAME      CONSTANT 	VARCHAR2(30) 	:= 	'GMF_LotCostAdjustment_PVT';
56 G_DEBUG_LEVEL			NUMBER(2)	:= 	FND_MSG_PUB.G_Msg_Level_Threshold;
57 
58 --Start of comments
59 --+========================================================================+
60 --| API Name	: Create_LotCost_Adjustment                                |
61 --| TYPE		: Private                                          |
62 --| Function	: Creates Lot Cost Adjustment based on the input           |
63 --|			  into table GMF_LOT_COST_ADJUSTMENTS              |
64 --| Pre-reqa	: None                                                     |
65 --| Parameters	:                                                          |
66 --| IN		:                                                          |
67 --|			p_api_version	IN  			NUMBER	   |
68 --|			p_init_msg_list	IN  			VARCHAR2   |
69 --|			p_header_rec	IN OUT NOCOPY 			   |
70 --|		GMF_LotCostAdjustment_PUB.Lc_Adjustment_Header_Rec_Type	   |
71 --|			p_dtl_Tbl		IN OUT NOCOPY 		   |
72 --|		GMF_LotCostAdjustment_PUB.Lc_adjustment_dtls_Tbl_Type      |
73 --|									   |
74 --| OUT		: 							   |
75 --|			x_return_status	OUT NOCOPY 		VARCHAR2   |
76 --|			x_msg_count		OUT NOCOPY 	VARCHAR2   |
77 --|			x_msg_data		OUT NOCOPY 	VARCHAR2   |
78 --|                                                                        |
79 --| Version	:                                                          |
80 --|	 	  Current Version	: 2.0                              |
81 --|	  	  Previous Version: 1.0                                    |
82 --|	  	  Initial Version	: 1.0                              |
83 --|                                                                        |
84 --| Notes	:                                                          |
85 --|                                                                        |
86 --| HISTORY                                                                |
87 --|    	22-Mar-2004			Anand Thiyagarajan  Created	   |
88 --|	12-Jul-2004  	BUG # 3755374	Anand Thiyagarajan 		   |
89 --|		Modified Code to insert text_code in Lot Cost Adjustment   |
90 --|		Details Table						   |
91 --|    14-mar-2007  Bug 5586137 Prasad, inserting p_user instead of        |
92 --|                 fnd_global.user_id                                     |
93 --|                                                                        |
94 --+========================================================================+
95 -- End of comments
96 
97 PROCEDURE Create_LotCost_Adjustment
98 (
99 	p_api_version			IN  			NUMBER
100 	, p_init_msg_list		IN  			VARCHAR2 := FND_API.G_FALSE
101 	, x_return_status		OUT 	NOCOPY 		VARCHAR2
102 	, x_msg_count			OUT 	NOCOPY 		NUMBER
103 	, x_msg_data			OUT 	NOCOPY 		VARCHAR2
104 	, p_header_rec			IN OUT 	NOCOPY 		GMF_LotCostAdjustment_PUB.Lc_Adjustment_Header_Rec_Type
105 	, p_dtl_Tbl			IN OUT 	NOCOPY 		GMF_LotCostAdjustment_PUB.Lc_adjustment_dtls_Tbl_Type
106         , p_user_id                     IN                      NUMBER
107 )
108 IS
109 	l_api_name		CONSTANT 		VARCHAR2(30)	:= 'Create_LotCost_Adjustment' ;
110 	l_api_version		CONSTANT 		NUMBER		:= 2.0 ;
111 	l_adjustment_id					GMF_LOT_COST_ADJUSTMENTS.ADJUSTMENT_ID%TYPE;
112 	l_adjustment_dtl_id				GMF_LOT_COST_ADJUSTMENT_DTLS.ADJUSTMENT_DTL_ID%TYPE;
113 BEGIN
114 
115   -- Standard Start of API savepoint
116   SAVEPOINT	 Create_LotCost_Adjustment_PVT ;
117 
118   -- Initialize message list if p_init_msg_list is set to TRUE.
119   IF FND_API.to_Boolean( p_init_msg_list ) THEN
120 	FND_MSG_PUB.initialize;
121   END IF;
122 
123   -- Standard call to check for call compatibility.
124   IF NOT FND_API.Compatible_API_Call	(
125 					l_api_version        	,
126 	    	 	 		p_api_version        	,
127 			 		l_api_name 		,
128 	    	    	 		G_PKG_NAME
129 					)	THEN
130 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
131   END IF;
132 
133   --  Initialize API return status to success
134   x_return_status := FND_API.G_RET_STS_SUCCESS;
135 
136   IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
137   	log_msg('Beginning Private Create Lot Cost Adjustment API');
138   END IF;
139 
140   IF p_header_Rec.adjustment_id IS NULL THEN
141         SELECT	GMF_LOT_COST_ADJS_ID_S.NEXTVAL
142 	INTO	l_adjustment_id
143 	FROM	dual;
144   END IF;
145 
146   IF  p_header_Rec.adjustment_id IS NULL THEN
147 
148 	IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
149   		log_msg	('Inserting Lot Cost Adjustments for Item ' 			|| 	p_header_rec.item_id 		||
150 								' Legal Entity' 		|| 	p_header_rec.legal_entity_id 		||
151             							' Organization ' 		|| 	p_header_rec.organization_id 		||
152             							' Cost Type Id ' 	|| 	p_header_rec.cost_type_id 	||
153 								' Lot Number '		||	p_header_Rec.lot_number		||
154 								'Adjustment Date '	||	p_header_rec.adjustment_date
155 			) ;
156 	END IF;
157 
158 	BEGIN
159 		INSERT INTO gmf_lot_cost_adjustments
160 		(
161 		ADJUSTMENT_ID
162 		, legal_entity_id
163 		, cost_type_id
164 		, inventory_item_id
165 		, organization_id
166 		, lot_number
167 		, ADJUSTMENT_DATE
168 		, REASON_CODE
169 		, DELETE_MARK
170 		, APPLIED_IND
171 		, CREATED_BY
172 		, CREATION_DATE
173 		, LAST_UPDATED_BY
174 		, LAST_UPDATE_LOGIN
175 		, LAST_UPDATE_DATE
176 		, ATTRIBUTE1
177 		, ATTRIBUTE2
178 		, ATTRIBUTE3
179 		, ATTRIBUTE4
180 		, ATTRIBUTE5
181 		, ATTRIBUTE6
182 		, ATTRIBUTE7
183 		, ATTRIBUTE8
184 		, ATTRIBUTE9
185 		, ATTRIBUTE10
186 		, ATTRIBUTE11
187 		, ATTRIBUTE12
188 		, ATTRIBUTE13
189 		, ATTRIBUTE14
190 		, ATTRIBUTE15
191 		, ATTRIBUTE16
192 		, ATTRIBUTE17
193 		, ATTRIBUTE18
194 		, ATTRIBUTE19
195 		, ATTRIBUTE20
196 		, ATTRIBUTE21
197 		, ATTRIBUTE22
198 		, ATTRIBUTE23
199 		, ATTRIBUTE24
200 		, ATTRIBUTE25
201 		, ATTRIBUTE26
202 		, ATTRIBUTE27
203 		, ATTRIBUTE28
204 		, ATTRIBUTE29
205 		, ATTRIBUTE30
206 		, ATTRIBUTE_CATEGORY
207 		)
208 		VALUES
209 		(
210 		l_adjustment_id
211 		, p_header_rec.legal_entity_id
212 		, p_header_rec.cost_type_id
213 		, p_header_rec.ITEM_ID
214 		, p_header_rec.organization_id
215 		, p_header_rec.lot_number
216 		, p_header_rec.ADJUSTMENT_DATE
217 		, p_header_rec.REASON_CODE
218 		, 0
219 		, 'N'
220 		, p_user_id
221 		, SYSDATE
222 		, p_user_id
223 		, FND_GLOBAL.LOGIN_ID
224 		, SYSDATE
225 		, p_header_rec.ATTRIBUTE1
226 		, p_header_rec.ATTRIBUTE2
227 		, p_header_rec.ATTRIBUTE3
228 		, p_header_rec.ATTRIBUTE4
229 		, p_header_rec.ATTRIBUTE5
230 		, p_header_rec.ATTRIBUTE6
231 		, p_header_rec.ATTRIBUTE7
232 		, p_header_rec.ATTRIBUTE8
233 		, p_header_rec.ATTRIBUTE9
234 		, p_header_rec.ATTRIBUTE10
235 		, p_header_rec.ATTRIBUTE11
236 		, p_header_rec.ATTRIBUTE12
237 		, p_header_rec.ATTRIBUTE13
238 		, p_header_rec.ATTRIBUTE14
239 		, p_header_rec.ATTRIBUTE15
240 		, p_header_rec.ATTRIBUTE16
241 		, p_header_rec.ATTRIBUTE17
242 		, p_header_rec.ATTRIBUTE18
243 		, p_header_rec.ATTRIBUTE19
244 		, p_header_rec.ATTRIBUTE20
245 		, p_header_rec.ATTRIBUTE21
246 		, p_header_rec.ATTRIBUTE22
247 		, p_header_rec.ATTRIBUTE23
248 		, p_header_rec.ATTRIBUTE24
249 		, p_header_rec.ATTRIBUTE25
250 		, p_header_rec.ATTRIBUTE26
251 		, p_header_rec.ATTRIBUTE27
252 		, p_header_rec.ATTRIBUTE28
253 		, p_header_rec.ATTRIBUTE29
254 		, p_header_rec.ATTRIBUTE30
255 		, p_header_rec.ATTRIBUTE_CATEGORY
256 		) RETURNING adjustment_id INTO p_header_rec.adjustment_id;
257 
258 		IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
259 			log_msg	( SQL%ROWCOUNT || 'Header Record Inserted for Lot Cost Adjustments for Item ' 		|| 	p_header_rec.item_id 		||
260 											' Legal Entity' 		|| 	p_header_rec.legal_entity_id 		||
261             							' Organization ' 		|| 	p_header_rec.organization_id 		||
262             							' Cost Type Id ' 	|| 	p_header_rec.cost_type_id 	||
263 							            ' Lot Number '		||	p_header_Rec.lot_number		||
264                                  ' Adjustment Date '	||	p_header_rec.adjustment_date
265 				);
266 		END IF;
267 	  EXCEPTION
268 		WHEN OTHERS THEN
269 			FND_MESSAGE.SET_NAME('GMF','GMF_API_LCA_INS_FAILED');
270 			FND_MESSAGE.SET_TOKEN('ITEM', p_header_rec.item_id);
271 			FND_MESSAGE.SET_TOKEN('LEGAL_ENTITY', p_header_rec.legal_entity_id);
272 			FND_MESSAGE.SET_TOKEN('ORGANIZATION', p_header_rec.organization_id);
273 			FND_MESSAGE.SET_TOKEN('COST_TYPE', p_header_rec.cost_type_id);
274 			FND_MESSAGE.SET_TOKEN('LOT', p_header_rec.lot_number);
275 			FND_MESSAGE.SET_TOKEN('ADJUSTMENT_DATE', p_header_rec.adjustment_date);
276 			FND_MSG_PUB.Add;
277 			x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
278 			RAISE ;
279 	  END;
280 
281   ELSIF p_header_Rec.adjustment_id IS NOT NULL THEN
282 
283   	IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
284   		log_msg	('Lot Cost Adjustments for Item ' 				|| 	p_header_rec.item_id 		||
285 							   ' Legal Entity' 		|| 	p_header_rec.legal_entity_id 		||
286             				' Organization ' 		|| 	p_header_rec.organization_id 		||
287             				' Cost Type Id ' 	|| 	p_header_rec.cost_type_id 	||
288 							   ' Lot Number '		||	p_header_Rec.lot_number		||
289 								' Adjustment Date '	||	p_header_rec.adjustment_date	||
290 								' already exists '
291 			) ;
292 
293 	END IF;
294   END IF;
295 
296   FOR i IN p_dtl_tbl.FIRST .. p_dtl_tbl.LAST
297   LOOP
298 
299 	IF p_dtl_tbl(i).adjustment_dtl_id IS NULL THEN
300 		SELECT GMF_LOT_COST_ADJS_DTL_ID_S.NEXTVAL
301 		INTO l_adjustment_dtl_id
302 		FROM dual;
303 	END IF;
304 
305 	IF  p_dtl_tbl(i).adjustment_dtl_id IS NULL THEN
306 		IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
307 			log_msg	( 'Inserting Detail Record for Cost Component Class Id ' 	|| p_dtl_tbl(i).cost_cmpntcls_id ||
308                 					      ' Cost Analysis Code ' 	|| p_dtl_tbl(i).cost_analysis_code
309 				);
310 		END IF;
311 		BEGIN
312 			INSERT INTO gmf_lot_cost_adjustment_dtls
313 			(
314 			ADJUSTMENT_DTL_ID
315 			, ADJUSTMENT_ID
316 			, COST_CMPNTCLS_ID
317 			, COST_ANALYSIS_CODE
318 			, ADJUSTMENT_COST
319 			, TEXT_CODE 	-- Bug # 3755374 ANTHIYAG 12-Jul-2004
320 			, DELETE_MARK
321 			, CREATED_BY
322 			, CREATION_DATE
323 			, LAST_UPDATED_BY
324 			, LAST_UPDATE_LOGIN
325 			, LAST_UPDATE_DATE
326 			)
327 			VALUES
328 			(
329 			l_adjustment_dtl_id
330 			, p_header_rec.adjustment_id
331 			, p_dtl_tbl(i).COST_CMPNTCLS_ID
332 			, p_dtl_tbl(i).COST_ANALYSIS_CODE
333 			, p_dtl_tbl(i).ADJUSTMENT_COST
334 			, p_dtl_tbl(i).TEXT_CODE -- Bug # 3755374 ANTHIYAG 12-Jul-2004
335 			, 0
336 			, p_user_id
337 			, SYSDATE
338 			, p_user_id
339 			, FND_GLOBAL.LOGIN_ID
340 			, SYSDATE
341 			) RETURNING adjustment_dtl_id INTO p_dtl_tbl(i).adjustment_dtl_id;
342 			IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
343 				log_msg	( SQL%ROWCOUNT || 'Detail Record inserted for Cost Component Class Id ' 	|| p_dtl_tbl(i).cost_cmpntcls_id ||
344 									      ' Cost Analysis Code ' 	|| p_dtl_tbl(i).cost_analysis_code
345 					);
346 			END IF;
347 		EXCEPTION
348 			WHEN OTHERS THEN
349 				FND_MESSAGE.SET_NAME('GMF','GMF_API_LCA_DTL_INS_FAILED');
350 				FND_MESSAGE.SET_TOKEN('COMPONENT_CLASS', p_dtl_tbl(i).cost_cmpntcls_id);
351 				FND_MESSAGE.SET_TOKEN('ANALYSIS_CODE', p_dtl_tbl(i).cost_analysis_code);
352 				FND_MSG_PUB.Add;
353 				x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
354 				RAISE ;
355 		END ;
356 	  ELSIF p_dtl_tbl(i).adjustment_dtl_id IS NOT NULL THEN
357 
358 		IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
359   			log_msg	('Ignoring Lot Cost Adjustment Details for Cost Component Class Id ' 	|| p_dtl_tbl(i).cost_cmpntcls_id ||
360 									      ' Cost Analysis Code ' 	|| p_dtl_tbl(i).cost_analysis_code
361 				);
362 		END IF;
363 	  END IF;
364   END LOOP;
365 
366   -- Standard call to get message count and if count is 1, get message info.
367   FND_MSG_PUB.Count_And_Get	(
368 				p_count			=>      x_msg_count
369 				, p_data		=>      x_msg_data
370     				);
371 EXCEPTION
372 	WHEN FND_API.G_EXC_ERROR THEN
373 		ROLLBACK TO Create_LotCost_Adjustment_PVT;
374 		x_return_status := FND_API.G_RET_STS_ERROR ;
375 		FND_MSG_PUB.Count_And_Get	(
376 						p_count         	=>      x_msg_count
377 						, p_data          =>      x_msg_data
378 						);
379 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
380 		ROLLBACK TO Create_LotCost_Adjustment_PVT;
381 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
382 		FND_MSG_PUB.Count_And_Get	(
383 						p_count         	=>      x_msg_count
384 						, p_data         	=>      x_msg_data
385 						);
386 	WHEN OTHERS THEN
387 		ROLLBACK TO Create_LotCost_Adjustment_PVT;
388 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
389 		IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
390 			FND_MSG_PUB.Add_Exc_Msg	(
391 						G_PKG_NAME
392 						, l_api_name
393 						);
394 		END IF;
395 		FND_MSG_PUB.Count_And_Get	(
396 						p_count         	=>      x_msg_count
397 						, p_data         	=>      x_msg_data
398 						);
399 END Create_LotCost_Adjustment;
400 
401 --+========================================================================+
402 --| API Name	: Update_LotCost_Adjustment                                |
403 --| TYPE		: Private                                          |
404 --| Function	: Updates Lot Cost Adjustment based on the input           |
405 --|			  in table GMF_LOT_COST_ADJUSTMENTS                |
406 --| Pre-reqa	: None                                                     |
407 --| Parameters	:                                                          |
408 --| IN		:                                                          |
409 --|			p_api_version	IN  			NUMBER	   |
410 --|			p_init_msg_list	IN  			VARCHAR2   |
411 --|			p_header_rec	IN OUT NOCOPY 			   |
412 --|		GMF_LotCostAdjustment_PUB.Lc_Adjustment_Header_Rec_Type	   |
413 --|			p_dtl_Tbl		IN OUT NOCOPY 		   |
414 --|		GMF_LotCostAdjustment_PUB.Lc_adjustment_dtls_Tbl_Type      |
415 --|									   |
416 --| OUT		: 							   |
417 --|			x_return_status	OUT NOCOPY 		VARCHAR2   |
418 --|			x_msg_count	OUT NOCOPY 		VARCHAR2   |
419 --|			x_msg_data	OUT NOCOPY 		VARCHAR2   |
420 --|                                                                        |
421 --| Version	:                                                          |
422 --|	 	  Current Version	: 2.0                              |
423 --|	  	  Previous Version	: 1.0                              |
424 --|	  	  Initial Version	: 1.0                              |
425 --|                                                                        |
426 --| Notes	:                                                          |
427 --|                                                                        |
428 --| HISTORY                                                                |
429 --|    22-Mar-2004  Anand Thiyagarajan  Created				   |
430 --|    14-mar-2007  Bug 5586137 Prasad, inserting p_user instead of        |
431 --|                 fnd_global.user_id                                     |
432 --|                                                                        |
433 --+========================================================================+
434 
435 PROCEDURE Update_LotCost_Adjustment
436 (
437 p_api_version		IN  			NUMBER
438 , p_init_msg_list	IN  			VARCHAR2 := FND_API.G_FALSE
439 , x_return_status	OUT 	NOCOPY 		VARCHAR2
440 , x_msg_count		OUT 	NOCOPY 		NUMBER
441 , x_msg_data		OUT 	NOCOPY 		VARCHAR2
442 , p_header_rec		IN OUT 	NOCOPY 		GMF_LotCostAdjustment_PUB.Lc_Adjustment_Header_Rec_Type
443 , p_dtl_Tbl		IN OUT 	NOCOPY 		GMF_LotCostAdjustment_PUB.Lc_adjustment_dtls_Tbl_Type
444 , p_user_id             IN                      NUMBER
445 )
446 IS
447 	l_api_name		CONSTANT 		VARCHAR2(30)	:= 'Update_LotCost_Adjustment' ;
448 	l_api_version		CONSTANT 		NUMBER		:= 2.0 ;
449 	l_adjustment_id					GMF_LOT_COST_ADJUSTMENTS.ADJUSTMENT_ID%TYPE;
450 	l_adjustment_dtl_id				GMF_LOT_COST_ADJUSTMENT_DTLS.ADJUSTMENT_DTL_ID%TYPE;
451 BEGIN
452 
453   -- Standard Start of API savepoint
454   SAVEPOINT	 Update_LotCost_Adjustment_PVT ;
455 
456   -- Initialize message list if p_init_msg_list is set to TRUE.
457   IF FND_API.to_Boolean( p_init_msg_list ) THEN
458   	FND_MSG_PUB.initialize;
459   END IF;
460 
461   -- Standard call to check for call compatibility.
462   IF NOT FND_API.Compatible_API_Call	( 	l_api_version        	,
463 	    	    	    	 		p_api_version        	,
464 	    	 				l_api_name 		,
465 	    	    	    	    		G_PKG_NAME
466 						)	THEN
467 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
468   END IF;
469 
470   --  Initialize API return status to success
471   x_return_status := FND_API.G_RET_STS_SUCCESS;
472 
473   IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
474   	log_msg('Beginning Private Update Lot Cost Adjustment API');
475   END IF;
476 
477   FOR i IN p_dtl_tbl.FIRST .. p_dtl_tbl.LAST
478   LOOP
479     IF p_dtl_tbl(i).adjustment_dtl_id IS NOT NULL THEN
480 	    IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
481 	      log_msg	( 'Updating Detail Record for Adjustment Detail Id ' 	|| p_dtl_tbl(i).adjustment_dtl_id );
482 	    END IF;
483 	    BEGIN
484 		UPDATE gmf_lot_cost_adjustment_dtls
485 		SET	ADJUSTMENT_COST = p_dtl_tbl(i).ADJUSTMENT_COST
486 			, TEXT_CODE = decode( p_dtl_tbl(i).TEXT_CODE, FND_API.G_MISS_NUM, NULL, NULL, TEXT_CODE, p_dtl_tbl(i).TEXT_CODE )
487 			, LAST_UPDATED_BY = p_user_id
488 			, LAST_UPDATE_LOGIN = FND_GLOBAL.LOGIN_ID
489 			, LAST_UPDATE_DATE = SYSDATE
490 		WHERE	adjustment_dtl_id = p_dtl_tbl(i).adjustment_dtl_id
491 		AND	delete_mark = 0;
492 
493 		IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
494 			log_msg	( SQL%ROWCOUNT || 'Detail Record Updated for Adjustment Detail Id ' 	|| p_dtl_tbl(i).adjustment_dtl_id );
495 		END IF;
496 	    EXCEPTION
497 		WHEN OTHERS THEN
498 			FND_MESSAGE.SET_NAME('GMF','GMF_API_LCA_DTL_ID_UPD_FAILED');
499 			FND_MESSAGE.SET_TOKEN('ADJUSTMENT_DTL_ID', p_dtl_tbl(i).adjustment_dtl_id);
500 			FND_MSG_PUB.Add;
501 			x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
502 			RAISE ;
503 	    END ;
504     ELSIF p_dtl_tbl(i).adjustment_dtl_id IS NULL THEN
505 
506 	IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
507 		log_msg	( 'Detail Record for Cost Component Class Id ' 	|| p_dtl_tbl(i).cost_cmpntcls_id ||
508 							      ' Cost Analysis Code ' 	|| p_dtl_tbl(i).cost_analysis_code ||
509 							      ' Doesn''t Exist'
510 			);
511 	END IF;
512 
513     END IF;
514 
515   END LOOP;
516 
517 
518   -- Standard call to get message count and if count is 1, get message info.
519   FND_MSG_PUB.Count_And_Get	(
520 				p_count		=>      x_msg_count
521 				, p_data	=>      x_msg_data
522     				);
523 
524 EXCEPTION
525 	WHEN FND_API.G_EXC_ERROR THEN
526 		ROLLBACK TO Update_LotCost_Adjustment_PVT;
527 		x_return_status := FND_API.G_RET_STS_ERROR ;
528 		FND_MSG_PUB.Count_And_Get	(
529 						p_count			=>      x_msg_count
530 						, p_data		=>      x_msg_data
531 						);
532 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
533 		ROLLBACK TO Update_LotCost_Adjustment_PVT;
534 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
535 		FND_MSG_PUB.Count_And_Get	(
536 						p_count         	=>      x_msg_count
537 						, p_data         	=>      x_msg_data
538 						);
539 	WHEN OTHERS THEN
540 		ROLLBACK TO Update_LotCost_Adjustment_PVT;
541 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
542 		IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
543 			FND_MSG_PUB.Add_Exc_Msg	(
544 						G_PKG_NAME
545 						, l_api_name
546 						);
547 		END IF;
548 		FND_MSG_PUB.Count_And_Get	(
549 						p_count         	=>      x_msg_count
550 						, p_data         	=>      x_msg_data
551 						);
552 END Update_LotCost_Adjustment;
553 
554 --Start of comments
555 --+========================================================================+
556 --| API Name	: Delete_LotCost_Adjustment                                |
557 --| TYPE		: Private                                          |
558 --| Function	: Deletes Lot Cost Adjustment based on the input           |
559 --|			  in table GMF_LOT_COST_ADJUSTMENTS                |
560 --| Pre-reqa	: None                                                     |
561 --| Parameters	:                                                          |
562 --| IN		:                                                          |
563 --|			p_api_version	IN  			NUMBER	   |
564 --|			p_init_msg_list	IN  			VARCHAR2   |
565 --|			p_header_rec	IN OUT NOCOPY 			   |
566 --|		GMF_LotCostAdjustment_PUB.Lc_Adjustment_Header_Rec_Type    |
567 --|			p_dtl_Tbl		IN OUT NOCOPY 		   |
568 --|		GMF_LotCostAdjustment_PUB.Lc_adjustment_dtls_Tbl_Type      |
569 --|									   |
570 --| OUT		: 							   |
571 --|			x_return_status	OUT NOCOPY 		VARCHAR2   |
572 --|			x_msg_count	OUT NOCOPY 		VARCHAR2   |
573 --|			x_msg_data	OUT NOCOPY 		VARCHAR2   |
574 --|                                                                        |
575 --| Version	:                                                          |
576 --|	 	  Current Version	: 2.0                              |
577 --|	  	  Previous Version	: 1.0                              |
578 --|	  	  Initial Version	: 1.0                              |
579 --|                                                                        |
580 --| Notes	:                                                          |
581 --|                                                                        |
582 --| HISTORY                                                                |
583 --|    22-Mar-2004  Anand Thiyagarajan  Created				   |
584 --|                                                                        |
585 --+========================================================================+
586 -- End of comments
587 
588 PROCEDURE Delete_LotCost_Adjustment
589 (
590 p_api_version		IN  			NUMBER
591 , p_init_msg_list	IN  			VARCHAR2 := FND_API.G_FALSE
592 , x_return_status	OUT 	NOCOPY 		VARCHAR2
593 , x_msg_count		OUT 	NOCOPY 		NUMBER
594 , x_msg_data		OUT 	NOCOPY 		VARCHAR2
595 , p_header_rec		IN OUT 	NOCOPY 		GMF_LotCostAdjustment_PUB.Lc_Adjustment_Header_Rec_Type
596 , p_dtl_Tbl		IN OUT 	NOCOPY 		GMF_LotCostAdjustment_PUB.Lc_adjustment_dtls_Tbl_Type
597 )
598 IS
599 	l_api_name		CONSTANT 		VARCHAR2(30)	:= 'Delete_LotCost_Adjustment' ;
600 	l_api_version		CONSTANT 		NUMBER		:= 2.0 ;
601 	l_adjustment_id					GMF_LOT_COST_ADJUSTMENTS.ADJUSTMENT_ID%TYPE;
602 	l_adjustment_dtl_id				GMF_LOT_COST_ADJUSTMENT_DTLS.ADJUSTMENT_DTL_ID%TYPE;
603    l_adjustment_dtl_cnt              NUMBER := 0;
604 BEGIN
605 
606   -- Standard Start of API savepoint
607   SAVEPOINT	 Delete_LotCost_Adjustment_PVT ;
608 
609   -- Initialize message list if p_init_msg_list is set to TRUE.
610   IF FND_API.to_Boolean( p_init_msg_list ) THEN
611   	FND_MSG_PUB.initialize;
612   END IF;
613 
614   -- Standard call to check for call compatibility.
615   IF NOT FND_API.Compatible_API_Call	( 	l_api_version        	,
616 	    	    	    	 		p_api_version        	,
617 	    	 				l_api_name 		,
618 	    	    	    	    	 	G_PKG_NAME
619 					)	THEN
620 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
621   END IF;
622 
623   --  Initialize API return status to success
624   x_return_status := FND_API.G_RET_STS_SUCCESS;
625 
626   IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
627   	log_msg('Beginning Private Delete Lot Cost Adjustment API');
628   END IF;
629 
630   FOR i IN p_dtl_tbl.FIRST .. p_dtl_tbl.LAST
631   LOOP
632 
633 	IF p_dtl_tbl(i).adjustment_dtl_id IS NOT NULL THEN
634 
635 		IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
636 			log_msg	( 'Deleting Detail Record for Adjustment Detail Id ' || p_dtl_tbl(i).adjustment_dtl_id);
637 		END IF;
638 
639 		BEGIN
640 			DELETE gmf_lot_cost_adjustment_dtls
641 			WHERE adjustment_dtl_id = p_dtl_tbl(i).adjustment_dtl_id;
642 			IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
643 				log_msg	( SQL%ROWCOUNT || ' Detail Record(s) deleted for Adjustment Detail Id ' || p_dtl_tbl(i).adjustment_dtl_id);
644 			END IF;
645 		EXCEPTION
646 			WHEN OTHERS THEN
647 				FND_MESSAGE.SET_NAME('GMF','GMF_API_LCA_DTL_ID_DEL_FAILED');
648 				FND_MESSAGE.SET_TOKEN('ADJUSTMENT_ID', p_dtl_tbl(i).adjustment_dtl_id);
649 				FND_MSG_PUB.Add;
650 				x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
651 				RAISE ;
652 		END ;
653 	ELSIF p_dtl_tbl(i).adjustment_dtl_id IS NULL THEN
654 
655     	    IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
656 	      log_msg	( 'Detail Record for Cost Component Class Id ' 	|| p_dtl_tbl(i).cost_cmpntcls_id ||
657 							      ' Cost Analysis Code ' 	|| p_dtl_tbl(i).cost_analysis_code||
658 							      ' Doesn''t Exist '
659 			);
660 	    END IF;
661 	END IF;
662   END LOOP;
663 
664   IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
665 	log_msg	('Deleting Lot Cost Adjustments for Item ' 			|| 	p_header_rec.item_id 		||
666 							' Legal Entity' 		|| 	p_header_rec.legal_entity_id 		||
667             							' Organization ' 		|| 	p_header_rec.organization_id 		||
668             							' Cost Type Id ' 	|| 	p_header_rec.cost_type_id 	||
669 								' Lot Number '		||	p_header_Rec.lot_number		||
670 							 ' Adjustment Date '	||	p_header_rec.adjustment_date
671 		) ;
672   END IF;
673 
674 BEGIN
675    SELECT   count(1)
676    INTO     l_adjustment_dtl_cnt
677    FROM     gmf_lot_cost_adjustment_dtls
678    WHERE	   adjustment_id = p_header_Rec.adjustment_id;
679 EXCEPTION
680    WHEN NO_DATA_FOUND THEN
681       l_adjustment_dtl_cnt := 0;
682 END;
683 
684 IF NVL(l_adjustment_dtl_cnt,0) = 0  THEN
685 BEGIN
686 	DELETE	gmf_lot_cost_adjustments
687 	WHERE	adjustment_id = p_header_Rec.adjustment_id
688 	AND	nvl(applied_ind,'N') <> 'Y';
689 	IF SQL%NOTFOUND THEN
690     	FND_MESSAGE.SET_NAME('GMF','GMF_API_LCA_DEL_FAILED');
691 		FND_MESSAGE.SET_TOKEN('ITEM', p_header_rec.item_id);
692 	   FND_MESSAGE.SET_TOKEN('LEGAL_ENTITY', p_header_rec.legal_entity_id);
693 		FND_MESSAGE.SET_TOKEN('ORGANIZATION', p_header_rec.organization_id);
694 		FND_MESSAGE.SET_TOKEN('COST_TYPE', p_header_rec.cost_type_id);
695 		FND_MESSAGE.SET_TOKEN('LOT', p_header_rec.lot_number);
696 		FND_MESSAGE.SET_TOKEN('ADJUSTMENT_DATE', p_header_rec.adjustment_date);
697 		FND_MSG_PUB.Add;
698 		x_return_status := FND_API.G_RET_STS_ERROR ;
699 		RAISE FND_API.G_EXC_ERROR;
700 	ELSE
701 		IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
702      			log_msg( SQL%ROWCOUNT || ' Record Deleted for Adjustment Id ' || p_header_rec.adjustment_id);
703 		END IF;
704 	END IF ;
705   EXCEPTION
706 	WHEN OTHERS THEN
707 		IF (p_header_rec.adjustment_id IS NOT NULL) OR (p_header_rec.adjustment_id <> FND_API.G_MISS_NUM) THEN
708 			FND_MESSAGE.SET_NAME('GMF','GMF_API_LCA_DEL_FAILED');
709 			FND_MESSAGE.SET_TOKEN('ADJUSTMENT_ID', p_header_rec.adjustment_id);
710 			FND_MSG_PUB.Add;
711 		END IF ;
712   END;
713 ELSE
714    	FND_MESSAGE.SET_NAME('GMF','GMF_API_LCA_DEL_IGNORE');
715 		FND_MESSAGE.SET_TOKEN('ITEM', p_header_rec.item_id);
716 		FND_MESSAGE.SET_TOKEN('LEGAL_ENTITY', p_header_rec.legal_entity_id);
717 		FND_MESSAGE.SET_TOKEN('ORGANIZATION', p_header_rec.organization_id);
718 		FND_MESSAGE.SET_TOKEN('COST_TYPE', p_header_rec.cost_type_id);
719 		FND_MESSAGE.SET_TOKEN('LOT', p_header_rec.lot_number);
720 		FND_MESSAGE.SET_TOKEN('ADJUSTMENT_DATE', p_header_rec.adjustment_date);
721 		FND_MSG_PUB.Add;
722 END IF;
723 
724   IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
725 	log_msg(p_dtl_tbl.COUNT || ' Lot Cost Adjustment Detail row(s) Deleted');
726   END IF;
727 
728   -- Standard call to get message count and if count is 1, get message info.
729   FND_MSG_PUB.Count_And_Get	(
730 				p_count			=>      x_msg_count
731 				, p_data		=>      x_msg_data
732     				);
733 EXCEPTION
734 	WHEN FND_API.G_EXC_ERROR THEN
735 		ROLLBACK TO Delete_LotCost_Adjustment_PVT;
736 		x_return_status := FND_API.G_RET_STS_ERROR ;
737 		FND_MSG_PUB.Count_And_Get	(
738 						p_count         	=>      x_msg_count
739 						, p_data		=>      x_msg_data
740 						);
741 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
742 		ROLLBACK TO Delete_LotCost_Adjustment_PVT;
743 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
744 		FND_MSG_PUB.Count_And_Get	(
745 						p_count         	=>      x_msg_count
746 						, p_data         	=>      x_msg_data
747 						);
748 	WHEN OTHERS THEN
749 		ROLLBACK TO Delete_LotCost_Adjustment_PVT;
750 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
751 		IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
752 			FND_MSG_PUB.Add_Exc_Msg	(
753 						G_PKG_NAME
754 						, l_api_name
755 						);
756 		END IF;
757 		FND_MSG_PUB.Count_And_Get	(
758 						p_count         	=>      x_msg_count
759 						, p_data         	=>      x_msg_data
760 						);
761 
762 END Delete_LotCost_Adjustment;
763 
764 --Start of comments
765 --+========================================================================+
766 --| API Name	: Get_LotCost_Adjustment                                   |
767 --| TYPE		: Private                                          |
768 --| Function	: Get Lot Cost Adjustment based on the input               |
769 --|			  from table GMF_LOT_COST_ADJUSTMENTS              |
770 --| Pre-reqa	: None                                                     |
771 --| Parameters	:                                                          |
772 --| IN		:                                                          |
773 --|			p_api_version	IN  			NUMBER	   |
774 --|			p_init_msg_list	IN  			VARCHAR2   |
775 --|			p_header_rec	IN OUT NOCOPY 			   |
776 --|		GMF_LotCostAdjustment_PUB.Lc_Adjustment_Header_Rec_Type    |
777 --|			p_dtl_Tbl		IN OUT NOCOPY 		   |
778 --|		GMF_LotCostAdjustment_PUB.Lc_adjustment_dtls_Tbl_Type      |
779 --|									   |
780 --| OUT		: 							   |
781 --|			x_return_status	OUT NOCOPY 		VARCHAR2   |
782 --|			x_msg_count	OUT NOCOPY 		VARCHAR2   |
783 --|			x_msg_data	OUT NOCOPY 		VARCHAR2   |
784 --|                                                                        |
785 --| Version	:                                                          |
786 --|	 	  Current Version	: 2.0                              |
787 --|	  	  Previous Version	: 1.0                              |
788 --|	  	  Initial Version	: 1.0                              |
789 --|                                                                        |
790 --| Notes	:                                                          |
791 --|                                                                        |
792 --| HISTORY                                                                |
793 --|    22-Mar-2004  Anand Thiyagarajan  Created			     	   |
794 --|                                                                        |
795 --+========================================================================+
796 -- End of comments
797 
798 PROCEDURE Get_LotCost_Adjustment
799 (
800 p_api_version		IN  			NUMBER
801 , p_init_msg_list	IN  			VARCHAR2 := FND_API.G_FALSE
802 , x_return_status	OUT 	NOCOPY 		VARCHAR2
803 , x_msg_count		OUT 	NOCOPY 		NUMBER
804 , x_msg_data		OUT 	NOCOPY 		VARCHAR2
805 , p_header_rec		IN OUT 	NOCOPY 		GMF_LotCostAdjustment_PUB.Lc_Adjustment_Header_Rec_Type
806 , p_dtl_Tbl		OUT 	NOCOPY 		GMF_LotCostAdjustment_PUB.Lc_adjustment_dtls_Tbl_Type
807 )
808 IS
809 	CURSOR Adjustment_Header_csr
810   	IS
811   	SELECT
812   	a.ADJUSTMENT_ID
813 	, a.legal_entity_id
814 	, a.cost_type_id
815 	, a.inventory_item_id
816 	, a.organization_id
817 	, a.lot_number
818 	, a.ADJUSTMENT_DATE
819 	, a.REASON_CODE
820 	, a.DELETE_MARK
821 	, a.ATTRIBUTE1
822 	, a.ATTRIBUTE2
823 	, a.ATTRIBUTE3
824 	, a.ATTRIBUTE4
825 	, a.ATTRIBUTE5
826 	, a.ATTRIBUTE6
827 	, a.ATTRIBUTE7
828 	, a.ATTRIBUTE8
829 	, a.ATTRIBUTE9
830 	, a.ATTRIBUTE10
831 	, a.ATTRIBUTE11
832 	, a.ATTRIBUTE12
833 	, a.ATTRIBUTE13
834 	, a.ATTRIBUTE14
835 	, a.ATTRIBUTE15
836 	, a.ATTRIBUTE16
837 	, a.ATTRIBUTE17
838 	, a.ATTRIBUTE18
839 	, a.ATTRIBUTE19
840 	, a.ATTRIBUTE20
841 	, a.ATTRIBUTE21
842 	, a.ATTRIBUTE22
843 	, a.ATTRIBUTE23
844 	, a.ATTRIBUTE24
845 	, a.ATTRIBUTE25
846 	, a.ATTRIBUTE26
847 	, a.ATTRIBUTE27
848 	, a.ATTRIBUTE28
849 	, a.ATTRIBUTE29
850 	, a.ATTRIBUTE30
851 	, a.ATTRIBUTE_CATEGORY
852 	FROM  gmf_lot_cost_adjustments a
853 	, mtl_system_items_b b
854  	, mtl_lot_numbers c
855   	WHERE	a.adjustment_id 	= 	nvl(p_header_rec.adjustment_id, a.adjustment_id)
856 	AND	a.legal_entity_id 		= 	decode(p_header_rec.adjustment_id, NULL, p_header_rec.legal_entity_id, a.legal_entity_id)
857 	AND 	a.cost_type_id 	= 	decode(p_header_rec.adjustment_id, NULL, p_header_rec.cost_type_id, a.cost_type_id)
858 	AND 	a.organization_id		= 	decode(p_header_rec.adjustment_id, NULL, p_header_rec.organization_id, a.organization_id)
859 	AND 	a.inventory_item_id 		= 	decode(p_header_rec.adjustment_id, NULL, p_header_rec.item_id, a.inventory_item_id)
860 	AND	a.lot_number		= 	decode(p_header_rec.adjustment_id, NULL, p_header_rec.lot_number, a.lot_number)
861 	AND	a.adjustment_date	= 	decode(p_header_rec.adjustment_id, NULL, p_header_rec.adjustment_date, a.adjustment_date)
862    AND	b.inventory_item_id 		= 	a.inventory_item_id
863    AND   b.organization_id = a.organization_id
864   	AND	c.lot_number 		= 	a.lot_number
865    AND   c.inventory_item_id = 	a.inventory_item_id
866    AND   c.organization_id = a.organization_id;
867 
868   	CURSOR adjustment_dtls_csr	(
869 					p_adjustment_id IN NUMBER
870 					)
871 	IS
872   	SELECT
873 	a.ADJUSTMENT_DTL_ID
874 	, a.ADJUSTMENT_ID
875 	, a.COST_CMPNTCLS_ID
876 	, a.COST_ANALYSIS_CODE
877 	, a.ADJUSTMENT_COST
878 	, a.TEXT_CODE
879 	FROM  gmf_lot_cost_adjustment_dtls a
880   WHERE	a.adjustment_id = NVL(p_adjustment_id, a.adjustment_id);
881 
882 	l_api_name		CONSTANT 		VARCHAR2(30)	:= 'Get_LotCost_Adjustment' ;
883 	l_api_version		CONSTANT 		NUMBER		:= 2.0 ;
884     l_idx                           NUMBER := 0;
885 
886 BEGIN
887     -- Standard Start of API savepoint
888     SAVEPOINT    Get_LotCost_Adjustment_PVT;
889 
890     -- Initialize message list if p_init_msg_list is set to TRUE.
891     IF FND_API.to_Boolean( p_init_msg_list ) THEN
892 	FND_MSG_PUB.initialize;
893     END IF;
894 
895     -- Standard call to check for call compatibility.
896     IF NOT FND_API.Compatible_API_Call	(	l_api_version          ,
897 						p_api_version          ,
898 						l_api_name             ,
899 						G_PKG_NAME
900 					)    THEN
901 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
902     END IF;
903 
904     --  Initialize API return status to success
905     x_return_status := FND_API.G_RET_STS_SUCCESS;
906 
907     IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
908     	log_msg('Beginning Private Get Lot Cost Adjustment API.');
909     END IF;
910 
911     IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
912 	log_msg	('Retrieving Lot Cost Adjustments for Adjustment ID '		||	p_header_rec.adjustment_id    ||
913 							' Item ' 		|| 	p_header_rec.item_id 		||
914 						  ' Legal Entity' 		|| 	p_header_rec.legal_entity_id 		||
915             							' Organization ' 		|| 	p_header_rec.organization_id 		||
916             							' Cost Type Id ' 	|| 	p_header_rec.cost_type_id 	||
917 								' Lot Number '		||	p_header_Rec.lot_number		||
918 							' Adjustment Date '	||	p_header_rec.adjustment_date
919 		);
920     END IF;
921 
922     FOR i IN adjustment_header_csr
923     LOOP
924 	p_header_Rec.ADJUSTMENT_ID 		:=	i.ADJUSTMENT_ID;
925 	p_header_Rec.legal_entity_id 			:=	i.legal_entity_id;
926 	p_header_Rec.cost_type_id 		:=	i.cost_type_id;
927 	p_header_Rec.ITEM_ID 			:=	i.inventory_item_id;
928 	p_header_Rec.organization_id 			:=	i.organization_id;
929 	p_header_Rec.lot_number			:=	i.lot_number;
930 	p_header_Rec.ADJUSTMENT_DATE 		:=	i.ADJUSTMENT_DATE;
931 	p_header_Rec.REASON_CODE 		:=	i.REASON_CODE;
932 	p_header_Rec.DELETE_MARK 		:=	i.DELETE_MARK;
933 	p_header_Rec.ATTRIBUTE1 		:=	i.ATTRIBUTE1;
934 	p_header_Rec.ATTRIBUTE2 		:=	i.ATTRIBUTE2;
935 	p_header_Rec.ATTRIBUTE3 		:=	i.ATTRIBUTE3;
936 	p_header_Rec.ATTRIBUTE4 		:=	i.ATTRIBUTE4;
937 	p_header_Rec.ATTRIBUTE5 		:=	i.ATTRIBUTE5;
938 	p_header_Rec.ATTRIBUTE6 		:=	i.ATTRIBUTE6;
939 	p_header_Rec.ATTRIBUTE7 		:=	i.ATTRIBUTE7;
940 	p_header_Rec.ATTRIBUTE8 		:=	i.ATTRIBUTE8;
941 	p_header_Rec.ATTRIBUTE9 		:=	i.ATTRIBUTE9;
942 	p_header_Rec.ATTRIBUTE10 		:=	i.ATTRIBUTE10;
943 	p_header_Rec.ATTRIBUTE11 		:=	i.ATTRIBUTE11;
944 	p_header_Rec.ATTRIBUTE12 		:=	i.ATTRIBUTE12;
945 	p_header_Rec.ATTRIBUTE13 		:=	i.ATTRIBUTE13;
946 	p_header_Rec.ATTRIBUTE14 		:=	i.ATTRIBUTE14;
947 	p_header_Rec.ATTRIBUTE15 		:=	i.ATTRIBUTE15;
948 	p_header_Rec.ATTRIBUTE16 		:=	i.ATTRIBUTE16;
949 	p_header_Rec.ATTRIBUTE17 		:=	i.ATTRIBUTE17;
950 	p_header_Rec.ATTRIBUTE18 		:=	i.ATTRIBUTE18;
951 	p_header_Rec.ATTRIBUTE19 		:=	i.ATTRIBUTE19;
952 	p_header_Rec.ATTRIBUTE20 		:=	i.ATTRIBUTE20;
953 	p_header_Rec.ATTRIBUTE21 		:=	i.ATTRIBUTE21;
954 	p_header_Rec.ATTRIBUTE22 		:=	i.ATTRIBUTE22;
955 	p_header_Rec.ATTRIBUTE23 		:=	i.ATTRIBUTE23;
956 	p_header_Rec.ATTRIBUTE24 		:=	i.ATTRIBUTE24;
957 	p_header_Rec.ATTRIBUTE25 		:=	i.ATTRIBUTE25;
958 	p_header_Rec.ATTRIBUTE26 		:=	i.ATTRIBUTE26;
959 	p_header_Rec.ATTRIBUTE27 		:=	i.ATTRIBUTE27;
960 	p_header_Rec.ATTRIBUTE28 		:=	i.ATTRIBUTE28;
961 	p_header_Rec.ATTRIBUTE29 		:=	i.ATTRIBUTE29;
962 	p_header_Rec.ATTRIBUTE30 		:=	i.ATTRIBUTE30;
963 	p_header_Rec.ATTRIBUTE_CATEGORY 	:=	i.ATTRIBUTE_CATEGORY;
964 
965   END LOOP;
966 
967 
968   IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
969   	log_msg	('Retrieving Lot Cost Adjustments for Adjustment ID '		||	p_header_rec.adjustment_id    ||
970 							' Item ' 		|| 	p_header_rec.item_id 		||
971 							' Legal Entity' 		|| 	p_header_rec.legal_entity_id 		||
972             							' Organization ' 		|| 	p_header_rec.organization_id 		||
973             							' Cost Type Id ' 	|| 	p_header_rec.cost_type_id 	||
974 								' Lot Number '		||	p_header_Rec.lot_number		||
975 							' Adjustment Date '	||	p_header_rec.adjustment_date
976 		);
977   END IF;
978 
979   IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
980 	log_msg( 'Retrieving Lot Cost Adjustment Records for Adjustment ID'|| p_header_Rec.adjustment_id );
981   END IF;
982 
983   OPEN adjustment_dtls_csr (p_header_Rec.adjustment_id);
984   LOOP
985     l_idx := l_idx + 1;
986     FETCH adjustment_dtls_csr INTO	p_dtl_tbl(l_idx).ADJUSTMENT_DTL_ID
987 						, p_dtl_tbl(l_idx).ADJUSTMENT_ID
988 						, p_dtl_tbl(l_idx).COST_CMPNTCLS_ID
989 						, p_dtl_tbl(l_idx).COST_ANALYSIS_CODE
990 						, p_dtl_tbl(l_idx).ADJUSTMENT_COST
991 						, p_dtl_tbl(l_idx).TEXT_CODE ;
992     EXIT WHEN adjustment_dtls_csr%NOTFOUND;
993   END LOOP;
994   IF FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW >= G_Debug_Level THEN
995 	log_msg	( adjustment_dtls_csr%rowcount||' Records retrieved for Adjustment Id ' || p_header_rec.adjustment_id );
996   END IF;
997   CLOSE adjustment_dtls_csr;
998 
999 
1000   -- Standard call to get message count and if count is 1, get message info.
1001   FND_MSG_PUB.Count_And_Get	(
1002 				p_count         	=>      x_msg_count
1003 				, p_data		=>      x_msg_data
1004         			);
1005 
1006 END Get_LotCost_Adjustment;
1007 
1008 -- Start of comments
1009 --+==========================================================================+
1010 --|  Procedure Name                                                          |
1011 --|       log_msg                                                            |
1012 --|                                                                          |
1013 --|  DESCRIPTION                                                             |
1014 --|       This procedure logs messages to message stack.                     |
1015 --|                                                                          |
1016 --|  PARAMETERS                                                              |
1017 --|       p_msg_lvl             IN NUMBER(10) - Message Level                |
1018 --|       p_msg_text            IN NUMBER(10) - Actual Message Text          |
1019 --|                                                                          |
1020 --|  RETURNS                                                                 |
1021 --|                                                                          |
1022 --|  HISTORY                                                                 |
1023 --|       22-MAR-2004 Anand Thiyagarajan - Created                           |
1024 --|                                                                          |
1025 --+==========================================================================+
1026 -- End of comments
1027 
1028 PROCEDURE log_msg
1029 (
1030 p_msg_text      IN VARCHAR2
1031 )
1032 IS
1033 BEGIN
1034     FND_MESSAGE.SET_NAME('GMF','GMF_API_DEBUG');
1035     FND_MESSAGE.SET_TOKEN('MSG',p_msg_text);
1036     FND_MSG_PUB.Add;
1037 END log_msg ;
1038 
1039 END GMF_LotCostAdjustment_PVT;