DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEX_COSTS_PVT

Source


1 PACKAGE BODY IEX_COSTS_PVT as
2 /* $Header: iexvcosb.pls 120.1 2006/05/30 21:13:45 scherkas noship $ */
3 -- Start of Comments
4 -- Package name     : IEX_COSTS_PVT
5 -- Purpose          :
6 -- History          :
7 -- NOTE             :
8 -- End of Comments
9 
10 
11 
12 G_PKG_NAME CONSTANT VARCHAR2(30):= 'IEX_COSTS_PVT';
13 G_FILE_NAME CONSTANT VARCHAR2(12) := 'iexvcosb.pls';
14 
15 
16 -- Hint: Primary key needs to be returned.
17 --PG_DEBUG NUMBER(2) := TO_NUMBER(NVL(FND_PROFILE.value('IEX_DEBUG_LEVEL'), '20'));
18 PG_DEBUG NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
19 
20 PROCEDURE Create_costs(
21     P_Api_Version_Number         IN   NUMBER,
22     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
23     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
24     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
25     P_costs_Rec                  IN    costs_Rec_Type  := G_MISS_costs_REC,
26     X_COST_ID                    OUT NOCOPY  NUMBER,
27     X_Return_Status              OUT NOCOPY  VARCHAR2,
28     X_Msg_Count                  OUT NOCOPY  NUMBER,
29     X_Msg_Data                   OUT NOCOPY  VARCHAR2
30     )
31 
32  IS
33 l_api_name                CONSTANT VARCHAR2(30) := 'Create_costs';
34 l_api_version_number      CONSTANT NUMBER   := 2.0;
35 l_return_status_full      VARCHAR2(1);
36 v_rowid                   VARCHAR2(24);
37 v_cost_id                 iex_costs.cost_id%TYPE;
38 v_object_version_number   iex_costs.object_version_number%TYPE;
39 v_active_flag             iex_costs.active_flag%TYPE;
40 v_cost_item_approved      iex_costs.cost_item_approved%TYPE;
41 
42 Cursor c2 is SELECT IEX_COSTS_S.nextval from dual;
43  BEGIN
44 --       IF PG_DEBUG < 10  THEN
45        IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
46           IEX_DEBUG_PUB.LogMessage ('********* start of Procedure =>IEX_COSTS_PVT.Create_Costs ******** ');
47        END IF;
48       -- Standard Start of API savepoint
49       SAVEPOINT CREATE_COSTS_PVT;
50 
51       -- Standard call to check for call compatibility.
52       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
53                            	               p_api_version_number,
54                                            l_api_name,
55                                            G_PKG_NAME)
56       THEN
57           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
58       END IF;
59 --      IF PG_DEBUG < 10  THEN
60       IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
61          IEX_DEBUG_PUB.LogMessage('Create_costs: ' || 'After Compatibility Check');
62       END IF;
63 
64 
65       -- Initialize message list if p_init_msg_list is set to TRUE.
66       IF FND_API.to_Boolean( p_init_msg_list )
67       THEN
68           FND_MSG_PUB.initialize;
69       END IF;
70 
71 
72       -- Initialize API return status to SUCCESS
73       x_return_status := FND_API.G_RET_STS_SUCCESS;
74 
75       --
76       -- API body
77       --
78       -- ******************************************************************
79       -- Validate Environment
80       -- ******************************************************************
81       IF FND_GLOBAL.User_Id IS NULL
82       THEN
83           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
84           THEN
85               FND_MESSAGE.Set_Name('IEX', 'IEX_CANNOT_GET_PROFILE_VALUE');
86               FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
87               FND_MSG_PUB.ADD;
88           END IF;
89           RAISE FND_API.G_EXC_ERROR;
90       END IF;
91 --      IF PG_DEBUG < 10  THEN
92       IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
93          IEX_DEBUG_PUB.LogMessage('Create_costs: ' || 'After Global user Check');
94       END IF;
95 
96       --IF p_validation_level = FND_API.G_VALID_LEVEL_FULL THEN
97 
98          --object version Number
99          v_object_version_number :=1;
100 	    --Active_flag
101 	     v_active_flag :='Y';
102 
103         -- set cost_item_approved to 'Y'
104         IF ((p_costs_rec.cost_item_approved IS NULL) OR
105              (p_costs_rec.cost_item_approved = FND_API.G_MISS_CHAR)) THEN
106             v_cost_item_approved :='Y';
107 	  ELSE
108 	    v_cost_item_approved :=p_costs_rec.cost_item_approved;
109 	  End if;
110 
111          -- get cost_id
112          OPEN C2;
113              FETCH C2 INTO v_cost_id;
114          CLOSE C2;
115 --         IF PG_DEBUG < 10  THEN
116          IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
117             IEX_DEBUG_PUB.LogMessage('Create_costs: ' || 'After cost_id Check and cost_id is => '||v_cost_id);
118          END IF;
119 
120          --check for case_id and delinquency id. Either one of them should be passed.
121           IF ((p_costs_rec.case_id IS NULL) OR (p_costs_rec.case_ID = FND_API.G_MISS_NUM))
122              AND
123              ((p_costs_rec.delinquency_id IS NULL) OR (p_costs_rec.delinquency_ID = FND_API.G_MISS_NUM))
124           THEN
125               fnd_message.set_name('IEX', 'IEX_API_ALL_MISSING_PARAM');
126               fnd_message.set_token('API_NAME', l_api_name);
127               fnd_message.set_token('MISSING_PARAM', 'case_id/delinquency_id');
128               fnd_msg_pub.add;
129               RAISE FND_API.G_EXC_ERROR;
130            END IF;
131 --           IF PG_DEBUG < 10  THEN
132            IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
133               IEX_DEBUG_PUB.LogMessage('Create_costs: ' || 'After CASE ID and DELINQUENCY_ID Check ');
134            END IF;
135 
136            --check for cost_type_code
137            IF (p_costs_rec.cost_type_code IS NULL) OR (p_costs_rec.cost_type_code = FND_API.G_MISS_CHAR) THEN
138                fnd_message.set_name('IEX', 'IEX_API_ALL_MISSING_PARAM');
139                fnd_message.set_token('API_NAME', l_api_name);
140                fnd_message.set_token('MISSING_PARAM', 'cost_type_code');
141                fnd_msg_pub.add;
142                RAISE FND_API.G_EXC_ERROR;
143            END IF;
144 --           IF PG_DEBUG < 10  THEN
145            IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
146               IEX_DEBUG_PUB.LogMessage('Create_costs: ' || 'After cost_type_code Check ');
147            END IF;
148 
149            --check for cost_item type_code
150            IF (p_costs_rec.cost_item_type_code IS NULL) OR (p_costs_rec.cost_item_type_code = FND_API.G_MISS_CHAR) THEN
151                fnd_message.set_name('IEX', 'IEX_API_ALL_MISSING_PARAM');
152                fnd_message.set_token('API_NAME', l_api_name);
153                fnd_message.set_token('MISSING_PARAM', 'cost_item_type_code');
154                fnd_msg_pub.add;
155                RAISE FND_API.G_EXC_ERROR;
156            END IF;
157 --           IF PG_DEBUG < 10  THEN
158            IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
159               IEX_DEBUG_PUB.LogMessage('Create_costs: ' || 'After cost_item_type_code Check ');
160            END IF;
161 
162 
163       -- Invoke table handler(IEX_COSTS_PKG.Insert_Row)
164       IEX_COSTS_PKG.Insert_Row(
165           x_rowid                     =>v_rowid,
166           p_COST_ID                   => v_COST_ID,
167           p_CASE_ID                   => p_costs_rec.CASE_ID,
168           p_DELINQUENCY_ID            => p_costs_rec.DELINQUENCY_ID,
169           p_COST_TYPE_CODE            => p_costs_rec.COST_TYPE_CODE,
170           p_COST_ITEM_TYPE_CODE       => p_costs_rec.COST_ITEM_TYPE_CODE,
171           p_COST_ITEM_TYPE_DESC       => p_costs_rec.COST_ITEM_TYPE_DESC,
172           p_COST_ITEM_AMOUNT          => p_costs_rec.COST_ITEM_AMOUNT,
173           p_COST_ITEM_CURRENCY_CODE   => p_costs_rec.COST_ITEM_CURRENCY_CODE,
174           p_COST_ITEM_QTY             => p_costs_rec.COST_ITEM_QTY,
175           p_COST_ITEM_DATE            => p_costs_rec.COST_ITEM_DATE,
176           p_FUNCTIONAL_AMOUNT         => p_costs_rec.FUNCTIONAL_AMOUNT,
177           p_EXCHANGE_TYPE             => p_costs_rec.EXCHANGE_TYPE,
178           p_EXCHANGE_RATE             => p_costs_rec.EXCHANGE_RATE,
179           p_EXCHANGE_DATE             => p_costs_rec.EXCHANGE_DATE,
180           p_COST_ITEM_APPROVED        => v_COST_ITEM_APPROVED,
181           p_ACTIVE_FLAG               => v_ACTIVE_FLAG,
182           p_OBJECT_VERSION_NUMBER     => v_OBJECT_VERSION_NUMBER,
183           p_CREATED_BY                => FND_GLOBAL.USER_ID,
184           p_CREATION_DATE             => SYSDATE,
185           p_LAST_UPDATED_BY           => FND_GLOBAL.USER_ID,
186           p_LAST_UPDATE_DATE          => SYSDATE,
187           p_REQUEST_ID                => p_costs_rec.REQUEST_ID,
188           p_PROGRAM_APPLICATION_ID    => p_costs_rec.PROGRAM_APPLICATION_ID,
189           p_PROGRAM_ID                => p_costs_rec.PROGRAM_ID,
190           p_PROGRAM_UPDATE_DATE       => p_costs_rec.PROGRAM_UPDATE_DATE,
191           p_ATTRIBUTE_CATEGORY        => p_costs_rec.ATTRIBUTE_CATEGORY,
192           p_ATTRIBUTE1                => p_costs_rec.ATTRIBUTE1,
193           p_ATTRIBUTE2                => p_costs_rec.ATTRIBUTE2,
194           p_ATTRIBUTE3                => p_costs_rec.ATTRIBUTE3,
195           p_ATTRIBUTE4                => p_costs_rec.ATTRIBUTE4,
196           p_ATTRIBUTE5                => p_costs_rec.ATTRIBUTE5,
197           p_ATTRIBUTE6                => p_costs_rec.ATTRIBUTE6,
198           p_ATTRIBUTE7                => p_costs_rec.ATTRIBUTE7,
199           p_ATTRIBUTE8                => p_costs_rec.ATTRIBUTE8,
200           p_ATTRIBUTE9                => p_costs_rec.ATTRIBUTE9,
201           p_ATTRIBUTE10               => p_costs_rec.ATTRIBUTE10,
202           p_ATTRIBUTE11               => p_costs_rec.ATTRIBUTE11,
203           p_ATTRIBUTE12               => p_costs_rec.ATTRIBUTE12,
204           p_ATTRIBUTE13               => p_costs_rec.ATTRIBUTE13,
205           p_ATTRIBUTE14               => p_costs_rec.ATTRIBUTE14,
206           p_ATTRIBUTE15               => p_costs_rec.ATTRIBUTE15,
207           p_LAST_UPDATE_LOGIN         => p_costs_rec.LAST_UPDATE_LOGIN);
208 
209 
210           x_COST_ID := v_COST_ID;
211 
212 --          IF PG_DEBUG < 10  THEN
213           IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
214              IEX_DEBUG_PUB.LogMessage('Create_costs: ' || 'After Calling IEX_COSTS_PKG.Insert_Row'
215            ||' and cost id => ' ||v_cost_id);
216           END IF;
217 
218           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
219               RAISE FND_API.G_EXC_ERROR;
220           END IF;
221 
222       --
223       -- End of API body
224       --
225 
226       -- Standard check for p_commit
227       IF FND_API.to_Boolean( p_commit )
228       THEN
229           COMMIT WORK;
230       END IF;
231 
232 
233 
234       -- Standard call to get message count and if count is 1, get message info.
235       FND_MSG_PUB.Count_And_Get
236       (  p_count          =>   x_msg_count,
237          p_data           =>   x_msg_data
238       );
239 --      IF PG_DEBUG < 10  THEN
240       IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
241          IEX_DEBUG_PUB.LogMessage ('********* End of Procedure =>IEX_COSTS_PVT.Create_costs ******** ');
242       END IF;
243       EXCEPTION
244           WHEN FND_API.G_EXC_ERROR THEN
245               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
246                    P_API_NAME => L_API_NAME
247                   ,P_PKG_NAME => G_PKG_NAME
248                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
249                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
250                   ,X_MSG_COUNT => X_MSG_COUNT
251                   ,X_MSG_DATA => X_MSG_DATA
252                   ,X_RETURN_STATUS => X_RETURN_STATUS);
253 
254           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
255               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
256                    P_API_NAME => L_API_NAME
257                   ,P_PKG_NAME => G_PKG_NAME
258                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
259                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
260                   ,X_MSG_COUNT => X_MSG_COUNT
261                   ,X_MSG_DATA => X_MSG_DATA
262                   ,X_RETURN_STATUS => X_RETURN_STATUS);
263 
264           WHEN OTHERS THEN
265               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
266                    P_API_NAME => L_API_NAME
267                   ,P_PKG_NAME => G_PKG_NAME
268                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
269                   ,P_SQLCODE => SQLCODE
270                   ,P_SQLERRM => SQLERRM
271                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
272                   ,X_MSG_COUNT => X_MSG_COUNT
273                   ,X_MSG_DATA => X_MSG_DATA
274                   ,X_RETURN_STATUS => X_RETURN_STATUS);
275 
276 End Create_costs;
277 
278 
279 
280 PROCEDURE Update_costs(
281     P_Api_Version_Number         IN   NUMBER,
282     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
283     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
284     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
285     P_costs_Rec                  IN    costs_Rec_Type,
286     X_Return_Status              OUT NOCOPY  VARCHAR2,
287     X_Msg_Count                  OUT NOCOPY  NUMBER,
288     X_Msg_Data                   OUT NOCOPY  VARCHAR2,
289     xo_object_version_number     OUT NOCOPY NUMBER
290     )
291 
292  IS
293 l_api_name                CONSTANT VARCHAR2(30) := 'UPDATE_COSTS';
294 l_api_version_number      CONSTANT NUMBER   := 2.0;
295 l_object_version_number   IEX_COSTS.object_version_number%TYPE
296                                               :=p_COSTS_rec.object_version_number;
297  BEGIN
298 --      IF PG_DEBUG < 10  THEN
299       IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
300          IEX_DEBUG_PUB.LogMessage ('********* start of Procedure =>IEX_COSTS_PVT.update_COSTS ******** ');
301       END IF;
302       -- Standard Start of API savepoint
303       SAVEPOINT UPDATE_COSTS_PVT;
304 
305       -- Standard call to check for call compatibility.
306       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
307                          	               p_api_version_number,
308                                            l_api_name,
309                                            G_PKG_NAME)
310       THEN
311           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
312       END IF;
313 
314 
315       -- Initialize message list if p_init_msg_list is set to TRUE.
316       IF FND_API.to_Boolean( p_init_msg_list )
317       THEN
318           FND_MSG_PUB.initialize;
319       END IF;
320 
321 
322 
323       -- Initialize API return status to SUCCESS
324       x_return_status := FND_API.G_RET_STS_SUCCESS;
325 
326       --
327       -- Api body
328       --
329      -- Invoke table handler(IEX_COSTS_PKG.Update_Row)
330       -- call locking table handler
331       IEX_COSTS_PKG.lock_row (
332          p_COSTS_rec.cost_id,
333          l_object_version_number
334       );
335 
336       -- Invoke table handler(IEX_COSTS_PKG.Update_Row)
337       IEX_COSTS_PKG.Update_Row(
338           p_COST_ID                   => p_costs_rec.COST_ID,
339           p_CASE_ID                   => p_costs_rec.CASE_ID,
340           p_DELINQUENCY_ID            => p_costs_rec.DELINQUENCY_ID,
341           p_COST_TYPE_CODE            => p_costs_rec.COST_TYPE_CODE,
342           p_COST_ITEM_TYPE_CODE       => p_costs_rec.COST_ITEM_TYPE_CODE,
343           p_COST_ITEM_TYPE_DESC       => p_costs_rec.COST_ITEM_TYPE_DESC,
344           p_COST_ITEM_AMOUNT          => p_costs_rec.COST_ITEM_AMOUNT,
345           p_COST_ITEM_CURRENCY_CODE   => p_costs_rec.COST_ITEM_CURRENCY_CODE,
346           p_COST_ITEM_QTY             => p_costs_rec.COST_ITEM_QTY,
347           p_COST_ITEM_DATE            => p_costs_rec.COST_ITEM_DATE,
348           p_FUNCTIONAL_AMOUNT         =>p_costs_rec.FUNCTIONAL_AMOUNT,
349           p_EXCHANGE_TYPE             => p_costs_rec.EXCHANGE_TYPE,
350           p_EXCHANGE_RATE             => p_costs_rec.EXCHANGE_RATE,
351           p_EXCHANGE_DATE             => p_costs_rec.EXCHANGE_DATE,
352           p_COST_ITEM_APPROVED        => p_costs_rec.COST_ITEM_APPROVED,
353           p_ACTIVE_FLAG               => p_costs_rec.ACTIVE_FLAG,
354           p_OBJECT_VERSION_NUMBER     => l_OBJECT_VERSION_NUMBER +1,
355           p_LAST_UPDATED_BY           => FND_GLOBAL.USER_ID,
356           p_LAST_UPDATE_DATE          => SYSDATE,
357           p_REQUEST_ID                => p_costs_rec.REQUEST_ID,
358           p_PROGRAM_APPLICATION_ID    => p_costs_rec.PROGRAM_APPLICATION_ID,
359           p_PROGRAM_ID                => p_costs_rec.PROGRAM_ID,
360           p_PROGRAM_UPDATE_DATE       => p_costs_rec.PROGRAM_UPDATE_DATE,
361           p_ATTRIBUTE_CATEGORY        => p_costs_rec.ATTRIBUTE_CATEGORY,
362           p_ATTRIBUTE1                => p_costs_rec.ATTRIBUTE1,
363           p_ATTRIBUTE2                => p_costs_rec.ATTRIBUTE2,
364           p_ATTRIBUTE3                => p_costs_rec.ATTRIBUTE3,
365           p_ATTRIBUTE4                => p_costs_rec.ATTRIBUTE4,
366           p_ATTRIBUTE5                => p_costs_rec.ATTRIBUTE5,
367           p_ATTRIBUTE6                => p_costs_rec.ATTRIBUTE6,
368           p_ATTRIBUTE7                => p_costs_rec.ATTRIBUTE7,
369           p_ATTRIBUTE8                => p_costs_rec.ATTRIBUTE8,
370           p_ATTRIBUTE9                => p_costs_rec.ATTRIBUTE9,
371           p_ATTRIBUTE10               => p_costs_rec.ATTRIBUTE10,
372           p_ATTRIBUTE11               => p_costs_rec.ATTRIBUTE11,
373           p_ATTRIBUTE12               => p_costs_rec.ATTRIBUTE12,
374           p_ATTRIBUTE13               => p_costs_rec.ATTRIBUTE13,
375           p_ATTRIBUTE14               => p_costs_rec.ATTRIBUTE14,
376           p_ATTRIBUTE15               => p_costs_rec.ATTRIBUTE15,
377           p_LAST_UPDATE_LOGIN         => p_costs_rec.LAST_UPDATE_LOGIN);
378 
379       --Return Version number
380       xo_object_version_number := l_object_version_number + 1;
381 
382 
383       --
384       -- End of API body.
385       --
386 
387       -- Standard check for p_commit
388       IF FND_API.to_Boolean( p_commit )
389       THEN
390           COMMIT WORK;
391       END IF;
392 
393 
394 
395       -- Standard call to get message count and if count is 1, get message info.
396       FND_MSG_PUB.Count_And_Get
397       (  p_count          =>   x_msg_count,
398          p_data           =>   x_msg_data
399       );
400 --     IF PG_DEBUG < 10  THEN
401      IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
402         IEX_DEBUG_PUB.LogMessage ('********* end of Procedure =>IEX_COSTS_PVT.update_costs ******** ');
403      END IF;
404       EXCEPTION
405           WHEN FND_API.G_EXC_ERROR THEN
406               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
407                    P_API_NAME => L_API_NAME
408                   ,P_PKG_NAME => G_PKG_NAME
409                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
410                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
411                   ,X_MSG_COUNT => X_MSG_COUNT
412                   ,X_MSG_DATA => X_MSG_DATA
413                   ,X_RETURN_STATUS => X_RETURN_STATUS);
414 
415           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
416               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
417                    P_API_NAME => L_API_NAME
418                   ,P_PKG_NAME => G_PKG_NAME
419                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
420                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
421                   ,X_MSG_COUNT => X_MSG_COUNT
422                   ,X_MSG_DATA => X_MSG_DATA
423                   ,X_RETURN_STATUS => X_RETURN_STATUS);
424 
425           WHEN OTHERS THEN
426               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
427                    P_API_NAME => L_API_NAME
428                   ,P_PKG_NAME => G_PKG_NAME
429                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
430                   ,P_SQLCODE => SQLCODE
431                   ,P_SQLERRM => SQLERRM
432                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
433                   ,X_MSG_COUNT => X_MSG_COUNT
434                   ,X_MSG_DATA => X_MSG_DATA
435                   ,X_RETURN_STATUS => X_RETURN_STATUS);
436 End Update_costs;
437 
438 
439 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
440 --       The Master delete procedure may not be needed depends on different business requirements.
441 PROCEDURE Delete_costs(
442     P_Api_Version_Number         IN   NUMBER,
443     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
444     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
445     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
446     P_cost_id                    IN   NUMBER,
447     X_Return_Status              OUT NOCOPY  VARCHAR2,
448     X_Msg_Count                  OUT NOCOPY  NUMBER,
449     X_Msg_Data                   OUT NOCOPY  VARCHAR2
450     )
451 
452  IS
453 l_api_name                CONSTANT VARCHAR2(30) := 'Delete_costs';
454 l_api_version_number      CONSTANT NUMBER   := 2.0;
455 
456  BEGIN
457 --     IF PG_DEBUG < 10  THEN
458      IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
459         IEX_DEBUG_PUB.LogMessage ('********* start of Procedure =>IEX_COSTS_PVT.delete_costs ******** ');
460      END IF;
461       -- Standard Start of API savepoint
462       SAVEPOINT DELETE_COSTS_PVT;
463 
464       -- Standard call to check for call compatibility.
465       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
466                          	               p_api_version_number,
467                                            l_api_name,
468                                            G_PKG_NAME)
469       THEN
470           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
471       END IF;
472 
473 
474       -- Initialize message list if p_init_msg_list is set to TRUE.
475       IF FND_API.to_Boolean( p_init_msg_list )
476       THEN
477           FND_MSG_PUB.initialize;
478       END IF;
479 
480       -- Initialize API return status to SUCCESS
481       x_return_status := FND_API.G_RET_STS_SUCCESS;
482 
483       --
484       -- Api body
485       --
486 
487       -- Invoke table handler(IEX_costsS_PKG.Delete_Row)
488       IEX_COSTS_PKG.Delete_Row(
489           p_COST_ID  => p_COST_ID);
490       --
491       -- End of API body
492       --
493 
494       -- Standard check for p_commit
495       IF FND_API.to_Boolean( p_commit )
496       THEN
497           COMMIT WORK;
498       END IF;
499 
500 
501       -- Standard call to get message count and if count is 1, get message info.
502       FND_MSG_PUB.Count_And_Get
503       (  p_count          =>   x_msg_count,
504          p_data           =>   x_msg_data
505       );
506 --      IF PG_DEBUG < 10  THEN
507       IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
508          IEX_DEBUG_PUB.LogMessage ('********* End of Procedure =>IEX_COSTS_PVT.delete_costs ******** ');
509       END IF;
510 
511       EXCEPTION
512           WHEN FND_API.G_EXC_ERROR THEN
513               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
514                    P_API_NAME => L_API_NAME
515                   ,P_PKG_NAME => G_PKG_NAME
516                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
517                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
518                   ,X_MSG_COUNT => X_MSG_COUNT
519                   ,X_MSG_DATA => X_MSG_DATA
520                   ,X_RETURN_STATUS => X_RETURN_STATUS);
521 
522           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
523               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
524                    P_API_NAME => L_API_NAME
525                   ,P_PKG_NAME => G_PKG_NAME
526                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
527                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
528                   ,X_MSG_COUNT => X_MSG_COUNT
529                   ,X_MSG_DATA => X_MSG_DATA
530                   ,X_RETURN_STATUS => X_RETURN_STATUS);
531 
532           WHEN OTHERS THEN
533               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
534                    P_API_NAME => L_API_NAME
535                   ,P_PKG_NAME => G_PKG_NAME
536                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
537                   ,P_SQLCODE => SQLCODE
538                   ,P_SQLERRM => SQLERRM
539                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
540                   ,X_MSG_COUNT => X_MSG_COUNT
541                   ,X_MSG_DATA => X_MSG_DATA
542                   ,X_RETURN_STATUS => X_RETURN_STATUS);
543 End Delete_costs;
544 End IEX_costs_PVT;