[Home] [Help]
PACKAGE BODY: APPS.CSD_REPAIRS_GRP
Source
1 PACKAGE BODY CSD_REPAIRS_GRP as
2 /* $Header: csdgdrab.pls 120.7.12010000.2 2008/11/06 07:28:23 subhat ship $ */
3 --
4 -- Package name : CSD_REPAIRS_GRP
5 -- Purpose : This package contains routines called by Repairs form.
6 -- History :
7 -- Version Date Name Description
8 -- 115.0 12/28/99 pkdas Created.
9 -- 115.1 01/18/00 pkdas
10 -- 115.2 01/25/00 pkdas Assigned l_repair_line_id to out parameter in Insert_From_Form
11 -- 115.3 02/21/00 pkdas Changed the name of the procedure Insert_From_Form
12 -- to Create_Repairs and Update_From_Form to Update_Repairs.
13 -- Added p_REPAIR_LINE_ID and p_REPAIR_NUMBER as IN
14 -- parameters in the Create_Repairs procedure.
15 -- Added standard OUT parameter in the Create_Repairs
16 -- and Update_Repairs procedures. Added default values
17 -- to the parameters.
18 -- 115.4 02/29/00 pkdas Changed the procedure name
19 -- Create_Repairs -> Create_Repair_Order
20 -- Update_Repairs -> Update_Repair_Order
21 -- 115.5 05/10/00 pkdas Made changes to Update_Status procedure
22 -- 115.6 11/30/01 travi Added Auto_Process_Rma, Object_Version_Number and Repair_Mode cols
23 -- 115.6 01/04/02 travi Added Object_Version_Number to update_approval_status
24 -- and update_status procedure
25 -- 115.7 01/14/02 travi Added Item_Revision column
26 -- 115.8 02/06/02 travi Added Object_Version_Numbe column to validate_and_write call
27 -- 115.9 05/16/02 travi Added Update_Group_Approval_Status and Update_Group_Reject_Status procedures
28 -- 115.28 08/06/02 saupadhy Default input parameters for procedures were made consistent in package specifica
29 -- -tion and body. To fix bug 2497692
30 -- NOTE :
31 --
32 G_PKG_NAME CONSTANT VARCHAR2(30) := 'CSD_REPAIRS_GRP';
33 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csdgdrab.pls';
34 g_debug NUMBER := csd_gen_utility_pvt.g_debug_level;
35 --
36 PROCEDURE Create_Repair_Order(
37 p_Init_Msg_List IN VARCHAR2 := 'F',
38 p_Commit IN VARCHAR2 := 'F',
39 p_REPAIR_LINE_ID IN NUMBER,
40 p_REPAIR_NUMBER IN VARCHAR2,
41 p_INCIDENT_ID IN NUMBER,
42 p_INVENTORY_ITEM_ID IN NUMBER,
43 p_CUSTOMER_PRODUCT_ID IN NUMBER,
44 p_UNIT_OF_MEASURE IN VARCHAR2,
45 p_REPAIR_TYPE_ID IN NUMBER,
46 -- RESOURCE_GROUP Added by Vijay 10/28/2004
47 p_RESOURCE_GROUP IN NUMBER,
48 p_RESOURCE_ID IN NUMBER,
49 p_PROJECT_ID IN NUMBER,
50 p_TASK_ID IN NUMBER,
51 p_UNIT_NUMBER IN VARCHAR2,
52 p_CONTRACT_LINE_ID IN NUMBER,
53 p_AUTO_PROCESS_RMA IN VARCHAR2,
54 p_REPAIR_MODE IN VARCHAR2,
55 p_OBJECT_VERSION_NUMBER IN NUMBER,
56 p_ITEM_REVISION IN VARCHAR2,
57 p_INSTANCE_ID IN NUMBER,
58 p_STATUS IN VARCHAR2 := 'O',
59 p_STATUS_REASON_CODE IN VARCHAR2,
60 p_DATE_CLOSED IN DATE,
61 p_APPROVAL_REQUIRED_FLAG IN VARCHAR2,
62 p_APPROVAL_STATUS IN VARCHAR2,
63 p_SERIAL_NUMBER IN VARCHAR2,
64 p_PROMISE_DATE IN DATE,
65 p_ATTRIBUTE_CATEGORY IN VARCHAR2,
66 p_ATTRIBUTE1 IN VARCHAR2,
67 p_ATTRIBUTE2 IN VARCHAR2,
68 p_ATTRIBUTE3 IN VARCHAR2,
69 p_ATTRIBUTE4 IN VARCHAR2,
70 p_ATTRIBUTE5 IN VARCHAR2,
71 p_ATTRIBUTE6 IN VARCHAR2,
72 p_ATTRIBUTE7 IN VARCHAR2,
73 p_ATTRIBUTE8 IN VARCHAR2,
74 p_ATTRIBUTE9 IN VARCHAR2,
75 p_ATTRIBUTE10 IN VARCHAR2,
76 p_ATTRIBUTE11 IN VARCHAR2,
77 p_ATTRIBUTE12 IN VARCHAR2,
78 p_ATTRIBUTE13 IN VARCHAR2,
79 p_ATTRIBUTE14 IN VARCHAR2,
80 p_ATTRIBUTE15 IN VARCHAR2,
81 -- additional DFF attributes, subhat(bug#7497907).
82 P_ATTRIBUTE16 IN VARCHAR2 ,
83 P_ATTRIBUTE17 IN VARCHAR2 ,
84 P_ATTRIBUTE18 IN VARCHAR2 ,
85 P_ATTRIBUTE19 IN VARCHAR2 ,
86 P_ATTRIBUTE20 IN VARCHAR2 ,
87 P_ATTRIBUTE21 IN VARCHAR2 ,
88 P_ATTRIBUTE22 IN VARCHAR2 ,
89 P_ATTRIBUTE23 IN VARCHAR2 ,
90 P_ATTRIBUTE24 IN VARCHAR2 ,
91 P_ATTRIBUTE25 IN VARCHAR2 ,
92 P_ATTRIBUTE26 IN VARCHAR2 ,
93 P_ATTRIBUTE27 IN VARCHAR2 ,
94 P_ATTRIBUTE28 IN VARCHAR2 ,
95 P_ATTRIBUTE29 IN VARCHAR2 ,
96 P_ATTRIBUTE30 IN VARCHAR2 ,
97 p_QUANTITY IN NUMBER := 1,
98 p_QUANTITY_IN_WIP IN NUMBER,
99 p_QUANTITY_RCVD IN NUMBER,
100 p_QUANTITY_SHIPPED IN NUMBER,
101 p_CURRENCY_CODE IN VARCHAR2,
102 p_DEFAULT_PO_NUM IN VARCHAR2 := null,
103 p_REPAIR_GROUP_ID IN NUMBER,
104 p_RO_TXN_STATUS IN VARCHAR2,
105 p_ORDER_LINE_ID IN NUMBER,
106 p_ORIGINAL_SOURCE_REFERENCE IN VARCHAR2,
107 p_ORIGINAL_SOURCE_HEADER_ID IN NUMBER,
108 p_ORIGINAL_SOURCE_LINE_ID IN NUMBER,
109 p_PRICE_LIST_HEADER_ID IN NUMBER,
110 p_INVENTORY_ORG_ID IN NUMBER,
111 p_PROBLEM_DESCRIPTION IN VARCHAR2, -- swai: bug 4666344
112 p_RO_PRIORITY_CODE IN VARCHAR2, -- swai: R12
113 -- g_miss_date means default resolve_by_date during ro creation
114 -- null means do not default resolve_by_date during ro creation
115 p_RESOLVE_BY_DATE IN DATE, -- rfieldma, bug 5355051, defaulted to g_miss_date in spec
116 p_BULLETIN_CHECK_DATE IN DATE,-- := FND_API.G_MISS_DATE,
117 p_ESCALATION_CODE IN VARCHAR2, -- := FND_API.G_MISS_CHAR,
118 x_repair_line_id OUT NOCOPY NUMBER,
119 x_repair_number OUT NOCOPY VARCHAR2,
120 x_return_status OUT NOCOPY VARCHAR2,
121 x_msg_count OUT NOCOPY NUMBER,
122 x_msg_data OUT NOCOPY VARCHAR2
123 )
124 IS
125 --
126 l_api_name CONSTANT VARCHAR2(30) := 'Create_Repair_Order';
127 l_repln_rec csd_repairs_pub.repln_rec_type;
128 --
129 begin
130 --
131 -- Standard Start of API savepoint
132 SAVEPOINT CREATE_REPAIR_ORDER_GRP;
133 --
134 -- Initialize message list if p_init_msg_list is set to TRUE.
135 IF FND_API.to_Boolean(p_init_msg_list)
136 THEN
137 FND_MSG_PUB.initialize;
138 END IF;
139 -- Initialize API return status to success
140 x_return_status := FND_API.G_RET_STS_SUCCESS;
141 --
142 -- API body
143 --
144 if (g_debug) > 0 then
145 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Create_Repair_Order before CSD_REPAIRS_UTIL.Convert_to_Repln_Rec_Type');
146 end if;
147 CSD_REPAIRS_UTIL.Convert_to_Repln_Rec_Type
148 (p_repair_number => p_repair_number,
149 p_incident_id => p_incident_id,
150 p_inventory_item_id => p_inventory_item_id,
151 p_customer_product_id => p_customer_product_id,
152 p_unit_of_measure => p_unit_of_measure,
153 p_repair_type_id => p_repair_type_id,
154 -- RESOURCE_GROUP Added by Vijay 10/28/2004
155 p_resource_group => p_resource_group,
156 p_resource_id => p_resource_id,
157 p_project_id => p_project_id,
158 p_task_id => p_task_id,
159 p_unit_number => p_unit_number, -- rfieldma, prj integration
160 p_contract_line_id => p_contract_line_id,
161 p_auto_process_rma => p_auto_process_rma,
162 p_repair_mode => p_repair_mode,
163 p_object_version_number => p_object_version_number,
164 p_item_revision => p_item_revision,
165 p_instance_id => p_instance_id,
166 p_status => p_status,
167 p_status_reason_code => p_status_reason_code,
168 p_date_closed => p_date_closed,
169 p_approval_required_flag => p_approval_required_flag,
170 p_approval_status => p_approval_status,
171 p_serial_number => p_serial_number,
172 p_promise_date => p_promise_date,
173 p_attribute_category => p_attribute_category,
174 p_attribute1 => p_attribute1,
175 p_attribute2 => p_attribute2,
176 p_attribute3 => p_attribute3,
177 p_attribute4 => p_attribute4,
178 p_attribute5 => p_attribute5,
179 p_attribute6 => p_attribute6,
180 p_attribute7 => p_attribute7,
181 p_attribute8 => p_attribute8,
182 p_attribute9 => p_attribute9,
183 p_attribute10 => p_attribute10,
184 p_attribute11 => p_attribute11,
185 p_attribute12 => p_attribute12,
186 p_attribute13 => p_attribute13,
187 p_attribute14 => p_attribute14,
188 p_attribute15 => p_attribute15,
189 -- additional DFF attributes, subhat(bug#7497907)
190 p_attribute16 => p_attribute16,
191 p_attribute17 => p_attribute17,
192 p_attribute18 => p_attribute18,
193 p_attribute19 => p_attribute19,
194 p_attribute20 => p_attribute20,
195 p_attribute21 => p_attribute21,
196 p_attribute22 => p_attribute22,
197 p_attribute23 => p_attribute23,
198 p_attribute24 => p_attribute24,
199 p_attribute25 => p_attribute25,
200 p_attribute26 => p_attribute26,
201 p_attribute27 => p_attribute27,
202 p_attribute28 => p_attribute28,
203 p_attribute29 => p_attribute29,
204 p_attribute30 => p_attribute30,
205 p_quantity => p_quantity,
206 p_quantity_in_wip => p_quantity_in_wip,
207 p_quantity_rcvd => p_quantity_rcvd,
208 p_quantity_shipped => p_quantity_shipped,
209 p_currency_code => p_currency_code,
210 p_default_po_num => p_default_po_num,
211 p_repair_group_id => p_repair_group_id,
212 p_ro_txn_status => p_ro_txn_status,
213 p_order_line_id => p_order_line_id,
214 p_original_source_reference => p_original_source_reference,
215 p_original_source_header_id => p_original_source_header_id,
216 p_original_source_line_id => p_original_source_line_id,
217 p_price_list_header_id => p_price_list_header_id,
218 p_inventory_org_id => p_inventory_org_id,
219 p_problem_description => p_problem_description, -- swai: bug 4666344
220 p_ro_priority_code => p_ro_priority_code, -- swai: R12
221 p_resolve_by_date => p_resolve_by_date, -- rfieldma: 5355051
222 p_bulletin_check_date => p_bulletin_check_date,
223 p_escalation_code => p_escalation_code,
224 x_Repln_Rec => l_Repln_Rec);
225 --
226 if (g_debug > 0) then
227 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Create_Repair_Order before CSD_REPAIRS_PVT.Create_Repair_Order');
228 end if;
229 -- travi fix to create call from RO not to validate for Group_id
230 l_Repln_Rec.REPAIR_GROUP_ID := null;
231
232 CSD_REPAIRS_PVT.Create_Repair_Order
233 (p_API_version_number => 1.0,
234 p_init_msg_list => p_init_msg_list,
235 p_commit => p_commit,
236 p_validation_level => null,
237 p_repair_line_id => p_repair_line_id,
238 p_Repln_Rec => l_Repln_Rec,
239 x_repair_line_id => x_repair_line_id,
240 x_repair_number => x_repair_number,
241 x_return_status => x_return_status,
242 x_msg_count => x_msg_count,
243 x_msg_data => x_msg_data
244 );
245 --
246 -- Check return status from the above procedure call
247 IF not (x_return_status = FND_API.G_RET_STS_SUCCESS) then
248 ROLLBACK TO CREATE_REPAIR_ORDER_GRP;
249 return;
250 END IF;
251 --
252 -- End of API body.
253 --
254 -- Standard check for p_commit
255 IF FND_API.to_Boolean(p_commit)
256 THEN
257 COMMIT WORK;
258 END IF;
259 -- Standard call to get message count and if count is 1, get message info.
260 FND_MSG_PUB.Count_And_Get
261 (p_count => x_msg_count,
262 p_data => x_msg_data
263 );
264 --
265 EXCEPTION
266 WHEN FND_API.G_EXC_ERROR THEN
267 JTF_PLSQL_API.HANDLE_EXCEPTIONS
268 (P_API_NAME => L_API_NAME
269 ,P_PKG_NAME => G_PKG_NAME
270 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
271 ,P_PACKAGE_TYPE => '_GRP'
272 ,X_MSG_COUNT => X_MSG_COUNT
273 ,X_MSG_DATA => X_MSG_DATA
274 ,X_RETURN_STATUS => X_RETURN_STATUS);
275 -- RAISE;
276 --
277 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
278 JTF_PLSQL_API.HANDLE_EXCEPTIONS
279 (P_API_NAME => L_API_NAME
280 ,P_PKG_NAME => G_PKG_NAME
281 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
282 ,P_PACKAGE_TYPE => '_GRP'
283 ,X_MSG_COUNT => X_MSG_COUNT
284 ,X_MSG_DATA => X_MSG_DATA
285 ,X_RETURN_STATUS => X_RETURN_STATUS);
286 -- RAISE;
287 --
288 WHEN OTHERS THEN
289 JTF_PLSQL_API.HANDLE_EXCEPTIONS
290 (P_API_NAME => L_API_NAME
291 ,P_PKG_NAME => G_PKG_NAME
292 ,P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS
293 ,P_PACKAGE_TYPE => '_GRP'
294 ,X_MSG_COUNT => X_MSG_COUNT
295 ,X_MSG_DATA => X_MSG_DATA
296 ,X_RETURN_STATUS => X_RETURN_STATUS);
297 -- RAISE;
298 --
299 End Create_Repair_Order;
300
301 PROCEDURE Update_Repair_Order(
302 p_Init_Msg_List IN VARCHAR2 := 'F',
303 p_Commit IN VARCHAR2 := 'F',
304 p_REPAIR_LINE_ID IN NUMBER,
305 p_REPAIR_NUMBER IN VARCHAR2,
306 p_INCIDENT_ID IN NUMBER,
307 p_INVENTORY_ITEM_ID IN NUMBER,
308 p_CUSTOMER_PRODUCT_ID IN NUMBER,
309 p_UNIT_OF_MEASURE IN VARCHAR2,
310 p_REPAIR_TYPE_ID IN NUMBER,
311 -- RESOURCE_GROUP Added by Vijay 10/28/2004
312 p_RESOURCE_GROUP IN NUMBER,
313 p_RESOURCE_ID IN NUMBER,
314 p_PROJECT_ID IN NUMBER,
315 p_TASK_ID IN NUMBER,
316 p_UNIT_NUMBER IN VARCHAR2, -- rfieldma, prj integration
317 p_CONTRACT_LINE_ID IN NUMBER,
318 p_AUTO_PROCESS_RMA IN VARCHAR2,
319 p_REPAIR_MODE IN VARCHAR2,
320 p_OBJECT_VERSION_NUMBER IN NUMBER,
321 p_ITEM_REVISION IN VARCHAR2,
322 p_INSTANCE_ID IN NUMBER,
323 p_STATUS IN VARCHAR2,
324 p_STATUS_REASON_CODE IN VARCHAR2,
325 p_DATE_CLOSED IN DATE,
326 p_APPROVAL_REQUIRED_FLAG IN VARCHAR2,
327 p_APPROVAL_STATUS IN VARCHAR2,
328 p_SERIAL_NUMBER IN VARCHAR2,
329 p_PROMISE_DATE IN DATE,
330 p_ATTRIBUTE_CATEGORY IN VARCHAR2,
331 p_ATTRIBUTE1 IN VARCHAR2,
332 p_ATTRIBUTE2 IN VARCHAR2,
333 p_ATTRIBUTE3 IN VARCHAR2,
334 p_ATTRIBUTE4 IN VARCHAR2,
335 p_ATTRIBUTE5 IN VARCHAR2,
336 p_ATTRIBUTE6 IN VARCHAR2,
337 p_ATTRIBUTE7 IN VARCHAR2,
338 p_ATTRIBUTE8 IN VARCHAR2,
339 p_ATTRIBUTE9 IN VARCHAR2,
340 p_ATTRIBUTE10 IN VARCHAR2,
341 p_ATTRIBUTE11 IN VARCHAR2,
342 p_ATTRIBUTE12 IN VARCHAR2,
343 p_ATTRIBUTE13 IN VARCHAR2,
344 p_ATTRIBUTE14 IN VARCHAR2,
345 p_ATTRIBUTE15 IN VARCHAR2,
346 -- additional DFF attributes, subhat(bug#7497907).
347 P_ATTRIBUTE16 IN VARCHAR2 ,
348 P_ATTRIBUTE17 IN VARCHAR2 ,
349 P_ATTRIBUTE18 IN VARCHAR2 ,
350 P_ATTRIBUTE19 IN VARCHAR2 ,
351 P_ATTRIBUTE20 IN VARCHAR2 ,
352 P_ATTRIBUTE21 IN VARCHAR2 ,
353 P_ATTRIBUTE22 IN VARCHAR2 ,
354 P_ATTRIBUTE23 IN VARCHAR2 ,
355 P_ATTRIBUTE24 IN VARCHAR2 ,
356 P_ATTRIBUTE25 IN VARCHAR2 ,
357 P_ATTRIBUTE26 IN VARCHAR2 ,
358 P_ATTRIBUTE27 IN VARCHAR2 ,
359 P_ATTRIBUTE28 IN VARCHAR2 ,
360 P_ATTRIBUTE29 IN VARCHAR2 ,
361 P_ATTRIBUTE30 IN VARCHAR2 ,
362 p_QUANTITY IN NUMBER,
363 p_QUANTITY_IN_WIP IN NUMBER,
364 p_QUANTITY_RCVD IN NUMBER,
365 p_QUANTITY_SHIPPED IN NUMBER,
366 p_CURRENCY_CODE IN VARCHAR2,
367 p_DEFAULT_PO_NUM IN VARCHAR2 := null,
368 p_REPAIR_GROUP_ID IN NUMBER,
369 p_RO_TXN_STATUS IN VARCHAR2,
370 p_ORDER_LINE_ID IN NUMBER,
371 p_ORIGINAL_SOURCE_REFERENCE IN VARCHAR2,
372 p_ORIGINAL_SOURCE_HEADER_ID IN NUMBER,
373 p_ORIGINAL_SOURCE_LINE_ID IN NUMBER,
374 p_PRICE_LIST_HEADER_ID IN NUMBER,
375 p_PROBLEM_DESCRIPTION IN VARCHAR2, -- swai: bug 4666344
376 p_RO_PRIORITY_CODE IN VARCHAR2, -- swai: R12
377 -- g_miss_date means keep field in table handler
378 -- null means clear field in table handler
379 p_RESOLVE_BY_DATE IN DATE, -- rfieldma, bug 5355051, defaulted to g_miss_date in spec
380 p_BULLETIN_CHECK_DATE IN DATE, -- := FND_API.G_MISS_DATE,
381 p_ESCALATION_CODE IN VARCHAR2, -- := FND_API.G_MISS_CHAR,
382 x_return_status OUT NOCOPY VARCHAR2,
383 x_msg_count OUT NOCOPY NUMBER,
384 x_msg_data OUT NOCOPY VARCHAR2
385 )
386 IS
387 --
388 l_api_name CONSTANT VARCHAR2(30) := 'Update_Repair_Order';
389 l_repln_rec csd_repairs_pub.repln_rec_type;
390 --
391 begin
392 --
393 -- Standard Start of API savepoint
394 SAVEPOINT UPDATE_REPAIR_ORDER_GRP;
395 --
396 -- Initialize message list if p_init_msg_list is set to TRUE.
397 IF FND_API.to_Boolean( p_init_msg_list )
398 THEN
399 FND_MSG_PUB.initialize;
400 END IF;
401 -- Initialize API return status to success
402 x_return_status := FND_API.G_RET_STS_SUCCESS;
403 --
404 -- API body
405 --
406 if (g_debug > 0 ) then
407 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Repair_Order before CSD_REPAIRS_UTIL.Convert_to_Repln_Rec_Type');
408 end if;
409 CSD_REPAIRS_UTIL.Convert_to_Repln_Rec_Type
410 (p_repair_number => p_repair_number,
411 p_incident_id => p_incident_id,
412 p_inventory_item_id => p_inventory_item_id,
413 p_customer_product_id => p_customer_product_id,
414 p_unit_of_measure => p_unit_of_measure,
415 p_repair_type_id => p_repair_type_id,
416 p_resource_group => p_resource_group,
417 p_resource_id => p_resource_id,
418 p_project_id => p_project_id,
419 p_task_id => p_task_id,
420 p_unit_number => p_unit_number, -- rfieldma, prj integration
421 p_contract_line_id => p_contract_line_id,
422 p_auto_process_rma => p_auto_process_rma,
423 p_repair_mode => p_repair_mode,
424 p_object_version_number => p_object_version_number,
425 p_item_revision => p_item_revision,
426 p_instance_id => p_instance_id,
427 p_status => p_status,
428 p_status_reason_code => p_status_reason_code,
429 p_date_closed => p_date_closed,
430 p_approval_required_flag => p_approval_required_flag,
431 p_approval_status => p_approval_status,
432 p_serial_number => p_serial_number,
433 p_promise_date => p_promise_date,
434 p_attribute_category => p_attribute_category,
435 p_attribute1 => p_attribute1,
436 p_attribute2 => p_attribute2,
437 p_attribute3 => p_attribute3,
438 p_attribute4 => p_attribute4,
439 p_attribute5 => p_attribute5,
440 p_attribute6 => p_attribute6,
441 p_attribute7 => p_attribute7,
442 p_attribute8 => p_attribute8,
443 p_attribute9 => p_attribute9,
444 p_attribute10 => p_attribute10,
445 p_attribute11 => p_attribute11,
446 p_attribute12 => p_attribute12,
447 p_attribute13 => p_attribute13,
448 p_attribute14 => p_attribute14,
449 p_attribute15 => p_attribute15,
450 -- additional DFF attributes, subhat(bug#7497907)
451 p_attribute16 => p_attribute16,
452 p_attribute17 => p_attribute17,
453 p_attribute18 => p_attribute18,
454 p_attribute19 => p_attribute19,
455 p_attribute20 => p_attribute20,
456 p_attribute21 => p_attribute21,
457 p_attribute22 => p_attribute22,
458 p_attribute23 => p_attribute23,
459 p_attribute24 => p_attribute24,
460 p_attribute25 => p_attribute25,
461 p_attribute26 => p_attribute26,
462 p_attribute27 => p_attribute27,
463 p_attribute28 => p_attribute28,
464 p_attribute29 => p_attribute29,
465 p_attribute30 => p_attribute30,
466 p_quantity => p_quantity,
467 p_quantity_in_wip => p_quantity_in_wip,
468 p_quantity_rcvd => p_quantity_rcvd,
469 p_quantity_shipped => p_quantity_shipped,
470 p_currency_code => p_currency_code,
471 p_default_po_num => p_default_po_num,
472 p_repair_group_id => p_repair_group_id,
473 p_ro_txn_status => p_ro_txn_status,
474 p_order_line_id => p_order_line_id,
475 p_original_source_reference => p_original_source_reference,
476 p_original_source_header_id => p_original_source_header_id,
477 p_original_source_line_id => p_original_source_line_id,
478 p_price_list_header_id => p_price_list_header_id,
479 p_problem_description => p_problem_description, -- swai: bug 4666344
480 p_ro_priority_code => p_ro_priority_code, -- swai: R12
481 p_resolve_by_date => p_resolve_by_date, -- rfieldma: 5355051
482 p_bulletin_check_date => p_bulletin_check_date,
483 p_escalation_code => p_escalation_code,
484 x_Repln_Rec => l_Repln_Rec);
485 --
486 if (g_debug > 0) then
487 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Repair_Order before CSD_REPAIRS_PUB.Update_Repair_Order');
488 end if;
489 CSD_REPAIRS_PUB.Update_Repair_Order
490 (p_API_version_number => 1.0,
491 p_init_msg_list => p_init_msg_list,
492 p_commit => p_commit,
493 p_repair_line_id => p_repair_line_id,
494 p_Repln_Rec => l_Repln_Rec,
495 x_return_status => x_return_status,
496 x_msg_count => x_msg_count,
497 x_msg_data => x_msg_data
498 );
499 --
500 -- Check return status from the above procedure call
501 IF not (x_return_status = FND_API.G_RET_STS_SUCCESS) then
502 ROLLBACK TO UPDATE_REPAIR_ORDER_GRP;
503 return;
504 END IF;
505 --
506 -- End of API body.
507 --
508 -- Standard check for p_commit
509 IF FND_API.to_Boolean( p_commit )
510 THEN
511 COMMIT WORK;
512 END IF;
513 -- Standard call to get message count and if count is 1, get message info.
514 FND_MSG_PUB.Count_And_Get
515 (p_count => x_msg_count,
516 p_data => x_msg_data
517 );
518 --
519 EXCEPTION
520 WHEN FND_API.G_EXC_ERROR THEN
521 JTF_PLSQL_API.HANDLE_EXCEPTIONS
522 (P_API_NAME => L_API_NAME
523 ,P_PKG_NAME => G_PKG_NAME
524 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
525 ,P_PACKAGE_TYPE => '_GRP'
526 ,X_MSG_COUNT => X_MSG_COUNT
527 ,X_MSG_DATA => X_MSG_DATA
528 ,X_RETURN_STATUS => X_RETURN_STATUS);
529 -- RAISE;
530 --
531 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
532 JTF_PLSQL_API.HANDLE_EXCEPTIONS
533 (P_API_NAME => L_API_NAME
534 ,P_PKG_NAME => G_PKG_NAME
535 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
536 ,P_PACKAGE_TYPE => '_GRP'
537 ,X_MSG_COUNT => X_MSG_COUNT
538 ,X_MSG_DATA => X_MSG_DATA
539 ,X_RETURN_STATUS => X_RETURN_STATUS);
540 -- RAISE;
541 --
542 WHEN OTHERS THEN
543 JTF_PLSQL_API.HANDLE_EXCEPTIONS
544 (P_API_NAME => L_API_NAME
545 ,P_PKG_NAME => G_PKG_NAME
546 ,P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS
547 ,P_PACKAGE_TYPE => '_GRP'
548 ,X_MSG_COUNT => X_MSG_COUNT
549 ,X_MSG_DATA => X_MSG_DATA
550 ,X_RETURN_STATUS => X_RETURN_STATUS);
551 -- RAISE;
552 --
553 End Update_Repair_Order;
554
555 -- travi 01/04/02 change
556 Procedure Update_Approval_Status(
557 p_repair_line_id IN NUMBER,
558 p_new_approval_status IN VARCHAR2,
559 p_old_approval_status IN VARCHAR2,
560 p_quantity IN NUMBER,
561 p_org_contact_id IN NUMBER,
562 p_reason IN VARCHAR2,
563 p_object_version_number IN OUT NOCOPY NUMBER,
564 x_return_status OUT NOCOPY VARCHAR2,
565 x_msg_count OUT NOCOPY NUMBER,
566 x_msg_data OUT NOCOPY VARCHAR2
567 )
568 IS
569 -- CONSTANTS --
570 lc_debug_level CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
571 lc_stat_level CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
572 lc_proc_level CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
573 lc_event_level CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
574 lc_excep_level CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
575 lc_error_level CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
576 lc_unexp_level CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
577 lc_mod_name CONSTANT VARCHAR2(100) := 'csd.plsql.csd_repairs_grp.update_approval_status';
578 --
579 l_api_name CONSTANT VARCHAR2(30) := 'Update_Approval_Status';
580 l_repln_rec CSD_REPAIRS_PUB.repln_rec_type;
581 l_repair_history_id number;
582 l_event_code varchar2(30);
583 -- swai 11.5.10 new variables
584 l_return_status varchar2(1);
585 l_estimate_total number;
586 -- end swai 11.5.10
587
588
589 --
590 BEGIN
591 --
592 -- Standard Start of API savepoint
593 SAVEPOINT UPDATE_APPROVAL_STATUS_GRP;
594 --
595 -- Initialize API return status to success
596 x_return_status := FND_API.G_RET_STS_SUCCESS;
597 --
598 -- API Body
599 --
600 if (lc_proc_level >= lc_debug_level) then
601 FND_LOG.STRING(lc_proc_level, lc_mod_name,
602 'Calling CSD_REPAIRS_UTIL.Convert_to_Repln_Rec_Type');
603 end if;
604 -- travi 01/04/02 change
605 CSD_REPAIRS_UTIL.Convert_to_Repln_Rec_Type
606 (p_approval_status => p_new_approval_status,
607 p_object_version_number => p_object_version_number,
608 x_repln_rec => l_repln_rec
609 );
610 --
611 if (lc_proc_level >= lc_debug_level) then
612 FND_LOG.STRING(lc_proc_level, lc_mod_name,
613 'Returned from CSD_REPAIRS_UTIL.Convert_to_Repln_Rec_Type');
614 end if;
615 --
616 -- swai 11.5.10
617 -- update event code will always be ESU if status is changed
618 --
619 if nvl(p_new_approval_status, 'x') <> nvl(p_old_approval_status, 'x') then
620 l_event_code := 'ESU';
621 end if;
622 -- if p_new_approval_status = 'A' then
623 -- l_event_code := 'ESU';
624 -- elsif p_new_approval_status = 'R' then
625 -- l_event_code := 'R';
626 -- end if;
627 if (lc_stat_level >= lc_debug_level) then
628 FND_LOG.STRING(lc_stat_level, lc_mod_name,
629 'p_new_approval_status = ' || p_new_approval_status);
630 FND_LOG.STRING(lc_stat_level, lc_mod_name,
631 'p_old_approval_status = ' || p_old_approval_status);
632 FND_LOG.STRING(lc_stat_level, lc_mod_name,
633 'l_event_code = ' || l_event_code);
634 end if;
635
636 --
637 if (lc_proc_level >= lc_debug_level) then
638 FND_LOG.STRING(lc_proc_level, lc_mod_name,
639 'Calling CSD_REPAIRS_PVT.Update_Repair_Order ');
640 end if;
641 CSD_REPAIRS_PVT.Update_Repair_Order
642 (p_API_version_number => 1.0,
643 p_init_msg_list => FND_API.G_TRUE,
644 p_commit => FND_API.G_FALSE,
645 p_validation_level => null,
646 p_repair_line_id => p_repair_line_id,
647 p_Repln_Rec => l_Repln_Rec,
648 x_return_status => x_return_status,
649 x_msg_count => x_msg_count,
650 x_msg_data => x_msg_data
651 );
652 --
653 if (lc_proc_level >= lc_debug_level) then
654 FND_LOG.STRING(lc_proc_level, lc_mod_name,
655 'Returned from CSD_REPAIRS_PVT.Update_Repair_Order. x_return_status='|| x_return_status);
656 end if;
657
658 -- Check return status from the above procedure call
659 IF (x_return_status <> 'S') then
660 ROLLBACK TO UPDATE_APPROVAL_STATUS_GRP;
661 return;
662 ELSIF (x_return_status = 'S') then
663 p_object_version_number := l_Repln_Rec.object_version_number;
664 END IF;
665 --
666 if (g_debug > 0) then
667 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Approval_Status before api CSD_TO_FORM_REPAIR_HISTORY.Validate_And_Write call');
668 end if;
669
670 -- swai 11.5.10
671 -- check for event code before:
672 -- (1) getting estimate total (new for 11.5.10)
673 -- (2) logging event (modified for 11.5.10)
674 --
675 if (l_event_code is not null) then
676
677 if (lc_proc_level >= lc_debug_level) then
678 FND_LOG.STRING(lc_proc_level, lc_mod_name,
679 'Calling CSD_REPAIR_ESTIMATE_PVT.get_total_estimated_charge ');
680 end if;
681 -- get estimate_total sum of charge from csd_repair_estimates_v
682 CSD_REPAIR_ESTIMATE_PVT.get_total_estimated_charge (
683 p_repair_line_id => p_repair_line_id,
684 x_estimated_charge => l_estimate_total,
685 x_return_status => l_return_status
686 );
687 IF (x_return_status <> 'S') then
688 l_estimate_total := null;
689 END IF;
690
691
692 if (lc_proc_level >= lc_debug_level) then
693 FND_LOG.STRING(lc_proc_level, lc_mod_name,
694 'Returned from CSD_REPAIR_ESTIMATE_PVT.get_total_estimated_charge. l_estimate_total=' || l_estimate_total);
695 FND_LOG.STRING(lc_proc_level, lc_mod_name,
696 'Calling CSD_TO_FORM_REPAIR_HISTORY.Validate_And_Write ');
697 end if;
698 CSD_TO_FORM_REPAIR_HISTORY.Validate_And_Write
699 (p_Api_Version_Number => 1.0 ,
700 p_init_msg_list => 'F',
701 p_commit => 'F',
702 p_validation_level => NULL,
703 p_action_code => 0,
704 px_REPAIR_HISTORY_ID => l_repair_history_id,
705 p_OBJECT_VERSION_NUMBER => null, -- travi ovn validation
706 p_REQUEST_ID => null,
707 p_PROGRAM_ID => null,
708 p_PROGRAM_APPLICATION_ID => null,
709 p_PROGRAM_UPDATE_DATE => null,
710 p_CREATED_BY => FND_GLOBAL.USER_ID,
711 p_CREATION_DATE => sysdate,
712 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
713 p_LAST_UPDATE_DATE => sysdate,
714 p_repair_line_id => p_repair_line_id,
715 p_EVENT_CODE => l_event_code,
716 p_EVENT_DATE => sysdate,
717 p_QUANTITY => p_quantity,
718 p_PARAMN1 => p_org_contact_id,
719 p_PARAMN2 => l_estimate_total,
720 p_PARAMN3 => null,
721 p_PARAMN4 => null,
722 p_PARAMN5 => null,
723 p_PARAMN6 => null,
724 p_PARAMN7 => null,
725 p_PARAMN8 => null,
726 p_PARAMN9 => null,
727 p_PARAMN10 => FND_GLOBAL.USER_ID,
728 p_PARAMC1 => p_new_approval_status,
729 p_PARAMC2 => p_old_approval_status,
730 p_PARAMC3 => p_reason,
731 p_PARAMC4 => null,
732 p_PARAMC5 => null ,
733 p_PARAMC6 => null,
734 p_PARAMC7 => null,
735 p_PARAMC8 => null,
736 p_PARAMC9 => null,
737 p_PARAMC10 => null,
738 p_PARAMD1 => null,
739 p_PARAMD2 => null,
740 p_PARAMD3 => null,
741 p_PARAMD4 => null,
742 p_PARAMD5 => null,
743 p_PARAMD6 => null,
744 p_PARAMD7 => null,
745 p_PARAMD8 => null,
746 p_PARAMD9 => null,
747 p_PARAMD10 => null,
748 p_ATTRIBUTE_CATEGORY => null,
749 p_ATTRIBUTE1 => null,
750 p_ATTRIBUTE2 => null,
751 p_ATTRIBUTE3 => null,
752 p_ATTRIBUTE4 => null,
753 p_ATTRIBUTE5 => null,
754 p_ATTRIBUTE6 => null,
755 p_ATTRIBUTE7 => null,
756 p_ATTRIBUTE8 => null,
757 p_ATTRIBUTE9 => null,
758 p_ATTRIBUTE10 => null,
759 p_ATTRIBUTE11 => null,
760 p_ATTRIBUTE12 =>null,
761 p_ATTRIBUTE13 => null,
762 p_ATTRIBUTE14 => null,
763 p_ATTRIBUTE15 => null,
764 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
765 X_Return_Status => x_return_status,
766 X_Msg_Count => x_msg_count,
767 X_Msg_Data => x_msg_data
768 );
769 end if;
770 --
771 if (lc_proc_level >= lc_debug_level) then
772 FND_LOG.STRING(lc_proc_level, lc_mod_name,
773 'Returned from CSD_TO_FORM_REPAIR_HISTORY.Validate_And_Write. x_return_status='||x_return_status);
774 end if;
775 -- Check return status from the above procedure call
776 IF not (x_return_status = FND_API.G_RET_STS_SUCCESS) then
777 ROLLBACK TO UPDATE_APPROVAL_STATUS_GRP;
778 return;
779 END IF;
780 --
781 -- End of API body.
782 --
783 -- travi commit;
784 --
785 -- Standard call to get message count and if count is 1, get message info.
786 FND_MSG_PUB.Count_And_Get
787 (p_count => x_msg_count,
788 p_data => x_msg_data
789 );
790 --
791 EXCEPTION
792 WHEN FND_API.G_EXC_ERROR THEN
793 JTF_PLSQL_API.HANDLE_EXCEPTIONS
794 (P_API_NAME => L_API_NAME
795 ,P_PKG_NAME => G_PKG_NAME
796 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
797 ,P_PACKAGE_TYPE => '_GRP'
798 ,X_MSG_COUNT => X_MSG_COUNT
799 ,X_MSG_DATA => X_MSG_DATA
800 ,X_RETURN_STATUS => X_RETURN_STATUS);
801 -- RAISE;
802 --
803 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
804 JTF_PLSQL_API.HANDLE_EXCEPTIONS
805 (P_API_NAME => L_API_NAME
806 ,P_PKG_NAME => G_PKG_NAME
807 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
808 ,P_PACKAGE_TYPE => '_GRP'
809 ,X_MSG_COUNT => X_MSG_COUNT
810 ,X_MSG_DATA => X_MSG_DATA
811 ,X_RETURN_STATUS => X_RETURN_STATUS);
812 -- RAISE;
813 --
814 WHEN OTHERS THEN
815 JTF_PLSQL_API.HANDLE_EXCEPTIONS
816 (P_API_NAME => L_API_NAME
817 ,P_PKG_NAME => G_PKG_NAME
818 ,P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS
819 ,P_PACKAGE_TYPE => '_GRP'
820 ,X_MSG_COUNT => X_MSG_COUNT
821 ,X_MSG_DATA => X_MSG_DATA
822 ,X_RETURN_STATUS => X_RETURN_STATUS);
823 -- RAISE;
824 --
825 END Update_Approval_Status;
826
827 Procedure Update_Status(
828 p_repair_line_id IN NUMBER,
829 p_new_status IN VARCHAR2,
830 p_old_status IN VARCHAR2,
831 p_quantity IN NUMBER,
832 p_reason IN VARCHAR2,
833 p_status_reason_code IN VARCHAR2,
834 p_object_version_number IN NUMBER,
835 x_return_status OUT NOCOPY VARCHAR2,
836 x_msg_count OUT NOCOPY NUMBER,
837 x_msg_data OUT NOCOPY VARCHAR2
838 )
839 IS
840 --
841 l_api_name CONSTANT VARCHAR2(30) := 'Update_Status';
842 l_repln_rec CSD_REPAIRS_PUB.repln_rec_type;
843 l_repair_history_id number;
844
845 --
846 BEGIN
847 --
848 -- Standard Start of API savepoint
849 SAVEPOINT UPDATE_STATUS_GRP;
850 --
851 -- Initialize API return status to success
852 x_return_status := FND_API.G_RET_STS_SUCCESS;
853 --
854 -- API Body
855 --
856 if p_new_status = p_old_status then
857
858 -- old return;
859 -- travi 010902 new
860 CSD_REPAIRS_UTIL.Convert_to_Repln_Rec_Type
861 (p_date_closed => sysdate,
862 p_status => p_new_status,
863 p_status_reason_code => p_status_reason_code,
864 p_object_version_number => p_object_version_number,
865 x_repln_rec => l_repln_rec
866 );
867
868 end if;
869 if p_new_status = 'C' then
870
871 CSD_REPAIRS_UTIL.Convert_to_Repln_Rec_Type
872 (p_date_closed => sysdate,
873 p_status => p_new_status,
874 p_status_reason_code => p_status_reason_code,
875 p_object_version_number => p_object_version_number,
876 x_repln_rec => l_repln_rec
877 );
878
879 elsif p_old_status = 'C' then
880
881 CSD_REPAIRS_UTIL.Convert_to_Repln_Rec_Type
882 (p_date_closed => null,
883 p_status => p_new_status,
884 p_status_reason_code => p_status_reason_code,
885 p_object_version_number => p_object_version_number,
886 x_repln_rec => l_repln_rec
887 );
888
889 else
890
891 CSD_REPAIRS_UTIL.Convert_to_Repln_Rec_Type
892 (p_status => p_new_status,
893 p_status_reason_code => p_status_reason_code,
894 p_object_version_number => p_object_version_number,
895 x_repln_rec => l_repln_rec
896 );
897
898 end if;
899 --
900 if (g_debug > 0) then
901 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Status before CSD_REPAIRS_PVT.Update_Repair_Order');
902 end if;
903 CSD_REPAIRS_PVT.Update_Repair_Order
904 (p_API_version_number => 1.0,
905 p_init_msg_list => FND_API.G_TRUE,
906 p_commit => FND_API.G_FALSE,
907 p_validation_level => null,
908 p_repair_line_id => p_repair_line_id,
909 p_Repln_Rec => l_Repln_Rec,
910 x_return_status => x_return_status,
911 x_msg_count => x_msg_count,
912 x_msg_data => x_msg_data
913 );
914 if (g_debug > 0) then
915 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Status after CSD_REPAIRS_PVT.Update_Repair_Order status : '||x_return_status);
916 end if;
917 --
918 -- Check return status from the above procedure call
919 IF not (x_return_status = FND_API.G_RET_STS_SUCCESS) then
920 ROLLBACK TO UPDATE_STATUS_GRP;
921 return;
922 END IF;
923 --
924 /*Fixed for bug#3232547 sangigup
925 Condition "if p_new_status <> p_old_status then" has been removed
926 to log the activity for changes in repair order status reason.
927 */
928 -- travi 010902 change added if cond
929 --if p_new_status <> p_old_status then
930 if (g_debug > 0) then
931 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Status before CSD_TO_FORM_REPAIR_HISTORY.Validate_And_Write');
932 end if;
933
934 CSD_TO_FORM_REPAIR_HISTORY.Validate_And_Write
935 (p_Api_Version_Number => 1.0 ,
936 p_init_msg_list => 'F',
937 p_commit => 'F',
938 p_validation_level => NULL,
939 p_action_code => 0,
940 px_REPAIR_HISTORY_ID => l_repair_history_id,
941 p_OBJECT_VERSION_NUMBER => null, -- travi ovn validation
942 p_REQUEST_ID => null,
943 p_PROGRAM_ID => null,
944 p_PROGRAM_APPLICATION_ID => null,
945 p_PROGRAM_UPDATE_DATE => null,
946 p_CREATED_BY => FND_GLOBAL.USER_ID,
947 p_CREATION_DATE => sysdate,
948 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
949 p_LAST_UPDATE_DATE => sysdate,
950 p_repair_line_id => p_repair_line_id,
951 p_EVENT_CODE => 'SC',
952 p_EVENT_DATE => sysdate,
953 p_QUANTITY => p_quantity,
954 p_PARAMN1 => null,
955 p_PARAMN2 => null,
956 p_PARAMN3 => null,
957 p_PARAMN4 => null,
958 p_PARAMN5 => null,
959 p_PARAMN6 => null,
960 p_PARAMN7 => null,
961 p_PARAMN8 => null,
962 p_PARAMN9 => null,
963 p_PARAMN10 => FND_GLOBAL.USER_ID,
964 p_PARAMC1 => p_new_status,
965 p_PARAMC2 => p_old_status,
966 p_PARAMC3 => p_reason,
967 p_PARAMC4 => null,
968 p_PARAMC5 => null,
969 p_PARAMC6 => null,
970 p_PARAMC7 => null,
971 p_PARAMC8 => null,
972 p_PARAMC9 => null,
973 p_PARAMC10 => null,
974 p_PARAMD1 => null,
975 p_PARAMD2 => null,
976 p_PARAMD3 => null,
977 p_PARAMD4 => null,
978 p_PARAMD5 => null,
979 p_PARAMD6 => null,
980 p_PARAMD7 => null,
981 p_PARAMD8 => null,
982 p_PARAMD9 => null,
983 p_PARAMD10 => null,
984 p_ATTRIBUTE_CATEGORY => null,
985 p_ATTRIBUTE1 => null,
986 p_ATTRIBUTE2 => null,
987 p_ATTRIBUTE3 => null,
988 p_ATTRIBUTE4 => null,
989 p_ATTRIBUTE5 => null,
990 p_ATTRIBUTE6 => null,
991 p_ATTRIBUTE7 => null,
992 p_ATTRIBUTE8 => null,
993 p_ATTRIBUTE9 => null,
994 p_ATTRIBUTE10 => null,
995 p_ATTRIBUTE11 => null,
996 p_ATTRIBUTE12 =>null,
997 p_ATTRIBUTE13 => null,
998 p_ATTRIBUTE14 => null,
999 p_ATTRIBUTE15 => null,
1000 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
1001 X_Return_Status => x_return_status,
1002 X_Msg_Count => x_msg_count,
1003 X_Msg_Data => x_msg_data
1004 );
1005 if (g_debug > 0) then
1006 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Status before CSD_TO_FORM_REPAIR_HISTORY.Validate_And_Write status : '||x_return_status);
1007 end if;
1008 --end if; -- only for changed status codes sangigup 3232547
1009 --
1010 -- Check return status from the above procedure call
1011 IF not (x_return_status = FND_API.G_RET_STS_SUCCESS) then
1012 ROLLBACK TO UPDATE_STATUS_GRP;
1013 return;
1014 END IF;
1015 --
1016 -- travi commit;
1017 --
1018 -- Standard call to get message count and if count is 1, get message info.
1019 FND_MSG_PUB.Count_And_Get
1020 (p_count => x_msg_count,
1021 p_data => x_msg_data
1022 );
1023 --
1024 EXCEPTION
1025 WHEN FND_API.G_EXC_ERROR THEN
1026 JTF_PLSQL_API.HANDLE_EXCEPTIONS
1027 (P_API_NAME => L_API_NAME
1028 ,P_PKG_NAME => G_PKG_NAME
1029 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
1030 ,P_PACKAGE_TYPE => '_GRP'
1031 ,X_MSG_COUNT => X_MSG_COUNT
1032 ,X_MSG_DATA => X_MSG_DATA
1033 ,X_RETURN_STATUS => X_RETURN_STATUS);
1034 -- RAISE;
1035 --
1036 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1037 JTF_PLSQL_API.HANDLE_EXCEPTIONS
1038 (P_API_NAME => L_API_NAME
1039 ,P_PKG_NAME => G_PKG_NAME
1040 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
1041 ,P_PACKAGE_TYPE => '_GRP'
1042 ,X_MSG_COUNT => X_MSG_COUNT
1043 ,X_MSG_DATA => X_MSG_DATA
1044 ,X_RETURN_STATUS => X_RETURN_STATUS);
1045 -- RAISE;
1046 --
1047 WHEN OTHERS THEN
1048 JTF_PLSQL_API.HANDLE_EXCEPTIONS
1049 (P_API_NAME => L_API_NAME
1050 ,P_PKG_NAME => G_PKG_NAME
1051 ,P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS
1052 ,P_PACKAGE_TYPE => '_GRP'
1053 ,X_MSG_COUNT => X_MSG_COUNT
1054 ,X_MSG_DATA => X_MSG_DATA
1055 ,X_RETURN_STATUS => X_RETURN_STATUS);
1056 -- RAISE;
1057 --
1058 END Update_Status;
1059
1060 -- travi 051002 code
1061 Procedure Update_Group_Approval_Status(
1062 p_api_version IN NUMBER,
1063 p_commit IN VARCHAR2 := fnd_api.g_false,
1064 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1065 p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1066 p_repair_group_id IN NUMBER,
1067 p_object_version_number IN OUT NOCOPY NUMBER,
1068 x_return_status OUT NOCOPY VARCHAR2,
1069 x_msg_count OUT NOCOPY NUMBER,
1070 x_msg_data OUT NOCOPY VARCHAR2
1071 )
1072 IS
1073 --
1074 l_api_name CONSTANT VARCHAR2(30) := 'Update_Group_Approval_Status';
1075 l_api_version CONSTANT NUMBER := 1.0;
1076 l_msg_count NUMBER;
1077 l_msg_data VARCHAR2(100);
1078 l_msg_index NUMBER;
1079 l_repair_group_id NUMBER;
1080 l_count NUMBER;
1081 l_tot_approved NUMBER;
1082 l_tot_no_approval NUMBER;
1083 l_tot_rejected NUMBER;
1084
1085 l_repair_history_id NUMBER;
1086 l_repair_line_id NUMBER;
1087 l_rep_ovn NUMBER;
1088 l_rep_quantity NUMBER;
1089 l_repair_estimate_id NUMBER;
1090 l_est_ovn NUMBER;
1091 l_group_quantity NUMBER;
1092 l_group_ovn NUMBER;
1093
1094 l_approval_status VARCHAR2(1);
1095 l_rep_approval_status VARCHAR2(30);
1096 l_estimate_status VARCHAR2(30);
1097 l_event_code VARCHAR2(30);
1098
1099 l_rep_ord_rec CSD_REPAIRS_PUB.REPLN_REC_TYPE;
1100 l_rep_est_rec CSD_REPAIR_ESTIMATE_PVT.REPAIR_ESTIMATE_REC;
1101 l_rep_group_rec CSD_REPAIR_GROUPS_PVT.REPAIR_ORDER_GROUP_REC;
1102
1103 Cursor c_repairs_for_approval ( p_repair_group_id number) is
1104 Select rep.repair_line_id
1105 , rep.approval_status
1106 , rep.quantity
1107 , rep.object_version_number rep_ovn
1108 , est.repair_estimate_id
1109 , est.object_version_number est_ovn
1110 from csd_repairs rep
1111 , csd_repair_estimate est
1112 where rep.repair_group_id = p_repair_group_id
1113 and rep.repair_line_id = est.repair_line_id
1114 and est.estimate_status = 'BID';
1115
1116 --
1117 BEGIN
1118 --
1119 -----------------------------------
1120 -- Standard Start of API savepoint
1121 -----------------------------------
1122 SAVEPOINT UPDATE_GRP_APPV_STATUS;
1123
1124 -----------------------------------------------------
1125 -- Standard call to check for call compatibility.
1126 -----------------------------------------------------
1127 IF NOT FND_API.Compatible_API_Call (l_api_version,
1128 p_api_version,
1129 l_api_name ,
1130 G_PKG_NAME)
1131 THEN
1132 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1133 END IF;
1134
1135 ---------------------------------------------------------------
1136 -- Initialize message list if p_init_msg_list is set to TRUE.
1137 ---------------------------------------------------------------
1138 IF FND_API.to_Boolean(p_init_msg_list)
1139 THEN
1140 FND_MSG_PUB.initialize;
1141 END IF;
1142
1143 --------------------------------------------
1144 -- Initialize API return status to success
1145 --------------------------------------------
1146 x_return_status := FND_API.G_RET_STS_SUCCESS;
1147
1148 --------------------
1149 -- Api body starts
1150 --------------------
1151 csd_gen_utility_pvt.dump_api_info
1152 ( p_pkg_name => G_PKG_NAME,
1153 p_api_name => l_api_name );
1154
1155 ---------------------------------
1156 -- Check the required parameter
1157 ---------------------------------
1158 if (g_debug > 0) then
1159 csd_gen_utility_pvt.ADD('Check reqd parameter: Repair Group Id ');
1160 end if;
1161 CSD_PROCESS_UTIL.Check_Reqd_Param
1162 ( p_param_value => p_repair_group_id,
1163 p_param_name => 'REPAIR_GROUP_ID',
1164 p_api_name => l_api_name);
1165
1166 ----------------------------------
1167 -- Validate the Repair Group Id
1168 ----------------------------------
1169 if (g_debug > 0) then
1170 csd_gen_utility_pvt.ADD('Repair Group Id');
1171 end if;
1172 IF NOT( CSD_PROCESS_UTIL.Validate_repair_group_id
1173 ( p_repair_group_id => p_repair_group_id )) THEN
1174 RAISE FND_API.G_EXC_ERROR;
1175 END IF;
1176
1177
1178 -- get all repair lines having estimates with status as BID for the given Repair Group
1179 FOR r1 in c_repairs_for_approval (p_repair_group_id)
1180
1181 LOOP
1182
1183 -- initialize
1184 l_repair_line_id := null;
1185
1186 l_repair_line_id := r1.repair_line_id;
1187 l_rep_approval_status := r1.approval_status;
1188 l_rep_quantity := r1.quantity;
1189 l_rep_ovn := r1.rep_ovn;
1190 l_repair_estimate_id := r1.repair_estimate_id;
1191 l_est_ovn := r1.est_ovn;
1192
1193 if ( l_repair_line_id is not null ) then
1194
1195 l_approval_status := 'A';
1196 l_estimate_status := 'ACCEPTED';
1197 l_event_code := 'A';
1198
1199 ----------------------------------
1200 -- API Body
1201 ----------------------------------
1202 if (g_debug > 0) then
1203 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Group_Approval_Status convert repairs rec call');
1204 end if;
1205 CSD_REPAIRS_UTIL.Convert_to_Repln_Rec_Type
1206 (p_approval_status => l_approval_status,
1207 p_object_version_number => l_rep_ovn,
1208 x_repln_rec => l_rep_ord_rec
1209 );
1210 if (g_debug > 0) then
1211 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Group_Approval_Status Update repairs call');
1212 end if;
1213 CSD_REPAIRS_PVT.Update_Repair_Order
1214 (p_API_version_number => 1.0,
1215 p_init_msg_list => FND_API.G_TRUE,
1216 p_commit => FND_API.G_FALSE,
1217 p_validation_level => null,
1218 p_repair_line_id => l_repair_line_id,
1219 p_Repln_Rec => l_rep_ord_rec,
1220 x_return_status => x_return_status,
1221 x_msg_count => x_msg_count,
1222 x_msg_data => x_msg_data
1223 );
1224
1225 if (g_debug > 0) then
1226 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Group_Approval_Status Update_Repair_Order :'||x_return_status);
1227 end if;
1228 -- Check return status from the update RO call
1229 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) then
1230 if (g_debug > 0) then
1231 csd_gen_utility_pvt.ADD('CSD_REPAIRS_PVT.Update_Repair_Order failed ');
1232 end if;
1233 RAISE FND_API.G_EXC_ERROR;
1234 --ROLLBACK TO UPDATE_GRP_APPV_STATUS;
1235 --return;
1236 ELSIF (x_return_status = FND_API.G_RET_STS_SUCCESS) then
1237 if (g_debug > 0) then
1238 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Group_Approval_Status Update RO hist call');
1239 end if;
1240 CSD_TO_FORM_REPAIR_HISTORY.Validate_And_Write
1241 (p_Api_Version_Number => 1.0 ,
1242 p_init_msg_list => 'F',
1243 p_commit => 'F',
1244 p_validation_level => NULL,
1245 p_action_code => 0,
1246 px_REPAIR_HISTORY_ID => l_repair_history_id,
1247 p_OBJECT_VERSION_NUMBER => null,
1248 p_REQUEST_ID => null,
1249 p_PROGRAM_ID => null,
1250 p_PROGRAM_APPLICATION_ID => null,
1251 p_PROGRAM_UPDATE_DATE => null,
1252 p_CREATED_BY => FND_GLOBAL.USER_ID,
1253 p_CREATION_DATE => sysdate,
1254 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
1255 p_LAST_UPDATE_DATE => sysdate,
1256 p_repair_line_id => l_repair_line_id,
1257 p_EVENT_CODE => l_event_code,
1258 p_EVENT_DATE => sysdate,
1259 p_QUANTITY => l_rep_quantity,
1260 p_PARAMN1 => null,
1261 p_PARAMN2 => null,
1262 p_PARAMN3 => null,
1263 p_PARAMN4 => null,
1264 p_PARAMN5 => null,
1265 p_PARAMN6 => null,
1266 p_PARAMN7 => null,
1267 p_PARAMN8 => null,
1268 p_PARAMN9 => null,
1269 p_PARAMN10 => FND_GLOBAL.USER_ID,
1270 p_PARAMC1 => l_approval_status, -- new status
1271 p_PARAMC2 => l_rep_approval_status, -- old status
1272 p_PARAMC3 => 'Repair Group Estimate Approval', -- travi new
1273 p_PARAMC4 => null,
1274 p_PARAMC5 => null ,
1275 p_PARAMC6 => null,
1276 p_PARAMC7 => null,
1277 p_PARAMC8 => null,
1278 p_PARAMC9 => null,
1279 p_PARAMC10 => null,
1280 p_PARAMD1 => null,
1281 p_PARAMD2 => null,
1282 p_PARAMD3 => null,
1283 p_PARAMD4 => null,
1284 p_PARAMD5 => null,
1285 p_PARAMD6 => null,
1286 p_PARAMD7 => null,
1287 p_PARAMD8 => null,
1288 p_PARAMD9 => null,
1289 p_PARAMD10 => null,
1290 p_ATTRIBUTE_CATEGORY => null,
1291 p_ATTRIBUTE1 => null,
1292 p_ATTRIBUTE2 => null,
1293 p_ATTRIBUTE3 => null,
1294 p_ATTRIBUTE4 => null,
1295 p_ATTRIBUTE5 => null,
1296 p_ATTRIBUTE6 => null,
1297 p_ATTRIBUTE7 => null,
1298 p_ATTRIBUTE8 => null,
1299 p_ATTRIBUTE9 => null,
1300 p_ATTRIBUTE10 => null,
1301 p_ATTRIBUTE11 => null,
1302 p_ATTRIBUTE12 =>null,
1303 p_ATTRIBUTE13 => null,
1304 p_ATTRIBUTE14 => null,
1305 p_ATTRIBUTE15 => null,
1306 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
1307 X_Return_Status => x_return_status,
1308 X_Msg_Count => x_msg_count,
1309 X_Msg_Data => x_msg_data
1310 );
1311 if (g_debug > 0) then
1312 csd_gen_utility_pvt.add('Update_Group_Approval_Status Validate_And_Write :'||x_return_status);
1313 end if;
1314 -- Check return status from the above procedure call
1315 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) then
1316 if (g_debug > 0) then
1317 csd_gen_utility_pvt.ADD('CSD_TO_FORM_REPAIR_HISTORY.Validate_And_Write failed ');
1318 end if;
1319 RAISE FND_API.G_EXC_ERROR;
1320 --ROLLBACK TO UPDATE_GRP_APPV_STATUS;
1321 --return;
1322 END IF;
1323
1324 l_rep_est_rec.repair_estimate_id := l_repair_estimate_id;
1325 l_rep_est_rec.repair_line_id := l_repair_line_id;
1326 l_rep_est_rec.object_version_number := l_est_ovn;
1327 l_rep_est_rec.estimate_status := l_estimate_status;
1328 if (g_debug > 0) then
1329 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Group_Approval_Status Update RO estimate call');
1330 end if;
1331 csd_repair_estimate_pvt.update_repair_estimate
1332 (p_api_version => 1.0,
1333 p_commit => 'F',
1334 p_init_msg_list => 'T',
1335 p_validation_level => fnd_api.g_valid_level_full,
1336 x_estimate_rec => l_rep_est_rec,
1337 x_return_status => x_return_status,
1338 x_msg_count => l_msg_count,
1339 x_msg_data => l_msg_data);
1340 if (g_debug > 0) then
1341 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Group_Approval_Status update_repair_estimate :'||x_return_status);
1342 end if;
1343 -- Check return status from the above procedure call
1344 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) then
1345 if (g_debug > 0) then
1346 csd_gen_utility_pvt.ADD('csd_repair_estimate_pvt.update_repair_estimate failed ');
1347 end if;
1348 RAISE FND_API.G_EXC_ERROR;
1349 --ROLLBACK TO UPDATE_GRP_APPV_STATUS;
1350 --return;
1351 END IF;
1352
1353 END IF;
1354 -- End of Check return status from the update RO call
1355
1356 end if; -- repair_line_id is null
1357
1358 END LOOP;
1359 -- End of API body.
1360
1361 -- update to group is done in the call csd_repair_estimate_pvt.update_repair_estimate
1362 -- repair group object version number is not returned in this case
1363
1364 -------------------------------
1365 -- Standard check for p_commit
1366 -------------------------------
1367 IF FND_API.to_Boolean(p_commit)
1368 THEN
1369 COMMIT;
1370 END IF;
1371
1372 ---------------------------------------------------------------------------
1373 -- Standard call to get message count and if count is 1, get message info.
1374 ---------------------------------------------------------------------------
1375 FND_MSG_PUB.Count_And_Get
1376 (p_count => x_msg_count,
1377 p_data => x_msg_data);
1378
1379 EXCEPTION
1380 WHEN FND_API.G_EXC_ERROR THEN
1381 x_return_status := FND_API.G_RET_STS_ERROR ;
1382 ROLLBACK TO UPDATE_GRP_APPV_STATUS;
1383 FND_MSG_PUB.Count_And_Get
1384 (p_count => x_msg_count,
1385 p_data => x_msg_data );
1386 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1387 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1388 ROLLBACK TO UPDATE_GRP_APPV_STATUS;
1389 FND_MSG_PUB.Count_And_Get
1390 ( p_count => x_msg_count,
1391 p_data => x_msg_data );
1392 WHEN OTHERS THEN
1393 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1394 ROLLBACK TO UPDATE_GRP_APPV_STATUS;
1395 IF FND_MSG_PUB.Check_Msg_Level
1396 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1397 THEN
1398 FND_MSG_PUB.Add_Exc_Msg
1399 (G_PKG_NAME ,
1400 l_api_name );
1401 END IF;
1402 FND_MSG_PUB.Count_And_Get
1403 (p_count => x_msg_count,
1404 p_data => x_msg_data );
1405
1406 END Update_Group_Approval_Status;
1407
1408 -- travi 051702 code
1409 Procedure Update_Group_Reject_Status(
1410 p_api_version IN NUMBER,
1411 p_commit IN VARCHAR2 := fnd_api.g_false,
1412 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1413 p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1414 p_repair_group_id IN NUMBER,
1415 p_object_version_number IN OUT NOCOPY NUMBER,
1416 x_return_status OUT NOCOPY VARCHAR2,
1417 x_msg_count OUT NOCOPY NUMBER,
1418 x_msg_data OUT NOCOPY VARCHAR2
1419 )
1420 IS
1421 --
1422 l_api_name CONSTANT VARCHAR2(30) := 'Update_Group_Reject_Status';
1423 l_api_version CONSTANT NUMBER := 1.0;
1424 l_msg_count NUMBER;
1425 l_msg_data VARCHAR2(100);
1426 l_msg_index NUMBER;
1427 l_repair_group_id NUMBER;
1428 l_count NUMBER;
1429 l_tot_approved NUMBER;
1430 l_tot_rejected NUMBER;
1431 l_tot_no_approval NUMBER;
1432
1433 l_repair_history_id NUMBER;
1434 l_repair_line_id NUMBER;
1435 l_rep_ovn NUMBER;
1436 l_rep_quantity NUMBER;
1437 l_repair_estimate_id NUMBER;
1438 l_est_ovn NUMBER;
1439 l_group_quantity NUMBER;
1440 l_group_ovn NUMBER;
1441
1442 l_Reject_status VARCHAR2(1);
1443 l_rep_Reject_status VARCHAR2(30);
1444 l_estimate_status VARCHAR2(30);
1445 l_event_code VARCHAR2(30);
1446
1447 l_rep_ord_rec CSD_REPAIRS_PUB.REPLN_REC_TYPE;
1448 l_rep_est_rec CSD_REPAIR_ESTIMATE_PVT.REPAIR_ESTIMATE_REC;
1449 l_rep_group_rec CSD_REPAIR_GROUPS_PVT.REPAIR_ORDER_GROUP_REC;
1450
1451 Cursor c_repairs_for_Reject ( p_repair_group_id number) is
1452 Select rep.repair_line_id
1453 , rep.approval_status
1454 , rep.quantity
1455 , rep.object_version_number rep_ovn
1456 , est.repair_estimate_id
1457 , est.object_version_number est_ovn
1458 from csd_repairs rep
1459 , csd_repair_estimate est
1460 where rep.repair_group_id = p_repair_group_id
1461 and rep.repair_line_id = est.repair_line_id;
1462
1463
1464 --
1465 BEGIN
1466 --
1467 -----------------------------------
1468 -- Standard Start of API savepoint
1469 -----------------------------------
1470 SAVEPOINT UPDATE_GRP_REJT_STATUS;
1471
1472 -----------------------------------------------------
1473 -- Standard call to check for call compatibility.
1474 -----------------------------------------------------
1475 IF NOT FND_API.Compatible_API_Call (l_api_version,
1476 p_api_version,
1477 l_api_name ,
1478 G_PKG_NAME)
1479 THEN
1480 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1481 END IF;
1482
1483 ---------------------------------------------------------------
1484 -- Initialize message list if p_init_msg_list is set to TRUE.
1485 ---------------------------------------------------------------
1486 IF FND_API.to_Boolean(p_init_msg_list)
1487 THEN
1488 FND_MSG_PUB.initialize;
1489 END IF;
1490
1491 --------------------------------------------
1492 -- Initialize API return status to success
1493 --------------------------------------------
1494 x_return_status := FND_API.G_RET_STS_SUCCESS;
1495 --------------------
1496 -- Api body starts
1497 --------------------
1498 csd_gen_utility_pvt.dump_api_info
1499 ( p_pkg_name => G_PKG_NAME,
1500 p_api_name => l_api_name );
1501
1502 ---------------------------------
1503 -- Check the required parameter
1504 ---------------------------------
1505 if (g_debug > 0) then
1506 csd_gen_utility_pvt.ADD('Check reqd parameter: Repair Group Id ');
1507 end if;
1508 CSD_PROCESS_UTIL.Check_Reqd_Param
1509 ( p_param_value => p_repair_group_id,
1510 p_param_name => 'REPAIR_GROUP_ID',
1511 p_api_name => l_api_name);
1512
1513 ----------------------------------
1514 -- Validate the Repair Group Id
1515 ----------------------------------
1516 if (g_debug > 0) then
1517 csd_gen_utility_pvt.ADD('Repair Group Id');
1518 end if;
1519 IF NOT( CSD_PROCESS_UTIL.Validate_repair_group_id
1520 ( p_repair_group_id => p_repair_group_id )) THEN
1521 RAISE FND_API.G_EXC_ERROR;
1522 END IF;
1523
1524
1525 -- get all repair lines having estimates for the given Repair Group
1526 FOR r1 in c_repairs_for_Reject (p_repair_group_id)
1527
1528 LOOP
1529
1530 -- initialize
1531 l_repair_line_id := null;
1532
1533 l_repair_line_id := r1.repair_line_id;
1534 l_rep_Reject_status := r1.approval_status;
1535 l_rep_quantity := r1.quantity;
1536 l_rep_ovn := r1.rep_ovn;
1537 l_repair_estimate_id := r1.repair_estimate_id;
1538 l_est_ovn := r1.est_ovn;
1539
1540 if ( l_repair_line_id is not null ) then
1541
1542 l_Reject_status := 'R';
1543 l_estimate_status := 'REJECTED';
1544 l_event_code := 'R';
1545
1546 ----------------------------------
1547 -- API Body
1548 ----------------------------------
1549
1550 if (g_debug > 0) then
1551 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Group_Reject_Status convert repairs rec call');
1552 end if;
1553 CSD_REPAIRS_UTIL.Convert_to_Repln_Rec_Type
1554 (p_approval_status => l_Reject_status,
1555 p_object_version_number => l_rep_ovn,
1556 x_repln_rec => l_rep_ord_rec
1557 );
1558 if (g_debug > 0) then
1559 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Group_Reject_Status Update repairs call');
1560 end if;
1561 CSD_REPAIRS_PVT.Update_Repair_Order
1562 (p_API_version_number => 1.0,
1563 p_init_msg_list => FND_API.G_TRUE,
1564 p_commit => FND_API.G_FALSE,
1565 p_validation_level => null,
1566 p_repair_line_id => l_repair_line_id,
1567 p_Repln_Rec => l_rep_ord_rec,
1568 x_return_status => x_return_status,
1569 x_msg_count => x_msg_count,
1570 x_msg_data => x_msg_data
1571 );
1572
1573 if (g_debug > 0) then
1574 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Group_Reject_Status Update_Repair_Order :'||x_return_status);
1575 end if;
1576 -- Check return status from the update RO call
1577 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) then
1578 if (g_debug > 0) then
1579 csd_gen_utility_pvt.ADD('CSD_REPAIRS_PVT.Update_Repair_Order failed ');
1580 end if;
1581 RAISE FND_API.G_EXC_ERROR;
1582 --ROLLBACK TO UPDATE_GRP_REJT_STATUS;
1583 --return;
1584 ELSIF (x_return_status = FND_API.G_RET_STS_SUCCESS) then
1585 if (g_debug > 0) then
1586 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Group_Reject_Status Update RO hist call');
1587 end if;
1588 CSD_TO_FORM_REPAIR_HISTORY.Validate_And_Write
1589 (p_Api_Version_Number => 1.0 ,
1590 p_init_msg_list => 'F',
1591 p_commit => 'F',
1592 p_validation_level => NULL,
1593 p_action_code => 0,
1594 px_REPAIR_HISTORY_ID => l_repair_history_id,
1595 p_OBJECT_VERSION_NUMBER => null,
1596 p_REQUEST_ID => null,
1597 p_PROGRAM_ID => null,
1598 p_PROGRAM_APPLICATION_ID => null,
1599 p_PROGRAM_UPDATE_DATE => null,
1600 p_CREATED_BY => FND_GLOBAL.USER_ID,
1601 p_CREATION_DATE => sysdate,
1602 p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
1603 p_LAST_UPDATE_DATE => sysdate,
1604 p_repair_line_id => l_repair_line_id,
1605 p_EVENT_CODE => l_event_code,
1606 p_EVENT_DATE => sysdate,
1607 p_QUANTITY => l_rep_quantity,
1608 p_PARAMN1 => null,
1609 p_PARAMN2 => null,
1610 p_PARAMN3 => null,
1611 p_PARAMN4 => null,
1612 p_PARAMN5 => null,
1613 p_PARAMN6 => null,
1614 p_PARAMN7 => null,
1615 p_PARAMN8 => null,
1616 p_PARAMN9 => null,
1617 p_PARAMN10 => FND_GLOBAL.USER_ID,
1618 p_PARAMC1 => l_Reject_status, -- new status
1619 p_PARAMC2 => l_rep_Reject_status, -- old status
1620 p_PARAMC3 => 'Repair Group Estimate Reject', -- travi new
1621 p_PARAMC4 => null,
1622 p_PARAMC5 => null ,
1623 p_PARAMC6 => null,
1624 p_PARAMC7 => null,
1625 p_PARAMC8 => null,
1626 p_PARAMC9 => null,
1627 p_PARAMC10 => null,
1628 p_PARAMD1 => null,
1629 p_PARAMD2 => null,
1630 p_PARAMD3 => null,
1631 p_PARAMD4 => null,
1632 p_PARAMD5 => null,
1633 p_PARAMD6 => null,
1634 p_PARAMD7 => null,
1635 p_PARAMD8 => null,
1636 p_PARAMD9 => null,
1637 p_PARAMD10 => null,
1638 p_ATTRIBUTE_CATEGORY => null,
1639 p_ATTRIBUTE1 => null,
1640 p_ATTRIBUTE2 => null,
1641 p_ATTRIBUTE3 => null,
1642 p_ATTRIBUTE4 => null,
1643 p_ATTRIBUTE5 => null,
1644 p_ATTRIBUTE6 => null,
1645 p_ATTRIBUTE7 => null,
1646 p_ATTRIBUTE8 => null,
1647 p_ATTRIBUTE9 => null,
1648 p_ATTRIBUTE10 => null,
1649 p_ATTRIBUTE11 => null,
1650 p_ATTRIBUTE12 =>null,
1651 p_ATTRIBUTE13 => null,
1652 p_ATTRIBUTE14 => null,
1653 p_ATTRIBUTE15 => null,
1654 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
1655 X_Return_Status => x_return_status,
1656 X_Msg_Count => x_msg_count,
1657 X_Msg_Data => x_msg_data
1658 );
1659 if (g_debug > 0) then
1660 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Group_Reject_Status Validate_And_Write :'||x_return_status);
1661 end if;
1662 -- Check return status from the above procedure call
1663 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) then
1664 if (g_debug > 0) then
1665 csd_gen_utility_pvt.ADD('CSD_TO_FORM_REPAIR_HISTORY.Validate_And_Write failed ');
1666 end if;
1667 RAISE FND_API.G_EXC_ERROR;
1668 --ROLLBACK TO UPDATE_GRP_REJT_STATUS;
1669 --return;
1670 END IF;
1671
1672 l_rep_est_rec.repair_estimate_id := l_repair_estimate_id;
1673 l_rep_est_rec.repair_line_id := l_repair_line_id;
1674 l_rep_est_rec.object_version_number := l_est_ovn;
1675 l_rep_est_rec.estimate_status := l_estimate_status;
1676 if (g_debug > 0) then
1677 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Group_Reject_Status Update RO estimate call');
1678 end if;
1679 csd_repair_estimate_pvt.update_repair_estimate
1680 (p_api_version => 1.0,
1681 p_commit => 'F',
1682 p_init_msg_list => 'T',
1683 p_validation_level => fnd_api.g_valid_level_full,
1684 x_estimate_rec => l_rep_est_rec,
1685 x_return_status => x_return_status,
1686 x_msg_count => l_msg_count,
1687 x_msg_data => l_msg_data);
1688 if (g_debug > 0) then
1689 csd_gen_utility_pvt.add('CSD_REPAIRS_GRP.Update_Group_Reject_Status update_repair_estimate :'||x_return_status);
1690 end if;
1691 -- Check return status from the above procedure call
1692 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) then
1693 if (g_debug > 0) then
1694 csd_gen_utility_pvt.ADD('csd_repair_estimate_pvt.update_repair_estimate failed ');
1695 end if;
1696 RAISE FND_API.G_EXC_ERROR;
1697 --ROLLBACK TO UPDATE_GRP_REJT_STATUS;
1698 --return;
1699 END IF;
1700
1701 END IF;
1702 -- End of Check return status from the update RO call
1703
1704 end if; -- repair_line_id is null
1705
1706 END LOOP;
1707 -- End of API body.
1708
1709 -- update to group is done in the call csd_repair_estimate_pvt.update_repair_estimate
1710 -- repair group object version number is not returned in this case
1711
1712 -------------------------------
1713 -- Standard check for p_commit
1714 -------------------------------
1715 IF FND_API.to_Boolean(p_commit)
1716 THEN
1717 COMMIT;
1718 END IF;
1719
1720 ---------------------------------------------------------------------------
1721 -- Standard call to get message count and if count is 1, get message info.
1722 ---------------------------------------------------------------------------
1723 FND_MSG_PUB.Count_And_Get
1724 (p_count => x_msg_count,
1725 p_data => x_msg_data
1726 );
1727
1728 EXCEPTION
1729 WHEN FND_API.G_EXC_ERROR THEN
1730 x_return_status := FND_API.G_RET_STS_ERROR ;
1731 ROLLBACK TO UPDATE_GRP_REJT_STATUS;
1732 FND_MSG_PUB.Count_And_Get
1733 (p_count => x_msg_count,
1734 p_data => x_msg_data );
1735 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1736 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1737 ROLLBACK TO UPDATE_GRP_REJT_STATUS;
1738 FND_MSG_PUB.Count_And_Get
1739 ( p_count => x_msg_count,
1740 p_data => x_msg_data );
1741 WHEN OTHERS THEN
1742 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1743 ROLLBACK TO UPDATE_GRP_REJT_STATUS;
1744 IF FND_MSG_PUB.Check_Msg_Level
1745 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1746 THEN
1747 FND_MSG_PUB.Add_Exc_Msg
1748 (G_PKG_NAME ,
1749 l_api_name );
1750 END IF;
1751 FND_MSG_PUB.Count_And_Get
1752 (p_count => x_msg_count,
1753 p_data => x_msg_data );
1754
1755 --
1756 END Update_Group_Reject_Status;
1757
1758 End CSD_REPAIRS_GRP;