[Home] [Help]
PACKAGE BODY: APPS.MTL_LOT_UOM_CONV_PKG
Source
1 package body MTL_LOT_UOM_CONV_PKG as
2 /* $Header: INVHLUCB.pls 120.0 2005/05/25 05:39:20 appldev noship $ */
3
4
5 PROCEDURE INSERT_ROW(
6 X_CONVERSION_ID IN OUT NOCOPY NUMBER,
7 X_LOT_NUMBER IN VARCHAR2,
8 X_ORGANIZATION_ID IN NUMBER,
9 X_INVENTORY_ITEM_ID IN NUMBER,
10 X_FROM_UNIT_OF_MEASURE IN VARCHAR2,
11 X_FROM_UOM_CODE IN VARCHAR2,
12 X_FROM_UOM_CLASS IN VARCHAR2,
13 X_TO_UNIT_OF_MEASURE IN VARCHAR2,
14 X_TO_UOM_CODE IN VARCHAR2,
15 X_TO_UOM_CLASS IN VARCHAR2,
16 X_CONVERSION_RATE IN NUMBER,
17 X_DISABLE_DATE IN DATE,
18 X_EVENT_SPEC_DISP_ID IN NUMBER,
19 X_CREATED_BY IN NUMBER,
20 X_CREATION_DATE IN DATE,
21 X_LAST_UPDATED_BY IN NUMBER,
22 X_LAST_UPDATE_DATE IN DATE,
23 X_LAST_UPDATE_LOGIN IN NUMBER,
24 X_REQUEST_ID IN NUMBER,
25 X_PROGRAM_APPLICATION_ID IN NUMBER,
26 X_PROGRAM_ID IN NUMBER,
27 X_PROGRAM_UPDATE_DATE IN DATE,
28 x_return_status OUT NOCOPY VARCHAR2,
29 x_msg_count OUT NOCOPY NUMBER,
30 x_msg_data OUT NOCOPY VARCHAR2)
31
32 IS
33
34
35 CURSOR GET_CONV_SEQ
36 IS
37 SELECT MTL_CONVERSION_ID_S.NEXTVAL
38 FROM FND_DUAL;
39
40 l_conv_seq NUMBER;
41
42
43 BEGIN
44
45 x_return_status := FND_API.G_RET_STS_SUCCESS;
46 IF (X_CONVERSION_ID IS NULL) THEN
47 OPEN GET_CONV_SEQ;
48 FETCH GET_CONV_SEQ INTO l_conv_seq;
49 X_CONVERSION_ID := l_conv_seq;
50 CLOSE GET_CONV_SEQ;
51 END IF;
52
53
54 INSERT INTO MTL_LOT_UOM_CLASS_CONVERSIONS(
55 CONVERSION_ID,
56 LOT_NUMBER,
57 ORGANIZATION_ID,
58 INVENTORY_ITEM_ID,
59 FROM_UNIT_OF_MEASURE,
60 FROM_UOM_CODE,
61 FROM_UOM_CLASS,
62 TO_UNIT_OF_MEASURE,
63 TO_UOM_CODE,
64 TO_UOM_CLASS,
65 CONVERSION_RATE,
66 DISABLE_DATE,
67 EVENT_SPEC_DISP_ID,
68 CREATED_BY,
69 CREATION_DATE,
70 LAST_UPDATED_BY,
71 LAST_UPDATE_DATE,
72 LAST_UPDATE_LOGIN,
73 REQUEST_ID,
74 PROGRAM_APPLICATION_ID,
75 PROGRAM_ID,
76 PROGRAM_UPDATE_DATE
77 )
78 VALUES(
79 X_CONVERSION_ID,
80 X_LOT_NUMBER,
81 X_ORGANIZATION_ID,
82 X_INVENTORY_ITEM_ID,
83 X_FROM_UNIT_OF_MEASURE,
84 X_FROM_UOM_CODE,
85 X_FROM_UOM_CLASS,
86 X_TO_UNIT_OF_MEASURE,
87 X_TO_UOM_CODE,
88 X_TO_UOM_CLASS,
89 X_CONVERSION_RATE,
90 X_DISABLE_DATE,
91 X_EVENT_SPEC_DISP_ID,
92 X_CREATED_BY,
93 X_CREATION_DATE,
94 X_LAST_UPDATED_BY,
95 X_LAST_UPDATE_DATE,
96 X_LAST_UPDATE_LOGIN,
97 X_REQUEST_ID,
98 X_PROGRAM_APPLICATION_ID,
99 X_PROGRAM_ID,
100 X_PROGRAM_UPDATE_DATE
101 );
102
103
104 FND_MSG_PUB.Count_AND_GET
105 (p_count => x_msg_count, p_data => x_msg_data);
106
107 EXCEPTION
108
109
110 WHEN OTHERS THEN
111 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
112 IF (SQLCODE IS NOT NULL) THEN
113 FND_MESSAGE.SET_NAME('GMI','GMI_LOTC_SQL_ERROR');
114 FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
115 FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
116 FND_MSG_PUB.Add;
117 END IF;
118 FND_MSG_PUB.Count_AND_GET
119 (p_count => x_msg_count, p_data => x_msg_data);
120
121
122 END INSERT_ROW;
123
124
125 PROCEDURE UPDATE_ROW(
126 X_CONVERSION_ID IN NUMBER,
127 X_LOT_NUMBER IN VARCHAR2,
128 X_ORGANIZATION_ID IN NUMBER,
129 X_INVENTORY_ITEM_ID IN NUMBER,
130 X_FROM_UNIT_OF_MEASURE IN VARCHAR2,
131 X_FROM_UOM_CODE IN VARCHAR2,
132 X_FROM_UOM_CLASS IN VARCHAR2,
133 X_TO_UNIT_OF_MEASURE IN VARCHAR2,
134 X_TO_UOM_CODE IN VARCHAR2,
135 X_TO_UOM_CLASS IN VARCHAR2,
136 X_CONVERSION_RATE IN NUMBER,
137 X_DISABLE_DATE IN DATE,
138 X_EVENT_SPEC_DISP_ID IN NUMBER,
139 X_LAST_UPDATED_BY IN NUMBER,
140 X_LAST_UPDATE_DATE IN DATE,
141 X_LAST_UPDATE_LOGIN IN NUMBER,
142 X_REQUEST_ID IN NUMBER,
143 X_PROGRAM_APPLICATION_ID IN NUMBER,
144 X_PROGRAM_ID IN NUMBER,
145 X_PROGRAM_UPDATE_DATE IN DATE,
146 x_return_status OUT NOCOPY VARCHAR2,
147 x_msg_count OUT NOCOPY NUMBER,
148 x_msg_data OUT NOCOPY VARCHAR2)
149
150 IS
151
152 BEGIN
153
154 x_return_status := FND_API.G_RET_STS_SUCCESS;
155 UPDATE MTL_LOT_UOM_CLASS_CONVERSIONS SET
156 LOT_NUMBER = X_LOT_NUMBER,
157 ORGANIZATION_ID = X_ORGANIZATION_ID,
158 INVENTORY_ITEM_ID = X_INVENTORY_ITEM_ID,
159 FROM_UNIT_OF_MEASURE = X_FROM_UNIT_OF_MEASURE,
160 FROM_UOM_CODE = X_FROM_UOM_CODE,
161 FROM_UOM_CLASS = X_FROM_UOM_CLASS,
162 TO_UNIT_OF_MEASURE = X_TO_UNIT_OF_MEASURE,
163 TO_UOM_CODE = X_TO_UOM_CODE,
164 TO_UOM_CLASS = X_TO_UOM_CLASS,
165 CONVERSION_RATE = X_CONVERSION_RATE,
166 DISABLE_DATE = X_DISABLE_DATE,
167 EVENT_SPEC_DISP_ID = X_EVENT_SPEC_DISP_ID,
168 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
169 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
170 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
171 REQUEST_ID = X_REQUEST_ID,
172 PROGRAM_APPLICATION_ID = X_PROGRAM_APPLICATION_ID,
173 PROGRAM_ID = X_PROGRAM_ID,
174 PROGRAM_UPDATE_DATE = X_PROGRAM_UPDATE_DATE
175 WHERE CONVERSION_ID = X_CONVERSION_ID;
176
177 FND_MSG_PUB.Count_AND_GET
178 (p_count => x_msg_count, p_data => x_msg_data);
179
180 EXCEPTION
181
182 WHEN OTHERS THEN
183 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
184 IF (SQLCODE IS NOT NULL) THEN
185 FND_MESSAGE.SET_NAME('GMI','GMI_LOTC_SQL_ERROR');
186 FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
187 FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
188 FND_MSG_PUB.Add;
189 END IF;
190 FND_MSG_PUB.Count_AND_GET
191 (p_count => x_msg_count, p_data => x_msg_data);
192
193 END UPDATE_ROW;
194
195
196
197 PROCEDURE DELETE_ROW(
198 X_CONVERSION_ID IN NUMBER,
199 X_DISABLE_DATE IN DATE,
200 X_LAST_UPDATED_BY IN NUMBER,
201 X_LAST_UPDATE_DATE IN DATE,
202 X_LAST_UPDATE_LOGIN IN NUMBER,
203 X_REQUEST_ID IN NUMBER,
204 X_PROGRAM_APPLICATION_ID IN NUMBER,
205 X_PROGRAM_ID IN NUMBER,
206 X_PROGRAM_UPDATE_DATE IN DATE,
207 x_return_status OUT NOCOPY VARCHAR2,
208 x_msg_count OUT NOCOPY NUMBER,
209 x_msg_data OUT NOCOPY VARCHAR2)
210
211 IS
212
213 BEGIN
214
215 x_return_status := FND_API.G_RET_STS_SUCCESS;
216 UPDATE MTL_LOT_UOM_CLASS_CONVERSIONS SET
217 DISABLE_DATE = X_DISABLE_DATE,
218 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
219 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
220 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
221 REQUEST_ID = X_REQUEST_ID,
222 PROGRAM_APPLICATION_ID = X_PROGRAM_APPLICATION_ID,
223 PROGRAM_ID = X_PROGRAM_ID,
224 PROGRAM_UPDATE_DATE = X_PROGRAM_UPDATE_DATE
225 WHERE CONVERSION_ID = X_CONVERSION_ID;
226
227 FND_MSG_PUB.Count_AND_GET
228 (p_count => x_msg_count, p_data => x_msg_data);
229
230 EXCEPTION
231
232
233 WHEN OTHERS THEN
234 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
235 IF (SQLCODE IS NOT NULL) THEN
236 FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
237 FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
238 FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
239 FND_MSG_PUB.Add;
240 END IF;
241 FND_MSG_PUB.Count_AND_GET
242 (p_count => x_msg_count, p_data => x_msg_data);
243
244 END DELETE_ROW;
245
246
247
248 PROCEDURE lock_row(
249 x_conversion_id NUMBER
250 , x_lot_number VARCHAR2
251 , x_organization_id NUMBER
252 , x_inventory_item_id NUMBER
253 , x_from_unit_of_measure VARCHAR2
254 , x_from_uom_code VARCHAR2
255 , x_from_uom_class VARCHAR2
256 , x_to_unit_of_measure VARCHAR2
257 , x_to_uom_code VARCHAR2
258 , x_to_uom_class VARCHAR2
259 , x_conversion_rate NUMBER
260 , x_disable_date DATE
261 , x_event_spec_disp_id NUMBER
262
263
264 )
265 IS
266 CURSOR c IS
267 SELECT *
268 FROM mtl_lot_uom_class_conversions
269 WHERE conversion_id = x_conversion_id
270 AND organization_id = x_organization_id
271 FOR UPDATE OF organization_id NOWAIT;
272
273 recinfo c%ROWTYPE;
274 record_changed EXCEPTION;
275
276 BEGIN
277 OPEN c;
278 FETCH c INTO recinfo;
279
280 IF (c%NOTFOUND) THEN
281 CLOSE c;
282 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
283 app_exception.raise_exception;
284 END IF;
285
286 CLOSE c;
287
288
289 IF ( (recinfo.organization_id = x_organization_id)
290 AND(recinfo.conversion_id = x_conversion_id)
291 AND(recinfo.inventory_item_id = x_inventory_item_id)
292 AND((recinfo.lot_number = x_lot_number)
293 OR((recinfo.lot_number IS NULL)
294 AND(x_lot_number IS NULL)))
295 AND ((recinfo.from_unit_of_measure = x_from_unit_of_measure)
296 OR ((recinfo.from_unit_of_measure IS NULL)
297 AND (x_from_unit_of_measure IS NULL)))
298 AND ((recinfo.from_uom_code = x_from_uom_code)
299 OR ((recinfo.from_uom_code IS NULL)
300 AND (x_from_uom_code IS NULL)))
301 AND((recinfo.from_uom_class = x_from_uom_class)
302 OR((recinfo.from_uom_class IS NULL)
303 AND(x_from_uom_class IS NULL)))
304 AND((recinfo.to_unit_of_measure = x_to_unit_of_measure)
305 OR((recinfo.to_unit_of_measure IS NULL)
306 AND(x_to_unit_of_measure IS NULL)))
307 AND((recinfo.to_uom_code = x_to_uom_code)
308 OR((recinfo.to_uom_code IS NULL)
309 AND(x_to_uom_code IS NULL)))
310 AND((recinfo.to_uom_class = x_to_uom_class)
311 OR((recinfo.to_uom_class IS NULL)
312 AND(x_to_uom_class IS NULL)))
313 AND(recinfo.conversion_rate = x_conversion_rate)
314 AND((recinfo.disable_date = x_disable_date)
315 OR((recinfo.disable_date IS NULL)
316 AND(x_disable_date IS NULL)))
317 AND((recinfo.event_spec_disp_id = x_event_spec_disp_id)
318 OR((recinfo.event_spec_disp_id IS NULL)
319 AND(x_event_spec_disp_id IS NULL)))
320 ) THEN
321 RETURN;
322 ELSE
323 RAISE record_changed;
324 END IF;
325
326 EXCEPTION
327 WHEN record_changed THEN
328 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
329 app_exception.raise_exception;
330 END lock_row;
331
332
333
334 END MTL_LOT_UOM_CONV_PKG;