DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSD_REPAIRS_GRP

Source


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