DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_SAFETY_ASSET_UTL_PKG

Source


1 PACKAGE BODY EAM_SAFETY_ASSET_UTL_PKG AS
2 /* $Header: EAMSAFUB.pls 120.0 2011/02/23 17:03:46 srkotika noship $*/
3 
4 /***************************************************************************
5 --
6 --  Copyright (c) 2008 Oracle Corporation, Redwood Shores, CA, USA
7 --  All rights reserved.
8 --
9 --  FILENAME
10 --
11 --      eamsafub.pls
12 --
13 --  DESCRIPTION
14 --
15 --      Body of package EAM_SAFETY_ASSET_NUMBER_UTL_PKG
16 --
17 --  NOTES
18 --
19 --  HISTORY
20 --
21 --  23-FEB-2011    srkotika     Initial Creation
22 ***************************************************************************/
23 
24 /*validate instance */
25 PROCEDURE VALIDATE_INSTANCE_NUMBER
26 (
27   p_instance_id             IN           NUMBER
28  ,x_instance_number         OUT  NOCOPY  VARCHAR2
29  ,x_create_update           OUT  NOCOPY  VARCHAR2
30  ,x_return_status           OUT  NOCOPY  VARCHAR2
31  ,x_msg_count		        OUT  NOCOPY  NUMBER
32  ,x_msg_data	            OUT  NOCOPY  VARCHAR2
33  ) IS
34 
35  l_inventory_item_id          NUMBER;
36  l_organization_id            NUMBER;
37  l_serial_number              VARCHAR2(30);
38  l_instance_number            VARCHAR2(30);
39  l_eam_item_type	          NUMBER;
40  l_serial_number_control_code NUMBER;
41  l_network_asset_flag         VARCHAR2(1);
42  l_exists                     VARCHAR2(1);
43  l_create_update              VARCHAR2(1);
44  l_instance_type              VARCHAR2(3):='EAM';
45  l_debug_level                NUMBER;
46 
47 BEGIN
48 
49       x_return_status         := FND_API.G_RET_STS_SUCCESS;
50 
51       /* check if the Instance exists */
52 	  BEGIN
53 
54 	        SELECT 'Y', INVENTORY_ITEM_ID, LAST_VLD_ORGANIZATION_ID, SERIAL_NUMBER, INSTANCE_NUMBER,NETWORK_ASSET_FLAG
55 		     INTO l_exists, l_inventory_item_id, l_organization_id,l_serial_number, l_instance_number,l_network_asset_flag
56 	        FROM CSI_ITEM_INSTANCES
57 	        WHERE INSTANCE_ID = p_instance_id;
58 
59         EXCEPTION WHEN NO_DATA_FOUND THEN
60 	             FND_MESSAGE.SET_NAME('CSI','CSI_INSTANCE_NOT_FOUND');
61 			     FND_MESSAGE.SET_TOKEN('INSTANCE',l_instance_number);
62 			     FND_MSG_PUB.ADD;
63 			     x_return_status := FND_API.G_RET_STS_ERROR;
64 	            return;
65 
66 	    END;
67 
68 
69 	    /*'Validating EAM Asset'  */
70 
71 	       SELECT EAM_ITEM_TYPE,SERIAL_NUMBER_CONTROL_CODE
72 	       INTO l_eam_item_type,l_serial_number_control_code
73 		   FROM MTL_SYSTEM_ITEMS_B_KFV
74 		   WHERE INVENTORY_ITEM_ID = l_inventory_item_id
75 	       AND   ORGANIZATION_ID = l_organization_id;
76 
77 	       IF l_eam_item_type NOT IN (1,3) THEN
78 	 	     -- Raise error
79 		      FND_MESSAGE.SET_NAME('CSI','CSI_ASSET_NOT_CAPTL_REBUILD');
80 		      FND_MESSAGE.SET_TOKEN('INSTANCE',l_instance_number);
81 			  FND_MSG_PUB.ADD;
82 			  x_return_status := FND_API.G_RET_STS_ERROR;
83               return;
84 
85 	       END IF;
86 
87 		   IF l_serial_number_control_code = 1 THEN
88 		      FND_MESSAGE.SET_NAME('CSI','CSI_ASSET_NOT_SERIALIZED');
89 			  FND_MESSAGE.SET_TOKEN('INSTANCE',l_instance_number);
90 			  FND_MSG_PUB.ADD;
91 			  x_return_status := FND_API.G_RET_STS_ERROR;
92               return;
93            END IF;
94 
95            IF nvl(l_network_asset_flag,'N') = 'Y' THEN
96 		      FND_MESSAGE.SET_NAME('CSI','CSI_ASSET_ROUTE_CNT_GEOCODE');
97 			  FND_MESSAGE.SET_TOKEN('INSTANCE',l_instance_number);
98 			  FND_MSG_PUB.ADD;
99 			  x_return_status := FND_API.G_RET_STS_ERROR;
100               return;
101            END IF;
102 
103 
104            /* check if safetyinfo already exists for the instance, else mark it as create */
105 	    BEGIN
106 	          SELECT 'U'
107 			      INTO l_create_update
108 	          FROM EAM_ASSET_SAFETY_TYPES
109 	          WHERE INSTANCE_ID = p_instance_id;
110 
111         EXCEPTION WHEN NO_DATA_FOUND THEN
112 	          l_create_update := 'C';
113 
114 	    END;
115         x_instance_number:=l_instance_number;
116         x_create_update := l_create_update;
117 
118 END VALIDATE_INSTANCE_NUMBER;
119 
120 /*Procedure to Validate safet type and lookup values */
121 PROCEDURE VALIDATE_SAFETY_INFO
122 (
123   p_eAM_asset_safety_rec    IN           EAM_SAFETY_ASSET_NUMBER_PUB.eam_asset_safety_info_rec_type
124  ,x_return_status   OUT  NOCOPY  VARCHAR2
125  ,x_msg_count	    OUT  NOCOPY  NUMBER
126  ,x_msg_data	    OUT  NOCOPY  VARCHAR2
127  )  IS
128  l_msg_count NUMBER:=0;
129  l_msg_data  VARCHAR2(4000);
130  l_return_status VARCHAR2(1);
131  l_char    VARCHAR2(2);
132  l_error_count NUMBER:=0;
133 
134  BEGIN
135 
136       IF(p_eAM_asset_safety_rec.safety_type not in (1,2)) THEN
137 	     FND_MESSAGE.SET_NAME ('EAM', 'EAM_INVALID_SAFETY_TYPE');
138          FND_MSG_PUB.Add;
139          RAISE FND_API.G_EXC_ERROR;
140       END IF;
141 
142 	  IF(p_eAM_asset_safety_rec.safety_type = 1 and p_eAM_asset_safety_rec.lockout_device is not null) THEN
143 	     FND_MESSAGE.SET_NAME ('EAM', 'EAM_INVALID_SAFETY_ENTRY');
144          FND_MSG_PUB.Add;
145          RAISE FND_API.G_EXC_ERROR;
146       END IF;
147 
148 	  IF(p_eAM_asset_safety_rec.safety_type = 2) THEN
149 	   IF (p_eAM_asset_safety_rec.OPERATING_POSITION is not null or p_eAM_asset_safety_rec.OPERATING_TAG is not null or
150 	       p_eAM_asset_safety_rec.SHUTDOWN_POSITION is not null or p_eAM_asset_safety_rec.SHUTDOWN_TAG is not null or
151 		     p_eAM_asset_safety_rec.POS_LOCKOUT_DEVICE is not null ) THEN
152 	     FND_MESSAGE.SET_NAME ('EAM', 'EAM_INVALID_SAFETY_ENTRY');
153          FND_MSG_PUB.Add;
154          RAISE FND_API.G_EXC_ERROR;
155 	   END IF;
156       END IF;
157 
158 
159 END VALIDATE_SAFETY_INFO;
160 
161 END EAM_SAFETY_ASSET_UTL_PKG;