[Home] [Help]
PACKAGE BODY: APPS.CS_UPDATE_WARRANTY_DATES
Source
1 PACKAGE BODY CS_UPDATE_WARRANTY_DATES as
2 /* $Header: csxsvuwb.pls 115.0 99/07/16 09:09:24 porting ship $ */
3 Procedure Update_Warranty_Dates (
4 X_Customer_Product_ID NUMBER,
5 X_Start_Date DATE,
6 X_Day_UOM VARCHAR2
7 ) IS
8
9 CURSOR CP_Service_Cursor IS
10 SELECT srv.service_inventory_item_id item_id,
11 srv_item.service_duration duration_quantity,
12 srv_item.service_duration_period_code duration_uom
13 FROM CS_CP_SERVICES srv, MTL_SYSTEM_ITEMS srv_item
14 WHERE srv.customer_product_id = X_Customer_Product_ID
15 AND srv.warranty_flag = 'Y'
16 AND srv.service_inventory_item_id = srv_item.inventory_item_id (+)
17 FOR UPDATE OF srv.start_date_active,
18 srv.end_date_active;
19
20 service_duration_days NUMBER;
21
22 BEGIN
23 FOR CP_Service_Rec IN CP_Service_Cursor LOOP
24 IF (CP_Service_Rec.duration_quantity IS NOT NULL) AND
25 (CP_Service_Rec.duration_uom IS NOT NULL) THEN
26 service_duration_days := inv_convert.inv_um_convert(
27 CP_Service_Rec.item_id,
28 NULL,
29 CP_Service_Rec.duration_quantity,
30 CP_Service_Rec.duration_uom,
31 X_Day_UOM,
32 NULL,
33 NULL);
34
35 UPDATE CS_CP_SERVICES
36 SET Start_Date_Active = X_Start_Date,
37 End_Date_Active = Round(X_Start_Date + service_duration_days)
38 WHERE CURRENT OF CP_Service_Cursor;
39 END IF;
40 END LOOP;
41 END Update_Warranty_Dates;
42
43 END CS_UPDATE_WARRANTY_DATES;