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.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;