[Home] [Help]
PACKAGE BODY: APPS.CSD_REPAIRS_PUB
Source
1 PACKAGE BODY CSD_REPAIRS_PUB as
2 /* $Header: csdpdrab.pls 120.12.12010000.3 2008/12/18 18:45:52 swai ship $ */
3 /*#
4 * This is the public interface for the Depot Repair API. It allows
5 * execution of various Depot Repair APIs.
6 * @rep:scope public
7 * @rep:product CSD
8 * @rep:displayname Depot Repair APIs
9 * @rep:lifecycle active
10 * @rep:category BUSINESS_ENTITY CSD_REPAIR_ORDER
11 */
12 --
13 -- Package name : CSD_REPAIRS_PUB
14 -- Purpose : This package contains the public APIs for creating
15 -- and updating repair orders.
16 -- History :
17 -- Version Date Name Description
18 -- 115.0 11/17/99 pkdas Created.
19 -- 115.1 12/18/99 pkdas
20 -- 115.2 01/04/00 pkdas
21 -- 115.3 02/09/00 pkdas Added p_REPAIR_LINE_ID as IN parameter in the
22 -- Create_Repairs procedure.
23 -- Added p_REPAIR_NUMBER as OUT parameter in the
24 -- Create_Repairs procedure.
25 -- 115.4 02/29/00 pkdas Changed the procedure name
26 -- Create_Repairs -> Create_Repair_Order
27 -- Update_Repairs -> Update_Repair_Order
28 -- Added p_validation_level to Create_Repair_Order and
29 -- Update_Repair_Order
30 --
31 -- NOTE :
32 --
33 G_PKG_NAME CONSTANT VARCHAR2(30) := 'CSD_REPAIRS_PUB';
34 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csdpdrab.pls';
35 g_debug NUMBER := csd_gen_utility_pvt.g_debug_level;
36 --
37 /*#
38 * Create Repair Order
39 * @param P_Api_Version_Number api version number
40 * @param P_Init_Msg_List initial the message stack, default to false
41 * @param P_Commit to decide whether to commit the transaction or not, default to false
42 * @param p_validation_level validation level, default to full level
43 * @param p_repair_line_id repair line id is unique id
44 * @param P_REPLN_Rec repiar line record
45 * @param p_create_default_logistics flag to create logistics lines, default to N
46 * @param X_REPAIR_LINE_ID repair line id of the created repair order
47 * @param X_REPAIR_NUMBER repair number of the created repair order which display on Depot UI
48 * @param X_Return_Status return status
49 * @param X_Msg_Count return message count
50 * @param X_Msg_Data return message data
51 * @rep:scope public
52 * @rep:lifecycle active
53 * @rep:displayname Create Repair Order
54 */
55 PROCEDURE Create_Repair_Order(P_Api_Version_Number IN NUMBER,
56 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
57 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
58 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
59 P_REPAIR_LINE_ID IN NUMBER := FND_API.G_MISS_NUM,
60 P_REPLN_Rec IN CSD_REPAIRS_PUB.REPLN_Rec_Type,
61 p_create_default_logistics IN VARCHAR2 := 'N',
62 X_REPAIR_LINE_ID OUT NOCOPY NUMBER,
63 X_REPAIR_NUMBER OUT NOCOPY VARCHAR2,
64 X_Return_Status OUT NOCOPY VARCHAR2,
65 X_Msg_Count OUT NOCOPY NUMBER,
66 X_Msg_Data OUT NOCOPY VARCHAR2) IS
67 --
68 l_api_name CONSTANT VARCHAR2(30) := 'Create_Repair_Order';
69 l_api_version_number CONSTANT NUMBER := 1.0;
70 --
71
72 -- swai: 12.1.1 bug 7176940 service bulletin check
73 l_ro_sc_ids_tbl CSD_RO_BULLETINS_PVT.CSD_RO_SC_IDS_TBL_TYPE;
74 l_return_status VARCHAR2 (1) ;
75 l_msg_count NUMBER;
76 l_msg_data VARCHAR2 (2000);
77 BEGIN
78 --
79 -- Standard Start of API savepoint
80 SAVEPOINT CREATE_REPAIR_ORDER_PUB;
81 -- Standard call to check for call compatibility.
82 IF NOT FND_API.Compatible_API_Call(l_api_version_number,
83 p_api_version_number,
84 l_api_name,
85 G_PKG_NAME)
86 THEN
87 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
88 END IF;
89 -- Initialize message list if p_init_msg_list is set to TRUE.
90 IF FND_API.to_Boolean(p_init_msg_list)
91 THEN
92 FND_MSG_PUB.initialize;
93 END IF;
94 -- Initialize API return status to success
95 x_return_status := FND_API.G_RET_STS_SUCCESS;
96 --
97 -- API body
98 --
99 CSD_REPAIRS_PVT.Create_Repair_Order(P_Api_Version_Number => 1.0,
100 P_Init_Msg_List => p_init_msg_list,
101 P_Commit => p_commit,
102 P_Validation_Level => p_validation_level,
103 P_REPAIR_LINE_ID => p_REPAIR_LINE_ID,
104 P_REPLN_Rec => p_REPLN_Rec,
105 X_REPAIR_LINE_ID => x_REPAIR_LINE_ID,
106 X_REPAIR_NUMBER => x_REPAIR_NUMBER,
107 X_Return_Status => x_return_status,
108 X_Msg_Count => x_msg_count,
109 X_Msg_Data => x_msg_data);
110 --
111 -- Check return status from the above procedure call
112 IF not (x_return_status = FND_API.G_RET_STS_SUCCESS)
113 then
114 ROLLBACK TO CREATE_REPAIR_ORDER_PUB;
115 return;
116 END IF;
117
118 IF (P_CREATE_DEFAULT_LOGISTICS = 'Y') THEN
119
120 CSD_LOGISTICS_PVT.Create_Default_Logistics
121 ( p_api_version => P_Api_Version_Number,
122 p_commit => P_Commit,
123 p_init_msg_list => P_Init_Msg_List,
124 p_validation_level => p_validation_level,
125 p_repair_line_id => X_REPAIR_LINE_ID, -- swai: bug 7654143
126 x_return_status => X_Return_Status,
127 x_msg_count => X_Msg_Count,
128 x_msg_data => X_Msg_Data
129 );
130
131 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
132 RAISE FND_API.G_EXC_ERROR;
133 END IF;
134
135 END IF;
136
137 -- swai: 12.1.1 bug 7176940 - check service bulletins after RO creation
138 IF (nvl(fnd_profile.value('CSD_AUTO_CHECK_BULLETINS'),'N') = 'Y') THEN
139 CSD_RO_BULLETINS_PVT.LINK_BULLETINS_TO_RO(
140 p_api_version_number => 1.0,
141 p_init_msg_list => Fnd_Api.G_FALSE,
142 p_commit => Fnd_Api.G_FALSE,
143 p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
144 p_repair_line_id => x_repair_line_id,
145 px_ro_sc_ids_tbl => l_ro_sc_ids_tbl,
146 x_return_status => l_return_status,
147 x_msg_count => l_msg_count,
148 x_msg_data => l_msg_data
149 );
150 -- ignore return status for now.
151 END IF;
152
153 --
154 -- End of API body.
155 --
156 -- Standard check for p_commit
157 IF FND_API.to_Boolean(p_commit)
158 THEN
159 COMMIT WORK;
160 END IF;
161 -- Standard call to get message count and if count is 1, get message info.
162 FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
163 p_data => x_msg_data);
164 --
165 EXCEPTION
166 WHEN FND_API.G_EXC_ERROR THEN
167 JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME => L_API_NAME,
168 P_PKG_NAME => G_PKG_NAME,
169 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
170 P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB,
171 X_MSG_COUNT => X_MSG_COUNT,
172 X_MSG_DATA => X_MSG_DATA,
173 X_RETURN_STATUS => X_RETURN_STATUS);
174 -- RAISE;
175 --
176 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
177 JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME => L_API_NAME,
178 P_PKG_NAME => G_PKG_NAME,
179 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
180 P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB,
181 X_MSG_COUNT => X_MSG_COUNT,
182 X_MSG_DATA => X_MSG_DATA,
183 X_RETURN_STATUS => X_RETURN_STATUS);
184 -- RAISE;
185 --
186 WHEN OTHERS THEN
187 JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME => L_API_NAME,
188 P_PKG_NAME => G_PKG_NAME,
189 P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS,
190 P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB,
191 X_MSG_COUNT => X_MSG_COUNT,
192 X_MSG_DATA => X_MSG_DATA,
193 X_RETURN_STATUS => X_RETURN_STATUS);
194 -- RAISE;
195 --
196 End Create_Repair_Order;
197
198 PROCEDURE Update_Repair_Order(P_Api_Version_Number IN NUMBER,
199 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
200 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
201 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
202 p_REPAIR_LINE_ID IN NUMBER,
203 P_REPLN_Rec IN OUT NOCOPY CSD_REPAIRS_PUB.REPLN_Rec_Type,
204 X_Return_Status OUT NOCOPY VARCHAR2,
205 X_Msg_Count OUT NOCOPY NUMBER,
206 X_Msg_Data OUT NOCOPY VARCHAR2) IS
207 --
208 l_api_name CONSTANT VARCHAR2(30) := 'Update_Repair_Order';
209 l_api_version_number CONSTANT NUMBER := 1.0;
210 --
211 BEGIN
212 --
213 -- Standard Start of API savepoint
214 SAVEPOINT UPDATE_REPAIR_ORDER_PUB;
215 -- Standard call to check for call compatibility.
216 IF NOT FND_API.Compatible_API_Call(l_api_version_number,
217 p_api_version_number,
218 l_api_name,
219 G_PKG_NAME)
220 THEN
221 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
222 END IF;
223 -- Initialize message list if p_init_msg_list is set to TRUE.
224 IF FND_API.to_Boolean(p_init_msg_list)
225 THEN
226 FND_MSG_PUB.initialize;
227 END IF;
228 -- Initialize API return status to SUCCESS
229 x_return_status := FND_API.G_RET_STS_SUCCESS;
230 --
231 -- API body
232 --
233 CSD_repairs_PVT.Update_Repair_Order(P_Api_Version_Number => 1.0,
234 P_Init_Msg_List => p_init_msg_list,
235 P_Commit => p_commit,
236 P_Validation_Level => p_validation_level,
237 p_REPAIR_LINE_ID => p_repair_line_id,
238 P_REPLN_Rec => p_REPLN_Rec,
239 X_Return_Status => x_return_status,
240 X_Msg_Count => x_msg_count,
241 X_Msg_Data => x_msg_data);
242 --
243 -- Check return status from the above procedure call
244 IF not (x_return_status = FND_API.G_RET_STS_SUCCESS)
245 then
246 ROLLBACK TO UPDATE_REPAIR_ORDER_PUB;
247 return;
248 END IF;
249 --
250 -- End of API body.
251 --
252 -- Standard check for p_commit
253 IF FND_API.to_Boolean(p_commit)
254 THEN
255 COMMIT WORK;
256 END IF;
257 -- Standard call to get message count and if count is 1, get message info.
258 FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
259 p_data => x_msg_data);
260 --
261 EXCEPTION
262 WHEN FND_API.G_EXC_ERROR THEN
263 JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME => L_API_NAME,
264 P_PKG_NAME => G_PKG_NAME,
265 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
266 P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB,
267 X_MSG_COUNT => X_MSG_COUNT,
268 X_MSG_DATA => X_MSG_DATA,
269 X_RETURN_STATUS => X_RETURN_STATUS);
270 -- RAISE;
271 --
272 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
273 JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME => L_API_NAME,
274 P_PKG_NAME => G_PKG_NAME,
275 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
276 P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB,
277 X_MSG_COUNT => X_MSG_COUNT,
278 X_MSG_DATA => X_MSG_DATA,
279 X_RETURN_STATUS => X_RETURN_STATUS);
280 -- RAISE;
281 --
282 WHEN OTHERS THEN
283 JTF_PLSQL_API.HANDLE_EXCEPTIONS(P_API_NAME => L_API_NAME,
284 P_PKG_NAME => G_PKG_NAME,
285 P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS,
286 P_PACKAGE_TYPE => JTF_PLSQL_API.G_PUB,
287 X_MSG_COUNT => X_MSG_COUNT,
288 X_MSG_DATA => X_MSG_DATA,
289 X_RETURN_STATUS => X_RETURN_STATUS);
290 -- RAISE;
291 End Update_Repair_Order;
292 --
293 -- R12 Development Begin
294 /*#
295 * Update Repair Order Status
296 * @param P_Api_Version api version number
297 * @param P_Commit to decide whether to commit the transaction or not, default to false
298 * @param P_Init_Msg_List initial the message stack, default to false
299 * @param X_Return_Status return status
300 * @param X_Msg_Count return message count
301 * @param X_Msg_Data return message data
302 * @param P_Repair_status_rec repair status attributes record.
303 * @param P_status_upd_control_rec repair status record control flags.
304 * @param X_OBJECT_VERSION_NUMBER
305 * @rep:scope public
306 * @rep:lifecycle active
307 * @rep:displayname Update Repair Order Status
308 */
309 PROCEDURE Update_Ro_Status(P_Api_Version IN NUMBER,
310 P_Commit IN VARCHAR2,
311 P_Init_Msg_List IN VARCHAR2,
312 X_Return_Status OUT NOCOPY VARCHAR2,
313 X_Msg_Count OUT NOCOPY NUMBER,
314 X_Msg_Data OUT NOCOPY VARCHAR2,
315 P_REPAIR_STATUS_Rec IN REPAIR_STATUS_REC_TYPE,
316 P_STATUS_UPD_CONTROL_REC IN STATUS_UPD_CONTROL_REC_TYPE,
317 X_OBJECT_VERSION_NUMBER OUT NOCOPY NUMBER) IS
318 --
319 l_api_name CONSTANT VARCHAR2(30) := 'Update_Ro_Status';
320 l_api_version_number CONSTANT NUMBER := 1.0;
321 --
322 BEGIN
323 --
324 -- Standard Start of API savepoint
325 SAVEPOINT UPDATE_RO_STATUS_PUB;
326 -- Standard call to check for call compatibility.
327 IF NOT FND_API.Compatible_API_Call(l_api_version_number,
328 p_api_version,
329 l_api_name,
330 G_PKG_NAME)
331 THEN
332 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
333 END IF;
334 -- Initialize message list if p_init_msg_list is set to TRUE.
335 IF FND_API.to_Boolean(p_init_msg_list)
336 THEN
337 FND_MSG_PUB.initialize;
338 END IF;
339 -- Initialize API return status to success
340 x_return_status := FND_API.G_RET_STS_SUCCESS;
341 --
342 -- API body
343 --
344 CSD_REPAIRS_PVT.UPDATE_RO_STATUS(P_Api_Version => p_api_version,
345 P_Commit => p_commit,
346 P_Init_Msg_List => p_init_msg_list,
347 P_Validation_Level => FND_API.G_VALID_LEVEL_FULL,
348 X_Return_Status => x_return_status,
349 X_Msg_Count => x_msg_count,
350 X_Msg_Data => x_msg_data,
351 P_REPAIR_STATUS_REC => p_repair_status_rec,
352 P_STATUS_CONTROL_REC => p_status_upd_control_rec,
353 X_OBJECT_VERSION_NUMBER => x_object_Version_number);
354 --
355 -- Check return status from the above procedure call
356 IF not (x_return_status = FND_API.G_RET_STS_SUCCESS)
357 then
358 ROLLBACK TO UPDATE_RO_STATUS_PUB;
359 return;
360 END IF;
361 --
362 -- End of API body.
363 --
364 -- Standard check for p_commit
365 IF FND_API.to_Boolean(p_commit)
366 THEN
367 COMMIT WORK;
368 END IF;
369 -- Standard call to get message count and if count is 1, get message info.
370 FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
371 p_data => x_msg_data);
372 --
373 EXCEPTION
374 WHEN Fnd_Api.G_EXC_ERROR THEN
375 x_return_status := Fnd_Api.G_RET_STS_ERROR;
376 ROLLBACK TO UPDATE_RO_STATUS_PUB;
377 Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
378 p_data => x_msg_data);
379 IF (Fnd_Log.level_error >= Fnd_Log.g_current_runtime_level)
380 THEN
381 Fnd_Log.STRING(Fnd_Log.level_error,
382 'csd.plsql.CSD_REPAIRS_PUB.Update_ro_status',
383 'EXC_ERROR[' || x_msg_data || ']');
384 END IF;
385
386 WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
387 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
388 ROLLBACK TO UPDATE_RO_STATUS_PUB;
389 Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
390 p_data => x_msg_data);
391 IF (Fnd_Log.level_exception >= Fnd_Log.g_current_runtime_level)
392 THEN
393 Fnd_Log.STRING(Fnd_Log.level_exception,
394 'csd.plsql.CSD_REPAIRS_PUB.Update_ro_status',
395 'EXC_UNEXP_ERROR[' || x_msg_data || ']');
396 END IF;
397 WHEN OTHERS THEN
398 x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
399 Rollback TO UPDATE_RO_STATUS_PUB;
400 IF Fnd_Msg_Pub.Check_Msg_Level(Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR)
401 THEN
402 Fnd_Msg_Pub.Add_Exc_Msg(G_PKG_NAME, l_api_name);
403 END IF;
404 Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
405 p_data => x_msg_data);
406 IF (Fnd_Log.level_exception >= Fnd_Log.g_current_runtime_level)
407 THEN
408 Fnd_Log.STRING(Fnd_Log.level_exception,
409 'csd.plsql.CSD_REPAIRS_PUB.Update_ro_status',
410 'SQL MEssage[' || SQLERRM || ']');
411 END IF;
412
413 End Update_ro_status;
414 -- R12 Development End
415 End CSD_REPAIRS_PUB;