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